[automerger skipped] Update Android CLDR tzdata from 2021a to 2021a3. [R] am: 630b768e6f am: 7473609ab4 am: 2cf1d471f6 -s ours
am skip reason: Merged-In I5f3dbf8e4ff6b7af3c2f4d80a407ad0649eac25b with SHA-1 bbab44fd7c is already in history
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/cldr/+/16238898
Change-Id: I7c9e61449cc82da56fa451be4baac975e81ae704
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index d9e09c2..67d8564 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -51,11 +51,20 @@
### Licenses
- Usage of CLDR data and software is governed by the Unicode [Terms of use][] a copy of which is included as [unicode-license.txt][]
-- Some CLDR tools depend on libraries in tools/java/libs/; use of these libraries is governed by separate license agreements.
+- Some CLDR tools depend on libraries in tools/cldr-code/libs/; use of these libraries is governed by separate license agreements.
- For example, use of the Guava, Xerces, and Myanmar Tools libraries is subject to the Apache License included as [apache-license.txt](./apache-license.txt)
- Use of the ICU libraries is subject to the ICU License, included as [ICU-LICENSE](./ICU-LICENSE).
- There must be a signed CLA before code is contributed, the PR will not be merged until the CLA is signed.
+## Building
+
+For setup details, see [Maven Setup][].
+Builds are done with Maven:
+
+```
+mvn test --file=tools/pom.xml
+```
+
## Tests
For more detail, and how to run the tests locally, see [Running Tests][] on the CLDR development site.
@@ -80,13 +89,14 @@
## Copyright
-Copyright © 1991-2020 Unicode, Inc.
+Copyright © 1991-2021 Unicode, Inc.
All rights reserved. [Terms of use][]
[Survey Tool]: http://cldr.unicode.org/index/survey-tool
[Terms of use]: http://www.unicode.org/copyright.html
[Jira]: http://cldr.unicode.org/index/bug-reports#TOC-Filing-a-Ticket
[Tools source]: https://github.com/unicode-org/cldr/tree/master/tools
+[Maven setup]: http://cldr.unicode.org/development/maven
[Repository Organization]: http://cldr.unicode.org/index/downloads#Repository_Organization
[How to contribute]: http://cldr.unicode.org/#TOC-How-to-Contribute-
[Unicode member]: https://home.unicode.org/membership/why-join/
diff --git a/ICU-LICENSE b/ICU-LICENSE
index 5f6804f..3ef4be7 100644
--- a/ICU-LICENSE
+++ b/ICU-LICENSE
@@ -1,6 +1,6 @@
COPYRIGHT AND PERMISSION NOTICE (ICU 58 and later)
-Copyright © 1991-2020 Unicode, Inc. All rights reserved.
+Copyright © 1991-2021 Unicode, Inc. All rights reserved.
Distributed under the Terms of Use in https://www.unicode.org/copyright.html.
Permission is hereby granted, free of charge, to any person obtaining
diff --git a/METADATA b/METADATA
index b4493ed..b509092 100644
--- a/METADATA
+++ b/METADATA
@@ -11,7 +11,7 @@
type: GIT
value: "https://github.com/unicode-org/cldr"
}
- version: "38.1"
- last_upgrade_date { year: 2021 month: 1 day: 21 }
+ version: "39.0"
+ last_upgrade_date { year: 2021 month: 8 day: 17 }
license_type: NOTICE
}
diff --git a/README.md b/README.md
index 1ed5b60..cd27f06 100644
--- a/README.md
+++ b/README.md
@@ -1,18 +1,13 @@
# Unicode CLDR Project
-Latest Release: [v38.1](http://cldr.unicode.org/index/downloads/cldr-38#TOC-CLDR-38.1) published 2020-12-17
+Latest Release: [v39.0](http://cldr.unicode.org/index/downloads/cldr-39) published 2021-04-07
## Build Status
GitHub:
-[](https://github.com/unicode-org/cldr/actions?query=branch%3Amaster+workflow%3A%22cldr-ant%22)
[](https://github.com/unicode-org/cldr/actions?query=branch%3Amaster+workflow%3A%22cldr-mvn%22)
[](https://github.com/unicode-org/cldr/actions?query=branch%3Amaster+workflow%3A%22Ansible+Lint%22)
-Jenkins: [](https://cldr-build.unicode.org/jenkins/job/cldr/job/cldr-master/) :lock:
-
-Travis: [](https://travis-ci.org/unicode-org/cldr/branches)
-
### What is CLDR?
The Unicode CLDR provides key building blocks for software to support the world's languages, with the largest and most extensive standard repository of locale data available. This data is used by a wide spectrum of companies for their software internationalization and localization, adapting software to the conventions of different languages for such common software tasks.
@@ -33,19 +28,20 @@
### Licenses
- Usage of CLDR data and software is governed by the [Unicode Terms of Use](http://www.unicode.org/copyright.html)
-a copy of which is included as [unicode-license.txt](../blob/master/unicode-license.txt).
+a copy of which is included as [unicode-license.txt](./unicode-license.txt).
-- Some CLDR tools depend on libraries in tools/java/libs/; use of these libraries is governed by separate license agreements.
+- Some CLDR tools depend on library dependencies managed via Maven,
+ use of these libraries is governed by separate license agreements.
- Use of the ICU libraries is subject to the
[ICU License]("https://github.com/unicode-org/icu/blob/master/icu4j/main/shared/licenses/LICENSE"),
-included as [ICU-LICENSE](../../blob/master/ICU-LICENSE).
+included as [ICU-LICENSE](./ICU-LICENSE).
- Use of the Guava, Xerces, and Myanmar Tools libraries is subject to the
[Apache License]("http://www.apache.org/licenses/LICENSE-2.0.html")
-included as [apache-license.txt](../../blob/master/apache-license.txt).
+included as [apache-license.txt](./apache-license.txt).
### Copyright
-Copyright © 1991-2020 Unicode, Inc.
+Copyright © 1991-2021 Unicode, Inc.
All rights reserved.
[Terms of use](http://www.unicode.org/copyright.html)
diff --git a/apache-license.txt b/apache-license.txt
deleted file mode 100644
index d645695..0000000
--- a/apache-license.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/common/annotations/af.xml b/common/annotations/af.xml
index 1c8a495..9c7811f 100644
--- a/common/annotations/af.xml
+++ b/common/annotations/af.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -795,6 +795,8 @@
<annotation cp="🙄" type="tts">gesig met oë wat rol</annotation>
<annotation cp="😬">gesig | grynsend | grynsende gesig</annotation>
<annotation cp="😬" type="tts">grynsende gesig</annotation>
+ <annotation cp="😮💨">asem uit | fluister | fluit | gesig asem uit | kreun | snak | verlig</annotation>
+ <annotation cp="😮💨" type="tts">gesig asem uit</annotation>
<annotation cp="🤥">gesig | gesig wat jok | jok | leuen | lieg | onwaar</annotation>
<annotation cp="🤥" type="tts">gesig wat jok</annotation>
<annotation cp="😌">gesig | verlig | verligte gesig</annotation>
@@ -853,8 +855,6 @@
<annotation cp="☹" type="tts">gesig wat frons</annotation>
<annotation cp="😮">gesig | gesig met oop mond | mond | oop | simpatie</annotation>
<annotation cp="😮" type="tts">gesig met oop mond</annotation>
- <annotation cp="😮💨">asem uit | fluister | fluit | gesig asem uit | kreun | snak | verlig</annotation>
- <annotation cp="😮💨" type="tts">gesig asem uit</annotation>
<annotation cp="😯">gedemp | gedempte gesig | gesig | stil | verbaas</annotation>
<annotation cp="😯" type="tts">gedempte gesig</annotation>
<annotation cp="😲">gesig | geskok | verbaas | verstom | verstomde gesig</annotation>
@@ -973,12 +973,12 @@
<annotation cp="❣" type="tts">dik hartuitroepteken</annotation>
<annotation cp="💔">breek | gebroke | gebroke hartjie | hart</annotation>
<annotation cp="💔" type="tts">gebroke hartjie</annotation>
- <annotation cp="❤">hart | rooi | rooi hartjie</annotation>
- <annotation cp="❤" type="tts">rooi hartjie</annotation>
<annotation cp="❤🔥">brand | hart | hart wat brand | liefde | lus</annotation>
<annotation cp="❤🔥" type="tts">hart wat brand</annotation>
<annotation cp="❤🩹">beter | gesonder | helend | helende hart | herstel</annotation>
<annotation cp="❤🩹" type="tts">helende hart</annotation>
+ <annotation cp="❤">hart | rooi | rooi hartjie</annotation>
+ <annotation cp="❤" type="tts">rooi hartjie</annotation>
<annotation cp="🧡">oranje | oranje hartjie</annotation>
<annotation cp="🧡" type="tts">oranje hartjie</annotation>
<annotation cp="💛">geel | geel hartjie | hart</annotation>
@@ -1141,14 +1141,14 @@
<annotation cp="👨" type="tts">man</annotation>
<annotation cp="🧔">baard | bebaarde persoon | man</annotation>
<annotation cp="🧔" type="tts">bebaarde persoon</annotation>
- <annotation cp="👱♂">blond | blonde man | hare | man</annotation>
- <annotation cp="👱♂" type="tts">blonde man</annotation>
- <annotation cp="🧔♀">baard | vrou | vrou: baard</annotation>
- <annotation cp="🧔♀" type="tts">vrou: baard</annotation>
<annotation cp="🧔♂">baard | baard: man | man | man: baard</annotation>
<annotation cp="🧔♂" type="tts">man: baard</annotation>
+ <annotation cp="👱♂">blond | blonde man | hare | man</annotation>
+ <annotation cp="👱♂" type="tts">blonde man</annotation>
<annotation cp="👩">volwassene | vrou</annotation>
<annotation cp="👩" type="tts">vrou</annotation>
+ <annotation cp="🧔♀">baard | vrou | vrou: baard</annotation>
+ <annotation cp="🧔♀" type="tts">vrou: baard</annotation>
<annotation cp="👱♀">blond | blonde vrou | blondine | hare | vrou</annotation>
<annotation cp="👱♀" type="tts">blondine</annotation>
<annotation cp="🧓">geslagneutraal | ongespesifiseerde geslag | oud | ouer persoon | ouer volwassene | volwassene</annotation>
diff --git a/common/annotations/am.xml b/common/annotations/am.xml
index 2682581..2ded1fd 100644
--- a/common/annotations/am.xml
+++ b/common/annotations/am.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -335,6 +335,8 @@
<annotation cp="🙄" type="tts">የሚሽከረከሩ ዓይኖች ያሉት ፊት</annotation>
<annotation cp="😬">ታሞ የተጨማደደ | ታሞ የተጨማደደ ፊት | ፊት</annotation>
<annotation cp="😬" type="tts">ታሞ የተጨማደደ ፊት</annotation>
+ <annotation cp="😮💨" draft="contributed">ወደ ውጭ የሚተነፍስ ገጽ</annotation>
+ <annotation cp="😮💨" type="tts" draft="contributed">ወደ ውጭ የሚተነፍስ ገጽ</annotation>
<annotation cp="🤥">ውሸት | የሚዋሽ ፊት | ፊት | ፒኖኪዮ</annotation>
<annotation cp="🤥" type="tts">የሚዋሽ ፊት</annotation>
<annotation cp="😌">እፎይ ያለ | እፎይ ያለ ፊት | ፊት</annotation>
@@ -393,8 +395,6 @@
<annotation cp="☹" type="tts">የተኮሳተረ ፊት</annotation>
<annotation cp="😮">ሐዘኔታ | አፍ | አፍ የከፈተ ፊት | ክፍት | ፊት</annotation>
<annotation cp="😮" type="tts">አፍ የከፈተ ፊት</annotation>
- <annotation cp="😮💨" draft="contributed">ወደ ውጭ የሚተነፍስ ገጽ</annotation>
- <annotation cp="😮💨" type="tts" draft="contributed">ወደ ውጭ የሚተነፍስ ገጽ</annotation>
<annotation cp="😯">ተደመመ | ተገረመ | አንሾካሾከ | አንሾካሿኪ ፊት | ፊት</annotation>
<annotation cp="😯" type="tts">አንሾካሿኪ ፊት</annotation>
<annotation cp="😲">ሙሉ በሙሉ | የተገረመ | የደነገጠ | ፊት</annotation>
@@ -513,12 +513,12 @@
<annotation cp="❣" type="tts">በልብ ቅርፅ የተዘጋጀ የቃለ አጋኖ ምልክት</annotation>
<annotation cp="💔">ልብ | ሰበረ | የተሰበረ</annotation>
<annotation cp="💔" type="tts">የተሰበረ ልብ</annotation>
- <annotation cp="❤">ልብ | ቀይ ልብ</annotation>
- <annotation cp="❤" type="tts">ቀይ ልብ</annotation>
<annotation cp="❤🔥" draft="contributed">በበስጭት ላይ ያለ ልብ</annotation>
<annotation cp="❤🔥" type="tts" draft="contributed">በበስጭት ላይ ያለ ልብ</annotation>
<annotation cp="❤🩹" draft="contributed">የተጠገነ ልብ</annotation>
<annotation cp="❤🩹" type="tts" draft="contributed">የተጠገነ ልብ</annotation>
+ <annotation cp="❤">ልብ | ቀይ ልብ</annotation>
+ <annotation cp="❤" type="tts">ቀይ ልብ</annotation>
<annotation cp="🧡">ብርቱካናማ ልብ</annotation>
<annotation cp="🧡" type="tts">ብርቱካናማ ልብ</annotation>
<annotation cp="💛">ልብ | ቢጫ</annotation>
@@ -681,14 +681,14 @@
<annotation cp="👨" type="tts">ሰው</annotation>
<annotation cp="🧔">ጺማም ሰው</annotation>
<annotation cp="🧔" type="tts">ጺማም ሰው</annotation>
- <annotation cp="👱♂">ሰው | ወርቃማ | ወርቃማ ጸጉር ያለው ወንድ | ወንድ</annotation>
- <annotation cp="👱♂" type="tts">ወርቃማ ጸጉር ያለው ወንድ</annotation>
- <annotation cp="🧔♀" draft="contributed">ሴት: ጺም</annotation>
- <annotation cp="🧔♀" type="tts" draft="contributed">ሴት: ጺም</annotation>
<annotation cp="🧔♂" draft="contributed">ሰው: ጺም</annotation>
<annotation cp="🧔♂" type="tts" draft="contributed">ሰው: ጺም</annotation>
+ <annotation cp="👱♂">ሰው | ወርቃማ | ወርቃማ ጸጉር ያለው ወንድ | ወንድ</annotation>
+ <annotation cp="👱♂" type="tts">ወርቃማ ጸጉር ያለው ወንድ</annotation>
<annotation cp="👩">ሴት | እንስት</annotation>
<annotation cp="👩" type="tts">ሴት</annotation>
+ <annotation cp="🧔♀" draft="contributed">ሴት: ጺም</annotation>
+ <annotation cp="🧔♀" type="tts" draft="contributed">ሴት: ጺም</annotation>
<annotation cp="👱♀">ሰው | ሴት | ወርቃማ | ወርቃማ ጸጉር ያላት ሴት</annotation>
<annotation cp="👱♀" type="tts">ወርቃማ ጸጉር ያላት ሴት</annotation>
<annotation cp="🧓">ያረጀ ጎልማሳ</annotation>
diff --git a/common/annotations/ar.xml b/common/annotations/ar.xml
index e3cb0d9..d25c14e 100644
--- a/common/annotations/ar.xml
+++ b/common/annotations/ar.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -463,6 +463,8 @@
<annotation cp="🙄" type="tts">وجه بعينين تدوران</annotation>
<annotation cp="😬">عبوس | وجه متجهم</annotation>
<annotation cp="😬" type="tts">وجه متجهم</annotation>
+ <annotation cp="😮💨">راحة | زفير | صفير | همس | وجه يزفر الهواء | يتلهث</annotation>
+ <annotation cp="😮💨" type="tts">وجه يزفر الهواء</annotation>
<annotation cp="🤥">كذب | وجه | وجه كاذب</annotation>
<annotation cp="🤥" type="tts">وجه كاذب</annotation>
<annotation cp="😌">مطمئن | وجه مرتاح</annotation>
@@ -521,8 +523,6 @@
<annotation cp="☹" type="tts">وجه عابس</annotation>
<annotation cp="😮">فم مفتوح | وجه بفم مفتوح</annotation>
<annotation cp="😮" type="tts">وجه بفم مفتوح</annotation>
- <annotation cp="😮💨">راحة | زفير | صفير | همس | وجه يزفر الهواء | يتلهث</annotation>
- <annotation cp="😮💨" type="tts">وجه يزفر الهواء</annotation>
<annotation cp="😯">متفاجئ | مدهوش | مكتوم الصوت | وجه | وجه مخفوت الصوت</annotation>
<annotation cp="😯" type="tts">وجه مخفوت الصوت</annotation>
<annotation cp="😲">مصدوم | مندهش | مندهش تمامًا | وجه مندهش</annotation>
@@ -641,12 +641,12 @@
<annotation cp="❣" type="tts">قلب على شكل علامة تعجب</annotation>
<annotation cp="💔">انكسار | قلب | قلب مكسور | مشاعر</annotation>
<annotation cp="💔" type="tts">قلب مكسور</annotation>
- <annotation cp="❤">قلب | قلب أحمر</annotation>
- <annotation cp="❤" type="tts">قلب أحمر</annotation>
<annotation cp="❤🔥">القلب المقدس | حب | حريق | عشق | قلب | قلب يحترق</annotation>
<annotation cp="❤🔥" type="tts">قلب يحترق</annotation>
<annotation cp="❤🩹" draft="contributed">قلب يتعافى</annotation>
<annotation cp="❤🩹" type="tts" draft="contributed">قلب يتعافى</annotation>
+ <annotation cp="❤">قلب | قلب أحمر</annotation>
+ <annotation cp="❤" type="tts">قلب أحمر</annotation>
<annotation cp="🧡">برتقالة | قلب برتقالي</annotation>
<annotation cp="🧡" type="tts">قلب برتقالي</annotation>
<annotation cp="💛">أصفر | قلب | مشاعر</annotation>
@@ -809,14 +809,14 @@
<annotation cp="👨" type="tts">رجل</annotation>
<annotation cp="🧔">شخص بلحية | شخص مع لحية</annotation>
<annotation cp="🧔" type="tts">شخص بلحية</annotation>
- <annotation cp="👱♂">أشقر | رجل | رجل أشقر الشعر</annotation>
- <annotation cp="👱♂" type="tts">رجل أشقر</annotation>
- <annotation cp="🧔♀">امرأة | امرأة بلحية | امرأة مع لحية | لحية</annotation>
- <annotation cp="🧔♀" type="tts">امرأة بلحية</annotation>
<annotation cp="🧔♂">رجل | رجل بلحية | رجل مع لحية | لحية</annotation>
<annotation cp="🧔♂" type="tts">رجل بلحية</annotation>
+ <annotation cp="👱♂">أشقر | رجل | رجل أشقر الشعر</annotation>
+ <annotation cp="👱♂" type="tts">رجل أشقر</annotation>
<annotation cp="👩">أنثى | أنسة | بالغة | سيدة | شخص | كبيرة</annotation>
<annotation cp="👩" type="tts">سيدة</annotation>
+ <annotation cp="🧔♀">امرأة | امرأة بلحية | امرأة مع لحية | لحية</annotation>
+ <annotation cp="🧔♀" type="tts">امرأة بلحية</annotation>
<annotation cp="👱♀">امرأة | امرأة شقراء الشعر | شقراء</annotation>
<annotation cp="👱♀" type="tts">امرأة شقراء</annotation>
<annotation cp="🧓">بالغ أكبر في السن | عجوز | كبير في السن</annotation>
diff --git a/common/annotations/as.xml b/common/annotations/as.xml
index 7c9fd6a..0cdf9c6 100644
--- a/common/annotations/as.xml
+++ b/common/annotations/as.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -421,6 +421,8 @@
<annotation cp="🙄" type="tts">চকু পকাই থকা মুখ</annotation>
<annotation cp="😬">বিকৃত মুখ | মুখ | মুখ বিকৃত কৰা</annotation>
<annotation cp="😬" type="tts">বিকৃত মুখ</annotation>
+ <annotation cp="😮💨">আৰাম | গেঁথনি | নিশাহ | নিশাহ এৰা মুখ | ফুচ-ফুচনি | ফোফা | সুহুৰি</annotation>
+ <annotation cp="😮💨" type="tts">নিশাহ এৰা মুখ</annotation>
<annotation cp="🤥">পিনোচিয়ো | মিছা | মিছা কোৱা মুখ | মুখ</annotation>
<annotation cp="🤥" type="tts">মিছা কোৱা মুখ</annotation>
<annotation cp="😌">মুখ | স্বস্তি | স্বস্তিৰ মুখ</annotation>
@@ -479,8 +481,6 @@
<annotation cp="☹" type="tts">ভ্ৰু উঠোৱা মুখ</annotation>
<annotation cp="😮">খোলা | খোলা মুখৰ চেহেৰা | মুখ | সহানুভূতি</annotation>
<annotation cp="😮" type="tts">খোলা মুখৰ চেহেৰা</annotation>
- <annotation cp="😮💨">আৰাম | গেঁথনি | নিশাহ | নিশাহ এৰা মুখ | ফুচ-ফুচনি | ফোফা | সুহুৰি</annotation>
- <annotation cp="😮💨" type="tts">নিশাহ এৰা মুখ</annotation>
<annotation cp="😯">নিস্তব্ধ | নিস্তব্ধ চেহেৰা | বিষ্মিত | মুখ | হতভম্ব</annotation>
<annotation cp="😯" type="tts">নিস্তব্ধ চেহেৰা</annotation>
<annotation cp="😲">আচম্বিত | বিস্মিত | মুখ | সম্পূৰ্ণৰূপে</annotation>
@@ -599,12 +599,12 @@
<annotation cp="❣" type="tts">হৃদয়ৰ চিত্ৰ সম্বলিত ভাববোধক চিন</annotation>
<annotation cp="💔">ভগ্ন হৃদয় | ভঙা | ভাঙি যোৱা</annotation>
<annotation cp="💔" type="tts">ভগ্ন হৃদয়</annotation>
- <annotation cp="❤">ৰঙা হৃদয় | হাৰ্ট</annotation>
- <annotation cp="❤" type="tts">ৰঙা হৃদয়</annotation>
<annotation cp="❤🔥">কামভাৱ | জুইত থকা হৃদয় | জ্বলা | পবিত্ৰ হৃদয় | প্ৰেম | হৃদয়</annotation>
<annotation cp="❤🔥" type="tts">জুইত থকা হৃদয়</annotation>
<annotation cp="❤🩹">আৰোগ্য হোৱা | উদ্ধাৰ হোৱা | ঠিক হোৱা | সকাহ পোৱা | স্বাস্থ্য ঠিক হোৱা | স্বাস্থ্যকৰ | হৃদয় আৰোগ্য হোৱা</annotation>
<annotation cp="❤🩹" type="tts">হৃদয় আৰোগ্য হোৱা</annotation>
+ <annotation cp="❤">ৰঙা হৃদয় | হাৰ্ট</annotation>
+ <annotation cp="❤" type="tts">ৰঙা হৃদয়</annotation>
<annotation cp="🧡">কমলাৰঙী | কমলাৰঙী হৃদয়</annotation>
<annotation cp="🧡" type="tts">কমলাৰঙী হৃদয়</annotation>
<annotation cp="💛">হালধীয়া | হালধীয়া হৃদয়</annotation>
@@ -767,14 +767,14 @@
<annotation cp="👨" type="tts">মুনিহ</annotation>
<annotation cp="🧔">দাঢ়ি | পুৰুষ | পুৰুষ: দাঢ়ি | ব্যক্তি</annotation>
<annotation cp="🧔" type="tts">পুৰুষ: দাঢ়ি</annotation>
- <annotation cp="👱♂">চুলি | পুৰুষ | পুৰুষ: সোণালী চুলি | সোণালী চুলিৰ পুৰুষ | স্বৰ্ণকেশী</annotation>
- <annotation cp="👱♂" type="tts">পুৰুষ: সোণালী চুলি</annotation>
- <annotation cp="🧔♀">দাড়ি | মহিলা | মহিলা: দাড়ি</annotation>
- <annotation cp="🧔♀" type="tts">মহিলা: দাড়ি</annotation>
<annotation cp="🧔♂">দাড়ি | পুৰুষ | পুৰুষ: দাড়ি</annotation>
<annotation cp="🧔♂" type="tts">পুৰুষ: দাড়ি</annotation>
+ <annotation cp="👱♂">চুলি | পুৰুষ | পুৰুষ: সোণালী চুলি | সোণালী চুলিৰ পুৰুষ | স্বৰ্ণকেশী</annotation>
+ <annotation cp="👱♂" type="tts">পুৰুষ: সোণালী চুলি</annotation>
<annotation cp="👩">তিৰোতা | মহিলা</annotation>
<annotation cp="👩" type="tts">তিৰোতা</annotation>
+ <annotation cp="🧔♀">দাড়ি | মহিলা | মহিলা: দাড়ি</annotation>
+ <annotation cp="🧔♀" type="tts">মহিলা: দাড়ি</annotation>
<annotation cp="👱♀">চুলি | মহিলা | মহিলা: সোণালী চুলি | সোণালী চুলিৰ মহিলা | স্বৰ্ণকেশী</annotation>
<annotation cp="👱♀" type="tts">মহিলা: সোণালী চুলি</annotation>
<annotation cp="🧓">বয়স্ক | বয়স্ক প্ৰাপ্তবয়স্ক | লিংগ নিউট্ৰেল</annotation>
diff --git a/common/annotations/az.xml b/common/annotations/az.xml
index dc615d0..1017db7 100644
--- a/common/annotations/az.xml
+++ b/common/annotations/az.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -535,6 +535,8 @@
<annotation cp="🙄" type="tts">gözlərini fırladan üz</annotation>
<annotation cp="😬">üz | üz-gözünü turşudan üz | üz-gözünü turşutmaq</annotation>
<annotation cp="😬" type="tts">üz-gözünü turşudan üz</annotation>
+ <annotation cp="😮💨">ciyərəçəkmə | nəfəs alan üz | nəfəsalma | pıçıldama</annotation>
+ <annotation cp="😮💨" type="tts">nəfəs alan üz</annotation>
<annotation cp="🤥">adam | üzü | yalançı</annotation>
<annotation cp="🤥" type="tts">yalançı adam üzü</annotation>
<annotation cp="😌">rahat üz | üz | yüngülləşmiş</annotation>
@@ -593,8 +595,6 @@
<annotation cp="☹" type="tts">qaşqabaqlı üz</annotation>
<annotation cp="😮">açıq | ağız | ağzı açıq üz | simpatiya | üz</annotation>
<annotation cp="😮" type="tts">ağzı açıq üz</annotation>
- <annotation cp="😮💨">ciyərəçəkmə | nəfəs alan üz | nəfəsalma | pıçıldama</annotation>
- <annotation cp="😮💨" type="tts">nəfəs alan üz</annotation>
<annotation cp="😯">heyrətlənmiş | susmuş | təəccüblənmiş | üz</annotation>
<annotation cp="😯" type="tts">heyrətlənmiş üz</annotation>
<annotation cp="😲">şoka düşmüş | tamamilə | təəccüblənmiş | üz</annotation>
@@ -713,12 +713,12 @@
<annotation cp="❣" type="tts">ürək nida işarəsi ornamenti</annotation>
<annotation cp="💔">sındırılmış | sındırmaq | sınmış ürək | ürək</annotation>
<annotation cp="💔" type="tts">sınmış ürək</annotation>
- <annotation cp="❤">qırmızı ürək | ürək</annotation>
- <annotation cp="❤" type="tts">qırmızı ürək</annotation>
<annotation cp="❤🔥">alovlu ürək | müqəddəs ürək | sevgi | şəhvət | ürək | yanmaq</annotation>
<annotation cp="❤🔥" type="tts">alovlu ürək</annotation>
<annotation cp="❤🩹">özünə gəlmək | sağalma | sağlam | yara bandı bağlamaq | yara bandlı ürək</annotation>
<annotation cp="❤🩹" type="tts">yara bandlı ürək</annotation>
+ <annotation cp="❤">qırmızı ürək | ürək</annotation>
+ <annotation cp="❤" type="tts">qırmızı ürək</annotation>
<annotation cp="🧡">narıncı | narıncı ürək</annotation>
<annotation cp="🧡" type="tts">narıncı ürək</annotation>
<annotation cp="💛">sarı | ürək</annotation>
@@ -881,14 +881,14 @@
<annotation cp="👨" type="tts">kişi</annotation>
<annotation cp="🧔">saqqal | saqqallı şəxs</annotation>
<annotation cp="🧔" type="tts">saqqallı şəxs</annotation>
- <annotation cp="👱♂">kişi | sarışın</annotation>
- <annotation cp="👱♂" type="tts">sarışın kişi</annotation>
- <annotation cp="🧔♀">kişi | kişi: saqqal | qadın: saqqal | saqqal</annotation>
- <annotation cp="🧔♀" type="tts">qadın: saqqal</annotation>
<annotation cp="🧔♂">kişi | kişi; saqqal | kişi: saqqal | saqqal</annotation>
<annotation cp="🧔♂" type="tts">kişi; saqqal</annotation>
+ <annotation cp="👱♂">kişi | sarışın</annotation>
+ <annotation cp="👱♂" type="tts">sarışın kişi</annotation>
<annotation cp="👩">qadın</annotation>
<annotation cp="👩" type="tts">qadın</annotation>
+ <annotation cp="🧔♀">kişi | kişi: saqqal | qadın: saqqal | saqqal</annotation>
+ <annotation cp="🧔♀" type="tts">qadın: saqqal</annotation>
<annotation cp="👱♀">qadın | sarışın</annotation>
<annotation cp="👱♀" type="tts">sarışın qadın</annotation>
<annotation cp="🧓">gender-neytral | qoca | yaşlı böyük</annotation>
diff --git a/common/annotations/be.xml b/common/annotations/be.xml
index d9940c0..a517f06 100644
--- a/common/annotations/be.xml
+++ b/common/annotations/be.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -413,6 +413,8 @@
<annotation cp="🙄" type="tts">закочвае вочы</annotation>
<annotation cp="😬">грымаса | перакошаны | скрыўлены | скрыўлены твар</annotation>
<annotation cp="😬" type="tts">скрыўлены твар</annotation>
+ <annotation cp="😮💨">выдых | палёгка | перахапіла дыханне | свіст | твар выдыхае | уздых | шэпт</annotation>
+ <annotation cp="😮💨" type="tts">твар выдыхае</annotation>
<annotation cp="🤥">пінокіа | твар | твар хлуса | хлусня</annotation>
<annotation cp="🤥" type="tts">твар хлуса</annotation>
<annotation cp="😌">адчувае палёгку | палёгка | як добра</annotation>
@@ -471,8 +473,6 @@
<annotation cp="☹" type="tts">засмучаны твар</annotation>
<annotation cp="😮">адкрыты | рот | спачуванне | твар з адкрытым ротам</annotation>
<annotation cp="😮" type="tts">твар з адкрытым ротам</annotation>
- <annotation cp="😮💨">выдых | палёгка | перахапіла дыханне | свіст | твар выдыхае | уздых | шэпт</annotation>
- <annotation cp="😮💨" type="tts">твар выдыхае</annotation>
<annotation cp="😯">ашаломлены | здзіўлены | змоўклы | твар</annotation>
<annotation cp="😯" type="tts">ашаломлены твар</annotation>
<annotation cp="😲">здзіўлены | здзіўлены твар | цалкам | шакіраваны</annotation>
@@ -591,12 +591,12 @@
<annotation cp="❣" type="tts">клічнік у форме сэрца</annotation>
<annotation cp="💔">разбітае | расчараванне | сэрца</annotation>
<annotation cp="💔" type="tts">разбітае сэрца</annotation>
- <annotation cp="❤">сэрца | чырвонае сэрца</annotation>
- <annotation cp="❤" type="tts">чырвонае сэрца</annotation>
<annotation cp="❤🔥">агонь | жаданне | каханне | святое сэрца | сэрца | сэрца ў агні</annotation>
<annotation cp="❤🔥" type="tts">сэрца ў агні</annotation>
<annotation cp="❤🩹">аднаўленне | выздараўленне | загойванне | лепей | паляпшэнне | папраўленне | сэрца загойваецца</annotation>
<annotation cp="❤🩹" type="tts">сэрца загойваецца</annotation>
+ <annotation cp="❤">сэрца | чырвонае сэрца</annotation>
+ <annotation cp="❤" type="tts">чырвонае сэрца</annotation>
<annotation cp="🧡">аранжавае сэрца | аранжавы</annotation>
<annotation cp="🧡" type="tts">аранжавае сэрца</annotation>
<annotation cp="💛">жоўтае сэрца | жоўты | сэрца</annotation>
@@ -759,14 +759,14 @@
<annotation cp="👨" type="tts">мужчына</annotation>
<annotation cp="🧔">барада | чалавек з барадой</annotation>
<annotation cp="🧔" type="tts">чалавек з барадой</annotation>
- <annotation cp="👱♂">бландзін | бялявы | мужчына</annotation>
- <annotation cp="👱♂" type="tts">бялявы мужчына</annotation>
- <annotation cp="🧔♀">барада | жанчына | жанчына: барада</annotation>
- <annotation cp="🧔♀" type="tts">жанчына: барада</annotation>
<annotation cp="🧔♂">барада | мужчына | мужчына: барада</annotation>
<annotation cp="🧔♂" type="tts">мужчына: барада</annotation>
+ <annotation cp="👱♂">бландзін | бялявы | мужчына</annotation>
+ <annotation cp="👱♂" type="tts">бялявы мужчына</annotation>
<annotation cp="👩">жанчына</annotation>
<annotation cp="👩" type="tts">жанчына</annotation>
+ <annotation cp="🧔♀">барада | жанчына | жанчына: барада</annotation>
+ <annotation cp="🧔♀" type="tts">жанчына: барада</annotation>
<annotation cp="👱♀">бландзінка | бялявая | жанчына</annotation>
<annotation cp="👱♀" type="tts">бялявая жанчына</annotation>
<annotation cp="🧓">няпэўнага полу | у гадах | чалавек сталага ўзросту</annotation>
diff --git a/common/annotations/bg.xml b/common/annotations/bg.xml
index 0e50047..d3c95bd 100644
--- a/common/annotations/bg.xml
+++ b/common/annotations/bg.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -389,6 +389,8 @@
<annotation cp="🙄" type="tts">Лице с извъртени нагоре очи</annotation>
<annotation cp="😬">гримаса | лице | Лице с гримаса</annotation>
<annotation cp="😬" type="tts">Лице с гримаса</annotation>
+ <annotation cp="😮💨">въздъхвам | издишвам | издишващо лице | охкам | пъшкам | шепна</annotation>
+ <annotation cp="😮💨" type="tts">издишващо лице</annotation>
<annotation cp="🤥">лице | лъжа | лъжещо лице | пинокио</annotation>
<annotation cp="🤥" type="tts">лъжещо лице</annotation>
<annotation cp="😌">лице | облекчен | Облекчено лице</annotation>
@@ -447,8 +449,6 @@
<annotation cp="☹" type="tts">Намръщено лице</annotation>
<annotation cp="😮">лице | Лице с отворена уста | отворен | съчувствие | уста</annotation>
<annotation cp="😮" type="tts">Лице с отворена уста</annotation>
- <annotation cp="😮💨">въздъхвам | издишвам | издишващо лице | охкам | пъшкам | шепна</annotation>
- <annotation cp="😮💨" type="tts">издишващо лице</annotation>
<annotation cp="😯">впечатлен | изненадан | Изненадано лице | лице</annotation>
<annotation cp="😯" type="tts">Изненадано лице</annotation>
<annotation cp="😲">изумен | лице | учуден | Учудено лице | шокиран</annotation>
@@ -567,12 +567,12 @@
<annotation cp="❣" type="tts">Плътен орнамент от сърце – удивителна</annotation>
<annotation cp="💔">разбито | Разбито сърце | сърце</annotation>
<annotation cp="💔" type="tts">Разбито сърце</annotation>
- <annotation cp="❤">сърце | Червено сърце</annotation>
- <annotation cp="❤" type="tts">Червено сърце</annotation>
<annotation cp="❤🔥">любов | огън | свещено сърце | страст | сърце | сърце в пламъци</annotation>
<annotation cp="❤🔥" type="tts">сърце в пламъци</annotation>
<annotation cp="❤🩹">възстановяване | добре | оздравяване | по-здрав | подобрение | превързано сърце</annotation>
<annotation cp="❤🩹" type="tts">превързано сърце</annotation>
+ <annotation cp="❤">сърце | Червено сърце</annotation>
+ <annotation cp="❤" type="tts">Червено сърце</annotation>
<annotation cp="🧡">оранжево | оранжево сърце</annotation>
<annotation cp="🧡" type="tts">оранжево сърце</annotation>
<annotation cp="💛">жълто | Жълто сърце | сърце</annotation>
@@ -735,14 +735,14 @@
<annotation cp="👨" type="tts">мъж</annotation>
<annotation cp="🧔">брада | човек с брада</annotation>
<annotation cp="🧔" type="tts">човек с брада</annotation>
- <annotation cp="👱♂">блондин | рус мъж | руса коса</annotation>
- <annotation cp="👱♂" type="tts">блондин</annotation>
- <annotation cp="🧔♀">брада | жена | жена: брада</annotation>
- <annotation cp="🧔♀" type="tts">жена: брада</annotation>
<annotation cp="🧔♂">брада | мъж | мъж: брада</annotation>
<annotation cp="🧔♂" type="tts">мъж: брада</annotation>
+ <annotation cp="👱♂">блондин | рус мъж | руса коса</annotation>
+ <annotation cp="👱♂" type="tts">блондин</annotation>
<annotation cp="👩">жена</annotation>
<annotation cp="👩" type="tts">жена</annotation>
+ <annotation cp="🧔♀">брада | жена | жена: брада</annotation>
+ <annotation cp="🧔♀" type="tts">жена: брада</annotation>
<annotation cp="👱♀">блондинка | руса жена | руса коса</annotation>
<annotation cp="👱♀" type="tts">блондинка</annotation>
<annotation cp="🧓">без определен пол | възрастен | неопределен пол | по-възрастен човек</annotation>
diff --git a/common/annotations/bn.xml b/common/annotations/bn.xml
index c2bd408..6451ae2 100644
--- a/common/annotations/bn.xml
+++ b/common/annotations/bn.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -463,6 +463,8 @@
<annotation cp="🙄" type="tts">চোখ গোল গোল করা মুখ</annotation>
<annotation cp="😬">দাঁত বার করা মুখ | ভেংচানো | মুখ</annotation>
<annotation cp="😬" type="tts">দাঁত বার করা মুখ</annotation>
+ <annotation cp="😮💨">কাতরানো | ত্রাণ | নিঃশ্বাস | নিশ্বাস ছাড়া মুখ | ফিসফিস | বাঁশি | হাঁফানো</annotation>
+ <annotation cp="😮💨" type="tts">নিশ্বাস ছাড়া মুখ</annotation>
<annotation cp="🤥">পিনাকিও | মিথ্যা | মিথ্যুকের নাক লম্বা | মুখ</annotation>
<annotation cp="🤥" type="tts">মিথ্যুকের নাক লম্বা</annotation>
<annotation cp="😌">চিন্তা মুক্ত মুখ | মুখ | স্বস্তি পাওয়া</annotation>
@@ -521,8 +523,6 @@
<annotation cp="☹" type="tts">রাগান্বিত মুখ</annotation>
<annotation cp="😮">খোলা | ঠোঁট | মুখ | সহানুভূতি | হাঁ করা মুখ</annotation>
<annotation cp="😮" type="tts">হাঁ করা মুখ</annotation>
- <annotation cp="😮💨">কাতরানো | ত্রাণ | নিঃশ্বাস | নিশ্বাস ছাড়া মুখ | ফিসফিস | বাঁশি | হাঁফানো</annotation>
- <annotation cp="😮💨" type="tts">নিশ্বাস ছাড়া মুখ</annotation>
<annotation cp="😯">চুপ করার ইঙ্গিত করা | নিস্তব্ধ মুখ | বিস্মিত হওয়া | মুখ | হতভম্ব হওয়া</annotation>
<annotation cp="😯" type="tts">নিস্তব্ধ মুখ</annotation>
<annotation cp="😲">অবাক হয়ে যাওয়া মুখ | আশ্চর্য হওয়া | মর্মাহত | মুখ | সম্পূর্ণ</annotation>
@@ -641,12 +641,12 @@
<annotation cp="❣" type="tts">হার্টের আকারের বিস্ময়সূচক চিহ্ন</annotation>
<annotation cp="💔">ভাঙা | ভাঙ্গা হার্ট | ভেঙে যাওয়া | হার্ট</annotation>
<annotation cp="💔" type="tts">ভাঙ্গা হার্ট</annotation>
- <annotation cp="❤">লাল হার্ট | হৃদয়</annotation>
- <annotation cp="❤" type="tts">লাল হার্ট</annotation>
<annotation cp="❤🔥" draft="provisional">আগুনে হৃদয়</annotation>
<annotation cp="❤🔥" type="tts" draft="provisional">আগুনে হৃদয়</annotation>
<annotation cp="❤🩹">উন্নতিশীল | নিরাময়কারী | পুনরুদ্ধার করা | ভাল | সংশোধিত হৃদয় | সেরে উঠা | স্বাস্থ্যকর</annotation>
<annotation cp="❤🩹" type="tts">সংশোধিত হৃদয়</annotation>
+ <annotation cp="❤">লাল হার্ট | হৃদয়</annotation>
+ <annotation cp="❤" type="tts">লাল হার্ট</annotation>
<annotation cp="🧡">কমলা | কমলা হার্ট</annotation>
<annotation cp="🧡" type="tts">কমলা হার্ট</annotation>
<annotation cp="💛">হলুদ | হলুদ হার্ট</annotation>
@@ -809,14 +809,14 @@
<annotation cp="👨" type="tts">পুরুষ</annotation>
<annotation cp="🧔">দাড়ি | দাড়িওয়ালা পুরুষ | দাড়িওয়ালা ব্যক্তি</annotation>
<annotation cp="🧔" type="tts">দাড়িওয়ালা ব্যক্তি</annotation>
- <annotation cp="👱♂">ছেলে | পুরুষ | পুরুষ: স্বর্ণকেশী চুল | স্বর্ণকেশ | স্বর্ণকেশ ওয়ালা পুরুষ</annotation>
- <annotation cp="👱♂" type="tts">পুরুষ: স্বর্ণকেশী চুল</annotation>
- <annotation cp="🧔♀">দাড়ি | মহিলা | মহিলা: দাড়ি</annotation>
- <annotation cp="🧔♀" type="tts">মহিলা: দাড়ি</annotation>
<annotation cp="🧔♂">দাড়ি | পুরুষ | পুরুষ: দাড়ি</annotation>
<annotation cp="🧔♂" type="tts">পুরুষ: দাড়ি</annotation>
+ <annotation cp="👱♂">ছেলে | পুরুষ | পুরুষ: স্বর্ণকেশী চুল | স্বর্ণকেশ | স্বর্ণকেশ ওয়ালা পুরুষ</annotation>
+ <annotation cp="👱♂" type="tts">পুরুষ: স্বর্ণকেশী চুল</annotation>
<annotation cp="👩">নারী | মহিলা</annotation>
<annotation cp="👩" type="tts">মহিলা</annotation>
+ <annotation cp="🧔♀">দাড়ি | মহিলা | মহিলা: দাড়ি</annotation>
+ <annotation cp="🧔♀" type="tts">মহিলা: দাড়ি</annotation>
<annotation cp="👱♀">চুল | মহিলা | মহিলা: স্বর্ণকেশী | স্বর্ণকেশী</annotation>
<annotation cp="👱♀" type="tts">মহিলা: স্বর্ণকেশী</annotation>
<annotation cp="🧓">বড় প্রাপ্তবয়স্ক | বয়স্ক | লিঙ্গ-নিরপেক্ষ</annotation>
diff --git a/common/annotations/bs.xml b/common/annotations/bs.xml
index c27c5cd..9809e2c 100644
--- a/common/annotations/bs.xml
+++ b/common/annotations/bs.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -795,6 +795,8 @@
<annotation cp="🙄" type="tts">kolutanje očima</annotation>
<annotation cp="😬">grimasa | lice</annotation>
<annotation cp="😬" type="tts">grimasa</annotation>
+ <annotation cp="😮💨">dahtanje | izdisanje | lice izdiše | odahnuti | šaptati | stenjanje | zviždati</annotation>
+ <annotation cp="😮💨" type="tts">lice izdiše</annotation>
<annotation cp="🤥">laganje | laž | lice | pinokio</annotation>
<annotation cp="🤥" type="tts">laganje</annotation>
<annotation cp="😌">lice | olakšanje | rasterećenje</annotation>
@@ -853,8 +855,6 @@
<annotation cp="☹" type="tts">namrštenost</annotation>
<annotation cp="😮">lice | šokiranost | usta | zinuo</annotation>
<annotation cp="😮" type="tts">zinuo</annotation>
- <annotation cp="😮💨">dahtanje | izdisanje | lice izdiše | odahnuti | šaptati | stenjanje | zviždati</annotation>
- <annotation cp="😮💨" type="tts">lice izdiše</annotation>
<annotation cp="😯">iznenađen | lice | nijem | zanijemio | zapanjen</annotation>
<annotation cp="😯" type="tts">zanijemio</annotation>
<annotation cp="😲">lice | totalno | zapanjen | zapanjenost | zatečen</annotation>
@@ -973,12 +973,12 @@
<annotation cp="❣" type="tts">uzvičnik u obliku srca</annotation>
<annotation cp="💔">patnja | slomljeno | srce</annotation>
<annotation cp="💔" type="tts">slomljeno srce</annotation>
- <annotation cp="❤">crveno srce | srce</annotation>
- <annotation cp="❤" type="tts">crveno srce</annotation>
<annotation cp="❤🔥">goriti | ljubav | požuda | srce | sveto srce | zapaljeno srce</annotation>
<annotation cp="❤🔥" type="tts">zapaljeno srce</annotation>
<annotation cp="❤🩹">dobro | liječenje | liječenje srca | oporavak | ozdravljenje | poboljšanje | zdravije</annotation>
<annotation cp="❤🩹" type="tts">liječenje srca</annotation>
+ <annotation cp="❤">crveno srce | srce</annotation>
+ <annotation cp="❤" type="tts">crveno srce</annotation>
<annotation cp="🧡">narandžasta | narandžasto srce | srce</annotation>
<annotation cp="🧡" type="tts">narandžasto srce</annotation>
<annotation cp="💛">srce | žuta | žuto srce</annotation>
@@ -1141,14 +1141,14 @@
<annotation cp="👨" type="tts">muškarac</annotation>
<annotation cp="🧔">brada | muškarac s bradom | osoba s bradom</annotation>
<annotation cp="🧔" type="tts">osoba s bradom</annotation>
- <annotation cp="👱♂">kosa | muškarac | muškarac s plavom kosom | plavo | plavušan</annotation>
- <annotation cp="👱♂" type="tts">muškarac s plavom kosom</annotation>
- <annotation cp="🧔♀">brada | žena | žena: brada</annotation>
- <annotation cp="🧔♀" type="tts">žena: brada</annotation>
<annotation cp="🧔♂">brada | muškarac | muškarac s bradom | muškarac: s bradom</annotation>
<annotation cp="🧔♂" type="tts">muškarac s bradom</annotation>
+ <annotation cp="👱♂">kosa | muškarac | muškarac s plavom kosom | plavo | plavušan</annotation>
+ <annotation cp="👱♂" type="tts">muškarac s plavom kosom</annotation>
<annotation cp="👩">odrasla osoba | žena</annotation>
<annotation cp="👩" type="tts">žena</annotation>
+ <annotation cp="🧔♀">brada | žena | žena: brada</annotation>
+ <annotation cp="🧔♀" type="tts">žena: brada</annotation>
<annotation cp="👱♀">kosa | plavo | plavuša | žena | žena s plavom kosom</annotation>
<annotation cp="👱♀" type="tts">žena s plavom kosom</annotation>
<annotation cp="🧓">neodređen spol | srednji rod | starija odrasla osoba | staro</annotation>
diff --git a/common/annotations/ca.xml b/common/annotations/ca.xml
index 9b9848c..d3b48ef 100644
--- a/common/annotations/ca.xml
+++ b/common/annotations/ca.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -383,6 +383,8 @@
<annotation cp="🙄" type="tts">cara amb els ulls en blanc</annotation>
<annotation cp="😬">cara | cara que fa una ganyota amb les dents | dents | ganyota</annotation>
<annotation cp="😬" type="tts">cara que fa una ganyota amb les dents</annotation>
+ <annotation cp="😮💨">alleujament | cara que exhala | exhalar | xiulet | xiuxiueig</annotation>
+ <annotation cp="😮💨" type="tts">cara que exhala</annotation>
<annotation cp="🤥">cara | cara de mentider | mentider | nas | Pinotxo</annotation>
<annotation cp="🤥" type="tts">cara de mentider</annotation>
<annotation cp="😌">alleujament | cara | cara d’alleujament</annotation>
@@ -441,8 +443,6 @@
<annotation cp="☹" type="tts">cara arrufada</annotation>
<annotation cp="😮">boca oberta | cara | cara amb la boca oberta</annotation>
<annotation cp="😮" type="tts">cara amb la boca oberta</annotation>
- <annotation cp="😮💨">alleujament | cara que exhala | exhalar | xiulet | xiuxiueig</annotation>
- <annotation cp="😮💨" type="tts">cara que exhala</annotation>
<annotation cp="😯">cara | cara de sorpresa | sorpresa</annotation>
<annotation cp="😯" type="tts">cara de sorpresa</annotation>
<annotation cp="😲">cara | estupefacta | estupefacte</annotation>
@@ -561,12 +561,12 @@
<annotation cp="❣" type="tts">exclamació en forma de cor</annotation>
<annotation cp="💔">cor | trencar | trencat</annotation>
<annotation cp="💔" type="tts">cor trencat</annotation>
- <annotation cp="❤">cor | cor vermell</annotation>
- <annotation cp="❤" type="tts">cor vermell</annotation>
<annotation cp="❤🔥">amor | cor | cor en flames | cor sagrat | foc | luxúria</annotation>
<annotation cp="❤🔥" type="tts">cor en flames</annotation>
<annotation cp="❤🩹">cor | cor embenat | millor | millora | recuperació | salut</annotation>
<annotation cp="❤🩹" type="tts">cor embenat</annotation>
+ <annotation cp="❤">cor | cor vermell</annotation>
+ <annotation cp="❤" type="tts">cor vermell</annotation>
<annotation cp="🧡">cor taronja | taronja</annotation>
<annotation cp="🧡" type="tts">cor taronja</annotation>
<annotation cp="💛">cor | cor groc</annotation>
@@ -729,14 +729,14 @@
<annotation cp="👨" type="tts">home</annotation>
<annotation cp="🧔">barba | persona | persona: barba</annotation>
<annotation cp="🧔" type="tts">persona: barba</annotation>
- <annotation cp="👱♂">cabell | home | home: cabell ros | ros</annotation>
- <annotation cp="👱♂" type="tts">home: cabell ros</annotation>
- <annotation cp="🧔♀">barba | dona | dona: barba</annotation>
- <annotation cp="🧔♀" type="tts">dona: barba</annotation>
<annotation cp="🧔♂">barba | home | home: barba</annotation>
<annotation cp="🧔♂" type="tts">home: barba</annotation>
+ <annotation cp="👱♂">cabell | home | home: cabell ros | ros</annotation>
+ <annotation cp="👱♂" type="tts">home: cabell ros</annotation>
<annotation cp="👩">dona | femení</annotation>
<annotation cp="👩" type="tts">dona</annotation>
+ <annotation cp="🧔♀">barba | dona | dona: barba</annotation>
+ <annotation cp="🧔♀" type="tts">dona: barba</annotation>
<annotation cp="👱♀">cabell | dona | dona: cabell ros | rossa</annotation>
<annotation cp="👱♀" type="tts">dona: cabell ros</annotation>
<annotation cp="🧓">adult | gran | persona</annotation>
diff --git a/common/annotations/cs.xml b/common/annotations/cs.xml
index a7d6f2f..f7af5c0 100644
--- a/common/annotations/cs.xml
+++ b/common/annotations/cs.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -421,6 +421,8 @@
<annotation cp="🙄" type="tts">obličej s očima v sloup</annotation>
<annotation cp="😬">grimasa | grimasa s vyceněnými zuby | smajlík | tvář | výraz</annotation>
<annotation cp="😬" type="tts">grimasa s vyceněnými zuby</annotation>
+ <annotation cp="😮💨">lapání po dechu | oddechnutí | pískání | šepot | úleva | výdech | vydechnutí | vydechující obličej</annotation>
+ <annotation cp="😮💨" type="tts">vydechující obličej</annotation>
<annotation cp="🤥">lhát | obličej lháře | pinocchio | smajlík | tvář | výraz</annotation>
<annotation cp="🤥" type="tts">obličej lháře</annotation>
<annotation cp="😌">obličej s výrazem úlevy | smajlík | tvář | úleva | výraz</annotation>
@@ -479,8 +481,6 @@
<annotation cp="☹" type="tts">zamračený obličej</annotation>
<annotation cp="😮">obličej s otevřenou pusou | otevřený | smajlík | soucit | tvář | ústa | výraz</annotation>
<annotation cp="😮" type="tts">obličej s otevřenou pusou</annotation>
- <annotation cp="😮💨">lapání po dechu | oddechnutí | pískání | šepot | úleva | výdech | vydechnutí | vydechující obličej</annotation>
- <annotation cp="😮💨" type="tts">vydechující obličej</annotation>
<annotation cp="😯">obličej se zaraženým výrazem | překvapený | smajlík | tichý | tvář | výraz | zaražený</annotation>
<annotation cp="😯" type="tts">obličej se zaraženým výrazem</annotation>
<annotation cp="😲">naprosto | ohromený | smajlík | šok | tvář | úplně | úžas | užaslý obličej | výraz</annotation>
@@ -599,12 +599,12 @@
<annotation cp="❣" type="tts">srdce jako vykřičník</annotation>
<annotation cp="💔">srdce | zlomené srdce | zlomený | zlomit</annotation>
<annotation cp="💔" type="tts">zlomené srdce</annotation>
- <annotation cp="❤">rudé srdce | srdce</annotation>
- <annotation cp="❤" type="tts">rudé srdce</annotation>
<annotation cp="❤🔥">hořet | hořící srdce | láska | nejsvětější srdce | plamen | srdce | vášeň</annotation>
<annotation cp="❤🔥" type="tts">hořící srdce</annotation>
<annotation cp="❤🩹">náplast | uzdravit | vyléčit | záplata | záplatované srdce | zdraví | zlepšení | zotavení</annotation>
<annotation cp="❤🩹" type="tts">záplatované srdce</annotation>
+ <annotation cp="❤">rudé srdce | srdce</annotation>
+ <annotation cp="❤" type="tts">rudé srdce</annotation>
<annotation cp="🧡">oranžová | oranžové srdce | srdce</annotation>
<annotation cp="🧡" type="tts">oranžové srdce</annotation>
<annotation cp="💛">srdce | žlutá | žluté srdce</annotation>
@@ -767,14 +767,14 @@
<annotation cp="👨" type="tts">muž</annotation>
<annotation cp="🧔">osoba s plnovousem | plnovous | vous | vousáč</annotation>
<annotation cp="🧔" type="tts">osoba s plnovousem</annotation>
- <annotation cp="👱♂">blond | blonďák | muž | plavovlasý | světlovlasý</annotation>
- <annotation cp="👱♂" type="tts">blonďák</annotation>
- <annotation cp="🧔♀">plnovous | vous | vousatá žena | žena | žena s plnovousem</annotation>
- <annotation cp="🧔♀" type="tts">žena s plnovousem</annotation>
<annotation cp="🧔♂">muž s plnovousem | plnovous | vous | vousáč</annotation>
<annotation cp="🧔♂" type="tts">muž s plnovousem</annotation>
+ <annotation cp="👱♂">blond | blonďák | muž | plavovlasý | světlovlasý</annotation>
+ <annotation cp="👱♂" type="tts">blonďák</annotation>
<annotation cp="👩">žena</annotation>
<annotation cp="👩" type="tts">žena</annotation>
+ <annotation cp="🧔♀">plnovous | vous | vousatá žena | žena | žena s plnovousem</annotation>
+ <annotation cp="🧔♀" type="tts">žena s plnovousem</annotation>
<annotation cp="👱♀">blond | blondýna | blondýnka | plavovláska | světlovláska | žena</annotation>
<annotation cp="👱♀" type="tts">blondýna</annotation>
<annotation cp="🧓">člověk | neutrální | osoba | stará | starší dospělý člověk | starý</annotation>
diff --git a/common/annotations/cy.xml b/common/annotations/cy.xml
index 7448bf2..40bf64d 100644
--- a/common/annotations/cy.xml
+++ b/common/annotations/cy.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -514,6 +514,8 @@
<annotation cp="🙄" type="tts">wyneb â llygaid yn rholio</annotation>
<annotation cp="😬">wyneb | wyneb ag ystum | ystum</annotation>
<annotation cp="😬" type="tts">wyneb ag ystum</annotation>
+ <annotation cp="😮💨">anadlu allan | chwiban | ebychu | griddfan | rhyddhad | sibrwd | wyneb anadlu allan</annotation>
+ <annotation cp="😮💨" type="tts">wyneb anadlu allan</annotation>
<annotation cp="🤥">celwydd | pinocchio | wyneb</annotation>
<annotation cp="🤥" type="tts">wyneb celwydd</annotation>
<annotation cp="😌">rhyddhad | wyneb | wyneb o ryddhad</annotation>
@@ -572,8 +574,6 @@
<annotation cp="☹" type="tts">wyneb gwgus</annotation>
<annotation cp="😮">agored | ceg | cydymdeimlad | wyneb | wyneb â cheg agored</annotation>
<annotation cp="😮" type="tts">wyneb â cheg agored</annotation>
- <annotation cp="😮💨">anadlu allan | chwiban | ebychu | griddfan | rhyddhad | sibrwd | wyneb anadlu allan</annotation>
- <annotation cp="😮💨" type="tts">wyneb anadlu allan</annotation>
<annotation cp="😯">distewi | syfrdanu | wyneb</annotation>
<annotation cp="😯" type="tts">wyneb distewi</annotation>
<annotation cp="😲">hollol | rhyfeddu | syfrdanu | wyneb | wyneb wedi rhyfeddu</annotation>
@@ -692,12 +692,12 @@
<annotation cp="❣" type="tts">ebychiad trwm galon</annotation>
<annotation cp="💔">calon | calon wedi torri | torri</annotation>
<annotation cp="💔" type="tts">calon wedi torri</annotation>
- <annotation cp="❤">calon | calon goch</annotation>
- <annotation cp="❤" type="tts">calon goch</annotation>
<annotation cp="❤🔥">calon | calon ar dân | calon gysegredig | cariad | chwant | llosgi</annotation>
<annotation cp="❤🔥" type="tts">calon ar dân</annotation>
<annotation cp="❤🩹">gwella | iach | iachach | trwsio | trwsio calon</annotation>
<annotation cp="❤🩹" type="tts">trwsio calon</annotation>
+ <annotation cp="❤">calon | calon goch</annotation>
+ <annotation cp="❤" type="tts">calon goch</annotation>
<annotation cp="🧡">calon oren | oren</annotation>
<annotation cp="🧡" type="tts">calon oren</annotation>
<annotation cp="💛">calon | calon felen | melyn</annotation>
@@ -860,14 +860,14 @@
<annotation cp="👨" type="tts">dyn</annotation>
<annotation cp="🧔">barf | dyn â barf | person barfog | person: barf</annotation>
<annotation cp="🧔" type="tts">person: barf</annotation>
- <annotation cp="👱♂">blond | dyn | dyn â gwallt golau | gwallt golau</annotation>
- <annotation cp="👱♂" type="tts">dyn â gwallt golau</annotation>
- <annotation cp="🧔♀">barf | fenyw | menyw: barf</annotation>
- <annotation cp="🧔♀" type="tts">menyw: barf</annotation>
<annotation cp="🧔♂">barf | dyn | dyn: barf</annotation>
<annotation cp="🧔♂" type="tts">dyn: barf</annotation>
+ <annotation cp="👱♂">blond | dyn | dyn â gwallt golau | gwallt golau</annotation>
+ <annotation cp="👱♂" type="tts">dyn â gwallt golau</annotation>
<annotation cp="👩">menyw | oedolyn</annotation>
<annotation cp="👩" type="tts">menyw</annotation>
+ <annotation cp="🧔♀">barf | fenyw | menyw: barf</annotation>
+ <annotation cp="🧔♀" type="tts">menyw: barf</annotation>
<annotation cp="👱♀">blonde | gwallt golau | menyw | menyw â gwallt golau</annotation>
<annotation cp="👱♀" type="tts">menyw â gwallt golau</annotation>
<annotation cp="🧓">hen | niwtral o ran rhyw | oedolyn oedranus</annotation>
diff --git a/common/annotations/da.xml b/common/annotations/da.xml
index 19fd7ed..5e45b24 100644
--- a/common/annotations/da.xml
+++ b/common/annotations/da.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -647,6 +647,8 @@
<annotation cp="🙄" type="tts">ansigt med rullende øjne</annotation>
<annotation cp="😬">ansigt | lave grimasse | sammenbidt ansigt</annotation>
<annotation cp="😬" type="tts">sammenbidt ansigt</annotation>
+ <annotation cp="😮💨">ånde ud | ansigt | ekshalerende | fløjt | hvisken | lettelse | pift | pyha | udåndende ansigt | udånding</annotation>
+ <annotation cp="😮💨" type="tts">udåndende ansigt</annotation>
<annotation cp="🤥">ansigt | lang næse | løgn | løgneransigt | lyver | pinocchio</annotation>
<annotation cp="🤥" type="tts">løgneransigt</annotation>
<annotation cp="😌">ansigt | lettelse | lettet ansigt</annotation>
@@ -705,8 +707,6 @@
<annotation cp="☹" type="tts">trist ansigt</annotation>
<annotation cp="😮">ansigt | ansigt med åben mund</annotation>
<annotation cp="😮" type="tts">ansigt med åben mund</annotation>
- <annotation cp="😮💨">ånde ud | ansigt | ekshalerende | fløjt | hvisken | lettelse | pift | pyha | udåndende ansigt | udånding</annotation>
- <annotation cp="😮💨" type="tts">udåndende ansigt</annotation>
<annotation cp="😯">stille ansigt | tavst ansigt</annotation>
<annotation cp="😯" type="tts">tavst ansigt</annotation>
<annotation cp="😲">chokeret | overrasket ansigt</annotation>
@@ -825,12 +825,12 @@
<annotation cp="❣" type="tts">hjerte som udråbstegn</annotation>
<annotation cp="💔">knust hjerte | ulykkelig kærlighed</annotation>
<annotation cp="💔" type="tts">knust hjerte</annotation>
- <annotation cp="❤">hjerte | rødt hjerte</annotation>
- <annotation cp="❤" type="tts">rødt hjerte</annotation>
<annotation cp="❤🔥">brændende hjerte | brændende kærlighed | hjerte med ild i | ild | kærlighed | passion</annotation>
<annotation cp="❤🔥" type="tts">brændende hjerte</annotation>
<annotation cp="❤🩹">bedring | helende hjerte | hjerte | plaster | plaster på hjerte | rask | sundere</annotation>
<annotation cp="❤🩹" type="tts">helende hjerte</annotation>
+ <annotation cp="❤">hjerte | rødt hjerte</annotation>
+ <annotation cp="❤" type="tts">rødt hjerte</annotation>
<annotation cp="🧡">følelser | hjerte | orange</annotation>
<annotation cp="🧡" type="tts">orange hjerte</annotation>
<annotation cp="💛">følelser | gul | gult hjerte | hjerte</annotation>
@@ -993,14 +993,14 @@
<annotation cp="👨" type="tts">mand</annotation>
<annotation cp="🧔">fuldskæg | person | person med skæg | skæg</annotation>
<annotation cp="🧔" type="tts">person med skæg</annotation>
- <annotation cp="👱♂">blond | lyshåret | mand</annotation>
- <annotation cp="👱♂" type="tts">blond mand</annotation>
- <annotation cp="🧔♀">fuldskæg | kvinde | kvinde med skæg | skæg</annotation>
- <annotation cp="🧔♀" type="tts">kvinde med skæg</annotation>
<annotation cp="🧔♂">fuldskæg | mand | mand med skæg | skæg</annotation>
<annotation cp="🧔♂" type="tts">mand med skæg</annotation>
+ <annotation cp="👱♂">blond | lyshåret | mand</annotation>
+ <annotation cp="👱♂" type="tts">blond mand</annotation>
<annotation cp="👩">kvinde | menneske | person</annotation>
<annotation cp="👩" type="tts">kvinde</annotation>
+ <annotation cp="🧔♀">fuldskæg | kvinde | kvinde med skæg | skæg</annotation>
+ <annotation cp="🧔♀" type="tts">kvinde med skæg</annotation>
<annotation cp="👱♀">blond kvinde | blondine | kvinde | lyshåret</annotation>
<annotation cp="👱♀" type="tts">blond kvinde</annotation>
<annotation cp="🧓">ældre menneske | gammel person | voksen</annotation>
diff --git a/common/annotations/de.xml b/common/annotations/de.xml
index c2fab2b..37b42f5 100644
--- a/common/annotations/de.xml
+++ b/common/annotations/de.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -423,6 +423,8 @@
<annotation cp="🙄" type="tts">Augen verdrehendes Gesicht</annotation>
<annotation cp="😬">Gesicht | Grimasse | Grimassen schneidendes Gesicht | Zähne</annotation>
<annotation cp="😬" type="tts">Grimassen schneidendes Gesicht</annotation>
+ <annotation cp="😮💨" draft="contributed">Gesicht, das ausatmet</annotation>
+ <annotation cp="😮💨" type="tts" draft="contributed">Gesicht, das ausatmet</annotation>
<annotation cp="🤥">Gesicht | Lüge | lügendes Gesicht | Pinocchio-Nase</annotation>
<annotation cp="🤥" type="tts">lügendes Gesicht</annotation>
<annotation cp="😌">erleichtert | erleichtertes Gesicht | geschlossene Augen | Gesicht</annotation>
@@ -481,8 +483,6 @@
<annotation cp="☹" type="tts">düsteres Gesicht</annotation>
<annotation cp="😮">erstaunt | Gesicht | Gesicht mit offenem Mund | offener Mund</annotation>
<annotation cp="😮" type="tts">Gesicht mit offenem Mund</annotation>
- <annotation cp="😮💨" draft="contributed">Gesicht, das ausatmet</annotation>
- <annotation cp="😮💨" type="tts" draft="contributed">Gesicht, das ausatmet</annotation>
<annotation cp="😯">erstaunt | Gesicht | sprachlos | verdutztes Gesicht</annotation>
<annotation cp="😯" type="tts">verdutztes Gesicht</annotation>
<annotation cp="😲">erstaunt | erstauntes Gesicht | Gesicht</annotation>
@@ -601,12 +601,12 @@
<annotation cp="❣" type="tts">Herz als Ausrufezeichen</annotation>
<annotation cp="💔">gebrochenes Herz | Schmerz | Trennung</annotation>
<annotation cp="💔" type="tts">gebrochenes Herz</annotation>
- <annotation cp="❤">Herz | rotes Herz</annotation>
- <annotation cp="❤" type="tts">rotes Herz</annotation>
<annotation cp="❤🔥" draft="contributed">Herz in Flammen</annotation>
<annotation cp="❤🔥" type="tts" draft="contributed">Herz in Flammen</annotation>
<annotation cp="❤🩹" draft="contributed">Herz mit Verband</annotation>
<annotation cp="❤🩹" type="tts" draft="contributed">Herz mit Verband</annotation>
+ <annotation cp="❤">Herz | rotes Herz</annotation>
+ <annotation cp="❤" type="tts">rotes Herz</annotation>
<annotation cp="🧡">orange | oranges Herz</annotation>
<annotation cp="🧡" type="tts">oranges Herz</annotation>
<annotation cp="💛">gelb | gelbes Herz | Herz</annotation>
@@ -769,14 +769,14 @@
<annotation cp="👨" type="tts">Mann</annotation>
<annotation cp="🧔">Bart | Mensch: Bart | Person mit Bart | Person: Bart</annotation>
<annotation cp="🧔" type="tts">Person: Bart</annotation>
- <annotation cp="👱♂">blond | blonder Mann | Gesicht | Haar | Mann | Mann: blond</annotation>
- <annotation cp="👱♂" type="tts">Mann: blond</annotation>
- <annotation cp="🧔♀" draft="contributed">Frau: Bart</annotation>
- <annotation cp="🧔♀" type="tts" draft="contributed">Frau: Bart</annotation>
<annotation cp="🧔♂" draft="contributed">Mann: Bart</annotation>
<annotation cp="🧔♂" type="tts" draft="contributed">Mann: Bart</annotation>
+ <annotation cp="👱♂">blond | blonder Mann | Gesicht | Haar | Mann | Mann: blond</annotation>
+ <annotation cp="👱♂" type="tts">Mann: blond</annotation>
<annotation cp="👩">Frau</annotation>
<annotation cp="👩" type="tts">Frau</annotation>
+ <annotation cp="🧔♀" draft="contributed">Frau: Bart</annotation>
+ <annotation cp="🧔♀" type="tts" draft="contributed">Frau: Bart</annotation>
<annotation cp="👱♀">blond | blonde Frau | Frau | Frau: blond | Gesicht | Haar</annotation>
<annotation cp="👱♀" type="tts">Frau: blond</annotation>
<annotation cp="🧓">alt | älterer Erwachsener | älterer Mensch | geschlechtsneutral | ohne eindeutiges Geschlecht</annotation>
diff --git a/common/annotations/de_CH.xml b/common/annotations/de_CH.xml
index 950fcb6..444ce85 100644
--- a/common/annotations/de_CH.xml
+++ b/common/annotations/de_CH.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -38,8 +38,12 @@
<annotation cp="》" type="tts">schliessende doppelte spitze Klammer</annotation>
<annotation cp="」">schliessende rechtwinklige Klammer</annotation>
<annotation cp="」" type="tts">schliessende rechtwinklige Klammer</annotation>
+ <annotation cp="『">Klammer | öffnende weisse Eckklammer | weisse Eckklammer</annotation>
+ <annotation cp="『" type="tts">öffnende weisse Eckklammer</annotation>
<annotation cp="』">schliessende rechtwinklige Klammer hohl</annotation>
<annotation cp="』" type="tts">schliessende rechtwinklige Klammer hohl</annotation>
+ <annotation cp="】">Klammer | konkave Klammer | schliessende schwarze konkave Klammer | schwarze konkave Klammer</annotation>
+ <annotation cp="】" type="tts">schliessende schwarze konkave Klammer</annotation>
<annotation cp="〕">schliessende Klammer mit stumpfen Winkeln</annotation>
<annotation cp="〕" type="tts">schliessende Klammer mit stumpfen Winkeln</annotation>
<annotation cp="〗">schliessende linsenförmige Klammer hohl</annotation>
@@ -89,13 +93,13 @@
<annotation cp="🤐" type="tts">Smiley mit Reissverschlussmund</annotation>
<annotation cp="😶🌫" draft="contributed">Kopf in den Wolken</annotation>
<annotation cp="😶🌫" type="tts" draft="contributed">Kopf in den Wolken</annotation>
+ <annotation cp="😮💨" draft="contributed">ausatmendes Gesicht</annotation>
+ <annotation cp="😮💨" type="tts" draft="contributed">ausatmendes Gesicht</annotation>
<annotation cp="🥵">schwitzendes Gesicht</annotation>
<annotation cp="😵💫" draft="contributed">Gesicht mit Spiralaugen</annotation>
<annotation cp="😵💫" type="tts" draft="contributed">Gesicht mit Spiralaugen</annotation>
<annotation cp="🥸">Brille | Gesicht | Gesicht mit Maske | incognito | Maske | Nase</annotation>
<annotation cp="🥸" type="tts">Gesicht mit Maske</annotation>
- <annotation cp="😮💨" draft="contributed">ausatmendes Gesicht</annotation>
- <annotation cp="😮💨" type="tts" draft="contributed">ausatmendes Gesicht</annotation>
<annotation cp="😳">Erröteter Smiley mit grossen Augen | Gesicht | rote Wangen | überrascht</annotation>
<annotation cp="😳" type="tts">Erröteter Smiley mit grossen Augen</annotation>
<annotation cp="😰">Gesicht | kalter Schweiss | offener Mund | Smiley mit offenem Mund und kaltem Schweiss</annotation>
diff --git a/common/annotations/el.xml b/common/annotations/el.xml
index 72e5d37..f351605 100644
--- a/common/annotations/el.xml
+++ b/common/annotations/el.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -483,6 +483,8 @@
<annotation cp="🙄" type="tts">βλέμμα αποδοκιμασίας</annotation>
<annotation cp="😬">γκριμάτσα | πρόσωπο</annotation>
<annotation cp="😬" type="tts">γκριμάτσα</annotation>
+ <annotation cp="😮💨">ανακούφιση | αναστενάζω | εκπνέω | ξεφυσάω | πρόσωπο που ξεφυσάει | σφυρίζω | ψιθυρίζω</annotation>
+ <annotation cp="😮💨" type="tts">πρόσωπο που ξεφυσάει</annotation>
<annotation cp="🤥">πινόκιο | πρόσωπο | φάτσα ψεύτη | ψέμα</annotation>
<annotation cp="🤥" type="tts">φάτσα ψεύτη</annotation>
<annotation cp="😌">ανακούφιση | ανακουφισμένος | πρόσωπο</annotation>
@@ -541,8 +543,6 @@
<annotation cp="☹" type="tts">κατσούφιασμα</annotation>
<annotation cp="😮">ανοικτό στόμα | ανοιχτό | πρόσωπο | στόμα | συμπόνια</annotation>
<annotation cp="😮" type="tts">ανοικτό στόμα</annotation>
- <annotation cp="😮💨">ανακούφιση | αναστενάζω | εκπνέω | ξεφυσάω | πρόσωπο που ξεφυσάει | σφυρίζω | ψιθυρίζω</annotation>
- <annotation cp="😮💨" type="tts">πρόσωπο που ξεφυσάει</annotation>
<annotation cp="😯">άφωνος | έκπληκτο βλέμμα | έκπληκτος | πρόσωπο | συγκλονισμένος</annotation>
<annotation cp="😯" type="tts">έκπληκτο βλέμμα</annotation>
<annotation cp="😲">έκπληκτος | εντελώς | ξάφνιασμα | ξαφνιασμένος | πρόσωπο</annotation>
@@ -661,12 +661,12 @@
<annotation cp="❣" type="tts">καρδιά θαυμαστικό</annotation>
<annotation cp="💔">καρδιά | ραγισμένη καρδιά | σπασμένος | σπάω</annotation>
<annotation cp="💔" type="tts">ραγισμένη καρδιά</annotation>
- <annotation cp="❤">καρδιά | κόκκινη καρδιά</annotation>
- <annotation cp="❤" type="tts">κόκκινη καρδιά</annotation>
<annotation cp="❤🔥">αγάπη | καίω | καρδιά | καρδιά που καίγεται | πόθος</annotation>
<annotation cp="❤🔥" type="tts">καρδιά που καίγεται</annotation>
<annotation cp="❤🩹">ανάκαμψη | ανάρρωση | αποκατάσταση | βελτίωση | καρδιά που αναρρώνει | υγιέστερος</annotation>
<annotation cp="❤🩹" type="tts">καρδιά που αναρρώνει</annotation>
+ <annotation cp="❤">καρδιά | κόκκινη καρδιά</annotation>
+ <annotation cp="❤" type="tts">κόκκινη καρδιά</annotation>
<annotation cp="🧡">πορτοκαλί καρδιά | ποστοκάλι</annotation>
<annotation cp="🧡" type="tts">πορτοκαλί καρδιά</annotation>
<annotation cp="💛">καρδιά | κίτρινη</annotation>
@@ -829,14 +829,14 @@
<annotation cp="👨" type="tts">άντρας</annotation>
<annotation cp="🧔">άτομο | άτομο: μούσι | μούσι</annotation>
<annotation cp="🧔" type="tts">άτομο: μούσι</annotation>
- <annotation cp="👱♂">άντρας | άντρας: ξανθά μαλλιά | μαλλιά | ξανθός</annotation>
- <annotation cp="👱♂" type="tts">άντρας: ξανθά μαλλιά</annotation>
- <annotation cp="🧔♀">γυναίκα | γυναίκα: μούσι | μούσι</annotation>
- <annotation cp="🧔♀" type="tts">γυναίκα: μούσι</annotation>
<annotation cp="🧔♂">άντρας | άντρας: μούσι | μούσι</annotation>
<annotation cp="🧔♂" type="tts">άντρας: μούσι</annotation>
+ <annotation cp="👱♂">άντρας | άντρας: ξανθά μαλλιά | μαλλιά | ξανθός</annotation>
+ <annotation cp="👱♂" type="tts">άντρας: ξανθά μαλλιά</annotation>
<annotation cp="👩">γυναίκα | ενήλικας</annotation>
<annotation cp="👩" type="tts">γυναίκα</annotation>
+ <annotation cp="🧔♀">γυναίκα | γυναίκα: μούσι | μούσι</annotation>
+ <annotation cp="🧔♀" type="tts">γυναίκα: μούσι</annotation>
<annotation cp="👱♀">γυναίκα | γυναίκα: ξανθά μαλλιά | μαλλιά | ξανθιά</annotation>
<annotation cp="👱♀" type="tts">γυναίκα: ξανθά μαλλιά</annotation>
<annotation cp="🧓">άφυλος | ηλικιωμένος | μεγαλύτερος ενήλικας</annotation>
diff --git a/common/annotations/en.xml b/common/annotations/en.xml
index e573c72..f1246e4 100644
--- a/common/annotations/en.xml
+++ b/common/annotations/en.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -472,7 +472,7 @@
<annotation cp="≡" type="tts">identical to</annotation>
<annotation cp="≣">equality | mathematics | strictly equivalent</annotation>
<annotation cp="≣" type="tts">strictly equivalent</annotation>
- <annotation cp="≤">equal | equals | inequality | less-than or equal | less-then</annotation>
+ <annotation cp="≤">equal | equals | inequality | less-than | less-than or equal</annotation>
<annotation cp="≤" type="tts">less-than or equal</annotation>
<annotation cp="≥">equal | equals | greater-than | greater-than or equal | inequality</annotation>
<annotation cp="≥" type="tts">greater-than or equal</annotation>
@@ -802,6 +802,8 @@
<annotation cp="🙄" type="tts">face with rolling eyes</annotation>
<annotation cp="😬">face | grimace | grimacing face</annotation>
<annotation cp="😬" type="tts">grimacing face</annotation>
+ <annotation cp="😮💨">exhale | face exhaling | gasp | groan | relief | whisper | whistle</annotation> <!-- 1F62E 200D 1F4A8 -->
+ <annotation cp="😮💨" type="tts">face exhaling</annotation>
<annotation cp="🤥">face | lie | lying face | pinocchio</annotation>
<annotation cp="🤥" type="tts">lying face</annotation>
<annotation cp="😌">face | relieved</annotation>
@@ -822,7 +824,7 @@
<annotation cp="🤕" type="tts">face with head-bandage</annotation>
<annotation cp="🤢">face | nauseated | vomit</annotation>
<annotation cp="🤢" type="tts">nauseated face</annotation>
- <annotation cp="🤮">face vomiting | sick | vomit | puke</annotation>
+ <annotation cp="🤮">face vomiting | puke | sick | vomit</annotation>
<annotation cp="🤮" type="tts">face vomiting</annotation>
<annotation cp="🤧">face | gesundheit | sneeze | sneezing face</annotation>
<annotation cp="🤧" type="tts">sneezing face</annotation>
@@ -860,8 +862,6 @@
<annotation cp="☹" type="tts">frowning face</annotation>
<annotation cp="😮">face | face with open mouth | mouth | open | sympathy</annotation>
<annotation cp="😮" type="tts">face with open mouth</annotation>
- <annotation cp="😮💨">exhale | face exhaling | gasp | groan | relief | whisper | whistle</annotation> <!-- 1F62E 200D 1F4A8 -->
- <annotation cp="😮💨" type="tts">face exhaling</annotation>
<annotation cp="😯">face | hushed | stunned | surprised</annotation>
<annotation cp="😯" type="tts">hushed face</annotation>
<annotation cp="😲">astonished | face | shocked | totally</annotation>
@@ -904,7 +904,7 @@
<annotation cp="😤" type="tts">face with steam from nose</annotation>
<annotation cp="😡">angry | face | mad | pouting | rage | red</annotation>
<annotation cp="😡" type="tts">pouting face</annotation>
- <annotation cp="😠">angry | face | mad | anger</annotation>
+ <annotation cp="😠">anger | angry | face | mad</annotation>
<annotation cp="😠" type="tts">angry face</annotation>
<annotation cp="🤬">face with symbols on mouth | swearing</annotation>
<annotation cp="🤬" type="tts">face with symbols on mouth</annotation>
@@ -980,12 +980,12 @@
<annotation cp="❣" type="tts">heart exclamation</annotation>
<annotation cp="💔">break | broken | broken heart</annotation>
<annotation cp="💔" type="tts">broken heart</annotation>
- <annotation cp="❤">heart | red heart</annotation>
- <annotation cp="❤" type="tts">red heart</annotation>
<annotation cp="❤🔥">burn | heart | heart on fire | love | lust | sacred heart</annotation> <!-- 2764 200D 1F525 -->
<annotation cp="❤🔥" type="tts">heart on fire</annotation>
<annotation cp="❤🩹">healthier | improving | mending | mending heart | recovering | recuperating | well</annotation> <!-- 2764 200D 1FA79 -->
<annotation cp="❤🩹" type="tts">mending heart</annotation>
+ <annotation cp="❤">heart | red heart</annotation>
+ <annotation cp="❤" type="tts">red heart</annotation>
<annotation cp="🧡">orange | orange heart</annotation>
<annotation cp="🧡" type="tts">orange heart</annotation>
<annotation cp="💛">yellow | yellow heart</annotation>
@@ -1148,14 +1148,14 @@
<annotation cp="👨" type="tts">man</annotation>
<annotation cp="🧔">beard | person | person: beard</annotation>
<annotation cp="🧔" type="tts">person: beard</annotation>
- <annotation cp="👱♂">blond | blond-haired man | hair | man | man: blond hair</annotation>
- <annotation cp="👱♂" type="tts">man: blond hair</annotation>
- <annotation cp="🧔♀">beard | woman | woman: beard</annotation>
- <annotation cp="🧔♀" type="tts">woman: beard</annotation>
<annotation cp="🧔♂">beard | man | man: beard</annotation>
<annotation cp="🧔♂" type="tts">man: beard</annotation>
+ <annotation cp="👱♂">blond | blond-haired man | hair | man | man: blond hair</annotation>
+ <annotation cp="👱♂" type="tts">man: blond hair</annotation>
<annotation cp="👩">adult | woman</annotation>
<annotation cp="👩" type="tts">woman</annotation>
+ <annotation cp="🧔♀">beard | woman | woman: beard</annotation>
+ <annotation cp="🧔♀" type="tts">woman: beard</annotation>
<annotation cp="👱♀">blond-haired woman | blonde | hair | woman | woman: blond hair</annotation>
<annotation cp="👱♀" type="tts">woman: blond hair</annotation>
<annotation cp="🧓">adult | gender-neutral | old | older person | unspecified gender</annotation>
@@ -1839,7 +1839,7 @@
<annotation cp="🐋" type="tts">whale</annotation>
<annotation cp="🐬">dolphin | flipper</annotation>
<annotation cp="🐬" type="tts">dolphin</annotation>
- <annotation cp="🦭">sea Lion | seal</annotation>
+ <annotation cp="🦭">sea lion | seal</annotation>
<annotation cp="🦭" type="tts">seal</annotation>
<annotation cp="🐟">fish | Pisces | zodiac</annotation>
<annotation cp="🐟" type="tts">fish</annotation>
@@ -2915,7 +2915,7 @@
<annotation cp="📻" type="tts">radio</annotation>
<annotation cp="🎷">instrument | music | sax | saxophone</annotation>
<annotation cp="🎷" type="tts">saxophone</annotation>
- <annotation cp="🪗">accordian | accordion | concertina | squeeze box</annotation>
+ <annotation cp="🪗">accordion | concertina | squeeze box</annotation>
<annotation cp="🪗" type="tts">accordion</annotation>
<annotation cp="🎸">guitar | instrument | music</annotation>
<annotation cp="🎸" type="tts">guitar</annotation>
diff --git a/common/annotations/en_AU.xml b/common/annotations/en_AU.xml
index 9225ce4..528c904 100644
--- a/common/annotations/en_AU.xml
+++ b/common/annotations/en_AU.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -794,6 +794,8 @@
<annotation cp="🙄" type="tts">↑↑↑</annotation>
<annotation cp="😬">↑↑↑</annotation>
<annotation cp="😬" type="tts">↑↑↑</annotation>
+ <annotation cp="😮💨" draft="contributed">↑↑↑</annotation>
+ <annotation cp="😮💨" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="🤥">↑↑↑</annotation>
<annotation cp="🤥" type="tts">↑↑↑</annotation>
<annotation cp="😌">↑↑↑</annotation>
@@ -852,8 +854,6 @@
<annotation cp="☹" type="tts">↑↑↑</annotation>
<annotation cp="😮">↑↑↑</annotation>
<annotation cp="😮" type="tts">↑↑↑</annotation>
- <annotation cp="😮💨" draft="contributed">↑↑↑</annotation>
- <annotation cp="😮💨" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="😯">↑↑↑</annotation>
<annotation cp="😯" type="tts">↑↑↑</annotation>
<annotation cp="😲">↑↑↑</annotation>
@@ -972,12 +972,12 @@
<annotation cp="❣" type="tts">↑↑↑</annotation>
<annotation cp="💔">↑↑↑</annotation>
<annotation cp="💔" type="tts">↑↑↑</annotation>
- <annotation cp="❤">↑↑↑</annotation>
- <annotation cp="❤" type="tts">↑↑↑</annotation>
<annotation cp="❤🔥" draft="contributed">↑↑↑</annotation>
<annotation cp="❤🔥" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="❤🩹" draft="contributed">↑↑↑</annotation>
<annotation cp="❤🩹" type="tts" draft="contributed">↑↑↑</annotation>
+ <annotation cp="❤">↑↑↑</annotation>
+ <annotation cp="❤" type="tts">↑↑↑</annotation>
<annotation cp="🧡">↑↑↑</annotation>
<annotation cp="🧡" type="tts">↑↑↑</annotation>
<annotation cp="💛">↑↑↑</annotation>
@@ -1140,14 +1140,14 @@
<annotation cp="👨" type="tts">↑↑↑</annotation>
<annotation cp="🧔">↑↑↑</annotation>
<annotation cp="🧔" type="tts">↑↑↑</annotation>
- <annotation cp="👱♂">↑↑↑</annotation>
- <annotation cp="👱♂" type="tts">↑↑↑</annotation>
- <annotation cp="🧔♀" draft="contributed">↑↑↑</annotation>
- <annotation cp="🧔♀" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="🧔♂" draft="contributed">↑↑↑</annotation>
<annotation cp="🧔♂" type="tts" draft="contributed">↑↑↑</annotation>
+ <annotation cp="👱♂">↑↑↑</annotation>
+ <annotation cp="👱♂" type="tts">↑↑↑</annotation>
<annotation cp="👩">↑↑↑</annotation>
<annotation cp="👩" type="tts">↑↑↑</annotation>
+ <annotation cp="🧔♀" draft="contributed">↑↑↑</annotation>
+ <annotation cp="🧔♀" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="👱♀">↑↑↑</annotation>
<annotation cp="👱♀" type="tts">↑↑↑</annotation>
<annotation cp="🧓">↑↑↑</annotation>
diff --git a/common/annotations/en_CA.xml b/common/annotations/en_CA.xml
index d0641a4..18920c1 100644
--- a/common/annotations/en_CA.xml
+++ b/common/annotations/en_CA.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -501,6 +501,8 @@
<annotation cp="🙄" type="tts">↑↑↑</annotation>
<annotation cp="😬">↑↑↑</annotation>
<annotation cp="😬" type="tts">↑↑↑</annotation>
+ <annotation cp="😮💨">↑↑↑</annotation>
+ <annotation cp="😮💨" type="tts">↑↑↑</annotation>
<annotation cp="🤥">↑↑↑</annotation>
<annotation cp="🤥" type="tts">↑↑↑</annotation>
<annotation cp="😌">↑↑↑</annotation>
@@ -559,8 +561,6 @@
<annotation cp="☹" type="tts">↑↑↑</annotation>
<annotation cp="😮">↑↑↑</annotation>
<annotation cp="😮" type="tts">↑↑↑</annotation>
- <annotation cp="😮💨">↑↑↑</annotation>
- <annotation cp="😮💨" type="tts">↑↑↑</annotation>
<annotation cp="😯">↑↑↑</annotation>
<annotation cp="😯" type="tts">↑↑↑</annotation>
<annotation cp="😲">↑↑↑</annotation>
@@ -679,12 +679,12 @@
<annotation cp="❣" type="tts">↑↑↑</annotation>
<annotation cp="💔">↑↑↑</annotation>
<annotation cp="💔" type="tts">↑↑↑</annotation>
- <annotation cp="❤">↑↑↑</annotation>
- <annotation cp="❤" type="tts">↑↑↑</annotation>
<annotation cp="❤🔥">↑↑↑</annotation>
<annotation cp="❤🔥" type="tts">↑↑↑</annotation>
<annotation cp="❤🩹">↑↑↑</annotation>
<annotation cp="❤🩹" type="tts">↑↑↑</annotation>
+ <annotation cp="❤">↑↑↑</annotation>
+ <annotation cp="❤" type="tts">↑↑↑</annotation>
<annotation cp="🧡">↑↑↑</annotation>
<annotation cp="🧡" type="tts">↑↑↑</annotation>
<annotation cp="💛">↑↑↑</annotation>
@@ -847,14 +847,14 @@
<annotation cp="👨" type="tts">↑↑↑</annotation>
<annotation cp="🧔">↑↑↑</annotation>
<annotation cp="🧔" type="tts">↑↑↑</annotation>
- <annotation cp="👱♂">↑↑↑</annotation>
- <annotation cp="👱♂" type="tts">↑↑↑</annotation>
- <annotation cp="🧔♀">↑↑↑</annotation>
- <annotation cp="🧔♀" type="tts">↑↑↑</annotation>
<annotation cp="🧔♂">↑↑↑</annotation>
<annotation cp="🧔♂" type="tts">↑↑↑</annotation>
+ <annotation cp="👱♂">↑↑↑</annotation>
+ <annotation cp="👱♂" type="tts">↑↑↑</annotation>
<annotation cp="👩">↑↑↑</annotation>
<annotation cp="👩" type="tts">↑↑↑</annotation>
+ <annotation cp="🧔♀">↑↑↑</annotation>
+ <annotation cp="🧔♀" type="tts">↑↑↑</annotation>
<annotation cp="👱♀">↑↑↑</annotation>
<annotation cp="👱♀" type="tts">↑↑↑</annotation>
<annotation cp="🧓">↑↑↑</annotation>
diff --git a/common/annotations/en_GB.xml b/common/annotations/en_GB.xml
index a8fb94b..22a25c0 100644
--- a/common/annotations/en_GB.xml
+++ b/common/annotations/en_GB.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -508,6 +508,8 @@
<annotation cp="🙄" type="tts">↑↑↑</annotation>
<annotation cp="😬">↑↑↑</annotation>
<annotation cp="😬" type="tts">↑↑↑</annotation>
+ <annotation cp="😮💨">↑↑↑</annotation>
+ <annotation cp="😮💨" type="tts">↑↑↑</annotation>
<annotation cp="🤥">↑↑↑</annotation>
<annotation cp="🤥" type="tts">↑↑↑</annotation>
<annotation cp="😌">↑↑↑</annotation>
@@ -566,8 +568,6 @@
<annotation cp="☹" type="tts">↑↑↑</annotation>
<annotation cp="😮">↑↑↑</annotation>
<annotation cp="😮" type="tts">↑↑↑</annotation>
- <annotation cp="😮💨">↑↑↑</annotation>
- <annotation cp="😮💨" type="tts">↑↑↑</annotation>
<annotation cp="😯">↑↑↑</annotation>
<annotation cp="😯" type="tts">↑↑↑</annotation>
<annotation cp="😲">↑↑↑</annotation>
@@ -686,12 +686,12 @@
<annotation cp="❣" type="tts">↑↑↑</annotation>
<annotation cp="💔">↑↑↑</annotation>
<annotation cp="💔" type="tts">↑↑↑</annotation>
- <annotation cp="❤">↑↑↑</annotation>
- <annotation cp="❤" type="tts">↑↑↑</annotation>
<annotation cp="❤🔥">↑↑↑</annotation>
<annotation cp="❤🔥" type="tts">↑↑↑</annotation>
<annotation cp="❤🩹">↑↑↑</annotation>
<annotation cp="❤🩹" type="tts">↑↑↑</annotation>
+ <annotation cp="❤">↑↑↑</annotation>
+ <annotation cp="❤" type="tts">↑↑↑</annotation>
<annotation cp="🧡">↑↑↑</annotation>
<annotation cp="🧡" type="tts">↑↑↑</annotation>
<annotation cp="💛">↑↑↑</annotation>
@@ -854,14 +854,14 @@
<annotation cp="👨" type="tts">↑↑↑</annotation>
<annotation cp="🧔">↑↑↑</annotation>
<annotation cp="🧔" type="tts">↑↑↑</annotation>
- <annotation cp="👱♂">↑↑↑</annotation>
- <annotation cp="👱♂" type="tts">↑↑↑</annotation>
- <annotation cp="🧔♀">↑↑↑</annotation>
- <annotation cp="🧔♀" type="tts">↑↑↑</annotation>
<annotation cp="🧔♂">↑↑↑</annotation>
<annotation cp="🧔♂" type="tts">↑↑↑</annotation>
+ <annotation cp="👱♂">↑↑↑</annotation>
+ <annotation cp="👱♂" type="tts">↑↑↑</annotation>
<annotation cp="👩">↑↑↑</annotation>
<annotation cp="👩" type="tts">↑↑↑</annotation>
+ <annotation cp="🧔♀">↑↑↑</annotation>
+ <annotation cp="🧔♀" type="tts">↑↑↑</annotation>
<annotation cp="👱♀">↑↑↑</annotation>
<annotation cp="👱♀" type="tts">↑↑↑</annotation>
<annotation cp="🧓">↑↑↑</annotation>
diff --git a/common/annotations/en_IN.xml b/common/annotations/en_IN.xml
index 023a139..9ed9750 100644
--- a/common/annotations/en_IN.xml
+++ b/common/annotations/en_IN.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -550,6 +550,8 @@
<annotation cp="🙄" type="tts">↑↑↑</annotation>
<annotation cp="😬">↑↑↑</annotation>
<annotation cp="😬" type="tts">↑↑↑</annotation>
+ <annotation cp="😮💨" draft="contributed">↑↑↑</annotation>
+ <annotation cp="😮💨" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="🤥">↑↑↑</annotation>
<annotation cp="🤥" type="tts">↑↑↑</annotation>
<annotation cp="😌">↑↑↑</annotation>
@@ -608,8 +610,6 @@
<annotation cp="☹" type="tts">↑↑↑</annotation>
<annotation cp="😮">↑↑↑</annotation>
<annotation cp="😮" type="tts">↑↑↑</annotation>
- <annotation cp="😮💨" draft="contributed">↑↑↑</annotation>
- <annotation cp="😮💨" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="😯">↑↑↑</annotation>
<annotation cp="😯" type="tts">↑↑↑</annotation>
<annotation cp="😲">↑↑↑</annotation>
@@ -728,12 +728,12 @@
<annotation cp="❣" type="tts">↑↑↑</annotation>
<annotation cp="💔">↑↑↑</annotation>
<annotation cp="💔" type="tts">↑↑↑</annotation>
- <annotation cp="❤">↑↑↑</annotation>
- <annotation cp="❤" type="tts">↑↑↑</annotation>
<annotation cp="❤🔥" draft="contributed">↑↑↑</annotation>
<annotation cp="❤🔥" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="❤🩹" draft="contributed">↑↑↑</annotation>
<annotation cp="❤🩹" type="tts" draft="contributed">↑↑↑</annotation>
+ <annotation cp="❤">↑↑↑</annotation>
+ <annotation cp="❤" type="tts">↑↑↑</annotation>
<annotation cp="🧡">↑↑↑</annotation>
<annotation cp="🧡" type="tts">↑↑↑</annotation>
<annotation cp="💛">↑↑↑</annotation>
@@ -896,14 +896,14 @@
<annotation cp="👨" type="tts">↑↑↑</annotation>
<annotation cp="🧔">↑↑↑</annotation>
<annotation cp="🧔" type="tts">↑↑↑</annotation>
- <annotation cp="👱♂">↑↑↑</annotation>
- <annotation cp="👱♂" type="tts">↑↑↑</annotation>
- <annotation cp="🧔♀">↑↑↑</annotation>
- <annotation cp="🧔♀" type="tts">↑↑↑</annotation>
<annotation cp="🧔♂">↑↑↑</annotation>
<annotation cp="🧔♂" type="tts">↑↑↑</annotation>
+ <annotation cp="👱♂">↑↑↑</annotation>
+ <annotation cp="👱♂" type="tts">↑↑↑</annotation>
<annotation cp="👩">↑↑↑</annotation>
<annotation cp="👩" type="tts">↑↑↑</annotation>
+ <annotation cp="🧔♀">↑↑↑</annotation>
+ <annotation cp="🧔♀" type="tts">↑↑↑</annotation>
<annotation cp="👱♀">↑↑↑</annotation>
<annotation cp="👱♀" type="tts">↑↑↑</annotation>
<annotation cp="🧓">↑↑↑</annotation>
diff --git a/common/annotations/es.xml b/common/annotations/es.xml
index 9bcb51e..411f066 100644
--- a/common/annotations/es.xml
+++ b/common/annotations/es.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -389,6 +389,8 @@
<annotation cp="🙄" type="tts">cara con ojos en blanco</annotation>
<annotation cp="😬">cara | cara haciendo una mueca | mueca</annotation>
<annotation cp="😬" type="tts">cara haciendo una mueca</annotation>
+ <annotation cp="😮💨">cara | cara exhalando | exhalar | resoplido | respirar | silbato | silbido</annotation>
+ <annotation cp="😮💨" type="tts">cara exhalando</annotation>
<annotation cp="🤥">cara | cara de mentiroso | mentiroso | nariz | pinocho</annotation>
<annotation cp="🤥" type="tts">cara de mentiroso</annotation>
<annotation cp="😌">aliviado | cara | cara de alivio</annotation>
@@ -447,8 +449,6 @@
<annotation cp="☹" type="tts">cara con el ceño fruncido</annotation>
<annotation cp="😮">boca | cara | cara con la boca abierta</annotation>
<annotation cp="😮" type="tts">cara con la boca abierta</annotation>
- <annotation cp="😮💨">cara | cara exhalando | exhalar | resoplido | respirar | silbato | silbido</annotation>
- <annotation cp="😮💨" type="tts">cara exhalando</annotation>
<annotation cp="😯">alucinado | cara | cara estupefacta | estupefacto | sorprendido</annotation>
<annotation cp="😯" type="tts">cara estupefacta</annotation>
<annotation cp="😲">alucinado | asombrado | cara | cara asombrada | pasmado</annotation>
@@ -567,12 +567,12 @@
<annotation cp="❣" type="tts">exclamación de corazón</annotation>
<annotation cp="💔">corazón | emoción | partido | roto</annotation>
<annotation cp="💔" type="tts">corazón roto</annotation>
- <annotation cp="❤">corazón | emoción | rojo</annotation>
- <annotation cp="❤" type="tts">corazón rojo</annotation>
<annotation cp="❤🔥">amor | corazón | corazón en llamas | fuego | llamas | lujuria | pasión</annotation>
<annotation cp="❤🔥" type="tts">corazón en llamas</annotation>
<annotation cp="❤🩹">bien | corazón curándose | cura | mejor | mejora | recuperación | salud</annotation>
<annotation cp="❤🩹" type="tts">corazón curándose</annotation>
+ <annotation cp="❤">corazón | emoción | rojo</annotation>
+ <annotation cp="❤" type="tts">corazón rojo</annotation>
<annotation cp="🧡">corazón | emoción | naranja</annotation>
<annotation cp="🧡" type="tts">corazón naranja</annotation>
<annotation cp="💛">amarillo | corazón | emoción</annotation>
@@ -735,14 +735,14 @@
<annotation cp="👨" type="tts">hombre</annotation>
<annotation cp="🧔">barbas | barbudo | hombre | hombre con barba | persona</annotation>
<annotation cp="🧔" type="tts">hombre con barba</annotation>
- <annotation cp="👱♂">hombre | rubiales | rubio</annotation>
- <annotation cp="👱♂" type="tts">hombre rubio</annotation>
- <annotation cp="🧔♀">barba | mujer | mujer: barba</annotation>
- <annotation cp="🧔♀" type="tts">mujer: barba</annotation>
<annotation cp="🧔♂">barba | hombre | hombre: barba</annotation>
<annotation cp="🧔♂" type="tts">hombre: barba</annotation>
+ <annotation cp="👱♂">hombre | rubiales | rubio</annotation>
+ <annotation cp="👱♂" type="tts">hombre rubio</annotation>
<annotation cp="👩">adulta | mujer</annotation>
<annotation cp="👩" type="tts">mujer</annotation>
+ <annotation cp="🧔♀">barba | mujer | mujer: barba</annotation>
+ <annotation cp="🧔♀" type="tts">mujer: barba</annotation>
<annotation cp="👱♀">mujer | rubia | rubiales</annotation>
<annotation cp="👱♀" type="tts">mujer rubia</annotation>
<annotation cp="🧓">género | maduro | mayor | neutro | persona adulta madura | persona mayor</annotation>
diff --git a/common/annotations/es_419.xml b/common/annotations/es_419.xml
index 28ca261..50ec13f 100644
--- a/common/annotations/es_419.xml
+++ b/common/annotations/es_419.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -465,6 +465,8 @@
<annotation cp="🙄" type="tts">cara revoleando los ojos</annotation>
<annotation cp="😬">cara | cara haciendo una mueca</annotation>
<annotation cp="😬" type="tts">↑↑↑</annotation>
+ <annotation cp="😮💨">↑↑↑</annotation>
+ <annotation cp="😮💨" type="tts">↑↑↑</annotation>
<annotation cp="🤥">cara | cara de mentiroso | mentira | nariz | pinocho</annotation>
<annotation cp="🤥" type="tts">↑↑↑</annotation>
<annotation cp="😌">aliviado | alivio | cara | cara de alivio</annotation>
@@ -523,8 +525,6 @@
<annotation cp="☹" type="tts">↑↑↑</annotation>
<annotation cp="😮">abierta | boca | cara | cara con boca abierta | empatía | sorpresa</annotation>
<annotation cp="😮" type="tts">cara con boca abierta</annotation>
- <annotation cp="😮💨">↑↑↑</annotation>
- <annotation cp="😮💨" type="tts">↑↑↑</annotation>
<annotation cp="😯">cara | cara estupefacta | sorprendido | sorpresa</annotation>
<annotation cp="😯" type="tts">↑↑↑</annotation>
<annotation cp="😲">asombro | cara | cara asombrada | horrorizado | sorprendido</annotation>
@@ -643,12 +643,12 @@
<annotation cp="❣" type="tts">exclamación con forma de corazón</annotation>
<annotation cp="💔">corazón roto</annotation>
<annotation cp="💔" type="tts">corazón roto</annotation>
- <annotation cp="❤">corazón rojo</annotation>
- <annotation cp="❤" type="tts">corazón rojo</annotation>
<annotation cp="❤🔥">↑↑↑</annotation>
<annotation cp="❤🔥" type="tts">↑↑↑</annotation>
<annotation cp="❤🩹">↑↑↑</annotation>
<annotation cp="❤🩹" type="tts">↑↑↑</annotation>
+ <annotation cp="❤">corazón rojo</annotation>
+ <annotation cp="❤" type="tts">corazón rojo</annotation>
<annotation cp="🧡">↑↑↑</annotation>
<annotation cp="🧡" type="tts">↑↑↑</annotation>
<annotation cp="💛">corazón amarillo</annotation>
@@ -811,14 +811,14 @@
<annotation cp="👨" type="tts">↑↑↑</annotation>
<annotation cp="🧔">↑↑↑</annotation>
<annotation cp="🧔" type="tts">↑↑↑</annotation>
- <annotation cp="👱♂">↑↑↑</annotation>
- <annotation cp="👱♂" type="tts">↑↑↑</annotation>
- <annotation cp="🧔♀">barba | mujer | mujer: barba</annotation>
- <annotation cp="🧔♀" type="tts">↑↑↑</annotation>
<annotation cp="🧔♂">barba | hombre: barba</annotation>
<annotation cp="🧔♂" type="tts">hombre: barba</annotation>
+ <annotation cp="👱♂">↑↑↑</annotation>
+ <annotation cp="👱♂" type="tts">↑↑↑</annotation>
<annotation cp="👩">cara | mujer | persona | señora</annotation>
<annotation cp="👩" type="tts">↑↑↑</annotation>
+ <annotation cp="🧔♀">barba | mujer | mujer: barba</annotation>
+ <annotation cp="🧔♀" type="tts">↑↑↑</annotation>
<annotation cp="👱♀">↑↑↑</annotation>
<annotation cp="👱♀" type="tts">↑↑↑</annotation>
<annotation cp="🧓">adulto mayor | género | maduro | mayor | neutro | persona adulta madura</annotation>
diff --git a/common/annotations/es_MX.xml b/common/annotations/es_MX.xml
index c2b8b91..79c6f99 100644
--- a/common/annotations/es_MX.xml
+++ b/common/annotations/es_MX.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -530,6 +530,8 @@
<annotation cp="🙄" type="tts">cara con ojos en blanco</annotation>
<annotation cp="😬">cara | cara haciendo mueca | cara haciendo una mueca | mueca</annotation>
<annotation cp="😬" type="tts">↑↑↑</annotation>
+ <annotation cp="😮💨">↑↑↑</annotation>
+ <annotation cp="😮💨" type="tts">↑↑↑</annotation>
<annotation cp="🤥">↑↑↑</annotation>
<annotation cp="🤥" type="tts">↑↑↑</annotation>
<annotation cp="😌">↑↑↑</annotation>
@@ -588,8 +590,6 @@
<annotation cp="☹" type="tts">↑↑↑</annotation>
<annotation cp="😮">cara con boca abierta | empatía | sorpresa</annotation>
<annotation cp="😮" type="tts">↑↑↑</annotation>
- <annotation cp="😮💨">↑↑↑</annotation>
- <annotation cp="😮💨" type="tts">↑↑↑</annotation>
<annotation cp="😯">↑↑↑</annotation>
<annotation cp="😯" type="tts">↑↑↑</annotation>
<annotation cp="😲">↑↑↑</annotation>
@@ -708,12 +708,12 @@
<annotation cp="❣" type="tts">↑↑↑</annotation>
<annotation cp="💔">corazón | mal | roto | sufrir | triste</annotation>
<annotation cp="💔" type="tts">↑↑↑</annotation>
- <annotation cp="❤">amor | corazón | emoción | rojo</annotation>
- <annotation cp="❤" type="tts">↑↑↑</annotation>
<annotation cp="❤🔥">↑↑↑</annotation>
<annotation cp="❤🔥" type="tts">↑↑↑</annotation>
<annotation cp="❤🩹">↑↑↑</annotation>
<annotation cp="❤🩹" type="tts">↑↑↑</annotation>
+ <annotation cp="❤">amor | corazón | emoción | rojo</annotation>
+ <annotation cp="❤" type="tts">↑↑↑</annotation>
<annotation cp="🧡">↑↑↑</annotation>
<annotation cp="🧡" type="tts">↑↑↑</annotation>
<annotation cp="💛">↑↑↑</annotation>
@@ -876,14 +876,14 @@
<annotation cp="👨" type="tts">↑↑↑</annotation>
<annotation cp="🧔">barba | barbón | cara | hombre con barba | persona con barba</annotation>
<annotation cp="🧔" type="tts">↑↑↑</annotation>
- <annotation cp="👱♂">cara | güero | hombre rubio | rubio</annotation>
- <annotation cp="👱♂" type="tts">↑↑↑</annotation>
- <annotation cp="🧔♀" draft="contributed">↑↑↑</annotation>
- <annotation cp="🧔♀" type="tts">↑↑↑</annotation>
<annotation cp="🧔♂">↑↑↑</annotation>
<annotation cp="🧔♂" type="tts">↑↑↑</annotation>
+ <annotation cp="👱♂">cara | güero | hombre rubio | rubio</annotation>
+ <annotation cp="👱♂" type="tts">↑↑↑</annotation>
<annotation cp="👩">↑↑↑</annotation>
<annotation cp="👩" type="tts">↑↑↑</annotation>
+ <annotation cp="🧔♀" draft="contributed">↑↑↑</annotation>
+ <annotation cp="🧔♀" type="tts">↑↑↑</annotation>
<annotation cp="👱♀">cara | güera | mujer | mujer rubia</annotation>
<annotation cp="👱♀" type="tts">↑↑↑</annotation>
<annotation cp="🧓">género | maduro | mayor | neutro | persona mayor | persona vieja</annotation>
diff --git a/common/annotations/es_US.xml b/common/annotations/es_US.xml
index dbc5469..fa89e23 100644
--- a/common/annotations/es_US.xml
+++ b/common/annotations/es_US.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -794,6 +794,8 @@
<annotation cp="🙄" type="tts">cara con ojos en blanco</annotation>
<annotation cp="😬">↑↑↑</annotation>
<annotation cp="😬" type="tts">↑↑↑</annotation>
+ <annotation cp="😮💨" draft="contributed">↑↑↑</annotation>
+ <annotation cp="😮💨" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="🤥">↑↑↑</annotation>
<annotation cp="🤥" type="tts">↑↑↑</annotation>
<annotation cp="😌">↑↑↑</annotation>
@@ -852,8 +854,6 @@
<annotation cp="☹" type="tts">↑↑↑</annotation>
<annotation cp="😮">cara con boca abierta | cara con la boca abierta | empatía | sorpresa</annotation>
<annotation cp="😮" type="tts">cara con la boca abierta</annotation>
- <annotation cp="😮💨" draft="contributed">↑↑↑</annotation>
- <annotation cp="😮💨" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="😯">↑↑↑</annotation>
<annotation cp="😯" type="tts">↑↑↑</annotation>
<annotation cp="😲">↑↑↑</annotation>
@@ -972,12 +972,12 @@
<annotation cp="❣" type="tts">↑↑↑</annotation>
<annotation cp="💔">corazón | mal | roto | sufrir | triste</annotation>
<annotation cp="💔" type="tts">↑↑↑</annotation>
- <annotation cp="❤">corazón | corazón rojo</annotation>
- <annotation cp="❤" type="tts">↑↑↑</annotation>
<annotation cp="❤🔥" draft="contributed">↑↑↑</annotation>
<annotation cp="❤🔥" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="❤🩹" draft="contributed">↑↑↑</annotation>
<annotation cp="❤🩹" type="tts" draft="contributed">↑↑↑</annotation>
+ <annotation cp="❤">corazón | corazón rojo</annotation>
+ <annotation cp="❤" type="tts">↑↑↑</annotation>
<annotation cp="🧡">anaranjado | corazón anaranjado</annotation>
<annotation cp="🧡" type="tts">corazón anaranjado</annotation>
<annotation cp="💛">amarillo | corazón amarillo</annotation>
@@ -1140,14 +1140,14 @@
<annotation cp="👨" type="tts">↑↑↑</annotation>
<annotation cp="🧔">↑↑↑</annotation>
<annotation cp="🧔" type="tts">↑↑↑</annotation>
- <annotation cp="👱♂">hombre | hombre: rubio | rubio</annotation>
- <annotation cp="👱♂" type="tts">↑↑↑</annotation>
- <annotation cp="🧔♀" draft="contributed">↑↑↑</annotation>
- <annotation cp="🧔♀" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="🧔♂" draft="contributed">hombre: barba</annotation>
<annotation cp="🧔♂" type="tts" draft="contributed">↑↑↑</annotation>
+ <annotation cp="👱♂">hombre | hombre: rubio | rubio</annotation>
+ <annotation cp="👱♂" type="tts">↑↑↑</annotation>
<annotation cp="👩">↑↑↑</annotation>
<annotation cp="👩" type="tts">↑↑↑</annotation>
+ <annotation cp="🧔♀" draft="contributed">↑↑↑</annotation>
+ <annotation cp="🧔♀" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="👱♀">mujer | mujer: rubia | rubia</annotation>
<annotation cp="👱♀" type="tts">↑↑↑</annotation>
<annotation cp="🧓">adulto | género neutro | género no especificado | mayor | persona anciana</annotation>
diff --git a/common/annotations/et.xml b/common/annotations/et.xml
index 66bf496..f082e8c 100644
--- a/common/annotations/et.xml
+++ b/common/annotations/et.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -468,6 +468,8 @@
<annotation cp="🙄" type="tts">pööritavate silmadega nägu</annotation>
<annotation cp="😬">grimass | grimassitav nägu | nägu</annotation>
<annotation cp="😬" type="tts">grimassitav nägu</annotation>
+ <annotation cp="😮💨">kergendus | ohkamine | sosistamine | väljahingamine | väljahingav nägu | vilistamine</annotation>
+ <annotation cp="😮💨" type="tts">väljahingav nägu</annotation>
<annotation cp="🤥">nägu | vale | valetav nägu</annotation>
<annotation cp="🤥" type="tts">valetav nägu</annotation>
<annotation cp="😌">kergendus | kergendust tundev nägu | nägu</annotation>
@@ -526,8 +528,6 @@
<annotation cp="☹" type="tts">kulmu kortsutav nägu</annotation>
<annotation cp="😮">avatud | avatud suuga nägu | kaastunne | lahti | nägu | suu</annotation>
<annotation cp="😮" type="tts">avatud suuga nägu</annotation>
- <annotation cp="😮💨">kergendus | ohkamine | sosistamine | väljahingamine | väljahingav nägu | vilistamine</annotation>
- <annotation cp="😮💨" type="tts">väljahingav nägu</annotation>
<annotation cp="😯">hämmingus | nägu | üllatunud | vaigistatud</annotation>
<annotation cp="😯" type="tts">vaigistatud nägu</annotation>
<annotation cp="😲">ehmunud | hämmastunud nägu | hämmastus | löödud | nägu</annotation>
@@ -646,12 +646,12 @@
<annotation cp="❣" type="tts">südamega hüüumärk</annotation>
<annotation cp="💔">murtud | süda</annotation>
<annotation cp="💔" type="tts">murtud süda</annotation>
- <annotation cp="❤">punane süda | süda</annotation>
- <annotation cp="❤" type="tts">punane süda</annotation>
<annotation cp="❤🔥">armastus | kirg | leegitsev süda | põlev | püha süda | süda</annotation>
<annotation cp="❤🔥" type="tts">leegitsev süda</annotation>
<annotation cp="❤🩹">hästi | kosumine | paranemine | taastumine | tervem | tervenemine | tervenev süda</annotation>
<annotation cp="❤🩹" type="tts">tervenev süda</annotation>
+ <annotation cp="❤">punane süda | süda</annotation>
+ <annotation cp="❤" type="tts">punane süda</annotation>
<annotation cp="🧡">oranž | oranž süda</annotation>
<annotation cp="🧡" type="tts">oranž süda</annotation>
<annotation cp="💛">kollane | süda</annotation>
@@ -814,14 +814,14 @@
<annotation cp="👨" type="tts">mees</annotation>
<annotation cp="🧔">habe | habemega isik | mees: habemega</annotation>
<annotation cp="🧔" type="tts">mees: habemega</annotation>
- <annotation cp="👱♂">blond | blondiin | mees | mees: blond</annotation>
- <annotation cp="👱♂" type="tts">mees: blond</annotation>
- <annotation cp="🧔♀">habe | habemega naine | naine</annotation>
- <annotation cp="🧔♀" type="tts">habemega naine</annotation>
<annotation cp="🧔♂">habe | habemega mees | mees</annotation>
<annotation cp="🧔♂" type="tts">habemega mees</annotation>
+ <annotation cp="👱♂">blond | blondiin | mees | mees: blond</annotation>
+ <annotation cp="👱♂" type="tts">mees: blond</annotation>
<annotation cp="👩">naine</annotation>
<annotation cp="👩" type="tts">naine</annotation>
+ <annotation cp="🧔♀">habe | habemega naine | naine</annotation>
+ <annotation cp="🧔♀" type="tts">habemega naine</annotation>
<annotation cp="👱♀">blond | blondiin | naine | naine: blond</annotation>
<annotation cp="👱♀" type="tts">naine: blond</annotation>
<annotation cp="🧓">eakas | sooliselt neutraalne | vana</annotation>
diff --git a/common/annotations/eu.xml b/common/annotations/eu.xml
index 912b01c..a408698 100644
--- a/common/annotations/eu.xml
+++ b/common/annotations/eu.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -443,6 +443,8 @@
<annotation cp="🙄" type="tts">begiak bueltaka dituen aurpegia</annotation>
<annotation cp="😬">aurpegi | imintzio | imintzio-aurpegia</annotation>
<annotation cp="😬" type="tts">imintzio-aurpegia</annotation>
+ <annotation cp="😮💨">arnasa botatzen ari den aurpegia | arnasa hartu | arnasestua | hasperena | lasaitua | marmarra | txistua</annotation>
+ <annotation cp="😮💨" type="tts">arnasa botatzen ari den aurpegia</annotation>
<annotation cp="🤥">aurpegi | aurpegi gezurtia | gezur | pinotxo</annotation>
<annotation cp="🤥" type="tts">aurpegi gezurtia</annotation>
<annotation cp="😌">aurpegi | lasaitasun | lasaitasun-aurpegia</annotation>
@@ -501,8 +503,6 @@
<annotation cp="☹" type="tts">kopeta ilunduta duen aurpegia</annotation>
<annotation cp="😮">aho | ahoa irekita duen aurpegia | aurpegi | ireki | poza</annotation>
<annotation cp="😮" type="tts">ahoa irekita duen aurpegia</annotation>
- <annotation cp="😮💨">arnasa botatzen ari den aurpegia | arnasa hartu | arnasestua | hasperena | lasaitua | marmarra | txistua</annotation>
- <annotation cp="😮💨" type="tts">arnasa botatzen ari den aurpegia</annotation>
<annotation cp="😯">aurpegi | harridura | harridura-aurpegia | harrituta | zur eta lur</annotation>
<annotation cp="😯" type="tts">harridura-aurpegia</annotation>
<annotation cp="😲">aurpegi | guztiz | harridura | harritu-aurpegia | sorpresa</annotation>
@@ -621,12 +621,12 @@
<annotation cp="❣" type="tts">bihotz-itxurako harridura-marka</annotation>
<annotation cp="💔">bihotz | bihotz hautsia | hautsi | hautsita</annotation>
<annotation cp="💔" type="tts">bihotz hautsia</annotation>
- <annotation cp="❤">bihotz | bihotz gorria</annotation>
- <annotation cp="❤" type="tts">bihotz gorria</annotation>
<annotation cp="❤🔥">bihotz sakratua | bihotza | erre | lizunkeria | maitasuna | sutan dagoen bihotza</annotation>
<annotation cp="❤🔥" type="tts">sutan dagoen bihotza</annotation>
<annotation cp="❤🩹">hobetzen | leheneratzen | ondo | osasuntsuago | sendatzen | sendatzen ari den bihotza | suspertzen</annotation>
<annotation cp="❤🩹" type="tts">sendatzen ari den bihotza</annotation>
+ <annotation cp="❤">bihotz | bihotz gorria</annotation>
+ <annotation cp="❤" type="tts">bihotz gorria</annotation>
<annotation cp="🧡">bihotz laranja | laranja</annotation>
<annotation cp="🧡" type="tts">bihotz laranja</annotation>
<annotation cp="💛">bihotz | bihotz horia | hori</annotation>
@@ -789,14 +789,14 @@
<annotation cp="👨" type="tts">gizona</annotation>
<annotation cp="🧔">bizar | pertsona bizarduna</annotation>
<annotation cp="🧔" type="tts">pertsona bizarduna</annotation>
- <annotation cp="👱♂">gizon | gizon ilehoria | gizonezko | ilehori</annotation>
- <annotation cp="👱♂" type="tts">gizon ilehoria</annotation>
- <annotation cp="🧔♀">bizarra | emakumea | emakumea: bizarra</annotation>
- <annotation cp="🧔♀" type="tts">emakumea: bizarra</annotation>
<annotation cp="🧔♂">bizarra | gizona | gizona: bizarra</annotation>
<annotation cp="🧔♂" type="tts">gizona: bizarra</annotation>
+ <annotation cp="👱♂">gizon | gizon ilehoria | gizonezko | ilehori</annotation>
+ <annotation cp="👱♂" type="tts">gizon ilehoria</annotation>
<annotation cp="👩">emakume | emakumea | emakumezko</annotation>
<annotation cp="👩" type="tts">emakumea</annotation>
+ <annotation cp="🧔♀">bizarra | emakumea | emakumea: bizarra</annotation>
+ <annotation cp="🧔♀" type="tts">emakumea: bizarra</annotation>
<annotation cp="👱♀">emakume | emakume ilehoria | emakumezko | ilehori</annotation>
<annotation cp="👱♀" type="tts">emakume ilehoria</annotation>
<annotation cp="🧓">adineko | agure | genero neutroko</annotation>
diff --git a/common/annotations/fa.xml b/common/annotations/fa.xml
index 74638b5..3280f8f 100644
--- a/common/annotations/fa.xml
+++ b/common/annotations/fa.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -665,6 +665,8 @@
<annotation cp="🙄" type="tts">نگاه کلافه</annotation>
<annotation cp="😬">ادا و اصول | دهنکجی | شکلک | صورت | منزجر</annotation>
<annotation cp="😬" type="tts">دهنکجی</annotation>
+ <annotation cp="😮💨">بازدم | سوت زدن | صورتک در حال بازدم | فوت کردن | نالیدن | نجوا کردن | نفس زدن</annotation>
+ <annotation cp="😮💨" type="tts">صورتک در حال بازدم</annotation>
<annotation cp="🤥">پینوکیو | دروغ | دروغگو | دماغ دراز | دماغدراز | صورت دروغگو</annotation>
<annotation cp="🤥" type="tts">صورت دروغگو</annotation>
<annotation cp="😌">آسودهخاطر | خیال راحت | صورت</annotation>
@@ -723,8 +725,6 @@
<annotation cp="☹" type="tts">اخمو</annotation>
<annotation cp="😮">باز | تعجب | دهان | دهان باز از تعجب | صورت | غافلگیری | همدردی</annotation>
<annotation cp="😮" type="tts">دهان باز از تعجب</annotation>
- <annotation cp="😮💨">بازدم | سوت زدن | صورتک در حال بازدم | فوت کردن | نالیدن | نجوا کردن | نفس زدن</annotation>
- <annotation cp="😮💨" type="tts">صورتک در حال بازدم</annotation>
<annotation cp="😯">حیرتزده | صورت | غافلگیر | مات | مات و مبهوت | مبهوت | متعجب</annotation>
<annotation cp="😯" type="tts">مات و مبهوت</annotation>
<annotation cp="😲">بهتزده | شوکهشده | صورت | کاملاً | مبهوت | هاجوواج</annotation>
@@ -843,12 +843,12 @@
<annotation cp="❣" type="tts">علامت تعجب قلبی</annotation>
<annotation cp="💔">شکستن | شکسته | قلب</annotation>
<annotation cp="💔" type="tts">قلب شکسته</annotation>
- <annotation cp="❤">قلب | قلب قرمز</annotation>
- <annotation cp="❤" type="tts">قلب قرمز</annotation>
<annotation cp="❤🔥">سوزاندن | شهوت | عشق | قلب | قلب در آتش | قلب مقدس</annotation>
<annotation cp="❤🔥" type="tts">قلب در آتش</annotation>
<annotation cp="❤🩹">التیامیافته | تندرست | خوب شدن | در حال بازیابی | در حال بهبود | سالمتر | قلب التیامیافته</annotation>
<annotation cp="❤🩹" type="tts">قلب التیامیافته</annotation>
+ <annotation cp="❤">قلب | قلب قرمز</annotation>
+ <annotation cp="❤" type="tts">قلب قرمز</annotation>
<annotation cp="🧡">قلب | نارنجی</annotation>
<annotation cp="🧡" type="tts">قلب نارنجی</annotation>
<annotation cp="💛">زرد | قلب</annotation>
@@ -1011,14 +1011,14 @@
<annotation cp="👨" type="tts">مرد</annotation>
<annotation cp="🧔">آدم | ریشدار | ریشو | مرد | مرد: ریشدار</annotation>
<annotation cp="🧔" type="tts">مرد: ریشدار</annotation>
- <annotation cp="👱♂">بلوند | بور | طلایی | مرد بلوند | مرد بور | مرد: مو بور</annotation>
- <annotation cp="👱♂" type="tts">مرد: مو بور</annotation>
- <annotation cp="🧔♀">ریش | زن | زن: ریش</annotation>
- <annotation cp="🧔♀" type="tts">زن: ریش</annotation>
<annotation cp="🧔♂">ریش | مرد | مرد: ریش</annotation>
<annotation cp="🧔♂" type="tts">مرد: ریش</annotation>
+ <annotation cp="👱♂">بلوند | بور | طلایی | مرد بلوند | مرد بور | مرد: مو بور</annotation>
+ <annotation cp="👱♂" type="tts">مرد: مو بور</annotation>
<annotation cp="👩">خانم | زن</annotation>
<annotation cp="👩" type="tts">زن</annotation>
+ <annotation cp="🧔♀">ریش | زن | زن: ریش</annotation>
+ <annotation cp="🧔♀" type="tts">زن: ریش</annotation>
<annotation cp="👱♀">بلوند | بور | زن بلوند | زن بور | زن: موبور | موطلایی</annotation>
<annotation cp="👱♀" type="tts">زن: موبور</annotation>
<annotation cp="🧓">پیر | جنس خنثی | مسن | میانسال</annotation>
diff --git a/common/annotations/fi.xml b/common/annotations/fi.xml
index e5cbe04..58967ae 100644
--- a/common/annotations/fi.xml
+++ b/common/annotations/fi.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -384,6 +384,8 @@
<annotation cp="🙄" type="tts">silmien pyöritys</annotation>
<annotation cp="😬">irvistävä | irvistys | naama</annotation>
<annotation cp="😬" type="tts">irvistävä</annotation>
+ <annotation cp="😮💨">hämmästyä | hämmästynyt | haukkoa henkeään | helpotus | kuiskaus | puhaltaa | vihellys</annotation>
+ <annotation cp="😮💨" type="tts">hämmästynyt</annotation>
<annotation cp="🤥">kasvot | valehdella | valehteleva | valehtelija</annotation>
<annotation cp="🤥" type="tts">valehteleva</annotation>
<annotation cp="😌">helpottunut | helpotus | naama</annotation>
@@ -442,8 +444,6 @@
<annotation cp="☹" type="tts">surullinen</annotation>
<annotation cp="😮">auki | empatia | naama | suu | yllättynyt</annotation>
<annotation cp="😮" type="tts">yllättynyt</annotation>
- <annotation cp="😮💨">hämmästyä | hämmästynyt | haukkoa henkeään | helpotus | kuiskaus | puhaltaa | vihellys</annotation>
- <annotation cp="😮💨" type="tts">hämmästynyt</annotation>
<annotation cp="😯">järkyttynyt | naama | sanaton | yllättynyt</annotation>
<annotation cp="😯" type="tts">järkyttynyt</annotation>
<annotation cp="😲">ällistynyt | ihmetys | järkyttynyt | naama | tosi</annotation>
@@ -562,12 +562,12 @@
<annotation cp="❣" type="tts">sydänhuutomerkki</annotation>
<annotation cp="💔">särkyä | särkynyt | sydän</annotation>
<annotation cp="💔" type="tts">särkynyt sydän</annotation>
- <annotation cp="❤">punainen sydän | sydän</annotation>
- <annotation cp="❤" type="tts">punainen sydän</annotation>
<annotation cp="❤🔥">himo | liekki | palaa | palava sydän | pyhä sydän | rakkaus | sydän</annotation>
<annotation cp="❤🔥" type="tts">palava sydän</annotation>
<annotation cp="❤🩹">elpyvä | hyvinvoiva | parantuminen | parantuva | parantuva sydän | tervehtyvä | toipuminen</annotation>
<annotation cp="❤🩹" type="tts">parantuva sydän</annotation>
+ <annotation cp="❤">punainen sydän | sydän</annotation>
+ <annotation cp="❤" type="tts">punainen sydän</annotation>
<annotation cp="🧡">oranssi | sydän</annotation>
<annotation cp="🧡" type="tts">oranssi sydän</annotation>
<annotation cp="💛">keltainen | sydän</annotation>
@@ -730,14 +730,14 @@
<annotation cp="👨" type="tts">mies</annotation>
<annotation cp="🧔">karvainen | parrakas henkilö | parta | pulisongit | sänki | viikset</annotation>
<annotation cp="🧔" type="tts">parrakas henkilö</annotation>
- <annotation cp="👱♂">blondi | hiukset | mies | vaalea | vaaleahiuksinen mies | vaaleatukkainen mies</annotation>
- <annotation cp="👱♂" type="tts">vaaleatukkainen mies</annotation>
- <annotation cp="🧔♀">nainen | parrakas nainen | parta</annotation>
- <annotation cp="🧔♀" type="tts">parrakas nainen</annotation>
<annotation cp="🧔♂">mies | parrakas mies | parta</annotation>
<annotation cp="🧔♂" type="tts">parrakas mies</annotation>
+ <annotation cp="👱♂">blondi | hiukset | mies | vaalea | vaaleahiuksinen mies | vaaleatukkainen mies</annotation>
+ <annotation cp="👱♂" type="tts">vaaleatukkainen mies</annotation>
<annotation cp="👩">nainen | naispuolinen</annotation>
<annotation cp="👩" type="tts">nainen</annotation>
+ <annotation cp="🧔♀">nainen | parrakas nainen | parta</annotation>
+ <annotation cp="🧔♀" type="tts">parrakas nainen</annotation>
<annotation cp="👱♀">blondi | hiukset | nainen | vaalea | vaaleahiuksinen nainen | vaaleatukkainen nainen</annotation>
<annotation cp="👱♀" type="tts">vaaleatukkainen nainen</annotation>
<annotation cp="🧓">ikäihminen | seniori | sukupuolineutraali | vanha | vanhus</annotation>
diff --git a/common/annotations/fil.xml b/common/annotations/fil.xml
index 71d6140..d096fe2 100644
--- a/common/annotations/fil.xml
+++ b/common/annotations/fil.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -789,6 +789,8 @@
<annotation cp="🙄" type="tts">itinitirik ang mga mata</annotation>
<annotation cp="😬">mukha | nagngingitngit | nagtitiis | nakangiwi | nandidiri | nasasaktan | ngiwi</annotation>
<annotation cp="😬" type="tts">nakangiwi</annotation>
+ <annotation cp="😮💨" draft="contributed">mukhang humihinga palabas</annotation>
+ <annotation cp="😮💨" type="tts" draft="contributed">mukhang humihinga palabas</annotation>
<annotation cp="🤥">mukha | nagsisinungaling | pinocchio | sinungaling</annotation>
<annotation cp="🤥" type="tts">nagsisinungaling</annotation>
<annotation cp="😌">buntung-hininga | mukha | nakahinga nang maluwag | whew</annotation>
@@ -847,8 +849,6 @@
<annotation cp="☹" type="tts">nakasimangot</annotation>
<annotation cp="😮">bibig | mukha | nabigla | nagulat | nakanganga</annotation>
<annotation cp="😮" type="tts">nakanganga</annotation>
- <annotation cp="😮💨" draft="contributed">mukhang humihinga palabas</annotation>
- <annotation cp="😮💨" type="tts" draft="contributed">mukhang humihinga palabas</annotation>
<annotation cp="😯">mukha | naghihintay | nakanganga | tahimik | tahimik na naghihintay</annotation>
<annotation cp="😯" type="tts">tahimik na naghihintay</annotation>
<annotation cp="😲">gulat na gulat | mukha | nabigla | nagulat</annotation>
@@ -967,12 +967,12 @@
<annotation cp="❣" type="tts">malaking tandang padamdam na hugis-puso</annotation>
<annotation cp="💔">bigo | broken heart | durog na puso | pag-ibig | puso</annotation>
<annotation cp="💔" type="tts">durog na puso</annotation>
- <annotation cp="❤">pag-ibig | pulang puso | puso</annotation>
- <annotation cp="❤" type="tts">pulang puso</annotation>
<annotation cp="❤🔥" draft="contributed">pusong nasa apoy</annotation>
<annotation cp="❤🔥" type="tts" draft="contributed">pusong nasa apoy</annotation>
<annotation cp="❤🩹" draft="contributed">pag-ayos sa puso</annotation>
<annotation cp="❤🩹" type="tts" draft="contributed">pag-ayos sa puso</annotation>
+ <annotation cp="❤">pag-ibig | pulang puso | puso</annotation>
+ <annotation cp="❤" type="tts">pulang puso</annotation>
<annotation cp="🧡">dalandan | pusong dalandan</annotation>
<annotation cp="🧡" type="tts">pusong dalandan</annotation>
<annotation cp="💛">dilaw | dilaw na puso | puso</annotation>
@@ -1135,14 +1135,14 @@
<annotation cp="👨" type="tts">lalaki</annotation>
<annotation cp="🧔">balbas | lalaki: balbas | tao | taong may balbas</annotation>
<annotation cp="🧔" type="tts">taong may balbas</annotation>
- <annotation cp="👱♂">blonde | lalaki | lalaking blonde</annotation>
- <annotation cp="👱♂" type="tts">lalaking blonde</annotation>
- <annotation cp="🧔♀">babae | babae: balbas | balbas</annotation>
- <annotation cp="🧔♀" type="tts">babae: balbas</annotation>
<annotation cp="🧔♂">balbas | lalaki | lalaki: balbas</annotation>
<annotation cp="🧔♂" type="tts">lalaki: balbas</annotation>
+ <annotation cp="👱♂">blonde | lalaki | lalaking blonde</annotation>
+ <annotation cp="👱♂" type="tts">lalaking blonde</annotation>
<annotation cp="👩">babae | matanda</annotation>
<annotation cp="👩" type="tts">babae</annotation>
+ <annotation cp="🧔♀">babae | babae: balbas | balbas</annotation>
+ <annotation cp="🧔♀" type="tts">babae: balbas</annotation>
<annotation cp="👱♀">babae | babae: blond na buhok | babaeng blond ang buhok | blonde</annotation>
<annotation cp="👱♀" type="tts">babae: blond na buhok</annotation>
<annotation cp="🧓">hindi tinukoy na kasarian | kasarian-neutral | magulang | mas matandang tao | matanda</annotation>
diff --git a/common/annotations/fo.xml b/common/annotations/fo.xml
index ba8fa79..6f11b93 100644
--- a/common/annotations/fo.xml
+++ b/common/annotations/fo.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -105,6 +105,8 @@
<annotation cp="🙄" type="tts">andlit við rullandi eygum</annotation>
<annotation cp="😬">andlit | andlit ið vísur tenn | snerkja | tenn</annotation>
<annotation cp="😬" type="tts">andlit ið vísur tenn</annotation>
+ <annotation cp="😮💨">anda út | andlit andar út | bríksla | floyta | suffa</annotation>
+ <annotation cp="😮💨" type="tts">andlit andar út</annotation>
<annotation cp="🤥">andlit | andlit sum lýgur | lygn | pinocchio</annotation>
<annotation cp="🤥" type="tts">andlit sum lýgur</annotation>
<annotation cp="😌">andlit | lætna</annotation>
@@ -163,8 +165,6 @@
<annotation cp="☹" type="tts">illbrýnt andlit</annotation>
<annotation cp="😮">andlit | andlit við opnum munni | munn | opin</annotation>
<annotation cp="😮" type="tts">andlit við opnum munni</annotation>
- <annotation cp="😮💨">anda út | andlit andar út | bríksla | floyta | suffa</annotation>
- <annotation cp="😮💨" type="tts">andlit andar út</annotation>
<annotation cp="😯">andlit | bilsi andlit | ovfari | undrandi</annotation>
<annotation cp="😯" type="tts">bilsi andlit</annotation>
<annotation cp="😲">andlit | bilsi | ovfari andlit | undrandi</annotation>
@@ -283,12 +283,12 @@
<annotation cp="❣" type="tts">hjarta rópitekn</annotation>
<annotation cp="💔">brotið | hjarta | sorgarbundin</annotation>
<annotation cp="💔" type="tts">brotið hjarta</annotation>
- <annotation cp="❤">hjarta | reytt</annotation>
- <annotation cp="❤" type="tts">reytt hjarta</annotation>
<annotation cp="❤🔥">brennur | girnd | hjarta | hjarta sum brennur | kærleiki</annotation>
<annotation cp="❤🔥" type="tts">hjarta sum brennur</annotation>
<annotation cp="❤🩹">hjarta | hjarta sum er lappa | lappa | umvæling</annotation>
<annotation cp="❤🩹" type="tts">hjarta sum er lappa</annotation>
+ <annotation cp="❤">hjarta | reytt</annotation>
+ <annotation cp="❤" type="tts">reytt hjarta</annotation>
<annotation cp="🧡">appilsingult | hjarta</annotation>
<annotation cp="🧡" type="tts">appilsingult hjarta</annotation>
<annotation cp="💛">gult | hjarta</annotation>
@@ -451,14 +451,14 @@
<annotation cp="👨" type="tts">maður</annotation>
<annotation cp="🧔">persónur | persónur við skeggi | skegg</annotation>
<annotation cp="🧔" type="tts">persónur við skeggi</annotation>
- <annotation cp="👱♂">ljóshærdur | maður</annotation>
- <annotation cp="👱♂" type="tts">ljóshærdur maður</annotation>
- <annotation cp="🧔♀">kona | kona við skeggi | konufólk | kvinna | skegg</annotation>
- <annotation cp="🧔♀" type="tts">kona við skeggi</annotation>
<annotation cp="🧔♂">maður | maður við skeggi | skegg</annotation>
<annotation cp="🧔♂" type="tts">maður við skeggi</annotation>
+ <annotation cp="👱♂">ljóshærdur | maður</annotation>
+ <annotation cp="👱♂" type="tts">ljóshærdur maður</annotation>
<annotation cp="👩">kona | konufólk | kvinna | vaksin</annotation>
<annotation cp="👩" type="tts">kona</annotation>
+ <annotation cp="🧔♀">kona | kona við skeggi | konufólk | kvinna | skegg</annotation>
+ <annotation cp="🧔♀" type="tts">kona við skeggi</annotation>
<annotation cp="👱♀">kona | kvinna | ljóshærd</annotation>
<annotation cp="👱♀" type="tts">ljóshærd kvinna</annotation>
<annotation cp="🧓">eldri | tilkomin</annotation>
diff --git a/common/annotations/fr.xml b/common/annotations/fr.xml
index 11bfbe6..0c5dc3e 100644
--- a/common/annotations/fr.xml
+++ b/common/annotations/fr.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -440,6 +440,8 @@
<annotation cp="🙄" type="tts">visage roulant des yeux</annotation>
<annotation cp="😬">grimace | visage | visage grimaçant</annotation>
<annotation cp="😬" type="tts">visage grimaçant</annotation>
+ <annotation cp="😮💨">chuchoter | expiration | siffler | soulagement | sursaut | visage expirant</annotation>
+ <annotation cp="😮💨" type="tts">visage expirant</annotation>
<annotation cp="🤥">mensonge | menteur | pinocchio | visage | visage de menteur</annotation>
<annotation cp="🤥" type="tts">visage de menteur</annotation>
<annotation cp="😌">soulagement | visage | visage soulagé</annotation>
@@ -498,8 +500,6 @@
<annotation cp="☹" type="tts">visage mécontent</annotation>
<annotation cp="😮">surpris | visage avec bouche ouverte</annotation>
<annotation cp="😮" type="tts">visage avec bouche ouverte</annotation>
- <annotation cp="😮💨">chuchoter | expiration | siffler | soulagement | sursaut | visage expirant</annotation>
- <annotation cp="😮💨" type="tts">visage expirant</annotation>
<annotation cp="😯">sans voix | stupéfait | surpris | visage | visage ébahi</annotation>
<annotation cp="😯" type="tts">visage ébahi</annotation>
<annotation cp="😲">choc | stupéfait | visage</annotation>
@@ -618,12 +618,12 @@
<annotation cp="❣" type="tts">cœur point d’exclamation</annotation>
<annotation cp="💔">cœur | cœur brisé</annotation>
<annotation cp="💔" type="tts">cœur brisé</annotation>
- <annotation cp="❤">cœur | cœur rouge</annotation>
- <annotation cp="❤" type="tts">cœur rouge</annotation>
<annotation cp="❤🔥">amour | cœur enflammé | désir | feu | passion</annotation>
<annotation cp="❤🔥" type="tts">cœur enflammé</annotation>
<annotation cp="❤🩹">cœur avec bandages | réconforter | réparer | soigner</annotation>
<annotation cp="❤🩹" type="tts">cœur avec bandages</annotation>
+ <annotation cp="❤">cœur | cœur rouge</annotation>
+ <annotation cp="❤" type="tts">cœur rouge</annotation>
<annotation cp="🧡">cœur orange | orange</annotation>
<annotation cp="🧡" type="tts">cœur orange</annotation>
<annotation cp="💛">cœur | cœur jaune</annotation>
@@ -786,14 +786,14 @@
<annotation cp="👨" type="tts">homme</annotation>
<annotation cp="🧔">barbe | personne barbue</annotation>
<annotation cp="🧔" type="tts">personne barbue</annotation>
- <annotation cp="👱♂">blond | cheveux | homme blond</annotation>
- <annotation cp="👱♂" type="tts">homme blond</annotation>
- <annotation cp="🧔♀">barbe | femme barbue</annotation>
- <annotation cp="🧔♀" type="tts">femme barbue</annotation>
<annotation cp="🧔♂">barbe | homme barbu</annotation>
<annotation cp="🧔♂" type="tts">homme barbu</annotation>
+ <annotation cp="👱♂">blond | cheveux | homme blond</annotation>
+ <annotation cp="👱♂" type="tts">homme blond</annotation>
<annotation cp="👩">femme</annotation>
<annotation cp="👩" type="tts">femme</annotation>
+ <annotation cp="🧔♀">barbe | femme barbue</annotation>
+ <annotation cp="🧔♀" type="tts">femme barbue</annotation>
<annotation cp="👱♀">blonde | cheveux | femme blonde</annotation>
<annotation cp="👱♀" type="tts">femme blonde</annotation>
<annotation cp="🧓">adulte | âgé | genre neutre | personne âgée</annotation>
diff --git a/common/annotations/fr_CA.xml b/common/annotations/fr_CA.xml
index fa8a9cc..4c23f54 100644
--- a/common/annotations/fr_CA.xml
+++ b/common/annotations/fr_CA.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -500,6 +500,8 @@
<annotation cp="🙄" type="tts">visage qui roule des yeux</annotation>
<annotation cp="😬">↑↑↑</annotation>
<annotation cp="😬" type="tts">↑↑↑</annotation>
+ <annotation cp="😮💨">↑↑↑</annotation>
+ <annotation cp="😮💨" type="tts">↑↑↑</annotation>
<annotation cp="🤥">mensonge | menteur | pinocchio | visage | visage de menteur</annotation>
<annotation cp="🤥" type="tts">↑↑↑</annotation>
<annotation cp="😌">soulagé | soulagement | visage</annotation>
@@ -558,8 +560,6 @@
<annotation cp="☹" type="tts">↑↑↑</annotation>
<annotation cp="😮">bouche ouverte | compassion | visage | visage épaté</annotation>
<annotation cp="😮" type="tts">visage épaté</annotation>
- <annotation cp="😮💨">↑↑↑</annotation>
- <annotation cp="😮💨" type="tts">↑↑↑</annotation>
<annotation cp="😯">ébahi | sans voix | stupéfait | surpris | visage</annotation>
<annotation cp="😯" type="tts">↑↑↑</annotation>
<annotation cp="😲">choqué | étonné | stupéfait | surpris | visage</annotation>
@@ -678,12 +678,12 @@
<annotation cp="❣" type="tts">↑↑↑</annotation>
<annotation cp="💔">brisé | cœur</annotation>
<annotation cp="💔" type="tts">↑↑↑</annotation>
- <annotation cp="❤">cœur | rouge</annotation>
- <annotation cp="❤" type="tts">↑↑↑</annotation>
<annotation cp="❤🔥">amour | cœur en feu | désir | feu | passion</annotation>
<annotation cp="❤🔥" type="tts">cœur en feu</annotation>
<annotation cp="❤🩹">cœur avec bandages | en convalescence | réconforter | récupérer | soigner</annotation>
<annotation cp="❤🩹" type="tts">↑↑↑</annotation>
+ <annotation cp="❤">cœur | rouge</annotation>
+ <annotation cp="❤" type="tts">↑↑↑</annotation>
<annotation cp="🧡">cœur | orange</annotation>
<annotation cp="🧡" type="tts">↑↑↑</annotation>
<annotation cp="💛">cœur | jaune</annotation>
@@ -846,14 +846,14 @@
<annotation cp="👨" type="tts">↑↑↑</annotation>
<annotation cp="🧔">barbe | barbu | homme barbu | personne | personne barbue</annotation>
<annotation cp="🧔" type="tts">↑↑↑</annotation>
- <annotation cp="👱♂">blond | homme</annotation>
- <annotation cp="👱♂" type="tts">↑↑↑</annotation>
- <annotation cp="🧔♀" draft="contributed">femme barbue</annotation>
- <annotation cp="🧔♀" type="tts" draft="contributed">femme barbue</annotation>
<annotation cp="🧔♂">barbe | homme | homme barbu</annotation>
<annotation cp="🧔♂" type="tts">homme barbu</annotation>
+ <annotation cp="👱♂">blond | homme</annotation>
+ <annotation cp="👱♂" type="tts">↑↑↑</annotation>
<annotation cp="👩">adulte | femme</annotation>
<annotation cp="👩" type="tts">↑↑↑</annotation>
+ <annotation cp="🧔♀" draft="contributed">femme barbue</annotation>
+ <annotation cp="🧔♀" type="tts" draft="contributed">femme barbue</annotation>
<annotation cp="👱♀">blonde | femme</annotation>
<annotation cp="👱♀" type="tts">↑↑↑</annotation>
<annotation cp="🧓">adulte | âgée | genre non défini | personne</annotation>
diff --git a/common/annotations/ga.xml b/common/annotations/ga.xml
index 5b880a7..893e885 100644
--- a/common/annotations/ga.xml
+++ b/common/annotations/ga.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -483,6 +483,8 @@
<annotation cp="🙄" type="tts">straoiseog le súile ag casadh</annotation>
<annotation cp="😬">aghaidh | grainc | straoiseog le cár uirthi</annotation>
<annotation cp="😬" type="tts">straoiseog le cár uirthi</annotation>
+ <annotation cp="😮💨">aghaidh ag análú | anáil | cnead | cogar | faoiseamh | ochlán | séideadh</annotation>
+ <annotation cp="😮💨" type="tts">aghaidh ag análú</annotation>
<annotation cp="🤥">aghaidh | bréaga | pinocchio | straoiseog ag insint bréag</annotation>
<annotation cp="🤥" type="tts">straoiseog ag insint bréag</annotation>
<annotation cp="😌">aghaidh | faoiseamh | straoiseog a bhfuil faoiseamh uirthi</annotation>
@@ -541,8 +543,6 @@
<annotation cp="☹" type="tts">straoiseog le grainc uirthi</annotation>
<annotation cp="😮">béal ar oscailt | straoiseog le béal oscailte</annotation>
<annotation cp="😮" type="tts">straoiseog le béal oscailte</annotation>
- <annotation cp="😮💨">aghaidh ag análú | anáil | cnead | cogar | faoiseamh | ochlán | séideadh</annotation>
- <annotation cp="😮💨" type="tts">aghaidh ag análú</annotation>
<annotation cp="😯">ionadh | iontas | straoiseog ina tost | straoiseog thostach</annotation>
<annotation cp="😯" type="tts">straoiseog ina tost</annotation>
<annotation cp="😲">ionadh | iontas | straoiseog iontais</annotation>
@@ -661,12 +661,12 @@
<annotation cp="❣" type="tts">comhartha uaillbhreasa croí</annotation>
<annotation cp="💔">brón | croí | croíbhriste</annotation>
<annotation cp="💔" type="tts">croíbhriste</annotation>
- <annotation cp="❤">croí | croí dearg</annotation>
- <annotation cp="❤" type="tts">croí dearg</annotation>
<annotation cp="❤🔥">croí | croí naofa | croí trí thine | dó | drúis | grá</annotation>
<annotation cp="❤🔥" type="tts">croí trí thine</annotation>
<annotation cp="❤🩹">ag feabhsú | ag teacht ar ais chugat féin | croí deisithe | go maith | níos sláintiúla</annotation>
<annotation cp="❤🩹" type="tts">croí deisithe</annotation>
+ <annotation cp="❤">croí | croí dearg</annotation>
+ <annotation cp="❤" type="tts">croí dearg</annotation>
<annotation cp="🧡">croí | flannbhuí | oráiste</annotation>
<annotation cp="🧡" type="tts">croí flannbhuí</annotation>
<annotation cp="💛">croí | croí buí</annotation>
@@ -829,14 +829,14 @@
<annotation cp="👨" type="tts">fear</annotation>
<annotation cp="🧔">duine | duine: feasóg | fear | fear: feasóg | feasóg</annotation>
<annotation cp="🧔" type="tts">duine: feasóg</annotation>
- <annotation cp="👱♂">fear | fear: gruaig fhionn | fearr le gruaig fhionn | fionn | gruaig</annotation>
- <annotation cp="👱♂" type="tts">fear: gruaig fhionn</annotation>
- <annotation cp="🧔♀">bean | bean: feasóg | feasóg</annotation>
- <annotation cp="🧔♀" type="tts">bean: feasóg</annotation>
<annotation cp="🧔♂">fear | fear: feasóg | feasóg</annotation>
<annotation cp="🧔♂" type="tts">fear: feasóg</annotation>
+ <annotation cp="👱♂">fear | fear: gruaig fhionn | fearr le gruaig fhionn | fionn | gruaig</annotation>
+ <annotation cp="👱♂" type="tts">fear: gruaig fhionn</annotation>
<annotation cp="👩">bean</annotation>
<annotation cp="👩" type="tts">bean</annotation>
+ <annotation cp="🧔♀">bean | bean: feasóg | feasóg</annotation>
+ <annotation cp="🧔♀" type="tts">bean: feasóg</annotation>
<annotation cp="👱♀">bean | bean le gruaig fhionn | bean: gruaig fhionn | duine</annotation>
<annotation cp="👱♀" type="tts">bean: gruaig fhionn</annotation>
<annotation cp="🧓">neodrach ó thaobh inscne de | sean | seanduine</annotation>
diff --git a/common/annotations/gd.xml b/common/annotations/gd.xml
index 1cdefe9..ec82ddd 100644
--- a/common/annotations/gd.xml
+++ b/common/annotations/gd.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -709,6 +709,8 @@
<annotation cp="🙄" type="tts">aodann a’ casadh nan sùilean</annotation>
<annotation cp="😬">aodann | aodann le drèin air | drèin</annotation>
<annotation cp="😬" type="tts">aodann le drèin air</annotation>
+ <annotation cp="😮💨">anail | aodan a’ leigeil anail | cagar | cnead | cogar | faochadh | fead | leig anail | leig d’ anail | leigeil anail | plosg</annotation>
+ <annotation cp="😮💨" type="tts">aodan a’ leigeil anail</annotation>
<annotation cp="🤥">aodann | aodann nam breug | breug | pinocchio</annotation>
<annotation cp="🤥" type="tts">aodann nam breug</annotation>
<annotation cp="😌">aodann | aodann a fhuair faochadh | faochadh</annotation>
@@ -767,8 +769,6 @@
<annotation cp="☹" type="tts">aodann le fiamh drèin</annotation>
<annotation cp="😮">aodann | aodann le beul fosgailte | beul | co-fhulangas | fosgailte | truaghas | truas</annotation>
<annotation cp="😮" type="tts">aodann le beul fosgailte</annotation>
- <annotation cp="😮💨">anail | aodan a’ leigeil anail | cagar | cnead | cogar | faochadh | fead | leig anail | leig d’ anail | leigeil anail | plosg</annotation>
- <annotation cp="😮💨" type="tts">aodan a’ leigeil anail</annotation>
<annotation cp="😯">aodann | aodann iongnaidh le sùilean fosgailte | iongnadh | tost</annotation>
<annotation cp="😯" type="tts">aodann iongnaidh le sùilean fosgailte</annotation>
<annotation cp="😲">annas | aodann | aodann a ghabh mòr-iongnadh | gu tur | iongnadh</annotation>
@@ -887,12 +887,12 @@
<annotation cp="❣" type="tts">clisg-phuing cridhe</annotation>
<annotation cp="💔">briseadh | briste | cridhe briste</annotation>
<annotation cp="💔" type="tts">cridhe briste</annotation>
- <annotation cp="❤">cridhe | cridhe dearg</annotation>
- <annotation cp="❤" type="tts">cridhe dearg</annotation>
<annotation cp="❤🔥">connan | cridhe | cridhe air theine | cridhe naoimh | deòthas | drùis | gaol | gràdh | lasair | loisg | losgadh</annotation>
<annotation cp="❤🔥" type="tts">cridhe air theine</annotation>
<annotation cp="❤🩹">fallainn | feabhas | gu math | nas fhallainne | nas fheàrr | slàn | slànachadh cridhe</annotation>
<annotation cp="❤🩹" type="tts">slànachadh cridhe</annotation>
+ <annotation cp="❤">cridhe | cridhe dearg</annotation>
+ <annotation cp="❤" type="tts">cridhe dearg</annotation>
<annotation cp="🧡">cridhe orains | orains</annotation>
<annotation cp="🧡" type="tts">cridhe orains</annotation>
<annotation cp="💛">buidhe | cridhe buidhe</annotation>
@@ -1055,14 +1055,14 @@
<annotation cp="👨" type="tts">duine</annotation>
<annotation cp="🧔">duine le feusag | feusag</annotation>
<annotation cp="🧔" type="tts">duine le feusag</annotation>
- <annotation cp="👱♂">bàn | duine | duine le falt bàn | falt | fear | fireannach</annotation>
- <annotation cp="👱♂" type="tts">duine le falt bàn</annotation>
- <annotation cp="🧔♀">boireannach | boireannach: feusag | feusag | tè</annotation>
- <annotation cp="🧔♀" type="tts">boireannach: feusag</annotation>
<annotation cp="🧔♂">duine | fear | feusag | fireannach | fireannach: feusag</annotation>
<annotation cp="🧔♂" type="tts">fireannach: feusag</annotation>
+ <annotation cp="👱♂">bàn | duine | duine le falt bàn | falt | fear | fireannach</annotation>
+ <annotation cp="👱♂" type="tts">duine le falt bàn</annotation>
<annotation cp="👩">boireannach | tè</annotation>
<annotation cp="👩" type="tts">boireannach</annotation>
+ <annotation cp="🧔♀">boireannach | boireannach: feusag | feusag | tè</annotation>
+ <annotation cp="🧔♀" type="tts">boireannach: feusag</annotation>
<annotation cp="👱♀">bàn | boireannach | boireannach le falt bàn | falt | tè</annotation>
<annotation cp="👱♀" type="tts">boireannach le falt bàn</annotation>
<annotation cp="🧓">gun ghnè | sean | seann | seann-inbheach</annotation>
@@ -3671,7 +3671,7 @@
<annotation cp="²" type="tts">a dhà os-sgrìobhte</annotation>
<annotation cp="³">a trì os-sgrìobhte | ciùbach | ciùbaichte | os-sgrìobhte | trì</annotation>
<annotation cp="³" type="tts">a trì os-sgrìobhte</annotation>
- <annotation cp="µ">samhla micreo | samhla µ | tomhas</annotation>
- <annotation cp="µ" type="tts">samhla µ</annotation>
+ <annotation cp="µ">samhla micreo | samhla μ | tomhas</annotation>
+ <annotation cp="µ" type="tts">samhla μ</annotation>
</annotations>
</ldml>
diff --git a/common/annotations/gl.xml b/common/annotations/gl.xml
index 3f05bba..c0a5876 100644
--- a/common/annotations/gl.xml
+++ b/common/annotations/gl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -453,6 +453,8 @@
<annotation cp="🙄" type="tts">cara cos ollos en branco</annotation>
<annotation cp="😬">cara | cara apertando os dentes | dentes | nervios</annotation>
<annotation cp="😬" type="tts">cara apertando os dentes</annotation>
+ <annotation cp="😮💨">alivio | asubiar | bafexar | cara exhalando | folguexar | resollar | respirar</annotation>
+ <annotation cp="😮💨" type="tts">cara exhalando</annotation>
<annotation cp="🤥">cara de mentirán | mentirán | mentireiro | nariz | Pinocchio</annotation>
<annotation cp="🤥" type="tts">cara de mentirán</annotation>
<annotation cp="😌">alivio | cara | cara de alivio</annotation>
@@ -511,8 +513,6 @@
<annotation cp="☹" type="tts">cara moi triste</annotation>
<annotation cp="😮">boca aberta | cara | cara coa boca aberta</annotation>
<annotation cp="😮" type="tts">cara coa boca aberta</annotation>
- <annotation cp="😮💨">alivio | asubiar | bafexar | cara exhalando | folguexar | resollar | respirar</annotation>
- <annotation cp="😮💨" type="tts">cara exhalando</annotation>
<annotation cp="😯">cara estupefacta | estupefacto | pasmo</annotation>
<annotation cp="😯" type="tts">cara estupefacta</annotation>
<annotation cp="😲">abraiado | abraio | asombro | cara abraiada</annotation>
@@ -631,12 +631,12 @@
<annotation cp="❣" type="tts">exclamación en forma de corazón</annotation>
<annotation cp="💔">corazón | desamor | romper o corazón | roto</annotation>
<annotation cp="💔" type="tts">corazón roto</annotation>
- <annotation cp="❤">amor | corazón</annotation>
- <annotation cp="❤" type="tts">corazón</annotation>
<annotation cp="❤🔥">amor | chamas | corazón en chamas | desexo | luxuria | paixón</annotation>
<annotation cp="❤🔥" type="tts">corazón en chamas</annotation>
<annotation cp="❤🩹">corazón curándose | curar | desamor | mellorar | recuperación | sandar</annotation>
<annotation cp="❤🩹" type="tts">corazón curándose</annotation>
+ <annotation cp="❤">amor | corazón</annotation>
+ <annotation cp="❤" type="tts">corazón</annotation>
<annotation cp="🧡">corazón | laranxa</annotation>
<annotation cp="🧡" type="tts">corazón laranxa</annotation>
<annotation cp="💛">amarelo | corazón</annotation>
@@ -799,14 +799,14 @@
<annotation cp="👨" type="tts">home</annotation>
<annotation cp="🧔">barba | barbudo | persoa con barba</annotation>
<annotation cp="🧔" type="tts">persoa con barba</annotation>
- <annotation cp="👱♂">home | loiro | louro</annotation>
- <annotation cp="👱♂" type="tts">home louro</annotation>
- <annotation cp="🧔♀">barba | barbuda | muller con barba</annotation>
- <annotation cp="🧔♀" type="tts">muller con barba</annotation>
<annotation cp="🧔♂">barba | barbudo | home con barba</annotation>
<annotation cp="🧔♂" type="tts">home con barba</annotation>
+ <annotation cp="👱♂">home | loiro | louro</annotation>
+ <annotation cp="👱♂" type="tts">home louro</annotation>
<annotation cp="👩">adulta | muller</annotation>
<annotation cp="👩" type="tts">muller</annotation>
+ <annotation cp="🧔♀">barba | barbuda | muller con barba</annotation>
+ <annotation cp="🧔♀" type="tts">muller con barba</annotation>
<annotation cp="👱♀">loira | loura | muller</annotation>
<annotation cp="👱♀" type="tts">muller loura</annotation>
<annotation cp="🧓">ancián | persoa maior | vello | xénero neutro</annotation>
diff --git a/common/annotations/gu.xml b/common/annotations/gu.xml
index 0c3a0e1..bb9b15b 100644
--- a/common/annotations/gu.xml
+++ b/common/annotations/gu.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -335,6 +335,8 @@
<annotation cp="🙄" type="tts">આંખો ફેરવતો ચહેરો</annotation>
<annotation cp="😬">ચહેરો | ચેનચાળા | ચેનચાળા કરતો ચહેરો</annotation>
<annotation cp="😬" type="tts">ચેનચાળા કરતો ચહેરો</annotation>
+ <annotation cp="😮💨">કણસવું | ગુસપુસ | રાહત | શ્વાસ છોડતો ચહેરો | શ્વાસ છોડવો | સીટી | હાંફવું</annotation>
+ <annotation cp="😮💨" type="tts">શ્વાસ છોડતો ચહેરો</annotation>
<annotation cp="🤥">ખોટું | ખોટું બોલવાવાળો ચહેરો | ચહેરો</annotation>
<annotation cp="🤥" type="tts">ખોટું બોલવાવાળો ચહેરો</annotation>
<annotation cp="😌">ચહેરો | રાહતના ભાવવાળો ચહેરો | રાહતવાળો ચહેરો</annotation>
@@ -393,8 +395,6 @@
<annotation cp="☹" type="tts">ગમગીન ચહેરો</annotation>
<annotation cp="😮">ખુલ્લાં મોંઢાવાળો ચહેરો | ખુલ્લું મોઢું | ચહેરો | મોંઢું | સહાનુભૂતિ</annotation>
<annotation cp="😮" type="tts">ખુલ્લાં મોંઢાવાળો ચહેરો</annotation>
- <annotation cp="😮💨">કણસવું | ગુસપુસ | રાહત | શ્વાસ છોડતો ચહેરો | શ્વાસ છોડવો | સીટી | હાંફવું</annotation>
- <annotation cp="😮💨" type="tts">શ્વાસ છોડતો ચહેરો</annotation>
<annotation cp="😯">અચંભિત | અવાક | ચહેરો | શાંત ચહેરો</annotation>
<annotation cp="😯" type="tts">શાંત ચહેરો</annotation>
<annotation cp="😲">આઘાત | આશ્ચર્ય | આશ્ચર્યચકિત ચહેરો | ચહેરો | તદ્દન</annotation>
@@ -513,12 +513,12 @@
<annotation cp="❣" type="tts">ઉદ્ગારવાચક ચિહ્ન સાથેનું હૃદય</annotation>
<annotation cp="💔">તોડવું | ભગ્ન | લાગણી | હૃદય | હૃદય ભંગ</annotation>
<annotation cp="💔" type="tts">ભગ્ન હૃદય</annotation>
- <annotation cp="❤">લાલ | હૃદય</annotation>
- <annotation cp="❤" type="tts">લાલ હૃદય</annotation>
<annotation cp="❤🔥">જલન | દિલ | દિલ પર આગ | પવિત્ર હૃદય | પ્રેમ | વાસના | સળગતું દિલ | હૃદય</annotation>
<annotation cp="❤🔥" type="tts">દિલ પર આગ</annotation>
<annotation cp="❤🩹">તંદુરસ્ત | દિલ બહેલાવવું | દિલાસો | સારું | સુધારણા | સ્વસ્થ | સ્વસ્થ થવું</annotation>
<annotation cp="❤🩹" type="tts">દિલ બહેલાવવું</annotation>
+ <annotation cp="❤">લાલ | હૃદય</annotation>
+ <annotation cp="❤" type="tts">લાલ હૃદય</annotation>
<annotation cp="🧡">નારંગી દિલ</annotation>
<annotation cp="🧡" type="tts">નારંગી દિલ</annotation>
<annotation cp="💛">દિલ | પીળું | લાગણી</annotation>
@@ -681,14 +681,14 @@
<annotation cp="👨" type="tts">પુરુષ</annotation>
<annotation cp="🧔">દાઢી | દાઢી વાળી વ્યક્તિ | પુરુષ | વ્યક્તિ</annotation>
<annotation cp="🧔" type="tts">દાઢી વાળી વ્યક્તિ</annotation>
- <annotation cp="👱♂">પીળાશ પડતાં વાળવાળો પુરુષ | પીળાશ પડતો | પુરુષ | પુરુષ: પીળાશ પડતાં વાળ | વાળ</annotation>
- <annotation cp="👱♂" type="tts">પુરુષ: પીળાશ પડતાં વાળ</annotation>
- <annotation cp="🧔♀">દાઢી | સ્ત્રી | સ્ત્રી: દાઢી</annotation>
- <annotation cp="🧔♀" type="tts">સ્ત્રી: દાઢી</annotation>
<annotation cp="🧔♂">દાઢી | પુરુષ | પુરુષ : દાઢી | પુરુષ: દાઢી</annotation>
<annotation cp="🧔♂" type="tts">પુરુષ : દાઢી</annotation>
+ <annotation cp="👱♂">પીળાશ પડતાં વાળવાળો પુરુષ | પીળાશ પડતો | પુરુષ | પુરુષ: પીળાશ પડતાં વાળ | વાળ</annotation>
+ <annotation cp="👱♂" type="tts">પુરુષ: પીળાશ પડતાં વાળ</annotation>
<annotation cp="👩">પુખ્ત | સ્ત્રી</annotation>
<annotation cp="👩" type="tts">સ્ત્રી</annotation>
+ <annotation cp="🧔♀">દાઢી | સ્ત્રી | સ્ત્રી: દાઢી</annotation>
+ <annotation cp="🧔♀" type="tts">સ્ત્રી: દાઢી</annotation>
<annotation cp="👱♀">પીળાશ પડતાં વાળવાળી સ્ત્રી | વાળ | સોનેરી વાળવાળી સ્ત્રી | સ્ત્રી | સ્ત્રી: સોનેરી વાળ</annotation>
<annotation cp="👱♀" type="tts">સ્ત્રી: સોનેરી વાળ</annotation>
<annotation cp="🧓">અનિર્દિષ્ટ લિંગ | જૂના | જૂની વ્યક્તિ | પુખ્ત | લિંગ-તટસ્થ | વૃદ્ધ વ્યક્તિ</annotation>
diff --git a/common/annotations/he.xml b/common/annotations/he.xml
index a1f7a9a..3e4f932 100644
--- a/common/annotations/he.xml
+++ b/common/annotations/he.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -491,6 +491,8 @@
<annotation cp="🙄" type="tts">פרצוף מגלגל עיניים</annotation>
<annotation cp="😬">חיוך | מחייך | פרצוף | פרצוף עם חיוך מלא שיניים | שיניים</annotation>
<annotation cp="😬" type="tts">פרצוף עם חיוך מלא שיניים</annotation>
+ <annotation cp="😮💨">הפתעה | לוחש | משתנק | מתנשם | נושף | פרצוף נושף</annotation>
+ <annotation cp="😮💨" type="tts">פרצוף נושף</annotation>
<annotation cp="🤥">אף ארוך | פינוקיו | פרצוף עם אף פינוקיו | שקר | שקרן</annotation>
<annotation cp="🤥" type="tts">פרצוף עם אף פינוקיו</annotation>
<annotation cp="😌">הקלה | מחייך | עיניים | עצומות | פרצוף | פרצוף של אנחת רווחה | רגוע</annotation>
@@ -549,8 +551,6 @@
<annotation cp="☹" type="tts">פרצוף עצוב</annotation>
<annotation cp="😮">פה | פרצוף | פרצוף עם פה פתוח | פתוח</annotation>
<annotation cp="😮" type="tts">פרצוף עם פה פתוח</annotation>
- <annotation cp="😮💨">הפתעה | לוחש | משתנק | מתנשם | נושף | פרצוף נושף</annotation>
- <annotation cp="😮💨" type="tts">פרצוף נושף</annotation>
<annotation cp="😯">המום | מופתע | פרצוף</annotation>
<annotation cp="😯" type="tts">פרצוף מופתע</annotation>
<annotation cp="😲">המום | נדהם | פה | פרצוף | פתוח</annotation>
@@ -669,12 +669,12 @@
<annotation cp="❣" type="tts">סימן קריאה בצורת לב</annotation>
<annotation cp="💔">אכזבה | לב | שבור</annotation>
<annotation cp="💔" type="tts">לב שבור</annotation>
- <annotation cp="❤">אדום | לב</annotation>
- <annotation cp="❤" type="tts">לב אדום</annotation>
<annotation cp="❤🔥">לב | לב בלהבות | עולה באש | שורף | תשוקה</annotation>
<annotation cp="❤🔥" type="tts">לב בלהבות</annotation>
<annotation cp="❤🩹">בריא יותר | לב שמשתקם | מחלים | משתפר | נרפא</annotation>
<annotation cp="❤🩹" type="tts">לב שמשתקם</annotation>
+ <annotation cp="❤">אדום | לב</annotation>
+ <annotation cp="❤" type="tts">לב אדום</annotation>
<annotation cp="🧡">כתום | לב כתום</annotation>
<annotation cp="🧡" type="tts">לב כתום</annotation>
<annotation cp="💛">לב | צהוב</annotation>
@@ -837,14 +837,14 @@
<annotation cp="👨" type="tts">איש</annotation>
<annotation cp="🧔">אדם מזוקן | זקן | מזוקן</annotation>
<annotation cp="🧔" type="tts">אדם מזוקן</annotation>
- <annotation cp="👱♂">איש | בלונדיני | גבר</annotation>
- <annotation cp="👱♂" type="tts">בלונדיני</annotation>
- <annotation cp="🧔♀">אישה עם זקן | אישה, זקן, אישה עם זקן</annotation>
- <annotation cp="🧔♀" type="tts">אישה עם זקן</annotation>
<annotation cp="🧔♂">גבר עם זקן | גבר, זקן, גבר עם זקן</annotation>
<annotation cp="🧔♂" type="tts">גבר עם זקן</annotation>
+ <annotation cp="👱♂">איש | בלונדיני | גבר</annotation>
+ <annotation cp="👱♂" type="tts">בלונדיני</annotation>
<annotation cp="👩">אישה | בחורה | בת</annotation>
<annotation cp="👩" type="tts">אישה</annotation>
+ <annotation cp="🧔♀">אישה עם זקן | אישה, זקן, אישה עם זקן</annotation>
+ <annotation cp="🧔♀" type="tts">אישה עם זקן</annotation>
<annotation cp="👱♀">אישה | בלונדינית</annotation>
<annotation cp="👱♀" type="tts">בלונדינית</annotation>
<annotation cp="🧓">איש מבוגר | מבוגר | מבוגרת | מגדר נייטרלי</annotation>
diff --git a/common/annotations/hi.xml b/common/annotations/hi.xml
index 8711882..6d664b4 100644
--- a/common/annotations/hi.xml
+++ b/common/annotations/hi.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -443,6 +443,8 @@
<annotation cp="🙄" type="tts">ऊपर देखती आँखों वाला चेहरा</annotation>
<annotation cp="😬">खिसियाता चेहरा | चेहरा | दांत निकालना | मुंह बनाता चेहरा | मुंह बनाना</annotation>
<annotation cp="😬" type="tts">मुंह बनाता चेहरा</annotation>
+ <annotation cp="😮💨" draft="contributed">सांस छोड़ता हुआ चेहरा</annotation>
+ <annotation cp="😮💨" type="tts" draft="contributed">सांस छोड़ता हुआ चेहरा</annotation>
<annotation cp="🤥">चेहरा | झूठ | झूठ बोलता चेहरा | पिनोकिओ</annotation>
<annotation cp="🤥" type="tts">झूठ बोलता चेहरा</annotation>
<annotation cp="😌">चिंतामुक्त | चेहरा</annotation>
@@ -501,8 +503,6 @@
<annotation cp="☹" type="tts">अधिक क्रोधित चेहरा</annotation>
<annotation cp="😮">खुला मुंह | खुले मुँह वाला चेहरा | चेहरा | मुंह</annotation>
<annotation cp="😮" type="tts">खुले मुँह वाला चेहरा</annotation>
- <annotation cp="😮💨" draft="contributed">सांस छोड़ता हुआ चेहरा</annotation>
- <annotation cp="😮💨" type="tts" draft="contributed">सांस छोड़ता हुआ चेहरा</annotation>
<annotation cp="😯">अचंभित | अवाक | आश्चर्यचकित | चेहरा | निस्तब्ध चेहरा</annotation>
<annotation cp="😯" type="tts">आश्चर्यचकित चेहरा</annotation>
<annotation cp="😲">चेहरा | झटका | पूरी तरह स्तंभित | पूरी तरह स्तंभित चेहरा | भौंचक | हैरान चेहरा</annotation>
@@ -621,12 +621,12 @@
<annotation cp="❣" type="tts">विस्मय चिह्न वाला दिल</annotation>
<annotation cp="💔">टूटना | टूटा दिल | टूटा हुआ | दिल | भावना</annotation>
<annotation cp="💔" type="tts">टूटा दिल</annotation>
- <annotation cp="❤">दिल | लाल दिल</annotation>
- <annotation cp="❤" type="tts">लाल दिल</annotation>
<annotation cp="❤🔥" draft="contributed">दिल जलना</annotation>
<annotation cp="❤🔥" type="tts" draft="contributed">दिल जलना</annotation>
<annotation cp="❤🩹" draft="contributed">दिल बहलाना</annotation>
<annotation cp="❤🩹" type="tts" draft="contributed">दिल बहलाना</annotation>
+ <annotation cp="❤">दिल | लाल दिल</annotation>
+ <annotation cp="❤" type="tts">लाल दिल</annotation>
<annotation cp="🧡">नारंगी दिल</annotation>
<annotation cp="🧡" type="tts">नारंगी दिल</annotation>
<annotation cp="💛">दिल | पीला | भावना</annotation>
@@ -789,14 +789,14 @@
<annotation cp="👨" type="tts">पुरुष</annotation>
<annotation cp="🧔">दाढ़ी | दाढ़ी वाला आदमी</annotation>
<annotation cp="🧔" type="tts">दाढ़ी वाला आदमी</annotation>
- <annotation cp="👱♂">आदमी | गोरा | पुरुष | सुनहरे बालों वाला पुरुष</annotation>
- <annotation cp="👱♂" type="tts">सुनहरे बालों वाला पुरुष</annotation>
- <annotation cp="🧔♀" draft="contributed">दाढ़ी | महिला | महिला: दाढ़ी</annotation>
- <annotation cp="🧔♀" type="tts">महिला: दाढ़ी</annotation>
<annotation cp="🧔♂" draft="contributed">आदमी | आदमी: दाढ़ी | दाढ़ी</annotation>
<annotation cp="🧔♂" type="tts">आदमी: दाढ़ी</annotation>
+ <annotation cp="👱♂">आदमी | गोरा | पुरुष | सुनहरे बालों वाला पुरुष</annotation>
+ <annotation cp="👱♂" type="tts">सुनहरे बालों वाला पुरुष</annotation>
<annotation cp="👩">महिला | वयस्क</annotation>
<annotation cp="👩" type="tts">महिला</annotation>
+ <annotation cp="🧔♀" draft="contributed">दाढ़ी | महिला | महिला: दाढ़ी</annotation>
+ <annotation cp="🧔♀" type="tts">महिला: दाढ़ी</annotation>
<annotation cp="👱♀">गोरी | महिला | सुनहरे बालों वाली औरत</annotation>
<annotation cp="👱♀" type="tts">सुनहरे बालों वाली औरत</annotation>
<annotation cp="🧓">लैंगिक रूप से निष्पक्ष | वृद्ध | वृद्ध व्यक्ति</annotation>
diff --git a/common/annotations/hr.xml b/common/annotations/hr.xml
index f3bb5d5..2983dcd 100644
--- a/common/annotations/hr.xml
+++ b/common/annotations/hr.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -424,6 +424,8 @@
<annotation cp="🙄" type="tts">lice s kolutajućim očima</annotation>
<annotation cp="😬">grimasa | lice | lice s grimasom</annotation>
<annotation cp="😬" type="tts">lice s grimasom</annotation>
+ <annotation cp="😮💨">izdisaj | lice koje izdiše | olakšanje | šapat | stenjanje | uzdah | zvižduk</annotation>
+ <annotation cp="😮💨" type="tts">lice koje izdiše</annotation>
<annotation cp="🤥">laganje | laž | lice | lice koje laže | pinokio</annotation>
<annotation cp="🤥" type="tts">lice koje laže</annotation>
<annotation cp="😌">lice | lice s izrazom olakšanja | olakšanje</annotation>
@@ -482,8 +484,6 @@
<annotation cp="☹" type="tts">namrgođeno lice</annotation>
<annotation cp="😮">lice | lice s otvorenim ustima | otvoreno | suosjećanje | usta</annotation>
<annotation cp="😮" type="tts">lice s otvorenim ustima</annotation>
- <annotation cp="😮💨">izdisaj | lice koje izdiše | olakšanje | šapat | stenjanje | uzdah | zvižduk</annotation>
- <annotation cp="😮💨" type="tts">lice koje izdiše</annotation>
<annotation cp="😯">iznenađenje | iznenađeno lice | lice | ušutkano | zapanjeno</annotation>
<annotation cp="😯" type="tts">iznenađeno lice</annotation>
<annotation cp="😲">lice | šok | zapanjeno lice | zapanjenost</annotation>
@@ -602,12 +602,12 @@
<annotation cp="❣" type="tts">uskličnik u obliku srca</annotation>
<annotation cp="💔">slomljeno | srce</annotation>
<annotation cp="💔" type="tts">slomljeno srce</annotation>
- <annotation cp="❤">crveno srce | srce</annotation>
- <annotation cp="❤" type="tts">crveno srce</annotation>
<annotation cp="❤🔥">ljubav | požuda | srce | srce u plamenu | sveto srce | vatra</annotation>
<annotation cp="❤🔥" type="tts">srce u plamenu</annotation>
<annotation cp="❤🩹">dobro | obnavljanje | oporavak | poboljšanje | srce koje se liječi | zarastanje | zdravije</annotation>
<annotation cp="❤🩹" type="tts">srce koje se liječi</annotation>
+ <annotation cp="❤">crveno srce | srce</annotation>
+ <annotation cp="❤" type="tts">crveno srce</annotation>
<annotation cp="🧡">narančasto | srce</annotation>
<annotation cp="🧡" type="tts">narančasto srce</annotation>
<annotation cp="💛">srce | žuto</annotation>
@@ -770,14 +770,14 @@
<annotation cp="👨" type="tts">muškarac</annotation>
<annotation cp="🧔">brada | muškarac | muškarac s bradom | osoba</annotation>
<annotation cp="🧔" type="tts">muškarac s bradom</annotation>
- <annotation cp="👱♂">kosa | muškarac | plava kosa | plavokosi muškarac</annotation>
- <annotation cp="👱♂" type="tts">plavokosi muškarac</annotation>
- <annotation cp="🧔♀">brada | žena | žena: brada</annotation>
- <annotation cp="🧔♀" type="tts">žena: brada</annotation>
<annotation cp="🧔♂">brada | muškarac | muškarac: brada</annotation>
<annotation cp="🧔♂" type="tts">muškarac: brada</annotation>
+ <annotation cp="👱♂">kosa | muškarac | plava kosa | plavokosi muškarac</annotation>
+ <annotation cp="👱♂" type="tts">plavokosi muškarac</annotation>
<annotation cp="👩">žena | žensko</annotation>
<annotation cp="👩" type="tts">žena</annotation>
+ <annotation cp="🧔♀">brada | žena | žena: brada</annotation>
+ <annotation cp="🧔♀" type="tts">žena: brada</annotation>
<annotation cp="👱♀">plavojka | plavokosa žena | plavuša</annotation>
<annotation cp="👱♀" type="tts">plavokosa žena</annotation>
<annotation cp="🧓">rodno neutralno | stara osoba | starija osoba</annotation>
diff --git a/common/annotations/hu.xml b/common/annotations/hu.xml
index dce6a97..69ace97 100644
--- a/common/annotations/hu.xml
+++ b/common/annotations/hu.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -521,6 +521,8 @@
<annotation cp="🙄" type="tts">szemét forgató arc</annotation>
<annotation cp="😬">arc | grimasz | grimaszoló arc</annotation>
<annotation cp="😬" type="tts">grimaszoló arc</annotation>
+ <annotation cp="😮💨" draft="contributed">levegőt kifújó arc</annotation>
+ <annotation cp="😮💨" type="tts" draft="contributed">levegőt kifújó arc</annotation>
<annotation cp="🤥">arc | hazudik | hazudó | hazudós | pinokkió</annotation>
<annotation cp="🤥" type="tts">hazudó arc</annotation>
<annotation cp="😌">arc | megkönnyebbült</annotation>
@@ -579,8 +581,6 @@
<annotation cp="☹" type="tts">rosszalló arc</annotation>
<annotation cp="😮">arc | arc nyitott szájjal | csodálkozás | nyitott száj</annotation>
<annotation cp="😮" type="tts">arc nyitott szájjal</annotation>
- <annotation cp="😮💨" draft="contributed">levegőt kifújó arc</annotation>
- <annotation cp="😮💨" type="tts" draft="contributed">levegőt kifújó arc</annotation>
<annotation cp="😯">arc | döbbent | meglepett | meglepődött</annotation>
<annotation cp="😯" type="tts">meglepődött arc</annotation>
<annotation cp="😲">arc | csodálkozó | lenyűgözött</annotation>
@@ -699,12 +699,12 @@
<annotation cp="❣" type="tts">nagy szív alakú felkiáltójel</annotation>
<annotation cp="💔">összetört | szív</annotation>
<annotation cp="💔" type="tts">összetört szív</annotation>
- <annotation cp="❤">piros | szív | vörös szív</annotation>
- <annotation cp="❤" type="tts">vörös szív</annotation>
<annotation cp="❤🔥" draft="contributed">égő | lángoló | szerelem | szív | vágy</annotation>
<annotation cp="❤🔥" type="tts">lángoló szív</annotation>
<annotation cp="❤🩹" draft="contributed">gyógyuló szív</annotation>
<annotation cp="❤🩹" type="tts" draft="contributed">gyógyuló szív</annotation>
+ <annotation cp="❤">piros | szív | vörös szív</annotation>
+ <annotation cp="❤" type="tts">vörös szív</annotation>
<annotation cp="🧡">narancssárga | narancssárga szív</annotation>
<annotation cp="🧡" type="tts">narancssárga szív</annotation>
<annotation cp="💛">sárga | szív</annotation>
@@ -867,14 +867,14 @@
<annotation cp="👨" type="tts">férfi</annotation>
<annotation cp="🧔">szakáll | szakállas ember</annotation>
<annotation cp="🧔" type="tts">szakállas ember</annotation>
- <annotation cp="👱♂">férfi | szőke</annotation>
- <annotation cp="👱♂" type="tts">szőke férfi</annotation>
- <annotation cp="🧔♀" draft="contributed">nő: szakáll</annotation>
- <annotation cp="🧔♀" type="tts" draft="contributed">nő: szakáll</annotation>
<annotation cp="🧔♂" draft="contributed">férfi: szakáll</annotation>
<annotation cp="🧔♂" type="tts" draft="contributed">férfi: szakáll</annotation>
+ <annotation cp="👱♂">férfi | szőke</annotation>
+ <annotation cp="👱♂" type="tts">szőke férfi</annotation>
<annotation cp="👩">nő</annotation>
<annotation cp="👩" type="tts">nő</annotation>
+ <annotation cp="🧔♀" draft="contributed">nő: szakáll</annotation>
+ <annotation cp="🧔♀" type="tts" draft="contributed">nő: szakáll</annotation>
<annotation cp="👱♀">nő | szőke</annotation>
<annotation cp="👱♀" type="tts">szőke nő</annotation>
<annotation cp="🧓">idős | idősebb felnőtt | nemi szempontból semleges</annotation>
diff --git a/common/annotations/hy.xml b/common/annotations/hy.xml
index 4690ca3..a5e4997 100644
--- a/common/annotations/hy.xml
+++ b/common/annotations/hy.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -795,6 +795,8 @@
<annotation cp="🙄" type="tts">պտտվող աչքերով դեմք</annotation>
<annotation cp="😬">դեմք | ծամածռություն | ծամածռվող դեմք</annotation>
<annotation cp="😬" type="tts">ծամածռվող դեմք</annotation>
+ <annotation cp="😮💨">արտաշնչել | արտաշնչող դեմք | թեթևություն | հևալ | հևոց | հոգոց</annotation>
+ <annotation cp="😮💨" type="tts">արտաշնչող դեմք</annotation>
<annotation cp="🤥">դեմք | խաբող դեմք | պինոկիո | սուտ</annotation>
<annotation cp="🤥" type="tts">խաբող դեմք</annotation>
<annotation cp="😌">դեմք | թեթևացած</annotation>
@@ -853,8 +855,6 @@
<annotation cp="☹" type="tts">խոժոռված դեմք</annotation>
<annotation cp="😮">բաց | բաց բերանով դեմք | բերան | դեմք | համակրանք</annotation>
<annotation cp="😮" type="tts">բաց բերանով դեմք</annotation>
- <annotation cp="😮💨">արտաշնչել | արտաշնչող դեմք | թեթևություն | հևալ | հևոց | հոգոց</annotation>
- <annotation cp="😮💨" type="tts">արտաշնչող դեմք</annotation>
<annotation cp="😯">ապշած | դեմք | զարմացած | սաստված</annotation>
<annotation cp="😯" type="tts">սաստված դեմք</annotation>
<annotation cp="😲">ամբողջովին | ապշահար | դեմք | ցնցված</annotation>
@@ -973,12 +973,12 @@
<annotation cp="❣" type="tts">բացականչական նշանի տեսքով սիրտ</annotation>
<annotation cp="💔">կոտրել | կոտրված | սիրտ</annotation>
<annotation cp="💔" type="tts">կոտրված սիրտ</annotation>
- <annotation cp="❤">կարմիր | սիրտ</annotation>
- <annotation cp="❤" type="tts">կարմիր սիրտ</annotation>
<annotation cp="❤🔥">այրոց | այրվող սիրտ | կիրք | կրակ | սեր | սիրտ</annotation>
<annotation cp="❤🔥" type="tts">այրվող սիրտ</annotation>
<annotation cp="❤🩹">առողջ | բարելավում | լավանալ | լավացող սիրտ | սիրտ</annotation>
<annotation cp="❤🩹" type="tts">լավացող սիրտ</annotation>
+ <annotation cp="❤">կարմիր | սիրտ</annotation>
+ <annotation cp="❤" type="tts">կարմիր սիրտ</annotation>
<annotation cp="🧡">նարնջագույն | սիրտ</annotation>
<annotation cp="🧡" type="tts">նարնջագույն սիրտ</annotation>
<annotation cp="💛">դեղին | սիրտ</annotation>
@@ -1141,14 +1141,14 @@
<annotation cp="👨" type="tts">տղամարդ</annotation>
<annotation cp="🧔">մորուք | մորուքով մարդ</annotation>
<annotation cp="🧔" type="tts">մորուքով մարդ</annotation>
- <annotation cp="👱♂">շեկ | շիկահեր | տղամարդ</annotation>
- <annotation cp="👱♂" type="tts">շիկահեր տղամարդ</annotation>
- <annotation cp="🧔♀">կին | մորուք | մորուքավոր | մորուքով կին</annotation>
- <annotation cp="🧔♀" type="tts">մորուքավոր կին</annotation>
<annotation cp="🧔♂">մորուք | մորուքավոր | մորուքով տղամարդ | տղամարդ</annotation>
<annotation cp="🧔♂" type="tts">մորուքավոր տղամարդ</annotation>
+ <annotation cp="👱♂">շեկ | շիկահեր | տղամարդ</annotation>
+ <annotation cp="👱♂" type="tts">շիկահեր տղամարդ</annotation>
<annotation cp="👩">կին</annotation>
<annotation cp="👩" type="tts">կին</annotation>
+ <annotation cp="🧔♀">կին | մորուք | մորուքավոր | մորուքով կին</annotation>
+ <annotation cp="🧔♀" type="tts">մորուքավոր կին</annotation>
<annotation cp="👱♀">կին | մազեր | շեկ | շիկահեր | վարսեր</annotation>
<annotation cp="👱♀" type="tts">շիկահեր կին</annotation>
<annotation cp="🧓">ծեր | չեզոք սեռ | տարեց | տարեց մարդ</annotation>
diff --git a/common/annotations/id.xml b/common/annotations/id.xml
index c0c6f5b..869bbd0 100644
--- a/common/annotations/id.xml
+++ b/common/annotations/id.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -459,6 +459,8 @@
<annotation cp="🙄" type="tts">wajah dengan mata ke atas</annotation>
<annotation cp="😬">menyeringai | muka | seringai | wajah</annotation>
<annotation cp="😬" type="tts">wajah menyeringai</annotation>
+ <annotation cp="😮💨" draft="contributed">wajah mengembuskan napas</annotation>
+ <annotation cp="😮💨" type="tts" draft="contributed">wajah mengembuskan napas</annotation>
<annotation cp="🤥">bohong | muka | pinokio | wajah</annotation>
<annotation cp="🤥" type="tts">bohong</annotation>
<annotation cp="😌">lega | muka | wajah</annotation>
@@ -517,8 +519,6 @@
<annotation cp="☹" type="tts">wajah cemberut</annotation>
<annotation cp="😮">muka | mulut | simpati | terbuka | wajah | wajah dengan mulut terbuka</annotation>
<annotation cp="😮" type="tts">wajah dengan mulut terbuka</annotation>
- <annotation cp="😮💨" draft="contributed">wajah mengembuskan napas</annotation>
- <annotation cp="😮💨" type="tts" draft="contributed">wajah mengembuskan napas</annotation>
<annotation cp="😯">kaget | muka | terdiam | terkejut | wajah | wajah hening</annotation>
<annotation cp="😯" type="tts">wajah hening</annotation>
<annotation cp="😲">kaget | muka | takjub | terkejut | terpukau | wajah</annotation>
@@ -637,12 +637,12 @@
<annotation cp="❣" type="tts">tanda seru berbentuk hati</annotation>
<annotation cp="💔">hati | patah | putus</annotation>
<annotation cp="💔" type="tts">patah hati</annotation>
- <annotation cp="❤">hati | hati merah</annotation>
- <annotation cp="❤" type="tts">hati merah</annotation>
<annotation cp="❤🔥" draft="contributed">hati berapi-api</annotation>
<annotation cp="❤🔥" type="tts" draft="contributed">hati berapi-api</annotation>
<annotation cp="❤🩹" draft="contributed">mengobati hati terluka</annotation>
<annotation cp="❤🩹" type="tts" draft="contributed">mengobati hati terluka</annotation>
+ <annotation cp="❤">hati | hati merah</annotation>
+ <annotation cp="❤" type="tts">hati merah</annotation>
<annotation cp="🧡">hati | oranye</annotation>
<annotation cp="🧡" type="tts">hati oranye</annotation>
<annotation cp="💛">hati | kuning</annotation>
@@ -805,14 +805,14 @@
<annotation cp="👨" type="tts">pria</annotation>
<annotation cp="🧔">janggut | orang | orang: janggut</annotation>
<annotation cp="🧔" type="tts">orang: janggut</annotation>
- <annotation cp="👱♂">laki-laki | pirang | pria berambut pirang | pria: rambut pirang | rambut</annotation>
- <annotation cp="👱♂" type="tts">pria berambut pirang</annotation>
- <annotation cp="🧔♀">janggut | wanita | wanita: janggut</annotation>
- <annotation cp="🧔♀" type="tts">wanita: janggut</annotation>
<annotation cp="🧔♂">janggut | pria | pria: janggut</annotation>
<annotation cp="🧔♂" type="tts">pria: janggut</annotation>
+ <annotation cp="👱♂">laki-laki | pirang | pria berambut pirang | pria: rambut pirang | rambut</annotation>
+ <annotation cp="👱♂" type="tts">pria berambut pirang</annotation>
<annotation cp="👩">ibu | perempuan | wanita</annotation>
<annotation cp="👩" type="tts">wanita</annotation>
+ <annotation cp="🧔♀">janggut | wanita | wanita: janggut</annotation>
+ <annotation cp="🧔♀" type="tts">wanita: janggut</annotation>
<annotation cp="👱♀">perempuan | pirang | rambut | wanita berambut pirang | wanita: rambut pirang</annotation>
<annotation cp="👱♀" type="tts">wanita berambut pirang</annotation>
<annotation cp="🧓">lanjut usia | netral gender | tua</annotation>
diff --git a/common/annotations/is.xml b/common/annotations/is.xml
index d1aa5e6..ff60e26 100644
--- a/common/annotations/is.xml
+++ b/common/annotations/is.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -633,6 +633,8 @@
<annotation cp="🙄" type="tts">ranghvolfir augum</annotation>
<annotation cp="😬">andlit | andlit með grettu | gretta</annotation>
<annotation cp="😬" type="tts">gretta</annotation>
+ <annotation cp="😮💨">andköf | andlit að anda frá sér | blístur | hvísl | léttir | stuna | útöndun</annotation>
+ <annotation cp="😮💨" type="tts">andlit að anda frá sér</annotation>
<annotation cp="🤥">andlit | gosi | ljúga | lygari | lygi</annotation>
<annotation cp="🤥" type="tts">lygari</annotation>
<annotation cp="😌">andlit | andlit sem er létt | léttir</annotation>
@@ -691,8 +693,6 @@
<annotation cp="☹" type="tts">andlit með stóra skeifu</annotation>
<annotation cp="😮">andlit | andlit með opinn munn | munnur | opinn munnur</annotation>
<annotation cp="😮" type="tts">andlit með opinn munn</annotation>
- <annotation cp="😮💨">andköf | andlit að anda frá sér | blístur | hvísl | léttir | stuna | útöndun</annotation>
- <annotation cp="😮💨" type="tts">andlit að anda frá sér</annotation>
<annotation cp="😯">andlit | undrandi | undrun</annotation>
<annotation cp="😯" type="tts">undrandi andlit</annotation>
<annotation cp="😲">andlit | stórundrandi andlit | undrandi | undrun</annotation>
@@ -811,12 +811,12 @@
<annotation cp="❣" type="tts">hjarta sem upphrópunarmerki</annotation>
<annotation cp="💔">ástarsorg | brostið | hjarta</annotation>
<annotation cp="💔" type="tts">brostið hjarta</annotation>
- <annotation cp="❤">hjarta | rautt hjarta</annotation>
- <annotation cp="❤" type="tts">rautt hjarta</annotation>
<annotation cp="❤🔥">ást | brenna | girnd | heilagt hjarta | hjarta | logandi hjarta</annotation>
<annotation cp="❤🔥" type="tts">logandi hjarta</annotation>
<annotation cp="❤🩹">heilbrigðari | hjarta að gróa | hress | jafna sig | lagast | ná sér | skána</annotation>
<annotation cp="❤🩹" type="tts">hjarta að gróa</annotation>
+ <annotation cp="❤">hjarta | rautt hjarta</annotation>
+ <annotation cp="❤" type="tts">rautt hjarta</annotation>
<annotation cp="🧡">appelsínugult | hjarta | tilfinningar</annotation>
<annotation cp="🧡" type="tts">appelsínugult hjarta</annotation>
<annotation cp="💛">gult | hjarta | tilfinningar</annotation>
@@ -979,14 +979,14 @@
<annotation cp="👨" type="tts">karl</annotation>
<annotation cp="🧔">maður með skegg | skegg</annotation>
<annotation cp="🧔" type="tts">maður með skegg</annotation>
- <annotation cp="👱♂">ljóshærður | ljóst hár | maður</annotation>
- <annotation cp="👱♂" type="tts">ljóshærður maður</annotation>
- <annotation cp="🧔♀">kona | kona: skegg | skegg</annotation>
- <annotation cp="🧔♀" type="tts">kona: skegg</annotation>
<annotation cp="🧔♂">karl | karl: skegg | skegg</annotation>
<annotation cp="🧔♂" type="tts">karl: skegg</annotation>
+ <annotation cp="👱♂">ljóshærður | ljóst hár | maður</annotation>
+ <annotation cp="👱♂" type="tts">ljóshærður maður</annotation>
<annotation cp="👩">fólk | kona</annotation>
<annotation cp="👩" type="tts">kona</annotation>
+ <annotation cp="🧔♀">kona | kona: skegg | skegg</annotation>
+ <annotation cp="🧔♀" type="tts">kona: skegg</annotation>
<annotation cp="👱♀">kona | ljóshærð | ljóst hár</annotation>
<annotation cp="👱♀" type="tts">ljóshærð kona</annotation>
<annotation cp="🧓">eldri fullorðinn | gamall | kynhlutlaust</annotation>
diff --git a/common/annotations/it.xml b/common/annotations/it.xml
index 9e3cc2a..2a2fc08 100644
--- a/common/annotations/it.xml
+++ b/common/annotations/it.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -421,6 +421,8 @@
<annotation cp="🙄" type="tts">faccina con occhi al cielo</annotation>
<annotation cp="😬">faccina | faccina con smorfia</annotation>
<annotation cp="😬" type="tts">faccina con smorfia</annotation>
+ <annotation cp="😮💨" draft="contributed">faccina che espira</annotation>
+ <annotation cp="😮💨" type="tts" draft="contributed">faccina che espira</annotation>
<annotation cp="🤥">bugia | bugiardo | faccina bugiarda | naso lungo | pinocchio</annotation>
<annotation cp="🤥" type="tts">faccina bugiarda</annotation>
<annotation cp="😌">faccina | faccina sollevata</annotation>
@@ -479,8 +481,6 @@
<annotation cp="☹" type="tts">faccina imbronciata</annotation>
<annotation cp="😮">bocca | faccina | faccina con bocca aperta | sorpreso | stupito</annotation>
<annotation cp="😮" type="tts">faccina con bocca aperta</annotation>
- <annotation cp="😮💨" draft="contributed">faccina che espira</annotation>
- <annotation cp="😮💨" type="tts" draft="contributed">faccina che espira</annotation>
<annotation cp="😯">faccina | sbalordita | sorpresa</annotation>
<annotation cp="😯" type="tts">faccina sorpresa</annotation>
<annotation cp="😲">faccina | scioccata | stupita</annotation>
@@ -599,12 +599,12 @@
<annotation cp="❣" type="tts">punto esclamativo a cuore</annotation>
<annotation cp="💔">cuore | emozione | infranto | spezzato</annotation>
<annotation cp="💔" type="tts">cuore infranto</annotation>
- <annotation cp="❤">amore | cuore rosso | rosso</annotation>
- <annotation cp="❤" type="tts">cuore rosso</annotation>
<annotation cp="❤🔥" draft="contributed">cuore in fiamme</annotation>
<annotation cp="❤🔥" type="tts" draft="contributed">cuore in fiamme</annotation>
<annotation cp="❤🩹" draft="contributed">cuore guarito</annotation>
<annotation cp="❤🩹" type="tts" draft="contributed">cuore guarito</annotation>
+ <annotation cp="❤">amore | cuore rosso | rosso</annotation>
+ <annotation cp="❤" type="tts">cuore rosso</annotation>
<annotation cp="🧡">arancione | cuore | emozione</annotation>
<annotation cp="🧡" type="tts">cuore arancione</annotation>
<annotation cp="💛">cuore | emozione | giallo</annotation>
@@ -767,14 +767,14 @@
<annotation cp="👨" type="tts">uomo</annotation>
<annotation cp="🧔">barba | persona | persona con la barba</annotation>
<annotation cp="🧔" type="tts">persona con la barba</annotation>
- <annotation cp="👱♂">biondo | maschio | uomo</annotation>
- <annotation cp="👱♂" type="tts">uomo biondo</annotation>
- <annotation cp="🧔♀">barba | donna | donna con la barba</annotation>
- <annotation cp="🧔♀" type="tts">donna con la barba</annotation>
<annotation cp="🧔♂">barba | uomo | uomo con la barba</annotation>
<annotation cp="🧔♂" type="tts">uomo con la barba</annotation>
+ <annotation cp="👱♂">biondo | maschio | uomo</annotation>
+ <annotation cp="👱♂" type="tts">uomo biondo</annotation>
<annotation cp="👩">donna | femmina | persone</annotation>
<annotation cp="👩" type="tts">donna</annotation>
+ <annotation cp="🧔♀">barba | donna | donna con la barba</annotation>
+ <annotation cp="🧔♀" type="tts">donna con la barba</annotation>
<annotation cp="👱♀">bionda | donna | femmina</annotation>
<annotation cp="👱♀" type="tts">donna bionda</annotation>
<annotation cp="🧓">adulto anziano | anziano | persona anziana</annotation>
diff --git a/common/annotations/ja.xml b/common/annotations/ja.xml
index 72fc08c..a40fd89 100644
--- a/common/annotations/ja.xml
+++ b/common/annotations/ja.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -393,6 +393,8 @@
<annotation cp="🙄" type="tts">上を見る顔</annotation>
<annotation cp="😬">いー | しかめっ面 | しかめ面 | しかめ顔 | 顔</annotation>
<annotation cp="😬" type="tts">しかめ面</annotation>
+ <annotation cp="😮💨">あきらめ | ため息 | ほっとした | 安心 | 息を吐く顔 | 顔</annotation>
+ <annotation cp="😮💨" type="tts">息を吐く顔</annotation>
<annotation cp="🤥">うそつきの顔 | ピノキオの顔 | 嘘つき | 顔</annotation>
<annotation cp="🤥" type="tts">うそつきの顔</annotation>
<annotation cp="😌">ほっ | ほっとした顔 | 安心 | 顔</annotation>
@@ -451,8 +453,6 @@
<annotation cp="☹" type="tts">困った顔</annotation>
<annotation cp="😮">へー | 共感 | 口が開いた顔 | 顔</annotation>
<annotation cp="😮" type="tts">口が開いた顔</annotation>
- <annotation cp="😮💨">あきらめ | ため息 | ほっとした | 安心 | 息を吐く顔 | 顔</annotation>
- <annotation cp="😮💨" type="tts">息を吐く顔</annotation>
<annotation cp="😯">びっくり | びっくり顔 | ぽかーん | 顔 | 驚き</annotation>
<annotation cp="😯" type="tts">ぽかーん</annotation>
<annotation cp="😲">びっくり | びっくりした顔 | 顔 | 驚き | 驚愕</annotation>
@@ -571,12 +571,12 @@
<annotation cp="❣" type="tts">ハートのびっくり</annotation>
<annotation cp="💔">ハート | 別れた | 割れたハート | 失恋</annotation>
<annotation cp="💔" type="tts">割れたハート</annotation>
- <annotation cp="❤">ハート | 赤いハート</annotation>
- <annotation cp="❤" type="tts">赤いハート</annotation>
<annotation cp="❤🔥">ハート | 愛 | 火の付いた | 炎 | 燃えるハート | 聖なる心臓</annotation>
<annotation cp="❤🔥" type="tts">燃えるハート</annotation>
<annotation cp="❤🩹">ケガ | ハート | 傷ついた | 傷心 | 包帯 | 包帯を巻いたハート</annotation>
<annotation cp="❤🩹" type="tts">包帯を巻いたハート</annotation>
+ <annotation cp="❤">ハート | 赤いハート</annotation>
+ <annotation cp="❤" type="tts">赤いハート</annotation>
<annotation cp="🧡">オレンジのハート | ハート</annotation>
<annotation cp="🧡" type="tts">オレンジのハート</annotation>
<annotation cp="💛">ハート | 黄色のハート</annotation>
@@ -739,14 +739,14 @@
<annotation cp="👨" type="tts">男性</annotation>
<annotation cp="🧔">あごひげ | あごひげの人 | ひげ | 人 | 顔</annotation>
<annotation cp="🧔" type="tts">あごひげの人</annotation>
- <annotation cp="👱♂">ブロンド | 男 | 男性 | 金髪 | 金髪の男性</annotation>
- <annotation cp="👱♂" type="tts">金髪の男性</annotation>
- <annotation cp="🧔♀">あごひげ | あごひげの女性 | ひげ | 女 | 顔</annotation>
- <annotation cp="🧔♀" type="tts">あごひげの女性</annotation>
<annotation cp="🧔♂">あごひげ | あごひげの男性 | ひげ | 男 | 顔</annotation>
<annotation cp="🧔♂" type="tts">あごひげの男性</annotation>
+ <annotation cp="👱♂">ブロンド | 男 | 男性 | 金髪 | 金髪の男性</annotation>
+ <annotation cp="👱♂" type="tts">金髪の男性</annotation>
<annotation cp="👩">大人 | 女 | 女性 | 顔</annotation>
<annotation cp="👩" type="tts">女性</annotation>
+ <annotation cp="🧔♀">あごひげ | あごひげの女性 | ひげ | 女 | 顔</annotation>
+ <annotation cp="🧔♀" type="tts">あごひげの女性</annotation>
<annotation cp="👱♀">ブロンド | 女 | 女性 | 金髪 | 金髪の女性</annotation>
<annotation cp="👱♀" type="tts">金髪の女性</annotation>
<annotation cp="🧓">お年寄り | 老人 | 顔 | 高齢者</annotation>
diff --git a/common/annotations/jv.xml b/common/annotations/jv.xml
index 454c493..6c47c9b 100644
--- a/common/annotations/jv.xml
+++ b/common/annotations/jv.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -336,6 +336,8 @@
<annotation cp="🙄" type="tts">rai matane mlerok</annotation>
<annotation cp="😬">mbatek | rai | rai mringis mbatek</annotation>
<annotation cp="😬" type="tts">rai mringis mbatek</annotation>
+ <annotation cp="😮💨">ambegan | lega | mbisiki | megap-megap | nglenguh | rai ambegan lego | singsot</annotation>
+ <annotation cp="😮💨" type="tts">rai ambegan lego</annotation>
<annotation cp="🤥">ngapusi | pinokio | rai</annotation>
<annotation cp="🤥" type="tts">rai ngapusi</annotation>
<annotation cp="😌">lega | rai</annotation>
@@ -394,8 +396,6 @@
<annotation cp="☹" type="tts">rai nelangsa</annotation>
<annotation cp="😮">cangkem | menga | rai | rai mlongo | simpati</annotation>
<annotation cp="😮" type="tts">rai mlongo</annotation>
- <annotation cp="😮💨">ambegan | lega | mbisiki | megap-megap | nglenguh | rai ambegan lego | singsot</annotation>
- <annotation cp="😮💨" type="tts">rai ambegan lego</annotation>
<annotation cp="😯">dumadakan meneng | kaget | ora nyana | rai | rai dumadakan meneng</annotation>
<annotation cp="😯" type="tts">rai dumadakan meneng</annotation>
<annotation cp="😲">babar pisan | gumun | kaget | rai</annotation>
@@ -514,12 +514,12 @@
<annotation cp="❣" type="tts">tandha penthung wujude ati</annotation>
<annotation cp="💔">kelaran | lara | lara ati</annotation>
<annotation cp="💔" type="tts">lara ati</annotation>
- <annotation cp="❤">ati | ati abang</annotation>
- <annotation cp="❤" type="tts">ati abang</annotation>
<annotation cp="❤🔥">ati | ati kasmaran | ati resik | kobong | pepinginan | tresna</annotation>
<annotation cp="❤🔥" type="tts">ati kasmaran</annotation>
<annotation cp="❤🩹">luwih waras | mbalekake | mulehake awak | ndandani | ndandani ati | ningkatake | waras</annotation>
<annotation cp="❤🩹" type="tts">ndandani ati</annotation>
+ <annotation cp="❤">ati | ati abang</annotation>
+ <annotation cp="❤" type="tts">ati abang</annotation>
<annotation cp="🧡">ati kunir | kunir</annotation>
<annotation cp="🧡" type="tts">ati kunir</annotation>
<annotation cp="💛">ati kuning | kuning</annotation>
@@ -682,14 +682,14 @@
<annotation cp="👨" type="tts">wong lanang</annotation>
<annotation cp="🧔">jenggot | wong | wong: jenggot</annotation>
<annotation cp="🧔" type="tts">wong: jenggot</annotation>
- <annotation cp="👱♂">pirang | rambut | wong lanang | wong lanang arambut pirang | wong lanang: rambut pirang</annotation>
- <annotation cp="👱♂" type="tts">wong lanang: rambut pirang</annotation>
- <annotation cp="🧔♀">jenggot | wong wadon | wong wadon: jenggot</annotation>
- <annotation cp="🧔♀" type="tts">wong wadon: jenggot</annotation>
<annotation cp="🧔♂">jenggot | wong lanang | wong lanang: jenggot</annotation>
<annotation cp="🧔♂" type="tts">wong lanang: jenggot</annotation>
+ <annotation cp="👱♂">pirang | rambut | wong lanang | wong lanang arambut pirang | wong lanang: rambut pirang</annotation>
+ <annotation cp="👱♂" type="tts">wong lanang: rambut pirang</annotation>
<annotation cp="👩">wadon | wong diwasa | wong wadon</annotation>
<annotation cp="👩" type="tts">wong wadon</annotation>
+ <annotation cp="🧔♀">jenggot | wong wadon | wong wadon: jenggot</annotation>
+ <annotation cp="🧔♀" type="tts">wong wadon: jenggot</annotation>
<annotation cp="👱♀">pirang | rambut | wong wadon | wong wadon arambut pirang | wong wadon: rambut pirang</annotation>
<annotation cp="👱♀" type="tts">wong wadon: rambut pirang</annotation>
<annotation cp="🧓">jender netral | ora tamtu lanang wadone | tuwa | wong diwasa | wong tuwa</annotation>
diff --git a/common/annotations/ka.xml b/common/annotations/ka.xml
index 1ca76a7..7a33427 100644
--- a/common/annotations/ka.xml
+++ b/common/annotations/ka.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -540,6 +540,8 @@
<annotation cp="🙄" type="tts">სახე გადატრიალებული თვალებით</annotation>
<annotation cp="😬">დამანჭვა | დამანჭული სახე | სახე</annotation>
<annotation cp="😬" type="tts">დამანჭული სახე</annotation>
+ <annotation cp="😮💨">ამოოხვრა | ამოსუნთქვა | თურჩული | სტვენა</annotation>
+ <annotation cp="😮💨" type="tts">ამოსუნთქვა</annotation>
<annotation cp="🤥">მატყუარა სახე | პინოქიო | სახე | ტყუილი</annotation>
<annotation cp="🤥" type="tts">მატყუარა სახე</annotation>
<annotation cp="😌">სახე | შვება | შვების გამომხატველი სახე</annotation>
@@ -598,8 +600,6 @@
<annotation cp="☹" type="tts">შეჭმუხნილი სახე</annotation>
<annotation cp="😮">თანაგრძნობა | პირი | პირღია | სახე | სახე ღია პირით | ღია</annotation>
<annotation cp="😮" type="tts">სახე ღია პირით</annotation>
- <annotation cp="😮💨">ამოოხვრა | ამოსუნთქვა | თურჩული | სტვენა</annotation>
- <annotation cp="😮💨" type="tts">ამოსუნთქვა</annotation>
<annotation cp="😯">გაოგნებული | გაოცებული | სახე</annotation>
<annotation cp="😯" type="tts">გაოცებული სახე</annotation>
<annotation cp="😲">გაკვირვებული | სახე | შოკირებული</annotation>
@@ -718,12 +718,12 @@
<annotation cp="❣" type="tts">გულის ფორმის მსხვილი ძახილის ნიშანი</annotation>
<annotation cp="💔">გატეხვა | გატეხილი | გული</annotation>
<annotation cp="💔" type="tts">გატეხილი გული</annotation>
- <annotation cp="❤">გული | წითელი გული</annotation>
- <annotation cp="❤" type="tts">წითელი გული</annotation>
<annotation cp="❤🔥">ალი | ალმოდებული გული | ამური | სიყვარული | ცეცხლი</annotation>
<annotation cp="❤🔥" type="tts">ალმოდებული გული</annotation>
<annotation cp="❤🩹">გამოჯანსაღება | გაჯანსაღებული გული | კარგად ყოფნა | ჯანმრთელი</annotation>
<annotation cp="❤🩹" type="tts">გაჯანსაღებული გული</annotation>
+ <annotation cp="❤">გული | წითელი გული</annotation>
+ <annotation cp="❤" type="tts">წითელი გული</annotation>
<annotation cp="🧡">ნარინჯისფერი | ნარინჯისფერი გული</annotation>
<annotation cp="🧡" type="tts">ნარინჯისფერი გული</annotation>
<annotation cp="💛">გული | ყვითელი</annotation>
@@ -886,14 +886,14 @@
<annotation cp="👨" type="tts">კაცი</annotation>
<annotation cp="🧔">წვერი | წვეროსანი</annotation>
<annotation cp="🧔" type="tts">წვეროსანი</annotation>
- <annotation cp="👱♂">კაცი | ქერა | ქერათმიანი კაცი</annotation>
- <annotation cp="👱♂" type="tts">ქერათმიანი კაცი</annotation>
- <annotation cp="🧔♀">ქალი | ქალი: წვერი | წვერი</annotation>
- <annotation cp="🧔♀" type="tts">ქალი: წვერი</annotation>
<annotation cp="🧔♂">კაცი: წვერი | მამაკაცი | მამაკაცი: წვერი | წვერი</annotation>
<annotation cp="🧔♂" type="tts">კაცი: წვერი</annotation>
+ <annotation cp="👱♂">კაცი | ქერა | ქერათმიანი კაცი</annotation>
+ <annotation cp="👱♂" type="tts">ქერათმიანი კაცი</annotation>
<annotation cp="👩">ქალი</annotation>
<annotation cp="👩" type="tts">ქალი</annotation>
+ <annotation cp="🧔♀">ქალი | ქალი: წვერი | წვერი</annotation>
+ <annotation cp="🧔♀" type="tts">ქალი: წვერი</annotation>
<annotation cp="👱♀">ქალი | ქერა | ქერათმიანი ქალი</annotation>
<annotation cp="👱♀" type="tts">ქერათმიანი ქალი</annotation>
<annotation cp="🧓">გენდერ-ნეიტრალური | ჭარმაგი</annotation>
diff --git a/common/annotations/kk.xml b/common/annotations/kk.xml
index 741ec59..48ee3e2 100644
--- a/common/annotations/kk.xml
+++ b/common/annotations/kk.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -597,6 +597,8 @@
<annotation cp="🙄" type="tts">көзі алару</annotation>
<annotation cp="😬">бет | бет-аузын қисайту</annotation>
<annotation cp="😬" type="tts">бет-аузын қисайту</annotation>
+ <annotation cp="😮💨" draft="contributed">ауаны шығарып тұрған бет</annotation>
+ <annotation cp="😮💨" type="tts" draft="contributed">ауаны шығарып тұрған бет</annotation>
<annotation cp="🤥">өтірік | өтірікші | Пиноккио</annotation>
<annotation cp="🤥" type="tts">өтірікші</annotation>
<annotation cp="😌">бет | жеңілдеп қалу</annotation>
@@ -655,8 +657,6 @@
<annotation cp="☹" type="tts">тұнжырау</annotation>
<annotation cp="😮">аң-таң болу | аузы ашылу | бет | таңдану</annotation>
<annotation cp="😮" type="tts">таңдану</annotation>
- <annotation cp="😮💨" draft="contributed">ауаны шығарып тұрған бет</annotation>
- <annotation cp="😮💨" type="tts" draft="contributed">ауаны шығарып тұрған бет</annotation>
<annotation cp="😯">бет | таңғалу | таңдану | таңырқату</annotation>
<annotation cp="😯" type="tts">таңғалу</annotation>
<annotation cp="😲">аң-таң | аң-таң болу | бет | таң қалу</annotation>
@@ -775,12 +775,12 @@
<annotation cp="❣" type="tts">леп белгісі тәрізді жүрек</annotation>
<annotation cp="💔">жүрек | сынған | сыну</annotation>
<annotation cp="💔" type="tts">сынған жүрек</annotation>
- <annotation cp="❤">жүрек | қызыл жүрек</annotation>
- <annotation cp="❤" type="tts">қызыл жүрек</annotation>
<annotation cp="❤🔥" draft="contributed">лаулап тұрған жүрек</annotation>
<annotation cp="❤🔥" type="tts" draft="contributed">лаулап тұрған жүрек</annotation>
<annotation cp="❤🩹" draft="contributed">жаралы жүрек</annotation>
<annotation cp="❤🩹" type="tts" draft="contributed">жаралы жүрек</annotation>
+ <annotation cp="❤">жүрек | қызыл жүрек</annotation>
+ <annotation cp="❤" type="tts">қызыл жүрек</annotation>
<annotation cp="🧡">қызғылт-сары жүрек</annotation>
<annotation cp="🧡" type="tts">қызғылт-сары жүрек</annotation>
<annotation cp="💛">жүрек | сары</annotation>
@@ -943,14 +943,14 @@
<annotation cp="👨" type="tts">ер адам</annotation>
<annotation cp="🧔">сақалды адам | сақалды ер адам</annotation>
<annotation cp="🧔" type="tts">сақалды ер адам</annotation>
- <annotation cp="👱♂">аққұба | аққұба ер адам | ер</annotation>
- <annotation cp="👱♂" type="tts">аққұба ер адам</annotation>
- <annotation cp="🧔♀" draft="contributed">әйел адам: сақал</annotation>
- <annotation cp="🧔♀" type="tts" draft="contributed">әйел адам: сақал</annotation>
<annotation cp="🧔♂" draft="contributed">ер адам: сақал</annotation>
<annotation cp="🧔♂" type="tts" draft="contributed">ер адам: сақал</annotation>
+ <annotation cp="👱♂">аққұба | аққұба ер адам | ер</annotation>
+ <annotation cp="👱♂" type="tts">аққұба ер адам</annotation>
<annotation cp="👩">әйел | әйел адам</annotation>
<annotation cp="👩" type="tts">әйел</annotation>
+ <annotation cp="🧔♀" draft="contributed">әйел адам: сақал</annotation>
+ <annotation cp="🧔♀" type="tts" draft="contributed">әйел адам: сақал</annotation>
<annotation cp="👱♀">аққұба | әйел</annotation>
<annotation cp="👱♀" type="tts">аққұба әйел</annotation>
<annotation cp="🧓">ересек | қарт адам</annotation>
diff --git a/common/annotations/km.xml b/common/annotations/km.xml
index 88cee1a..3555435 100644
--- a/common/annotations/km.xml
+++ b/common/annotations/km.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -795,6 +795,8 @@
<annotation cp="🙄" type="tts">មុខធ្វើភ្នែកក្រឡេបក្រឡាប់</annotation>
<annotation cp="😬">ញេញធ្មេញ | ធ្មេញ | មុខស្អេញស្អូញ | ស្អេញ</annotation>
<annotation cp="😬" type="tts">មុខស្អេញស្អូញ</annotation>
+ <annotation cp="😮💨">ខួច | ខ្សឹប | ដកដង្ហើមចេញ | ដង្ហក់ | ថ្ងូរ | ធូរចិត្ត | មុខដកដង្ហើមចេញ</annotation>
+ <annotation cp="😮💨" type="tts">មុខដកដង្ហើមចេញ</annotation>
<annotation cp="🤥">pinocchio | កុហក | មុខ | មុខកុហក</annotation>
<annotation cp="🤥" type="tts">មុខកុហក</annotation>
<annotation cp="😌">ធូរស្រាល | មុខធូរស្រាលរឿងអ្វីមួយ</annotation>
@@ -853,8 +855,6 @@
<annotation cp="☹" type="tts">មុខក្រម៉ូវ</annotation>
<annotation cp="😮">ចំហ | បើកមាត់ | មាត់ | មុខចំហមាត់បើកភ្នែក</annotation>
<annotation cp="😮" type="tts">មុខចំហមាត់បើកភ្នែក</annotation>
- <annotation cp="😮💨">ខួច | ខ្សឹប | ដកដង្ហើមចេញ | ដង្ហក់ | ថ្ងូរ | ធូរចិត្ត | មុខដកដង្ហើមចេញ</annotation>
- <annotation cp="😮💨" type="tts">មុខដកដង្ហើមចេញ</annotation>
<annotation cp="😯">ភាំង | មុខចំហមាត់់ចិញ្ចើមងើបទៅលើលក្ខណៈភាំង</annotation>
<annotation cp="😯" type="tts">មុខចំហមាត់់ចិញ្ចើមងើបទៅលើលក្ខណៈភាំង</annotation>
<annotation cp="😲">ភ្ញាក់ផ្អើល | មុខភ្ជាក់ផ្អើល</annotation>
@@ -973,12 +973,12 @@
<annotation cp="❣" type="tts">សញ្ញាឧទានរូបបេះដូង</annotation>
<annotation cp="💔">បេះដូងបែកជាពីរ | បេះដូងប្រេះស្រាំ | បែកបេះដូង</annotation>
<annotation cp="💔" type="tts">បេះដូងបែកជាពីរ</annotation>
- <annotation cp="❤">បេះដូង | ស្រឡាញ់</annotation>
- <annotation cp="❤" type="tts">បេះដូង</annotation>
<annotation cp="❤🔥">ឆេះ | តណ្ហា | បេះដូង | បេះដូងពិសិដ្ឋ | បេះដូងពុះកញ្ជ្រោល | ស្រឡាញ់</annotation>
<annotation cp="❤🔥" type="tts">បេះដូងពុះកញ្ជ្រោល</annotation>
<annotation cp="❤🩹">ជាសះស្បើយ | ជួសជុល | ធូរស្បើយ | បេះដូងរុំរបួស | ប្រសើរឡើង | សុខភាពល្អ | សុខភាពល្អជាងមុន</annotation>
<annotation cp="❤🩹" type="tts">បេះដូងរុំរបួស</annotation>
+ <annotation cp="❤">បេះដូង | ស្រឡាញ់</annotation>
+ <annotation cp="❤" type="tts">បេះដូង</annotation>
<annotation cp="🧡">បេះដូងពណ៌ទឹកក្រូច | ពណ៌ទឹកក្រូច</annotation>
<annotation cp="🧡" type="tts">បេះដូងពណ៌ទឹកក្រូច</annotation>
<annotation cp="💛">បេះដូង | បេះដូងពណ៌លឿង | លឿង</annotation>
@@ -1141,14 +1141,14 @@
<annotation cp="👨" type="tts">បុរស</annotation>
<annotation cp="🧔">បុរស | បុរសមានពុកចង្កា | ពុកចង្កា | មនុស្ស | មនុស្សមានពុកចង្កា</annotation>
<annotation cp="🧔" type="tts">មនុស្សមានពុកចង្កា</annotation>
- <annotation cp="👱♂">ទង់ដែង | បុរស | បុរសសក់ទង់ដែង | ប្រុស | សក់</annotation>
- <annotation cp="👱♂" type="tts">បុរសសក់ទង់ដែង</annotation>
- <annotation cp="🧔♀">ពុកចង្កា | ស្ត្រី | ស្ត្រី៖ ពុកចង្កា</annotation>
- <annotation cp="🧔♀" type="tts">ស្ត្រី៖ ពុកចង្កា</annotation>
<annotation cp="🧔♂">បុរស | បុរស៖ ពុកចង្កា | ពុកចង្កា</annotation>
<annotation cp="🧔♂" type="tts">បុរស៖ ពុកចង្កា</annotation>
+ <annotation cp="👱♂">ទង់ដែង | បុរស | បុរសសក់ទង់ដែង | ប្រុស | សក់</annotation>
+ <annotation cp="👱♂" type="tts">បុរសសក់ទង់ដែង</annotation>
<annotation cp="👩">នារី | មនុស្សធំ | មុខស្រ្តី | ស្ត្រី | ស្រី | ស្រ្តី</annotation>
<annotation cp="👩" type="tts">ស្រ្តី</annotation>
+ <annotation cp="🧔♀">ពុកចង្កា | ស្ត្រី | ស្ត្រី៖ ពុកចង្កា</annotation>
+ <annotation cp="🧔♀" type="tts">ស្ត្រី៖ ពុកចង្កា</annotation>
<annotation cp="👱♀">ទង់ដែង | នារី | នារីសក់ទង់ដែង | សក់ | ស្រី</annotation>
<annotation cp="👱♀" type="tts">នារីសក់ទង់ដែង</annotation>
<annotation cp="🧓">ចាស់ | មនុស្សចាស់ | មនុស្សធំ | មិនបញ្ជាក់ភេទ | អភេទ</annotation>
diff --git a/common/annotations/kn.xml b/common/annotations/kn.xml
index f8c2cd3..696837c 100644
--- a/common/annotations/kn.xml
+++ b/common/annotations/kn.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -795,6 +795,8 @@
<annotation cp="🙄" type="tts">ತಿರುಗುತ್ತಿರುವ ಕಣ್ಣುಗಳ ಮುಖ</annotation>
<annotation cp="😬">ಗಂಟುಮೋರೆ ಮುಖ | ಸೊಟ್ಟ ಮುಖ</annotation>
<annotation cp="😬" type="tts">ಸೊಟ್ಟ ಮುಖ</annotation>
+ <annotation cp="😮💨" draft="provisional">ನಿಟ್ಟುಸಿರು ಇಡುತ್ತಿರುವ ಮುಖ</annotation>
+ <annotation cp="😮💨" type="tts" draft="provisional">ನಿಟ್ಟುಸಿರು ಇಡುತ್ತಿರುವ ಮುಖ</annotation>
<annotation cp="🤥">ಪಿನಾಷಿಯೋ | ಮುಖ | ಸುಳ್ಳು | ಸುಳ್ಳುಗಾರ ಮುಖ</annotation>
<annotation cp="🤥" type="tts">ಸುಳ್ಳುಗಾರ ಮುಖ</annotation>
<annotation cp="😌">ನಿರಾಳತೆ | ನಿರಾಳತೆಯ ಮುಖ | ಮುಖ</annotation>
@@ -853,8 +855,6 @@
<annotation cp="☹" type="tts">ಗಂಟಿಕ್ಕಿರುವ ಮುಖ</annotation>
<annotation cp="😮">ತೆರೆದ ಬಾಯಿಯ ಮುಖ | ತೆರೆದಿರುವುದು | ಬಾಯಿ | ಮುಖ | ಸಹಾನುಭೂತಿ</annotation>
<annotation cp="😮" type="tts">ತೆರೆದ ಬಾಯಿಯ ಮುಖ</annotation>
- <annotation cp="😮💨" draft="provisional">ನಿಟ್ಟುಸಿರು ಇಡುತ್ತಿರುವ ಮುಖ</annotation>
- <annotation cp="😮💨" type="tts" draft="provisional">ನಿಟ್ಟುಸಿರು ಇಡುತ್ತಿರುವ ಮುಖ</annotation>
<annotation cp="😯">ಆಶ್ಚರ್ಯವಾಗಿರುವುದು | ಗಾಬರಿಯಾಗಿರುವುದು | ಗೋಪ್ಯವಾಗಿರಿಸಿದ | ಮುಖ</annotation>
<annotation cp="😯" type="tts">ಗೋಪ್ಯವಾಗಿರಿಸಿದ ಮುಖ</annotation>
<annotation cp="😲">ಆಘಾತವಾಗಿರುವುದು | ಆಶ್ಚರ್ಯಚಕಿತ ಮುಖ | ಆಶ್ಚರ್ಯಚಕಿತವಾಗಿರುವುದು | ಮುಖ | ಸಂಪೂರ್ಣ</annotation>
@@ -973,12 +973,12 @@
<annotation cp="❣" type="tts">ಹೃದಯ ಆಶ್ಚರ್ಯ ಗುರುತು</annotation>
<annotation cp="💔">ಒಡೆದ ಹೃದಯ | ಒಡೆದಿರುವ ಹೃದಯ | ಹೃದಯ ಮುರಿಯುವಿಕೆ</annotation>
<annotation cp="💔" type="tts">ಒಡೆದಿರುವ ಹೃದಯ</annotation>
- <annotation cp="❤">ಕೆಂಪು ಹೃದಯ | ಹೃದಯ</annotation>
- <annotation cp="❤" type="tts">ಕೆಂಪು ಹೃದಯ</annotation>
<annotation cp="❤🔥">ಕಾಮ | ಪವಿತ್ರ ಹೃದಯ | ಪ್ರೀತಿ | ಬೆಂಕಿಯಲ್ಲಿ ಹೃದಯ | ಸುಡುವುದು | ಹೃದಯ</annotation>
<annotation cp="❤🔥" type="tts">ಬೆಂಕಿಯಲ್ಲಿ ಹೃದಯ</annotation>
<annotation cp="❤🩹">ಆರಾಮಾಗುತ್ತಿರುವುದು | ಆರೋಗ್ಯವಂತ | ಒಳ್ಳೆಯದು | ಚೇತರಿಕೆ | ಸುಧಾರಿಸುವುದು | ಹತೋಟಿಯಲ್ಲಿಡುವುದು | ಹೃದಯ ಹತೋಟಿಯಲ್ಲಿಡುವುದು</annotation>
<annotation cp="❤🩹" type="tts">ಹೃದಯ ಹತೋಟಿಯಲ್ಲಿಡುವುದು</annotation>
+ <annotation cp="❤">ಕೆಂಪು ಹೃದಯ | ಹೃದಯ</annotation>
+ <annotation cp="❤" type="tts">ಕೆಂಪು ಹೃದಯ</annotation>
<annotation cp="🧡">ಕಿತ್ತಳೆ | ಕಿತ್ತಳೆ ಹೃದಯ</annotation>
<annotation cp="🧡" type="tts">ಕಿತ್ತಳೆ ಹೃದಯ</annotation>
<annotation cp="💛">ಹಳದಿ | ಹಳದಿ ಹೃದಯ</annotation>
@@ -1141,14 +1141,14 @@
<annotation cp="👨" type="tts">ಪುರುಷ</annotation>
<annotation cp="🧔">ಗಡ್ಡ | ಗಡ್ಡಧಾರಿ ವ್ಯಕ್ತಿ</annotation>
<annotation cp="🧔" type="tts">ಗಡ್ಡಧಾರಿ ವ್ಯಕ್ತಿ</annotation>
- <annotation cp="👱♂">ಪುರುಷ | ಹೊಂಬಣ್ಣ ಕೂದಲಿನ ಪುರುಷ | ಹೊಂಬಣ್ಣ ಕೂದಲಿನ ವ್ಯಕ್ತಿ</annotation>
- <annotation cp="👱♂" type="tts">ಹೊಂಬಣ್ಣ ಕೂದಲಿನ ಪುರುಷ</annotation>
- <annotation cp="🧔♀">ಗಡ್ಡ | ಮಹಿಳೆ | ಮಹಿಳೆ: ಗಡ್ಡ</annotation>
- <annotation cp="🧔♀" type="tts">ಮಹಿಳೆ: ಗಡ್ಡ</annotation>
<annotation cp="🧔♂">ಗಡ್ಡ | ಪುರುಷ | ಪುರುಷ: ಗಡ್ಡ</annotation>
<annotation cp="🧔♂" type="tts">ಪುರುಷ: ಗಡ್ಡ</annotation>
+ <annotation cp="👱♂">ಪುರುಷ | ಹೊಂಬಣ್ಣ ಕೂದಲಿನ ಪುರುಷ | ಹೊಂಬಣ್ಣ ಕೂದಲಿನ ವ್ಯಕ್ತಿ</annotation>
+ <annotation cp="👱♂" type="tts">ಹೊಂಬಣ್ಣ ಕೂದಲಿನ ಪುರುಷ</annotation>
<annotation cp="👩">ಮಹಿಳೆ | ಸ್ತ್ರೀ</annotation>
<annotation cp="👩" type="tts">ಮಹಿಳೆ</annotation>
+ <annotation cp="🧔♀">ಗಡ್ಡ | ಮಹಿಳೆ | ಮಹಿಳೆ: ಗಡ್ಡ</annotation>
+ <annotation cp="🧔♀" type="tts">ಮಹಿಳೆ: ಗಡ್ಡ</annotation>
<annotation cp="👱♀">ಮಹಿಳೆ | ಸ್ತ್ರೀ | ಹೊಂಬಣ್ಣ ಕೂದಲಿನ ಮಹಿಳೆ</annotation>
<annotation cp="👱♀" type="tts">ಹೊಂಬಣ್ಣ ಕೂದಲಿನ ಮಹಿಳೆ</annotation>
<annotation cp="🧓">ಲಿಂಗ-ತಟಸ್ಥ | ಹಿರಿಯ | ಹಿರಿಯ ವಯಸ್ಕರು</annotation>
diff --git a/common/annotations/ko.xml b/common/annotations/ko.xml
index 632b541..f456010 100644
--- a/common/annotations/ko.xml
+++ b/common/annotations/ko.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -479,6 +479,8 @@
<annotation cp="🙄" type="tts">눈을 굴리고 있는 얼굴</annotation>
<annotation cp="😬">얼굴 | 찌푸린 얼굴 | 찡그림</annotation>
<annotation cp="😬" type="tts">찌푸린 얼굴</annotation>
+ <annotation cp="😮💨">날숨 | 날숨 쉬는 얼굴 | 속삭임 | 안도 | 한숨 | 휘파람</annotation>
+ <annotation cp="😮💨" type="tts">날숨 쉬는 얼굴</annotation>
<annotation cp="🤥">거짓말 | 거짓말쟁이 | 거짓말하는 얼굴 | 얼굴 | 피노키오</annotation>
<annotation cp="🤥" type="tts">거짓말하는 얼굴</annotation>
<annotation cp="😌">안도 | 안심한 얼굴 | 얼굴 | 표정</annotation>
@@ -537,8 +539,6 @@
<annotation cp="☹" type="tts">찡그린 얼굴</annotation>
<annotation cp="😮">얼굴 | 입벌린 얼굴 | 입벌림</annotation>
<annotation cp="😮" type="tts">입벌린 얼굴</annotation>
- <annotation cp="😮💨">날숨 | 날숨 쉬는 얼굴 | 속삭임 | 안도 | 한숨 | 휘파람</annotation>
- <annotation cp="😮💨" type="tts">날숨 쉬는 얼굴</annotation>
<annotation cp="😯">숨죽인 얼굴 | 숨죽임 | 얼굴</annotation>
<annotation cp="😯" type="tts">숨죽인 얼굴</annotation>
<annotation cp="😲">깜짝 놀란 얼굴 | 놀라움 | 놀란 얼굴 | 얼굴 | 충격</annotation>
@@ -657,12 +657,12 @@
<annotation cp="❣" type="tts">하트 모양 느낌표</annotation>
<annotation cp="💔">결별 | 깨진 하트 | 이별 | 이별의 고통 | 이별의 아픔 | 헤어짐</annotation>
<annotation cp="💔" type="tts">깨진 하트</annotation>
- <annotation cp="❤">마음 | 빨간색 하트 | 하트</annotation>
- <annotation cp="❤" type="tts">빨간색 하트</annotation>
<annotation cp="❤🔥">마음 | 불 난 하트 | 불타는 사랑 | 사랑 | 하트</annotation>
<annotation cp="❤🔥" type="tts">불 난 하트</annotation>
<annotation cp="❤🩹">개선 | 건강 | 낫고 있는 하트 | 치유 | 회복 | 힐링</annotation>
<annotation cp="❤🩹" type="tts">낫고 있는 하트</annotation>
+ <annotation cp="❤">마음 | 빨간색 하트 | 하트</annotation>
+ <annotation cp="❤" type="tts">빨간색 하트</annotation>
<annotation cp="🧡">주황색 하트</annotation>
<annotation cp="🧡" type="tts">주황색 하트</annotation>
<annotation cp="💛">노란 하트 | 노란색 하트 | 사랑 | 하트</annotation>
@@ -825,14 +825,14 @@
<annotation cp="👨" type="tts">남자</annotation>
<annotation cp="🧔">사람 | 수염 | 수염 난 사람</annotation>
<annotation cp="🧔" type="tts">수염 난 사람</annotation>
- <annotation cp="👱♂">금발 | 남성 | 남자</annotation>
- <annotation cp="👱♂" type="tts">금발 남자</annotation>
- <annotation cp="🧔♀">수염 | 수염 난 여자 | 여자</annotation>
- <annotation cp="🧔♀" type="tts">수염 난 여자</annotation>
<annotation cp="🧔♂">남자 | 수염 | 수염 난 남자</annotation>
<annotation cp="🧔♂" type="tts">수염 난 남자</annotation>
+ <annotation cp="👱♂">금발 | 남성 | 남자</annotation>
+ <annotation cp="👱♂" type="tts">금발 남자</annotation>
<annotation cp="👩">성인 | 여성 | 여자</annotation>
<annotation cp="👩" type="tts">여자</annotation>
+ <annotation cp="🧔♀">수염 | 수염 난 여자 | 여자</annotation>
+ <annotation cp="🧔♀" type="tts">수염 난 여자</annotation>
<annotation cp="👱♀">금발 | 여성 | 여자</annotation>
<annotation cp="👱♀" type="tts">금발 여자</annotation>
<annotation cp="🧓">노인 | 성별 없음 | 성인</annotation>
diff --git a/common/annotations/kok.xml b/common/annotations/kok.xml
index 5e3c410..0ff0d33 100644
--- a/common/annotations/kok.xml
+++ b/common/annotations/kok.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -457,6 +457,8 @@
<annotation cp="🙄" type="tts">घुंवपी दोळ्यांचो चेरो</annotation>
<annotation cp="😬">खिन्न तोंड | खिन्नताय | चेरो</annotation>
<annotation cp="😬" type="tts">खिन्न तोंड</annotation>
+ <annotation cp="😮💨">शिटी मारप | शिळोणी घालप | श्वास सोडप | श्वास सोडपी चेरो | सुस्कारप | हुंकार भरप | हुस्क्यामेकळो</annotation>
+ <annotation cp="😮💨" type="tts">श्वास सोडपी चेरो</annotation>
<annotation cp="🤥">चेरो | पिनोचियो | फट | फटकिरो चेरो</annotation>
<annotation cp="🤥" type="tts">फटकिरो चेरो</annotation>
<annotation cp="😌">चेरो | हुस्क्यामेकळो</annotation>
@@ -515,8 +517,6 @@
<annotation cp="☹" type="tts">तिडकल्लो चेरो</annotation>
<annotation cp="😮">उकतें | उकत्या तोंडाचो चेरो | चेरो | तोंड | दया</annotation>
<annotation cp="😮" type="tts">उकत्या तोंडाचो चेरो</annotation>
- <annotation cp="😮💨">शिटी मारप | शिळोणी घालप | श्वास सोडप | श्वास सोडपी चेरो | सुस्कारप | हुंकार भरप | हुस्क्यामेकळो</annotation>
- <annotation cp="😮💨" type="tts">श्वास सोडपी चेरो</annotation>
<annotation cp="😯">अजापीत | आश्चर्यचकीत | चेरो | शांत जाल्लो | शांत जाल्लो चेरो</annotation>
<annotation cp="😯" type="tts">शांत जाल्लो चेरो</annotation>
<annotation cp="😲">एकूण | चेरो | थक्क | विस्मीत</annotation>
@@ -635,12 +635,12 @@
<annotation cp="❣" type="tts">काळीज उदगारचिन्न</annotation>
<annotation cp="💔">भंग | भंग जाल्लें | भंग जाल्लें काळीज | भंग पाविल्लें काळीज</annotation>
<annotation cp="💔" type="tts">भंग पाविल्लें काळीज</annotation>
- <annotation cp="❤">काळीज | तांबडें काळीज</annotation>
- <annotation cp="❤" type="tts">तांबडें काळीज</annotation>
<annotation cp="❤🔥">उजो लागिल्ले काळीज | काळीज | जळप | पवित्र काळीज | मोग | वासना</annotation>
<annotation cp="❤🔥" type="tts">उजो लागिल्ले काळीज</annotation>
<annotation cp="❤🩹">जुळून येवपी काळीज | जोडप | निवळप | बरें जावप | भलायकी | सांदप | सुदारप</annotation>
<annotation cp="❤🩹" type="tts">जुळून येवपी काळीज</annotation>
+ <annotation cp="❤">काळीज | तांबडें काळीज</annotation>
+ <annotation cp="❤" type="tts">तांबडें काळीज</annotation>
<annotation cp="🧡">लारांजी | लारांजी काळीज</annotation>
<annotation cp="🧡" type="tts">लारांजी काळीज</annotation>
<annotation cp="💛">हळदुवें | हळदुवें काळीज</annotation>
@@ -803,14 +803,14 @@
<annotation cp="👨" type="tts">दादलो</annotation>
<annotation cp="🧔">खाड | व्यक्ती | व्यक्ती:खाड</annotation>
<annotation cp="🧔" type="tts">व्यक्ती:खाड</annotation>
- <annotation cp="👱♂">केंस | दादलो | दादलो : पिंगशे केंस | दादलो: पिंगशे केंस | पिंगशे | पिंगशे केसांचो दादलो</annotation>
- <annotation cp="👱♂" type="tts">दादलो : पिंगशे केंस</annotation>
- <annotation cp="🧔♀">खाड | बायल | बायल मनीस: खाड</annotation>
- <annotation cp="🧔♀" type="tts">बायल मनीस: खाड</annotation>
<annotation cp="🧔♂">खाड | दादलो | दादलो मनीस: खाड</annotation>
<annotation cp="🧔♂" type="tts">दादलो मनीस: खाड</annotation>
+ <annotation cp="👱♂">केंस | दादलो | दादलो : पिंगशे केंस | दादलो: पिंगशे केंस | पिंगशे | पिंगशे केसांचो दादलो</annotation>
+ <annotation cp="👱♂" type="tts">दादलो : पिंगशे केंस</annotation>
<annotation cp="👩">प्रौढ | बायल</annotation>
<annotation cp="👩" type="tts">बायल</annotation>
+ <annotation cp="🧔♀">खाड | बायल | बायल मनीस: खाड</annotation>
+ <annotation cp="🧔♀" type="tts">बायल मनीस: खाड</annotation>
<annotation cp="👱♀">केंस | पिंगशे | पिंगशे-केसांची बायल | बायल | बायल : पिंगशे केंस | बायल: पिंगशे केंस</annotation>
<annotation cp="👱♀" type="tts">बायल : पिंगशे केंस</annotation>
<annotation cp="🧓">अउल्लेखीत लिंग | जाण्टो | जाण्टो मनीस | प्रौढ | लिंग-तटस्थ</annotation>
diff --git a/common/annotations/ky.xml b/common/annotations/ky.xml
index cad0c2b..c1a0db0 100644
--- a/common/annotations/ky.xml
+++ b/common/annotations/ky.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -393,6 +393,8 @@
<annotation cp="🙄" type="tts">көзүн сүзгөн бет</annotation>
<annotation cp="😬">бет | буз | кебете | кебетесин бузган бет</annotation>
<annotation cp="😬" type="tts">кебетесин бузган бет</annotation>
+ <annotation cp="😮💨" draft="contributed">үшкүрүнгөн жүз</annotation>
+ <annotation cp="😮💨" type="tts" draft="contributed">үшкүрүнгөн жүз</annotation>
<annotation cp="🤥">бет | жалган | жалганчы бет | пиноккио</annotation>
<annotation cp="🤥" type="tts">жалганчы бет</annotation>
<annotation cp="😌">бет | магдыра | магдыраган бет</annotation>
@@ -451,8 +453,6 @@
<annotation cp="☹" type="tts">ээгин кемшийткен бет</annotation>
<annotation cp="😮">ач | бет | жактыр | ооз | оозу ачылган бет</annotation>
<annotation cp="😮" type="tts">оозу ачылган бет</annotation>
- <annotation cp="😮💨" draft="contributed">үшкүрүнгөн жүз</annotation>
- <annotation cp="😮💨" type="tts" draft="contributed">үшкүрүнгөн жүз</annotation>
<annotation cp="😯">бет | таң калган | таң калган бет | чоочуган</annotation>
<annotation cp="😯" type="tts">таң калган бет</annotation>
<annotation cp="😲">айран-таң | айран-таң калган бет | бет | дабдаарып калган бет | чоочуган</annotation>
@@ -571,12 +571,12 @@
<annotation cp="❣" type="tts">жүрөк менен жазылган илеп белгиси</annotation>
<annotation cp="💔">жараланган | жүрөк</annotation>
<annotation cp="💔" type="tts">жараланган жүрөк</annotation>
- <annotation cp="❤">жүрөк | кызыл жүрөк</annotation>
- <annotation cp="❤" type="tts">кызыл жүрөк</annotation>
<annotation cp="❤🔥">жүрөк | күйүү | өрттөнгөн жүрөк | сүйүү | ыйык жүрөк</annotation>
<annotation cp="❤🔥" type="tts">өрттөнгөн жүрөк</annotation>
<annotation cp="❤🩹" draft="contributed">жарасы чапталган жүрөк</annotation>
<annotation cp="❤🩹" type="tts" draft="contributed">жарасы чапталган жүрөк</annotation>
+ <annotation cp="❤">жүрөк | кызыл жүрөк</annotation>
+ <annotation cp="❤" type="tts">кызыл жүрөк</annotation>
<annotation cp="🧡">кызгылтым сары | кызгылтым сары жүрөк</annotation>
<annotation cp="🧡" type="tts">кызгылтым сары жүрөк</annotation>
<annotation cp="💛">жүрөк | сары</annotation>
@@ -739,14 +739,14 @@
<annotation cp="👨" type="tts">эркек</annotation>
<annotation cp="🧔">сакал | сакалчан киши</annotation>
<annotation cp="🧔" type="tts">сакалчан киши</annotation>
- <annotation cp="👱♂">сары чач | сары чачтуу эркек | эркек</annotation>
- <annotation cp="👱♂" type="tts">сары чачтуу эркек</annotation>
- <annotation cp="🧔♀">аял | аял : сакал | аял: сакал | сакал</annotation>
- <annotation cp="🧔♀" type="tts">аял : сакал</annotation>
<annotation cp="🧔♂">киши | киши: сакал | сакал</annotation>
<annotation cp="🧔♂" type="tts">киши: сакал</annotation>
+ <annotation cp="👱♂">сары чач | сары чачтуу эркек | эркек</annotation>
+ <annotation cp="👱♂" type="tts">сары чачтуу эркек</annotation>
<annotation cp="👩">аял</annotation>
<annotation cp="👩" type="tts">аял</annotation>
+ <annotation cp="🧔♀">аял | аял : сакал | аял: сакал | сакал</annotation>
+ <annotation cp="🧔♀" type="tts">аял : сакал</annotation>
<annotation cp="👱♀">аял | сары чач | сары чачтуу аял</annotation>
<annotation cp="👱♀" type="tts">сары чачтуу аял</annotation>
<annotation cp="🧓">жынысы белгисиз | кары адам</annotation>
diff --git a/common/annotations/lo.xml b/common/annotations/lo.xml
index 9b85d0a..bfdeb20 100644
--- a/common/annotations/lo.xml
+++ b/common/annotations/lo.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -795,6 +795,8 @@
<annotation cp="🙄" type="tts">ໜ້າທີ່ມີຕາລັອກແລັກ</annotation>
<annotation cp="😬">ບູດບ້ຽວ | ໜ້າ | ໜ້າບູດບ້ຽວ</annotation>
<annotation cp="😬" type="tts">ໜ້າບູດບ້ຽວ</annotation>
+ <annotation cp="😮💨">ຊຶ່ມ | ເປົ່າປາກ | ໂລ່ງໃຈ | ໜ້າຫາຍໃຈອອກ | ຫາຍໃຈອອກ | ອ້າປາກຫາຍໃຈ | ຮ້ອງຄາງ</annotation>
+ <annotation cp="😮💨" type="tts">ໜ້າຫາຍໃຈອອກ</annotation>
<annotation cp="🤥">ຕົວະ | ພິນັອກຄິໂອ | ໜ້າ | ໜ້າຂີ້ຕົວ</annotation>
<annotation cp="🤥" type="tts">ໜ້າຂີ້ຕົວ</annotation>
<annotation cp="😌">ຜ່ອນຄາຍ | ໂລ່ງໃຈ | ໜ້າ | ໜ້າຜ່ອນຄາຍ</annotation>
@@ -853,8 +855,6 @@
<annotation cp="☹" type="tts">ໜ້າຫຍຸ້ງ</annotation>
<annotation cp="😮">ຕົກໃຈ | ປາກ | ໜ້າ | ໜ້າອ້າປາກ</annotation>
<annotation cp="😮" type="tts">ໜ້າອ້າປາກ</annotation>
- <annotation cp="😮💨">ຊຶ່ມ | ເປົ່າປາກ | ໂລ່ງໃຈ | ໜ້າຫາຍໃຈອອກ | ຫາຍໃຈອອກ | ອ້າປາກຫາຍໃຈ | ຮ້ອງຄາງ</annotation>
- <annotation cp="😮💨" type="tts">ໜ້າຫາຍໃຈອອກ</annotation>
<annotation cp="😯">ປະຫຼາດໃຈ | ໜ້າ | ໜ້າມິດ | ຫຸບປາກ</annotation>
<annotation cp="😯" type="tts">ໜ້າມິດ</annotation>
<annotation cp="😲">ຕົກໃຈ | ປະຫຼາດໃຈ | ໜ້າ | ໜ້າຕື່ນຕົກໃຈ</annotation>
@@ -973,12 +973,12 @@
<annotation cp="❣" type="tts">ເຄື່ອງໝາຍທ້ວງເປັນຮູບຫົວໃຈໃຫຍ່</annotation>
<annotation cp="💔">ຫົວໃຈ | ຫົວໃຈແຕກ | ອົກຮັກ</annotation>
<annotation cp="💔" type="tts">ຫົວໃຈແຕກ</annotation>
- <annotation cp="❤">ສີແດງ | ຫົວໃຈ | ຫົວໃຈສີແດງ</annotation>
- <annotation cp="❤" type="tts">ຫົວໃຈສີແດງ</annotation>
<annotation cp="❤🔥">ໃໝ້ | ຫື່ນ | ຫົວໃຈ | ຫົວໃຈມີໄຟ | ຫົວໃຈອັນສັກສິດ | ຮັກ</annotation>
<annotation cp="❤🔥" type="tts">ຫົວໃຈມີໄຟ</annotation>
<annotation cp="❤🩹">ແຂງແຮງຂຶ້ນ | ສ້ອມແປງ | ສຸຂະພາບດີ | ດາມໃຈ | ປັບປຸງ | ພັກຟື້ນ | ຟື້ນຕົວ</annotation>
<annotation cp="❤🩹" type="tts">ດາມໃຈ</annotation>
+ <annotation cp="❤">ສີແດງ | ຫົວໃຈ | ຫົວໃຈສີແດງ</annotation>
+ <annotation cp="❤" type="tts">ຫົວໃຈສີແດງ</annotation>
<annotation cp="🧡">ໝາກກ້ຽງ | ຫົວໃຈໝາກກ້ຽງ</annotation>
<annotation cp="🧡" type="tts">ຫົວໃຈໝາກກ້ຽງ</annotation>
<annotation cp="💛">ຫົວໃຈ | ຫົວໃຈສີເຫຼືອງ</annotation>
@@ -1141,14 +1141,14 @@
<annotation cp="👨" type="tts">ຜູ້ຊາຍ</annotation>
<annotation cp="🧔">ຄົນມີໜວດ | ໜວດ</annotation>
<annotation cp="🧔" type="tts">ຄົນມີໜວດ</annotation>
- <annotation cp="👱♂">ຊາຍຜົມບລອນ | ບລອນ | ຜູ້ຊາຍ | ຜົມສີ | ຜົມທອງ</annotation>
- <annotation cp="👱♂" type="tts">ຊາຍຜົມບລອນ</annotation>
- <annotation cp="🧔♀">ຜູ້ຍິງ | ຜູ້ຍິງມີໜວດ | ໜວດ</annotation>
- <annotation cp="🧔♀" type="tts">ຜູ້ຍິງມີໜວດ</annotation>
<annotation cp="🧔♂">ຜູ້ຊາຍ | ຜູ້ຊາຍມີໜວດ | ໜວດ</annotation>
<annotation cp="🧔♂" type="tts">ຜູ້ຊາຍມີໜວດ</annotation>
+ <annotation cp="👱♂">ຊາຍຜົມບລອນ | ບລອນ | ຜູ້ຊາຍ | ຜົມສີ | ຜົມທອງ</annotation>
+ <annotation cp="👱♂" type="tts">ຊາຍຜົມບລອນ</annotation>
<annotation cp="👩">ຄົນ | ແມ່ຍິງ</annotation>
<annotation cp="👩" type="tts">ແມ່ຍິງ</annotation>
+ <annotation cp="🧔♀">ຜູ້ຍິງ | ຜູ້ຍິງມີໜວດ | ໜວດ</annotation>
+ <annotation cp="🧔♀" type="tts">ຜູ້ຍິງມີໜວດ</annotation>
<annotation cp="👱♀">ຍິງຜົມບລອນ | ບລອນ | ຜູ້ຍິງ | ຜົມສີ | ຜົມທອງ</annotation>
<annotation cp="👱♀" type="tts">ຍິງຜົມບລອນ</annotation>
<annotation cp="🧓">ແກ່ | ຜູ້ໃຫຍ່ທີ່ມີອາຍຸ | ເພດກາງ</annotation>
diff --git a/common/annotations/lt.xml b/common/annotations/lt.xml
index 2fce12a..c108573 100644
--- a/common/annotations/lt.xml
+++ b/common/annotations/lt.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -587,6 +587,8 @@
<annotation cp="🙄" type="tts">veidas, vartantis akis</annotation>
<annotation cp="😬">besivaipantis veidas | grimasa | veidas</annotation>
<annotation cp="😬" type="tts">besivaipantis veidas</annotation>
+ <annotation cp="😮💨">dejuoti | gaudyti | iškvėpti | reljefas | šnabždesys | švilpukas | veidas su garu</annotation>
+ <annotation cp="😮💨" type="tts">veidas su garu</annotation>
<annotation cp="🤥">melas | meluojantis veidas | veidas</annotation>
<annotation cp="🤥" type="tts">meluojantis veidas</annotation>
<annotation cp="😌">palengvėjimas | veidas | veidas su palengvėjimu</annotation>
@@ -645,8 +647,6 @@
<annotation cp="☹" type="tts">paniuręs veidas</annotation>
<annotation cp="😮">atverta | burna | išsižiojęs | veidas</annotation>
<annotation cp="😮" type="tts">išsižiojęs veidas</annotation>
- <annotation cp="😮💨">dejuoti | gaudyti | iškvėpti | reljefas | šnabždesys | švilpukas | veidas su garu</annotation>
- <annotation cp="😮💨" type="tts">veidas su garu</annotation>
<annotation cp="😯">nuščiuvęs | nustebęs | priblokštas | veidas</annotation>
<annotation cp="😯" type="tts">nuščiuvęs veidas</annotation>
<annotation cp="😲">apstulbęs | priblokštas | veidas | visiškai</annotation>
@@ -765,12 +765,12 @@
<annotation cp="❣" type="tts">storas širdelės formos šauktukas</annotation>
<annotation cp="💔">sudaužyta | sudaužyta širdelė | sudaužyti</annotation>
<annotation cp="💔" type="tts">sudaužyta širdelė</annotation>
- <annotation cp="❤">raudona širdelė | širdis</annotation>
- <annotation cp="❤" type="tts">raudona širdelė</annotation>
<annotation cp="❤🔥" draft="contributed">deganti širdis</annotation>
<annotation cp="❤🔥" type="tts" draft="contributed">deganti širdis</annotation>
<annotation cp="❤🩹">atsigauna | atsigaunanti | gerai | gydytina širdis | sveikesnis | taisymas | tobulinti</annotation>
<annotation cp="❤🩹" type="tts">gydytina širdis</annotation>
+ <annotation cp="❤">raudona širdelė | širdis</annotation>
+ <annotation cp="❤" type="tts">raudona širdelė</annotation>
<annotation cp="🧡">oranžinė | oranžinė širdelė</annotation>
<annotation cp="🧡" type="tts">oranžinė širdelė</annotation>
<annotation cp="💛">geltona | geltona širdelė</annotation>
@@ -933,14 +933,14 @@
<annotation cp="👨" type="tts">vyras</annotation>
<annotation cp="🧔">barzda | barzdotas žmogus</annotation>
<annotation cp="🧔" type="tts">barzdotas žmogus</annotation>
- <annotation cp="👱♂">blondinas | vyras</annotation>
- <annotation cp="👱♂" type="tts">blondinas</annotation>
- <annotation cp="🧔♀">barzda | moteris | moteris: barzda</annotation>
- <annotation cp="🧔♀" type="tts">moteris: barzda</annotation>
<annotation cp="🧔♂">barzda | vyras | vyras: barzda</annotation>
<annotation cp="🧔♂" type="tts">vyras: barzda</annotation>
+ <annotation cp="👱♂">blondinas | vyras</annotation>
+ <annotation cp="👱♂" type="tts">blondinas</annotation>
<annotation cp="👩">moteris</annotation>
<annotation cp="👩" type="tts">moteris</annotation>
+ <annotation cp="🧔♀">barzda | moteris | moteris: barzda</annotation>
+ <annotation cp="🧔♀" type="tts">moteris: barzda</annotation>
<annotation cp="👱♀">blondinė | moteris</annotation>
<annotation cp="👱♀" type="tts">blondinė</annotation>
<annotation cp="🧓">kitas suaugusysis | neutrali lytis | senas</annotation>
diff --git a/common/annotations/lv.xml b/common/annotations/lv.xml
index 4e9abc4..6d37629 100644
--- a/common/annotations/lv.xml
+++ b/common/annotations/lv.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -612,6 +612,8 @@
<annotation cp="🙄" type="tts">seja ar pārgrieztām acīm</annotation>
<annotation cp="😬">grimase | saviebta seja | seja</annotation>
<annotation cp="😬" type="tts">saviebta seja</annotation>
+ <annotation cp="😮💨">atvieglojums | čuksti | izelpa | nopūta | seja nopūšas | svilpošana | vaids</annotation>
+ <annotation cp="😮💨" type="tts">seja nopūšas</annotation>
<annotation cp="🤥">meli | melojoša seja | pinokio | seja</annotation>
<annotation cp="🤥" type="tts">melojoša seja</annotation>
<annotation cp="😌">atvieglojums | seja | seja ar atvieglojuma izteiksmi</annotation>
@@ -670,8 +672,6 @@
<annotation cp="☹" type="tts">bēdīga seja</annotation>
<annotation cp="😮">atvērts | mute | pārsteigt | seja | seja ar atvērtu muti</annotation>
<annotation cp="😮" type="tts">seja ar atvērtu muti</annotation>
- <annotation cp="😮💨">atvieglojums | čuksti | izelpa | nopūta | seja nopūšas | svilpošana | vaids</annotation>
- <annotation cp="😮💨" type="tts">seja nopūšas</annotation>
<annotation cp="😯">apklusināt | pārsteigt | pārsteigta seja | seja</annotation>
<annotation cp="😯" type="tts">pārsteigta seja</annotation>
<annotation cp="😲">pārsteigts | seja | šokēta seja | šokēts</annotation>
@@ -790,12 +790,12 @@
<annotation cp="❣" type="tts">izsaukuma zīme sirds formā</annotation>
<annotation cp="💔">salauzt | salauzta sirds | sirds</annotation>
<annotation cp="💔" type="tts">salauzta sirds</annotation>
- <annotation cp="❤">sarkana sirds | sarkans | sirds</annotation>
- <annotation cp="❤" type="tts">sarkana sirds</annotation>
<annotation cp="❤🔥">degoša sirds | kaisle | liesmas | mīla | sirds | svēta sirds</annotation>
<annotation cp="❤🔥" type="tts">degoša sirds</annotation>
<annotation cp="❤🩹">atkopties | atspirgt | labi | pārsiet | pārsieta sirds | uzlabot | veselību</annotation>
<annotation cp="❤🩹" type="tts">pārsieta sirds</annotation>
+ <annotation cp="❤">sarkana sirds | sarkans | sirds</annotation>
+ <annotation cp="❤" type="tts">sarkana sirds</annotation>
<annotation cp="🧡">oranža sirds | oranžs | sirds</annotation>
<annotation cp="🧡" type="tts">oranža sirds</annotation>
<annotation cp="💛">dzeltena sirds | dzeltens | sirds</annotation>
@@ -958,14 +958,14 @@
<annotation cp="👨" type="tts">vīrietis</annotation>
<annotation cp="🧔">bārda | bārdaina persona | bārdains vīrietis | persona</annotation>
<annotation cp="🧔" type="tts">bārdains vīrietis</annotation>
- <annotation cp="👱♂">blondīns | vīrietis</annotation>
- <annotation cp="👱♂" type="tts">blondīns</annotation>
- <annotation cp="🧔♀">bārda | sieviete | sieviete ar bārdu</annotation>
- <annotation cp="🧔♀" type="tts">sieviete ar bārdu</annotation>
<annotation cp="🧔♂">bārda | vīrietis | vīrietis ar bārdu</annotation>
<annotation cp="🧔♂" type="tts">vīrietis ar bārdu</annotation>
+ <annotation cp="👱♂">blondīns | vīrietis</annotation>
+ <annotation cp="👱♂" type="tts">blondīns</annotation>
<annotation cp="👩">dāma | kundze | seja | sieviete</annotation>
<annotation cp="👩" type="tts">sieviete</annotation>
+ <annotation cp="🧔♀">bārda | sieviete | sieviete ar bārdu</annotation>
+ <annotation cp="🧔♀" type="tts">sieviete ar bārdu</annotation>
<annotation cp="👱♀">blonda | blondi mati | blondīne | sieviete</annotation>
<annotation cp="👱♀" type="tts">blondīne</annotation>
<annotation cp="🧓">bezdzimuma | dzimumneitrāls | vecāks pieaugušais | vecs</annotation>
diff --git a/common/annotations/mk.xml b/common/annotations/mk.xml
index 4e86bf5..cd40644 100644
--- a/common/annotations/mk.xml
+++ b/common/annotations/mk.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -503,6 +503,8 @@
<annotation cp="🙄" type="tts">лице што превртува очи</annotation>
<annotation cp="😬">гримаса | лице | лице со гримаса</annotation>
<annotation cp="😬" type="tts">лице со гримаса</annotation>
+ <annotation cp="😮💨">восклик | издишување | лице издишува | олеснување | свиркање | стенкање | шепот</annotation>
+ <annotation cp="😮💨" type="tts">лице издишува</annotation>
<annotation cp="🤥">лаже | лажење | лице | пинокио</annotation>
<annotation cp="🤥" type="tts">лажење</annotation>
<annotation cp="😌">лице | лице со олеснување | олеснување</annotation>
@@ -561,8 +563,6 @@
<annotation cp="☹" type="tts">намуртено лице</annotation>
<annotation cp="😮">лице | лице со отворена уста | отворена | уста</annotation>
<annotation cp="😮" type="tts">лице со отворена уста</annotation>
- <annotation cp="😮💨">восклик | издишување | лице издишува | олеснување | свиркање | стенкање | шепот</annotation>
- <annotation cp="😮💨" type="tts">лице издишува</annotation>
<annotation cp="😯">замолчено | зачудено | изненадено | лице</annotation>
<annotation cp="😯" type="tts">замолчено лице</annotation>
<annotation cp="😲">вчудовидено лице | вчудоневидено | лице | шокирано</annotation>
@@ -681,12 +681,12 @@
<annotation cp="❣" type="tts">извичник во вид на срце</annotation>
<annotation cp="💔">крши | скршено | срце</annotation>
<annotation cp="💔" type="tts">скршено срце</annotation>
- <annotation cp="❤">срце | црвено</annotation>
- <annotation cp="❤" type="tts">црвено срце</annotation>
<annotation cp="❤🔥">гори | запалено срце | љубов | свето срце | сладострастие | срце</annotation>
<annotation cp="❤🔥" type="tts">запалено срце</annotation>
<annotation cp="❤🩹">добро | закрепнува | залечено срце | поздраво | се залекува | се подобрува</annotation>
<annotation cp="❤🩹" type="tts">залечено срце</annotation>
+ <annotation cp="❤">срце | црвено</annotation>
+ <annotation cp="❤" type="tts">црвено срце</annotation>
<annotation cp="🧡">портокал | портокалово срце</annotation>
<annotation cp="🧡" type="tts">портокалово срце</annotation>
<annotation cp="💛">жолто | срце</annotation>
@@ -849,14 +849,14 @@
<annotation cp="👨" type="tts">маж</annotation>
<annotation cp="🧔">брада | забраден човек</annotation>
<annotation cp="🧔" type="tts">забраден човек</annotation>
- <annotation cp="👱♂">маж | руса коса | русокос маж</annotation>
- <annotation cp="👱♂" type="tts">русокос маж</annotation>
- <annotation cp="🧔♀">брада | жена | жена: брада</annotation>
- <annotation cp="🧔♀" type="tts">жена: брада</annotation>
<annotation cp="🧔♂">брада | маж | маж: брада</annotation>
<annotation cp="🧔♂" type="tts">маж: брада</annotation>
+ <annotation cp="👱♂">маж | руса коса | русокос маж</annotation>
+ <annotation cp="👱♂" type="tts">русокос маж</annotation>
<annotation cp="👩">жена | женско</annotation>
<annotation cp="👩" type="tts">жена</annotation>
+ <annotation cp="🧔♀">брада | жена | жена: брада</annotation>
+ <annotation cp="🧔♀" type="tts">жена: брада</annotation>
<annotation cp="👱♀">жена | руса коса | русокоса жена</annotation>
<annotation cp="👱♀" type="tts">русокоса жена</annotation>
<annotation cp="🧓">пол-неутрален | постаро возрасно лице | старо</annotation>
diff --git a/common/annotations/ml.xml b/common/annotations/ml.xml
index e57ef6f..6eda1a3 100644
--- a/common/annotations/ml.xml
+++ b/common/annotations/ml.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -469,6 +469,8 @@
<annotation cp="🙄" type="tts">കറങ്ങുന്ന കണ്ണുകളുള്ള മുഖം</annotation>
<annotation cp="😬">കൊഞ്ഞനം കുത്തുക | ഗോഷ്ടി | ഗോഷ്ടി കാണിക്കുന്ന മുഖം | മുഖം</annotation>
<annotation cp="😬" type="tts">ഗോഷ്ടി കാണിക്കുന്ന മുഖം</annotation>
+ <annotation cp="😮💨" draft="contributed">കോപാകുല മുഖം</annotation>
+ <annotation cp="😮💨" type="tts" draft="contributed">കോപാകുല മുഖം</annotation>
<annotation cp="🤥">കള്ളം | കള്ളലക്ഷണം</annotation>
<annotation cp="🤥" type="tts">കള്ളലക്ഷണം</annotation>
<annotation cp="😌">ആശ്വാസം | ആശ്വാസമുള്ള മുഖം | മുഖം</annotation>
@@ -527,8 +529,6 @@
<annotation cp="☹" type="tts">നീരസമുള്ള മുഖം</annotation>
<annotation cp="😮">തുറന്ന | തുറന്ന വായയുള്ള മുഖം | മുഖം | വായ | സഹതാപം</annotation>
<annotation cp="😮" type="tts">തുറന്ന വായയുള്ള മുഖം</annotation>
- <annotation cp="😮💨" draft="contributed">കോപാകുല മുഖം</annotation>
- <annotation cp="😮💨" type="tts" draft="contributed">കോപാകുല മുഖം</annotation>
<annotation cp="😯">അത്ഭുതകരമായ | ആശ്ചര്യമുള്ള | ഞെട്ടൽ | മുഖം | സ്തബ്ധമായ</annotation>
<annotation cp="😯" type="tts">സ്തബ്ധമായ മുഖം</annotation>
<annotation cp="😲">അത്ഭുതം | അത്ഭുതം നിറഞ്ഞ മുഖം | ആശ്ചര്യം | ഞെട്ടൽ | പൂർണ്ണമായും | മുഖം</annotation>
@@ -647,12 +647,12 @@
<annotation cp="❣" type="tts">ഹൃദയാകൃതിയിലുള്ള ആശ്ചര്യ ചിഹ്നം</annotation>
<annotation cp="💔">തകരുക | തകർന്ന ഹൃദയം | തകർന്നു | ഹൃദയം</annotation>
<annotation cp="💔" type="tts">തകർന്ന ഹൃദയം</annotation>
- <annotation cp="❤">ചുവന്ന ഹൃദയം | ചുവപ്പ് | ഹൃദയം</annotation>
- <annotation cp="❤" type="tts">ചുവന്ന ഹൃദയം</annotation>
<annotation cp="❤🔥" draft="contributed">ഹൃദയത്തിൽ തീ</annotation>
<annotation cp="❤🔥" type="tts" draft="contributed">ഹൃദയത്തിൽ തീ</annotation>
<annotation cp="❤🩹" draft="contributed">സുഖം പ്രാപിക്കുന്ന ഹൃദയം</annotation>
<annotation cp="❤🩹" type="tts" draft="contributed">സുഖം പ്രാപിക്കുന്ന ഹൃദയം</annotation>
+ <annotation cp="❤">ചുവന്ന ഹൃദയം | ചുവപ്പ് | ഹൃദയം</annotation>
+ <annotation cp="❤" type="tts">ചുവന്ന ഹൃദയം</annotation>
<annotation cp="🧡">ഓറഞ്ച് | പ്രണയം | വികാരം | ഹൃദയം</annotation>
<annotation cp="🧡" type="tts">ഓറഞ്ച് ഹൃദയം</annotation>
<annotation cp="💛">പ്രണയം | മഞ്ഞ | വികാരം | ഹൃദയം</annotation>
@@ -815,14 +815,14 @@
<annotation cp="👨" type="tts">പുരുഷൻ</annotation>
<annotation cp="🧔">താടി | വ്യക്തി | വ്യക്തി: താടി</annotation>
<annotation cp="🧔" type="tts">വ്യക്തി: താടി</annotation>
- <annotation cp="👱♂">തലമുടി | പുരുഷൻ | പുരുഷൻ: സ്വർണ്ണത്തലമുടി | സ്വർണ്ണത്തലമുടിയുള്ള പുരുഷൻ | സ്വർണ്ണവർണ്ണം</annotation>
- <annotation cp="👱♂" type="tts">പുരുഷൻ: സ്വർണ്ണത്തലമുടി</annotation>
- <annotation cp="🧔♀" draft="contributed">സ്ത്രീ: താടി</annotation>
- <annotation cp="🧔♀" type="tts" draft="contributed">സ്ത്രീ: താടി</annotation>
<annotation cp="🧔♂" draft="contributed">പുരുഷൻ: താടി</annotation>
<annotation cp="🧔♂" type="tts" draft="contributed">പുരുഷൻ: താടി</annotation>
+ <annotation cp="👱♂">തലമുടി | പുരുഷൻ | പുരുഷൻ: സ്വർണ്ണത്തലമുടി | സ്വർണ്ണത്തലമുടിയുള്ള പുരുഷൻ | സ്വർണ്ണവർണ്ണം</annotation>
+ <annotation cp="👱♂" type="tts">പുരുഷൻ: സ്വർണ്ണത്തലമുടി</annotation>
<annotation cp="👩">മുതിർന്നയാൾ | സ്ത്രീ</annotation>
<annotation cp="👩" type="tts">സ്ത്രീ</annotation>
+ <annotation cp="🧔♀" draft="contributed">സ്ത്രീ: താടി</annotation>
+ <annotation cp="🧔♀" type="tts" draft="contributed">സ്ത്രീ: താടി</annotation>
<annotation cp="👱♀">തലമുടി | സ്ത്രീ | സ്ത്രീ: സ്വർണ്ണത്തലമുടി | സ്വർണ്ണത്തലമുടിക്കാരി | സ്വർണ്ണത്തലമുടിയുള്ള സ്ത്രീ</annotation>
<annotation cp="👱♀" type="tts">സ്ത്രീ: സ്വർണ്ണത്തലമുടി</annotation>
<annotation cp="🧓">അനിശ്ചിത ലിംഗഭേദം | പ്രായാധിക്യമുള്ള വ്യക്തി | മുതിർന്നയാൾ | ലിംഗഭേദമില്ല | വയസ്സായ വ്യക്തി | വാർദ്ധക്യം</annotation>
diff --git a/common/annotations/mn.xml b/common/annotations/mn.xml
index 4a40916..3a5bb92 100644
--- a/common/annotations/mn.xml
+++ b/common/annotations/mn.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -795,6 +795,8 @@
<annotation cp="🙄" type="tts">нүдээ эргэлдүүлэх царай</annotation>
<annotation cp="😬">царай | ярвалзсан</annotation>
<annotation cp="😬" type="tts">ярвалзсан царай</annotation>
+ <annotation cp="😮💨">аахилах | амьсгаа гаргах | амьсгалж буй царай | исгэрэх | санаа алдах | санаа амрах | шүгэлдэх</annotation>
+ <annotation cp="😮💨" type="tts">амьсгалж буй царай</annotation>
<annotation cp="🤥">пиноккио | худалч | царай</annotation>
<annotation cp="🤥" type="tts">худалч царай</annotation>
<annotation cp="😌">тайвширсан | царай</annotation>
@@ -853,8 +855,6 @@
<annotation cp="☹" type="tts">баргар царай</annotation>
<annotation cp="😮">царай | цочирдох | цочирдсон царай</annotation>
<annotation cp="😮" type="tts">цочирдсон царай</annotation>
- <annotation cp="😮💨">аахилах | амьсгаа гаргах | амьсгалж буй царай | исгэрэх | санаа алдах | санаа амрах | шүгэлдэх</annotation>
- <annotation cp="😮💨" type="tts">амьсгалж буй царай</annotation>
<annotation cp="😯">гайхширсан | царай</annotation>
<annotation cp="😯" type="tts">гайхширсан царай</annotation>
<annotation cp="😲">мэл гайхсан | мэл гайхсан царай | царай</annotation>
@@ -973,12 +973,12 @@
<annotation cp="❣" type="tts">зүрхэн хэлбэртэй анхааруулгын тэмдэг</annotation>
<annotation cp="💔">зүрх | шархалсан зүрх | шархлах</annotation>
<annotation cp="💔" type="tts">шархалсан зүрх</annotation>
- <annotation cp="❤">зүрх | улаан | хайр</annotation>
- <annotation cp="❤" type="tts">улаан зүрх</annotation>
<annotation cp="❤🔥">ариун зүрх | зүрх | тачаал | хайр | шатаж буй зүрх | шатах</annotation>
<annotation cp="❤🔥" type="tts">шатаж буй зүрх</annotation>
<annotation cp="❤🩹">засарч буй | сайжирч буй | сайн | сэргэж буй | эдгэж буй | эрүүл</annotation>
<annotation cp="❤🩹" type="tts">засарч буй</annotation>
+ <annotation cp="❤">зүрх | улаан | хайр</annotation>
+ <annotation cp="❤" type="tts">улаан зүрх</annotation>
<annotation cp="🧡">улбар шар | улбар шар зүрх</annotation>
<annotation cp="🧡" type="tts">улбар шар зүрх</annotation>
<annotation cp="💛">зүрх | шар</annotation>
@@ -1141,14 +1141,14 @@
<annotation cp="👨" type="tts">эрэгтэй хүн</annotation>
<annotation cp="🧔">сахал | сахалтай хүн</annotation>
<annotation cp="🧔" type="tts">сахалтай хүн</annotation>
- <annotation cp="👱♂">цайвар шар үс | шар үстэй эрэгтэй | эр | эрэгтэй</annotation>
- <annotation cp="👱♂" type="tts">шар үстэй эрэгтэй</annotation>
- <annotation cp="🧔♀">сахал | эмэгтэй | эмэгтэй: сахал</annotation>
- <annotation cp="🧔♀" type="tts">эмэгтэй: сахал</annotation>
<annotation cp="🧔♂">сахал | эрэгтэй | эрэгтэй: сахал</annotation>
<annotation cp="🧔♂" type="tts">эрэгтэй: сахал</annotation>
+ <annotation cp="👱♂">цайвар шар үс | шар үстэй эрэгтэй | эр | эрэгтэй</annotation>
+ <annotation cp="👱♂" type="tts">шар үстэй эрэгтэй</annotation>
<annotation cp="👩">хүн | эмэгтэй</annotation>
<annotation cp="👩" type="tts">эмэгтэй хүн</annotation>
+ <annotation cp="🧔♀">сахал | эмэгтэй | эмэгтэй: сахал</annotation>
+ <annotation cp="🧔♀" type="tts">эмэгтэй: сахал</annotation>
<annotation cp="👱♀">цайвар шар үс | шар үстэй эмэгтэй | эм | эмэгтэй</annotation>
<annotation cp="👱♀" type="tts">шар үстэй эмэгтэй</annotation>
<annotation cp="🧓">жендер-саармаг | настай хүн | хөгшин</annotation>
diff --git a/common/annotations/mr.xml b/common/annotations/mr.xml
index 4c56ad2..cb87b9c 100644
--- a/common/annotations/mr.xml
+++ b/common/annotations/mr.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -575,6 +575,8 @@
<annotation cp="🙄" type="tts">डोळे फिरविणारा चेहरा</annotation>
<annotation cp="😬">चेहरा | वाकुल्या दाखविणारा चेहरा | वाकुल्या दाखविणे</annotation>
<annotation cp="😬" type="tts">वाकुल्या दाखविणारा चेहरा</annotation>
+ <annotation cp="😮💨">आराम | उच्छवास टाकणारा चेहरा | उच्छवास टाकणे | कण्हणे | कुजबुज | धाप | शिटी</annotation>
+ <annotation cp="😮💨" type="tts">उच्छवास टाकणारा चेहरा</annotation>
<annotation cp="🤥">खोटं | खोटारडा चेहरा | चेहरा | पिनोकिओ</annotation>
<annotation cp="🤥" type="tts">खोटारडा चेहरा</annotation>
<annotation cp="😌">चिंतामुक्त | चेहरा</annotation>
@@ -633,8 +635,6 @@
<annotation cp="☹" type="tts">नापसंती व्यक्त करणारा चेहरा</annotation>
<annotation cp="😮">उघडे | उघडे तोंड असलेला चेहरा | चेहरा | तोंड उघडलेला चेहरा | सहानुभूती</annotation>
<annotation cp="😮" type="tts">तोंड उघडलेला चेहरा</annotation>
- <annotation cp="😮💨">आराम | उच्छवास टाकणारा चेहरा | उच्छवास टाकणे | कण्हणे | कुजबुज | धाप | शिटी</annotation>
- <annotation cp="😮💨" type="tts">उच्छवास टाकणारा चेहरा</annotation>
<annotation cp="😯">अचंभित | आश्चर्यचकित | चेहरा | स्तब्ध</annotation>
<annotation cp="😯" type="tts">अचंभित चेहरा</annotation>
<annotation cp="😲">आश्चर्यचकित | आश्चर्यचकित चेहरा | धक्का बसलेला | पूर्णपणे</annotation>
@@ -753,12 +753,12 @@
<annotation cp="❣" type="tts">हृदय असलेले उद्गारवाचक चिन्ह</annotation>
<annotation cp="💔">तुटणे | तुटलेले | तुटलेले हृदय</annotation>
<annotation cp="💔" type="tts">तुटलेले हृदय</annotation>
- <annotation cp="❤">लाल हृदय | हृदय</annotation>
- <annotation cp="❤" type="tts">लाल हृदय</annotation>
<annotation cp="❤🔥">जळणे | पवित्र हृदय | प्रेम | वासना | हृदय | हृदयात आग</annotation>
<annotation cp="❤🔥" type="tts">हृदयात आग</annotation>
<annotation cp="❤🩹">निरोगी | बरे होणारे | रोगमुक्त होणारे | सावरणारे | सावरणारे हृदय | सुधरणारे</annotation>
<annotation cp="❤🩹" type="tts">सावरणारे हृदय</annotation>
+ <annotation cp="❤">लाल हृदय | हृदय</annotation>
+ <annotation cp="❤" type="tts">लाल हृदय</annotation>
<annotation cp="🧡">केशरी | केशरी हृदय</annotation>
<annotation cp="🧡" type="tts">केशरी हृदय</annotation>
<annotation cp="💛">पिवळे | पिवळे हृदय | पिवळे ह्रदय</annotation>
@@ -921,14 +921,14 @@
<annotation cp="👨" type="tts">पुरूष</annotation>
<annotation cp="🧔">दाढी | दाढी असलेली व्यक्ती | पुरुष | व्यक्ती</annotation>
<annotation cp="🧔" type="tts">दाढी असलेली व्यक्ती</annotation>
- <annotation cp="👱♂">केस | पुरुष | सोनेरी | सोनेरी केसांचा पुरुष</annotation>
- <annotation cp="👱♂" type="tts">सोनेरी केसांचा पुरुष</annotation>
- <annotation cp="🧔♀">दाढी | दाढी असलेली महिला | महिला | महिला: दाढी</annotation>
- <annotation cp="🧔♀" type="tts">महिला: दाढी</annotation>
<annotation cp="🧔♂">दाढी | दाढी असलेला पुरूष | पुरूष | पुरूष: दाढी</annotation>
<annotation cp="🧔♂" type="tts">पुरूष: दाढी</annotation>
+ <annotation cp="👱♂">केस | पुरुष | सोनेरी | सोनेरी केसांचा पुरुष</annotation>
+ <annotation cp="👱♂" type="tts">सोनेरी केसांचा पुरुष</annotation>
<annotation cp="👩">महिला</annotation>
<annotation cp="👩" type="tts">महिला</annotation>
+ <annotation cp="🧔♀">दाढी | दाढी असलेली महिला | महिला | महिला: दाढी</annotation>
+ <annotation cp="🧔♀" type="tts">महिला: दाढी</annotation>
<annotation cp="👱♀">केस | महिला | सोनेरी | सोनेरी केसांची महिला</annotation>
<annotation cp="👱♀" type="tts">सोनेरी केसांची महिला</annotation>
<annotation cp="🧓">प्रौढ | लिंग-तटस्थ | वृद्ध</annotation>
diff --git a/common/annotations/ms.xml b/common/annotations/ms.xml
index 5a85374..373b526 100644
--- a/common/annotations/ms.xml
+++ b/common/annotations/ms.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -448,6 +448,8 @@
<annotation cp="🙄" type="tts">muka dengan mata juling ke atas</annotation>
<annotation cp="😬">menyeringai | muka</annotation>
<annotation cp="😬" type="tts">muka menyeringai</annotation>
+ <annotation cp="😮💨" draft="contributed">muka menghembuskan nafas</annotation>
+ <annotation cp="😮💨" type="tts" draft="contributed">muka menghembuskan nafas</annotation>
<annotation cp="🤥">bohong | muka | pinocchio</annotation>
<annotation cp="🤥" type="tts">muka bohong</annotation>
<annotation cp="😌">lega | muka</annotation>
@@ -506,8 +508,6 @@
<annotation cp="☹" type="tts">muka berkerut</annotation>
<annotation cp="😮">muka | muka bermulut ternganga | mulut | simpati | ternganga</annotation>
<annotation cp="😮" type="tts">muka bermulut ternganga</annotation>
- <annotation cp="😮💨" draft="contributed">muka menghembuskan nafas</annotation>
- <annotation cp="😮💨" type="tts" draft="contributed">muka menghembuskan nafas</annotation>
<annotation cp="😯">aman | muka | terkejut | terperanjat</annotation>
<annotation cp="😯" type="tts">muka terkejut</annotation>
<annotation cp="😲">hairan | muka | muka terperanjat | sama sekali | terkejut</annotation>
@@ -626,12 +626,12 @@
<annotation cp="❣" type="tts">tanda seru hati</annotation>
<annotation cp="💔">hati | patah hati | retak</annotation>
<annotation cp="💔" type="tts">patah hati</annotation>
- <annotation cp="❤">hati | hati merah</annotation>
- <annotation cp="❤" type="tts">hati merah</annotation>
<annotation cp="❤🔥" draft="contributed">hati membara</annotation>
<annotation cp="❤🔥" type="tts" draft="contributed">hati membara</annotation>
<annotation cp="❤🩹" draft="contributed">hati sembuh</annotation>
<annotation cp="❤🩹" type="tts" draft="contributed">hati sembuh</annotation>
+ <annotation cp="❤">hati | hati merah</annotation>
+ <annotation cp="❤" type="tts">hati merah</annotation>
<annotation cp="🧡">hati jingga | jingga</annotation>
<annotation cp="🧡" type="tts">hati jingga</annotation>
<annotation cp="💛">hati | hati kuning</annotation>
@@ -794,14 +794,14 @@
<annotation cp="👨" type="tts">lelaki</annotation>
<annotation cp="🧔">janggut | orang | orang: janggut</annotation>
<annotation cp="🧔" type="tts">orang: janggut</annotation>
- <annotation cp="👱♂">lelaki | lelaki berambut perang muda | lelaki: berambut perang muda | lelaki: rambut perang | perang muda | rambut</annotation>
- <annotation cp="👱♂" type="tts">lelaki: rambut perang</annotation>
- <annotation cp="🧔♀">janggut | wanita | wanita: janggut</annotation>
- <annotation cp="🧔♀" type="tts">wanita: janggut</annotation>
<annotation cp="🧔♂">janggut | lelaki | lelaki: janggut</annotation>
<annotation cp="🧔♂" type="tts">lelaki: janggut</annotation>
+ <annotation cp="👱♂">lelaki | lelaki berambut perang muda | lelaki: berambut perang muda | lelaki: rambut perang | perang muda | rambut</annotation>
+ <annotation cp="👱♂" type="tts">lelaki: rambut perang</annotation>
<annotation cp="👩">perempuan | wanita</annotation>
<annotation cp="👩" type="tts">perempuan</annotation>
+ <annotation cp="🧔♀">janggut | wanita | wanita: janggut</annotation>
+ <annotation cp="🧔♀" type="tts">wanita: janggut</annotation>
<annotation cp="👱♀">perang | perempuan: rambut perang | wanita | wanita rambut perang</annotation>
<annotation cp="👱♀" type="tts">perempuan: rambut perang</annotation>
<annotation cp="🧓">dewasa lebih tua | gender-neutral | tua</annotation>
diff --git a/common/annotations/my.xml b/common/annotations/my.xml
index cc1e84e..da0251c 100644
--- a/common/annotations/my.xml
+++ b/common/annotations/my.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -335,6 +335,8 @@
<annotation cp="🙄" type="tts">စိတ်မရှည်သည့်ဟန်ပြ မျက်လုံးများ</annotation>
<annotation cp="😬">မျက်နှာ | မျက်နှာရှုံ့ခြင်း | ရှုံ့မဲ့နေသော မျက်နှာ</annotation>
<annotation cp="😬" type="tts">ရှုံ့မဲ့နေသော မျက်နှာ</annotation>
+ <annotation cp="😮💨">ညည်းခြင်း | တီးတိုးပြောခြင်း | ပင့်သက်ရှိုက်ခြင်း | ရှူထုတ်ခြင်း | လေချွန်ခြင်း | သက်ပြင်းချ မျက်နှာ | ဟင်းချခြင်း</annotation>
+ <annotation cp="😮💨" type="tts">သက်ပြင်းချ မျက်နှာ</annotation>
<annotation cp="🤥">ရုပ် | လိမ်လည် | လူလိမ်ရုပ်</annotation>
<annotation cp="🤥" type="tts">လူလိမ်ရုပ်</annotation>
<annotation cp="😌">စိတ်သက်သာရာရ | စိတ်သက်သာရာရသည့် မျက်နှာ | မျက်နှာ</annotation>
@@ -393,8 +395,6 @@
<annotation cp="☹" type="tts">မျက်မှောင်ကြုတ်ထားသည့် မျက်နှာ</annotation>
<annotation cp="😮">ပါးစပ် | ပါးစပ်အဟောင်းသားနှင့် မျက်နှာ | မျက်နှာ | သနား</annotation>
<annotation cp="😮" type="tts">ပါးစပ်အဟောင်းသားနှင့် မျက်နှာ</annotation>
- <annotation cp="😮💨">ညည်းခြင်း | တီးတိုးပြောခြင်း | ပင့်သက်ရှိုက်ခြင်း | ရှူထုတ်ခြင်း | လေချွန်ခြင်း | သက်ပြင်းချ မျက်နှာ | ဟင်းချခြင်း</annotation>
- <annotation cp="😮💨" type="tts">သက်ပြင်းချ မျက်နှာ</annotation>
<annotation cp="😯">မျက်နှာ | မှင်သက် | အံ့ဩခြင်း | အံ့ဩသည့် မျက်နှာ | အံ့ဩသည့်မျက်နှာ</annotation>
<annotation cp="😯" type="tts">အံ့ဩသည့်မျက်နှာ</annotation>
<annotation cp="😲">ကြက်သေသေ | မျက်နှာ | လုံးဝ | အံ့အားသင့်ခြင်း | အံ့အားသင့်နေသော မျက်နှာ</annotation>
@@ -513,12 +513,12 @@
<annotation cp="❣" type="tts">လေးလံသည့် နှလုံးပုံစံ အာမေဍိတ်အတွဲ</annotation>
<annotation cp="💔">ကွဲနေသည့် နှလုံး | ကွဲနေသော | အက်ကွဲ | အက်ကွဲနေသည့် နှလုံး</annotation>
<annotation cp="💔" type="tts">အက်ကွဲနေသည့် နှလုံး</annotation>
- <annotation cp="❤">နှလုံး | အနီရောင် နှလုံး</annotation>
- <annotation cp="❤" type="tts">အနီရောင် နှလုံး</annotation>
<annotation cp="❤🔥">နှလုံးမီးတောက်ခြင်း | နှလုံးသား | ရမက် | လောင်ကျွမ်းခြင်း | အချစ် | အထွတ်အမြတ် နှလုံးသား</annotation>
<annotation cp="❤🔥" type="tts">နှလုံးမီးတောက်ခြင်း</annotation>
<annotation cp="❤🩹">ကျန်းမာခြင်း | ကုစားခြင်း | ကောင်းမွန်ခြင်း | ကောင်းမွန်လာခြင်း | နှလုံးသား ကုစားခြင်း | နာလန်ထူလာခြင်း | အားပြန်ဖြည့်ခြင်း</annotation>
<annotation cp="❤🩹" type="tts">နှလုံးသား ကုစားခြင်း</annotation>
+ <annotation cp="❤">နှလုံး | အနီရောင် နှလုံး</annotation>
+ <annotation cp="❤" type="tts">အနီရောင် နှလုံး</annotation>
<annotation cp="🧡">လိမ္မော်ရောင် | လိမ္မော်ရောင် အသည်းနှလုံး</annotation>
<annotation cp="🧡" type="tts">လိမ္မော်ရောင် အသည်းနှလုံး</annotation>
<annotation cp="💛">အဝါ | အဝါရောင် နှလုံး</annotation>
@@ -681,14 +681,14 @@
<annotation cp="👨" type="tts">အမျိုးသား</annotation>
<annotation cp="🧔">မုတ်ဆိတ် | လူ | အမျိုးသား | အမျိုးသား- မုတ်ဆိတ်ရှိသူ</annotation>
<annotation cp="🧔" type="tts">အမျိုးသား- မုတ်ဆိတ်ရှိသူ</annotation>
- <annotation cp="👱♂">ဆံကေသာ | ရွှေရောင် | ရွှေရောင်ဆံကေသာရှိသူ အမျိုးသား | အမျိုးသား | အမျိုးသား- ရွှေရောင်ဆံကေသာရှိသူ</annotation>
- <annotation cp="👱♂" type="tts">အမျိုးသား- ရွှေရောင်ဆံကေသာရှိသူ</annotation>
- <annotation cp="🧔♀">မုတ်ဆိတ် | အမျိုးသမီး | အမျိုးသမီး - မုတ်ဆိတ် | အမျိုးသမီး- မုတ်ဆိတ်</annotation>
- <annotation cp="🧔♀" type="tts">အမျိုးသမီး - မုတ်ဆိတ်</annotation>
<annotation cp="🧔♂">မုတ်ဆိတ် | အမျိုးသား | အမျိုးသား - မုတ်ဆိတ်</annotation>
<annotation cp="🧔♂" type="tts">အမျိုးသား - မုတ်ဆိတ်</annotation>
+ <annotation cp="👱♂">ဆံကေသာ | ရွှေရောင် | ရွှေရောင်ဆံကေသာရှိသူ အမျိုးသား | အမျိုးသား | အမျိုးသား- ရွှေရောင်ဆံကေသာရှိသူ</annotation>
+ <annotation cp="👱♂" type="tts">အမျိုးသား- ရွှေရောင်ဆံကေသာရှိသူ</annotation>
<annotation cp="👩">အမ | အမျိုးသမီး</annotation>
<annotation cp="👩" type="tts">အမျိုးသမီး</annotation>
+ <annotation cp="🧔♀">မုတ်ဆိတ် | အမျိုးသမီး | အမျိုးသမီး - မုတ်ဆိတ် | အမျိုးသမီး- မုတ်ဆိတ်</annotation>
+ <annotation cp="🧔♀" type="tts">အမျိုးသမီး - မုတ်ဆိတ်</annotation>
<annotation cp="👱♀">ရွှေရောင် | ရွှေရောင်ဆံကေသာရှိသူ အမျိုးသမီး | အမျိုးသမီး | အမျိုးသမီး- ရွှေရောင်ဆံကေသာရှိသူ</annotation>
<annotation cp="👱♀" type="tts">အမျိုးသမီး- ရွှေရောင်ဆံကေသာရှိသူ</annotation>
<annotation cp="🧓">လိင်မခွဲခြားသော | လိင်သတ်မှတ်မထားသော | သက်ကြီး | အရွယ်ရောက်သူ | အသက်ကြီးသူ</annotation>
@@ -1381,7 +1381,7 @@
<annotation cp="🐡" type="tts">ငါးပူဖောင်း</annotation>
<annotation cp="🦈">ငါး | ငါးမန်း</annotation>
<annotation cp="🦈" type="tts">ငါးမန်း</annotation>
- <annotation cp="🐙">ဘဝှဲ ရဘဝှေဲ ဘဝှဲ ဘဝွဲ ဘဝြဲ ဘဝဲ | ဘဝဲ</annotation>
+ <annotation cp="🐙">ဘဝှဲ ရဘဝှေဲ ဘဝှဲ ဘဝှဲ ဘဝွဲ ဘဝျဲ ဘဝဲ | ဘဝဲ</annotation>
<annotation cp="🐙" type="tts">ဘဝဲ</annotation>
<annotation cp="🐚">ကြောင်လိမ် | ခရုခွံ</annotation>
<annotation cp="🐚" type="tts">ခရုခွံ</annotation>
@@ -1933,7 +1933,7 @@
<annotation cp="🚏" type="tts">ဘတ်စ်ကား မှတ်တိုင်</annotation>
<annotation cp="🛣">ကားလမ်း | ဟိုင်းဝေး | အမြန်လမ်း</annotation>
<annotation cp="🛣" type="tts">ကားလမ်း</annotation>
- <annotation cp="🛤">သံလမှး သံလမှး၊ ရထှား သံလမှး သံလမှး သံလမွှး သံလမြွး သံလမြး | သံလမ်း</annotation>
+ <annotation cp="🛤">သံလမှး သံလမှး၊ ရထှား သံလမှး သံလမှး သံလမှး သံလမွှး သံလမွျး သံလမျး | သံလမ်း</annotation>
<annotation cp="🛤" type="tts">သံလမ်း</annotation>
<annotation cp="🛢">စည်ပိုင်း | ဆီ</annotation>
<annotation cp="🛢" type="tts">ဆီ စည်ပိုင်း</annotation>
diff --git a/common/annotations/nb.xml b/common/annotations/nb.xml
index 461047d..22e308d 100644
--- a/common/annotations/nb.xml
+++ b/common/annotations/nb.xml
@@ -4,3446 +4,10 @@
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
-
-Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ for derived annotations.
-->
<ldml>
<identity>
<version number="$Revision$"/>
<language type="nb"/>
</identity>
- <annotations>
- <annotation cp="{">klammeparentes | krøllparentes | parentes | startparentes | venstre krøllparentes</annotation>
- <annotation cp="{" type="tts">venstre krøllparentes</annotation>
- <annotation cp="🏻">emojimodifikator | fitzpatrick | hud | hudfarge | hudtype 1–2 | type 1–2</annotation>
- <annotation cp="🏻" type="tts">hudtype 1–2</annotation>
- <annotation cp="🏼">emojimodifikator | fitzpatrick | hud | hudfarge | hudtype 3 | type 3</annotation>
- <annotation cp="🏼" type="tts">hudtype 3</annotation>
- <annotation cp="🏽">emojimodifikator | fitzpatrick | hud | hudfarge | hudtype 4 | type 4</annotation>
- <annotation cp="🏽" type="tts">hudtype 4</annotation>
- <annotation cp="🏾">emojimodifikator | fitzpatrick | hud | hudfarge | hudtype 5 | type 5</annotation>
- <annotation cp="🏾" type="tts">hudtype 5</annotation>
- <annotation cp="🏿">emojimodifikator | fitzpatrick | hud | hudfarge | hudtype 6 | type 6</annotation>
- <annotation cp="🏿" type="tts">hudtype 6</annotation>
- <annotation cp="‾" draft="contributed">overstrek</annotation>
- <annotation cp="‾" type="tts" draft="contributed">overstrek</annotation>
- <annotation cp="_">understrek</annotation>
- <annotation cp="_" type="tts">understrek</annotation>
- <annotation cp="-">bindestrek-minus-tegn</annotation>
- <annotation cp="-" type="tts">bindestrek-minus-tegn</annotation>
- <annotation cp="‐">bindestrek</annotation>
- <annotation cp="‐" type="tts">bindestrek</annotation>
- <annotation cp="–">bindestreker | en-dash | halvgefirt | tankestrek</annotation>
- <annotation cp="–" type="tts">tankestrek</annotation>
- <annotation cp="—">bindestreker | em-dash | gefirt | lang tankestrek</annotation>
- <annotation cp="—" type="tts">lang tankestrek</annotation>
- <annotation cp="―">strek | vannrett strek</annotation>
- <annotation cp="―" type="tts">vannrett strek</annotation>
- <annotation cp="・">bindestrek | interpunkt | katakana | midtstilt prikk i katakana | prikk | punkt</annotation>
- <annotation cp="・" type="tts">midtstilt prikk i katakana</annotation>
- <annotation cp=",">komma</annotation>
- <annotation cp="," type="tts">komma</annotation>
- <annotation cp="،">arabisk komma | komma</annotation>
- <annotation cp="،" type="tts">arabisk komma</annotation>
- <annotation cp="、">ideografisk komma | komma</annotation>
- <annotation cp="、" type="tts">ideografisk komma</annotation>
- <annotation cp=";">semikolon</annotation>
- <annotation cp=";" type="tts">semikolon</annotation>
- <annotation cp="؛">arabisk semikolon | semikolon</annotation>
- <annotation cp="؛" type="tts">arabisk semikolon</annotation>
- <annotation cp=":">kolon</annotation>
- <annotation cp=":" type="tts">kolon</annotation>
- <annotation cp="!">utropstegn</annotation>
- <annotation cp="!" type="tts">utropstegn</annotation>
- <annotation cp="¡">opp-ned utropstegn | utropstegn</annotation>
- <annotation cp="¡" type="tts">opp-ned utropstegn</annotation>
- <annotation cp="?">spørsmål | spørsmålstegn</annotation>
- <annotation cp="?" type="tts">spørsmålstegn</annotation>
- <annotation cp="¿">opp-ned spørsmålstegn | spørsmål | spørsmålstegn</annotation>
- <annotation cp="¿" type="tts">opp-ned spørsmålstegn</annotation>
- <annotation cp="؟">arabisk spørsmålstegn | spørsmål | spørsmålstegn</annotation>
- <annotation cp="؟" type="tts">arabisk spørsmålstegn</annotation>
- <annotation cp="‽" draft="contributed">interrobang</annotation>
- <annotation cp="‽" type="tts" draft="contributed">interrobang</annotation>
- <annotation cp=".">punktum</annotation>
- <annotation cp="." type="tts">punktum</annotation>
- <annotation cp="…">ellipse | tre prikker | utelatelse</annotation>
- <annotation cp="…" type="tts">ellipse</annotation>
- <annotation cp="。">ideografisk punktum | punktum</annotation>
- <annotation cp="。" type="tts">ideografisk punktum</annotation>
- <annotation cp="·">interpunkt | midtstilt punkt | punkt mellom ord | sentrert punkt</annotation>
- <annotation cp="·" type="tts">midtstilt punkt</annotation>
- <annotation cp="'">apostrof | enkelt rett anførselstegn | rett apostrof | sitattegn</annotation>
- <annotation cp="'" type="tts">rett apostrof</annotation>
- <annotation cp="‘">enkelt krøllet venstre anførselstegn | sitattegn | smart anførselstegn | start sitat</annotation>
- <annotation cp="‘" type="tts">enkelt krøllet venstre anførselstegn</annotation>
- <annotation cp="’">apostrof | enkelt krøllet høyre anførselstegn | sitat slutt | sitattegn | smart anførselstegn | typografisk apostrof</annotation>
- <annotation cp="’" type="tts">enkelt krøllet høyre anførselstegn</annotation>
- <annotation cp="‚">enkelt krøllet lavt venstre anførselstegn | sitattegn | smart anførselstegn | start sitat</annotation>
- <annotation cp="‚" type="tts">enkelt krøllet lavt venstre anførselstegn</annotation>
- <annotation cp="“">dobbelt krøllet venstre anførselstegn | sitattegn | smart anførselstegn | start sitat</annotation>
- <annotation cp="“" type="tts">dobbelt krøllet venstre anførselstegn</annotation>
- <annotation cp="”">dobbelt krøllet høyre anførselstegn | sitat slutt | sitattegn | smart anførselstegn</annotation>
- <annotation cp="”" type="tts">dobbelt krøllet høyre anførselstegn</annotation>
- <annotation cp="„">dobbelt krøllet lavt venstre anførselstegn | sitattegn | smart anførselstegn | start sitat</annotation>
- <annotation cp="„" type="tts">dobbelt krøllet lavt venstre anførselstegn</annotation>
- <annotation cp="«">anførselstegn | hermetegn | sitat start | sitattegn | sjevron | venstre anførselstegn</annotation>
- <annotation cp="«" type="tts">venstre anførselstegn</annotation>
- <annotation cp="»">anførselstegn | hermetegn | høyre anførselstegn | sitat slutt | sitattegn | sjevron</annotation>
- <annotation cp="»" type="tts">høyre anførselstegn</annotation>
- <annotation cp=")">bueparentes | høyre parentes | parentes | sluttparentes</annotation>
- <annotation cp=")" type="tts">høyre parentes</annotation>
- <annotation cp="[">firkantparentes | klammeparentes | parentes | startparentes | venstre hakeparentes</annotation>
- <annotation cp="[" type="tts">venstre hakeparentes</annotation>
- <annotation cp="]">firkantparentes | høyre hakeparentes | klammeparentes | parentes | sluttparentes</annotation>
- <annotation cp="]" type="tts">høyre hakeparentes</annotation>
- <annotation cp="}">høyre krøllparentes | klammeparentes | krøllparentes | parentes | sluttparentes</annotation>
- <annotation cp="}" type="tts">høyre krøllparentes</annotation>
- <annotation cp="〈">parentes | spissparentes | startparentes | venstre vinkelparentes | vinkelparentes</annotation>
- <annotation cp="〈" type="tts">venstre vinkelparentes</annotation>
- <annotation cp="〉">høyre vinkelparentes | parentes | sluttparentes | spissparentes | vinkelparentes</annotation>
- <annotation cp="〉" type="tts">høyre vinkelparentes</annotation>
- <annotation cp="《">dobbelparentes | parentes | spissparentes | startparentes | venstre dobbel vinkelparentes | vinkelparentes</annotation>
- <annotation cp="《" type="tts">venstre dobbel vinkelparentes</annotation>
- <annotation cp="》">dobbelparentes | høyre dobbel vinkelparentes | parentes | sluttparentes | spissparentes | vinkelparentes</annotation>
- <annotation cp="》" type="tts">høyre dobbel vinkelparentes</annotation>
- <annotation cp="「">hjørneparentes | parentes | startparentes | venstre hjørneparentes</annotation>
- <annotation cp="「" type="tts">venstre hjørneparentes</annotation>
- <annotation cp="」">hjørneparentes | høyre hjørneparentes | parentes | sluttparentes</annotation>
- <annotation cp="」" type="tts">høyre hjørneparentes</annotation>
- <annotation cp="『">hjørneparentes | hul parentes | parentes | startparentes | venstre hul hjørneparentes</annotation>
- <annotation cp="『" type="tts">venstre hul hjørneparentes</annotation>
- <annotation cp="』">hjørneparentes | høyre hul hjørneparentes | hul parentes | parentes | sluttparentes</annotation>
- <annotation cp="』" type="tts">høyre hul hjørneparentes</annotation>
- <annotation cp="【">fylt parentes | linseparentes | parentes | startparentes | svart parentes | venstre fylt linseparentes</annotation>
- <annotation cp="【" type="tts">venstre fylt linseparentes</annotation>
- <annotation cp="】">fylt parentes | høyre fylt linseparentes | linseparentes | parentes | sluttparentes | svart parentes</annotation>
- <annotation cp="】" type="tts">høyre fylt linseparentes</annotation>
- <annotation cp="〔">parentes | skillpaddeskall | skillpaddeskallparentes | startparentes | venstre skilpaddeparentes</annotation>
- <annotation cp="〔" type="tts">venstre skilpaddeparentes</annotation>
- <annotation cp="〕">høyre skilpaddeparentes | parentes | skillpaddeskall | skillpaddeskallparentes | sluttparentes</annotation>
- <annotation cp="〕" type="tts">høyre skilpaddeparentes</annotation>
- <annotation cp="〖">hul parentes | linseparentes | parentes | startparentes | venstre hul linseparentes</annotation>
- <annotation cp="〖" type="tts">venstre hul linseparentes</annotation>
- <annotation cp="〗">høyre hul linseparentes | hul parentes | linseparentes | parentes | sluttparentes</annotation>
- <annotation cp="〗" type="tts">høyre hul linseparentes</annotation>
- <annotation cp="§">avsnittstegn | del | paragraf | paragraftegn | signum sectionis</annotation>
- <annotation cp="§" type="tts">paragraftegn</annotation>
- <annotation cp="¶">avsnittstegn</annotation>
- <annotation cp="¶" type="tts">avsnittstegn</annotation>
- <annotation cp="@">alfakrøll | at-tegn | krøllalfa</annotation>
- <annotation cp="@" type="tts">krøllalfa</annotation>
- <annotation cp="*">asterisk | jokertegn | stjerne</annotation>
- <annotation cp="*" type="tts">asterisk</annotation>
- <annotation cp="/">skråstrek | slash</annotation>
- <annotation cp="/" type="tts">skråstrek</annotation>
- <annotation cp="\">backslash | bakstrek | omvendt skråstrek</annotation>
- <annotation cp="\" type="tts">omvendt skråstrek</annotation>
- <annotation cp="&">ampersand | et | et-tegn | og | og-tegn</annotation>
- <annotation cp="&" type="tts">og-tegn</annotation>
- <annotation cp="#">emneknagg | firkant | hashtagg | nummertegn | skigard</annotation>
- <annotation cp="#" type="tts">nummertegn</annotation>
- <annotation cp="%">prosent | prosenttegn</annotation>
- <annotation cp="%" type="tts">prosent</annotation>
- <annotation cp="‰">promille | promilletegn</annotation>
- <annotation cp="‰" type="tts">promille</annotation>
- <annotation cp="†">kors | korstegn | latinsk kors</annotation>
- <annotation cp="†" type="tts">korstegn</annotation>
- <annotation cp="‡">dobbelt kors | dobbeltkorstegn</annotation>
- <annotation cp="‡" type="tts">dobbeltkorstegn</annotation>
- <annotation cp="•">prikk | punkt | punktliste | punkttegn</annotation>
- <annotation cp="•" type="tts">punkttegn</annotation>
- <annotation cp="‧">bindestrek | interpunkt | prikk | punkt | stavelsesmerke</annotation>
- <annotation cp="‧" type="tts">stavelsesmerke</annotation>
- <annotation cp="′">primtegn</annotation>
- <annotation cp="′" type="tts">primtegn</annotation>
- <annotation cp="″">dobbelt primtegn</annotation>
- <annotation cp="″" type="tts">dobbelt primtegn</annotation>
- <annotation cp="‴">trippelt primtegn</annotation>
- <annotation cp="‴" type="tts">trippelt primtegn</annotation>
- <annotation cp="‸" draft="contributed">innsettingstegn</annotation>
- <annotation cp="‸" type="tts" draft="contributed">innsettingstegn</annotation>
- <annotation cp="※">referansemerke</annotation>
- <annotation cp="※" type="tts">referansemerke</annotation>
- <annotation cp="⁂" draft="contributed">asterisme</annotation>
- <annotation cp="⁂" type="tts" draft="contributed">asterisme</annotation>
- <annotation cp="`">aksent | gravis | tonem | trykk | venstreaksent</annotation>
- <annotation cp="`" type="tts">gravis</annotation>
- <annotation cp="´">aksent | akutt | høyreaksent | tonem | trykk</annotation>
- <annotation cp="´" type="tts">akutt aksent</annotation>
- <annotation cp="^">aksent | circumfleks | tonem</annotation>
- <annotation cp="^" type="tts">circumfleks</annotation>
- <annotation cp="¨">omlyd | tødler | trema</annotation>
- <annotation cp="¨" type="tts">trema</annotation>
- <annotation cp="°">alkoholinnhold | grader | gradetegn | timer</annotation>
- <annotation cp="°" type="tts">gradetegn</annotation>
- <annotation cp="℗">copyright | lydopptak | opphavsrett for lydopptak</annotation>
- <annotation cp="℗" type="tts">opphavsrett for lydopptak</annotation>
- <annotation cp="←">pil mot venstre | pil venstre | retning | venstre | venstrepil | vest</annotation>
- <annotation cp="←" type="tts">pil mot venstre</annotation>
- <annotation cp="↚" draft="contributed">pil venstre med strek</annotation>
- <annotation cp="↚" type="tts" draft="contributed">pil venstre med strek</annotation>
- <annotation cp="→">høyre | høyrepil | øst | pil høyre | pil mot høyre | retning</annotation>
- <annotation cp="→" type="tts">pil mot høyre</annotation>
- <annotation cp="↛" draft="contributed">pil høyre med strek</annotation>
- <annotation cp="↛" type="tts" draft="contributed">pil høyre med strek</annotation>
- <annotation cp="↑">nord | opp | oppover | oppoverpil | pil opp | pil oppover | retning</annotation>
- <annotation cp="↑" type="tts">pil oppover</annotation>
- <annotation cp="↓">ned | nedover | nedoverpil | pil ned | pil nedover | retning | sør</annotation>
- <annotation cp="↓" type="tts">pil nedover</annotation>
- <annotation cp="↜" draft="contributed">bølgepil mot venstre med strek</annotation>
- <annotation cp="↜" type="tts" draft="contributed">bølgepil mot venstre med strek</annotation>
- <annotation cp="↝" draft="contributed">bølgepil mot høyre med strek</annotation>
- <annotation cp="↝" type="tts" draft="contributed">bølgepil mot høyre med strek</annotation>
- <annotation cp="↞" draft="contributed">pil venstre med to mothaker</annotation>
- <annotation cp="↞" type="tts" draft="contributed">pil venstre med to mothaker</annotation>
- <annotation cp="↟" draft="contributed">pil opp med to mothaker</annotation>
- <annotation cp="↟" type="tts" draft="contributed">pil opp med to mothaker</annotation>
- <annotation cp="↠" draft="contributed">pil høyre med to mothaker</annotation>
- <annotation cp="↠" type="tts" draft="contributed">pil høyre med to mothaker</annotation>
- <annotation cp="↡" draft="contributed">pil ned med to mothaker</annotation>
- <annotation cp="↡" type="tts" draft="contributed">pil ned med to mothaker</annotation>
- <annotation cp="↢" draft="contributed">pil venstre med styrefjær</annotation>
- <annotation cp="↢" type="tts" draft="contributed">pil venstre med styrefjær</annotation>
- <annotation cp="↣" draft="contributed">pil høyre med styrefjær</annotation>
- <annotation cp="↣" type="tts" draft="contributed">pil høyre med styrefjær</annotation>
- <annotation cp="↤" draft="contributed">pil venstre fra loddrett strek</annotation>
- <annotation cp="↤" type="tts" draft="contributed">pil venstre fra loddrett strek</annotation>
- <annotation cp="↥" draft="contributed">pil opp fra vannrett strek</annotation>
- <annotation cp="↥" type="tts" draft="contributed">pil opp fra vannrett strek</annotation>
- <annotation cp="↦" draft="contributed">pil høyre fra loddrett strek</annotation>
- <annotation cp="↦" type="tts" draft="contributed">pil høyre fra loddrett strek</annotation>
- <annotation cp="↧" draft="contributed">pil ned fra vannrett strek</annotation>
- <annotation cp="↧" type="tts" draft="contributed">pil ned fra vannrett strek</annotation>
- <annotation cp="↨" draft="contributed">pil opp og ned med underlag</annotation>
- <annotation cp="↨" type="tts" draft="contributed">pil opp og ned med underlag</annotation>
- <annotation cp="↫" draft="contributed">pil venstre med løkke</annotation>
- <annotation cp="↫" type="tts" draft="contributed">pil venstre med løkke</annotation>
- <annotation cp="↬" draft="contributed">pil høyre med løkke</annotation>
- <annotation cp="↬" type="tts" draft="contributed">pil høyre med løkke</annotation>
- <annotation cp="↭" draft="contributed">bølgepil mot høyre og venstre</annotation>
- <annotation cp="↭" type="tts" draft="contributed">bølgepil mot høyre og venstre</annotation>
- <annotation cp="↯" draft="contributed">sikksakkpil nedover</annotation>
- <annotation cp="↯" type="tts" draft="contributed">sikksakkpil nedover</annotation>
- <annotation cp="↰" draft="contributed">pil opp med spiss mot venstre</annotation>
- <annotation cp="↰" type="tts" draft="contributed">pil opp med spiss mot venstre</annotation>
- <annotation cp="↱" draft="contributed">pil opp med spiss mot høyre</annotation>
- <annotation cp="↱" type="tts" draft="contributed">pil opp med spiss mot høyre</annotation>
- <annotation cp="↲" draft="contributed">pil ned med spiss mot venstre</annotation>
- <annotation cp="↲" type="tts" draft="contributed">pil ned med spiss mot venstre</annotation>
- <annotation cp="↳" draft="contributed">pil ned med spiss mot høyre</annotation>
- <annotation cp="↳" type="tts" draft="contributed">pil ned med spiss mot høyre</annotation>
- <annotation cp="↴" draft="contributed">pil høyre som snur ned</annotation>
- <annotation cp="↴" type="tts" draft="contributed">pil høyre som snur ned</annotation>
- <annotation cp="↵" draft="contributed">pil ned som snur mot venstre</annotation>
- <annotation cp="↵" type="tts" draft="contributed">pil ned som snur mot venstre</annotation>
- <annotation cp="↶" draft="contributed">halvsirkelpil mot klokken</annotation>
- <annotation cp="↶" type="tts" draft="contributed">halvsirkelpil mot klokken</annotation>
- <annotation cp="↷" draft="contributed">halvsirkelpil med klokken</annotation>
- <annotation cp="↷" type="tts" draft="contributed">halvsirkelpil med klokken</annotation>
- <annotation cp="↸" draft="contributed">pil mot nordvest med strek over</annotation>
- <annotation cp="↸" type="tts" draft="contributed">pil mot nordvest med strek over</annotation>
- <annotation cp="↹" draft="contributed">pil venstre mot loddrett strek over pil høyre mot loddrett strek</annotation>
- <annotation cp="↹" type="tts" draft="contributed">pil venstre mot loddrett strek over pil høyre mot loddrett strek</annotation>
- <annotation cp="↺" draft="contributed">pil åpen sirkel mot klokken</annotation>
- <annotation cp="↺" type="tts" draft="contributed">pil åpen sirkel mot klokken</annotation>
- <annotation cp="↻" draft="contributed">pil åpen sirkel med klokken</annotation>
- <annotation cp="↻" type="tts" draft="contributed">pil åpen sirkel med klokken</annotation>
- <annotation cp="↼" draft="contributed">harpunpil venstre med mothake opp</annotation>
- <annotation cp="↼" type="tts" draft="contributed">harpunpil venstre med mothake opp</annotation>
- <annotation cp="↽" draft="contributed">harpunpil venstre med mothake ned</annotation>
- <annotation cp="↽" type="tts" draft="contributed">harpunpil venstre med mothake ned</annotation>
- <annotation cp="↾" draft="contributed">harpunpil opp med mothake mot høyre</annotation>
- <annotation cp="↾" type="tts" draft="contributed">harpunpil opp med mothake mot høyre</annotation>
- <annotation cp="↿" draft="contributed">harpunpil opp med mothake mot venstre</annotation>
- <annotation cp="↿" type="tts" draft="contributed">harpunpil opp med mothake mot venstre</annotation>
- <annotation cp="⇀" draft="contributed">harpunpil høyre med mothake opp</annotation>
- <annotation cp="⇀" type="tts" draft="contributed">harpunpil høyre med mothake opp</annotation>
- <annotation cp="⇁" draft="contributed">harpunpil høyre med mothake ned</annotation>
- <annotation cp="⇁" type="tts" draft="contributed">harpunpil høyre med mothake ned</annotation>
- <annotation cp="⇂" draft="contributed">harpunpil ned med mothake mot høyre</annotation>
- <annotation cp="⇂" type="tts" draft="contributed">harpunpil ned med mothake mot høyre</annotation>
- <annotation cp="⇃" draft="contributed">harpunpil ned med mothake mot venstre</annotation>
- <annotation cp="⇃" type="tts" draft="contributed">harpunpil ned med mothake mot venstre</annotation>
- <annotation cp="⇄" draft="contributed">pil høyre over pil venstre</annotation>
- <annotation cp="⇄" type="tts" draft="contributed">pil høyre over pil venstre</annotation>
- <annotation cp="⇅">hver vei | nord-sør | opp og ned | opp-ned | pil oppover foran pil nedover | piler</annotation>
- <annotation cp="⇅" type="tts">pil oppover foran pil nedover</annotation>
- <annotation cp="⇆">frem og tilbake | hver vei | øst-vest | pil mot venstre over pil mot høyre | piler | venstre-høyre</annotation>
- <annotation cp="⇆" type="tts">pil mot venstre over pil mot høyre</annotation>
- <annotation cp="⇇" draft="contributed">parallelle piler mot venstre</annotation>
- <annotation cp="⇇" type="tts" draft="contributed">parallelle piler mot venstre</annotation>
- <annotation cp="⇈" draft="contributed">parallelle piler opp</annotation>
- <annotation cp="⇈" type="tts" draft="contributed">parallelle piler opp</annotation>
- <annotation cp="⇉" draft="contributed">parallelle piler mot høyre</annotation>
- <annotation cp="⇉" type="tts" draft="contributed">parallelle piler mot høyre</annotation>
- <annotation cp="⇊" draft="contributed">parallelle piler ned</annotation>
- <annotation cp="⇊" type="tts" draft="contributed">parallelle piler ned</annotation>
- <annotation cp="⇋" draft="contributed">harpunpil mot venstre over harpunpil mot høyre</annotation>
- <annotation cp="⇋" type="tts" draft="contributed">harpunpil mot venstre over harpunpil mot høyre</annotation>
- <annotation cp="⇌" draft="contributed">harpunpil mot høyre over harpunpil mot venstre</annotation>
- <annotation cp="⇌" type="tts" draft="contributed">harpunpil mot høyre over harpunpil mot venstre</annotation>
- <annotation cp="⇐" draft="contributed">dobbeltpil venstre</annotation>
- <annotation cp="⇐" type="tts" draft="contributed">dobbeltpil venstre</annotation>
- <annotation cp="⇍" draft="contributed">dobbeltpil venstre med strek</annotation>
- <annotation cp="⇍" type="tts" draft="contributed">dobbeltpil venstre med strek</annotation>
- <annotation cp="⇑" draft="contributed">dobbeltpil opp</annotation>
- <annotation cp="⇑" type="tts" draft="contributed">dobbeltpil opp</annotation>
- <annotation cp="⇒" draft="contributed">dobbeltpil høyre</annotation>
- <annotation cp="⇒" type="tts" draft="contributed">dobbeltpil høyre</annotation>
- <annotation cp="⇏" draft="contributed">dobbeltpil høyre med strek</annotation>
- <annotation cp="⇏" type="tts" draft="contributed">dobbeltpil høyre med strek</annotation>
- <annotation cp="⇓" draft="contributed">dobbeltpil ned</annotation>
- <annotation cp="⇓" type="tts" draft="contributed">dobbeltpil ned</annotation>
- <annotation cp="⇔" draft="contributed">dobbeltpil begge veier</annotation>
- <annotation cp="⇔" type="tts" draft="contributed">dobbeltpil begge veier</annotation>
- <annotation cp="⇎" draft="contributed">dobbeltpil med strek begge veier</annotation>
- <annotation cp="⇎" type="tts" draft="contributed">dobbeltpil med strek begge veier</annotation>
- <annotation cp="⇖" draft="contributed">dobbeltpil nordvest</annotation>
- <annotation cp="⇖" type="tts" draft="contributed">dobbeltpil nordvest</annotation>
- <annotation cp="⇗" draft="contributed">dobbeltpil nordøst</annotation>
- <annotation cp="⇗" type="tts" draft="contributed">dobbeltpil nordøst</annotation>
- <annotation cp="⇘" draft="contributed">dobbeltpil sørøst</annotation>
- <annotation cp="⇘" type="tts" draft="contributed">dobbeltpil sørøst</annotation>
- <annotation cp="⇙" draft="contributed">dobbeltpil sørvest</annotation>
- <annotation cp="⇙" type="tts" draft="contributed">dobbeltpil sørvest</annotation>
- <annotation cp="⇚" draft="contributed">trippelpil venstre</annotation>
- <annotation cp="⇚" type="tts" draft="contributed">trippelpil venstre</annotation>
- <annotation cp="⇛" draft="contributed">trippelpil høyre</annotation>
- <annotation cp="⇛" type="tts" draft="contributed">trippelpil høyre</annotation>
- <annotation cp="⇜" draft="contributed">snirkelpil venstre</annotation>
- <annotation cp="⇜" type="tts" draft="contributed">snirkelpil venstre</annotation>
- <annotation cp="⇝" draft="contributed">snirkelpil høyre</annotation>
- <annotation cp="⇝" type="tts" draft="contributed">snirkelpil høyre</annotation>
- <annotation cp="⇞" draft="contributed">pil opp med to streker</annotation>
- <annotation cp="⇞" type="tts" draft="contributed">pil opp med to streker</annotation>
- <annotation cp="⇟" draft="contributed">pil ned med to streker</annotation>
- <annotation cp="⇟" type="tts" draft="contributed">pil ned med to streker</annotation>
- <annotation cp="⇠" draft="contributed">stiplet pil venstre</annotation>
- <annotation cp="⇠" type="tts" draft="contributed">stiplet pil venstre</annotation>
- <annotation cp="⇡" draft="contributed">stiplet pil opp</annotation>
- <annotation cp="⇡" type="tts" draft="contributed">stiplet pil opp</annotation>
- <annotation cp="⇢" draft="contributed">stiplet pil høyre</annotation>
- <annotation cp="⇢" type="tts" draft="contributed">stiplet pil høyre</annotation>
- <annotation cp="⇣" draft="contributed">stiplet pil ned</annotation>
- <annotation cp="⇣" type="tts" draft="contributed">stiplet pil ned</annotation>
- <annotation cp="⇤" draft="contributed">pil venstre mot loddrett strek</annotation>
- <annotation cp="⇤" type="tts" draft="contributed">pil venstre mot loddrett strek</annotation>
- <annotation cp="⇥" draft="contributed">pil høyre mot loddrett strek</annotation>
- <annotation cp="⇥" type="tts" draft="contributed">pil høyre mot loddrett strek</annotation>
- <annotation cp="⇦" draft="contributed">hul pil venstre</annotation>
- <annotation cp="⇦" type="tts" draft="contributed">hul pil venstre</annotation>
- <annotation cp="⇧" draft="contributed">hul pil opp</annotation>
- <annotation cp="⇧" type="tts" draft="contributed">hul pil opp</annotation>
- <annotation cp="⇨" draft="contributed">hul pil høyre</annotation>
- <annotation cp="⇨" type="tts" draft="contributed">hul pil høyre</annotation>
- <annotation cp="⇩" draft="contributed">hul pil ned</annotation>
- <annotation cp="⇩" type="tts" draft="contributed">hul pil ned</annotation>
- <annotation cp="⇪" draft="contributed">hul pil opp fra vannrett strek</annotation>
- <annotation cp="⇪" type="tts" draft="contributed">hul pil opp fra vannrett strek</annotation>
- <annotation cp="⇵" draft="contributed">pil ned til høyre for pil opp</annotation>
- <annotation cp="⇵" type="tts" draft="contributed">pil ned til høyre for pil opp</annotation>
- <annotation cp="∀" draft="contributed">allkvantor</annotation>
- <annotation cp="∀" type="tts" draft="contributed">allkvantor</annotation>
- <annotation cp="∂" draft="contributed">partielt derivert</annotation>
- <annotation cp="∂" type="tts" draft="contributed">partielt derivert</annotation>
- <annotation cp="∆">dekrement | delta | inkrement | matematisk endring | matematiske tegn | trekant</annotation>
- <annotation cp="∆" type="tts">matematisk endring</annotation>
- <annotation cp="∇">matematiske tegn | nabla | trekant | triangel | vektorfelt | vektoroperator</annotation>
- <annotation cp="∇" type="tts">nabla</annotation>
- <annotation cp="∈">element i | elementsymbol | matematiske tegn | mengdelære</annotation>
- <annotation cp="∈" type="tts">element i</annotation>
- <annotation cp="+">addere | legge til | pluss | plusstegn</annotation>
- <annotation cp="+" type="tts">plusstegn</annotation>
- <annotation cp="±">pluss/minus</annotation>
- <annotation cp="±" type="tts">pluss/minus</annotation>
- <annotation cp="÷">dele | deletegn | dividere | divisjon | divisjonstegn | matematiske tegn</annotation>
- <annotation cp="÷" type="tts">deletegn</annotation>
- <annotation cp="×">gange | gangetegn | matematiske tegn | multiplikasjon | multiplikasjonstegn | multiplisere</annotation>
- <annotation cp="×" type="tts">gangetegn</annotation>
- <annotation cp="<">er mindre enn | mindre enn | starttagg | ulikhet</annotation>
- <annotation cp="<" type="tts">er mindre enn</annotation>
- <annotation cp="=">er lik | likhetstegn</annotation>
- <annotation cp="=" type="tts">er lik</annotation>
- <annotation cp="≠">er ikke lik | ulikhet | ulikhetstegn</annotation>
- <annotation cp="≠" type="tts">er ikke lik</annotation>
- <annotation cp=">">endetagg | er større enn | større enn | ulikhet</annotation>
- <annotation cp=">" type="tts">er større enn</annotation>
- <annotation cp="¬">ikke | negasjon</annotation>
- <annotation cp="¬" type="tts">negasjon</annotation>
- <annotation cp="|">loddrett strek | strek</annotation>
- <annotation cp="|" type="tts">loddrett strek</annotation>
- <annotation cp="~">tilde</annotation>
- <annotation cp="~" type="tts">tilde</annotation>
- <annotation cp="−">minus | minustegn | subtrahere | trekke fra</annotation>
- <annotation cp="−" type="tts">minustegn</annotation>
- <annotation cp="⁻">hevet | hevet minustegn | ion | matematiske tegn | minus | negativ ladning</annotation>
- <annotation cp="⁻" type="tts">hevet minustegn</annotation>
- <annotation cp="√">kvadratrot | kvadratrottegn | matematiske tegn</annotation>
- <annotation cp="√" type="tts">kvadratrot</annotation>
- <annotation cp="∞">matematiske tegn | uendelig | uendelighetstegn</annotation>
- <annotation cp="∞" type="tts">uendelighetstegn</annotation>
- <annotation cp="∩">matematiske tegn | mengdelære | snitt | snittegn</annotation>
- <annotation cp="∩" type="tts">snitt</annotation>
- <annotation cp="∪">forening | matematiske tegn | mengdelære | union | uniontegn</annotation>
- <annotation cp="∪" type="tts">union</annotation>
- <annotation cp="≈">avrundes til | er tilnærmet lik</annotation>
- <annotation cp="≈" type="tts">er tilnærmet lik</annotation>
- <annotation cp="≡">identisk lik | kongruent med | likhetstegn | matematiske tegn</annotation>
- <annotation cp="≡" type="tts">identisk lik</annotation>
- <annotation cp="≤">er mindre enn eller lik | likhetstegn | mindre enn eller lik | ulikhet</annotation>
- <annotation cp="≤" type="tts">er mindre enn eller lik</annotation>
- <annotation cp="≥">er større enn eller lik | likhetstegn | større enn eller lik | ulikhet</annotation>
- <annotation cp="≥" type="tts">er større enn eller lik</annotation>
- <annotation cp="⊂">delmengde av | inklusjonstegn | matematiske tegn | mengdelære</annotation>
- <annotation cp="⊂" type="tts">delmengde av</annotation>
- <annotation cp="▲">fylt | fylt trekant som peker opp | opp | pil | trekant</annotation>
- <annotation cp="▲" type="tts">fylt trekant som peker opp</annotation>
- <annotation cp="▼">fylt | fylt trekant som peker ned | ned | pil | trekant</annotation>
- <annotation cp="▼" type="tts">fylt trekant som peker ned</annotation>
- <annotation cp="◊">diamant | hult rutersymbol | rombe | ruter</annotation>
- <annotation cp="◊" type="tts">hult rutersymbol</annotation>
- <annotation cp="○">hul sirkel | ring | runding | sirkel</annotation>
- <annotation cp="○" type="tts">hul sirkel</annotation>
- <annotation cp="●">fylt sirkel | runding | sirkel</annotation>
- <annotation cp="●" type="tts">fylt sirkel</annotation>
- <annotation cp="◯">hul sirkel | ring | runding | sirkel | stor hul sirkel</annotation>
- <annotation cp="◯" type="tts">stor hul sirkel</annotation>
- <annotation cp="♪">åttendelsnote | musikk | note</annotation>
- <annotation cp="♪" type="tts">åttendelsnote</annotation>
- <annotation cp="♭">b | halvnote ned | musikk | note-b</annotation>
- <annotation cp="♭" type="tts">note-b</annotation>
- <annotation cp="♯">halvnote opp | kryss | musikk | note-kryss</annotation>
- <annotation cp="♯" type="tts">note-kryss</annotation>
- <annotation cp="😀">fjes | glis | glisefjes</annotation>
- <annotation cp="😀" type="tts">glisefjes</annotation>
- <annotation cp="😃">åpen | fjes | glisende fjes med vidåpne øyne | latter | munn | smil | smilefjes | smilefjes med åpen munn</annotation>
- <annotation cp="😃" type="tts">glisende fjes med vidåpne øyne</annotation>
- <annotation cp="😄">latter | med tenner | morsomt | smil | smilefjes | smilefjes med åpen munn og smilende øyne</annotation>
- <annotation cp="😄" type="tts">smilefjes med åpen munn og smilende øyne</annotation>
- <annotation cp="😁">fjes | glis | glisefjes med smilende øyne | latter | lol | smil | smilefjes</annotation>
- <annotation cp="😁" type="tts">glisefjes med smilende øyne</annotation>
- <annotation cp="😆">åpen munn | fjes | latter | smil med sammenknepne øyne</annotation>
- <annotation cp="😆" type="tts">smil med sammenknepne øyne</annotation>
- <annotation cp="😅">åpen | glisende fjes som svetter | kaldsvette | munn | smil med svette | svett smil med åpen munn</annotation>
- <annotation cp="😅" type="tts">glisende fjes som svetter</annotation>
- <annotation cp="🤣">fjes | gulv | latter | ruller | ruller rundt på gulvet i latter</annotation>
- <annotation cp="🤣" type="tts">ruller rundt på gulvet i latter</annotation>
- <annotation cp="😂">fjes | fjes med gledestårer | glede | gledestårer | tårer</annotation>
- <annotation cp="😂" type="tts">gledestårer</annotation>
- <annotation cp="🙂">fjes | smil | smiler litt</annotation>
- <annotation cp="🙂" type="tts">smiler litt</annotation>
- <annotation cp="🙃">fjes | fjes som er opp-ned | opp-ned</annotation>
- <annotation cp="🙃" type="tts">fjes som er opp-ned</annotation>
- <annotation cp="😉">blunk | blunkende ansikt | fjes</annotation>
- <annotation cp="😉" type="tts">blunkende ansikt</annotation>
- <annotation cp="😊">fjes | rødme | smil | smil med smilende øyne | smilende øyne</annotation>
- <annotation cp="😊" type="tts">smil med smilende øyne</annotation>
- <annotation cp="😇">engel | fjes | glorie | smil | smil med glorie | uskyldig</annotation>
- <annotation cp="😇" type="tts">smil med glorie</annotation>
- <annotation cp="🥰">elsker | forelsket | kjærlighet | smilefjes med hjerter</annotation>
- <annotation cp="🥰" type="tts">smilefjes med hjerter</annotation>
- <annotation cp="😍">fjes | hjerte | hjerteøyne | kjærlighet | øyne | smilefjes med hjerteøyne</annotation>
- <annotation cp="😍" type="tts">smilefjes med hjerteøyne</annotation>
- <annotation cp="🤩">fjes | gliser | smil | stjerner | stjerner i øynene</annotation>
- <annotation cp="🤩" type="tts">stjerner i øynene</annotation>
- <annotation cp="😘">elsker deg | fjes | glad i deg | hjerte | kyss | slengkyss</annotation>
- <annotation cp="😘" type="tts">slengkyss</annotation>
- <annotation cp="😗">elsker deg | fjes | glad i deg | kyss | kyssefjes | slengkyss</annotation>
- <annotation cp="😗" type="tts">kyssefjes</annotation>
- <annotation cp="☺">fjes | omriss | smil | smilefjes</annotation>
- <annotation cp="☺" type="tts">smilefjes</annotation>
- <annotation cp="😚">elsker deg | fjes | glad i deg | kyss | kyss med lukkede øyne | lukkede øyne | trutmunn</annotation>
- <annotation cp="😚" type="tts">kyss med lukkede øyne</annotation>
- <annotation cp="😙">fjes | kyss | kyss med smilende øyne | slengkyss | smil | smilende øyne</annotation>
- <annotation cp="😙" type="tts">kyss med smilende øyne</annotation>
- <annotation cp="🥲">lettet | rørt | smilefjes med tåre | smiler | stolt | takknemlig | tåre</annotation>
- <annotation cp="🥲" type="tts">smilefjes med tåre</annotation>
- <annotation cp="😋">deilig mat | fjes | mmm | nam | nam-nam | sulten</annotation>
- <annotation cp="😋" type="tts">nam-nam</annotation>
- <annotation cp="😛">fjes | fjes som rekker tunge | rekker tunge | tungen ut</annotation>
- <annotation cp="😛" type="tts">rekker tunge</annotation>
- <annotation cp="😜">blunk | blunker og rekker tunge | erte | fjes | rekke tunge med blunk | spøk</annotation>
- <annotation cp="😜" type="tts">blunker og rekker tunge</annotation>
- <annotation cp="🤪">fjes | gal | lite øye | sinnssyk | stort øye</annotation>
- <annotation cp="🤪" type="tts">gal</annotation>
- <annotation cp="😝">æsj | fjes | følt | lukkende øyne | rekke tunge | tungen ut med øynene lukket</annotation>
- <annotation cp="😝" type="tts">æsj</annotation>
- <annotation cp="🤑">fjes | munn | pengegal | penger</annotation>
- <annotation cp="🤑" type="tts">pengegal</annotation>
- <annotation cp="🤗">fjes | fjes som gir klem | klem</annotation>
- <annotation cp="🤗" type="tts">fjes som gir klem</annotation>
- <annotation cp="🤭">flire | hånden over munnen | ops</annotation>
- <annotation cp="🤭" type="tts">hånden over munnen</annotation>
- <annotation cp="🤫">hysj | stillhet | vær stille</annotation>
- <annotation cp="🤫" type="tts">hysj</annotation>
- <annotation cp="🤔">fjes | tankefull | tenkefjes | tenker</annotation>
- <annotation cp="🤔" type="tts">tenkefjes</annotation>
- <annotation cp="🤐">fjes | fjes med glidelåsmunn | glidelås | munn</annotation>
- <annotation cp="🤐" type="tts">fjes med glidelåsmunn</annotation>
- <annotation cp="🤨">hevet øyenbryn | skeptisk | tvil</annotation>
- <annotation cp="🤨" type="tts">hevet øyenbryn</annotation>
- <annotation cp="😐">fjes | ingen kommentar | nøytral | stum</annotation>
- <annotation cp="😐" type="tts">nøytral</annotation>
- <annotation cp="😑">fjes | ingen kommentar | nøytral | stum | uttrykksløs</annotation>
- <annotation cp="😑" type="tts">uttrykksløs</annotation>
- <annotation cp="😶">fjes | ingen munn | uten munn</annotation>
- <annotation cp="😶" type="tts">uten munn</annotation>
- <annotation cp="😶🌫">distré | fjes i skyer | fraværende | uoppmerksom</annotation>
- <annotation cp="😶🌫" type="tts">fjes i skyer</annotation>
- <annotation cp="😏">fjes | lurt smil | selvtilfreds</annotation>
- <annotation cp="😏" type="tts">lurt smil</annotation>
- <annotation cp="😒">fjes | misfornøyd | sur</annotation>
- <annotation cp="😒" type="tts">misfornøyd</annotation>
- <annotation cp="🙄">fjes | himler med øynene | øyne | ruller</annotation>
- <annotation cp="🙄" type="tts">himler med øynene</annotation>
- <annotation cp="😬">fjes | grimase</annotation>
- <annotation cp="😬" type="tts">grimase</annotation>
- <annotation cp="🤥">fjes | løgn | lyver | pinocchio</annotation>
- <annotation cp="🤥" type="tts">lyver</annotation>
- <annotation cp="😌">fjes | lettet</annotation>
- <annotation cp="😌" type="tts">lettet</annotation>
- <annotation cp="😔">alvorlig | fjes | lei seg | tankefull</annotation>
- <annotation cp="😔" type="tts">tankefull</annotation>
- <annotation cp="😪">fjes | søvnig</annotation>
- <annotation cp="😪" type="tts">søvnig</annotation>
- <annotation cp="🤤">fjes | sikle | sikler</annotation>
- <annotation cp="🤤" type="tts">sikler</annotation>
- <annotation cp="😴">fjes | sovende fjes | sover | zzz</annotation>
- <annotation cp="😴" type="tts">sover</annotation>
- <annotation cp="😷">bakteriemaske | fjes | fjes med munnbind | sykdom</annotation>
- <annotation cp="😷" type="tts">fjes med munnbind</annotation>
- <annotation cp="🤒">fjes | fjes med termometer | syk | termometer</annotation>
- <annotation cp="🤒" type="tts">fjes med termometer</annotation>
- <annotation cp="🤕">bandasje | bandasjert hode | fjes | skade | skadet</annotation>
- <annotation cp="🤕" type="tts">bandasjert hode</annotation>
- <annotation cp="🤢">fjes | kvalm | oppkast | spy</annotation>
- <annotation cp="🤢" type="tts">kvalm</annotation>
- <annotation cp="🤮">fjes | kaster opp | kvalm | oppkast | spy</annotation>
- <annotation cp="🤮" type="tts">kaster opp</annotation>
- <annotation cp="🤧">fjes | nys | nyser</annotation>
- <annotation cp="🤧" type="tts">nyser</annotation>
- <annotation cp="🥵">feber | heteslag | rød | svetter | varm | varmt fjes</annotation>
- <annotation cp="🥵" type="tts">varmt fjes</annotation>
- <annotation cp="🥶">blå | frost | fryser | istapper | kald | kaldt fjes</annotation>
- <annotation cp="🥶" type="tts">kaldt fjes</annotation>
- <annotation cp="🥴">bølgete munn | brisen | full | svimmel | svimmelt fjes | ujevne øyne</annotation>
- <annotation cp="🥴" type="tts">svimmelt fjes</annotation>
- <annotation cp="😵">fjes | ør | svimmel</annotation>
- <annotation cp="😵" type="tts">ør</annotation>
- <annotation cp="😵💫">fjes med spiraløyne | hypnotisert | problem | spiral | svimmel | uææ</annotation>
- <annotation cp="😵💫" type="tts">fjes med spiraløyne</annotation>
- <annotation cp="🤯">eksploderende hode | forbløffet | overrasket | sjokkert</annotation>
- <annotation cp="🤯" type="tts">eksploderende hode</annotation>
- <annotation cp="🤠">cowboy | cowgirl | fjes | fjes med cowboyhatt | hatt</annotation>
- <annotation cp="🤠" type="tts">fjes med cowboyhatt</annotation>
- <annotation cp="🥳">feiring | fest | fløyte | hatt | party | partyfjes</annotation>
- <annotation cp="🥳" type="tts">partyfjes</annotation>
- <annotation cp="🥸">briller | fjes | fjes med forkledning | forkledning | inkognito | nese</annotation>
- <annotation cp="🥸" type="tts">fjes med forkledning</annotation>
- <annotation cp="😎">fjes | kul | lyst | smilefjes med solbriller | sol | solbriller</annotation>
- <annotation cp="😎" type="tts">smilefjes med solbriller</annotation>
- <annotation cp="🤓">fjes | nerd | nerdefjes</annotation>
- <annotation cp="🤓" type="tts">nerdefjes</annotation>
- <annotation cp="🧐">fjes | fjes med monokkel | formell | monokkel | stiv</annotation>
- <annotation cp="🧐" type="tts">fjes med monokkel</annotation>
- <annotation cp="😕">fjes | forvirret</annotation>
- <annotation cp="😕" type="tts">forvirret</annotation>
- <annotation cp="😟">bekymret | fjes</annotation>
- <annotation cp="😟" type="tts">bekymret</annotation>
- <annotation cp="🙁">fjes | litt surt fjes | trist</annotation>
- <annotation cp="🙁" type="tts">litt surt fjes</annotation>
- <annotation cp="☹">fjes | surt fjes | trist</annotation>
- <annotation cp="☹" type="tts">surt fjes</annotation>
- <annotation cp="😮">åpen munn | fjes | forbauset</annotation>
- <annotation cp="😮" type="tts">forbauset</annotation>
- <annotation cp="😮💨">fjes | gispe | hviske | lettet | plystre | puste ut | puster ut | sukke</annotation>
- <annotation cp="😮💨" type="tts">puster ut</annotation>
- <annotation cp="😯">fjes | overrasket | stum</annotation>
- <annotation cp="😯" type="tts">overrasket</annotation>
- <annotation cp="😲">fjes | overrasket | sjokkert | stum</annotation>
- <annotation cp="😲" type="tts">sjokkert</annotation>
- <annotation cp="😳">fjes | rød | rødmer</annotation>
- <annotation cp="😳" type="tts">rødmer</annotation>
- <annotation cp="🥺">bedende fjes | nåde | trygler | valpeøyne</annotation>
- <annotation cp="🥺" type="tts">bedende fjes</annotation>
- <annotation cp="😦">fjes | oppgitt | overrasket | sjokkert med åpen munn</annotation>
- <annotation cp="😦" type="tts">oppgitt</annotation>
- <annotation cp="😧">fjes | lider | pine | smerte</annotation>
- <annotation cp="😧" type="tts">pine</annotation>
- <annotation cp="😨">fjes | frykt | redd | skremt</annotation>
- <annotation cp="😨" type="tts">redd</annotation>
- <annotation cp="😰">åpen munn | engstelig og svetter | fjes | kaldsvette | syk</annotation>
- <annotation cp="😰" type="tts">engstelig og svetter</annotation>
- <annotation cp="😥">fjes | lettet | puh! | skuffet</annotation>
- <annotation cp="😥" type="tts">puh!</annotation>
- <annotation cp="😢">fjes | gråter | tårer | trist</annotation>
- <annotation cp="😢" type="tts">gråter</annotation>
- <annotation cp="😭">fjes | gråt | strigråter | tårer</annotation>
- <annotation cp="😭" type="tts">strigråter</annotation>
- <annotation cp="😱">fjes | frykt | livredd | munch | redd | skremt | skrik</annotation>
- <annotation cp="😱" type="tts">livredd</annotation>
- <annotation cp="😖">fjes | fortvilet | sint | skuffet</annotation>
- <annotation cp="😖" type="tts">fortvilet</annotation>
- <annotation cp="😣">bommert | fjes | skuffet | utholdende</annotation>
- <annotation cp="😣" type="tts">bommert</annotation>
- <annotation cp="😞">fjes | skuffelse | skuffet</annotation>
- <annotation cp="😞" type="tts">skuffet</annotation>
- <annotation cp="😓">ansikt | kaldsvette | kaldsvetter</annotation>
- <annotation cp="😓" type="tts">kaldsvetter</annotation>
- <annotation cp="😩">fjes | sliten | trøtt</annotation>
- <annotation cp="😩" type="tts">sliten</annotation>
- <annotation cp="😫">fjes | overtrøtt | sliten | søvnig | trøtt fjes</annotation>
- <annotation cp="😫" type="tts">trøtt fjes</annotation>
- <annotation cp="🥱">gjesp | gjespende fjes | kjedelig | sliten</annotation>
- <annotation cp="🥱" type="tts">gjespende fjes</annotation>
- <annotation cp="😤">fjes | jeg vant | triumf | triumferende</annotation>
- <annotation cp="😤" type="tts">triumferende</annotation>
- <annotation cp="😡">fjes | rasende | raseri | rødt | sinna | sint | sur</annotation>
- <annotation cp="😡" type="tts">rasende</annotation>
- <annotation cp="😠">fjes | raseri | sinna | sint | sur</annotation>
- <annotation cp="😠" type="tts">sint</annotation>
- <annotation cp="🤬">banner | fjes | fjes med symboler over munnen | rasende | sensur</annotation>
- <annotation cp="🤬" type="tts">fjes med symboler over munnen</annotation>
- <annotation cp="😈">fjes | horn | smil | smilende djevel</annotation>
- <annotation cp="😈" type="tts">smilende djevel</annotation>
- <annotation cp="👿">djevel | fjes | sint djevel</annotation>
- <annotation cp="👿" type="tts">sint djevel</annotation>
- <annotation cp="💀">død | dødninghode | fjes | hodeskalle</annotation>
- <annotation cp="💀" type="tts">hodeskalle</annotation>
- <annotation cp="☠">bein | død | dødningehode | fjes | hodeskalle | monster</annotation>
- <annotation cp="☠" type="tts">dødningehode</annotation>
- <annotation cp="💩">bæsj | bæsjeklatt | hundebæsj | kuruke</annotation>
- <annotation cp="💩" type="tts">bæsj</annotation>
- <annotation cp="🤡">fjes | klovn | klovnefjes</annotation>
- <annotation cp="🤡" type="tts">klovnefjes</annotation>
- <annotation cp="👹">eventyr | japansk ogre | japansk troll | ogre</annotation>
- <annotation cp="👹" type="tts">japansk troll</annotation>
- <annotation cp="👺">ansikt | eventyr | japansk troll | tengu</annotation>
- <annotation cp="👺" type="tts">tengu</annotation>
- <annotation cp="👻">eventyr | fjes | skapning | spøkelse</annotation>
- <annotation cp="👻" type="tts">spøkelse</annotation>
- <annotation cp="👽">fjes | romvesen | sci-fi | UFO | utenomjordisk</annotation>
- <annotation cp="👽" type="tts">romvesen</annotation>
- <annotation cp="👾">fjes | rommonster | sci-fi | UFO | utenomjordisk</annotation>
- <annotation cp="👾" type="tts">rommonster</annotation>
- <annotation cp="🤖">fjes | monster | robot</annotation>
- <annotation cp="🤖" type="tts">robot</annotation>
- <annotation cp="😺">åpen munn | fjes | katt | smil | smilende katt med åpen munn</annotation>
- <annotation cp="😺" type="tts">smilende katt med åpen munn</annotation>
- <annotation cp="😸">fjes | flirende katt med smilende øyne | katt | smil</annotation>
- <annotation cp="😸" type="tts">flirende katt med smilende øyne</annotation>
- <annotation cp="😹">fjes | glede | gledestårer | katt | katt med gledestårer | kattefjes med gledestårer | tårer</annotation>
- <annotation cp="😹" type="tts">katt med gledestårer</annotation>
- <annotation cp="😻">fjes | forelsket | hjerter | katt | kjærlighet | øyne | smilende katt med hjerteøyne</annotation>
- <annotation cp="😻" type="tts">smilende katt med hjerteøyne</annotation>
- <annotation cp="😼">fjes | ironisk | katt | katt med ironisk smil | smil</annotation>
- <annotation cp="😼" type="tts">katt med ironisk smil</annotation>
- <annotation cp="😽">fjes | katt | kyss | kyssende | lukkede øyne</annotation>
- <annotation cp="😽" type="tts">kyssende katt</annotation>
- <annotation cp="🙀">fjes | jøsses | katt | overrasket | sliten katt | slitent kattefjes</annotation>
- <annotation cp="🙀" type="tts">sliten katt</annotation>
- <annotation cp="😿">fjes | gråt | gråtende katt | tåre | trist katt</annotation>
- <annotation cp="😿" type="tts">gråtende katt</annotation>
- <annotation cp="😾">fjes | katt | sint | sur | surmulende katt</annotation>
- <annotation cp="😾" type="tts">surmulende katt</annotation>
- <annotation cp="🙈">ape | fjes | forbudt | ikke | ser ikke | ser ingenting ondt</annotation>
- <annotation cp="🙈" type="tts">ser ingenting ondt</annotation>
- <annotation cp="🙉">ape | fjes | forbudt | hører ikke | hører ingenting ondt | ikke</annotation>
- <annotation cp="🙉" type="tts">hører ingenting ondt</annotation>
- <annotation cp="🙊">ape | fjes | forbudt | holder munn | ikke | sier ikke | sier ingenting ondt</annotation>
- <annotation cp="🙊" type="tts">sier ingenting ondt</annotation>
- <annotation cp="💋">kyss | kyssemerke | lepper | romantikk</annotation>
- <annotation cp="💋" type="tts">kyssemerke</annotation>
- <annotation cp="💌">brev | brev med hjerte | hjerte | kjærlighesbrev | romantikk</annotation>
- <annotation cp="💌" type="tts">kjærlighesbrev</annotation>
- <annotation cp="💘">følelser | hjerte | hjerte med pil | kjærlighet | pil</annotation>
- <annotation cp="💘" type="tts">hjerte med pil</annotation>
- <annotation cp="💝">bånd | følelser | hjerte | hjerte med bånd | valentine</annotation>
- <annotation cp="💝" type="tts">hjerte med bånd</annotation>
- <annotation cp="💖">følelser | kjærlighet | skinnende | skinnende hjerte</annotation>
- <annotation cp="💖" type="tts">skinnende hjerte</annotation>
- <annotation cp="💗">følelser | kjærlighet | nervøs | spent | voksende hjerte</annotation>
- <annotation cp="💗" type="tts">voksende hjerte</annotation>
- <annotation cp="💓">bankende | følelser | hjerte | kjærlighet</annotation>
- <annotation cp="💓" type="tts">bankende hjerte</annotation>
- <annotation cp="💞">følelser | hjerter | kjærlighet | snurrende | søtt</annotation>
- <annotation cp="💞" type="tts">snurrende hjerter</annotation>
- <annotation cp="💕">elskere | følelser | kjærlighet | to hjerter</annotation>
- <annotation cp="💕" type="tts">to hjerter</annotation>
- <annotation cp="💟">hjerte | hjertedekorasjon</annotation>
- <annotation cp="💟" type="tts">hjertedekorasjon</annotation>
- <annotation cp="❣">tegn | tegnsetting | utrop | utropstegn | utropstegn med hjerte</annotation>
- <annotation cp="❣" type="tts">utropstegn med hjerte</annotation>
- <annotation cp="💔">brudd | følelser | hjerte | knust hjerte</annotation>
- <annotation cp="💔" type="tts">knust hjerte</annotation>
- <annotation cp="❤">hjerte | rødt hjerte</annotation>
- <annotation cp="❤" type="tts">rødt hjerte</annotation>
- <annotation cp="❤🔥">brann | hellig hjerte | hjerte | hjerte i brann | ild | kjærlighet | lidenskap</annotation>
- <annotation cp="❤🔥" type="tts">hjerte i brann</annotation>
- <annotation cp="❤🩹">bedre | bra | forbedring | komme seg | lindret hjerte | lindring | sterkere</annotation>
- <annotation cp="❤🩹" type="tts">lindret hjerte</annotation>
- <annotation cp="🧡">følelser | hjerte | oransje</annotation>
- <annotation cp="🧡" type="tts">oransje hjerte</annotation>
- <annotation cp="💛">følelser | gul | gult hjerte | hjerte</annotation>
- <annotation cp="💛" type="tts">gult hjerte</annotation>
- <annotation cp="💚">følelser | grønn | grønt hjerte | hjerte</annotation>
- <annotation cp="💚" type="tts">grønt hjerte</annotation>
- <annotation cp="💙">blå | blått hjerte | følelser | hjerte</annotation>
- <annotation cp="💙" type="tts">blått hjerte</annotation>
- <annotation cp="💜">følelser | hjerte | lilla</annotation>
- <annotation cp="💜" type="tts">lilla hjerte</annotation>
- <annotation cp="🤎">brun | brunt hjerte | hjerte</annotation>
- <annotation cp="🤎" type="tts">brunt hjerte</annotation>
- <annotation cp="🖤">hjerte | ond | svart</annotation>
- <annotation cp="🖤" type="tts">svart hjerte</annotation>
- <annotation cp="🤍">hjerte | hvit | hvitt hjerte</annotation>
- <annotation cp="🤍" type="tts">hvitt hjerte</annotation>
- <annotation cp="💯">100 | full pott | hundre poeng | poeng</annotation>
- <annotation cp="💯" type="tts">hundre poeng</annotation>
- <annotation cp="💢">følelse | sinne | sinnesymbol | sint | tegneserie</annotation>
- <annotation cp="💢" type="tts">sinne</annotation>
- <annotation cp="💥">følelse | kollisjon | krasj | smell | tegneserie</annotation>
- <annotation cp="💥" type="tts">krasj</annotation>
- <annotation cp="💫">se stjerner | stjerner | svimmel | tegneserie</annotation>
- <annotation cp="💫" type="tts">svimmel</annotation>
- <annotation cp="💦">dråper | sprut | sprutende | svette | svettedråper | tegneserie</annotation>
- <annotation cp="💦" type="tts">svettedråper</annotation>
- <annotation cp="💨">forsvinne | løpe | stikker av | tegneserie</annotation>
- <annotation cp="💨" type="tts">stikker av</annotation>
- <annotation cp="🕳">hull | hull i bakken</annotation>
- <annotation cp="🕳" type="tts">hull i bakken</annotation>
- <annotation cp="💣">bombe | følelse | tegneserie</annotation>
- <annotation cp="💣" type="tts">bombe</annotation>
- <annotation cp="💬">ballong | boble | dialog | dialogboble | snakkeboble | tegneserie</annotation>
- <annotation cp="💬" type="tts">snakkeboble</annotation>
- <annotation cp="👁🗨">øye | øye i snakkeboble | snakkeboble</annotation>
- <annotation cp="👁🗨" type="tts">øye i snakkeboble</annotation>
- <annotation cp="🗨">dialog | snakkeboble mot venstre | tale</annotation>
- <annotation cp="🗨" type="tts">snakkeboble mot venstre</annotation>
- <annotation cp="🗯">ballong | boble | sint | sint snakkeboble mot høyre | sur</annotation>
- <annotation cp="🗯" type="tts">sint snakkeboble mot høyre</annotation>
- <annotation cp="💭">boble | tanke | tankeboble | tegneserie</annotation>
- <annotation cp="💭" type="tts">tankeboble</annotation>
- <annotation cp="💤">følelse | snorker | sover | soving | tegneserie | zzz</annotation>
- <annotation cp="💤" type="tts">zzz</annotation>
- <annotation cp="👋">hånd | vinke | vinkende hånd | vinking</annotation>
- <annotation cp="👋" type="tts">vinkende hånd</annotation>
- <annotation cp="🤚">hånd | håndbak | løftet</annotation>
- <annotation cp="🤚" type="tts">løftet håndbak</annotation>
- <annotation cp="🖐">finger | flat hånd med spredte fingre | hånd | spredt</annotation>
- <annotation cp="🖐" type="tts">flat hånd med spredte fingre</annotation>
- <annotation cp="✋">flat hånd | håndflate | hevet hånd</annotation>
- <annotation cp="✋" type="tts">hevet hånd</annotation>
- <annotation cp="🖖">finger | hånd | spock | vulcan | Vulcan-hilsen</annotation>
- <annotation cp="🖖" type="tts">Vulcan-hilsen</annotation>
- <annotation cp="👌">hånd | OK | OK-hånd | tegn</annotation>
- <annotation cp="👌" type="tts">OK-hånd</annotation>
- <annotation cp="🤌">fingre | fingrene sammen | hånd | hånd med fingertuppene sammen | sarkastisk | spørsmål</annotation>
- <annotation cp="🤌" type="tts">hånd med fingertuppene sammen</annotation>
- <annotation cp="🤏">hånd som klyper | lite | liten</annotation>
- <annotation cp="🤏" type="tts">hånd som klyper</annotation>
- <annotation cp="✌">hånd | peace-tegn | seierstegn</annotation>
- <annotation cp="✌" type="tts">seierstegn</annotation>
- <annotation cp="🤞">finger | hånd | hell | kryss | kryssede fingre</annotation>
- <annotation cp="🤞" type="tts">kryssede fingre</annotation>
- <annotation cp="🤟">glad i deg | glad i deg-tegn | hånd | ILY | tegnspråk</annotation>
- <annotation cp="🤟" type="tts">glad i deg-tegn</annotation>
- <annotation cp="🤘">finger | hånd | horn | rock’n’roll</annotation>
- <annotation cp="🤘" type="tts">rock’n’roll</annotation>
- <annotation cp="🤙">hånd | ring meg-hånd | ringe</annotation>
- <annotation cp="🤙" type="tts">ring meg-hånd</annotation>
- <annotation cp="👈">finger | hånd | pekende finger | peker mot venstre – bakhånd | peker venstre</annotation>
- <annotation cp="👈" type="tts">peker mot venstre – bakhånd</annotation>
- <annotation cp="👉">finger | hånd | pekende finger | peker mot høyre – bakhånd | peker opp</annotation>
- <annotation cp="👉" type="tts">peker mot høyre – bakhånd</annotation>
- <annotation cp="👆">finger | hånd | pekende finger | peker opp | peker opp – bakhånd</annotation>
- <annotation cp="👆" type="tts">peker opp – bakhånd</annotation>
- <annotation cp="🖕">finger | hånd | kropp | langfinger | vise fingeren</annotation>
- <annotation cp="🖕" type="tts">langfinger</annotation>
- <annotation cp="👇">finger | hånd | pekende finger | peker ned | peker ned – bakhånd</annotation>
- <annotation cp="👇" type="tts">peker ned – bakhånd</annotation>
- <annotation cp="☝">finger | hånd | kropp | opp | peke | pekefinger | peker opp</annotation>
- <annotation cp="☝" type="tts">peker opp</annotation>
- <annotation cp="👍">hånd | tegn | tommel | tommel opp</annotation>
- <annotation cp="👍" type="tts">tommel opp</annotation>
- <annotation cp="👎">hånd | tegn | tommel | tommel ned</annotation>
- <annotation cp="👎" type="tts">tommel ned</annotation>
- <annotation cp="✊">hånd | hevet knyttneve | knyttet neve | neve</annotation>
- <annotation cp="✊" type="tts">hevet knyttneve</annotation>
- <annotation cp="👊">hånd | knyttneve | neve</annotation>
- <annotation cp="👊" type="tts">knyttneve</annotation>
- <annotation cp="🤛">hånd | knyttneve mot venstre | neve | venstre | venstrevendt</annotation>
- <annotation cp="🤛" type="tts">knyttneve mot venstre</annotation>
- <annotation cp="🤜">hånd | høyre | høyrevendt | knyttneve mot høyre | neve</annotation>
- <annotation cp="🤜" type="tts">knyttneve mot høyre</annotation>
- <annotation cp="👏">hånd | hender | klappende hender | klapping</annotation>
- <annotation cp="👏" type="tts">klappende hender</annotation>
- <annotation cp="🙌">begge hender | feirer | feiring | hånd | hevede hender | rekker begge armene i været</annotation>
- <annotation cp="🙌" type="tts">hevede hender</annotation>
- <annotation cp="👐">åpne | hånd | hender</annotation>
- <annotation cp="👐" type="tts">åpne hender</annotation>
- <annotation cp="🤲">ber | bønn | hånd | håndflatene sammen</annotation>
- <annotation cp="🤲" type="tts">håndflatene sammen</annotation>
- <annotation cp="🤝">avtale | hånd | håndhilse | håndtrykk | møte</annotation>
- <annotation cp="🤝" type="tts">håndhilse</annotation>
- <annotation cp="🙏">be | ber | bevegelse | bønn | foldede hender | hånd</annotation>
- <annotation cp="🙏" type="tts">foldede hender</annotation>
- <annotation cp="✍">hånd | kropp | skrive | skrivende hånd</annotation>
- <annotation cp="✍" type="tts">skrivende hånd</annotation>
- <annotation cp="💅">kosmetikk | manikyr | negl | neglelakk</annotation>
- <annotation cp="💅" type="tts">neglelakk</annotation>
- <annotation cp="🤳">kamera | selfie | telefon</annotation>
- <annotation cp="🤳" type="tts">selfie</annotation>
- <annotation cp="💪">biceps | fleks | muskel | muskelfleksing | sterk | tegneserie</annotation>
- <annotation cp="💪" type="tts">biceps</annotation>
- <annotation cp="🦾">mekanisk arm | protese | tilgjengelighet</annotation>
- <annotation cp="🦾" type="tts">mekanisk arm</annotation>
- <annotation cp="🦿">mekanisk bein | protese | tilgjengelighet</annotation>
- <annotation cp="🦿" type="tts">mekanisk bein</annotation>
- <annotation cp="🦵">bein | lem | sparke</annotation>
- <annotation cp="🦵" type="tts">bein</annotation>
- <annotation cp="🦶">fot | sparke | tråkke</annotation>
- <annotation cp="🦶" type="tts">fot</annotation>
- <annotation cp="👂">kropp | øre</annotation>
- <annotation cp="👂" type="tts">øre</annotation>
- <annotation cp="🦻">øre med høreapparat | svak hørsel | tilgjengelighet</annotation>
- <annotation cp="🦻" type="tts">øre med høreapparat</annotation>
- <annotation cp="👃">fjes | kropp | nese</annotation>
- <annotation cp="👃" type="tts">nese</annotation>
- <annotation cp="🧠">hjerne | intelligent</annotation>
- <annotation cp="🧠" type="tts">hjerne</annotation>
- <annotation cp="🫀">hjerte-kar | hjertemuskel | hjerteslag | kardiologi | muskel | organ | puls | senter</annotation>
- <annotation cp="🫀" type="tts">hjertemuskel</annotation>
- <annotation cp="🫁">innpust | lunger | organ | pust | puste | respirasjon | utpust</annotation>
- <annotation cp="🫁" type="tts">lunger</annotation>
- <annotation cp="🦷">tann | tannlege</annotation>
- <annotation cp="🦷" type="tts">tann</annotation>
- <annotation cp="🦴">knokkel | skjelett</annotation>
- <annotation cp="🦴" type="tts">knokkel</annotation>
- <annotation cp="👀">fjes | øye | øyne</annotation>
- <annotation cp="👀" type="tts">øyne</annotation>
- <annotation cp="👁">kropp | øye</annotation>
- <annotation cp="👁" type="tts">øye</annotation>
- <annotation cp="👅">fjes | kropp | tunge</annotation>
- <annotation cp="👅" type="tts">tunge</annotation>
- <annotation cp="👄">fjes | kropp | lepper | munn</annotation>
- <annotation cp="👄" type="tts">munn</annotation>
- <annotation cp="👶">baby | menneske | ung</annotation>
- <annotation cp="👶" type="tts">baby</annotation>
- <annotation cp="🧒">barn | kjønnsnøytral | menneske | ung</annotation>
- <annotation cp="🧒" type="tts">barn</annotation>
- <annotation cp="👦">gutt | menneske | ung</annotation>
- <annotation cp="👦" type="tts">gutt</annotation>
- <annotation cp="👧">jente | Jomfruen | menneske | stjernebilde | stjernetegn | ung</annotation>
- <annotation cp="👧" type="tts">jente</annotation>
- <annotation cp="🧑">kjønnsnøytral | menneske | person | voksen</annotation>
- <annotation cp="🧑" type="tts">voksen</annotation>
- <annotation cp="👱">blond | blond person | hår | menneske | Person: blond</annotation>
- <annotation cp="👱" type="tts">Person: blond</annotation>
- <annotation cp="👨">mann | menneske | voksen</annotation>
- <annotation cp="👨" type="tts">mann</annotation>
- <annotation cp="🧔">mann | mann med skjegg | mann: skjegg | person | person: skjegg | skjegg</annotation>
- <annotation cp="🧔" type="tts">person: skjegg</annotation>
- <annotation cp="👱♂">blond | hår | mann | mann: blond</annotation>
- <annotation cp="👱♂" type="tts">mann: blond</annotation>
- <annotation cp="🧔♀">kvinne | kvinne: skjegg | skjegg</annotation>
- <annotation cp="🧔♀" type="tts">kvinne: skjegg</annotation>
- <annotation cp="🧔♂">mann | mann: skjegg | skjegg</annotation>
- <annotation cp="🧔♂" type="tts">mann: skjegg</annotation>
- <annotation cp="👩">kvinne | menneske | voksen</annotation>
- <annotation cp="👩" type="tts">kvinne</annotation>
- <annotation cp="👱♀">blond | blondine | hår | kvinne | kvinne: blond</annotation>
- <annotation cp="👱♀" type="tts">kvinne: blond</annotation>
- <annotation cp="🧓">eldre voksen | gammel | kjønnsnøytral | menneske | voksen</annotation>
- <annotation cp="🧓" type="tts">eldre voksen</annotation>
- <annotation cp="👴">eldre | mann | menneske</annotation>
- <annotation cp="👴" type="tts">eldre mann</annotation>
- <annotation cp="👵">eldre | kvinne | menneske</annotation>
- <annotation cp="👵" type="tts">eldre kvinne</annotation>
- <annotation cp="🙍">mimikk | rynker brynene | rynker pannen</annotation>
- <annotation cp="🙍" type="tts">rynker brynene</annotation>
- <annotation cp="🙍♂">mann | mann som rynker brynene | mimikk | rynker pannen | skeptisk</annotation>
- <annotation cp="🙍♂" type="tts">mann som rynker brynene</annotation>
- <annotation cp="🙍♀">kvinne | kvinne som rynker brynene | mimikk | rynker pannen | skeptisk</annotation>
- <annotation cp="🙍♀" type="tts">kvinne som rynker brynene</annotation>
- <annotation cp="🙎">furter | furting | mimikk | surmuling</annotation>
- <annotation cp="🙎" type="tts">furter</annotation>
- <annotation cp="🙎♂">furting | mann | mann som furter | mimikk | surmuling</annotation>
- <annotation cp="🙎♂" type="tts">mann som furter</annotation>
- <annotation cp="🙎♀">furting | kvinne | kvinne som furter | mimikk | surmuling</annotation>
- <annotation cp="🙎♀" type="tts">kvinne som furter</annotation>
- <annotation cp="🙅">forbudt | gestikulerer NEI | ikke | mimikk | nei</annotation>
- <annotation cp="🙅" type="tts">gestikulerer NEI</annotation>
- <annotation cp="🙅♂">avbryt | forbudt | mann | mann som gestikulerer NEI | nei | stopp</annotation>
- <annotation cp="🙅♂" type="tts">mann som gestikulerer NEI</annotation>
- <annotation cp="🙅♀">avbryt | forbudt | kvinne | kvinne som gestikulerer NEI | nei | stopp</annotation>
- <annotation cp="🙅♀" type="tts">kvinne som gestikulerer NEI</annotation>
- <annotation cp="🙆">gestikulerer OK | greit | ok</annotation>
- <annotation cp="🙆" type="tts">gestikulerer OK</annotation>
- <annotation cp="🙆♂">greit | mann | mann som gestikulerer OK | ok</annotation>
- <annotation cp="🙆♂" type="tts">mann som gestikulerer OK</annotation>
- <annotation cp="🙆♀">greit | kvinne | kvinne som gestikulerer OK | ok</annotation>
- <annotation cp="🙆♀" type="tts">kvinne som gestikulerer OK</annotation>
- <annotation cp="💁">hjelp | hjelpende person | informasjon | menneske</annotation>
- <annotation cp="💁" type="tts">hjelpende person</annotation>
- <annotation cp="💁♂">hjelpe | hjelpende mann | informasjon | mann</annotation>
- <annotation cp="💁♂" type="tts">hjelpende mann</annotation>
- <annotation cp="💁♀">hjelpe | hjelpende kvinne | informasjon | kvinne</annotation>
- <annotation cp="💁♀" type="tts">hjelpende kvinne</annotation>
- <annotation cp="🙋">hånd | person | rekker opp | rekker opp hånden</annotation>
- <annotation cp="🙋" type="tts">rekker opp hånden</annotation>
- <annotation cp="🙋♂">mann | mann som rekker opp hånden | rekke opp hånden</annotation>
- <annotation cp="🙋♂" type="tts">mann som rekker opp hånden</annotation>
- <annotation cp="🙋♀">kvinne | kvinne som rekker opp hånden | rekke opp hånden</annotation>
- <annotation cp="🙋♀" type="tts">kvinne som rekker opp hånden</annotation>
- <annotation cp="🧏">døv | døv person | høre | øre | tilgjengelighet</annotation>
- <annotation cp="🧏" type="tts">døv person</annotation>
- <annotation cp="🧏♂">døv | mann</annotation>
- <annotation cp="🧏♂" type="tts">døv mann</annotation>
- <annotation cp="🧏♀">døv | kvinne</annotation>
- <annotation cp="🧏♀" type="tts">døv kvinne</annotation>
- <annotation cp="🙇">beklagelse | beklager | bukk | bukker | unnskyld</annotation>
- <annotation cp="🙇" type="tts">bukker</annotation>
- <annotation cp="🙇♂">beklagelse | bukk | bukkende mann | mann | unnskyld</annotation>
- <annotation cp="🙇♂" type="tts">bukkende mann</annotation>
- <annotation cp="🙇♀">beklagelse | bukk | bukkende kvinne | kvinne | unnskyld</annotation>
- <annotation cp="🙇♀" type="tts">bukkende kvinne</annotation>
- <annotation cp="🤦">ansikt | facepalm | fjes | irritasjon | oppgitt | slår hånden mot pannen | vantro</annotation>
- <annotation cp="🤦" type="tts">slår hånden mot pannen</annotation>
- <annotation cp="🤦♂">ansikt | facepalm | fjes | irritasjon | mann | mann som slår hånden mot pannen | oppgitt | vantro</annotation>
- <annotation cp="🤦♂" type="tts">mann som slår hånden mot pannen</annotation>
- <annotation cp="🤦♀">ansikt | facepalm | fjes | irritasjon | kvinne | kvinne som slår hånden mot pannen | oppgitt | vantro</annotation>
- <annotation cp="🤦♀" type="tts">kvinne som slår hånden mot pannen</annotation>
- <annotation cp="🤷">likegyldighet | skuldertrekning | trekker på skuldrene | tvil</annotation>
- <annotation cp="🤷" type="tts">trekker på skuldrene</annotation>
- <annotation cp="🤷♂">likegyldighet | mann | mann som trekker på skuldrene | skuldertrekning | tvil</annotation>
- <annotation cp="🤷♂" type="tts">mann som trekker på skuldrene</annotation>
- <annotation cp="🤷♀">kvinne | kvinne som trekker på skuldrene | likegyldighet | skuldertrekning | tvil</annotation>
- <annotation cp="🤷♀" type="tts">kvinne som trekker på skuldrene</annotation>
- <annotation cp="🧑⚕">doktor | helsearbeider | helsevesen | lege | sykepleier | terapeut</annotation>
- <annotation cp="🧑⚕" type="tts">helsearbeider</annotation>
- <annotation cp="👨⚕">doktor | helsevesen | lege | mann | mannlig helsearbeider | sykepleier | terapeut</annotation>
- <annotation cp="👨⚕" type="tts">mannlig helsearbeider</annotation>
- <annotation cp="👩⚕">doktor | helsevesen | kvinne | kvinnelig helsearbeider | lege | sykepleier | terapeut</annotation>
- <annotation cp="👩⚕" type="tts">kvinnelig helsearbeider</annotation>
- <annotation cp="🧑🎓">skole | student | universitet</annotation>
- <annotation cp="🧑🎓" type="tts">student</annotation>
- <annotation cp="👨🎓">mann | mannlig student | skole | student | universitet</annotation>
- <annotation cp="👨🎓" type="tts">mannlig student</annotation>
- <annotation cp="👩🎓">kvinne | kvinnelig student | skole | student | universitet</annotation>
- <annotation cp="👩🎓" type="tts">kvinnelig student</annotation>
- <annotation cp="🧑🏫">lærer | skole | undervisning</annotation>
- <annotation cp="🧑🏫" type="tts">lærer</annotation>
- <annotation cp="👨🏫">lærer | mann | mannlig lærer | skole | undervisning</annotation>
- <annotation cp="👨🏫" type="tts">mannlig lærer</annotation>
- <annotation cp="👩🏫">kvinne | kvinnelig lærer | lærer | skole | undervisning</annotation>
- <annotation cp="👩🏫" type="tts">kvinnelig lærer</annotation>
- <annotation cp="🧑⚖">dommer | jus | juss</annotation>
- <annotation cp="🧑⚖" type="tts">dommer</annotation>
- <annotation cp="👨⚖">dommer | jus | juss | mann | mannlig dommer | rettssak</annotation>
- <annotation cp="👨⚖" type="tts">mannlig dommer</annotation>
- <annotation cp="👩⚖">dommer | jus | juss | kvinne | kvinnelig dommer | rettssak</annotation>
- <annotation cp="👩⚖" type="tts">kvinnelig dommer</annotation>
- <annotation cp="🧑🌾">bonde | gårdbruker | jordbruk</annotation>
- <annotation cp="🧑🌾" type="tts">gårdbruker</annotation>
- <annotation cp="👨🌾">bonde | dyrke | gårdbruker | jordbruk | mann | mannlig gårdbruker</annotation>
- <annotation cp="👨🌾" type="tts">mannlig gårdbruker</annotation>
- <annotation cp="👩🌾">bonde | dyrke | gårdbruker | jordbruk | kvinne | kvinnelig gårdbruker</annotation>
- <annotation cp="👩🌾" type="tts">kvinnelig gårdbruker</annotation>
- <annotation cp="🧑🍳">kokk | matlaging | restaurant</annotation>
- <annotation cp="🧑🍳" type="tts">kokk</annotation>
- <annotation cp="👨🍳">mann | mannlig kokk | matlaging | restaurant</annotation>
- <annotation cp="👨🍳" type="tts">mannlig kokk</annotation>
- <annotation cp="👩🍳">kvinne | kvinnelig kokk | matlaging | restaurant</annotation>
- <annotation cp="👩🍳" type="tts">kvinnelig kokk</annotation>
- <annotation cp="🧑🔧">bil | elektriker | håndverker | mekaniker | motor | rørlegger</annotation>
- <annotation cp="🧑🔧" type="tts">mekaniker</annotation>
- <annotation cp="👨🔧">bil | elektriker | håndverker | mann | mannlig mekaniker | mekaniker | motor | rørlegger</annotation>
- <annotation cp="👨🔧" type="tts">mannlig mekaniker</annotation>
- <annotation cp="👩🔧">bil | elektriker | håndverker | kvinne | kvinnelig mekaniker | mekaniker | motor | rørlegger</annotation>
- <annotation cp="👩🔧" type="tts">kvinnelig mekaniker</annotation>
- <annotation cp="🧑🏭">arbeider | fabrikk | industri | industriarbeider | produksjon</annotation>
- <annotation cp="🧑🏭" type="tts">industriarbeider</annotation>
- <annotation cp="👨🏭">arbeider | fabrikk | industri | industriarbeider | mann | mannlig industriarbeider | produksjon</annotation>
- <annotation cp="👨🏭" type="tts">mannlig industriarbeider</annotation>
- <annotation cp="👩🏭">fabrikk | industri | kvinne | kvinnelig industriarbeider | produksjon</annotation>
- <annotation cp="👩🏭" type="tts">kvinnelig industriarbeider</annotation>
- <annotation cp="🧑💼">kontor | kontorarbeider | leder | næringsliv</annotation>
- <annotation cp="🧑💼" type="tts">kontorarbeider</annotation>
- <annotation cp="👨💼">kontor | leder | mann | mannlig kontorarbeider | næringsliv</annotation>
- <annotation cp="👨💼" type="tts">mannlig kontorarbeider</annotation>
- <annotation cp="👩💼">kontor | kvinne | kvinnelig kontorarbeider | leder | næringsliv</annotation>
- <annotation cp="👩💼" type="tts">kvinnelig kontorarbeider</annotation>
- <annotation cp="🧑🔬">biologi | forsker | forskning | kjemi | lab | laboratorium | medisin | vitenskap</annotation>
- <annotation cp="🧑🔬" type="tts">forsker</annotation>
- <annotation cp="👨🔬">kjemi | laboratorium | mann | mannlig forsker | vitenskap</annotation>
- <annotation cp="👨🔬" type="tts">mannlig forsker</annotation>
- <annotation cp="👩🔬">kjemi | kvinne | kvinnelig forsker | laboratorium | vitenskap</annotation>
- <annotation cp="👩🔬" type="tts">kvinnelig forsker</annotation>
- <annotation cp="🧑💻">data | IT | IT-ekspert | koding | programvare | teknologi</annotation>
- <annotation cp="🧑💻" type="tts">IT-ekspert</annotation>
- <annotation cp="👨💻">data | IT | koding | mann | mannlig IT-ekspert | programvare | teknologi</annotation>
- <annotation cp="👨💻" type="tts">mannlig IT-ekspert</annotation>
- <annotation cp="👩💻">data | IT | koding | kvinne | kvinnelig IT-ekspert | programvare | teknologi</annotation>
- <annotation cp="👩💻" type="tts">kvinnelig IT-ekspert</annotation>
- <annotation cp="🧑🎤">artist | konsert | rock | sanger</annotation>
- <annotation cp="🧑🎤" type="tts">artist</annotation>
- <annotation cp="👨🎤">artist | konsert | mann | mannlig artist | sanger</annotation>
- <annotation cp="👨🎤" type="tts">mannlig artist</annotation>
- <annotation cp="👩🎤">artist | konsert | kvinne | kvinnelig artist | rock | sanger</annotation>
- <annotation cp="👩🎤" type="tts">kvinnelig artist</annotation>
- <annotation cp="🧑🎨">kunstner | maler</annotation>
- <annotation cp="🧑🎨" type="tts">kunstner</annotation>
- <annotation cp="👨🎨">kunstner | maler | mann | mannlig kunstner</annotation>
- <annotation cp="👨🎨" type="tts">mannlig kunstner</annotation>
- <annotation cp="👩🎨">kunstner | kvinne | kvinnelig kunstner | maler</annotation>
- <annotation cp="👩🎨" type="tts">kvinnelig kunstner</annotation>
- <annotation cp="🧑✈">fly | pilot</annotation>
- <annotation cp="🧑✈" type="tts">pilot</annotation>
- <annotation cp="👨✈">fly | mann | mannlig pilot | pilot</annotation>
- <annotation cp="👨✈" type="tts">mannlig pilot</annotation>
- <annotation cp="👩✈">fly | kvinne | kvinnelig pilot | pilot</annotation>
- <annotation cp="👩✈" type="tts">kvinnelig pilot</annotation>
- <annotation cp="🧑🚀">astronaut | romfart | verdensrommet</annotation>
- <annotation cp="🧑🚀" type="tts">astronaut</annotation>
- <annotation cp="👨🚀">astronaut | mann | mannlig astronaut | romfart | verdensrommet</annotation>
- <annotation cp="👨🚀" type="tts">mannlig astronaut</annotation>
- <annotation cp="👩🚀">astronaut | kvinne | kvinnelig astronaut | romfart | verdensrommet</annotation>
- <annotation cp="👩🚀" type="tts">kvinnelig astronaut</annotation>
- <annotation cp="🧑🚒">brannbil | brannkonstabel | brannmann | brannvesenet</annotation>
- <annotation cp="🧑🚒" type="tts">brannkonstabel</annotation>
- <annotation cp="👨🚒">brannbil | brannkonstabel | brannmann | brannvesenet | mann | mannlig brannkonstabel</annotation>
- <annotation cp="👨🚒" type="tts">mannlig brannkonstabel</annotation>
- <annotation cp="👩🚒">brannbil | brannkonstabel | brannmann | brannvesenet | kvinne | kvinnelig brannkonstabel</annotation>
- <annotation cp="👩🚒" type="tts">kvinnelig brannkonstabel</annotation>
- <annotation cp="👮">betjent | menneske | politi | politibetjent</annotation>
- <annotation cp="👮" type="tts">politibetjent</annotation>
- <annotation cp="👮♂">betjent | mann | mannlig politibetjent | politi | politibetjent</annotation>
- <annotation cp="👮♂" type="tts">mannlig politibetjent</annotation>
- <annotation cp="👮♀">betjent | kvinne | kvinnelig politibetjent | politi | politibetjent</annotation>
- <annotation cp="👮♀" type="tts">kvinnelig politibetjent</annotation>
- <annotation cp="🕵">detektiv | spion</annotation>
- <annotation cp="🕵" type="tts">detektiv</annotation>
- <annotation cp="🕵♂">etterforske | forbrytelse | mann | mannlig detektiv | privatdetektiv</annotation>
- <annotation cp="🕵♂" type="tts">mannlig detektiv</annotation>
- <annotation cp="🕵♀">etterforske | forbrytelse | kvinne | kvinnelig detektiv | privatdetektiv</annotation>
- <annotation cp="🕵♀" type="tts">kvinnelig detektiv</annotation>
- <annotation cp="💂">gardist | menneske | vakt</annotation>
- <annotation cp="💂" type="tts">gardist</annotation>
- <annotation cp="💂♂">gardist | mann | mannlig gardist | vakt</annotation>
- <annotation cp="💂♂" type="tts">mannlig gardist</annotation>
- <annotation cp="💂♀">gardist | kvinne | kvinnelig gardist | vakt</annotation>
- <annotation cp="💂♀" type="tts">kvinnelig gardist</annotation>
- <annotation cp="🥷">kampkunst | kriger | ninja | skjult</annotation>
- <annotation cp="🥷" type="tts">ninja</annotation>
- <annotation cp="👷">anlegg | anleggsarbeider | arbeider | hjelm | ingeniør | menneske</annotation>
- <annotation cp="👷" type="tts">anleggsarbeider</annotation>
- <annotation cp="👷♂">anlegg | arbeider | bygg | hjelm | ingeniør | mann | mannlig anleggsarbeider</annotation>
- <annotation cp="👷♂" type="tts">mannlig anleggsarbeider</annotation>
- <annotation cp="👷♀">anlegg | arbeider | bygg | hjelm | ingeniør | kvinne | kvinnelig anleggsarbeider</annotation>
- <annotation cp="👷♀" type="tts">kvinnelig anleggsarbeider</annotation>
- <annotation cp="🤴">prins</annotation>
- <annotation cp="🤴" type="tts">prins</annotation>
- <annotation cp="👸">eventyr | fantasy | menneske | prinsesse</annotation>
- <annotation cp="👸" type="tts">prinsesse</annotation>
- <annotation cp="👳">menneske | turban | turbankledd person</annotation>
- <annotation cp="👳" type="tts">turbankledd person</annotation>
- <annotation cp="👳♂">mann | turban | turbankledd mann</annotation>
- <annotation cp="👳♂" type="tts">turbankledd mann</annotation>
- <annotation cp="👳♀">kvinne | turban | turbankledd kvinne</annotation>
- <annotation cp="👳♀" type="tts">turbankledd kvinne</annotation>
- <annotation cp="👲">gua pi mao | hatt | lue | mann | mann med kinesisk lue | menneske</annotation>
- <annotation cp="👲" type="tts">mann med kinesisk lue</annotation>
- <annotation cp="🧕">hijab | hodeskjerf | hodeslør | kvinne med hodeslør | muslim</annotation>
- <annotation cp="🧕" type="tts">kvinne med hodeslør</annotation>
- <annotation cp="🤵">brudgom | person | person i smoking | smoking</annotation>
- <annotation cp="🤵" type="tts">person i smoking</annotation>
- <annotation cp="🤵♂">mann | mann i smoking | smoking</annotation>
- <annotation cp="🤵♂" type="tts">mann i smoking</annotation>
- <annotation cp="🤵♀">kvinne | kvinne i smoking | smoking</annotation>
- <annotation cp="🤵♀" type="tts">kvinne i smoking</annotation>
- <annotation cp="👰">brud | brud med slør | bryllup | mennesker | person med slør | slør</annotation>
- <annotation cp="👰" type="tts">person med slør</annotation>
- <annotation cp="👰♂">mann | mann med slør | slør</annotation>
- <annotation cp="👰♂" type="tts">mann med slør</annotation>
- <annotation cp="👰♀">kvinne | kvinne med slør | slør</annotation>
- <annotation cp="👰♀" type="tts">kvinne med slør</annotation>
- <annotation cp="🤰">gravid | kvinne</annotation>
- <annotation cp="🤰" type="tts">gravid kvinne</annotation>
- <annotation cp="🤱">ammer | amming | baby | bryst | morsmelk</annotation>
- <annotation cp="🤱" type="tts">ammer</annotation>
- <annotation cp="👩🍼">baby | kvinne | kvinne som mater baby | mat | tåteflaske</annotation>
- <annotation cp="👩🍼" type="tts">kvinne som mater baby</annotation>
- <annotation cp="👨🍼">baby | mann | mann som mater baby | mat | tåteflaske</annotation>
- <annotation cp="👨🍼" type="tts">mann som mater baby</annotation>
- <annotation cp="🧑🍼">baby | mat | person | person som mater baby | tåteflaske</annotation>
- <annotation cp="🧑🍼" type="tts">person som mater baby</annotation>
- <annotation cp="👼">ansikt | babyengel | engel | eventyr</annotation>
- <annotation cp="👼" type="tts">babyengel</annotation>
- <annotation cp="🎅">feiring | jul | julenissen | nissefar | nissen</annotation>
- <annotation cp="🎅" type="tts">julenissen</annotation>
- <annotation cp="🤶">jul | julenissemor | mor | nisse</annotation>
- <annotation cp="🤶" type="tts">julenissemor</annotation>
- <annotation cp="🧑🎄">feiring | jul | julenisse | nisse | person</annotation>
- <annotation cp="🧑🎄" type="tts">julenisse</annotation>
- <annotation cp="🦸">god | helt | heltinne | superhelt | superkrefter</annotation>
- <annotation cp="🦸" type="tts">superhelt</annotation>
- <annotation cp="🦸♂">god | helt | mann | mannlig superhelt | superkrefter</annotation>
- <annotation cp="🦸♂" type="tts">mannlig superhelt</annotation>
- <annotation cp="🦸♀">god | helt | heltinne | kvinne | kvinnelig superhelt | superkrefter</annotation>
- <annotation cp="🦸♀" type="tts">kvinnelig superhelt</annotation>
- <annotation cp="🦹">kriminell | ond | skurk | superkrefter | superskurk</annotation>
- <annotation cp="🦹" type="tts">superskurk</annotation>
- <annotation cp="🦹♂">kriminell | mann | mannlig superskurk | ond | skurk | superkrefter</annotation>
- <annotation cp="🦹♂" type="tts">mannlig superskurk</annotation>
- <annotation cp="🦹♀">kriminell | kvinne | kvinnelig superskurk | ond | skurk | superkrefter</annotation>
- <annotation cp="🦹♀" type="tts">kvinnelig superskurk</annotation>
- <annotation cp="🧙">heks | trollkvinne | trollmann | trollperson</annotation>
- <annotation cp="🧙" type="tts">trollperson</annotation>
- <annotation cp="🧙♂">heksemester | trollmann</annotation>
- <annotation cp="🧙♂" type="tts">trollmann</annotation>
- <annotation cp="🧙♀">heks | trollkvinne</annotation>
- <annotation cp="🧙♀" type="tts">trollkvinne</annotation>
- <annotation cp="🧚">fe | Oberon | Puck | Titania</annotation>
- <annotation cp="🧚" type="tts">fe</annotation>
- <annotation cp="🧚♂">fe | mannlig fe | Oberon | Puck</annotation>
- <annotation cp="🧚♂" type="tts">mannlig fe</annotation>
- <annotation cp="🧚♀">fe | kvinnelig fe | Titania</annotation>
- <annotation cp="🧚♀" type="tts">kvinnelig fe</annotation>
- <annotation cp="🧛">Dracula | vampyr | vandød</annotation>
- <annotation cp="🧛" type="tts">vampyr</annotation>
- <annotation cp="🧛♂">Dracula | mannlig vampyr | vandød</annotation>
- <annotation cp="🧛♂" type="tts">mannlig vampyr</annotation>
- <annotation cp="🧛♀">kvinnelig vampyr | vandød</annotation>
- <annotation cp="🧛♀" type="tts">kvinnelig vampyr</annotation>
- <annotation cp="🧜">havfrue | havkvinne | havmann | havperson</annotation>
- <annotation cp="🧜" type="tts">havperson</annotation>
- <annotation cp="🧜♂">havmann | Triton</annotation>
- <annotation cp="🧜♂" type="tts">havmann</annotation>
- <annotation cp="🧜♀">havfrue | havkvinne</annotation>
- <annotation cp="🧜♀" type="tts">havfrue</annotation>
- <annotation cp="🧝">alv | magi</annotation>
- <annotation cp="🧝" type="tts">alv</annotation>
- <annotation cp="🧝♂">magi | mannlig alv</annotation>
- <annotation cp="🧝♂" type="tts">mannlig alv</annotation>
- <annotation cp="🧝♀">kvinnelig alv | magi</annotation>
- <annotation cp="🧝♀" type="tts">kvinnelig alv</annotation>
- <annotation cp="🧞">ånd | djinn</annotation>
- <annotation cp="🧞" type="tts">ånd</annotation>
- <annotation cp="🧞♂">djinn | mannlig ånd</annotation>
- <annotation cp="🧞♂" type="tts">mannlig ånd</annotation>
- <annotation cp="🧞♀">djinn | kvinnelig ånd</annotation>
- <annotation cp="🧞♀" type="tts">kvinnelig ånd</annotation>
- <annotation cp="🧟">udød | vandød | zombie</annotation>
- <annotation cp="🧟" type="tts">zombie</annotation>
- <annotation cp="🧟♂">mannlig zombie | udød | vandød</annotation>
- <annotation cp="🧟♂" type="tts">mannlig zombie</annotation>
- <annotation cp="🧟♀">kvinnelig zombie | udød | vandød</annotation>
- <annotation cp="🧟♀" type="tts">kvinnelig zombie</annotation>
- <annotation cp="💆">ansikt | ansiktsmassasje | massasje | skjønnhetssalong</annotation>
- <annotation cp="💆" type="tts">ansiktsmassasje</annotation>
- <annotation cp="💆♂">ansikt | avslapning | hodemassasje | mann | mann som får ansiktsmassasje | massasje | velvære</annotation>
- <annotation cp="💆♂" type="tts">mann som får ansiktsmassasje</annotation>
- <annotation cp="💆♀">ansikt | avslapning | hodemassasje | kvinne | kvinne som får ansiktsmassasje | massasje | velvære</annotation>
- <annotation cp="💆♀" type="tts">kvinne som får ansiktsmassasje</annotation>
- <annotation cp="💇">frisør | hårklipp | salong | skjønnhet | skjønnhetssalong</annotation>
- <annotation cp="💇" type="tts">hårklipp</annotation>
- <annotation cp="💇♂">frisør | hårklipp | mann | mann som får hårklipp | sveis</annotation>
- <annotation cp="💇♂" type="tts">mann som får hårklipp</annotation>
- <annotation cp="💇♀">frisør | frisyre | hårklipp | kvinne | kvinne som får hårklipp</annotation>
- <annotation cp="💇♀" type="tts">kvinne som får hårklipp</annotation>
- <annotation cp="🚶">fotgjenger | gå | gående</annotation>
- <annotation cp="🚶" type="tts">fotgjenger</annotation>
- <annotation cp="🚶♂">fotgjenger | gå | mann | mannlig fotgjenger | tur</annotation>
- <annotation cp="🚶♂" type="tts">mannlig fotgjenger</annotation>
- <annotation cp="🚶♀">fotgjenger | gå | kvinne | kvinnelig fotgjenger | tur</annotation>
- <annotation cp="🚶♀" type="tts">kvinnelig fotgjenger</annotation>
- <annotation cp="🧍">person som står | stå</annotation>
- <annotation cp="🧍" type="tts">person som står</annotation>
- <annotation cp="🧍♂">mann | mann som står | står</annotation>
- <annotation cp="🧍♂" type="tts">mann som står</annotation>
- <annotation cp="🧍♀">kvinne | kvinne som står | står</annotation>
- <annotation cp="🧍♀" type="tts">kvinne som står</annotation>
- <annotation cp="🧎">knele | kneler | person som kneler</annotation>
- <annotation cp="🧎" type="tts">person som kneler</annotation>
- <annotation cp="🧎♂">kneler | mann | mann som kneler</annotation>
- <annotation cp="🧎♂" type="tts">mann som kneler</annotation>
- <annotation cp="🧎♀">kneler | kvinne | kvinne som kneler</annotation>
- <annotation cp="🧎♀" type="tts">kvinne som kneler</annotation>
- <annotation cp="🧑🦯">blind | person med blindestokk | tilgjengelighet</annotation>
- <annotation cp="🧑🦯" type="tts">person med blindestokk</annotation>
- <annotation cp="👨🦯">blind | mann | mann med blindestokk | tilgjengelighet</annotation>
- <annotation cp="👨🦯" type="tts">mann med blindestokk</annotation>
- <annotation cp="👩🦯">blind | kvinne | kvinne med blindestokk | tilgjengelighet</annotation>
- <annotation cp="👩🦯" type="tts">kvinne med blindestokk</annotation>
- <annotation cp="🧑🦼">person i motorisert rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="🧑🦼" type="tts">person i motorisert rullestol</annotation>
- <annotation cp="👨🦼">mann | mann i motorisert rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="👨🦼" type="tts">mann i motorisert rullestol</annotation>
- <annotation cp="👩🦼">kvinne | kvinne i motorisert rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="👩🦼" type="tts">kvinne i motorisert rullestol</annotation>
- <annotation cp="🧑🦽">person i manuell rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="🧑🦽" type="tts">person i manuell rullestol</annotation>
- <annotation cp="👨🦽">mann | mann i manuell rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="👨🦽" type="tts">mann i manuell rullestol</annotation>
- <annotation cp="👩🦽">kvinne | kvinne i manuell rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="👩🦽" type="tts">kvinne i manuell rullestol</annotation>
- <annotation cp="🏃">jogger | jogging | løper | løping | maraton | sport</annotation>
- <annotation cp="🏃" type="tts">løper</annotation>
- <annotation cp="🏃♂">jogge | løpe | mann | mannlig løper | maraton</annotation>
- <annotation cp="🏃♂" type="tts">mannlig løper</annotation>
- <annotation cp="🏃♀">jogge | kvinne | kvinnelig løper | løpe | maraton</annotation>
- <annotation cp="🏃♀" type="tts">kvinnelig løper</annotation>
- <annotation cp="💃">dans | dansende kvinne | kvinne</annotation>
- <annotation cp="💃" type="tts">dansende kvinne</annotation>
- <annotation cp="🕺">dans | dansende mann | mann</annotation>
- <annotation cp="🕺" type="tts">dansende mann</annotation>
- <annotation cp="🕴">business | dress | forretningsmann | mann | svevende mann i dress</annotation>
- <annotation cp="🕴" type="tts">svevende mann i dress</annotation>
- <annotation cp="👯">danser | fest | hareører | menneske | personer med kaninører</annotation>
- <annotation cp="👯" type="tts">personer med kaninører</annotation>
- <annotation cp="👯♂">danser | hareører | mann | menn | menn med kaninører</annotation>
- <annotation cp="👯♂" type="tts">menn med kaninører</annotation>
- <annotation cp="👯♀">danser | hareører | kvinne | kvinner | kvinner med kaninører</annotation>
- <annotation cp="👯♀" type="tts">kvinner med kaninører</annotation>
- <annotation cp="🧖">dampbad | person i badstu | sauna</annotation>
- <annotation cp="🧖" type="tts">person i badstu</annotation>
- <annotation cp="🧖♂">dampbad | mann i badstu | sauna</annotation>
- <annotation cp="🧖♂" type="tts">mann i badstu</annotation>
- <annotation cp="🧖♀">dampbad | kvinne i badstu | sauna</annotation>
- <annotation cp="🧖♀" type="tts">kvinne i badstu</annotation>
- <annotation cp="🧗">klatrer | klatring</annotation>
- <annotation cp="🧗" type="tts">klatrer</annotation>
- <annotation cp="🧗♂">klatring | mannlig klatrer</annotation>
- <annotation cp="🧗♂" type="tts">mannlig klatrer</annotation>
- <annotation cp="🧗♀">klatring | kvinnelig klatrer</annotation>
- <annotation cp="🧗♀" type="tts">kvinnelig klatrer</annotation>
- <annotation cp="🤺">fekte | fekter | fekting | person | sport | sverd</annotation>
- <annotation cp="🤺" type="tts">fekter</annotation>
- <annotation cp="🏇">galopp | hest | hesteveddeløp | jockey | løp | sport | veddeløpshest</annotation>
- <annotation cp="🏇" type="tts">hesteveddeløp</annotation>
- <annotation cp="⛷">ski | skiløper | snø</annotation>
- <annotation cp="⛷" type="tts">skiløper</annotation>
- <annotation cp="🏂">snøbrett | snøbrettkjøring | snowboard | snowboarder | snowboarding | vintersport</annotation>
- <annotation cp="🏂" type="tts">snowboarder</annotation>
- <annotation cp="🏌">ball | golf | golfspiller</annotation>
- <annotation cp="🏌" type="tts">golfspiller</annotation>
- <annotation cp="🏌♂">golf | golfspiller | mann | mannlig golfspiller</annotation>
- <annotation cp="🏌♂" type="tts">mannlig golfspiller</annotation>
- <annotation cp="🏌♀">golf | golfspiller | kvinne | kvinnelig golfspiller</annotation>
- <annotation cp="🏌♀" type="tts">kvinnelig golfspiller</annotation>
- <annotation cp="🏄">sport | surfer | surfing</annotation>
- <annotation cp="🏄" type="tts">surfer</annotation>
- <annotation cp="🏄♂">mann | mannlig surfer | surfing</annotation>
- <annotation cp="🏄♂" type="tts">mannlig surfer</annotation>
- <annotation cp="🏄♀">kvinne | kvinnelig surfer | surfing</annotation>
- <annotation cp="🏄♀" type="tts">kvinnelig surfer</annotation>
- <annotation cp="🚣">båt | fartøy | person i robåt</annotation>
- <annotation cp="🚣" type="tts">person i robåt</annotation>
- <annotation cp="🚣♂">båt | mann | mann i robåt | ro | robåt</annotation>
- <annotation cp="🚣♂" type="tts">mann i robåt</annotation>
- <annotation cp="🚣♀">båt | kvinne | kvinne i robåt | ro | robåt</annotation>
- <annotation cp="🚣♀" type="tts">kvinne i robåt</annotation>
- <annotation cp="🏊">sport | svømme | svømmer | svømming</annotation>
- <annotation cp="🏊" type="tts">svømmer</annotation>
- <annotation cp="🏊♂">mann | mannlig svømmer | svømme | svømming</annotation>
- <annotation cp="🏊♂" type="tts">mannlig svømmer</annotation>
- <annotation cp="🏊♀">kvinne | kvinnelig svømmer | svømme | svømming</annotation>
- <annotation cp="🏊♀" type="tts">kvinnelig svømmer</annotation>
- <annotation cp="⛹">ball | ballsport | person med ball</annotation>
- <annotation cp="⛹" type="tts">person med ball</annotation>
- <annotation cp="⛹♂">ballsport | mann | mann med ball</annotation>
- <annotation cp="⛹♂" type="tts">mann med ball</annotation>
- <annotation cp="⛹♀">ballsport | kvinne | kvinne med ball</annotation>
- <annotation cp="⛹♀" type="tts">kvinne med ball</annotation>
- <annotation cp="🏋">løfter | vekt | vektløfter</annotation>
- <annotation cp="🏋" type="tts">vektløfter</annotation>
- <annotation cp="🏋♂">bodybuilding | mann | mannlig vektløfter | vektløfter</annotation>
- <annotation cp="🏋♂" type="tts">mannlig vektløfter</annotation>
- <annotation cp="🏋♀">bodybuilding | kvinne | kvinnelig vektløfter | vektløfting</annotation>
- <annotation cp="🏋♀" type="tts">kvinnelig vektløfter</annotation>
- <annotation cp="🚴">sykkel | sykle | syklist</annotation>
- <annotation cp="🚴" type="tts">syklist</annotation>
- <annotation cp="🚴♂">mann | mannlig syklist | sykkel | sykle</annotation>
- <annotation cp="🚴♂" type="tts">mannlig syklist</annotation>
- <annotation cp="🚴♀">kvinne | kvinnelig syklist | sykkel | sykle</annotation>
- <annotation cp="🚴♀" type="tts">kvinnelig syklist</annotation>
- <annotation cp="🚵">mountainbike | sykkel | terrengsykkel | terrengsyklist</annotation>
- <annotation cp="🚵" type="tts">terrengsyklist</annotation>
- <annotation cp="🚵♂">mann | mann på terrengsykkel | mountainbike | sykkel | terrengsykkel</annotation>
- <annotation cp="🚵♂" type="tts">mann på terrengsykkel</annotation>
- <annotation cp="🚵♀">kvinne | kvinne på terrengsykkel | mountainbike | sykkel | terrengsykkel</annotation>
- <annotation cp="🚵♀" type="tts">kvinne på terrengsykkel</annotation>
- <annotation cp="🤸">gym | gymnastikk | person | slå hjul | sport</annotation>
- <annotation cp="🤸" type="tts">slå hjul</annotation>
- <annotation cp="🤸♂">mann | mann som slår hjul | slå hjul</annotation>
- <annotation cp="🤸♂" type="tts">mann som slår hjul</annotation>
- <annotation cp="🤸♀">kvinne | kvinne som slår hjul | slå hjul</annotation>
- <annotation cp="🤸♀" type="tts">kvinne som slår hjul</annotation>
- <annotation cp="🤼">bryter | brytere | bryting | person | sport</annotation>
- <annotation cp="🤼" type="tts">brytere</annotation>
- <annotation cp="🤼♂">bryter | mann | mannlige brytere | menn</annotation>
- <annotation cp="🤼♂" type="tts">mannlige brytere</annotation>
- <annotation cp="🤼♀">bryter | kvinne | kvinnelige brytere | kvinner</annotation>
- <annotation cp="🤼♀" type="tts">kvinnelige brytere</annotation>
- <annotation cp="🤽">person | polo | sport | vann | vannpolo</annotation>
- <annotation cp="🤽" type="tts">vannpolo</annotation>
- <annotation cp="🤽♂">mann | mannlig vannpolospiller | vannpolo</annotation>
- <annotation cp="🤽♂" type="tts">mannlig vannpolospiller</annotation>
- <annotation cp="🤽♀">kvinne | kvinnelig vannpolospiller | vannpolo</annotation>
- <annotation cp="🤽♀" type="tts">kvinnelig vannpolospiller</annotation>
- <annotation cp="🤾">ball | håndball | person | sport</annotation>
- <annotation cp="🤾" type="tts">håndball</annotation>
- <annotation cp="🤾♂">håndball | mann | mannlig håndballspiller</annotation>
- <annotation cp="🤾♂" type="tts">mannlig håndballspiller</annotation>
- <annotation cp="🤾♀">håndball | kvinne | kvinnelig håndballspiller</annotation>
- <annotation cp="🤾♀" type="tts">kvinnelig håndballspiller</annotation>
- <annotation cp="🤹">balanse | ferdighet | multitasking | sjonglering</annotation>
- <annotation cp="🤹" type="tts">sjonglering</annotation>
- <annotation cp="🤹♂">mann | mannlig sjonglør | multitasking | sirkus | sjonglere</annotation>
- <annotation cp="🤹♂" type="tts">mannlig sjonglør</annotation>
- <annotation cp="🤹♀">kvinne | kvinnelig sjonglør | multitasking | sirkus | sjonglere</annotation>
- <annotation cp="🤹♀" type="tts">kvinnelig sjonglør</annotation>
- <annotation cp="🧘">lotusstilling | meditasjon | yoga</annotation>
- <annotation cp="🧘" type="tts">lotusstilling</annotation>
- <annotation cp="🧘♂">mann i lotusstilling | meditasjon | yoga</annotation>
- <annotation cp="🧘♂" type="tts">mann i lotusstilling</annotation>
- <annotation cp="🧘♀">kvinne i lotusstilling | meditasjon | yoga</annotation>
- <annotation cp="🧘♀" type="tts">kvinne i lotusstilling</annotation>
- <annotation cp="🛀">bad | badekar | person i badekar</annotation>
- <annotation cp="🛀" type="tts">person i badekar</annotation>
- <annotation cp="🛌">hotell | person i seng | sove</annotation>
- <annotation cp="🛌" type="tts">person i seng</annotation>
- <annotation cp="🧑🤝🧑">hånd | holde hender | par | personer | personer som leier</annotation>
- <annotation cp="🧑🤝🧑" type="tts">personer som leier</annotation>
- <annotation cp="👭">hånd | holder hender | kvinne | kvinner som leier | par</annotation>
- <annotation cp="👭" type="tts">kvinner som leier</annotation>
- <annotation cp="👫">hånd | holder hender | kvinne | mann | mann og kvinne som leier | par</annotation>
- <annotation cp="👫" type="tts">mann og kvinne som leier</annotation>
- <annotation cp="👬">hånd | holde hender | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
- <annotation cp="👬" type="tts">menn som leier</annotation>
- <annotation cp="💏">kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="💏" type="tts">kyss</annotation>
- <annotation cp="💑">hjerte | kjærlighet | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="💑" type="tts">par med hjerte</annotation>
- <annotation cp="👪">barn | familie | far | mennesker | mor</annotation>
- <annotation cp="👪" type="tts">familie</annotation>
- <annotation cp="🗣">fjes | hode | silhuett | snakke | snakkende hode i profil | snakker</annotation>
- <annotation cp="🗣" type="tts">snakkende hode i profil</annotation>
- <annotation cp="👤">byste | menneske | silhuett | silhuett av byste</annotation>
- <annotation cp="👤" type="tts">silhuett av byste</annotation>
- <annotation cp="👥">byste | menneske | silhuett | silhuett av byster</annotation>
- <annotation cp="👥" type="tts">silhuett av byster</annotation>
- <annotation cp="🫂">farvel | ha det | hadet | hei | klem | takk</annotation>
- <annotation cp="🫂" type="tts">klem</annotation>
- <annotation cp="👣">avtrykk | fot | fotavtrykk | fotspor | kropp | spor</annotation>
- <annotation cp="👣" type="tts">fotavtrykk</annotation>
- <annotation cp="🦰">rødhåring | rødt hår</annotation>
- <annotation cp="🦰" type="tts">rødt hår</annotation>
- <annotation cp="🦱">afrikansk | afro | krøllet | kruset hår</annotation>
- <annotation cp="🦱" type="tts">kruset hår</annotation>
- <annotation cp="🦳">gammel | grå | grått hår | hår | hvit</annotation>
- <annotation cp="🦳" type="tts">grått hår</annotation>
- <annotation cp="🦲">barbert | hårløs | kjemoterapi | skallet | uten hår</annotation>
- <annotation cp="🦲" type="tts">skallet</annotation>
- <annotation cp="🐵">ape | apefjes | dyr | fjes</annotation>
- <annotation cp="🐵" type="tts">apefjes</annotation>
- <annotation cp="🐒">ape | dyr</annotation>
- <annotation cp="🐒" type="tts">ape</annotation>
- <annotation cp="🦍">dyr | gorilla</annotation>
- <annotation cp="🦍" type="tts">gorilla</annotation>
- <annotation cp="🦧">ape | orangutang</annotation>
- <annotation cp="🦧" type="tts">orangutang</annotation>
- <annotation cp="🐶">dyr | fjes | hund | hundefjes</annotation>
- <annotation cp="🐶" type="tts">hundefjes</annotation>
- <annotation cp="🐕">dyr | hund | valp</annotation>
- <annotation cp="🐕" type="tts">hund</annotation>
- <annotation cp="🦮">blind | førerhund | hund | tilgjengelighet</annotation>
- <annotation cp="🦮" type="tts">førerhund</annotation>
- <annotation cp="🐕🦺">hjelp | hund | servicehund | tilgjengelighet</annotation>
- <annotation cp="🐕🦺" type="tts">servicehund</annotation>
- <annotation cp="🐩">dyr | hund | puddel</annotation>
- <annotation cp="🐩" type="tts">puddel</annotation>
- <annotation cp="🐺">dyr | fjes | ulv</annotation>
- <annotation cp="🐺" type="tts">ulv</annotation>
- <annotation cp="🦊">dyr | fjes | rev</annotation>
- <annotation cp="🦊" type="tts">rev</annotation>
- <annotation cp="🦝">nysgjerrig | sky | vaskebjørn</annotation>
- <annotation cp="🦝" type="tts">vaskebjørn</annotation>
- <annotation cp="🐱">dyr | fjes | katt | kattefjes</annotation>
- <annotation cp="🐱" type="tts">kattefjes</annotation>
- <annotation cp="🐈">dyr | katt</annotation>
- <annotation cp="🐈" type="tts">katt</annotation>
- <annotation cp="🐈⬛">dyr | katt | svart katt | uhell | ulykke</annotation>
- <annotation cp="🐈⬛" type="tts">svart katt</annotation>
- <annotation cp="🦁">fjes | løve | løven | stjernebilde | stjernetegn</annotation>
- <annotation cp="🦁" type="tts">løve</annotation>
- <annotation cp="🐯">dyr | fjes | tiger | tigerfjes</annotation>
- <annotation cp="🐯" type="tts">tigerfjes</annotation>
- <annotation cp="🐅">dyr | tiger</annotation>
- <annotation cp="🐅" type="tts">tiger</annotation>
- <annotation cp="🐆">dyr | leopard</annotation>
- <annotation cp="🐆" type="tts">leopard</annotation>
- <annotation cp="🐴">dyr | fjes | hest | hestefjes</annotation>
- <annotation cp="🐴" type="tts">hestefjes</annotation>
- <annotation cp="🐎">dyr | galopp | hest | trav</annotation>
- <annotation cp="🐎" type="tts">hest</annotation>
- <annotation cp="🦄">enhjørning | fjes</annotation>
- <annotation cp="🦄" type="tts">enhjørning</annotation>
- <annotation cp="🦓">dyr | sebra | striper</annotation>
- <annotation cp="🦓" type="tts">sebra</annotation>
- <annotation cp="🦌">dyr | hjort</annotation>
- <annotation cp="🦌" type="tts">hjort</annotation>
- <annotation cp="🦬">bison | bøffel | dyr | visent</annotation>
- <annotation cp="🦬" type="tts">bison</annotation>
- <annotation cp="🐮">dyr | fjes | ku | kufjes</annotation>
- <annotation cp="🐮" type="tts">kufjes</annotation>
- <annotation cp="🐂">dyr | okse | stjernebilde | stjernetegn | tyren</annotation>
- <annotation cp="🐂" type="tts">okse</annotation>
- <annotation cp="🐃">bøffel | dyr | vannbøffel</annotation>
- <annotation cp="🐃" type="tts">vannbøffel</annotation>
- <annotation cp="🐄">dyr | ku</annotation>
- <annotation cp="🐄" type="tts">ku</annotation>
- <annotation cp="🐷">dyr | fjes | gris | grisefjes</annotation>
- <annotation cp="🐷" type="tts">grisefjes</annotation>
- <annotation cp="🐖">dyr | gris</annotation>
- <annotation cp="🐖" type="tts">gris</annotation>
- <annotation cp="🐗">dyr | villsvin</annotation>
- <annotation cp="🐗" type="tts">villsvin</annotation>
- <annotation cp="🐽">dyr | gris | grisetryne | snute</annotation>
- <annotation cp="🐽" type="tts">grisetryne</annotation>
- <annotation cp="🐏">bukk | dyr | stjernebilde | stjernetegn | væren</annotation>
- <annotation cp="🐏" type="tts">bukk</annotation>
- <annotation cp="🐑">dyr | sau | søye</annotation>
- <annotation cp="🐑" type="tts">søye</annotation>
- <annotation cp="🐐">dyr | geit | steinbukken | stjernebilde | stjernetegn</annotation>
- <annotation cp="🐐" type="tts">geit</annotation>
- <annotation cp="🐪">dromedar | dyr | kamel | pukkel</annotation>
- <annotation cp="🐪" type="tts">dromedar</annotation>
- <annotation cp="🐫">dyr | kamel | pukkel</annotation>
- <annotation cp="🐫" type="tts">kamel</annotation>
- <annotation cp="🦙">alpakka | dyr | guanaco | lama | ull</annotation>
- <annotation cp="🦙" type="tts">lama</annotation>
- <annotation cp="🦒">dyr | flekker | sjiraff</annotation>
- <annotation cp="🦒" type="tts">sjiraff</annotation>
- <annotation cp="🐘">dyr | elefant</annotation>
- <annotation cp="🐘" type="tts">elefant</annotation>
- <annotation cp="🦣">dyr | mammut | stor | støttenner | ull | utdødd</annotation>
- <annotation cp="🦣" type="tts">mammut</annotation>
- <annotation cp="🦏">dyr | horn | nese | neshorn</annotation>
- <annotation cp="🦏" type="tts">neshorn</annotation>
- <annotation cp="🦛">flodhest</annotation>
- <annotation cp="🦛" type="tts">flodhest</annotation>
- <annotation cp="🐭">dyr | fjes | mus | musefjes</annotation>
- <annotation cp="🐭" type="tts">musefjes</annotation>
- <annotation cp="🐁">dyr | mus</annotation>
- <annotation cp="🐁" type="tts">mus</annotation>
- <annotation cp="🐀">dyr | rotte</annotation>
- <annotation cp="🐀" type="tts">rotte</annotation>
- <annotation cp="🐹">dyr | fjes | hamster</annotation>
- <annotation cp="🐹" type="tts">hamster</annotation>
- <annotation cp="🐰">dyr | fjes | kanin | kaninfjes</annotation>
- <annotation cp="🐰" type="tts">kaninfjes</annotation>
- <annotation cp="🐇">dyr | hare | kanin</annotation>
- <annotation cp="🐇" type="tts">kanin</annotation>
- <annotation cp="🐿">dyr | ekorn | jordekorn</annotation>
- <annotation cp="🐿" type="tts">ekorn</annotation>
- <annotation cp="🦫">bever | dam | dyr</annotation>
- <annotation cp="🦫" type="tts">bever</annotation>
- <annotation cp="🦔">dyr | pigger | piggsvin | pinnsvin</annotation>
- <annotation cp="🦔" type="tts">pinnsvin</annotation>
- <annotation cp="🦇">dyr | flaggermus | vampyr</annotation>
- <annotation cp="🦇" type="tts">flaggermus</annotation>
- <annotation cp="🐻">bjørn | dyr | fjes</annotation>
- <annotation cp="🐻" type="tts">bjørn</annotation>
- <annotation cp="🐻❄">arktis | bjørn | dyr | hvit | isbjørn</annotation>
- <annotation cp="🐻❄" type="tts">isbjørn</annotation>
- <annotation cp="🐨">dyr | koala | koalabjørn</annotation>
- <annotation cp="🐨" type="tts">koala</annotation>
- <annotation cp="🐼">dyr | fjes | panda</annotation>
- <annotation cp="🐼" type="tts">panda</annotation>
- <annotation cp="🦥">dovendyr | dyr | lat | treg</annotation>
- <annotation cp="🦥" type="tts">dovendyr</annotation>
- <annotation cp="🦦">dyr | fisker | lekende | oter</annotation>
- <annotation cp="🦦" type="tts">oter</annotation>
- <annotation cp="🦨">dyr | stank | stinkdyr | stinke</annotation>
- <annotation cp="🦨" type="tts">stinkdyr</annotation>
- <annotation cp="🦘">Australia | dyr | hoppe | kenguru | pungdyr</annotation>
- <annotation cp="🦘" type="tts">kenguru</annotation>
- <annotation cp="🦡">grevling | skadedyr</annotation>
- <annotation cp="🦡" type="tts">grevling</annotation>
- <annotation cp="🐾">avtrykk | dyr | poteavtrykk | poter | spor</annotation>
- <annotation cp="🐾" type="tts">poteavtrykk</annotation>
- <annotation cp="🦃">fugl | kalkun</annotation>
- <annotation cp="🦃" type="tts">kalkun</annotation>
- <annotation cp="🐔">dyr | fugl | høne</annotation>
- <annotation cp="🐔" type="tts">høne</annotation>
- <annotation cp="🐓">dyr | fugl | hane</annotation>
- <annotation cp="🐓" type="tts">hane</annotation>
- <annotation cp="🐣">dyr | fugl | klekking | kylling | nyklekket kylling</annotation>
- <annotation cp="🐣" type="tts">nyklekket kylling</annotation>
- <annotation cp="🐤">baby | dyr | fugl | kylling</annotation>
- <annotation cp="🐤" type="tts">kylling</annotation>
- <annotation cp="🐥">baby | dyr | fugl | kylling | kylling forfra</annotation>
- <annotation cp="🐥" type="tts">kylling forfra</annotation>
- <annotation cp="🐦">dyr | fugl</annotation>
- <annotation cp="🐦" type="tts">fugl</annotation>
- <annotation cp="🐧">dyr | fugl | pingvin</annotation>
- <annotation cp="🐧" type="tts">pingvin</annotation>
- <annotation cp="🕊">due | dyr | fly | fred | fredsdue | fugl</annotation>
- <annotation cp="🕊" type="tts">fredsdue</annotation>
- <annotation cp="🦅">dyr | fugl | ørn</annotation>
- <annotation cp="🦅" type="tts">ørn</annotation>
- <annotation cp="🦆">and | dyr | fugl</annotation>
- <annotation cp="🦆" type="tts">and</annotation>
- <annotation cp="🦢">den stygge andungen | fugl | svane</annotation>
- <annotation cp="🦢" type="tts">svane</annotation>
- <annotation cp="🦉">dyr | fugl | ugle | vis</annotation>
- <annotation cp="🦉" type="tts">ugle</annotation>
- <annotation cp="🦤">dodo | dronte | Mauritius | stor | utdødd</annotation>
- <annotation cp="🦤" type="tts">dronte</annotation>
- <annotation cp="🪶">fjær | fjærdrakt | fugl | lett</annotation>
- <annotation cp="🪶" type="tts">fjær</annotation>
- <annotation cp="🦩">flamingo | prangende | tropisk</annotation>
- <annotation cp="🦩" type="tts">flamingo</annotation>
- <annotation cp="🦚">fugl | påfugl | prangende | stolt</annotation>
- <annotation cp="🦚" type="tts">påfugl</annotation>
- <annotation cp="🦜">fugl | papegøye | pirat | snakkende | snakker</annotation>
- <annotation cp="🦜" type="tts">papegøye</annotation>
- <annotation cp="🐸">dyr | fjes | frosk</annotation>
- <annotation cp="🐸" type="tts">frosk</annotation>
- <annotation cp="🐊">dyr | krokodille</annotation>
- <annotation cp="🐊" type="tts">krokodille</annotation>
- <annotation cp="🐢">dyr | skilpadde</annotation>
- <annotation cp="🐢" type="tts">skilpadde</annotation>
- <annotation cp="🦎">dyr | firfisle | øgle | reptil</annotation>
- <annotation cp="🦎" type="tts">firfisle</annotation>
- <annotation cp="🐍">dyr | orm | slange | slangebæreren | stjernebilde | stjernetegn</annotation>
- <annotation cp="🐍" type="tts">slange</annotation>
- <annotation cp="🐲">drage | dragefjes | dyr | eventyr | fjes</annotation>
- <annotation cp="🐲" type="tts">dragefjes</annotation>
- <annotation cp="🐉">drage | dyr | eventyr</annotation>
- <annotation cp="🐉" type="tts">drage</annotation>
- <annotation cp="🦕">brachiosaurus | brontosaurus | dinosaur | diplodocus | sauropod</annotation>
- <annotation cp="🦕" type="tts">sauropod</annotation>
- <annotation cp="🦖">dinosaur | T-Rex | Tyrannosaurus Rex</annotation>
- <annotation cp="🦖" type="tts">T-Rex</annotation>
- <annotation cp="🐳">dyr | hval | sprutende hval | spruter</annotation>
- <annotation cp="🐳" type="tts">sprutende hval</annotation>
- <annotation cp="🐋">dyr | hval</annotation>
- <annotation cp="🐋" type="tts">hval</annotation>
- <annotation cp="🐬">delfin | dyr</annotation>
- <annotation cp="🐬" type="tts">delfin</annotation>
- <annotation cp="🦭">dyr | sel | sjøløve</annotation>
- <annotation cp="🦭" type="tts">sel</annotation>
- <annotation cp="🐟">dyr | fisk | fiskene | stjernebilde | stjernetegn</annotation>
- <annotation cp="🐟" type="tts">fisk</annotation>
- <annotation cp="🐠">dyr | fisk | tropisk</annotation>
- <annotation cp="🐠" type="tts">tropisk fisk</annotation>
- <annotation cp="🐡">dyr | fisk | kulefisk</annotation>
- <annotation cp="🐡" type="tts">kulefisk</annotation>
- <annotation cp="🦈">fisk | hai</annotation>
- <annotation cp="🦈" type="tts">hai</annotation>
- <annotation cp="🐙">blekksprut | bløtdyr | dyr</annotation>
- <annotation cp="🐙" type="tts">blekksprut</annotation>
- <annotation cp="🐚">dyr | skjell | spiralskjell</annotation>
- <annotation cp="🐚" type="tts">spiralskjell</annotation>
- <annotation cp="🐌">dyr | snegle</annotation>
- <annotation cp="🐌" type="tts">snegle</annotation>
- <annotation cp="🦋">dyr | insekt | pen | sommer | sommerfugl</annotation>
- <annotation cp="🦋" type="tts">sommerfugl</annotation>
- <annotation cp="🐛">åme | dyr | insekt | kryp | larve</annotation>
- <annotation cp="🐛" type="tts">insekt</annotation>
- <annotation cp="🐜">dyr | insekt | maur</annotation>
- <annotation cp="🐜" type="tts">maur</annotation>
- <annotation cp="🐝">bie | dyr | honningbie | insekt</annotation>
- <annotation cp="🐝" type="tts">honningbie</annotation>
- <annotation cp="🪲">bille | dyr | insekt</annotation>
- <annotation cp="🪲" type="tts">bille</annotation>
- <annotation cp="🐞">bille | dyr | insekt | marihøne</annotation>
- <annotation cp="🐞" type="tts">marihøne</annotation>
- <annotation cp="🦗">dyr | gresshoppe | insekt</annotation>
- <annotation cp="🦗" type="tts">gresshoppe</annotation>
- <annotation cp="🪳">dyr | insekt | kakerlakk | utøy</annotation>
- <annotation cp="🪳" type="tts">kakerlakk</annotation>
- <annotation cp="🕷">dyr | edderkopp | insekt</annotation>
- <annotation cp="🕷" type="tts">edderkopp</annotation>
- <annotation cp="🕸">edderkopp | nett | spindelvev</annotation>
- <annotation cp="🕸" type="tts">spindelvev</annotation>
- <annotation cp="🦂">dyr | skorpion | skorpionen | stjernebilde | stjernetegn</annotation>
- <annotation cp="🦂" type="tts">skorpion</annotation>
- <annotation cp="🦟">feber | insekt | malaria | mygg | sykdom | virus</annotation>
- <annotation cp="🦟" type="tts">mygg</annotation>
- <annotation cp="🪰">dyr | flue | forråtnelse | insekt | larver | råtne | sykdom</annotation>
- <annotation cp="🪰" type="tts">flue</annotation>
- <annotation cp="🪱">dyr | leddorm | makk | mark | meitemakk | meitemark | parasitt</annotation>
- <annotation cp="🪱" type="tts">mark</annotation>
- <annotation cp="🦠">amøbe | bakterie | mikrobe | virus</annotation>
- <annotation cp="🦠" type="tts">mikrobe</annotation>
- <annotation cp="💐">blomst | blomster | bukett | romantikk</annotation>
- <annotation cp="💐" type="tts">bukett</annotation>
- <annotation cp="🌸">blomst | kirsebær | kirsebærblomst</annotation>
- <annotation cp="🌸" type="tts">kirsebærblomst</annotation>
- <annotation cp="💮">blomst | blomsterstempel | hvit blomst | stempel</annotation>
- <annotation cp="💮" type="tts">hvit blomst</annotation>
- <annotation cp="🏵">plante | rosett</annotation>
- <annotation cp="🏵" type="tts">rosett</annotation>
- <annotation cp="🌹">blomst | rose</annotation>
- <annotation cp="🌹" type="tts">rose</annotation>
- <annotation cp="🥀">blomst | tørket | vissen</annotation>
- <annotation cp="🥀" type="tts">vissen blomst</annotation>
- <annotation cp="🌺">blomst | hibiskus</annotation>
- <annotation cp="🌺" type="tts">hibiskus</annotation>
- <annotation cp="🌻">blomst | sol | solsikke</annotation>
- <annotation cp="🌻" type="tts">solsikke</annotation>
- <annotation cp="🌼">blomst | plante</annotation>
- <annotation cp="🌼" type="tts">blomst</annotation>
- <annotation cp="🌷">blomst | tulipan</annotation>
- <annotation cp="🌷" type="tts">tulipan</annotation>
- <annotation cp="🌱">plante | spire | ung</annotation>
- <annotation cp="🌱" type="tts">spire</annotation>
- <annotation cp="🪴">dyrke | hus | kjedelig | plante | potteplante | ubrukelig | vanne</annotation>
- <annotation cp="🪴" type="tts">potteplante</annotation>
- <annotation cp="🌲">barnåler | bartre | eviggrønt tre | gran | juletre | tre</annotation>
- <annotation cp="🌲" type="tts">bartre</annotation>
- <annotation cp="🌳">blader | løvtre | tre</annotation>
- <annotation cp="🌳" type="tts">løvtre</annotation>
- <annotation cp="🌴">palme | palmetre | tre</annotation>
- <annotation cp="🌴" type="tts">palme</annotation>
- <annotation cp="🌵">kaktus | plante</annotation>
- <annotation cp="🌵" type="tts">kaktus</annotation>
- <annotation cp="🌾">aks | plante | ris | risplante | siv | strå</annotation>
- <annotation cp="🌾" type="tts">risplante</annotation>
- <annotation cp="🌿">blader | plante | urt | urteblader</annotation>
- <annotation cp="🌿" type="tts">urteblader</annotation>
- <annotation cp="☘">kløver | plante | trekløver</annotation>
- <annotation cp="☘" type="tts">trekløver</annotation>
- <annotation cp="🍀">4 | firkløver | flaks | hell | kløver | plante</annotation>
- <annotation cp="🍀" type="tts">firkløver</annotation>
- <annotation cp="🍁">blad | høstblad | lønn | lønneblad</annotation>
- <annotation cp="🍁" type="tts">lønneblad</annotation>
- <annotation cp="🍂">blad | fallende | høstblad | løv</annotation>
- <annotation cp="🍂" type="tts">høstblad</annotation>
- <annotation cp="🍃">blader i vind | blåse | blåser | blåst | løv i vind | vind</annotation>
- <annotation cp="🍃" type="tts">blader i vind</annotation>
- <annotation cp="🍇">drueklase | druer | frukt</annotation>
- <annotation cp="🍇" type="tts">druer</annotation>
- <annotation cp="🍈">frukt | honningmelon | melon</annotation>
- <annotation cp="🍈" type="tts">honningmelon</annotation>
- <annotation cp="🍉">frukt | melon | vannmelon</annotation>
- <annotation cp="🍉" type="tts">vannmelon</annotation>
- <annotation cp="🍊">appelsin | frukt | klementin | mandarin</annotation>
- <annotation cp="🍊" type="tts">mandarin</annotation>
- <annotation cp="🍋">frukt | sitron | sitrus</annotation>
- <annotation cp="🍋" type="tts">sitron</annotation>
- <annotation cp="🍌">banan | frukt</annotation>
- <annotation cp="🍌" type="tts">banan</annotation>
- <annotation cp="🍍">ananas | frukt</annotation>
- <annotation cp="🍍" type="tts">ananas</annotation>
- <annotation cp="🥭">frukt | mango | tropisk</annotation>
- <annotation cp="🥭" type="tts">mango</annotation>
- <annotation cp="🍎">eple | frukt | rød | rødt</annotation>
- <annotation cp="🍎" type="tts">rødt eple</annotation>
- <annotation cp="🍏">eple | frukt | grønn | grønt</annotation>
- <annotation cp="🍏" type="tts">grønt eple</annotation>
- <annotation cp="🍐">frukt | pære</annotation>
- <annotation cp="🍐" type="tts">pære</annotation>
- <annotation cp="🍑">fersken | frukt</annotation>
- <annotation cp="🍑" type="tts">fersken</annotation>
- <annotation cp="🍒">bær | kirsebær | moreller</annotation>
- <annotation cp="🍒" type="tts">kirsebær</annotation>
- <annotation cp="🍓">bær | jordbær</annotation>
- <annotation cp="🍓" type="tts">jordbær</annotation>
- <annotation cp="🫐">bær | blå | blåbær</annotation>
- <annotation cp="🫐" type="tts">blåbær</annotation>
- <annotation cp="🥝">frukt | kiwi | mat</annotation>
- <annotation cp="🥝" type="tts">kiwi</annotation>
- <annotation cp="🍅">frukt | grønnsak | tomat</annotation>
- <annotation cp="🍅" type="tts">tomat</annotation>
- <annotation cp="🫒">mat | oliven</annotation>
- <annotation cp="🫒" type="tts">oliven</annotation>
- <annotation cp="🥥">kokos | kokosnøtt | palme | piña colada</annotation>
- <annotation cp="🥥" type="tts">kokosnøtt</annotation>
- <annotation cp="🥑">avokado | frukt | mat</annotation>
- <annotation cp="🥑" type="tts">avokado</annotation>
- <annotation cp="🍆">aubergine | grønnsak</annotation>
- <annotation cp="🍆" type="tts">aubergine</annotation>
- <annotation cp="🥔">grønnsak | mat | potet</annotation>
- <annotation cp="🥔" type="tts">potet</annotation>
- <annotation cp="🥕">grønnsak | gulrot | mat | rot</annotation>
- <annotation cp="🥕" type="tts">gulrot</annotation>
- <annotation cp="🌽">mais | maiskolbe</annotation>
- <annotation cp="🌽" type="tts">maiskolbe</annotation>
- <annotation cp="🌶">chili | plante | rød | sterk</annotation>
- <annotation cp="🌶" type="tts">rød chili</annotation>
- <annotation cp="🫑">capsicum | chili | grønnsak | paprika</annotation>
- <annotation cp="🫑" type="tts">paprika</annotation>
- <annotation cp="🥒">agurk | grønnsak | mat | sylteagurk</annotation>
- <annotation cp="🥒" type="tts">agurk</annotation>
- <annotation cp="🥬">bladgrønnsaker | bladsalat | grønnkål | kål | kinakål | pak choy</annotation>
- <annotation cp="🥬" type="tts">bladgrønnsaker</annotation>
- <annotation cp="🥦">brokkoli | grønnsak</annotation>
- <annotation cp="🥦" type="tts">brokkoli</annotation>
- <annotation cp="🧄">hvitløk | smakstilsetning</annotation>
- <annotation cp="🧄" type="tts">hvitløk</annotation>
- <annotation cp="🧅">løk | smakstilsetning</annotation>
- <annotation cp="🧅" type="tts">løk</annotation>
- <annotation cp="🍄">fluesopp | sopp</annotation>
- <annotation cp="🍄" type="tts">sopp</annotation>
- <annotation cp="🥜">grønnsak | mat | nøtt | peanøtt | peanøtter</annotation>
- <annotation cp="🥜" type="tts">peanøtter</annotation>
- <annotation cp="🌰">kastanje | kastanjenøtt | nøtt</annotation>
- <annotation cp="🌰" type="tts">kastanje</annotation>
- <annotation cp="🍞">brød | loff</annotation>
- <annotation cp="🍞" type="tts">brød</annotation>
- <annotation cp="🥐">brød | croissant | fransk | mat</annotation>
- <annotation cp="🥐" type="tts">croissant</annotation>
- <annotation cp="🥖">bagett | baguette | brød | fransk | mat</annotation>
- <annotation cp="🥖" type="tts">bagett</annotation>
- <annotation cp="🫓">arepa | brød | lavash | nan | pita | pitabrød</annotation>
- <annotation cp="🫓" type="tts">pitabrød</annotation>
- <annotation cp="🥨">saltkringle | saltstenger | snacks</annotation>
- <annotation cp="🥨" type="tts">saltkringle</annotation>
- <annotation cp="🥯">bagel | bakst | påsmurt</annotation>
- <annotation cp="🥯" type="tts">bagel</annotation>
- <annotation cp="🥞">crêpe | mat | pannekake | pannekaker</annotation>
- <annotation cp="🥞" type="tts">pannekaker</annotation>
- <annotation cp="🧇">belgisk vaffel | jern | vaffel</annotation>
- <annotation cp="🧇" type="tts">belgisk vaffel</annotation>
- <annotation cp="🧀">ost | ostestykke</annotation>
- <annotation cp="🧀" type="tts">ostestykke</annotation>
- <annotation cp="🍖">kjøtt med bein | kjøttbein | restaurant</annotation>
- <annotation cp="🍖" type="tts">kjøtt med bein</annotation>
- <annotation cp="🍗">fjærfe | fjærkre | kyllingklubbe | kyllinglår | restaurant</annotation>
- <annotation cp="🍗" type="tts">kyllinglår</annotation>
- <annotation cp="🥩">biff | kjøttstykke | lammekotelett | lammeskank | svinekotelett</annotation>
- <annotation cp="🥩" type="tts">kjøttstykke</annotation>
- <annotation cp="🥓">bacon | kjøtt | mat</annotation>
- <annotation cp="🥓" type="tts">bacon</annotation>
- <annotation cp="🍔">burger | hamburger | restaurant</annotation>
- <annotation cp="🍔" type="tts">hamburger</annotation>
- <annotation cp="🍟">chips | pommes frites | restaurant | stekte poteter</annotation>
- <annotation cp="🍟" type="tts">pommes frites</annotation>
- <annotation cp="🍕">pizza | pizzabit | pizzastykke | restaurant</annotation>
- <annotation cp="🍕" type="tts">pizzastykke</annotation>
- <annotation cp="🌭">hot dog | hotdog | pølse | pølse med brød</annotation>
- <annotation cp="🌭" type="tts">pølse med brød</annotation>
- <annotation cp="🥪">brød | brødskive | sandwich | smørbrød</annotation>
- <annotation cp="🥪" type="tts">sandwich</annotation>
- <annotation cp="🌮">meksikansk | taco</annotation>
- <annotation cp="🌮" type="tts">taco</annotation>
- <annotation cp="🌯">burrito | meksikansk | wrap</annotation>
- <annotation cp="🌯" type="tts">burrito</annotation>
- <annotation cp="🫔">latinamerikansk | meksikansk | tamal | wrap</annotation>
- <annotation cp="🫔" type="tts">tamal</annotation>
- <annotation cp="🥙">falafel | fylt pitabrød | gyro | kebab | mat | pita</annotation>
- <annotation cp="🥙" type="tts">fylt pitabrød</annotation>
- <annotation cp="🧆">falafel | kikerter | kjøttboller</annotation>
- <annotation cp="🧆" type="tts">falafel</annotation>
- <annotation cp="🥚">egg | mat</annotation>
- <annotation cp="🥚" type="tts">egg</annotation>
- <annotation cp="🍳">egg | matlaging | steke | stekepanne</annotation>
- <annotation cp="🍳" type="tts">matlaging</annotation>
- <annotation cp="🥘">lav gryte med mat | mat | paella | stekepanne</annotation>
- <annotation cp="🥘" type="tts">lav gryte med mat</annotation>
- <annotation cp="🍲">gryte | gryterett | middag | middagsmat | panne</annotation>
- <annotation cp="🍲" type="tts">gryterett</annotation>
- <annotation cp="🫕">fondue | fondy | gryte | ost | sjokolade | smeltet | sveitsisk</annotation>
- <annotation cp="🫕" type="tts">fondy</annotation>
- <annotation cp="🥣">bolle med skje | congee | frokost | frokostblanding | grøt</annotation>
- <annotation cp="🥣" type="tts">bolle med skje</annotation>
- <annotation cp="🥗">grønn | mat | salat</annotation>
- <annotation cp="🥗" type="tts">grønn salat</annotation>
- <annotation cp="🍿">kino | popcorn | popkorn</annotation>
- <annotation cp="🍿" type="tts">popkorn</annotation>
- <annotation cp="🧈">meieriprodukt | smør</annotation>
- <annotation cp="🧈" type="tts">smør</annotation>
- <annotation cp="🧂">bøsse | krydder | salt</annotation>
- <annotation cp="🧂" type="tts">salt</annotation>
- <annotation cp="🥫">boks | hermetikk | hermetisk mat</annotation>
- <annotation cp="🥫" type="tts">hermetikk</annotation>
- <annotation cp="🍱">bento | bento-boks | boks | matboks</annotation>
- <annotation cp="🍱" type="tts">bento-boks</annotation>
- <annotation cp="🍘">kjeks | ris | riskjeks</annotation>
- <annotation cp="🍘" type="tts">riskjeks</annotation>
- <annotation cp="🍙">japansk | onigiri | restaurant | ris | risball</annotation>
- <annotation cp="🍙" type="tts">risball</annotation>
- <annotation cp="🍚">kokt | restaurant | ris</annotation>
- <annotation cp="🍚" type="tts">kokt ris</annotation>
- <annotation cp="🍛">curry | karri | karriris | restaurant | ris</annotation>
- <annotation cp="🍛" type="tts">karriris</annotation>
- <annotation cp="🍜">matbolle | matbolle som damper | nudelbolle | ramen | restaurant</annotation>
- <annotation cp="🍜" type="tts">matbolle som damper</annotation>
- <annotation cp="🍝">pasta | restaurant | spagetti</annotation>
- <annotation cp="🍝" type="tts">spagetti</annotation>
- <annotation cp="🍠">bakt | potet | restaurant | søtpotet</annotation>
- <annotation cp="🍠" type="tts">bakt søtpotet</annotation>
- <annotation cp="🍢">oden | restaurant | sjømat | sjømat på pinne | sjømatspyd</annotation>
- <annotation cp="🍢" type="tts">oden</annotation>
- <annotation cp="🍣">restaurant | sushi</annotation>
- <annotation cp="🍣" type="tts">sushi</annotation>
- <annotation cp="🍤">fritert reke | grillet scampi | kongereke | restaurant | scampi | tempura</annotation>
- <annotation cp="🍤" type="tts">fritert reke</annotation>
- <annotation cp="🍥">fisk | fiskekake med mønster | restaurant</annotation>
- <annotation cp="🍥" type="tts">fiskekake med mønster</annotation>
- <annotation cp="🥮">festival | høst | månekake | yuebing</annotation>
- <annotation cp="🥮" type="tts">månekake</annotation>
- <annotation cp="🍡">dango | japansk | restaurant | riskonfekt</annotation>
- <annotation cp="🍡" type="tts">dango</annotation>
- <annotation cp="🥟">dumpling | empanada | gyoza | jiaozi | pirog</annotation>
- <annotation cp="🥟" type="tts">dumpling</annotation>
- <annotation cp="🥠">fortune cookie | lykkekake | spådom</annotation>
- <annotation cp="🥠" type="tts">lykkekake</annotation>
- <annotation cp="🥡">takeaway-boks | takeaway-eske</annotation>
- <annotation cp="🥡" type="tts">takeaway-eske</annotation>
- <annotation cp="🦀">dyr | krabbe | krepsen | stjernebilde | stjernetegn</annotation>
- <annotation cp="🦀" type="tts">krabbe</annotation>
- <annotation cp="🦞">bisque | hummer | klør | sjømat | skalldyr</annotation>
- <annotation cp="🦞" type="tts">hummer</annotation>
- <annotation cp="🦐">dyr | liten | mat | reke</annotation>
- <annotation cp="🦐" type="tts">reke</annotation>
- <annotation cp="🦑">akkar | blekk | blekksprut | bløtdyr | dyr | sprut</annotation>
- <annotation cp="🦑" type="tts">akkar</annotation>
- <annotation cp="🦪">dykking | østers | perle</annotation>
- <annotation cp="🦪" type="tts">østers</annotation>
- <annotation cp="🍦">dessert | is | iskrem | restaurant | soft-is | softis</annotation>
- <annotation cp="🍦" type="tts">soft-is</annotation>
- <annotation cp="🍧">dessert | is | restaurant | shave-ice | slush-is</annotation>
- <annotation cp="🍧" type="tts">slush-is</annotation>
- <annotation cp="🍨">dessert | is | iskrem | restaurant</annotation>
- <annotation cp="🍨" type="tts">iskrem</annotation>
- <annotation cp="🍩">dessert | donut | restaurant | smultring</annotation>
- <annotation cp="🍩" type="tts">donut</annotation>
- <annotation cp="🍪">cookie | dessert | kjeks | restaurant</annotation>
- <annotation cp="🍪" type="tts">kjeks</annotation>
- <annotation cp="🎂">bursdag | bursdagskake | dessert | feiring | fødselsdag | kake</annotation>
- <annotation cp="🎂" type="tts">bursdagskake</annotation>
- <annotation cp="🍰">dessert | formkake | kake | kakestykke</annotation>
- <annotation cp="🍰" type="tts">kakestykke</annotation>
- <annotation cp="🧁">bakst | cupcake | søt</annotation>
- <annotation cp="🧁" type="tts">cupcake</annotation>
- <annotation cp="🥧">butterdeig | fyll | pai</annotation>
- <annotation cp="🥧" type="tts">pai</annotation>
- <annotation cp="🍫">sjokoladeplate</annotation>
- <annotation cp="🍫" type="tts">sjokoladeplate</annotation>
- <annotation cp="🍬">godteri | karamell | smågodt | søtsaker | sukkertøy</annotation>
- <annotation cp="🍬" type="tts">godteri</annotation>
- <annotation cp="🍭">kjærlighet på pinne | sukkertøy</annotation>
- <annotation cp="🍭" type="tts">kjærlighet på pinne</annotation>
- <annotation cp="🍮">dessert | karamellpudding | pudding</annotation>
- <annotation cp="🍮" type="tts">pudding</annotation>
- <annotation cp="🍯">honningkrukke | krukke</annotation>
- <annotation cp="🍯" type="tts">honningkrukke</annotation>
- <annotation cp="🍼">babyflaske | drikke | melk | tåteflaske</annotation>
- <annotation cp="🍼" type="tts">tåteflaske</annotation>
- <annotation cp="🥛">drikke | glass | melk | melkeglass</annotation>
- <annotation cp="🥛" type="tts">melkeglass</annotation>
- <annotation cp="☕">drikke | kaffe | rykende | te | varm</annotation>
- <annotation cp="☕" type="tts">varm drikke</annotation>
- <annotation cp="🫖">drikke | kanne | te | tekanne</annotation>
- <annotation cp="🫖" type="tts">tekanne</annotation>
- <annotation cp="🍵">drikke | suppe | te | tekopp</annotation>
- <annotation cp="🍵" type="tts">tekopp</annotation>
- <annotation cp="🍶">drikke | flaske | karaffel | mugge og kopp | sake</annotation>
- <annotation cp="🍶" type="tts">sake</annotation>
- <annotation cp="🍾">bar | drikke | flaske | flaske med sprettkork | kork | sprette</annotation>
- <annotation cp="🍾" type="tts">flaske med sprettkork</annotation>
- <annotation cp="🍷">drikke | glass | rødvin | vin | vinglass</annotation>
- <annotation cp="🍷" type="tts">vinglass</annotation>
- <annotation cp="🍸">bar | cocktaildrink | cocktailglass | drink</annotation>
- <annotation cp="🍸" type="tts">cocktailglass</annotation>
- <annotation cp="🍹">bar | drink | juice | tropisk drink</annotation>
- <annotation cp="🍹" type="tts">tropisk drink</annotation>
- <annotation cp="🍺">bar | halvliter | ølglass | ølkrus | pils | pilsner</annotation>
- <annotation cp="🍺" type="tts">ølkrus</annotation>
- <annotation cp="🍻">bar | halvliter | øl | ølglass | ølkrus | ølkrus som skåler | pils</annotation>
- <annotation cp="🍻" type="tts">ølkrus som skåler</annotation>
- <annotation cp="🥂">drink | feiring | glass | glass som skåler | skål</annotation>
- <annotation cp="🥂" type="tts">glass som skåler</annotation>
- <annotation cp="🥃">brennevin | glass | shot | sprit | whisky | whiskyglass</annotation>
- <annotation cp="🥃" type="tts">whiskyglass</annotation>
- <annotation cp="🥤">brus | juice | jus | kopp med sugerør</annotation>
- <annotation cp="🥤" type="tts">kopp med sugerør</annotation>
- <annotation cp="🧋">boble-te | bobler | kuler | melk | perler | te</annotation>
- <annotation cp="🧋" type="tts">boble-te</annotation>
- <annotation cp="🧃">drikkekartong | juicekartong | juskartong</annotation>
- <annotation cp="🧃" type="tts">drikkekartong</annotation>
- <annotation cp="🧉">drikke | mate</annotation>
- <annotation cp="🧉" type="tts">mate</annotation>
- <annotation cp="🧊">isbit | isterning | kald</annotation>
- <annotation cp="🧊" type="tts">isterning</annotation>
- <annotation cp="🥢">hashi | spisepinner</annotation>
- <annotation cp="🥢" type="tts">spisepinner</annotation>
- <annotation cp="🍽">gaffel | kniv | matlaging | tallerken | tallerken med kniv og gaffel</annotation>
- <annotation cp="🍽" type="tts">tallerken med kniv og gaffel</annotation>
- <annotation cp="🍴">gaffel | kniv | kniv og gaffel | matlaging</annotation>
- <annotation cp="🍴" type="tts">kniv og gaffel</annotation>
- <annotation cp="🥄">bestikk | skje</annotation>
- <annotation cp="🥄" type="tts">skje</annotation>
- <annotation cp="🔪">kniv | kokkekniv | matlaging | våpen | verktøy</annotation>
- <annotation cp="🔪" type="tts">kokkekniv</annotation>
- <annotation cp="🏺">amfora | drikke | krukke | matlaging | stjernebilde | stjernetegn | vannmannen</annotation>
- <annotation cp="🏺" type="tts">amfora</annotation>
- <annotation cp="🌍">Afrika | Europa | jorden | jordklode med Europa og Afrika | verden</annotation>
- <annotation cp="🌍" type="tts">jordklode med Europa og Afrika</annotation>
- <annotation cp="🌎">Amerika | jorden | jordklode med Amerika | USA | verden</annotation>
- <annotation cp="🌎" type="tts">jordklode med Amerika</annotation>
- <annotation cp="🌏">Asia | Australia | jorden | jordklode med Asia og Australia | verden</annotation>
- <annotation cp="🌏" type="tts">jordklode med Asia og Australia</annotation>
- <annotation cp="🌐">jorden | jordklode med meridianer | lengde- og breddegrader | verden</annotation>
- <annotation cp="🌐" type="tts">jordklode med meridianer</annotation>
- <annotation cp="🗺">kart | verden | verdenskart</annotation>
- <annotation cp="🗺" type="tts">verdenskart</annotation>
- <annotation cp="🗾">Japan | kart | kart over Japan</annotation>
- <annotation cp="🗾" type="tts">kart over Japan</annotation>
- <annotation cp="🧭">kompass | magnetisk | navigasjon | orientering</annotation>
- <annotation cp="🧭" type="tts">kompass</annotation>
- <annotation cp="🏔">fjell | kaldt | snø | snødekt fjell</annotation>
- <annotation cp="🏔" type="tts">snødekt fjell</annotation>
- <annotation cp="⛰">berg | fjell</annotation>
- <annotation cp="⛰" type="tts">fjell</annotation>
- <annotation cp="🌋">utbrudd | vulkan | vulkanutbrudd</annotation>
- <annotation cp="🌋" type="tts">vulkan</annotation>
- <annotation cp="🗻">fjell | fuji | Fuji-fjellet</annotation>
- <annotation cp="🗻" type="tts">Fuji-fjellet</annotation>
- <annotation cp="🏕">camping | telttur</annotation>
- <annotation cp="🏕" type="tts">telttur</annotation>
- <annotation cp="🏖">parasoll | strand | strand med parasoll</annotation>
- <annotation cp="🏖" type="tts">strand med parasoll</annotation>
- <annotation cp="🏜">ørken</annotation>
- <annotation cp="🏜" type="tts">ørken</annotation>
- <annotation cp="🏝">øde | øy</annotation>
- <annotation cp="🏝" type="tts">øde øy</annotation>
- <annotation cp="🏞">nasjonalpark | park</annotation>
- <annotation cp="🏞" type="tts">nasjonalpark</annotation>
- <annotation cp="🏟">arena | stadion</annotation>
- <annotation cp="🏟" type="tts">stadion</annotation>
- <annotation cp="🏛">bygning | klassisk</annotation>
- <annotation cp="🏛" type="tts">klassisk bygning</annotation>
- <annotation cp="🏗">bygg | byggearbeid | bygging | bygning | bygning under konstruksjon</annotation>
- <annotation cp="🏗" type="tts">bygning under konstruksjon</annotation>
- <annotation cp="🧱">mørtel | murstein | sement | vegg</annotation>
- <annotation cp="🧱" type="tts">murstein</annotation>
- <annotation cp="🪨">blokk | stein | steinblokk | tung</annotation>
- <annotation cp="🪨" type="tts">stein</annotation>
- <annotation cp="🪵">stokk | tømmer | tre | trelast</annotation>
- <annotation cp="🪵" type="tts">tre</annotation>
- <annotation cp="🛖">bungalow | hus | hytte | jurt | jurte | rundhus</annotation>
- <annotation cp="🛖" type="tts">hytte</annotation>
- <annotation cp="🏘">boliger | bygning | hus</annotation>
- <annotation cp="🏘" type="tts">boliger</annotation>
- <annotation cp="🏚">bygning | falleferdig | forlatt | hus</annotation>
- <annotation cp="🏚" type="tts">falleferdig hus</annotation>
- <annotation cp="🏠">bygning | hjem | hus</annotation>
- <annotation cp="🏠" type="tts">hus</annotation>
- <annotation cp="🏡">bygning | hjem | hus | hus med hage</annotation>
- <annotation cp="🏡" type="tts">hus med hage</annotation>
- <annotation cp="🏢">bygning | kontor | kontorbygg</annotation>
- <annotation cp="🏢" type="tts">kontorbygg</annotation>
- <annotation cp="🏣">bygning | japansk | japansk postkontor | post</annotation>
- <annotation cp="🏣" type="tts">japansk postkontor</annotation>
- <annotation cp="🏤">bygning | europeisk | post | postkontor</annotation>
- <annotation cp="🏤" type="tts">postkontor</annotation>
- <annotation cp="🏥">lege | medisin | sykehus</annotation>
- <annotation cp="🏥" type="tts">sykehus</annotation>
- <annotation cp="🏦">bank | bygning</annotation>
- <annotation cp="🏦" type="tts">bank</annotation>
- <annotation cp="🏨">bygning | hotell</annotation>
- <annotation cp="🏨" type="tts">hotell</annotation>
- <annotation cp="🏩">bygning | hotell | kjærlighetshotell</annotation>
- <annotation cp="🏩" type="tts">kjærlighetshotell</annotation>
- <annotation cp="🏪">butikk | bygning | dagligvare | dagligvarebutikk | storkiosk</annotation>
- <annotation cp="🏪" type="tts">dagligvarebutikk</annotation>
- <annotation cp="🏫">bygning | skole | skolebygning</annotation>
- <annotation cp="🏫" type="tts">skole</annotation>
- <annotation cp="🏬">butikk | kjøpesenter | varehus</annotation>
- <annotation cp="🏬" type="tts">kjøpesenter</annotation>
- <annotation cp="🏭">bygning | fabrikk</annotation>
- <annotation cp="🏭" type="tts">fabrikk</annotation>
- <annotation cp="🏯">bygning | japansk | slott</annotation>
- <annotation cp="🏯" type="tts">japansk slott</annotation>
- <annotation cp="🏰">borg | bygning | europeisk slott | festning | slott</annotation>
- <annotation cp="🏰" type="tts">slott</annotation>
- <annotation cp="💒">bryllup | kapell | romantikk</annotation>
- <annotation cp="💒" type="tts">bryllup</annotation>
- <annotation cp="🗼">tårn | Tokyo | Tokyo-tårnet</annotation>
- <annotation cp="🗼" type="tts">Tokyo-tårnet</annotation>
- <annotation cp="🗽">frihet | Frihetsgudinnen | statue</annotation>
- <annotation cp="🗽" type="tts">Frihetsgudinnen</annotation>
- <annotation cp="⛪">bygning | kirke | kors | kristen | religion</annotation>
- <annotation cp="⛪" type="tts">kirke</annotation>
- <annotation cp="🕌">bygning | islam | moské | muslim | religion</annotation>
- <annotation cp="🕌" type="tts">moské</annotation>
- <annotation cp="🛕">hindu | hindutempel | tempel</annotation>
- <annotation cp="🛕" type="tts">hindutempel</annotation>
- <annotation cp="🕍">bygning | jøde | jødisk | religion | synagoge | tempel</annotation>
- <annotation cp="🕍" type="tts">synagoge</annotation>
- <annotation cp="⛩">alter | religion | shinto | Shinto-alter</annotation>
- <annotation cp="⛩" type="tts">Shinto-alter</annotation>
- <annotation cp="🕋">islam | Kaba | muslim | religion</annotation>
- <annotation cp="🕋" type="tts">Kaba</annotation>
- <annotation cp="⛲">fontene</annotation>
- <annotation cp="⛲" type="tts">fontene</annotation>
- <annotation cp="⛺">camping | telt | telttur</annotation>
- <annotation cp="⛺" type="tts">telt</annotation>
- <annotation cp="🌁">tåke | tåkete | vær</annotation>
- <annotation cp="🌁" type="tts">tåkete</annotation>
- <annotation cp="🌃">natt | stjernenatt | stjerner</annotation>
- <annotation cp="🌃" type="tts">stjernenatt</annotation>
- <annotation cp="🏙">by | bylandskap</annotation>
- <annotation cp="🏙" type="tts">bylandskap</annotation>
- <annotation cp="🌄">fjell | fjellsol | morgen | morgensol | sol | soloppgang over fjell</annotation>
- <annotation cp="🌄" type="tts">soloppgang over fjell</annotation>
- <annotation cp="🌅">morgen | morgensol | sol | soloppgang</annotation>
- <annotation cp="🌅" type="tts">soloppgang</annotation>
- <annotation cp="🌆">by | bygning | byhorisont | bylandskap i skumring | skumring | sol | solnedgang</annotation>
- <annotation cp="🌆" type="tts">bylandskap i skumring</annotation>
- <annotation cp="🌇">bygning | skumring | sol | solnedgang | solnedgang over byhorisont</annotation>
- <annotation cp="🌇" type="tts">solnedgang</annotation>
- <annotation cp="🌉">bro | bro om natten | natt</annotation>
- <annotation cp="🌉" type="tts">bro om natten</annotation>
- <annotation cp="♨">kilder | rykende | vame kilder | varm | varme kilder</annotation>
- <annotation cp="♨" type="tts">varme kilder</annotation>
- <annotation cp="🎠">fornøyelsespark | hest | karusell | karusellhest | tivoli</annotation>
- <annotation cp="🎠" type="tts">karusellhest</annotation>
- <annotation cp="🎡">fornøyelsespark | pariserhjul | tivoli</annotation>
- <annotation cp="🎡" type="tts">pariserhjul</annotation>
- <annotation cp="🎢">berg-og-dal-bane | fornøyelsespark | tivoli</annotation>
- <annotation cp="🎢" type="tts">berg-og-dal-bane</annotation>
- <annotation cp="💈">barberer | barberersøyle | barberskilt | frisør | frisørsalong</annotation>
- <annotation cp="💈" type="tts">barberskilt</annotation>
- <annotation cp="🎪">sirkus | sirkustelt | telt | underholdning</annotation>
- <annotation cp="🎪" type="tts">sirkustelt</annotation>
- <annotation cp="🚂">fremkomstmiddel | lokmotiv | lokomotiv | tog</annotation>
- <annotation cp="🚂" type="tts">lokomotiv</annotation>
- <annotation cp="🚃">elektrisk | fremkomstmiddel | tog | togvogn | trikk</annotation>
- <annotation cp="🚃" type="tts">togvogn</annotation>
- <annotation cp="🚄">fremkomstmiddel | høyhastighetstog | lyntog | tog</annotation>
- <annotation cp="🚄" type="tts">høyhastighetstog</annotation>
- <annotation cp="🚅">fremkomstmiddel | høyhastighetstog med kulenese | lyntog | shinkansen | tog</annotation>
- <annotation cp="🚅" type="tts">høyhastighetstog med kulenese</annotation>
- <annotation cp="🚆">fremkomstmiddel | jernbane | tog</annotation>
- <annotation cp="🚆" type="tts">tog</annotation>
- <annotation cp="🚇">fremkomstmiddel | metro | t-bane | tunnelbane | undergrunnsbane</annotation>
- <annotation cp="🚇" type="tts">tunnelbane</annotation>
- <annotation cp="🚈">fremkomstmiddel | jernbane | lokaltog</annotation>
- <annotation cp="🚈" type="tts">lokaltog</annotation>
- <annotation cp="🚉">jernbane | stasjon | tog | togstasjon</annotation>
- <annotation cp="🚉" type="tts">togstasjon</annotation>
- <annotation cp="🚊">fremkomstmiddel | trikk</annotation>
- <annotation cp="🚊" type="tts">trikk</annotation>
- <annotation cp="🚝">fremkomstmiddel | monorail</annotation>
- <annotation cp="🚝" type="tts">monorail</annotation>
- <annotation cp="🚞">bane | fjell | fjellbane | fremkomstmiddel</annotation>
- <annotation cp="🚞" type="tts">fjellbane</annotation>
- <annotation cp="🚋">fremkomstmiddel | trikk | trikkevogn | vogn</annotation>
- <annotation cp="🚋" type="tts">trikkevogn</annotation>
- <annotation cp="🚌">buss | fremkomstmiddel</annotation>
- <annotation cp="🚌" type="tts">buss</annotation>
- <annotation cp="🚍">buss | fremkomstmiddel | motgående</annotation>
- <annotation cp="🚍" type="tts">motgående buss</annotation>
- <annotation cp="🚎">buss | fremkomstmiddel | trolleybuss</annotation>
- <annotation cp="🚎" type="tts">trolleybuss</annotation>
- <annotation cp="🚐">buss | kjøretøy | minibuss | van</annotation>
- <annotation cp="🚐" type="tts">minibuss</annotation>
- <annotation cp="🚑">ambulanse | bil | kjøretøy</annotation>
- <annotation cp="🚑" type="tts">ambulanse</annotation>
- <annotation cp="🚒">bil | brannbil | kjøretøy</annotation>
- <annotation cp="🚒" type="tts">brannbil</annotation>
- <annotation cp="🚓">bil | kjøretøy | politibil</annotation>
- <annotation cp="🚓" type="tts">politibil</annotation>
- <annotation cp="🚔">bil | kjøretøy | motgående politibil</annotation>
- <annotation cp="🚔" type="tts">motgående politibil</annotation>
- <annotation cp="🚕">bil | kjøretøy | taxi</annotation>
- <annotation cp="🚕" type="tts">taxi</annotation>
- <annotation cp="🚖">bil | kjøretøy | motgående | taxi</annotation>
- <annotation cp="🚖" type="tts">motgående taxi</annotation>
- <annotation cp="🚗">bil | kjøretøy</annotation>
- <annotation cp="🚗" type="tts">bil</annotation>
- <annotation cp="🚘">bil | kjøretøy | motgående</annotation>
- <annotation cp="🚘" type="tts">motgående bil</annotation>
- <annotation cp="🚙">bil | kjøretøy | SUV</annotation>
- <annotation cp="🚙" type="tts">SUV</annotation>
- <annotation cp="🛻">lastebil | liten | pickup</annotation>
- <annotation cp="🛻" type="tts">pickup</annotation>
- <annotation cp="🚚">bil | kjøretøy | varebil</annotation>
- <annotation cp="🚚" type="tts">varebil</annotation>
- <annotation cp="🚛">bil | kjøretøy | lastebil | trailer | trekkvogn</annotation>
- <annotation cp="🚛" type="tts">lastebil</annotation>
- <annotation cp="🚜">kjøretøy | traktor</annotation>
- <annotation cp="🚜" type="tts">traktor</annotation>
- <annotation cp="🏎">bil | billøp | motorsport | racerbil</annotation>
- <annotation cp="🏎" type="tts">racerbil</annotation>
- <annotation cp="🏍">motorsport | motorsykkel | motorsyklist</annotation>
- <annotation cp="🏍" type="tts">motorsykkel</annotation>
- <annotation cp="🛵">motor | motorsykkel | scooter</annotation>
- <annotation cp="🛵" type="tts">scooter</annotation>
- <annotation cp="🦽">manuell rullestol | tilgjengelighet</annotation>
- <annotation cp="🦽" type="tts">manuell rullestol</annotation>
- <annotation cp="🦼">motorisert rullestol | tilgjengelighet</annotation>
- <annotation cp="🦼" type="tts">motorisert rullestol</annotation>
- <annotation cp="🛺">autorickshaw | mototaxi | trehjuling | tuk-tuk</annotation>
- <annotation cp="🛺" type="tts">autorickshaw</annotation>
- <annotation cp="🚲">kjøretøy | sykkel</annotation>
- <annotation cp="🚲" type="tts">sykkel</annotation>
- <annotation cp="🛴">spark | sparkesykkel | sykkel</annotation>
- <annotation cp="🛴" type="tts">sparkesykkel</annotation>
- <annotation cp="🛹">brett | rullebrett | skateboard</annotation>
- <annotation cp="🛹" type="tts">skateboard</annotation>
- <annotation cp="🛼">rulle | rulleskøyter | skøyter</annotation>
- <annotation cp="🛼" type="tts">rulleskøyter</annotation>
- <annotation cp="🚏">buss | busstopp | holdeplass</annotation>
- <annotation cp="🚏" type="tts">busstopp</annotation>
- <annotation cp="🛣">motorvei | vei</annotation>
- <annotation cp="🛣" type="tts">motorvei</annotation>
- <annotation cp="🛤">jernbane | jernbanespor | tog</annotation>
- <annotation cp="🛤" type="tts">jernbanespor</annotation>
- <annotation cp="🛢">fat | olje | oljefat | tønne</annotation>
- <annotation cp="🛢" type="tts">oljefat</annotation>
- <annotation cp="⛽">bensin | bensinpumpe | bensinstasjon | diesel | stasjon</annotation>
- <annotation cp="⛽" type="tts">bensinpumpe</annotation>
- <annotation cp="🚨">bil | kjøretøy | lys | politi | politilys | roterende | signal</annotation>
- <annotation cp="🚨" type="tts">politilys</annotation>
- <annotation cp="🚥">horisontale lys | horisontale trafikklys | trafikk</annotation>
- <annotation cp="🚥" type="tts">horisontale trafikklys</annotation>
- <annotation cp="🚦">trafikk | vertikale lys | vertikale trafiklys</annotation>
- <annotation cp="🚦" type="tts">vertikale trafiklys</annotation>
- <annotation cp="🛑">åttekantet | skilt | stopp | stoppskilt</annotation>
- <annotation cp="🛑" type="tts">stoppskilt</annotation>
- <annotation cp="🚧">anleggsarbeid | byggeplass | byggeskilt | skilt</annotation>
- <annotation cp="🚧" type="tts">anleggsarbeid</annotation>
- <annotation cp="⚓">anker | båt | skip | verktøy</annotation>
- <annotation cp="⚓" type="tts">anker</annotation>
- <annotation cp="⛵">båt | seilbåt</annotation>
- <annotation cp="⛵" type="tts">seilbåt</annotation>
- <annotation cp="🛶">båt | kano</annotation>
- <annotation cp="🛶" type="tts">kano</annotation>
- <annotation cp="🚤">båt | fartøy | speedbåt</annotation>
- <annotation cp="🚤" type="tts">speedbåt</annotation>
- <annotation cp="🛳">båt | fremkomstmiddel | passasjer | passasjerskip | skip</annotation>
- <annotation cp="🛳" type="tts">passasjerskip</annotation>
- <annotation cp="⛴">båt | ferge | passasjer</annotation>
- <annotation cp="⛴" type="tts">ferge</annotation>
- <annotation cp="🛥">båt | fremkomstmiddel | motorbåt</annotation>
- <annotation cp="🛥" type="tts">motorbåt</annotation>
- <annotation cp="🚢">båt | fartøy | fremkomstmiddel | skip</annotation>
- <annotation cp="🚢" type="tts">skip</annotation>
- <annotation cp="✈">fly | fremkomstmiddel</annotation>
- <annotation cp="✈" type="tts">fly</annotation>
- <annotation cp="🛩">fly | fremkomstmiddel | lite fly</annotation>
- <annotation cp="🛩" type="tts">lite fly</annotation>
- <annotation cp="🛫">avgang | avganger | fly | fly som tar av | flyavgang | fremkomstmiddel | innsjekk</annotation>
- <annotation cp="🛫" type="tts">fly som tar av</annotation>
- <annotation cp="🛬">ankomme | ankomst | ankomster | fly | fly som lander | fremkomstmiddel | lande | landing</annotation>
- <annotation cp="🛬" type="tts">fly som lander</annotation>
- <annotation cp="🪂">fallskjerm | fallskjermhopp | hangglider | hengeglider | paragliding</annotation>
- <annotation cp="🪂" type="tts">fallskjerm</annotation>
- <annotation cp="💺">sete | stol</annotation>
- <annotation cp="💺" type="tts">sete</annotation>
- <annotation cp="🚁">fremkomstmiddel | helikopter</annotation>
- <annotation cp="🚁" type="tts">helikopter</annotation>
- <annotation cp="🚟">fremkomstmiddel | svevebane</annotation>
- <annotation cp="🚟" type="tts">svevebane</annotation>
- <annotation cp="🚠">fremkomstmiddel | kabelbane</annotation>
- <annotation cp="🚠" type="tts">kabelbane</annotation>
- <annotation cp="🚡">fremkomstmiddel | gondolbane | taubane</annotation>
- <annotation cp="🚡" type="tts">taubane</annotation>
- <annotation cp="🛰">satellitt | verdensrommet</annotation>
- <annotation cp="🛰" type="tts">satellitt</annotation>
- <annotation cp="🚀">fremkomstmiddel | rakett | verdensrommet</annotation>
- <annotation cp="🚀" type="tts">rakett</annotation>
- <annotation cp="🛸">flygende tallerken | UFO</annotation>
- <annotation cp="🛸" type="tts">flygende tallerken</annotation>
- <annotation cp="🛎">hotell | klokke | pikkolo | resepsjonsklokke</annotation>
- <annotation cp="🛎" type="tts">resepsjonsklokke</annotation>
- <annotation cp="🧳">bagasje | pakking | reise</annotation>
- <annotation cp="🧳" type="tts">bagasje</annotation>
- <annotation cp="⌛">ferdig timeglass | sand | tidtaker</annotation>
- <annotation cp="⌛" type="tts">ferdig timeglass</annotation>
- <annotation cp="⏳">sand | startet timeglass | tidtaker</annotation>
- <annotation cp="⏳" type="tts">startet timeglass</annotation>
- <annotation cp="⌚">armbåndsur | ur</annotation>
- <annotation cp="⌚" type="tts">armbåndsur</annotation>
- <annotation cp="⏰">alarm | klokke | vekkerklokke</annotation>
- <annotation cp="⏰" type="tts">vekkerklokke</annotation>
- <annotation cp="⏱">klokke | stoppeklokke</annotation>
- <annotation cp="⏱" type="tts">stoppeklokke</annotation>
- <annotation cp="⏲">klokke | nedtelling | tidtaker</annotation>
- <annotation cp="⏲" type="tts">tidtaker</annotation>
- <annotation cp="🕰">klokke | peisur</annotation>
- <annotation cp="🕰" type="tts">peisur</annotation>
- <annotation cp="🕛">0:00 | 12:00 | 24:00 | klokka | klokken tolv | tolv</annotation>
- <annotation cp="🕛" type="tts">klokken tolv</annotation>
- <annotation cp="🕧">0:30 | 12:30 | halv ett | klokka | klokken | klokken halv ett</annotation>
- <annotation cp="🕧" type="tts">klokken halv ett</annotation>
- <annotation cp="🕐">1:00 | 13:00 | ett | klokka | klokken</annotation>
- <annotation cp="🕐" type="tts">klokken ett</annotation>
- <annotation cp="🕜">1:30 | 13:30 | halv to | klokka | klokken | klokken halv to</annotation>
- <annotation cp="🕜" type="tts">klokken halv to</annotation>
- <annotation cp="🕑">14:00 | 2:00 | klokka | klokken | to</annotation>
- <annotation cp="🕑" type="tts">klokken to</annotation>
- <annotation cp="🕝">14:30 | 2:30 | halv tre | klokka | klokken | klokken halv tre</annotation>
- <annotation cp="🕝" type="tts">klokken halv tre</annotation>
- <annotation cp="🕒">15:00 | 3:00 | klokka | klokken | tre</annotation>
- <annotation cp="🕒" type="tts">klokken tre</annotation>
- <annotation cp="🕞">15:30 | 3:30 | halv fire | klokka | klokken | klokken halv fire</annotation>
- <annotation cp="🕞" type="tts">klokken halv fire</annotation>
- <annotation cp="🕓">16:00 | 4:00 | fire | klokka | klokken</annotation>
- <annotation cp="🕓" type="tts">klokken fire</annotation>
- <annotation cp="🕟">16:30 | 4:30 | halv fem | klokka | klokken | klokken halv fem</annotation>
- <annotation cp="🕟" type="tts">klokken halv fem</annotation>
- <annotation cp="🕔">17:00 | 5:00 | fem | klokka | klokken</annotation>
- <annotation cp="🕔" type="tts">klokken fem</annotation>
- <annotation cp="🕠">17:30 | 5:30 | halv seks | klokka | klokken | klokken halv seks</annotation>
- <annotation cp="🕠" type="tts">klokken halv seks</annotation>
- <annotation cp="🕕">18:00 | 6:00 | klokka | klokken | seks</annotation>
- <annotation cp="🕕" type="tts">klokken seks</annotation>
- <annotation cp="🕡">18:30 | 6:30 | halv sju | halv syv | klokka | klokken | klokken halv sju</annotation>
- <annotation cp="🕡" type="tts">klokken halv sju</annotation>
- <annotation cp="🕖">19:00 | 7:00 | klokka | klokken | sju | syv</annotation>
- <annotation cp="🕖" type="tts">klokken sju</annotation>
- <annotation cp="🕢">19:30 | 7:30 | halv åtte | klokka | klokken | klokken halv åtte</annotation>
- <annotation cp="🕢" type="tts">klokken halv åtte</annotation>
- <annotation cp="🕗">20:00 | 8:00 | åtte | klokka | klokken</annotation>
- <annotation cp="🕗" type="tts">klokken åtte</annotation>
- <annotation cp="🕣">20:30 | 8:30 | halv ni | klokka | klokken | klokken halv ni</annotation>
- <annotation cp="🕣" type="tts">klokken halv ni</annotation>
- <annotation cp="🕘">21:00 | 9:00 | klokka | klokken | ni</annotation>
- <annotation cp="🕘" type="tts">klokken ni</annotation>
- <annotation cp="🕤">09:30 | 21:30 | halv ti | klokka | klokken | klokken halv ti</annotation>
- <annotation cp="🕤" type="tts">klokken halv ti</annotation>
- <annotation cp="🕙">10:00 | 22:00 | klokka | klokken | ti</annotation>
- <annotation cp="🕙" type="tts">klokken ti</annotation>
- <annotation cp="🕥">10:30 | 22:30 | halv elleve | klokka | klokken | klokken halv elleve</annotation>
- <annotation cp="🕥" type="tts">klokken halv elleve</annotation>
- <annotation cp="🕚">11:00 | 23:00 | elleve | klokka | klokken</annotation>
- <annotation cp="🕚" type="tts">klokken elleve</annotation>
- <annotation cp="🕦">11:30 | 23:30 | halv tolv | klokka | klokken | klokken halv tolv</annotation>
- <annotation cp="🕦" type="tts">klokken halv tolv</annotation>
- <annotation cp="🌑">måne | mørk | nymåne</annotation>
- <annotation cp="🌑" type="tts">nymåne</annotation>
- <annotation cp="🌒">måne | månefase | ny | voksende | voksende nymåne</annotation>
- <annotation cp="🌒" type="tts">voksende nymåne</annotation>
- <annotation cp="🌓">første kvarter | halvmåne | måne | månefase | ny | voksende halvmåne</annotation>
- <annotation cp="🌓" type="tts">voksende halvmåne</annotation>
- <annotation cp="🌔">måne | månefase | ny | voksende fullmåne</annotation>
- <annotation cp="🌔" type="tts">voksende fullmåne</annotation>
- <annotation cp="🌕">full | fullmåne | hel måne | måne</annotation>
- <annotation cp="🌕" type="tts">fullmåne</annotation>
- <annotation cp="🌖">avtakende fullmåne | måne | månefase | ne</annotation>
- <annotation cp="🌖" type="tts">avtakende fullmåne</annotation>
- <annotation cp="🌗">avtakende halvmåne | halvmåne | måne | månefase | ne | siste kvarter</annotation>
- <annotation cp="🌗" type="tts">avtakende halvmåne</annotation>
- <annotation cp="🌘">avtakende | avtakende nemåne | måne | månefase | ne</annotation>
- <annotation cp="🌘" type="tts">avtakende nemåne</annotation>
- <annotation cp="🌙">måne | månesigd</annotation>
- <annotation cp="🌙" type="tts">månesigd</annotation>
- <annotation cp="🌚">ansikt | måne | nymåne | nymåne med ansikt | nymåneansikt</annotation>
- <annotation cp="🌚" type="tts">nymåneansikt</annotation>
- <annotation cp="🌛">kvartmåne med ansikt | måneansikt | nymåne med ansikt</annotation>
- <annotation cp="🌛" type="tts">nymåne med ansikt</annotation>
- <annotation cp="🌜">kvartmåne med ansikt | måneansikt | nemåne med ansikt</annotation>
- <annotation cp="🌜" type="tts">nemåne med ansikt</annotation>
- <annotation cp="🌡">temperatur | termometer | vær</annotation>
- <annotation cp="🌡" type="tts">termometer</annotation>
- <annotation cp="☀">lys | lyst | sol | solfylt | stråler | vær | verdensrommet</annotation>
- <annotation cp="☀" type="tts">sol</annotation>
- <annotation cp="🌝">ansikt | fullmåne | fullmåne med ansikt | fullmåneansikt | måne | måne med ansikt</annotation>
- <annotation cp="🌝" type="tts">fullmåneansikt</annotation>
- <annotation cp="🌞">ansikt | lys | sol | solansikt</annotation>
- <annotation cp="🌞" type="tts">solansikt</annotation>
- <annotation cp="🪐">planet med ringer | saturn</annotation>
- <annotation cp="🪐" type="tts">planet med ringer</annotation>
- <annotation cp="⭐">stjerne</annotation>
- <annotation cp="⭐" type="tts">stjerne</annotation>
- <annotation cp="🌟">glitrende | lysende stjerne | skinnende | stjerne</annotation>
- <annotation cp="🌟" type="tts">lysende stjerne</annotation>
- <annotation cp="🌠">fallende stjerne | faller | stjerne | stjerneskudd</annotation>
- <annotation cp="🌠" type="tts">stjerneskudd</annotation>
- <annotation cp="🌌">galakse | melkeveien | verdensrommet</annotation>
- <annotation cp="🌌" type="tts">melkeveien</annotation>
- <annotation cp="☁">sky | vær</annotation>
- <annotation cp="☁" type="tts">sky</annotation>
- <annotation cp="⛅">sky | sol | sol bak sky | sol og sky</annotation>
- <annotation cp="⛅" type="tts">sol bak sky</annotation>
- <annotation cp="⛈">regn | sky | sky med lyn og regn | torden | vær</annotation>
- <annotation cp="⛈" type="tts">sky med lyn og regn</annotation>
- <annotation cp="🌤">sky | sol | sol bak liten sky | vær</annotation>
- <annotation cp="🌤" type="tts">sol bak liten sky</annotation>
- <annotation cp="🌥">sky | sol | sol bak stor sky | vær</annotation>
- <annotation cp="🌥" type="tts">sol bak stor sky</annotation>
- <annotation cp="🌦">regn | sky | sol | sol bak sky med regn | vær</annotation>
- <annotation cp="🌦" type="tts">sol bak sky med regn</annotation>
- <annotation cp="🌧">regn | sky | sky med regn | vær</annotation>
- <annotation cp="🌧" type="tts">sky med regn</annotation>
- <annotation cp="🌨">kaldt | sky | sky med snø | snø | vær</annotation>
- <annotation cp="🌨" type="tts">sky med snø</annotation>
- <annotation cp="🌩">lyn | sky | sky med lyn | vær</annotation>
- <annotation cp="🌩" type="tts">sky med lyn</annotation>
- <annotation cp="🌪">sky | tornado | vær</annotation>
- <annotation cp="🌪" type="tts">tornado</annotation>
- <annotation cp="🌫">sky | tåke | vær</annotation>
- <annotation cp="🌫" type="tts">tåke</annotation>
- <annotation cp="🌬">blåse | fjes | sky | vær | vind | vindansikt</annotation>
- <annotation cp="🌬" type="tts">vindansikt</annotation>
- <annotation cp="🌀">orkan | svimmel | syklon | tornado</annotation>
- <annotation cp="🌀" type="tts">syklon</annotation>
- <annotation cp="🌈">regn | regnbue | vær</annotation>
- <annotation cp="🌈" type="tts">regnbue</annotation>
- <annotation cp="🌂">lukket paraply | regn | regnvær</annotation>
- <annotation cp="🌂" type="tts">lukket paraply</annotation>
- <annotation cp="☂">klær | paraply | regn | vær</annotation>
- <annotation cp="☂" type="tts">paraply</annotation>
- <annotation cp="☔">dråpe | klær | paraply | paraply med regndråper | regn | vær</annotation>
- <annotation cp="☔" type="tts">paraply med regndråper</annotation>
- <annotation cp="⛱">paraply | parasoll på bakken | regn | sol | vær</annotation>
- <annotation cp="⛱" type="tts">parasoll på bakken</annotation>
- <annotation cp="⚡">fare | høy | høyspenning | høyspent | lyn | spenning</annotation>
- <annotation cp="⚡" type="tts">høyspenning</annotation>
- <annotation cp="❄">kaldt | snø | snøfnugg | vær</annotation>
- <annotation cp="❄" type="tts">snøfnugg</annotation>
- <annotation cp="☃">kaldt | snø | snømann | vær</annotation>
- <annotation cp="☃" type="tts">snømann</annotation>
- <annotation cp="⛄">snø | snømann uten snø</annotation>
- <annotation cp="⛄" type="tts">snømann uten snø</annotation>
- <annotation cp="☄">komet | verdensrommet</annotation>
- <annotation cp="☄" type="tts">komet</annotation>
- <annotation cp="🔥">flamme | ild</annotation>
- <annotation cp="🔥" type="tts">ild</annotation>
- <annotation cp="💧">dråpe | drypp | tegneserie | vann</annotation>
- <annotation cp="💧" type="tts">dråpe</annotation>
- <annotation cp="🌊">bølge | hav | vann</annotation>
- <annotation cp="🌊" type="tts">bølge</annotation>
- <annotation cp="🎃">gresskar | gresskarlykt | Halloween | halloweenlykt</annotation>
- <annotation cp="🎃" type="tts">gresskarlykt</annotation>
- <annotation cp="🎄">høytid | jul | julefeiring | juletre | tre</annotation>
- <annotation cp="🎄" type="tts">juletre</annotation>
- <annotation cp="🎆">feiring | fyrverkeri | nyttår</annotation>
- <annotation cp="🎆" type="tts">fyrverkeri</annotation>
- <annotation cp="🎇">feiring | fyrverkeri | nyttår | stjerneskudd på pinne</annotation>
- <annotation cp="🎇" type="tts">stjerneskudd på pinne</annotation>
- <annotation cp="🧨">dynamitt | eksplosiver | fyrverkeri | kinaputt</annotation>
- <annotation cp="🧨" type="tts">kinaputt</annotation>
- <annotation cp="✨">* | glitrende | skinnende | stjerner</annotation>
- <annotation cp="✨" type="tts">stjerner</annotation>
- <annotation cp="🎈">ballong | feiring</annotation>
- <annotation cp="🎈" type="tts">ballong</annotation>
- <annotation cp="🎉">feiring | fest | serpentin | smell-bon-bon</annotation>
- <annotation cp="🎉" type="tts">smell-bon-bon</annotation>
- <annotation cp="🎊">feiring | fest | konfettiball | konfettikule</annotation>
- <annotation cp="🎊" type="tts">konfettiball</annotation>
- <annotation cp="🎋">feiring | papirremser | stjernefestival | tanabata | tanabatatre | tre</annotation>
- <annotation cp="🎋" type="tts">tanabatatre</annotation>
- <annotation cp="🎍">feiring | furudekorasjon | japansk høytid | nyttår</annotation>
- <annotation cp="🎍" type="tts">furudekorasjon</annotation>
- <annotation cp="🎎">festival | japansk høytid | japanske dukker</annotation>
- <annotation cp="🎎" type="tts">japanske dukker</annotation>
- <annotation cp="🎏">feiring | japansk høytid | karpe | koinobori | papirfisk</annotation>
- <annotation cp="🎏" type="tts">koinobori</annotation>
- <annotation cp="🎐">bjelle | drømmefanger | feiring | vind | vindspill</annotation>
- <annotation cp="🎐" type="tts">vindspill</annotation>
- <annotation cp="🎑">feiring | høytid | måne | månebeskuelsesseremoni | månefeiring | måneseremoni</annotation>
- <annotation cp="🎑" type="tts">månebeskuelsesseremoni</annotation>
- <annotation cp="🧧">flaks | gave | hell og lykke | hong bao | lai see | penger | rød konvolutt</annotation>
- <annotation cp="🧧" type="tts">rød konvolutt</annotation>
- <annotation cp="🎀">bånd | gavebånd | sløyfe</annotation>
- <annotation cp="🎀" type="tts">sløyfe</annotation>
- <annotation cp="🎁">bursdag | feiring | gave | innpakket | julegave | presang</annotation>
- <annotation cp="🎁" type="tts">gave</annotation>
- <annotation cp="🎗">bånd | feiring | minne | minnesløyfe | påminnelse</annotation>
- <annotation cp="🎗" type="tts">minnesløyfe</annotation>
- <annotation cp="🎟">adgang | billett | inngang | inngangsbilletter</annotation>
- <annotation cp="🎟" type="tts">inngangsbilletter</annotation>
- <annotation cp="🎫">adgang | billett | inngang | underholdning</annotation>
- <annotation cp="🎫" type="tts">billett</annotation>
- <annotation cp="🎖">feiring | medalje | militæret | militærmedalje</annotation>
- <annotation cp="🎖" type="tts">militærmedalje</annotation>
- <annotation cp="🏆">premie | trofé</annotation>
- <annotation cp="🏆" type="tts">trofé</annotation>
- <annotation cp="🏅">idrettsmedalje | medalje</annotation>
- <annotation cp="🏅" type="tts">idrettsmedalje</annotation>
- <annotation cp="🥇">førsteplass | gull | gullmedalje | medalje</annotation>
- <annotation cp="🥇" type="tts">gullmedalje</annotation>
- <annotation cp="🥈">andreplass | medalje | sølv | sølvmedalje</annotation>
- <annotation cp="🥈" type="tts">sølvmedalje</annotation>
- <annotation cp="🥉">bronse | bronsemedalje | medalje | tredjeplass</annotation>
- <annotation cp="🥉" type="tts">bronsemedalje</annotation>
- <annotation cp="⚽">ball | fotball</annotation>
- <annotation cp="⚽" type="tts">fotball</annotation>
- <annotation cp="⚾">ball | baseball | sydd</annotation>
- <annotation cp="⚾" type="tts">baseball</annotation>
- <annotation cp="🥎">ball | hanske | softball | underarm</annotation>
- <annotation cp="🥎" type="tts">softball</annotation>
- <annotation cp="🏀">ball | basketball | kurv | sport</annotation>
- <annotation cp="🏀" type="tts">basketball</annotation>
- <annotation cp="🏐">ball | kamp | spill | volleyball</annotation>
- <annotation cp="🏐" type="tts">volleyball</annotation>
- <annotation cp="🏈">amerikansk | amerikansk fotball | ball | sport</annotation>
- <annotation cp="🏈" type="tts">amerikansk fotball</annotation>
- <annotation cp="🏉">rugby | rugbyball | sport</annotation>
- <annotation cp="🏉" type="tts">rugby</annotation>
- <annotation cp="🎾">ball | racket | sport | tenninsball | tennis</annotation>
- <annotation cp="🎾" type="tts">tennis</annotation>
- <annotation cp="🥏">frisbee | ultimate</annotation>
- <annotation cp="🥏" type="tts">frisbee</annotation>
- <annotation cp="🎳">bowling | bowlingkule | kule | spill</annotation>
- <annotation cp="🎳" type="tts">bowling</annotation>
- <annotation cp="🏏">ball | balltre | cricket | kamp</annotation>
- <annotation cp="🏏" type="tts">cricket</annotation>
- <annotation cp="🏑">ball | hockey | kamp | kølle | land | landhockey</annotation>
- <annotation cp="🏑" type="tts">landhockey</annotation>
- <annotation cp="🏒">hockey | is | ishockey | kamp | kølle | puck</annotation>
- <annotation cp="🏒" type="tts">ishockey</annotation>
- <annotation cp="🥍">ball | kølle | lacrosse | mål</annotation>
- <annotation cp="🥍" type="tts">lacrosse</annotation>
- <annotation cp="🏓">ball | balltre | bord | bordtennis | kamp | racket | tennis</annotation>
- <annotation cp="🏓" type="tts">bordtennis</annotation>
- <annotation cp="🏸">badminton | birdie | fjærball | kamp | racket</annotation>
- <annotation cp="🏸" type="tts">badminton</annotation>
- <annotation cp="🥊">bokse | boksehanske | boksing | hanske | sport</annotation>
- <annotation cp="🥊" type="tts">boksehanske</annotation>
- <annotation cp="🥋">drakt | judo | kampkunst | kampsport | kampsportdrakt | karate | selvforsvar | taekwondo</annotation>
- <annotation cp="🥋" type="tts">kampsportdrakt</annotation>
- <annotation cp="🥅">mål | målnett | nett | sport</annotation>
- <annotation cp="🥅" type="tts">målnett</annotation>
- <annotation cp="⛳">golf | golfflagg | golfhull | hull</annotation>
- <annotation cp="⛳" type="tts">golfflagg</annotation>
- <annotation cp="⛸">is | skøyte | skøyter</annotation>
- <annotation cp="⛸" type="tts">skøyter</annotation>
- <annotation cp="🎣">fisk | fiskestang | fisking | fritid | natur</annotation>
- <annotation cp="🎣" type="tts">fiskestang</annotation>
- <annotation cp="🤿">dykker | dykkermaske | dykking | froskemann | snorkling</annotation>
- <annotation cp="🤿" type="tts">dykkermaske</annotation>
- <annotation cp="🎽">singlet | sport | t-skjorte | treningstopp | treningstrøye</annotation>
- <annotation cp="🎽" type="tts">treningstrøye</annotation>
- <annotation cp="🎿">ski | ski og staver | snø | staver | vintersport</annotation>
- <annotation cp="🎿" type="tts">ski</annotation>
- <annotation cp="🛷">kjelke | slede</annotation>
- <annotation cp="🛷" type="tts">kjelke</annotation>
- <annotation cp="🥌">curlingstein | sport | stein</annotation>
- <annotation cp="🥌" type="tts">curlingstein</annotation>
- <annotation cp="🎯">blink | dart | mål | midt i blinken | pilspill | treff</annotation>
- <annotation cp="🎯" type="tts">blink</annotation>
- <annotation cp="🪀">jojo | leke | opp og ned</annotation>
- <annotation cp="🪀" type="tts">jojo</annotation>
- <annotation cp="🪁">fly | papirdrage | sveve</annotation>
- <annotation cp="🪁" type="tts">papirdrage</annotation>
- <annotation cp="🎱">8 | åtte | åtterkule | biljard | spill</annotation>
- <annotation cp="🎱" type="tts">biljard</annotation>
- <annotation cp="🔮">krystallkule | spådom | spådommer</annotation>
- <annotation cp="🔮" type="tts">krystallkule</annotation>
- <annotation cp="🪄">heks | magi | trollmann | trylle | tryllestav</annotation>
- <annotation cp="🪄" type="tts">tryllestav</annotation>
- <annotation cp="🧿">amulett | charm | nazar | ondt øye | talisman</annotation>
- <annotation cp="🧿" type="tts">nazar</annotation>
- <annotation cp="🎮">konsoll | kontroller | spill | spillkonsoll | spillkontroller | TV-spill | videospill</annotation>
- <annotation cp="🎮" type="tts">videospill</annotation>
- <annotation cp="🕹">joystick | spill | styrespak | styrespake | videospill</annotation>
- <annotation cp="🕹" type="tts">joystick</annotation>
- <annotation cp="🎰">spill | spilleautomat</annotation>
- <annotation cp="🎰" type="tts">spilleautomat</annotation>
- <annotation cp="🎲">spill | terning | terningkast | terningspill</annotation>
- <annotation cp="🎲" type="tts">terning</annotation>
- <annotation cp="🧩">bit | brikke | del | pekepinn | puslespill | puslespillbrikke</annotation>
- <annotation cp="🧩" type="tts">puslespillbrikke</annotation>
- <annotation cp="🧸">bamse | leke | teddybjørn</annotation>
- <annotation cp="🧸" type="tts">teddybjørn</annotation>
- <annotation cp="🪅">feiring | fest | piñata</annotation>
- <annotation cp="🪅" type="tts">piñata</annotation>
- <annotation cp="🪆">dukke | hul | matrjosjka | matruska | russisk | russland</annotation>
- <annotation cp="🪆" type="tts">matrjosjka</annotation>
- <annotation cp="♠">farge | kort | spar | spill</annotation>
- <annotation cp="♠" type="tts">spar</annotation>
- <annotation cp="♥">farge | hjerter | kort | spill</annotation>
- <annotation cp="♥" type="tts">hjerter</annotation>
- <annotation cp="♦">diamant | farge | kort | ruter | spill</annotation>
- <annotation cp="♦" type="tts">ruter</annotation>
- <annotation cp="♣">farge | kløver | kort | spill</annotation>
- <annotation cp="♣" type="tts">kløver</annotation>
- <annotation cp="♟">bonde | brikke | sjakk</annotation>
- <annotation cp="♟" type="tts">bonde</annotation>
- <annotation cp="🃏">joker | jokerkort | kort | spillkort</annotation>
- <annotation cp="🃏" type="tts">joker</annotation>
- <annotation cp="🀄">mahjong | mahjongbrikke med rød drage | rød | spill</annotation>
- <annotation cp="🀄" type="tts">mahjongbrikke med rød drage</annotation>
- <annotation cp="🎴">kort | kortspill | spillkort</annotation>
- <annotation cp="🎴" type="tts">spillkort</annotation>
- <annotation cp="🎭">kunst | scenekunst | teater | teatermasker | underholdning</annotation>
- <annotation cp="🎭" type="tts">teatermasker</annotation>
- <annotation cp="🖼">bilde | innrammet bilde | kunst | maleri | museum | ramme</annotation>
- <annotation cp="🖼" type="tts">innrammet bilde</annotation>
- <annotation cp="🎨">kunst | malerpalett | maling</annotation>
- <annotation cp="🎨" type="tts">malerpalett</annotation>
- <annotation cp="🧵">nål | snelle | sy | tråd | trådsnelle</annotation>
- <annotation cp="🧵" type="tts">tråd</annotation>
- <annotation cp="🪡">broderi | nål | skredder | sting | sutur | sy | synål</annotation>
- <annotation cp="🪡" type="tts">synål</annotation>
- <annotation cp="🧶">ball | garn | nøste</annotation>
- <annotation cp="🧶" type="tts">garn</annotation>
- <annotation cp="🪢">knop | knute | knyte | rep | sammenflettet | tau | tvinne</annotation>
- <annotation cp="🪢" type="tts">knute</annotation>
- <annotation cp="👓">briller | klær | lesebriller</annotation>
- <annotation cp="👓" type="tts">briller</annotation>
- <annotation cp="🕶">briller | mørkt | øye | solbriller</annotation>
- <annotation cp="🕶" type="tts">solbriller</annotation>
- <annotation cp="🥽">beskyttelsesbriller | øyevern | sveising | svømming</annotation>
- <annotation cp="🥽" type="tts">beskyttelsesbriller</annotation>
- <annotation cp="🥼">doktor | eksperiment | forsker | labfrakk | lege</annotation>
- <annotation cp="🥼" type="tts">labfrakk</annotation>
- <annotation cp="🦺">nødssituasjon | refleks | refleksvest | sikkerhet | vest</annotation>
- <annotation cp="🦺" type="tts">refleksvest</annotation>
- <annotation cp="👔">klær | slips</annotation>
- <annotation cp="👔" type="tts">slips</annotation>
- <annotation cp="👕">klær | skjorte | t-skjorte</annotation>
- <annotation cp="👕" type="tts">t-skjorte</annotation>
- <annotation cp="👖">bukser | jeans | klær</annotation>
- <annotation cp="👖" type="tts">bukser</annotation>
- <annotation cp="🧣">hals | klær | skjerf</annotation>
- <annotation cp="🧣" type="tts">skjerf</annotation>
- <annotation cp="🧤">hånd | hansker | klær</annotation>
- <annotation cp="🧤" type="tts">hansker</annotation>
- <annotation cp="🧥">frakk | jakke | kåpe | klær</annotation>
- <annotation cp="🧥" type="tts">jakke</annotation>
- <annotation cp="🧦">klær | labber | sokker | strømper</annotation>
- <annotation cp="🧦" type="tts">sokker</annotation>
- <annotation cp="👗">kjole | klær</annotation>
- <annotation cp="👗" type="tts">kjole</annotation>
- <annotation cp="👘">kimono | kjole | klær</annotation>
- <annotation cp="👘" type="tts">kimono</annotation>
- <annotation cp="🥻">kjole | klær | sari</annotation>
- <annotation cp="🥻" type="tts">sari</annotation>
- <annotation cp="🩱">badedrakt | badetøy</annotation>
- <annotation cp="🩱" type="tts">badedrakt</annotation>
- <annotation cp="🩲">badebukse | badetøy | bikinitruse | truse | undertøy</annotation>
- <annotation cp="🩲" type="tts">truse</annotation>
- <annotation cp="🩳">badeshorts | badetøy | bukse | shorts | underbukse | undertøy</annotation>
- <annotation cp="🩳" type="tts">shorts</annotation>
- <annotation cp="👙">badedrakt | badetøy | bikini | klær</annotation>
- <annotation cp="👙" type="tts">bikini</annotation>
- <annotation cp="👚">dameklær | klær</annotation>
- <annotation cp="👚" type="tts">dameklær</annotation>
- <annotation cp="👛">klær | portemoné | pung</annotation>
- <annotation cp="👛" type="tts">portemoné</annotation>
- <annotation cp="👜">håndveske | klær | veske</annotation>
- <annotation cp="👜" type="tts">håndveske</annotation>
- <annotation cp="👝">clutch-veske | klær | liten veske</annotation>
- <annotation cp="👝" type="tts">clutch-veske</annotation>
- <annotation cp="🛍">handleposer | hotell | pose | shopping</annotation>
- <annotation cp="🛍" type="tts">handleposer</annotation>
- <annotation cp="🎒">ransel | ryggsekk | skolesekk</annotation>
- <annotation cp="🎒" type="tts">skolesekk</annotation>
- <annotation cp="🩴">flipflops | flippflopp | flippflopper | havaianas | sandaler | strandsandaler | zoori</annotation>
- <annotation cp="🩴" type="tts">flippflopp</annotation>
- <annotation cp="👞">herresko | klær | sko</annotation>
- <annotation cp="👞" type="tts">herresko</annotation>
- <annotation cp="👟">fritidssko | joggesko | klær | sko | tennissko</annotation>
- <annotation cp="👟" type="tts">joggesko</annotation>
- <annotation cp="🥾">fjelltur | gåtur | støvel | telttur | tur | turstøvel</annotation>
- <annotation cp="🥾" type="tts">turstøvel</annotation>
- <annotation cp="🥿">flate sko | pumps | uten hæl</annotation>
- <annotation cp="🥿" type="tts">pumps</annotation>
- <annotation cp="👠">høyhælt sko | klær | sko</annotation>
- <annotation cp="👠" type="tts">høyhælt sko</annotation>
- <annotation cp="👡">dame | damesandal | klær | sandal | sko</annotation>
- <annotation cp="👡" type="tts">damesandal</annotation>
- <annotation cp="🩰">ballett | ballettsko | dans</annotation>
- <annotation cp="🩰" type="tts">ballettsko</annotation>
- <annotation cp="👢">dame | damestøvlett | klær | sko | støvlett</annotation>
- <annotation cp="👢" type="tts">damestøvlett</annotation>
- <annotation cp="👑">dronning | klær | konge | krone</annotation>
- <annotation cp="👑" type="tts">krone</annotation>
- <annotation cp="👒">damehatt | hatt | klær</annotation>
- <annotation cp="👒" type="tts">damehatt</annotation>
- <annotation cp="🎩">flosshatt | hatt | klær</annotation>
- <annotation cp="🎩" type="tts">flosshatt</annotation>
- <annotation cp="🎓">feiring | hatt | klær | studentlue | uteksaminering</annotation>
- <annotation cp="🎓" type="tts">studentlue</annotation>
- <annotation cp="🧢">caps | kaps | skyggelue</annotation>
- <annotation cp="🧢" type="tts">caps</annotation>
- <annotation cp="🪖">hær | hjelm | kriger | militær | militærhjelm | soldat</annotation>
- <annotation cp="🪖" type="tts">militærhjelm</annotation>
- <annotation cp="⛑">fjes | hatt | hjelm | hjelm med hvitt kors | hjelp | kors</annotation>
- <annotation cp="⛑" type="tts">hjelm med hvitt kors</annotation>
- <annotation cp="📿">bønn | bønnekrans | halssmykke | klær | perler | religion</annotation>
- <annotation cp="📿" type="tts">bønnekrans</annotation>
- <annotation cp="💄">kosmetikk | leppestift | sminke</annotation>
- <annotation cp="💄" type="tts">leppestift</annotation>
- <annotation cp="💍">diamant | ring | romantikk</annotation>
- <annotation cp="💍" type="tts">ring</annotation>
- <annotation cp="💎">diamant | edelsten | romantikk | smykkestein</annotation>
- <annotation cp="💎" type="tts">diamant</annotation>
- <annotation cp="🔇">dempet | dempet høyttaler | høyttaler med strek over | ingen prating | stille</annotation>
- <annotation cp="🔇" type="tts">dempet høyttaler</annotation>
- <annotation cp="🔈">høyttaler med lavt volum | lav | lyd | ropert</annotation>
- <annotation cp="🔈" type="tts">høyttaler med lavt volum</annotation>
- <annotation cp="🔉">høyttaler med middels volum | lyd | middels | ropert</annotation>
- <annotation cp="🔉" type="tts">høyttaler med middels volum</annotation>
- <annotation cp="🔊">høy | høyttaler med høyt volum | lyd | ropert</annotation>
- <annotation cp="🔊" type="tts">høyttaler med høyt volum</annotation>
- <annotation cp="📢">høy | høyttaler | kommunikasjon | megafon | ropert</annotation>
- <annotation cp="📢" type="tts">høyttaler</annotation>
- <annotation cp="📣">heiing | kommunikasjon | megafon | ropert</annotation>
- <annotation cp="📣" type="tts">megafon</annotation>
- <annotation cp="📯">horn | post | posthorn</annotation>
- <annotation cp="📯" type="tts">posthorn</annotation>
- <annotation cp="🔔">bjelle | klokke | ringing</annotation>
- <annotation cp="🔔" type="tts">bjelle</annotation>
- <annotation cp="🔕">bjelle med strek over | ingen lyd | klokke | lydløs | overstreket bjelle | stille</annotation>
- <annotation cp="🔕" type="tts">overstreket bjelle</annotation>
- <annotation cp="🎼">g-nøkkel | musikk | notetegn</annotation>
- <annotation cp="🎼" type="tts">musikk</annotation>
- <annotation cp="🎵">musikk | musikknote | note</annotation>
- <annotation cp="🎵" type="tts">note</annotation>
- <annotation cp="🎶">musikk | musikknoter | noter</annotation>
- <annotation cp="🎶" type="tts">noter</annotation>
- <annotation cp="🎙">mik | mikrofon | musikk | studio | studiomikrofon</annotation>
- <annotation cp="🎙" type="tts">studiomikrofon</annotation>
- <annotation cp="🎚">glidebryter | musikk | nivå | skyveknapp</annotation>
- <annotation cp="🎚" type="tts">glidebryter</annotation>
- <annotation cp="🎛">brytere | knotter | kontroll | kontrollbrytere | musikk</annotation>
- <annotation cp="🎛" type="tts">kontrollbrytere</annotation>
- <annotation cp="🎤">karaoke | mik | mikrofon | musikk | underholdning</annotation>
- <annotation cp="🎤" type="tts">mikrofon</annotation>
- <annotation cp="🎧">headset | hodetelefoner | øretelefoner | underholdning</annotation>
- <annotation cp="🎧" type="tts">hodetelefoner</annotation>
- <annotation cp="📻">radio | radiosignaler | teknologi</annotation>
- <annotation cp="📻" type="tts">radio</annotation>
- <annotation cp="🎷">instrument | musikk | musikkinstrument | saksofon | sax</annotation>
- <annotation cp="🎷" type="tts">saksofon</annotation>
- <annotation cp="🪗">accordeon | concertina | trekkspill</annotation>
- <annotation cp="🪗" type="tts">trekkspill</annotation>
- <annotation cp="🎸">gitar | instrument | musikk | musikkinstrument</annotation>
- <annotation cp="🎸" type="tts">gitar</annotation>
- <annotation cp="🎹">instrument | keyboard | musikk | musikkinstrument | piano | tangenter</annotation>
- <annotation cp="🎹" type="tts">piano</annotation>
- <annotation cp="🎺">instrument | musikk | musikkinstrument | trompet</annotation>
- <annotation cp="🎺" type="tts">trompet</annotation>
- <annotation cp="🎻">fele | fiolin | instrument | musikk | musikkinstrument</annotation>
- <annotation cp="🎻" type="tts">fiolin</annotation>
- <annotation cp="🪕">banjo | musikk | strenginstrument</annotation>
- <annotation cp="🪕" type="tts">banjo</annotation>
- <annotation cp="🥁">musikk | tromme | trommestikker</annotation>
- <annotation cp="🥁" type="tts">tromme</annotation>
- <annotation cp="🪘">beat | conga | langtromme | rytme | tromme</annotation>
- <annotation cp="🪘" type="tts">langtromme</annotation>
- <annotation cp="📱">mobil | mobiltelefon | telefon</annotation>
- <annotation cp="📱" type="tts">mobiltelefon</annotation>
- <annotation cp="📲">anrop | mobiltelefon | mobiltelefon med pil | pil | ring | telefon</annotation>
- <annotation cp="📲" type="tts">mobiltelefon med pil</annotation>
- <annotation cp="☎">fasttelefon | ringe | telefon</annotation>
- <annotation cp="☎" type="tts">telefon</annotation>
- <annotation cp="📞">kommunikasjon | telefon | telefonrør</annotation>
- <annotation cp="📞" type="tts">telefonrør</annotation>
- <annotation cp="📟">kommunikasjon | personsøker | telefon</annotation>
- <annotation cp="📟" type="tts">personsøker</annotation>
- <annotation cp="📠">faksmaskin | kommunikasjon | telefon</annotation>
- <annotation cp="📠" type="tts">faksmaskin</annotation>
- <annotation cp="🔋">batteri | energilagring | strøm</annotation>
- <annotation cp="🔋" type="tts">batteri</annotation>
- <annotation cp="🔌">elektrisitet | elektrisk | plugg | støpsel</annotation>
- <annotation cp="🔌" type="tts">støpsel</annotation>
- <annotation cp="💻">bærbar datamaskin | datamaskin | maskin | PC</annotation>
- <annotation cp="💻" type="tts">bærbar datamaskin</annotation>
- <annotation cp="🖥">datamaskin | PC | stasjonær</annotation>
- <annotation cp="🖥" type="tts">stasjonær datamaskin</annotation>
- <annotation cp="🖨">datamaskin | printer | skriver</annotation>
- <annotation cp="🖨" type="tts">skriver</annotation>
- <annotation cp="⌨">datamaskin | tastatur</annotation>
- <annotation cp="⌨" type="tts">tastatur</annotation>
- <annotation cp="🖱">datamaskin | datamus | knapp | mus</annotation>
- <annotation cp="🖱" type="tts">datamus</annotation>
- <annotation cp="🖲">datamaskin | styrekule</annotation>
- <annotation cp="🖲" type="tts">styrekule</annotation>
- <annotation cp="💽">datadisk | disk | lagring | MD | minidisk | optisk</annotation>
- <annotation cp="💽" type="tts">datadisk</annotation>
- <annotation cp="💾">datamaskin | disk | diskett | lagring</annotation>
- <annotation cp="💾" type="tts">diskett</annotation>
- <annotation cp="💿">blu-ray | CD | disk | DVD | lagring | optisk plate</annotation>
- <annotation cp="💿" type="tts">optisk plate</annotation>
- <annotation cp="📀">disk | DVD | DVD-plate | lagring | optisk | plate</annotation>
- <annotation cp="📀" type="tts">DVD</annotation>
- <annotation cp="🧮">abakus | kuleramme | regning</annotation>
- <annotation cp="🧮" type="tts">kuleramme</annotation>
- <annotation cp="🎥">film | filmkamera | kamera | kino | underholdning</annotation>
- <annotation cp="🎥" type="tts">filmkamera</annotation>
- <annotation cp="🎞">bilder | film | filmruter | kino | ruter</annotation>
- <annotation cp="🎞" type="tts">filmruter</annotation>
- <annotation cp="📽">film | filmframviser | filmfremviser | kino | projektor | video</annotation>
- <annotation cp="📽" type="tts">filmfremviser</annotation>
- <annotation cp="🎬">action | film | filming | filmklapper | klapper | underholdning</annotation>
- <annotation cp="🎬" type="tts">filmklapper</annotation>
- <annotation cp="📺">fjernsyn | TV | video</annotation>
- <annotation cp="📺" type="tts">TV</annotation>
- <annotation cp="📷">foto | kamera | kamerateknikk | video</annotation>
- <annotation cp="📷" type="tts">kamera</annotation>
- <annotation cp="📸">blits | foto | kamera | kamera med blits | video</annotation>
- <annotation cp="📸" type="tts">kamera med blits</annotation>
- <annotation cp="📹">kamera | video | videokamera</annotation>
- <annotation cp="📹" type="tts">videokamera</annotation>
- <annotation cp="📼">kassett | opptak | vhs | video | videokassett</annotation>
- <annotation cp="📼" type="tts">videokassett</annotation>
- <annotation cp="🔍">forstørrelse | forstørrelsesglass mot venstre | glass | lupe | søk</annotation>
- <annotation cp="🔍" type="tts">forstørrelsesglass mot venstre</annotation>
- <annotation cp="🔎">forstørrelse | forstørrelsesglass mot høyre | glass | lupe | søk</annotation>
- <annotation cp="🔎" type="tts">forstørrelsesglass mot høyre</annotation>
- <annotation cp="🕯">lys | stearin | stearinlys</annotation>
- <annotation cp="🕯" type="tts">stearinlys</annotation>
- <annotation cp="💡">elektrisitet | idé | lys | lyspære | pære | tegneserie</annotation>
- <annotation cp="💡" type="tts">lyspære</annotation>
- <annotation cp="🔦">elektrisk | lommelykt | lykt | lys</annotation>
- <annotation cp="🔦" type="tts">lommelykt</annotation>
- <annotation cp="🏮">bar | izakaya | lampe | lanterne | lykt | rød | rød papirlykt</annotation>
- <annotation cp="🏮" type="tts">rød papirlykt</annotation>
- <annotation cp="🪔">åpen oljelampe | diya | lampe | olje</annotation>
- <annotation cp="🪔" type="tts">åpen oljelampe</annotation>
- <annotation cp="📔">dekorert notatbok | notatbok | omslag</annotation>
- <annotation cp="📔" type="tts">dekorert notatbok</annotation>
- <annotation cp="📕">bok | lukket</annotation>
- <annotation cp="📕" type="tts">lukket bok</annotation>
- <annotation cp="📖">åpen | bok</annotation>
- <annotation cp="📖" type="tts">åpen bok</annotation>
- <annotation cp="📗">bok | grønn</annotation>
- <annotation cp="📗" type="tts">grønn bok</annotation>
- <annotation cp="📘">blå | bok</annotation>
- <annotation cp="📘" type="tts">blå bok</annotation>
- <annotation cp="📙">bok | oransje</annotation>
- <annotation cp="📙" type="tts">oransje bok</annotation>
- <annotation cp="📚">bok | bøker</annotation>
- <annotation cp="📚" type="tts">bøker</annotation>
- <annotation cp="📓">kladdebok | kontorrekvisita | notatbok</annotation>
- <annotation cp="📓" type="tts">notatbok</annotation>
- <annotation cp="📒">kontorrekvisita | notatbok | spiralblokk</annotation>
- <annotation cp="📒" type="tts">spiralblokk</annotation>
- <annotation cp="📃">ark | opprullet | side | side med bøy</annotation>
- <annotation cp="📃" type="tts">side med bøy</annotation>
- <annotation cp="📜">papir | papirrull | papyrus | pergament | pergamentrull | rull</annotation>
- <annotation cp="📜" type="tts">pergamentrull</annotation>
- <annotation cp="📄">ark | papir | side | side som vender opp</annotation>
- <annotation cp="📄" type="tts">side som vender opp</annotation>
- <annotation cp="📰">avis | nyheter | publikasjon</annotation>
- <annotation cp="📰" type="tts">avis</annotation>
- <annotation cp="🗞">avis | nyheter | opprullet | papir | sammenrullet avis</annotation>
- <annotation cp="🗞" type="tts">sammenrullet avis</annotation>
- <annotation cp="📑">bokmerke | bokmerkefane | faner | markør | merker</annotation>
- <annotation cp="📑" type="tts">bokmerkefane</annotation>
- <annotation cp="🔖">bokmerke | merke</annotation>
- <annotation cp="🔖" type="tts">bokmerke</annotation>
- <annotation cp="🏷">etikett | merke</annotation>
- <annotation cp="🏷" type="tts">etikett</annotation>
- <annotation cp="💰">dollar | penger | pengesekk | sekk</annotation>
- <annotation cp="💰" type="tts">pengesekk</annotation>
- <annotation cp="🪙">gull | metall | mynt | penger | skatt | sølv</annotation>
- <annotation cp="🪙" type="tts">mynt</annotation>
- <annotation cp="💴">penger | seddel | yen | yenseddel</annotation>
- <annotation cp="💴" type="tts">yenseddel</annotation>
- <annotation cp="💵">dollar | dollarseddel | penger | seddel</annotation>
- <annotation cp="💵" type="tts">dollarseddel</annotation>
- <annotation cp="💶">euro | euroseddel | penger | seddel</annotation>
- <annotation cp="💶" type="tts">euroseddel</annotation>
- <annotation cp="💷">penger | pund | pundseddel | seddel</annotation>
- <annotation cp="💷" type="tts">pundseddel</annotation>
- <annotation cp="💸">bank | flygende seddel | penger | penger med vinger | seddel</annotation>
- <annotation cp="💸" type="tts">penger med vinger</annotation>
- <annotation cp="💳">bankkort | betalingskort | kort | kreditt | kredittkort | visa</annotation>
- <annotation cp="💳" type="tts">kredittkort</annotation>
- <annotation cp="🧾">arkiv | bilag | dokumentasjon | kvittering | regnskap</annotation>
- <annotation cp="🧾" type="tts">kvittering</annotation>
- <annotation cp="💹">graf | marked | oppover | penger | stigende | stigende diagram med yen | trend | yen</annotation>
- <annotation cp="💹" type="tts">stigende diagram med yen</annotation>
- <annotation cp="✉">brev | e-post | konvolutt</annotation>
- <annotation cp="✉" type="tts">konvolutt</annotation>
- <annotation cp="📧">brev | e-post | kommunikasjon | post</annotation>
- <annotation cp="📧" type="tts">e-post</annotation>
- <annotation cp="📨">brev | e-post | epost | innkommende | konvolutt | motta</annotation>
- <annotation cp="📨" type="tts">innkommende konvolutt</annotation>
- <annotation cp="📩">brev | e-post | epost | konvolutt | konvolutt med pil | sende | sendt | utgående</annotation>
- <annotation cp="📩" type="tts">konvolutt med pil</annotation>
- <annotation cp="📤">brev | e-post | kommunikasjon | sendt | skuff | utboks</annotation>
- <annotation cp="📤" type="tts">utboks</annotation>
- <annotation cp="📥">brev | e-post | innboks | kommunikasjon | mottatt | skuff</annotation>
- <annotation cp="📥" type="tts">innboks</annotation>
- <annotation cp="📦">eske | levering | pakke</annotation>
- <annotation cp="📦" type="tts">pakke</annotation>
- <annotation cp="📫">flagg | lukket postkasse med flagget oppe | post</annotation>
- <annotation cp="📫" type="tts">lukket postkasse med flagget oppe</annotation>
- <annotation cp="📪">flagg | lukket postkasse med flagget nede | post</annotation>
- <annotation cp="📪" type="tts">lukket postkasse med flagget nede</annotation>
- <annotation cp="📬">åpen postkasse med flagget oppe | flagg | post</annotation>
- <annotation cp="📬" type="tts">åpen postkasse med flagget oppe</annotation>
- <annotation cp="📭">åpen postkasse med flagget nede | flagg | post</annotation>
- <annotation cp="📭" type="tts">åpen postkasse med flagget nede</annotation>
- <annotation cp="📮">post | postkasse</annotation>
- <annotation cp="📮" type="tts">postkasse</annotation>
- <annotation cp="🗳">boks | stemmeseddel | urne med stemmeseddel</annotation>
- <annotation cp="🗳" type="tts">urne med stemmeseddel</annotation>
- <annotation cp="✏">blyant</annotation>
- <annotation cp="✏" type="tts">blyant</annotation>
- <annotation cp="✒">penn | pennespiss | svart pennesplitt</annotation>
- <annotation cp="✒" type="tts">svart pennesplitt</annotation>
- <annotation cp="🖋">blekk | fyllepenn | penn</annotation>
- <annotation cp="🖋" type="tts">fyllepenn</annotation>
- <annotation cp="🖊">kulepenn | penn</annotation>
- <annotation cp="🖊" type="tts">penn</annotation>
- <annotation cp="🖌">maling | pensel</annotation>
- <annotation cp="🖌" type="tts">pensel</annotation>
- <annotation cp="🖍">fargestift | tegning</annotation>
- <annotation cp="🖍" type="tts">fargestift</annotation>
- <annotation cp="📝">blyant | bok | kommunikasjon | notat</annotation>
- <annotation cp="📝" type="tts">notat</annotation>
- <annotation cp="💼">dokumentmappe | stresskoffert</annotation>
- <annotation cp="💼" type="tts">dokumentmappe</annotation>
- <annotation cp="📁">arkiv | arkivmappe | fil | mappe</annotation>
- <annotation cp="📁" type="tts">arkivmappe</annotation>
- <annotation cp="📂">åpen | arkivmappe | fil | filmappe | mappe</annotation>
- <annotation cp="📂" type="tts">åpen arkivmappe</annotation>
- <annotation cp="🗂">faner | indeks | kort | skillekort | skillere</annotation>
- <annotation cp="🗂" type="tts">skillekort</annotation>
- <annotation cp="📅">dato | kalender</annotation>
- <annotation cp="📅" type="tts">kalender</annotation>
- <annotation cp="📆">kalender | riv-av-kalender | veggkalender</annotation>
- <annotation cp="📆" type="tts">veggkalender</annotation>
- <annotation cp="🗒">blokk | notat | spiral | spiralhefte</annotation>
- <annotation cp="🗒" type="tts">spiralhefte</annotation>
- <annotation cp="🗓">blokk | kalender | spiral | spiralkalender</annotation>
- <annotation cp="🗓" type="tts">spiralkalender</annotation>
- <annotation cp="📇">indeks | kartotek | register</annotation>
- <annotation cp="📇" type="tts">kartotek</annotation>
- <annotation cp="📈">chart | diagram som peker oppover | graf | opp | positiv | stigende</annotation>
- <annotation cp="📈" type="tts">diagram som peker oppover</annotation>
- <annotation cp="📉">chart | diagram som peker nedover | fallende | graf | ned | negativ | synkende</annotation>
- <annotation cp="📉" type="tts">diagram som peker nedover</annotation>
- <annotation cp="📊">diagram | histogram | søylediagram | stolpediagram</annotation>
- <annotation cp="📊" type="tts">stolpediagram</annotation>
- <annotation cp="📋">ordrebrett | skriveplate | tavle | utklippstavle</annotation>
- <annotation cp="📋" type="tts">skriveplate</annotation>
- <annotation cp="📌">kontorrekvisita | stift</annotation>
- <annotation cp="📌" type="tts">stift</annotation>
- <annotation cp="📍">kontorrekvisita | markørnål | rund stift</annotation>
- <annotation cp="📍" type="tts">rund stift</annotation>
- <annotation cp="📎">binders | kontorrekvisita</annotation>
- <annotation cp="📎" type="tts">binders</annotation>
- <annotation cp="🖇">binders | kjede | sammenlenkede binders</annotation>
- <annotation cp="🖇" type="tts">sammenlenkede binders</annotation>
- <annotation cp="📏">linjal | rett</annotation>
- <annotation cp="📏" type="tts">linjal</annotation>
- <annotation cp="📐">linjal | trekant | trekantlinjal | vinkel</annotation>
- <annotation cp="📐" type="tts">trekantlinjal</annotation>
- <annotation cp="✂">klippe | saks | verktøy</annotation>
- <annotation cp="✂" type="tts">saks</annotation>
- <annotation cp="🗃">arkiv | boks | fil | kartotekboks | kort</annotation>
- <annotation cp="🗃" type="tts">kartotekboks</annotation>
- <annotation cp="🗄">arkiv | arkivskap | fil | kabinett | mapper</annotation>
- <annotation cp="🗄" type="tts">arkivskap</annotation>
- <annotation cp="🗑">papirkurv | søppelkasse | søppelkurv</annotation>
- <annotation cp="🗑" type="tts">papirkurv</annotation>
- <annotation cp="🔒">låst</annotation>
- <annotation cp="🔒" type="tts">låst</annotation>
- <annotation cp="🔓">åpen | hengelås | lås | ulåst</annotation>
- <annotation cp="🔓" type="tts">ulåst</annotation>
- <annotation cp="🔏">låst med penn | penn | personvern</annotation>
- <annotation cp="🔏" type="tts">låst med penn</annotation>
- <annotation cp="🔐">lås med nøkkel | låst med nøkkel | sikker</annotation>
- <annotation cp="🔐" type="tts">låst med nøkkel</annotation>
- <annotation cp="🔑">lås | nøkkel | passord</annotation>
- <annotation cp="🔑" type="tts">nøkkel</annotation>
- <annotation cp="🗝">gammel | gammeldags nøkkel | lås | ledetråd | nøkkel</annotation>
- <annotation cp="🗝" type="tts">gammeldags nøkkel</annotation>
- <annotation cp="🔨">hammer | verktøy</annotation>
- <annotation cp="🔨" type="tts">hammer</annotation>
- <annotation cp="🪓">dele | hogge | hugge | kløyve | øks | ved</annotation>
- <annotation cp="🪓" type="tts">øks</annotation>
- <annotation cp="⛏">gruvedrift | hakke | verktøy</annotation>
- <annotation cp="⛏" type="tts">hakke</annotation>
- <annotation cp="⚒">hakke | hammer | hammer og hakke | verktøy</annotation>
- <annotation cp="⚒" type="tts">hammer og hakke</annotation>
- <annotation cp="🛠">hammer | hammer og fastnøkkel | skiftenøkkel | verktøy</annotation>
- <annotation cp="🛠" type="tts">hammer og fastnøkkel</annotation>
- <annotation cp="🗡">dolk | kniv | våpen</annotation>
- <annotation cp="🗡" type="tts">dolk</annotation>
- <annotation cp="⚔">kryss | sverd | sverd i kryss | våpen</annotation>
- <annotation cp="⚔" type="tts">sverd i kryss</annotation>
- <annotation cp="🔫">leketøysvåpen | pistol | vannpistol</annotation>
- <annotation cp="🔫" type="tts">vannpistol</annotation>
- <annotation cp="🪃">australia | boomerang | bumerang | retur | tilbake</annotation>
- <annotation cp="🪃" type="tts">bumerang</annotation>
- <annotation cp="🏹">bue | bueskytter | pil | pil og bue | Skytten | stjernebilde | stjernetegn | våpen</annotation>
- <annotation cp="🏹" type="tts">pil og bue</annotation>
- <annotation cp="🛡">skjold | våpen</annotation>
- <annotation cp="🛡" type="tts">skjold</annotation>
- <annotation cp="🪚">håndsag | sag | snekker | tømrer | tre | verktøy</annotation>
- <annotation cp="🪚" type="tts">håndsag</annotation>
- <annotation cp="🔧">fastnøkkel | skrunøkkel | verktøy</annotation>
- <annotation cp="🔧" type="tts">fastnøkkel</annotation>
- <annotation cp="🪛">skrue | skrujern | skrutrekker | verktøy</annotation>
- <annotation cp="🪛" type="tts">skrutrekker</annotation>
- <annotation cp="🔩">mutter | mutter og skrue | skrue | verktøy</annotation>
- <annotation cp="🔩" type="tts">mutter og skrue</annotation>
- <annotation cp="⚙">del | tann | tannhjul | verktøy</annotation>
- <annotation cp="⚙" type="tts">tannhjul</annotation>
- <annotation cp="🗜">klemme | skruetvinge | skrustikke | skrutvinge | verktøy</annotation>
- <annotation cp="🗜" type="tts">skrutvinge</annotation>
- <annotation cp="⚖">balanse | likearmet skålvekt | rettferdighet | stjernetegn | vekt | Vekten | verktøy</annotation>
- <annotation cp="⚖" type="tts">likearmet skålvekt</annotation>
- <annotation cp="🦯">blind | blindestokk | tilgjengelighet</annotation>
- <annotation cp="🦯" type="tts">blindestokk</annotation>
- <annotation cp="🔗">lenke | link | to ringer</annotation>
- <annotation cp="🔗" type="tts">lenke</annotation>
- <annotation cp="⛓">kjede | kjetting</annotation>
- <annotation cp="⛓" type="tts">kjetting</annotation>
- <annotation cp="🪝">buet | fange | krok | løfte | løftekrok | salgspunkt</annotation>
- <annotation cp="🪝" type="tts">krok</annotation>
- <annotation cp="🧰">kasse | skrin | verktøy | verktøykasse</annotation>
- <annotation cp="🧰" type="tts">verktøykasse</annotation>
- <annotation cp="🧲">hestesko | magnet | magnetisk | tiltrekning</annotation>
- <annotation cp="🧲" type="tts">magnet</annotation>
- <annotation cp="🪜">klatre | leider | stige | trapp | trinn</annotation>
- <annotation cp="🪜" type="tts">stige</annotation>
- <annotation cp="⚗">destillasjonskolbe | destillerkolbe | kjemi | verktøy</annotation>
- <annotation cp="⚗" type="tts">destillerkolbe</annotation>
- <annotation cp="🧪">eksperiment | forskning | kjemi | kjemiker | lab | prøverør | reagensrør</annotation>
- <annotation cp="🧪" type="tts">prøverør</annotation>
- <annotation cp="🧫">bakterie | biolog | biologi | kultur | lab | petriskål</annotation>
- <annotation cp="🧫" type="tts">petriskål</annotation>
- <annotation cp="🧬">biolog | dna | evolusjon | gen | gener | genetikk | liv</annotation>
- <annotation cp="🧬" type="tts">dna</annotation>
- <annotation cp="🔬">forskning | mikroskop | verktøy | vitenskap</annotation>
- <annotation cp="🔬" type="tts">mikroskop</annotation>
- <annotation cp="🔭">astronomi | forskning | teleskop | verktøy | vitenskap</annotation>
- <annotation cp="🔭" type="tts">teleskop</annotation>
- <annotation cp="📡">antenne | kommunikasjon | parabol | parabolantenne | satellitt | satellittantenne</annotation>
- <annotation cp="📡" type="tts">satellittantenne</annotation>
- <annotation cp="💉">medisin | nål | sprøyte | syk | vaksine</annotation>
- <annotation cp="💉" type="tts">sprøyte</annotation>
- <annotation cp="🩸">bloddråpe | blodgiver | medisin | mens | menstruasjon</annotation>
- <annotation cp="🩸" type="tts">bloddråpe</annotation>
- <annotation cp="💊">lege | medisin | pille | tablett</annotation>
- <annotation cp="💊" type="tts">pille</annotation>
- <annotation cp="🩹">behandling | plaster | sår</annotation>
- <annotation cp="🩹" type="tts">plaster</annotation>
- <annotation cp="🩺">hjerte | lege | medisin | stetoskop</annotation>
- <annotation cp="🩺" type="tts">stetoskop</annotation>
- <annotation cp="🚪">dør</annotation>
- <annotation cp="🚪" type="tts">dør</annotation>
- <annotation cp="🛗">heis | tilgjengelighet</annotation>
- <annotation cp="🛗" type="tts">heis</annotation>
- <annotation cp="🪞">refleksjon | speil | speilbilde</annotation>
- <annotation cp="🪞" type="tts">speil</annotation>
- <annotation cp="🪟">åpning | frisk luft | gjennomsiktig | ramme | utsikt | vindu</annotation>
- <annotation cp="🪟" type="tts">vindu</annotation>
- <annotation cp="🛏">hotell | seng | sove</annotation>
- <annotation cp="🛏" type="tts">seng</annotation>
- <annotation cp="🛋">hotell | lampe | sofa | sofa og lampe</annotation>
- <annotation cp="🛋" type="tts">sofa og lampe</annotation>
- <annotation cp="🪑">sete | sitte | sitteplass | stol</annotation>
- <annotation cp="🪑" type="tts">stol</annotation>
- <annotation cp="🚽">dass | do | toalett | vannklosett | wc</annotation>
- <annotation cp="🚽" type="tts">toalett</annotation>
- <annotation cp="🪠">avløp | avløpsåpner | mekanisk | toalett | vask</annotation>
- <annotation cp="🪠" type="tts">avløpsåpner</annotation>
- <annotation cp="🚿">dusj | vann</annotation>
- <annotation cp="🚿" type="tts">dusj</annotation>
- <annotation cp="🛁">bad | badekar | badestamp</annotation>
- <annotation cp="🛁" type="tts">badekar</annotation>
- <annotation cp="🪤">åte | felle | mus | musefelle | snare</annotation>
- <annotation cp="🪤" type="tts">musefelle</annotation>
- <annotation cp="🪒">barbere | barbering | barberkniv | skarp</annotation>
- <annotation cp="🪒" type="tts">barberkniv</annotation>
- <annotation cp="🧴">fuktighetskrem | lotion | lotionflaske | shampoo | sjampo | solkrem</annotation>
- <annotation cp="🧴" type="tts">lotionflaske</annotation>
- <annotation cp="🧷">bleie | punk | sikkerhetsnål</annotation>
- <annotation cp="🧷" type="tts">sikkerhetsnål</annotation>
- <annotation cp="🧹">feie | feiekost | heks | rengjøre</annotation>
- <annotation cp="🧹" type="tts">feiekost</annotation>
- <annotation cp="🧺">jordbruk | klesvask | kurv | piknik</annotation>
- <annotation cp="🧺" type="tts">kurv</annotation>
- <annotation cp="🧻">rull med papir | toalettpapir | tørkepapir | tørkerull</annotation>
- <annotation cp="🧻" type="tts">rull med papir</annotation>
- <annotation cp="🪣">beholder | bøtte | kar | spann</annotation>
- <annotation cp="🪣" type="tts">bøtte</annotation>
- <annotation cp="🧼">bad | såpe | såpeskål | såpestykke | skum | vaske</annotation>
- <annotation cp="🧼" type="tts">såpe</annotation>
- <annotation cp="🪥">bad | baderom | børste | dental | hygiene | ren | tannbørste | tenner</annotation>
- <annotation cp="🪥" type="tts">tannbørste</annotation>
- <annotation cp="🧽">absorberende | porøs | rengjøre | svamp | vaske</annotation>
- <annotation cp="🧽" type="tts">svamp</annotation>
- <annotation cp="🧯">brann | brannslokkingsapparat | brannslukningsapparat | slokke | slukke</annotation>
- <annotation cp="🧯" type="tts">brannslukningsapparat</annotation>
- <annotation cp="🛒">handle | handlevogn | innkjøp | tralle | vogn</annotation>
- <annotation cp="🛒" type="tts">handlevogn</annotation>
- <annotation cp="🚬">røyking | røyking tillatt | sigarett | skilt</annotation>
- <annotation cp="🚬" type="tts">sigarett</annotation>
- <annotation cp="⚰">begravelse | død | kiste</annotation>
- <annotation cp="⚰" type="tts">kiste</annotation>
- <annotation cp="🪦">grav | gravplass | gravstein | kirkegård</annotation>
- <annotation cp="🪦" type="tts">gravstein</annotation>
- <annotation cp="⚱">begravelse | død | kremasjon | urne</annotation>
- <annotation cp="⚱" type="tts">urne</annotation>
- <annotation cp="🗿">ansiktsstatue | moai | moai-statue | påskeøya | statue</annotation>
- <annotation cp="🗿" type="tts">moai-statue</annotation>
- <annotation cp="🪧">demonstrasjon | plakat | protest | skilt</annotation>
- <annotation cp="🪧" type="tts">plakat</annotation>
- <annotation cp="🏧">automatisk | bank | minibank | minibankskilt | penger</annotation>
- <annotation cp="🏧" type="tts">minibankskilt</annotation>
- <annotation cp="🚮">avfall | avfallsskilt | skilt | søppel</annotation>
- <annotation cp="🚮" type="tts">avfallsskilt</annotation>
- <annotation cp="🚰">drikke | drikkevann | vann</annotation>
- <annotation cp="🚰" type="tts">drikkevann</annotation>
- <annotation cp="♿">handikaptilgang | rullestol | rullestolbruker | rullestolsymbol</annotation>
- <annotation cp="♿" type="tts">rullestolsymbol</annotation>
- <annotation cp="🚹">do | herrer | herretoalett | mannesymbol | toalett | wc</annotation>
- <annotation cp="🚹" type="tts">herretoalett</annotation>
- <annotation cp="🚺">damer | dametoalett | do | kvinnesymbol | toalett | wc</annotation>
- <annotation cp="🚺" type="tts">dametoalett</annotation>
- <annotation cp="🚻">do | toalett | toalettskilt | WC</annotation>
- <annotation cp="🚻" type="tts">toalettskilt</annotation>
- <annotation cp="🚼">babyskilt | babysymbol | stellestasjon</annotation>
- <annotation cp="🚼" type="tts">babysymbol</annotation>
- <annotation cp="🚾">do | toalett | WC</annotation>
- <annotation cp="🚾" type="tts">do</annotation>
- <annotation cp="🛂">kontroll | pass | passkontroll</annotation>
- <annotation cp="🛂" type="tts">passkontroll</annotation>
- <annotation cp="🛃">grense | toll</annotation>
- <annotation cp="🛃" type="tts">toll</annotation>
- <annotation cp="🛄">bagasje | bagasjebånd | rullebånd</annotation>
- <annotation cp="🛄" type="tts">bagasjebånd</annotation>
- <annotation cp="🛅">bagasje | bagasjeoppbevaring | oppbevaring | oppbevaringsboks</annotation>
- <annotation cp="🛅" type="tts">bagasjeoppbevaring</annotation>
- <annotation cp="⚠">advarsel | OBS</annotation>
- <annotation cp="⚠" type="tts">advarsel</annotation>
- <annotation cp="🚸">barn | barn krysser veien | krysser | skilt</annotation>
- <annotation cp="🚸" type="tts">barn krysser veien</annotation>
- <annotation cp="⛔">adgang forbudt | enveiskjøring | ingen adgang | skilt | stopp</annotation>
- <annotation cp="⛔" type="tts">ingen adgang</annotation>
- <annotation cp="🚫">adgang forbudt | forbudt | ikke | nei | skilt</annotation>
- <annotation cp="🚫" type="tts">forbudt</annotation>
- <annotation cp="🚳">ikke | ingen sykler | nei | sykkel | sykkel ikke tillatt | sykler forbudt</annotation>
- <annotation cp="🚳" type="tts">sykler forbudt</annotation>
- <annotation cp="🚭">forbudt | ikke | ikke tillatt | nei | røyking | skilt</annotation>
- <annotation cp="🚭" type="tts">røyking forbudt</annotation>
- <annotation cp="🚯">forsøpling ikke tillatt | ikke avfall | ingen kasting | skilt</annotation>
- <annotation cp="🚯" type="tts">forsøpling ikke tillatt</annotation>
- <annotation cp="🚱">ikke drikkbart | ikke drikkevann | vann</annotation>
- <annotation cp="🚱" type="tts">ikke drikkevann</annotation>
- <annotation cp="🚷">fotgjenger | fotgjengere | fotgjengere forbudt | gående | ikke | ikke tillatt | nei</annotation>
- <annotation cp="🚷" type="tts">fotgjengere forbudt</annotation>
- <annotation cp="📵">forbudt | ikke | ikke tillatt | ingen telefonsamtaler | mobil | mobiltelefon | mobiltelefon ikke tillatt | nei | telefon</annotation>
- <annotation cp="📵" type="tts">mobiltelefon ikke tillatt</annotation>
- <annotation cp="🔞">18 | aldersgrense 18 år | attenårsgrense | ingen under 18 | under 18</annotation>
- <annotation cp="🔞" type="tts">aldersgrense 18 år</annotation>
- <annotation cp="☢">radioaktiv | radioaktivitet | radioaktivt</annotation>
- <annotation cp="☢" type="tts">radioaktivt</annotation>
- <annotation cp="☣">advarsel | biologisk fare | farlig biologisk materiale | skilt</annotation>
- <annotation cp="☣" type="tts">farlig biologisk materiale</annotation>
- <annotation cp="⬆">nord | oppoverpil | pil | pil opp | retning</annotation>
- <annotation cp="⬆" type="tts">pil opp</annotation>
- <annotation cp="↗">nordøst | pil | pil opp-høyre | retning</annotation>
- <annotation cp="↗" type="tts">pil opp-høyre</annotation>
- <annotation cp="➡">høyrepil | øst | pil | pil høyre | retning</annotation>
- <annotation cp="➡" type="tts">pil høyre</annotation>
- <annotation cp="↘">pil | pil ned-høyre | retning | sørøst</annotation>
- <annotation cp="↘" type="tts">pil ned-høyre</annotation>
- <annotation cp="⬇">nedoverpil | pil | pil ned | retning | sør</annotation>
- <annotation cp="⬇" type="tts">pil ned</annotation>
- <annotation cp="↙">pil | pil ned-venstre | retning | sørvest</annotation>
- <annotation cp="↙" type="tts">pil ned-venstre</annotation>
- <annotation cp="⬅">pil | pil venstre | retning | venstrepil | vest</annotation>
- <annotation cp="⬅" type="tts">pil venstre</annotation>
- <annotation cp="↖">nordvest | pil | pil opp-venstre | retning</annotation>
- <annotation cp="↖" type="tts">pil opp-venstre</annotation>
- <annotation cp="↕">pil | pil opp og ned</annotation>
- <annotation cp="↕" type="tts">pil opp og ned</annotation>
- <annotation cp="↔">pil | pil venstre-høyre</annotation>
- <annotation cp="↔" type="tts">pil venstre-høyre</annotation>
- <annotation cp="↮" draft="contributed">pil begge veier med strek</annotation>
- <annotation cp="↮" type="tts" draft="contributed">pil begge veier med strek</annotation>
- <annotation cp="↩">pil | pil som bøyer mot venstre</annotation>
- <annotation cp="↩" type="tts">pil som bøyer mot venstre</annotation>
- <annotation cp="↪">pil | pil som bøyer mot høyre</annotation>
- <annotation cp="↪" type="tts">pil som bøyer mot høyre</annotation>
- <annotation cp="⤴">pil | pil som bøyer opp</annotation>
- <annotation cp="⤴" type="tts">pil som bøyer opp</annotation>
- <annotation cp="⤵">ned | pil | pil som bøyer ned</annotation>
- <annotation cp="⤵" type="tts">pil som bøyer ned</annotation>
- <annotation cp="🔃">last inn på nytt | piler | vertikale piler med klokken</annotation>
- <annotation cp="🔃" type="tts">vertikale piler med klokken</annotation>
- <annotation cp="🔄">mot klokken | piler | piler mot klokken</annotation>
- <annotation cp="🔄" type="tts">piler mot klokken</annotation>
- <annotation cp="🔙">BACK-pil | pil | pil til venstre | tilbake | tilbakepil</annotation>
- <annotation cp="🔙" type="tts">BACK-pil</annotation>
- <annotation cp="🔚">END-pil | pil | pil til venstre | slutt | slutt med pil | sluttpil</annotation>
- <annotation cp="🔚" type="tts">END-pil</annotation>
- <annotation cp="🔛">ON | ON!-pil | PÅ | pil | utrop | utropstegn</annotation>
- <annotation cp="🔛" type="tts">ON!-pil</annotation>
- <annotation cp="🔜">pil | snart | snart med pil | SOON-pil</annotation>
- <annotation cp="🔜" type="tts">SOON-pil</annotation>
- <annotation cp="🔝">opp | pil opp | TOP | TOP-pil | topp | topp med pil</annotation>
- <annotation cp="🔝" type="tts">TOP-pil</annotation>
- <annotation cp="🛐">religion | religiøst samlingssted | tilbedelse</annotation>
- <annotation cp="🛐" type="tts">religiøst samlingssted</annotation>
- <annotation cp="⚛">ateist | atom | atomsymbol</annotation>
- <annotation cp="⚛" type="tts">atomsymbol</annotation>
- <annotation cp="🕉">hindu | om | religion</annotation>
- <annotation cp="🕉" type="tts">om</annotation>
- <annotation cp="✡">David | Davidstjerne | jøde | jødisk | religion | stjerne</annotation>
- <annotation cp="✡" type="tts">Davidstjerne</annotation>
- <annotation cp="☸">buddhist | dharma | dharmas hjul | hjul | religion</annotation>
- <annotation cp="☸" type="tts">dharmas hjul</annotation>
- <annotation cp="☯">religion | tao | taoist | yang | yin</annotation>
- <annotation cp="☯" type="tts">yin yang</annotation>
- <annotation cp="✝">kors | kristen | latinsk kors | religion</annotation>
- <annotation cp="✝" type="tts">latinsk kors</annotation>
- <annotation cp="☦">kors | kristen | ortodoks | ortodokst kors | religion</annotation>
- <annotation cp="☦" type="tts">ortodokst kors</annotation>
- <annotation cp="☪">islam | muslim | religion | stjerne og halvmåne</annotation>
- <annotation cp="☪" type="tts">stjerne og halvmåne</annotation>
- <annotation cp="☮">fred | fredssymbol</annotation>
- <annotation cp="☮" type="tts">fredssymbol</annotation>
- <annotation cp="🕎">lysestake | menora | religion</annotation>
- <annotation cp="🕎" type="tts">menora</annotation>
- <annotation cp="🔯">magi | sekskantet | sekstagget stjerne med prikk | stjerne</annotation>
- <annotation cp="🔯" type="tts">sekstagget stjerne med prikk</annotation>
- <annotation cp="♈">stjernetegn | vær | Væren</annotation>
- <annotation cp="♈" type="tts">Væren</annotation>
- <annotation cp="♉">okse | stjernetegn | tyr | Tyren</annotation>
- <annotation cp="♉" type="tts">Tyren</annotation>
- <annotation cp="♊">stjernetegn | Tvillingene | tvillinger</annotation>
- <annotation cp="♊" type="tts">Tvillingene</annotation>
- <annotation cp="♋">krabbe | kreps | Krepsen | stjernetegn</annotation>
- <annotation cp="♋" type="tts">Krepsen</annotation>
- <annotation cp="♌">løve | Løven | stjernetegn</annotation>
- <annotation cp="♌" type="tts">Løven</annotation>
- <annotation cp="♍">Jomfruen | stjernetegn</annotation>
- <annotation cp="♍" type="tts">Jomfruen</annotation>
- <annotation cp="♎">rettferdighet | stjernetegn | vekt | Vekten</annotation>
- <annotation cp="♎" type="tts">Vekten</annotation>
- <annotation cp="♏">skorpion | Skorpionen | stjernetegn</annotation>
- <annotation cp="♏" type="tts">Skorpionen</annotation>
- <annotation cp="♐">bueskytter | Skytten | stjernetegn</annotation>
- <annotation cp="♐" type="tts">Skytten</annotation>
- <annotation cp="♑">geit | Steinbukken | stjernetegn</annotation>
- <annotation cp="♑" type="tts">Steinbukken</annotation>
- <annotation cp="♒">stjernetegn | vann | Vannmannen</annotation>
- <annotation cp="♒" type="tts">Vannmannen</annotation>
- <annotation cp="♓">fisk | Fiskene | stjernetegn</annotation>
- <annotation cp="♓" type="tts">Fiskene</annotation>
- <annotation cp="⛎">bærer | slange | Slangebæreren | stjernetegn</annotation>
- <annotation cp="⛎" type="tts">Slangebæreren</annotation>
- <annotation cp="🔀">bland spor-symbol | kryssede piler mot høyre | piler</annotation>
- <annotation cp="🔀" type="tts">bland spor-symbol</annotation>
- <annotation cp="🔁">gjenta-knapp | med klokken | piler</annotation>
- <annotation cp="🔁" type="tts">gjenta-knapp</annotation>
- <annotation cp="🔂">1 gang | én gang | gjenta ett spor-knapp | med klokken | piler</annotation>
- <annotation cp="🔂" type="tts">gjenta ett spor-knapp</annotation>
- <annotation cp="▶">avspillingsknapp | høyre | pil | trekant</annotation>
- <annotation cp="▶" type="tts">avspillingsknapp</annotation>
- <annotation cp="⏩">dobbel pil | høyre | spol framover-knapp | spoling</annotation>
- <annotation cp="⏩" type="tts">spol framover-knapp</annotation>
- <annotation cp="⏭">neste scene | neste spor | neste spor-knapp | pil | trekant</annotation>
- <annotation cp="⏭" type="tts">neste spor-knapp</annotation>
- <annotation cp="⏯">høyre | pause | pil | spill av | spill av/pause-knapp | trekant</annotation>
- <annotation cp="⏯" type="tts">spill av/pause-knapp</annotation>
- <annotation cp="◀">bakover-knapp | pil | tilbake | trekant | venstre</annotation>
- <annotation cp="◀" type="tts">bakover-knapp</annotation>
- <annotation cp="⏪">dobbel pil | spol tilbake-knapp | spoling | venstre</annotation>
- <annotation cp="⏪" type="tts">spol tilbake-knapp</annotation>
- <annotation cp="⏮">forrige scene | forrige spor-knapp | pil | trekant</annotation>
- <annotation cp="⏮" type="tts">forrige spor-knapp</annotation>
- <annotation cp="🔼">oppover | oppover-knapp | pil</annotation>
- <annotation cp="🔼" type="tts">oppover-knapp</annotation>
- <annotation cp="⏫">dobbel | opp | pil | raskt opp-knapp</annotation>
- <annotation cp="⏫" type="tts">raskt opp-knapp</annotation>
- <annotation cp="🔽">ned | nedover | nedover-knapp</annotation>
- <annotation cp="🔽" type="tts">nedover-knapp</annotation>
- <annotation cp="⏬">dobbel pil ned | ned | pil | raskt ned-knapp</annotation>
- <annotation cp="⏬" type="tts">raskt ned-knapp</annotation>
- <annotation cp="⏸">dobbel | pause-knapp | strek | vertikal</annotation>
- <annotation cp="⏸" type="tts">pause-knapp</annotation>
- <annotation cp="⏹">firkant | stopp | stopp-knapp</annotation>
- <annotation cp="⏹" type="tts">stopp-knapp</annotation>
- <annotation cp="⏺">innspilling | sirkel | spill inn-knapp | ta opp</annotation>
- <annotation cp="⏺" type="tts">spill inn-knapp</annotation>
- <annotation cp="⏏">eject | knapp | løse ut | mat ut-knapp | mate ut</annotation>
- <annotation cp="⏏" type="tts">mat ut-knapp</annotation>
- <annotation cp="🎦">film | filmkamera | kamera | kino | underholdning</annotation>
- <annotation cp="🎦" type="tts">kino</annotation>
- <annotation cp="🔅">lav | lite lys-knapp | lysstyrke</annotation>
- <annotation cp="🔅" type="tts">lite lys-knapp</annotation>
- <annotation cp="🔆">høy | lysstyrke | mye lys-knapp</annotation>
- <annotation cp="🔆" type="tts">mye lys-knapp</annotation>
- <annotation cp="📶">antenne | mobil | mobilsignaler | signal | signalstyrke | telefon</annotation>
- <annotation cp="📶" type="tts">mobilsignaler</annotation>
- <annotation cp="📳">mobil | mobiltelefon | modus | vibrasjon | vibrering | vibreringsmodus</annotation>
- <annotation cp="📳" type="tts">vibreringsmodus</annotation>
- <annotation cp="📴">av | mobil | mobiltelefon</annotation>
- <annotation cp="📴" type="tts">mobiltelefon av</annotation>
- <annotation cp="♀">kvinne | kvinnesymbol</annotation>
- <annotation cp="♀" type="tts">kvinnesymbol</annotation>
- <annotation cp="♂">mann | mannssymbol</annotation>
- <annotation cp="♂" type="tts">mannssymbol</annotation>
- <annotation cp="⚧">transperson | transperson-symbol</annotation>
- <annotation cp="⚧" type="tts">transperson-symbol</annotation>
- <annotation cp="✖">× | avbryt | gange | gangetegn | multiplikasjon | multiplisere | x</annotation>
- <annotation cp="✖" type="tts">gange</annotation>
- <annotation cp="➕">+ | addisjon | fortegn | matte | pluss | plusstegn | positivt</annotation>
- <annotation cp="➕" type="tts">pluss</annotation>
- <annotation cp="➖">- | − | fortegn | matte | minus | minustegn | negativt | subtraksjon</annotation>
- <annotation cp="➖" type="tts">minus</annotation>
- <annotation cp="➗">÷ | dele | deletegn | deling | divisjon | divisjonstegn</annotation>
- <annotation cp="➗" type="tts">dele</annotation>
- <annotation cp="♾">for alltid | grenseløs | uendelig | universal | universell</annotation>
- <annotation cp="♾" type="tts">uendelig</annotation>
- <annotation cp="‼">! | !! | bangbang | dobbelt utropstegn | tegn | tegnsetting | utropstegn</annotation>
- <annotation cp="‼" type="tts">dobbelt utropstegn</annotation>
- <annotation cp="⁉">! | !? | ? | interrobang | spørsmålstegn | tegn | tegnsetting | utropstegn | utropstegn og spørsmålstegn</annotation>
- <annotation cp="⁉" type="tts">utropstegn og spørsmålstegn</annotation>
- <annotation cp="❓">? | rødt spørsmålstegn | spørsmål | spørsmålstegn</annotation>
- <annotation cp="❓" type="tts">rødt spørsmålstegn</annotation>
- <annotation cp="❔">? | hvitt spørsmålstegn | spørsmål</annotation>
- <annotation cp="❔" type="tts">hvitt spørsmålstegn</annotation>
- <annotation cp="❕">! | hvitt utropstegn | utrop</annotation>
- <annotation cp="❕" type="tts">hvitt utropstegn</annotation>
- <annotation cp="❗">! | rødt utropstegn | tegn | tegnsetting | utrop | utropstegn</annotation>
- <annotation cp="❗" type="tts">rødt utropstegn</annotation>
- <annotation cp="〰">bølge | bølgestrek | bølget bindestrek | tegn for lang lyd</annotation>
- <annotation cp="〰" type="tts">bølgestrek</annotation>
- <annotation cp="💱">bank | penger | valuta | valutaveksling | veksling</annotation>
- <annotation cp="💱" type="tts">valutaveksling</annotation>
- <annotation cp="💲">dollar | dollartegn | penger | stort dollartegn</annotation>
- <annotation cp="💲" type="tts">dollartegn</annotation>
- <annotation cp="⚕">asklepiosstav | lege | legesymbol | medisin</annotation>
- <annotation cp="⚕" type="tts">legesymbol</annotation>
- <annotation cp="♻">resirkulering | resirkuleringssymbol | symbol | universelt</annotation>
- <annotation cp="♻" type="tts">resirkuleringssymbol</annotation>
- <annotation cp="⚜">fleur-de-lis | fransk lilje</annotation>
- <annotation cp="⚜" type="tts">fransk lilje</annotation>
- <annotation cp="🔱">anker | emblem | treenighet | trefork | treforkemblem | tridentsymbol</annotation>
- <annotation cp="🔱" type="tts">treforkemblem</annotation>
- <annotation cp="📛">navn | navneskilt | skilt</annotation>
- <annotation cp="📛" type="tts">navneskilt</annotation>
- <annotation cp="🔰">grønn og gul | grønt og gult blad | japansk | japansk tegn for nybegynner | nybegynner</annotation>
- <annotation cp="🔰" type="tts">japansk tegn for nybegynner</annotation>
- <annotation cp="⭕">o | rød | sirkel | stor | tykk rød sirkel</annotation>
- <annotation cp="⭕" type="tts">tykk rød sirkel</annotation>
- <annotation cp="✅">✓ | avkryssing | avmerking | hake | hakemerke i firkant</annotation>
- <annotation cp="✅" type="tts">hakemerke i firkant</annotation>
- <annotation cp="☑">✓ | avkrysset boks | boks | boks med hakemerke | hakemerke</annotation>
- <annotation cp="☑" type="tts">boks med hakemerke</annotation>
- <annotation cp="✔">✓ | hake | hakemerke | merke</annotation>
- <annotation cp="✔" type="tts">hakemerke</annotation>
- <annotation cp="❌">× | kryss | rødt kryss | x | X</annotation>
- <annotation cp="❌" type="tts">kryss</annotation>
- <annotation cp="❎">× | kryss | kryss i firkant | kvadrat | x</annotation>
- <annotation cp="❎" type="tts">kryss i firkant</annotation>
- <annotation cp="➰">løkke | løkketegn</annotation>
- <annotation cp="➰" type="tts">løkke</annotation>
- <annotation cp="➿">dobbel løkke | dobbel løkke-tegn</annotation>
- <annotation cp="➿" type="tts">dobbel løkke</annotation>
- <annotation cp="〽">merke | merke for nytt parti | nytt | parti</annotation>
- <annotation cp="〽" type="tts">merke for nytt parti</annotation>
- <annotation cp="✳">* | asterisk | asterisk med åtte spisser | stjerne</annotation>
- <annotation cp="✳" type="tts">asterisk med åtte spisser</annotation>
- <annotation cp="✴">* | åttetagget stjerne | stjerne</annotation>
- <annotation cp="✴" type="tts">åttetagget stjerne</annotation>
- <annotation cp="❇">* | gnist</annotation>
- <annotation cp="❇" type="tts">gnist</annotation>
- <annotation cp="©">copyright | opphavsrett</annotation>
- <annotation cp="©" type="tts">opphavsrett</annotation>
- <annotation cp="®">r | registrert varemerke | varemerkesymbol</annotation>
- <annotation cp="®" type="tts">registrert varemerke</annotation>
- <annotation cp="™">tm | trademark | varemerke</annotation>
- <annotation cp="™" type="tts">varemerke</annotation>
- <annotation cp="🔠">ABCD | bokstaver | inndata | store bokstaver</annotation>
- <annotation cp="🔠" type="tts">store bokstaver</annotation>
- <annotation cp="🔡">abcd | bokstaver | inndata | små bokstaver</annotation>
- <annotation cp="🔡" type="tts">små bokstaver</annotation>
- <annotation cp="🔢">1234 | inndata | numeriske data | tall</annotation>
- <annotation cp="🔢" type="tts">tall</annotation>
- <annotation cp="🔣">〒♪&% | inndata | symboler</annotation>
- <annotation cp="🔣" type="tts">symboler</annotation>
- <annotation cp="🔤">ABC | bokstaver | inndata | latinsk | latinsk alfabet</annotation>
- <annotation cp="🔤" type="tts">latinsk alfabet</annotation>
- <annotation cp="🅰">A | A-knapp (blodtype) | blod | blodtype | type A</annotation>
- <annotation cp="🅰" type="tts">A-knapp (blodtype)</annotation>
- <annotation cp="🆎">AB | AB-knapp (blodtype) | blod | blodtype | type AB</annotation>
- <annotation cp="🆎" type="tts">AB-knapp (blodtype)</annotation>
- <annotation cp="🅱">B | B-knapp (blodtype) | blod | blodtype | type B</annotation>
- <annotation cp="🅱" type="tts">B-knapp (blodtype)</annotation>
- <annotation cp="🆑">CL-knapp | clear | slett | tøm</annotation>
- <annotation cp="🆑" type="tts">CL-knapp</annotation>
- <annotation cp="🆒">cool | COOL-knapp</annotation>
- <annotation cp="🆒" type="tts">COOL-knapp</annotation>
- <annotation cp="🆓">free | FREE-knapp | free-symbol | gratis</annotation>
- <annotation cp="🆓" type="tts">FREE-knapp</annotation>
- <annotation cp="ℹ">i | info | informasjon</annotation>
- <annotation cp="ℹ" type="tts">informasjon</annotation>
- <annotation cp="🆔">ID-knapp | ID-symbol | identitet</annotation>
- <annotation cp="🆔" type="tts">ID-knapp</annotation>
- <annotation cp="Ⓜ">m | M med ring rundt | sirkel</annotation>
- <annotation cp="Ⓜ" type="tts">M med ring rundt</annotation>
- <annotation cp="🆕">new | NEW-knapp | new-symbol | ny | nyhet</annotation>
- <annotation cp="🆕" type="tts">NEW-knapp</annotation>
- <annotation cp="🆖">ikke bra | NG | NG-knapp | NG-symbol | no good</annotation>
- <annotation cp="🆖" type="tts">NG-knapp</annotation>
- <annotation cp="🅾">blod | blodtype | O | O-knapp (blodtype) | type O</annotation>
- <annotation cp="🅾" type="tts">O-knapp (blodtype)</annotation>
- <annotation cp="🆗">OK | OK-knapp | OK-symbol</annotation>
- <annotation cp="🆗" type="tts">OK-knapp</annotation>
- <annotation cp="🅿">P-knapp | parkering | parkeringsplass</annotation>
- <annotation cp="🅿" type="tts">P-knapp</annotation>
- <annotation cp="🆘">hjelp | hjelp-symbol | sos | SOS-knapp | SOS-symbol</annotation>
- <annotation cp="🆘" type="tts">SOS-knapp</annotation>
- <annotation cp="🆙">opp | opp-symbol | up | UP!-knapp | UP!-symbol</annotation>
- <annotation cp="🆙" type="tts">UP!-knapp</annotation>
- <annotation cp="🆚">versus | vs | VS-knapp | vs-symbol</annotation>
- <annotation cp="🆚" type="tts">VS-knapp</annotation>
- <annotation cp="🈁">«her» på japansk | «koko» | her | japansk | katakana | ココ</annotation>
- <annotation cp="🈁" type="tts">«her» på japansk</annotation>
- <annotation cp="🈂">«gebyr» på japansk | «sa» | gebyr | japansk | katakana | サ</annotation>
- <annotation cp="🈂" type="tts">«gebyr» på japansk</annotation>
- <annotation cp="🈷">«månedlig beløp» på japansk | ideograf | japansk | månedlig beløp | 月</annotation>
- <annotation cp="🈷" type="tts">«månedlig beløp» på japansk</annotation>
- <annotation cp="🈶">«ikke gratis» på japansk | ideograf | ikke gratis | japansk | 有</annotation>
- <annotation cp="🈶" type="tts">«ikke gratis» på japansk</annotation>
- <annotation cp="🈯">«reservert» på japansk | ideograf | japansk | reservert | 指</annotation>
- <annotation cp="🈯" type="tts">«reservert» på japansk</annotation>
- <annotation cp="🉐">«spesialtilbud» på japansk | ideograf | japansk | spesialtilbud | 得</annotation>
- <annotation cp="🉐" type="tts">«spesialtilbud» på japansk</annotation>
- <annotation cp="🈹">«rabatt» på japansk | ideograf | japansk | rabatt | 割</annotation>
- <annotation cp="🈹" type="tts">«rabatt» på japansk</annotation>
- <annotation cp="🈚">«gratis» på japansk | gratis | ideograf | japansk | 無</annotation>
- <annotation cp="🈚" type="tts">«gratis» på japansk</annotation>
- <annotation cp="🈲">«forbudt» på japansk | forbudt | ideograf | japansk | 禁</annotation>
- <annotation cp="🈲" type="tts">«forbudt» på japansk</annotation>
- <annotation cp="🉑">«akseptabelt» på japansk | akseptabelt | ideograf | japansk | 可</annotation>
- <annotation cp="🉑" type="tts">«akseptabelt» på japansk</annotation>
- <annotation cp="🈸">«søknad» på japansk | ideograf | japansk | søknad | 申</annotation>
- <annotation cp="🈸" type="tts">«søknad» på japansk</annotation>
- <annotation cp="🈴">«bestått» på japansk | bestått | ideograf | japansk | 合</annotation>
- <annotation cp="🈴" type="tts">«bestått» på japansk</annotation>
- <annotation cp="🈳">«ledig» på japansk | ideograf | japansk | ledig | 空</annotation>
- <annotation cp="🈳" type="tts">«ledig» på japansk</annotation>
- <annotation cp="㊗">«gratulerer» på japansk | gratulerer | ideograf | japansk | 祝</annotation>
- <annotation cp="㊗" type="tts">«gratulerer» på japansk</annotation>
- <annotation cp="㊙">«hemmelig» på japansk | hemmelig | ideograf | japansk | 秘</annotation>
- <annotation cp="㊙" type="tts">«hemmelig» på japansk</annotation>
- <annotation cp="🈺">«åpen for handel» på japansk | åpen for handel | ideograf | japansk | 営</annotation>
- <annotation cp="🈺" type="tts">«åpen for handel» på japansk</annotation>
- <annotation cp="🈵">«fullt» på japansk | fullt | ideograf | japansk | 満</annotation>
- <annotation cp="🈵" type="tts">«fullt» på japansk</annotation>
- <annotation cp="🔴">geometrisk | rød | sirkel</annotation>
- <annotation cp="🔴" type="tts">rød sirkel</annotation>
- <annotation cp="🟠">oransje | sirkel</annotation>
- <annotation cp="🟠" type="tts">oransje sirkel</annotation>
- <annotation cp="🟡">gul | sirkel</annotation>
- <annotation cp="🟡" type="tts">gul sirkel</annotation>
- <annotation cp="🟢">grønn | sirkel</annotation>
- <annotation cp="🟢" type="tts">grønn sirkel</annotation>
- <annotation cp="🔵">blå | geometrisk | sirkel</annotation>
- <annotation cp="🔵" type="tts">blå sirkel</annotation>
- <annotation cp="🟣">lilla | sirkel</annotation>
- <annotation cp="🟣" type="tts">lilla sirkel</annotation>
- <annotation cp="🟤">brun | sirkel</annotation>
- <annotation cp="🟤" type="tts">brun sirkel</annotation>
- <annotation cp="⚫">geometrisk | sirkel | svart sirkel</annotation>
- <annotation cp="⚫" type="tts">svart sirkel</annotation>
- <annotation cp="⚪">geometrisk | hvit sirkel | sirkel</annotation>
- <annotation cp="⚪" type="tts">hvit sirkel</annotation>
- <annotation cp="🟥">kvadrat | rød | rødt</annotation>
- <annotation cp="🟥" type="tts">rødt kvadrat</annotation>
- <annotation cp="🟧">kvadrat | oransje</annotation>
- <annotation cp="🟧" type="tts">oransje kvadrat</annotation>
- <annotation cp="🟨">gul | gult | kvadrat</annotation>
- <annotation cp="🟨" type="tts">gult kvadrat</annotation>
- <annotation cp="🟩">grønn | grønt | kvadrat</annotation>
- <annotation cp="🟩" type="tts">grønt kvadrat</annotation>
- <annotation cp="🟦">blå | blått | kvadrat</annotation>
- <annotation cp="🟦" type="tts">blått kvadrat</annotation>
- <annotation cp="🟪">kvadrat | lilla</annotation>
- <annotation cp="🟪" type="tts">lilla kvadrat</annotation>
- <annotation cp="🟫">brun | brunt | kvadrat</annotation>
- <annotation cp="🟫" type="tts">brunt kvadrat</annotation>
- <annotation cp="⬛">firkant | geometrisk | kvadrat | stor svart firkant</annotation>
- <annotation cp="⬛" type="tts">stor svart firkant</annotation>
- <annotation cp="⬜">firkant | geometrisk | kvadrat | stor hvit firkant</annotation>
- <annotation cp="⬜" type="tts">stor hvit firkant</annotation>
- <annotation cp="◼">firkant | geometrisk | kvadrat | mellomstor svart firkant</annotation>
- <annotation cp="◼" type="tts">mellomstor svart firkant</annotation>
- <annotation cp="◻">firkant | geometrisk | kvadrat | mellomstor hvit firkant</annotation>
- <annotation cp="◻" type="tts">mellomstor hvit firkant</annotation>
- <annotation cp="◾">firkant | geometrisk | kvadrat | liten/mellomstor svart firkant</annotation>
- <annotation cp="◾" type="tts">liten/mellomstor svart firkant</annotation>
- <annotation cp="◽">firkant | geometrisk | kvadrat | liten/mellomstor hvit firkant</annotation>
- <annotation cp="◽" type="tts">liten/mellomstor hvit firkant</annotation>
- <annotation cp="▪">firkant | geometrisk | kvadrat | liten svart firkant</annotation>
- <annotation cp="▪" type="tts">liten svart firkant</annotation>
- <annotation cp="▫">firkant | geometrisk | kvadrat | liten hvit firkant</annotation>
- <annotation cp="▫" type="tts">liten hvit firkant</annotation>
- <annotation cp="🔶">geometrisk | oransje | ruter | stort oransje rutersymbol</annotation>
- <annotation cp="🔶" type="tts">stort oransje rutersymbol</annotation>
- <annotation cp="🔷">blå | geometrisk | ruter | stort blått rutersymbol</annotation>
- <annotation cp="🔷" type="tts">stort blått rutersymbol</annotation>
- <annotation cp="🔸">geometrisk | lite oransje rutersymbol | oransje | ruter</annotation>
- <annotation cp="🔸" type="tts">lite oransje rutersymbol</annotation>
- <annotation cp="🔹">blå | geometrisk | lite blått rutersymbol | ruter</annotation>
- <annotation cp="🔹" type="tts">lite blått rutersymbol</annotation>
- <annotation cp="🔺">geometrisk | oppover | rød trekant som peker opp | trekant</annotation>
- <annotation cp="🔺" type="tts">rød trekant som peker opp</annotation>
- <annotation cp="🔻">geometrisk | nedover | rød trekant som peker ned | trekant</annotation>
- <annotation cp="🔻" type="tts">rød trekant som peker ned</annotation>
- <annotation cp="💠">blomst | diamant | diamant med prikk | søtt</annotation>
- <annotation cp="💠" type="tts">diamant med prikk</annotation>
- <annotation cp="🔘">knapp | radio | radioknapp</annotation>
- <annotation cp="🔘" type="tts">radioknapp</annotation>
- <annotation cp="🔳">firkant | hvit firkantet knapp | knapp</annotation>
- <annotation cp="🔳" type="tts">hvit firkantet knapp</annotation>
- <annotation cp="🔲">firkant | knapp | svart firkantet knapp</annotation>
- <annotation cp="🔲" type="tts">svart firkantet knapp</annotation>
- <annotation cp="🏁">formel 1 | mål | motorsport | racingflagg | rutete flagg</annotation>
- <annotation cp="🏁" type="tts">rutete flagg</annotation>
- <annotation cp="🚩">golf | posisjon | trekantet | vimpel</annotation>
- <annotation cp="🚩" type="tts">vimpel</annotation>
- <annotation cp="🎌">feiring | flagg | kryssede flagg | kryssede japanske flagg | krysset</annotation>
- <annotation cp="🎌" type="tts">kryssede flagg</annotation>
- <annotation cp="🏴">flagg | flagring | svart</annotation>
- <annotation cp="🏴" type="tts">svart flagg</annotation>
- <annotation cp="🏳">flagg | flagring | hvitt</annotation>
- <annotation cp="🏳" type="tts">hvitt flagg</annotation>
- <annotation cp="🏳🌈">flagg | regnbue | regnbueflagg</annotation>
- <annotation cp="🏳🌈" type="tts">regnbueflagg</annotation>
- <annotation cp="🏳⚧">flagg | hvit | lyseblå | rosa | transperson | transpersonflagg</annotation>
- <annotation cp="🏳⚧" type="tts">transpersonflagg</annotation>
- <annotation cp="🏴☠">Kaptein Sabeltann | pirat | plyndre | sjørøverflagg | skatt</annotation>
- <annotation cp="🏴☠" type="tts">sjørøverflagg</annotation>
- <annotation cp="¢">cent | valuta</annotation>
- <annotation cp="¢" type="tts">cent</annotation>
- <annotation cp="$">dollar | MXN | peso | USD | valuta</annotation>
- <annotation cp="$" type="tts">dollar</annotation>
- <annotation cp="£">britiske pund | EGP | GBP | pund | valuta</annotation>
- <annotation cp="£" type="tts">pund</annotation>
- <annotation cp="¥">CNY | japanske yen | JPY | kinesiske yuan | valuta | yen</annotation>
- <annotation cp="¥" type="tts">yen</annotation>
- <annotation cp="₥">mill | tusendels valutaenhet | valuta</annotation>
- <annotation cp="₥" type="tts">mill</annotation>
- <annotation cp="₩">KPW | KRW | valuta | won</annotation>
- <annotation cp="₩" type="tts">won</annotation>
- <annotation cp="€">EUR | euro | valuta</annotation>
- <annotation cp="€" type="tts">euro</annotation>
- <annotation cp="₱">peso | PHP | valuta</annotation>
- <annotation cp="₱" type="tts">peso</annotation>
- <annotation cp="₹">indiske rupi | INR | rupi | valuta</annotation>
- <annotation cp="₹" type="tts">indiske rupi</annotation>
- <annotation cp="₽">RUB | rubler | russiske rubler | valuta</annotation>
- <annotation cp="₽" type="tts">rubler</annotation>
- <annotation cp="₿">bitcoin | BTC | kryptovaluta | valuta</annotation>
- <annotation cp="₿" type="tts">bitcoin</annotation>
- <annotation cp="¹">en | hevet | hevet ettall | i første | opphøyd i første</annotation>
- <annotation cp="¹" type="tts">hevet ettall</annotation>
- <annotation cp="²">hevet | hevet totall | i andre | kvadrat | opphøyd i andre | to</annotation>
- <annotation cp="²" type="tts">hevet totall</annotation>
- <annotation cp="³">hevet | hevet tretall | i tredje | kubikk | opphøyd i tredje | tre</annotation>
- <annotation cp="³" type="tts">hevet tretall</annotation>
- <annotation cp="µ">gresk my | liten my | mikro | mikrotegn | milliondel | milliontedels | my</annotation>
- <annotation cp="µ" type="tts">mikrotegn</annotation>
- </annotations>
</ldml>
diff --git a/common/annotations/ne.xml b/common/annotations/ne.xml
index 059f951..2642d0b 100644
--- a/common/annotations/ne.xml
+++ b/common/annotations/ne.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -447,6 +447,8 @@
<annotation cp="🙄" type="tts">घुमिरहेको आँखासहितको अनुहार</annotation>
<annotation cp="😬">अनुहार | मुख बनाएको | मुख बनाएको अनुहार</annotation>
<annotation cp="😬" type="tts">मुख बनाएको अनुहार</annotation>
+ <annotation cp="😮💨">कानेखुशी | गहिरो आवाज निकाल्नु | मुखबाट सास फाल्ने | राहत | सास फाल्ने | सीटी | हाँसो</annotation>
+ <annotation cp="😮💨" type="tts">मुखबाट सास फाल्ने</annotation>
<annotation cp="🤥">अनुहार | झुट | झुट बोलेको झल्किने अनुहार | पिनोच्चियो</annotation>
<annotation cp="🤥" type="tts">झुट बोलेको झल्किने अनुहार</annotation>
<annotation cp="😌">अनुहार | चिन्तामुक्त</annotation>
@@ -505,8 +507,6 @@
<annotation cp="☹" type="tts">कुडिएको अनुहार</annotation>
<annotation cp="😮">अनुहार | खुला | खुला मुख भएको अनुहार | मुख | सहानुभूति</annotation>
<annotation cp="😮" type="tts">खुला मुख भएको अनुहार</annotation>
- <annotation cp="😮💨">कानेखुशी | गहिरो आवाज निकाल्नु | मुखबाट सास फाल्ने | राहत | सास फाल्ने | सीटी | हाँसो</annotation>
- <annotation cp="😮💨" type="tts">मुखबाट सास फाल्ने</annotation>
<annotation cp="😯">अनुहार | आश्चर्यचकित भएको | शान्त | हैरान भएको</annotation>
<annotation cp="😯" type="tts">शान्त अनुहार</annotation>
<annotation cp="😲">अनुहार | चकित | दंग भएको | पूरै</annotation>
@@ -625,12 +625,12 @@
<annotation cp="❣" type="tts">गाढा मुटुको विस्मयाधिबोधक चिन्हको सजावट</annotation>
<annotation cp="💔">टुक्रिएको | टुटेको | मुटु</annotation>
<annotation cp="💔" type="tts">टुक्रिएको मुटु</annotation>
- <annotation cp="❤">मुटु | रातो मुटु</annotation>
- <annotation cp="❤" type="tts">रातो मुटु</annotation>
<annotation cp="❤🔥">काम वासना | जलेको | दिलमा आगो लागेको | पवित्र दिल | माया | मुटु</annotation>
<annotation cp="❤🔥" type="tts">दिलमा आगो लागेको</annotation>
<annotation cp="❤🩹">निको पार्दै | मुटुको चोट निको पार्दै | राम्रो | सन्चो हुँदै | सुधार गर्दै | स्वस्थ</annotation>
<annotation cp="❤🩹" type="tts">मुटुको चोट निको पार्दै</annotation>
+ <annotation cp="❤">मुटु | रातो मुटु</annotation>
+ <annotation cp="❤" type="tts">रातो मुटु</annotation>
<annotation cp="🧡">सुन्तला | सुन्तला रङको मुटु</annotation>
<annotation cp="🧡" type="tts">सुन्तला रङको मुटु</annotation>
<annotation cp="💛">पहेँलो | मुटु</annotation>
@@ -793,14 +793,14 @@
<annotation cp="👨" type="tts">छोरामान्छे</annotation>
<annotation cp="🧔">दाह्री | दाह्रीवाल मान्छे</annotation>
<annotation cp="🧔" type="tts">दाह्रीवाल मान्छे</annotation>
- <annotation cp="👱♂">कैलो | कैलो कपाल भएको छोरामान्छे | छोरामान्छे | पुरूष</annotation>
- <annotation cp="👱♂" type="tts">कैलो कपाल भएको छोरामान्छे</annotation>
- <annotation cp="🧔♀">दाह्री | महिला | महिलाःदाह्री</annotation>
- <annotation cp="🧔♀" type="tts">महिलाःदाह्री</annotation>
<annotation cp="🧔♂">दाह्री | पुरुष | पुरुष: दाह्री | पुरुष:दाह्री</annotation>
<annotation cp="🧔♂" type="tts">पुरुष: दाह्री</annotation>
+ <annotation cp="👱♂">कैलो | कैलो कपाल भएको छोरामान्छे | छोरामान्छे | पुरूष</annotation>
+ <annotation cp="👱♂" type="tts">कैलो कपाल भएको छोरामान्छे</annotation>
<annotation cp="👩">छोरीमान्छे | महिला</annotation>
<annotation cp="👩" type="tts">छोरीमान्छे</annotation>
+ <annotation cp="🧔♀">दाह्री | महिला | महिलाःदाह्री</annotation>
+ <annotation cp="🧔♀" type="tts">महिलाःदाह्री</annotation>
<annotation cp="👱♀">कैलो | कैलो कपाल भएकी छोरीमान्छे | छोरामान्छे | पुरूष</annotation>
<annotation cp="👱♀" type="tts">कैलो कपाल भएकी छोरीमान्छे</annotation>
<annotation cp="🧓">पाको वयस्क | लैङ्गिक हिसाबले तटस्थ</annotation>
diff --git a/common/annotations/nl.xml b/common/annotations/nl.xml
index 1f79dca..0a5b1e2 100644
--- a/common/annotations/nl.xml
+++ b/common/annotations/nl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -566,6 +566,8 @@
<annotation cp="🙄" type="tts">gezicht met rollende ogen</annotation>
<annotation cp="😬">gezicht | gezicht met grimas | grimas</annotation>
<annotation cp="😬" type="tts">gezicht met grimas</annotation>
+ <annotation cp="😮💨">fluisteren | fluiten | gezicht dat uitademt | kreunen | naar adem snakken | opgelucht | uitademen</annotation>
+ <annotation cp="😮💨" type="tts">gezicht dat uitademt</annotation>
<annotation cp="🤥">gezicht | liegen | liegend gezicht | pinokkio</annotation>
<annotation cp="🤥" type="tts">liegend gezicht</annotation>
<annotation cp="😌">gezicht | opgelucht</annotation>
@@ -624,8 +626,6 @@
<annotation cp="☹" type="tts">fronsend gezicht</annotation>
<annotation cp="😮">gezicht | gezicht met open mond | mond | open | sympathie</annotation>
<annotation cp="😮" type="tts">gezicht met open mond</annotation>
- <annotation cp="😮💨">fluisteren | fluiten | gezicht dat uitademt | kreunen | naar adem snakken | opgelucht | uitademen</annotation>
- <annotation cp="😮💨" type="tts">gezicht dat uitademt</annotation>
<annotation cp="😯">gezicht | verbaasd | verrast | verstomd</annotation>
<annotation cp="😯" type="tts">verstomd gezicht</annotation>
<annotation cp="😲">gechoqueerd | geschokt | gezicht | totaal gechoqueerd | verbaasd gezicht</annotation>
@@ -744,12 +744,12 @@
<annotation cp="❣" type="tts">hart als uitroepteken</annotation>
<annotation cp="💔">breken | gebroken | gebroken hart</annotation>
<annotation cp="💔" type="tts">gebroken hart</annotation>
- <annotation cp="❤">hart | rood hart</annotation>
- <annotation cp="❤" type="tts">rood hart</annotation>
<annotation cp="❤🔥">branden | hart | hart in vuur en vlam | heilig hart | liefde | lust</annotation>
<annotation cp="❤🔥" type="tts">hart in vuur en vlam</annotation>
<annotation cp="❤🩹">gezond | gezonder | helend | helend hart | herstellend | verbeterend</annotation>
<annotation cp="❤🩹" type="tts">helend hart</annotation>
+ <annotation cp="❤">hart | rood hart</annotation>
+ <annotation cp="❤" type="tts">rood hart</annotation>
<annotation cp="🧡">oranje | oranje hart</annotation>
<annotation cp="🧡" type="tts">oranje hart</annotation>
<annotation cp="💛">geel | geel hart</annotation>
@@ -912,14 +912,14 @@
<annotation cp="👨" type="tts">man</annotation>
<annotation cp="🧔">baard | persoon | persoon: baard</annotation>
<annotation cp="🧔" type="tts">persoon: baard</annotation>
- <annotation cp="👱♂">blond | haar | man | man met blond haar</annotation>
- <annotation cp="👱♂" type="tts">man met blond haar</annotation>
- <annotation cp="🧔♀">baard + vrouw: baard | vrouw | vrouw: baard</annotation>
- <annotation cp="🧔♀" type="tts">vrouw: baard</annotation>
<annotation cp="🧔♂">baard | man | man: baard</annotation>
<annotation cp="🧔♂" type="tts">man: baard</annotation>
+ <annotation cp="👱♂">blond | haar | man | man met blond haar</annotation>
+ <annotation cp="👱♂" type="tts">man met blond haar</annotation>
<annotation cp="👩">vrouw</annotation>
<annotation cp="👩" type="tts">vrouw</annotation>
+ <annotation cp="🧔♀">baard + vrouw: baard | vrouw | vrouw: baard</annotation>
+ <annotation cp="🧔♀" type="tts">vrouw: baard</annotation>
<annotation cp="👱♀">blond | haar | vrouw | vrouw met blond haar</annotation>
<annotation cp="👱♀" type="tts">vrouw met blond haar</annotation>
<annotation cp="🧓">genderneutraal | oud | oudere persoon | oudere volwassene</annotation>
diff --git a/common/annotations/nn.xml b/common/annotations/nn.xml
index d07bf13..69ddbc4 100644
--- a/common/annotations/nn.xml
+++ b/common/annotations/nn.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -370,6 +370,8 @@
<annotation cp="🙄" type="tts">himlar med auga</annotation>
<annotation cp="😬">fjes | grimase</annotation>
<annotation cp="😬" type="tts">grimase</annotation>
+ <annotation cp="😮💨">fjes | gispe | kviskre | letta | plystre | pustar ut | puste ut | sukke</annotation>
+ <annotation cp="😮💨" type="tts">pustar ut</annotation>
<annotation cp="🤥">fjes | løgn | lyg | pinocchio</annotation>
<annotation cp="🤥" type="tts">lyg</annotation>
<annotation cp="😌">fjes | letta</annotation>
@@ -428,8 +430,6 @@
<annotation cp="☹" type="tts">surt fjes</annotation>
<annotation cp="😮">fjes | forbausa | open munn</annotation>
<annotation cp="😮" type="tts">forbausa</annotation>
- <annotation cp="😮💨">fjes | gispe | kviskre | letta | plystre | pustar ut | puste ut | sukke</annotation>
- <annotation cp="😮💨" type="tts">pustar ut</annotation>
<annotation cp="😯">fjes | overraska | stum</annotation>
<annotation cp="😯" type="tts">overraska</annotation>
<annotation cp="😲">fjes | overraska | sjokkert | stum</annotation>
@@ -548,12 +548,12 @@
<annotation cp="❣" type="tts">utropsteikn med hjarte</annotation>
<annotation cp="💔">brot | hjarte | kjensler | knust hjarte</annotation>
<annotation cp="💔" type="tts">knust hjarte</annotation>
- <annotation cp="❤">hjarte | raudt hjarte</annotation>
- <annotation cp="❤" type="tts">raudt hjarte</annotation>
<annotation cp="❤🔥">brann | eld | heilag hjarte | hjarte | hjarte i brann | kjærleik | lidenskap</annotation>
<annotation cp="❤🔥" type="tts">hjarte i brann</annotation>
<annotation cp="❤🩹">betre | bra | forbetring | kome seg | lindra hjarte | lindring | sterkare</annotation>
<annotation cp="❤🩹" type="tts">lindra hjarte</annotation>
+ <annotation cp="❤">hjarte | raudt hjarte</annotation>
+ <annotation cp="❤" type="tts">raudt hjarte</annotation>
<annotation cp="🧡">hjarte | kjensler | oransje</annotation>
<annotation cp="🧡" type="tts">oransje hjarte</annotation>
<annotation cp="💛">gul | gult hjarte | hjarte | kjensler</annotation>
@@ -716,14 +716,14 @@
<annotation cp="👨" type="tts">mann</annotation>
<annotation cp="🧔">mann | mann med skjegg | mann: skjegg | person | person: skjegg | skjegg</annotation>
<annotation cp="🧔" type="tts">person: skjegg</annotation>
- <annotation cp="👱♂">blond | hår | mann | mann: blond</annotation>
- <annotation cp="👱♂" type="tts">mann: blond</annotation>
- <annotation cp="🧔♀">kvinne | kvinne: skjegg | skjegg</annotation>
- <annotation cp="🧔♀" type="tts">kvinne: skjegg</annotation>
<annotation cp="🧔♂">mann | mann: skjegg | skjegg</annotation>
<annotation cp="🧔♂" type="tts">mann: skjegg</annotation>
+ <annotation cp="👱♂">blond | hår | mann | mann: blond</annotation>
+ <annotation cp="👱♂" type="tts">mann: blond</annotation>
<annotation cp="👩">kvinne | menneske | vaksen</annotation>
<annotation cp="👩" type="tts">kvinne</annotation>
+ <annotation cp="🧔♀">kvinne | kvinne: skjegg | skjegg</annotation>
+ <annotation cp="🧔♀" type="tts">kvinne: skjegg</annotation>
<annotation cp="👱♀">blond | blondine | hår | kvinne | kvinne: blond</annotation>
<annotation cp="👱♀" type="tts">kvinne: blond</annotation>
<annotation cp="🧓">eldre vaksen | gamal | kjønnsnøytral | menneske | vaksen</annotation>
diff --git a/common/annotations/no.xml b/common/annotations/no.xml
new file mode 100644
index 0000000..ab8bca2
--- /dev/null
+++ b/common/annotations/no.xml
@@ -0,0 +1,3449 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
+<!-- Copyright © 1991-2021 Unicode, Inc.
+For terms of use, see http://www.unicode.org/copyright.html
+Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
+CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
+
+Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ for derived annotations.
+-->
+<ldml>
+ <identity>
+ <version number="$Revision$"/>
+ <language type="no"/>
+ </identity>
+ <annotations>
+ <annotation cp="{">klammeparentes | krøllparentes | parentes | startparentes | venstre krøllparentes</annotation>
+ <annotation cp="{" type="tts">venstre krøllparentes</annotation>
+ <annotation cp="🏻">emojimodifikator | fitzpatrick | hud | hudfarge | hudtype 1–2 | type 1–2</annotation>
+ <annotation cp="🏻" type="tts">hudtype 1–2</annotation>
+ <annotation cp="🏼">emojimodifikator | fitzpatrick | hud | hudfarge | hudtype 3 | type 3</annotation>
+ <annotation cp="🏼" type="tts">hudtype 3</annotation>
+ <annotation cp="🏽">emojimodifikator | fitzpatrick | hud | hudfarge | hudtype 4 | type 4</annotation>
+ <annotation cp="🏽" type="tts">hudtype 4</annotation>
+ <annotation cp="🏾">emojimodifikator | fitzpatrick | hud | hudfarge | hudtype 5 | type 5</annotation>
+ <annotation cp="🏾" type="tts">hudtype 5</annotation>
+ <annotation cp="🏿">emojimodifikator | fitzpatrick | hud | hudfarge | hudtype 6 | type 6</annotation>
+ <annotation cp="🏿" type="tts">hudtype 6</annotation>
+ <annotation cp="‾" draft="contributed">overstrek</annotation>
+ <annotation cp="‾" type="tts" draft="contributed">overstrek</annotation>
+ <annotation cp="_">understrek</annotation>
+ <annotation cp="_" type="tts">understrek</annotation>
+ <annotation cp="-">bindestrek-minus-tegn</annotation>
+ <annotation cp="-" type="tts">bindestrek-minus-tegn</annotation>
+ <annotation cp="‐">bindestrek</annotation>
+ <annotation cp="‐" type="tts">bindestrek</annotation>
+ <annotation cp="–">bindestreker | en-dash | halvgefirt | tankestrek</annotation>
+ <annotation cp="–" type="tts">tankestrek</annotation>
+ <annotation cp="—">bindestreker | em-dash | gefirt | lang tankestrek</annotation>
+ <annotation cp="—" type="tts">lang tankestrek</annotation>
+ <annotation cp="―">strek | vannrett strek</annotation>
+ <annotation cp="―" type="tts">vannrett strek</annotation>
+ <annotation cp="・">bindestrek | interpunkt | katakana | midtstilt prikk i katakana | prikk | punkt</annotation>
+ <annotation cp="・" type="tts">midtstilt prikk i katakana</annotation>
+ <annotation cp=",">komma</annotation>
+ <annotation cp="," type="tts">komma</annotation>
+ <annotation cp="،">arabisk komma | komma</annotation>
+ <annotation cp="،" type="tts">arabisk komma</annotation>
+ <annotation cp="、">ideografisk komma | komma</annotation>
+ <annotation cp="、" type="tts">ideografisk komma</annotation>
+ <annotation cp=";">semikolon</annotation>
+ <annotation cp=";" type="tts">semikolon</annotation>
+ <annotation cp="؛">arabisk semikolon | semikolon</annotation>
+ <annotation cp="؛" type="tts">arabisk semikolon</annotation>
+ <annotation cp=":">kolon</annotation>
+ <annotation cp=":" type="tts">kolon</annotation>
+ <annotation cp="!">utropstegn</annotation>
+ <annotation cp="!" type="tts">utropstegn</annotation>
+ <annotation cp="¡">opp-ned utropstegn | utropstegn</annotation>
+ <annotation cp="¡" type="tts">opp-ned utropstegn</annotation>
+ <annotation cp="?">spørsmål | spørsmålstegn</annotation>
+ <annotation cp="?" type="tts">spørsmålstegn</annotation>
+ <annotation cp="¿">opp-ned spørsmålstegn | spørsmål | spørsmålstegn</annotation>
+ <annotation cp="¿" type="tts">opp-ned spørsmålstegn</annotation>
+ <annotation cp="؟">arabisk spørsmålstegn | spørsmål | spørsmålstegn</annotation>
+ <annotation cp="؟" type="tts">arabisk spørsmålstegn</annotation>
+ <annotation cp="‽" draft="contributed">interrobang</annotation>
+ <annotation cp="‽" type="tts" draft="contributed">interrobang</annotation>
+ <annotation cp=".">punktum</annotation>
+ <annotation cp="." type="tts">punktum</annotation>
+ <annotation cp="…">ellipse | tre prikker | utelatelse</annotation>
+ <annotation cp="…" type="tts">ellipse</annotation>
+ <annotation cp="。">ideografisk punktum | punktum</annotation>
+ <annotation cp="。" type="tts">ideografisk punktum</annotation>
+ <annotation cp="·">interpunkt | midtstilt punkt | punkt mellom ord | sentrert punkt</annotation>
+ <annotation cp="·" type="tts">midtstilt punkt</annotation>
+ <annotation cp="'">apostrof | enkelt rett anførselstegn | rett apostrof | sitattegn</annotation>
+ <annotation cp="'" type="tts">rett apostrof</annotation>
+ <annotation cp="‘">enkelt krøllet venstre anførselstegn | sitattegn | smart anførselstegn | start sitat</annotation>
+ <annotation cp="‘" type="tts">enkelt krøllet venstre anførselstegn</annotation>
+ <annotation cp="’">apostrof | enkelt krøllet høyre anførselstegn | sitat slutt | sitattegn | smart anførselstegn | typografisk apostrof</annotation>
+ <annotation cp="’" type="tts">enkelt krøllet høyre anførselstegn</annotation>
+ <annotation cp="‚">enkelt krøllet lavt venstre anførselstegn | sitattegn | smart anførselstegn | start sitat</annotation>
+ <annotation cp="‚" type="tts">enkelt krøllet lavt venstre anførselstegn</annotation>
+ <annotation cp="“">dobbelt krøllet venstre anførselstegn | sitattegn | smart anførselstegn | start sitat</annotation>
+ <annotation cp="“" type="tts">dobbelt krøllet venstre anførselstegn</annotation>
+ <annotation cp="”">dobbelt krøllet høyre anførselstegn | sitat slutt | sitattegn | smart anførselstegn</annotation>
+ <annotation cp="”" type="tts">dobbelt krøllet høyre anførselstegn</annotation>
+ <annotation cp="„">dobbelt krøllet lavt venstre anførselstegn | sitattegn | smart anførselstegn | start sitat</annotation>
+ <annotation cp="„" type="tts">dobbelt krøllet lavt venstre anførselstegn</annotation>
+ <annotation cp="«">anførselstegn | hermetegn | sitat start | sitattegn | sjevron | venstre anførselstegn</annotation>
+ <annotation cp="«" type="tts">venstre anførselstegn</annotation>
+ <annotation cp="»">anførselstegn | hermetegn | høyre anførselstegn | sitat slutt | sitattegn | sjevron</annotation>
+ <annotation cp="»" type="tts">høyre anførselstegn</annotation>
+ <annotation cp=")">bueparentes | høyre parentes | parentes | sluttparentes</annotation>
+ <annotation cp=")" type="tts">høyre parentes</annotation>
+ <annotation cp="[">firkantparentes | klammeparentes | parentes | startparentes | venstre hakeparentes</annotation>
+ <annotation cp="[" type="tts">venstre hakeparentes</annotation>
+ <annotation cp="]">firkantparentes | høyre hakeparentes | klammeparentes | parentes | sluttparentes</annotation>
+ <annotation cp="]" type="tts">høyre hakeparentes</annotation>
+ <annotation cp="}">høyre krøllparentes | klammeparentes | krøllparentes | parentes | sluttparentes</annotation>
+ <annotation cp="}" type="tts">høyre krøllparentes</annotation>
+ <annotation cp="〈">parentes | spissparentes | startparentes | venstre vinkelparentes | vinkelparentes</annotation>
+ <annotation cp="〈" type="tts">venstre vinkelparentes</annotation>
+ <annotation cp="〉">høyre vinkelparentes | parentes | sluttparentes | spissparentes | vinkelparentes</annotation>
+ <annotation cp="〉" type="tts">høyre vinkelparentes</annotation>
+ <annotation cp="《">dobbelparentes | parentes | spissparentes | startparentes | venstre dobbel vinkelparentes | vinkelparentes</annotation>
+ <annotation cp="《" type="tts">venstre dobbel vinkelparentes</annotation>
+ <annotation cp="》">dobbelparentes | høyre dobbel vinkelparentes | parentes | sluttparentes | spissparentes | vinkelparentes</annotation>
+ <annotation cp="》" type="tts">høyre dobbel vinkelparentes</annotation>
+ <annotation cp="「">hjørneparentes | parentes | startparentes | venstre hjørneparentes</annotation>
+ <annotation cp="「" type="tts">venstre hjørneparentes</annotation>
+ <annotation cp="」">hjørneparentes | høyre hjørneparentes | parentes | sluttparentes</annotation>
+ <annotation cp="」" type="tts">høyre hjørneparentes</annotation>
+ <annotation cp="『">hjørneparentes | hul parentes | parentes | startparentes | venstre hul hjørneparentes</annotation>
+ <annotation cp="『" type="tts">venstre hul hjørneparentes</annotation>
+ <annotation cp="』">hjørneparentes | høyre hul hjørneparentes | hul parentes | parentes | sluttparentes</annotation>
+ <annotation cp="』" type="tts">høyre hul hjørneparentes</annotation>
+ <annotation cp="【">fylt parentes | linseparentes | parentes | startparentes | svart parentes | venstre fylt linseparentes</annotation>
+ <annotation cp="【" type="tts">venstre fylt linseparentes</annotation>
+ <annotation cp="】">fylt parentes | høyre fylt linseparentes | linseparentes | parentes | sluttparentes | svart parentes</annotation>
+ <annotation cp="】" type="tts">høyre fylt linseparentes</annotation>
+ <annotation cp="〔">parentes | skillpaddeskall | skillpaddeskallparentes | startparentes | venstre skilpaddeparentes</annotation>
+ <annotation cp="〔" type="tts">venstre skilpaddeparentes</annotation>
+ <annotation cp="〕">høyre skilpaddeparentes | parentes | skillpaddeskall | skillpaddeskallparentes | sluttparentes</annotation>
+ <annotation cp="〕" type="tts">høyre skilpaddeparentes</annotation>
+ <annotation cp="〖">hul parentes | linseparentes | parentes | startparentes | venstre hul linseparentes</annotation>
+ <annotation cp="〖" type="tts">venstre hul linseparentes</annotation>
+ <annotation cp="〗">høyre hul linseparentes | hul parentes | linseparentes | parentes | sluttparentes</annotation>
+ <annotation cp="〗" type="tts">høyre hul linseparentes</annotation>
+ <annotation cp="§">avsnittstegn | del | paragraf | paragraftegn | signum sectionis</annotation>
+ <annotation cp="§" type="tts">paragraftegn</annotation>
+ <annotation cp="¶">avsnittstegn</annotation>
+ <annotation cp="¶" type="tts">avsnittstegn</annotation>
+ <annotation cp="@">alfakrøll | at-tegn | krøllalfa</annotation>
+ <annotation cp="@" type="tts">krøllalfa</annotation>
+ <annotation cp="*">asterisk | jokertegn | stjerne</annotation>
+ <annotation cp="*" type="tts">asterisk</annotation>
+ <annotation cp="/">skråstrek | slash</annotation>
+ <annotation cp="/" type="tts">skråstrek</annotation>
+ <annotation cp="\">backslash | bakstrek | omvendt skråstrek</annotation>
+ <annotation cp="\" type="tts">omvendt skråstrek</annotation>
+ <annotation cp="&">ampersand | et | et-tegn | og | og-tegn</annotation>
+ <annotation cp="&" type="tts">og-tegn</annotation>
+ <annotation cp="#">emneknagg | firkant | hashtagg | nummertegn | skigard</annotation>
+ <annotation cp="#" type="tts">nummertegn</annotation>
+ <annotation cp="%">prosent | prosenttegn</annotation>
+ <annotation cp="%" type="tts">prosent</annotation>
+ <annotation cp="‰">promille | promilletegn</annotation>
+ <annotation cp="‰" type="tts">promille</annotation>
+ <annotation cp="†">kors | korstegn | latinsk kors</annotation>
+ <annotation cp="†" type="tts">korstegn</annotation>
+ <annotation cp="‡">dobbelt kors | dobbeltkorstegn</annotation>
+ <annotation cp="‡" type="tts">dobbeltkorstegn</annotation>
+ <annotation cp="•">prikk | punkt | punktliste | punkttegn</annotation>
+ <annotation cp="•" type="tts">punkttegn</annotation>
+ <annotation cp="‧">bindestrek | interpunkt | prikk | punkt | stavelsesmerke</annotation>
+ <annotation cp="‧" type="tts">stavelsesmerke</annotation>
+ <annotation cp="′">primtegn</annotation>
+ <annotation cp="′" type="tts">primtegn</annotation>
+ <annotation cp="″">dobbelt primtegn</annotation>
+ <annotation cp="″" type="tts">dobbelt primtegn</annotation>
+ <annotation cp="‴">trippelt primtegn</annotation>
+ <annotation cp="‴" type="tts">trippelt primtegn</annotation>
+ <annotation cp="‸" draft="contributed">innsettingstegn</annotation>
+ <annotation cp="‸" type="tts" draft="contributed">innsettingstegn</annotation>
+ <annotation cp="※">referansemerke</annotation>
+ <annotation cp="※" type="tts">referansemerke</annotation>
+ <annotation cp="⁂" draft="contributed">asterisme</annotation>
+ <annotation cp="⁂" type="tts" draft="contributed">asterisme</annotation>
+ <annotation cp="`">aksent | gravis | tonem | trykk | venstreaksent</annotation>
+ <annotation cp="`" type="tts">gravis</annotation>
+ <annotation cp="´">aksent | akutt | høyreaksent | tonem | trykk</annotation>
+ <annotation cp="´" type="tts">akutt aksent</annotation>
+ <annotation cp="^">aksent | circumfleks | tonem</annotation>
+ <annotation cp="^" type="tts">circumfleks</annotation>
+ <annotation cp="¨">omlyd | tødler | trema</annotation>
+ <annotation cp="¨" type="tts">trema</annotation>
+ <annotation cp="°">alkoholinnhold | grader | gradetegn | timer</annotation>
+ <annotation cp="°" type="tts">gradetegn</annotation>
+ <annotation cp="℗">copyright | lydopptak | opphavsrett for lydopptak</annotation>
+ <annotation cp="℗" type="tts">opphavsrett for lydopptak</annotation>
+ <annotation cp="←">pil mot venstre | pil venstre | retning | venstre | venstrepil | vest</annotation>
+ <annotation cp="←" type="tts">pil mot venstre</annotation>
+ <annotation cp="↚" draft="contributed">pil venstre med strek</annotation>
+ <annotation cp="↚" type="tts" draft="contributed">pil venstre med strek</annotation>
+ <annotation cp="→">høyre | høyrepil | øst | pil høyre | pil mot høyre | retning</annotation>
+ <annotation cp="→" type="tts">pil mot høyre</annotation>
+ <annotation cp="↛" draft="contributed">pil høyre med strek</annotation>
+ <annotation cp="↛" type="tts" draft="contributed">pil høyre med strek</annotation>
+ <annotation cp="↑">nord | opp | oppover | oppoverpil | pil opp | pil oppover | retning</annotation>
+ <annotation cp="↑" type="tts">pil oppover</annotation>
+ <annotation cp="↓">ned | nedover | nedoverpil | pil ned | pil nedover | retning | sør</annotation>
+ <annotation cp="↓" type="tts">pil nedover</annotation>
+ <annotation cp="↜" draft="contributed">bølgepil mot venstre med strek</annotation>
+ <annotation cp="↜" type="tts" draft="contributed">bølgepil mot venstre med strek</annotation>
+ <annotation cp="↝" draft="contributed">bølgepil mot høyre med strek</annotation>
+ <annotation cp="↝" type="tts" draft="contributed">bølgepil mot høyre med strek</annotation>
+ <annotation cp="↞" draft="contributed">pil venstre med to mothaker</annotation>
+ <annotation cp="↞" type="tts" draft="contributed">pil venstre med to mothaker</annotation>
+ <annotation cp="↟" draft="contributed">pil opp med to mothaker</annotation>
+ <annotation cp="↟" type="tts" draft="contributed">pil opp med to mothaker</annotation>
+ <annotation cp="↠" draft="contributed">pil høyre med to mothaker</annotation>
+ <annotation cp="↠" type="tts" draft="contributed">pil høyre med to mothaker</annotation>
+ <annotation cp="↡" draft="contributed">pil ned med to mothaker</annotation>
+ <annotation cp="↡" type="tts" draft="contributed">pil ned med to mothaker</annotation>
+ <annotation cp="↢" draft="contributed">pil venstre med styrefjær</annotation>
+ <annotation cp="↢" type="tts" draft="contributed">pil venstre med styrefjær</annotation>
+ <annotation cp="↣" draft="contributed">pil høyre med styrefjær</annotation>
+ <annotation cp="↣" type="tts" draft="contributed">pil høyre med styrefjær</annotation>
+ <annotation cp="↤" draft="contributed">pil venstre fra loddrett strek</annotation>
+ <annotation cp="↤" type="tts" draft="contributed">pil venstre fra loddrett strek</annotation>
+ <annotation cp="↥" draft="contributed">pil opp fra vannrett strek</annotation>
+ <annotation cp="↥" type="tts" draft="contributed">pil opp fra vannrett strek</annotation>
+ <annotation cp="↦" draft="contributed">pil høyre fra loddrett strek</annotation>
+ <annotation cp="↦" type="tts" draft="contributed">pil høyre fra loddrett strek</annotation>
+ <annotation cp="↧" draft="contributed">pil ned fra vannrett strek</annotation>
+ <annotation cp="↧" type="tts" draft="contributed">pil ned fra vannrett strek</annotation>
+ <annotation cp="↨" draft="contributed">pil opp og ned med underlag</annotation>
+ <annotation cp="↨" type="tts" draft="contributed">pil opp og ned med underlag</annotation>
+ <annotation cp="↫" draft="contributed">pil venstre med løkke</annotation>
+ <annotation cp="↫" type="tts" draft="contributed">pil venstre med løkke</annotation>
+ <annotation cp="↬" draft="contributed">pil høyre med løkke</annotation>
+ <annotation cp="↬" type="tts" draft="contributed">pil høyre med løkke</annotation>
+ <annotation cp="↭" draft="contributed">bølgepil mot høyre og venstre</annotation>
+ <annotation cp="↭" type="tts" draft="contributed">bølgepil mot høyre og venstre</annotation>
+ <annotation cp="↯" draft="contributed">sikksakkpil nedover</annotation>
+ <annotation cp="↯" type="tts" draft="contributed">sikksakkpil nedover</annotation>
+ <annotation cp="↰" draft="contributed">pil opp med spiss mot venstre</annotation>
+ <annotation cp="↰" type="tts" draft="contributed">pil opp med spiss mot venstre</annotation>
+ <annotation cp="↱" draft="contributed">pil opp med spiss mot høyre</annotation>
+ <annotation cp="↱" type="tts" draft="contributed">pil opp med spiss mot høyre</annotation>
+ <annotation cp="↲" draft="contributed">pil ned med spiss mot venstre</annotation>
+ <annotation cp="↲" type="tts" draft="contributed">pil ned med spiss mot venstre</annotation>
+ <annotation cp="↳" draft="contributed">pil ned med spiss mot høyre</annotation>
+ <annotation cp="↳" type="tts" draft="contributed">pil ned med spiss mot høyre</annotation>
+ <annotation cp="↴" draft="contributed">pil høyre som snur ned</annotation>
+ <annotation cp="↴" type="tts" draft="contributed">pil høyre som snur ned</annotation>
+ <annotation cp="↵" draft="contributed">pil ned som snur mot venstre</annotation>
+ <annotation cp="↵" type="tts" draft="contributed">pil ned som snur mot venstre</annotation>
+ <annotation cp="↶" draft="contributed">halvsirkelpil mot klokken</annotation>
+ <annotation cp="↶" type="tts" draft="contributed">halvsirkelpil mot klokken</annotation>
+ <annotation cp="↷" draft="contributed">halvsirkelpil med klokken</annotation>
+ <annotation cp="↷" type="tts" draft="contributed">halvsirkelpil med klokken</annotation>
+ <annotation cp="↸" draft="contributed">pil mot nordvest med strek over</annotation>
+ <annotation cp="↸" type="tts" draft="contributed">pil mot nordvest med strek over</annotation>
+ <annotation cp="↹" draft="contributed">pil venstre mot loddrett strek over pil høyre mot loddrett strek</annotation>
+ <annotation cp="↹" type="tts" draft="contributed">pil venstre mot loddrett strek over pil høyre mot loddrett strek</annotation>
+ <annotation cp="↺" draft="contributed">pil åpen sirkel mot klokken</annotation>
+ <annotation cp="↺" type="tts" draft="contributed">pil åpen sirkel mot klokken</annotation>
+ <annotation cp="↻" draft="contributed">pil åpen sirkel med klokken</annotation>
+ <annotation cp="↻" type="tts" draft="contributed">pil åpen sirkel med klokken</annotation>
+ <annotation cp="↼" draft="contributed">harpunpil venstre med mothake opp</annotation>
+ <annotation cp="↼" type="tts" draft="contributed">harpunpil venstre med mothake opp</annotation>
+ <annotation cp="↽" draft="contributed">harpunpil venstre med mothake ned</annotation>
+ <annotation cp="↽" type="tts" draft="contributed">harpunpil venstre med mothake ned</annotation>
+ <annotation cp="↾" draft="contributed">harpunpil opp med mothake mot høyre</annotation>
+ <annotation cp="↾" type="tts" draft="contributed">harpunpil opp med mothake mot høyre</annotation>
+ <annotation cp="↿" draft="contributed">harpunpil opp med mothake mot venstre</annotation>
+ <annotation cp="↿" type="tts" draft="contributed">harpunpil opp med mothake mot venstre</annotation>
+ <annotation cp="⇀" draft="contributed">harpunpil høyre med mothake opp</annotation>
+ <annotation cp="⇀" type="tts" draft="contributed">harpunpil høyre med mothake opp</annotation>
+ <annotation cp="⇁" draft="contributed">harpunpil høyre med mothake ned</annotation>
+ <annotation cp="⇁" type="tts" draft="contributed">harpunpil høyre med mothake ned</annotation>
+ <annotation cp="⇂" draft="contributed">harpunpil ned med mothake mot høyre</annotation>
+ <annotation cp="⇂" type="tts" draft="contributed">harpunpil ned med mothake mot høyre</annotation>
+ <annotation cp="⇃" draft="contributed">harpunpil ned med mothake mot venstre</annotation>
+ <annotation cp="⇃" type="tts" draft="contributed">harpunpil ned med mothake mot venstre</annotation>
+ <annotation cp="⇄" draft="contributed">pil høyre over pil venstre</annotation>
+ <annotation cp="⇄" type="tts" draft="contributed">pil høyre over pil venstre</annotation>
+ <annotation cp="⇅">hver vei | nord-sør | opp og ned | opp-ned | pil oppover foran pil nedover | piler</annotation>
+ <annotation cp="⇅" type="tts">pil oppover foran pil nedover</annotation>
+ <annotation cp="⇆">frem og tilbake | hver vei | øst-vest | pil mot venstre over pil mot høyre | piler | venstre-høyre</annotation>
+ <annotation cp="⇆" type="tts">pil mot venstre over pil mot høyre</annotation>
+ <annotation cp="⇇" draft="contributed">parallelle piler mot venstre</annotation>
+ <annotation cp="⇇" type="tts" draft="contributed">parallelle piler mot venstre</annotation>
+ <annotation cp="⇈" draft="contributed">parallelle piler opp</annotation>
+ <annotation cp="⇈" type="tts" draft="contributed">parallelle piler opp</annotation>
+ <annotation cp="⇉" draft="contributed">parallelle piler mot høyre</annotation>
+ <annotation cp="⇉" type="tts" draft="contributed">parallelle piler mot høyre</annotation>
+ <annotation cp="⇊" draft="contributed">parallelle piler ned</annotation>
+ <annotation cp="⇊" type="tts" draft="contributed">parallelle piler ned</annotation>
+ <annotation cp="⇋" draft="contributed">harpunpil mot venstre over harpunpil mot høyre</annotation>
+ <annotation cp="⇋" type="tts" draft="contributed">harpunpil mot venstre over harpunpil mot høyre</annotation>
+ <annotation cp="⇌" draft="contributed">harpunpil mot høyre over harpunpil mot venstre</annotation>
+ <annotation cp="⇌" type="tts" draft="contributed">harpunpil mot høyre over harpunpil mot venstre</annotation>
+ <annotation cp="⇐" draft="contributed">dobbeltpil venstre</annotation>
+ <annotation cp="⇐" type="tts" draft="contributed">dobbeltpil venstre</annotation>
+ <annotation cp="⇍" draft="contributed">dobbeltpil venstre med strek</annotation>
+ <annotation cp="⇍" type="tts" draft="contributed">dobbeltpil venstre med strek</annotation>
+ <annotation cp="⇑" draft="contributed">dobbeltpil opp</annotation>
+ <annotation cp="⇑" type="tts" draft="contributed">dobbeltpil opp</annotation>
+ <annotation cp="⇒" draft="contributed">dobbeltpil høyre</annotation>
+ <annotation cp="⇒" type="tts" draft="contributed">dobbeltpil høyre</annotation>
+ <annotation cp="⇏" draft="contributed">dobbeltpil høyre med strek</annotation>
+ <annotation cp="⇏" type="tts" draft="contributed">dobbeltpil høyre med strek</annotation>
+ <annotation cp="⇓" draft="contributed">dobbeltpil ned</annotation>
+ <annotation cp="⇓" type="tts" draft="contributed">dobbeltpil ned</annotation>
+ <annotation cp="⇔" draft="contributed">dobbeltpil begge veier</annotation>
+ <annotation cp="⇔" type="tts" draft="contributed">dobbeltpil begge veier</annotation>
+ <annotation cp="⇎" draft="contributed">dobbeltpil med strek begge veier</annotation>
+ <annotation cp="⇎" type="tts" draft="contributed">dobbeltpil med strek begge veier</annotation>
+ <annotation cp="⇖" draft="contributed">dobbeltpil nordvest</annotation>
+ <annotation cp="⇖" type="tts" draft="contributed">dobbeltpil nordvest</annotation>
+ <annotation cp="⇗" draft="contributed">dobbeltpil nordøst</annotation>
+ <annotation cp="⇗" type="tts" draft="contributed">dobbeltpil nordøst</annotation>
+ <annotation cp="⇘" draft="contributed">dobbeltpil sørøst</annotation>
+ <annotation cp="⇘" type="tts" draft="contributed">dobbeltpil sørøst</annotation>
+ <annotation cp="⇙" draft="contributed">dobbeltpil sørvest</annotation>
+ <annotation cp="⇙" type="tts" draft="contributed">dobbeltpil sørvest</annotation>
+ <annotation cp="⇚" draft="contributed">trippelpil venstre</annotation>
+ <annotation cp="⇚" type="tts" draft="contributed">trippelpil venstre</annotation>
+ <annotation cp="⇛" draft="contributed">trippelpil høyre</annotation>
+ <annotation cp="⇛" type="tts" draft="contributed">trippelpil høyre</annotation>
+ <annotation cp="⇜" draft="contributed">snirkelpil venstre</annotation>
+ <annotation cp="⇜" type="tts" draft="contributed">snirkelpil venstre</annotation>
+ <annotation cp="⇝" draft="contributed">snirkelpil høyre</annotation>
+ <annotation cp="⇝" type="tts" draft="contributed">snirkelpil høyre</annotation>
+ <annotation cp="⇞" draft="contributed">pil opp med to streker</annotation>
+ <annotation cp="⇞" type="tts" draft="contributed">pil opp med to streker</annotation>
+ <annotation cp="⇟" draft="contributed">pil ned med to streker</annotation>
+ <annotation cp="⇟" type="tts" draft="contributed">pil ned med to streker</annotation>
+ <annotation cp="⇠" draft="contributed">stiplet pil venstre</annotation>
+ <annotation cp="⇠" type="tts" draft="contributed">stiplet pil venstre</annotation>
+ <annotation cp="⇡" draft="contributed">stiplet pil opp</annotation>
+ <annotation cp="⇡" type="tts" draft="contributed">stiplet pil opp</annotation>
+ <annotation cp="⇢" draft="contributed">stiplet pil høyre</annotation>
+ <annotation cp="⇢" type="tts" draft="contributed">stiplet pil høyre</annotation>
+ <annotation cp="⇣" draft="contributed">stiplet pil ned</annotation>
+ <annotation cp="⇣" type="tts" draft="contributed">stiplet pil ned</annotation>
+ <annotation cp="⇤" draft="contributed">pil venstre mot loddrett strek</annotation>
+ <annotation cp="⇤" type="tts" draft="contributed">pil venstre mot loddrett strek</annotation>
+ <annotation cp="⇥" draft="contributed">pil høyre mot loddrett strek</annotation>
+ <annotation cp="⇥" type="tts" draft="contributed">pil høyre mot loddrett strek</annotation>
+ <annotation cp="⇦" draft="contributed">hul pil venstre</annotation>
+ <annotation cp="⇦" type="tts" draft="contributed">hul pil venstre</annotation>
+ <annotation cp="⇧" draft="contributed">hul pil opp</annotation>
+ <annotation cp="⇧" type="tts" draft="contributed">hul pil opp</annotation>
+ <annotation cp="⇨" draft="contributed">hul pil høyre</annotation>
+ <annotation cp="⇨" type="tts" draft="contributed">hul pil høyre</annotation>
+ <annotation cp="⇩" draft="contributed">hul pil ned</annotation>
+ <annotation cp="⇩" type="tts" draft="contributed">hul pil ned</annotation>
+ <annotation cp="⇪" draft="contributed">hul pil opp fra vannrett strek</annotation>
+ <annotation cp="⇪" type="tts" draft="contributed">hul pil opp fra vannrett strek</annotation>
+ <annotation cp="⇵" draft="contributed">pil ned til høyre for pil opp</annotation>
+ <annotation cp="⇵" type="tts" draft="contributed">pil ned til høyre for pil opp</annotation>
+ <annotation cp="∀" draft="contributed">allkvantor</annotation>
+ <annotation cp="∀" type="tts" draft="contributed">allkvantor</annotation>
+ <annotation cp="∂" draft="contributed">partielt derivert</annotation>
+ <annotation cp="∂" type="tts" draft="contributed">partielt derivert</annotation>
+ <annotation cp="∆">dekrement | delta | inkrement | matematisk endring | matematiske tegn | trekant</annotation>
+ <annotation cp="∆" type="tts">matematisk endring</annotation>
+ <annotation cp="∇">matematiske tegn | nabla | trekant | triangel | vektorfelt | vektoroperator</annotation>
+ <annotation cp="∇" type="tts">nabla</annotation>
+ <annotation cp="∈">element i | elementsymbol | matematiske tegn | mengdelære</annotation>
+ <annotation cp="∈" type="tts">element i</annotation>
+ <annotation cp="+">addere | legge til | pluss | plusstegn</annotation>
+ <annotation cp="+" type="tts">plusstegn</annotation>
+ <annotation cp="±">pluss/minus</annotation>
+ <annotation cp="±" type="tts">pluss/minus</annotation>
+ <annotation cp="÷">dele | deletegn | dividere | divisjon | divisjonstegn | matematiske tegn</annotation>
+ <annotation cp="÷" type="tts">deletegn</annotation>
+ <annotation cp="×">gange | gangetegn | matematiske tegn | multiplikasjon | multiplikasjonstegn | multiplisere</annotation>
+ <annotation cp="×" type="tts">gangetegn</annotation>
+ <annotation cp="<">er mindre enn | mindre enn | starttagg | ulikhet</annotation>
+ <annotation cp="<" type="tts">er mindre enn</annotation>
+ <annotation cp="=">er lik | likhetstegn</annotation>
+ <annotation cp="=" type="tts">er lik</annotation>
+ <annotation cp="≠">er ikke lik | ulikhet | ulikhetstegn</annotation>
+ <annotation cp="≠" type="tts">er ikke lik</annotation>
+ <annotation cp=">">endetagg | er større enn | større enn | ulikhet</annotation>
+ <annotation cp=">" type="tts">er større enn</annotation>
+ <annotation cp="¬">ikke | negasjon</annotation>
+ <annotation cp="¬" type="tts">negasjon</annotation>
+ <annotation cp="|">loddrett strek | strek</annotation>
+ <annotation cp="|" type="tts">loddrett strek</annotation>
+ <annotation cp="~">tilde</annotation>
+ <annotation cp="~" type="tts">tilde</annotation>
+ <annotation cp="−">minus | minustegn | subtrahere | trekke fra</annotation>
+ <annotation cp="−" type="tts">minustegn</annotation>
+ <annotation cp="⁻">hevet | hevet minustegn | ion | matematiske tegn | minus | negativ ladning</annotation>
+ <annotation cp="⁻" type="tts">hevet minustegn</annotation>
+ <annotation cp="√">kvadratrot | kvadratrottegn | matematiske tegn</annotation>
+ <annotation cp="√" type="tts">kvadratrot</annotation>
+ <annotation cp="∞">matematiske tegn | uendelig | uendelighetstegn</annotation>
+ <annotation cp="∞" type="tts">uendelighetstegn</annotation>
+ <annotation cp="∩">matematiske tegn | mengdelære | snitt | snittegn</annotation>
+ <annotation cp="∩" type="tts">snitt</annotation>
+ <annotation cp="∪">forening | matematiske tegn | mengdelære | union | uniontegn</annotation>
+ <annotation cp="∪" type="tts">union</annotation>
+ <annotation cp="≈">avrundes til | er tilnærmet lik</annotation>
+ <annotation cp="≈" type="tts">er tilnærmet lik</annotation>
+ <annotation cp="≡">identisk lik | kongruent med | likhetstegn | matematiske tegn</annotation>
+ <annotation cp="≡" type="tts">identisk lik</annotation>
+ <annotation cp="≤">er mindre enn eller lik | likhetstegn | mindre enn eller lik | ulikhet</annotation>
+ <annotation cp="≤" type="tts">er mindre enn eller lik</annotation>
+ <annotation cp="≥">er større enn eller lik | likhetstegn | større enn eller lik | ulikhet</annotation>
+ <annotation cp="≥" type="tts">er større enn eller lik</annotation>
+ <annotation cp="⊂">delmengde av | inklusjonstegn | matematiske tegn | mengdelære</annotation>
+ <annotation cp="⊂" type="tts">delmengde av</annotation>
+ <annotation cp="▲">fylt | fylt trekant som peker opp | opp | pil | trekant</annotation>
+ <annotation cp="▲" type="tts">fylt trekant som peker opp</annotation>
+ <annotation cp="▼">fylt | fylt trekant som peker ned | ned | pil | trekant</annotation>
+ <annotation cp="▼" type="tts">fylt trekant som peker ned</annotation>
+ <annotation cp="◊">diamant | hult rutersymbol | rombe | ruter</annotation>
+ <annotation cp="◊" type="tts">hult rutersymbol</annotation>
+ <annotation cp="○">hul sirkel | ring | runding | sirkel</annotation>
+ <annotation cp="○" type="tts">hul sirkel</annotation>
+ <annotation cp="●">fylt sirkel | runding | sirkel</annotation>
+ <annotation cp="●" type="tts">fylt sirkel</annotation>
+ <annotation cp="◯">hul sirkel | ring | runding | sirkel | stor hul sirkel</annotation>
+ <annotation cp="◯" type="tts">stor hul sirkel</annotation>
+ <annotation cp="♪">åttendelsnote | musikk | note</annotation>
+ <annotation cp="♪" type="tts">åttendelsnote</annotation>
+ <annotation cp="♭">b | halvnote ned | musikk | note-b</annotation>
+ <annotation cp="♭" type="tts">note-b</annotation>
+ <annotation cp="♯">halvnote opp | kryss | musikk | note-kryss</annotation>
+ <annotation cp="♯" type="tts">note-kryss</annotation>
+ <annotation cp="😀">fjes | glis | glisefjes</annotation>
+ <annotation cp="😀" type="tts">glisefjes</annotation>
+ <annotation cp="😃">åpen | fjes | glisende fjes med vidåpne øyne | latter | munn | smil | smilefjes | smilefjes med åpen munn</annotation>
+ <annotation cp="😃" type="tts">glisende fjes med vidåpne øyne</annotation>
+ <annotation cp="😄">latter | med tenner | morsomt | smil | smilefjes | smilefjes med åpen munn og smilende øyne</annotation>
+ <annotation cp="😄" type="tts">smilefjes med åpen munn og smilende øyne</annotation>
+ <annotation cp="😁">fjes | glis | glisefjes med smilende øyne | latter | lol | smil | smilefjes</annotation>
+ <annotation cp="😁" type="tts">glisefjes med smilende øyne</annotation>
+ <annotation cp="😆">åpen munn | fjes | latter | smil med sammenknepne øyne</annotation>
+ <annotation cp="😆" type="tts">smil med sammenknepne øyne</annotation>
+ <annotation cp="😅">åpen | glisende fjes som svetter | kaldsvette | munn | smil med svette | svett smil med åpen munn</annotation>
+ <annotation cp="😅" type="tts">glisende fjes som svetter</annotation>
+ <annotation cp="🤣">fjes | gulv | latter | ruller | ruller rundt på gulvet i latter</annotation>
+ <annotation cp="🤣" type="tts">ruller rundt på gulvet i latter</annotation>
+ <annotation cp="😂">fjes | fjes med gledestårer | glede | gledestårer | tårer</annotation>
+ <annotation cp="😂" type="tts">gledestårer</annotation>
+ <annotation cp="🙂">fjes | smil | smiler litt</annotation>
+ <annotation cp="🙂" type="tts">smiler litt</annotation>
+ <annotation cp="🙃">fjes | fjes som er opp-ned | opp-ned</annotation>
+ <annotation cp="🙃" type="tts">fjes som er opp-ned</annotation>
+ <annotation cp="😉">blunk | blunkende ansikt | fjes</annotation>
+ <annotation cp="😉" type="tts">blunkende ansikt</annotation>
+ <annotation cp="😊">fjes | rødme | smil | smil med smilende øyne | smilende øyne</annotation>
+ <annotation cp="😊" type="tts">smil med smilende øyne</annotation>
+ <annotation cp="😇">engel | fjes | glorie | smil | smil med glorie | uskyldig</annotation>
+ <annotation cp="😇" type="tts">smil med glorie</annotation>
+ <annotation cp="🥰">elsker | forelsket | kjærlighet | smilefjes med hjerter</annotation>
+ <annotation cp="🥰" type="tts">smilefjes med hjerter</annotation>
+ <annotation cp="😍">fjes | hjerte | hjerteøyne | kjærlighet | øyne | smilefjes med hjerteøyne</annotation>
+ <annotation cp="😍" type="tts">smilefjes med hjerteøyne</annotation>
+ <annotation cp="🤩">fjes | gliser | smil | stjerner | stjerner i øynene</annotation>
+ <annotation cp="🤩" type="tts">stjerner i øynene</annotation>
+ <annotation cp="😘">elsker deg | fjes | glad i deg | hjerte | kyss | slengkyss</annotation>
+ <annotation cp="😘" type="tts">slengkyss</annotation>
+ <annotation cp="😗">elsker deg | fjes | glad i deg | kyss | kyssefjes | slengkyss</annotation>
+ <annotation cp="😗" type="tts">kyssefjes</annotation>
+ <annotation cp="☺">fjes | omriss | smil | smilefjes</annotation>
+ <annotation cp="☺" type="tts">smilefjes</annotation>
+ <annotation cp="😚">elsker deg | fjes | glad i deg | kyss | kyss med lukkede øyne | lukkede øyne | trutmunn</annotation>
+ <annotation cp="😚" type="tts">kyss med lukkede øyne</annotation>
+ <annotation cp="😙">fjes | kyss | kyss med smilende øyne | slengkyss | smil | smilende øyne</annotation>
+ <annotation cp="😙" type="tts">kyss med smilende øyne</annotation>
+ <annotation cp="🥲">lettet | rørt | smilefjes med tåre | smiler | stolt | takknemlig | tåre</annotation>
+ <annotation cp="🥲" type="tts">smilefjes med tåre</annotation>
+ <annotation cp="😋">deilig mat | fjes | mmm | nam | nam-nam | sulten</annotation>
+ <annotation cp="😋" type="tts">nam-nam</annotation>
+ <annotation cp="😛">fjes | fjes som rekker tunge | rekker tunge | tungen ut</annotation>
+ <annotation cp="😛" type="tts">rekker tunge</annotation>
+ <annotation cp="😜">blunk | blunker og rekker tunge | erte | fjes | rekke tunge med blunk | spøk</annotation>
+ <annotation cp="😜" type="tts">blunker og rekker tunge</annotation>
+ <annotation cp="🤪">fjes | gal | lite øye | sinnssyk | stort øye</annotation>
+ <annotation cp="🤪" type="tts">gal</annotation>
+ <annotation cp="😝">æsj | fjes | følt | lukkende øyne | rekke tunge | tungen ut med øynene lukket</annotation>
+ <annotation cp="😝" type="tts">æsj</annotation>
+ <annotation cp="🤑">fjes | munn | pengegal | penger</annotation>
+ <annotation cp="🤑" type="tts">pengegal</annotation>
+ <annotation cp="🤗">fjes | fjes som gir klem | klem</annotation>
+ <annotation cp="🤗" type="tts">fjes som gir klem</annotation>
+ <annotation cp="🤭">flire | hånden over munnen | ops</annotation>
+ <annotation cp="🤭" type="tts">hånden over munnen</annotation>
+ <annotation cp="🤫">hysj | stillhet | vær stille</annotation>
+ <annotation cp="🤫" type="tts">hysj</annotation>
+ <annotation cp="🤔">fjes | tankefull | tenkefjes | tenker</annotation>
+ <annotation cp="🤔" type="tts">tenkefjes</annotation>
+ <annotation cp="🤐">fjes | fjes med glidelåsmunn | glidelås | munn</annotation>
+ <annotation cp="🤐" type="tts">fjes med glidelåsmunn</annotation>
+ <annotation cp="🤨">hevet øyenbryn | skeptisk | tvil</annotation>
+ <annotation cp="🤨" type="tts">hevet øyenbryn</annotation>
+ <annotation cp="😐">fjes | ingen kommentar | nøytral | stum</annotation>
+ <annotation cp="😐" type="tts">nøytral</annotation>
+ <annotation cp="😑">fjes | ingen kommentar | nøytral | stum | uttrykksløs</annotation>
+ <annotation cp="😑" type="tts">uttrykksløs</annotation>
+ <annotation cp="😶">fjes | ingen munn | uten munn</annotation>
+ <annotation cp="😶" type="tts">uten munn</annotation>
+ <annotation cp="😶🌫">distré | fjes i skyer | fraværende | uoppmerksom</annotation>
+ <annotation cp="😶🌫" type="tts">fjes i skyer</annotation>
+ <annotation cp="😏">fjes | lurt smil | selvtilfreds</annotation>
+ <annotation cp="😏" type="tts">lurt smil</annotation>
+ <annotation cp="😒">fjes | misfornøyd | sur</annotation>
+ <annotation cp="😒" type="tts">misfornøyd</annotation>
+ <annotation cp="🙄">fjes | himler med øynene | øyne | ruller</annotation>
+ <annotation cp="🙄" type="tts">himler med øynene</annotation>
+ <annotation cp="😬">fjes | grimase</annotation>
+ <annotation cp="😬" type="tts">grimase</annotation>
+ <annotation cp="😮💨">fjes | gispe | hviske | lettet | plystre | puste ut | puster ut | sukke</annotation>
+ <annotation cp="😮💨" type="tts">puster ut</annotation>
+ <annotation cp="🤥">fjes | løgn | lyver | pinocchio</annotation>
+ <annotation cp="🤥" type="tts">lyver</annotation>
+ <annotation cp="😌">fjes | lettet</annotation>
+ <annotation cp="😌" type="tts">lettet</annotation>
+ <annotation cp="😔">alvorlig | fjes | lei seg | tankefull</annotation>
+ <annotation cp="😔" type="tts">tankefull</annotation>
+ <annotation cp="😪">fjes | søvnig</annotation>
+ <annotation cp="😪" type="tts">søvnig</annotation>
+ <annotation cp="🤤">fjes | sikle | sikler</annotation>
+ <annotation cp="🤤" type="tts">sikler</annotation>
+ <annotation cp="😴">fjes | sovende fjes | sover | zzz</annotation>
+ <annotation cp="😴" type="tts">sover</annotation>
+ <annotation cp="😷">bakteriemaske | fjes | fjes med munnbind | sykdom</annotation>
+ <annotation cp="😷" type="tts">fjes med munnbind</annotation>
+ <annotation cp="🤒">fjes | fjes med termometer | syk | termometer</annotation>
+ <annotation cp="🤒" type="tts">fjes med termometer</annotation>
+ <annotation cp="🤕">bandasje | bandasjert hode | fjes | skade | skadet</annotation>
+ <annotation cp="🤕" type="tts">bandasjert hode</annotation>
+ <annotation cp="🤢">fjes | kvalm | oppkast | spy</annotation>
+ <annotation cp="🤢" type="tts">kvalm</annotation>
+ <annotation cp="🤮">fjes | kaster opp | kvalm | oppkast | spy</annotation>
+ <annotation cp="🤮" type="tts">kaster opp</annotation>
+ <annotation cp="🤧">fjes | nys | nyser</annotation>
+ <annotation cp="🤧" type="tts">nyser</annotation>
+ <annotation cp="🥵">feber | heteslag | rød | svetter | varm | varmt fjes</annotation>
+ <annotation cp="🥵" type="tts">varmt fjes</annotation>
+ <annotation cp="🥶">blå | frost | fryser | istapper | kald | kaldt fjes</annotation>
+ <annotation cp="🥶" type="tts">kaldt fjes</annotation>
+ <annotation cp="🥴">bølgete munn | brisen | full | svimmel | svimmelt fjes | ujevne øyne</annotation>
+ <annotation cp="🥴" type="tts">svimmelt fjes</annotation>
+ <annotation cp="😵">fjes | ør | svimmel</annotation>
+ <annotation cp="😵" type="tts">ør</annotation>
+ <annotation cp="😵💫">fjes med spiraløyne | hypnotisert | problem | spiral | svimmel | uææ</annotation>
+ <annotation cp="😵💫" type="tts">fjes med spiraløyne</annotation>
+ <annotation cp="🤯">eksploderende hode | forbløffet | overrasket | sjokkert</annotation>
+ <annotation cp="🤯" type="tts">eksploderende hode</annotation>
+ <annotation cp="🤠">cowboy | cowgirl | fjes | fjes med cowboyhatt | hatt</annotation>
+ <annotation cp="🤠" type="tts">fjes med cowboyhatt</annotation>
+ <annotation cp="🥳">feiring | fest | fløyte | hatt | party | partyfjes</annotation>
+ <annotation cp="🥳" type="tts">partyfjes</annotation>
+ <annotation cp="🥸">briller | fjes | fjes med forkledning | forkledning | inkognito | nese</annotation>
+ <annotation cp="🥸" type="tts">fjes med forkledning</annotation>
+ <annotation cp="😎">fjes | kul | lyst | smilefjes med solbriller | sol | solbriller</annotation>
+ <annotation cp="😎" type="tts">smilefjes med solbriller</annotation>
+ <annotation cp="🤓">fjes | nerd | nerdefjes</annotation>
+ <annotation cp="🤓" type="tts">nerdefjes</annotation>
+ <annotation cp="🧐">fjes | fjes med monokkel | formell | monokkel | stiv</annotation>
+ <annotation cp="🧐" type="tts">fjes med monokkel</annotation>
+ <annotation cp="😕">fjes | forvirret</annotation>
+ <annotation cp="😕" type="tts">forvirret</annotation>
+ <annotation cp="😟">bekymret | fjes</annotation>
+ <annotation cp="😟" type="tts">bekymret</annotation>
+ <annotation cp="🙁">fjes | litt surt fjes | trist</annotation>
+ <annotation cp="🙁" type="tts">litt surt fjes</annotation>
+ <annotation cp="☹">fjes | surt fjes | trist</annotation>
+ <annotation cp="☹" type="tts">surt fjes</annotation>
+ <annotation cp="😮">åpen munn | fjes | forbauset</annotation>
+ <annotation cp="😮" type="tts">forbauset</annotation>
+ <annotation cp="😯">fjes | overrasket | stum</annotation>
+ <annotation cp="😯" type="tts">overrasket</annotation>
+ <annotation cp="😲">fjes | overrasket | sjokkert | stum</annotation>
+ <annotation cp="😲" type="tts">sjokkert</annotation>
+ <annotation cp="😳">fjes | rød | rødmer</annotation>
+ <annotation cp="😳" type="tts">rødmer</annotation>
+ <annotation cp="🥺">bedende fjes | nåde | trygler | valpeøyne</annotation>
+ <annotation cp="🥺" type="tts">bedende fjes</annotation>
+ <annotation cp="😦">fjes | oppgitt | overrasket | sjokkert med åpen munn</annotation>
+ <annotation cp="😦" type="tts">oppgitt</annotation>
+ <annotation cp="😧">fjes | lider | pine | smerte</annotation>
+ <annotation cp="😧" type="tts">pine</annotation>
+ <annotation cp="😨">fjes | frykt | redd | skremt</annotation>
+ <annotation cp="😨" type="tts">redd</annotation>
+ <annotation cp="😰">åpen munn | engstelig og svetter | fjes | kaldsvette | syk</annotation>
+ <annotation cp="😰" type="tts">engstelig og svetter</annotation>
+ <annotation cp="😥">fjes | lettet | puh! | skuffet</annotation>
+ <annotation cp="😥" type="tts">puh!</annotation>
+ <annotation cp="😢">fjes | gråter | tårer | trist</annotation>
+ <annotation cp="😢" type="tts">gråter</annotation>
+ <annotation cp="😭">fjes | gråt | strigråter | tårer</annotation>
+ <annotation cp="😭" type="tts">strigråter</annotation>
+ <annotation cp="😱">fjes | frykt | livredd | munch | redd | skremt | skrik</annotation>
+ <annotation cp="😱" type="tts">livredd</annotation>
+ <annotation cp="😖">fjes | fortvilet | sint | skuffet</annotation>
+ <annotation cp="😖" type="tts">fortvilet</annotation>
+ <annotation cp="😣">bommert | fjes | skuffet | utholdende</annotation>
+ <annotation cp="😣" type="tts">bommert</annotation>
+ <annotation cp="😞">fjes | skuffelse | skuffet</annotation>
+ <annotation cp="😞" type="tts">skuffet</annotation>
+ <annotation cp="😓">ansikt | kaldsvette | kaldsvetter</annotation>
+ <annotation cp="😓" type="tts">kaldsvetter</annotation>
+ <annotation cp="😩">fjes | sliten | trøtt</annotation>
+ <annotation cp="😩" type="tts">sliten</annotation>
+ <annotation cp="😫">fjes | overtrøtt | sliten | søvnig | trøtt fjes</annotation>
+ <annotation cp="😫" type="tts">trøtt fjes</annotation>
+ <annotation cp="🥱">gjesp | gjespende fjes | kjedelig | sliten</annotation>
+ <annotation cp="🥱" type="tts">gjespende fjes</annotation>
+ <annotation cp="😤">fjes | jeg vant | triumf | triumferende</annotation>
+ <annotation cp="😤" type="tts">triumferende</annotation>
+ <annotation cp="😡">fjes | rasende | raseri | rødt | sinna | sint | sur</annotation>
+ <annotation cp="😡" type="tts">rasende</annotation>
+ <annotation cp="😠">fjes | raseri | sinna | sint | sur</annotation>
+ <annotation cp="😠" type="tts">sint</annotation>
+ <annotation cp="🤬">banner | fjes | fjes med symboler over munnen | rasende | sensur</annotation>
+ <annotation cp="🤬" type="tts">fjes med symboler over munnen</annotation>
+ <annotation cp="😈">fjes | horn | smil | smilende djevel</annotation>
+ <annotation cp="😈" type="tts">smilende djevel</annotation>
+ <annotation cp="👿">djevel | fjes | sint djevel</annotation>
+ <annotation cp="👿" type="tts">sint djevel</annotation>
+ <annotation cp="💀">død | dødninghode | fjes | hodeskalle</annotation>
+ <annotation cp="💀" type="tts">hodeskalle</annotation>
+ <annotation cp="☠">bein | død | dødningehode | fjes | hodeskalle | monster</annotation>
+ <annotation cp="☠" type="tts">dødningehode</annotation>
+ <annotation cp="💩">bæsj | bæsjeklatt | hundebæsj | kuruke</annotation>
+ <annotation cp="💩" type="tts">bæsj</annotation>
+ <annotation cp="🤡">fjes | klovn | klovnefjes</annotation>
+ <annotation cp="🤡" type="tts">klovnefjes</annotation>
+ <annotation cp="👹">eventyr | japansk ogre | japansk troll | ogre</annotation>
+ <annotation cp="👹" type="tts">japansk troll</annotation>
+ <annotation cp="👺">ansikt | eventyr | japansk troll | tengu</annotation>
+ <annotation cp="👺" type="tts">tengu</annotation>
+ <annotation cp="👻">eventyr | fjes | skapning | spøkelse</annotation>
+ <annotation cp="👻" type="tts">spøkelse</annotation>
+ <annotation cp="👽">fjes | romvesen | sci-fi | UFO | utenomjordisk</annotation>
+ <annotation cp="👽" type="tts">romvesen</annotation>
+ <annotation cp="👾">fjes | rommonster | sci-fi | UFO | utenomjordisk</annotation>
+ <annotation cp="👾" type="tts">rommonster</annotation>
+ <annotation cp="🤖">fjes | monster | robot</annotation>
+ <annotation cp="🤖" type="tts">robot</annotation>
+ <annotation cp="😺">åpen munn | fjes | katt | smil | smilende katt med åpen munn</annotation>
+ <annotation cp="😺" type="tts">smilende katt med åpen munn</annotation>
+ <annotation cp="😸">fjes | flirende katt med smilende øyne | katt | smil</annotation>
+ <annotation cp="😸" type="tts">flirende katt med smilende øyne</annotation>
+ <annotation cp="😹">fjes | glede | gledestårer | katt | katt med gledestårer | kattefjes med gledestårer | tårer</annotation>
+ <annotation cp="😹" type="tts">katt med gledestårer</annotation>
+ <annotation cp="😻">fjes | forelsket | hjerter | katt | kjærlighet | øyne | smilende katt med hjerteøyne</annotation>
+ <annotation cp="😻" type="tts">smilende katt med hjerteøyne</annotation>
+ <annotation cp="😼">fjes | ironisk | katt | katt med ironisk smil | smil</annotation>
+ <annotation cp="😼" type="tts">katt med ironisk smil</annotation>
+ <annotation cp="😽">fjes | katt | kyss | kyssende | lukkede øyne</annotation>
+ <annotation cp="😽" type="tts">kyssende katt</annotation>
+ <annotation cp="🙀">fjes | jøsses | katt | overrasket | sliten katt | slitent kattefjes</annotation>
+ <annotation cp="🙀" type="tts">sliten katt</annotation>
+ <annotation cp="😿">fjes | gråt | gråtende katt | tåre | trist katt</annotation>
+ <annotation cp="😿" type="tts">gråtende katt</annotation>
+ <annotation cp="😾">fjes | katt | sint | sur | surmulende katt</annotation>
+ <annotation cp="😾" type="tts">surmulende katt</annotation>
+ <annotation cp="🙈">ape | fjes | forbudt | ikke | ser ikke | ser ingenting ondt</annotation>
+ <annotation cp="🙈" type="tts">ser ingenting ondt</annotation>
+ <annotation cp="🙉">ape | fjes | forbudt | hører ikke | hører ingenting ondt | ikke</annotation>
+ <annotation cp="🙉" type="tts">hører ingenting ondt</annotation>
+ <annotation cp="🙊">ape | fjes | forbudt | holder munn | ikke | sier ikke | sier ingenting ondt</annotation>
+ <annotation cp="🙊" type="tts">sier ingenting ondt</annotation>
+ <annotation cp="💋">kyss | kyssemerke | lepper | romantikk</annotation>
+ <annotation cp="💋" type="tts">kyssemerke</annotation>
+ <annotation cp="💌">brev | brev med hjerte | hjerte | kjærlighesbrev | romantikk</annotation>
+ <annotation cp="💌" type="tts">kjærlighesbrev</annotation>
+ <annotation cp="💘">følelser | hjerte | hjerte med pil | kjærlighet | pil</annotation>
+ <annotation cp="💘" type="tts">hjerte med pil</annotation>
+ <annotation cp="💝">bånd | følelser | hjerte | hjerte med bånd | valentine</annotation>
+ <annotation cp="💝" type="tts">hjerte med bånd</annotation>
+ <annotation cp="💖">følelser | kjærlighet | skinnende | skinnende hjerte</annotation>
+ <annotation cp="💖" type="tts">skinnende hjerte</annotation>
+ <annotation cp="💗">følelser | kjærlighet | nervøs | spent | voksende hjerte</annotation>
+ <annotation cp="💗" type="tts">voksende hjerte</annotation>
+ <annotation cp="💓">bankende | følelser | hjerte | kjærlighet</annotation>
+ <annotation cp="💓" type="tts">bankende hjerte</annotation>
+ <annotation cp="💞">følelser | hjerter | kjærlighet | snurrende | søtt</annotation>
+ <annotation cp="💞" type="tts">snurrende hjerter</annotation>
+ <annotation cp="💕">elskere | følelser | kjærlighet | to hjerter</annotation>
+ <annotation cp="💕" type="tts">to hjerter</annotation>
+ <annotation cp="💟">hjerte | hjertedekorasjon</annotation>
+ <annotation cp="💟" type="tts">hjertedekorasjon</annotation>
+ <annotation cp="❣">tegn | tegnsetting | utrop | utropstegn | utropstegn med hjerte</annotation>
+ <annotation cp="❣" type="tts">utropstegn med hjerte</annotation>
+ <annotation cp="💔">brudd | følelser | hjerte | knust hjerte</annotation>
+ <annotation cp="💔" type="tts">knust hjerte</annotation>
+ <annotation cp="❤🔥">brann | hellig hjerte | hjerte | hjerte i brann | ild | kjærlighet | lidenskap</annotation>
+ <annotation cp="❤🔥" type="tts">hjerte i brann</annotation>
+ <annotation cp="❤🩹">bedre | bra | forbedring | komme seg | lindret hjerte | lindring | sterkere</annotation>
+ <annotation cp="❤🩹" type="tts">lindret hjerte</annotation>
+ <annotation cp="❤">hjerte | rødt hjerte</annotation>
+ <annotation cp="❤" type="tts">rødt hjerte</annotation>
+ <annotation cp="🧡">følelser | hjerte | oransje</annotation>
+ <annotation cp="🧡" type="tts">oransje hjerte</annotation>
+ <annotation cp="💛">følelser | gul | gult hjerte | hjerte</annotation>
+ <annotation cp="💛" type="tts">gult hjerte</annotation>
+ <annotation cp="💚">følelser | grønn | grønt hjerte | hjerte</annotation>
+ <annotation cp="💚" type="tts">grønt hjerte</annotation>
+ <annotation cp="💙">blå | blått hjerte | følelser | hjerte</annotation>
+ <annotation cp="💙" type="tts">blått hjerte</annotation>
+ <annotation cp="💜">følelser | hjerte | lilla</annotation>
+ <annotation cp="💜" type="tts">lilla hjerte</annotation>
+ <annotation cp="🤎">brun | brunt hjerte | hjerte</annotation>
+ <annotation cp="🤎" type="tts">brunt hjerte</annotation>
+ <annotation cp="🖤">hjerte | ond | svart</annotation>
+ <annotation cp="🖤" type="tts">svart hjerte</annotation>
+ <annotation cp="🤍">hjerte | hvit | hvitt hjerte</annotation>
+ <annotation cp="🤍" type="tts">hvitt hjerte</annotation>
+ <annotation cp="💯">100 | full pott | hundre poeng | poeng</annotation>
+ <annotation cp="💯" type="tts">hundre poeng</annotation>
+ <annotation cp="💢">følelse | sinne | sinnesymbol | sint | tegneserie</annotation>
+ <annotation cp="💢" type="tts">sinne</annotation>
+ <annotation cp="💥">følelse | kollisjon | krasj | smell | tegneserie</annotation>
+ <annotation cp="💥" type="tts">krasj</annotation>
+ <annotation cp="💫">se stjerner | stjerner | svimmel | tegneserie</annotation>
+ <annotation cp="💫" type="tts">svimmel</annotation>
+ <annotation cp="💦">dråper | sprut | sprutende | svette | svettedråper | tegneserie</annotation>
+ <annotation cp="💦" type="tts">svettedråper</annotation>
+ <annotation cp="💨">forsvinne | løpe | stikker av | tegneserie</annotation>
+ <annotation cp="💨" type="tts">stikker av</annotation>
+ <annotation cp="🕳">hull | hull i bakken</annotation>
+ <annotation cp="🕳" type="tts">hull i bakken</annotation>
+ <annotation cp="💣">bombe | følelse | tegneserie</annotation>
+ <annotation cp="💣" type="tts">bombe</annotation>
+ <annotation cp="💬">ballong | boble | dialog | dialogboble | snakkeboble | tegneserie</annotation>
+ <annotation cp="💬" type="tts">snakkeboble</annotation>
+ <annotation cp="👁🗨">øye | øye i snakkeboble | snakkeboble</annotation>
+ <annotation cp="👁🗨" type="tts">øye i snakkeboble</annotation>
+ <annotation cp="🗨">dialog | snakkeboble mot venstre | tale</annotation>
+ <annotation cp="🗨" type="tts">snakkeboble mot venstre</annotation>
+ <annotation cp="🗯">ballong | boble | sint | sint snakkeboble mot høyre | sur</annotation>
+ <annotation cp="🗯" type="tts">sint snakkeboble mot høyre</annotation>
+ <annotation cp="💭">boble | tanke | tankeboble | tegneserie</annotation>
+ <annotation cp="💭" type="tts">tankeboble</annotation>
+ <annotation cp="💤">følelse | snorker | sover | soving | tegneserie | zzz</annotation>
+ <annotation cp="💤" type="tts">zzz</annotation>
+ <annotation cp="👋">hånd | vinke | vinkende hånd | vinking</annotation>
+ <annotation cp="👋" type="tts">vinkende hånd</annotation>
+ <annotation cp="🤚">hånd | håndbak | løftet</annotation>
+ <annotation cp="🤚" type="tts">løftet håndbak</annotation>
+ <annotation cp="🖐">finger | flat hånd med spredte fingre | hånd | spredt</annotation>
+ <annotation cp="🖐" type="tts">flat hånd med spredte fingre</annotation>
+ <annotation cp="✋">flat hånd | håndflate | hevet hånd</annotation>
+ <annotation cp="✋" type="tts">hevet hånd</annotation>
+ <annotation cp="🖖">finger | hånd | spock | vulcan | Vulcan-hilsen</annotation>
+ <annotation cp="🖖" type="tts">Vulcan-hilsen</annotation>
+ <annotation cp="👌">hånd | OK | OK-hånd | tegn</annotation>
+ <annotation cp="👌" type="tts">OK-hånd</annotation>
+ <annotation cp="🤌">fingre | fingrene sammen | hånd | hånd med fingertuppene sammen | sarkastisk | spørsmål</annotation>
+ <annotation cp="🤌" type="tts">hånd med fingertuppene sammen</annotation>
+ <annotation cp="🤏">hånd som klyper | lite | liten</annotation>
+ <annotation cp="🤏" type="tts">hånd som klyper</annotation>
+ <annotation cp="✌">hånd | peace-tegn | seierstegn</annotation>
+ <annotation cp="✌" type="tts">seierstegn</annotation>
+ <annotation cp="🤞">finger | hånd | hell | kryss | kryssede fingre</annotation>
+ <annotation cp="🤞" type="tts">kryssede fingre</annotation>
+ <annotation cp="🤟">glad i deg | glad i deg-tegn | hånd | ILY | tegnspråk</annotation>
+ <annotation cp="🤟" type="tts">glad i deg-tegn</annotation>
+ <annotation cp="🤘">finger | hånd | horn | rock’n’roll</annotation>
+ <annotation cp="🤘" type="tts">rock’n’roll</annotation>
+ <annotation cp="🤙">hånd | ring meg-hånd | ringe</annotation>
+ <annotation cp="🤙" type="tts">ring meg-hånd</annotation>
+ <annotation cp="👈">finger | hånd | pekende finger | peker mot venstre – bakhånd | peker venstre</annotation>
+ <annotation cp="👈" type="tts">peker mot venstre – bakhånd</annotation>
+ <annotation cp="👉">finger | hånd | pekende finger | peker mot høyre – bakhånd | peker opp</annotation>
+ <annotation cp="👉" type="tts">peker mot høyre – bakhånd</annotation>
+ <annotation cp="👆">finger | hånd | pekende finger | peker opp | peker opp – bakhånd</annotation>
+ <annotation cp="👆" type="tts">peker opp – bakhånd</annotation>
+ <annotation cp="🖕">finger | hånd | kropp | langfinger | vise fingeren</annotation>
+ <annotation cp="🖕" type="tts">langfinger</annotation>
+ <annotation cp="👇">finger | hånd | pekende finger | peker ned | peker ned – bakhånd</annotation>
+ <annotation cp="👇" type="tts">peker ned – bakhånd</annotation>
+ <annotation cp="☝">finger | hånd | kropp | opp | peke | pekefinger | peker opp</annotation>
+ <annotation cp="☝" type="tts">peker opp</annotation>
+ <annotation cp="👍">hånd | tegn | tommel | tommel opp</annotation>
+ <annotation cp="👍" type="tts">tommel opp</annotation>
+ <annotation cp="👎">hånd | tegn | tommel | tommel ned</annotation>
+ <annotation cp="👎" type="tts">tommel ned</annotation>
+ <annotation cp="✊">hånd | hevet knyttneve | knyttet neve | neve</annotation>
+ <annotation cp="✊" type="tts">hevet knyttneve</annotation>
+ <annotation cp="👊">hånd | knyttneve | neve</annotation>
+ <annotation cp="👊" type="tts">knyttneve</annotation>
+ <annotation cp="🤛">hånd | knyttneve mot venstre | neve | venstre | venstrevendt</annotation>
+ <annotation cp="🤛" type="tts">knyttneve mot venstre</annotation>
+ <annotation cp="🤜">hånd | høyre | høyrevendt | knyttneve mot høyre | neve</annotation>
+ <annotation cp="🤜" type="tts">knyttneve mot høyre</annotation>
+ <annotation cp="👏">hånd | hender | klappende hender | klapping</annotation>
+ <annotation cp="👏" type="tts">klappende hender</annotation>
+ <annotation cp="🙌">begge hender | feirer | feiring | hånd | hevede hender | rekker begge armene i været</annotation>
+ <annotation cp="🙌" type="tts">hevede hender</annotation>
+ <annotation cp="👐">åpne | hånd | hender</annotation>
+ <annotation cp="👐" type="tts">åpne hender</annotation>
+ <annotation cp="🤲">ber | bønn | hånd | håndflatene sammen</annotation>
+ <annotation cp="🤲" type="tts">håndflatene sammen</annotation>
+ <annotation cp="🤝">avtale | hånd | håndhilse | håndtrykk | møte</annotation>
+ <annotation cp="🤝" type="tts">håndhilse</annotation>
+ <annotation cp="🙏">be | ber | bevegelse | bønn | foldede hender | hånd</annotation>
+ <annotation cp="🙏" type="tts">foldede hender</annotation>
+ <annotation cp="✍">hånd | kropp | skrive | skrivende hånd</annotation>
+ <annotation cp="✍" type="tts">skrivende hånd</annotation>
+ <annotation cp="💅">kosmetikk | manikyr | negl | neglelakk</annotation>
+ <annotation cp="💅" type="tts">neglelakk</annotation>
+ <annotation cp="🤳">kamera | selfie | telefon</annotation>
+ <annotation cp="🤳" type="tts">selfie</annotation>
+ <annotation cp="💪">biceps | fleks | muskel | muskelfleksing | sterk | tegneserie</annotation>
+ <annotation cp="💪" type="tts">biceps</annotation>
+ <annotation cp="🦾">mekanisk arm | protese | tilgjengelighet</annotation>
+ <annotation cp="🦾" type="tts">mekanisk arm</annotation>
+ <annotation cp="🦿">mekanisk bein | protese | tilgjengelighet</annotation>
+ <annotation cp="🦿" type="tts">mekanisk bein</annotation>
+ <annotation cp="🦵">bein | lem | sparke</annotation>
+ <annotation cp="🦵" type="tts">bein</annotation>
+ <annotation cp="🦶">fot | sparke | tråkke</annotation>
+ <annotation cp="🦶" type="tts">fot</annotation>
+ <annotation cp="👂">kropp | øre</annotation>
+ <annotation cp="👂" type="tts">øre</annotation>
+ <annotation cp="🦻">øre med høreapparat | svak hørsel | tilgjengelighet</annotation>
+ <annotation cp="🦻" type="tts">øre med høreapparat</annotation>
+ <annotation cp="👃">fjes | kropp | nese</annotation>
+ <annotation cp="👃" type="tts">nese</annotation>
+ <annotation cp="🧠">hjerne | intelligent</annotation>
+ <annotation cp="🧠" type="tts">hjerne</annotation>
+ <annotation cp="🫀">hjerte-kar | hjertemuskel | hjerteslag | kardiologi | muskel | organ | puls | senter</annotation>
+ <annotation cp="🫀" type="tts">hjertemuskel</annotation>
+ <annotation cp="🫁">innpust | lunger | organ | pust | puste | respirasjon | utpust</annotation>
+ <annotation cp="🫁" type="tts">lunger</annotation>
+ <annotation cp="🦷">tann | tannlege</annotation>
+ <annotation cp="🦷" type="tts">tann</annotation>
+ <annotation cp="🦴">knokkel | skjelett</annotation>
+ <annotation cp="🦴" type="tts">knokkel</annotation>
+ <annotation cp="👀">fjes | øye | øyne</annotation>
+ <annotation cp="👀" type="tts">øyne</annotation>
+ <annotation cp="👁">kropp | øye</annotation>
+ <annotation cp="👁" type="tts">øye</annotation>
+ <annotation cp="👅">fjes | kropp | tunge</annotation>
+ <annotation cp="👅" type="tts">tunge</annotation>
+ <annotation cp="👄">fjes | kropp | lepper | munn</annotation>
+ <annotation cp="👄" type="tts">munn</annotation>
+ <annotation cp="👶">baby | menneske | ung</annotation>
+ <annotation cp="👶" type="tts">baby</annotation>
+ <annotation cp="🧒">barn | kjønnsnøytral | menneske | ung</annotation>
+ <annotation cp="🧒" type="tts">barn</annotation>
+ <annotation cp="👦">gutt | menneske | ung</annotation>
+ <annotation cp="👦" type="tts">gutt</annotation>
+ <annotation cp="👧">jente | Jomfruen | menneske | stjernebilde | stjernetegn | ung</annotation>
+ <annotation cp="👧" type="tts">jente</annotation>
+ <annotation cp="🧑">kjønnsnøytral | menneske | person | voksen</annotation>
+ <annotation cp="🧑" type="tts">voksen</annotation>
+ <annotation cp="👱">blond | blond person | hår | menneske | Person: blond</annotation>
+ <annotation cp="👱" type="tts">Person: blond</annotation>
+ <annotation cp="👨">mann | menneske | voksen</annotation>
+ <annotation cp="👨" type="tts">mann</annotation>
+ <annotation cp="🧔">mann | mann med skjegg | mann: skjegg | person | person: skjegg | skjegg</annotation>
+ <annotation cp="🧔" type="tts">person: skjegg</annotation>
+ <annotation cp="🧔♂">mann | mann: skjegg | skjegg</annotation>
+ <annotation cp="🧔♂" type="tts">mann: skjegg</annotation>
+ <annotation cp="👱♂">blond | hår | mann | mann: blond</annotation>
+ <annotation cp="👱♂" type="tts">mann: blond</annotation>
+ <annotation cp="👩">kvinne | menneske | voksen</annotation>
+ <annotation cp="👩" type="tts">kvinne</annotation>
+ <annotation cp="🧔♀">kvinne | kvinne: skjegg | skjegg</annotation>
+ <annotation cp="🧔♀" type="tts">kvinne: skjegg</annotation>
+ <annotation cp="👱♀">blond | blondine | hår | kvinne | kvinne: blond</annotation>
+ <annotation cp="👱♀" type="tts">kvinne: blond</annotation>
+ <annotation cp="🧓">eldre voksen | gammel | kjønnsnøytral | menneske | voksen</annotation>
+ <annotation cp="🧓" type="tts">eldre voksen</annotation>
+ <annotation cp="👴">eldre | mann | menneske</annotation>
+ <annotation cp="👴" type="tts">eldre mann</annotation>
+ <annotation cp="👵">eldre | kvinne | menneske</annotation>
+ <annotation cp="👵" type="tts">eldre kvinne</annotation>
+ <annotation cp="🙍">mimikk | rynker brynene | rynker pannen</annotation>
+ <annotation cp="🙍" type="tts">rynker brynene</annotation>
+ <annotation cp="🙍♂">mann | mann som rynker brynene | mimikk | rynker pannen | skeptisk</annotation>
+ <annotation cp="🙍♂" type="tts">mann som rynker brynene</annotation>
+ <annotation cp="🙍♀">kvinne | kvinne som rynker brynene | mimikk | rynker pannen | skeptisk</annotation>
+ <annotation cp="🙍♀" type="tts">kvinne som rynker brynene</annotation>
+ <annotation cp="🙎">furter | furting | mimikk | surmuling</annotation>
+ <annotation cp="🙎" type="tts">furter</annotation>
+ <annotation cp="🙎♂">furting | mann | mann som furter | mimikk | surmuling</annotation>
+ <annotation cp="🙎♂" type="tts">mann som furter</annotation>
+ <annotation cp="🙎♀">furting | kvinne | kvinne som furter | mimikk | surmuling</annotation>
+ <annotation cp="🙎♀" type="tts">kvinne som furter</annotation>
+ <annotation cp="🙅">forbudt | gestikulerer NEI | ikke | mimikk | nei</annotation>
+ <annotation cp="🙅" type="tts">gestikulerer NEI</annotation>
+ <annotation cp="🙅♂">avbryt | forbudt | mann | mann som gestikulerer NEI | nei | stopp</annotation>
+ <annotation cp="🙅♂" type="tts">mann som gestikulerer NEI</annotation>
+ <annotation cp="🙅♀">avbryt | forbudt | kvinne | kvinne som gestikulerer NEI | nei | stopp</annotation>
+ <annotation cp="🙅♀" type="tts">kvinne som gestikulerer NEI</annotation>
+ <annotation cp="🙆">gestikulerer OK | greit | ok</annotation>
+ <annotation cp="🙆" type="tts">gestikulerer OK</annotation>
+ <annotation cp="🙆♂">greit | mann | mann som gestikulerer OK | ok</annotation>
+ <annotation cp="🙆♂" type="tts">mann som gestikulerer OK</annotation>
+ <annotation cp="🙆♀">greit | kvinne | kvinne som gestikulerer OK | ok</annotation>
+ <annotation cp="🙆♀" type="tts">kvinne som gestikulerer OK</annotation>
+ <annotation cp="💁">hjelp | hjelpende person | informasjon | menneske</annotation>
+ <annotation cp="💁" type="tts">hjelpende person</annotation>
+ <annotation cp="💁♂">hjelpe | hjelpende mann | informasjon | mann</annotation>
+ <annotation cp="💁♂" type="tts">hjelpende mann</annotation>
+ <annotation cp="💁♀">hjelpe | hjelpende kvinne | informasjon | kvinne</annotation>
+ <annotation cp="💁♀" type="tts">hjelpende kvinne</annotation>
+ <annotation cp="🙋">hånd | person | rekker opp | rekker opp hånden</annotation>
+ <annotation cp="🙋" type="tts">rekker opp hånden</annotation>
+ <annotation cp="🙋♂">mann | mann som rekker opp hånden | rekke opp hånden</annotation>
+ <annotation cp="🙋♂" type="tts">mann som rekker opp hånden</annotation>
+ <annotation cp="🙋♀">kvinne | kvinne som rekker opp hånden | rekke opp hånden</annotation>
+ <annotation cp="🙋♀" type="tts">kvinne som rekker opp hånden</annotation>
+ <annotation cp="🧏">døv | døv person | høre | øre | tilgjengelighet</annotation>
+ <annotation cp="🧏" type="tts">døv person</annotation>
+ <annotation cp="🧏♂">døv | mann</annotation>
+ <annotation cp="🧏♂" type="tts">døv mann</annotation>
+ <annotation cp="🧏♀">døv | kvinne</annotation>
+ <annotation cp="🧏♀" type="tts">døv kvinne</annotation>
+ <annotation cp="🙇">beklagelse | beklager | bukk | bukker | unnskyld</annotation>
+ <annotation cp="🙇" type="tts">bukker</annotation>
+ <annotation cp="🙇♂">beklagelse | bukk | bukkende mann | mann | unnskyld</annotation>
+ <annotation cp="🙇♂" type="tts">bukkende mann</annotation>
+ <annotation cp="🙇♀">beklagelse | bukk | bukkende kvinne | kvinne | unnskyld</annotation>
+ <annotation cp="🙇♀" type="tts">bukkende kvinne</annotation>
+ <annotation cp="🤦">ansikt | facepalm | fjes | irritasjon | oppgitt | slår hånden mot pannen | vantro</annotation>
+ <annotation cp="🤦" type="tts">slår hånden mot pannen</annotation>
+ <annotation cp="🤦♂">ansikt | facepalm | fjes | irritasjon | mann | mann som slår hånden mot pannen | oppgitt | vantro</annotation>
+ <annotation cp="🤦♂" type="tts">mann som slår hånden mot pannen</annotation>
+ <annotation cp="🤦♀">ansikt | facepalm | fjes | irritasjon | kvinne | kvinne som slår hånden mot pannen | oppgitt | vantro</annotation>
+ <annotation cp="🤦♀" type="tts">kvinne som slår hånden mot pannen</annotation>
+ <annotation cp="🤷">likegyldighet | skuldertrekning | trekker på skuldrene | tvil</annotation>
+ <annotation cp="🤷" type="tts">trekker på skuldrene</annotation>
+ <annotation cp="🤷♂">likegyldighet | mann | mann som trekker på skuldrene | skuldertrekning | tvil</annotation>
+ <annotation cp="🤷♂" type="tts">mann som trekker på skuldrene</annotation>
+ <annotation cp="🤷♀">kvinne | kvinne som trekker på skuldrene | likegyldighet | skuldertrekning | tvil</annotation>
+ <annotation cp="🤷♀" type="tts">kvinne som trekker på skuldrene</annotation>
+ <annotation cp="🧑⚕">doktor | helsearbeider | helsevesen | lege | sykepleier | terapeut</annotation>
+ <annotation cp="🧑⚕" type="tts">helsearbeider</annotation>
+ <annotation cp="👨⚕">doktor | helsevesen | lege | mann | mannlig helsearbeider | sykepleier | terapeut</annotation>
+ <annotation cp="👨⚕" type="tts">mannlig helsearbeider</annotation>
+ <annotation cp="👩⚕">doktor | helsevesen | kvinne | kvinnelig helsearbeider | lege | sykepleier | terapeut</annotation>
+ <annotation cp="👩⚕" type="tts">kvinnelig helsearbeider</annotation>
+ <annotation cp="🧑🎓">skole | student | universitet</annotation>
+ <annotation cp="🧑🎓" type="tts">student</annotation>
+ <annotation cp="👨🎓">mann | mannlig student | skole | student | universitet</annotation>
+ <annotation cp="👨🎓" type="tts">mannlig student</annotation>
+ <annotation cp="👩🎓">kvinne | kvinnelig student | skole | student | universitet</annotation>
+ <annotation cp="👩🎓" type="tts">kvinnelig student</annotation>
+ <annotation cp="🧑🏫">lærer | skole | undervisning</annotation>
+ <annotation cp="🧑🏫" type="tts">lærer</annotation>
+ <annotation cp="👨🏫">lærer | mann | mannlig lærer | skole | undervisning</annotation>
+ <annotation cp="👨🏫" type="tts">mannlig lærer</annotation>
+ <annotation cp="👩🏫">kvinne | kvinnelig lærer | lærer | skole | undervisning</annotation>
+ <annotation cp="👩🏫" type="tts">kvinnelig lærer</annotation>
+ <annotation cp="🧑⚖">dommer | jus | juss</annotation>
+ <annotation cp="🧑⚖" type="tts">dommer</annotation>
+ <annotation cp="👨⚖">dommer | jus | juss | mann | mannlig dommer | rettssak</annotation>
+ <annotation cp="👨⚖" type="tts">mannlig dommer</annotation>
+ <annotation cp="👩⚖">dommer | jus | juss | kvinne | kvinnelig dommer | rettssak</annotation>
+ <annotation cp="👩⚖" type="tts">kvinnelig dommer</annotation>
+ <annotation cp="🧑🌾">bonde | gårdbruker | jordbruk</annotation>
+ <annotation cp="🧑🌾" type="tts">gårdbruker</annotation>
+ <annotation cp="👨🌾">bonde | dyrke | gårdbruker | jordbruk | mann | mannlig gårdbruker</annotation>
+ <annotation cp="👨🌾" type="tts">mannlig gårdbruker</annotation>
+ <annotation cp="👩🌾">bonde | dyrke | gårdbruker | jordbruk | kvinne | kvinnelig gårdbruker</annotation>
+ <annotation cp="👩🌾" type="tts">kvinnelig gårdbruker</annotation>
+ <annotation cp="🧑🍳">kokk | matlaging | restaurant</annotation>
+ <annotation cp="🧑🍳" type="tts">kokk</annotation>
+ <annotation cp="👨🍳">mann | mannlig kokk | matlaging | restaurant</annotation>
+ <annotation cp="👨🍳" type="tts">mannlig kokk</annotation>
+ <annotation cp="👩🍳">kvinne | kvinnelig kokk | matlaging | restaurant</annotation>
+ <annotation cp="👩🍳" type="tts">kvinnelig kokk</annotation>
+ <annotation cp="🧑🔧">bil | elektriker | håndverker | mekaniker | motor | rørlegger</annotation>
+ <annotation cp="🧑🔧" type="tts">mekaniker</annotation>
+ <annotation cp="👨🔧">bil | elektriker | håndverker | mann | mannlig mekaniker | mekaniker | motor | rørlegger</annotation>
+ <annotation cp="👨🔧" type="tts">mannlig mekaniker</annotation>
+ <annotation cp="👩🔧">bil | elektriker | håndverker | kvinne | kvinnelig mekaniker | mekaniker | motor | rørlegger</annotation>
+ <annotation cp="👩🔧" type="tts">kvinnelig mekaniker</annotation>
+ <annotation cp="🧑🏭">arbeider | fabrikk | industri | industriarbeider | produksjon</annotation>
+ <annotation cp="🧑🏭" type="tts">industriarbeider</annotation>
+ <annotation cp="👨🏭">arbeider | fabrikk | industri | industriarbeider | mann | mannlig industriarbeider | produksjon</annotation>
+ <annotation cp="👨🏭" type="tts">mannlig industriarbeider</annotation>
+ <annotation cp="👩🏭">fabrikk | industri | kvinne | kvinnelig industriarbeider | produksjon</annotation>
+ <annotation cp="👩🏭" type="tts">kvinnelig industriarbeider</annotation>
+ <annotation cp="🧑💼">kontor | kontorarbeider | leder | næringsliv</annotation>
+ <annotation cp="🧑💼" type="tts">kontorarbeider</annotation>
+ <annotation cp="👨💼">kontor | leder | mann | mannlig kontorarbeider | næringsliv</annotation>
+ <annotation cp="👨💼" type="tts">mannlig kontorarbeider</annotation>
+ <annotation cp="👩💼">kontor | kvinne | kvinnelig kontorarbeider | leder | næringsliv</annotation>
+ <annotation cp="👩💼" type="tts">kvinnelig kontorarbeider</annotation>
+ <annotation cp="🧑🔬">biologi | forsker | forskning | kjemi | lab | laboratorium | medisin | vitenskap</annotation>
+ <annotation cp="🧑🔬" type="tts">forsker</annotation>
+ <annotation cp="👨🔬">kjemi | laboratorium | mann | mannlig forsker | vitenskap</annotation>
+ <annotation cp="👨🔬" type="tts">mannlig forsker</annotation>
+ <annotation cp="👩🔬">kjemi | kvinne | kvinnelig forsker | laboratorium | vitenskap</annotation>
+ <annotation cp="👩🔬" type="tts">kvinnelig forsker</annotation>
+ <annotation cp="🧑💻">data | IT | IT-ekspert | koding | programvare | teknologi</annotation>
+ <annotation cp="🧑💻" type="tts">IT-ekspert</annotation>
+ <annotation cp="👨💻">data | IT | koding | mann | mannlig IT-ekspert | programvare | teknologi</annotation>
+ <annotation cp="👨💻" type="tts">mannlig IT-ekspert</annotation>
+ <annotation cp="👩💻">data | IT | koding | kvinne | kvinnelig IT-ekspert | programvare | teknologi</annotation>
+ <annotation cp="👩💻" type="tts">kvinnelig IT-ekspert</annotation>
+ <annotation cp="🧑🎤">artist | konsert | rock | sanger</annotation>
+ <annotation cp="🧑🎤" type="tts">artist</annotation>
+ <annotation cp="👨🎤">artist | konsert | mann | mannlig artist | sanger</annotation>
+ <annotation cp="👨🎤" type="tts">mannlig artist</annotation>
+ <annotation cp="👩🎤">artist | konsert | kvinne | kvinnelig artist | rock | sanger</annotation>
+ <annotation cp="👩🎤" type="tts">kvinnelig artist</annotation>
+ <annotation cp="🧑🎨">kunstner | maler</annotation>
+ <annotation cp="🧑🎨" type="tts">kunstner</annotation>
+ <annotation cp="👨🎨">kunstner | maler | mann | mannlig kunstner</annotation>
+ <annotation cp="👨🎨" type="tts">mannlig kunstner</annotation>
+ <annotation cp="👩🎨">kunstner | kvinne | kvinnelig kunstner | maler</annotation>
+ <annotation cp="👩🎨" type="tts">kvinnelig kunstner</annotation>
+ <annotation cp="🧑✈">fly | pilot</annotation>
+ <annotation cp="🧑✈" type="tts">pilot</annotation>
+ <annotation cp="👨✈">fly | mann | mannlig pilot | pilot</annotation>
+ <annotation cp="👨✈" type="tts">mannlig pilot</annotation>
+ <annotation cp="👩✈">fly | kvinne | kvinnelig pilot | pilot</annotation>
+ <annotation cp="👩✈" type="tts">kvinnelig pilot</annotation>
+ <annotation cp="🧑🚀">astronaut | romfart | verdensrommet</annotation>
+ <annotation cp="🧑🚀" type="tts">astronaut</annotation>
+ <annotation cp="👨🚀">astronaut | mann | mannlig astronaut | romfart | verdensrommet</annotation>
+ <annotation cp="👨🚀" type="tts">mannlig astronaut</annotation>
+ <annotation cp="👩🚀">astronaut | kvinne | kvinnelig astronaut | romfart | verdensrommet</annotation>
+ <annotation cp="👩🚀" type="tts">kvinnelig astronaut</annotation>
+ <annotation cp="🧑🚒">brannbil | brannkonstabel | brannmann | brannvesenet</annotation>
+ <annotation cp="🧑🚒" type="tts">brannkonstabel</annotation>
+ <annotation cp="👨🚒">brannbil | brannkonstabel | brannmann | brannvesenet | mann | mannlig brannkonstabel</annotation>
+ <annotation cp="👨🚒" type="tts">mannlig brannkonstabel</annotation>
+ <annotation cp="👩🚒">brannbil | brannkonstabel | brannmann | brannvesenet | kvinne | kvinnelig brannkonstabel</annotation>
+ <annotation cp="👩🚒" type="tts">kvinnelig brannkonstabel</annotation>
+ <annotation cp="👮">betjent | menneske | politi | politibetjent</annotation>
+ <annotation cp="👮" type="tts">politibetjent</annotation>
+ <annotation cp="👮♂">betjent | mann | mannlig politibetjent | politi | politibetjent</annotation>
+ <annotation cp="👮♂" type="tts">mannlig politibetjent</annotation>
+ <annotation cp="👮♀">betjent | kvinne | kvinnelig politibetjent | politi | politibetjent</annotation>
+ <annotation cp="👮♀" type="tts">kvinnelig politibetjent</annotation>
+ <annotation cp="🕵">detektiv | spion</annotation>
+ <annotation cp="🕵" type="tts">detektiv</annotation>
+ <annotation cp="🕵♂">etterforske | forbrytelse | mann | mannlig detektiv | privatdetektiv</annotation>
+ <annotation cp="🕵♂" type="tts">mannlig detektiv</annotation>
+ <annotation cp="🕵♀">etterforske | forbrytelse | kvinne | kvinnelig detektiv | privatdetektiv</annotation>
+ <annotation cp="🕵♀" type="tts">kvinnelig detektiv</annotation>
+ <annotation cp="💂">gardist | menneske | vakt</annotation>
+ <annotation cp="💂" type="tts">gardist</annotation>
+ <annotation cp="💂♂">gardist | mann | mannlig gardist | vakt</annotation>
+ <annotation cp="💂♂" type="tts">mannlig gardist</annotation>
+ <annotation cp="💂♀">gardist | kvinne | kvinnelig gardist | vakt</annotation>
+ <annotation cp="💂♀" type="tts">kvinnelig gardist</annotation>
+ <annotation cp="🥷">kampkunst | kriger | ninja | skjult</annotation>
+ <annotation cp="🥷" type="tts">ninja</annotation>
+ <annotation cp="👷">anlegg | anleggsarbeider | arbeider | hjelm | ingeniør | menneske</annotation>
+ <annotation cp="👷" type="tts">anleggsarbeider</annotation>
+ <annotation cp="👷♂">anlegg | arbeider | bygg | hjelm | ingeniør | mann | mannlig anleggsarbeider</annotation>
+ <annotation cp="👷♂" type="tts">mannlig anleggsarbeider</annotation>
+ <annotation cp="👷♀">anlegg | arbeider | bygg | hjelm | ingeniør | kvinne | kvinnelig anleggsarbeider</annotation>
+ <annotation cp="👷♀" type="tts">kvinnelig anleggsarbeider</annotation>
+ <annotation cp="🤴">prins</annotation>
+ <annotation cp="🤴" type="tts">prins</annotation>
+ <annotation cp="👸">eventyr | fantasy | menneske | prinsesse</annotation>
+ <annotation cp="👸" type="tts">prinsesse</annotation>
+ <annotation cp="👳">menneske | turban | turbankledd person</annotation>
+ <annotation cp="👳" type="tts">turbankledd person</annotation>
+ <annotation cp="👳♂">mann | turban | turbankledd mann</annotation>
+ <annotation cp="👳♂" type="tts">turbankledd mann</annotation>
+ <annotation cp="👳♀">kvinne | turban | turbankledd kvinne</annotation>
+ <annotation cp="👳♀" type="tts">turbankledd kvinne</annotation>
+ <annotation cp="👲">gua pi mao | hatt | lue | mann | mann med kinesisk lue | menneske</annotation>
+ <annotation cp="👲" type="tts">mann med kinesisk lue</annotation>
+ <annotation cp="🧕">hijab | hodeskjerf | hodeslør | kvinne med hodeslør | muslim</annotation>
+ <annotation cp="🧕" type="tts">kvinne med hodeslør</annotation>
+ <annotation cp="🤵">brudgom | person | person i smoking | smoking</annotation>
+ <annotation cp="🤵" type="tts">person i smoking</annotation>
+ <annotation cp="🤵♂">mann | mann i smoking | smoking</annotation>
+ <annotation cp="🤵♂" type="tts">mann i smoking</annotation>
+ <annotation cp="🤵♀">kvinne | kvinne i smoking | smoking</annotation>
+ <annotation cp="🤵♀" type="tts">kvinne i smoking</annotation>
+ <annotation cp="👰">brud | brud med slør | bryllup | mennesker | person med slør | slør</annotation>
+ <annotation cp="👰" type="tts">person med slør</annotation>
+ <annotation cp="👰♂">mann | mann med slør | slør</annotation>
+ <annotation cp="👰♂" type="tts">mann med slør</annotation>
+ <annotation cp="👰♀">kvinne | kvinne med slør | slør</annotation>
+ <annotation cp="👰♀" type="tts">kvinne med slør</annotation>
+ <annotation cp="🤰">gravid | kvinne</annotation>
+ <annotation cp="🤰" type="tts">gravid kvinne</annotation>
+ <annotation cp="🤱">ammer | amming | baby | bryst | morsmelk</annotation>
+ <annotation cp="🤱" type="tts">ammer</annotation>
+ <annotation cp="👩🍼">baby | kvinne | kvinne som mater baby | mat | tåteflaske</annotation>
+ <annotation cp="👩🍼" type="tts">kvinne som mater baby</annotation>
+ <annotation cp="👨🍼">baby | mann | mann som mater baby | mat | tåteflaske</annotation>
+ <annotation cp="👨🍼" type="tts">mann som mater baby</annotation>
+ <annotation cp="🧑🍼">baby | mat | person | person som mater baby | tåteflaske</annotation>
+ <annotation cp="🧑🍼" type="tts">person som mater baby</annotation>
+ <annotation cp="👼">ansikt | babyengel | engel | eventyr</annotation>
+ <annotation cp="👼" type="tts">babyengel</annotation>
+ <annotation cp="🎅">feiring | jul | julenissen | nissefar | nissen</annotation>
+ <annotation cp="🎅" type="tts">julenissen</annotation>
+ <annotation cp="🤶">jul | julenissemor | mor | nisse</annotation>
+ <annotation cp="🤶" type="tts">julenissemor</annotation>
+ <annotation cp="🧑🎄">feiring | jul | julenisse | nisse | person</annotation>
+ <annotation cp="🧑🎄" type="tts">julenisse</annotation>
+ <annotation cp="🦸">god | helt | heltinne | superhelt | superkrefter</annotation>
+ <annotation cp="🦸" type="tts">superhelt</annotation>
+ <annotation cp="🦸♂">god | helt | mann | mannlig superhelt | superkrefter</annotation>
+ <annotation cp="🦸♂" type="tts">mannlig superhelt</annotation>
+ <annotation cp="🦸♀">god | helt | heltinne | kvinne | kvinnelig superhelt | superkrefter</annotation>
+ <annotation cp="🦸♀" type="tts">kvinnelig superhelt</annotation>
+ <annotation cp="🦹">kriminell | ond | skurk | superkrefter | superskurk</annotation>
+ <annotation cp="🦹" type="tts">superskurk</annotation>
+ <annotation cp="🦹♂">kriminell | mann | mannlig superskurk | ond | skurk | superkrefter</annotation>
+ <annotation cp="🦹♂" type="tts">mannlig superskurk</annotation>
+ <annotation cp="🦹♀">kriminell | kvinne | kvinnelig superskurk | ond | skurk | superkrefter</annotation>
+ <annotation cp="🦹♀" type="tts">kvinnelig superskurk</annotation>
+ <annotation cp="🧙">heks | trollkvinne | trollmann | trollperson</annotation>
+ <annotation cp="🧙" type="tts">trollperson</annotation>
+ <annotation cp="🧙♂">heksemester | trollmann</annotation>
+ <annotation cp="🧙♂" type="tts">trollmann</annotation>
+ <annotation cp="🧙♀">heks | trollkvinne</annotation>
+ <annotation cp="🧙♀" type="tts">trollkvinne</annotation>
+ <annotation cp="🧚">fe | Oberon | Puck | Titania</annotation>
+ <annotation cp="🧚" type="tts">fe</annotation>
+ <annotation cp="🧚♂">fe | mannlig fe | Oberon | Puck</annotation>
+ <annotation cp="🧚♂" type="tts">mannlig fe</annotation>
+ <annotation cp="🧚♀">fe | kvinnelig fe | Titania</annotation>
+ <annotation cp="🧚♀" type="tts">kvinnelig fe</annotation>
+ <annotation cp="🧛">Dracula | vampyr | vandød</annotation>
+ <annotation cp="🧛" type="tts">vampyr</annotation>
+ <annotation cp="🧛♂">Dracula | mannlig vampyr | vandød</annotation>
+ <annotation cp="🧛♂" type="tts">mannlig vampyr</annotation>
+ <annotation cp="🧛♀">kvinnelig vampyr | vandød</annotation>
+ <annotation cp="🧛♀" type="tts">kvinnelig vampyr</annotation>
+ <annotation cp="🧜">havfrue | havkvinne | havmann | havperson</annotation>
+ <annotation cp="🧜" type="tts">havperson</annotation>
+ <annotation cp="🧜♂">havmann | Triton</annotation>
+ <annotation cp="🧜♂" type="tts">havmann</annotation>
+ <annotation cp="🧜♀">havfrue | havkvinne</annotation>
+ <annotation cp="🧜♀" type="tts">havfrue</annotation>
+ <annotation cp="🧝">alv | magi</annotation>
+ <annotation cp="🧝" type="tts">alv</annotation>
+ <annotation cp="🧝♂">magi | mannlig alv</annotation>
+ <annotation cp="🧝♂" type="tts">mannlig alv</annotation>
+ <annotation cp="🧝♀">kvinnelig alv | magi</annotation>
+ <annotation cp="🧝♀" type="tts">kvinnelig alv</annotation>
+ <annotation cp="🧞">ånd | djinn</annotation>
+ <annotation cp="🧞" type="tts">ånd</annotation>
+ <annotation cp="🧞♂">djinn | mannlig ånd</annotation>
+ <annotation cp="🧞♂" type="tts">mannlig ånd</annotation>
+ <annotation cp="🧞♀">djinn | kvinnelig ånd</annotation>
+ <annotation cp="🧞♀" type="tts">kvinnelig ånd</annotation>
+ <annotation cp="🧟">udød | vandød | zombie</annotation>
+ <annotation cp="🧟" type="tts">zombie</annotation>
+ <annotation cp="🧟♂">mannlig zombie | udød | vandød</annotation>
+ <annotation cp="🧟♂" type="tts">mannlig zombie</annotation>
+ <annotation cp="🧟♀">kvinnelig zombie | udød | vandød</annotation>
+ <annotation cp="🧟♀" type="tts">kvinnelig zombie</annotation>
+ <annotation cp="💆">ansikt | ansiktsmassasje | massasje | skjønnhetssalong</annotation>
+ <annotation cp="💆" type="tts">ansiktsmassasje</annotation>
+ <annotation cp="💆♂">ansikt | avslapning | hodemassasje | mann | mann som får ansiktsmassasje | massasje | velvære</annotation>
+ <annotation cp="💆♂" type="tts">mann som får ansiktsmassasje</annotation>
+ <annotation cp="💆♀">ansikt | avslapning | hodemassasje | kvinne | kvinne som får ansiktsmassasje | massasje | velvære</annotation>
+ <annotation cp="💆♀" type="tts">kvinne som får ansiktsmassasje</annotation>
+ <annotation cp="💇">frisør | hårklipp | salong | skjønnhet | skjønnhetssalong</annotation>
+ <annotation cp="💇" type="tts">hårklipp</annotation>
+ <annotation cp="💇♂">frisør | hårklipp | mann | mann som får hårklipp | sveis</annotation>
+ <annotation cp="💇♂" type="tts">mann som får hårklipp</annotation>
+ <annotation cp="💇♀">frisør | frisyre | hårklipp | kvinne | kvinne som får hårklipp</annotation>
+ <annotation cp="💇♀" type="tts">kvinne som får hårklipp</annotation>
+ <annotation cp="🚶">fotgjenger | gå | gående</annotation>
+ <annotation cp="🚶" type="tts">fotgjenger</annotation>
+ <annotation cp="🚶♂">fotgjenger | gå | mann | mannlig fotgjenger | tur</annotation>
+ <annotation cp="🚶♂" type="tts">mannlig fotgjenger</annotation>
+ <annotation cp="🚶♀">fotgjenger | gå | kvinne | kvinnelig fotgjenger | tur</annotation>
+ <annotation cp="🚶♀" type="tts">kvinnelig fotgjenger</annotation>
+ <annotation cp="🧍">person som står | stå</annotation>
+ <annotation cp="🧍" type="tts">person som står</annotation>
+ <annotation cp="🧍♂">mann | mann som står | står</annotation>
+ <annotation cp="🧍♂" type="tts">mann som står</annotation>
+ <annotation cp="🧍♀">kvinne | kvinne som står | står</annotation>
+ <annotation cp="🧍♀" type="tts">kvinne som står</annotation>
+ <annotation cp="🧎">knele | kneler | person som kneler</annotation>
+ <annotation cp="🧎" type="tts">person som kneler</annotation>
+ <annotation cp="🧎♂">kneler | mann | mann som kneler</annotation>
+ <annotation cp="🧎♂" type="tts">mann som kneler</annotation>
+ <annotation cp="🧎♀">kneler | kvinne | kvinne som kneler</annotation>
+ <annotation cp="🧎♀" type="tts">kvinne som kneler</annotation>
+ <annotation cp="🧑🦯">blind | person med blindestokk | tilgjengelighet</annotation>
+ <annotation cp="🧑🦯" type="tts">person med blindestokk</annotation>
+ <annotation cp="👨🦯">blind | mann | mann med blindestokk | tilgjengelighet</annotation>
+ <annotation cp="👨🦯" type="tts">mann med blindestokk</annotation>
+ <annotation cp="👩🦯">blind | kvinne | kvinne med blindestokk | tilgjengelighet</annotation>
+ <annotation cp="👩🦯" type="tts">kvinne med blindestokk</annotation>
+ <annotation cp="🧑🦼">person i motorisert rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="🧑🦼" type="tts">person i motorisert rullestol</annotation>
+ <annotation cp="👨🦼">mann | mann i motorisert rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="👨🦼" type="tts">mann i motorisert rullestol</annotation>
+ <annotation cp="👩🦼">kvinne | kvinne i motorisert rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="👩🦼" type="tts">kvinne i motorisert rullestol</annotation>
+ <annotation cp="🧑🦽">person i manuell rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="🧑🦽" type="tts">person i manuell rullestol</annotation>
+ <annotation cp="👨🦽">mann | mann i manuell rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="👨🦽" type="tts">mann i manuell rullestol</annotation>
+ <annotation cp="👩🦽">kvinne | kvinne i manuell rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="👩🦽" type="tts">kvinne i manuell rullestol</annotation>
+ <annotation cp="🏃">jogger | jogging | løper | løping | maraton | sport</annotation>
+ <annotation cp="🏃" type="tts">løper</annotation>
+ <annotation cp="🏃♂">jogge | løpe | mann | mannlig løper | maraton</annotation>
+ <annotation cp="🏃♂" type="tts">mannlig løper</annotation>
+ <annotation cp="🏃♀">jogge | kvinne | kvinnelig løper | løpe | maraton</annotation>
+ <annotation cp="🏃♀" type="tts">kvinnelig løper</annotation>
+ <annotation cp="💃">dans | dansende kvinne | kvinne</annotation>
+ <annotation cp="💃" type="tts">dansende kvinne</annotation>
+ <annotation cp="🕺">dans | dansende mann | mann</annotation>
+ <annotation cp="🕺" type="tts">dansende mann</annotation>
+ <annotation cp="🕴">business | dress | forretningsmann | mann | svevende mann i dress</annotation>
+ <annotation cp="🕴" type="tts">svevende mann i dress</annotation>
+ <annotation cp="👯">danser | fest | hareører | menneske | personer med kaninører</annotation>
+ <annotation cp="👯" type="tts">personer med kaninører</annotation>
+ <annotation cp="👯♂">danser | hareører | mann | menn | menn med kaninører</annotation>
+ <annotation cp="👯♂" type="tts">menn med kaninører</annotation>
+ <annotation cp="👯♀">danser | hareører | kvinne | kvinner | kvinner med kaninører</annotation>
+ <annotation cp="👯♀" type="tts">kvinner med kaninører</annotation>
+ <annotation cp="🧖">dampbad | person i badstu | sauna</annotation>
+ <annotation cp="🧖" type="tts">person i badstu</annotation>
+ <annotation cp="🧖♂">dampbad | mann i badstu | sauna</annotation>
+ <annotation cp="🧖♂" type="tts">mann i badstu</annotation>
+ <annotation cp="🧖♀">dampbad | kvinne i badstu | sauna</annotation>
+ <annotation cp="🧖♀" type="tts">kvinne i badstu</annotation>
+ <annotation cp="🧗">klatrer | klatring</annotation>
+ <annotation cp="🧗" type="tts">klatrer</annotation>
+ <annotation cp="🧗♂">klatring | mannlig klatrer</annotation>
+ <annotation cp="🧗♂" type="tts">mannlig klatrer</annotation>
+ <annotation cp="🧗♀">klatring | kvinnelig klatrer</annotation>
+ <annotation cp="🧗♀" type="tts">kvinnelig klatrer</annotation>
+ <annotation cp="🤺">fekte | fekter | fekting | person | sport | sverd</annotation>
+ <annotation cp="🤺" type="tts">fekter</annotation>
+ <annotation cp="🏇">galopp | hest | hesteveddeløp | jockey | løp | sport | veddeløpshest</annotation>
+ <annotation cp="🏇" type="tts">hesteveddeløp</annotation>
+ <annotation cp="⛷">ski | skiløper | snø</annotation>
+ <annotation cp="⛷" type="tts">skiløper</annotation>
+ <annotation cp="🏂">snøbrett | snøbrettkjøring | snowboard | snowboarder | snowboarding | vintersport</annotation>
+ <annotation cp="🏂" type="tts">snowboarder</annotation>
+ <annotation cp="🏌">ball | golf | golfspiller</annotation>
+ <annotation cp="🏌" type="tts">golfspiller</annotation>
+ <annotation cp="🏌♂">golf | golfspiller | mann | mannlig golfspiller</annotation>
+ <annotation cp="🏌♂" type="tts">mannlig golfspiller</annotation>
+ <annotation cp="🏌♀">golf | golfspiller | kvinne | kvinnelig golfspiller</annotation>
+ <annotation cp="🏌♀" type="tts">kvinnelig golfspiller</annotation>
+ <annotation cp="🏄">sport | surfer | surfing</annotation>
+ <annotation cp="🏄" type="tts">surfer</annotation>
+ <annotation cp="🏄♂">mann | mannlig surfer | surfing</annotation>
+ <annotation cp="🏄♂" type="tts">mannlig surfer</annotation>
+ <annotation cp="🏄♀">kvinne | kvinnelig surfer | surfing</annotation>
+ <annotation cp="🏄♀" type="tts">kvinnelig surfer</annotation>
+ <annotation cp="🚣">båt | fartøy | person i robåt</annotation>
+ <annotation cp="🚣" type="tts">person i robåt</annotation>
+ <annotation cp="🚣♂">båt | mann | mann i robåt | ro | robåt</annotation>
+ <annotation cp="🚣♂" type="tts">mann i robåt</annotation>
+ <annotation cp="🚣♀">båt | kvinne | kvinne i robåt | ro | robåt</annotation>
+ <annotation cp="🚣♀" type="tts">kvinne i robåt</annotation>
+ <annotation cp="🏊">sport | svømme | svømmer | svømming</annotation>
+ <annotation cp="🏊" type="tts">svømmer</annotation>
+ <annotation cp="🏊♂">mann | mannlig svømmer | svømme | svømming</annotation>
+ <annotation cp="🏊♂" type="tts">mannlig svømmer</annotation>
+ <annotation cp="🏊♀">kvinne | kvinnelig svømmer | svømme | svømming</annotation>
+ <annotation cp="🏊♀" type="tts">kvinnelig svømmer</annotation>
+ <annotation cp="⛹">ball | ballsport | person med ball</annotation>
+ <annotation cp="⛹" type="tts">person med ball</annotation>
+ <annotation cp="⛹♂">ballsport | mann | mann med ball</annotation>
+ <annotation cp="⛹♂" type="tts">mann med ball</annotation>
+ <annotation cp="⛹♀">ballsport | kvinne | kvinne med ball</annotation>
+ <annotation cp="⛹♀" type="tts">kvinne med ball</annotation>
+ <annotation cp="🏋">løfter | vekt | vektløfter</annotation>
+ <annotation cp="🏋" type="tts">vektløfter</annotation>
+ <annotation cp="🏋♂">bodybuilding | mann | mannlig vektløfter | vektløfter</annotation>
+ <annotation cp="🏋♂" type="tts">mannlig vektløfter</annotation>
+ <annotation cp="🏋♀">bodybuilding | kvinne | kvinnelig vektløfter | vektløfting</annotation>
+ <annotation cp="🏋♀" type="tts">kvinnelig vektløfter</annotation>
+ <annotation cp="🚴">sykkel | sykle | syklist</annotation>
+ <annotation cp="🚴" type="tts">syklist</annotation>
+ <annotation cp="🚴♂">mann | mannlig syklist | sykkel | sykle</annotation>
+ <annotation cp="🚴♂" type="tts">mannlig syklist</annotation>
+ <annotation cp="🚴♀">kvinne | kvinnelig syklist | sykkel | sykle</annotation>
+ <annotation cp="🚴♀" type="tts">kvinnelig syklist</annotation>
+ <annotation cp="🚵">mountainbike | sykkel | terrengsykkel | terrengsyklist</annotation>
+ <annotation cp="🚵" type="tts">terrengsyklist</annotation>
+ <annotation cp="🚵♂">mann | mann på terrengsykkel | mountainbike | sykkel | terrengsykkel</annotation>
+ <annotation cp="🚵♂" type="tts">mann på terrengsykkel</annotation>
+ <annotation cp="🚵♀">kvinne | kvinne på terrengsykkel | mountainbike | sykkel | terrengsykkel</annotation>
+ <annotation cp="🚵♀" type="tts">kvinne på terrengsykkel</annotation>
+ <annotation cp="🤸">gym | gymnastikk | person | slå hjul | sport</annotation>
+ <annotation cp="🤸" type="tts">slå hjul</annotation>
+ <annotation cp="🤸♂">mann | mann som slår hjul | slå hjul</annotation>
+ <annotation cp="🤸♂" type="tts">mann som slår hjul</annotation>
+ <annotation cp="🤸♀">kvinne | kvinne som slår hjul | slå hjul</annotation>
+ <annotation cp="🤸♀" type="tts">kvinne som slår hjul</annotation>
+ <annotation cp="🤼">bryter | brytere | bryting | person | sport</annotation>
+ <annotation cp="🤼" type="tts">brytere</annotation>
+ <annotation cp="🤼♂">bryter | mann | mannlige brytere | menn</annotation>
+ <annotation cp="🤼♂" type="tts">mannlige brytere</annotation>
+ <annotation cp="🤼♀">bryter | kvinne | kvinnelige brytere | kvinner</annotation>
+ <annotation cp="🤼♀" type="tts">kvinnelige brytere</annotation>
+ <annotation cp="🤽">person | polo | sport | vann | vannpolo</annotation>
+ <annotation cp="🤽" type="tts">vannpolo</annotation>
+ <annotation cp="🤽♂">mann | mannlig vannpolospiller | vannpolo</annotation>
+ <annotation cp="🤽♂" type="tts">mannlig vannpolospiller</annotation>
+ <annotation cp="🤽♀">kvinne | kvinnelig vannpolospiller | vannpolo</annotation>
+ <annotation cp="🤽♀" type="tts">kvinnelig vannpolospiller</annotation>
+ <annotation cp="🤾">ball | håndball | person | sport</annotation>
+ <annotation cp="🤾" type="tts">håndball</annotation>
+ <annotation cp="🤾♂">håndball | mann | mannlig håndballspiller</annotation>
+ <annotation cp="🤾♂" type="tts">mannlig håndballspiller</annotation>
+ <annotation cp="🤾♀">håndball | kvinne | kvinnelig håndballspiller</annotation>
+ <annotation cp="🤾♀" type="tts">kvinnelig håndballspiller</annotation>
+ <annotation cp="🤹">balanse | ferdighet | multitasking | sjonglering</annotation>
+ <annotation cp="🤹" type="tts">sjonglering</annotation>
+ <annotation cp="🤹♂">mann | mannlig sjonglør | multitasking | sirkus | sjonglere</annotation>
+ <annotation cp="🤹♂" type="tts">mannlig sjonglør</annotation>
+ <annotation cp="🤹♀">kvinne | kvinnelig sjonglør | multitasking | sirkus | sjonglere</annotation>
+ <annotation cp="🤹♀" type="tts">kvinnelig sjonglør</annotation>
+ <annotation cp="🧘">lotusstilling | meditasjon | yoga</annotation>
+ <annotation cp="🧘" type="tts">lotusstilling</annotation>
+ <annotation cp="🧘♂">mann i lotusstilling | meditasjon | yoga</annotation>
+ <annotation cp="🧘♂" type="tts">mann i lotusstilling</annotation>
+ <annotation cp="🧘♀">kvinne i lotusstilling | meditasjon | yoga</annotation>
+ <annotation cp="🧘♀" type="tts">kvinne i lotusstilling</annotation>
+ <annotation cp="🛀">bad | badekar | person i badekar</annotation>
+ <annotation cp="🛀" type="tts">person i badekar</annotation>
+ <annotation cp="🛌">hotell | person i seng | sove</annotation>
+ <annotation cp="🛌" type="tts">person i seng</annotation>
+ <annotation cp="🧑🤝🧑">hånd | holde hender | par | personer | personer som leier</annotation>
+ <annotation cp="🧑🤝🧑" type="tts">personer som leier</annotation>
+ <annotation cp="👭">hånd | holder hender | kvinne | kvinner som leier | par</annotation>
+ <annotation cp="👭" type="tts">kvinner som leier</annotation>
+ <annotation cp="👫">hånd | holder hender | kvinne | mann | mann og kvinne som leier | par</annotation>
+ <annotation cp="👫" type="tts">mann og kvinne som leier</annotation>
+ <annotation cp="👬">hånd | holde hender | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
+ <annotation cp="👬" type="tts">menn som leier</annotation>
+ <annotation cp="💏">kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="💏" type="tts">kyss</annotation>
+ <annotation cp="💑">hjerte | kjærlighet | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="💑" type="tts">par med hjerte</annotation>
+ <annotation cp="👪">barn | familie | far | mennesker | mor</annotation>
+ <annotation cp="👪" type="tts">familie</annotation>
+ <annotation cp="🗣">fjes | hode | silhuett | snakke | snakkende hode i profil | snakker</annotation>
+ <annotation cp="🗣" type="tts">snakkende hode i profil</annotation>
+ <annotation cp="👤">byste | menneske | silhuett | silhuett av byste</annotation>
+ <annotation cp="👤" type="tts">silhuett av byste</annotation>
+ <annotation cp="👥">byste | menneske | silhuett | silhuett av byster</annotation>
+ <annotation cp="👥" type="tts">silhuett av byster</annotation>
+ <annotation cp="🫂">farvel | ha det | hadet | hei | klem | takk</annotation>
+ <annotation cp="🫂" type="tts">klem</annotation>
+ <annotation cp="👣">avtrykk | fot | fotavtrykk | fotspor | kropp | spor</annotation>
+ <annotation cp="👣" type="tts">fotavtrykk</annotation>
+ <annotation cp="🦰">rødhåring | rødt hår</annotation>
+ <annotation cp="🦰" type="tts">rødt hår</annotation>
+ <annotation cp="🦱">afrikansk | afro | krøllet | kruset hår</annotation>
+ <annotation cp="🦱" type="tts">kruset hår</annotation>
+ <annotation cp="🦳">gammel | grå | grått hår | hår | hvit</annotation>
+ <annotation cp="🦳" type="tts">grått hår</annotation>
+ <annotation cp="🦲">barbert | hårløs | kjemoterapi | skallet | uten hår</annotation>
+ <annotation cp="🦲" type="tts">skallet</annotation>
+ <annotation cp="🐵">ape | apefjes | dyr | fjes</annotation>
+ <annotation cp="🐵" type="tts">apefjes</annotation>
+ <annotation cp="🐒">ape | dyr</annotation>
+ <annotation cp="🐒" type="tts">ape</annotation>
+ <annotation cp="🦍">dyr | gorilla</annotation>
+ <annotation cp="🦍" type="tts">gorilla</annotation>
+ <annotation cp="🦧">ape | orangutang</annotation>
+ <annotation cp="🦧" type="tts">orangutang</annotation>
+ <annotation cp="🐶">dyr | fjes | hund | hundefjes</annotation>
+ <annotation cp="🐶" type="tts">hundefjes</annotation>
+ <annotation cp="🐕">dyr | hund | valp</annotation>
+ <annotation cp="🐕" type="tts">hund</annotation>
+ <annotation cp="🦮">blind | førerhund | hund | tilgjengelighet</annotation>
+ <annotation cp="🦮" type="tts">førerhund</annotation>
+ <annotation cp="🐕🦺">hjelp | hund | servicehund | tilgjengelighet</annotation>
+ <annotation cp="🐕🦺" type="tts">servicehund</annotation>
+ <annotation cp="🐩">dyr | hund | puddel</annotation>
+ <annotation cp="🐩" type="tts">puddel</annotation>
+ <annotation cp="🐺">dyr | fjes | ulv</annotation>
+ <annotation cp="🐺" type="tts">ulv</annotation>
+ <annotation cp="🦊">dyr | fjes | rev</annotation>
+ <annotation cp="🦊" type="tts">rev</annotation>
+ <annotation cp="🦝">nysgjerrig | sky | vaskebjørn</annotation>
+ <annotation cp="🦝" type="tts">vaskebjørn</annotation>
+ <annotation cp="🐱">dyr | fjes | katt | kattefjes</annotation>
+ <annotation cp="🐱" type="tts">kattefjes</annotation>
+ <annotation cp="🐈">dyr | katt</annotation>
+ <annotation cp="🐈" type="tts">katt</annotation>
+ <annotation cp="🐈⬛">dyr | katt | svart katt | uhell | ulykke</annotation>
+ <annotation cp="🐈⬛" type="tts">svart katt</annotation>
+ <annotation cp="🦁">fjes | løve | løven | stjernebilde | stjernetegn</annotation>
+ <annotation cp="🦁" type="tts">løve</annotation>
+ <annotation cp="🐯">dyr | fjes | tiger | tigerfjes</annotation>
+ <annotation cp="🐯" type="tts">tigerfjes</annotation>
+ <annotation cp="🐅">dyr | tiger</annotation>
+ <annotation cp="🐅" type="tts">tiger</annotation>
+ <annotation cp="🐆">dyr | leopard</annotation>
+ <annotation cp="🐆" type="tts">leopard</annotation>
+ <annotation cp="🐴">dyr | fjes | hest | hestefjes</annotation>
+ <annotation cp="🐴" type="tts">hestefjes</annotation>
+ <annotation cp="🐎">dyr | galopp | hest | trav</annotation>
+ <annotation cp="🐎" type="tts">hest</annotation>
+ <annotation cp="🦄">enhjørning | fjes</annotation>
+ <annotation cp="🦄" type="tts">enhjørning</annotation>
+ <annotation cp="🦓">dyr | sebra | striper</annotation>
+ <annotation cp="🦓" type="tts">sebra</annotation>
+ <annotation cp="🦌">dyr | hjort</annotation>
+ <annotation cp="🦌" type="tts">hjort</annotation>
+ <annotation cp="🦬">bison | bøffel | dyr | visent</annotation>
+ <annotation cp="🦬" type="tts">bison</annotation>
+ <annotation cp="🐮">dyr | fjes | ku | kufjes</annotation>
+ <annotation cp="🐮" type="tts">kufjes</annotation>
+ <annotation cp="🐂">dyr | okse | stjernebilde | stjernetegn | tyren</annotation>
+ <annotation cp="🐂" type="tts">okse</annotation>
+ <annotation cp="🐃">bøffel | dyr | vannbøffel</annotation>
+ <annotation cp="🐃" type="tts">vannbøffel</annotation>
+ <annotation cp="🐄">dyr | ku</annotation>
+ <annotation cp="🐄" type="tts">ku</annotation>
+ <annotation cp="🐷">dyr | fjes | gris | grisefjes</annotation>
+ <annotation cp="🐷" type="tts">grisefjes</annotation>
+ <annotation cp="🐖">dyr | gris</annotation>
+ <annotation cp="🐖" type="tts">gris</annotation>
+ <annotation cp="🐗">dyr | villsvin</annotation>
+ <annotation cp="🐗" type="tts">villsvin</annotation>
+ <annotation cp="🐽">dyr | gris | grisetryne | snute</annotation>
+ <annotation cp="🐽" type="tts">grisetryne</annotation>
+ <annotation cp="🐏">bukk | dyr | stjernebilde | stjernetegn | væren</annotation>
+ <annotation cp="🐏" type="tts">bukk</annotation>
+ <annotation cp="🐑">dyr | sau | søye</annotation>
+ <annotation cp="🐑" type="tts">søye</annotation>
+ <annotation cp="🐐">dyr | geit | steinbukken | stjernebilde | stjernetegn</annotation>
+ <annotation cp="🐐" type="tts">geit</annotation>
+ <annotation cp="🐪">dromedar | dyr | kamel | pukkel</annotation>
+ <annotation cp="🐪" type="tts">dromedar</annotation>
+ <annotation cp="🐫">dyr | kamel | pukkel</annotation>
+ <annotation cp="🐫" type="tts">kamel</annotation>
+ <annotation cp="🦙">alpakka | dyr | guanaco | lama | ull</annotation>
+ <annotation cp="🦙" type="tts">lama</annotation>
+ <annotation cp="🦒">dyr | flekker | sjiraff</annotation>
+ <annotation cp="🦒" type="tts">sjiraff</annotation>
+ <annotation cp="🐘">dyr | elefant</annotation>
+ <annotation cp="🐘" type="tts">elefant</annotation>
+ <annotation cp="🦣">dyr | mammut | stor | støttenner | ull | utdødd</annotation>
+ <annotation cp="🦣" type="tts">mammut</annotation>
+ <annotation cp="🦏">dyr | horn | nese | neshorn</annotation>
+ <annotation cp="🦏" type="tts">neshorn</annotation>
+ <annotation cp="🦛">flodhest</annotation>
+ <annotation cp="🦛" type="tts">flodhest</annotation>
+ <annotation cp="🐭">dyr | fjes | mus | musefjes</annotation>
+ <annotation cp="🐭" type="tts">musefjes</annotation>
+ <annotation cp="🐁">dyr | mus</annotation>
+ <annotation cp="🐁" type="tts">mus</annotation>
+ <annotation cp="🐀">dyr | rotte</annotation>
+ <annotation cp="🐀" type="tts">rotte</annotation>
+ <annotation cp="🐹">dyr | fjes | hamster</annotation>
+ <annotation cp="🐹" type="tts">hamster</annotation>
+ <annotation cp="🐰">dyr | fjes | kanin | kaninfjes</annotation>
+ <annotation cp="🐰" type="tts">kaninfjes</annotation>
+ <annotation cp="🐇">dyr | hare | kanin</annotation>
+ <annotation cp="🐇" type="tts">kanin</annotation>
+ <annotation cp="🐿">dyr | ekorn | jordekorn</annotation>
+ <annotation cp="🐿" type="tts">ekorn</annotation>
+ <annotation cp="🦫">bever | dam | dyr</annotation>
+ <annotation cp="🦫" type="tts">bever</annotation>
+ <annotation cp="🦔">dyr | pigger | piggsvin | pinnsvin</annotation>
+ <annotation cp="🦔" type="tts">pinnsvin</annotation>
+ <annotation cp="🦇">dyr | flaggermus | vampyr</annotation>
+ <annotation cp="🦇" type="tts">flaggermus</annotation>
+ <annotation cp="🐻">bjørn | dyr | fjes</annotation>
+ <annotation cp="🐻" type="tts">bjørn</annotation>
+ <annotation cp="🐻❄">arktis | bjørn | dyr | hvit | isbjørn</annotation>
+ <annotation cp="🐻❄" type="tts">isbjørn</annotation>
+ <annotation cp="🐨">dyr | koala | koalabjørn</annotation>
+ <annotation cp="🐨" type="tts">koala</annotation>
+ <annotation cp="🐼">dyr | fjes | panda</annotation>
+ <annotation cp="🐼" type="tts">panda</annotation>
+ <annotation cp="🦥">dovendyr | dyr | lat | treg</annotation>
+ <annotation cp="🦥" type="tts">dovendyr</annotation>
+ <annotation cp="🦦">dyr | fisker | lekende | oter</annotation>
+ <annotation cp="🦦" type="tts">oter</annotation>
+ <annotation cp="🦨">dyr | stank | stinkdyr | stinke</annotation>
+ <annotation cp="🦨" type="tts">stinkdyr</annotation>
+ <annotation cp="🦘">Australia | dyr | hoppe | kenguru | pungdyr</annotation>
+ <annotation cp="🦘" type="tts">kenguru</annotation>
+ <annotation cp="🦡">grevling | skadedyr</annotation>
+ <annotation cp="🦡" type="tts">grevling</annotation>
+ <annotation cp="🐾">avtrykk | dyr | poteavtrykk | poter | spor</annotation>
+ <annotation cp="🐾" type="tts">poteavtrykk</annotation>
+ <annotation cp="🦃">fugl | kalkun</annotation>
+ <annotation cp="🦃" type="tts">kalkun</annotation>
+ <annotation cp="🐔">dyr | fugl | høne</annotation>
+ <annotation cp="🐔" type="tts">høne</annotation>
+ <annotation cp="🐓">dyr | fugl | hane</annotation>
+ <annotation cp="🐓" type="tts">hane</annotation>
+ <annotation cp="🐣">dyr | fugl | klekking | kylling | nyklekket kylling</annotation>
+ <annotation cp="🐣" type="tts">nyklekket kylling</annotation>
+ <annotation cp="🐤">baby | dyr | fugl | kylling</annotation>
+ <annotation cp="🐤" type="tts">kylling</annotation>
+ <annotation cp="🐥">baby | dyr | fugl | kylling | kylling forfra</annotation>
+ <annotation cp="🐥" type="tts">kylling forfra</annotation>
+ <annotation cp="🐦">dyr | fugl</annotation>
+ <annotation cp="🐦" type="tts">fugl</annotation>
+ <annotation cp="🐧">dyr | fugl | pingvin</annotation>
+ <annotation cp="🐧" type="tts">pingvin</annotation>
+ <annotation cp="🕊">due | dyr | fly | fred | fredsdue | fugl</annotation>
+ <annotation cp="🕊" type="tts">fredsdue</annotation>
+ <annotation cp="🦅">dyr | fugl | ørn</annotation>
+ <annotation cp="🦅" type="tts">ørn</annotation>
+ <annotation cp="🦆">and | dyr | fugl</annotation>
+ <annotation cp="🦆" type="tts">and</annotation>
+ <annotation cp="🦢">den stygge andungen | fugl | svane</annotation>
+ <annotation cp="🦢" type="tts">svane</annotation>
+ <annotation cp="🦉">dyr | fugl | ugle | vis</annotation>
+ <annotation cp="🦉" type="tts">ugle</annotation>
+ <annotation cp="🦤">dodo | dronte | Mauritius | stor | utdødd</annotation>
+ <annotation cp="🦤" type="tts">dronte</annotation>
+ <annotation cp="🪶">fjær | fjærdrakt | fugl | lett</annotation>
+ <annotation cp="🪶" type="tts">fjær</annotation>
+ <annotation cp="🦩">flamingo | prangende | tropisk</annotation>
+ <annotation cp="🦩" type="tts">flamingo</annotation>
+ <annotation cp="🦚">fugl | påfugl | prangende | stolt</annotation>
+ <annotation cp="🦚" type="tts">påfugl</annotation>
+ <annotation cp="🦜">fugl | papegøye | pirat | snakkende | snakker</annotation>
+ <annotation cp="🦜" type="tts">papegøye</annotation>
+ <annotation cp="🐸">dyr | fjes | frosk</annotation>
+ <annotation cp="🐸" type="tts">frosk</annotation>
+ <annotation cp="🐊">dyr | krokodille</annotation>
+ <annotation cp="🐊" type="tts">krokodille</annotation>
+ <annotation cp="🐢">dyr | skilpadde</annotation>
+ <annotation cp="🐢" type="tts">skilpadde</annotation>
+ <annotation cp="🦎">dyr | firfisle | øgle | reptil</annotation>
+ <annotation cp="🦎" type="tts">firfisle</annotation>
+ <annotation cp="🐍">dyr | orm | slange | slangebæreren | stjernebilde | stjernetegn</annotation>
+ <annotation cp="🐍" type="tts">slange</annotation>
+ <annotation cp="🐲">drage | dragefjes | dyr | eventyr | fjes</annotation>
+ <annotation cp="🐲" type="tts">dragefjes</annotation>
+ <annotation cp="🐉">drage | dyr | eventyr</annotation>
+ <annotation cp="🐉" type="tts">drage</annotation>
+ <annotation cp="🦕">brachiosaurus | brontosaurus | dinosaur | diplodocus | sauropod</annotation>
+ <annotation cp="🦕" type="tts">sauropod</annotation>
+ <annotation cp="🦖">dinosaur | T-Rex | Tyrannosaurus Rex</annotation>
+ <annotation cp="🦖" type="tts">T-Rex</annotation>
+ <annotation cp="🐳">dyr | hval | sprutende hval | spruter</annotation>
+ <annotation cp="🐳" type="tts">sprutende hval</annotation>
+ <annotation cp="🐋">dyr | hval</annotation>
+ <annotation cp="🐋" type="tts">hval</annotation>
+ <annotation cp="🐬">delfin | dyr</annotation>
+ <annotation cp="🐬" type="tts">delfin</annotation>
+ <annotation cp="🦭">dyr | sel | sjøløve</annotation>
+ <annotation cp="🦭" type="tts">sel</annotation>
+ <annotation cp="🐟">dyr | fisk | fiskene | stjernebilde | stjernetegn</annotation>
+ <annotation cp="🐟" type="tts">fisk</annotation>
+ <annotation cp="🐠">dyr | fisk | tropisk</annotation>
+ <annotation cp="🐠" type="tts">tropisk fisk</annotation>
+ <annotation cp="🐡">dyr | fisk | kulefisk</annotation>
+ <annotation cp="🐡" type="tts">kulefisk</annotation>
+ <annotation cp="🦈">fisk | hai</annotation>
+ <annotation cp="🦈" type="tts">hai</annotation>
+ <annotation cp="🐙">blekksprut | bløtdyr | dyr</annotation>
+ <annotation cp="🐙" type="tts">blekksprut</annotation>
+ <annotation cp="🐚">dyr | skjell | spiralskjell</annotation>
+ <annotation cp="🐚" type="tts">spiralskjell</annotation>
+ <annotation cp="🐌">dyr | snegle</annotation>
+ <annotation cp="🐌" type="tts">snegle</annotation>
+ <annotation cp="🦋">dyr | insekt | pen | sommer | sommerfugl</annotation>
+ <annotation cp="🦋" type="tts">sommerfugl</annotation>
+ <annotation cp="🐛">åme | dyr | insekt | kryp | larve</annotation>
+ <annotation cp="🐛" type="tts">insekt</annotation>
+ <annotation cp="🐜">dyr | insekt | maur</annotation>
+ <annotation cp="🐜" type="tts">maur</annotation>
+ <annotation cp="🐝">bie | dyr | honningbie | insekt</annotation>
+ <annotation cp="🐝" type="tts">honningbie</annotation>
+ <annotation cp="🪲">bille | dyr | insekt</annotation>
+ <annotation cp="🪲" type="tts">bille</annotation>
+ <annotation cp="🐞">bille | dyr | insekt | marihøne</annotation>
+ <annotation cp="🐞" type="tts">marihøne</annotation>
+ <annotation cp="🦗">dyr | gresshoppe | insekt</annotation>
+ <annotation cp="🦗" type="tts">gresshoppe</annotation>
+ <annotation cp="🪳">dyr | insekt | kakerlakk | utøy</annotation>
+ <annotation cp="🪳" type="tts">kakerlakk</annotation>
+ <annotation cp="🕷">dyr | edderkopp | insekt</annotation>
+ <annotation cp="🕷" type="tts">edderkopp</annotation>
+ <annotation cp="🕸">edderkopp | nett | spindelvev</annotation>
+ <annotation cp="🕸" type="tts">spindelvev</annotation>
+ <annotation cp="🦂">dyr | skorpion | skorpionen | stjernebilde | stjernetegn</annotation>
+ <annotation cp="🦂" type="tts">skorpion</annotation>
+ <annotation cp="🦟">feber | insekt | malaria | mygg | sykdom | virus</annotation>
+ <annotation cp="🦟" type="tts">mygg</annotation>
+ <annotation cp="🪰">dyr | flue | forråtnelse | insekt | larver | råtne | sykdom</annotation>
+ <annotation cp="🪰" type="tts">flue</annotation>
+ <annotation cp="🪱">dyr | leddorm | makk | mark | meitemakk | meitemark | parasitt</annotation>
+ <annotation cp="🪱" type="tts">mark</annotation>
+ <annotation cp="🦠">amøbe | bakterie | mikrobe | virus</annotation>
+ <annotation cp="🦠" type="tts">mikrobe</annotation>
+ <annotation cp="💐">blomst | blomster | bukett | romantikk</annotation>
+ <annotation cp="💐" type="tts">bukett</annotation>
+ <annotation cp="🌸">blomst | kirsebær | kirsebærblomst</annotation>
+ <annotation cp="🌸" type="tts">kirsebærblomst</annotation>
+ <annotation cp="💮">blomst | blomsterstempel | hvit blomst | stempel</annotation>
+ <annotation cp="💮" type="tts">hvit blomst</annotation>
+ <annotation cp="🏵">plante | rosett</annotation>
+ <annotation cp="🏵" type="tts">rosett</annotation>
+ <annotation cp="🌹">blomst | rose</annotation>
+ <annotation cp="🌹" type="tts">rose</annotation>
+ <annotation cp="🥀">blomst | tørket | vissen</annotation>
+ <annotation cp="🥀" type="tts">vissen blomst</annotation>
+ <annotation cp="🌺">blomst | hibiskus</annotation>
+ <annotation cp="🌺" type="tts">hibiskus</annotation>
+ <annotation cp="🌻">blomst | sol | solsikke</annotation>
+ <annotation cp="🌻" type="tts">solsikke</annotation>
+ <annotation cp="🌼">blomst | plante</annotation>
+ <annotation cp="🌼" type="tts">blomst</annotation>
+ <annotation cp="🌷">blomst | tulipan</annotation>
+ <annotation cp="🌷" type="tts">tulipan</annotation>
+ <annotation cp="🌱">plante | spire | ung</annotation>
+ <annotation cp="🌱" type="tts">spire</annotation>
+ <annotation cp="🪴">dyrke | hus | kjedelig | plante | potteplante | ubrukelig | vanne</annotation>
+ <annotation cp="🪴" type="tts">potteplante</annotation>
+ <annotation cp="🌲">barnåler | bartre | eviggrønt tre | gran | juletre | tre</annotation>
+ <annotation cp="🌲" type="tts">bartre</annotation>
+ <annotation cp="🌳">blader | løvtre | tre</annotation>
+ <annotation cp="🌳" type="tts">løvtre</annotation>
+ <annotation cp="🌴">palme | palmetre | tre</annotation>
+ <annotation cp="🌴" type="tts">palme</annotation>
+ <annotation cp="🌵">kaktus | plante</annotation>
+ <annotation cp="🌵" type="tts">kaktus</annotation>
+ <annotation cp="🌾">aks | plante | ris | risplante | siv | strå</annotation>
+ <annotation cp="🌾" type="tts">risplante</annotation>
+ <annotation cp="🌿">blader | plante | urt | urteblader</annotation>
+ <annotation cp="🌿" type="tts">urteblader</annotation>
+ <annotation cp="☘">kløver | plante | trekløver</annotation>
+ <annotation cp="☘" type="tts">trekløver</annotation>
+ <annotation cp="🍀">4 | firkløver | flaks | hell | kløver | plante</annotation>
+ <annotation cp="🍀" type="tts">firkløver</annotation>
+ <annotation cp="🍁">blad | høstblad | lønn | lønneblad</annotation>
+ <annotation cp="🍁" type="tts">lønneblad</annotation>
+ <annotation cp="🍂">blad | fallende | høstblad | løv</annotation>
+ <annotation cp="🍂" type="tts">høstblad</annotation>
+ <annotation cp="🍃">blader i vind | blåse | blåser | blåst | løv i vind | vind</annotation>
+ <annotation cp="🍃" type="tts">blader i vind</annotation>
+ <annotation cp="🍇">drueklase | druer | frukt</annotation>
+ <annotation cp="🍇" type="tts">druer</annotation>
+ <annotation cp="🍈">frukt | honningmelon | melon</annotation>
+ <annotation cp="🍈" type="tts">honningmelon</annotation>
+ <annotation cp="🍉">frukt | melon | vannmelon</annotation>
+ <annotation cp="🍉" type="tts">vannmelon</annotation>
+ <annotation cp="🍊">appelsin | frukt | klementin | mandarin</annotation>
+ <annotation cp="🍊" type="tts">mandarin</annotation>
+ <annotation cp="🍋">frukt | sitron | sitrus</annotation>
+ <annotation cp="🍋" type="tts">sitron</annotation>
+ <annotation cp="🍌">banan | frukt</annotation>
+ <annotation cp="🍌" type="tts">banan</annotation>
+ <annotation cp="🍍">ananas | frukt</annotation>
+ <annotation cp="🍍" type="tts">ananas</annotation>
+ <annotation cp="🥭">frukt | mango | tropisk</annotation>
+ <annotation cp="🥭" type="tts">mango</annotation>
+ <annotation cp="🍎">eple | frukt | rød | rødt</annotation>
+ <annotation cp="🍎" type="tts">rødt eple</annotation>
+ <annotation cp="🍏">eple | frukt | grønn | grønt</annotation>
+ <annotation cp="🍏" type="tts">grønt eple</annotation>
+ <annotation cp="🍐">frukt | pære</annotation>
+ <annotation cp="🍐" type="tts">pære</annotation>
+ <annotation cp="🍑">fersken | frukt</annotation>
+ <annotation cp="🍑" type="tts">fersken</annotation>
+ <annotation cp="🍒">bær | kirsebær | moreller</annotation>
+ <annotation cp="🍒" type="tts">kirsebær</annotation>
+ <annotation cp="🍓">bær | jordbær</annotation>
+ <annotation cp="🍓" type="tts">jordbær</annotation>
+ <annotation cp="🫐">bær | blå | blåbær</annotation>
+ <annotation cp="🫐" type="tts">blåbær</annotation>
+ <annotation cp="🥝">frukt | kiwi | mat</annotation>
+ <annotation cp="🥝" type="tts">kiwi</annotation>
+ <annotation cp="🍅">frukt | grønnsak | tomat</annotation>
+ <annotation cp="🍅" type="tts">tomat</annotation>
+ <annotation cp="🫒">mat | oliven</annotation>
+ <annotation cp="🫒" type="tts">oliven</annotation>
+ <annotation cp="🥥">kokos | kokosnøtt | palme | piña colada</annotation>
+ <annotation cp="🥥" type="tts">kokosnøtt</annotation>
+ <annotation cp="🥑">avokado | frukt | mat</annotation>
+ <annotation cp="🥑" type="tts">avokado</annotation>
+ <annotation cp="🍆">aubergine | grønnsak</annotation>
+ <annotation cp="🍆" type="tts">aubergine</annotation>
+ <annotation cp="🥔">grønnsak | mat | potet</annotation>
+ <annotation cp="🥔" type="tts">potet</annotation>
+ <annotation cp="🥕">grønnsak | gulrot | mat | rot</annotation>
+ <annotation cp="🥕" type="tts">gulrot</annotation>
+ <annotation cp="🌽">mais | maiskolbe</annotation>
+ <annotation cp="🌽" type="tts">maiskolbe</annotation>
+ <annotation cp="🌶">chili | plante | rød | sterk</annotation>
+ <annotation cp="🌶" type="tts">rød chili</annotation>
+ <annotation cp="🫑">capsicum | chili | grønnsak | paprika</annotation>
+ <annotation cp="🫑" type="tts">paprika</annotation>
+ <annotation cp="🥒">agurk | grønnsak | mat | sylteagurk</annotation>
+ <annotation cp="🥒" type="tts">agurk</annotation>
+ <annotation cp="🥬">bladgrønnsaker | bladsalat | grønnkål | kål | kinakål | pak choy</annotation>
+ <annotation cp="🥬" type="tts">bladgrønnsaker</annotation>
+ <annotation cp="🥦">brokkoli | grønnsak</annotation>
+ <annotation cp="🥦" type="tts">brokkoli</annotation>
+ <annotation cp="🧄">hvitløk | smakstilsetning</annotation>
+ <annotation cp="🧄" type="tts">hvitløk</annotation>
+ <annotation cp="🧅">løk | smakstilsetning</annotation>
+ <annotation cp="🧅" type="tts">løk</annotation>
+ <annotation cp="🍄">fluesopp | sopp</annotation>
+ <annotation cp="🍄" type="tts">sopp</annotation>
+ <annotation cp="🥜">grønnsak | mat | nøtt | peanøtt | peanøtter</annotation>
+ <annotation cp="🥜" type="tts">peanøtter</annotation>
+ <annotation cp="🌰">kastanje | kastanjenøtt | nøtt</annotation>
+ <annotation cp="🌰" type="tts">kastanje</annotation>
+ <annotation cp="🍞">brød | loff</annotation>
+ <annotation cp="🍞" type="tts">brød</annotation>
+ <annotation cp="🥐">brød | croissant | fransk | mat</annotation>
+ <annotation cp="🥐" type="tts">croissant</annotation>
+ <annotation cp="🥖">bagett | baguette | brød | fransk | mat</annotation>
+ <annotation cp="🥖" type="tts">bagett</annotation>
+ <annotation cp="🫓">arepa | brød | lavash | nan | pita | pitabrød</annotation>
+ <annotation cp="🫓" type="tts">pitabrød</annotation>
+ <annotation cp="🥨">saltkringle | saltstenger | snacks</annotation>
+ <annotation cp="🥨" type="tts">saltkringle</annotation>
+ <annotation cp="🥯">bagel | bakst | påsmurt</annotation>
+ <annotation cp="🥯" type="tts">bagel</annotation>
+ <annotation cp="🥞">crêpe | mat | pannekake | pannekaker</annotation>
+ <annotation cp="🥞" type="tts">pannekaker</annotation>
+ <annotation cp="🧇">belgisk vaffel | jern | vaffel</annotation>
+ <annotation cp="🧇" type="tts">belgisk vaffel</annotation>
+ <annotation cp="🧀">ost | ostestykke</annotation>
+ <annotation cp="🧀" type="tts">ostestykke</annotation>
+ <annotation cp="🍖">kjøtt med bein | kjøttbein | restaurant</annotation>
+ <annotation cp="🍖" type="tts">kjøtt med bein</annotation>
+ <annotation cp="🍗">fjærfe | fjærkre | kyllingklubbe | kyllinglår | restaurant</annotation>
+ <annotation cp="🍗" type="tts">kyllinglår</annotation>
+ <annotation cp="🥩">biff | kjøttstykke | lammekotelett | lammeskank | svinekotelett</annotation>
+ <annotation cp="🥩" type="tts">kjøttstykke</annotation>
+ <annotation cp="🥓">bacon | kjøtt | mat</annotation>
+ <annotation cp="🥓" type="tts">bacon</annotation>
+ <annotation cp="🍔">burger | hamburger | restaurant</annotation>
+ <annotation cp="🍔" type="tts">hamburger</annotation>
+ <annotation cp="🍟">chips | pommes frites | restaurant | stekte poteter</annotation>
+ <annotation cp="🍟" type="tts">pommes frites</annotation>
+ <annotation cp="🍕">pizza | pizzabit | pizzastykke | restaurant</annotation>
+ <annotation cp="🍕" type="tts">pizzastykke</annotation>
+ <annotation cp="🌭">hot dog | hotdog | pølse | pølse med brød</annotation>
+ <annotation cp="🌭" type="tts">pølse med brød</annotation>
+ <annotation cp="🥪">brød | brødskive | sandwich | smørbrød</annotation>
+ <annotation cp="🥪" type="tts">sandwich</annotation>
+ <annotation cp="🌮">meksikansk | taco</annotation>
+ <annotation cp="🌮" type="tts">taco</annotation>
+ <annotation cp="🌯">burrito | meksikansk | wrap</annotation>
+ <annotation cp="🌯" type="tts">burrito</annotation>
+ <annotation cp="🫔">latinamerikansk | meksikansk | tamal | wrap</annotation>
+ <annotation cp="🫔" type="tts">tamal</annotation>
+ <annotation cp="🥙">falafel | fylt pitabrød | gyro | kebab | mat | pita</annotation>
+ <annotation cp="🥙" type="tts">fylt pitabrød</annotation>
+ <annotation cp="🧆">falafel | kikerter | kjøttboller</annotation>
+ <annotation cp="🧆" type="tts">falafel</annotation>
+ <annotation cp="🥚">egg | mat</annotation>
+ <annotation cp="🥚" type="tts">egg</annotation>
+ <annotation cp="🍳">egg | matlaging | steke | stekepanne</annotation>
+ <annotation cp="🍳" type="tts">matlaging</annotation>
+ <annotation cp="🥘">lav gryte med mat | mat | paella | stekepanne</annotation>
+ <annotation cp="🥘" type="tts">lav gryte med mat</annotation>
+ <annotation cp="🍲">gryte | gryterett | middag | middagsmat | panne</annotation>
+ <annotation cp="🍲" type="tts">gryterett</annotation>
+ <annotation cp="🫕">fondue | fondy | gryte | ost | sjokolade | smeltet | sveitsisk</annotation>
+ <annotation cp="🫕" type="tts">fondy</annotation>
+ <annotation cp="🥣">bolle med skje | congee | frokost | frokostblanding | grøt</annotation>
+ <annotation cp="🥣" type="tts">bolle med skje</annotation>
+ <annotation cp="🥗">grønn | mat | salat</annotation>
+ <annotation cp="🥗" type="tts">grønn salat</annotation>
+ <annotation cp="🍿">kino | popcorn | popkorn</annotation>
+ <annotation cp="🍿" type="tts">popkorn</annotation>
+ <annotation cp="🧈">meieriprodukt | smør</annotation>
+ <annotation cp="🧈" type="tts">smør</annotation>
+ <annotation cp="🧂">bøsse | krydder | salt</annotation>
+ <annotation cp="🧂" type="tts">salt</annotation>
+ <annotation cp="🥫">boks | hermetikk | hermetisk mat</annotation>
+ <annotation cp="🥫" type="tts">hermetikk</annotation>
+ <annotation cp="🍱">bento | bento-boks | boks | matboks</annotation>
+ <annotation cp="🍱" type="tts">bento-boks</annotation>
+ <annotation cp="🍘">kjeks | ris | riskjeks</annotation>
+ <annotation cp="🍘" type="tts">riskjeks</annotation>
+ <annotation cp="🍙">japansk | onigiri | restaurant | ris | risball</annotation>
+ <annotation cp="🍙" type="tts">risball</annotation>
+ <annotation cp="🍚">kokt | restaurant | ris</annotation>
+ <annotation cp="🍚" type="tts">kokt ris</annotation>
+ <annotation cp="🍛">curry | karri | karriris | restaurant | ris</annotation>
+ <annotation cp="🍛" type="tts">karriris</annotation>
+ <annotation cp="🍜">matbolle | matbolle som damper | nudelbolle | ramen | restaurant</annotation>
+ <annotation cp="🍜" type="tts">matbolle som damper</annotation>
+ <annotation cp="🍝">pasta | restaurant | spagetti</annotation>
+ <annotation cp="🍝" type="tts">spagetti</annotation>
+ <annotation cp="🍠">bakt | potet | restaurant | søtpotet</annotation>
+ <annotation cp="🍠" type="tts">bakt søtpotet</annotation>
+ <annotation cp="🍢">oden | restaurant | sjømat | sjømat på pinne | sjømatspyd</annotation>
+ <annotation cp="🍢" type="tts">oden</annotation>
+ <annotation cp="🍣">restaurant | sushi</annotation>
+ <annotation cp="🍣" type="tts">sushi</annotation>
+ <annotation cp="🍤">fritert reke | grillet scampi | kongereke | restaurant | scampi | tempura</annotation>
+ <annotation cp="🍤" type="tts">fritert reke</annotation>
+ <annotation cp="🍥">fisk | fiskekake med mønster | restaurant</annotation>
+ <annotation cp="🍥" type="tts">fiskekake med mønster</annotation>
+ <annotation cp="🥮">festival | høst | månekake | yuebing</annotation>
+ <annotation cp="🥮" type="tts">månekake</annotation>
+ <annotation cp="🍡">dango | japansk | restaurant | riskonfekt</annotation>
+ <annotation cp="🍡" type="tts">dango</annotation>
+ <annotation cp="🥟">dumpling | empanada | gyoza | jiaozi | pirog</annotation>
+ <annotation cp="🥟" type="tts">dumpling</annotation>
+ <annotation cp="🥠">fortune cookie | lykkekake | spådom</annotation>
+ <annotation cp="🥠" type="tts">lykkekake</annotation>
+ <annotation cp="🥡">takeaway-boks | takeaway-eske</annotation>
+ <annotation cp="🥡" type="tts">takeaway-eske</annotation>
+ <annotation cp="🦀">dyr | krabbe | krepsen | stjernebilde | stjernetegn</annotation>
+ <annotation cp="🦀" type="tts">krabbe</annotation>
+ <annotation cp="🦞">bisque | hummer | klør | sjømat | skalldyr</annotation>
+ <annotation cp="🦞" type="tts">hummer</annotation>
+ <annotation cp="🦐">dyr | liten | mat | reke</annotation>
+ <annotation cp="🦐" type="tts">reke</annotation>
+ <annotation cp="🦑">akkar | blekk | blekksprut | bløtdyr | dyr | sprut</annotation>
+ <annotation cp="🦑" type="tts">akkar</annotation>
+ <annotation cp="🦪">dykking | østers | perle</annotation>
+ <annotation cp="🦪" type="tts">østers</annotation>
+ <annotation cp="🍦">dessert | is | iskrem | restaurant | soft-is | softis</annotation>
+ <annotation cp="🍦" type="tts">soft-is</annotation>
+ <annotation cp="🍧">dessert | is | restaurant | shave-ice | slush-is</annotation>
+ <annotation cp="🍧" type="tts">slush-is</annotation>
+ <annotation cp="🍨">dessert | is | iskrem | restaurant</annotation>
+ <annotation cp="🍨" type="tts">iskrem</annotation>
+ <annotation cp="🍩">dessert | donut | restaurant | smultring</annotation>
+ <annotation cp="🍩" type="tts">donut</annotation>
+ <annotation cp="🍪">cookie | dessert | kjeks | restaurant</annotation>
+ <annotation cp="🍪" type="tts">kjeks</annotation>
+ <annotation cp="🎂">bursdag | bursdagskake | dessert | feiring | fødselsdag | kake</annotation>
+ <annotation cp="🎂" type="tts">bursdagskake</annotation>
+ <annotation cp="🍰">dessert | formkake | kake | kakestykke</annotation>
+ <annotation cp="🍰" type="tts">kakestykke</annotation>
+ <annotation cp="🧁">bakst | cupcake | søt</annotation>
+ <annotation cp="🧁" type="tts">cupcake</annotation>
+ <annotation cp="🥧">butterdeig | fyll | pai</annotation>
+ <annotation cp="🥧" type="tts">pai</annotation>
+ <annotation cp="🍫">sjokoladeplate</annotation>
+ <annotation cp="🍫" type="tts">sjokoladeplate</annotation>
+ <annotation cp="🍬">godteri | karamell | smågodt | søtsaker | sukkertøy</annotation>
+ <annotation cp="🍬" type="tts">godteri</annotation>
+ <annotation cp="🍭">kjærlighet på pinne | sukkertøy</annotation>
+ <annotation cp="🍭" type="tts">kjærlighet på pinne</annotation>
+ <annotation cp="🍮">dessert | karamellpudding | pudding</annotation>
+ <annotation cp="🍮" type="tts">pudding</annotation>
+ <annotation cp="🍯">honningkrukke | krukke</annotation>
+ <annotation cp="🍯" type="tts">honningkrukke</annotation>
+ <annotation cp="🍼">babyflaske | drikke | melk | tåteflaske</annotation>
+ <annotation cp="🍼" type="tts">tåteflaske</annotation>
+ <annotation cp="🥛">drikke | glass | melk | melkeglass</annotation>
+ <annotation cp="🥛" type="tts">melkeglass</annotation>
+ <annotation cp="☕">drikke | kaffe | rykende | te | varm</annotation>
+ <annotation cp="☕" type="tts">varm drikke</annotation>
+ <annotation cp="🫖">drikke | kanne | te | tekanne</annotation>
+ <annotation cp="🫖" type="tts">tekanne</annotation>
+ <annotation cp="🍵">drikke | suppe | te | tekopp</annotation>
+ <annotation cp="🍵" type="tts">tekopp</annotation>
+ <annotation cp="🍶">drikke | flaske | karaffel | mugge og kopp | sake</annotation>
+ <annotation cp="🍶" type="tts">sake</annotation>
+ <annotation cp="🍾">bar | drikke | flaske | flaske med sprettkork | kork | sprette</annotation>
+ <annotation cp="🍾" type="tts">flaske med sprettkork</annotation>
+ <annotation cp="🍷">drikke | glass | rødvin | vin | vinglass</annotation>
+ <annotation cp="🍷" type="tts">vinglass</annotation>
+ <annotation cp="🍸">bar | cocktaildrink | cocktailglass | drink</annotation>
+ <annotation cp="🍸" type="tts">cocktailglass</annotation>
+ <annotation cp="🍹">bar | drink | juice | tropisk drink</annotation>
+ <annotation cp="🍹" type="tts">tropisk drink</annotation>
+ <annotation cp="🍺">bar | halvliter | ølglass | ølkrus | pils | pilsner</annotation>
+ <annotation cp="🍺" type="tts">ølkrus</annotation>
+ <annotation cp="🍻">bar | halvliter | øl | ølglass | ølkrus | ølkrus som skåler | pils</annotation>
+ <annotation cp="🍻" type="tts">ølkrus som skåler</annotation>
+ <annotation cp="🥂">drink | feiring | glass | glass som skåler | skål</annotation>
+ <annotation cp="🥂" type="tts">glass som skåler</annotation>
+ <annotation cp="🥃">brennevin | glass | shot | sprit | whisky | whiskyglass</annotation>
+ <annotation cp="🥃" type="tts">whiskyglass</annotation>
+ <annotation cp="🥤">brus | juice | jus | kopp med sugerør</annotation>
+ <annotation cp="🥤" type="tts">kopp med sugerør</annotation>
+ <annotation cp="🧋">boble-te | bobler | kuler | melk | perler | te</annotation>
+ <annotation cp="🧋" type="tts">boble-te</annotation>
+ <annotation cp="🧃">drikkekartong | juicekartong | juskartong</annotation>
+ <annotation cp="🧃" type="tts">drikkekartong</annotation>
+ <annotation cp="🧉">drikke | mate</annotation>
+ <annotation cp="🧉" type="tts">mate</annotation>
+ <annotation cp="🧊">isbit | isterning | kald</annotation>
+ <annotation cp="🧊" type="tts">isterning</annotation>
+ <annotation cp="🥢">hashi | spisepinner</annotation>
+ <annotation cp="🥢" type="tts">spisepinner</annotation>
+ <annotation cp="🍽">gaffel | kniv | matlaging | tallerken | tallerken med kniv og gaffel</annotation>
+ <annotation cp="🍽" type="tts">tallerken med kniv og gaffel</annotation>
+ <annotation cp="🍴">gaffel | kniv | kniv og gaffel | matlaging</annotation>
+ <annotation cp="🍴" type="tts">kniv og gaffel</annotation>
+ <annotation cp="🥄">bestikk | skje</annotation>
+ <annotation cp="🥄" type="tts">skje</annotation>
+ <annotation cp="🔪">kniv | kokkekniv | matlaging | våpen | verktøy</annotation>
+ <annotation cp="🔪" type="tts">kokkekniv</annotation>
+ <annotation cp="🏺">amfora | drikke | krukke | matlaging | stjernebilde | stjernetegn | vannmannen</annotation>
+ <annotation cp="🏺" type="tts">amfora</annotation>
+ <annotation cp="🌍">Afrika | Europa | jorden | jordklode med Europa og Afrika | verden</annotation>
+ <annotation cp="🌍" type="tts">jordklode med Europa og Afrika</annotation>
+ <annotation cp="🌎">Amerika | jorden | jordklode med Amerika | USA | verden</annotation>
+ <annotation cp="🌎" type="tts">jordklode med Amerika</annotation>
+ <annotation cp="🌏">Asia | Australia | jorden | jordklode med Asia og Australia | verden</annotation>
+ <annotation cp="🌏" type="tts">jordklode med Asia og Australia</annotation>
+ <annotation cp="🌐">jorden | jordklode med meridianer | lengde- og breddegrader | verden</annotation>
+ <annotation cp="🌐" type="tts">jordklode med meridianer</annotation>
+ <annotation cp="🗺">kart | verden | verdenskart</annotation>
+ <annotation cp="🗺" type="tts">verdenskart</annotation>
+ <annotation cp="🗾">Japan | kart | kart over Japan</annotation>
+ <annotation cp="🗾" type="tts">kart over Japan</annotation>
+ <annotation cp="🧭">kompass | magnetisk | navigasjon | orientering</annotation>
+ <annotation cp="🧭" type="tts">kompass</annotation>
+ <annotation cp="🏔">fjell | kaldt | snø | snødekt fjell</annotation>
+ <annotation cp="🏔" type="tts">snødekt fjell</annotation>
+ <annotation cp="⛰">berg | fjell</annotation>
+ <annotation cp="⛰" type="tts">fjell</annotation>
+ <annotation cp="🌋">utbrudd | vulkan | vulkanutbrudd</annotation>
+ <annotation cp="🌋" type="tts">vulkan</annotation>
+ <annotation cp="🗻">fjell | fuji | Fuji-fjellet</annotation>
+ <annotation cp="🗻" type="tts">Fuji-fjellet</annotation>
+ <annotation cp="🏕">camping | telttur</annotation>
+ <annotation cp="🏕" type="tts">telttur</annotation>
+ <annotation cp="🏖">parasoll | strand | strand med parasoll</annotation>
+ <annotation cp="🏖" type="tts">strand med parasoll</annotation>
+ <annotation cp="🏜">ørken</annotation>
+ <annotation cp="🏜" type="tts">ørken</annotation>
+ <annotation cp="🏝">øde | øy</annotation>
+ <annotation cp="🏝" type="tts">øde øy</annotation>
+ <annotation cp="🏞">nasjonalpark | park</annotation>
+ <annotation cp="🏞" type="tts">nasjonalpark</annotation>
+ <annotation cp="🏟">arena | stadion</annotation>
+ <annotation cp="🏟" type="tts">stadion</annotation>
+ <annotation cp="🏛">bygning | klassisk</annotation>
+ <annotation cp="🏛" type="tts">klassisk bygning</annotation>
+ <annotation cp="🏗">bygg | byggearbeid | bygging | bygning | bygning under konstruksjon</annotation>
+ <annotation cp="🏗" type="tts">bygning under konstruksjon</annotation>
+ <annotation cp="🧱">mørtel | murstein | sement | vegg</annotation>
+ <annotation cp="🧱" type="tts">murstein</annotation>
+ <annotation cp="🪨">blokk | stein | steinblokk | tung</annotation>
+ <annotation cp="🪨" type="tts">stein</annotation>
+ <annotation cp="🪵">stokk | tømmer | tre | trelast</annotation>
+ <annotation cp="🪵" type="tts">tre</annotation>
+ <annotation cp="🛖">bungalow | hus | hytte | jurt | jurte | rundhus</annotation>
+ <annotation cp="🛖" type="tts">hytte</annotation>
+ <annotation cp="🏘">boliger | bygning | hus</annotation>
+ <annotation cp="🏘" type="tts">boliger</annotation>
+ <annotation cp="🏚">bygning | falleferdig | forlatt | hus</annotation>
+ <annotation cp="🏚" type="tts">falleferdig hus</annotation>
+ <annotation cp="🏠">bygning | hjem | hus</annotation>
+ <annotation cp="🏠" type="tts">hus</annotation>
+ <annotation cp="🏡">bygning | hjem | hus | hus med hage</annotation>
+ <annotation cp="🏡" type="tts">hus med hage</annotation>
+ <annotation cp="🏢">bygning | kontor | kontorbygg</annotation>
+ <annotation cp="🏢" type="tts">kontorbygg</annotation>
+ <annotation cp="🏣">bygning | japansk | japansk postkontor | post</annotation>
+ <annotation cp="🏣" type="tts">japansk postkontor</annotation>
+ <annotation cp="🏤">bygning | europeisk | post | postkontor</annotation>
+ <annotation cp="🏤" type="tts">postkontor</annotation>
+ <annotation cp="🏥">lege | medisin | sykehus</annotation>
+ <annotation cp="🏥" type="tts">sykehus</annotation>
+ <annotation cp="🏦">bank | bygning</annotation>
+ <annotation cp="🏦" type="tts">bank</annotation>
+ <annotation cp="🏨">bygning | hotell</annotation>
+ <annotation cp="🏨" type="tts">hotell</annotation>
+ <annotation cp="🏩">bygning | hotell | kjærlighetshotell</annotation>
+ <annotation cp="🏩" type="tts">kjærlighetshotell</annotation>
+ <annotation cp="🏪">butikk | bygning | dagligvare | dagligvarebutikk | storkiosk</annotation>
+ <annotation cp="🏪" type="tts">dagligvarebutikk</annotation>
+ <annotation cp="🏫">bygning | skole | skolebygning</annotation>
+ <annotation cp="🏫" type="tts">skole</annotation>
+ <annotation cp="🏬">butikk | kjøpesenter | varehus</annotation>
+ <annotation cp="🏬" type="tts">kjøpesenter</annotation>
+ <annotation cp="🏭">bygning | fabrikk</annotation>
+ <annotation cp="🏭" type="tts">fabrikk</annotation>
+ <annotation cp="🏯">bygning | japansk | slott</annotation>
+ <annotation cp="🏯" type="tts">japansk slott</annotation>
+ <annotation cp="🏰">borg | bygning | europeisk slott | festning | slott</annotation>
+ <annotation cp="🏰" type="tts">slott</annotation>
+ <annotation cp="💒">bryllup | kapell | romantikk</annotation>
+ <annotation cp="💒" type="tts">bryllup</annotation>
+ <annotation cp="🗼">tårn | Tokyo | Tokyo-tårnet</annotation>
+ <annotation cp="🗼" type="tts">Tokyo-tårnet</annotation>
+ <annotation cp="🗽">frihet | Frihetsgudinnen | statue</annotation>
+ <annotation cp="🗽" type="tts">Frihetsgudinnen</annotation>
+ <annotation cp="⛪">bygning | kirke | kors | kristen | religion</annotation>
+ <annotation cp="⛪" type="tts">kirke</annotation>
+ <annotation cp="🕌">bygning | islam | moské | muslim | religion</annotation>
+ <annotation cp="🕌" type="tts">moské</annotation>
+ <annotation cp="🛕">hindu | hindutempel | tempel</annotation>
+ <annotation cp="🛕" type="tts">hindutempel</annotation>
+ <annotation cp="🕍">bygning | jøde | jødisk | religion | synagoge | tempel</annotation>
+ <annotation cp="🕍" type="tts">synagoge</annotation>
+ <annotation cp="⛩">alter | religion | shinto | Shinto-alter</annotation>
+ <annotation cp="⛩" type="tts">Shinto-alter</annotation>
+ <annotation cp="🕋">islam | Kaba | muslim | religion</annotation>
+ <annotation cp="🕋" type="tts">Kaba</annotation>
+ <annotation cp="⛲">fontene</annotation>
+ <annotation cp="⛲" type="tts">fontene</annotation>
+ <annotation cp="⛺">camping | telt | telttur</annotation>
+ <annotation cp="⛺" type="tts">telt</annotation>
+ <annotation cp="🌁">tåke | tåkete | vær</annotation>
+ <annotation cp="🌁" type="tts">tåkete</annotation>
+ <annotation cp="🌃">natt | stjernenatt | stjerner</annotation>
+ <annotation cp="🌃" type="tts">stjernenatt</annotation>
+ <annotation cp="🏙">by | bylandskap</annotation>
+ <annotation cp="🏙" type="tts">bylandskap</annotation>
+ <annotation cp="🌄">fjell | fjellsol | morgen | morgensol | sol | soloppgang over fjell</annotation>
+ <annotation cp="🌄" type="tts">soloppgang over fjell</annotation>
+ <annotation cp="🌅">morgen | morgensol | sol | soloppgang</annotation>
+ <annotation cp="🌅" type="tts">soloppgang</annotation>
+ <annotation cp="🌆">by | bygning | byhorisont | bylandskap i skumring | skumring | sol | solnedgang</annotation>
+ <annotation cp="🌆" type="tts">bylandskap i skumring</annotation>
+ <annotation cp="🌇">bygning | skumring | sol | solnedgang | solnedgang over byhorisont</annotation>
+ <annotation cp="🌇" type="tts">solnedgang</annotation>
+ <annotation cp="🌉">bro | bro om natten | natt</annotation>
+ <annotation cp="🌉" type="tts">bro om natten</annotation>
+ <annotation cp="♨">kilder | rykende | vame kilder | varm | varme kilder</annotation>
+ <annotation cp="♨" type="tts">varme kilder</annotation>
+ <annotation cp="🎠">fornøyelsespark | hest | karusell | karusellhest | tivoli</annotation>
+ <annotation cp="🎠" type="tts">karusellhest</annotation>
+ <annotation cp="🎡">fornøyelsespark | pariserhjul | tivoli</annotation>
+ <annotation cp="🎡" type="tts">pariserhjul</annotation>
+ <annotation cp="🎢">berg-og-dal-bane | fornøyelsespark | tivoli</annotation>
+ <annotation cp="🎢" type="tts">berg-og-dal-bane</annotation>
+ <annotation cp="💈">barberer | barberersøyle | barberskilt | frisør | frisørsalong</annotation>
+ <annotation cp="💈" type="tts">barberskilt</annotation>
+ <annotation cp="🎪">sirkus | sirkustelt | telt | underholdning</annotation>
+ <annotation cp="🎪" type="tts">sirkustelt</annotation>
+ <annotation cp="🚂">fremkomstmiddel | lokmotiv | lokomotiv | tog</annotation>
+ <annotation cp="🚂" type="tts">lokomotiv</annotation>
+ <annotation cp="🚃">elektrisk | fremkomstmiddel | tog | togvogn | trikk</annotation>
+ <annotation cp="🚃" type="tts">togvogn</annotation>
+ <annotation cp="🚄">fremkomstmiddel | høyhastighetstog | lyntog | tog</annotation>
+ <annotation cp="🚄" type="tts">høyhastighetstog</annotation>
+ <annotation cp="🚅">fremkomstmiddel | høyhastighetstog med kulenese | lyntog | shinkansen | tog</annotation>
+ <annotation cp="🚅" type="tts">høyhastighetstog med kulenese</annotation>
+ <annotation cp="🚆">fremkomstmiddel | jernbane | tog</annotation>
+ <annotation cp="🚆" type="tts">tog</annotation>
+ <annotation cp="🚇">fremkomstmiddel | metro | t-bane | tunnelbane | undergrunnsbane</annotation>
+ <annotation cp="🚇" type="tts">tunnelbane</annotation>
+ <annotation cp="🚈">fremkomstmiddel | jernbane | lokaltog</annotation>
+ <annotation cp="🚈" type="tts">lokaltog</annotation>
+ <annotation cp="🚉">jernbane | stasjon | tog | togstasjon</annotation>
+ <annotation cp="🚉" type="tts">togstasjon</annotation>
+ <annotation cp="🚊">fremkomstmiddel | trikk</annotation>
+ <annotation cp="🚊" type="tts">trikk</annotation>
+ <annotation cp="🚝">fremkomstmiddel | monorail</annotation>
+ <annotation cp="🚝" type="tts">monorail</annotation>
+ <annotation cp="🚞">bane | fjell | fjellbane | fremkomstmiddel</annotation>
+ <annotation cp="🚞" type="tts">fjellbane</annotation>
+ <annotation cp="🚋">fremkomstmiddel | trikk | trikkevogn | vogn</annotation>
+ <annotation cp="🚋" type="tts">trikkevogn</annotation>
+ <annotation cp="🚌">buss | fremkomstmiddel</annotation>
+ <annotation cp="🚌" type="tts">buss</annotation>
+ <annotation cp="🚍">buss | fremkomstmiddel | motgående</annotation>
+ <annotation cp="🚍" type="tts">motgående buss</annotation>
+ <annotation cp="🚎">buss | fremkomstmiddel | trolleybuss</annotation>
+ <annotation cp="🚎" type="tts">trolleybuss</annotation>
+ <annotation cp="🚐">buss | kjøretøy | minibuss | van</annotation>
+ <annotation cp="🚐" type="tts">minibuss</annotation>
+ <annotation cp="🚑">ambulanse | bil | kjøretøy</annotation>
+ <annotation cp="🚑" type="tts">ambulanse</annotation>
+ <annotation cp="🚒">bil | brannbil | kjøretøy</annotation>
+ <annotation cp="🚒" type="tts">brannbil</annotation>
+ <annotation cp="🚓">bil | kjøretøy | politibil</annotation>
+ <annotation cp="🚓" type="tts">politibil</annotation>
+ <annotation cp="🚔">bil | kjøretøy | motgående politibil</annotation>
+ <annotation cp="🚔" type="tts">motgående politibil</annotation>
+ <annotation cp="🚕">bil | kjøretøy | taxi</annotation>
+ <annotation cp="🚕" type="tts">taxi</annotation>
+ <annotation cp="🚖">bil | kjøretøy | motgående | taxi</annotation>
+ <annotation cp="🚖" type="tts">motgående taxi</annotation>
+ <annotation cp="🚗">bil | kjøretøy</annotation>
+ <annotation cp="🚗" type="tts">bil</annotation>
+ <annotation cp="🚘">bil | kjøretøy | motgående</annotation>
+ <annotation cp="🚘" type="tts">motgående bil</annotation>
+ <annotation cp="🚙">bil | kjøretøy | SUV</annotation>
+ <annotation cp="🚙" type="tts">SUV</annotation>
+ <annotation cp="🛻">lastebil | liten | pickup</annotation>
+ <annotation cp="🛻" type="tts">pickup</annotation>
+ <annotation cp="🚚">bil | kjøretøy | varebil</annotation>
+ <annotation cp="🚚" type="tts">varebil</annotation>
+ <annotation cp="🚛">bil | kjøretøy | lastebil | trailer | trekkvogn</annotation>
+ <annotation cp="🚛" type="tts">lastebil</annotation>
+ <annotation cp="🚜">kjøretøy | traktor</annotation>
+ <annotation cp="🚜" type="tts">traktor</annotation>
+ <annotation cp="🏎">bil | billøp | motorsport | racerbil</annotation>
+ <annotation cp="🏎" type="tts">racerbil</annotation>
+ <annotation cp="🏍">motorsport | motorsykkel | motorsyklist</annotation>
+ <annotation cp="🏍" type="tts">motorsykkel</annotation>
+ <annotation cp="🛵">motor | motorsykkel | scooter</annotation>
+ <annotation cp="🛵" type="tts">scooter</annotation>
+ <annotation cp="🦽">manuell rullestol | tilgjengelighet</annotation>
+ <annotation cp="🦽" type="tts">manuell rullestol</annotation>
+ <annotation cp="🦼">motorisert rullestol | tilgjengelighet</annotation>
+ <annotation cp="🦼" type="tts">motorisert rullestol</annotation>
+ <annotation cp="🛺">autorickshaw | mototaxi | trehjuling | tuk-tuk</annotation>
+ <annotation cp="🛺" type="tts">autorickshaw</annotation>
+ <annotation cp="🚲">kjøretøy | sykkel</annotation>
+ <annotation cp="🚲" type="tts">sykkel</annotation>
+ <annotation cp="🛴">spark | sparkesykkel | sykkel</annotation>
+ <annotation cp="🛴" type="tts">sparkesykkel</annotation>
+ <annotation cp="🛹">brett | rullebrett | skateboard</annotation>
+ <annotation cp="🛹" type="tts">skateboard</annotation>
+ <annotation cp="🛼">rulle | rulleskøyter | skøyter</annotation>
+ <annotation cp="🛼" type="tts">rulleskøyter</annotation>
+ <annotation cp="🚏">buss | busstopp | holdeplass</annotation>
+ <annotation cp="🚏" type="tts">busstopp</annotation>
+ <annotation cp="🛣">motorvei | vei</annotation>
+ <annotation cp="🛣" type="tts">motorvei</annotation>
+ <annotation cp="🛤">jernbane | jernbanespor | tog</annotation>
+ <annotation cp="🛤" type="tts">jernbanespor</annotation>
+ <annotation cp="🛢">fat | olje | oljefat | tønne</annotation>
+ <annotation cp="🛢" type="tts">oljefat</annotation>
+ <annotation cp="⛽">bensin | bensinpumpe | bensinstasjon | diesel | stasjon</annotation>
+ <annotation cp="⛽" type="tts">bensinpumpe</annotation>
+ <annotation cp="🚨">bil | kjøretøy | lys | politi | politilys | roterende | signal</annotation>
+ <annotation cp="🚨" type="tts">politilys</annotation>
+ <annotation cp="🚥">horisontale lys | horisontale trafikklys | trafikk</annotation>
+ <annotation cp="🚥" type="tts">horisontale trafikklys</annotation>
+ <annotation cp="🚦">trafikk | vertikale lys | vertikale trafiklys</annotation>
+ <annotation cp="🚦" type="tts">vertikale trafiklys</annotation>
+ <annotation cp="🛑">åttekantet | skilt | stopp | stoppskilt</annotation>
+ <annotation cp="🛑" type="tts">stoppskilt</annotation>
+ <annotation cp="🚧">anleggsarbeid | byggeplass | byggeskilt | skilt</annotation>
+ <annotation cp="🚧" type="tts">anleggsarbeid</annotation>
+ <annotation cp="⚓">anker | båt | skip | verktøy</annotation>
+ <annotation cp="⚓" type="tts">anker</annotation>
+ <annotation cp="⛵">båt | seilbåt</annotation>
+ <annotation cp="⛵" type="tts">seilbåt</annotation>
+ <annotation cp="🛶">båt | kano</annotation>
+ <annotation cp="🛶" type="tts">kano</annotation>
+ <annotation cp="🚤">båt | fartøy | speedbåt</annotation>
+ <annotation cp="🚤" type="tts">speedbåt</annotation>
+ <annotation cp="🛳">båt | fremkomstmiddel | passasjer | passasjerskip | skip</annotation>
+ <annotation cp="🛳" type="tts">passasjerskip</annotation>
+ <annotation cp="⛴">båt | ferge | passasjer</annotation>
+ <annotation cp="⛴" type="tts">ferge</annotation>
+ <annotation cp="🛥">båt | fremkomstmiddel | motorbåt</annotation>
+ <annotation cp="🛥" type="tts">motorbåt</annotation>
+ <annotation cp="🚢">båt | fartøy | fremkomstmiddel | skip</annotation>
+ <annotation cp="🚢" type="tts">skip</annotation>
+ <annotation cp="✈">fly | fremkomstmiddel</annotation>
+ <annotation cp="✈" type="tts">fly</annotation>
+ <annotation cp="🛩">fly | fremkomstmiddel | lite fly</annotation>
+ <annotation cp="🛩" type="tts">lite fly</annotation>
+ <annotation cp="🛫">avgang | avganger | fly | fly som tar av | flyavgang | fremkomstmiddel | innsjekk</annotation>
+ <annotation cp="🛫" type="tts">fly som tar av</annotation>
+ <annotation cp="🛬">ankomme | ankomst | ankomster | fly | fly som lander | fremkomstmiddel | lande | landing</annotation>
+ <annotation cp="🛬" type="tts">fly som lander</annotation>
+ <annotation cp="🪂">fallskjerm | fallskjermhopp | hangglider | hengeglider | paragliding</annotation>
+ <annotation cp="🪂" type="tts">fallskjerm</annotation>
+ <annotation cp="💺">sete | stol</annotation>
+ <annotation cp="💺" type="tts">sete</annotation>
+ <annotation cp="🚁">fremkomstmiddel | helikopter</annotation>
+ <annotation cp="🚁" type="tts">helikopter</annotation>
+ <annotation cp="🚟">fremkomstmiddel | svevebane</annotation>
+ <annotation cp="🚟" type="tts">svevebane</annotation>
+ <annotation cp="🚠">fremkomstmiddel | kabelbane</annotation>
+ <annotation cp="🚠" type="tts">kabelbane</annotation>
+ <annotation cp="🚡">fremkomstmiddel | gondolbane | taubane</annotation>
+ <annotation cp="🚡" type="tts">taubane</annotation>
+ <annotation cp="🛰">satellitt | verdensrommet</annotation>
+ <annotation cp="🛰" type="tts">satellitt</annotation>
+ <annotation cp="🚀">fremkomstmiddel | rakett | verdensrommet</annotation>
+ <annotation cp="🚀" type="tts">rakett</annotation>
+ <annotation cp="🛸">flygende tallerken | UFO</annotation>
+ <annotation cp="🛸" type="tts">flygende tallerken</annotation>
+ <annotation cp="🛎">hotell | klokke | pikkolo | resepsjonsklokke</annotation>
+ <annotation cp="🛎" type="tts">resepsjonsklokke</annotation>
+ <annotation cp="🧳">bagasje | pakking | reise</annotation>
+ <annotation cp="🧳" type="tts">bagasje</annotation>
+ <annotation cp="⌛">ferdig timeglass | sand | tidtaker</annotation>
+ <annotation cp="⌛" type="tts">ferdig timeglass</annotation>
+ <annotation cp="⏳">sand | startet timeglass | tidtaker</annotation>
+ <annotation cp="⏳" type="tts">startet timeglass</annotation>
+ <annotation cp="⌚">armbåndsur | ur</annotation>
+ <annotation cp="⌚" type="tts">armbåndsur</annotation>
+ <annotation cp="⏰">alarm | klokke | vekkerklokke</annotation>
+ <annotation cp="⏰" type="tts">vekkerklokke</annotation>
+ <annotation cp="⏱">klokke | stoppeklokke</annotation>
+ <annotation cp="⏱" type="tts">stoppeklokke</annotation>
+ <annotation cp="⏲">klokke | nedtelling | tidtaker</annotation>
+ <annotation cp="⏲" type="tts">tidtaker</annotation>
+ <annotation cp="🕰">klokke | peisur</annotation>
+ <annotation cp="🕰" type="tts">peisur</annotation>
+ <annotation cp="🕛">0:00 | 12:00 | 24:00 | klokka | klokken tolv | tolv</annotation>
+ <annotation cp="🕛" type="tts">klokken tolv</annotation>
+ <annotation cp="🕧">0:30 | 12:30 | halv ett | klokka | klokken | klokken halv ett</annotation>
+ <annotation cp="🕧" type="tts">klokken halv ett</annotation>
+ <annotation cp="🕐">1:00 | 13:00 | ett | klokka | klokken</annotation>
+ <annotation cp="🕐" type="tts">klokken ett</annotation>
+ <annotation cp="🕜">1:30 | 13:30 | halv to | klokka | klokken | klokken halv to</annotation>
+ <annotation cp="🕜" type="tts">klokken halv to</annotation>
+ <annotation cp="🕑">14:00 | 2:00 | klokka | klokken | to</annotation>
+ <annotation cp="🕑" type="tts">klokken to</annotation>
+ <annotation cp="🕝">14:30 | 2:30 | halv tre | klokka | klokken | klokken halv tre</annotation>
+ <annotation cp="🕝" type="tts">klokken halv tre</annotation>
+ <annotation cp="🕒">15:00 | 3:00 | klokka | klokken | tre</annotation>
+ <annotation cp="🕒" type="tts">klokken tre</annotation>
+ <annotation cp="🕞">15:30 | 3:30 | halv fire | klokka | klokken | klokken halv fire</annotation>
+ <annotation cp="🕞" type="tts">klokken halv fire</annotation>
+ <annotation cp="🕓">16:00 | 4:00 | fire | klokka | klokken</annotation>
+ <annotation cp="🕓" type="tts">klokken fire</annotation>
+ <annotation cp="🕟">16:30 | 4:30 | halv fem | klokka | klokken | klokken halv fem</annotation>
+ <annotation cp="🕟" type="tts">klokken halv fem</annotation>
+ <annotation cp="🕔">17:00 | 5:00 | fem | klokka | klokken</annotation>
+ <annotation cp="🕔" type="tts">klokken fem</annotation>
+ <annotation cp="🕠">17:30 | 5:30 | halv seks | klokka | klokken | klokken halv seks</annotation>
+ <annotation cp="🕠" type="tts">klokken halv seks</annotation>
+ <annotation cp="🕕">18:00 | 6:00 | klokka | klokken | seks</annotation>
+ <annotation cp="🕕" type="tts">klokken seks</annotation>
+ <annotation cp="🕡">18:30 | 6:30 | halv sju | halv syv | klokka | klokken | klokken halv sju</annotation>
+ <annotation cp="🕡" type="tts">klokken halv sju</annotation>
+ <annotation cp="🕖">19:00 | 7:00 | klokka | klokken | sju | syv</annotation>
+ <annotation cp="🕖" type="tts">klokken sju</annotation>
+ <annotation cp="🕢">19:30 | 7:30 | halv åtte | klokka | klokken | klokken halv åtte</annotation>
+ <annotation cp="🕢" type="tts">klokken halv åtte</annotation>
+ <annotation cp="🕗">20:00 | 8:00 | åtte | klokka | klokken</annotation>
+ <annotation cp="🕗" type="tts">klokken åtte</annotation>
+ <annotation cp="🕣">20:30 | 8:30 | halv ni | klokka | klokken | klokken halv ni</annotation>
+ <annotation cp="🕣" type="tts">klokken halv ni</annotation>
+ <annotation cp="🕘">21:00 | 9:00 | klokka | klokken | ni</annotation>
+ <annotation cp="🕘" type="tts">klokken ni</annotation>
+ <annotation cp="🕤">09:30 | 21:30 | halv ti | klokka | klokken | klokken halv ti</annotation>
+ <annotation cp="🕤" type="tts">klokken halv ti</annotation>
+ <annotation cp="🕙">10:00 | 22:00 | klokka | klokken | ti</annotation>
+ <annotation cp="🕙" type="tts">klokken ti</annotation>
+ <annotation cp="🕥">10:30 | 22:30 | halv elleve | klokka | klokken | klokken halv elleve</annotation>
+ <annotation cp="🕥" type="tts">klokken halv elleve</annotation>
+ <annotation cp="🕚">11:00 | 23:00 | elleve | klokka | klokken</annotation>
+ <annotation cp="🕚" type="tts">klokken elleve</annotation>
+ <annotation cp="🕦">11:30 | 23:30 | halv tolv | klokka | klokken | klokken halv tolv</annotation>
+ <annotation cp="🕦" type="tts">klokken halv tolv</annotation>
+ <annotation cp="🌑">måne | mørk | nymåne</annotation>
+ <annotation cp="🌑" type="tts">nymåne</annotation>
+ <annotation cp="🌒">måne | månefase | ny | voksende | voksende nymåne</annotation>
+ <annotation cp="🌒" type="tts">voksende nymåne</annotation>
+ <annotation cp="🌓">første kvarter | halvmåne | måne | månefase | ny | voksende halvmåne</annotation>
+ <annotation cp="🌓" type="tts">voksende halvmåne</annotation>
+ <annotation cp="🌔">måne | månefase | ny | voksende fullmåne</annotation>
+ <annotation cp="🌔" type="tts">voksende fullmåne</annotation>
+ <annotation cp="🌕">full | fullmåne | hel måne | måne</annotation>
+ <annotation cp="🌕" type="tts">fullmåne</annotation>
+ <annotation cp="🌖">avtakende fullmåne | måne | månefase | ne</annotation>
+ <annotation cp="🌖" type="tts">avtakende fullmåne</annotation>
+ <annotation cp="🌗">avtakende halvmåne | halvmåne | måne | månefase | ne | siste kvarter</annotation>
+ <annotation cp="🌗" type="tts">avtakende halvmåne</annotation>
+ <annotation cp="🌘">avtakende | avtakende nemåne | måne | månefase | ne</annotation>
+ <annotation cp="🌘" type="tts">avtakende nemåne</annotation>
+ <annotation cp="🌙">måne | månesigd</annotation>
+ <annotation cp="🌙" type="tts">månesigd</annotation>
+ <annotation cp="🌚">ansikt | måne | nymåne | nymåne med ansikt | nymåneansikt</annotation>
+ <annotation cp="🌚" type="tts">nymåneansikt</annotation>
+ <annotation cp="🌛">kvartmåne med ansikt | måneansikt | nymåne med ansikt</annotation>
+ <annotation cp="🌛" type="tts">nymåne med ansikt</annotation>
+ <annotation cp="🌜">kvartmåne med ansikt | måneansikt | nemåne med ansikt</annotation>
+ <annotation cp="🌜" type="tts">nemåne med ansikt</annotation>
+ <annotation cp="🌡">temperatur | termometer | vær</annotation>
+ <annotation cp="🌡" type="tts">termometer</annotation>
+ <annotation cp="☀">lys | lyst | sol | solfylt | stråler | vær | verdensrommet</annotation>
+ <annotation cp="☀" type="tts">sol</annotation>
+ <annotation cp="🌝">ansikt | fullmåne | fullmåne med ansikt | fullmåneansikt | måne | måne med ansikt</annotation>
+ <annotation cp="🌝" type="tts">fullmåneansikt</annotation>
+ <annotation cp="🌞">ansikt | lys | sol | solansikt</annotation>
+ <annotation cp="🌞" type="tts">solansikt</annotation>
+ <annotation cp="🪐">planet med ringer | saturn</annotation>
+ <annotation cp="🪐" type="tts">planet med ringer</annotation>
+ <annotation cp="⭐">stjerne</annotation>
+ <annotation cp="⭐" type="tts">stjerne</annotation>
+ <annotation cp="🌟">glitrende | lysende stjerne | skinnende | stjerne</annotation>
+ <annotation cp="🌟" type="tts">lysende stjerne</annotation>
+ <annotation cp="🌠">fallende stjerne | faller | stjerne | stjerneskudd</annotation>
+ <annotation cp="🌠" type="tts">stjerneskudd</annotation>
+ <annotation cp="🌌">galakse | melkeveien | verdensrommet</annotation>
+ <annotation cp="🌌" type="tts">melkeveien</annotation>
+ <annotation cp="☁">sky | vær</annotation>
+ <annotation cp="☁" type="tts">sky</annotation>
+ <annotation cp="⛅">sky | sol | sol bak sky | sol og sky</annotation>
+ <annotation cp="⛅" type="tts">sol bak sky</annotation>
+ <annotation cp="⛈">regn | sky | sky med lyn og regn | torden | vær</annotation>
+ <annotation cp="⛈" type="tts">sky med lyn og regn</annotation>
+ <annotation cp="🌤">sky | sol | sol bak liten sky | vær</annotation>
+ <annotation cp="🌤" type="tts">sol bak liten sky</annotation>
+ <annotation cp="🌥">sky | sol | sol bak stor sky | vær</annotation>
+ <annotation cp="🌥" type="tts">sol bak stor sky</annotation>
+ <annotation cp="🌦">regn | sky | sol | sol bak sky med regn | vær</annotation>
+ <annotation cp="🌦" type="tts">sol bak sky med regn</annotation>
+ <annotation cp="🌧">regn | sky | sky med regn | vær</annotation>
+ <annotation cp="🌧" type="tts">sky med regn</annotation>
+ <annotation cp="🌨">kaldt | sky | sky med snø | snø | vær</annotation>
+ <annotation cp="🌨" type="tts">sky med snø</annotation>
+ <annotation cp="🌩">lyn | sky | sky med lyn | vær</annotation>
+ <annotation cp="🌩" type="tts">sky med lyn</annotation>
+ <annotation cp="🌪">sky | tornado | vær</annotation>
+ <annotation cp="🌪" type="tts">tornado</annotation>
+ <annotation cp="🌫">sky | tåke | vær</annotation>
+ <annotation cp="🌫" type="tts">tåke</annotation>
+ <annotation cp="🌬">blåse | fjes | sky | vær | vind | vindansikt</annotation>
+ <annotation cp="🌬" type="tts">vindansikt</annotation>
+ <annotation cp="🌀">orkan | svimmel | syklon | tornado</annotation>
+ <annotation cp="🌀" type="tts">syklon</annotation>
+ <annotation cp="🌈">regn | regnbue | vær</annotation>
+ <annotation cp="🌈" type="tts">regnbue</annotation>
+ <annotation cp="🌂">lukket paraply | regn | regnvær</annotation>
+ <annotation cp="🌂" type="tts">lukket paraply</annotation>
+ <annotation cp="☂">klær | paraply | regn | vær</annotation>
+ <annotation cp="☂" type="tts">paraply</annotation>
+ <annotation cp="☔">dråpe | klær | paraply | paraply med regndråper | regn | vær</annotation>
+ <annotation cp="☔" type="tts">paraply med regndråper</annotation>
+ <annotation cp="⛱">paraply | parasoll på bakken | regn | sol | vær</annotation>
+ <annotation cp="⛱" type="tts">parasoll på bakken</annotation>
+ <annotation cp="⚡">fare | høy | høyspenning | høyspent | lyn | spenning</annotation>
+ <annotation cp="⚡" type="tts">høyspenning</annotation>
+ <annotation cp="❄">kaldt | snø | snøfnugg | vær</annotation>
+ <annotation cp="❄" type="tts">snøfnugg</annotation>
+ <annotation cp="☃">kaldt | snø | snømann | vær</annotation>
+ <annotation cp="☃" type="tts">snømann</annotation>
+ <annotation cp="⛄">snø | snømann uten snø</annotation>
+ <annotation cp="⛄" type="tts">snømann uten snø</annotation>
+ <annotation cp="☄">komet | verdensrommet</annotation>
+ <annotation cp="☄" type="tts">komet</annotation>
+ <annotation cp="🔥">flamme | ild</annotation>
+ <annotation cp="🔥" type="tts">ild</annotation>
+ <annotation cp="💧">dråpe | drypp | tegneserie | vann</annotation>
+ <annotation cp="💧" type="tts">dråpe</annotation>
+ <annotation cp="🌊">bølge | hav | vann</annotation>
+ <annotation cp="🌊" type="tts">bølge</annotation>
+ <annotation cp="🎃">gresskar | gresskarlykt | Halloween | halloweenlykt</annotation>
+ <annotation cp="🎃" type="tts">gresskarlykt</annotation>
+ <annotation cp="🎄">høytid | jul | julefeiring | juletre | tre</annotation>
+ <annotation cp="🎄" type="tts">juletre</annotation>
+ <annotation cp="🎆">feiring | fyrverkeri | nyttår</annotation>
+ <annotation cp="🎆" type="tts">fyrverkeri</annotation>
+ <annotation cp="🎇">feiring | fyrverkeri | nyttår | stjerneskudd på pinne</annotation>
+ <annotation cp="🎇" type="tts">stjerneskudd på pinne</annotation>
+ <annotation cp="🧨">dynamitt | eksplosiver | fyrverkeri | kinaputt</annotation>
+ <annotation cp="🧨" type="tts">kinaputt</annotation>
+ <annotation cp="✨">* | glitrende | skinnende | stjerner</annotation>
+ <annotation cp="✨" type="tts">stjerner</annotation>
+ <annotation cp="🎈">ballong | feiring</annotation>
+ <annotation cp="🎈" type="tts">ballong</annotation>
+ <annotation cp="🎉">feiring | fest | serpentin | smell-bon-bon</annotation>
+ <annotation cp="🎉" type="tts">smell-bon-bon</annotation>
+ <annotation cp="🎊">feiring | fest | konfettiball | konfettikule</annotation>
+ <annotation cp="🎊" type="tts">konfettiball</annotation>
+ <annotation cp="🎋">feiring | papirremser | stjernefestival | tanabata | tanabatatre | tre</annotation>
+ <annotation cp="🎋" type="tts">tanabatatre</annotation>
+ <annotation cp="🎍">feiring | furudekorasjon | japansk høytid | nyttår</annotation>
+ <annotation cp="🎍" type="tts">furudekorasjon</annotation>
+ <annotation cp="🎎">festival | japansk høytid | japanske dukker</annotation>
+ <annotation cp="🎎" type="tts">japanske dukker</annotation>
+ <annotation cp="🎏">feiring | japansk høytid | karpe | koinobori | papirfisk</annotation>
+ <annotation cp="🎏" type="tts">koinobori</annotation>
+ <annotation cp="🎐">bjelle | drømmefanger | feiring | vind | vindspill</annotation>
+ <annotation cp="🎐" type="tts">vindspill</annotation>
+ <annotation cp="🎑">feiring | høytid | måne | månebeskuelsesseremoni | månefeiring | måneseremoni</annotation>
+ <annotation cp="🎑" type="tts">månebeskuelsesseremoni</annotation>
+ <annotation cp="🧧">flaks | gave | hell og lykke | hong bao | lai see | penger | rød konvolutt</annotation>
+ <annotation cp="🧧" type="tts">rød konvolutt</annotation>
+ <annotation cp="🎀">bånd | gavebånd | sløyfe</annotation>
+ <annotation cp="🎀" type="tts">sløyfe</annotation>
+ <annotation cp="🎁">bursdag | feiring | gave | innpakket | julegave | presang</annotation>
+ <annotation cp="🎁" type="tts">gave</annotation>
+ <annotation cp="🎗">bånd | feiring | minne | minnesløyfe | påminnelse</annotation>
+ <annotation cp="🎗" type="tts">minnesløyfe</annotation>
+ <annotation cp="🎟">adgang | billett | inngang | inngangsbilletter</annotation>
+ <annotation cp="🎟" type="tts">inngangsbilletter</annotation>
+ <annotation cp="🎫">adgang | billett | inngang | underholdning</annotation>
+ <annotation cp="🎫" type="tts">billett</annotation>
+ <annotation cp="🎖">feiring | medalje | militæret | militærmedalje</annotation>
+ <annotation cp="🎖" type="tts">militærmedalje</annotation>
+ <annotation cp="🏆">premie | trofé</annotation>
+ <annotation cp="🏆" type="tts">trofé</annotation>
+ <annotation cp="🏅">idrettsmedalje | medalje</annotation>
+ <annotation cp="🏅" type="tts">idrettsmedalje</annotation>
+ <annotation cp="🥇">førsteplass | gull | gullmedalje | medalje</annotation>
+ <annotation cp="🥇" type="tts">gullmedalje</annotation>
+ <annotation cp="🥈">andreplass | medalje | sølv | sølvmedalje</annotation>
+ <annotation cp="🥈" type="tts">sølvmedalje</annotation>
+ <annotation cp="🥉">bronse | bronsemedalje | medalje | tredjeplass</annotation>
+ <annotation cp="🥉" type="tts">bronsemedalje</annotation>
+ <annotation cp="⚽">ball | fotball</annotation>
+ <annotation cp="⚽" type="tts">fotball</annotation>
+ <annotation cp="⚾">ball | baseball | sydd</annotation>
+ <annotation cp="⚾" type="tts">baseball</annotation>
+ <annotation cp="🥎">ball | hanske | softball | underarm</annotation>
+ <annotation cp="🥎" type="tts">softball</annotation>
+ <annotation cp="🏀">ball | basketball | kurv | sport</annotation>
+ <annotation cp="🏀" type="tts">basketball</annotation>
+ <annotation cp="🏐">ball | kamp | spill | volleyball</annotation>
+ <annotation cp="🏐" type="tts">volleyball</annotation>
+ <annotation cp="🏈">amerikansk | amerikansk fotball | ball | sport</annotation>
+ <annotation cp="🏈" type="tts">amerikansk fotball</annotation>
+ <annotation cp="🏉">rugby | rugbyball | sport</annotation>
+ <annotation cp="🏉" type="tts">rugby</annotation>
+ <annotation cp="🎾">ball | racket | sport | tenninsball | tennis</annotation>
+ <annotation cp="🎾" type="tts">tennis</annotation>
+ <annotation cp="🥏">frisbee | ultimate</annotation>
+ <annotation cp="🥏" type="tts">frisbee</annotation>
+ <annotation cp="🎳">bowling | bowlingkule | kule | spill</annotation>
+ <annotation cp="🎳" type="tts">bowling</annotation>
+ <annotation cp="🏏">ball | balltre | cricket | kamp</annotation>
+ <annotation cp="🏏" type="tts">cricket</annotation>
+ <annotation cp="🏑">ball | hockey | kamp | kølle | land | landhockey</annotation>
+ <annotation cp="🏑" type="tts">landhockey</annotation>
+ <annotation cp="🏒">hockey | is | ishockey | kamp | kølle | puck</annotation>
+ <annotation cp="🏒" type="tts">ishockey</annotation>
+ <annotation cp="🥍">ball | kølle | lacrosse | mål</annotation>
+ <annotation cp="🥍" type="tts">lacrosse</annotation>
+ <annotation cp="🏓">ball | balltre | bord | bordtennis | kamp | racket | tennis</annotation>
+ <annotation cp="🏓" type="tts">bordtennis</annotation>
+ <annotation cp="🏸">badminton | birdie | fjærball | kamp | racket</annotation>
+ <annotation cp="🏸" type="tts">badminton</annotation>
+ <annotation cp="🥊">bokse | boksehanske | boksing | hanske | sport</annotation>
+ <annotation cp="🥊" type="tts">boksehanske</annotation>
+ <annotation cp="🥋">drakt | judo | kampkunst | kampsport | kampsportdrakt | karate | selvforsvar | taekwondo</annotation>
+ <annotation cp="🥋" type="tts">kampsportdrakt</annotation>
+ <annotation cp="🥅">mål | målnett | nett | sport</annotation>
+ <annotation cp="🥅" type="tts">målnett</annotation>
+ <annotation cp="⛳">golf | golfflagg | golfhull | hull</annotation>
+ <annotation cp="⛳" type="tts">golfflagg</annotation>
+ <annotation cp="⛸">is | skøyte | skøyter</annotation>
+ <annotation cp="⛸" type="tts">skøyter</annotation>
+ <annotation cp="🎣">fisk | fiskestang | fisking | fritid | natur</annotation>
+ <annotation cp="🎣" type="tts">fiskestang</annotation>
+ <annotation cp="🤿">dykker | dykkermaske | dykking | froskemann | snorkling</annotation>
+ <annotation cp="🤿" type="tts">dykkermaske</annotation>
+ <annotation cp="🎽">singlet | sport | t-skjorte | treningstopp | treningstrøye</annotation>
+ <annotation cp="🎽" type="tts">treningstrøye</annotation>
+ <annotation cp="🎿">ski | ski og staver | snø | staver | vintersport</annotation>
+ <annotation cp="🎿" type="tts">ski</annotation>
+ <annotation cp="🛷">kjelke | slede</annotation>
+ <annotation cp="🛷" type="tts">kjelke</annotation>
+ <annotation cp="🥌">curlingstein | sport | stein</annotation>
+ <annotation cp="🥌" type="tts">curlingstein</annotation>
+ <annotation cp="🎯">blink | dart | mål | midt i blinken | pilspill | treff</annotation>
+ <annotation cp="🎯" type="tts">blink</annotation>
+ <annotation cp="🪀">jojo | leke | opp og ned</annotation>
+ <annotation cp="🪀" type="tts">jojo</annotation>
+ <annotation cp="🪁">fly | papirdrage | sveve</annotation>
+ <annotation cp="🪁" type="tts">papirdrage</annotation>
+ <annotation cp="🎱">8 | åtte | åtterkule | biljard | spill</annotation>
+ <annotation cp="🎱" type="tts">biljard</annotation>
+ <annotation cp="🔮">krystallkule | spådom | spådommer</annotation>
+ <annotation cp="🔮" type="tts">krystallkule</annotation>
+ <annotation cp="🪄">heks | magi | trollmann | trylle | tryllestav</annotation>
+ <annotation cp="🪄" type="tts">tryllestav</annotation>
+ <annotation cp="🧿">amulett | charm | nazar | ondt øye | talisman</annotation>
+ <annotation cp="🧿" type="tts">nazar</annotation>
+ <annotation cp="🎮">konsoll | kontroller | spill | spillkonsoll | spillkontroller | TV-spill | videospill</annotation>
+ <annotation cp="🎮" type="tts">videospill</annotation>
+ <annotation cp="🕹">joystick | spill | styrespak | styrespake | videospill</annotation>
+ <annotation cp="🕹" type="tts">joystick</annotation>
+ <annotation cp="🎰">spill | spilleautomat</annotation>
+ <annotation cp="🎰" type="tts">spilleautomat</annotation>
+ <annotation cp="🎲">spill | terning | terningkast | terningspill</annotation>
+ <annotation cp="🎲" type="tts">terning</annotation>
+ <annotation cp="🧩">bit | brikke | del | pekepinn | puslespill | puslespillbrikke</annotation>
+ <annotation cp="🧩" type="tts">puslespillbrikke</annotation>
+ <annotation cp="🧸">bamse | leke | teddybjørn</annotation>
+ <annotation cp="🧸" type="tts">teddybjørn</annotation>
+ <annotation cp="🪅">feiring | fest | piñata</annotation>
+ <annotation cp="🪅" type="tts">piñata</annotation>
+ <annotation cp="🪆">dukke | hul | matrjosjka | matruska | russisk | russland</annotation>
+ <annotation cp="🪆" type="tts">matrjosjka</annotation>
+ <annotation cp="♠">farge | kort | spar | spill</annotation>
+ <annotation cp="♠" type="tts">spar</annotation>
+ <annotation cp="♥">farge | hjerter | kort | spill</annotation>
+ <annotation cp="♥" type="tts">hjerter</annotation>
+ <annotation cp="♦">diamant | farge | kort | ruter | spill</annotation>
+ <annotation cp="♦" type="tts">ruter</annotation>
+ <annotation cp="♣">farge | kløver | kort | spill</annotation>
+ <annotation cp="♣" type="tts">kløver</annotation>
+ <annotation cp="♟">bonde | brikke | sjakk</annotation>
+ <annotation cp="♟" type="tts">bonde</annotation>
+ <annotation cp="🃏">joker | jokerkort | kort | spillkort</annotation>
+ <annotation cp="🃏" type="tts">joker</annotation>
+ <annotation cp="🀄">mahjong | mahjongbrikke med rød drage | rød | spill</annotation>
+ <annotation cp="🀄" type="tts">mahjongbrikke med rød drage</annotation>
+ <annotation cp="🎴">kort | kortspill | spillkort</annotation>
+ <annotation cp="🎴" type="tts">spillkort</annotation>
+ <annotation cp="🎭">kunst | scenekunst | teater | teatermasker | underholdning</annotation>
+ <annotation cp="🎭" type="tts">teatermasker</annotation>
+ <annotation cp="🖼">bilde | innrammet bilde | kunst | maleri | museum | ramme</annotation>
+ <annotation cp="🖼" type="tts">innrammet bilde</annotation>
+ <annotation cp="🎨">kunst | malerpalett | maling</annotation>
+ <annotation cp="🎨" type="tts">malerpalett</annotation>
+ <annotation cp="🧵">nål | snelle | sy | tråd | trådsnelle</annotation>
+ <annotation cp="🧵" type="tts">tråd</annotation>
+ <annotation cp="🪡">broderi | nål | skredder | sting | sutur | sy | synål</annotation>
+ <annotation cp="🪡" type="tts">synål</annotation>
+ <annotation cp="🧶">ball | garn | nøste</annotation>
+ <annotation cp="🧶" type="tts">garn</annotation>
+ <annotation cp="🪢">knop | knute | knyte | rep | sammenflettet | tau | tvinne</annotation>
+ <annotation cp="🪢" type="tts">knute</annotation>
+ <annotation cp="👓">briller | klær | lesebriller</annotation>
+ <annotation cp="👓" type="tts">briller</annotation>
+ <annotation cp="🕶">briller | mørkt | øye | solbriller</annotation>
+ <annotation cp="🕶" type="tts">solbriller</annotation>
+ <annotation cp="🥽">beskyttelsesbriller | øyevern | sveising | svømming</annotation>
+ <annotation cp="🥽" type="tts">beskyttelsesbriller</annotation>
+ <annotation cp="🥼">doktor | eksperiment | forsker | labfrakk | lege</annotation>
+ <annotation cp="🥼" type="tts">labfrakk</annotation>
+ <annotation cp="🦺">nødssituasjon | refleks | refleksvest | sikkerhet | vest</annotation>
+ <annotation cp="🦺" type="tts">refleksvest</annotation>
+ <annotation cp="👔">klær | slips</annotation>
+ <annotation cp="👔" type="tts">slips</annotation>
+ <annotation cp="👕">klær | skjorte | t-skjorte</annotation>
+ <annotation cp="👕" type="tts">t-skjorte</annotation>
+ <annotation cp="👖">bukser | jeans | klær</annotation>
+ <annotation cp="👖" type="tts">bukser</annotation>
+ <annotation cp="🧣">hals | klær | skjerf</annotation>
+ <annotation cp="🧣" type="tts">skjerf</annotation>
+ <annotation cp="🧤">hånd | hansker | klær</annotation>
+ <annotation cp="🧤" type="tts">hansker</annotation>
+ <annotation cp="🧥">frakk | jakke | kåpe | klær</annotation>
+ <annotation cp="🧥" type="tts">jakke</annotation>
+ <annotation cp="🧦">klær | labber | sokker | strømper</annotation>
+ <annotation cp="🧦" type="tts">sokker</annotation>
+ <annotation cp="👗">kjole | klær</annotation>
+ <annotation cp="👗" type="tts">kjole</annotation>
+ <annotation cp="👘">kimono | kjole | klær</annotation>
+ <annotation cp="👘" type="tts">kimono</annotation>
+ <annotation cp="🥻">kjole | klær | sari</annotation>
+ <annotation cp="🥻" type="tts">sari</annotation>
+ <annotation cp="🩱">badedrakt | badetøy</annotation>
+ <annotation cp="🩱" type="tts">badedrakt</annotation>
+ <annotation cp="🩲">badebukse | badetøy | bikinitruse | truse | undertøy</annotation>
+ <annotation cp="🩲" type="tts">truse</annotation>
+ <annotation cp="🩳">badeshorts | badetøy | bukse | shorts | underbukse | undertøy</annotation>
+ <annotation cp="🩳" type="tts">shorts</annotation>
+ <annotation cp="👙">badedrakt | badetøy | bikini | klær</annotation>
+ <annotation cp="👙" type="tts">bikini</annotation>
+ <annotation cp="👚">dameklær | klær</annotation>
+ <annotation cp="👚" type="tts">dameklær</annotation>
+ <annotation cp="👛">klær | portemoné | pung</annotation>
+ <annotation cp="👛" type="tts">portemoné</annotation>
+ <annotation cp="👜">håndveske | klær | veske</annotation>
+ <annotation cp="👜" type="tts">håndveske</annotation>
+ <annotation cp="👝">clutch-veske | klær | liten veske</annotation>
+ <annotation cp="👝" type="tts">clutch-veske</annotation>
+ <annotation cp="🛍">handleposer | hotell | pose | shopping</annotation>
+ <annotation cp="🛍" type="tts">handleposer</annotation>
+ <annotation cp="🎒">ransel | ryggsekk | skolesekk</annotation>
+ <annotation cp="🎒" type="tts">skolesekk</annotation>
+ <annotation cp="🩴">flipflops | flippflopp | flippflopper | havaianas | sandaler | strandsandaler | zoori</annotation>
+ <annotation cp="🩴" type="tts">flippflopp</annotation>
+ <annotation cp="👞">herresko | klær | sko</annotation>
+ <annotation cp="👞" type="tts">herresko</annotation>
+ <annotation cp="👟">fritidssko | joggesko | klær | sko | tennissko</annotation>
+ <annotation cp="👟" type="tts">joggesko</annotation>
+ <annotation cp="🥾">fjelltur | gåtur | støvel | telttur | tur | turstøvel</annotation>
+ <annotation cp="🥾" type="tts">turstøvel</annotation>
+ <annotation cp="🥿">flate sko | pumps | uten hæl</annotation>
+ <annotation cp="🥿" type="tts">pumps</annotation>
+ <annotation cp="👠">høyhælt sko | klær | sko</annotation>
+ <annotation cp="👠" type="tts">høyhælt sko</annotation>
+ <annotation cp="👡">dame | damesandal | klær | sandal | sko</annotation>
+ <annotation cp="👡" type="tts">damesandal</annotation>
+ <annotation cp="🩰">ballett | ballettsko | dans</annotation>
+ <annotation cp="🩰" type="tts">ballettsko</annotation>
+ <annotation cp="👢">dame | damestøvlett | klær | sko | støvlett</annotation>
+ <annotation cp="👢" type="tts">damestøvlett</annotation>
+ <annotation cp="👑">dronning | klær | konge | krone</annotation>
+ <annotation cp="👑" type="tts">krone</annotation>
+ <annotation cp="👒">damehatt | hatt | klær</annotation>
+ <annotation cp="👒" type="tts">damehatt</annotation>
+ <annotation cp="🎩">flosshatt | hatt | klær</annotation>
+ <annotation cp="🎩" type="tts">flosshatt</annotation>
+ <annotation cp="🎓">feiring | hatt | klær | studentlue | uteksaminering</annotation>
+ <annotation cp="🎓" type="tts">studentlue</annotation>
+ <annotation cp="🧢">caps | kaps | skyggelue</annotation>
+ <annotation cp="🧢" type="tts">caps</annotation>
+ <annotation cp="🪖">hær | hjelm | kriger | militær | militærhjelm | soldat</annotation>
+ <annotation cp="🪖" type="tts">militærhjelm</annotation>
+ <annotation cp="⛑">fjes | hatt | hjelm | hjelm med hvitt kors | hjelp | kors</annotation>
+ <annotation cp="⛑" type="tts">hjelm med hvitt kors</annotation>
+ <annotation cp="📿">bønn | bønnekrans | halssmykke | klær | perler | religion</annotation>
+ <annotation cp="📿" type="tts">bønnekrans</annotation>
+ <annotation cp="💄">kosmetikk | leppestift | sminke</annotation>
+ <annotation cp="💄" type="tts">leppestift</annotation>
+ <annotation cp="💍">diamant | ring | romantikk</annotation>
+ <annotation cp="💍" type="tts">ring</annotation>
+ <annotation cp="💎">diamant | edelsten | romantikk | smykkestein</annotation>
+ <annotation cp="💎" type="tts">diamant</annotation>
+ <annotation cp="🔇">dempet | dempet høyttaler | høyttaler med strek over | ingen prating | stille</annotation>
+ <annotation cp="🔇" type="tts">dempet høyttaler</annotation>
+ <annotation cp="🔈">høyttaler med lavt volum | lav | lyd | ropert</annotation>
+ <annotation cp="🔈" type="tts">høyttaler med lavt volum</annotation>
+ <annotation cp="🔉">høyttaler med middels volum | lyd | middels | ropert</annotation>
+ <annotation cp="🔉" type="tts">høyttaler med middels volum</annotation>
+ <annotation cp="🔊">høy | høyttaler med høyt volum | lyd | ropert</annotation>
+ <annotation cp="🔊" type="tts">høyttaler med høyt volum</annotation>
+ <annotation cp="📢">høy | høyttaler | kommunikasjon | megafon | ropert</annotation>
+ <annotation cp="📢" type="tts">høyttaler</annotation>
+ <annotation cp="📣">heiing | kommunikasjon | megafon | ropert</annotation>
+ <annotation cp="📣" type="tts">megafon</annotation>
+ <annotation cp="📯">horn | post | posthorn</annotation>
+ <annotation cp="📯" type="tts">posthorn</annotation>
+ <annotation cp="🔔">bjelle | klokke | ringing</annotation>
+ <annotation cp="🔔" type="tts">bjelle</annotation>
+ <annotation cp="🔕">bjelle med strek over | ingen lyd | klokke | lydløs | overstreket bjelle | stille</annotation>
+ <annotation cp="🔕" type="tts">overstreket bjelle</annotation>
+ <annotation cp="🎼">g-nøkkel | musikk | notetegn</annotation>
+ <annotation cp="🎼" type="tts">musikk</annotation>
+ <annotation cp="🎵">musikk | musikknote | note</annotation>
+ <annotation cp="🎵" type="tts">note</annotation>
+ <annotation cp="🎶">musikk | musikknoter | noter</annotation>
+ <annotation cp="🎶" type="tts">noter</annotation>
+ <annotation cp="🎙">mik | mikrofon | musikk | studio | studiomikrofon</annotation>
+ <annotation cp="🎙" type="tts">studiomikrofon</annotation>
+ <annotation cp="🎚">glidebryter | musikk | nivå | skyveknapp</annotation>
+ <annotation cp="🎚" type="tts">glidebryter</annotation>
+ <annotation cp="🎛">brytere | knotter | kontroll | kontrollbrytere | musikk</annotation>
+ <annotation cp="🎛" type="tts">kontrollbrytere</annotation>
+ <annotation cp="🎤">karaoke | mik | mikrofon | musikk | underholdning</annotation>
+ <annotation cp="🎤" type="tts">mikrofon</annotation>
+ <annotation cp="🎧">headset | hodetelefoner | øretelefoner | underholdning</annotation>
+ <annotation cp="🎧" type="tts">hodetelefoner</annotation>
+ <annotation cp="📻">radio | radiosignaler | teknologi</annotation>
+ <annotation cp="📻" type="tts">radio</annotation>
+ <annotation cp="🎷">instrument | musikk | musikkinstrument | saksofon | sax</annotation>
+ <annotation cp="🎷" type="tts">saksofon</annotation>
+ <annotation cp="🪗">accordeon | concertina | trekkspill</annotation>
+ <annotation cp="🪗" type="tts">trekkspill</annotation>
+ <annotation cp="🎸">gitar | instrument | musikk | musikkinstrument</annotation>
+ <annotation cp="🎸" type="tts">gitar</annotation>
+ <annotation cp="🎹">instrument | keyboard | musikk | musikkinstrument | piano | tangenter</annotation>
+ <annotation cp="🎹" type="tts">piano</annotation>
+ <annotation cp="🎺">instrument | musikk | musikkinstrument | trompet</annotation>
+ <annotation cp="🎺" type="tts">trompet</annotation>
+ <annotation cp="🎻">fele | fiolin | instrument | musikk | musikkinstrument</annotation>
+ <annotation cp="🎻" type="tts">fiolin</annotation>
+ <annotation cp="🪕">banjo | musikk | strenginstrument</annotation>
+ <annotation cp="🪕" type="tts">banjo</annotation>
+ <annotation cp="🥁">musikk | tromme | trommestikker</annotation>
+ <annotation cp="🥁" type="tts">tromme</annotation>
+ <annotation cp="🪘">beat | conga | langtromme | rytme | tromme</annotation>
+ <annotation cp="🪘" type="tts">langtromme</annotation>
+ <annotation cp="📱">mobil | mobiltelefon | telefon</annotation>
+ <annotation cp="📱" type="tts">mobiltelefon</annotation>
+ <annotation cp="📲">anrop | mobiltelefon | mobiltelefon med pil | pil | ring | telefon</annotation>
+ <annotation cp="📲" type="tts">mobiltelefon med pil</annotation>
+ <annotation cp="☎">fasttelefon | ringe | telefon</annotation>
+ <annotation cp="☎" type="tts">telefon</annotation>
+ <annotation cp="📞">kommunikasjon | telefon | telefonrør</annotation>
+ <annotation cp="📞" type="tts">telefonrør</annotation>
+ <annotation cp="📟">kommunikasjon | personsøker | telefon</annotation>
+ <annotation cp="📟" type="tts">personsøker</annotation>
+ <annotation cp="📠">faksmaskin | kommunikasjon | telefon</annotation>
+ <annotation cp="📠" type="tts">faksmaskin</annotation>
+ <annotation cp="🔋">batteri | energilagring | strøm</annotation>
+ <annotation cp="🔋" type="tts">batteri</annotation>
+ <annotation cp="🔌">elektrisitet | elektrisk | plugg | støpsel</annotation>
+ <annotation cp="🔌" type="tts">støpsel</annotation>
+ <annotation cp="💻">bærbar datamaskin | datamaskin | maskin | PC</annotation>
+ <annotation cp="💻" type="tts">bærbar datamaskin</annotation>
+ <annotation cp="🖥">datamaskin | PC | stasjonær</annotation>
+ <annotation cp="🖥" type="tts">stasjonær datamaskin</annotation>
+ <annotation cp="🖨">datamaskin | printer | skriver</annotation>
+ <annotation cp="🖨" type="tts">skriver</annotation>
+ <annotation cp="⌨">datamaskin | tastatur</annotation>
+ <annotation cp="⌨" type="tts">tastatur</annotation>
+ <annotation cp="🖱">datamaskin | datamus | knapp | mus</annotation>
+ <annotation cp="🖱" type="tts">datamus</annotation>
+ <annotation cp="🖲">datamaskin | styrekule</annotation>
+ <annotation cp="🖲" type="tts">styrekule</annotation>
+ <annotation cp="💽">datadisk | disk | lagring | MD | minidisk | optisk</annotation>
+ <annotation cp="💽" type="tts">datadisk</annotation>
+ <annotation cp="💾">datamaskin | disk | diskett | lagring</annotation>
+ <annotation cp="💾" type="tts">diskett</annotation>
+ <annotation cp="💿">blu-ray | CD | disk | DVD | lagring | optisk plate</annotation>
+ <annotation cp="💿" type="tts">optisk plate</annotation>
+ <annotation cp="📀">disk | DVD | DVD-plate | lagring | optisk | plate</annotation>
+ <annotation cp="📀" type="tts">DVD</annotation>
+ <annotation cp="🧮">abakus | kuleramme | regning</annotation>
+ <annotation cp="🧮" type="tts">kuleramme</annotation>
+ <annotation cp="🎥">film | filmkamera | kamera | kino | underholdning</annotation>
+ <annotation cp="🎥" type="tts">filmkamera</annotation>
+ <annotation cp="🎞">bilder | film | filmruter | kino | ruter</annotation>
+ <annotation cp="🎞" type="tts">filmruter</annotation>
+ <annotation cp="📽">film | filmframviser | filmfremviser | kino | projektor | video</annotation>
+ <annotation cp="📽" type="tts">filmfremviser</annotation>
+ <annotation cp="🎬">action | film | filming | filmklapper | klapper | underholdning</annotation>
+ <annotation cp="🎬" type="tts">filmklapper</annotation>
+ <annotation cp="📺">fjernsyn | TV | video</annotation>
+ <annotation cp="📺" type="tts">TV</annotation>
+ <annotation cp="📷">foto | kamera | kamerateknikk | video</annotation>
+ <annotation cp="📷" type="tts">kamera</annotation>
+ <annotation cp="📸">blits | foto | kamera | kamera med blits | video</annotation>
+ <annotation cp="📸" type="tts">kamera med blits</annotation>
+ <annotation cp="📹">kamera | video | videokamera</annotation>
+ <annotation cp="📹" type="tts">videokamera</annotation>
+ <annotation cp="📼">kassett | opptak | vhs | video | videokassett</annotation>
+ <annotation cp="📼" type="tts">videokassett</annotation>
+ <annotation cp="🔍">forstørrelse | forstørrelsesglass mot venstre | glass | lupe | søk</annotation>
+ <annotation cp="🔍" type="tts">forstørrelsesglass mot venstre</annotation>
+ <annotation cp="🔎">forstørrelse | forstørrelsesglass mot høyre | glass | lupe | søk</annotation>
+ <annotation cp="🔎" type="tts">forstørrelsesglass mot høyre</annotation>
+ <annotation cp="🕯">lys | stearin | stearinlys</annotation>
+ <annotation cp="🕯" type="tts">stearinlys</annotation>
+ <annotation cp="💡">elektrisitet | idé | lys | lyspære | pære | tegneserie</annotation>
+ <annotation cp="💡" type="tts">lyspære</annotation>
+ <annotation cp="🔦">elektrisk | lommelykt | lykt | lys</annotation>
+ <annotation cp="🔦" type="tts">lommelykt</annotation>
+ <annotation cp="🏮">bar | izakaya | lampe | lanterne | lykt | rød | rød papirlykt</annotation>
+ <annotation cp="🏮" type="tts">rød papirlykt</annotation>
+ <annotation cp="🪔">åpen oljelampe | diya | lampe | olje</annotation>
+ <annotation cp="🪔" type="tts">åpen oljelampe</annotation>
+ <annotation cp="📔">dekorert notatbok | notatbok | omslag</annotation>
+ <annotation cp="📔" type="tts">dekorert notatbok</annotation>
+ <annotation cp="📕">bok | lukket</annotation>
+ <annotation cp="📕" type="tts">lukket bok</annotation>
+ <annotation cp="📖">åpen | bok</annotation>
+ <annotation cp="📖" type="tts">åpen bok</annotation>
+ <annotation cp="📗">bok | grønn</annotation>
+ <annotation cp="📗" type="tts">grønn bok</annotation>
+ <annotation cp="📘">blå | bok</annotation>
+ <annotation cp="📘" type="tts">blå bok</annotation>
+ <annotation cp="📙">bok | oransje</annotation>
+ <annotation cp="📙" type="tts">oransje bok</annotation>
+ <annotation cp="📚">bok | bøker</annotation>
+ <annotation cp="📚" type="tts">bøker</annotation>
+ <annotation cp="📓">kladdebok | kontorrekvisita | notatbok</annotation>
+ <annotation cp="📓" type="tts">notatbok</annotation>
+ <annotation cp="📒">kontorrekvisita | notatbok | spiralblokk</annotation>
+ <annotation cp="📒" type="tts">spiralblokk</annotation>
+ <annotation cp="📃">ark | opprullet | side | side med bøy</annotation>
+ <annotation cp="📃" type="tts">side med bøy</annotation>
+ <annotation cp="📜">papir | papirrull | papyrus | pergament | pergamentrull | rull</annotation>
+ <annotation cp="📜" type="tts">pergamentrull</annotation>
+ <annotation cp="📄">ark | papir | side | side som vender opp</annotation>
+ <annotation cp="📄" type="tts">side som vender opp</annotation>
+ <annotation cp="📰">avis | nyheter | publikasjon</annotation>
+ <annotation cp="📰" type="tts">avis</annotation>
+ <annotation cp="🗞">avis | nyheter | opprullet | papir | sammenrullet avis</annotation>
+ <annotation cp="🗞" type="tts">sammenrullet avis</annotation>
+ <annotation cp="📑">bokmerke | bokmerkefane | faner | markør | merker</annotation>
+ <annotation cp="📑" type="tts">bokmerkefane</annotation>
+ <annotation cp="🔖">bokmerke | merke</annotation>
+ <annotation cp="🔖" type="tts">bokmerke</annotation>
+ <annotation cp="🏷">etikett | merke</annotation>
+ <annotation cp="🏷" type="tts">etikett</annotation>
+ <annotation cp="💰">dollar | penger | pengesekk | sekk</annotation>
+ <annotation cp="💰" type="tts">pengesekk</annotation>
+ <annotation cp="🪙">gull | metall | mynt | penger | skatt | sølv</annotation>
+ <annotation cp="🪙" type="tts">mynt</annotation>
+ <annotation cp="💴">penger | seddel | yen | yenseddel</annotation>
+ <annotation cp="💴" type="tts">yenseddel</annotation>
+ <annotation cp="💵">dollar | dollarseddel | penger | seddel</annotation>
+ <annotation cp="💵" type="tts">dollarseddel</annotation>
+ <annotation cp="💶">euro | euroseddel | penger | seddel</annotation>
+ <annotation cp="💶" type="tts">euroseddel</annotation>
+ <annotation cp="💷">penger | pund | pundseddel | seddel</annotation>
+ <annotation cp="💷" type="tts">pundseddel</annotation>
+ <annotation cp="💸">bank | flygende seddel | penger | penger med vinger | seddel</annotation>
+ <annotation cp="💸" type="tts">penger med vinger</annotation>
+ <annotation cp="💳">bankkort | betalingskort | kort | kreditt | kredittkort | visa</annotation>
+ <annotation cp="💳" type="tts">kredittkort</annotation>
+ <annotation cp="🧾">arkiv | bilag | dokumentasjon | kvittering | regnskap</annotation>
+ <annotation cp="🧾" type="tts">kvittering</annotation>
+ <annotation cp="💹">graf | marked | oppover | penger | stigende | stigende diagram med yen | trend | yen</annotation>
+ <annotation cp="💹" type="tts">stigende diagram med yen</annotation>
+ <annotation cp="✉">brev | e-post | konvolutt</annotation>
+ <annotation cp="✉" type="tts">konvolutt</annotation>
+ <annotation cp="📧">brev | e-post | kommunikasjon | post</annotation>
+ <annotation cp="📧" type="tts">e-post</annotation>
+ <annotation cp="📨">brev | e-post | epost | innkommende | konvolutt | motta</annotation>
+ <annotation cp="📨" type="tts">innkommende konvolutt</annotation>
+ <annotation cp="📩">brev | e-post | epost | konvolutt | konvolutt med pil | sende | sendt | utgående</annotation>
+ <annotation cp="📩" type="tts">konvolutt med pil</annotation>
+ <annotation cp="📤">brev | e-post | kommunikasjon | sendt | skuff | utboks</annotation>
+ <annotation cp="📤" type="tts">utboks</annotation>
+ <annotation cp="📥">brev | e-post | innboks | kommunikasjon | mottatt | skuff</annotation>
+ <annotation cp="📥" type="tts">innboks</annotation>
+ <annotation cp="📦">eske | levering | pakke</annotation>
+ <annotation cp="📦" type="tts">pakke</annotation>
+ <annotation cp="📫">flagg | lukket postkasse med flagget oppe | post</annotation>
+ <annotation cp="📫" type="tts">lukket postkasse med flagget oppe</annotation>
+ <annotation cp="📪">flagg | lukket postkasse med flagget nede | post</annotation>
+ <annotation cp="📪" type="tts">lukket postkasse med flagget nede</annotation>
+ <annotation cp="📬">åpen postkasse med flagget oppe | flagg | post</annotation>
+ <annotation cp="📬" type="tts">åpen postkasse med flagget oppe</annotation>
+ <annotation cp="📭">åpen postkasse med flagget nede | flagg | post</annotation>
+ <annotation cp="📭" type="tts">åpen postkasse med flagget nede</annotation>
+ <annotation cp="📮">post | postkasse</annotation>
+ <annotation cp="📮" type="tts">postkasse</annotation>
+ <annotation cp="🗳">boks | stemmeseddel | urne med stemmeseddel</annotation>
+ <annotation cp="🗳" type="tts">urne med stemmeseddel</annotation>
+ <annotation cp="✏">blyant</annotation>
+ <annotation cp="✏" type="tts">blyant</annotation>
+ <annotation cp="✒">penn | pennespiss | svart pennesplitt</annotation>
+ <annotation cp="✒" type="tts">svart pennesplitt</annotation>
+ <annotation cp="🖋">blekk | fyllepenn | penn</annotation>
+ <annotation cp="🖋" type="tts">fyllepenn</annotation>
+ <annotation cp="🖊">kulepenn | penn</annotation>
+ <annotation cp="🖊" type="tts">penn</annotation>
+ <annotation cp="🖌">maling | pensel</annotation>
+ <annotation cp="🖌" type="tts">pensel</annotation>
+ <annotation cp="🖍">fargestift | tegning</annotation>
+ <annotation cp="🖍" type="tts">fargestift</annotation>
+ <annotation cp="📝">blyant | bok | kommunikasjon | notat</annotation>
+ <annotation cp="📝" type="tts">notat</annotation>
+ <annotation cp="💼">dokumentmappe | stresskoffert</annotation>
+ <annotation cp="💼" type="tts">dokumentmappe</annotation>
+ <annotation cp="📁">arkiv | arkivmappe | fil | mappe</annotation>
+ <annotation cp="📁" type="tts">arkivmappe</annotation>
+ <annotation cp="📂">åpen | arkivmappe | fil | filmappe | mappe</annotation>
+ <annotation cp="📂" type="tts">åpen arkivmappe</annotation>
+ <annotation cp="🗂">faner | indeks | kort | skillekort | skillere</annotation>
+ <annotation cp="🗂" type="tts">skillekort</annotation>
+ <annotation cp="📅">dato | kalender</annotation>
+ <annotation cp="📅" type="tts">kalender</annotation>
+ <annotation cp="📆">kalender | riv-av-kalender | veggkalender</annotation>
+ <annotation cp="📆" type="tts">veggkalender</annotation>
+ <annotation cp="🗒">blokk | notat | spiral | spiralhefte</annotation>
+ <annotation cp="🗒" type="tts">spiralhefte</annotation>
+ <annotation cp="🗓">blokk | kalender | spiral | spiralkalender</annotation>
+ <annotation cp="🗓" type="tts">spiralkalender</annotation>
+ <annotation cp="📇">indeks | kartotek | register</annotation>
+ <annotation cp="📇" type="tts">kartotek</annotation>
+ <annotation cp="📈">chart | diagram som peker oppover | graf | opp | positiv | stigende</annotation>
+ <annotation cp="📈" type="tts">diagram som peker oppover</annotation>
+ <annotation cp="📉">chart | diagram som peker nedover | fallende | graf | ned | negativ | synkende</annotation>
+ <annotation cp="📉" type="tts">diagram som peker nedover</annotation>
+ <annotation cp="📊">diagram | histogram | søylediagram | stolpediagram</annotation>
+ <annotation cp="📊" type="tts">stolpediagram</annotation>
+ <annotation cp="📋">ordrebrett | skriveplate | tavle | utklippstavle</annotation>
+ <annotation cp="📋" type="tts">skriveplate</annotation>
+ <annotation cp="📌">kontorrekvisita | stift</annotation>
+ <annotation cp="📌" type="tts">stift</annotation>
+ <annotation cp="📍">kontorrekvisita | markørnål | rund stift</annotation>
+ <annotation cp="📍" type="tts">rund stift</annotation>
+ <annotation cp="📎">binders | kontorrekvisita</annotation>
+ <annotation cp="📎" type="tts">binders</annotation>
+ <annotation cp="🖇">binders | kjede | sammenlenkede binders</annotation>
+ <annotation cp="🖇" type="tts">sammenlenkede binders</annotation>
+ <annotation cp="📏">linjal | rett</annotation>
+ <annotation cp="📏" type="tts">linjal</annotation>
+ <annotation cp="📐">linjal | trekant | trekantlinjal | vinkel</annotation>
+ <annotation cp="📐" type="tts">trekantlinjal</annotation>
+ <annotation cp="✂">klippe | saks | verktøy</annotation>
+ <annotation cp="✂" type="tts">saks</annotation>
+ <annotation cp="🗃">arkiv | boks | fil | kartotekboks | kort</annotation>
+ <annotation cp="🗃" type="tts">kartotekboks</annotation>
+ <annotation cp="🗄">arkiv | arkivskap | fil | kabinett | mapper</annotation>
+ <annotation cp="🗄" type="tts">arkivskap</annotation>
+ <annotation cp="🗑">papirkurv | søppelkasse | søppelkurv</annotation>
+ <annotation cp="🗑" type="tts">papirkurv</annotation>
+ <annotation cp="🔒">låst</annotation>
+ <annotation cp="🔒" type="tts">låst</annotation>
+ <annotation cp="🔓">åpen | hengelås | lås | ulåst</annotation>
+ <annotation cp="🔓" type="tts">ulåst</annotation>
+ <annotation cp="🔏">låst med penn | penn | personvern</annotation>
+ <annotation cp="🔏" type="tts">låst med penn</annotation>
+ <annotation cp="🔐">lås med nøkkel | låst med nøkkel | sikker</annotation>
+ <annotation cp="🔐" type="tts">låst med nøkkel</annotation>
+ <annotation cp="🔑">lås | nøkkel | passord</annotation>
+ <annotation cp="🔑" type="tts">nøkkel</annotation>
+ <annotation cp="🗝">gammel | gammeldags nøkkel | lås | ledetråd | nøkkel</annotation>
+ <annotation cp="🗝" type="tts">gammeldags nøkkel</annotation>
+ <annotation cp="🔨">hammer | verktøy</annotation>
+ <annotation cp="🔨" type="tts">hammer</annotation>
+ <annotation cp="🪓">dele | hogge | hugge | kløyve | øks | ved</annotation>
+ <annotation cp="🪓" type="tts">øks</annotation>
+ <annotation cp="⛏">gruvedrift | hakke | verktøy</annotation>
+ <annotation cp="⛏" type="tts">hakke</annotation>
+ <annotation cp="⚒">hakke | hammer | hammer og hakke | verktøy</annotation>
+ <annotation cp="⚒" type="tts">hammer og hakke</annotation>
+ <annotation cp="🛠">hammer | hammer og fastnøkkel | skiftenøkkel | verktøy</annotation>
+ <annotation cp="🛠" type="tts">hammer og fastnøkkel</annotation>
+ <annotation cp="🗡">dolk | kniv | våpen</annotation>
+ <annotation cp="🗡" type="tts">dolk</annotation>
+ <annotation cp="⚔">kryss | sverd | sverd i kryss | våpen</annotation>
+ <annotation cp="⚔" type="tts">sverd i kryss</annotation>
+ <annotation cp="🔫">leketøysvåpen | pistol | vannpistol</annotation>
+ <annotation cp="🔫" type="tts">vannpistol</annotation>
+ <annotation cp="🪃">australia | boomerang | bumerang | retur | tilbake</annotation>
+ <annotation cp="🪃" type="tts">bumerang</annotation>
+ <annotation cp="🏹">bue | bueskytter | pil | pil og bue | Skytten | stjernebilde | stjernetegn | våpen</annotation>
+ <annotation cp="🏹" type="tts">pil og bue</annotation>
+ <annotation cp="🛡">skjold | våpen</annotation>
+ <annotation cp="🛡" type="tts">skjold</annotation>
+ <annotation cp="🪚">håndsag | sag | snekker | tømrer | tre | verktøy</annotation>
+ <annotation cp="🪚" type="tts">håndsag</annotation>
+ <annotation cp="🔧">fastnøkkel | skrunøkkel | verktøy</annotation>
+ <annotation cp="🔧" type="tts">fastnøkkel</annotation>
+ <annotation cp="🪛">skrue | skrujern | skrutrekker | verktøy</annotation>
+ <annotation cp="🪛" type="tts">skrutrekker</annotation>
+ <annotation cp="🔩">mutter | mutter og skrue | skrue | verktøy</annotation>
+ <annotation cp="🔩" type="tts">mutter og skrue</annotation>
+ <annotation cp="⚙">del | tann | tannhjul | verktøy</annotation>
+ <annotation cp="⚙" type="tts">tannhjul</annotation>
+ <annotation cp="🗜">klemme | skruetvinge | skrustikke | skrutvinge | verktøy</annotation>
+ <annotation cp="🗜" type="tts">skrutvinge</annotation>
+ <annotation cp="⚖">balanse | likearmet skålvekt | rettferdighet | stjernetegn | vekt | Vekten | verktøy</annotation>
+ <annotation cp="⚖" type="tts">likearmet skålvekt</annotation>
+ <annotation cp="🦯">blind | blindestokk | tilgjengelighet</annotation>
+ <annotation cp="🦯" type="tts">blindestokk</annotation>
+ <annotation cp="🔗">lenke | link | to ringer</annotation>
+ <annotation cp="🔗" type="tts">lenke</annotation>
+ <annotation cp="⛓">kjede | kjetting</annotation>
+ <annotation cp="⛓" type="tts">kjetting</annotation>
+ <annotation cp="🪝">buet | fange | krok | løfte | løftekrok | salgspunkt</annotation>
+ <annotation cp="🪝" type="tts">krok</annotation>
+ <annotation cp="🧰">kasse | skrin | verktøy | verktøykasse</annotation>
+ <annotation cp="🧰" type="tts">verktøykasse</annotation>
+ <annotation cp="🧲">hestesko | magnet | magnetisk | tiltrekning</annotation>
+ <annotation cp="🧲" type="tts">magnet</annotation>
+ <annotation cp="🪜">klatre | leider | stige | trapp | trinn</annotation>
+ <annotation cp="🪜" type="tts">stige</annotation>
+ <annotation cp="⚗">destillasjonskolbe | destillerkolbe | kjemi | verktøy</annotation>
+ <annotation cp="⚗" type="tts">destillerkolbe</annotation>
+ <annotation cp="🧪">eksperiment | forskning | kjemi | kjemiker | lab | prøverør | reagensrør</annotation>
+ <annotation cp="🧪" type="tts">prøverør</annotation>
+ <annotation cp="🧫">bakterie | biolog | biologi | kultur | lab | petriskål</annotation>
+ <annotation cp="🧫" type="tts">petriskål</annotation>
+ <annotation cp="🧬">biolog | dna | evolusjon | gen | gener | genetikk | liv</annotation>
+ <annotation cp="🧬" type="tts">dna</annotation>
+ <annotation cp="🔬">forskning | mikroskop | verktøy | vitenskap</annotation>
+ <annotation cp="🔬" type="tts">mikroskop</annotation>
+ <annotation cp="🔭">astronomi | forskning | teleskop | verktøy | vitenskap</annotation>
+ <annotation cp="🔭" type="tts">teleskop</annotation>
+ <annotation cp="📡">antenne | kommunikasjon | parabol | parabolantenne | satellitt | satellittantenne</annotation>
+ <annotation cp="📡" type="tts">satellittantenne</annotation>
+ <annotation cp="💉">medisin | nål | sprøyte | syk | vaksine</annotation>
+ <annotation cp="💉" type="tts">sprøyte</annotation>
+ <annotation cp="🩸">bloddråpe | blodgiver | medisin | mens | menstruasjon</annotation>
+ <annotation cp="🩸" type="tts">bloddråpe</annotation>
+ <annotation cp="💊">lege | medisin | pille | tablett</annotation>
+ <annotation cp="💊" type="tts">pille</annotation>
+ <annotation cp="🩹">behandling | plaster | sår</annotation>
+ <annotation cp="🩹" type="tts">plaster</annotation>
+ <annotation cp="🩺">hjerte | lege | medisin | stetoskop</annotation>
+ <annotation cp="🩺" type="tts">stetoskop</annotation>
+ <annotation cp="🚪">dør</annotation>
+ <annotation cp="🚪" type="tts">dør</annotation>
+ <annotation cp="🛗">heis | tilgjengelighet</annotation>
+ <annotation cp="🛗" type="tts">heis</annotation>
+ <annotation cp="🪞">refleksjon | speil | speilbilde</annotation>
+ <annotation cp="🪞" type="tts">speil</annotation>
+ <annotation cp="🪟">åpning | frisk luft | gjennomsiktig | ramme | utsikt | vindu</annotation>
+ <annotation cp="🪟" type="tts">vindu</annotation>
+ <annotation cp="🛏">hotell | seng | sove</annotation>
+ <annotation cp="🛏" type="tts">seng</annotation>
+ <annotation cp="🛋">hotell | lampe | sofa | sofa og lampe</annotation>
+ <annotation cp="🛋" type="tts">sofa og lampe</annotation>
+ <annotation cp="🪑">sete | sitte | sitteplass | stol</annotation>
+ <annotation cp="🪑" type="tts">stol</annotation>
+ <annotation cp="🚽">dass | do | toalett | vannklosett | wc</annotation>
+ <annotation cp="🚽" type="tts">toalett</annotation>
+ <annotation cp="🪠">avløp | avløpsåpner | mekanisk | toalett | vask</annotation>
+ <annotation cp="🪠" type="tts">avløpsåpner</annotation>
+ <annotation cp="🚿">dusj | vann</annotation>
+ <annotation cp="🚿" type="tts">dusj</annotation>
+ <annotation cp="🛁">bad | badekar | badestamp</annotation>
+ <annotation cp="🛁" type="tts">badekar</annotation>
+ <annotation cp="🪤">åte | felle | mus | musefelle | snare</annotation>
+ <annotation cp="🪤" type="tts">musefelle</annotation>
+ <annotation cp="🪒">barbere | barbering | barberkniv | skarp</annotation>
+ <annotation cp="🪒" type="tts">barberkniv</annotation>
+ <annotation cp="🧴">fuktighetskrem | lotion | lotionflaske | shampoo | sjampo | solkrem</annotation>
+ <annotation cp="🧴" type="tts">lotionflaske</annotation>
+ <annotation cp="🧷">bleie | punk | sikkerhetsnål</annotation>
+ <annotation cp="🧷" type="tts">sikkerhetsnål</annotation>
+ <annotation cp="🧹">feie | feiekost | heks | rengjøre</annotation>
+ <annotation cp="🧹" type="tts">feiekost</annotation>
+ <annotation cp="🧺">jordbruk | klesvask | kurv | piknik</annotation>
+ <annotation cp="🧺" type="tts">kurv</annotation>
+ <annotation cp="🧻">rull med papir | toalettpapir | tørkepapir | tørkerull</annotation>
+ <annotation cp="🧻" type="tts">rull med papir</annotation>
+ <annotation cp="🪣">beholder | bøtte | kar | spann</annotation>
+ <annotation cp="🪣" type="tts">bøtte</annotation>
+ <annotation cp="🧼">bad | såpe | såpeskål | såpestykke | skum | vaske</annotation>
+ <annotation cp="🧼" type="tts">såpe</annotation>
+ <annotation cp="🪥">bad | baderom | børste | dental | hygiene | ren | tannbørste | tenner</annotation>
+ <annotation cp="🪥" type="tts">tannbørste</annotation>
+ <annotation cp="🧽">absorberende | porøs | rengjøre | svamp | vaske</annotation>
+ <annotation cp="🧽" type="tts">svamp</annotation>
+ <annotation cp="🧯">brann | brannslokkingsapparat | brannslukningsapparat | slokke | slukke</annotation>
+ <annotation cp="🧯" type="tts">brannslukningsapparat</annotation>
+ <annotation cp="🛒">handle | handlevogn | innkjøp | tralle | vogn</annotation>
+ <annotation cp="🛒" type="tts">handlevogn</annotation>
+ <annotation cp="🚬">røyking | røyking tillatt | sigarett | skilt</annotation>
+ <annotation cp="🚬" type="tts">sigarett</annotation>
+ <annotation cp="⚰">begravelse | død | kiste</annotation>
+ <annotation cp="⚰" type="tts">kiste</annotation>
+ <annotation cp="🪦">grav | gravplass | gravstein | kirkegård</annotation>
+ <annotation cp="🪦" type="tts">gravstein</annotation>
+ <annotation cp="⚱">begravelse | død | kremasjon | urne</annotation>
+ <annotation cp="⚱" type="tts">urne</annotation>
+ <annotation cp="🗿">ansiktsstatue | moai | moai-statue | påskeøya | statue</annotation>
+ <annotation cp="🗿" type="tts">moai-statue</annotation>
+ <annotation cp="🪧">demonstrasjon | plakat | protest | skilt</annotation>
+ <annotation cp="🪧" type="tts">plakat</annotation>
+ <annotation cp="🏧">automatisk | bank | minibank | minibankskilt | penger</annotation>
+ <annotation cp="🏧" type="tts">minibankskilt</annotation>
+ <annotation cp="🚮">avfall | avfallsskilt | skilt | søppel</annotation>
+ <annotation cp="🚮" type="tts">avfallsskilt</annotation>
+ <annotation cp="🚰">drikke | drikkevann | vann</annotation>
+ <annotation cp="🚰" type="tts">drikkevann</annotation>
+ <annotation cp="♿">handikaptilgang | rullestol | rullestolbruker | rullestolsymbol</annotation>
+ <annotation cp="♿" type="tts">rullestolsymbol</annotation>
+ <annotation cp="🚹">do | herrer | herretoalett | mannesymbol | toalett | wc</annotation>
+ <annotation cp="🚹" type="tts">herretoalett</annotation>
+ <annotation cp="🚺">damer | dametoalett | do | kvinnesymbol | toalett | wc</annotation>
+ <annotation cp="🚺" type="tts">dametoalett</annotation>
+ <annotation cp="🚻">do | toalett | toalettskilt | WC</annotation>
+ <annotation cp="🚻" type="tts">toalettskilt</annotation>
+ <annotation cp="🚼">babyskilt | babysymbol | stellestasjon</annotation>
+ <annotation cp="🚼" type="tts">babysymbol</annotation>
+ <annotation cp="🚾">do | toalett | WC</annotation>
+ <annotation cp="🚾" type="tts">do</annotation>
+ <annotation cp="🛂">kontroll | pass | passkontroll</annotation>
+ <annotation cp="🛂" type="tts">passkontroll</annotation>
+ <annotation cp="🛃">grense | toll</annotation>
+ <annotation cp="🛃" type="tts">toll</annotation>
+ <annotation cp="🛄">bagasje | bagasjebånd | rullebånd</annotation>
+ <annotation cp="🛄" type="tts">bagasjebånd</annotation>
+ <annotation cp="🛅">bagasje | bagasjeoppbevaring | oppbevaring | oppbevaringsboks</annotation>
+ <annotation cp="🛅" type="tts">bagasjeoppbevaring</annotation>
+ <annotation cp="⚠">advarsel | OBS</annotation>
+ <annotation cp="⚠" type="tts">advarsel</annotation>
+ <annotation cp="🚸">barn | barn krysser veien | krysser | skilt</annotation>
+ <annotation cp="🚸" type="tts">barn krysser veien</annotation>
+ <annotation cp="⛔">adgang forbudt | enveiskjøring | ingen adgang | skilt | stopp</annotation>
+ <annotation cp="⛔" type="tts">ingen adgang</annotation>
+ <annotation cp="🚫">adgang forbudt | forbudt | ikke | nei | skilt</annotation>
+ <annotation cp="🚫" type="tts">forbudt</annotation>
+ <annotation cp="🚳">ikke | ingen sykler | nei | sykkel | sykkel ikke tillatt | sykler forbudt</annotation>
+ <annotation cp="🚳" type="tts">sykler forbudt</annotation>
+ <annotation cp="🚭">forbudt | ikke | ikke tillatt | nei | røyking | skilt</annotation>
+ <annotation cp="🚭" type="tts">røyking forbudt</annotation>
+ <annotation cp="🚯">forsøpling ikke tillatt | ikke avfall | ingen kasting | skilt</annotation>
+ <annotation cp="🚯" type="tts">forsøpling ikke tillatt</annotation>
+ <annotation cp="🚱">ikke drikkbart | ikke drikkevann | vann</annotation>
+ <annotation cp="🚱" type="tts">ikke drikkevann</annotation>
+ <annotation cp="🚷">fotgjenger | fotgjengere | fotgjengere forbudt | gående | ikke | ikke tillatt | nei</annotation>
+ <annotation cp="🚷" type="tts">fotgjengere forbudt</annotation>
+ <annotation cp="📵">forbudt | ikke | ikke tillatt | ingen telefonsamtaler | mobil | mobiltelefon | mobiltelefon ikke tillatt | nei | telefon</annotation>
+ <annotation cp="📵" type="tts">mobiltelefon ikke tillatt</annotation>
+ <annotation cp="🔞">18 | aldersgrense 18 år | attenårsgrense | ingen under 18 | under 18</annotation>
+ <annotation cp="🔞" type="tts">aldersgrense 18 år</annotation>
+ <annotation cp="☢">radioaktiv | radioaktivitet | radioaktivt</annotation>
+ <annotation cp="☢" type="tts">radioaktivt</annotation>
+ <annotation cp="☣">advarsel | biologisk fare | farlig biologisk materiale | skilt</annotation>
+ <annotation cp="☣" type="tts">farlig biologisk materiale</annotation>
+ <annotation cp="⬆">nord | oppoverpil | pil | pil opp | retning</annotation>
+ <annotation cp="⬆" type="tts">pil opp</annotation>
+ <annotation cp="↗">nordøst | pil | pil opp-høyre | retning</annotation>
+ <annotation cp="↗" type="tts">pil opp-høyre</annotation>
+ <annotation cp="➡">høyrepil | øst | pil | pil høyre | retning</annotation>
+ <annotation cp="➡" type="tts">pil høyre</annotation>
+ <annotation cp="↘">pil | pil ned-høyre | retning | sørøst</annotation>
+ <annotation cp="↘" type="tts">pil ned-høyre</annotation>
+ <annotation cp="⬇">nedoverpil | pil | pil ned | retning | sør</annotation>
+ <annotation cp="⬇" type="tts">pil ned</annotation>
+ <annotation cp="↙">pil | pil ned-venstre | retning | sørvest</annotation>
+ <annotation cp="↙" type="tts">pil ned-venstre</annotation>
+ <annotation cp="⬅">pil | pil venstre | retning | venstrepil | vest</annotation>
+ <annotation cp="⬅" type="tts">pil venstre</annotation>
+ <annotation cp="↖">nordvest | pil | pil opp-venstre | retning</annotation>
+ <annotation cp="↖" type="tts">pil opp-venstre</annotation>
+ <annotation cp="↕">pil | pil opp og ned</annotation>
+ <annotation cp="↕" type="tts">pil opp og ned</annotation>
+ <annotation cp="↔">pil | pil venstre-høyre</annotation>
+ <annotation cp="↔" type="tts">pil venstre-høyre</annotation>
+ <annotation cp="↮" draft="contributed">pil begge veier med strek</annotation>
+ <annotation cp="↮" type="tts" draft="contributed">pil begge veier med strek</annotation>
+ <annotation cp="↩">pil | pil som bøyer mot venstre</annotation>
+ <annotation cp="↩" type="tts">pil som bøyer mot venstre</annotation>
+ <annotation cp="↪">pil | pil som bøyer mot høyre</annotation>
+ <annotation cp="↪" type="tts">pil som bøyer mot høyre</annotation>
+ <annotation cp="⤴">pil | pil som bøyer opp</annotation>
+ <annotation cp="⤴" type="tts">pil som bøyer opp</annotation>
+ <annotation cp="⤵">ned | pil | pil som bøyer ned</annotation>
+ <annotation cp="⤵" type="tts">pil som bøyer ned</annotation>
+ <annotation cp="🔃">last inn på nytt | piler | vertikale piler med klokken</annotation>
+ <annotation cp="🔃" type="tts">vertikale piler med klokken</annotation>
+ <annotation cp="🔄">mot klokken | piler | piler mot klokken</annotation>
+ <annotation cp="🔄" type="tts">piler mot klokken</annotation>
+ <annotation cp="🔙">BACK-pil | pil | pil til venstre | tilbake | tilbakepil</annotation>
+ <annotation cp="🔙" type="tts">BACK-pil</annotation>
+ <annotation cp="🔚">END-pil | pil | pil til venstre | slutt | slutt med pil | sluttpil</annotation>
+ <annotation cp="🔚" type="tts">END-pil</annotation>
+ <annotation cp="🔛">ON | ON!-pil | PÅ | pil | utrop | utropstegn</annotation>
+ <annotation cp="🔛" type="tts">ON!-pil</annotation>
+ <annotation cp="🔜">pil | snart | snart med pil | SOON-pil</annotation>
+ <annotation cp="🔜" type="tts">SOON-pil</annotation>
+ <annotation cp="🔝">opp | pil opp | TOP | TOP-pil | topp | topp med pil</annotation>
+ <annotation cp="🔝" type="tts">TOP-pil</annotation>
+ <annotation cp="🛐">religion | religiøst samlingssted | tilbedelse</annotation>
+ <annotation cp="🛐" type="tts">religiøst samlingssted</annotation>
+ <annotation cp="⚛">ateist | atom | atomsymbol</annotation>
+ <annotation cp="⚛" type="tts">atomsymbol</annotation>
+ <annotation cp="🕉">hindu | om | religion</annotation>
+ <annotation cp="🕉" type="tts">om</annotation>
+ <annotation cp="✡">David | Davidstjerne | jøde | jødisk | religion | stjerne</annotation>
+ <annotation cp="✡" type="tts">Davidstjerne</annotation>
+ <annotation cp="☸">buddhist | dharma | dharmas hjul | hjul | religion</annotation>
+ <annotation cp="☸" type="tts">dharmas hjul</annotation>
+ <annotation cp="☯">religion | tao | taoist | yang | yin</annotation>
+ <annotation cp="☯" type="tts">yin yang</annotation>
+ <annotation cp="✝">kors | kristen | latinsk kors | religion</annotation>
+ <annotation cp="✝" type="tts">latinsk kors</annotation>
+ <annotation cp="☦">kors | kristen | ortodoks | ortodokst kors | religion</annotation>
+ <annotation cp="☦" type="tts">ortodokst kors</annotation>
+ <annotation cp="☪">islam | muslim | religion | stjerne og halvmåne</annotation>
+ <annotation cp="☪" type="tts">stjerne og halvmåne</annotation>
+ <annotation cp="☮">fred | fredssymbol</annotation>
+ <annotation cp="☮" type="tts">fredssymbol</annotation>
+ <annotation cp="🕎">lysestake | menora | religion</annotation>
+ <annotation cp="🕎" type="tts">menora</annotation>
+ <annotation cp="🔯">magi | sekskantet | sekstagget stjerne med prikk | stjerne</annotation>
+ <annotation cp="🔯" type="tts">sekstagget stjerne med prikk</annotation>
+ <annotation cp="♈">stjernetegn | vær | Væren</annotation>
+ <annotation cp="♈" type="tts">Væren</annotation>
+ <annotation cp="♉">okse | stjernetegn | tyr | Tyren</annotation>
+ <annotation cp="♉" type="tts">Tyren</annotation>
+ <annotation cp="♊">stjernetegn | Tvillingene | tvillinger</annotation>
+ <annotation cp="♊" type="tts">Tvillingene</annotation>
+ <annotation cp="♋">krabbe | kreps | Krepsen | stjernetegn</annotation>
+ <annotation cp="♋" type="tts">Krepsen</annotation>
+ <annotation cp="♌">løve | Løven | stjernetegn</annotation>
+ <annotation cp="♌" type="tts">Løven</annotation>
+ <annotation cp="♍">Jomfruen | stjernetegn</annotation>
+ <annotation cp="♍" type="tts">Jomfruen</annotation>
+ <annotation cp="♎">rettferdighet | stjernetegn | vekt | Vekten</annotation>
+ <annotation cp="♎" type="tts">Vekten</annotation>
+ <annotation cp="♏">skorpion | Skorpionen | stjernetegn</annotation>
+ <annotation cp="♏" type="tts">Skorpionen</annotation>
+ <annotation cp="♐">bueskytter | Skytten | stjernetegn</annotation>
+ <annotation cp="♐" type="tts">Skytten</annotation>
+ <annotation cp="♑">geit | Steinbukken | stjernetegn</annotation>
+ <annotation cp="♑" type="tts">Steinbukken</annotation>
+ <annotation cp="♒">stjernetegn | vann | Vannmannen</annotation>
+ <annotation cp="♒" type="tts">Vannmannen</annotation>
+ <annotation cp="♓">fisk | Fiskene | stjernetegn</annotation>
+ <annotation cp="♓" type="tts">Fiskene</annotation>
+ <annotation cp="⛎">bærer | slange | Slangebæreren | stjernetegn</annotation>
+ <annotation cp="⛎" type="tts">Slangebæreren</annotation>
+ <annotation cp="🔀">bland spor-symbol | kryssede piler mot høyre | piler</annotation>
+ <annotation cp="🔀" type="tts">bland spor-symbol</annotation>
+ <annotation cp="🔁">gjenta-knapp | med klokken | piler</annotation>
+ <annotation cp="🔁" type="tts">gjenta-knapp</annotation>
+ <annotation cp="🔂">1 gang | én gang | gjenta ett spor-knapp | med klokken | piler</annotation>
+ <annotation cp="🔂" type="tts">gjenta ett spor-knapp</annotation>
+ <annotation cp="▶">avspillingsknapp | høyre | pil | trekant</annotation>
+ <annotation cp="▶" type="tts">avspillingsknapp</annotation>
+ <annotation cp="⏩">dobbel pil | høyre | spol framover-knapp | spoling</annotation>
+ <annotation cp="⏩" type="tts">spol framover-knapp</annotation>
+ <annotation cp="⏭">neste scene | neste spor | neste spor-knapp | pil | trekant</annotation>
+ <annotation cp="⏭" type="tts">neste spor-knapp</annotation>
+ <annotation cp="⏯">høyre | pause | pil | spill av | spill av/pause-knapp | trekant</annotation>
+ <annotation cp="⏯" type="tts">spill av/pause-knapp</annotation>
+ <annotation cp="◀">bakover-knapp | pil | tilbake | trekant | venstre</annotation>
+ <annotation cp="◀" type="tts">bakover-knapp</annotation>
+ <annotation cp="⏪">dobbel pil | spol tilbake-knapp | spoling | venstre</annotation>
+ <annotation cp="⏪" type="tts">spol tilbake-knapp</annotation>
+ <annotation cp="⏮">forrige scene | forrige spor-knapp | pil | trekant</annotation>
+ <annotation cp="⏮" type="tts">forrige spor-knapp</annotation>
+ <annotation cp="🔼">oppover | oppover-knapp | pil</annotation>
+ <annotation cp="🔼" type="tts">oppover-knapp</annotation>
+ <annotation cp="⏫">dobbel | opp | pil | raskt opp-knapp</annotation>
+ <annotation cp="⏫" type="tts">raskt opp-knapp</annotation>
+ <annotation cp="🔽">ned | nedover | nedover-knapp</annotation>
+ <annotation cp="🔽" type="tts">nedover-knapp</annotation>
+ <annotation cp="⏬">dobbel pil ned | ned | pil | raskt ned-knapp</annotation>
+ <annotation cp="⏬" type="tts">raskt ned-knapp</annotation>
+ <annotation cp="⏸">dobbel | pause-knapp | strek | vertikal</annotation>
+ <annotation cp="⏸" type="tts">pause-knapp</annotation>
+ <annotation cp="⏹">firkant | stopp | stopp-knapp</annotation>
+ <annotation cp="⏹" type="tts">stopp-knapp</annotation>
+ <annotation cp="⏺">innspilling | sirkel | spill inn-knapp | ta opp</annotation>
+ <annotation cp="⏺" type="tts">spill inn-knapp</annotation>
+ <annotation cp="⏏">eject | knapp | løse ut | mat ut-knapp | mate ut</annotation>
+ <annotation cp="⏏" type="tts">mat ut-knapp</annotation>
+ <annotation cp="🎦">film | filmkamera | kamera | kino | underholdning</annotation>
+ <annotation cp="🎦" type="tts">kino</annotation>
+ <annotation cp="🔅">lav | lite lys-knapp | lysstyrke</annotation>
+ <annotation cp="🔅" type="tts">lite lys-knapp</annotation>
+ <annotation cp="🔆">høy | lysstyrke | mye lys-knapp</annotation>
+ <annotation cp="🔆" type="tts">mye lys-knapp</annotation>
+ <annotation cp="📶">antenne | mobil | mobilsignaler | signal | signalstyrke | telefon</annotation>
+ <annotation cp="📶" type="tts">mobilsignaler</annotation>
+ <annotation cp="📳">mobil | mobiltelefon | modus | vibrasjon | vibrering | vibreringsmodus</annotation>
+ <annotation cp="📳" type="tts">vibreringsmodus</annotation>
+ <annotation cp="📴">av | mobil | mobiltelefon</annotation>
+ <annotation cp="📴" type="tts">mobiltelefon av</annotation>
+ <annotation cp="♀">kvinne | kvinnesymbol</annotation>
+ <annotation cp="♀" type="tts">kvinnesymbol</annotation>
+ <annotation cp="♂">mann | mannssymbol</annotation>
+ <annotation cp="♂" type="tts">mannssymbol</annotation>
+ <annotation cp="⚧">transperson | transperson-symbol</annotation>
+ <annotation cp="⚧" type="tts">transperson-symbol</annotation>
+ <annotation cp="✖">× | avbryt | gange | gangetegn | multiplikasjon | multiplisere | x</annotation>
+ <annotation cp="✖" type="tts">gange</annotation>
+ <annotation cp="➕">+ | addisjon | fortegn | matte | pluss | plusstegn | positivt</annotation>
+ <annotation cp="➕" type="tts">pluss</annotation>
+ <annotation cp="➖">- | − | fortegn | matte | minus | minustegn | negativt | subtraksjon</annotation>
+ <annotation cp="➖" type="tts">minus</annotation>
+ <annotation cp="➗">÷ | dele | deletegn | deling | divisjon | divisjonstegn</annotation>
+ <annotation cp="➗" type="tts">dele</annotation>
+ <annotation cp="♾">for alltid | grenseløs | uendelig | universal | universell</annotation>
+ <annotation cp="♾" type="tts">uendelig</annotation>
+ <annotation cp="‼">! | !! | bangbang | dobbelt utropstegn | tegn | tegnsetting | utropstegn</annotation>
+ <annotation cp="‼" type="tts">dobbelt utropstegn</annotation>
+ <annotation cp="⁉">! | !? | ? | interrobang | spørsmålstegn | tegn | tegnsetting | utropstegn | utropstegn og spørsmålstegn</annotation>
+ <annotation cp="⁉" type="tts">utropstegn og spørsmålstegn</annotation>
+ <annotation cp="❓">? | rødt spørsmålstegn | spørsmål | spørsmålstegn</annotation>
+ <annotation cp="❓" type="tts">rødt spørsmålstegn</annotation>
+ <annotation cp="❔">? | hvitt spørsmålstegn | spørsmål</annotation>
+ <annotation cp="❔" type="tts">hvitt spørsmålstegn</annotation>
+ <annotation cp="❕">! | hvitt utropstegn | utrop</annotation>
+ <annotation cp="❕" type="tts">hvitt utropstegn</annotation>
+ <annotation cp="❗">! | rødt utropstegn | tegn | tegnsetting | utrop | utropstegn</annotation>
+ <annotation cp="❗" type="tts">rødt utropstegn</annotation>
+ <annotation cp="〰">bølge | bølgestrek | bølget bindestrek | tegn for lang lyd</annotation>
+ <annotation cp="〰" type="tts">bølgestrek</annotation>
+ <annotation cp="💱">bank | penger | valuta | valutaveksling | veksling</annotation>
+ <annotation cp="💱" type="tts">valutaveksling</annotation>
+ <annotation cp="💲">dollar | dollartegn | penger | stort dollartegn</annotation>
+ <annotation cp="💲" type="tts">dollartegn</annotation>
+ <annotation cp="⚕">asklepiosstav | lege | legesymbol | medisin</annotation>
+ <annotation cp="⚕" type="tts">legesymbol</annotation>
+ <annotation cp="♻">resirkulering | resirkuleringssymbol | symbol | universelt</annotation>
+ <annotation cp="♻" type="tts">resirkuleringssymbol</annotation>
+ <annotation cp="⚜">fleur-de-lis | fransk lilje</annotation>
+ <annotation cp="⚜" type="tts">fransk lilje</annotation>
+ <annotation cp="🔱">anker | emblem | treenighet | trefork | treforkemblem | tridentsymbol</annotation>
+ <annotation cp="🔱" type="tts">treforkemblem</annotation>
+ <annotation cp="📛">navn | navneskilt | skilt</annotation>
+ <annotation cp="📛" type="tts">navneskilt</annotation>
+ <annotation cp="🔰">grønn og gul | grønt og gult blad | japansk | japansk tegn for nybegynner | nybegynner</annotation>
+ <annotation cp="🔰" type="tts">japansk tegn for nybegynner</annotation>
+ <annotation cp="⭕">o | rød | sirkel | stor | tykk rød sirkel</annotation>
+ <annotation cp="⭕" type="tts">tykk rød sirkel</annotation>
+ <annotation cp="✅">✓ | avkryssing | avmerking | hake | hakemerke i firkant</annotation>
+ <annotation cp="✅" type="tts">hakemerke i firkant</annotation>
+ <annotation cp="☑">✓ | avkrysset boks | boks | boks med hakemerke | hakemerke</annotation>
+ <annotation cp="☑" type="tts">boks med hakemerke</annotation>
+ <annotation cp="✔">✓ | hake | hakemerke | merke</annotation>
+ <annotation cp="✔" type="tts">hakemerke</annotation>
+ <annotation cp="❌">× | kryss | rødt kryss | x | X</annotation>
+ <annotation cp="❌" type="tts">kryss</annotation>
+ <annotation cp="❎">× | kryss | kryss i firkant | kvadrat | x</annotation>
+ <annotation cp="❎" type="tts">kryss i firkant</annotation>
+ <annotation cp="➰">løkke | løkketegn</annotation>
+ <annotation cp="➰" type="tts">løkke</annotation>
+ <annotation cp="➿">dobbel løkke | dobbel løkke-tegn</annotation>
+ <annotation cp="➿" type="tts">dobbel løkke</annotation>
+ <annotation cp="〽">merke | merke for nytt parti | nytt | parti</annotation>
+ <annotation cp="〽" type="tts">merke for nytt parti</annotation>
+ <annotation cp="✳">* | asterisk | asterisk med åtte spisser | stjerne</annotation>
+ <annotation cp="✳" type="tts">asterisk med åtte spisser</annotation>
+ <annotation cp="✴">* | åttetagget stjerne | stjerne</annotation>
+ <annotation cp="✴" type="tts">åttetagget stjerne</annotation>
+ <annotation cp="❇">* | gnist</annotation>
+ <annotation cp="❇" type="tts">gnist</annotation>
+ <annotation cp="©">copyright | opphavsrett</annotation>
+ <annotation cp="©" type="tts">opphavsrett</annotation>
+ <annotation cp="®">r | registrert varemerke | varemerkesymbol</annotation>
+ <annotation cp="®" type="tts">registrert varemerke</annotation>
+ <annotation cp="™">tm | trademark | varemerke</annotation>
+ <annotation cp="™" type="tts">varemerke</annotation>
+ <annotation cp="🔠">ABCD | bokstaver | inndata | store bokstaver</annotation>
+ <annotation cp="🔠" type="tts">store bokstaver</annotation>
+ <annotation cp="🔡">abcd | bokstaver | inndata | små bokstaver</annotation>
+ <annotation cp="🔡" type="tts">små bokstaver</annotation>
+ <annotation cp="🔢">1234 | inndata | numeriske data | tall</annotation>
+ <annotation cp="🔢" type="tts">tall</annotation>
+ <annotation cp="🔣">〒♪&% | inndata | symboler</annotation>
+ <annotation cp="🔣" type="tts">symboler</annotation>
+ <annotation cp="🔤">ABC | bokstaver | inndata | latinsk | latinsk alfabet</annotation>
+ <annotation cp="🔤" type="tts">latinsk alfabet</annotation>
+ <annotation cp="🅰">A | A-knapp (blodtype) | blod | blodtype | type A</annotation>
+ <annotation cp="🅰" type="tts">A-knapp (blodtype)</annotation>
+ <annotation cp="🆎">AB | AB-knapp (blodtype) | blod | blodtype | type AB</annotation>
+ <annotation cp="🆎" type="tts">AB-knapp (blodtype)</annotation>
+ <annotation cp="🅱">B | B-knapp (blodtype) | blod | blodtype | type B</annotation>
+ <annotation cp="🅱" type="tts">B-knapp (blodtype)</annotation>
+ <annotation cp="🆑">CL-knapp | clear | slett | tøm</annotation>
+ <annotation cp="🆑" type="tts">CL-knapp</annotation>
+ <annotation cp="🆒">cool | COOL-knapp</annotation>
+ <annotation cp="🆒" type="tts">COOL-knapp</annotation>
+ <annotation cp="🆓">free | FREE-knapp | free-symbol | gratis</annotation>
+ <annotation cp="🆓" type="tts">FREE-knapp</annotation>
+ <annotation cp="ℹ">i | info | informasjon</annotation>
+ <annotation cp="ℹ" type="tts">informasjon</annotation>
+ <annotation cp="🆔">ID-knapp | ID-symbol | identitet</annotation>
+ <annotation cp="🆔" type="tts">ID-knapp</annotation>
+ <annotation cp="Ⓜ">m | M med ring rundt | sirkel</annotation>
+ <annotation cp="Ⓜ" type="tts">M med ring rundt</annotation>
+ <annotation cp="🆕">new | NEW-knapp | new-symbol | ny | nyhet</annotation>
+ <annotation cp="🆕" type="tts">NEW-knapp</annotation>
+ <annotation cp="🆖">ikke bra | NG | NG-knapp | NG-symbol | no good</annotation>
+ <annotation cp="🆖" type="tts">NG-knapp</annotation>
+ <annotation cp="🅾">blod | blodtype | O | O-knapp (blodtype) | type O</annotation>
+ <annotation cp="🅾" type="tts">O-knapp (blodtype)</annotation>
+ <annotation cp="🆗">OK | OK-knapp | OK-symbol</annotation>
+ <annotation cp="🆗" type="tts">OK-knapp</annotation>
+ <annotation cp="🅿">P-knapp | parkering | parkeringsplass</annotation>
+ <annotation cp="🅿" type="tts">P-knapp</annotation>
+ <annotation cp="🆘">hjelp | hjelp-symbol | sos | SOS-knapp | SOS-symbol</annotation>
+ <annotation cp="🆘" type="tts">SOS-knapp</annotation>
+ <annotation cp="🆙">opp | opp-symbol | up | UP!-knapp | UP!-symbol</annotation>
+ <annotation cp="🆙" type="tts">UP!-knapp</annotation>
+ <annotation cp="🆚">versus | vs | VS-knapp | vs-symbol</annotation>
+ <annotation cp="🆚" type="tts">VS-knapp</annotation>
+ <annotation cp="🈁">«her» på japansk | «koko» | her | japansk | katakana | ココ</annotation>
+ <annotation cp="🈁" type="tts">«her» på japansk</annotation>
+ <annotation cp="🈂">«gebyr» på japansk | «sa» | gebyr | japansk | katakana | サ</annotation>
+ <annotation cp="🈂" type="tts">«gebyr» på japansk</annotation>
+ <annotation cp="🈷">«månedlig beløp» på japansk | ideograf | japansk | månedlig beløp | 月</annotation>
+ <annotation cp="🈷" type="tts">«månedlig beløp» på japansk</annotation>
+ <annotation cp="🈶">«ikke gratis» på japansk | ideograf | ikke gratis | japansk | 有</annotation>
+ <annotation cp="🈶" type="tts">«ikke gratis» på japansk</annotation>
+ <annotation cp="🈯">«reservert» på japansk | ideograf | japansk | reservert | 指</annotation>
+ <annotation cp="🈯" type="tts">«reservert» på japansk</annotation>
+ <annotation cp="🉐">«spesialtilbud» på japansk | ideograf | japansk | spesialtilbud | 得</annotation>
+ <annotation cp="🉐" type="tts">«spesialtilbud» på japansk</annotation>
+ <annotation cp="🈹">«rabatt» på japansk | ideograf | japansk | rabatt | 割</annotation>
+ <annotation cp="🈹" type="tts">«rabatt» på japansk</annotation>
+ <annotation cp="🈚">«gratis» på japansk | gratis | ideograf | japansk | 無</annotation>
+ <annotation cp="🈚" type="tts">«gratis» på japansk</annotation>
+ <annotation cp="🈲">«forbudt» på japansk | forbudt | ideograf | japansk | 禁</annotation>
+ <annotation cp="🈲" type="tts">«forbudt» på japansk</annotation>
+ <annotation cp="🉑">«akseptabelt» på japansk | akseptabelt | ideograf | japansk | 可</annotation>
+ <annotation cp="🉑" type="tts">«akseptabelt» på japansk</annotation>
+ <annotation cp="🈸">«søknad» på japansk | ideograf | japansk | søknad | 申</annotation>
+ <annotation cp="🈸" type="tts">«søknad» på japansk</annotation>
+ <annotation cp="🈴">«bestått» på japansk | bestått | ideograf | japansk | 合</annotation>
+ <annotation cp="🈴" type="tts">«bestått» på japansk</annotation>
+ <annotation cp="🈳">«ledig» på japansk | ideograf | japansk | ledig | 空</annotation>
+ <annotation cp="🈳" type="tts">«ledig» på japansk</annotation>
+ <annotation cp="㊗">«gratulerer» på japansk | gratulerer | ideograf | japansk | 祝</annotation>
+ <annotation cp="㊗" type="tts">«gratulerer» på japansk</annotation>
+ <annotation cp="㊙">«hemmelig» på japansk | hemmelig | ideograf | japansk | 秘</annotation>
+ <annotation cp="㊙" type="tts">«hemmelig» på japansk</annotation>
+ <annotation cp="🈺">«åpen for handel» på japansk | åpen for handel | ideograf | japansk | 営</annotation>
+ <annotation cp="🈺" type="tts">«åpen for handel» på japansk</annotation>
+ <annotation cp="🈵">«fullt» på japansk | fullt | ideograf | japansk | 満</annotation>
+ <annotation cp="🈵" type="tts">«fullt» på japansk</annotation>
+ <annotation cp="🔴">geometrisk | rød | sirkel</annotation>
+ <annotation cp="🔴" type="tts">rød sirkel</annotation>
+ <annotation cp="🟠">oransje | sirkel</annotation>
+ <annotation cp="🟠" type="tts">oransje sirkel</annotation>
+ <annotation cp="🟡">gul | sirkel</annotation>
+ <annotation cp="🟡" type="tts">gul sirkel</annotation>
+ <annotation cp="🟢">grønn | sirkel</annotation>
+ <annotation cp="🟢" type="tts">grønn sirkel</annotation>
+ <annotation cp="🔵">blå | geometrisk | sirkel</annotation>
+ <annotation cp="🔵" type="tts">blå sirkel</annotation>
+ <annotation cp="🟣">lilla | sirkel</annotation>
+ <annotation cp="🟣" type="tts">lilla sirkel</annotation>
+ <annotation cp="🟤">brun | sirkel</annotation>
+ <annotation cp="🟤" type="tts">brun sirkel</annotation>
+ <annotation cp="⚫">geometrisk | sirkel | svart sirkel</annotation>
+ <annotation cp="⚫" type="tts">svart sirkel</annotation>
+ <annotation cp="⚪">geometrisk | hvit sirkel | sirkel</annotation>
+ <annotation cp="⚪" type="tts">hvit sirkel</annotation>
+ <annotation cp="🟥">kvadrat | rød | rødt</annotation>
+ <annotation cp="🟥" type="tts">rødt kvadrat</annotation>
+ <annotation cp="🟧">kvadrat | oransje</annotation>
+ <annotation cp="🟧" type="tts">oransje kvadrat</annotation>
+ <annotation cp="🟨">gul | gult | kvadrat</annotation>
+ <annotation cp="🟨" type="tts">gult kvadrat</annotation>
+ <annotation cp="🟩">grønn | grønt | kvadrat</annotation>
+ <annotation cp="🟩" type="tts">grønt kvadrat</annotation>
+ <annotation cp="🟦">blå | blått | kvadrat</annotation>
+ <annotation cp="🟦" type="tts">blått kvadrat</annotation>
+ <annotation cp="🟪">kvadrat | lilla</annotation>
+ <annotation cp="🟪" type="tts">lilla kvadrat</annotation>
+ <annotation cp="🟫">brun | brunt | kvadrat</annotation>
+ <annotation cp="🟫" type="tts">brunt kvadrat</annotation>
+ <annotation cp="⬛">firkant | geometrisk | kvadrat | stor svart firkant</annotation>
+ <annotation cp="⬛" type="tts">stor svart firkant</annotation>
+ <annotation cp="⬜">firkant | geometrisk | kvadrat | stor hvit firkant</annotation>
+ <annotation cp="⬜" type="tts">stor hvit firkant</annotation>
+ <annotation cp="◼">firkant | geometrisk | kvadrat | mellomstor svart firkant</annotation>
+ <annotation cp="◼" type="tts">mellomstor svart firkant</annotation>
+ <annotation cp="◻">firkant | geometrisk | kvadrat | mellomstor hvit firkant</annotation>
+ <annotation cp="◻" type="tts">mellomstor hvit firkant</annotation>
+ <annotation cp="◾">firkant | geometrisk | kvadrat | liten/mellomstor svart firkant</annotation>
+ <annotation cp="◾" type="tts">liten/mellomstor svart firkant</annotation>
+ <annotation cp="◽">firkant | geometrisk | kvadrat | liten/mellomstor hvit firkant</annotation>
+ <annotation cp="◽" type="tts">liten/mellomstor hvit firkant</annotation>
+ <annotation cp="▪">firkant | geometrisk | kvadrat | liten svart firkant</annotation>
+ <annotation cp="▪" type="tts">liten svart firkant</annotation>
+ <annotation cp="▫">firkant | geometrisk | kvadrat | liten hvit firkant</annotation>
+ <annotation cp="▫" type="tts">liten hvit firkant</annotation>
+ <annotation cp="🔶">geometrisk | oransje | ruter | stort oransje rutersymbol</annotation>
+ <annotation cp="🔶" type="tts">stort oransje rutersymbol</annotation>
+ <annotation cp="🔷">blå | geometrisk | ruter | stort blått rutersymbol</annotation>
+ <annotation cp="🔷" type="tts">stort blått rutersymbol</annotation>
+ <annotation cp="🔸">geometrisk | lite oransje rutersymbol | oransje | ruter</annotation>
+ <annotation cp="🔸" type="tts">lite oransje rutersymbol</annotation>
+ <annotation cp="🔹">blå | geometrisk | lite blått rutersymbol | ruter</annotation>
+ <annotation cp="🔹" type="tts">lite blått rutersymbol</annotation>
+ <annotation cp="🔺">geometrisk | oppover | rød trekant som peker opp | trekant</annotation>
+ <annotation cp="🔺" type="tts">rød trekant som peker opp</annotation>
+ <annotation cp="🔻">geometrisk | nedover | rød trekant som peker ned | trekant</annotation>
+ <annotation cp="🔻" type="tts">rød trekant som peker ned</annotation>
+ <annotation cp="💠">blomst | diamant | diamant med prikk | søtt</annotation>
+ <annotation cp="💠" type="tts">diamant med prikk</annotation>
+ <annotation cp="🔘">knapp | radio | radioknapp</annotation>
+ <annotation cp="🔘" type="tts">radioknapp</annotation>
+ <annotation cp="🔳">firkant | hvit firkantet knapp | knapp</annotation>
+ <annotation cp="🔳" type="tts">hvit firkantet knapp</annotation>
+ <annotation cp="🔲">firkant | knapp | svart firkantet knapp</annotation>
+ <annotation cp="🔲" type="tts">svart firkantet knapp</annotation>
+ <annotation cp="🏁">formel 1 | mål | motorsport | racingflagg | rutete flagg</annotation>
+ <annotation cp="🏁" type="tts">rutete flagg</annotation>
+ <annotation cp="🚩">golf | posisjon | trekantet | vimpel</annotation>
+ <annotation cp="🚩" type="tts">vimpel</annotation>
+ <annotation cp="🎌">feiring | flagg | kryssede flagg | kryssede japanske flagg | krysset</annotation>
+ <annotation cp="🎌" type="tts">kryssede flagg</annotation>
+ <annotation cp="🏴">flagg | flagring | svart</annotation>
+ <annotation cp="🏴" type="tts">svart flagg</annotation>
+ <annotation cp="🏳">flagg | flagring | hvitt</annotation>
+ <annotation cp="🏳" type="tts">hvitt flagg</annotation>
+ <annotation cp="🏳🌈">flagg | regnbue | regnbueflagg</annotation>
+ <annotation cp="🏳🌈" type="tts">regnbueflagg</annotation>
+ <annotation cp="🏳⚧">flagg | hvit | lyseblå | rosa | transperson | transpersonflagg</annotation>
+ <annotation cp="🏳⚧" type="tts">transpersonflagg</annotation>
+ <annotation cp="🏴☠">Kaptein Sabeltann | pirat | plyndre | sjørøverflagg | skatt</annotation>
+ <annotation cp="🏴☠" type="tts">sjørøverflagg</annotation>
+ <annotation cp="¢">cent | valuta</annotation>
+ <annotation cp="¢" type="tts">cent</annotation>
+ <annotation cp="$">dollar | MXN | peso | USD | valuta</annotation>
+ <annotation cp="$" type="tts">dollar</annotation>
+ <annotation cp="£">britiske pund | EGP | GBP | pund | valuta</annotation>
+ <annotation cp="£" type="tts">pund</annotation>
+ <annotation cp="¥">CNY | japanske yen | JPY | kinesiske yuan | valuta | yen</annotation>
+ <annotation cp="¥" type="tts">yen</annotation>
+ <annotation cp="₥">mill | tusendels valutaenhet | valuta</annotation>
+ <annotation cp="₥" type="tts">mill</annotation>
+ <annotation cp="₩">KPW | KRW | valuta | won</annotation>
+ <annotation cp="₩" type="tts">won</annotation>
+ <annotation cp="€">EUR | euro | valuta</annotation>
+ <annotation cp="€" type="tts">euro</annotation>
+ <annotation cp="₱">peso | PHP | valuta</annotation>
+ <annotation cp="₱" type="tts">peso</annotation>
+ <annotation cp="₹">indiske rupi | INR | rupi | valuta</annotation>
+ <annotation cp="₹" type="tts">indiske rupi</annotation>
+ <annotation cp="₽">RUB | rubler | russiske rubler | valuta</annotation>
+ <annotation cp="₽" type="tts">rubler</annotation>
+ <annotation cp="₿">bitcoin | BTC | kryptovaluta | valuta</annotation>
+ <annotation cp="₿" type="tts">bitcoin</annotation>
+ <annotation cp="¹">en | hevet | hevet ettall | i første | opphøyd i første</annotation>
+ <annotation cp="¹" type="tts">hevet ettall</annotation>
+ <annotation cp="²">hevet | hevet totall | i andre | kvadrat | opphøyd i andre | to</annotation>
+ <annotation cp="²" type="tts">hevet totall</annotation>
+ <annotation cp="³">hevet | hevet tretall | i tredje | kubikk | opphøyd i tredje | tre</annotation>
+ <annotation cp="³" type="tts">hevet tretall</annotation>
+ <annotation cp="µ">gresk my | liten my | mikro | mikrotegn | milliondel | milliontedels | my</annotation>
+ <annotation cp="µ" type="tts">mikrotegn</annotation>
+ </annotations>
+</ldml>
diff --git a/common/annotations/pa.xml b/common/annotations/pa.xml
index 755832c..9056971 100644
--- a/common/annotations/pa.xml
+++ b/common/annotations/pa.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -518,6 +518,8 @@
<annotation cp="🙄" type="tts">ਅੱਖਾਂ ਘੁਮਾਉਂਦਾ ਚਿਹਰਾ</annotation>
<annotation cp="😬">ਕਚੀਚੀਆਂ ਲੈਂਦਾ ਚਿਹਰਾ | ਚਿਹਰਾ | ਬਦਸੂਰਤ</annotation>
<annotation cp="😬" type="tts">ਕਚੀਚੀਆਂ ਲੈਂਦਾ ਚਿਹਰਾ</annotation>
+ <annotation cp="😮💨">ਸਾਹ ਬਾਹਰ ਕੱਢਣਾ । ਸਿਸਕੀ | ਸਾਹ ਭਰਦਾ | ਸਾਹ ਭਰਦਾ ਚਿਹਰਾ | ਸੀਟੀ | ਹੂੰਗ | ਘੁਸਰ-ਮੁਸਰ | ਰਾਹਤ</annotation>
+ <annotation cp="😮💨" type="tts">ਸਾਹ ਭਰਦਾ ਚਿਹਰਾ</annotation>
<annotation cp="🤥">ਚਿਹਰਾ | ਝੂਠ | ਝੂਠਾ ਚਿਹਰਾ</annotation>
<annotation cp="🤥" type="tts">ਝੂਠਾ ਚਿਹਰਾ</annotation>
<annotation cp="😌">ਚਿਹਰਾ | ਰਾਹਤ | ਰਾਹਤ ਵਾਲਾ ਚਿਹਰਾ</annotation>
@@ -576,8 +578,6 @@
<annotation cp="☹" type="tts">ਨਰਾਜ਼ ਚਿਹਰਾ</annotation>
<annotation cp="😮">ਖੁੱਲਾ ਮੂੰਹ | ਖੁੱਲਿਆ ਮੂੰਹ ਚਿਹਰਾ | ਖੁੱਲ੍ਹੇ ਮੂੰਹ ਵਾਲਾ ਚਿਹਰਾ | ਚਿਹਰਾ | ਮੂੰਹ</annotation>
<annotation cp="😮" type="tts">ਖੁੱਲ੍ਹੇ ਮੂੰਹ ਵਾਲਾ ਚਿਹਰਾ</annotation>
- <annotation cp="😮💨">ਸਾਹ ਬਾਹਰ ਕੱਢਣਾ । ਸਿਸਕੀ | ਸਾਹ ਭਰਦਾ | ਸਾਹ ਭਰਦਾ ਚਿਹਰਾ | ਸੀਟੀ | ਹੂੰਗ | ਘੁਸਰ-ਮੁਸਰ | ਰਾਹਤ</annotation>
- <annotation cp="😮💨" type="tts">ਸਾਹ ਭਰਦਾ ਚਿਹਰਾ</annotation>
<annotation cp="😯">ਸਾਂਤ ਚਿਹਰਾ | ਹੈਰਾਨ | ਚਿਹਰਾ</annotation>
<annotation cp="😯" type="tts">ਹੈਰਾਨ ਚਿਹਰਾ</annotation>
<annotation cp="😲">ਹੈਰਤ ਵਾਲਾ ਚਿਹਰਾ | ਹੈਰਾਨ | ਹੈਰਾਨੀ | ਚਿਹਰਾ | ਪੂਰੀ ਤਰ੍ਹਾਂ ਹੈਰਾਨ</annotation>
@@ -696,12 +696,12 @@
<annotation cp="❣" type="tts">ਸਜਾਵਟੀ ਹੈਰਾਨੀਵਾਚਕ ਚਿੰਨ੍ਹ</annotation>
<annotation cp="💔">ਜਜ਼ਬਾਤ | ਟੁੱਟਣਾ | ਟੁੱਟਿਆ ਹੋਇਆ ਦਿਲ | ਟੁੱਟਿਆ ਦਿਲ | ਦਿਲ ਟੁਟਿਆ ਹੋਇਆ | ਦਿਲ ਤੋੜਨਾ</annotation>
<annotation cp="💔" type="tts">ਟੁੱਟਿਆ ਦਿਲ</annotation>
- <annotation cp="❤">ਦਿਲ | ਪਿਆਰ | ਲਾਲ ਦਿਲ</annotation>
- <annotation cp="❤" type="tts">ਲਾਲ ਦਿਲ</annotation>
<annotation cp="❤🔥">ਸਾੜ | ਜਲਦਾ ਦਿਲ | ਦਿਲ | ਪਵਿੱਤਰ ਦਿਲ | ਪਿਆਰ | ਲਾਲਸਾ</annotation>
<annotation cp="❤🔥" type="tts">ਜਲਦਾ ਦਿਲ</annotation>
<annotation cp="❤🩹">ਸਿਹਤਮੰਦ | ਸੁਧਾਰ | ਸੁਧਾਰਨ | ਖੈਰ | ਤੰਦਰੁਸਤ ਹੁੰਦਾ ਦਿਲ | ਤੰਦਰੁਸਤੀ | ਮੁਰੰਮਤ</annotation>
<annotation cp="❤🩹" type="tts">ਤੰਦਰੁਸਤ ਹੁੰਦਾ ਦਿਲ</annotation>
+ <annotation cp="❤">ਦਿਲ | ਪਿਆਰ | ਲਾਲ ਦਿਲ</annotation>
+ <annotation cp="❤" type="tts">ਲਾਲ ਦਿਲ</annotation>
<annotation cp="🧡">ਸੰਤਰੀ | ਸੰਤਰੀ ਦਿਲ</annotation>
<annotation cp="🧡" type="tts">ਸੰਤਰੀ ਦਿਲ</annotation>
<annotation cp="💛">ਜਜ਼ਬਾਤ | ਦਿਲ | ਪੀਲਾ</annotation>
@@ -864,14 +864,14 @@
<annotation cp="👨" type="tts">ਆਦਮੀ</annotation>
<annotation cp="🧔">ਦਾੜ੍ਹੀ | ਦਾੜ੍ਹੀ ਵਾਲਾ ਬੰਦਾ</annotation>
<annotation cp="🧔" type="tts">ਦਾੜ੍ਹੀ ਵਾਲਾ ਬੰਦਾ</annotation>
- <annotation cp="👱♂">ਕੱਕੇ ਵਾਲਾਂ ਵਾਲਾ ਪੁਰਸ਼ | ਪੁਰਸ਼ | ਬੰਦਾ</annotation>
- <annotation cp="👱♂" type="tts">ਕੱਕੇ ਵਾਲਾਂ ਵਾਲਾ ਪੁਰਸ਼</annotation>
- <annotation cp="🧔♀">ਔਰਤ | ਔਰਤ: ਦਾੜ੍ਹੀ | ਦਾੜ੍ਹੀ</annotation>
- <annotation cp="🧔♀" type="tts">ਔਰਤ: ਦਾੜ੍ਹੀ</annotation>
<annotation cp="🧔♂">ਆਦਮੀ | ਆਦਮੀ: ਦਾੜ੍ਹੀ | ਦਾੜ੍ਹੀ</annotation>
<annotation cp="🧔♂" type="tts">ਆਦਮੀ: ਦਾੜ੍ਹੀ</annotation>
+ <annotation cp="👱♂">ਕੱਕੇ ਵਾਲਾਂ ਵਾਲਾ ਪੁਰਸ਼ | ਪੁਰਸ਼ | ਬੰਦਾ</annotation>
+ <annotation cp="👱♂" type="tts">ਕੱਕੇ ਵਾਲਾਂ ਵਾਲਾ ਪੁਰਸ਼</annotation>
<annotation cp="👩">ਔਰਤ | ਜ਼ਨਾਨੀ | ਲੋਕ</annotation>
<annotation cp="👩" type="tts">ਔਰਤ</annotation>
+ <annotation cp="🧔♀">ਔਰਤ | ਔਰਤ: ਦਾੜ੍ਹੀ | ਦਾੜ੍ਹੀ</annotation>
+ <annotation cp="🧔♀" type="tts">ਔਰਤ: ਦਾੜ੍ਹੀ</annotation>
<annotation cp="👱♀">ਔਰਤ | ਇਸਤਰੀ | ਕੱਕੇ ਵਾਲਾਂ ਵਾਲੀ ਇਸਤਰੀ</annotation>
<annotation cp="👱♀" type="tts">ਕੱਕੇ ਵਾਲਾਂ ਵਾਲੀ ਇਸਤਰੀ</annotation>
<annotation cp="🧓">ਬਜ਼ੁਰਗ | ਵੱਡੀ ਉਮਰ ਦਾ ਆਦਮੀ</annotation>
diff --git a/common/annotations/pcm.xml b/common/annotations/pcm.xml
index 7f6b5d0..67e0a07 100644
--- a/common/annotations/pcm.xml
+++ b/common/annotations/pcm.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -333,6 +333,8 @@
<annotation cp="🙄" type="tts">Fes De Tọ́n Im Ai-dẹm</annotation>
<annotation cp="😬">Fes | Ọ́glí Fes Wé Sọ́mtin De Pen | To Skíz Yọ Fes</annotation>
<annotation cp="😬" type="tts">Ọ́glí Fes Wé Sọ́mtin De Pen</annotation>
+ <annotation cp="😮💨">Brít Ea Kọmọt | Fes Wé De Brít Ea Kọmọt | Gasp | Gron | To Fíl Hápi | Tọ́k Sọ́fli Fọ Pẹ́sin Mék Ónlí Am Hia | Wíspa | Wísul</annotation>
+ <annotation cp="😮💨" type="tts">Fes Wé De Brít Ea Kọmọt</annotation>
<annotation cp="🤥">Fes | Lai | lai Laí Fes | Lai-laí Fes | Pinókio</annotation>
<annotation cp="🤥" type="tts">Lai-laí Fes</annotation>
<annotation cp="😌">Fes | Fes Wé Riláks Wẹ́l | To Fíl Hapí</annotation>
@@ -391,8 +393,6 @@
<annotation cp="☹" type="tts">Fes Wé De Fraun</annotation>
<annotation cp="😮">Fes | Fes Wé Gẹt Ópún Maut | Maut | Ópún | Píti</annotation>
<annotation cp="😮" type="tts">Fes Wé Gẹt Ópún Maut</annotation>
- <annotation cp="😮💨">Brít Ea Kọmọt | Fes Wé De Brít Ea Kọmọt | Gasp | Gron | To Fíl Hápi | Tọ́k Sọ́fli Fọ Pẹ́sin Mék Ónlí Am Hia | Wíspa | Wísul</annotation>
- <annotation cp="😮💨" type="tts">Fes Wé De Brít Ea Kọmọt</annotation>
<annotation cp="😯">Fes | Fes Wé Dé Kwáyẹt | Kwáyẹt | Shọk | Sọpraiz | Sọpraiz Wẹ́l Wẹl</annotation>
<annotation cp="😯" type="tts">Fes Wé Dé Kwáyẹt</annotation>
<annotation cp="😲">Fes | Fes Wé Sọpraiz Fúl Am | Kọmplit | Shọk | Sọpraiz Wẹ́l Wẹl</annotation>
@@ -511,12 +511,12 @@
<annotation cp="❣" type="tts">Hat Wé Dẹm Ték Mék Ẹsklaméshọ́n Mak</annotation>
<annotation cp="💔">Brẹk | Dọ́n Brẹk | Hat Wé Dọ́n Brẹk</annotation>
<annotation cp="💔" type="tts">Hat Wé Dọ́n Brẹk</annotation>
- <annotation cp="❤">Hat | Rẹ́d Hat</annotation>
- <annotation cp="❤" type="tts">Rẹ́d Hat</annotation>
<annotation cp="❤🔥">Bọn | Hat | Hat Wé De Bọ́n Wít Fáya | Lọv | Pẹ́sin To Họ́ngrí Wẹ́l Wẹl To Slíp Wit Sọ́mbọdi Bọt I Nó Lọ́v Di Pẹ́sin | Sékrẹ́d Hat</annotation>
<annotation cp="❤🔥" type="tts">Hat Wé De Bọ́n Wít Fáya</annotation>
<annotation cp="❤🩹">Pẹ́sin Bọdí Dọn De Wẹl | Pẹ́sin Dọ́n De Gẹ́t Bák Im Páwa Áftá Síknẹs | Pẹ́sin Dọ́n De Wẹ́l Agen | Síknẹs Dọ́n De Gò | To Ripiá Hat Wé Dọn Brẹk | Wẹl</annotation>
<annotation cp="❤🩹" type="tts">To Ripiá Hat Wé Dọn Brẹk</annotation>
+ <annotation cp="❤">Hat | Rẹ́d Hat</annotation>
+ <annotation cp="❤" type="tts">Rẹ́d Hat</annotation>
<annotation cp="🧡">Ọ́renj | Ọ́renj Kọ́lọ Hat | Ọ́rénj Kọ́lọ Hat</annotation>
<annotation cp="🧡" type="tts">Ọ́rénj Kọ́lọ Hat</annotation>
<annotation cp="💛">Hat | Yẹ́ló Hat</annotation>
@@ -679,14 +679,14 @@
<annotation cp="👨" type="tts">Man</annotation>
<annotation cp="🧔">Biabiá | Pẹ́sin | Pẹ́sin Wé Gẹ́t Biabiá</annotation>
<annotation cp="🧔" type="tts">Pẹ́sin Wé Gẹ́t Biabiá</annotation>
- <annotation cp="👱♂">Blọnd | Hea | Man | Man Wé Gẹ́t Blọ́nd Hea | Man: Blọ́nd Hea</annotation>
- <annotation cp="👱♂" type="tts">Man Wé Gẹ́t Blọ́nd Hea</annotation>
- <annotation cp="🧔♀">Biabiá | Wúman | Wúman Wé Gẹ́t Biabiá</annotation>
- <annotation cp="🧔♀" type="tts">Wúman Wé Gẹ́t Biabiá</annotation>
<annotation cp="🧔♂">Biabiá | Man | Man Wé Gẹ́t Biabiá</annotation>
<annotation cp="🧔♂" type="tts">Man Wé Gẹ́t Biabiá</annotation>
+ <annotation cp="👱♂">Blọnd | Hea | Man | Man Wé Gẹ́t Blọ́nd Hea | Man: Blọ́nd Hea</annotation>
+ <annotation cp="👱♂" type="tts">Man Wé Gẹ́t Blọ́nd Hea</annotation>
<annotation cp="👩">Machọ́ Pẹ́sin | Wúman</annotation>
<annotation cp="👩" type="tts">Wúman</annotation>
+ <annotation cp="🧔♀">Biabiá | Wúman | Wúman Wé Gẹ́t Biabiá</annotation>
+ <annotation cp="🧔♀" type="tts">Wúman Wé Gẹ́t Biabiá</annotation>
<annotation cp="👱♀">Blọnd Hea | Wúman Wé Gẹ́t Blọ́nd Hea | Wúman: Blọ́nd Hea</annotation>
<annotation cp="👱♀" type="tts">Wúman Wé Gẹ́t Blọ́nd Hea</annotation>
<annotation cp="🧓">Machọ́ Pẹ́sin | Old | Pẹ́sin Wé Dẹm Nó Tọk Wẹ́dá Na Man Ọ Wúman | Pẹ́sin Wé Nọ́ Bi Man Ọ Wúman | Síniọ́ Pẹ́sin</annotation>
diff --git a/common/annotations/pl.xml b/common/annotations/pl.xml
index ca75fa5..ba3fdfb 100644
--- a/common/annotations/pl.xml
+++ b/common/annotations/pl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -389,6 +389,8 @@
<annotation cp="🙄" type="tts">twarz przewracająca oczami</annotation>
<annotation cp="😬">grymaśna buźka | twarz z grymasem</annotation>
<annotation cp="😬" type="tts">twarz z grymasem</annotation>
+ <annotation cp="😮💨">gwizd | twarz wypuszczająca powietrze | ulga | westchnienie | wydmuchiwać powietrze | wypuszczać powietrze</annotation>
+ <annotation cp="😮💨" type="tts">twarz wypuszczająca powietrze</annotation>
<annotation cp="🤥">długi nos | kłamać | pinokio | twarz kłamcy</annotation>
<annotation cp="🤥" type="tts">twarz kłamcy</annotation>
<annotation cp="😌">odprężona buźka | twarz z wyrazem ulgi</annotation>
@@ -447,8 +449,6 @@
<annotation cp="☹" type="tts">zachmurzona twarz</annotation>
<annotation cp="😮">twarz z otwartymi ustami | zaskoczenie | zaskoczona buźka</annotation>
<annotation cp="😮" type="tts">twarz z otwartymi ustami</annotation>
- <annotation cp="😮💨">gwizd | twarz wypuszczająca powietrze | ulga | westchnienie | wydmuchiwać powietrze | wypuszczać powietrze</annotation>
- <annotation cp="😮💨" type="tts">twarz wypuszczająca powietrze</annotation>
<annotation cp="😯">zaskoczenie | zaskoczona buźka | zdumiona twarz</annotation>
<annotation cp="😯" type="tts">zdumiona twarz</annotation>
<annotation cp="😲">zadziwiona twarz | zaskoczenie | zaskoczona buźka</annotation>
@@ -567,12 +567,12 @@
<annotation cp="❣" type="tts">wykrzyknik w kształcie serca</annotation>
<annotation cp="💔">pęknięte | serce | złamane serce</annotation>
<annotation cp="💔" type="tts">złamane serce</annotation>
- <annotation cp="❤">czerwone | kocham | miłość | serce</annotation>
- <annotation cp="❤" type="tts">czerwone serce</annotation>
<annotation cp="❤🔥">miłość | płomienie | płonąć | serce | serce w płomieniach | święte serce</annotation>
<annotation cp="❤🔥" type="tts">serce w płomieniach</annotation>
<annotation cp="❤🩹">dobrze | lepiej | lepsze samopoczucie | uleczone serce | zdrowsze</annotation>
<annotation cp="❤🩹" type="tts">uleczone serce</annotation>
+ <annotation cp="❤">czerwone | kocham | miłość | serce</annotation>
+ <annotation cp="❤" type="tts">czerwone serce</annotation>
<annotation cp="🧡">pomarańczowe | pomarańczowe serce</annotation>
<annotation cp="🧡" type="tts">pomarańczowe serce</annotation>
<annotation cp="💛">serce | żółte</annotation>
@@ -735,14 +735,14 @@
<annotation cp="👨" type="tts">mężczyzna</annotation>
<annotation cp="🧔">broda | osoba | osoba z brodą</annotation>
<annotation cp="🧔" type="tts">osoba z brodą</annotation>
- <annotation cp="👱♂">blondyn | mężczyzna</annotation>
- <annotation cp="👱♂" type="tts">blondyn</annotation>
- <annotation cp="🧔♀">broda | kobieta | kobieta z brodą</annotation>
- <annotation cp="🧔♀" type="tts">kobieta z brodą</annotation>
<annotation cp="🧔♂">broda | mężczyzna | mężczyzna z brodą</annotation>
<annotation cp="🧔♂" type="tts">mężczyzna z brodą</annotation>
+ <annotation cp="👱♂">blondyn | mężczyzna</annotation>
+ <annotation cp="👱♂" type="tts">blondyn</annotation>
<annotation cp="👩">kobieta</annotation>
<annotation cp="👩" type="tts">kobieta</annotation>
+ <annotation cp="🧔♀">broda | kobieta | kobieta z brodą</annotation>
+ <annotation cp="🧔♀" type="tts">kobieta z brodą</annotation>
<annotation cp="👱♀">blondynka | kobieta</annotation>
<annotation cp="👱♀" type="tts">blondynka</annotation>
<annotation cp="🧓">płeć neutralna | starszy dorosły | stary</annotation>
diff --git a/common/annotations/ps.xml b/common/annotations/ps.xml
index b9f4335..7be117b 100644
--- a/common/annotations/ps.xml
+++ b/common/annotations/ps.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -331,6 +331,8 @@
<annotation cp="🙄" type="tts">د تاوهونکو سترګو مخ</annotation>
<annotation cp="😬">بړوستوب | بړوسېدلی مخ | مخ</annotation>
<annotation cp="😬" type="tts">بړوسېدلی مخ</annotation>
+ <annotation cp="😮💨">خولې | څاڅکی | د تنفس مخ | راحت | ساه ایستل | سیټي | ګاز</annotation>
+ <annotation cp="😮💨" type="tts">د تنفس مخ</annotation>
<annotation cp="🤥">پينوشو | دروغ | مخ</annotation>
<annotation cp="🤥" type="tts">دروغ مخ</annotation>
<annotation cp="😌">خوشحاله | مخ</annotation>
@@ -389,8 +391,6 @@
<annotation cp="☹" type="tts">د تريو تندي مخ</annotation>
<annotation cp="😮">بيرته | خوا خوږي | خوله | د بېرته خولې مخ | مخ</annotation>
<annotation cp="😮" type="tts">د بېرته خولې مخ</annotation>
- <annotation cp="😮💨">خولې | څاڅکی | د تنفس مخ | راحت | ساه ایستل | سیټي | ګاز</annotation>
- <annotation cp="😮💨" type="tts">د تنفس مخ</annotation>
<annotation cp="😯">چپ | حيران | د چپې خولې مخ | ګنګس | مخ</annotation>
<annotation cp="😯" type="tts">د چپې خولې مخ</annotation>
<annotation cp="😲">بشپړ | پښيمانه | حيران | مخ</annotation>
@@ -509,12 +509,12 @@
<annotation cp="❣" type="tts">د زړه ندا</annotation>
<annotation cp="💔">مات | مات زړه | مات شوی</annotation>
<annotation cp="💔" type="tts">مات زړه</annotation>
- <annotation cp="❤">زړه | سور زړه</annotation>
- <annotation cp="❤" type="tts">سور زړه</annotation>
<annotation cp="❤🔥">زړه | زړه اور | سپیڅلی زړه | سوځول | شوق | مینه</annotation>
<annotation cp="❤🔥" type="tts">زړه اور</annotation>
<annotation cp="❤🩹">حي | روغول | ښه | ښه کول | ښه کول زړه | وده کول</annotation>
<annotation cp="❤🩹" type="tts">ښه کول زړه</annotation>
+ <annotation cp="❤">زړه | سور زړه</annotation>
+ <annotation cp="❤" type="tts">سور زړه</annotation>
<annotation cp="🧡">نارنجی | نارنجی زړه</annotation>
<annotation cp="🧡" type="tts">نارنجی زړه</annotation>
<annotation cp="💛">ژیړ | ژیړ زړه</annotation>
@@ -677,14 +677,14 @@
<annotation cp="👨" type="tts">سړی</annotation>
<annotation cp="🧔">ږيره | سړی | سړی: ږيره | شخص</annotation>
<annotation cp="🧔" type="tts">سړی: ږيره</annotation>
- <annotation cp="👱♂">د زېړ ويښتانو | د زېړ وېښتانو سړی | سړی | سړی: د زيړ وېښتانو | وېښتان</annotation>
- <annotation cp="👱♂" type="tts">سړی: د زيړ وېښتانو</annotation>
- <annotation cp="🧔♀">ږیره | ښځه | ښځه: ږیره</annotation>
- <annotation cp="🧔♀" type="tts">ښځه: ږیره</annotation>
<annotation cp="🧔♂">ږیره | سړی | سړی: ږیره</annotation>
<annotation cp="🧔♂" type="tts">سړی: ږیره</annotation>
+ <annotation cp="👱♂">د زېړ ويښتانو | د زېړ وېښتانو سړی | سړی | سړی: د زيړ وېښتانو | وېښتان</annotation>
+ <annotation cp="👱♂" type="tts">سړی: د زيړ وېښتانو</annotation>
<annotation cp="👩">ښځه</annotation>
<annotation cp="👩" type="tts">ښځه</annotation>
+ <annotation cp="🧔♀">ږیره | ښځه | ښځه: ږیره</annotation>
+ <annotation cp="🧔♀" type="tts">ښځه: ږیره</annotation>
<annotation cp="👱♀">د زېړ ويښتانو ښځه | زېړ ويښتان | ښځه | ښځه: د زېړ وېښتانو | ويښتان</annotation>
<annotation cp="👱♀" type="tts">ښځه: د زېړ وېښتانو</annotation>
<annotation cp="🧓">بالغ | زوړ | زوړ شخص | نامعلومه جنس | نر ښځۍ</annotation>
diff --git a/common/annotations/pt.xml b/common/annotations/pt.xml
index 952a6d6..9f3641e 100644
--- a/common/annotations/pt.xml
+++ b/common/annotations/pt.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -367,6 +367,8 @@
<annotation cp="🙄" type="tts">rosto com olhos revirados</annotation>
<annotation cp="😬">fazendo careta | rosto | rosto expressando desagrado | rosto fazendo careta</annotation>
<annotation cp="😬" type="tts">rosto expressando desagrado</annotation>
+ <annotation cp="😮💨">alívio | assobio | assovio | choque | exalar | rosto exalando</annotation>
+ <annotation cp="😮💨" type="tts">rosto exalando</annotation>
<annotation cp="🤥">mentindo | mentira | mentiroso | pinóquio | rosto de mentiroso</annotation>
<annotation cp="🤥" type="tts">rosto de mentiroso</annotation>
<annotation cp="😌">alívio | rosto | rosto aliviado</annotation>
@@ -425,8 +427,6 @@
<annotation cp="☹" type="tts">rosto descontente</annotation>
<annotation cp="😮">boca | boca aberta | empatia | rosto | rosto com boca aberta</annotation>
<annotation cp="😮" type="tts">rosto com boca aberta</annotation>
- <annotation cp="😮💨">alívio | assobio | assovio | choque | exalar | rosto exalando</annotation>
- <annotation cp="😮💨" type="tts">rosto exalando</annotation>
<annotation cp="😯">espantado | rosto | surpreso</annotation>
<annotation cp="😯" type="tts">rosto surpreso</annotation>
<annotation cp="😲">chocado | estupefato | rosto | rosto espantado | totalmente chocado</annotation>
@@ -545,12 +545,12 @@
<annotation cp="❣" type="tts">exclamação de coração</annotation>
<annotation cp="💔">coração | coração partido | decepção amorosa | emoção | rompimento</annotation>
<annotation cp="💔" type="tts">coração partido</annotation>
- <annotation cp="❤">amor | coração | coração vermelho</annotation>
- <annotation cp="❤" type="tts">coração vermelho</annotation>
<annotation cp="❤🔥">amor | chamas | coração | coração em chamas | coração sagrado | fogo | luxúria</annotation>
<annotation cp="❤🔥" type="tts">coração em chamas</annotation>
<annotation cp="❤🩹">bem | bom | coração remendado | curando | mais saudável | melhorando | recuperação</annotation>
<annotation cp="❤🩹" type="tts">coração remendado</annotation>
+ <annotation cp="❤">amor | coração | coração vermelho</annotation>
+ <annotation cp="❤" type="tts">coração vermelho</annotation>
<annotation cp="🧡">coração | emoção | laranja</annotation>
<annotation cp="🧡" type="tts">coração laranja</annotation>
<annotation cp="💛">amarelo | coração | emoção</annotation>
@@ -713,14 +713,14 @@
<annotation cp="👨" type="tts">homem</annotation>
<annotation cp="🧔">barba | barbudo | homem | homem: barba | pessoa</annotation>
<annotation cp="🧔" type="tts">homem: barba</annotation>
- <annotation cp="👱♂">cabelo | homem | homem: cabelo loiro | loiro | louro</annotation>
- <annotation cp="👱♂" type="tts">homem: cabelo loiro</annotation>
- <annotation cp="🧔♀">barba | mulher | mulher: barba</annotation>
- <annotation cp="🧔♀" type="tts">mulher: barba</annotation>
<annotation cp="🧔♂">barba | homem | homem: barba | homem: barbudo</annotation>
<annotation cp="🧔♂" type="tts">homem: barbudo</annotation>
+ <annotation cp="👱♂">cabelo | homem | homem: cabelo loiro | loiro | louro</annotation>
+ <annotation cp="👱♂" type="tts">homem: cabelo loiro</annotation>
<annotation cp="👩">adulta | mulher</annotation>
<annotation cp="👩" type="tts">mulher</annotation>
+ <annotation cp="🧔♀">barba | mulher | mulher: barba</annotation>
+ <annotation cp="🧔♀" type="tts">mulher: barba</annotation>
<annotation cp="👱♀">loira | loura | mulher | mulher: cabelo loiro</annotation>
<annotation cp="👱♀" type="tts">mulher: cabelo loiro</annotation>
<annotation cp="🧓">adulto | idoso</annotation>
diff --git a/common/annotations/pt_PT.xml b/common/annotations/pt_PT.xml
index 90108b1..de1b04a 100644
--- a/common/annotations/pt_PT.xml
+++ b/common/annotations/pt_PT.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -510,6 +510,8 @@
<annotation cp="🙄" type="tts">cara com olhos revirados</annotation>
<annotation cp="😬">cara | cara a fazer caretas | caretas</annotation>
<annotation cp="😬" type="tts">cara a fazer caretas</annotation>
+ <annotation cp="😮💨">alívio | assobio | cara a exalar | choque | exalar</annotation>
+ <annotation cp="😮💨" type="tts">cara a exalar</annotation>
<annotation cp="🤥">cara | cara de mentiroso | mentira | pinóquio</annotation>
<annotation cp="🤥" type="tts">cara de mentiroso</annotation>
<annotation cp="😌">aliviado | cara | cara aliviada</annotation>
@@ -568,8 +570,6 @@
<annotation cp="☹" type="tts">cara franzida</annotation>
<annotation cp="😮">aberta | boca | cara | cara com boca aberta | pena</annotation>
<annotation cp="😮" type="tts">cara com boca aberta</annotation>
- <annotation cp="😮💨">alívio | assobio | cara a exalar | choque | exalar</annotation>
- <annotation cp="😮💨" type="tts">cara a exalar</annotation>
<annotation cp="😯">cara | expectante | pasmado | surpreso</annotation>
<annotation cp="😯" type="tts">cara expectante</annotation>
<annotation cp="😲">cara | cara espantada | chocado | estupefacto | surpreso</annotation>
@@ -688,12 +688,12 @@
<annotation cp="❣" type="tts">ponto de exclamação com coração</annotation>
<annotation cp="💔">coração | partido | partir</annotation>
<annotation cp="💔" type="tts">↑↑↑</annotation>
- <annotation cp="❤">coração | coração vermelho</annotation>
- <annotation cp="❤" type="tts">↑↑↑</annotation>
<annotation cp="❤🔥">↑↑↑</annotation>
<annotation cp="❤🔥" type="tts">↑↑↑</annotation>
<annotation cp="❤🩹">↑↑↑</annotation>
<annotation cp="❤🩹" type="tts">↑↑↑</annotation>
+ <annotation cp="❤">coração | coração vermelho</annotation>
+ <annotation cp="❤" type="tts">↑↑↑</annotation>
<annotation cp="🧡">coração | coração cor de laranja | coração laranja</annotation>
<annotation cp="🧡" type="tts">coração cor de laranja</annotation>
<annotation cp="💛">amarelo | coração</annotation>
@@ -856,14 +856,14 @@
<annotation cp="👨" type="tts">↑↑↑</annotation>
<annotation cp="🧔">barba | pessoa | pessoa: barba</annotation>
<annotation cp="🧔" type="tts">pessoa: barba</annotation>
- <annotation cp="👱♂">homem | homem com cabelo loiro | homem com cabelo louro | homem loiro | homem: cabelo loiro | louro</annotation>
- <annotation cp="👱♂" type="tts">↑↑↑</annotation>
- <annotation cp="🧔♀">↑↑↑</annotation>
- <annotation cp="🧔♀" type="tts">↑↑↑</annotation>
<annotation cp="🧔♂">↑↑↑</annotation>
<annotation cp="🧔♂" type="tts">homem: barba</annotation>
+ <annotation cp="👱♂">homem | homem com cabelo loiro | homem com cabelo louro | homem loiro | homem: cabelo loiro | louro</annotation>
+ <annotation cp="👱♂" type="tts">↑↑↑</annotation>
<annotation cp="👩">adulta | mulher | pessoa</annotation>
<annotation cp="👩" type="tts">↑↑↑</annotation>
+ <annotation cp="🧔♀">↑↑↑</annotation>
+ <annotation cp="🧔♀" type="tts">↑↑↑</annotation>
<annotation cp="👱♀">loura | mulher | mulher com cabelo loiro | mulher com cabelo louro | mulher loira | mulher: cabelo loiro</annotation>
<annotation cp="👱♀" type="tts">↑↑↑</annotation>
<annotation cp="🧓">género neutro | pessoa de idade | pessoa idosa</annotation>
diff --git a/common/annotations/qu.xml b/common/annotations/qu.xml
index 9278ae6..b9c3a26 100644
--- a/common/annotations/qu.xml
+++ b/common/annotations/qu.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -113,6 +113,8 @@
<annotation cp="🙄" type="tts">uya muyusqa ñawikunawan</annotation>
<annotation cp="😬">muesca | uya | uya muecaswan | uya muescaswan</annotation>
<annotation cp="😬" type="tts">uya muecaswan</annotation>
+ <annotation cp="😮💨">anchhiy | ansaqiy | jinchuy | llamsayay | samay | uya samachkan</annotation>
+ <annotation cp="😮💨" type="tts">uya samachkan</annotation>
<annotation cp="🤥">llullakusqa uya | llullakuy | pinocho | uya</annotation>
<annotation cp="🤥" type="tts">llullakusqa uya</annotation>
<annotation cp="😌">llamsayasqa | uya</annotation>
@@ -171,8 +173,6 @@
<annotation cp="☹" type="tts">sipʼusqa uya</annotation>
<annotation cp="😮">kichay | kʼacha | simi | uya | uya kichasqa simiwan</annotation>
<annotation cp="😮" type="tts">uya kichasqa simiwan</annotation>
- <annotation cp="😮💨">anchhiy | ansaqiy | jinchuy | llamsayay | samay | uya samachkan</annotation>
- <annotation cp="😮💨" type="tts">uya samachkan</annotation>
<annotation cp="😯">chʼin kasqa uya | kakka | manchachisqa | p’inqakusqa | uya</annotation>
<annotation cp="😯" type="tts">chʼin kasqa uya</annotation>
<annotation cp="😲">añasqa | chaqrusqa | llapan | uya</annotation>
@@ -291,12 +291,12 @@
<annotation cp="❣" type="tts">sunqu exclamasion</annotation>
<annotation cp="💔">pakasqa | pakasqa sunqu | pakay</annotation>
<annotation cp="💔" type="tts">pakasqa sunqu</annotation>
- <annotation cp="❤">puka sunqu | sunqu</annotation>
- <annotation cp="❤" type="tts">puka sunqu</annotation>
<annotation cp="❤🔥">munay | ñuqi | ruphay | sunqu | sunqu ninapi | wakʼa sunqu</annotation>
<annotation cp="❤🔥" type="tts">sunqu ninapi</annotation>
<annotation cp="❤🩹">allichachkan | allichasqa | allichasqa sunqu | allichay kay | allin | qhali kay | qhali kaynin</annotation>
<annotation cp="❤🩹" type="tts">allichasqa sunqu</annotation>
+ <annotation cp="❤">puka sunqu | sunqu</annotation>
+ <annotation cp="❤" type="tts">puka sunqu</annotation>
<annotation cp="🧡">willapi | willapi sunqu</annotation>
<annotation cp="🧡" type="tts">willapi sunqu</annotation>
<annotation cp="💛">qʼillu | qʼillu sunqu</annotation>
@@ -459,14 +459,14 @@
<annotation cp="👨" type="tts">tata</annotation>
<annotation cp="🧔">kʼaki | runa | runa: kʼaki</annotation>
<annotation cp="🧔" type="tts">runa: kʼaki</annotation>
- <annotation cp="👱♂">chukcha | qʼillu | runa | runa: qillu chukcha | runa:qillu chukcha</annotation>
- <annotation cp="👱♂" type="tts">runa: qillu chukcha</annotation>
- <annotation cp="🧔♀">kʼaki | warmi | warmi: kʼaki</annotation>
- <annotation cp="🧔♀" type="tts">warmi: kʼaki</annotation>
<annotation cp="🧔♂">kaki | runa | runa: kaki</annotation>
<annotation cp="🧔♂" type="tts">runa: kaki</annotation>
+ <annotation cp="👱♂">chukcha | qʼillu | runa | runa: qillu chukcha | runa:qillu chukcha</annotation>
+ <annotation cp="👱♂" type="tts">runa: qillu chukcha</annotation>
<annotation cp="👩">puriq runa | warmi</annotation>
<annotation cp="👩" type="tts">warmi</annotation>
+ <annotation cp="🧔♀">kʼaki | warmi | warmi: kʼaki</annotation>
+ <annotation cp="🧔♀" type="tts">warmi: kʼaki</annotation>
<annotation cp="👱♀">chukcha | qʼillo chukcha warmi | qʼillu | warmi | warmi: qʼillu chukcha</annotation>
<annotation cp="👱♀" type="tts">warmi: qʼillu chukcha</annotation>
<annotation cp="🧓">genero | genero neutral | hatun | mana akllasqa | ñawpa runa | puriq runa</annotation>
diff --git a/common/annotations/ro.xml b/common/annotations/ro.xml
index 79b4340..a499fd1 100644
--- a/common/annotations/ro.xml
+++ b/common/annotations/ro.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -513,6 +513,8 @@
<annotation cp="🙄" type="tts">față care dă ochii peste cap</annotation>
<annotation cp="😬">față | față cu grimasă | grimasă</annotation>
<annotation cp="😬" type="tts">față cu grimasă</annotation>
+ <annotation cp="😮💨">expirare | față care expiră | fluierat | oftat | răsuflare | șoptit | ușurare</annotation>
+ <annotation cp="😮💨" type="tts">față care expiră</annotation>
<annotation cp="🤥">față | fața mincinoasă | minciună | pinocchio</annotation>
<annotation cp="🤥" type="tts">fața mincinoasă</annotation>
<annotation cp="😌">față | față ușurată | relaxare | ușurare</annotation>
@@ -571,8 +573,6 @@
<annotation cp="☹" type="tts">față tristă</annotation>
<annotation cp="😮">față | față cu gura deschisă | gură deschisă | surpriză | uimire</annotation>
<annotation cp="😮" type="tts">față cu gura deschisă</annotation>
- <annotation cp="😮💨">expirare | față care expiră | fluierat | oftat | răsuflare | șoptit | ușurare</annotation>
- <annotation cp="😮💨" type="tts">față care expiră</annotation>
<annotation cp="😯">amuțit | față | față amuțită | surprins | uimit</annotation>
<annotation cp="😯" type="tts">față amuțită</annotation>
<annotation cp="😲">față | față uimită | șoc | uimire | uluire</annotation>
@@ -691,12 +691,12 @@
<annotation cp="❣" type="tts">semnul exclamării cu inimioară</annotation>
<annotation cp="💔">durere | inimă | inimă zdrobită</annotation>
<annotation cp="💔" type="tts">inimă zdrobită</annotation>
- <annotation cp="❤">inimă | inimă roșie</annotation>
- <annotation cp="❤" type="tts">inimă roșie</annotation>
<annotation cp="❤🔥">arde | dorință | inimă | inimă în flăcări | inimă sacră | iubire | pasiune</annotation>
<annotation cp="❤🔥" type="tts">inimă în flăcări</annotation>
<annotation cp="❤🩹">ameliorare | bine | inimă în convalescență | însănătoșire | mai sănătos | recuperare</annotation>
<annotation cp="❤🩹" type="tts">inimă în convalescență</annotation>
+ <annotation cp="❤">inimă | inimă roșie</annotation>
+ <annotation cp="❤" type="tts">inimă roșie</annotation>
<annotation cp="🧡">inimă | inimă portocalie | portocaliu</annotation>
<annotation cp="🧡" type="tts">inimă portocalie</annotation>
<annotation cp="💛">galben | inimă | inimă galbenă</annotation>
@@ -859,14 +859,14 @@
<annotation cp="👨" type="tts">bărbat</annotation>
<annotation cp="🧔">barbă | bărbat | bărbat cu barbă | persoană</annotation>
<annotation cp="🧔" type="tts">bărbat cu barbă</annotation>
- <annotation cp="👱♂">bărbat | bărbat cu păr blond | blond | păr</annotation>
- <annotation cp="👱♂" type="tts">bărbat blond</annotation>
- <annotation cp="🧔♀">barbă | femeie | femeie: barbă</annotation>
- <annotation cp="🧔♀" type="tts">femeie: barbă</annotation>
<annotation cp="🧔♂">barbă | bărbat | bărbat: barbă</annotation>
<annotation cp="🧔♂" type="tts">bărbat: barbă</annotation>
+ <annotation cp="👱♂">bărbat | bărbat cu păr blond | blond | păr</annotation>
+ <annotation cp="👱♂" type="tts">bărbat blond</annotation>
<annotation cp="👩">adultă | femeie</annotation>
<annotation cp="👩" type="tts">femeie</annotation>
+ <annotation cp="🧔♀">barbă | femeie | femeie: barbă</annotation>
+ <annotation cp="🧔♀" type="tts">femeie: barbă</annotation>
<annotation cp="👱♀">blondă | femeie | femeie cu păr blond | păr</annotation>
<annotation cp="👱♀" type="tts">femeie blondă</annotation>
<annotation cp="🧓">adult | bătrân | neutru | persoană în vârstă | vârstnic</annotation>
diff --git a/common/annotations/root.xml b/common/annotations/root.xml
index 6fac300..bf0a52f 100644
--- a/common/annotations/root.xml
+++ b/common/annotations/root.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -803,6 +803,8 @@
<annotation cp="🙄" type="tts">E10-904</annotation>
<annotation cp="😬">E10-880</annotation>
<annotation cp="😬" type="tts">E10-880</annotation>
+ <annotation cp="😮💨">E13.1-001</annotation> <!-- 1F62E 200D 1F4A8: face exhaling -->
+ <annotation cp="😮💨" type="tts">E13.1-001</annotation>
<annotation cp="🤥">E10-1031</annotation>
<annotation cp="🤥" type="tts">E10-1031</annotation>
<annotation cp="😌">E10-848</annotation>
@@ -861,8 +863,6 @@
<annotation cp="☹" type="tts">E10-060</annotation>
<annotation cp="😮">E10-882</annotation>
<annotation cp="😮" type="tts">E10-882</annotation>
- <annotation cp="😮💨">E13.1-001</annotation> <!-- 1F62E 200D 1F4A8: face exhaling -->
- <annotation cp="😮💨" type="tts">E13.1-001</annotation>
<annotation cp="😯">E10-883</annotation>
<annotation cp="😯" type="tts">E10-883</annotation>
<annotation cp="😲">E10-886</annotation>
@@ -981,12 +981,12 @@
<annotation cp="❣" type="tts">E10-146</annotation>
<annotation cp="💔">E10-593</annotation>
<annotation cp="💔" type="tts">E10-593</annotation>
- <annotation cp="❤">E10-147</annotation>
- <annotation cp="❤" type="tts">E10-147</annotation>
<annotation cp="❤🔥">E13.1-003</annotation> <!-- 2764 200D 1F525: heart on fire -->
<annotation cp="❤🔥" type="tts">E13.1-003</annotation>
<annotation cp="❤🩹">E13.1-004</annotation> <!-- 2764 200D 1FA79: mending heart -->
<annotation cp="❤🩹" type="tts">E13.1-004</annotation>
+ <annotation cp="❤">E10-147</annotation>
+ <annotation cp="❤" type="tts">E10-147</annotation>
<annotation cp="🧡">E10-1138</annotation>
<annotation cp="🧡" type="tts">E10-1138</annotation>
<annotation cp="💛">E10-600</annotation>
@@ -1149,14 +1149,14 @@
<annotation cp="👨" type="tts">E10-549</annotation>
<annotation cp="🧔">E10-1125</annotation>
<annotation cp="🧔" type="tts">E10-1125</annotation>
- <annotation cp="👱♂">E10-1195</annotation>
- <annotation cp="👱♂" type="tts">E10-1195</annotation>
- <annotation cp="🧔♀">E13.1-006</annotation>
- <annotation cp="🧔♀" type="tts">E13.1-006</annotation>
<annotation cp="🧔♂">E13.1-005</annotation>
<annotation cp="🧔♂" type="tts">E13.1-005</annotation>
+ <annotation cp="👱♂">E10-1195</annotation>
+ <annotation cp="👱♂" type="tts">E10-1195</annotation>
<annotation cp="👩">E10-550</annotation>
<annotation cp="👩" type="tts">E10-550</annotation>
+ <annotation cp="🧔♀">E13.1-006</annotation>
+ <annotation cp="🧔♀" type="tts">E13.1-006</annotation>
<annotation cp="👱♀">E10-1194</annotation>
<annotation cp="👱♀" type="tts">E10-1194</annotation>
<annotation cp="🧓">E10-1124</annotation>
diff --git a/common/annotations/ru.xml b/common/annotations/ru.xml
index c99c141..4315c17 100644
--- a/common/annotations/ru.xml
+++ b/common/annotations/ru.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -421,6 +421,8 @@
<annotation cp="🙄" type="tts">закатывает глаза</annotation>
<annotation cp="😬">гримаса | зубы | лицо | рожа</annotation>
<annotation cp="😬" type="tts">гримаса</annotation>
+ <annotation cp="😮💨">вздох | выдох | выдыхает | облегчение | одышка | свист | шепот</annotation>
+ <annotation cp="😮💨" type="tts">выдыхает</annotation>
<annotation cp="🤥">буратино | врать | длинный нос | лжец | обманывать</annotation>
<annotation cp="🤥" type="tts">лжец</annotation>
<annotation cp="😌">испытывает облегчение | лицо | минуло | облегчение | обошло | спокойствие | стороной</annotation>
@@ -479,8 +481,6 @@
<annotation cp="☹" type="tts">грустит</annotation>
<annotation cp="😮">лицо | открытый | рот | удивление</annotation>
<annotation cp="😮" type="tts">удивление</annotation>
- <annotation cp="😮💨">вздох | выдох | выдыхает | облегчение | одышка | свист | шепот</annotation>
- <annotation cp="😮💨" type="tts">выдыхает</annotation>
<annotation cp="😯">лицо | молчание | неприятно | неприятный сюрприз | сюрприз | удивление</annotation>
<annotation cp="😯" type="tts">неприятный сюрприз</annotation>
<annotation cp="😲">в шоке | лицо | потрясение | удивление | шок</annotation>
@@ -599,12 +599,12 @@
<annotation cp="❣" type="tts">восклицательный знак в виде сердца</annotation>
<annotation cp="💔">разбитое | разочарование | сердце | части</annotation>
<annotation cp="💔" type="tts">разбитое сердце</annotation>
- <annotation cp="❤">алое | красное | сердце | чувства</annotation>
- <annotation cp="❤" type="tts">алое сердце</annotation>
<annotation cp="❤🔥">горящее сердце | любовь | огонь | пламенное сердце | пламя | страсть</annotation>
<annotation cp="❤🔥" type="tts">горящее сердце</annotation>
<annotation cp="❤🩹">выздоровление | заживающее сердце | излечение | поправка | улучшение | хорошо</annotation>
<annotation cp="❤🩹" type="tts">заживающее сердце</annotation>
+ <annotation cp="❤">алое | красное | сердце | чувства</annotation>
+ <annotation cp="❤" type="tts">алое сердце</annotation>
<annotation cp="🧡">оранжевое | сердце</annotation>
<annotation cp="🧡" type="tts">оранжевое сердце</annotation>
<annotation cp="💛">желтое | сердце</annotation>
@@ -767,14 +767,14 @@
<annotation cp="👨" type="tts">мужчина</annotation>
<annotation cp="🧔">борода | бородатый человек | бородач | мужчина</annotation>
<annotation cp="🧔" type="tts">бородатый человек</annotation>
- <annotation cp="👱♂">блондин | мужчина | мужчина со светлыми волосами | светлые волосы | человек со светлыми волосами</annotation>
- <annotation cp="👱♂" type="tts">блондин</annotation>
- <annotation cp="🧔♀" draft="provisional">борода | бородатая женщина | женщина</annotation>
- <annotation cp="🧔♀" type="tts">бородатая женщина</annotation>
<annotation cp="🧔♂" draft="contributed">борода | бородатый мужчина | мужчина</annotation>
<annotation cp="🧔♂" type="tts">бородатый мужчина</annotation>
+ <annotation cp="👱♂">блондин | мужчина | мужчина со светлыми волосами | светлые волосы | человек со светлыми волосами</annotation>
+ <annotation cp="👱♂" type="tts">блондин</annotation>
<annotation cp="👩">взрослая | волосы | длинные | женщина | человек</annotation>
<annotation cp="👩" type="tts">женщина</annotation>
+ <annotation cp="🧔♀" draft="provisional">борода | бородатая женщина | женщина</annotation>
+ <annotation cp="🧔♀" type="tts">бородатая женщина</annotation>
<annotation cp="👱♀">блондинка | женщина | женщина со светлыми волосами | светлые волосы | человек со светлыми волосами</annotation>
<annotation cp="👱♀" type="tts">блондинка</annotation>
<annotation cp="🧓">в возрасте | гендерно нейтральный | пожилой | пожилой человек | старый</annotation>
diff --git a/common/annotations/sd.xml b/common/annotations/sd.xml
index d7c7eb4..87d3969 100644
--- a/common/annotations/sd.xml
+++ b/common/annotations/sd.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -349,6 +349,8 @@
<annotation cp="🙄" type="tts">ڦرندڙ اکين سان چهرو</annotation>
<annotation cp="😬">بدصورت بڻائڻ | بناوٽي صورت ٺاهيندڙ چهرو | چهرو</annotation>
<annotation cp="😬" type="tts">بناوٽي صورت ٺاهيندڙ چهرو</annotation>
+ <annotation cp="😮💨">آرام | ساه ٻاهر ڪڍڻ | ساه ڇڏڻ وارو چهرو | سس پس ڪرڻ | سهڪڻ | سيٽي وڄائڻ | ڪرڪڻ</annotation>
+ <annotation cp="😮💨" type="tts">ساه ڇڏڻ وارو چهرو</annotation>
<annotation cp="🤥">چهرو | ڪوڙ | ڪوڙ ڳالهائيندڙ چهرو</annotation>
<annotation cp="🤥" type="tts">ڪوڙ ڳالهائيندڙ چهرو</annotation>
<annotation cp="😌">آجو | آجو ٿيل چهرو | چهرو</annotation>
@@ -407,8 +409,6 @@
<annotation cp="☹" type="tts">لٿل چهرو</annotation>
<annotation cp="😮">چهرو | کليل | کليل وات سان چهرو | همدردي | وات</annotation>
<annotation cp="😮" type="tts">کليل وات سان چهرو</annotation>
- <annotation cp="😮💨">آرام | ساه ٻاهر ڪڍڻ | ساه ڇڏڻ وارو چهرو | سس پس ڪرڻ | سهڪڻ | سيٽي وڄائڻ | ڪرڪڻ</annotation>
- <annotation cp="😮💨" type="tts">ساه ڇڏڻ وارو چهرو</annotation>
<annotation cp="😯">چپ ٿيل چهرو | چهرو | حيران ڪيل | ششدر | مخفي</annotation>
<annotation cp="😯" type="tts">چپ ٿيل چهرو</annotation>
<annotation cp="😲">بدحواس | پورو | چهرو | حيران | حيران ٿيل چهرو</annotation>
@@ -691,14 +691,14 @@
<annotation cp="👨" type="tts">ماڻهو</annotation>
<annotation cp="🧔">ڏاڙهي | شخص: ڏاڙهي | ماڻهو | ماڻهو: ڏاڙهي</annotation>
<annotation cp="🧔" type="tts">شخص: ڏاڙهي</annotation>
- <annotation cp="👱♂">ڀورا وار | ڀورن وارن وارو ماڻهو | ماڻهو | ماڻهو: ڀورا وار | وار</annotation>
- <annotation cp="👱♂" type="tts">ماڻهو: ڀورا وار</annotation>
- <annotation cp="🧔♀">ڏاڙهي | عورت | عورت: ڏاڙهي</annotation>
- <annotation cp="🧔♀" type="tts">عورت: ڏاڙهي</annotation>
<annotation cp="🧔♂">ڏاڙهي | ماڻهو | ماڻهو: ڏاڙهي</annotation>
<annotation cp="🧔♂" type="tts">ماڻهو: ڏاڙهي</annotation>
+ <annotation cp="👱♂">ڀورا وار | ڀورن وارن وارو ماڻهو | ماڻهو | ماڻهو: ڀورا وار | وار</annotation>
+ <annotation cp="👱♂" type="tts">ماڻهو: ڀورا وار</annotation>
<annotation cp="👩">عورت</annotation>
<annotation cp="👩" type="tts">عورت</annotation>
+ <annotation cp="🧔♀">ڏاڙهي | عورت | عورت: ڏاڙهي</annotation>
+ <annotation cp="🧔♀" type="tts">عورت: ڏاڙهي</annotation>
<annotation cp="👱♀">ڀورا وار | ڀورن وارن واري عورت | عورت | عورت: ڀورا وار</annotation>
<annotation cp="👱♀" type="tts">عورت: ڀورا وار</annotation>
<annotation cp="🧓">غيرجانبدرا، وڏو | وڏي عمر جو بالغ</annotation>
diff --git a/common/annotations/si.xml b/common/annotations/si.xml
index 39fe5bf..7959616 100644
--- a/common/annotations/si.xml
+++ b/common/annotations/si.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -381,6 +381,8 @@
<annotation cp="🙄" type="tts">කරකවන ඇස් ඇති මුහුණ</annotation>
<annotation cp="😬">පුලුටු කර ගත් මුහුණ | පුලුටු කරගත් | මුහුණ</annotation>
<annotation cp="😬" type="tts">පුලුටු කර ගත් මුහුණ</annotation>
+ <annotation cp="😮💨">අමාරුවෙන් හුස්ම ගැනීම | කෙඳිරිය | කෙඳිරීම | පිඹීම | සහනය | හුස්ම හෙළන මුහුණ | හුස්ම හෙළීම</annotation>
+ <annotation cp="😮💨" type="tts">හුස්ම හෙළන මුහුණ</annotation>
<annotation cp="🤥">පිනොකියෝ | බොරුකියන මුහුණ | බොරුව | මුහුණ</annotation>
<annotation cp="🤥" type="tts">බොරුකියන මුහුණ</annotation>
<annotation cp="😌">මුහුණ | සැනසුමක් ලත් | සැනසුමක් ලත් මුහුණ</annotation>
@@ -439,8 +441,6 @@
<annotation cp="☹" type="tts">රවන මුහුණ</annotation>
<annotation cp="😮">කට | කට ඇරුණ මුහුණ | දුක | මුහුණ | විවෘත</annotation>
<annotation cp="😮" type="tts">කට ඇරුණ මුහුණ</annotation>
- <annotation cp="😮💨">අමාරුවෙන් හුස්ම ගැනීම | කෙඳිරිය | කෙඳිරීම | පිඹීම | සහනය | හුස්ම හෙළන මුහුණ | හුස්ම හෙළීම</annotation>
- <annotation cp="😮💨" type="tts">හුස්ම හෙළන මුහුණ</annotation>
<annotation cp="😯">නිශ්ශබ්ද | නිහඩ | පුදුම | මුහුණ</annotation>
<annotation cp="😯" type="tts">නිශ්ශබ්ද මුහුණ</annotation>
<annotation cp="😲">පුදුම | මුහුණ | විස්මයට පත් | විස්මයට පත් මුහුණ | සම්පූර්ණයෙන්</annotation>
@@ -559,12 +559,12 @@
<annotation cp="❣" type="tts">හදවතක හැඩය ගත් විස්මයාර්ථ ලකුණ</annotation>
<annotation cp="💔">බිඳීම | බිඳුණු | හදවත</annotation>
<annotation cp="💔" type="tts">බිඳුණු හදවත</annotation>
- <annotation cp="❤">රතු හදවත | හදවත</annotation>
- <annotation cp="❤" type="tts">රතු හදවත</annotation>
<annotation cp="❤🔥">ආදරය | ගිනි ගත් හදවත | පිළිස්සීම | පූජනීය හදවත | රාගය | හදවත</annotation>
<annotation cp="❤🔥" type="tts">ගිනි ගත් හදවත</annotation>
<annotation cp="❤🩹">ප්රකෘතිමත් වීම | යථා තත්ත්වයට පත් වීම | වැඩි දියුණු කිරීම | සුව දීම | සුව වෙන හදවත | සෞඛ්ය සම්පන්න | හොඳින්</annotation>
<annotation cp="❤🩹" type="tts">සුව වෙන හදවත</annotation>
+ <annotation cp="❤">රතු හදවත | හදවත</annotation>
+ <annotation cp="❤" type="tts">රතු හදවත</annotation>
<annotation cp="🧡">තැඹිලි | තැඹිලි හදවත</annotation>
<annotation cp="🧡" type="tts">තැඹිලි හදවත</annotation>
<annotation cp="💛">කහ | හදවත</annotation>
@@ -727,14 +727,14 @@
<annotation cp="👨" type="tts">පිරිිමියා</annotation>
<annotation cp="🧔">රැවුල | රැවුල සහිත පුද්ගලයා</annotation>
<annotation cp="🧔" type="tts">රැවුල සහිත පුද්ගලයා</annotation>
- <annotation cp="👱♂">තඹ පැහැ | තඹ පැහැ කොණ්ඩය සහිත මිනිසා | පිරිමි | මිනිහා</annotation>
- <annotation cp="👱♂" type="tts">තඹ පැහැ කොණ්ඩය සහිත මිනිසා</annotation>
- <annotation cp="🧔♀">කාන්තාව | කාන්තාව: රැවුල | රැවුල</annotation>
- <annotation cp="🧔♀" type="tts">කාන්තාව: රැවුල</annotation>
<annotation cp="🧔♂">මිනිසා | මිනිසා: රැවුල | රැවුල</annotation>
<annotation cp="🧔♂" type="tts">මිනිසා: රැවුල</annotation>
+ <annotation cp="👱♂">තඹ පැහැ | තඹ පැහැ කොණ්ඩය සහිත මිනිසා | පිරිමි | මිනිහා</annotation>
+ <annotation cp="👱♂" type="tts">තඹ පැහැ කොණ්ඩය සහිත මිනිසා</annotation>
<annotation cp="👩">කාන්තාව | වැඩිහිටි</annotation>
<annotation cp="👩" type="tts">කාන්තාව</annotation>
+ <annotation cp="🧔♀">කාන්තාව | කාන්තාව: රැවුල | රැවුල</annotation>
+ <annotation cp="🧔♀" type="tts">කාන්තාව: රැවුල</annotation>
<annotation cp="👱♀">තඹ පැහැ | තඹ පැහැ කොණ්ඩය සහිත කාන්තාව | පිරිමි | මිනිහා</annotation>
<annotation cp="👱♀" type="tts">තඹ පැහැ කොණ්ඩය සහිත කාන්තාව</annotation>
<annotation cp="🧓">මහලු | මහලු වැඩිහිටියා | ස්ත්රී පුරුෂභාවය උදාසීන</annotation>
diff --git a/common/annotations/sk.xml b/common/annotations/sk.xml
index c600dd5..498a174 100644
--- a/common/annotations/sk.xml
+++ b/common/annotations/sk.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -447,6 +447,8 @@
<annotation cp="🙄" type="tts">tvár prevracajúca oči</annotation>
<annotation cp="😬">grimasa | tvár | vyškerená</annotation>
<annotation cp="😬" type="tts">vyškerená tvár</annotation>
+ <annotation cp="😮💨">hvízdať | pískať | šepkať | stenať | úľava | vydýchnuť | vydychujúca tvár | vzdychať</annotation>
+ <annotation cp="😮💨" type="tts">vydychujúca tvár</annotation>
<annotation cp="🤥">klamať | klamstvo | lož | tvár | tvár s dlhým nosom</annotation>
<annotation cp="🤥" type="tts">tvár s dlhým nosom</annotation>
<annotation cp="😌">tvár | tvár vyjadrujúca úľavu | úľava | upokojená</annotation>
@@ -505,8 +507,6 @@
<annotation cp="☹" type="tts">zamračená tvár</annotation>
<annotation cp="😮">otvorené | súcit | tvár | tvár s otvorenými ústami | ústa</annotation>
<annotation cp="😮" type="tts">tvár s otvorenými ústami</annotation>
- <annotation cp="😮💨">hvízdať | pískať | šepkať | stenať | úľava | vydýchnuť | vydychujúca tvár | vzdychať</annotation>
- <annotation cp="😮💨" type="tts">vydychujúca tvár</annotation>
<annotation cp="😯">ohromená | prekvapená | tvár | umlčaná</annotation>
<annotation cp="😯" type="tts">umlčaná tvár</annotation>
<annotation cp="😲">absolútne | šokovaná | tvár | udivená</annotation>
@@ -625,12 +625,12 @@
<annotation cp="❣" type="tts">výkričník v tvare srdca</annotation>
<annotation cp="💔">srdce | zlomené | zlomiť</annotation>
<annotation cp="💔" type="tts">zlomené srdce</annotation>
- <annotation cp="❤">červené | srdce</annotation>
- <annotation cp="❤" type="tts">červené srdce</annotation>
<annotation cp="❤🔥">horiace srdce | láska | oheň | srdce | túžba</annotation>
<annotation cp="❤🔥" type="tts">horiace srdce</annotation>
<annotation cp="❤🩹">dobre | lepšie | srdce s obväzom | uzdravovať sa | zdravšie | zotavovať sa</annotation>
<annotation cp="❤🩹" type="tts">srdce s obväzom</annotation>
+ <annotation cp="❤">červené | srdce</annotation>
+ <annotation cp="❤" type="tts">červené srdce</annotation>
<annotation cp="🧡">oranžové | srdce</annotation>
<annotation cp="🧡" type="tts">oranžové srdce</annotation>
<annotation cp="💛">srdce | žlté</annotation>
@@ -793,14 +793,14 @@
<annotation cp="👨" type="tts">muž</annotation>
<annotation cp="🧔">brada | bradáč | fúzatý | fúzy</annotation>
<annotation cp="🧔" type="tts">bradáč</annotation>
- <annotation cp="👱♂">blond | blondín | muž | svetlovlasý</annotation>
- <annotation cp="👱♂" type="tts">blondín</annotation>
- <annotation cp="🧔♀">brada | bradatá žena | žena</annotation>
- <annotation cp="🧔♀" type="tts">bradatá žena</annotation>
<annotation cp="🧔♂">brada | bradatý muž | muž</annotation>
<annotation cp="🧔♂" type="tts">bradatý muž</annotation>
+ <annotation cp="👱♂">blond | blondín | muž | svetlovlasý</annotation>
+ <annotation cp="👱♂" type="tts">blondín</annotation>
<annotation cp="👩">dospelá | žena</annotation>
<annotation cp="👩" type="tts">žena</annotation>
+ <annotation cp="🧔♀">brada | bradatá žena | žena</annotation>
+ <annotation cp="🧔♀" type="tts">bradatá žena</annotation>
<annotation cp="👱♀">blond | blondína | blondínka | svetlovlasá | žena</annotation>
<annotation cp="👱♀" type="tts">blondína</annotation>
<annotation cp="🧓">človek | starší človek | starý</annotation>
diff --git a/common/annotations/sl.xml b/common/annotations/sl.xml
index d8d779f..bf822e9 100644
--- a/common/annotations/sl.xml
+++ b/common/annotations/sl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -421,6 +421,8 @@
<annotation cp="🙄" type="tts">obraz z zavijajočimi očmi</annotation>
<annotation cp="😬">grimasa | obraz | spačen obraz</annotation>
<annotation cp="😬" type="tts">spačen obraz</annotation>
+ <annotation cp="😮💨">godrnjanje | izdih | obraz, ki izdihne | olajšanje | šepet | sopih | žvižganje</annotation>
+ <annotation cp="😮💨" type="tts">obraz, ki izdihne</annotation>
<annotation cp="🤥">laž | lažnivec | lažnivi obraz | ostržek</annotation>
<annotation cp="🤥" type="tts">lažnivi obraz</annotation>
<annotation cp="😌">obraz | olajšan obraz | olajšano</annotation>
@@ -479,8 +481,6 @@
<annotation cp="☹" type="tts">namrščen obraz</annotation>
<annotation cp="😮">obraz | obraz z odprtimi usti | odprto | sočutje | usta</annotation>
<annotation cp="😮" type="tts">obraz z odprtimi usti</annotation>
- <annotation cp="😮💨">godrnjanje | izdih | obraz, ki izdihne | olajšanje | šepet | sopih | žvižganje</annotation>
- <annotation cp="😮💨" type="tts">obraz, ki izdihne</annotation>
<annotation cp="😯">obraz | osupljen obraz | osuplo | presenečeno | tiho</annotation>
<annotation cp="😯" type="tts">osupljen obraz</annotation>
<annotation cp="😲">frapirano | obraz | popolnoma | presenečeno | začuden obraz | začudeno</annotation>
@@ -599,12 +599,12 @@
<annotation cp="❣" type="tts">klicaj v obliki srca</annotation>
<annotation cp="💔">počeno | srce | strto srce | zlomiti</annotation>
<annotation cp="💔" type="tts">strto srce</annotation>
- <annotation cp="❤">rdeče srce | srce</annotation>
- <annotation cp="❤" type="tts">rdeče srce</annotation>
<annotation cp="❤🔥">goreče srce | ljubezen | ogenj | poželenje | srce | sveto srce</annotation>
<annotation cp="❤🔥" type="tts">goreče srce</annotation>
<annotation cp="❤🩹">bolj zdravo | izboljšanje | okrevanje | ozdravljeno | zakrpano | zakrpano srce | zdravo</annotation>
<annotation cp="❤🩹" type="tts">zakrpano srce</annotation>
+ <annotation cp="❤">rdeče srce | srce</annotation>
+ <annotation cp="❤" type="tts">rdeče srce</annotation>
<annotation cp="🧡">oranžno srce</annotation>
<annotation cp="🧡" type="tts">oranžno srce</annotation>
<annotation cp="💛">rumeno | srce</annotation>
@@ -767,14 +767,14 @@
<annotation cp="👨" type="tts">moški</annotation>
<annotation cp="🧔">brada | moški | moški: brada | oseba | oseba: brada</annotation>
<annotation cp="🧔" type="tts">oseba: brada</annotation>
- <annotation cp="👱♂">blondinec | fant | lasje | moški | moški: blondinec</annotation>
- <annotation cp="👱♂" type="tts">moški: blondinec</annotation>
- <annotation cp="🧔♀">brada | ženska | ženska: brada</annotation>
- <annotation cp="🧔♀" type="tts">ženska: brada</annotation>
<annotation cp="🧔♂">brada | moški | moški: brada</annotation>
<annotation cp="🧔♂" type="tts">moški: brada</annotation>
+ <annotation cp="👱♂">blondinec | fant | lasje | moški | moški: blondinec</annotation>
+ <annotation cp="👱♂" type="tts">moški: blondinec</annotation>
<annotation cp="👩">dekle | ženska</annotation>
<annotation cp="👩" type="tts">ženska</annotation>
+ <annotation cp="🧔♀">brada | ženska | ženska: brada</annotation>
+ <annotation cp="🧔♀" type="tts">ženska: brada</annotation>
<annotation cp="👱♀">blondinka | dekle | lasje | ženska | ženska: blondinka</annotation>
<annotation cp="👱♀" type="tts">ženska: blondinka</annotation>
<annotation cp="🧓">spolno nevtralen | starejši | starejši odrasli</annotation>
diff --git a/common/annotations/so.xml b/common/annotations/so.xml
index 9a32478..f186773 100644
--- a/common/annotations/so.xml
+++ b/common/annotations/so.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -257,6 +257,8 @@
<annotation cp="🙄" type="tts">waji indho wareegayo leh</annotation>
<annotation cp="😬">naxdin | waji | waji naxdin leh</annotation>
<annotation cp="😬" type="tts">waji naxdin leh</annotation>
+ <annotation cp="😮💨">foodhyid | hawo qadasho | nafisid | neefsasho | taah | waji afka kala qaday | xanshaashaq</annotation>
+ <annotation cp="😮💨" type="tts">waji afka kala qaday</annotation>
<annotation cp="🤥">jiif | qashin | waji | waji jiifo</annotation>
<annotation cp="🤥" type="tts">waji jiifo</annotation>
<annotation cp="😌">caawin | waji | waji niyad jabn</annotation>
@@ -315,8 +317,6 @@
<annotation cp="☹" type="tts">waji macbuus</annotation>
<annotation cp="😮">af | furan | naxariis | waji | waji af furan leh</annotation>
<annotation cp="😮" type="tts">waji af furan leh</annotation>
- <annotation cp="😮💨">foodhyid | hawo qadasho | nafisid | neefsasho | taah | waji afka kala qaday | xanshaashaq</annotation>
- <annotation cp="😮💨" type="tts">waji afka kala qaday</annotation>
<annotation cp="😯">la yaabay | nadiif ah | waji | waji iftiimaayo</annotation>
<annotation cp="😯" type="tts">waji iftiimaayo</annotation>
<annotation cp="😲">amkaag | guud ahaan | la yaab | waji | waji amakaagsan</annotation>
@@ -435,12 +435,12 @@
<annotation cp="❣" type="tts">claamad ujeedka wadnaha</annotation>
<annotation cp="💔">jabay | jabis | wadno jaban</annotation>
<annotation cp="💔" type="tts">wadno jaban</annotation>
- <annotation cp="❤">wadno | wadno cas</annotation>
- <annotation cp="❤" type="tts">wadno cas</annotation>
<annotation cp="❤🔥">gubasho | jacayl | lahasho | wadne | wadne ololaya | wadne xurmaysan</annotation>
<annotation cp="❤🔥" type="tts">wadne ololaya</annotation>
<annotation cp="❤🩹">caafimad qaba | fiican | karan | soo boqsanaya | soo kabanaya | wadne dhaawacan</annotation>
<annotation cp="❤🩹" type="tts">wadne dhaawacan</annotation>
+ <annotation cp="❤">wadno | wadno cas</annotation>
+ <annotation cp="❤" type="tts">wadno cas</annotation>
<annotation cp="🧡">oranji | wadno oranji ah</annotation>
<annotation cp="🧡" type="tts">wadno oranji ah</annotation>
<annotation cp="💛">jaalle | wadno jaalle ah</annotation>
@@ -603,14 +603,14 @@
<annotation cp="👨" type="tts">ninka</annotation>
<annotation cp="🧔">gar | nin | nin: gar | qof</annotation>
<annotation cp="🧔" type="tts">nin: gar</annotation>
- <annotation cp="👱♂">nin | nin timo cad | nin: timo cad | timo | timo cad</annotation>
- <annotation cp="👱♂" type="tts">nin: timo cad</annotation>
- <annotation cp="🧔♀">gabadh | gabadh: gadh | gadh</annotation>
- <annotation cp="🧔♀" type="tts">gabadh: gadh</annotation>
<annotation cp="🧔♂">gadh | nin | nin: gadh</annotation>
<annotation cp="🧔♂" type="tts">nin: gadh</annotation>
+ <annotation cp="👱♂">nin | nin timo cad | nin: timo cad | timo | timo cad</annotation>
+ <annotation cp="👱♂" type="tts">nin: timo cad</annotation>
<annotation cp="👩">naag | qof weyn</annotation>
<annotation cp="👩" type="tts">naag</annotation>
+ <annotation cp="🧔♀">gabadh | gabadh: gadh | gadh</annotation>
+ <annotation cp="🧔♀" type="tts">gabadh: gadh</annotation>
<annotation cp="👱♀">naag | naag timo cad | naag: timo cad | timo | timo cad</annotation>
<annotation cp="👱♀" type="tts">naag: timo cad</annotation>
<annotation cp="🧓">dhexdehexaadnimada jinsiga | jansiga aan la sheegin | qof weyn | weyn</annotation>
diff --git a/common/annotations/sq.xml b/common/annotations/sq.xml
index b3bdb35..870a75a 100644
--- a/common/annotations/sq.xml
+++ b/common/annotations/sq.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -565,6 +565,8 @@
<annotation cp="🙄" type="tts">fytyrë me sytë që rrotullohen</annotation>
<annotation cp="😬">e ngërdheshur | fytyrë | fytyrë e ngërdheshur</annotation>
<annotation cp="😬" type="tts">fytyrë e ngërdheshur</annotation>
+ <annotation cp="😮💨">fishkëllimë | fytyrë me shfryrje | lehtësim | psherëtimë | rënkim | shfryrje</annotation>
+ <annotation cp="😮💨" type="tts">fytyrë me shfryrje</annotation>
<annotation cp="🤥">fytyrë | fytyrë mashtrimi | gënjeshtar | mashtrim | pinok</annotation>
<annotation cp="🤥" type="tts">fytyrë mashtrimi</annotation>
<annotation cp="😌">e lehtësuar | fytyrë | fytyrë e lehtësuar</annotation>
@@ -623,8 +625,6 @@
<annotation cp="☹" type="tts">fytyrë e vrenjtur</annotation>
<annotation cp="😮">e hapur | fytyrë | fytyrë me gojën e hapur | gojë | simpati</annotation>
<annotation cp="😮" type="tts">fytyrë me gojën e hapur</annotation>
- <annotation cp="😮💨">fishkëllimë | fytyrë me shfryrje | lehtësim | psherëtimë | rënkim | shfryrje</annotation>
- <annotation cp="😮💨" type="tts">fytyrë me shfryrje</annotation>
<annotation cp="😯">e çuditur | e habitur | e heshtur | fytyrë | fytyrë e heshtur</annotation>
<annotation cp="😯" type="tts">fytyrë e heshtur</annotation>
<annotation cp="😲">e çuditur | e tronditur | fytyrë | fytyrë e çuditur | plotësisht</annotation>
@@ -743,12 +743,12 @@
<annotation cp="❣" type="tts">zbukurim i trashë me pikëçuditje me zemër</annotation>
<annotation cp="💔">e thyer | i thyer | thyej | zemër | zemër e thyer</annotation>
<annotation cp="💔" type="tts">zemër e thyer</annotation>
- <annotation cp="❤">zemër | zemër e kuqe</annotation>
- <annotation cp="❤" type="tts">zemër e kuqe</annotation>
<annotation cp="❤🔥">dashuri | djegie | epsh | zemër | zemër e shenjtë | zemër në flakë</annotation>
<annotation cp="❤🔥" type="tts">zemër në flakë</annotation>
<annotation cp="❤🩹">kurim | më shëndetshëm | mirë | përmirësim | rikuperim | shërim | zemër në shërim</annotation>
<annotation cp="❤🩹" type="tts">zemër në shërim</annotation>
+ <annotation cp="❤">zemër | zemër e kuqe</annotation>
+ <annotation cp="❤" type="tts">zemër e kuqe</annotation>
<annotation cp="🧡">portokalli | zemër ngjyrë portokalli</annotation>
<annotation cp="🧡" type="tts">zemër ngjyrë portokalli</annotation>
<annotation cp="💛">e verdhë | zemër | zemër e verdhë</annotation>
@@ -911,14 +911,14 @@
<annotation cp="👨" type="tts">burrë</annotation>
<annotation cp="🧔">mjekër | njëri me mjekër</annotation>
<annotation cp="🧔" type="tts">njëri me mjekër</annotation>
- <annotation cp="👱♂">biond | burrë | mashkull</annotation>
- <annotation cp="👱♂" type="tts">burrë biond</annotation>
- <annotation cp="🧔♀">grua | grua: mjekër | mjekër</annotation>
- <annotation cp="🧔♀" type="tts">grua: mjekër</annotation>
<annotation cp="🧔♂">burrë | burrë: mjekër | mjekër</annotation>
<annotation cp="🧔♂" type="tts">burrë: mjekër</annotation>
+ <annotation cp="👱♂">biond | burrë | mashkull</annotation>
+ <annotation cp="👱♂" type="tts">burrë biond</annotation>
<annotation cp="👩">femër | grua</annotation>
<annotation cp="👩" type="tts">grua</annotation>
+ <annotation cp="🧔♀">grua | grua: mjekër | mjekër</annotation>
+ <annotation cp="🧔♀" type="tts">grua: mjekër</annotation>
<annotation cp="👱♀">bionde | femër | grua</annotation>
<annotation cp="👱♀" type="tts">grua bionde</annotation>
<annotation cp="🧓">i ri | i rritur</annotation>
diff --git a/common/annotations/sr.xml b/common/annotations/sr.xml
index b76e874..161443a 100644
--- a/common/annotations/sr.xml
+++ b/common/annotations/sr.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -431,6 +431,8 @@
<annotation cp="🙄" type="tts">лице које колута очима</annotation>
<annotation cp="😬">гримaсa | лице | лице са гримасом</annotation>
<annotation cp="😬" type="tts">лице са гримасом</annotation>
+ <annotation cp="😮💨" draft="contributed">лице издише</annotation>
+ <annotation cp="😮💨" type="tts" draft="contributed">лице издише</annotation>
<annotation cp="🤥">лаж | лажљивац | лица | нос | пинокио</annotation>
<annotation cp="🤥" type="tts">лажљивац</annotation>
<annotation cp="😌">oлaкшaњe | лице | спокој | спокојно лице</annotation>
@@ -489,8 +491,6 @@
<annotation cp="☹" type="tts">намрштено лице</annotation>
<annotation cp="😮">oтвoрeнo | изненађење | лице | лице са отвореним устима | саосeћaњe | уста</annotation>
<annotation cp="😮" type="tts">лице са отвореним устима</annotation>
- <annotation cp="😮💨" draft="contributed">лице издише</annotation>
- <annotation cp="😮💨" type="tts" draft="contributed">лице издише</annotation>
<annotation cp="😯">зaпaњeнo | изнeнaђeњe | изненађено лице | лице | ућуткaнo</annotation>
<annotation cp="😯" type="tts">изненађено лице</annotation>
<annotation cp="😲">зaпaњeнoст | запањено лице | лице | шoк</annotation>
@@ -609,12 +609,12 @@
<annotation cp="❣" type="tts">украсни узвичник у облику великог срца</annotation>
<annotation cp="💔">слoмљeнo | сломљено срце | срцe</annotation>
<annotation cp="💔" type="tts">сломљено срце</annotation>
- <annotation cp="❤">срцe | црвено срце</annotation>
- <annotation cp="❤" type="tts">црвено срце</annotation>
<annotation cp="❤🔥" draft="contributed">запаљено срце</annotation>
<annotation cp="❤🔥" type="tts" draft="contributed">запаљено срце</annotation>
<annotation cp="❤🩹" draft="contributed">рањено срце</annotation>
<annotation cp="❤🩹" type="tts" draft="contributed">рањено срце</annotation>
+ <annotation cp="❤">срцe | црвено срце</annotation>
+ <annotation cp="❤" type="tts">црвено срце</annotation>
<annotation cp="🧡">наранџасто | наранџасто срце | срцe</annotation>
<annotation cp="🧡" type="tts">наранџасто срце</annotation>
<annotation cp="💛">жутo | жуто срце | срцe</annotation>
@@ -777,14 +777,14 @@
<annotation cp="👨" type="tts">мушкарац</annotation>
<annotation cp="🧔">брада | особа са брадом</annotation>
<annotation cp="🧔" type="tts">особа са брадом</annotation>
- <annotation cp="👱♂">мушкарац | плав мушкарац | плава коса</annotation>
- <annotation cp="👱♂" type="tts">плав мушкарац</annotation>
- <annotation cp="🧔♀" draft="contributed">жена: брада</annotation>
- <annotation cp="🧔♀" type="tts" draft="contributed">жена: брада</annotation>
<annotation cp="🧔♂">брада | мушкарац: брада | човек | човек: брада</annotation>
<annotation cp="🧔♂" type="tts">мушкарац: брада</annotation>
+ <annotation cp="👱♂">мушкарац | плав мушкарац | плава коса</annotation>
+ <annotation cp="👱♂" type="tts">плав мушкарац</annotation>
<annotation cp="👩">жeнa | жена</annotation>
<annotation cp="👩" type="tts">жена</annotation>
+ <annotation cp="🧔♀" draft="contributed">жена: брада</annotation>
+ <annotation cp="🧔♀" type="tts" draft="contributed">жена: брада</annotation>
<annotation cp="👱♀">жена | плава коса | плавуша</annotation>
<annotation cp="👱♀" type="tts">плавуша</annotation>
<annotation cp="🧓">неутралан пол | стaрoст | старија одрасла особа</annotation>
diff --git a/common/annotations/sr_Cyrl_BA.xml b/common/annotations/sr_Cyrl_BA.xml
index cda7011..0b6de6c 100644
--- a/common/annotations/sr_Cyrl_BA.xml
+++ b/common/annotations/sr_Cyrl_BA.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -421,6 +421,8 @@
<annotation cp="🙄" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="😬" draft="contributed">↑↑↑</annotation>
<annotation cp="😬" type="tts" draft="contributed">↑↑↑</annotation>
+ <annotation cp="😮💨" draft="contributed">лице издише</annotation>
+ <annotation cp="😮💨" type="tts" draft="contributed">лице издише</annotation>
<annotation cp="🤥" draft="contributed">лажљивац</annotation>
<annotation cp="🤥" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="😌" draft="contributed">спокојно лице</annotation>
@@ -479,8 +481,6 @@
<annotation cp="☹" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="😮" draft="contributed">лице са отвореним устима</annotation>
<annotation cp="😮" type="tts" draft="contributed">↑↑↑</annotation>
- <annotation cp="😮💨" draft="contributed">лице издише</annotation>
- <annotation cp="😮💨" type="tts" draft="contributed">лице издише</annotation>
<annotation cp="😯" draft="contributed">изненађено лице</annotation>
<annotation cp="😯" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="😲" draft="contributed">запањено лице</annotation>
@@ -599,12 +599,12 @@
<annotation cp="❣" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="💔" draft="contributed">сломљено срце</annotation>
<annotation cp="💔" type="tts" draft="contributed">↑↑↑</annotation>
- <annotation cp="❤" draft="contributed">↑↑↑</annotation>
- <annotation cp="❤" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="❤🔥" draft="contributed">запаљено срце</annotation>
<annotation cp="❤🔥" type="tts" draft="contributed">запаљено срце</annotation>
<annotation cp="❤🩹" draft="contributed">срце које зацјељује</annotation>
<annotation cp="❤🩹" type="tts" draft="contributed">срце које зацјељује</annotation>
+ <annotation cp="❤" draft="contributed">↑↑↑</annotation>
+ <annotation cp="❤" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="🧡" draft="contributed">наранџасто срце</annotation>
<annotation cp="🧡" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="💛" draft="contributed">жуто срце</annotation>
@@ -767,14 +767,14 @@
<annotation cp="👨" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="🧔" draft="contributed">↑↑↑</annotation>
<annotation cp="🧔" type="tts" draft="contributed">↑↑↑</annotation>
- <annotation cp="👱♂" draft="contributed">↑↑↑</annotation>
- <annotation cp="👱♂" type="tts" draft="contributed">↑↑↑</annotation>
- <annotation cp="🧔♀" draft="contributed">↑↑↑</annotation>
- <annotation cp="🧔♀" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="🧔♂" draft="contributed">мушкарац: брада</annotation>
<annotation cp="🧔♂" type="tts" draft="contributed">↑↑↑</annotation>
+ <annotation cp="👱♂" draft="contributed">↑↑↑</annotation>
+ <annotation cp="👱♂" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="👩" draft="contributed">↑↑↑</annotation>
<annotation cp="👩" type="tts" draft="contributed">↑↑↑</annotation>
+ <annotation cp="🧔♀" draft="contributed">↑↑↑</annotation>
+ <annotation cp="🧔♀" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="👱♀" draft="contributed">↑↑↑</annotation>
<annotation cp="👱♀" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="🧓" draft="contributed">↑↑↑</annotation>
diff --git a/common/annotations/sr_Latn.xml b/common/annotations/sr_Latn.xml
index da1ecbd..58414b0 100644
--- a/common/annotations/sr_Latn.xml
+++ b/common/annotations/sr_Latn.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -430,6 +430,8 @@
<annotation cp="🙄" type="tts">lice koje koluta očima</annotation>
<annotation cp="😬">grimasa | lice | lice sa grimasom</annotation>
<annotation cp="😬" type="tts">lice sa grimasom</annotation>
+ <annotation cp="😮💨" draft="contributed">lice izdiše</annotation>
+ <annotation cp="😮💨" type="tts" draft="contributed">lice izdiše</annotation>
<annotation cp="🤥">laž | lažljivac | lica | nos | pinokio</annotation>
<annotation cp="🤥" type="tts">lažljivac</annotation>
<annotation cp="😌">lice | olakšanje | spokoj | spokojno lice</annotation>
@@ -488,8 +490,6 @@
<annotation cp="☹" type="tts">namršteno lice</annotation>
<annotation cp="😮">iznenađenje | lice | lice sa otvorenim ustima | otvoreno | saosećanje | usta</annotation>
<annotation cp="😮" type="tts">lice sa otvorenim ustima</annotation>
- <annotation cp="😮💨" draft="contributed">lice izdiše</annotation>
- <annotation cp="😮💨" type="tts" draft="contributed">lice izdiše</annotation>
<annotation cp="😯">iznenađenje | iznenađeno lice | lice | ućutkano | zapanjeno</annotation>
<annotation cp="😯" type="tts">iznenađeno lice</annotation>
<annotation cp="😲">lice | šok | zapanjeno lice | zapanjenost</annotation>
@@ -608,12 +608,12 @@
<annotation cp="❣" type="tts">ukrasni uzvičnik u obliku velikog srca</annotation>
<annotation cp="💔">slomljeno | srce</annotation>
<annotation cp="💔" type="tts">slomljeno srce</annotation>
- <annotation cp="❤">crveno srce | srce</annotation>
- <annotation cp="❤" type="tts">crveno srce</annotation>
<annotation cp="❤🔥" draft="contributed">zapaljeno srce</annotation>
<annotation cp="❤🔥" type="tts" draft="contributed">zapaljeno srce</annotation>
<annotation cp="❤🩹" draft="contributed">ranjeno srce</annotation>
<annotation cp="❤🩹" type="tts" draft="contributed">ranjeno srce</annotation>
+ <annotation cp="❤">crveno srce | srce</annotation>
+ <annotation cp="❤" type="tts">crveno srce</annotation>
<annotation cp="🧡">narandžasto | srce</annotation>
<annotation cp="🧡" type="tts">narandžasto srce</annotation>
<annotation cp="💛">srce | žuto</annotation>
@@ -776,14 +776,14 @@
<annotation cp="👨" type="tts">muškarac</annotation>
<annotation cp="🧔">brada | osoba sa bradom</annotation>
<annotation cp="🧔" type="tts">osoba sa bradom</annotation>
- <annotation cp="👱♂">muškarac | plav muškarac | plava kosa</annotation>
- <annotation cp="👱♂" type="tts">plav muškarac</annotation>
- <annotation cp="🧔♀" draft="contributed">žena: brada</annotation>
- <annotation cp="🧔♀" type="tts" draft="contributed">žena: brada</annotation>
<annotation cp="🧔♂">brada | čovek | čovek: brada | muškarac: brada</annotation>
<annotation cp="🧔♂" type="tts">muškarac: brada</annotation>
+ <annotation cp="👱♂">muškarac | plav muškarac | plava kosa</annotation>
+ <annotation cp="👱♂" type="tts">plav muškarac</annotation>
<annotation cp="👩">žena</annotation>
<annotation cp="👩" type="tts">žena</annotation>
+ <annotation cp="🧔♀" draft="contributed">žena: brada</annotation>
+ <annotation cp="🧔♀" type="tts" draft="contributed">žena: brada</annotation>
<annotation cp="👱♀">plava kosa | plavuša | žena</annotation>
<annotation cp="👱♀" type="tts">plavuša</annotation>
<annotation cp="🧓">neutralan pol | starija odrasla osoba | starost</annotation>
diff --git a/common/annotations/sr_Latn_BA.xml b/common/annotations/sr_Latn_BA.xml
index d7903f8..49db03c 100644
--- a/common/annotations/sr_Latn_BA.xml
+++ b/common/annotations/sr_Latn_BA.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -152,6 +152,8 @@
<annotation cp="😏" type="tts" draft="contributed">lice koje se zlobno smješka</annotation>
<annotation cp="😒" draft="contributed">smoreno lice</annotation>
<annotation cp="🙄" draft="contributed">lice koje koluta očima</annotation>
+ <annotation cp="😮💨" draft="contributed">lice izdiše</annotation>
+ <annotation cp="😮💨" type="tts" draft="contributed">lice izdiše</annotation>
<annotation cp="🤥" draft="contributed">lažljivac</annotation>
<annotation cp="😌" draft="contributed">spokojno lice</annotation>
<annotation cp="😔" draft="contributed">zamišljeno lice</annotation>
@@ -173,8 +175,6 @@
<annotation cp="🤓" draft="contributed">štrebersko lice</annotation>
<annotation cp="😟" draft="contributed">zabrinuto lice</annotation>
<annotation cp="😮" draft="contributed">lice sa otvorenim ustima</annotation>
- <annotation cp="😮💨" draft="contributed">lice izdiše</annotation>
- <annotation cp="😮💨" type="tts" draft="contributed">lice izdiše</annotation>
<annotation cp="😯" draft="contributed">iznenađeno lice</annotation>
<annotation cp="😲" draft="contributed">zapanjeno lice</annotation>
<annotation cp="😳" draft="contributed">zajapureno lice</annotation>
diff --git a/common/annotations/sv.xml b/common/annotations/sv.xml
index a1f4f2e..e542ebd 100644
--- a/common/annotations/sv.xml
+++ b/common/annotations/sv.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -795,6 +795,8 @@
<annotation cp="🙄" type="tts">ansikte som himlar med ögonen</annotation>
<annotation cp="😬">grimaserande ansikte | grimaserar</annotation>
<annotation cp="😬" type="tts">grimaserande ansikte</annotation>
+ <annotation cp="😮💨" draft="provisional">ansikte andas ut</annotation>
+ <annotation cp="😮💨" type="tts" draft="provisional">ansikte andas ut</annotation>
<annotation cp="🤥">ansikte | ljugande ansikte | lögn | pinocchio</annotation>
<annotation cp="🤥" type="tts">ljugande ansikte</annotation>
<annotation cp="😌">lättat ansikte | lättnad</annotation>
@@ -853,8 +855,6 @@
<annotation cp="☹" type="tts">ansikte med sur mun</annotation>
<annotation cp="😮">förvånad | förvånat ansikte | öppen mun</annotation>
<annotation cp="😮" type="tts">förvånat ansikte</annotation>
- <annotation cp="😮💨" draft="provisional">ansikte andas ut</annotation>
- <annotation cp="😮💨" type="tts" draft="provisional">ansikte andas ut</annotation>
<annotation cp="😯">hyssjad | hyssjat ansikte | överraskad | stum | tyst ansikte</annotation>
<annotation cp="😯" type="tts">hyssjat ansikte</annotation>
<annotation cp="😲">chockad | chockat ansikte | förvånad</annotation>
@@ -973,12 +973,12 @@
<annotation cp="❣" type="tts">utropstecken i form av ett hjärta</annotation>
<annotation cp="💔">brustet | brustet hjärta | känslor | trasigt hjärta</annotation>
<annotation cp="💔" type="tts">brustet hjärta</annotation>
- <annotation cp="❤">hjärta | kärlek | rött hjärta</annotation>
- <annotation cp="❤" type="tts">rött hjärta</annotation>
<annotation cp="❤🔥" draft="provisional">brinnande hjärta</annotation>
<annotation cp="❤🔥" type="tts" draft="provisional">brinnande hjärta</annotation>
<annotation cp="❤🩹">friskna till | läkande hjärta | läker | läker sår | repa sig | tillfriskna</annotation>
<annotation cp="❤🩹" type="tts">läkande hjärta</annotation>
+ <annotation cp="❤">hjärta | kärlek | rött hjärta</annotation>
+ <annotation cp="❤" type="tts">rött hjärta</annotation>
<annotation cp="🧡">hjärta i orange | orange</annotation>
<annotation cp="🧡" type="tts">hjärta i orange</annotation>
<annotation cp="💛">gul | gult hjärta | hjärta</annotation>
@@ -1141,14 +1141,14 @@
<annotation cp="👨" type="tts">man</annotation>
<annotation cp="🧔">man med skägg | person med skägg | skägg</annotation>
<annotation cp="🧔" type="tts">man med skägg</annotation>
- <annotation cp="👱♂">blond | man</annotation>
- <annotation cp="👱♂" type="tts">blond man</annotation>
- <annotation cp="🧔♀">kvinna | kvinna: skägg | skägg</annotation>
- <annotation cp="🧔♀" type="tts">kvinna: skägg</annotation>
<annotation cp="🧔♂">man | man: skägg | skägg</annotation>
<annotation cp="🧔♂" type="tts">man: skägg</annotation>
+ <annotation cp="👱♂">blond | man</annotation>
+ <annotation cp="👱♂" type="tts">blond man</annotation>
<annotation cp="👩">kvinna | vuxen</annotation>
<annotation cp="👩" type="tts">kvinna</annotation>
+ <annotation cp="🧔♀">kvinna | kvinna: skägg | skägg</annotation>
+ <annotation cp="🧔♀" type="tts">kvinna: skägg</annotation>
<annotation cp="👱♀">blond | blondin | kvinna</annotation>
<annotation cp="👱♀" type="tts">blond kvinna</annotation>
<annotation cp="🧓">äldre | äldre person | gammal | könsneutral | vuxen</annotation>
diff --git a/common/annotations/sw.xml b/common/annotations/sw.xml
index e855d0f..6f96f27 100644
--- a/common/annotations/sw.xml
+++ b/common/annotations/sw.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -335,6 +335,8 @@
<annotation cp="🙄" type="tts">usio wenye macho yanayorembua</annotation>
<annotation cp="😬">kunja | uso | uso uliokunjwa</annotation>
<annotation cp="😬" type="tts">uso uliokunjwa</annotation>
+ <annotation cp="😮💨">binja | farijika | kite | kukamata | nong’ona | pumua | uso unaopumua</annotation>
+ <annotation cp="😮💨" type="tts">uso unaopumua</annotation>
<annotation cp="🤥">kudanganya | pinocchio | uso unaodanganya | uwongo</annotation>
<annotation cp="🤥" type="tts">uso unaodanganya</annotation>
<annotation cp="😌">farijika | uso | uso uliofarijika</annotation>
@@ -393,8 +395,6 @@
<annotation cp="☹" type="tts">uso ulionuna</annotation>
<annotation cp="😮">funguliwa | huruma | mdomo | uso | uso wenye mdomo ulio wazi</annotation>
<annotation cp="😮" type="tts">uso wenye mdomo ulio wazi</annotation>
- <annotation cp="😮💨">binja | farijika | kite | kukamata | nong’ona | pumua | uso unaopumua</annotation>
- <annotation cp="😮💨" type="tts">uso unaopumua</annotation>
<annotation cp="😯">kunyamaa | kushangazwa | kustaajabu | uso | uso ulionyamaa</annotation>
<annotation cp="😯" type="tts">uso ulionyamaa</annotation>
<annotation cp="😲">kabisa | kushtuliwa | kustaajabishwa | uso | uso uliostaajabu</annotation>
@@ -513,12 +513,12 @@
<annotation cp="❣" type="tts">umbo la moyo lenye alama ya mshangao</annotation>
<annotation cp="💔">moyo | moyo uliovunjika | vunja | vunjika</annotation>
<annotation cp="💔" type="tts">moyo uliovunjika</annotation>
- <annotation cp="❤">moyo | moyo mwekundu</annotation>
- <annotation cp="❤" type="tts">moyo mwekundu</annotation>
<annotation cp="❤🔥">chomeka | moyo | moyo mtakatifu | moyo unaochomeka | penda | tamaa</annotation>
<annotation cp="❤🔥" type="tts">moyo unaochomeka</annotation>
<annotation cp="❤🩹">anaimarika | anapata nafuu | anapona | kurekebisha moyo | mwenye afya | rekebisha | vizuri</annotation>
<annotation cp="❤🩹" type="tts">kurekebisha moyo</annotation>
+ <annotation cp="❤">moyo | moyo mwekundu</annotation>
+ <annotation cp="❤" type="tts">moyo mwekundu</annotation>
<annotation cp="🧡">chungwa | moyo wa rangi ya chungwa</annotation>
<annotation cp="🧡" type="tts">moyo wa rangi ya chungwa</annotation>
<annotation cp="💛">manjano | moyo | moyo wa manjano</annotation>
@@ -681,14 +681,14 @@
<annotation cp="👨" type="tts">mwanamume</annotation>
<annotation cp="🧔">mtu | mtu mwenye ndevu | mtu: ndevu | ndevu</annotation>
<annotation cp="🧔" type="tts">mtu mwenye ndevu</annotation>
- <annotation cp="👱♂">manjano | mwanamume | mwanamume mwenye nywele ya kimanjano | nywele</annotation>
- <annotation cp="👱♂" type="tts">mwanamume mwenye nywele ya kimanjano</annotation>
- <annotation cp="🧔♀">mwanamke | mwanamke: ndevu | ndevu</annotation>
- <annotation cp="🧔♀" type="tts">mwanamke: ndevu</annotation>
<annotation cp="🧔♂">mwanamume | mwanamume: ndevu | ndevu</annotation>
<annotation cp="🧔♂" type="tts">mwanamume: ndevu</annotation>
+ <annotation cp="👱♂">manjano | mwanamume | mwanamume mwenye nywele ya kimanjano | nywele</annotation>
+ <annotation cp="👱♂" type="tts">mwanamume mwenye nywele ya kimanjano</annotation>
<annotation cp="👩">msichana | mwanamke</annotation>
<annotation cp="👩" type="tts">mwanamke</annotation>
+ <annotation cp="🧔♀">mwanamke | mwanamke: ndevu | ndevu</annotation>
+ <annotation cp="🧔♀" type="tts">mwanamke: ndevu</annotation>
<annotation cp="👱♀">manjano | mwanamke | mwanamke mwenye nywele ya kimanjano | nywele</annotation>
<annotation cp="👱♀" type="tts">mwanamke mwenye nywele ya kimanjano</annotation>
<annotation cp="🧓">asiyejitambulisha na jinsia yoyote | mzee</annotation>
diff --git a/common/annotations/ta.xml b/common/annotations/ta.xml
index a7ed11d..57a7620 100644
--- a/common/annotations/ta.xml
+++ b/common/annotations/ta.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -499,6 +499,8 @@
<annotation cp="🙄" type="tts">கண்களை உருட்டும் முகம்</annotation>
<annotation cp="😬">ஈஈஈஈஈஈ! | நக்கல் | பற்களைக் கடிக்கும் முகம் | பற்களைக் கடித்தல்</annotation>
<annotation cp="😬" type="tts">பற்களைக் கடிக்கும் முகம்</annotation>
+ <annotation cp="😮💨">ஆசுவாசம் | ஊதல் | குசுகுசுப்பு | பெருமூச்சு | மூச்சுத்திணறல் | மூச்சுவிடுதல் | மூச்சுவிடும் முகம்</annotation>
+ <annotation cp="😮💨" type="tts">மூச்சுவிடும் முகம்</annotation>
<annotation cp="🤥">ஏமாற்றுவேலை | பொய் | பொய் கூறும் முகம் | முகம்</annotation>
<annotation cp="🤥" type="tts">பொய் கூறும் முகம்</annotation>
<annotation cp="😌">அமைதி | அமைதி முகம் | நிம்மதி | நிம்மதியான முகம் | மன அமைதி</annotation>
@@ -557,8 +559,6 @@
<annotation cp="☹" type="tts">வருத்தமாக இருக்கும் முகம்</annotation>
<annotation cp="😮">அதிர்ச்சி | அய்யோ | திறந்த வாயுடன் முகம்</annotation>
<annotation cp="😮" type="tts">திறந்த வாயுடன் முகம்</annotation>
- <annotation cp="😮💨">ஆசுவாசம் | ஊதல் | குசுகுசுப்பு | பெருமூச்சு | மூச்சுத்திணறல் | மூச்சுவிடுதல் | மூச்சுவிடும் முகம்</annotation>
- <annotation cp="😮💨" type="tts">மூச்சுவிடும் முகம்</annotation>
<annotation cp="😯">அப்படியா! | ஆச்சரியத்தை வெளிப்படுத்தும் முகம் | ஆச்சரியம் | வியப்பு</annotation>
<annotation cp="😯" type="tts">ஆச்சரியத்தை வெளிப்படுத்தும் முகம்</annotation>
<annotation cp="😲">அதிர்ச்சி | அதிர்ச்சியான முகம் | அதிர்ச்சியை வெளிப்படுத்தும் முகம் | நடுக்கம் ஏற்பட்டது | ஷாக்காயிட்டேன்</annotation>
@@ -677,12 +677,12 @@
<annotation cp="❣" type="tts">அளவுக்கதிகமான காதல்</annotation>
<annotation cp="💔">இதயம் | உடைந்த இதயம் | பிரேக் அப்</annotation>
<annotation cp="💔" type="tts">உடைந்த இதயம்</annotation>
- <annotation cp="❤">இதயம் | சிவப்பு | சிவப்புநிற இதயம்</annotation>
- <annotation cp="❤" type="tts">சிவப்புநிற இதயம்</annotation>
<annotation cp="❤🔥">அன்பு | இதயம் | எரிதல் | எரியும் இதயம் | காமம் | புனிதமான இதயம்</annotation>
<annotation cp="❤🔥" type="tts">எரியும் இதயம்</annotation>
<annotation cp="❤🩹">ஆரோக்கியமாதல் | ஒட்டுத்தையலிடப்பட்ட இதயம் | ஒட்டுத்தையலிடப்பட்டது | குணமடைதல் | தேறிவருதல் | நன்றாகுதல் | முன்னேற்றம் அடைதல்</annotation>
<annotation cp="❤🩹" type="tts">ஒட்டுத்தையலிடப்பட்ட இதயம்</annotation>
+ <annotation cp="❤">இதயம் | சிவப்பு | சிவப்புநிற இதயம்</annotation>
+ <annotation cp="❤" type="tts">சிவப்புநிற இதயம்</annotation>
<annotation cp="🧡">ஆரஞ்சு | ஆரஞ்சு நிற இதயம் | இதயம்</annotation>
<annotation cp="🧡" type="tts">ஆரஞ்சு நிற இதயம்</annotation>
<annotation cp="💛">இதயம் | மஞ்சள் | மஞ்சள் நிற இதயம்</annotation>
@@ -845,14 +845,14 @@
<annotation cp="👨" type="tts">ஆண்</annotation>
<annotation cp="🧔">ஆண் | தாடி | தாடி வைத்தவர்</annotation>
<annotation cp="🧔" type="tts">தாடி வைத்தவர்</annotation>
- <annotation cp="👱♂">ஆண் | பொன்னிற முடி கொண்ட ஆண் | பொன்னினிறம் | மஞ்சள் | முடி</annotation>
- <annotation cp="👱♂" type="tts">பொன்னிற முடி கொண்ட ஆண்</annotation>
- <annotation cp="🧔♀">தாடி | தாடி வைத்த பெண் | பெண்</annotation>
- <annotation cp="🧔♀" type="tts">தாடி வைத்த பெண்</annotation>
<annotation cp="🧔♂">ஆண் | தாடி | தாடி வைத்த ஆண்</annotation>
<annotation cp="🧔♂" type="tts">தாடி வைத்த ஆண்</annotation>
+ <annotation cp="👱♂">ஆண் | பொன்னிற முடி கொண்ட ஆண் | பொன்னினிறம் | மஞ்சள் | முடி</annotation>
+ <annotation cp="👱♂" type="tts">பொன்னிற முடி கொண்ட ஆண்</annotation>
<annotation cp="👩">பெண் | மகளிர் | மக்கள்</annotation>
<annotation cp="👩" type="tts">பெண்</annotation>
+ <annotation cp="🧔♀">தாடி | தாடி வைத்த பெண் | பெண்</annotation>
+ <annotation cp="🧔♀" type="tts">தாடி வைத்த பெண்</annotation>
<annotation cp="👱♀">பெண் | பொன்னிற முடி கொண்ட பெண் | பொன்னிறம் | மஞ்சள் | முடி</annotation>
<annotation cp="👱♀" type="tts">பொன்னிற முடி கொண்ட பெண்</annotation>
<annotation cp="🧓">ஆண் | பெண் | மக்கள் | வயதானவர்</annotation>
diff --git a/common/annotations/te.xml b/common/annotations/te.xml
index 7d23746..7b72f2c 100644
--- a/common/annotations/te.xml
+++ b/common/annotations/te.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -511,6 +511,8 @@
<annotation cp="🙄" type="tts">కళ్లు తిప్పుతున్న ముఖం</annotation>
<annotation cp="😬">కోపం | కోపంతో పళ్లు కొరుకుతున్న ముఖం | పళ్లు | ముఖం</annotation>
<annotation cp="😬" type="tts">కోపంతో పళ్లు కొరుకుతున్న ముఖం</annotation>
+ <annotation cp="😮💨" draft="contributed">ఉచ్ఛ్వాస తీసుకుంటున్న ముఖం</annotation>
+ <annotation cp="😮💨" type="tts" draft="contributed">ఉచ్ఛ్వాస తీసుకుంటున్న ముఖం</annotation>
<annotation cp="🤥">అబద్ధం | అబద్ధమాడుతున్న ముఖం | పీకియో | ముఖం</annotation>
<annotation cp="🤥" type="tts">అబద్ధమాడుతున్న ముఖం</annotation>
<annotation cp="😌">ఉపశమనం | ఉపశమనం పొందిన ముఖం | ముఖం</annotation>
@@ -569,8 +571,6 @@
<annotation cp="☹" type="tts">కోపంగా ఉన్న ముఖం</annotation>
<annotation cp="😮">ఆశ్చర్యం | నోరు | నోరు తెరిచి ఉన్న ముఖం | ముఖం</annotation>
<annotation cp="😮" type="tts">నోరు తెరిచి ఉన్న ముఖం</annotation>
- <annotation cp="😮💨" draft="contributed">ఉచ్ఛ్వాస తీసుకుంటున్న ముఖం</annotation>
- <annotation cp="😮💨" type="tts" draft="contributed">ఉచ్ఛ్వాస తీసుకుంటున్న ముఖం</annotation>
<annotation cp="😯">ఆశ్చర్యం | నిశ్శబ్దం | నిశ్శబ్దంగా చూస్తున్న ముఖం | ముఖం</annotation>
<annotation cp="😯" type="tts">నిశ్శబ్దంగా చూస్తున్న ముఖం</annotation>
<annotation cp="😲">ఆశ్చర్యం | ఆశ్చర్యంతో నోరు తెరిచిన ముఖం | నోరు | ముఖం</annotation>
@@ -689,12 +689,12 @@
<annotation cp="❣" type="tts">ఆశ్చర్యార్థకం గుర్తుతో ఉన్న భారమైన నగ</annotation>
<annotation cp="💔">గాయం | గాయపడిన హృదయం | హృదయం</annotation>
<annotation cp="💔" type="tts">గాయపడిన హృదయం</annotation>
- <annotation cp="❤">ఎరుపు | ఎరుపు రంగు హృదయం | హృదయం</annotation>
- <annotation cp="❤" type="tts">ఎరుపు రంగు హృదయం</annotation>
<annotation cp="❤🔥" draft="contributed">మండుతున్న హృదయం</annotation>
<annotation cp="❤🔥" type="tts" draft="contributed">మండుతున్న హృదయం</annotation>
<annotation cp="❤🩹" draft="contributed">కట్టుతో ఉన్న హృదయం</annotation>
<annotation cp="❤🩹" type="tts" draft="contributed">కట్టుతో ఉన్న హృదయం</annotation>
+ <annotation cp="❤">ఎరుపు | ఎరుపు రంగు హృదయం | హృదయం</annotation>
+ <annotation cp="❤" type="tts">ఎరుపు రంగు హృదయం</annotation>
<annotation cp="🧡">ఆరెంజ్ | నారింజ రంగు హృదయం</annotation>
<annotation cp="🧡" type="tts">నారింజ రంగు హృదయం</annotation>
<annotation cp="💛">పసుపు పచ్చ | పసుపు పచ్చ రంగు హృదయం | హృదయం</annotation>
@@ -857,14 +857,14 @@
<annotation cp="👨" type="tts">పురుషుడు</annotation>
<annotation cp="🧔">గడ్డం | గడ్డం గల వ్యక్తి | పురుషుడు | పురుషుడు; గడ్డం</annotation>
<annotation cp="🧔" type="tts">పురుషుడు; గడ్డం</annotation>
- <annotation cp="👱♂">తెల్లని జుట్టు | తెల్లని జుట్టు గల పురుషుడు | పురుషుడు | మగాడు</annotation>
- <annotation cp="👱♂" type="tts">తెల్లని జుట్టు గల పురుషుడు</annotation>
- <annotation cp="🧔♀">గెడ్డం | స్త్రీ | స్త్రీ: గెడ్డం</annotation>
- <annotation cp="🧔♀" type="tts">స్త్రీ: గెడ్డం</annotation>
<annotation cp="🧔♂">గెడ్డం | పురుషుడు | పురుషుడు: గెడ్డం</annotation>
<annotation cp="🧔♂" type="tts">పురుషుడు: గెడ్డం</annotation>
+ <annotation cp="👱♂">తెల్లని జుట్టు | తెల్లని జుట్టు గల పురుషుడు | పురుషుడు | మగాడు</annotation>
+ <annotation cp="👱♂" type="tts">తెల్లని జుట్టు గల పురుషుడు</annotation>
<annotation cp="👩">ఆడది | మహిళ | స్త్రీ</annotation>
<annotation cp="👩" type="tts">మహిళ</annotation>
+ <annotation cp="🧔♀">గెడ్డం | స్త్రీ | స్త్రీ: గెడ్డం</annotation>
+ <annotation cp="🧔♀" type="tts">స్త్రీ: గెడ్డం</annotation>
<annotation cp="👱♀">తెల్లని జుట్టు | తెల్లని జుట్టు గల స్త్రీ | మహిళ | స్త్రీ</annotation>
<annotation cp="👱♀" type="tts">తెల్లని జుట్టు గల స్త్రీ</annotation>
<annotation cp="🧓">లింగం-తటస్థ | వృద్ధ | వృద్ధులు</annotation>
diff --git a/common/annotations/th.xml b/common/annotations/th.xml
index a2aa8d8..e6521cf 100644
--- a/common/annotations/th.xml
+++ b/common/annotations/th.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -795,6 +795,8 @@
<annotation cp="🙄" type="tts">กลอกตา</annotation>
<annotation cp="😬">เบะปาก | ยิงฟัน | หน้า</annotation>
<annotation cp="😬" type="tts">เบะปาก</annotation>
+ <annotation cp="😮💨" draft="contributed">หน้าหายใจออก</annotation>
+ <annotation cp="😮💨" type="tts" draft="contributed">หน้าหายใจออก</annotation>
<annotation cp="🤥">ขี้โกหก | ขี้จุ๊ | จมูกยาว | พิน็อคคิโอ | หน้า</annotation>
<annotation cp="🤥" type="tts">ขี้โกหก</annotation>
<annotation cp="😌">โล่งใจ | หน้า</annotation>
@@ -853,8 +855,6 @@
<annotation cp="☹" type="tts">หน้าบึ้ง</annotation>
<annotation cp="😮">ตกใจ | หน้า | อ้าปาก</annotation>
<annotation cp="😮" type="tts">อ้าปาก</annotation>
- <annotation cp="😮💨" draft="contributed">หน้าหายใจออก</annotation>
- <annotation cp="😮💨" type="tts" draft="contributed">หน้าหายใจออก</annotation>
<annotation cp="😯">หน้า | หน้าจุ๊ๆ | ห่อปาก</annotation>
<annotation cp="😯" type="tts">หน้าจุ๊ๆ</annotation>
<annotation cp="😲">ประหลาดใจ | หน้า | หน้าประหลาดใจ</annotation>
@@ -973,12 +973,12 @@
<annotation cp="❣" type="tts">เครื่องหมายอัศเจรีย์รูปหัวใจ</annotation>
<annotation cp="💔">หัวใจ | อกหัก</annotation>
<annotation cp="💔" type="tts">อกหัก</annotation>
- <annotation cp="❤">หัวใจ | หัวใจแดง | หัวใจสีแดง</annotation>
- <annotation cp="❤" type="tts">หัวใจสีแดง</annotation>
<annotation cp="❤🔥" draft="contributed">ไฟไหม้หัวใจ</annotation>
<annotation cp="❤🔥" type="tts" draft="contributed">ไฟไหม้หัวใจ</annotation>
<annotation cp="❤🩹" draft="contributed">หัวใจที่มีการซ่อมแซม</annotation>
<annotation cp="❤🩹" type="tts" draft="contributed">หัวใจที่มีการซ่อมแซม</annotation>
+ <annotation cp="❤">หัวใจ | หัวใจแดง | หัวใจสีแดง</annotation>
+ <annotation cp="❤" type="tts">หัวใจสีแดง</annotation>
<annotation cp="🧡">สีส้ม | หัวใจสีส้ม</annotation>
<annotation cp="🧡" type="tts">หัวใจสีส้ม</annotation>
<annotation cp="💛">หัวใจ | หัวใจสีเหลือง</annotation>
@@ -1141,14 +1141,14 @@
<annotation cp="👨" type="tts">ผู้ชาย</annotation>
<annotation cp="🧔">คน | ผู้ชาย | ผู้ชายมีเครา | มีเครา | หนวดเครา</annotation>
<annotation cp="🧔" type="tts">ผู้ชายมีเครา</annotation>
- <annotation cp="👱♂">ผม | ผมทอง | ผู้ชาย | ผู้ชายผมทอง</annotation>
- <annotation cp="👱♂" type="tts">ผู้ชายผมทอง</annotation>
- <annotation cp="🧔♀">ผู้หญิง | ผู้หญิงมีเครา | มีเครา</annotation>
- <annotation cp="🧔♀" type="tts">ผู้หญิงมีเครา</annotation>
<annotation cp="🧔♂">ชายมีเครา | ผู้ชาย | ผู้ชายมีเครา | มีเครา</annotation>
<annotation cp="🧔♂" type="tts">ชายมีเครา</annotation>
+ <annotation cp="👱♂">ผม | ผมทอง | ผู้ชาย | ผู้ชายผมทอง</annotation>
+ <annotation cp="👱♂" type="tts">ผู้ชายผมทอง</annotation>
<annotation cp="👩">คน | ผู้หญิง</annotation>
<annotation cp="👩" type="tts">ผู้หญิง</annotation>
+ <annotation cp="🧔♀">ผู้หญิง | ผู้หญิงมีเครา | มีเครา</annotation>
+ <annotation cp="🧔♀" type="tts">ผู้หญิงมีเครา</annotation>
<annotation cp="👱♀">ผม | ผมทอง | ผู้หญิง | ผู้หญิงผมทอง</annotation>
<annotation cp="👱♀" type="tts">ผู้หญิงผมทอง</annotation>
<annotation cp="🧓">แก่ | คนชรา | เป็นกลางทางเพศ | ผู้ใหญ่ | ไม่ระบุเพศ</annotation>
diff --git a/common/annotations/tk.xml b/common/annotations/tk.xml
index aceef9d..1504910 100644
--- a/common/annotations/tk.xml
+++ b/common/annotations/tk.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -445,6 +445,8 @@
<annotation cp="🙄" type="tts">gözüni agdarýan ýüz</annotation>
<annotation cp="😬">ýüz | ýyrşarmak | ýyrşarýan ýüz</annotation>
<annotation cp="😬" type="tts">ýyrşarýan ýüz</annotation>
+ <annotation cp="😮💨">bugarmak | bugarýan ýüz | demikmek | iňňildi | pyşyrdy | rahatlamak | sykylyk</annotation>
+ <annotation cp="😮💨" type="tts">bugarýan ýüz</annotation>
<annotation cp="🤥">buratino | ýalan | ýalançy ýüz | ýüz</annotation>
<annotation cp="🤥" type="tts">ýalançy ýüz</annotation>
<annotation cp="😌">ynjalan | ýüz</annotation>
@@ -503,8 +505,6 @@
<annotation cp="☹" type="tts">çytyk ýüz</annotation>
<annotation cp="😮">açyk | açyk agyzly ýüz | agyz | duýgudaşlyk | ýüz</annotation>
<annotation cp="😮" type="tts">açyk agyzly ýüz</annotation>
- <annotation cp="😮💨">bugarmak | bugarýan ýüz | demikmek | iňňildi | pyşyrdy | rahatlamak | sykylyk</annotation>
- <annotation cp="😮💨" type="tts">bugarýan ýüz</annotation>
<annotation cp="😯">aňalan | aňalyp galan ýüz | geň galan | haýran galan | ýüz</annotation>
<annotation cp="😯" type="tts">aňalyp galan ýüz</annotation>
<annotation cp="😲">aňk-taňk | aňk-taňk bolan ýüz | düýbünden | haýran | ýüz</annotation>
@@ -623,12 +623,12 @@
<annotation cp="❣" type="tts">ýürekli ýüzlenme</annotation>
<annotation cp="💔">döwlen | döwmek | synan ýürek</annotation>
<annotation cp="💔" type="tts">synan ýürek</annotation>
- <annotation cp="❤">gyzyl ýürek | ýürek</annotation>
- <annotation cp="❤" type="tts">gyzyl ýürek</annotation>
<annotation cp="❤🔥">hyjuw | mukaddes ýürek | söýgi | ýanmak | ýanyp duran ýürek | ýürek</annotation>
<annotation cp="❤🔥" type="tts">ýanyp duran ýürek</annotation>
<annotation cp="❤🩹">dikelýän | düzelýän | gowulanýan | gowulaşýan | gowulaşýan ýürek | has sagdyn | oňat</annotation>
<annotation cp="❤🩹" type="tts">gowulaşýan ýürek</annotation>
+ <annotation cp="❤">gyzyl ýürek | ýürek</annotation>
+ <annotation cp="❤" type="tts">gyzyl ýürek</annotation>
<annotation cp="🧡">mämişi | mämişi ýürek</annotation>
<annotation cp="🧡" type="tts">mämişi ýürek</annotation>
<annotation cp="💛">sary | sary ýürek</annotation>
@@ -791,14 +791,14 @@
<annotation cp="👨" type="tts">erkek</annotation>
<annotation cp="🧔">kişi: sakal | şahs | şahs: sakal | sakal</annotation>
<annotation cp="🧔" type="tts">kişi: sakal</annotation>
- <annotation cp="👱♂">erkek adam | erkek adam: sary saç | sary saçly | sary saçly erkek adam</annotation>
- <annotation cp="👱♂" type="tts">erkek adam: sary saç</annotation>
- <annotation cp="🧔♀">aýal | aýal: sakal | sakal</annotation>
- <annotation cp="🧔♀" type="tts">aýal: sakal</annotation>
<annotation cp="🧔♂">adam | adam: sakal | sakal</annotation>
<annotation cp="🧔♂" type="tts">adam: sakal</annotation>
+ <annotation cp="👱♂">erkek adam | erkek adam: sary saç | sary saçly | sary saçly erkek adam</annotation>
+ <annotation cp="👱♂" type="tts">erkek adam: sary saç</annotation>
<annotation cp="👩">aýal | uly ýaşly | zenan</annotation>
<annotation cp="👩" type="tts">zenan</annotation>
+ <annotation cp="🧔♀">aýal | aýal: sakal | sakal</annotation>
+ <annotation cp="🧔♀" type="tts">aýal: sakal</annotation>
<annotation cp="👱♀">saç | sary saçly | zenan | zenan: sary saçly</annotation>
<annotation cp="👱♀" type="tts">zenan: sary saçly</annotation>
<annotation cp="🧓">garry | gartaşan | gartaşan adam | gartaşan kişi | jynsyýeti görkezilmedik | jynsyýeti tapawut etmeýän | uly ýaşly</annotation>
diff --git a/common/annotations/to.xml b/common/annotations/to.xml
index a4e9f3d..2318924 100644
--- a/common/annotations/to.xml
+++ b/common/annotations/to.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -333,6 +333,8 @@
<annotation cp="🙄" type="tts">mata kilokilo</annotation>
<annotation cp="😬">mata mioʻi</annotation>
<annotation cp="😬" type="tts">mata mioʻi</annotation>
+ <annotation cp="😮💨" draft="unconfirmed">mata hō</annotation>
+ <annotation cp="😮💨" type="tts" draft="unconfirmed">mata hō</annotation>
<annotation cp="🤥">mata moe ihu lōloa</annotation>
<annotation cp="🤥" type="tts">mata moe ihu lōloa</annotation>
<annotation cp="😌">mata fakanongononga</annotation>
@@ -391,8 +393,6 @@
<annotation cp="☹" type="tts">mata fingo</annotation>
<annotation cp="😮">mata moe ngutu fakamanga</annotation>
<annotation cp="😮" type="tts">mata moe ngutu fakamanga</annotation>
- <annotation cp="😮💨" draft="unconfirmed">mata hō</annotation>
- <annotation cp="😮💨" type="tts" draft="unconfirmed">mata hō</annotation>
<annotation cp="😯">mata longo</annotation>
<annotation cp="😯" type="tts">mata longo</annotation>
<annotation cp="😲">mata ʻohovale</annotation>
@@ -511,12 +511,12 @@
<annotation cp="❣" type="tts">mafu fakaʻilonga kalanga</annotation>
<annotation cp="💔">loto lavea</annotation>
<annotation cp="💔" type="tts">loto lavea</annotation>
- <annotation cp="❤">mafu kulokula</annotation>
- <annotation cp="❤" type="tts">mafu kulokula</annotation>
<annotation cp="❤🔥" draft="unconfirmed">mafu afi</annotation>
<annotation cp="❤🔥" type="tts" draft="unconfirmed">mafu afi</annotation>
<annotation cp="❤🩹" draft="unconfirmed">mafu monomono</annotation>
<annotation cp="❤🩹" type="tts" draft="unconfirmed">mafu monomono</annotation>
+ <annotation cp="❤">mafu kulokula</annotation>
+ <annotation cp="❤" type="tts">mafu kulokula</annotation>
<annotation cp="🧡">mafu lanumoli</annotation>
<annotation cp="🧡" type="tts">mafu lanumoli</annotation>
<annotation cp="💛">mafu engeenga</annotation>
@@ -679,14 +679,14 @@
<annotation cp="👨" type="tts">tangata</annotation>
<annotation cp="🧔">kava | tokotaha</annotation>
<annotation cp="🧔" type="tts">tokotaha kava</annotation>
- <annotation cp="👱♂">tangata ʻulu kelo</annotation>
- <annotation cp="👱♂" type="tts">tangata ʻulu kelo</annotation>
- <annotation cp="🧔♀" draft="unconfirmed">fefine kava</annotation>
- <annotation cp="🧔♀" type="tts" draft="unconfirmed">fefine kava</annotation>
<annotation cp="🧔♂" draft="unconfirmed">kava | tangata</annotation>
<annotation cp="🧔♂" type="tts">tangata kava</annotation>
+ <annotation cp="👱♂">tangata ʻulu kelo</annotation>
+ <annotation cp="👱♂" type="tts">tangata ʻulu kelo</annotation>
<annotation cp="👩">fefine</annotation>
<annotation cp="👩" type="tts">fefine</annotation>
+ <annotation cp="🧔♀" draft="unconfirmed">fefine kava</annotation>
+ <annotation cp="🧔♀" type="tts" draft="unconfirmed">fefine kava</annotation>
<annotation cp="👱♀">fefine ʻulu kelo</annotation>
<annotation cp="👱♀" type="tts">fefine ʻulu kelo</annotation>
<annotation cp="🧓">tokotaha motuʻa</annotation>
diff --git a/common/annotations/tr.xml b/common/annotations/tr.xml
index e3e3a0e..707a9e6 100644
--- a/common/annotations/tr.xml
+++ b/common/annotations/tr.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -795,6 +795,8 @@
<annotation cp="🙄" type="tts">gözlerini deviren yüz</annotation>
<annotation cp="😬">dişlerini gösteren yüz | yüz</annotation>
<annotation cp="😬" type="tts">dişlerini gösteren yüz</annotation>
+ <annotation cp="😮💨">fısıldama | ıslık | nefes veren yüz | nefes verme | rahatlama | sızlanma</annotation>
+ <annotation cp="😮💨" type="tts">nefes veren yüz</annotation>
<annotation cp="🤥">pinokyo | yalan söyleme | yalan söyleyen yüz | yüz</annotation>
<annotation cp="🤥" type="tts">yalan söyleyen yüz</annotation>
<annotation cp="😌">rahatlamış | yüz</annotation>
@@ -853,8 +855,6 @@
<annotation cp="☹" type="tts">asık surat</annotation>
<annotation cp="😮">ağız | ağzı açık | ağzı açık yüz | yüz</annotation>
<annotation cp="😮" type="tts">ağzı açık yüz</annotation>
- <annotation cp="😮💨">fısıldama | ıslık | nefes veren yüz | nefes verme | rahatlama | sızlanma</annotation>
- <annotation cp="😮💨" type="tts">nefes veren yüz</annotation>
<annotation cp="😯">şaşırmış | şaşkın yüz | şok olmuş | yüz</annotation>
<annotation cp="😯" type="tts">şaşkın yüz</annotation>
<annotation cp="😲">afallamış | şoke olmuş | tamamen şoke olmuş | yüz</annotation>
@@ -973,12 +973,12 @@
<annotation cp="❣" type="tts">kalp şeklinde ünlem işareti</annotation>
<annotation cp="💔">duygu | kalp | kırık kalp | kırılmış | kırma</annotation>
<annotation cp="💔" type="tts">kırık kalp</annotation>
- <annotation cp="❤">kalp | kırmızı kalp</annotation>
- <annotation cp="❤" type="tts">kırmızı kalp</annotation>
<annotation cp="❤🔥">alev | arzu | aşk | ateşli kalp | kalp | kutsal kalp | tutku</annotation>
<annotation cp="❤🔥" type="tts">ateşli kalp</annotation>
<annotation cp="❤🩹">daha sağlıklı | iyi | iyileşen | iyileşen kalp | onarılan</annotation>
<annotation cp="❤🩹" type="tts">iyileşen kalp</annotation>
+ <annotation cp="❤">kalp | kırmızı kalp</annotation>
+ <annotation cp="❤" type="tts">kırmızı kalp</annotation>
<annotation cp="🧡">portakal | turuncu kalp</annotation>
<annotation cp="🧡" type="tts">turuncu kalp</annotation>
<annotation cp="💛">duygu | kalp | sarı</annotation>
@@ -1141,14 +1141,14 @@
<annotation cp="👨" type="tts">erkek</annotation>
<annotation cp="🧔">sakal | sakallı kişi</annotation>
<annotation cp="🧔" type="tts">sakallı kişi</annotation>
- <annotation cp="👱♂">adam | erkek | sarışın</annotation>
- <annotation cp="👱♂" type="tts">sarışın erkek</annotation>
- <annotation cp="🧔♀">kadın | kadın: sakal | sakal</annotation>
- <annotation cp="🧔♀" type="tts">kadın: sakal</annotation>
<annotation cp="🧔♂">erkek | erkek: sakal | sakal</annotation>
<annotation cp="🧔♂" type="tts">erkek: sakal</annotation>
+ <annotation cp="👱♂">adam | erkek | sarışın</annotation>
+ <annotation cp="👱♂" type="tts">sarışın erkek</annotation>
<annotation cp="👩">kadın | kişiler</annotation>
<annotation cp="👩" type="tts">kadın</annotation>
+ <annotation cp="🧔♀">kadın | kadın: sakal | sakal</annotation>
+ <annotation cp="🧔♀" type="tts">kadın: sakal</annotation>
<annotation cp="👱♀">bayan | kadın | sarışın</annotation>
<annotation cp="👱♀" type="tts">sarışın kadın</annotation>
<annotation cp="🧓">kişi | yaşlı | yaşlı yetişkin</annotation>
diff --git a/common/annotations/uk.xml b/common/annotations/uk.xml
index e627c1f..b708fb1 100644
--- a/common/annotations/uk.xml
+++ b/common/annotations/uk.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -641,6 +641,8 @@
<annotation cp="🙄" type="tts">обличчя із закоченими очима</annotation>
<annotation cp="😬">кривляння | обличчя | обличчя з гримасою | скривлене обличчя</annotation>
<annotation cp="😬" type="tts">обличчя з гримасою</annotation>
+ <annotation cp="😮💨">вдих | видих | обличчя, що видихає | полегшення | свист | стогін | шепотіння</annotation>
+ <annotation cp="😮💨" type="tts">обличчя, що видихає</annotation>
<annotation cp="🤥">брехня | обличчя | обличчя, що бреше | піноккіо</annotation>
<annotation cp="🤥" type="tts">обличчя, що бреше</annotation>
<annotation cp="😌">заспокоєне обличчя | обличчя</annotation>
@@ -699,8 +701,6 @@
<annotation cp="☹" type="tts">похмуре обличчя</annotation>
<annotation cp="😮">відкритий | здивоване обличчя з відкритим ротом | обличчя | обличчя з відкритим ротом | рот | співчуття</annotation>
<annotation cp="😮" type="tts">обличчя з відкритим ротом</annotation>
- <annotation cp="😮💨">вдих | видих | обличчя, що видихає | полегшення | свист | стогін | шепотіння</annotation>
- <annotation cp="😮💨" type="tts">обличчя, що видихає</annotation>
<annotation cp="😯">вражений | здивоване і збентежене обличчя з бровами | здивований | обличчя | приголомшений</annotation>
<annotation cp="😯" type="tts">здивоване і збентежене обличчя з бровами</annotation>
<annotation cp="😲">вражене обличчя | здивований | обличчя | шокований</annotation>
@@ -819,12 +819,12 @@
<annotation cp="❣" type="tts">знак оклику у формі серця</annotation>
<annotation cp="💔">розбивати | розбите | серце</annotation>
<annotation cp="💔" type="tts">розбите серце</annotation>
- <annotation cp="❤">серце | червоне серце</annotation>
- <annotation cp="❤" type="tts">червоне серце</annotation>
<annotation cp="❤🔥">жага | любов | опік | палке серце | священне серце | серце</annotation>
<annotation cp="❤🔥" type="tts">палке серце</annotation>
<annotation cp="❤🩹">здоровий | здоровіший | лікування | одужання | покращення | поправка | серце, що заживає</annotation>
<annotation cp="❤🩹" type="tts">серце, що заживає</annotation>
+ <annotation cp="❤">серце | червоне серце</annotation>
+ <annotation cp="❤" type="tts">червоне серце</annotation>
<annotation cp="🧡">оранжеве серце | помаранчевий</annotation>
<annotation cp="🧡" type="tts">оранжеве серце</annotation>
<annotation cp="💛">жовте серце | жовтий | серце</annotation>
@@ -987,14 +987,14 @@
<annotation cp="👨" type="tts">чоловік</annotation>
<annotation cp="🧔">борода | бородань | людина з бородою</annotation>
<annotation cp="🧔" type="tts">людина з бородою</annotation>
- <annotation cp="👱♂">білявий | блондин | волосся | чоловік із білявим волоссям</annotation>
- <annotation cp="👱♂" type="tts">чоловік із білявим волоссям</annotation>
- <annotation cp="🧔♀">борода | бородатий | жінка з бородою</annotation>
- <annotation cp="🧔♀" type="tts">жінка з бородою</annotation>
<annotation cp="🧔♂">борода | бородатий | чоловік із бородою</annotation>
<annotation cp="🧔♂" type="tts">чоловік із бородою</annotation>
+ <annotation cp="👱♂">білявий | блондин | волосся | чоловік із білявим волоссям</annotation>
+ <annotation cp="👱♂" type="tts">чоловік із білявим волоссям</annotation>
<annotation cp="👩">доросла | жінка</annotation>
<annotation cp="👩" type="tts">жінка</annotation>
+ <annotation cp="🧔♀">борода | бородатий | жінка з бородою</annotation>
+ <annotation cp="🧔♀" type="tts">жінка з бородою</annotation>
<annotation cp="👱♀">білява | блондинка | жінка з білявим волоссям</annotation>
<annotation cp="👱♀" type="tts">жінка з білявим волоссям</annotation>
<annotation cp="🧓">гендерно-нейтральний | дорослий | літня людина | неозначеної статі | старий | старша людина</annotation>
@@ -3593,7 +3593,7 @@
<annotation cp="²" type="tts">надрядкова двійка</annotation>
<annotation cp="³">верхній індекс | верхній регістр | надрядкова трійка | три | трійка | у кубі</annotation>
<annotation cp="³" type="tts">надрядкова трійка</annotation>
- <annotation cp="µ">µ | вимірювати | знак мікро | мк | мю</annotation>
+ <annotation cp="µ">μ | вимірювати | знак мікро | мк | мю</annotation>
<annotation cp="µ" type="tts">знак мікро</annotation>
</annotations>
</ldml>
diff --git a/common/annotations/ur.xml b/common/annotations/ur.xml
index 160d521..2640f3d 100644
--- a/common/annotations/ur.xml
+++ b/common/annotations/ur.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -421,6 +421,8 @@
<annotation cp="🙄" type="tts">گھومتی آنکھوں والا چہرہ</annotation>
<annotation cp="😬">چہرہ | مضحکہ خیز چہرہ | ناگواریت</annotation>
<annotation cp="😬" type="tts">مضحکہ خیز چہرہ</annotation>
+ <annotation cp="😮💨" draft="contributed">سانس چھوڑنے والا چہرہ</annotation>
+ <annotation cp="😮💨" type="tts" draft="contributed">سانس چھوڑنے والا چہرہ</annotation>
<annotation cp="🤥">جھوٹ | جھوٹ بولتا چہرہ | چہرہ</annotation>
<annotation cp="🤥" type="tts">جھوٹ بولتا چہرہ</annotation>
<annotation cp="😌">پُر سکون | پُر سکون چہرہ | چہرہ</annotation>
@@ -479,8 +481,6 @@
<annotation cp="☹" type="tts">تیوری زدہ چہرہ</annotation>
<annotation cp="😮">چہرہ | کھلا ہوا | کھلے منہ والا چہرہ | منہ</annotation>
<annotation cp="😮" type="tts">کھلے منہ والا چہرہ</annotation>
- <annotation cp="😮💨" draft="contributed">سانس چھوڑنے والا چہرہ</annotation>
- <annotation cp="😮💨" type="tts" draft="contributed">سانس چھوڑنے والا چہرہ</annotation>
<annotation cp="😯">چہرہ | حیرت | شدید حیرت زدہ چہرہ</annotation>
<annotation cp="😯" type="tts">شدید حیرت زدہ چہرہ</annotation>
<annotation cp="😲">تکلیف | چہرہ | حیرت | حیرت زدہ چہرہ</annotation>
@@ -599,12 +599,12 @@
<annotation cp="❣" type="tts">دلی اظہار</annotation>
<annotation cp="💔">ٹوٹا ہوا | ٹوٹا ہوا دل | دل</annotation>
<annotation cp="💔" type="tts">ٹوٹا ہوا دل</annotation>
- <annotation cp="❤">دل | سرخ</annotation>
- <annotation cp="❤" type="tts">سرخ دل</annotation>
<annotation cp="❤🔥" draft="contributed">جلتی آگ میں دل</annotation>
<annotation cp="❤🔥" type="tts" draft="contributed">جلتی آگ میں دل</annotation>
<annotation cp="❤🩹" draft="contributed">دل کی اصلاح</annotation>
<annotation cp="❤🩹" type="tts" draft="contributed">دل کی اصلاح</annotation>
+ <annotation cp="❤">دل | سرخ</annotation>
+ <annotation cp="❤" type="tts">سرخ دل</annotation>
<annotation cp="🧡">نارنجی | نارنجی دل</annotation>
<annotation cp="🧡" type="tts">نارنجی دل</annotation>
<annotation cp="💛">پیلا | دل</annotation>
@@ -767,14 +767,14 @@
<annotation cp="👨" type="tts">مرد</annotation>
<annotation cp="🧔">داڑھی | داڑھی والا شخص</annotation>
<annotation cp="🧔" type="tts">داڑھی والا شخص</annotation>
- <annotation cp="👱♂">بھورے بال | سنہرے بال | سنہرے بالوں والا مرد | مرد</annotation>
- <annotation cp="👱♂" type="tts">سنہرے بالوں والا مرد</annotation>
- <annotation cp="🧔♀">داڑھی | عورت | عورت: داڑھی</annotation>
- <annotation cp="🧔♀" type="tts">عورت: داڑھی</annotation>
<annotation cp="🧔♂">داڑھی | مرد | مرد: داڑھی</annotation>
<annotation cp="🧔♂" type="tts">مرد: داڑھی</annotation>
+ <annotation cp="👱♂">بھورے بال | سنہرے بال | سنہرے بالوں والا مرد | مرد</annotation>
+ <annotation cp="👱♂" type="tts">سنہرے بالوں والا مرد</annotation>
<annotation cp="👩">انسان | عورت</annotation>
<annotation cp="👩" type="tts">عورت</annotation>
+ <annotation cp="🧔♀">داڑھی | عورت | عورت: داڑھی</annotation>
+ <annotation cp="🧔♀" type="tts">عورت: داڑھی</annotation>
<annotation cp="👱♀">بھورے بال | سنہرے بال | سنہرے بالوں والی عورت | عورت</annotation>
<annotation cp="👱♀" type="tts">سنہرے بالوں والی عورت</annotation>
<annotation cp="🧓">بوڑھا | بوڑھا بالغ | صنفی غیر جانبدار</annotation>
diff --git a/common/annotations/uz.xml b/common/annotations/uz.xml
index d371649..86ba9c7 100644
--- a/common/annotations/uz.xml
+++ b/common/annotations/uz.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -337,6 +337,8 @@
<annotation cp="🙄" type="tts">ko‘zlarini aylantirayotgan yuz</annotation>
<annotation cp="😬">afti burishgan | aftini burishtirish | yuz</annotation>
<annotation cp="😬" type="tts">afti burishgan</annotation>
+ <annotation cp="😮💨">havo olish | hustak chalish | ingrash | nafas chiqarayotgan yuz | nafas chiqarish</annotation>
+ <annotation cp="😮💨" type="tts">nafas chiqarayotgan yuz</annotation>
<annotation cp="🤥">aldayotgan | pinokkio | yolg‘on | yuz</annotation>
<annotation cp="🤥" type="tts">aldayotgan</annotation>
<annotation cp="😌">xotirjam | yuz</annotation>
@@ -395,8 +397,6 @@
<annotation cp="☹" type="tts">arazlagan yuz</annotation>
<annotation cp="😮">hamdardlik | ochiq | og‘iz | og‘zi katta ochiq yuz | yuz</annotation>
<annotation cp="😮" type="tts">og‘zi katta ochiq yuz</annotation>
- <annotation cp="😮💨">havo olish | hustak chalish | ingrash | nafas chiqarayotgan yuz | nafas chiqarish</annotation>
- <annotation cp="😮💨" type="tts">nafas chiqarayotgan yuz</annotation>
<annotation cp="😯">hayratlanayotgan yuz | hayratlangan | karaxt | sukut saqlash | yuz</annotation>
<annotation cp="😯" type="tts">hayratlanayotgan yuz</annotation>
<annotation cp="😲">batamom | hayratlangan | taajjub | yuz</annotation>
@@ -515,12 +515,12 @@
<annotation cp="❣" type="tts">yurak shaklidagi undov belgisi</annotation>
<annotation cp="💔">singan | sinish | yurak</annotation>
<annotation cp="💔" type="tts">singan yurak</annotation>
- <annotation cp="❤">qizil yurak | yurak</annotation>
- <annotation cp="❤" type="tts">qizil yurak</annotation>
<annotation cp="❤🔥">choʻgʻ | ishq | kuydiradi | olov | olovdagi yurak | qizigan qalb | sevgi | yondiradi</annotation>
<annotation cp="❤🔥" type="tts">olovdagi yurak</annotation>
<annotation cp="❤🩹">davolash | malham | shifo | tuzatish | yurakka dori | yurakka malham</annotation>
<annotation cp="❤🩹" type="tts">yurakka malham</annotation>
+ <annotation cp="❤">qizil yurak | yurak</annotation>
+ <annotation cp="❤" type="tts">qizil yurak</annotation>
<annotation cp="🧡">apelsinrang yurak</annotation>
<annotation cp="🧡" type="tts">apelsinrang yurak</annotation>
<annotation cp="💛">sariq | yurak</annotation>
@@ -683,14 +683,14 @@
<annotation cp="👨" type="tts">erkak</annotation>
<annotation cp="🧔">erkak | erkak: soqol | erkak: soqolli | shaxs | soqol | soqolli</annotation>
<annotation cp="🧔" type="tts">erkak: soqolli</annotation>
- <annotation cp="👱♂">erkak | erkak: mallasoch | mallasoch | sariq sochli erkak | soch</annotation>
- <annotation cp="👱♂" type="tts">erkak: mallasoch</annotation>
- <annotation cp="🧔♀">ayol | soqol | soqolli ayol</annotation>
- <annotation cp="🧔♀" type="tts">soqolli ayol</annotation>
<annotation cp="🧔♂">erkak | soqol | soqolli erkak</annotation>
<annotation cp="🧔♂" type="tts">soqolli erkak</annotation>
+ <annotation cp="👱♂">erkak | erkak: mallasoch | mallasoch | sariq sochli erkak | soch</annotation>
+ <annotation cp="👱♂" type="tts">erkak: mallasoch</annotation>
<annotation cp="👩">ayol | katta yoshli</annotation>
<annotation cp="👩" type="tts">ayol</annotation>
+ <annotation cp="🧔♀">ayol | soqol | soqolli ayol</annotation>
+ <annotation cp="🧔♀" type="tts">soqolli ayol</annotation>
<annotation cp="👱♀">ayol | ayol: mallasoch | mallasoch | soch</annotation>
<annotation cp="👱♀" type="tts">ayol: mallasoch</annotation>
<annotation cp="🧓">jinsi noaniq | keksa | neytral jins | qari odam | qariya</annotation>
diff --git a/common/annotations/vi.xml b/common/annotations/vi.xml
index 37b803d..99922c8 100644
--- a/common/annotations/vi.xml
+++ b/common/annotations/vi.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -507,6 +507,8 @@
<annotation cp="🙄" type="tts">mặt có mắt đu đưa</annotation>
<annotation cp="😬">mặt | mặt nhăn nhó | nhăn nhó</annotation>
<annotation cp="😬" type="tts">mặt nhăn nhó</annotation>
+ <annotation cp="😮💨">huýt sáo | mặt thở ra | rên rỉ | thì thầm | thở hổn hển | thở ra</annotation>
+ <annotation cp="😮💨" type="tts">mặt thở ra</annotation>
<annotation cp="🤥">mặt | mặt nói dối | nói dối | pinocchio</annotation>
<annotation cp="🤥" type="tts">mặt nói dối</annotation>
<annotation cp="😌">mặt | mặt nhẹ nhõm | nhẹ nhõm</annotation>
@@ -565,8 +567,6 @@
<annotation cp="☹" type="tts">mặt cau mày</annotation>
<annotation cp="😮">mặt | mặt có miệng há | miệng | mở | thông cảm</annotation>
<annotation cp="😮" type="tts">mặt có miệng há</annotation>
- <annotation cp="😮💨">huýt sáo | mặt thở ra | rên rỉ | thì thầm | thở hổn hển | thở ra</annotation>
- <annotation cp="😮💨" type="tts">mặt thở ra</annotation>
<annotation cp="😯">choáng váng | làm thinh | mặt | mặt làm thinh | ngạc nhiên</annotation>
<annotation cp="😯" type="tts">mặt làm thinh</annotation>
<annotation cp="😲">hoàn toàn | kinh ngạc | mặt | mặt kinh ngạc | sốc</annotation>
@@ -685,12 +685,12 @@
<annotation cp="❣" type="tts">dấu chấm than hình trái tim đậm</annotation>
<annotation cp="💔">bị vỡ | trái tim tan vỡ | vỡ</annotation>
<annotation cp="💔" type="tts">trái tim tan vỡ</annotation>
- <annotation cp="❤">trái tim | trái tim màu đỏ</annotation>
- <annotation cp="❤" type="tts">trái tim màu đỏ</annotation>
<annotation cp="❤🔥">bốc lửa | cháy | thèm khát | tình yêu | trái tim | trái tim bốc lửa | trái tim linh thiêng</annotation>
<annotation cp="❤🔥" type="tts">trái tim bốc lửa</annotation>
<annotation cp="❤🩹">cải thiện | đang lành | hồi phục | khỏe mạnh hơn | phục hồi | trái tim đang lành</annotation>
<annotation cp="❤🩹" type="tts">trái tim đang lành</annotation>
+ <annotation cp="❤">trái tim | trái tim màu đỏ</annotation>
+ <annotation cp="❤" type="tts">trái tim màu đỏ</annotation>
<annotation cp="🧡">màu cam | trái tim màu cam</annotation>
<annotation cp="🧡" type="tts">trái tim màu cam</annotation>
<annotation cp="💛">màu vàng | trái tim màu vàng</annotation>
@@ -853,14 +853,14 @@
<annotation cp="👨" type="tts">đàn ông</annotation>
<annotation cp="🧔">người | người có râu | người đàn ông có râu | râu</annotation>
<annotation cp="🧔" type="tts">người có râu</annotation>
- <annotation cp="👱♂">đàn ông | đàn ông: tóc vàng hoe | người đàn ông tóc vàng hoe | tóc vàng hoe</annotation>
- <annotation cp="👱♂" type="tts">người đàn ông tóc vàng hoe</annotation>
- <annotation cp="🧔♀">người phụ nữ | người phụ nữ có râu | râu</annotation>
- <annotation cp="🧔♀" type="tts">người phụ nữ có râu</annotation>
<annotation cp="🧔♂">người đàn ông | người đàn ông có râu | râu</annotation>
<annotation cp="🧔♂" type="tts">người đàn ông có râu</annotation>
+ <annotation cp="👱♂">đàn ông | đàn ông: tóc vàng hoe | người đàn ông tóc vàng hoe | tóc vàng hoe</annotation>
+ <annotation cp="👱♂" type="tts">người đàn ông tóc vàng hoe</annotation>
<annotation cp="👩">người lớn | phụ nữ</annotation>
<annotation cp="👩" type="tts">phụ nữ</annotation>
+ <annotation cp="🧔♀">người phụ nữ | người phụ nữ có râu | râu</annotation>
+ <annotation cp="🧔♀" type="tts">người phụ nữ có râu</annotation>
<annotation cp="👱♀">người phụ nữ tóc vàng hoe | nữ | phụ nữ | tóc vàng hoe</annotation>
<annotation cp="👱♀" type="tts">người phụ nữ tóc vàng hoe</annotation>
<annotation cp="🧓">già | giới tính không xác định | giới tính trung lập | người lớn tuổi</annotation>
diff --git a/common/annotations/yo_BJ.xml b/common/annotations/yo_BJ.xml
index e39074e..ad26a16 100644
--- a/common/annotations/yo_BJ.xml
+++ b/common/annotations/yo_BJ.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -12,6 +12,16 @@
<territory type="BJ"/>
</identity>
<annotations>
+ <annotation cp="🏻">amɔ́lára | amɔ́láwɔ̀ | irú 1–2</annotation>
+ <annotation cp="🏻" type="tts">amɔ́lára</annotation>
+ <annotation cp="🏼">amɔ́lára díɛ̀ | amɔ́láwɔ̀ | irú 3</annotation>
+ <annotation cp="🏼" type="tts">amɔ́lára díɛ̀</annotation>
+ <annotation cp="🏽">amɔ́láwɔ̀ | amɔ́láwɔ̀ díɛ̀ | irú 4</annotation>
+ <annotation cp="🏽" type="tts">amɔ́láwɔ̀ díɛ̀</annotation>
+ <annotation cp="🏾">adúláwɔ̀ díɛ̀ | amɔ́láwɔ̀ | irú 5</annotation>
+ <annotation cp="🏾" type="tts">adúláwɔ̀ díɛ̀</annotation>
+ <annotation cp="🏿">adúláwɔ̀ | amɔ́láwɔ̀ | irú 6</annotation>
+ <annotation cp="🏿" type="tts">adúláwɔ̀</annotation>
<annotation cp="‾">apɔju</annotation>
<annotation cp="‾" type="tts">apɔju</annotation>
<annotation cp="‽">interrobang</annotation>
@@ -20,5 +30,2519 @@
<annotation cp="‸" type="tts">itɔju</annotation>
<annotation cp="⁂">asterism</annotation>
<annotation cp="⁂" type="tts">asterism</annotation>
+ <annotation cp="😀">fɛyín | ojú | Ojú tó rɛ́rìn</annotation>
+ <annotation cp="😀" type="tts">Ojú tó rɛ́rìn</annotation>
+ <annotation cp="😃">ɛnu | ojú | Ojú tó rɛ́rìn Pɛ̀lú Ɛnu Lílà sílɛ̀ | rɛ́rìń músɛ́ | shí</annotation>
+ <annotation cp="😃" type="tts">Ojú tó rɛ́rìn Pɛ̀lú Ɛnu Lílà sílɛ̀</annotation>
+ <annotation cp="😄">ɛnu | ɛyinjú | ojú | ojú tó ń rɛ́rìń músɛ́ pɛ̀lú ɛnu lílà sílɛ̀ àti ɛyinjú tó ń rkrìń músɛ́ | rɛ́rìń músɛ́ | shí</annotation>
+ <annotation cp="😄" type="tts">ojú tó ń rɛ́rìń músɛ́ pɛ̀lú ɛnu lílà sílɛ̀ àti ɛyinjú tó ń rkrìń músɛ́</annotation>
+ <annotation cp="😁">ɛyinjú | fɛyín | ojú | Ojú tó fɛyín pɛ̀lú Ɛyinjú tó rɛ́rìn músɛ́ | rɛ́rìn músɛ́</annotation>
+ <annotation cp="😁" type="tts">Ojú tó fɛyín pɛ̀lú Ɛyinjú tó rɛ́rìn músɛ́</annotation>
+ <annotation cp="😆">ɛnu | ɛ̀rín | ìtɛ́larùn | ojú | ojú tó ń rɛ́rìń músɛ́ pɛ̀lú ɛnu lílà sílɛ̀ àti òógùn tútù | rɛ́rìń músɛ́</annotation>
+ <annotation cp="😆" type="tts">ojú tó ń rɛ́rìń músɛ́ pɛ̀lú ɛnu lílà sílɛ̀ àti òógùn tútù</annotation>
+ <annotation cp="😅">ojú | ojú tó ń rɛ́rìń pɛ̀lú ɛnu lílà sílɛ̀ àti òógùn | òógùn | òtútù | rɛ́rìń músɛ́ | shí</annotation>
+ <annotation cp="😅" type="tts">ojú tó ń rɛ́rìń pɛ̀lú ɛnu lílà sílɛ̀ àti òógùn</annotation>
+ <annotation cp="🤣">ilɛ̀ | ojú | rɛ́rìń | yíyí | Yíyí ní ilɛ̀nlɛ̀ tún rɛ́rìn</annotation>
+ <annotation cp="🤣" type="tts">Yíyí ní ilɛ̀nlɛ̀ tún rɛ́rìn</annotation>
+ <annotation cp="😂">àyɔ̀ | ɛkún | ɛ̀rín | ojú | Ojú pɛ̀lú ɛkún ayɔ̀</annotation>
+ <annotation cp="😂" type="tts">Ojú pɛ̀lú ɛkún ayɔ̀</annotation>
+ <annotation cp="🙂">ojú | Oju Ti O N Rɛrin Mushɛn | rɛ́rín músɛ́</annotation>
+ <annotation cp="🙂" type="tts">Oju Ti O N Rɛrin Mushɛn</annotation>
+ <annotation cp="🙃">dojú kodò | ojú | Oju Ti O Rɔ walɛ</annotation>
+ <annotation cp="🙃" type="tts">Oju Ti O Rɔ walɛ</annotation>
+ <annotation cp="😉">ojú | Ojú tó shɛ́jù | shɛ́jú</annotation>
+ <annotation cp="😉" type="tts">Ojú tó shɛ́jù</annotation>
+ <annotation cp="😊">ɛyinjú | ojú | Ojú tó rɛ́rìn Músɛ́ Pɛ̀lú Ɛyinjú tó rɛ́rìn Músɛ́ | rɛ́rìń ìtìjù | rɛ́rìń músɛ́</annotation>
+ <annotation cp="😊" type="tts">Ojú tó rɛ́rìn Músɛ́ Pɛ̀lú Ɛyinjú tó rɛ́rìn Músɛ́</annotation>
+ <annotation cp="😇">àlá | àla fú ɔmɔdé | aláìshɛ̀ | àńgɛ́lì | báwo | ojú | Oju Ɛrin Ati Bawo | rɛ́rìn músɛ́</annotation>
+ <annotation cp="😇" type="tts">Oju Ɛrin Ati Bawo</annotation>
+ <annotation cp="😍">ɛyinjú | ìfɛ́ | ojú | Oju Ti O N Rɛrin Pɛlu awɔn oju Ɔkan | rɛ́rìn músɛ́</annotation>
+ <annotation cp="😍" type="tts">Oju Ti O N Rɛrin Pɛlu awɔn oju Ɔkan</annotation>
+ <annotation cp="🤩">ɛyinjú | ìràwɔ̀ | ojú | Pípa pè̩lú ìràwɔ̀ | Rɛ́rìn-ín ìyàlé̩nu</annotation>
+ <annotation cp="🤩" type="tts">Pípa pè̩lú ìràwɔ̀</annotation>
+ <annotation cp="😘">ìfɛnukonu | ojú | Oju Ti O N Fɛ Ifɛnuko</annotation>
+ <annotation cp="😘" type="tts">Oju Ti O N Fɛ Ifɛnuko</annotation>
+ <annotation cp="😗">ìfɛnukonu | ojú | Ojú tó Fɛnuko ɛnu</annotation>
+ <annotation cp="😗" type="tts">Ojú tó Fɛnuko ɛnu</annotation>
+ <annotation cp="☺">ìgbafɛ́ | ìlànà | ojú | ojú tó ń rɛ́rìń músɛ́ | rɛ́rìń músɛ́</annotation>
+ <annotation cp="☺" type="tts">ojú tó ń rɛ́rìń músɛ́</annotation>
+ <annotation cp="😚">ɛyinjú | ìfɛnukonu | ojú | Oju Ti O N Fɛnuko Pɛlu Awɔn Oju didi | ti padé</annotation>
+ <annotation cp="😚" type="tts">Oju Ti O N Fɛnuko Pɛlu Awɔn Oju didi</annotation>
+ <annotation cp="😙">ɛyinjú | ìfɛnukonu | ojú | Ojú tó Fɛnuko ɛnu Pɛ̀lú Ɛyinjú tɔ rɛ́rìn Músɛ́ | rɛ́rìń músɛ́</annotation>
+ <annotation cp="😙" type="tts">Ojú tó Fɛnuko ɛnu Pɛ̀lú Ɛyinjú tɔ rɛ́rìn Músɛ́</annotation>
+ <annotation cp="😋">aládídùn | jíjɛ aládídùn | ojú | Oju Ti O N jɛ Ounjɛ Aladidun | rɛ́rìń músɛ́ | um | yum</annotation>
+ <annotation cp="😋" type="tts">Oju Ti O N jɛ Ounjɛ Aladidun</annotation>
+ <annotation cp="😛">ahɔ́n | ojú | Oju Ti Ahɔn Ti O Yɔ Sita</annotation>
+ <annotation cp="😛" type="tts">Oju Ti Ahɔn Ti O Yɔ Sita</annotation>
+ <annotation cp="😜">ahɔ́n | ɛyinjú | ojú | ojú pɛ̀lú ahɔ́n lílà sílɛ̀ àti ɛyinjú tí ń shɛ́jú | shɛ́jú | yɛ̀yɛ́</annotation>
+ <annotation cp="😜" type="tts">ojú pɛ̀lú ahɔ́n lílà sílɛ̀ àti ɛyinjú tí ń shɛ́jú</annotation>
+ <annotation cp="🤪">kékeré | Nlá | ojú | Ojú ashiwèrè</annotation>
+ <annotation cp="🤪" type="tts">Ojú ashiwèrè</annotation>
+ <annotation cp="😝">ahɔ́n | burújù | ɛyinjú | ìtɔ́wò | ojú | ojú pɛ̀lú ahɔ́n lílà sílɛ̀ àti ɛyinjú tó padé</annotation>
+ <annotation cp="😝" type="tts">ojú pɛ̀lú ahɔ́n lílà sílɛ̀ àti ɛyinjú tó padé</annotation>
+ <annotation cp="🤑">ɛnu | ojú | Oju Ɛnu owo | owó</annotation>
+ <annotation cp="🤑" type="tts">Oju Ɛnu owo</annotation>
+ <annotation cp="🤗">fanimɔ́ra | ojú | oju Ti O fanimɔra</annotation>
+ <annotation cp="🤗" type="tts">oju Ti O fanimɔra</annotation>
+ <annotation cp="🤭">Ikó̩ | Ojú tá fɔwɔ́ bo ɛnu</annotation>
+ <annotation cp="🤭" type="tts">Ojú tá fɔwɔ́ bo ɛnu</annotation>
+ <annotation cp="🤫">dákɛ́ | Ojú tó sùpò̩ | panu mɔ́</annotation>
+ <annotation cp="🤫" type="tts">Ojú tó sùpò̩</annotation>
+ <annotation cp="🤔">ńronú | ojú | Ojú tó Ronú</annotation>
+ <annotation cp="🤔" type="tts">Ojú tó Ronú</annotation>
+ <annotation cp="🤐">ɛnu | ojú | Oju Ɛni Ti A Tipa | tìpa</annotation>
+ <annotation cp="🤐" type="tts">Oju Ɛni Ti A Tipa</annotation>
+ <annotation cp="🤨">àìgbàgbɔ́ | Ìrun ojú ta gbé sókè | Oníyèméjì</annotation>
+ <annotation cp="🤨" type="tts">Ìrun ojú ta gbé sókè</annotation>
+ <annotation cp="😐">àárín | àìpani lɛ́rìń | ojú | Ojú Ìbíìbí</annotation>
+ <annotation cp="😐" type="tts">Ojú Ìbíìbí</annotation>
+ <annotation cp="😑">àìfanimɔ́ra | àìlè sɔ̀rɔ̀ | àìlèsɔ̀rɔ̀ | ojú | Oju Ti Ko Fanimɔra</annotation>
+ <annotation cp="😑" type="tts">Oju Ti Ko Fanimɔra</annotation>
+ <annotation cp="😶">dáké | ɛnu | ojú | Ojú tí kò ní Ɛnu</annotation>
+ <annotation cp="😶" type="tts">Ojú tí kò ní Ɛnu</annotation>
+ <annotation cp="😏">ojú | Oju Ɛrin Abosi | rɛ́rín àbòsí</annotation>
+ <annotation cp="😏" type="tts">Oju Ɛrin Abosi</annotation>
+ <annotation cp="😒">àìdunú | àìfanimɔ́ra | ojú | Oju Aifanimɔra</annotation>
+ <annotation cp="😒" type="tts">Oju Aifanimɔra</annotation>
+ <annotation cp="🙄">àwɔn ɛyinjú | ojú | Ojú Pɛ̀lú Ɛyinjú tó yín | tó yín</annotation>
+ <annotation cp="🙄" type="tts">Ojú Pɛ̀lú Ɛyinjú tó yín</annotation>
+ <annotation cp="😬">ìfaro | ojú | Oju Ifaro</annotation>
+ <annotation cp="😬" type="tts">Oju Ifaro</annotation>
+ <annotation cp="🤥">irɔ́ | ojú | Oju Irɔ | onímú gígùn</annotation>
+ <annotation cp="🤥" type="tts">Oju Irɔ</annotation>
+ <annotation cp="😌">ìtura | ojú | Oju Itura</annotation>
+ <annotation cp="😌" type="tts">Oju Itura</annotation>
+ <annotation cp="😔">ìpòruru | jákulɛ̀ | ojú | Oju Ironu</annotation>
+ <annotation cp="😔" type="tts">Oju Ironu</annotation>
+ <annotation cp="😪">ojú | Oju Iloorun | sùn</annotation>
+ <annotation cp="😪" type="tts">Oju Iloorun</annotation>
+ <annotation cp="🤤">adatɔ | ojú | oju adatɔ</annotation>
+ <annotation cp="🤤" type="tts">oju adatɔ</annotation>
+ <annotation cp="😴">ojú | Oju Ti O N Sun | sss | sùn</annotation>
+ <annotation cp="😴" type="tts">Oju Ti O N Sun</annotation>
+ <annotation cp="😷">àárɛ̀ | dókítà | ìbòjú | ògùn | ojú | Oju Pɛlu Iboju Ishoogun | otútù</annotation>
+ <annotation cp="😷" type="tts">Oju Pɛlu Iboju Ishoogun</annotation>
+ <annotation cp="🤒">àárɛ̀ | ìlera | ojú | oju pɛlu oshuwɔn igbona | òshùwɔ̀n ìgbóná</annotation>
+ <annotation cp="🤒" type="tts">oju pɛlu oshuwɔn igbona</annotation>
+ <annotation cp="🤕">egbò | farapa | ìdì | ojú | Oju Pɛlu Ori ti a de Lɔja</annotation>
+ <annotation cp="🤕" type="tts">Oju Pɛlu Ori ti a de Lɔja</annotation>
+ <annotation cp="🤢">àìlera | èébì | ojú | Oju Ailera</annotation>
+ <annotation cp="🤢" type="tts">Oju Ailera</annotation>
+ <annotation cp="🤮">àìsàn | èébì | Èébì ajɛmɔ́jú</annotation>
+ <annotation cp="🤮" type="tts">Èébì ajɛmɔ́jú</annotation>
+ <annotation cp="🤧">gesundheit | ojú | Oju Sinsin | sín</annotation>
+ <annotation cp="🤧" type="tts">Oju Sinsin</annotation>
+ <annotation cp="😵">itoogbe | ojú | Oju Itoogbe</annotation>
+ <annotation cp="😵" type="tts">Oju Itoogbe</annotation>
+ <annotation cp="🤯">Ìjayà | Orí tó bú gbàmù</annotation>
+ <annotation cp="🤯" type="tts">Orí tó bú gbàmù</annotation>
+ <annotation cp="🤠">adaran | fìlà | obìnrin ɛlɛ́shin | ojú | Oju Fila Adaran</annotation>
+ <annotation cp="🤠" type="tts">Oju Fila Adaran</annotation>
+ <annotation cp="😎">àwɔn gílásì | àwɔn gílásì òrùn | ɛyinjú | ìbojú | mɔ́lɛ̀ | ojú | Oju Ti O N Rɛrin Pɛlu Digi Oju | òrùn | rɛ́rìń músɛ́ | tutù</annotation>
+ <annotation cp="😎" type="tts">Oju Ti O N Rɛrin Pɛlu Digi Oju</annotation>
+ <annotation cp="🤓">ojú | Oju Ɔmɔwe Ti Ko Jafafa | ɔ̀mɔ̀wé | ɔ̀mɔ̀wé tí kò jáfáfá</annotation>
+ <annotation cp="🤓" type="tts">Oju Ɔmɔwe Ti Ko Jafafa</annotation>
+ <annotation cp="🧐">Ojú tó súnkì | Sítɔ́fì</annotation>
+ <annotation cp="🧐" type="tts">Ojú tó súnkì</annotation>
+ <annotation cp="😕">iporuru | ojú | Oju Iporuru</annotation>
+ <annotation cp="😕" type="tts">Oju Iporuru</annotation>
+ <annotation cp="😟">ìdàmú | ojú | Oju Idamu</annotation>
+ <annotation cp="😟" type="tts">Oju Idamu</annotation>
+ <annotation cp="🙁">fajúro | ojú | Oju Ifajuro Diɛ</annotation>
+ <annotation cp="🙁" type="tts">Oju Ifajuro Diɛ</annotation>
+ <annotation cp="☹">fajúro | ojú | ojú tó fajúro</annotation>
+ <annotation cp="☹" type="tts">ojú tó fajúro</annotation>
+ <annotation cp="😮">ɛnu | kɛ́dùn | ojú | Oju Pɛlu Ɛnu Lila | shí</annotation>
+ <annotation cp="😮" type="tts">Oju Pɛlu Ɛnu Lila</annotation>
+ <annotation cp="😯">dákɛ́jɛ́ | ìyàlɛ́nu | ojú | Oju Idakɛjɛ</annotation>
+ <annotation cp="😯" type="tts">Oju Idakɛjɛ</annotation>
+ <annotation cp="😲">ìpaláyà | ìyàlɛ́nu | ojú | ojú ìyalɛnu | pátápátá</annotation>
+ <annotation cp="😲" type="tts">ojú ìyalɛnu</annotation>
+ <annotation cp="😳">ìdùnú | ojú | Oju Idunnu | yàlɛ́nu</annotation>
+ <annotation cp="😳" type="tts">Oju Idunnu</annotation>
+ <annotation cp="😦">ɛnu | fajúro | ojú | Oju Ti o Faro Pɛlu Ɛnu lila silɛ | shí</annotation>
+ <annotation cp="😦" type="tts">Oju Ti o Faro Pɛlu Ɛnu lila silɛ</annotation>
+ <annotation cp="😧">ìrora | ojú</annotation>
+ <annotation cp="😧" type="tts">ojú ìrora</annotation>
+ <annotation cp="😨">ìbɛ̀rù | ojú | Oju Ɛru</annotation>
+ <annotation cp="😨" type="tts">Oju Ɛru</annotation>
+ <annotation cp="😰">búlù | ɛnu | ojú | ojú pɛ̀lú ɛnu lílà sílɛ̀ àti òógùn tútù | òógùn | sáré | shí | tútù</annotation>
+ <annotation cp="😰" type="tts">ojú pɛ̀lú ɛnu lílà sílɛ̀ àti òógùn tútù</annotation>
+ <annotation cp="😥">hmmm | ìjákulɛ̀ | ìtura | ojú | Oju Ijakulɛ Shugbɔn Itura</annotation>
+ <annotation cp="😥" type="tts">Oju Ijakulɛ Shugbɔn Itura</annotation>
+ <annotation cp="😢">ɛkún | ìbànújɛ | ojú | Oju Ɛkun</annotation>
+ <annotation cp="😢" type="tts">Oju Ɛkun</annotation>
+ <annotation cp="😭">ɛkún | ìbànújɛ | ojú | Oju Ti n Sunkun Gidi | sunkún</annotation>
+ <annotation cp="😭" type="tts">Oju Ti n Sunkun Gidi</annotation>
+ <annotation cp="😱">bɛ̀rù | han | ìbɛ̀rù | jɛ | ojú | Oju Fifi Ɛru han an</annotation>
+ <annotation cp="😱" type="tts">Oju Fifi Ɛru han an</annotation>
+ <annotation cp="😖">itiju | ojú | Oju Itiju</annotation>
+ <annotation cp="😖" type="tts">Oju Itiju</annotation>
+ <annotation cp="😣">ìfaradà | ojú | Oju Ifarada</annotation>
+ <annotation cp="😣" type="tts">Oju Ifarada</annotation>
+ <annotation cp="😞">ìjakulɛ | ojú | ojú ìjakulɛ̀</annotation>
+ <annotation cp="😞" type="tts">ojú ìjakulɛ̀</annotation>
+ <annotation cp="😓">ojú | Oju Pɛlu Ilaagun Tutu | òógùn | òtútù</annotation>
+ <annotation cp="😓" type="tts">Oju Pɛlu Ilaagun Tutu</annotation>
+ <annotation cp="😩">ojú | Oju Ti o Rɛ̀ | rírɛ̀</annotation>
+ <annotation cp="😩" type="tts">Oju Ti o Rɛ̀</annotation>
+ <annotation cp="😫">ojú | Oju Rirɛ | rírɛ̀</annotation>
+ <annotation cp="😫" type="tts">Oju Rirɛ</annotation>
+ <annotation cp="😤">ìjagunmólú | ojú | Oju Pɛlu Ikun Nimu | yege</annotation>
+ <annotation cp="😤" type="tts">Oju Pɛlu Ikun Nimu</annotation>
+ <annotation cp="😡">bínú | ojú | Oju Iyaahan | yànhàn</annotation>
+ <annotation cp="😡" type="tts">Oju Iyaahan</annotation>
+ <annotation cp="😠">bínú | ìbínú | ojú | Oju Ibinu</annotation>
+ <annotation cp="😠" type="tts">Oju Ibinu</annotation>
+ <annotation cp="🤬">Àmì ojú tó rékɔjá ɛnu | bíbúra</annotation>
+ <annotation cp="🤬" type="tts">Àmì ojú tó rékɔjá ɛnu</annotation>
+ <annotation cp="😈">àlá | ìtàn ɔmɔdé | ìwo | ojú | Oju Ɛrin Pɛlu Awɔn Iho | rɛ́rìn músɛ́</annotation>
+ <annotation cp="😈" type="tts">Oju Ɛrin Pɛlu Awɔn Iho</annotation>
+ <annotation cp="👿">àlá | èshù | ɛshù | imp | ìtàn ɔmɔdé | ojú | Oju Ibinu Pɛlu Iho</annotation>
+ <annotation cp="👿" type="tts">Oju Ibinu Pɛlu Iho</annotation>
+ <annotation cp="💀">abàmì | ikú | Ipakɔ | ìtán ɔmɔdé | ojú</annotation>
+ <annotation cp="💀" type="tts">Ipakɔ</annotation>
+ <annotation cp="☠">àwɔn egun àgbélébù | ikú | ìpàkɔ́ | ìpàkɔ́ àti àwɔn egun àgbélébù | ojú</annotation>
+ <annotation cp="☠" type="tts">ìpàkɔ́ àti àwɔn egun àgbélébù</annotation>
+ <annotation cp="💩">abàmì | apanilɛ́rìń | ìgbɛ́ | ògùn | ojú | Okiti Igbɛ</annotation>
+ <annotation cp="💩" type="tts">Okiti Igbɛ</annotation>
+ <annotation cp="🤡">apanilɛrin | ojú</annotation>
+ <annotation cp="🤡" type="tts">ojú apanilɛrin</annotation>
+ <annotation cp="👹">abàmì | àlá | ɛ̀dá | ìtàn ɔmɔdé | ojú | Omiran Ajɛniyan</annotation>
+ <annotation cp="👹" type="tts">Omiran Ajɛniyan</annotation>
+ <annotation cp="👺">abàmì | abàmì aràrá | àlá | ɛ̀dá | ìtàn ɔmɔdé | ojú</annotation>
+ <annotation cp="👺" type="tts">abàmì aràrá</annotation>
+ <annotation cp="👻">abàmì | àlá | ɛ̀dá | ìtàn ɔmɔdé | ojú | òkú</annotation>
+ <annotation cp="👻" type="tts">òkú</annotation>
+ <annotation cp="👽">àbàmì | àjòjì | àlá | ɛ̀dá | ìtàn ɔmɔdé | ojú | ufo</annotation>
+ <annotation cp="👽" type="tts">àjòjì</annotation>
+ <annotation cp="👾">àbàmì | àjòjì | Àjòjì Abami | àlá | ɛ̀dá | ìtàn ɔmɔdé | ojú | ufo</annotation>
+ <annotation cp="👾" type="tts">Àjòjì Abami</annotation>
+ <annotation cp="🤖">abàmì | ojú | Oju Shigidi | shìgìdì</annotation>
+ <annotation cp="🤖" type="tts">Oju Shigidi</annotation>
+ <annotation cp="😺">ɛnu | ojú | Oju Arɛrin Ologbo Pɛlu Ɛnu Yiya | olóngbò | rɛ́rìń músɛ́ | shí</annotation>
+ <annotation cp="😺" type="tts">Oju Arɛrin Ologbo Pɛlu Ɛnu Yiya</annotation>
+ <annotation cp="😸">fɛyín | ojú | Oju Ibinu Ologbo Pɛlu Awɔn Oju Arɛrin | olóngbò | rɛ́rìn músɛ́</annotation>
+ <annotation cp="😸" type="tts">Oju Ibinu Ologbo Pɛlu Awɔn Oju Arɛrin</annotation>
+ <annotation cp="😹">ayɔ̀ | ɛkún | ojú | Oju Ologbo Pɛlu Ɛkun Ayɔ | olóngbò</annotation>
+ <annotation cp="😹" type="tts">Oju Ologbo Pɛlu Ɛkun Ayɔ</annotation>
+ <annotation cp="😻">ɛyinjú | ìfɛ́ | ojú | Oju Arɛrin Ologbo Pɛlu Oju-ɔkan | olóngbò | rɛ́rìn músɛ́</annotation>
+ <annotation cp="😻" type="tts">Oju Arɛrin Ologbo Pɛlu Oju-ɔkan</annotation>
+ <annotation cp="😼">aláìríbósheyɛ | ojú | Oju Ologbo Pɛlu Ɛrin Afinishɛsin | olóngbò | rɛ́rìń músɛ́ | shɛ̀sín</annotation>
+ <annotation cp="😼" type="tts">Oju Ologbo Pɛlu Ɛrin Afinishɛsin</annotation>
+ <annotation cp="😽">ɛyinjú | ìfenukonu | Oju Ologbo Afɛnukonu Pɛlu Awɔn Oju Didi | olóngbò</annotation>
+ <annotation cp="😽" type="tts">Oju Ologbo Afɛnukonu Pɛlu Awɔn Oju Didi</annotation>
+ <annotation cp="🙀">haa | ìyàlɛ́nu | ojú | Oju Ologbo Ti o Rɛ | olóngbò | rírɛ̀</annotation>
+ <annotation cp="🙀" type="tts">Oju Ologbo Ti o Rɛ</annotation>
+ <annotation cp="😿">ɛkún | ìbànújɛ́ | ojú | Oju Ɛkun Ologbo | olóngbò</annotation>
+ <annotation cp="😿" type="tts">Oju Ɛkun Ologbo</annotation>
+ <annotation cp="😾">ojú | Oju Ete Ologbo | olóngbo | shu ètè síta</annotation>
+ <annotation cp="😾" type="tts">Oju Ete Ologbo</annotation>
+ <annotation cp="🙈">èshù | èwɔ̀ | ìfɔwɔ́júwè | ojú | ɔ̀bɔ | Ɔbɔ Mari Ibi | rárá | wòó</annotation>
+ <annotation cp="🙈" type="tts">Ɔbɔ Mari Ibi</annotation>
+ <annotation cp="🙉">èshù | èwɔ̀ | gbɔ́ | ìfɔwɔ́júwè | ojú | Ɔbɔ Magbɔ Ibi | rárá</annotation>
+ <annotation cp="🙉" type="tts">Ɔbɔ Magbɔ Ibi</annotation>
+ <annotation cp="🙊">èshù | èwɔ̀ | ìfɔwɔ́júwè | ojú | ɔ̀bɔ | Ɔbɔ Masɔ ibi | rárá | sɔ̀rɔ̀</annotation>
+ <annotation cp="🙊" type="tts">Ɔbɔ Masɔ ibi</annotation>
+ <annotation cp="💋">Aami Ifɛnuko | ètè | fɛnukonu</annotation>
+ <annotation cp="💋" type="tts">Aami Ifɛnuko</annotation>
+ <annotation cp="💌">ìfɛ́ | lɛ́tà | Lɛta Ifɛ | méèlì | ɔkàn</annotation>
+ <annotation cp="💌" type="tts">Lɛta Ifɛ</annotation>
+ <annotation cp="💘">ɔfà | Ɔkan Ti o Ni Ɔfa | ɔmɔ ɔlɔ́fà</annotation>
+ <annotation cp="💘" type="tts">Ɔkan Ti o Ni Ɔfa</annotation>
+ <annotation cp="💝">Ɔkan Pɛlu Riboni | ríbɔ́nì àyájɔ́ olólùfɛ̀</annotation>
+ <annotation cp="💝" type="tts">Ɔkan Pɛlu Riboni</annotation>
+ <annotation cp="💖">dán | dunú | Ɔkan Didan</annotation>
+ <annotation cp="💖" type="tts">Ɔkan Didan</annotation>
+ <annotation cp="💗">bɛ̀rù | dàgbà | dunú | Ɔkan Didagba | shɔkùlú</annotation>
+ <annotation cp="💗" type="tts">Ɔkan Didagba</annotation>
+ <annotation cp="💓">mímí | mímí ɔkàn | Ɔkan Ti O N Mi</annotation>
+ <annotation cp="💓" type="tts">Ɔkan Ti O N Mi</annotation>
+ <annotation cp="💞">Ɔkan Ti O N Yi | yíyí</annotation>
+ <annotation cp="💞" type="tts">Ɔkan Ti O N Yi</annotation>
+ <annotation cp="💕">Awɔn Ɔkan Meji | ìfɛ́</annotation>
+ <annotation cp="💕" type="tts">Awɔn Ɔkan Meji</annotation>
+ <annotation cp="💟">ɔkàn | Ɔkan Ti A She Lɔshɔ</annotation>
+ <annotation cp="💟" type="tts">Ɔkan Ti A She Lɔshɔ</annotation>
+ <annotation cp="❣">àmì | àmì ìyanu | àmì ìyanú ɔkàn tó wúwo | ìfàmìsí</annotation>
+ <annotation cp="❣" type="tts">àmì ìyanú ɔkàn tó wúwo</annotation>
+ <annotation cp="💔">Ibanujɛ Ɔkan | kán | ti kán</annotation>
+ <annotation cp="💔" type="tts">Ibanujɛ Ɔkan</annotation>
+ <annotation cp="❤">ɔkàn | ɔkàn pupa</annotation>
+ <annotation cp="❤" type="tts">ɔkàn pupa</annotation>
+ <annotation cp="🧡">aláwɔ̀ ɔsàn | ɔlakàn ɔsàn</annotation>
+ <annotation cp="🧡" type="tts">ɔlakàn ɔsàn</annotation>
+ <annotation cp="💛">Ɔkan Awɔ Ofeefe | yɛ́lò</annotation>
+ <annotation cp="💛" type="tts">Ɔkan Awɔ Ofeefe</annotation>
+ <annotation cp="💚">àwɔ̀ ewé | Ɔkan Awɔ Ewe</annotation>
+ <annotation cp="💚" type="tts">Ɔkan Awɔ Ewe</annotation>
+ <annotation cp="💙">búlù | Ɔkan Bulu</annotation>
+ <annotation cp="💙" type="tts">Ɔkan Bulu</annotation>
+ <annotation cp="💜">Ɔkan Awɔ Pɔpu | pɔ́pù</annotation>
+ <annotation cp="💜" type="tts">Ɔkan Awɔ Pɔpu</annotation>
+ <annotation cp="🖤">dúdú | èshù | ìkà | Ɔkàn Dúdú</annotation>
+ <annotation cp="🖤" type="tts">Ɔkàn Dúdú</annotation>
+ <annotation cp="💯">100 | ìshirò | koko ɔgɔrun | kún | ɔgɔ́rùn</annotation>
+ <annotation cp="💯" type="tts">koko ɔgɔrun</annotation>
+ <annotation cp="💢">Àmì Ibinu | àwàdà | bínú</annotation>
+ <annotation cp="💢" type="tts">Àmì Ibinu</annotation>
+ <annotation cp="💥">àwàdà | bóòmù | Ikɔlu</annotation>
+ <annotation cp="💥" type="tts">Ikɔlu</annotation>
+ <annotation cp="💫">àwàdà | ìràwɔ̀ | Itoogbe</annotation>
+ <annotation cp="💫" type="tts">Itoogbe</annotation>
+ <annotation cp="💦">àwàdà | Ilaagun Ti N kan | òógùn | tami</annotation>
+ <annotation cp="💦" type="tts">Ilaagun Ti N kan</annotation>
+ <annotation cp="💨">àwàdà | dáàshì | N Salɔ | ń sáré</annotation>
+ <annotation cp="💨" type="tts">N Salɔ</annotation>
+ <annotation cp="🕳">ihò</annotation>
+ <annotation cp="🕳" type="tts">ihò</annotation>
+ <annotation cp="💣">àwàdà | Bɔmbu</annotation>
+ <annotation cp="💣" type="tts">Bɔmbu</annotation>
+ <annotation cp="💬">àdàlú | àwàdà | bàlú | Bàlúnù Ɔ̀rɔ̀ Sísɔ | ìtàkùrɔ̀sɔ | ɔ̀rɔ̀</annotation>
+ <annotation cp="💬" type="tts">Bàlúnù Ɔ̀rɔ̀ Sísɔ</annotation>
+ <annotation cp="👁🗨">bàlú ɔ̀rɔ̀ | eyinjú | ɛléri | ojú ní àlú ɔ̀rɔ̀</annotation>
+ <annotation cp="👁🗨" type="tts">ojú ní àlú ɔ̀rɔ̀</annotation>
+ <annotation cp="🗨">bàlúnù ɔ̀rɔ̀ sísɔ òsì | ìtàkùrɔ̀sɔ | ɔ̀rɔ̀</annotation>
+ <annotation cp="🗨" type="tts">bàlúnù ɔ̀rɔ̀ sísɔ òsì</annotation>
+ <annotation cp="🗯">àdàlú | bàlúnù | bàlúnù ɔ̀rɔ̀ sísɔ ɔ̀tún | bínú</annotation>
+ <annotation cp="🗯" type="tts">bàlúnù ɔ̀rɔ̀ sísɔ ɔ̀tún</annotation>
+ <annotation cp="💭">àdàlú | àwàdà | bàlúnù | Bàlúnù Ero | èrò</annotation>
+ <annotation cp="💭" type="tts">Bàlúnù Ero</annotation>
+ <annotation cp="💤">àwàdà | sùn | Zzz</annotation>
+ <annotation cp="💤" type="tts">Zzz</annotation>
+ <annotation cp="👋">juwɔ́ | N Juwɔ | ń juwɔ́ | ɔwɔ́</annotation>
+ <annotation cp="👋" type="tts">N Juwɔ</annotation>
+ <annotation cp="🤚">ɛ̀yìn ɔwɔ́ | Na Ɛhin Ɔwɔ Soke | nà sókè</annotation>
+ <annotation cp="🤚" type="tts">Na Ɛhin Ɔwɔ Soke</annotation>
+ <annotation cp="🖐">ìka | nawɔ́ sókè pɛ̀lú ìyàka | ɔwɔ́ | yàka</annotation>
+ <annotation cp="🖐" type="tts">nawɔ́ sókè pɛ̀lú ìyàka</annotation>
+ <annotation cp="✋">ɔwɔ́ | Ɔwɔ Nina Soke</annotation>
+ <annotation cp="✋" type="tts">Ɔwɔ Nina Soke</annotation>
+ <annotation cp="🖖">ìka | Kiki Ibɛri Funni | ɔwɔ́ | spock | vulcan</annotation>
+ <annotation cp="🖖" type="tts">Kiki Ibɛri Funni</annotation>
+ <annotation cp="👌">ÓDÁRA | ɔwɔ́ | Ɔwɔ ODARA</annotation>
+ <annotation cp="👌" type="tts">Ɔwɔ ODARA</annotation>
+ <annotation cp="✌">asheyɔrí | ɔwɔ́ | v</annotation>
+ <annotation cp="✌" type="tts">asheyɔrí ɔwɔ́</annotation>
+ <annotation cp="🤞">dábùú | Igbekalera | ìka | orírere | ɔwɔ́</annotation>
+ <annotation cp="🤞" type="tts">Igbekalera</annotation>
+ <annotation cp="🤟">ìfɔwɔ́júwè mo ní ìfɛ́ | ILY | Ɔwɔ́</annotation>
+ <annotation cp="🤟" type="tts">ìfɔwɔ́júwè mo ní ìfɛ́</annotation>
+ <annotation cp="🤘">19900 | Aami Awɔn Iwo | ìka | ìwo | ɔwɔ́</annotation>
+ <annotation cp="🤘" type="tts">Aami Awɔn Iwo</annotation>
+ <annotation cp="🤙">ìpè | ɔwɔ́ | Ɔwɔ Ipeni</annotation>
+ <annotation cp="🤙" type="tts">Ɔwɔ Ipeni</annotation>
+ <annotation cp="👈">ɛ̀yìn ɔwɔ́ | Ɛyin Ɔwɔ Ti O Tɔka Si Apa Osi | ìka | ìka kékeré | ɔ̀gángán | ɔwɔ́</annotation>
+ <annotation cp="👈" type="tts">Ɛyin Ɔwɔ Ti O Tɔka Si Apa Osi</annotation>
+ <annotation cp="👉">ɛ̀yìn ɔwɔ́ | Ɛyin Ɔwɔ Ti O Tɔka Si Apa Ɔtun | ìka | ìka kékeré | ɔ̀gángán | ɔwɔ́</annotation>
+ <annotation cp="👉" type="tts">Ɛyin Ɔwɔ Ti O Tɔka Si Apa Ɔtun</annotation>
+ <annotation cp="👆">ɛ̀yìn ɔwɔ́ | Ɛyin Ɔwɔ Ti O Tɔka Si Oke | ìka | ìka kékeré | ɔwɔ́ | sókè | tɔ́ka</annotation>
+ <annotation cp="👆" type="tts">Ɛyin Ɔwɔ Ti O Tɔka Si Oke</annotation>
+ <annotation cp="🖕">ìka | ìka àárín | ɔwɔ́</annotation>
+ <annotation cp="🖕" type="tts">ìka àárín</annotation>
+ <annotation cp="👇">ɛ̀yìn ɔwɔ́ | Ɛyin Ɔwɔ Ti O Tɔka Si Isalɛ | ìka | ìka kékeré | ìsàlɛ̀ | ɔwɔ́ | tɔ́ka</annotation>
+ <annotation cp="👇" type="tts">Ɛyin Ɔwɔ Ti O Tɔka Si Isalɛ</annotation>
+ <annotation cp="☝">ìka | ìka kékeré | ìka kékeré tí ń tɔ́ka sókè | ɔwɔ́ | sókè | tɔ́ka</annotation>
+ <annotation cp="☝" type="tts">ìka kékeré tí ń tɔ́ka sókè</annotation>
+ <annotation cp="👍">+1 | àtànpàkò | Atanpako Loke | òkè | ɔwɔ́</annotation>
+ <annotation cp="👍" type="tts">Atanpako Loke</annotation>
+ <annotation cp="👎">-1 | àtànpàkò | Atanpako Nisalɛ | ìsàlɛ̀ | ɔwɔ́</annotation>
+ <annotation cp="👎" type="tts">Atanpako Nisalɛ</annotation>
+ <annotation cp="✊">fún ɔwɔ́ pɔ̀ | ìshɛ́ | Nashɛ Soke | òwɔ́ ɛ̀shɛ́</annotation>
+ <annotation cp="✊" type="tts">Nashɛ Soke</annotation>
+ <annotation cp="👊">Ɛshɛ Ti o Nbɔ | fún ɔwɔ́ pɔ̀ | ìshɛ́ | òwɔ́ ɛ̀shɛ́</annotation>
+ <annotation cp="👊" type="tts">Ɛshɛ Ti o Nbɔ</annotation>
+ <annotation cp="🤛">apá ɔ̀sì | Ɛsɛ ti O Kɔju sosi | ɛ̀shɛ́</annotation>
+ <annotation cp="🤛" type="tts">Ɛsɛ ti O Kɔju sosi</annotation>
+ <annotation cp="🤜">apá ɔ̀tún | Ɛsɛ ti O Kɔju sɔtun | ɛ̀shɛ́</annotation>
+ <annotation cp="🤜" type="tts">Ɛsɛ ti O Kɔju sɔtun</annotation>
+ <annotation cp="👏">N Patɛwɔ | ɔwɔ́ | pàtɛ́wɔ́</annotation>
+ <annotation cp="👏" type="tts">N Patɛwɔ</annotation>
+ <annotation cp="🙌">ayɛyɛ | fɔwɔ́júwè | hooray | Ina Awɔn Ɔwɔ | nawɔ́ | ɔwɔ́</annotation>
+ <annotation cp="🙌" type="tts">Ina Awɔn Ɔwɔ</annotation>
+ <annotation cp="👐">Awɔn Ɔwɔ Shishi | ɔwɔ́ | shí</annotation>
+ <annotation cp="👐" type="tts">Awɔn Ɔwɔ Shishi</annotation>
+ <annotation cp="🤲">àdúrà | àtɛ́lɛ́ɔwɔ́ papɔ̀</annotation>
+ <annotation cp="🤲" type="tts">àtɛ́lɛ́ɔwɔ́ papɔ̀</annotation>
+ <annotation cp="🤝">gbɔn | ìbɔwɔ́ | Ìbɔwɔ́ | ìfaramɔ́ | ìpàdé | ɔwɔ</annotation>
+ <annotation cp="🤝" type="tts">Ìbɔwɔ́</annotation>
+ <annotation cp="🙏">adúpé | bèrè | fɔwɔ́júwè | gbèdúrà | Ika Awɔn Ɔwɔ | jɔ̀wɔ́ | kákò | ɔwɔ́ | tɛríba</annotation>
+ <annotation cp="🙏" type="tts">Ika Awɔn Ɔwɔ</annotation>
+ <annotation cp="✍">kɔ̀wé | ńkɔ́wé | ɔwɔ́</annotation>
+ <annotation cp="✍" type="tts">ńkɔ́wé</annotation>
+ <annotation cp="💅">àkun ojú | asharalóge | èékánná | Ikun Eekanna | ìtɔ́jú | kíkùn</annotation>
+ <annotation cp="💅" type="tts">Ikun Eekanna</annotation>
+ <annotation cp="🤳">fóònù | fɔ́tò àdáyà | kámɛ́rà | Yiya Ara ɛni</annotation>
+ <annotation cp="🤳" type="tts">Yiya Ara ɛni</annotation>
+ <annotation cp="💪">àwàdà | Aya Fifɛ | egun ɔwɔ́ | ishan | nà</annotation>
+ <annotation cp="💪" type="tts">Aya Fifɛ</annotation>
+ <annotation cp="👂">Ara | Etí</annotation>
+ <annotation cp="👂" type="tts">Etí</annotation>
+ <annotation cp="👃">Ara | Imu</annotation>
+ <annotation cp="👃" type="tts">Imu</annotation>
+ <annotation cp="🧠">ɔmɔwé | ɔpɔlɔ</annotation>
+ <annotation cp="🧠" type="tts">ɔpɔlɔ</annotation>
+ <annotation cp="👀">Awɔn Ojú | eyinjú | ojú</annotation>
+ <annotation cp="👀" type="tts">Awɔn Ojú</annotation>
+ <annotation cp="👁">Ara | eyinjú</annotation>
+ <annotation cp="👁" type="tts">eyinjú</annotation>
+ <annotation cp="👅">Ahɔn | Ara</annotation>
+ <annotation cp="👅" type="tts">Ahɔn</annotation>
+ <annotation cp="👄">ètè | Ɛnu</annotation>
+ <annotation cp="👄" type="tts">Ɛnu</annotation>
+ <annotation cp="👶">ìkókó | ɔ̀dɔ́</annotation>
+ <annotation cp="👶" type="tts">ìkókó</annotation>
+ <annotation cp="🧒">gé̩ndà-shekushɛyɛ | màjèsín | ɔmɔ</annotation>
+ <annotation cp="🧒" type="tts">ɔmɔ</annotation>
+ <annotation cp="👦">ɔ̀dɔ́ | ɔmɔkùnrin</annotation>
+ <annotation cp="👦" type="tts">ɔmɔkùnrin</annotation>
+ <annotation cp="👧">àmi oshù ìbí | ɔ̀dɔ́ | ɔmɔbìrin | Virgo</annotation>
+ <annotation cp="👧" type="tts">ɔmɔbìrin</annotation>
+ <annotation cp="🧑">àgbà | gé̩ndà-shekushɛyɛ</annotation>
+ <annotation cp="🧑" type="tts">àgbà</annotation>
+ <annotation cp="👱">Eniyan Onirun funfun | oníru funfun</annotation>
+ <annotation cp="👱" type="tts">Eniyan Onirun funfun</annotation>
+ <annotation cp="👨">Ɔkùnrin</annotation>
+ <annotation cp="👨" type="tts">Ɔkùnrin</annotation>
+ <annotation cp="🧔">apárí | irùngbɔ̀n</annotation>
+ <annotation cp="🧔" type="tts">apárí</annotation>
+ <annotation cp="👱♂">onírun funfun | ɔkùnrin | ɔkùnrin onírun funfun</annotation>
+ <annotation cp="👱♂" type="tts">ɔkùnrin onírun funfun</annotation>
+ <annotation cp="👩">Obìnrin</annotation>
+ <annotation cp="👩" type="tts">Obìnrin</annotation>
+ <annotation cp="👱♀">obìnrin | obìnrin onírun funfun | onírun funfun</annotation>
+ <annotation cp="👱♀" type="tts">obìnrin onírun funfun</annotation>
+ <annotation cp="🧓">àgbàlagbà | arúgbó | gé̩ndà-shekushɛyɛ</annotation>
+ <annotation cp="🧓" type="tts">àgbàlagbà</annotation>
+ <annotation cp="👴">àgbàlagbà | Agbalagba Ɔkunrin | ɔkùnrin</annotation>
+ <annotation cp="👴" type="tts">Agbalagba Ɔkunrin</annotation>
+ <annotation cp="👵">agbalagba | Agbalagba Obinrin | obinrin</annotation>
+ <annotation cp="👵" type="tts">Agbalagba Obinrin</annotation>
+ <annotation cp="🙍">Ɛni N Bojujɛ | fajúro | fɔwɔ́júwè</annotation>
+ <annotation cp="🙍" type="tts">Ɛni N Bojujɛ</annotation>
+ <annotation cp="🙍♂">fífajúro | fífowɔ́júwè | ɔkùnrin | ɔkùnrin tí ń fajúro</annotation>
+ <annotation cp="🙍♂" type="tts">ɔkùnrin tí ń fajúro</annotation>
+ <annotation cp="🙍♀">fífajúro | fɔwɔ́júwè | obìnrin | obìnrin tí ń fajúro</annotation>
+ <annotation cp="🙍♀" type="tts">obìnrin tí ń fajúro</annotation>
+ <annotation cp="🙎">Ɛni Yahɔn sita | fífowɔ́júwè | shíshù ètè síta</annotation>
+ <annotation cp="🙎" type="tts">Ɛni Yahɔn sita</annotation>
+ <annotation cp="🙎♂">fowɔ́júwè | ɔkùnrin | ɔkùnrin tí ń shíshù ètè síta | shíshù ètè síta</annotation>
+ <annotation cp="🙎♂" type="tts">ɔkùnrin tí ń shíshù ètè síta</annotation>
+ <annotation cp="🙎♀">fowɔ́júwè | obìnrin | obìnrin tí ń shíshù ètè síta | shíshù ètè síta</annotation>
+ <annotation cp="🙎♀" type="tts">obìnrin tí ń shíshù ètè síta</annotation>
+ <annotation cp="🙅">èwɔ̀ | Ɛni Nsɔ RARA | fowɔ́júwè | ɔwɔ́ | rárá</annotation>
+ <annotation cp="🙅" type="tts">Ɛni Nsɔ RARA</annotation>
+ <annotation cp="🙅♂">èwɔ̀ | fowɔ́júwè | ɔkùnrin tí ń sɔ RÁRÁ | ɔwɔ́ | rárá</annotation>
+ <annotation cp="🙅♂" type="tts">ɔkùnrin tí ń sɔ RÁRÁ</annotation>
+ <annotation cp="🙅♀">èwɔ̀ | fowɔ́júwè | obìnrin | obìnrin tí ń sɔ RÁRÁ | ɔwɔ́ | rárá</annotation>
+ <annotation cp="🙅♀" type="tts">obìnrin tí ń sɔ RÁRÁ</annotation>
+ <annotation cp="🙆">Ɛni Nsɔ O DARA | fowɔ́júwè | ÓDÁRA | ɔwɔ́</annotation>
+ <annotation cp="🙆" type="tts">Ɛni Nsɔ O DARA</annotation>
+ <annotation cp="🙆♂">fowɔ́júwé | ÓDÁRA | ɔkùnrin | ɔkùnrin tí ń sɔ ÓDÁRA | ɔwɔ́</annotation>
+ <annotation cp="🙆♂" type="tts">ɔkùnrin tí ń sɔ ÓDÁRA</annotation>
+ <annotation cp="🙆♀">fowɔ́júwè | obìnrin | obìnrin tí ń sɔ ÓDÁRA | ÓDÁRA | ɔwɔ́</annotation>
+ <annotation cp="🙆♀" type="tts">obìnrin tí ń sɔ ÓDÁRA</annotation>
+ <annotation cp="💁">Ɛni N Tɔka Ɔwɔ | ìrànwɔ́ | ìròyìn | ɔlɔyaya | ɔwɔ́ | tɔ́ka</annotation>
+ <annotation cp="💁" type="tts">Ɛni N Tɔka Ɔwɔ</annotation>
+ <annotation cp="💁♂">ɔkùnrin | ɔkùnrin tí ń tɔ́ka ɔwɔ́ | sassy | taka ɔwɔ́</annotation>
+ <annotation cp="💁♂" type="tts">ɔkùnrin tí ń tɔ́ka ɔwɔ́</annotation>
+ <annotation cp="💁♀">obìnrin | obìnrin tí ń tɔ́ka ɔwɔ́ | sassy | tɔ́ka ɔwɔ́</annotation>
+ <annotation cp="💁♀" type="tts">obìnrin tí ń tɔ́ka ɔwɔ́</annotation>
+ <annotation cp="🙋">Ɛni N Nawɔ Soke | fɔwɔ́júwè | gbéga | ìdùnú | ɔwɔ́</annotation>
+ <annotation cp="🙋" type="tts">Ɛni N Nawɔ Soke</annotation>
+ <annotation cp="🙋♂">fɔwɔ́júwè | nawɔ́ sókè | ɔkùnrin | ɔkùnrintí ń nawɔ́ sókè</annotation>
+ <annotation cp="🙋♂" type="tts">ɔkùnrintí ń nawɔ́ sókè</annotation>
+ <annotation cp="🙋♀">fɔwɔ́júwè | nawɔ́ sókè | obìnrin | obìnrin tí ń nawɔ́ sókè</annotation>
+ <annotation cp="🙋♀" type="tts">obìnrin tí ń nawɔ́ sókè</annotation>
+ <annotation cp="🙇">bɛ̀bɛ̀ | Ɛni N Tɛriba | fɔwɔ́júwè | pɛ̀lɛ́ | tɛríba</annotation>
+ <annotation cp="🙇" type="tts">Ɛni N Tɛriba</annotation>
+ <annotation cp="🙇♂">àànú | bɛ̀bɛ̀ | fɔwɔ́júwè | ɔkùnrin | ɔkùnrin tí ń tɛríba | pɛ̀lɛ́ | títɛríba</annotation>
+ <annotation cp="🙇♂" type="tts">ɔkùnrin tí ń tɛríba</annotation>
+ <annotation cp="🙇♀">àànú | bɛ̀bɛ̀ | fɔwɔ́júwè | obìnrin | obìnrin tí ń tɛríba | pɛ̀lɛ́ | títɛríba</annotation>
+ <annotation cp="🙇♀" type="tts">obìnrin tí ń tɛríba</annotation>
+ <annotation cp="🤦">àìgbàgbɔ́ | àtɛ́lɛ́ ɔwa | Ɛni Fɔwɔ Boju | ìkórira | ojú</annotation>
+ <annotation cp="🤦" type="tts">Ɛni Fɔwɔ Boju</annotation>
+ <annotation cp="🤦♂">àìgbàgbɔ́ | fɔwɔ́bojú | ìkórira | okùnrin | ɔkùnrin tín fɔwɔ́bojú</annotation>
+ <annotation cp="🤦♂" type="tts">ɔkùnrin tín fɔwɔ́bojú</annotation>
+ <annotation cp="🤦♀">àìgbàgbɔ́ | fɔwɔ́bojú | ìkórira | obìnrí tín fɔwɔ́bojú | obìnrin</annotation>
+ <annotation cp="🤦♀" type="tts">obìnrí tín fɔwɔ́bojú</annotation>
+ <annotation cp="🤷">àìmɔ̀kan | àìnání | Ɛni N Gunpa | gúnpá | iyèméjì</annotation>
+ <annotation cp="🤷" type="tts">Ɛni N Gunpa</annotation>
+ <annotation cp="🤷♂">àìmɔ̀kan | àìnání | gúnpá | iyèméjì | ɔkùnrin | ɔkùnrin tí ń gúnpá</annotation>
+ <annotation cp="🤷♂" type="tts">ɔkùnrin tí ń gúnpá</annotation>
+ <annotation cp="🤷♀">àìmɔ̀kan | àìnánní | gúnpá | iyèméjì | obìnrin | obìǹrin tí ń gúnpa</annotation>
+ <annotation cp="🤷♀" type="tts">obìǹrin tí ń gúnpa</annotation>
+ <annotation cp="👨⚕">ajɔ ìlera | dókítà | nɔ́ɔ̀sì | olùdámɔ̀ràn | ɔkùnrin | ɔkùnrín òshìshɛ́ ètò ìlera</annotation>
+ <annotation cp="👨⚕" type="tts">ɔkùnrín òshìshɛ́ ètò ìlera</annotation>
+ <annotation cp="👩⚕">ajɔ ìlera | dókítà | nɔ́ɔ̀sì | obìrin | obìrin òshìshɛ́ ètò ìlera | olùdámɔ̀ràn</annotation>
+ <annotation cp="👩⚕" type="tts">obìrin òshìshɛ́ ètò ìlera</annotation>
+ <annotation cp="👨🎓">akɛ́kɔ̀ɔ́ | kàwégboyè | ɔkùnrin</annotation>
+ <annotation cp="👨🎓" type="tts">ɔkùnrin akɛ́kɔ̀ɔ́</annotation>
+ <annotation cp="👩🎓">akɛ́kɔ̀ɔ́ | kàwégboyè | obìrin</annotation>
+ <annotation cp="👩🎓" type="tts">obìrin akɛ́kɔ̀ɔ́</annotation>
+ <annotation cp="👨🏫">olùkɔ́ | olùtanisɔ́nà | ɔkùnrin | ɔ̀mɔ̀wé àgbà</annotation>
+ <annotation cp="👨🏫" type="tts">ɔkùnrin olùkɔ́</annotation>
+ <annotation cp="👩🏫">obìnrin olùkɔ́ | obìrin | olùkɔ́ | olùtanisɔ́nà | ɔ̀mɔ̀wé àgbà</annotation>
+ <annotation cp="👩🏫" type="tts">obìnrin olùkɔ́</annotation>
+ <annotation cp="👨⚖">òdodo onídajɔ | ɔkùnrin adájɔ́</annotation>
+ <annotation cp="👨⚖" type="tts">ɔkùnrin adájɔ́</annotation>
+ <annotation cp="👩⚖">adájɔ́ | obìnrin adájɔ́ | obìrin síkélì</annotation>
+ <annotation cp="👩⚖" type="tts">obìnrin adájɔ́</annotation>
+ <annotation cp="👨🌾">àgbɛ́ | ashɔ́gbà | olùtɔ́jú màlùú | ɔkùnrin</annotation>
+ <annotation cp="👨🌾" type="tts">ɔkùnrin àgbɛ́</annotation>
+ <annotation cp="👩🌾">àgbɛ́ | ashɔ́gbà | obìrin | obìrinàgbɛ́ | olùtɔ́jú màlùú</annotation>
+ <annotation cp="👩🌾" type="tts">obìrinàgbɛ́</annotation>
+ <annotation cp="👨🍳">olúse ónjɛ | olùse ónjɛ | ɔkùnrin | ɔkùnrin olùse ónjɛ</annotation>
+ <annotation cp="👨🍳" type="tts">ɔkùnrin olùse ónjɛ</annotation>
+ <annotation cp="👩🍳">obìrin | obìrin olùse ónjɛ | olúse ónjɛ | olùse ónjɛ</annotation>
+ <annotation cp="👩🍳" type="tts">obìrin olùse ónjɛ</annotation>
+ <annotation cp="👨🔧">atún ináshe | atún ɔkɔ̀ she | ɛni shòwò | ɔkùnrin | ɔkùnrin atún ɔkɔ̀ she | pílɔ́bà</annotation>
+ <annotation cp="👨🔧" type="tts">ɔkùnrin atún ɔkɔ̀ she</annotation>
+ <annotation cp="👩🔧">atún ináshe | atún ɔkɔ̀ she | ɛni shòwò | obìrin | obìrin atún ɔkɔ̀ she | pílɔ́bà</annotation>
+ <annotation cp="👩🔧" type="tts">obìrin atún ɔkɔ̀ she</annotation>
+ <annotation cp="👨🏭">ilé ishɛ́ | ìpéjɔpɔ̀ | òshìshɛ́ | ɔkùnrin | ɔkùnrin òshìshɛ́ ilé-ishɛ́</annotation>
+ <annotation cp="👨🏭" type="tts">ɔkùnrin òshìshɛ́ ilé-ishɛ́</annotation>
+ <annotation cp="👩🏭">ilé ishɛ́ | ìpéjɔpɔ̀ | obìrin | obìrin òshìshɛ́ ilé-ishɛ́ | òshìshɛ́</annotation>
+ <annotation cp="👩🏭" type="tts">obìrin òshìshɛ́ ilé-ishɛ́</annotation>
+ <annotation cp="👨💼">alábóòjútò | ishɛ́ ɔ́físì | olùyà ilé | òwò | ɔ́físì | ɔkùnrin | ɔkùnrin òshìshɛ́ ɔ́físì</annotation>
+ <annotation cp="👨💼" type="tts">ɔkùnrin òshìshɛ́ ɔ́físì</annotation>
+ <annotation cp="👩💼">alábóòjútò | ishɛ́ ɔ́físì | obìrin | obìrin òshìshɛ́ ɔ́físì | olùyà ilé | òwò | ɔ́físì</annotation>
+ <annotation cp="👩💼" type="tts">obìrin òshìshɛ́ ɔ́físì</annotation>
+ <annotation cp="👨🔬">bìyólɔ́gì | físísítì | kɛ́mísítì | onímɔ̀ ìshirò | onímɔ̀ lrɔ | onímɔ̀ síyɛ́nsì | ɔkùnrin | ɔkùnrín síyɛ́nsì</annotation>
+ <annotation cp="👨🔬" type="tts">ɔkùnrín síyɛ́nsì</annotation>
+ <annotation cp="👩🔬">bìyólɔ́gì | físísítì | kɛ́mísítì | obìrin | obìrin síyɛ́nsì | onímɔ̀ ìshirò | onímɔ̀ lrɔ | onímɔ̀ síyɛ́nsì</annotation>
+ <annotation cp="👩🔬" type="tts">obìrin síyɛ́nsì</annotation>
+ <annotation cp="👨💻">ɛ̀yà àrídimú | kódà | olùdásílɛ̀ | olùmúgbɛ́rù | onímɔ̀ ɛ̀rɔ | ɔkùnrin | ɔkùnrin oníms ɛ̀rɔ</annotation>
+ <annotation cp="👨💻" type="tts">ɔkùnrin oníms ɛ̀rɔ</annotation>
+ <annotation cp="👩💻">ɛ̀yà àrídimú | kódà | obìrin | obìrin onímɔ̀ ɛ̀rɔ | olùdásílɛ̀ | olùmúgbɛ́rù | onímɔ̀ ɛ̀rɔ</annotation>
+ <annotation cp="👩💻" type="tts">obìrin onímɔ̀ ɛ̀rɔ</annotation>
+ <annotation cp="👨🎤">adánirárayá | akɔrin | àpáta | ìràwɔ̀ | ɔkùnrin | ɔkùnrin olórin | ɔshèré</annotation>
+ <annotation cp="👨🎤" type="tts">ɔkùnrin olórin</annotation>
+ <annotation cp="👩🎤">adánirárayá | akɔrin | àpáta | ìràwɔ̀ | obìnrin olórin | obìrin | ɔshèré</annotation>
+ <annotation cp="👩🎤" type="tts">obìnrin olórin</annotation>
+ <annotation cp="👨🎨">òshèré | ɔkùnrin | páalɛ́ttì</annotation>
+ <annotation cp="👨🎨" type="tts">ɔkùnrin òshèré</annotation>
+ <annotation cp="👩🎨">obìrin | obìrin òshèré | òshèré pálɛ́ttì</annotation>
+ <annotation cp="👩🎨" type="tts">obìrin òshèré</annotation>
+ <annotation cp="👨✈">awa ɔks bálú | bàlú | ɔkùnrin | ɔkùnrin awa ɔkɔ́ bàlú</annotation>
+ <annotation cp="👨✈" type="tts">ɔkùnrin awa ɔkɔ́ bàlú</annotation>
+ <annotation cp="👩✈">awa ɔkɔ̀ bálú | bàlú | obìrin | obìrin awa ɔkɔ́ bàlú</annotation>
+ <annotation cp="👩✈" type="tts">obìrin awa ɔkɔ́ bàlú</annotation>
+ <annotation cp="👨🚀">òkùnrin | olùwádìí inú òshùpá | ɔkùnrin olùwádìí inú òshùpá ɔkùnrin | rɔ́kɛ̀tì</annotation>
+ <annotation cp="👨🚀" type="tts">ɔkùnrin olùwádìí inú òshùpá ɔkùnrin</annotation>
+ <annotation cp="👩🚀">obìrin | obìrinolùwádìí inú òshùpá | olùwádìí inú òshùpá | rɔ́kɛ̀tì</annotation>
+ <annotation cp="👩🚀" type="tts">obìrinolùwádìí inú òshùpá</annotation>
+ <annotation cp="👨🚒">ɔkɔ̀ panapanɔ́ | ɔkùnrin | ɔkùnrin panapanɔ́ | panɔ́panɔ́</annotation>
+ <annotation cp="👨🚒" type="tts">ɔkùnrin panapanɔ́</annotation>
+ <annotation cp="👩🚒">obìrin | obìrin panapanɔ́ | ɔkɔ̀ panɔ́pnɔ́ | panɔ́panɔ́</annotation>
+ <annotation cp="👩🚒" type="tts">obìrin panapanɔ́</annotation>
+ <annotation cp="👮">òshìshɛ́ | Ɔlɔpa | ɔlɔ́pàá</annotation>
+ <annotation cp="👮" type="tts">Ɔlɔpa</annotation>
+ <annotation cp="👮♂">òshìshɛ́ | ɔkùnrin | ɔkùnrin ɔlɔpa | ɔlɔ́pàá</annotation>
+ <annotation cp="👮♂" type="tts">ɔkùnrin ɔlɔpa</annotation>
+ <annotation cp="👮♀">obìnrin | obìnrin ɔlɔpa | òshìshɛ́ | ɔlɔ́pàá</annotation>
+ <annotation cp="👮♀" type="tts">obìnrin ɔlɔpa</annotation>
+ <annotation cp="🕵">ashèwádìí | ɔ̀tɛlèmúyé</annotation>
+ <annotation cp="🕵" type="tts">ɔ̀tɛlèmúyé</annotation>
+ <annotation cp="🕵♂">ashèwádìí | ɔkùnrin | ɔ̀tɛlèmúyé</annotation>
+ <annotation cp="🕵♂" type="tts">ɔkùnrin ɔ̀tɛlèmúyé</annotation>
+ <annotation cp="🕵♀">ashèwádìí | obìnrin | ɔ̀tɛlèmúyé</annotation>
+ <annotation cp="🕵♀" type="tts">obìnrin ɔ̀tɛlèmúyé</annotation>
+ <annotation cp="💂">Olushɔ</annotation>
+ <annotation cp="💂" type="tts">Olushɔ</annotation>
+ <annotation cp="💂♂">olùshɔ́ | ɔkùnrin</annotation>
+ <annotation cp="💂♂" type="tts">ɔkùnrin olùshɔ́</annotation>
+ <annotation cp="💂♀">obìnrin | olùshɔ́</annotation>
+ <annotation cp="💂♀" type="tts">obìnrin olùshɔ́</annotation>
+ <annotation cp="👷">fìlà | òshìshɛ́ | Oshishɛ Ikɔle | òshishɛ́ ìkɔle</annotation>
+ <annotation cp="👷" type="tts">Oshishɛ Ikɔle</annotation>
+ <annotation cp="👷♂">òshìshɛ́ | òshishɛ́ ìkɔle | òshishɛ́ ìkɔ́lé ɔkùnrin | ɔkùnrin</annotation>
+ <annotation cp="👷♂" type="tts">òshishɛ́ ìkɔ́lé ɔkùnrin</annotation>
+ <annotation cp="👷♀">obìnrin | òshìshɛ́ | òshishɛ́ ìkɔle | òshishɛ́ ìkɔ́lé obìnrin</annotation>
+ <annotation cp="👷♀" type="tts">òshishɛ́ ìkɔ́lé obìnrin</annotation>
+ <annotation cp="🤴">Ɔmɔkunrin Alade</annotation>
+ <annotation cp="🤴" type="tts">Ɔmɔkunrin Alade</annotation>
+ <annotation cp="👸">àlá | ìtàn ɔmɔdé | Ɔmɔbinrin Alade</annotation>
+ <annotation cp="👸" type="tts">Ɔmɔbinrin Alade</annotation>
+ <annotation cp="👳">Ɛni wɔ Lawani | láwàní</annotation>
+ <annotation cp="👳" type="tts">Ɛni wɔ Lawani</annotation>
+ <annotation cp="👳♂">láwàní | ɔkùnrin | ɔkùnrin tó dé láwàní</annotation>
+ <annotation cp="👳♂" type="tts">ɔkùnrin tó dé láwàní</annotation>
+ <annotation cp="👳♀">láwàní | obìnrin | obìnrin tó dé láwàní</annotation>
+ <annotation cp="👳♀" type="tts">obìnrin tó dé láwàní</annotation>
+ <annotation cp="👲">fìlà | gua pi mao | ɔkùnrin | Ɔkunrin Pɛlu Fila Shainisi</annotation>
+ <annotation cp="👲" type="tts">Ɔkunrin Pɛlu Fila Shainisi</annotation>
+ <annotation cp="🧕">Gèlè | gèlè àwɔn sípánì | ìbòrí | ìbòrí àwɔn júù | obinrin tó wé gèlè</annotation>
+ <annotation cp="🧕" type="tts">obinrin tó wé gèlè</annotation>
+ <annotation cp="🤵">kóòtù | ɔkɔ ìyàwó | ɔkùnrin | Ɔkunrin Pɛlu Kootu</annotation>
+ <annotation cp="🤵" type="tts">Ɔkunrin Pɛlu Kootu</annotation>
+ <annotation cp="👰">ìbòjú | ìgbéyàwó | ìyàwó | Iyawo Pɛlu Iboju</annotation>
+ <annotation cp="👰" type="tts">Iyawo Pɛlu Iboju</annotation>
+ <annotation cp="🤰">alaboyun | obinrin</annotation>
+ <annotation cp="🤰" type="tts">obinrin alaboyun</annotation>
+ <annotation cp="🤱">ìfɔ́mɔlɔ́yàn | ìkókó | ìtɔ́jú ɔmɔ | ɔyɔ̀n</annotation>
+ <annotation cp="🤱" type="tts">ìfɔ́mɔlɔ́yàn</annotation>
+ <annotation cp="👼">àlá | áńgɛ́lì | ángɛli ìkókó | ìkókó | ìtàn ɔmɔdé | ojú</annotation>
+ <annotation cp="👼" type="tts">ángɛli ìkókó</annotation>
+ <annotation cp="🎅">ayɛyɛ | baba | Baba Keresi | kérésì</annotation>
+ <annotation cp="🎅" type="tts">Baba Keresi</annotation>
+ <annotation cp="🤶">[kɛrɛsí | Arabinrin Keresi | ayɛyɛ | ìyá | kérésì | omidan</annotation>
+ <annotation cp="🤶" type="tts">Arabinrin Keresi</annotation>
+ <annotation cp="🧙">àjɛ́ | onídán | oshó</annotation>
+ <annotation cp="🧙" type="tts">onídán</annotation>
+ <annotation cp="🧙♂">Oshó | Ɔkùnrin onídán</annotation>
+ <annotation cp="🧙♂" type="tts">Ɔkùnrin onídán</annotation>
+ <annotation cp="🧙♀">àjé̩ | àjɛ́ | Obìnrin onídán</annotation>
+ <annotation cp="🧙♀" type="tts">Obìnrin onídán</annotation>
+ <annotation cp="🧚">Iwin | Oberon | Puck | Titania</annotation>
+ <annotation cp="🧚" type="tts">Iwin</annotation>
+ <annotation cp="🧚♂">Iwin ɔkùnrin | Oberon | Puck</annotation>
+ <annotation cp="🧚♂" type="tts">Iwin ɔkùnrin</annotation>
+ <annotation cp="🧚♀">Iwin obìnrin | Tìtàníà</annotation>
+ <annotation cp="🧚♀" type="tts">Iwin obìnrin</annotation>
+ <annotation cp="🧛">àìkú | Dàràkúlà | Fánpáyà</annotation>
+ <annotation cp="🧛" type="tts">Fánpáyà</annotation>
+ <annotation cp="🧛♂">àìkú | Dàràkúlà | Fánpáyà ɔkùnrin</annotation>
+ <annotation cp="🧛♂" type="tts">Fánpáyà ɔkùnrin</annotation>
+ <annotation cp="🧛♀">àìlèkú | Fánpáyà obìnrin</annotation>
+ <annotation cp="🧛♀" type="tts">Fánpáyà obìnrin</annotation>
+ <annotation cp="🧜">Yemɔja | Yemɔja ènìyàn</annotation>
+ <annotation cp="🧜" type="tts">Yemɔja ènìyàn</annotation>
+ <annotation cp="🧜♂">Triton | Yemɔja ɔkùnrin</annotation>
+ <annotation cp="🧜♂" type="tts">Yemɔja ɔkùnrin</annotation>
+ <annotation cp="🧜♀">iyemɔja | Yemɔja obìnrin</annotation>
+ <annotation cp="🧜♀" type="tts">iyemɔja</annotation>
+ <annotation cp="🧝">Egbére | ìdán</annotation>
+ <annotation cp="🧝" type="tts">Egbére</annotation>
+ <annotation cp="🧝♂">egbére ɔkùnrin | ìdán</annotation>
+ <annotation cp="🧝♂" type="tts">egbére ɔkùnrin</annotation>
+ <annotation cp="🧝♀">egbére obìnrin | ìdán</annotation>
+ <annotation cp="🧝♀" type="tts">egbére obìnrin</annotation>
+ <annotation cp="🧞">Ànjɔ̀nnú | Ànjɔ̀nnú arabia</annotation>
+ <annotation cp="🧞" type="tts">Ànjɔ̀nnú</annotation>
+ <annotation cp="🧞♂">Ànjɔ̀nnú arabia | Ànjɔ̀nnú ɔkùnrin</annotation>
+ <annotation cp="🧞♂" type="tts">Ànjɔ̀nnú ɔkùnrin</annotation>
+ <annotation cp="🧞♀">Ànjɔ̀nnú arabia | Ànjɔ̀nnú obìnrin</annotation>
+ <annotation cp="🧞♀" type="tts">Ànjɔ̀nnú obìnrin</annotation>
+ <annotation cp="🧟">Àìlèkú | àkúdáàyà | Ɛbɔra</annotation>
+ <annotation cp="🧟" type="tts">Ɛbɔra</annotation>
+ <annotation cp="🧟♂">Àìlèkú | àkúdáàyà | Ɛbɔra ɔkùnrin</annotation>
+ <annotation cp="🧟♂" type="tts">Ɛbɔra ɔkùnrin</annotation>
+ <annotation cp="🧟♀">Àìlèkú | àkúdáàyà | Ɛbɔra obìnrin</annotation>
+ <annotation cp="🧟♀" type="tts">Ɛbɔra obìnrin</annotation>
+ <annotation cp="💆">ɛni N gba Ishɛ | ìfiránshɛ́ | ilé onídìrí | ojú</annotation>
+ <annotation cp="💆" type="tts">ɛni N gba Ishɛ</annotation>
+ <annotation cp="💆♂">ìfiránshɛ́ | ojú | ɔkùnrin | ɔkùnrin tí ń gba ìfiránshɛ́</annotation>
+ <annotation cp="💆♂" type="tts">ɔkùnrin tí ń gba ìfiránshɛ́</annotation>
+ <annotation cp="💆♀">ìfiránshɛ́ | obìnrin | obìnrin tí ń gba ìfiránshɛ́ | ojú</annotation>
+ <annotation cp="💆♀" type="tts">obìnrin tí ń gba ìfiránshɛ́</annotation>
+ <annotation cp="💇">agɛrun | Ɛni N Gɛrun | ɛwà | gérun | ìyàrá ìgbàlejò</annotation>
+ <annotation cp="💇" type="tts">Ɛni N Gɛrun</annotation>
+ <annotation cp="💇♂">gɛrun | ɔkùnrin | ɔkùnrin tí ń gɛrun</annotation>
+ <annotation cp="💇♂" type="tts">ɔkùnrin tí ń gɛrun</annotation>
+ <annotation cp="💇♀">gɛrun | obìnrin | obìnrin tí ń gɛrun</annotation>
+ <annotation cp="💇♀" type="tts">obìnrin tí ń gɛrun</annotation>
+ <annotation cp="🚶">Ɛni N Rin | ìrìn | ń rìn</annotation>
+ <annotation cp="🚶" type="tts">Ɛni N Rin</annotation>
+ <annotation cp="🚶♂">ìrìn | ɔkùnrin | ɔkùnrin tí ń rìn</annotation>
+ <annotation cp="🚶♂" type="tts">ɔkùnrin tí ń rìn</annotation>
+ <annotation cp="🚶♀">ìrìn | obìnrin | obìnrin tí ń rìn</annotation>
+ <annotation cp="🚶♀" type="tts">obìnrin tí ń rìn</annotation>
+ <annotation cp="🏃">eré | Ɛni N Sare | sáré</annotation>
+ <annotation cp="🏃" type="tts">Ɛni N Sare</annotation>
+ <annotation cp="🏃♂">eré | eré ìdíjɛ | ɔkùnrin | ɔkùnrin tí ń sáré | sáré</annotation>
+ <annotation cp="🏃♂" type="tts">ɔkùnrin tí ń sáré</annotation>
+ <annotation cp="🏃♀">eré | eré ìdíje | ń sáré | obìnrin | obìrin tí ń sáré</annotation>
+ <annotation cp="🏃♀" type="tts">obìrin tí ń sáré</annotation>
+ <annotation cp="💃">obinrin | Obinrin Ti Njo | Ti Njo</annotation>
+ <annotation cp="💃" type="tts">Obinrin Ti Njo</annotation>
+ <annotation cp="🕺">ijɔ́ | ɔkùnrin | Ɔkunrin Ti Njo</annotation>
+ <annotation cp="🕺" type="tts">Ɔkunrin Ti Njo</annotation>
+ <annotation cp="🕴">kóòtù | òwò | ɔkùnrin | ɔkùnrin nínu kóòtú òwò</annotation>
+ <annotation cp="🕴" type="tts">ɔkùnrin nínu kóòtú òwò</annotation>
+ <annotation cp="👯">àríyá | awɔn eniyan eleti ehoro n sariya | etí ehoro | oníjó</annotation>
+ <annotation cp="👯" type="tts">awɔn eniyan eleti ehoro n sariya</annotation>
+ <annotation cp="👯♂">àríyá | àwɔn ɔkùnrin elétí ehoro n shàríyá | etí ehoro | oníjó | ɔkùnrin</annotation>
+ <annotation cp="👯♂" type="tts">àwɔn ɔkùnrin elétí ehoro n shàríyá</annotation>
+ <annotation cp="👯♀">àríyá obìnrin | awɔn obìnrin eleti ehoro n sariya | etí ehoro | oníjó</annotation>
+ <annotation cp="👯♀" type="tts">awɔn obìnrin eleti ehoro n sariya</annotation>
+ <annotation cp="🧖">Ènìyàn nínú Ìyàrá tó n gbóná | Ìyàrá tó n gbóná</annotation>
+ <annotation cp="🧖" type="tts">Ènìyàn nínú Ìyàrá tó n gbóná</annotation>
+ <annotation cp="🧖♂">Ìyàrá tó n gbóná | Ɔkùnrin nínú Ìyàrá tó n gbóná</annotation>
+ <annotation cp="🧖♂" type="tts">Ɔkùnrin nínú Ìyàrá tó n gbóná</annotation>
+ <annotation cp="🧖♀">Ìyàrá tó n gbóná | Obìnrin nínú Ìyàrá tó n gbóná</annotation>
+ <annotation cp="🧖♀" type="tts">Obìnrin nínú Ìyàrá tó n gbóná</annotation>
+ <annotation cp="🧗">agùnkè | Ènìyàn tó n gòkè</annotation>
+ <annotation cp="🧗" type="tts">Ènìyàn tó n gòkè</annotation>
+ <annotation cp="🧗♂">agùnkè | O̩kùnrin tó n gòkè</annotation>
+ <annotation cp="🧗♂" type="tts">O̩kùnrin tó n gòkè</annotation>
+ <annotation cp="🧗♀">agùnkè | Obìnrin tó n gòkè</annotation>
+ <annotation cp="🧗♀" type="tts">Obìnrin tó n gòkè</annotation>
+ <annotation cp="🤺">eré ìjà | eré jíjà | Ɛni N Ja Pɛlu Ida | idà</annotation>
+ <annotation cp="🤺" type="tts">Ɛni N Ja Pɛlu Ida</annotation>
+ <annotation cp="🏇">eré ɛlɛ́shin | Ereje Ɛlɛsin | ɛshin | ìdíje eré</annotation>
+ <annotation cp="🏇" type="tts">Ereje Ɛlɛsin</annotation>
+ <annotation cp="⛷">ɛni síkì | síkì | yínyìn</annotation>
+ <annotation cp="⛷" type="tts">ɛni síkì</annotation>
+ <annotation cp="🏂">ìsheré orí yìnyín | Ishere Ori Yiyin | síkì | yìnyín</annotation>
+ <annotation cp="🏂" type="tts">Ishere Ori Yiyin</annotation>
+ <annotation cp="🏌">bɔ́ɔ̀lù | ɛni gɔ́ɔ̀fù | gɔ́ɔ̀fù</annotation>
+ <annotation cp="🏌" type="tts">ɛni gɔ́ɔ̀fù</annotation>
+ <annotation cp="🏌♂">gɔ́ɔ̀fù | ɔkùnrin | ɔkùnrin tí ń gɔ́ɔ̀fù</annotation>
+ <annotation cp="🏌♂" type="tts">ɔkùnrin tí ń gɔ́ɔ̀fù</annotation>
+ <annotation cp="🏌♀">gɔ́ɔ̀fù | obìnrin | obìnrin tí ń gɔ́ɔ̀fù</annotation>
+ <annotation cp="🏌♀" type="tts">obìnrin tí ń gɔ́ɔ̀fù</annotation>
+ <annotation cp="🏄">Ɛni N Gun Iji | wíwáìtanɛti</annotation>
+ <annotation cp="🏄" type="tts">Ɛni N Gun Iji</annotation>
+ <annotation cp="🏄♂">ɔkùnrin | ɔkùnrin tí ń wá íńtánɛ́tì | tí ń wá íńtánɛ́tì</annotation>
+ <annotation cp="🏄♂" type="tts">ɔkùnrin tí ń wá íńtánɛ́tì</annotation>
+ <annotation cp="🏄♀">obìnrín | obìnrín tí ń wá íńtánɛ́tì | wíwáìtanɛti</annotation>
+ <annotation cp="🏄♀" type="tts">obìnrín tí ń wá íńtánɛ́tì</annotation>
+ <annotation cp="🚣">Ɛni N wa Ɔkɔ | kɔ́ ojú omi kékeré | ɔkɔ̀ ojú omi</annotation>
+ <annotation cp="🚣" type="tts">Ɛni N wa Ɔkɔ</annotation>
+ <annotation cp="🚣♂">ɔkɔ̀ ojú omi | ɔkɔ̀ ojú omo kékeré | ɔkùnrin | ɔkùnrin tí ń wakɔ̀ ojú omo kékeré</annotation>
+ <annotation cp="🚣♂" type="tts">ɔkùnrin tí ń wakɔ̀ ojú omo kékeré</annotation>
+ <annotation cp="🚣♀">obìnrin tí ń wakɔ̀ ojú omo kékeré | obìrin | ɔkɔ̀ ojú omi | ɔkɔ́ ojú omi kékeré</annotation>
+ <annotation cp="🚣♀" type="tts">obìnrin tí ń wakɔ̀ ojú omo kékeré</annotation>
+ <annotation cp="🏊">Ɛni tí ń wɛdò | wɛdò</annotation>
+ <annotation cp="🏊" type="tts">Ɛni tí ń wɛdò</annotation>
+ <annotation cp="🏊♂">ɔkùnrin | ɔkùnrin tí ń wɛdò | wɛdò</annotation>
+ <annotation cp="🏊♂" type="tts">ɔkùnrin tí ń wɛdò</annotation>
+ <annotation cp="🏊♀">obìnrin | obìnrin tí ń wɛdò | wɛdò</annotation>
+ <annotation cp="🏊♀" type="tts">obìnrin tí ń wɛdò</annotation>
+ <annotation cp="⛹">bɔ́ɔ̀lù | ɛni tà boun bɔ́ɔ̀lù</annotation>
+ <annotation cp="⛹" type="tts">ɛni tà boun bɔ́ɔ̀lù</annotation>
+ <annotation cp="⛹♂">bɔ́ɔ̀lù | ɔkùnrin | ɔkùnrin tí ń tà boun bɔ́ɔ̀lù</annotation>
+ <annotation cp="⛹♂" type="tts">ɔkùnrin tí ń tà boun bɔ́ɔ̀lù</annotation>
+ <annotation cp="⛹♀">bɔ́ɔ̀lù | obìnrin | obìnrin tà boun bɔ́ɔ̀lù</annotation>
+ <annotation cp="⛹♀" type="tts">obìnrin tà boun bɔ́ɔ̀lù</annotation>
+ <annotation cp="🏋">a fà ńkan sókè | ɛni fa ìwɔ̀n sókè | ìwɔ̀n</annotation>
+ <annotation cp="🏋" type="tts">ɛni fa ìwɔ̀n sókè</annotation>
+ <annotation cp="🏋♂">a fà ìwɔ̀n sókè | ɔkùnrin | ɔkùnrin tí ń a fà ìwɔ̀n sókè</annotation>
+ <annotation cp="🏋♂" type="tts">ɔkùnrin tí ń a fà ìwɔ̀n sókè</annotation>
+ <annotation cp="🏋♀">a fà ìwɔ̀n sókè | obìnrin | obìnrin tí ń a fà ìwɔ̀n sókè</annotation>
+ <annotation cp="🏋♀" type="tts">obìnrin tí ń a fà ìwɔ̀n sókè</annotation>
+ <annotation cp="🚴">awa kɛ̀kɛ́ | Ɛni N Gun Kɛkɛ | ìwákɛ̀kɛ́ | kɛ̀kɛ́</annotation>
+ <annotation cp="🚴" type="tts">Ɛni N Gun Kɛkɛ</annotation>
+ <annotation cp="🚴♂">awa kɛ̀kɛ́ | ìwákɛ̀kɛ́ | kɛ̀kɛ́ | ɔkùnrin | ɔkùnrin tí ń wa kɛ̀kɛ́</annotation>
+ <annotation cp="🚴♂" type="tts">ɔkùnrin tí ń wa kɛ̀kɛ́</annotation>
+ <annotation cp="🚴♀">awa kɛ̀kɛ́ | ìwákɛ̀kɛ́ | kɛ̀kɛ́ | obìnrin | obìnrin tí ń wa kɛ̀kɛ́</annotation>
+ <annotation cp="🚴♀" type="tts">obìnrin tí ń wa kɛ̀kɛ́</annotation>
+ <annotation cp="🚵">awakɛ̀kɛ́ | Ɛni N Gun Kɛkɛ Gun Apata | kɛ̀kɛ́ | òkè</annotation>
+ <annotation cp="🚵" type="tts">Ɛni N Gun Kɛkɛ Gun Apata</annotation>
+ <annotation cp="🚵♂">awakɛ̀kɛ́ | kɛ̀kɛ́ | òkè | ɔkùnrin | ɔkùnrin tín gùn kè wa kɛ̀kɛ́</annotation>
+ <annotation cp="🚵♂" type="tts">ɔkùnrin tín gùn kè wa kɛ̀kɛ́</annotation>
+ <annotation cp="🚵♀">awakɛ̀kɛ́ | ìwa kɛ̀kɛ́ | kɛ̀kɛ́ | obìnrin | obìnrin tín gùn kè wa kɛ̀kɛ́ | òkè</annotation>
+ <annotation cp="🚵♀" type="tts">obìnrin tín gùn kè wa kɛ̀kɛ́</annotation>
+ <annotation cp="🤸">Ɛni Kawɔ Tilɛ Kɛsɛ Soke | ìdárayá | kɛ̀kɛ́ alágbɔ̀n</annotation>
+ <annotation cp="🤸" type="tts">Ɛni Kawɔ Tilɛ Kɛsɛ Soke</annotation>
+ <annotation cp="🤸♂">ìdárayá | kɛ̀kɛ́ alágbɔ̀n | ɔkùnrin | ɔkùnrin tí ń yí kɛ̀kɛ́ alágbɔ̀n</annotation>
+ <annotation cp="🤸♂" type="tts">ɔkùnrin tí ń yí kɛ̀kɛ́ alágbɔ̀n</annotation>
+ <annotation cp="🤸♀">ìdárayá | kɛ̀kɛ́ alágbɔ̀n | obìnrin | obìnrin tí ń yí kɛ̀kɛ́ alágbɔ̀n</annotation>
+ <annotation cp="🤸♀" type="tts">obìnrin tí ń yí kɛ̀kɛ́ alágbɔ̀n</annotation>
+ <annotation cp="🤼">Awɔn Onigidigbo | gídígò | onígídígbò</annotation>
+ <annotation cp="🤼" type="tts">Awɔn Onigidigbo</annotation>
+ <annotation cp="🤼♂">àwɔn ɔkùnrin | àwɔn ɔkùnrin gídígbò | gídígbò</annotation>
+ <annotation cp="🤼♂" type="tts">àwɔn ɔkùnrin gídígbò</annotation>
+ <annotation cp="🤼♀">àwɔn obìnrin | àwɔn obìnrn tí ń jà | gídígbò</annotation>
+ <annotation cp="🤼♀" type="tts">àwɔn obìnrn tí ń jà</annotation>
+ <annotation cp="🤽">Ɛni N shere Olomi | omi | pólò</annotation>
+ <annotation cp="🤽" type="tts">Ɛni N shere Olomi</annotation>
+ <annotation cp="🤽♂">eré omi | okùnrin | ɔkùnrin n shere olomi</annotation>
+ <annotation cp="🤽♂" type="tts">ɔkùnrin n shere olomi</annotation>
+ <annotation cp="🤽♀">eré omi | obìnrin | obìnrin n shere olomi</annotation>
+ <annotation cp="🤽♀" type="tts">obìnrin n shere olomi</annotation>
+ <annotation cp="🤾">bɔ́ɔ̀lù | bɔ́ɔ̀lù ɔlɔ́wɔ́ | Ɛni N Shere Bɔɔlu Ɔlɔwɔ</annotation>
+ <annotation cp="🤾" type="tts">Ɛni N Shere Bɔɔlu Ɔlɔwɔ</annotation>
+ <annotation cp="🤾♂">bɔ́ɔ̀lù ɔlɔ́wɔ́ | ɔkùnrin | ɔkùnrin tí ń gbá bɔ́ɔ̀lù ɔlɔ́wɔ́</annotation>
+ <annotation cp="🤾♂" type="tts">ɔkùnrin tí ń gbá bɔ́ɔ̀lù ɔlɔ́wɔ́</annotation>
+ <annotation cp="🤾♀">bɔ́ɔ̀lù ɔlɔ́wɔ́ | obìnrin | obìnrin tí ń gbá bɔ́ɔ̀lù ɔlɔ́wɔ́</annotation>
+ <annotation cp="🤾♀" type="tts">obìnrin tí ń gbá bɔ́ɔ̀lù ɔlɔ́wɔ́</annotation>
+ <annotation cp="🤹">Ɛni N ju Nnkan soke | ìdɔ́gba | ìmɔ̀ɔ́she | jíju ǹkan sókè | ɔ̀pɔ̀ ishɛ́</annotation>
+ <annotation cp="🤹" type="tts">Ɛni N ju Nnkan soke</annotation>
+ <annotation cp="🤹♂">jíjù ǹkan sókè | ɔkùnrin | ɔkùnrin tí ń jù ǹkan sókè | ɔ̀pɔ̀ ishɛ́</annotation>
+ <annotation cp="🤹♂" type="tts">ɔkùnrin tí ń jù ǹkan sókè</annotation>
+ <annotation cp="🤹♀">jíjù ǹkan sókè | obìnrin | obìnrin tí ń jú ǹkan sókè | ɔ̀pɔ̀ ishɛ́</annotation>
+ <annotation cp="🤹♀" type="tts">obìnrin tí ń jú ǹkan sókè</annotation>
+ <annotation cp="🧘">Ènìyàn nípò ìgbàgbé | shàshàrò | Yógà</annotation>
+ <annotation cp="🧘" type="tts">Ènìyàn nípò ìgbàgbé</annotation>
+ <annotation cp="🧘♂">Ɔkùnrin nípò ìgbàgbé | shàshàrò | Yógà</annotation>
+ <annotation cp="🧘♂" type="tts">Ɔkùnrin nípò ìgbàgbé</annotation>
+ <annotation cp="🧘♀">Obìnrin nípò ìgbàgbé | shàshàrò | Yógà</annotation>
+ <annotation cp="🧘♀" type="tts">Obìnrin nípò ìgbàgbé</annotation>
+ <annotation cp="🛀">àgbá ìwé | Ɛni Nwɛ | ìwɛ̀</annotation>
+ <annotation cp="🛀" type="tts">Ɛni Nwɛ</annotation>
+ <annotation cp="🛌">Ɛniyan Nibusun | ilé ìtura | sùn</annotation>
+ <annotation cp="🛌" type="tts">Ɛniyan Nibusun</annotation>
+ <annotation cp="👭">dìmú | obìnrin | Obinrin Meji Ti O Dɔwɔ Ara Wɔn Mu | ɔwɔ́ | tɔkɔtaya</annotation>
+ <annotation cp="👭" type="tts">Obinrin Meji Ti O Dɔwɔ Ara Wɔn Mu</annotation>
+ <annotation cp="👫">dìmú | obìnrin | ɔkùnrin | Ɔkunrin Ati Obirin Ti O Dɔwɔ Ara Wɔn Mu | ɔwɔ́ | tɔkɔtaya</annotation>
+ <annotation cp="👫" type="tts">Ɔkunrin Ati Obirin Ti O Dɔwɔ Ara Wɔn Mu</annotation>
+ <annotation cp="👬">àmi oshù ìbí | dìmú | Gemini | ìbejì | ɔkùnrin | Ɔkunrin Meji Ti O Dɔwɔ Ara Wɔn Mu | ɔwɔ́ | tɔkɔtaya</annotation>
+ <annotation cp="👬" type="tts">Ɔkunrin Meji Ti O Dɔwɔ Ara Wɔn Mu</annotation>
+ <annotation cp="💏">Ifɛnuko | tɔkɔtaya</annotation>
+ <annotation cp="💏" type="tts">Ifɛnuko</annotation>
+ <annotation cp="💑">ìfɛ́ | Lɔkɔlaya Pɛlu ɔkan | tɔkɔtaya</annotation>
+ <annotation cp="💑" type="tts">Lɔkɔlaya Pɛlu ɔkan</annotation>
+ <annotation cp="👪">Ɛbí</annotation>
+ <annotation cp="👪" type="tts">Ɛbí</annotation>
+ <annotation cp="🗣">bíríbírí | ń sɔ̀rɔ̀ | ojú | orí | orí tí ń sɔ̀rɔ̀ | sɔ̀rɔ̀</annotation>
+ <annotation cp="🗣" type="tts">orí tí ń sɔ̀rɔ̀</annotation>
+ <annotation cp="👤">bíríbírí | bújáde | Bujade Ni Biribiri</annotation>
+ <annotation cp="👤" type="tts">Bujade Ni Biribiri</annotation>
+ <annotation cp="👥">Awɔn Ibujade Ni Biribiri | bíríbírí | bújáde</annotation>
+ <annotation cp="👥" type="tts">Awɔn Ibujade Ni Biribiri</annotation>
+ <annotation cp="👣">ashɔ | Ipa ɛsɛ | ipasɛ̀ | ìpasɛ̀</annotation>
+ <annotation cp="👣" type="tts">Ipa ɛsɛ</annotation>
+ <annotation cp="🐵">ojú | Oju Ɔbɔ | ɔ̀bɔ</annotation>
+ <annotation cp="🐵" type="tts">Oju Ɔbɔ</annotation>
+ <annotation cp="🐒">Ɔ̀bɔ</annotation>
+ <annotation cp="🐒" type="tts">Ɔ̀bɔ</annotation>
+ <annotation cp="🦍">Inaki</annotation>
+ <annotation cp="🦍" type="tts">Inaki</annotation>
+ <annotation cp="🐶">ajá | ǹkan ìsìn | ojú | Ojú ajá</annotation>
+ <annotation cp="🐶" type="tts">Ojú ajá</annotation>
+ <annotation cp="🐕">Ajá | ńkan ìsìn</annotation>
+ <annotation cp="🐕" type="tts">Ajá</annotation>
+ <annotation cp="🐩">Ajá | Ajá kékeré</annotation>
+ <annotation cp="🐩" type="tts">Ajá kékeré</annotation>
+ <annotation cp="🐺">ìkookò | ojú | Oju Ikooko</annotation>
+ <annotation cp="🐺" type="tts">Oju Ikooko</annotation>
+ <annotation cp="🦊">kɔlɔkɔlɔ | ojú | Oju Kɔlɔkɔlɔ</annotation>
+ <annotation cp="🦊" type="tts">Oju Kɔlɔkɔlɔ</annotation>
+ <annotation cp="🐱">ǹkan ìsìn | ojú | Ojú olóńgbò | olóńgò</annotation>
+ <annotation cp="🐱" type="tts">Ojú olóńgbò</annotation>
+ <annotation cp="🐈">ńkan ìsìn | Olóńgbò</annotation>
+ <annotation cp="🐈" type="tts">Olóńgbò</annotation>
+ <annotation cp="🦁">àmi oshù ìbí | kìnìu | Leo | ojú | Oju Kiniun</annotation>
+ <annotation cp="🦁" type="tts">Oju Kiniun</annotation>
+ <annotation cp="🐯">ɛkùn | ojú | Oju Ɛkùn</annotation>
+ <annotation cp="🐯" type="tts">Oju Ɛkùn</annotation>
+ <annotation cp="🐅">Ɛkùn</annotation>
+ <annotation cp="🐅" type="tts">Ɛkùn</annotation>
+ <annotation cp="🐆">Àmɔ̀tɛ́kùn</annotation>
+ <annotation cp="🐆" type="tts">Àmɔ̀tɛ́kùn</annotation>
+ <annotation cp="🐴">ɛshin | ojú | Oju Ɛshin</annotation>
+ <annotation cp="🐴" type="tts">Oju Ɛshin</annotation>
+ <annotation cp="🐎">equestrian | eshi ìsáré | Ɛshin | ìsáré</annotation>
+ <annotation cp="🐎" type="tts">Ɛshin</annotation>
+ <annotation cp="🦄">eshin oníwo | ojú | Oju Ɛshin Oniwo</annotation>
+ <annotation cp="🦄" type="tts">Oju Ɛshin Oniwo</annotation>
+ <annotation cp="🦓">kɛ́tɛ́kɛ́tɛ́ abìla | onílà</annotation>
+ <annotation cp="🦓" type="tts">kɛ́tɛ́kɛ́tɛ́ abìla</annotation>
+ <annotation cp="🦌">Agbɔnrin</annotation>
+ <annotation cp="🦌" type="tts">Agbɔnrin</annotation>
+ <annotation cp="🐮">maalu | oju | Oju Maalu</annotation>
+ <annotation cp="🐮" type="tts">Oju Maalu</annotation>
+ <annotation cp="🐂">àmi oshù ìbí | Ɛgbɔrɔ maalu | ɛgbɔrɔ màlálù | Taurus</annotation>
+ <annotation cp="🐂" type="tts">Ɛgbɔrɔ maalu</annotation>
+ <annotation cp="🐃">ɛfɔ̀n | Ɛfɔn Omi | omi</annotation>
+ <annotation cp="🐃" type="tts">Ɛfɔn Omi</annotation>
+ <annotation cp="🐄">Maalu</annotation>
+ <annotation cp="🐄" type="tts">Maalu</annotation>
+ <annotation cp="🐷">ɛlɛ́dɛ̀ | ojú | Oju Ɛlɛdɛ</annotation>
+ <annotation cp="🐷" type="tts">Oju Ɛlɛdɛ</annotation>
+ <annotation cp="🐖">abo ɛlɛ́dɛ̀ | Ɛlɛdɛ</annotation>
+ <annotation cp="🐖" type="tts">Ɛlɛdɛ</annotation>
+ <annotation cp="🐗">Biari | Ɛlɛdɛ</annotation>
+ <annotation cp="🐗" type="tts">Biari</annotation>
+ <annotation cp="🐽">ɛlɛ́dɛ̀ | imú | Imu Ɛlɛdɛ | ojú</annotation>
+ <annotation cp="🐽" type="tts">Imu Ɛlɛdɛ</annotation>
+ <annotation cp="🐏">Agbo | àgùntàn | akɔ | àmi oshù ìbí | Aries</annotation>
+ <annotation cp="🐏" type="tts">Agbo</annotation>
+ <annotation cp="🐑">abo | àgùntàn</annotation>
+ <annotation cp="🐑" type="tts">abo àgùntàn</annotation>
+ <annotation cp="🐐">àmi oshù ìbí | capricorn | Ewúrɛ́</annotation>
+ <annotation cp="🐐" type="tts">Ewúrɛ́</annotation>
+ <annotation cp="🐪">iké | Kɛtɛkɛtɛ | ràkúmí</annotation>
+ <annotation cp="🐪" type="tts">Kɛtɛkɛtɛ</annotation>
+ <annotation cp="🐫">iké | Kɛtɛkɛtɛ Onike-Meji | ràkúmí | ràkúmí oníké méjì</annotation>
+ <annotation cp="🐫" type="tts">Kɛtɛkɛtɛ Onike-Meji</annotation>
+ <annotation cp="🦒">àgùfɔn | àwɔn àyè</annotation>
+ <annotation cp="🦒" type="tts">àgùfɔn</annotation>
+ <annotation cp="🐘">Erin</annotation>
+ <annotation cp="🐘" type="tts">Erin</annotation>
+ <annotation cp="🦏">Ɛranko Imado</annotation>
+ <annotation cp="🦏" type="tts">Ɛranko Imado</annotation>
+ <annotation cp="🐭">ekú | ojú | Ɔju Eku</annotation>
+ <annotation cp="🐭" type="tts">Ɔju Eku</annotation>
+ <annotation cp="🐁">Eku</annotation>
+ <annotation cp="🐁" type="tts">Eku</annotation>
+ <annotation cp="🐀">Ekute</annotation>
+ <annotation cp="🐀" type="tts">Ekute</annotation>
+ <annotation cp="🐹">eku oko | ǹkan ìsìn | ojú | Oju Eku Oko</annotation>
+ <annotation cp="🐹" type="tts">Oju Eku Oko</annotation>
+ <annotation cp="🐰">ehoro | ǹkan ìsìn | ojú | Oju Ehoro</annotation>
+ <annotation cp="🐰" type="tts">Oju Ehoro</annotation>
+ <annotation cp="🐇">ehoro | Ehoro | ǹkan ìsìn</annotation>
+ <annotation cp="🐇" type="tts">Ehoro</annotation>
+ <annotation cp="🐿">eku ńlá</annotation>
+ <annotation cp="🐿" type="tts">eku ńlá</annotation>
+ <annotation cp="🦔">ɛlɛ́gùń | hedgehog</annotation>
+ <annotation cp="🦔" type="tts">hedgehog</annotation>
+ <annotation cp="🦇">Adan | àdán | amùjɛ́</annotation>
+ <annotation cp="🦇" type="tts">Adan</annotation>
+ <annotation cp="🐻">biari | oju | Oju Biari</annotation>
+ <annotation cp="🐻" type="tts">Oju Biari</annotation>
+ <annotation cp="🐨">bíárì | Koala</annotation>
+ <annotation cp="🐨" type="tts">Koala</annotation>
+ <annotation cp="🐼">ojú | Oju Panda | pándà</annotation>
+ <annotation cp="🐼" type="tts">Oju Panda</annotation>
+ <annotation cp="🐾">Apa Eekan | àtɛ́lɛ́ ɔwa | ɛsɛ̀ | ipa</annotation>
+ <annotation cp="🐾" type="tts">Apa Eekan</annotation>
+ <annotation cp="🦃">ɛyɛ | Tólòtólò | tòlótòló</annotation>
+ <annotation cp="🦃" type="tts">Tólòtólò</annotation>
+ <annotation cp="🐔">adìye | Adìyɛ | ɛyɛ</annotation>
+ <annotation cp="🐔" type="tts">Adìyɛ</annotation>
+ <annotation cp="🐓">Akukɔ | àkùkɔ | ɛyɛ</annotation>
+ <annotation cp="🐓" type="tts">Akukɔ</annotation>
+ <annotation cp="🐣">ɛyɛ | ìkókó | ɔmɔ adìyɛ | Ɔmɔ Adiyɛ Pipa | pípa</annotation>
+ <annotation cp="🐣" type="tts">Ɔmɔ Adiyɛ Pipa</annotation>
+ <annotation cp="🐤">ɛyɛ | ìkókó | Ɔmɔ Adiyɛ | ɔmɔ adìyɛ</annotation>
+ <annotation cp="🐤" type="tts">Ɔmɔ Adiyɛ</annotation>
+ <annotation cp="🐥">ɛyɛ | ìkókó | ɔmɔ adìyɛ | Ɔmɔ Adiyɛ ti now Iwaju</annotation>
+ <annotation cp="🐥" type="tts">Ɔmɔ Adiyɛ ti now Iwaju</annotation>
+ <annotation cp="🐦">Ɛyɛ</annotation>
+ <annotation cp="🐦" type="tts">Ɛyɛ</annotation>
+ <annotation cp="🐧">ɛyɛ | ɛyɛ oko | Ɛyɛ Oko</annotation>
+ <annotation cp="🐧" type="tts">Ɛyɛ Oko</annotation>
+ <annotation cp="🕊">àdàbà | àláfíà | ɛyɛ | fò</annotation>
+ <annotation cp="🕊" type="tts">àdàbà</annotation>
+ <annotation cp="🦅">àshá | Àshá | ɛyɛ</annotation>
+ <annotation cp="🦅" type="tts">Àshá</annotation>
+ <annotation cp="🦆">ɛyɛ | pɛ́pɛ́yɛ | Pɛ́pɛ́yɛ</annotation>
+ <annotation cp="🦆" type="tts">Pɛ́pɛ́yɛ</annotation>
+ <annotation cp="🦉">ɛyɛ | Owiwi | òwìwí | ɔlɔ́ngbɔ́n</annotation>
+ <annotation cp="🦉" type="tts">Owiwi</annotation>
+ <annotation cp="🐸">ojú | Oju Ɔpɔlɔ | ɔpɔlɔ</annotation>
+ <annotation cp="🐸" type="tts">Oju Ɔpɔlɔ</annotation>
+ <annotation cp="🐊">Ɔni</annotation>
+ <annotation cp="🐊" type="tts">Ɔni</annotation>
+ <annotation cp="🐢">Adaba | Awun | awun kékeré | ìjàpá</annotation>
+ <annotation cp="🐢" type="tts">Adaba</annotation>
+ <annotation cp="🦎">Aláǹgba | aláǹgbà | ɛranko tí nfí àìyà fà</annotation>
+ <annotation cp="🦎" type="tts">Aláǹgba</annotation>
+ <annotation cp="🐍">àmi oshù ìbí | ejò | Ejò | olùgbé | Ophiuchus</annotation>
+ <annotation cp="🐍" type="tts">Ejò</annotation>
+ <annotation cp="🐲">Drágónì | ìtàn àrõnì | oju | Oju Dragoni</annotation>
+ <annotation cp="🐲" type="tts">Oju Dragoni</annotation>
+ <annotation cp="🐉">Drágónì | ìtàn àrõnì</annotation>
+ <annotation cp="🐉" type="tts">Drágónì</annotation>
+ <annotation cp="🦕">brachiosaurus | brontosaurus | diplodocus | sauropod</annotation>
+ <annotation cp="🦕" type="tts">sauropod</annotation>
+ <annotation cp="🦖">T-Rex | Tyrannosaurus Rex</annotation>
+ <annotation cp="🦖" type="tts">T-Rex</annotation>
+ <annotation cp="🐳">Ɛja Nla | Ɛja Nla Atutɔ | Oju | yɔ jade tì ipá</annotation>
+ <annotation cp="🐳" type="tts">Ɛja Nla Atutɔ</annotation>
+ <annotation cp="🐋">Ɛja Nla</annotation>
+ <annotation cp="🐋" type="tts">Ɛja Nla</annotation>
+ <annotation cp="🐬">Dɔfini | Ohun lúwë</annotation>
+ <annotation cp="🐬" type="tts">Dɔfini</annotation>
+ <annotation cp="🐟">àmi oshù ìbí | Ɛja | Pisces</annotation>
+ <annotation cp="🐟" type="tts">Ɛja</annotation>
+ <annotation cp="🐠">Ɛja | oorùn</annotation>
+ <annotation cp="🐠" type="tts">Ɛja oorùn</annotation>
+ <annotation cp="🐡">Ɛja | Ɛja Awura</annotation>
+ <annotation cp="🐡" type="tts">Ɛja Awura</annotation>
+ <annotation cp="🦈">ɛja | sháàkì | Sháàkì</annotation>
+ <annotation cp="🦈" type="tts">Sháàkì</annotation>
+ <annotation cp="🐙">Ɛja ɛlɛsɛ mɛjɔ</annotation>
+ <annotation cp="🐙" type="tts">Ɛja ɛlɛsɛ mɛjɔ</annotation>
+ <annotation cp="🐚">àyíká | Ikarahun | Onikaraun Pinpin</annotation>
+ <annotation cp="🐚" type="tts">Onikaraun Pinpin</annotation>
+ <annotation cp="🐌">Ìgbín</annotation>
+ <annotation cp="🐌" type="tts">Ìgbín</annotation>
+ <annotation cp="🦋">arɛwà | kòkòrò | Labalaba | labalábá</annotation>
+ <annotation cp="🦋" type="tts">Labalaba</annotation>
+ <annotation cp="🐛">Ìyanjú Àshìshe | kòkòrò</annotation>
+ <annotation cp="🐛" type="tts">Ìyanjú Àshìshe</annotation>
+ <annotation cp="🐜">Kokoro | kòkòrò</annotation>
+ <annotation cp="🐜" type="tts">Kokoro</annotation>
+ <annotation cp="🐝">kòkòrò | kòkòrò oyin | Oyin</annotation>
+ <annotation cp="🐝" type="tts">Oyin</annotation>
+ <annotation cp="🐞">kòkòrò | obounboùn | obounboùn kékeré | Yigbɛ-yigbɛ</annotation>
+ <annotation cp="🐞" type="tts">Yigbɛ-yigbɛ</annotation>
+ <annotation cp="🦗">tata | tata gígùn</annotation>
+ <annotation cp="🦗" type="tts">tata gígùn</annotation>
+ <annotation cp="🕷">aláõtakùn | kòkòrò</annotation>
+ <annotation cp="🕷" type="tts">aláõtakùn</annotation>
+ <annotation cp="🕸">ìtakùn | ìtakùnaláõtakùn</annotation>
+ <annotation cp="🕸" type="tts">ìtakùnaláõtakùn</annotation>
+ <annotation cp="🦂">Àkekè | àmi oshù ìbí | scorpio | Scorpius</annotation>
+ <annotation cp="🦂" type="tts">Àkekè</annotation>
+ <annotation cp="💐">Àsè | Odòdó</annotation>
+ <annotation cp="💐" type="tts">Àsè</annotation>
+ <annotation cp="🌸">Iruwe Shɛri | ìtànná | Odòdó | shɛɛri</annotation>
+ <annotation cp="🌸" type="tts">Iruwe Shɛri</annotation>
+ <annotation cp="💮">Odòdó | Ododo Funfun</annotation>
+ <annotation cp="💮" type="tts">Ododo Funfun</annotation>
+ <annotation cp="🏵">õgbìn | Ohun Odòdó ɔshɔ</annotation>
+ <annotation cp="🏵" type="tts">Ohun Odòdó ɔshɔ</annotation>
+ <annotation cp="🌹">Ododo | Odòdó</annotation>
+ <annotation cp="🌹" type="tts">Ododo</annotation>
+ <annotation cp="🥀">òdòdó | ododo witi | rɛ̀</annotation>
+ <annotation cp="🥀" type="tts">ododo witi</annotation>
+ <annotation cp="🌺">Odòdó | Ododo Ibisikɔsi</annotation>
+ <annotation cp="🌺" type="tts">Ododo Ibisikɔsi</annotation>
+ <annotation cp="🌻">Ìtàná | Odòdó | Òòrùn</annotation>
+ <annotation cp="🌻" type="tts">Ìtàná</annotation>
+ <annotation cp="🌼">Iruwe | Odòdó</annotation>
+ <annotation cp="🌼" type="tts">Iruwe</annotation>
+ <annotation cp="🌷">Odòdó | Tulipu</annotation>
+ <annotation cp="🌷" type="tts">Tulipu</annotation>
+ <annotation cp="🌱">Ihoro eso | wɛ́wɛ́</annotation>
+ <annotation cp="🌱" type="tts">Ihoro eso</annotation>
+ <annotation cp="🌲">Igi | Igi Aruwe</annotation>
+ <annotation cp="🌲" type="tts">Igi Aruwe</annotation>
+ <annotation cp="🌳">igi | Igi Igbo | Igi to nta ewe lôdɔ dún | ti</annotation>
+ <annotation cp="🌳" type="tts">Igi Igbo</annotation>
+ <annotation cp="🌴">igi | ɔpɛ | Ɔpɛ</annotation>
+ <annotation cp="🌴" type="tts">Ɔpɛ</annotation>
+ <annotation cp="🌵">Igi Ɔrɔ́ | õgbìn</annotation>
+ <annotation cp="🌵" type="tts">Igi Ɔrɔ́</annotation>
+ <annotation cp="🌾">Etí | Idi Ti Irɛsi | Irɛsi | ɔkà</annotation>
+ <annotation cp="🌾" type="tts">Idi Ti Irɛsi</annotation>
+ <annotation cp="🌿">Egbo Igi | Ewéɛ</annotation>
+ <annotation cp="🌿" type="tts">Egbo Igi</annotation>
+ <annotation cp="☘">õgbìn | shámrɔkì</annotation>
+ <annotation cp="☘" type="tts">shámrɔkì</annotation>
+ <annotation cp="🍀">4 | Ahoro | Ahoro Elewe Merin | Ewé | mɛ́rin</annotation>
+ <annotation cp="🍀" type="tts">Ahoro Elewe Merin</annotation>
+ <annotation cp="🍁">Ewé | Ewe Mapulu | igi | Jàbɔ</annotation>
+ <annotation cp="🍁" type="tts">Ewe Mapulu</annotation>
+ <annotation cp="🍂">igi | Irawe | Jàbɔ</annotation>
+ <annotation cp="🍂" type="tts">Irawe</annotation>
+ <annotation cp="🍃">afɛfɛ | Ewé | Ewe Ti N Fanka Ninu Iji | fɛ | fo bákàn</annotation>
+ <annotation cp="🍃" type="tts">Ewe Ti N Fanka Ninu Iji</annotation>
+ <annotation cp="🍇">Èso | èso àjàrà | Girapu</annotation>
+ <annotation cp="🍇" type="tts">Girapu</annotation>
+ <annotation cp="🍈">Èso | Ɛ̀gúsí</annotation>
+ <annotation cp="🍈" type="tts">Ɛ̀gúsí</annotation>
+ <annotation cp="🍉">Èso | Eso Bara</annotation>
+ <annotation cp="🍉" type="tts">Eso Bara</annotation>
+ <annotation cp="🍊">Èso | ôsán | Tanjarini</annotation>
+ <annotation cp="🍊" type="tts">Tanjarini</annotation>
+ <annotation cp="🍋">èso | Orombo-wɛwɛ Chiffon | ɔsàn</annotation>
+ <annotation cp="🍋" type="tts">Orombo-wɛwɛ Chiffon</annotation>
+ <annotation cp="🍌">Èso | Ɔ̀gɛ̀dɛ̀</annotation>
+ <annotation cp="🍌" type="tts">Ɔ̀gɛ̀dɛ̀</annotation>
+ <annotation cp="🍍">Èso | Ɔpɛ-oyinbo</annotation>
+ <annotation cp="🍍" type="tts">Ɔpɛ-oyinbo</annotation>
+ <annotation cp="🍎">apù | Apu Pupa | èso | pupa</annotation>
+ <annotation cp="🍎" type="tts">Apu Pupa</annotation>
+ <annotation cp="🍏">apù | Apu Alawɔ Ewe | àwɔ̀ ewé | èso</annotation>
+ <annotation cp="🍏" type="tts">Apu Alawɔ Ewe</annotation>
+ <annotation cp="🍐">Èso | Píà</annotation>
+ <annotation cp="🍐" type="tts">Píà</annotation>
+ <annotation cp="🍑">Èso | Píísì</annotation>
+ <annotation cp="🍑" type="tts">Píísì</annotation>
+ <annotation cp="🍒">aláwɔ̀ ewé | apù | èso | Shɛɛri</annotation>
+ <annotation cp="🍒" type="tts">Shɛɛri</annotation>
+ <annotation cp="🍓">bɛ́rì | èso | Eso dundun</annotation>
+ <annotation cp="🍓" type="tts">Eso dundun</annotation>
+ <annotation cp="🥝">èso | Eso Kiwi | kíwì | ónjɛ</annotation>
+ <annotation cp="🥝" type="tts">Eso Kiwi</annotation>
+ <annotation cp="🍅">èso | ɛ̀fɔ́ | Timati</annotation>
+ <annotation cp="🍅" type="tts">Timati</annotation>
+ <annotation cp="🥥">àgbɔn | ɔ̀pɛ | pina colada</annotation>
+ <annotation cp="🥥" type="tts">àgbɔn</annotation>
+ <annotation cp="🥑">Afokado | afokádò | èso | ónjɛ</annotation>
+ <annotation cp="🥑" type="tts">Afokado</annotation>
+ <annotation cp="🍆">èso | Igba | ìgbá</annotation>
+ <annotation cp="🍆" type="tts">Igba</annotation>
+ <annotation cp="🥔">ànàmɔ́ | Ànàmɔ́ | ɛ̀fɔ́ | ónjɛ</annotation>
+ <annotation cp="🥔" type="tts">Ànàmɔ́</annotation>
+ <annotation cp="🥕">ɛ̀fɔ́ | kárɔ́tì | Kárɔ̀tì | ónjɛ</annotation>
+ <annotation cp="🥕" type="tts">Kárɔ̀tì</annotation>
+ <annotation cp="🌽">Agbado | àgbàdo | àgbàdo yínyín | etí | ɔ̀nà ìrújú</annotation>
+ <annotation cp="🌽" type="tts">Agbado</annotation>
+ <annotation cp="🌶">ata | gbígbónɔ̀</annotation>
+ <annotation cp="🌶" type="tts">ata gbígbónɔ̀</annotation>
+ <annotation cp="🥒">ɛ̀fɔ́ | kùkúmbà | Kùkúmbà | ónjɛ | píkù</annotation>
+ <annotation cp="🥒" type="tts">Kùkúmbà</annotation>
+ <annotation cp="🥦">ewé ɛlɛ́fɔ̀ɔ́ | kabeji ìbílɛ̀</annotation>
+ <annotation cp="🥦" type="tts">ewé ɛlɛ́fɔ̀ɔ́</annotation>
+ <annotation cp="🍄">Olu | olú pupa</annotation>
+ <annotation cp="🍄" type="tts">Olu</annotation>
+ <annotation cp="🥜">ɛ̀fɔ́ | Ɛpa | ɛ̀pà | kóró inú èso | ónjɛ</annotation>
+ <annotation cp="🥜" type="tts">Ɛpa</annotation>
+ <annotation cp="🌰">Kóró inú èso búránù | õgbìn</annotation>
+ <annotation cp="🌰" type="tts">Kóró inú èso búránù</annotation>
+ <annotation cp="🍞">Búrɛ́dì | búrɛ́dì gígé</annotation>
+ <annotation cp="🍞" type="tts">Búrɛ́dì</annotation>
+ <annotation cp="🥐">búrɛ́dì | faransé | kírísɛ́ntì | kurosanti | Kurosanti | ónjɛ</annotation>
+ <annotation cp="🥐" type="tts">Kurosanti</annotation>
+ <annotation cp="🥖">búrɛ́dì | Burɛdi Baguette | búrɛ́dì gbɔɔrɔ | faransé | ónjɛ</annotation>
+ <annotation cp="🥖" type="tts">Burɛdi Baguette</annotation>
+ <annotation cp="🥨">lɔ́pɔ̀ | pretzel</annotation>
+ <annotation cp="🥨" type="tts">pretzel</annotation>
+ <annotation cp="🥞">Atike Ikunju | búrɛ́dì pɛlɛbɛ | crepe | ónjɛ</annotation>
+ <annotation cp="🥞" type="tts">Atike Ikunju</annotation>
+ <annotation cp="🧀">Waara Wedge | wàrà</annotation>
+ <annotation cp="🧀" type="tts">Waara Wedge</annotation>
+ <annotation cp="🍖">eegun | ɛran | Ɛran Ara Egungun</annotation>
+ <annotation cp="🍖" type="tts">Ɛran Ara Egungun</annotation>
+ <annotation cp="🍗">adìye | eegun | ɛsɛ̀ | Ɛsɛ Adiyɛ | ilé àdìyé</annotation>
+ <annotation cp="🍗" type="tts">Ɛsɛ Adiyɛ</annotation>
+ <annotation cp="🥩">ìgé ɛran | ijɛ àgùntàn | ijɛ ɛlɛ́dɛ̀ | ìjɛun | steak</annotation>
+ <annotation cp="🥩" type="tts">ìgé ɛran</annotation>
+ <annotation cp="🥓">ɛran | Ɛran Ɛlɛdɛ | ɛran ɛlɛ́dɛ̀ | ónjɛ</annotation>
+ <annotation cp="🥓" type="tts">Ɛran Ɛlɛdɛ</annotation>
+ <annotation cp="🍔">bɔ́gà | Hamburger</annotation>
+ <annotation cp="🍔" type="tts">Hamburger</annotation>
+ <annotation cp="🍟">didin | french | Ounjɛ Ipanu Didun</annotation>
+ <annotation cp="🍟" type="tts">Ounjɛ Ipanu Didun</annotation>
+ <annotation cp="🍕">gígé | Písà | wàrà</annotation>
+ <annotation cp="🍕" type="tts">Písà</annotation>
+ <annotation cp="🌭">àlɔ́pɔ̀ ɛrán | àlɔ́pɔ̀ ɛran àti ɛran ɛlɛ́dɛ̀ | èran ɛlɛ́dɛ̀ papɔ̀ pɛ̀lú ɛran | Hot Dog</annotation>
+ <annotation cp="🌭" type="tts">Hot Dog</annotation>
+ <annotation cp="🥪">Búrɛ́dì | búrɛ́dì alákànpɔ̀</annotation>
+ <annotation cp="🥪" type="tts">búrɛ́dì alákànpɔ̀</annotation>
+ <annotation cp="🌮">ónjɛ mɛ́síkò | Taco</annotation>
+ <annotation cp="🌮" type="tts">Taco</annotation>
+ <annotation cp="🌯">Burito | ónjɛ mɛ́síkò | wépò</annotation>
+ <annotation cp="🌯" type="tts">Burito</annotation>
+ <annotation cp="🥙">Burɛdi Afunpɔ Pɛlɛbɛ | búrɛdì àfúnpɔ̀ pɛlɛbɛ | falafe | gyro | kebab | ónjɛ | stuufe</annotation>
+ <annotation cp="🥙" type="tts">Burɛdi Afunpɔ Pɛlɛbɛ</annotation>
+ <annotation cp="🥚">ɛyin | Ɛyin | ónjɛ</annotation>
+ <annotation cp="🥚" type="tts">Ɛyin</annotation>
+ <annotation cp="🍳">Dídáná | dídín | ɛyin | páànù</annotation>
+ <annotation cp="🍳" type="tts">Dídáná</annotation>
+ <annotation cp="🥘">kásɛrɔ̀ | ónjɛ | Paanu Ijɛun kekere | páànù shálò | pàɛ́là | shálò</annotation>
+ <annotation cp="🥘" type="tts">Paanu Ijɛun kekere</annotation>
+ <annotation cp="🍲">ìkòkò | Ikoko Ounjɛ | ɔbɛ̀</annotation>
+ <annotation cp="🍲" type="tts">Ikoko Ounjɛ</annotation>
+ <annotation cp="🥣">abɔ́ pɛ̀lú shíbí | àgbàdo | congee | ónjɛ àrɔ̀</annotation>
+ <annotation cp="🥣" type="tts">abɔ́ pɛ̀lú shíbí</annotation>
+ <annotation cp="🥗">eléwé | ónjɛ | sàláádì | Saladi Elewe</annotation>
+ <annotation cp="🥗" type="tts">Saladi Elewe</annotation>
+ <annotation cp="🍿">Gúgúrú</annotation>
+ <annotation cp="🍿" type="tts">Gúgúrú</annotation>
+ <annotation cp="🥫">agolo | ónjɛ inú agolo</annotation>
+ <annotation cp="🥫" type="tts">ónjɛ inú agolo</annotation>
+ <annotation cp="🍱">Apoti | Bento</annotation>
+ <annotation cp="🍱" type="tts">Apoti Bento</annotation>
+ <annotation cp="🍘">bisikí | Biskit Irɛsi | ìrɛ̀sì</annotation>
+ <annotation cp="🍘" type="tts">Biskit Irɛsi</annotation>
+ <annotation cp="🍙">bɔ̀ɔ́lú | ìrɛsì | Irɛsi Roboto | japanese</annotation>
+ <annotation cp="🍙" type="tts">Irɛsi Roboto</annotation>
+ <annotation cp="🍚">Irɛsi | Sise</annotation>
+ <annotation cp="🍚" type="tts">Irɛsi Sise</annotation>
+ <annotation cp="🍛">irɛsi | kɔri</annotation>
+ <annotation cp="🍛" type="tts">irɛsi kɔri</annotation>
+ <annotation cp="🍜">abɔ́ | Abɔ ibɔhun | núdù | oru | rámɛ̀n</annotation>
+ <annotation cp="🍜" type="tts">Abɔ ibɔhun</annotation>
+ <annotation cp="🍝">pásítà | Spagɛti</annotation>
+ <annotation cp="🍝" type="tts">Spagɛti</annotation>
+ <annotation cp="🍠">ànàmɔ́ | Anamɔ dindin | dídùn | yíyan</annotation>
+ <annotation cp="🍠" type="tts">Anamɔ dindin</annotation>
+ <annotation cp="🍢">igi | keháb | Oden | ónjɛ omi | síkíwà</annotation>
+ <annotation cp="🍢" type="tts">Oden</annotation>
+ <annotation cp="🍣">Sushi</annotation>
+ <annotation cp="🍣" type="tts">Sushi</annotation>
+ <annotation cp="🍤">dídín | Ede Dindin | ɛdɛ | shírímpù | tɛ́mpúrà</annotation>
+ <annotation cp="🍤" type="tts">Ede Dindin</annotation>
+ <annotation cp="🍥">àkàrà òyìnbó | Eja dindin Pɛlu Swirl | ónjɛ oní fíláwà | swirl</annotation>
+ <annotation cp="🍥" type="tts">Eja dindin Pɛlu Swirl</annotation>
+ <annotation cp="🍡">àdídùn | Dango | igi | japanese | ónjé dídùn | skewer</annotation>
+ <annotation cp="🍡" type="tts">Dango</annotation>
+ <annotation cp="🥟">empanada | gyōza | ìgbɛ́ | jiaozi | pierogi | potsticker</annotation>
+ <annotation cp="🥟" type="tts">ìgbɛ́</annotation>
+ <annotation cp="🥠">asɔtɛ́lɛ̀ | kúkì fortune</annotation>
+ <annotation cp="🥠" type="tts">kúkì fortune</annotation>
+ <annotation cp="🥡">àpótí àgbéjáde | péèlìa ɔ́yɛ́stà</annotation>
+ <annotation cp="🥡" type="tts">àpótí àgbéjáde</annotation>
+ <annotation cp="🦀">Alákàn | àmi oshù ìbí | Cancer</annotation>
+ <annotation cp="🦀" type="tts">Alákàn</annotation>
+ <annotation cp="🦐">Ede | edé | ɛja inú ìkarahun | kékeré | ónjɛ</annotation>
+ <annotation cp="🦐" type="tts">Ede</annotation>
+ <annotation cp="🦑">mólúsì | ónjɛ | Sikidi | síkídì</annotation>
+ <annotation cp="🦑" type="tts">Sikidi</annotation>
+ <annotation cp="🍦">àdídùn | fɛ́lɛ́ | kírímù | ónjɛ dídùn | Wara Didi Rirɔ | yìnyín | yìnyín dídùn</annotation>
+ <annotation cp="🍦" type="tts">Wara Didi Rirɔ</annotation>
+ <annotation cp="🍧">àdídùn | fá | ónjɛ dídùn | yìnyín | Yinyin Gige</annotation>
+ <annotation cp="🍧" type="tts">Yinyin Gige</annotation>
+ <annotation cp="🍨">àdídùn | kírímù | ónjɛ dídùn | Wara Didi | yìnyín</annotation>
+ <annotation cp="🍨" type="tts">Wara Didi</annotation>
+ <annotation cp="🍩">àdídùn | Dónɔ́ɔ̀tì | dónɔtì | ónjɛ dídùn</annotation>
+ <annotation cp="🍩" type="tts">Dónɔ́ɔ̀tì</annotation>
+ <annotation cp="🍪">àdídùn | Kuki | ónjɛ dídùn</annotation>
+ <annotation cp="🍪" type="tts">Kuki</annotation>
+ <annotation cp="🎂">àdídùn | àkàrà òyìnbó | Àkàrà òyìnbó ɔjɔ́ìbí | ayɛyɛ | ónjɛ dídùn | ónjɛ oní fíláwà | ɔjɔ́ìbí</annotation>
+ <annotation cp="🎂" type="tts">Àkàrà òyìnbó ɔjɔ́ìbí</annotation>
+ <annotation cp="🍰">àdídùn | Akara kekere | àkàrà òyìnbó | gígé | ónjɛ dídùn | ónjɛ oní fíláwà</annotation>
+ <annotation cp="🍰" type="tts">Akara kekere</annotation>
+ <annotation cp="🥧">àkàrà | kíkún | róbótó</annotation>
+ <annotation cp="🥧" type="tts">róbótó</annotation>
+ <annotation cp="🍫">àdídùn | ilé otí | ónjɛ dídùn | shokolétì | Shokoleti Didi</annotation>
+ <annotation cp="🍫" type="tts">Shokoleti Didi</annotation>
+ <annotation cp="🍬">àdídùn | Kandi | ónjɛ dídùn</annotation>
+ <annotation cp="🍬" type="tts">Kandi</annotation>
+ <annotation cp="🍭">àdídùn | káńdì | ónjɛ dídùn | Suuti Onigi</annotation>
+ <annotation cp="🍭" type="tts">Suuti Onigi</annotation>
+ <annotation cp="🍮">àdídùn | Kɔ́sítàdì | ónjɛ dídùn | púdínì</annotation>
+ <annotation cp="🍮" type="tts">Kɔ́sítàdì</annotation>
+ <annotation cp="🍯">àdídùn | ìkòkò | Koko Oyin | oyin</annotation>
+ <annotation cp="🍯" type="tts">Koko Oyin</annotation>
+ <annotation cp="🍼">ìgò | Igo Ikoko | ìkókó | mílíkì | ohun mímu</annotation>
+ <annotation cp="🍼" type="tts">Igo Ikoko</annotation>
+ <annotation cp="🥛">gílásì | Ife Wara | mílíkì | mu</annotation>
+ <annotation cp="🥛" type="tts">Ife Wara</annotation>
+ <annotation cp="☕">gbígóná | kɔfí | mímu | ohun mímu oní kòkó | tíì | Tii Gbigbona | yíyɔ oru</annotation>
+ <annotation cp="☕" type="tts">Tii Gbigbona</annotation>
+ <annotation cp="🍵">ife | Ife Tii laini Ɔwɔ | mímu | o ohun mímu oní kòkó | tíì</annotation>
+ <annotation cp="🍵" type="tts">Ife Tii laini Ɔwɔ</annotation>
+ <annotation cp="🍶">ife | ìgò | ilé ɔtí | ohun mímu | ohun mímu oní kòkó | Sake</annotation>
+ <annotation cp="🍶" type="tts">Sake</annotation>
+ <annotation cp="🍾">ìdérí ɔtí | ìgò | Igo Olori Yiyɔ | ilé ɔtí | ìshí ɔtí | ohun mímu</annotation>
+ <annotation cp="🍾" type="tts">Igo Olori Yiyɔ</annotation>
+ <annotation cp="🍷">gílásì | Gilasi Waini | ilé ɔtí | ohun mímu | ohun mímu oní kòkó | wáìnì</annotation>
+ <annotation cp="🍷" type="tts">Gilasi Waini</annotation>
+ <annotation cp="🍸">Gilasi Ounjɛ Amulumala | ilé ɔtí | ónjɛ àmúlùmálà</annotation>
+ <annotation cp="🍸" type="tts">Gilasi Ounjɛ Amulumala</annotation>
+ <annotation cp="🍹">ilé ɔtí | ohun mímu | Ohun Mimu Akoko Oorun | ɔlɔ́pɛ</annotation>
+ <annotation cp="🍹" type="tts">Ohun Mimu Akoko Oorun</annotation>
+ <annotation cp="🍺">ilé ɔtí | Imuti | ìmutí | ohun mímu | ɔtí</annotation>
+ <annotation cp="🍺" type="tts">Imuti</annotation>
+ <annotation cp="🍻">dídún | ilé ɔtí | ímu | ìmutí | Imuti Dídún | ɔtí</annotation>
+ <annotation cp="🍻" type="tts">Imuti Dídún</annotation>
+ <annotation cp="🥂">ayɛyɛ | dún | gílásì | Gilasi Didun | ohun mímu</annotation>
+ <annotation cp="🥂" type="tts">Gilasi Didun</annotation>
+ <annotation cp="🥃">gílásì | Gilasi Tɔnbila | ɔtí | ɔtí líle | shɔ́ɔ̀tí | tɔ́mbílà</annotation>
+ <annotation cp="🥃" type="tts">Gilasi Tɔnbila</annotation>
+ <annotation cp="🥤">ɛlɛ́rìndòdò | ife pɛ̀lú sírɔ̀ | sódà</annotation>
+ <annotation cp="🥤" type="tts">ife pɛ̀lú sírɔ̀</annotation>
+ <annotation cp="🥢">áshì | ìlàrí</annotation>
+ <annotation cp="🥢" type="tts">ìlàrí</annotation>
+ <annotation cp="🍽">àwo | fɔ́ɔ̀kì | fɔ́ɔ̀kì àti ɔ̀bɛ pɛ̀lú àwo | ónjɛ sísè | ɔ̀bɛ</annotation>
+ <annotation cp="🍽" type="tts">fɔ́ɔ̀kì àti ɔ̀bɛ pɛ̀lú àwo</annotation>
+ <annotation cp="🍴">Fɔki Ati Ɔbɛ | fɔ́ɔ̀kì | ónjɛ sísè | ɔ̀bɛ</annotation>
+ <annotation cp="🍴" type="tts">Fɔki Ati Ɔbɛ</annotation>
+ <annotation cp="🥄">ǹkan ilé ìdáná | shíbí | Shíbí</annotation>
+ <annotation cp="🥄" type="tts">Shíbí</annotation>
+ <annotation cp="🔪">àsè | hocho | irinshɛ́ | irinshɛ́ ìjagun | ò̩bɛ | ɔbɛ iyara-idana</annotation>
+ <annotation cp="🔪" type="tts">ɔbɛ iyara-idana</annotation>
+ <annotation cp="🏺">àmi oshù ìbí | Amphora | Aquarius | dídáná | ife omi | irinshɛ́ | irinshɛ́ ìjagun | ohun mímu</annotation>
+ <annotation cp="🏺" type="tts">Amphora</annotation>
+ <annotation cp="🌍">áfíríkà | àgbáyé | ayé | gílóbù | Gulobu To N Shafihan Uropu-Afirika | írópù</annotation>
+ <annotation cp="🌍" type="tts">Gulobu To N Shafihan Uropu-Afirika</annotation>
+ <annotation cp="🌎">àgbáyé | àwɔn amɛ́ríkà | ayé | gúlóbù | Gulobu To N Shafihan Amɛrika</annotation>
+ <annotation cp="🌎" type="tts">Gulobu To N Shafihan Amɛrika</annotation>
+ <annotation cp="🌏">àgbáyé | áshíà | ayé | gúlóbù | Gulobu To N Shafihan Ashia-Ɔsiteria | ɔsiteria</annotation>
+ <annotation cp="🌏" type="tts">Gulobu To N Shafihan Ashia-Ɔsiteria</annotation>
+ <annotation cp="🌐">àgbáyé | ayé | gúlóbù | Gulobu Pɛlu Mɛridiani | mɛ̀rídíánì</annotation>
+ <annotation cp="🌐" type="tts">Gulobu Pɛlu Mɛridiani</annotation>
+ <annotation cp="🗺">àgbáyé | máàpù</annotation>
+ <annotation cp="🗺" type="tts">máàpù àgbáyé</annotation>
+ <annotation cp="🗾">jàpánù | máàpù | Maapu Ti Japanu</annotation>
+ <annotation cp="🗾" type="tts">Maapu Ti Japanu</annotation>
+ <annotation cp="🏔">òkè | òtútù | yìnyín</annotation>
+ <annotation cp="🏔" type="tts">òkè yìnyín</annotation>
+ <annotation cp="⛰">òkè</annotation>
+ <annotation cp="⛰" type="tts">òkè</annotation>
+ <annotation cp="🌋">ìfɛ̀ ilɛ̀ | Ifɛ-ilɛ | òkè</annotation>
+ <annotation cp="🌋" type="tts">Ifɛ-ilɛ</annotation>
+ <annotation cp="🗻">fújì | òkè | Oke Fuji</annotation>
+ <annotation cp="🗻" type="tts">Oke Fuji</annotation>
+ <annotation cp="🏕">pípàgɔ́</annotation>
+ <annotation cp="🏕" type="tts">pípàgɔ́</annotation>
+ <annotation cp="🏖">agbòrùn | ɔ̀sà | ɔ̀sà pɛ̀lú agbòrùn</annotation>
+ <annotation cp="🏖" type="tts">ɔ̀sà pɛ̀lú agbòrùn</annotation>
+ <annotation cp="🏜">ashálɛ̀</annotation>
+ <annotation cp="🏜" type="tts">ashálɛ̀</annotation>
+ <annotation cp="🏝">ashálɛ̀ | erékùshù</annotation>
+ <annotation cp="🏝" type="tts">erékùshù ashálɛ̀</annotation>
+ <annotation cp="🏞">páàkì | páàkì orílɛ̀</annotation>
+ <annotation cp="🏞" type="tts">páàkì orílɛ̀</annotation>
+ <annotation cp="🏟">pápá ìsheré</annotation>
+ <annotation cp="🏟" type="tts">pápá ìsheré</annotation>
+ <annotation cp="🏛">ilé tó kílásíkà | kílásíkà</annotation>
+ <annotation cp="🏛" type="tts">ilé tó kílásíkà</annotation>
+ <annotation cp="🏗">Ishɛ́ ɔnà | ishɛ́ ɔnà ilé</annotation>
+ <annotation cp="🏗" type="tts">ishɛ́ ɔnà ilé</annotation>
+ <annotation cp="🏘">àwɔn ilé</annotation>
+ <annotation cp="🏘" type="tts">àwɔn ilé</annotation>
+ <annotation cp="🏚">àìdára | ilé</annotation>
+ <annotation cp="🏚" type="tts">ilé àìdára</annotation>
+ <annotation cp="🏠">ara ilé | ilé | Ilé</annotation>
+ <annotation cp="🏠" type="tts">Ilé</annotation>
+ <annotation cp="🏡">ilé | Ile Pelu Ɔgba | ɔgbà</annotation>
+ <annotation cp="🏡" type="tts">Ile Pelu Ɔgba</annotation>
+ <annotation cp="🏢">ilé | Ile Ibi-ishɛ</annotation>
+ <annotation cp="🏢" type="tts">Ile Ibi-ishɛ</annotation>
+ <annotation cp="🏣">ìfiránshɛ́ | Ile-ishɛ Ifiweranshɛ Japani | Japani</annotation>
+ <annotation cp="🏣" type="tts">Ile-ishɛ Ifiweranshɛ Japani</annotation>
+ <annotation cp="🏤">Àpótí ÌfìwéRánshɛ́ | ìrópù</annotation>
+ <annotation cp="🏤" type="tts">Àpótí ÌfìwéRánshɛ́</annotation>
+ <annotation cp="🏥">dókítà | Ile-iwosan | òògùn</annotation>
+ <annotation cp="🏥" type="tts">Ile-iwosan</annotation>
+ <annotation cp="🏦">ilé | Ile-ifowopamɔsi</annotation>
+ <annotation cp="🏦" type="tts">Ile-ifowopamɔsi</annotation>
+ <annotation cp="🏨">ilé | Ilé ìtura</annotation>
+ <annotation cp="🏨" type="tts">Ilé ìtura</annotation>
+ <annotation cp="🏩">ilé ìtura | Ilé ìtura Ifɛ</annotation>
+ <annotation cp="🏩" type="tts">Ilé ìtura Ifɛ</annotation>
+ <annotation cp="🏪">Ibi | Itura</annotation>
+ <annotation cp="🏪" type="tts">Ibi Itura</annotation>
+ <annotation cp="🏫">ilé | Ilé ìwé</annotation>
+ <annotation cp="🏫" type="tts">Ilé ìwé</annotation>
+ <annotation cp="🏬">ɛka | itaja</annotation>
+ <annotation cp="🏬" type="tts">ɛka itaja</annotation>
+ <annotation cp="🏭">ilé | Ilé-ishɛ́</annotation>
+ <annotation cp="🏭" type="tts">Ilé-ishɛ́</annotation>
+ <annotation cp="🏯">ilé ńlá | Ile Nla Japanisi | japanese</annotation>
+ <annotation cp="🏯" type="tts">Ile Nla Japanisi</annotation>
+ <annotation cp="🏰">Ile Nla | íròpù</annotation>
+ <annotation cp="🏰" type="tts">Ile Nla</annotation>
+ <annotation cp="💒">ìfɛ̀ | Ìgbéyàwó | ilé ìjɔsìn</annotation>
+ <annotation cp="💒" type="tts">Ìgbéyàwó</annotation>
+ <annotation cp="🗼">ile ishɔ | Ile Ishɔ Tokiyo | Tokiyo</annotation>
+ <annotation cp="🗼" type="tts">Ile Ishɔ Tokiyo</annotation>
+ <annotation cp="🗽">ère | Ere Ominira | òmìnira</annotation>
+ <annotation cp="🗽" type="tts">Ere Ominira</annotation>
+ <annotation cp="⛪">àgbélèbú | ɛlɛ́sìn ìgbàgbó̩ | ɛ̀sìn | Shɔɔshi</annotation>
+ <annotation cp="⛪" type="tts">Shɔɔshi</annotation>
+ <annotation cp="🕌">ɛ̀sìn | Ìmàle | Mɔ́sháláshí | Mùsùlùmí</annotation>
+ <annotation cp="🕌" type="tts">Mɔ́sháláshí</annotation>
+ <annotation cp="🕍">Eɛlɛ́sìn júù | ɛ̀sìn | júù | Sínágɔ́gù | tɛ́pílì</annotation>
+ <annotation cp="🕍" type="tts">Sínágɔ́gù</annotation>
+ <annotation cp="⛩">ɛ̀sìn | ilé òrìshà | ilé òrìshà shíntò | shíntò</annotation>
+ <annotation cp="⛩" type="tts">ilé òrìshà shíntò</annotation>
+ <annotation cp="🕋">ɛ̀sìn | Ìmàle | Kaaba | Mùsùlùmí</annotation>
+ <annotation cp="🕋" type="tts">Kaaba</annotation>
+ <annotation cp="⛲">Orísun omi</annotation>
+ <annotation cp="⛲" type="tts">Orísun omi</annotation>
+ <annotation cp="⛺">Àgɔ́ | pípàgɔ́</annotation>
+ <annotation cp="⛺" type="tts">Àgɔ́</annotation>
+ <annotation cp="🌁">kùrukùru | Ojuju</annotation>
+ <annotation cp="🌁" type="tts">Ojuju</annotation>
+ <annotation cp="🌃">alɛ́ | Ashalɛ Pɛlu Awɔn Irawɔ | ìràwɔ̀</annotation>
+ <annotation cp="🌃" type="tts">Ashalɛ Pɛlu Awɔn Irawɔ</annotation>
+ <annotation cp="🏙">fífɛ̀ìlú | ìlú</annotation>
+ <annotation cp="🏙" type="tts">fífɛ̀ìlú</annotation>
+ <annotation cp="🌄">àárɔ̀ | ìla òrùn | Lila Oorun Lori Awɔn Oke | òkè | òrù</annotation>
+ <annotation cp="🌄" type="tts">Lila Oorun Lori Awɔn Oke</annotation>
+ <annotation cp="🌅">àárɔ̀ | Ìlà oòrùn | òrùn</annotation>
+ <annotation cp="🌅" type="tts">Ìlà oòrùn</annotation>
+ <annotation cp="🌆">àshàlɛ́ | ìlú | Iwo Ilu Ni Ashalɛ | ìwɔ òrùn | oníbùú | òrùn</annotation>
+ <annotation cp="🌆" type="tts">Iwo Ilu Ni Ashalɛ</annotation>
+ <annotation cp="🌇">àshálé | Ìwɔ̀ oòrùn | òrún</annotation>
+ <annotation cp="🌇" type="tts">Ìwɔ̀ oòrùn</annotation>
+ <annotation cp="🌉">afárá | Afara Ni Ashalɛ | alɛ́</annotation>
+ <annotation cp="🌉" type="tts">Afara Ni Ashalɛ</annotation>
+ <annotation cp="♨">gbígbóná | omi àtilɛ̀wá | oru</annotation>
+ <annotation cp="♨" type="tts">omi àtilɛ̀wá</annotation>
+ <annotation cp="🎠">aládùn | ɛshin | Ɛshin Aladun</annotation>
+ <annotation cp="🎠" type="tts">Ɛshin Aladun</annotation>
+ <annotation cp="🎡">ferris | Kɛ̀kɛ́ Ferris | páàkì ìgbafɛ́ | róboto</annotation>
+ <annotation cp="🎡" type="tts">Kɛ̀kɛ́ Ferris</annotation>
+ <annotation cp="🎢">Kɛkɛ Olobiri | olóbírí | páàkì ìgbafɛ́ | yíyí</annotation>
+ <annotation cp="🎢" type="tts">Kɛkɛ Olobiri</annotation>
+ <annotation cp="💈">agerun | gérun | òpó | Opo Onigbajamɔ</annotation>
+ <annotation cp="💈" type="tts">Opo Onigbajamɔ</annotation>
+ <annotation cp="🎪">Aba | Ere-idaraya</annotation>
+ <annotation cp="🎪" type="tts">Aba Ere-idaraya</annotation>
+ <annotation cp="🚂">ɛ̀rɔ | ojú irin | òru | ɔks ojú irin | Yiyi</annotation>
+ <annotation cp="🚂" type="tts">Yiyi</annotation>
+ <annotation cp="🚃">bɔ́ɔ̀sì gígùn | ìná | ojú irin | ɔkɔ̀ | ɔkɔ̀ ojú irin | Ɔkɔ Oju-irin | ɔ̀nà ɔkɔ̀ ojú irin</annotation>
+ <annotation cp="🚃" type="tts">Ɔkɔ Oju-irin</annotation>
+ <annotation cp="🚄">aré | ojú irin | ɔkɔ̀ ojú irin | ɔkɔ̀ ojú irin abɛ́ ilɛ̀ | Ɔkɔ oju-irin Alare</annotation>
+ <annotation cp="🚄" type="tts">Ɔkɔ oju-irin Alare</annotation>
+ <annotation cp="🚅">aré | ojú irin | ɔkɔ̀ ojú irin | ɔkɔ̀ ojú irin abɛ́ ilɛ̀ | Ɔkɔ oju-irin Alare Pɛlu Imu Ɔta | ɔta</annotation>
+ <annotation cp="🚅" type="tts">Ɔkɔ oju-irin Alare Pɛlu Imu Ɔta</annotation>
+ <annotation cp="🚆">ɔkɔ Oju-irin | Shèdánilɛ́kɔ̀ɔ́</annotation>
+ <annotation cp="🚆" type="tts">Shèdánilɛ́kɔ̀ɔ́</annotation>
+ <annotation cp="🚇">Àjà ilɛ̀ | ɔ̀nà ɔkɔ̀ ojú irin</annotation>
+ <annotation cp="🚇" type="tts">Àjà ilɛ̀</annotation>
+ <annotation cp="🚈">ɔkɔ Oju-irin | Ɔkɔ oju-irin kekere</annotation>
+ <annotation cp="🚈" type="tts">Ɔkɔ oju-irin kekere</annotation>
+ <annotation cp="🚉">Ibudo | ojú-irin | ɔkɔ ojú-irin</annotation>
+ <annotation cp="🚉" type="tts">Ibudo</annotation>
+ <annotation cp="🚊">Ɔkɔ Akero Oniwiwɔ | Tiramu</annotation>
+ <annotation cp="🚊" type="tts">Tiramu</annotation>
+ <annotation cp="🚝">nshe ɔkɔ́ | Oju irin kan</annotation>
+ <annotation cp="🚝" type="tts">Oju irin kan</annotation>
+ <annotation cp="🚞">òké | ɔkɔ̀ | ɔkɔ ojú-irin | Reluwe Oloke</annotation>
+ <annotation cp="🚞" type="tts">Reluwe Oloke</annotation>
+ <annotation cp="🚋">ɔkɔ̀ | ɔkɔ̀ akérò oníwíwɔ́ | ɔkɔ̀ ojú irin gígùn | Ɔkɔ Tiramu</annotation>
+ <annotation cp="🚋" type="tts">Ɔkɔ Tiramu</annotation>
+ <annotation cp="🚌">nshe ɔkɔ́ | Ɔkɔ Akero</annotation>
+ <annotation cp="🚌" type="tts">Ɔkɔ Akero</annotation>
+ <annotation cp="🚍">ɔkɔ̀ akérò | Ɔkɔ Akero Ti Nbɔ | tí ń bɔ̀</annotation>
+ <annotation cp="🚍" type="tts">Ɔkɔ Akero Ti Nbɔ</annotation>
+ <annotation cp="🚎">ɔkɔ̀ akérò | Ɔkɔ Akero Oniwiwɔ | ɔkɔ̀ akérò oníwíwɔ́ | ɔkɔ̀ ojú irin gígùn</annotation>
+ <annotation cp="🚎" type="tts">Ɔkɔ Akero Oniwiwɔ</annotation>
+ <annotation cp="🚐">Ɔkɔ Akero | Ɔkɔ Akero Kekere</annotation>
+ <annotation cp="🚐" type="tts">Ɔkɔ Akero Kekere</annotation>
+ <annotation cp="🚑">nshe ɔkɔ́ | Ɔkɔ Alaisan</annotation>
+ <annotation cp="🚑" type="tts">Ɔkɔ Alaisan</annotation>
+ <annotation cp="🚒">Ɛnjini Onina | ɛ̀rɔ | iná | ɔkɔ̀ akkrù ńlá</annotation>
+ <annotation cp="🚒" type="tts">Ɛnjini Onina</annotation>
+ <annotation cp="🚓">olùshɔ́ | ɔkɔ̀ | Ɔkɔ Ɔlɔpa | ɔlɔ́pàá</annotation>
+ <annotation cp="🚓" type="tts">Ɔkɔ Ɔlɔpa</annotation>
+ <annotation cp="🚔">ɔkɔ́ | Ɔkɔ Ɔlɔpa Ti Nbɔ | ɔlɔ́pàá | tí ń bɔ̀</annotation>
+ <annotation cp="🚔" type="tts">Ɔkɔ Ɔlɔpa Ti Nbɔ</annotation>
+ <annotation cp="🚕">nshe ɔkɔ́ | Taasi</annotation>
+ <annotation cp="🚕" type="tts">Taasi</annotation>
+ <annotation cp="🚖">Taasi | Taasi Ti Nbɔ | Ti Nbɔ</annotation>
+ <annotation cp="🚖" type="tts">Taasi Ti Nbɔ</annotation>
+ <annotation cp="🚗">Ɔko | ɔkɔ́</annotation>
+ <annotation cp="🚗" type="tts">Ɔko</annotation>
+ <annotation cp="🚘">ɔkɔ̀ | Ɔkɔ Ti Nbɔ | tí ń bɔ̀</annotation>
+ <annotation cp="🚘" type="tts">Ɔkɔ Ti Nbɔ</annotation>
+ <annotation cp="🚙">ìgbafɛ́ | òks agbafɛ́ tó dára | Ɔkɔ Agbafɛ Daradara</annotation>
+ <annotation cp="🚙" type="tts">Ɔkɔ Agbafɛ Daradara</annotation>
+ <annotation cp="🚚">ifijishɛ | Ɔkɔ Akɛru</annotation>
+ <annotation cp="🚚" type="tts">Ɔkɔ Akɛru</annotation>
+ <annotation cp="🚛">díɛ̀ | ɔkɔ̀ akérò ńlá | ɔkɔ̀ akɛ́rù | Ɔkɔ Nla Akɛru</annotation>
+ <annotation cp="🚛" type="tts">Ɔkɔ Nla Akɛru</annotation>
+ <annotation cp="🚜">Katakata | nshe ɔkɔ́</annotation>
+ <annotation cp="🚜" type="tts">Katakata</annotation>
+ <annotation cp="🏎">ìdíje eré | ɔkɔ̀ | ɔkɔ̀ ìdíje eré</annotation>
+ <annotation cp="🏎" type="tts">ɔkɔ̀ ìdíje eré</annotation>
+ <annotation cp="🏍">alùpùpù | ìdíje eré</annotation>
+ <annotation cp="🏍" type="tts">alùpùpù</annotation>
+ <annotation cp="🛵">alupupu | onimɔto</annotation>
+ <annotation cp="🛵" type="tts">alupupu onimɔto</annotation>
+ <annotation cp="🚲">kɛ̀kɛ́ | Kɛ̀kɛ́</annotation>
+ <annotation cp="🚲" type="tts">Kɛ̀kɛ́</annotation>
+ <annotation cp="🛴">Alupùpù ɛlɛ́sɛ̀ méjì | alupupu kekere | gbá</annotation>
+ <annotation cp="🛴" type="tts">alupupu kekere</annotation>
+ <annotation cp="🚏">dúró | Ibudokɔ | ibùdókɔ̀ | ɔkɔ̀ akérò</annotation>
+ <annotation cp="🚏" type="tts">Ibudokɔ</annotation>
+ <annotation cp="🛣">ojú ɔ̀nà ɔkɔ̀ | ɔ́nà | pópó</annotation>
+ <annotation cp="🛣" type="tts">ojú ɔ̀nà ɔkɔ̀</annotation>
+ <annotation cp="🛤">ojú-irin | ɔkɔ ojú-irin | ɔ̀nà ojú-irin</annotation>
+ <annotation cp="🛤" type="tts">ɔ̀nà ojú-irin</annotation>
+ <annotation cp="🛢">àgbá | epo</annotation>
+ <annotation cp="🛢" type="tts">àgbá epo</annotation>
+ <annotation cp="⛽">afa epo | epo | gáàsì | ibùdó epo | pɔ̀mpù epo</annotation>
+ <annotation cp="⛽" type="tts">pɔ̀mpù epo</annotation>
+ <annotation cp="🚨">ɛran ɛlɛ́dɛ̀ | iná | Ina Ɔkɔ Ɔlɔpa | ɔkɔ̀ | ɔlɔ́pàá | yípo</annotation>
+ <annotation cp="🚨" type="tts">Ina Ɔkɔ Ɔlɔpa</annotation>
+ <annotation cp="🚥">adarí | adaríkɔ̀ | iná | Ina Adariko Onidubu</annotation>
+ <annotation cp="🚥" type="tts">Ina Adariko Onidubu</annotation>
+ <annotation cp="🚦">adarí | adaríkɔ̀ | iná | Ina Adariko Olopo</annotation>
+ <annotation cp="🚦" type="tts">Ina Adariko Olopo</annotation>
+ <annotation cp="🛑">Aami Idaduro | àmì | dúró | Onígun mɛ́jɔ</annotation>
+ <annotation cp="🛑" type="tts">Aami Idaduro</annotation>
+ <annotation cp="🚧">ìdènà | Ishɛ́ ɔnà</annotation>
+ <annotation cp="🚧" type="tts">Ishɛ́ ɔnà</annotation>
+ <annotation cp="⚓">Ìdákòró | irinshɛ́ | ɔkɔ̀ ojú omi ńlá</annotation>
+ <annotation cp="⚓" type="tts">Ìdákòró</annotation>
+ <annotation cp="⛵">ibi ìgbafɛ́ | okun | Ɔkɔ kekere | ɔkɔ̀ ojú omi | ɔkɔ̀ ojú omi ibi ìgbafɛ́</annotation>
+ <annotation cp="⛵" type="tts">Ɔkɔ kekere</annotation>
+ <annotation cp="🛶">obele | Òbèlé | ɔkɔ̀ ojú omi</annotation>
+ <annotation cp="🛶" type="tts">obele</annotation>
+ <annotation cp="🚤">ɔkɔ̀ ojú omi | Ɔkɔ omi alare</annotation>
+ <annotation cp="🚤" type="tts">Ɔkɔ omi alare</annotation>
+ <annotation cp="🛳">èrò | ɔkɔ̀ ojú omi ńlá | ɔkɔ̀ ojú omi ńlá èrò</annotation>
+ <annotation cp="🛳" type="tts">ɔkɔ̀ ojú omi ńlá èrò</annotation>
+ <annotation cp="⛴">èrò | ferí | ɔkɔ̀ ojú omi</annotation>
+ <annotation cp="⛴" type="tts">ferí</annotation>
+ <annotation cp="🛥">ɔkɔ̀ ojú omi | ɔkɔ̀ ojú omi tó ń lo ɛ̀rɔ</annotation>
+ <annotation cp="🛥" type="tts">ɔkɔ̀ ojú omi tó ń lo ɛ̀rɔ</annotation>
+ <annotation cp="🚢">èrò | ɔkɔ̀ ojú omi | Ɔkɔ̀ ojú omi ńlá</annotation>
+ <annotation cp="🚢" type="tts">Ɔkɔ̀ ojú omi ńlá</annotation>
+ <annotation cp="✈">bàlú òfurufú | ɔkɔ̀ òfurufú</annotation>
+ <annotation cp="✈" type="tts">bàlú òfurufú</annotation>
+ <annotation cp="🛩">bàlú òfurufú | bàlú òfurufú kékeré | ɔkɔ̀ òfurufú</annotation>
+ <annotation cp="🛩" type="tts">bàlú òfurufú kékeré</annotation>
+ <annotation cp="🛫">bàlú òfurufú | Ibi Idagbere Baalu | ìjáde | ɔkɔ̀ òfurufú | shàyɛ̀wò wɔlé</annotation>
+ <annotation cp="🛫" type="tts">Ibi Idagbere Baalu</annotation>
+ <annotation cp="🛬">àwɔn ìwɔlé | bàlú òfurufú | bíbalɛ̀ | Ibi Ikaabɔ Baalu | ìwɔlé | ɔkɔ̀ òfurufú | wíwɔlé</annotation>
+ <annotation cp="🛬" type="tts">Ibi Ikaabɔ Baalu</annotation>
+ <annotation cp="💺">àga | Ìjòkó</annotation>
+ <annotation cp="💺" type="tts">Ìjòkó</annotation>
+ <annotation cp="🚁">Ɛlikɔputa | nshe ɔkɔ́</annotation>
+ <annotation cp="🚁" type="tts">Ɛlikɔputa</annotation>
+ <annotation cp="🚟">olókè | Ɔkɔ oju irin | Ɔkɔ oju irin Oloke</annotation>
+ <annotation cp="🚟" type="tts">Ɔkɔ oju irin Oloke</annotation>
+ <annotation cp="🚠">gòndólà | òkè | Ɔkɔ oniwaya Ori-oke | wáyà</annotation>
+ <annotation cp="🚠" type="tts">Ɔkɔ oniwaya Ori-oke</annotation>
+ <annotation cp="🚡">éríklì | gòndólà | ɔkɔ̀ | ɔ̀nà ɔkɔ̀ ojú irin | Tramway Eriali | wáyà</annotation>
+ <annotation cp="🚡" type="tts">Tramway Eriali</annotation>
+ <annotation cp="🛰">ààyè | alátagbà</annotation>
+ <annotation cp="🛰" type="tts">alátagbà</annotation>
+ <annotation cp="🚀">ààyè | Rɔ́kɛ̀tì</annotation>
+ <annotation cp="🚀" type="tts">Rɔ́kɛ̀tì</annotation>
+ <annotation cp="🛸">àwɔ kékeré tí ń fò | UFO</annotation>
+ <annotation cp="🛸" type="tts">àwɔ kékeré tí ń fò</annotation>
+ <annotation cp="🛎">agogo | agogo alágbágbɛ́rùn ilé ìtura | alágbágbɛ́rùn ilé ìtura | ilé ìtura</annotation>
+ <annotation cp="🛎" type="tts">agogo alágbágbɛ́rùn ilé ìtura</annotation>
+ <annotation cp="⌛">adíwɔ̀n àkókò | Gilasiakoko | iyɛ̀pɛ̀</annotation>
+ <annotation cp="⌛" type="tts">Gilasiakoko</annotation>
+ <annotation cp="⏳">adíwɔ̀n àkókò | gílásì àkókò | Gilasiakoko Pɛlu Iyɛpɛ Ti N fɛ | ìyɛ̀pɛ̀</annotation>
+ <annotation cp="⏳" type="tts">Gilasiakoko Pɛlu Iyɛpɛ Ti N fɛ</annotation>
+ <annotation cp="⌚">ago | Ago</annotation>
+ <annotation cp="⌚" type="tts">Ago</annotation>
+ <annotation cp="⏰">Ago | Itaniji</annotation>
+ <annotation cp="⏰" type="tts">Ago Itaniji</annotation>
+ <annotation cp="⏱">ago | ago aláfɔwɔ́yí</annotation>
+ <annotation cp="⏱" type="tts">ago aláfɔwɔ́yí</annotation>
+ <annotation cp="⏲">adíwɔ̀n àkókò | ago | ago adíwɔ̀n àkókò</annotation>
+ <annotation cp="⏲" type="tts">ago adíwɔ̀n àkókò</annotation>
+ <annotation cp="🕰">ago | ago àgbélɛ̀</annotation>
+ <annotation cp="🕰" type="tts">ago àgbélɛ̀</annotation>
+ <annotation cp="🕛">00 | 12 | 12:00 | ago | Ago Mejila | lù gérégé | méjìlá</annotation>
+ <annotation cp="🕛" type="tts">Ago Mejila</annotation>
+ <annotation cp="🕧">12 | 12:30 | 30 | ago | Ago Mejila Aabɔ | méjìlá | ɔgbɔ̀n</annotation>
+ <annotation cp="🕧" type="tts">Ago Mejila Aabɔ</annotation>
+ <annotation cp="🕐">00 | 1 | 1:00 | ago | Ago Kan an | ìkan | lù gérégé</annotation>
+ <annotation cp="🕐" type="tts">Ago Kan an</annotation>
+ <annotation cp="🕜">1 | 1:30 | 30 | ago | Ago kan an aabɔ | ìkan | ɔgbɔ̀n</annotation>
+ <annotation cp="🕜" type="tts">Ago kan an aabɔ</annotation>
+ <annotation cp="🕑">00 | 2 | 2:00 | ago | Ago Meji | lù gérégé | méjì</annotation>
+ <annotation cp="🕑" type="tts">Ago Meji</annotation>
+ <annotation cp="🕝">2 | 2:30 | ago | Ago Meji Aaabɔ | méjì | ɔgbɔ̀n</annotation>
+ <annotation cp="🕝" type="tts">Ago Meji Aaabɔ</annotation>
+ <annotation cp="🕒">00 | 3 | 3:00 | ago | Ago Mɛta | lù gérégé | mɛ́tàa</annotation>
+ <annotation cp="🕒" type="tts">Ago Mɛta</annotation>
+ <annotation cp="🕞">3 | 3:30 | ago | Ago Mɛta Aabɔ | mɛ́tàa | ɔgbɔ̀n</annotation>
+ <annotation cp="🕞" type="tts">Ago Mɛta Aabɔ</annotation>
+ <annotation cp="🕓">00 | 4 | 4:00 | ago | Ago Mɛrin | lù gérégé | mɛ́rìn</annotation>
+ <annotation cp="🕓" type="tts">Ago Mɛrin</annotation>
+ <annotation cp="🕟">30 | 4 | 4:30 | ago | Ago Merin Aabɔ | mɛ́rìn | ɔgbɔ̀n</annotation>
+ <annotation cp="🕟" type="tts">Ago Merin Aabɔ</annotation>
+ <annotation cp="🕔">00 | 4 | 4:00 | ago | Ago Marun un | lù gérégé | márùn</annotation>
+ <annotation cp="🕔" type="tts">Ago Marun un</annotation>
+ <annotation cp="🕠">30 | 4 | 4:30 | ago | Ago Marun un Aabɔ | márùn | ɔgbɔ̀n</annotation>
+ <annotation cp="🕠" type="tts">Ago Marun un Aabɔ</annotation>
+ <annotation cp="🕕">00 | 6 | 6:00 | ago | Ago Mɛfa | lù gérégé | mɛ́fàa</annotation>
+ <annotation cp="🕕" type="tts">Ago Mɛfa</annotation>
+ <annotation cp="🕡">30 | 6 | 6:30 | ago | Ago Mɛfa Aabɔ | mɛ́fàa | ɔgbɔ̀n</annotation>
+ <annotation cp="🕡" type="tts">Ago Mɛfa Aabɔ</annotation>
+ <annotation cp="🕖">00 | 7 | 7:00 | ago | Ago Meje | lù gérégé | méje</annotation>
+ <annotation cp="🕖" type="tts">Ago Meje</annotation>
+ <annotation cp="🕢">30 | 7 | 7:30 | ago | Ago Meje Aabɔ | méje | ɔgbɔ̀n</annotation>
+ <annotation cp="🕢" type="tts">Ago Meje Aabɔ</annotation>
+ <annotation cp="🕗">00 | 8 | 8:00 | ago | Ago Mɛjɔ | lù gérégé | méjɔ</annotation>
+ <annotation cp="🕗" type="tts">Ago Mɛjɔ</annotation>
+ <annotation cp="🕣">30 | 8 | 8:30 | ago | Ago Mejɔ Aabɔ | méjɔ | ɔgbɔ̀n</annotation>
+ <annotation cp="🕣" type="tts">Ago Mejɔ Aabɔ</annotation>
+ <annotation cp="🕘">00 | 9 | 9:00 | ago | Ago Mɛsan an | lù gérégé | mɛ́san an</annotation>
+ <annotation cp="🕘" type="tts">Ago Mɛsan an</annotation>
+ <annotation cp="🕤">30 | 9 | 9:30 | ago | Ago Mɛsan an Aabɔ | mɛ́san an | ɔgbɔ̀n</annotation>
+ <annotation cp="🕤" type="tts">Ago Mɛsan an Aabɔ</annotation>
+ <annotation cp="🕙">00 | 10 | 10:00 | ago | Ago Mɛwa | lù gérégé | mɛ́wàá</annotation>
+ <annotation cp="🕙" type="tts">Ago Mɛwa</annotation>
+ <annotation cp="🕥">10 | 10:30 | 30 | ago | Ago Mɛwa Aabɔ | mɛ́wàá | ɔgbɔ̀n</annotation>
+ <annotation cp="🕥" type="tts">Ago Mɛwa Aabɔ</annotation>
+ <annotation cp="🕚">00 | 11 | 11:00 | ago | Ago Mɔkanla | lù gérégé | mɔ́kànlá</annotation>
+ <annotation cp="🕚" type="tts">Ago Mɔkanla</annotation>
+ <annotation cp="🕦">11 | 11:30 | 30 | ago | Ago Mɔkanla Aabɔ | mɔ́kánlá | ɔgbɔ̀n</annotation>
+ <annotation cp="🕦" type="tts">Ago Mɔkanla Aabɔ</annotation>
+ <annotation cp="🌑">dúdú | òshùpá | Òshùpá Tuntun</annotation>
+ <annotation cp="🌑" type="tts">Òshùpá Tuntun</annotation>
+ <annotation cp="🌒">kírísɛ́ntì | òshùpá | yíyɔ́ | Yíyɔ́ Ààbɔ̀ Oshùpá</annotation>
+ <annotation cp="🌒" type="tts">Yíyɔ́ Ààbɔ̀ Oshùpá</annotation>
+ <annotation cp="🌓">ìdámɛ́rin | òshùpá | Oshùpá Ìlàrin Àkɔ́kɔ́</annotation>
+ <annotation cp="🌓" type="tts">Oshùpá Ìlàrin Àkɔ́kɔ́</annotation>
+ <annotation cp="🌔">kíkùn | òshùpá | yíyɔ́ | Yíyɔ́ Kíkún Oshùpá</annotation>
+ <annotation cp="🌔" type="tts">Yíyɔ́ Kíkún Oshùpá</annotation>
+ <annotation cp="🌕">Ɛ̀kúnrɛ́rɛ́ | Òshùpá</annotation>
+ <annotation cp="🌕" type="tts">Ɛ̀kúnrɛ́rɛ́ Òshùpá</annotation>
+ <annotation cp="🌖">Kíkún | Oshùpá | Títàn</annotation>
+ <annotation cp="🌖" type="tts">Títàn Kíkún Oshùpá</annotation>
+ <annotation cp="🌗">ìdámɛ́rin | òshùpá | Oshùpá Ìlàrin Ìgbɛ̀yìn</annotation>
+ <annotation cp="🌗" type="tts">Oshùpá Ìlàrin Ìgbɛ̀yìn</annotation>
+ <annotation cp="🌘">kírísɛ́ntì | òshùpá | òshùpa kékeré | Títàn Ààbɔ̀ Oshùpá</annotation>
+ <annotation cp="🌘" type="tts">Títàn Ààbɔ̀ Oshùpá</annotation>
+ <annotation cp="🌙">Ààbɔ̀ | Oshùpá</annotation>
+ <annotation cp="🌙" type="tts">Ààbɔ̀ Oshùpá</annotation>
+ <annotation cp="🌚">ojú | Oju Òshùpá Tuntun | oshupa</annotation>
+ <annotation cp="🌚" type="tts">Oju Òshùpá Tuntun</annotation>
+ <annotation cp="🌛">ìdámɛ́rin | ojú | òshùpá | Oshùpá Ìlàrin Àkɔ́kɔ́ Pɛ̀lú Ojú</annotation>
+ <annotation cp="🌛" type="tts">Oshùpá Ìlàrin Àkɔ́kɔ́ Pɛ̀lú Ojú</annotation>
+ <annotation cp="🌜">ìdámɛ́rin | ojú | òshùpá | Oshùpá Ìlàrin Ìgbɛ̀yìn Pɛ̀lú Ojú</annotation>
+ <annotation cp="🌜" type="tts">Oshùpá Ìlàrin Ìgbɛ̀yìn Pɛ̀lú Ojú</annotation>
+ <annotation cp="🌡">ojú ɔjɔ́ | òshùwɔ̀n ìgbóná</annotation>
+ <annotation cp="🌡" type="tts">òshùwɔ̀n ìgbóná</annotation>
+ <annotation cp="☀">ìmɔ́lɛ̀ | itanshan oòrùn | òrùn</annotation>
+ <annotation cp="☀" type="tts">òrùn</annotation>
+ <annotation cp="🌝">ɛ̀kún | Ɛ̀kúnrɛ́rɛ́ Òshùpá Pɛ̀lú Ojú | ìmɔ̀lɛ̀ | ojú | òshùpá</annotation>
+ <annotation cp="🌝" type="tts">Ɛ̀kúnrɛ́rɛ́ Òshùpá Pɛ̀lú Ojú</annotation>
+ <annotation cp="🌞">ìmɔ́lɛ̀ | ojú | Oorun Pɛlu Oju | òrùn</annotation>
+ <annotation cp="🌞" type="tts">Oorun Pɛlu Oju</annotation>
+ <annotation cp="⭐">ìràwɔ̀ | Irawɔ Alaabɔ Funfun</annotation>
+ <annotation cp="⭐" type="tts">Irawɔ Alaabɔ Funfun</annotation>
+ <annotation cp="🌟">dán | dídán | ìràwɔ̀ | Irawɔ Titan | tàn</annotation>
+ <annotation cp="🌟" type="tts">Irawɔ Titan</annotation>
+ <annotation cp="🌠">ìràwɔ̀ | Irawɔ Yiyɔ | jíjábɔ́ | títa</annotation>
+ <annotation cp="🌠" type="tts">Irawɔ Yiyɔ</annotation>
+ <annotation cp="🌌">ààyè | Ɔna Oniwara</annotation>
+ <annotation cp="🌌" type="tts">Ɔna Oniwara</annotation>
+ <annotation cp="☁">òfurufú | ojú ɔjɔ́</annotation>
+ <annotation cp="☁" type="tts">òfurufú</annotation>
+ <annotation cp="⛅">òfurufú | òòrùn | Oorun Lɛhin Ofurufu</annotation>
+ <annotation cp="⛅" type="tts">Oorun Lɛhin Ofurufu</annotation>
+ <annotation cp="⛈">àrá | òfurufú | òfurufú pɛ̀lú shísháná àti òjò | òjò</annotation>
+ <annotation cp="⛈" type="tts">òfurufú pɛ̀lú shísháná àti òjò</annotation>
+ <annotation cp="🌤">òfurufú | òòrùn | òòrùn lɛ́yìn òfurufú kékeré</annotation>
+ <annotation cp="🌤" type="tts">òòrùn lɛ́yìn òfurufú kékeré</annotation>
+ <annotation cp="🌥">òfurufú | òòrùn | òòrùn lɛ́yìn òfurufú tó tóbi</annotation>
+ <annotation cp="🌥" type="tts">òòrùn lɛ́yìn òfurufú tó tóbi</annotation>
+ <annotation cp="🌦">òfurufú | òjò | òòrùn | òòrùn lɛ́yìn òfurufú òjò</annotation>
+ <annotation cp="🌦" type="tts">òòrùn lɛ́yìn òfurufú òjò</annotation>
+ <annotation cp="🌧">òfurufú | òfurufú pɛ̀lú òjò | òjò</annotation>
+ <annotation cp="🌧" type="tts">òfurufú pɛ̀lú òjò</annotation>
+ <annotation cp="🌨">òfurufú | òfurufú pɛ̀lú yìnyín | òtútù | yìnyín</annotation>
+ <annotation cp="🌨" type="tts">òfurufú pɛ̀lú yìnyín</annotation>
+ <annotation cp="🌩">òfurufú | òfurufú pɛlu shísháná | shísháná</annotation>
+ <annotation cp="🌩" type="tts">òfurufú pɛlu shísháná</annotation>
+ <annotation cp="🌪">ìjì | ìjì tó le | òfurufú</annotation>
+ <annotation cp="🌪" type="tts">ìjì tó le</annotation>
+ <annotation cp="🌫">kùrukùru | òfurufú</annotation>
+ <annotation cp="🌫" type="tts">kùrukùru</annotation>
+ <annotation cp="🌬">atɛ́gùn | òfurufú | ojú | tayɔ</annotation>
+ <annotation cp="🌬" type="tts">ojú atɛ́gùn</annotation>
+ <annotation cp="🌀">àyí | Ɛfuufu | ìjì | òyì</annotation>
+ <annotation cp="🌀" type="tts">Ɛfuufu</annotation>
+ <annotation cp="🌈">òjò | òshùmarè</annotation>
+ <annotation cp="🌈" type="tts">òshùmarè</annotation>
+ <annotation cp="🌂">Agboorun Toti | agbòrùn | ashɔ | òjò</annotation>
+ <annotation cp="🌂" type="tts">Agboorun Toti</annotation>
+ <annotation cp="☂">agbòrùn | ashɔ | òjò</annotation>
+ <annotation cp="☂" type="tts">agbòrùn</annotation>
+ <annotation cp="☔">Agboorun Pɛlu Omi Ojo Kikan | agbòrùn | ashɔ | kán | òjó</annotation>
+ <annotation cp="☔" type="tts">Agboorun Pɛlu Omi Ojo Kikan</annotation>
+ <annotation cp="⛱">agbòrùn | agbòrùn ní ilɛ̀ | òjò | òrùn</annotation>
+ <annotation cp="⛱" type="tts">agbòrùn ní ilɛ̀</annotation>
+ <annotation cp="⚡">agbára iná | Agbara Ina Giga | ewu | iná | mɔ̀nɔ̀mɔ́nɔ́ | sáàpù</annotation>
+ <annotation cp="⚡" type="tts">Agbara Ina Giga</annotation>
+ <annotation cp="❄">ìdìjɔ òjò yìnyín | òtútù | yìnyín</annotation>
+ <annotation cp="❄" type="tts">ìdìjɔ òjò yìnyín</annotation>
+ <annotation cp="☃">òtútù | ɔkùnrin yìnyín | yìnyín</annotation>
+ <annotation cp="☃" type="tts">ɔkùnrin yìnyín</annotation>
+ <annotation cp="⛄">òtútù | ɔkùnrin yìnyín | Ɔkunrin yinyin Laini Yinyin | yìnyín</annotation>
+ <annotation cp="⛄" type="tts">Ɔkunrin yinyin Laini Yinyin</annotation>
+ <annotation cp="☄">ààyè | kamɛ́tì</annotation>
+ <annotation cp="☄" type="tts">kamɛ́tì</annotation>
+ <annotation cp="🔥">iná | Iná | irinshɛ́</annotation>
+ <annotation cp="🔥" type="tts">Iná</annotation>
+ <annotation cp="💧">àwàdà | Drɔ́púlɛ́ɛ̀tì | kán òógùn | òtútù</annotation>
+ <annotation cp="💧" type="tts">Drɔ́púlɛ́ɛ̀tì</annotation>
+ <annotation cp="🌊">ìjì | Iji Omi | òkun | omi</annotation>
+ <annotation cp="🌊" type="tts">Iji Omi</annotation>
+ <annotation cp="🎃">alowínì | àtùpà | ayɛyɛ | jáàkì | Jack-o-Atupa</annotation>
+ <annotation cp="🎃" type="tts">Jack-o-Atupa</annotation>
+ <annotation cp="🎄">ayɛyɛ | igi | Igi Keresimesi | kérésìmesì</annotation>
+ <annotation cp="🎄" type="tts">Igi Keresimesi</annotation>
+ <annotation cp="🎆">ayɛyɛ | Ishɛ́iná</annotation>
+ <annotation cp="🎆" type="tts">Ishɛ́iná</annotation>
+ <annotation cp="🎇">ayɛyɛ | dán | ishɛ́iná | Olutan</annotation>
+ <annotation cp="🎇" type="tts">Olutan</annotation>
+ <annotation cp="✨">Awɔn Titan | dán | ìràwɔ̀</annotation>
+ <annotation cp="✨" type="tts">Awɔn Titan</annotation>
+ <annotation cp="🎈">ayɛyɛ | Bàlúùnù</annotation>
+ <annotation cp="🎈" type="tts">Bàlúùnù</annotation>
+ <annotation cp="🎉">aláríyá | Ariwo Ayɛye | àríyá | ayɛyɛ | tádà</annotation>
+ <annotation cp="🎉" type="tts">Ariwo Ayɛye</annotation>
+ <annotation cp="🎊">ayɛyɛ | bɔ́ɔ̀lù | Bɔɔlu Kɔnfɛti | kɔnfetí</annotation>
+ <annotation cp="🎊" type="tts">Bɔɔlu Kɔnfɛti</annotation>
+ <annotation cp="🎋">ánà | ayɛyɛ | igi | Igi Tanabata | japanese</annotation>
+ <annotation cp="🎋" type="tts">Igi Tanabata</annotation>
+ <annotation cp="🎍">ayɛyɛ | eso ɔ̀pɛ òyìnbó | Ɛshɔ Ɔpɛ oyinbo | igi bambú | japanese</annotation>
+ <annotation cp="🎍" type="tts">Ɛshɔ Ɔpɛ oyinbo</annotation>
+ <annotation cp="🎎">àjɔyɔ̀ | Awɔn Ere Japanisi | ayɛyɛ | Japanese | omolankidi</annotation>
+ <annotation cp="🎎" type="tts">Awɔn Ere Japanisi</annotation>
+ <annotation cp="🎏">ayɛyɛ | ìbɔsɛ̀ tí ń fò | káàpù | Olugekere Capu</annotation>
+ <annotation cp="🎏" type="tts">Olugekere Capu</annotation>
+ <annotation cp="🎐">agogo | atɛ́gùn | ayɛyɛ | ìdún agogo | Idun Iji</annotation>
+ <annotation cp="🎐" type="tts">Idun Iji</annotation>
+ <annotation cp="🎑">ayɛyɛ | òshùpá | Wiwo Ayɛyɛ Oshupa</annotation>
+ <annotation cp="🎑" type="tts">Wiwo Ayɛyɛ Oshupa</annotation>
+ <annotation cp="🎀">ayɛyɛ | Ríbìnnì</annotation>
+ <annotation cp="🎀" type="tts">Ríbìnnì</annotation>
+ <annotation cp="🎁">àpótí | ayɛyɛ | ɛ̀bùn | Ɛbun Didi | wépɔ̀</annotation>
+ <annotation cp="🎁" type="tts">Ɛbun Didi</annotation>
+ <annotation cp="🎗">ayɛyɛ | ìránilétí | ríbínì</annotation>
+ <annotation cp="🎗" type="tts">ríbínì ìránilétí</annotation>
+ <annotation cp="🎟">àwɔn ìwɔlé ìgbaniwɔlé | ìgbaniwɔlé | ìwɔlé</annotation>
+ <annotation cp="🎟" type="tts">àwɔn ìwɔlé ìgbaniwɔlé</annotation>
+ <annotation cp="🎫">ìgbaniwɔlé | Iwe Iwɔle</annotation>
+ <annotation cp="🎫" type="tts">Iwe Iwɔle</annotation>
+ <annotation cp="🎖">ayɛyɛ | fàdákà ológun</annotation>
+ <annotation cp="🎖" type="tts">fàdákà ológun</annotation>
+ <annotation cp="🏆">ɛ̀bùn | Ife</annotation>
+ <annotation cp="🏆" type="tts">Ife</annotation>
+ <annotation cp="🏅">fàdákà | Fadaka Ere idaraya</annotation>
+ <annotation cp="🏅" type="tts">Fadaka Ere idaraya</annotation>
+ <annotation cp="🥇">àkɔ́kɔ́ | fádákà | Fadaka Ipo Akɔkɔ | góòlù</annotation>
+ <annotation cp="🥇" type="tts">Fadaka Ipo Akɔkɔ</annotation>
+ <annotation cp="🥈">fádákà | Fadaka Ipo Ekeji | ipò kejì | sílífà</annotation>
+ <annotation cp="🥈" type="tts">Fadaka Ipo Ekeji</annotation>
+ <annotation cp="🥉">bírónsì | fàdákà | Fadaka Ipo Ɛkɛta | ipò kɛta</annotation>
+ <annotation cp="🥉" type="tts">Fadaka Ipo Ɛkɛta</annotation>
+ <annotation cp="⚽">bɔ́ɔ̀lù | Bɔɔlu Afɛsɛgba | bɔ́ɔ̀lù àfɛsɛ̀gbá</annotation>
+ <annotation cp="⚽" type="tts">Bɔɔlu Afɛsɛgba</annotation>
+ <annotation cp="⚾">bɔ́ɔ̀lù | Bɔ́ɔ̀lùòkè</annotation>
+ <annotation cp="⚾" type="tts">Bɔ́ɔ̀lùòkè</annotation>
+ <annotation cp="🏀">bɔ́ɔ̀lù | Bɔ́ɔ̀lùalágbɔ̀n | òrùka onírin ńlá roboto</annotation>
+ <annotation cp="🏀" type="tts">Bɔ́ɔ̀lùalágbɔ̀n</annotation>
+ <annotation cp="🏐">bɔ́ɔ̀lù | eré | Folliboolu</annotation>
+ <annotation cp="🏐" type="tts">Folliboolu</annotation>
+ <annotation cp="🏈">amɛ́ríkà | bɔ́ɔ̀lù | bɔ́ɔ̀lù àfɛshɛ̀gbá | Bɔɔlu Amɛrika</annotation>
+ <annotation cp="🏈" type="tts">Bɔɔlu Amɛrika</annotation>
+ <annotation cp="🏉">bɔ́ɔ̀lù | bɔ́ɔ̀lù àfɛshɛ̀gbá | Bɔɔlu Rɔgibi | bɔ́ɔ̀lù rɔ́gíbì</annotation>
+ <annotation cp="🏉" type="tts">Bɔɔlu Rɔgibi</annotation>
+ <annotation cp="🎾">bɔ́ɔ̀lù | rákɛ̀tì | Tɛnisi</annotation>
+ <annotation cp="🎾" type="tts">Tɛnisi</annotation>
+ <annotation cp="🎳">Bolin | bɔ́ɔ̀lù | eré</annotation>
+ <annotation cp="🎳" type="tts">Bolin</annotation>
+ <annotation cp="🏏">bɔ̀ɔ́lù | eré | eré bɔ́ɔ̀lù afi pátákó gbá | pátákó ìgbá bɔ́ɔ̀lù</annotation>
+ <annotation cp="🏏" type="tts">eré bɔ́ɔ̀lù afi pátákó gbá</annotation>
+ <annotation cp="🏑">bɔ́ɔ̀lù | eré | hɔ́kì | Hɔki Papa | igi | pápá</annotation>
+ <annotation cp="🏑" type="tts">Hɔki Papa</annotation>
+ <annotation cp="🏒">eré | hɔ́kì | Hɔki Yinyin | igi | pɔ́kì | yìnyín</annotation>
+ <annotation cp="🏒" type="tts">Hɔki Yinyin</annotation>
+ <annotation cp="🏓">ajé ìwakɔ̀ | báàtì | bɔ́ɔ́lù | Bɔɔlu Ori Tabili</annotation>
+ <annotation cp="🏓" type="tts">Bɔɔlu Ori Tabili</annotation>
+ <annotation cp="🏸">Badimitin | bɛ́ɛ̀dì | eré | ihò bɔ́ɔ̀lù | rákɛ̀tì</annotation>
+ <annotation cp="🏸" type="tts">Badimitin</annotation>
+ <annotation cp="🥊">gilofu | ikanshɛ</annotation>
+ <annotation cp="🥊" type="tts">gilofu ikanshɛ</annotation>
+ <annotation cp="🥋">àǹkóò | Ashɔ Ere Itapa | àwon eré onípàá àti ɛlɛ́sɛ̀ | eré ɛlɛ́sɛ̀ | eré onípàá àti ɔwɔ́ | eré ɔlɔ́wɔ́</annotation>
+ <annotation cp="🥋" type="tts">Ashɔ Ere Itapa</annotation>
+ <annotation cp="🥅">àwɔ̀n | góòlù</annotation>
+ <annotation cp="🥅" type="tts">àwɔ̀n góòlù</annotation>
+ <annotation cp="⛳">Asia Ninu Iho | gɔ́ɔ̀fù | ihò</annotation>
+ <annotation cp="⛳" type="tts">Asia Ninu Iho</annotation>
+ <annotation cp="⛸">síkétì | yìnyín</annotation>
+ <annotation cp="⛸" type="tts">yìnyín síkétì</annotation>
+ <annotation cp="🎣">ɛja | òpó | Opo Ipɛja</annotation>
+ <annotation cp="🎣" type="tts">Opo Ipɛja</annotation>
+ <annotation cp="🎽">àwɔn tí ń sáré | sáàshì | shɛ́ɛ̀tì | Shɛɛti Isare | sísáré</annotation>
+ <annotation cp="🎽" type="tts">Shɛɛti Isare</annotation>
+ <annotation cp="🎿">Awɔn Siki | síkì | yínyìn</annotation>
+ <annotation cp="🎿" type="tts">Awɔn Siki</annotation>
+ <annotation cp="🛷">sílɛ̀ | sílɛ́dì | sílɛ́jì</annotation>
+ <annotation cp="🛷" type="tts">sílɛ́dì</annotation>
+ <annotation cp="🥌">eré | òkúta | òkúta ìwɔ́</annotation>
+ <annotation cp="🥌" type="tts">òkúta ìwɔ́</annotation>
+ <annotation cp="🎯">àfojúsùn | akɔ màlú | eré | gún | Igba Taara | ɔ̀gángɔ́ ayò | pálí ayò</annotation>
+ <annotation cp="🎯" type="tts">Igba Taara</annotation>
+ <annotation cp="🎱">8 | bílíádì | bɔ́ɔ̀lù | Bɔɔlu Odo 8 | eré | ɛ́ɛ́jɔ</annotation>
+ <annotation cp="🎱" type="tts">Bɔɔlu Odo 8</annotation>
+ <annotation cp="🔮">àìbáyému | àló̩ ajɛmó̩win | bɔ́ó̩lù | bɔɔlu aworawɔ | òkúta aworàwò̩ | ɔrɔ̀ | pàápàá</annotation>
+ <annotation cp="🔮" type="tts">bɔɔlu aworawɔ</annotation>
+ <annotation cp="🎮">eré | Ere-idaraya Fidio | olùdarí</annotation>
+ <annotation cp="🎮" type="tts">Ere-idaraya Fidio</annotation>
+ <annotation cp="🕹">Ere-idaraya | Ere-idaraya Fidio | ìdarí eré</annotation>
+ <annotation cp="🕹" type="tts">ìdarí eré</annotation>
+ <annotation cp="🎰">eré | Ɛrɔ Ifisi | ìfisí</annotation>
+ <annotation cp="🎰" type="tts">Ɛrɔ Ifisi</annotation>
+ <annotation cp="🎲">ayò | eré | Ere-idaraya Ludo</annotation>
+ <annotation cp="🎲" type="tts">Ere-idaraya Ludo</annotation>
+ <annotation cp="♠">eré | ìpín káàdì sípèdì | káàdì</annotation>
+ <annotation cp="♠" type="tts">ìpín káàdì sípèdì</annotation>
+ <annotation cp="♥">eré | ìpín káàdì ɔkàn | káàdì</annotation>
+ <annotation cp="♥" type="tts">ìpín káàdì ɔkàn</annotation>
+ <annotation cp="♦">eré | ìpín káàdì díámɔ́ndì | káàdì</annotation>
+ <annotation cp="♦" type="tts">ìpín káàdì díámɔ́ndì</annotation>
+ <annotation cp="♣">eré | ìpín káàdì ewé | káàdì</annotation>
+ <annotation cp="♣" type="tts">ìpín káàdì ewé</annotation>
+ <annotation cp="🃏">eré | Joka | káàdì | káàdí ɔlɔ́pɔ̀ ìlò</annotation>
+ <annotation cp="🃏" type="tts">Joka</annotation>
+ <annotation cp="🀄">Dragoni Pupa Mahjong | eré | mahjong | pupa</annotation>
+ <annotation cp="🀄" type="tts">Dragoni Pupa Mahjong</annotation>
+ <annotation cp="🎴">eré | japanese | káàdì | Káàdì ìsheré Olódòdó | ń sheré | òdòdó</annotation>
+ <annotation cp="🎴" type="tts">Káàdì ìsheré Olódòdó</annotation>
+ <annotation cp="🎭">àwòkɔ́she | Ere Awokɔshe | ìbòjú | ishɛ́ ɔná | ìtàgé | tíátà</annotation>
+ <annotation cp="🎭" type="tts">Ere Awokɔshe</annotation>
+ <annotation cp="🖼">àwòrán | àwɔrán inú férémù | férémù | ilé ɔnà | ishɛ́ ɔná | kíkùn</annotation>
+ <annotation cp="🖼" type="tts">àwɔrán inú férémù</annotation>
+ <annotation cp="🎨">ilé ɔnà | ishɛ́ ɔná | kíkùn | pálɛ́tì | Pɛpɛ Oshere</annotation>
+ <annotation cp="🎨" type="tts">Pɛpɛ Oshere</annotation>
+ <annotation cp="👓">ashɔ | Digi | ɛyinjú | gíláásì ojú | ìbòjú</annotation>
+ <annotation cp="👓" type="tts">Digi</annotation>
+ <annotation cp="🕶">dúdú | gíláásì | gíláásì òrùn | ìbòjú | ojú</annotation>
+ <annotation cp="🕶" type="tts">gíláásì òrùn</annotation>
+ <annotation cp="👔">Okùnɔrùn | Wíwɔshɔ</annotation>
+ <annotation cp="👔" type="tts">Okùnɔrùn</annotation>
+ <annotation cp="👕">ashɔ | Shɛɛti | shɛ́ɛ̀tì | tshɛ́ɛ̀tì</annotation>
+ <annotation cp="👕" type="tts">Shɛɛti</annotation>
+ <annotation cp="👖">ashɔ | Jinsi | pátá | shòkòtò</annotation>
+ <annotation cp="👖" type="tts">Jinsi</annotation>
+ <annotation cp="🧣">ɔrùn | síkáfù</annotation>
+ <annotation cp="🧣" type="tts">síkáfù</annotation>
+ <annotation cp="🧤">ìbɔ̀wɔ́ | ɔwɔ́</annotation>
+ <annotation cp="🧤" type="tts">ìbɔ̀wɔ́</annotation>
+ <annotation cp="🧥">jákɛ́tì | kóòtù</annotation>
+ <annotation cp="🧥" type="tts">kóòtù</annotation>
+ <annotation cp="🧦">ìbɔ̀sɛ̀ | ìbɔ̀sɛ̀ obìnrin gígùn</annotation>
+ <annotation cp="🧦" type="tts">ìbɔ̀sɛ̀</annotation>
+ <annotation cp="👗">Ashɔ | Wíwɔshɔ</annotation>
+ <annotation cp="👗" type="tts">Ashɔ</annotation>
+ <annotation cp="👘">Kimono | Wíwɔshɔ</annotation>
+ <annotation cp="👘" type="tts">Kimono</annotation>
+ <annotation cp="👙">ashɔ | Pata obinrin | wɛdò</annotation>
+ <annotation cp="👙" type="tts">Pata obinrin</annotation>
+ <annotation cp="👚">ashɔ | Awɔn Ashɔ Obinrin | obìnrin</annotation>
+ <annotation cp="👚" type="tts">Awɔn Ashɔ Obinrin</annotation>
+ <annotation cp="👛">ashɔ | kóbɔ̀ | Pɔɔsi</annotation>
+ <annotation cp="👛" type="tts">Pɔɔsi</annotation>
+ <annotation cp="👜">àpamɔ́wɔ́ | ashɔ | Ìpamɔ́wɔ́ | pɔ́ɔ̀sì</annotation>
+ <annotation cp="👜" type="tts">Ìpamɔ́wɔ́</annotation>
+ <annotation cp="👝">àpamɔ́wɔ́ | ashɔ | Baagi Ipamɔwɔ | páùshì</annotation>
+ <annotation cp="👝" type="tts">Baagi Ipamɔwɔ</annotation>
+ <annotation cp="🛍">àpamɔ́wɔ́ | àwɔn àpamɔ́wɔ́ ɔjà | ilé ìtura | ɔjà</annotation>
+ <annotation cp="🛍" type="tts">àwɔn àpamɔ́wɔ́ ɔjà</annotation>
+ <annotation cp="🎒">àpamɔ́wɔ́ | Baagi Ile-ɛkɔ Agbekɛyin | ilé ìwé | sáshɛ̀lì</annotation>
+ <annotation cp="🎒" type="tts">Baagi Ile-ɛkɔ Agbekɛyin</annotation>
+ <annotation cp="👞">ashɔ | bàtà | Bata Ɔkunrin | ɔkùnrin</annotation>
+ <annotation cp="👞" type="tts">Bata Ɔkunrin</annotation>
+ <annotation cp="👟">ashɔ | bàtà | Bata Isare | ɛní sáré</annotation>
+ <annotation cp="👟" type="tts">Bata Isare</annotation>
+ <annotation cp="👠">ashɔ | bàtà | Bata Gogoro | bàtà gogoro | obìnrin</annotation>
+ <annotation cp="👠" type="tts">Bata Gogoro</annotation>
+ <annotation cp="👡">ashɔ | bàtà | Bata Obinrin pɛlɛbɛ | bátá pɛlɛbɛ | obìnrin</annotation>
+ <annotation cp="👡" type="tts">Bata Obinrin pɛlɛbɛ</annotation>
+ <annotation cp="👢">ashɔ | bàtà | búùtù | Buutu Obinrin | obìnrin</annotation>
+ <annotation cp="👢" type="tts">Buutu Obinrin</annotation>
+ <annotation cp="👑">Ade | ashɔ | olorì | ɔba</annotation>
+ <annotation cp="👑" type="tts">Ade</annotation>
+ <annotation cp="👒">ashɔ | fìlà | Haati Obinrin | obìnrin</annotation>
+ <annotation cp="👒" type="tts">Haati Obinrin</annotation>
+ <annotation cp="🎩">ashɔ | fìlà | Haati Oke | òkè</annotation>
+ <annotation cp="🎩" type="tts">Haati Oke</annotation>
+ <annotation cp="🎓">àsheyɔrí | ashɔ | ayɛyɛ | fìlà | Fila Asheyɔri</annotation>
+ <annotation cp="🎓" type="tts">Fila Asheyɔri</annotation>
+ <annotation cp="🧢">fìla billed | fìla bɔ́ɔ̀lùòkè</annotation>
+ <annotation cp="🧢" type="tts">fìla billed</annotation>
+ <annotation cp="⛑">ìrànwɔ́ àgbélébù | koto | koto òshìshɛ́ ìrànwɔ́ | ojú</annotation>
+ <annotation cp="⛑" type="tts">koto òshìshɛ́ ìrànwɔ́</annotation>
+ <annotation cp="📿">àdúrà | ashɔ | ɛ̀gbà ɔrùn | ɛ̀sìn | ilɛ̀kɛ̀ | Ilɛkɛ Adura</annotation>
+ <annotation cp="📿" type="tts">Ilɛkɛ Adura</annotation>
+ <annotation cp="💄">asharalashɔ̀ | asharalóge | Ikun-ete</annotation>
+ <annotation cp="💄" type="tts">Ikun-ete</annotation>
+ <annotation cp="💍">díámɔ́ndì | Dún</annotation>
+ <annotation cp="💍" type="tts">Dún</annotation>
+ <annotation cp="💎">díámɔ́ndì | ɛ̀gbà | Okuta Iyebiye | òkúta iyebíye</annotation>
+ <annotation cp="💎" type="tts">Okuta Iyebiye</annotation>
+ <annotation cp="🔇">dáké | dákè | Gbohungbohun ti ko Sɔrɔ | gboùngboùn</annotation>
+ <annotation cp="🔇" type="tts">Gbohungbohun ti ko Sɔrɔ</annotation>
+ <annotation cp="🔈">fɛ́lɛ́ | Gbohungbohun ti Ohun rɛ wa Labɛ</annotation>
+ <annotation cp="🔈" type="tts">Gbohungbohun ti Ohun rɛ wa Labɛ</annotation>
+ <annotation cp="🔉">àárín | Gbohungbohun ti Ohun rɛ wa Laarin</annotation>
+ <annotation cp="🔉" type="tts">Gbohungbohun ti Ohun rɛ wa Laarin</annotation>
+ <annotation cp="🔊">Gbohungbohun ti Ohun rɛ lɔSoke | pariwo</annotation>
+ <annotation cp="🔊" type="tts">Gbohungbohun ti Ohun rɛ lɔSoke</annotation>
+ <annotation cp="📢">Gbohùngbohùn | ìfitóniléti ìta gbangban | pariwo</annotation>
+ <annotation cp="📢" type="tts">Gbohùngbohùn</annotation>
+ <annotation cp="📣">ɛ̀rɔ gbohùngbohùn ńlá | ìbáraniyò̩</annotation>
+ <annotation cp="📣" type="tts">ɛ̀rɔ gbohùngbohùn ńlá</annotation>
+ <annotation cp="📯">gbohùngbohùn | gbohùngbohùn ifiranshɛ | ìfiránshé̩</annotation>
+ <annotation cp="📯" type="tts">gbohùngbohùn ifiranshɛ</annotation>
+ <annotation cp="🔔">agago</annotation>
+ <annotation cp="🔔" type="tts">agago</annotation>
+ <annotation cp="🔕">agogo | agogo pɛlu idinku | àìlesɔ̀rɔ̀ | bɛ́ɛ̀ kó̩ | èèwɔ̀ | kò | shèdíwó̩</annotation>
+ <annotation cp="🔕" type="tts">agogo pɛlu idinku</annotation>
+ <annotation cp="🎼">akɔsílɛ̀ | akɔsilɛ orin | orin</annotation>
+ <annotation cp="🎼" type="tts">akɔsilɛ orin</annotation>
+ <annotation cp="🎵">orin | ò̩rɔ̀ | ɔ̀rɔ̀ orin</annotation>
+ <annotation cp="🎵" type="tts">ɔ̀rɔ̀ orin</annotation>
+ <annotation cp="🎶">àwɔn ò̩rò̩ | nóòtì orin | orin | ɔ̀rɔ̀</annotation>
+ <annotation cp="🎶" type="tts">nóòtì orin</annotation>
+ <annotation cp="🎙">ilé-agódo | maikì | maikurofóònù | maikurofóònù sítúdíò | orin</annotation>
+ <annotation cp="🎙" type="tts">maikurofóònù sítúdíò</annotation>
+ <annotation cp="🎚">ipele | ìpele yíyò̩ | orin | yíyò̩</annotation>
+ <annotation cp="🎚" type="tts">ìpele yíyò̩</annotation>
+ <annotation cp="🎛">kókó | kókó ibìdárí | olùdarí | orin</annotation>
+ <annotation cp="🎛" type="tts">kókó ibìdárí</annotation>
+ <annotation cp="🎤">ɛ̀rɔ gbohùngbohùn kékeré | maikurofóònù</annotation>
+ <annotation cp="🎤" type="tts">ɛ̀rɔ gbohùngbohùn kékeré</annotation>
+ <annotation cp="🎧">ɛ̀rɔ àdágbórinsétí | ìrintí</annotation>
+ <annotation cp="🎧" type="tts">ɛ̀rɔ àdágbórinsétí</annotation>
+ <annotation cp="📻">fídíò | rédíò</annotation>
+ <annotation cp="📻" type="tts">rédíò</annotation>
+ <annotation cp="🎷">ipè | irinshɛ́ | orin | sáàsì</annotation>
+ <annotation cp="🎷" type="tts">ipè</annotation>
+ <annotation cp="🎸">irinshɛ́ | jìtá | orin</annotation>
+ <annotation cp="🎸" type="tts">jìtá</annotation>
+ <annotation cp="🎹">dùrù | duuru orin | ohun èlò | orin</annotation>
+ <annotation cp="🎹" type="tts">duuru orin</annotation>
+ <annotation cp="🎺">irinshɛ́ | kakaaki | orin</annotation>
+ <annotation cp="🎺" type="tts">kakaaki</annotation>
+ <annotation cp="🎻">faolini | irinshɛ́ | orin</annotation>
+ <annotation cp="🎻" type="tts">faolini</annotation>
+ <annotation cp="🥁">igi ìlù | ìlù | Ìlù | orin</annotation>
+ <annotation cp="🥁" type="tts">Ìlù</annotation>
+ <annotation cp="📱">alágbèéká | fóònù | tɛlifóònù</annotation>
+ <annotation cp="📱" type="tts">fóònù alágbèéká</annotation>
+ <annotation cp="📲">alágbèéká | fóònù | fóònù alágbèéká pɛ̀lú ofà | gbà | ìpè | ɔfà | tɛlifóònù</annotation>
+ <annotation cp="📲" type="tts">fóònù alágbèéká pɛ̀lú ofà</annotation>
+ <annotation cp="☎">ɛ̀rɔ ìbánisɔ̀rɔ̀ | tɛlifóònù</annotation>
+ <annotation cp="☎" type="tts">tɛlifóònù</annotation>
+ <annotation cp="📞">fóònù | olùgbà | tɛlifóònù</annotation>
+ <annotation cp="📞" type="tts">olùgbà fóònù</annotation>
+ <annotation cp="📟">ɛ̀rɔ atanilólobó</annotation>
+ <annotation cp="📟" type="tts">ɛ̀rɔ atanilólobó</annotation>
+ <annotation cp="📠">ɛ̀rɔ fákìsì | fákìsì</annotation>
+ <annotation cp="📠" type="tts">ɛ̀rɔ fákìsì</annotation>
+ <annotation cp="🔋">bátìrì</annotation>
+ <annotation cp="🔋" type="tts">bátìrì</annotation>
+ <annotation cp="🔌">ɛ̀lé̩tíríìkì | ìná mɔ̀nà-mɔ́ná | pulɔgi onina | púlɔ́ɔ̀gì</annotation>
+ <annotation cp="🔌" type="tts">pulɔgi onina</annotation>
+ <annotation cp="💻">àdáni | kɔ̀npútà | kɔ̀ǹpútà àgbélétan | kɔ̀npútà aládàni</annotation>
+ <annotation cp="💻" type="tts">kɔ̀ǹpútà àgbélétan</annotation>
+ <annotation cp="🖥">a-gbé-lórí-tábílì | kɔ̀npútà</annotation>
+ <annotation cp="🖥" type="tts">kɔ̀npútà a-gbé-lórí-tábílì</annotation>
+ <annotation cp="🖨">kɔ̀npútà | pínríntà</annotation>
+ <annotation cp="🖨" type="tts">pínríntà</annotation>
+ <annotation cp="⌨">kííbɔɔ̀dù | kɔ̀npútà</annotation>
+ <annotation cp="⌨" type="tts">kííbɔɔ̀dù</annotation>
+ <annotation cp="🖱">kɔ̀npútà | máòsì kɔ̀npútà</annotation>
+ <annotation cp="🖱" type="tts">máòsì kɔ̀npútà</annotation>
+ <annotation cp="🖲">kɔ̀npútà | òntè̩ afinimɔ̀nà</annotation>
+ <annotation cp="🖲" type="tts">òntè̩ afinimɔ̀nà</annotation>
+ <annotation cp="💽">àwo | àwo pélébé | dísìkì kɔ̀ǹpútà | kɔ̀npútà | ojú àwo</annotation>
+ <annotation cp="💽" type="tts">dísìkì kɔ̀ǹpútà</annotation>
+ <annotation cp="💾">àwo | dísìkì fílɔ̀pì | fíló̩pì | kɔ̀npútà</annotation>
+ <annotation cp="💾" type="tts">dísìkì fílɔ̀pì</annotation>
+ <annotation cp="💿">àwo | àwo aká-ɔ̀rɔ̀ aláfojúrí | àwo ìgbàlódé | kɔ̀npútà | ojú àwo</annotation>
+ <annotation cp="💿" type="tts">àwo aká-ɔ̀rɔ̀ aláfojúrí</annotation>
+ <annotation cp="📀">búlúù-réè | dísìkì | dvd | kɔ̀npútà | ojú àwo</annotation>
+ <annotation cp="📀" type="tts">dvd</annotation>
+ <annotation cp="🎥">fíìmù | kámé̩rà | kamɛra fíìmù | sinimá</annotation>
+ <annotation cp="🎥" type="tts">kamɛra fíìmù</annotation>
+ <annotation cp="🎞">àwɔn férémù | àwɔn férémù fíìmù | fíìmù | sinemá</annotation>
+ <annotation cp="🎞" type="tts">àwɔn férémù fíìmù</annotation>
+ <annotation cp="📽">è̩rɔ agbéwòrán jáde | fídíò | fíìmù | pìròjɛ́kítɔ̀ | sínímà</annotation>
+ <annotation cp="📽" type="tts">è̩rɔ agbéwòrán jáde</annotation>
+ <annotation cp="🎬">fíìmù | kílápà | pataki alapade</annotation>
+ <annotation cp="🎬" type="tts">pataki alapade</annotation>
+ <annotation cp="📺">àmóhùnmáwòrán | fídíò</annotation>
+ <annotation cp="📺" type="tts">àmóhùnmáwòrán</annotation>
+ <annotation cp="📷">fídíò | kámɛ́rà</annotation>
+ <annotation cp="📷" type="tts">kámɛ́rà</annotation>
+ <annotation cp="📸">fídíò | fílásì | kámɛ́rà | kámɛ́rà pɛlu filashi</annotation>
+ <annotation cp="📸" type="tts">kámɛ́rà pɛlu filashi</annotation>
+ <annotation cp="📹">ayàwòrán fídíò | fídíò | kámé̩rà</annotation>
+ <annotation cp="📹" type="tts">ayàwòrán fídíò</annotation>
+ <annotation cp="📼">awɔn kaadi ododo ishere | fídíò | téèpù</annotation>
+ <annotation cp="📼" type="tts">awɔn kaadi ododo ishere</annotation>
+ <annotation cp="🔍">díígí | gilasi itɔka-osi amohun tobi | ìfojúsóde | irinshɛ́ | ìsɔdinlá</annotation>
+ <annotation cp="🔍" type="tts">gilasi itɔka-osi amohun tobi</annotation>
+ <annotation cp="🔎">díígí | gilasi itɔka-ɔtun amohun tobi | ìfojúsóde | irinshɛ́ | ìsɔdinlá</annotation>
+ <annotation cp="🔎" type="tts">gilasi itɔka-ɔtun amohun tobi</annotation>
+ <annotation cp="🕯">iná | kándúùlù</annotation>
+ <annotation cp="🕯" type="tts">kándúùlù</annotation>
+ <annotation cp="💡">bó̩ɔ̀bù | ɛ̀lɛ́tíríìkì | gólòbù iná | iná | kɔ́míìkì | òye</annotation>
+ <annotation cp="💡" type="tts">gólòbù iná</annotation>
+ <annotation cp="🔦">iná | iná fílásì | iná mɔ̀nà-mó̩ná | irjshé̩ | tɔ́ɔ́shì</annotation>
+ <annotation cp="🔦" type="tts">iná fílásì</annotation>
+ <annotation cp="🏮">àtùpà | atupa iwe pupa | ìdènà | iná | pupa</annotation>
+ <annotation cp="🏮" type="tts">atupa iwe pupa</annotation>
+ <annotation cp="📔">àfikɔ̀wé pɛlu ɛyin ɔlɔshɔ | ɛ̀yìn ìwé | ìshelɛ́shɔ̀ó̩ | ìwé | ìwé àkɔsílè̩</annotation>
+ <annotation cp="📔" type="tts">àfikɔ̀wé pɛlu ɛyin ɔlɔshɔ</annotation>
+ <annotation cp="📕">ìwé | iwe ti pade | pípadé</annotation>
+ <annotation cp="📕" type="tts">iwe ti pade</annotation>
+ <annotation cp="📖">ìwé | iwe shi silɛ | shíshí</annotation>
+ <annotation cp="📖" type="tts">iwe shi silɛ</annotation>
+ <annotation cp="📗">àwò̩ ewé | ìwé | iwe alawɔ ewe</annotation>
+ <annotation cp="📗" type="tts">iwe alawɔ ewe</annotation>
+ <annotation cp="📘">bulu | iwe alawɔ | iwe alawɔ bulu</annotation>
+ <annotation cp="📘" type="tts">iwe alawɔ bulu</annotation>
+ <annotation cp="📙">aláwò̩ ɔsàn | ìwé | iwe alawɔ ɔsan</annotation>
+ <annotation cp="📙" type="tts">iwe alawɔ ɔsan</annotation>
+ <annotation cp="📚">àwɔn ìwé | ìwé</annotation>
+ <annotation cp="📚" type="tts">àwɔn ìwé</annotation>
+ <annotation cp="📓">àfikɔ̀wé</annotation>
+ <annotation cp="📓" type="tts">àfikɔ̀wé</annotation>
+ <annotation cp="📒">àfikɔ̀wé | lé̩jà</annotation>
+ <annotation cp="📒" type="tts">lé̩jà</annotation>
+ <annotation cp="📃">ìló̩pɔ̀ | ìwé ìpamó̩ | ojú ìwé | oju-iwe pɛlu lilɔ</annotation>
+ <annotation cp="📃" type="tts">oju-iwe pɛlu lilɔ</annotation>
+ <annotation cp="📜">gbéjáde | pépà</annotation>
+ <annotation cp="📜" type="tts">gbéjáde</annotation>
+ <annotation cp="📄">dɔ́kúmé̩ɛ̀tì | ojú ìwé | oju-iwe wa loke</annotation>
+ <annotation cp="📄" type="tts">oju-iwe wa loke</annotation>
+ <annotation cp="📰">ìròyìn | ìwé ìròyìn | pépà</annotation>
+ <annotation cp="📰" type="tts">ìwé ìròyìn</annotation>
+ <annotation cp="🗞">àkápɔ̀ | ìròyìn | ìwé ìròyìn | ìwé ìròyìn aláyípɔ̀ | pépà</annotation>
+ <annotation cp="🗞" type="tts">ìwé ìròyìn aláyípɔ̀</annotation>
+ <annotation cp="📑">àmì | àmì ìwé àwɔn táàbù | ìfàmìsí | ohun èlò ìfàmìsí | táàbù</annotation>
+ <annotation cp="📑" type="tts">àmì ìwé àwɔn táàbù</annotation>
+ <annotation cp="🔖">àmì | àmì ìwé</annotation>
+ <annotation cp="🔖" type="tts">àmì ìwé</annotation>
+ <annotation cp="🏷">àkɔ́lé</annotation>
+ <annotation cp="🏷" type="tts">àkɔ́lé</annotation>
+ <annotation cp="💰">àpò | apo owo | dó̩là | owó</annotation>
+ <annotation cp="💰" type="tts">apo owo</annotation>
+ <annotation cp="💴">ilé-ìfowópamó̩ | ìwó iye owó | owó | owó bánkì | owo yen | yɛn</annotation>
+ <annotation cp="💴" type="tts">owo yen</annotation>
+ <annotation cp="💵">dɔ́là | ilé-ìfowópamó | ìwó iye owó | owó | owó bánkì | owo dɔla</annotation>
+ <annotation cp="💵" type="tts">owo dɔla</annotation>
+ <annotation cp="💶">ilé-ìfowópamó̩ | ìwó iye owó | owó | owó bánkì | owo uro | úrò</annotation>
+ <annotation cp="💶" type="tts">owo uro</annotation>
+ <annotation cp="💷">ilé-ìfowópamó̩ | ìwó iye owó | owó | owó bánkì | owo pɔun | pó̩ùn</annotation>
+ <annotation cp="💷" type="tts">owo pɔun</annotation>
+ <annotation cp="💸">dó̩là | fò | ilé-ìfowópamó̩ | ìwó iye owó | owó | owó bánkì | owo pɛlu awɔn iyɛ</annotation>
+ <annotation cp="💸" type="tts">owo pɛlu awɔn iyɛ</annotation>
+ <annotation cp="💳">ààwìn | ilé ìfowópamó̩ | káàdì | káàdì ìsɔdowó | owó</annotation>
+ <annotation cp="💳" type="tts">káàdì ìsɔdowó</annotation>
+ <annotation cp="💹">àtɛ | àtɛ n pɔsi pɛlu yɛn | ìdàgbàsókè | ìdìde | ìgbàlódé | ilà atɔ́ka àwòrán | ilé ìfowópamɔ́n | ìlɔsókè | owó | ɔjà | yen</annotation>
+ <annotation cp="💹" type="tts">àtɛ n pɔsi pɛlu yɛn</annotation>
+ <annotation cp="✉">àpò ìwé | í-meèlì | lé̩tà</annotation>
+ <annotation cp="✉" type="tts">àpò ìwé</annotation>
+ <annotation cp="📧">í-meèlì | lɛ́tà | meèlì</annotation>
+ <annotation cp="📧" type="tts">í-meèlì</annotation>
+ <annotation cp="📨">àpò ìwé | apo iwe ti o nbɔ | í-meèlì | ìgbàwɔlé | ìwɔlé | lɛ́tá | meèlì</annotation>
+ <annotation cp="📨" type="tts">apo iwe ti o nbɔ</annotation>
+ <annotation cp="📩">àpò ìwé | apo iwe pelu ɔfa | í-meèlì | ìfiránshé̩ | ìjáde | ìsàlɛ̀ | lɛ́tà | meèlì | ɔfà</annotation>
+ <annotation cp="📩" type="tts">apo iwe pelu ɔfa</annotation>
+ <annotation cp="📤">àpótì | àpótí ìgbɔ́rɔ̀jáde | àtɛ | ìfiránshɛ́ | lɛ́tá | meèlì | tire àpótí ìgbɔ́rɔ̀jáde</annotation>
+ <annotation cp="📤" type="tts">tire àpótí ìgbɔ́rɔ̀jáde</annotation>
+ <annotation cp="📥">àpótì | àpótí ìgbɔ́rɔ̀jáde | àtɛ | ìgbàwɔlé | lɛ́tá | meèlì | tire àpótí àgbàwɔ́lé</annotation>
+ <annotation cp="📥" type="tts">tire àpótí àgbàwɔ́lé</annotation>
+ <annotation cp="📦">àpótí | ɛgbìnrìn | shí àkójɔpɔ̀</annotation>
+ <annotation cp="📦" type="tts">shí àkójɔpɔ̀</annotation>
+ <annotation cp="📫">àpótí ìfigba ìwé ránshɛ́ | àpótí meèlì | àpótíméèlì ti a tipa pɛlu asia nina soke | meèlì | pípadé</annotation>
+ <annotation cp="📫" type="tts">àpótíméèlì ti a tipa pɛlu asia nina soke</annotation>
+ <annotation cp="📪">àpótí ìfigba ìwé ránshɛ́ | àpótí meèlì | àpótíméèlì ti a tipa pɛlu asia nina walɛ | meèlì | pípadé | wálɛ̀</annotation>
+ <annotation cp="📪" type="tts">àpótíméèlì ti a tipa pɛlu asia nina walɛ</annotation>
+ <annotation cp="📬">àpótí ìfigba ìwé ránshɛ́ | àpótí meèlì | àpótíméèlì ti a shi pɛlu asia nina soke | meèlì | sí</annotation>
+ <annotation cp="📬" type="tts">àpótíméèlì ti a shi pɛlu asia nina soke</annotation>
+ <annotation cp="📭">àpótí ìfigba ìwé ránshɛ́ | àpótí meèlì | àpótíméèlì ti a shi pɛlu asia nina wale | meèlì | sí | wálɛ̀</annotation>
+ <annotation cp="📭" type="tts">àpótíméèlì ti a shi pɛlu asia nina wale</annotation>
+ <annotation cp="📮">apoti ifigba iwe iranshɛ | àpótí meèlì | meèlì</annotation>
+ <annotation cp="📮" type="tts">apoti ifigba iwe iranshɛ</annotation>
+ <annotation cp="🗳">àpótí | àpótí ìdìbò pɛ̀lú ìwé ìdìbò | ìwé ìdìbò</annotation>
+ <annotation cp="🗳" type="tts">àpótí ìdìbò pɛ̀lú ìwé ìdìbò</annotation>
+ <annotation cp="✏">pɛ́nsùlù</annotation>
+ <annotation cp="✏" type="tts">pɛ́nsùlù</annotation>
+ <annotation cp="✒">gègé | góngó | góngó dúdú</annotation>
+ <annotation cp="✒" type="tts">góngó dúdú</annotation>
+ <annotation cp="🖋">gègé | orísun</annotation>
+ <annotation cp="🖋" type="tts">gègé orísun</annotation>
+ <annotation cp="🖊">gègé | gègé pɛlu rogodo</annotation>
+ <annotation cp="🖊" type="tts">gègé pɛlu rogodo</annotation>
+ <annotation cp="🖌">búró̩sì ìkùndà | ɔ̀dà</annotation>
+ <annotation cp="🖌" type="tts">búró̩sì ìkùndà</annotation>
+ <annotation cp="🖍">kereyɔ́nù</annotation>
+ <annotation cp="🖍" type="tts">kereyɔ́nù</annotation>
+ <annotation cp="📝">mɛ́mò | pɛ́nsùlù</annotation>
+ <annotation cp="📝" type="tts">mɛ́mò</annotation>
+ <annotation cp="💼">àpamɔ́wɔ́</annotation>
+ <annotation cp="💼" type="tts">àpamɔ́wɔ́</annotation>
+ <annotation cp="📁">fáìlì | fódà</annotation>
+ <annotation cp="📁" type="tts">fódà fáìlì</annotation>
+ <annotation cp="📂">fáìlì | fódà | fódà fáìlì ti o shi | shí</annotation>
+ <annotation cp="📂" type="tts">fódà fáìlì ti o shi</annotation>
+ <annotation cp="🗂">àtòjɔ atɔ́ka-ɔ̀rɔ̀ | káàdì | ohun èlò ìpínyà | ohun èlò ìpínyà àtòjɔ atɔ́ka-ɔ̀rɔ̀ káàdì</annotation>
+ <annotation cp="🗂" type="tts">ohun èlò ìpínyà àtòjɔ atɔ́ka-ɔ̀rɔ̀ káàdì</annotation>
+ <annotation cp="📅">déètì | kàlɛ́ndà</annotation>
+ <annotation cp="📅" type="tts">kàlɛ́ndà</annotation>
+ <annotation cp="📆">kàlɛ́ndà | kàlɛ́ndà ti a ya</annotation>
+ <annotation cp="📆" type="tts">kàlɛ́ndà ti a ya</annotation>
+ <annotation cp="🗒">àkápɔ̀ | nóòtì | nóòtì páàdì alákápò̩ | páàdì</annotation>
+ <annotation cp="🗒" type="tts">nóòtì páàdì alákápò̩</annotation>
+ <annotation cp="🗓">àkápɔ̀ | kàlɛ́ndà | kàlɛ́ndà alákápɔ̀ | páàdì</annotation>
+ <annotation cp="🗓" type="tts">kàlɛ́ndà alákápɔ̀</annotation>
+ <annotation cp="📇">àtòjɔ atɔ́ka-ɔ̀rɔ̀ | fáìlì oní káàdì | káàdì | káàdì àtòjɔ atɔ́kà-ɔ̀rɔ̀</annotation>
+ <annotation cp="📇" type="tts">káàdì àtòjɔ atɔ́kà-ɔ̀rɔ̀</annotation>
+ <annotation cp="📈">àtɛ | àtɛ n pɔsi | ìdàgbàsókè | ilà ató̩ka àwòrán | ìlɔshíwájú | ìlɔsókè</annotation>
+ <annotation cp="📈" type="tts">àtɛ n pɔsi</annotation>
+ <annotation cp="📉">àtɛ | àtɛ alátó̩ka | àtɛ n dinku | ìsàlɛ̀ | tírɛ́ndì</annotation>
+ <annotation cp="📉" type="tts">àtɛ n dinku</annotation>
+ <annotation cp="📊">àtɛ | àtɛ alátɔ́ka | àtɛ onígun | pɛpɛ ìwe àwòrán àfihàn</annotation>
+ <annotation cp="📊" type="tts">pɛpɛ ìwe àwòrán àfihàn</annotation>
+ <annotation cp="📋">aka ɔlɔ́pɔ̀n</annotation>
+ <annotation cp="📋" type="tts">aka ɔlɔ́pɔ̀n</annotation>
+ <annotation cp="📌">abɛ́rɛ́ | abɛ́rɛ́ohunyíyà</annotation>
+ <annotation cp="📌" type="tts">abɛ́rɛ́ohunyíyà</annotation>
+ <annotation cp="📍">abɛ́rɛ́ | abɛ́rɛ́ohunyíyà roboto | píìnì àgbáwɔlé</annotation>
+ <annotation cp="📍" type="tts">abɛ́rɛ́ohunyíyà roboto</annotation>
+ <annotation cp="📎">àfimúwèépɔ̀</annotation>
+ <annotation cp="📎" type="tts">àfimúwèépɔ̀</annotation>
+ <annotation cp="🖇">àfimúwèépò̩ | àsopɔ̀ ìfimúwèépɔ̀ | ìsopɔ̀</annotation>
+ <annotation cp="🖇" type="tts">àsopɔ̀ ìfimúwèépɔ̀</annotation>
+ <annotation cp="📏">etí gbɔɔrɔ | rúlà | rula gbɔɔrɔ</annotation>
+ <annotation cp="📏" type="tts">rula gbɔɔrɔ</annotation>
+ <annotation cp="📐">onígun-mé̩ta | rúlà | rula onigun mɛta | sɛ́ɛ́tì</annotation>
+ <annotation cp="📐" type="tts">rula onigun mɛta</annotation>
+ <annotation cp="✂">gígé | irinshé̩ | sísɔ́ɔ̀sì</annotation>
+ <annotation cp="✂" type="tts">sísɔ́ɔ̀sì</annotation>
+ <annotation cp="🗃">àpótí | àpótí káàdì fún fáìlì | fáìlì | káàdì</annotation>
+ <annotation cp="🗃" type="tts">àpótí káàdì fún fáìlì</annotation>
+ <annotation cp="🗄">àpótí | fáàlì | ìforúkɔ fáàlì sílɛ̀</annotation>
+ <annotation cp="🗄" type="tts">àpótí fáàlì</annotation>
+ <annotation cp="🗑">apɛ̀rɛ̀ ìdalè̩sí</annotation>
+ <annotation cp="🗑" type="tts">apɛ̀rɛ̀ ìdalè̩sí</annotation>
+ <annotation cp="🔒">pípadé | ti tìí</annotation>
+ <annotation cp="🔒" type="tts">ti tìí</annotation>
+ <annotation cp="🔓">shí | shíshí | tì | ti síi</annotation>
+ <annotation cp="🔓" type="tts">ti síi</annotation>
+ <annotation cp="🔏">góngó | ìkɔ̀kɔ̀ | ínkì | padé | pɛ́ɛ̀nì | ti tìí pɛlu pɛni</annotation>
+ <annotation cp="🔏" type="tts">ti tìí pɛlu pɛni</annotation>
+ <annotation cp="🔐">ààbò | kó̩kɔ́ró̩ | pípadé | ti tìí pɛlu kɔkɔrɔ | títì</annotation>
+ <annotation cp="🔐" type="tts">ti tìí pɛlu kɔkɔrɔ</annotation>
+ <annotation cp="🔑">kɔ́kɔ́rɔ́ | pásìwɔdù | tì</annotation>
+ <annotation cp="🔑" type="tts">kɔ́kɔ́rɔ́</annotation>
+ <annotation cp="🗝">àtijó̩ | kó̩kɔ́ró̩ àtijó̩ | kɔ́kɔ́ró̩ | olobó | títì</annotation>
+ <annotation cp="🗝" type="tts">kó̩kɔ́ró̩ àtijó̩</annotation>
+ <annotation cp="🔨">irinsɛ́ | oòlù</annotation>
+ <annotation cp="🔨" type="tts">oòlù</annotation>
+ <annotation cp="⛏">irinshé̩ | ìwakusà | sà</annotation>
+ <annotation cp="⛏" type="tts">sà</annotation>
+ <annotation cp="⚒">òòlù | òòlù àti ìsà</annotation>
+ <annotation cp="⚒" type="tts">òòlù àti ìsà</annotation>
+ <annotation cp="🛠">irinshɛ́ | irinshɛ́ afagbára dè | òòlù | òòlù àti irinshɛ́ afagbára dè | sípánà</annotation>
+ <annotation cp="🛠" type="tts">òòlù àti irinshɛ́ afagbára dè</annotation>
+ <annotation cp="🗡">dágà | irinshɛ́ ìjagun | ò̩bɛ</annotation>
+ <annotation cp="🗡" type="tts">dágà</annotation>
+ <annotation cp="⚔">àgbélèbú | idà | idà alágbèélèbú | irinshɛ́ ìjagun</annotation>
+ <annotation cp="⚔" type="tts">idà alágbèélèbú</annotation>
+ <annotation cp="🔫">ìbɔn | ìbɔn ìléwó̩ | ibɔn ilewɔ | ìbɔn shakabùlà | irinshɛ́</annotation>
+ <annotation cp="🔫" type="tts">ibɔn ilewɔ</annotation>
+ <annotation cp="🏹">àmi oshù ìbí | irinshé̩ | irinshɛ́ ìjagun | ɔfà | ɔfà títa | ɔkɔ ati ɔfa | Sagittarius | tafàtafà</annotation>
+ <annotation cp="🏹" type="tts">ɔkɔ ati ɔfa</annotation>
+ <annotation cp="🛡">irinshɛ́ ìjagun | ohun èlò àbò</annotation>
+ <annotation cp="🛡" type="tts">ohun èlò àbò</annotation>
+ <annotation cp="🔧">irinshɛ́ | irinshɛ́ afagbára dè | oolu | sípánà</annotation>
+ <annotation cp="🔧" type="tts">oolu</annotation>
+ <annotation cp="🔩">bóòtù | irinshé̩ | nó̩ɔ̀tì | nɔti ati botu</annotation>
+ <annotation cp="🔩" type="tts">nɔti ati botu</annotation>
+ <annotation cp="⚙">gíà | irinsɛ́</annotation>
+ <annotation cp="⚙" type="tts">gíà</annotation>
+ <annotation cp="🗜">gbámú | ìfúnpɔ̀ | irinshɛ́ | ohun èlò irinshɛ́</annotation>
+ <annotation cp="🗜" type="tts">gbámú</annotation>
+ <annotation cp="⚖">àmi oshù ìbí | ìdájɔ́ | ìwɔ̀n | ìwɔ̀ntúnwɔ̀nsí | líbérà | síkélì</annotation>
+ <annotation cp="⚖" type="tts">ìwɔ̀ntúnwɔ̀nsí síkélì</annotation>
+ <annotation cp="🔗">ìtɔ́kasí</annotation>
+ <annotation cp="🔗" type="tts">ìtɔ́kasí</annotation>
+ <annotation cp="⛓">àwɔn she̩kɛ́shɛkɛ̀ | she̩kɛ́shɛkɛ̀</annotation>
+ <annotation cp="⛓" type="tts">àwɔn she̩kɛ́shɛkɛ̀</annotation>
+ <annotation cp="⚗">àlɛ́mbìk | irinshé̩ | kɛ́mísìrì</annotation>
+ <annotation cp="⚗" type="tts">àlɛ́mbìk</annotation>
+ <annotation cp="🔬">irinshɛ́ | maikirosikopu | sáyé̩nsì</annotation>
+ <annotation cp="🔬" type="tts">maikirosikopu</annotation>
+ <annotation cp="🔭">irinshɛ́ | sáyé̩nsì | tɛlisikopu</annotation>
+ <annotation cp="🔭" type="tts">tɛlisikopu</annotation>
+ <annotation cp="📡">àtagbà | àwo | eria satalaiti | ɛ̀rɔ alátagbà nlá</annotation>
+ <annotation cp="📡" type="tts">eria satalaiti</annotation>
+ <annotation cp="💉">abɛrɛ | àìsàn | dókítà | ikin | irinshɛ́ | òògùn | yìn</annotation>
+ <annotation cp="💉" type="tts">abɛrɛ</annotation>
+ <annotation cp="💊">àìsàn | dókítà | òògùn | pili</annotation>
+ <annotation cp="💊" type="tts">pili</annotation>
+ <annotation cp="🚪">Ìlɛ̀kùn</annotation>
+ <annotation cp="🚪" type="tts">Ìlɛ̀kùn</annotation>
+ <annotation cp="🛏">ibùsùn | ilé ìtura | sùn</annotation>
+ <annotation cp="🛏" type="tts">ibùsùn</annotation>
+ <annotation cp="🛋">àtùpà | ìjókò | ìjókò àti àtùpà | ilé ìtura</annotation>
+ <annotation cp="🛋" type="tts">ìjókò àti àtùpà</annotation>
+ <annotation cp="🚽">Ilé ìgbɛ́</annotation>
+ <annotation cp="🚽" type="tts">Ilé ìgbɛ́</annotation>
+ <annotation cp="🚿">Ìwɛ̀ | omi</annotation>
+ <annotation cp="🚿" type="tts">Ìwɛ̀</annotation>
+ <annotation cp="🛁">Àgbá ìwɛ̀ | ìwɛ̀</annotation>
+ <annotation cp="🛁" type="tts">Àgbá ìwɛ̀</annotation>
+ <annotation cp="🛒">àtɛ | Àtɛ Iraja | Ìrajà | kɛ̀kɛ́ ìkójàsí</annotation>
+ <annotation cp="🛒" type="tts">Àtɛ Iraja</annotation>
+ <annotation cp="🚬">siga | sìgá mímu</annotation>
+ <annotation cp="🚬" type="tts">siga</annotation>
+ <annotation cp="⚰">ikú | pósí</annotation>
+ <annotation cp="⚰" type="tts">pósí</annotation>
+ <annotation cp="⚱">ahá | eérú | igbá ìsìnkú | ikú | ìsìnkú</annotation>
+ <annotation cp="⚱" type="tts">igbá ìsìnkú</annotation>
+ <annotation cp="🗿">ère | moai | ojú</annotation>
+ <annotation cp="🗿" type="tts">moai</annotation>
+ <annotation cp="🏧">Aami ATM | àdásísɛ́ | ɛ̀rɔ apɔwó | ilé-ìfowópamó̩ | tɛ́là</annotation>
+ <annotation cp="🏧" type="tts">Aami ATM</annotation>
+ <annotation cp="🚮">dɔ̀tí | idoti ninu aami idɔti | ike ìdalɛ̀sí</annotation>
+ <annotation cp="🚮" type="tts">idoti ninu aami idɔti</annotation>
+ <annotation cp="🚰">lábó̩dé | mímu | omi | omi asheegbe kiri</annotation>
+ <annotation cp="🚰" type="tts">omi asheegbe kiri</annotation>
+ <annotation cp="♿">àmì kɛkɛ ɛni-ɛsɛ-ndun | ìfàyègbà</annotation>
+ <annotation cp="♿" type="tts">àmì kɛkɛ ɛni-ɛsɛ-ndun</annotation>
+ <annotation cp="🚹">ilé ìgbò̩nshɛ̀ olómi | ilé ìgbɔ̀nshɛ̀ | iyara awɔn ɔkunrin | ìyàrá ìsinmi | ɔkùnrin</annotation>
+ <annotation cp="🚹" type="tts">iyara awɔn ɔkunrin</annotation>
+ <annotation cp="🚺">ilé ìgbò̩nshɛ̀ olómi | ilé ìgbɔ̀nshɛ̀ | iyara awɔn obinrin | ìyàrá ìsinmi | obìnrin</annotation>
+ <annotation cp="🚺" type="tts">iyara awɔn obinrin</annotation>
+ <annotation cp="🚻">ilé ìgbò̩nshɛ̀ olómi | ilé ìgbɔ̀nshɛ̀ | iléìyàgbɛ́ | ìyàrá ìsinmi</annotation>
+ <annotation cp="🚻" type="tts">iléìyàgbɛ́</annotation>
+ <annotation cp="🚼">àmì ɔmɔ | àyípadà | ɔmɔ ìkókó</annotation>
+ <annotation cp="🚼" type="tts">àmì ɔmɔ</annotation>
+ <annotation cp="🚾">ilé ìgbɔ̀nshɛ̀ | ilé ìgbɔ̀nshɛ̀ olómi | iléìyàgbɛ́ olomi | ìyàrá ìsinmi | ìyɛ̀wù | omi</annotation>
+ <annotation cp="🚾" type="tts">iléìyàgbɛ́ olomi</annotation>
+ <annotation cp="🛂">darí | ishakoso aworan ori | ìwé ìrìnnà</annotation>
+ <annotation cp="🛂" type="tts">ishakoso aworan ori</annotation>
+ <annotation cp="🛃">awɔn ashɔbode</annotation>
+ <annotation cp="🛃" type="tts">awɔn ashɔbode</annotation>
+ <annotation cp="🛄">ɛrù | gba | igba ɛru ɛni</annotation>
+ <annotation cp="🛄" type="tts">igba ɛru ɛni</annotation>
+ <annotation cp="🛅">àtìpa | ɛrù | fifi ɛru silɛ</annotation>
+ <annotation cp="🛅" type="tts">fifi ɛru silɛ</annotation>
+ <annotation cp="⚠">ìkìlɔ̀</annotation>
+ <annotation cp="⚠" type="tts">ìkìlɔ̀</annotation>
+ <annotation cp="🚸">awɔn ɔmɔde n sɔda | ìsɔdá | olùfɛsɛ̀rìn | ɔmɔ | súkɛrɛ-fàkɛrɛ</annotation>
+ <annotation cp="🚸" type="tts">awɔn ɔmɔde n sɔda</annotation>
+ <annotation cp="⛔">àbáwɔlé | èèwɔ̀ | kò | kòsáyè | kosi iwɔle | rárá | súkɛrɛ-fàkɛrɛ</annotation>
+ <annotation cp="⛔" type="tts">kosi iwɔle</annotation>
+ <annotation cp="🚫">àbáwo̩lé | èèwɔ̀ | kò | kosaye | rárá</annotation>
+ <annotation cp="🚫" type="tts">kosaye</annotation>
+ <annotation cp="🚳">báíkì | èèwɔ̀ | kɛ̀ké̩ | kò | kòsáyè | kosi awɔn kɛkɛ | rárá</annotation>
+ <annotation cp="🚳" type="tts">kosi awɔn kɛkɛ</annotation>
+ <annotation cp="🚭">èèwɔ̀ | kò | kòsáyè | kosi mimu siga | rárá | sìgá mímu</annotation>
+ <annotation cp="🚭" type="tts">kosi mimu siga</annotation>
+ <annotation cp="🚯">dɔ̀tí | èèwɔ̀ | kò | kòsáyè | kosi idahun-silɛ | rárá</annotation>
+ <annotation cp="🚯" type="tts">kosi idahun-silɛ</annotation>
+ <annotation cp="🚱">àìmɔlábɔ́dé | kòshéèmu | omi | omi ti kosheemu</annotation>
+ <annotation cp="🚱" type="tts">omi ti kosheemu</annotation>
+ <annotation cp="🚷">èèwɔ̀ | kò | kòsáyè | kosi olufɛsɛrin | olùfɛsɛ̀rìn | rárá</annotation>
+ <annotation cp="🚷" type="tts">kosi olufɛsɛrin</annotation>
+ <annotation cp="📵">àgbéká | èèwò | Ɛ̀rɔ alágbéèká | fóònù | kò | kòsáyè | kosi awɔn foonu alagbeka | rárá | tɛlifóònù</annotation>
+ <annotation cp="📵" type="tts">kosi awɔn foonu alagbeka</annotation>
+ <annotation cp="🔞">18 | bɛ́ɛ̀kɔ́ | ejìdínlógún | èwɔ̀ | ɛwɔ | ìdìwɔ́ ojó orí | kosi eniyan labɛ ejidinlogun | ojɔ́ orí tó kéré | ráráa</annotation>
+ <annotation cp="🔞" type="tts">kosi eniyan labɛ ejidinlogun</annotation>
+ <annotation cp="☢">àmì | rédíòátífù</annotation>
+ <annotation cp="☢" type="tts">rédíòátífù</annotation>
+ <annotation cp="☣">àmì | ewu ajɛmɔ́nìyàn</annotation>
+ <annotation cp="☣" type="tts">ewu ajɛmɔ́nìyàn</annotation>
+ <annotation cp="⬆">àmì ìtó̩sɔ́nà o̩lɔ́fà | àmì òkè ìtó̩sɔ́nà o̩lɔ́fà | àríwá | ìtɔ́sɔ́nà | kádínàlì</annotation>
+ <annotation cp="⬆" type="tts">àmì òkè ìtó̩sɔ́nà o̩lɔ́fà</annotation>
+ <annotation cp="↗">àmì ìtó̩sɔ́nà o̩lɔ́fà | àmì òkè ìtó̩sɔ́nà o̩lɔ́fà apá ɔ̀tún | ilà oòrùn àríwá | ìlɔ́pɔ̀ kádínàlì | ìtɔ́sɔ́nà</annotation>
+ <annotation cp="↗" type="tts">àmì òkè ìtó̩sɔ́nà o̩lɔ́fà apá ɔ̀tún</annotation>
+ <annotation cp="➡">àmì ìtó̩sɔ́nà o̩lɔ́fà | àmì ìtó̩sɔ́nà o̩lɔ́fà apá ɔ̀tún | ilà oòrùn | ìtɔ́sɔ́nà | kádínàlì</annotation>
+ <annotation cp="➡" type="tts">àmì ìtó̩sɔ́nà o̩lɔ́fà apá ɔ̀tún</annotation>
+ <annotation cp="↘">àmì ilɛ̀ ìtó̩sɔ́nà o̩lɔ́fà apá ɔ̀tún | àmì ìtó̩sɔ́nà o̩lɔ́fà | gúúsù ilà oòrùn | ìlɔ́pɔ̀ kádínàlì | ìtɔ́sɔ́nà</annotation>
+ <annotation cp="↘" type="tts">àmì ilɛ̀ ìtó̩sɔ́nà o̩lɔ́fà apá ɔ̀tún</annotation>
+ <annotation cp="⬇">àmì ilɛ̀ ìtó̩sɔ́nà o̩lɔ́fà | àmì ìtó̩sɔ́nà o̩lɔ́fà | gúúsù | ilè̩ | ìtɔ́sɔ́nà | kádínàlì</annotation>
+ <annotation cp="⬇" type="tts">àmì ilɛ̀ ìtó̩sɔ́nà o̩lɔ́fà</annotation>
+ <annotation cp="↙">àmì ilɛ̀ ìtó̩sɔ́nà o̩lɔ́fà apá òsì | àmì ìtó̩sɔ́nà o̩lɔ́fà | ìlɔ́pɔ̀ kádínàlì | ìtɔ́sɔ́nà | iwɔ̀ oòrùn gúúsù</annotation>
+ <annotation cp="↙" type="tts">àmì ilɛ̀ ìtó̩sɔ́nà o̩lɔ́fà apá òsì</annotation>
+ <annotation cp="⬅">àmì ìtó̩sɔ́nà o̩lɔ́fà | àmì ìtó̩sɔ́nà o̩lɔ́fà apá òsì | ìtɔ́sɔ́nà | iwɔ̀ oòrùn | kádínàlì</annotation>
+ <annotation cp="⬅" type="tts">àmì ìtó̩sɔ́nà o̩lɔ́fà apá òsì</annotation>
+ <annotation cp="↖">àmì ìtó̩sɔ́nà o̩lɔ́fà | àmì òkè ìtó̩sɔ́nà o̩lɔ́fà apá òsì | ìlɔ́pɔ̀ kádínàlì | ìtɔ́sɔ́nà | iwɔ̀ oòrùn àríwá</annotation>
+ <annotation cp="↖" type="tts">àmì òkè ìtó̩sɔ́nà o̩lɔ́fà apá òsì</annotation>
+ <annotation cp="↕">ɔfà | ɔfà tòkètilɛ̀</annotation>
+ <annotation cp="↕" type="tts">ɔfà tòkètilɛ̀</annotation>
+ <annotation cp="↔">àmì ìtó̩sɔ́nà o̩lɔ́fà tɔ̀tún-tòsì | ɔfà</annotation>
+ <annotation cp="↔" type="tts">àmì ìtó̩sɔ́nà o̩lɔ́fà tɔ̀tún-tòsì</annotation>
+ <annotation cp="↩">àmì ìtó̩sɔ́nà o̩lɔ́fà apá ɔ̀tún onígun | ɔfà</annotation>
+ <annotation cp="↩" type="tts">àmì ìtó̩sɔ́nà o̩lɔ́fà apá ɔ̀tún onígun</annotation>
+ <annotation cp="↪">àmì ìtó̩sɔ́nà o̩lɔ́fà apá òsì onígun | ɔfà</annotation>
+ <annotation cp="↪" type="tts">àmì ìtó̩sɔ́nà o̩lɔ́fà apá òsì onígun</annotation>
+ <annotation cp="⤴">àmì ìtó̩sɔ́nà o̩lɔ́fà apá ɔ̀tún onígun òkè | ɔfà</annotation>
+ <annotation cp="⤴" type="tts">àmì ìtó̩sɔ́nà o̩lɔ́fà apá ɔ̀tún onígun òkè</annotation>
+ <annotation cp="⤵">àmì ìtó̩sɔ́nà o̩lɔ́fà apá ɔ̀tún onígun ìsàlɛ̀ | ilɛ̀ | o̩fà</annotation>
+ <annotation cp="⤵" type="tts">àmì ìtó̩sɔ́nà o̩lɔ́fà apá ɔ̀tún onígun ìsàlɛ̀</annotation>
+ <annotation cp="🔃">àmì ìtó̩sɔ́nà o̩lɔ́fà | àtúngbé | awɔn ɔfa yiyi ɔna ago | ɔlɔ́wɔ́-aago</annotation>
+ <annotation cp="🔃" type="tts">awɔn ɔfa yiyi ɔna ago</annotation>
+ <annotation cp="🔄">bɔtini awɔn ɔfa yiyi lodi sɔna ago | ìlòdìsɔ́wɔ́ aago | o̩fà</annotation>
+ <annotation cp="🔄" type="tts">bɔtini awɔn ɔfa yiyi lodi sɔna ago</annotation>
+ <annotation cp="🔙">ɛ̀yìn | o̩fà | Ɔfa ƐYIN</annotation>
+ <annotation cp="🔙" type="tts">Ɔfa ƐYIN</annotation>
+ <annotation cp="🔚">ìparí | ɔfà | Ɔfa IPARI</annotation>
+ <annotation cp="🔚" type="tts">Ɔfa IPARI</annotation>
+ <annotation cp="🔛">àmì | lórí | o̩fà | Ɔfa LORI!</annotation>
+ <annotation cp="🔛" type="tts">Ɔfa LORI!</annotation>
+ <annotation cp="🔜">láìpɛ́ | o̩fà | Ɔfa LAIPƐ</annotation>
+ <annotation cp="🔜" type="tts">Ɔfa LAIPƐ</annotation>
+ <annotation cp="🔝">o̩fà | òkè | orí òkè | Ɔfa LOKE</annotation>
+ <annotation cp="🔝" type="tts">Ɔfa LOKE</annotation>
+ <annotation cp="🛐">ɛ̀sìn | ibi ijɔsin | ìjó̩sìn</annotation>
+ <annotation cp="🛐" type="tts">ibi ijɔsin</annotation>
+ <annotation cp="⚛">aláìgbàgbó̩ | àmì átɔ́mù | átɔ́mù</annotation>
+ <annotation cp="⚛" type="tts">àmì átɔ́mù</annotation>
+ <annotation cp="🕉">ɛ̀sìn | Híndù | om</annotation>
+ <annotation cp="🕉" type="tts">om</annotation>
+ <annotation cp="✡">Dáfídì | E̩lɛ́sìn júù | ɛ̀sìn | ìràwɔ̀ | Júù</annotation>
+ <annotation cp="✡" type="tts">ìràwɔ̀ Dáfídì</annotation>
+ <annotation cp="☸">E̩lɛ́sìn bó̩ó̩dà | ɛlɛ́sìn dáámà | ɛ̀sìn | kè̩ké̩ | kɛ̀ké̩ è̩sìn dáámà</annotation>
+ <annotation cp="☸" type="tts">kɛ̀ké̩ è̩sìn dáámà</annotation>
+ <annotation cp="☯">ɛlé̩sìn táó | ɛ̀sìn | táó | yángì | yínì</annotation>
+ <annotation cp="☯" type="tts">yínì yángì</annotation>
+ <annotation cp="✝">àgbélèbú | àgbélèbú látíìnì | ɛlɛ́sìn ìgbàgbó̩ | ɛ̀sìn</annotation>
+ <annotation cp="✝" type="tts">àgbélèbú látíìnì</annotation>
+ <annotation cp="☦">àgbélèbú | àgbélèbú àtijó | ɛlɛ́sìn ìgbàgbó̩ | ɛ̀sìn</annotation>
+ <annotation cp="☦" type="tts">àgbélèbú àtijó</annotation>
+ <annotation cp="☪">ɛ̀sìn | Ìmàle | ìràwɔ̀ àti òshùpá tí kò tí yɔ tán | Mùsùlùmí</annotation>
+ <annotation cp="☪" type="tts">ìràwɔ̀ àti òshùpá tí kò tí yɔ tán</annotation>
+ <annotation cp="☮">àláàáfíà | àmì àláàáfíà</annotation>
+ <annotation cp="☮" type="tts">àmì àláàáfíà</annotation>
+ <annotation cp="🕎">ɛ̀sìn | ìdúró àbé̩là | ìdúró kándù | menorah</annotation>
+ <annotation cp="🕎" type="tts">menorah</annotation>
+ <annotation cp="🔯">ìràwɔ̀ | irawɔ totooto oni-mɛfa | oríre</annotation>
+ <annotation cp="🔯" type="tts">irawɔ totooto oni-mɛfa</annotation>
+ <annotation cp="♈">àgbò | àmi oshù ìbí | Aries</annotation>
+ <annotation cp="♈" type="tts">Aries</annotation>
+ <annotation cp="♉">àmi oshù ìbí | ɛgbɔrɔ màlúù | màlúù igbò | Taurus</annotation>
+ <annotation cp="♉" type="tts">Taurus</annotation>
+ <annotation cp="♊">àmi oshù ìbí | Gemini | ìbejì</annotation>
+ <annotation cp="♊" type="tts">Gemini</annotation>
+ <annotation cp="♋">akàn | àmi oshù ìbí | Cancer</annotation>
+ <annotation cp="♋" type="tts">Cancer</annotation>
+ <annotation cp="♌">àmi oshù ìbí | kìnìhún | Leo</annotation>
+ <annotation cp="♌" type="tts">Leo</annotation>
+ <annotation cp="♍">àmi oshù ìbí | Virgo</annotation>
+ <annotation cp="♍" type="tts">Virgo</annotation>
+ <annotation cp="♎">àmi oshù ìbí | ìdájó̩ | Ìwɔ̀ntúnwò̩nsì | Libra | òshùwò̩n</annotation>
+ <annotation cp="♎" type="tts">Libra</annotation>
+ <annotation cp="♏">àkeèké | àmi oshù ìbí | scorpio | Scorpius</annotation>
+ <annotation cp="♏" type="tts">Scorpius</annotation>
+ <annotation cp="♐">àmi oshù ìbí | Sagittarius | tafàtafà</annotation>
+ <annotation cp="♐" type="tts">Sagittarius</annotation>
+ <annotation cp="♑">àmi oshù ìbí | Capricorn | ewúré̩</annotation>
+ <annotation cp="♑" type="tts">Capricorn</annotation>
+ <annotation cp="♒">àmi oshù ìbí | Aquarius | olùjɛ́ orúkɔ | omi</annotation>
+ <annotation cp="♒" type="tts">Aquarius</annotation>
+ <annotation cp="♓">àmi oshù ìbí | ɛja | Pisces</annotation>
+ <annotation cp="♓" type="tts">Pisces</annotation>
+ <annotation cp="⛎">afàyàfà | àmi oshù ìbí | ejò | ɛní gba ǹkan | Ophiuchus</annotation>
+ <annotation cp="⛎" type="tts">Ophiuchus</annotation>
+ <annotation cp="🔀">àmì atɔ́nà ɔlɔ́fà | ìfagilé | yiyɔ bɔtini tiraki</annotation>
+ <annotation cp="🔀" type="tts">yiyɔ bɔtini tiraki</annotation>
+ <annotation cp="🔁">àmì atɔ́nà ɔló̩fà | atunshe bɔtini | àtúnsɔ | olɔ́wɔ́ aago</annotation>
+ <annotation cp="🔁" type="tts">atunshe bɔtini</annotation>
+ <annotation cp="🔂">àmì ató̩nà ɔlɔfà | atunshe bɔtini ɛlɛyɔ | ɛ̀ɛ̀kan | olɔ́wɔ́ aago</annotation>
+ <annotation cp="🔂" type="tts">atunshe bɔtini ɛlɛyɔ</annotation>
+ <annotation cp="▶">àmì atɔ́nà ɔló̩fà | bɔ́tínì píílè | onígun mé̩ta | ɔ̀tún | píílè</annotation>
+ <annotation cp="▶" type="tts">bɔ́tínì píílè</annotation>
+ <annotation cp="⏩">àmì atɔ́nà ɔlɔ́fà | méjì | mu bɔtini sare lɔwaju | sáré | tɛ̀síwájú</annotation>
+ <annotation cp="⏩" type="tts">mu bɔtini sare lɔwaju</annotation>
+ <annotation cp="⏭">àmì atɔ́nà ɔlɔ́fà | bɔ́tìnì tírákì tó kàn | ipele àwòrán tí ó kàn | onigun mɛta | tírákì tí ó kàn</annotation>
+ <annotation cp="⏭" type="tts">bɔ́tìnì tírákì tó kàn</annotation>
+ <annotation cp="⏯">àmì atɔ́nà ɔlɔ́fà | bó̩tìnìpíílè tàbí ìdúró | dúró | onigun mɛta | ɔ̀tún | píílè</annotation>
+ <annotation cp="⏯" type="tts">bó̩tìnìpíílè tàbí ìdúró</annotation>
+ <annotation cp="◀">Àmì atɔ́nà ɔlɔ́fà | Bɔ́tínì ìdápadà | dapadà | onigun mɛta | òsì</annotation>
+ <annotation cp="◀" type="tts">Bɔ́tínì ìdápadà</annotation>
+ <annotation cp="⏪">Àmì atɔ́nà ɔlɔ́fà | àmúrɛ̀yìn | mu bɔtini sare rɛhin | oníbejì</annotation>
+ <annotation cp="⏪" type="tts">mu bɔtini sare rɛhin</annotation>
+ <annotation cp="⏮">Àmì atɔ́nà ɔlɔ́fà | ìshe ta wò kɛ́yìn | onigun mɛta | tíráàkì ta gbɔ́ kɛ́yìn | Tíráàkì tó ké̩yìn</annotation>
+ <annotation cp="⏮" type="tts">Tíráàkì tó ké̩yìn</annotation>
+ <annotation cp="🔼">Àmì atɔ́nà ɔlɔ́fà | bɔ́tìnì | bɔtini oke | pupa</annotation>
+ <annotation cp="🔼" type="tts">bɔtini oke</annotation>
+ <annotation cp="⏫">Àmì atɔ́nà ɔlɔ́fà | bɔtini imusoke kia | oníbejì</annotation>
+ <annotation cp="⏫" type="tts">bɔtini imusoke kia</annotation>
+ <annotation cp="🔽">Àmì atɔ́nà ɔlɔ́fà | bɔ́tìnì | bɔtini isalɛ | ilè̩ | pupa</annotation>
+ <annotation cp="🔽" type="tts">bɔtini isalɛ</annotation>
+ <annotation cp="⏬">Àmì atɔ́nà ɔlɔ́fà | bɔtini imussalɛ kia | ilè̩ | oníbejì</annotation>
+ <annotation cp="⏬" type="tts">bɔtini imussalɛ kia</annotation>
+ <annotation cp="⏸">Báà | bɔ́tínì ìdánudúró fúngbà díɛ̀ | dadúró | olóòró | oníbejì</annotation>
+ <annotation cp="⏸" type="tts">bɔ́tínì ìdánudúró fúngbà díɛ̀</annotation>
+ <annotation cp="⏹">bɔ́tínì ìdànudúró | dúró | Onígun mɛ́rin</annotation>
+ <annotation cp="⏹" type="tts">bɔ́tínì ìdànudúró</annotation>
+ <annotation cp="⏺">bɔ́tínì agbohùnsílɛ̀ | ré̩kɔ́ɔ̀dù | Rogodo</annotation>
+ <annotation cp="⏺" type="tts">bɔ́tínì agbohùnsílɛ̀</annotation>
+ <annotation cp="⏏">àtɛ̀jáde | bó̩tínì àtɛ̀jáde</annotation>
+ <annotation cp="⏏" type="tts">bó̩tínì àtɛ̀jáde</annotation>
+ <annotation cp="🎦">fíìmù | kámɛ́rà | sinima</annotation>
+ <annotation cp="🎦" type="tts">sinima</annotation>
+ <annotation cp="🔅">Àfikún iná | bɔtini baibai | ìdínákù díɛ̀ | ìdínákù pátápátá</annotation>
+ <annotation cp="🔅" type="tts">bɔtini baibai</annotation>
+ <annotation cp="🔆">àfikún ìmɔ́lɛ̀ | bɔtini titan | Ìmɔ́lɛ̀</annotation>
+ <annotation cp="🔆" type="tts">bɔtini titan</annotation>
+ <annotation cp="📶">Alátagbà | àwɔn òpó antɛna | báà | è̩ro̩ alágbéèká | fóònù | fóònù alágbèéká | ìfihàn | tɛlifóònù</annotation>
+ <annotation cp="📶" type="tts">àwɔn òpó antɛna</annotation>
+ <annotation cp="📳">àgbéká | Ɛ̀rɔ alágbéèká | fóònù | gbígbɔ̀n | móòdù | moodu gbigbɔn | tɛlifóònù</annotation>
+ <annotation cp="📳" type="tts">moodu gbigbɔn</annotation>
+ <annotation cp="📴">alágbèéká | fóònù | pipa ɛ̀rɔ ìbánisɔ̀rɔ̀ alágbèéká | tɛlifóònù</annotation>
+ <annotation cp="📴" type="tts">pipa ɛ̀rɔ ìbánisɔ̀rɔ̀ alágbèéká</annotation>
+ <annotation cp="♀">àmí obìnrin | Obìnrin</annotation>
+ <annotation cp="♀" type="tts">àmí obìnrin</annotation>
+ <annotation cp="♂">àmì ɔkùnrin | Ɔkùnrin</annotation>
+ <annotation cp="♂" type="tts">àmì ɔkùnrin</annotation>
+ <annotation cp="✖">fagilé | ìsɔdipúpò̩ | ìsɔdipúpò̩ tó nípɔn x | x</annotation>
+ <annotation cp="✖" type="tts">ìsɔdipúpò̩ tó nípɔn x</annotation>
+ <annotation cp="➕">aami àròpɔ̀ nla | àròpɔ̀ | ɛ̀kó̩ ìsirò</annotation>
+ <annotation cp="➕" type="tts">aami àròpɔ̀ nla</annotation>
+ <annotation cp="➖">aami ayɔkuro nla | àyɔkúrò | ɛ̀kó̩ ìsirò</annotation>
+ <annotation cp="➖" type="tts">aami ayɔkuro nla</annotation>
+ <annotation cp="➗">aami gige nla | ɛ̀kɔ́ ìsirò | ìpín</annotation>
+ <annotation cp="➗" type="tts">aami gige nla</annotation>
+ <annotation cp="‼">àmì | àmì ìyanu | àmì ìyanu oníbejì | gbàgbà | ìfàmìsí</annotation>
+ <annotation cp="‼" type="tts">àmì ìyanu oníbejì</annotation>
+ <annotation cp="⁉">àmì | àmì ìyanu | àmì ìyanu oníbéèrè | ìfàmìsí | ìfɔ̀rɔ̀wánilé̩nuwò</annotation>
+ <annotation cp="⁉" type="tts">àmì ìyanu oníbéèrè</annotation>
+ <annotation cp="❓">àmì | àmì ìbéèrè ìdàkodò | ìbéèrè | ìfàmìsí</annotation>
+ <annotation cp="❓" type="tts">àmì ìbéèrè ìdàkodò</annotation>
+ <annotation cp="❔">aami ibeere funfun | ààtò | àmì | ìbéèrè | ìfàmìsí</annotation>
+ <annotation cp="❔" type="tts">aami ibeere funfun</annotation>
+ <annotation cp="❕">aami iyalɛnu funfun | ààtò | àmì | àmì ìyanu | ìfàmìsí</annotation>
+ <annotation cp="❕" type="tts">aami iyalɛnu funfun</annotation>
+ <annotation cp="❗">àmì | àmì ìyàlɛ́nu ìdàkodò | àmì ìyanu | ìfàmìsí</annotation>
+ <annotation cp="❗" type="tts">àmì ìyàlɛ́nu ìdàkodò</annotation>
+ <annotation cp="〰">dáàshì | dáàshì onísàn omi | ìfàmìsí | ìsàn omi</annotation>
+ <annotation cp="〰" type="tts">dáàshì onísàn omi</annotation>
+ <annotation cp="💱">ìlé ìfowópamɔ́ | owó | pàshépàrò̩ | pashiparɔ owo</annotation>
+ <annotation cp="💱" type="tts">pashiparɔ owo</annotation>
+ <annotation cp="💲">aami dɔla nla | dɔ́là | owó</annotation>
+ <annotation cp="💲" type="tts">aami dɔla nla</annotation>
+ <annotation cp="⚕">aesculapius | àmì egbògiogùn | ògùn | òshìshɛ́</annotation>
+ <annotation cp="⚕" type="tts">àmì egbògiogùn</annotation>
+ <annotation cp="♻">àmì àtúnrɔ | àtúnrɔ</annotation>
+ <annotation cp="♻" type="tts">àmì àtúnrɔ</annotation>
+ <annotation cp="⚜">fleur-de-lis</annotation>
+ <annotation cp="⚜" type="tts">fleur-de-lis</annotation>
+ <annotation cp="🔱">aami apɛɛrɛ trident | ɛ̀mbé̩ɛ̀mù | ìdákɔ̀ró | irinshé̩ | ɔkɔ̀ | tírídɛ̀ntì</annotation>
+ <annotation cp="🔱" type="tts">aami apɛɛrɛ trident</annotation>
+ <annotation cp="📛">báájì | orúkɔ | orúkɔ àmì</annotation>
+ <annotation cp="📛" type="tts">orúkɔ àmì</annotation>
+ <annotation cp="🔰">Àmì Japanisi fun olubɛre | àwò̩ ewé | ewé | Ìbɛ̀rè̩ | irjnshé̩ | Jàpànísì | shé̩fúró̩ɔ̀nù | yé̩lò</annotation>
+ <annotation cp="🔰" type="tts">Àmì Japanisi fun olubɛre</annotation>
+ <annotation cp="⭕">o | òdo | roboto wiwo nla</annotation>
+ <annotation cp="⭕" type="tts">roboto wiwo nla</annotation>
+ <annotation cp="✅">àmì | àyɛ̀wò | maaki ishayewo funfun nla</annotation>
+ <annotation cp="✅" type="tts">maaki ishayewo funfun nla</annotation>
+ <annotation cp="☑">àpótí | àpótí ìdìbò | àyɛ̀wò | àyɛ̀wò àpótí ìdìbò</annotation>
+ <annotation cp="☑" type="tts">àyɛ̀wò àpótí ìdìbò</annotation>
+ <annotation cp="✔">àmì | àyɛ̀wò | fínnífínní</annotation>
+ <annotation cp="✔" type="tts">fínnífínní</annotation>
+ <annotation cp="❌">aami idabu | àmì | fagilé | ìsɔdipúpò̩ | x</annotation>
+ <annotation cp="❌" type="tts">aami idabu</annotation>
+ <annotation cp="❎">àmì | bɔtini aami idabu | oníhàmɛ́rin</annotation>
+ <annotation cp="❎" type="tts">bɔtini aami idabu</annotation>
+ <annotation cp="➰">iho wɔlɔwɔlo | ìyípɔ̀ | lúpù</annotation>
+ <annotation cp="➰" type="tts">iho wɔlɔwɔlo</annotation>
+ <annotation cp="➿">àyípɔ̀ | iho wɔlɔwɔlo meji | lúpù | méjì</annotation>
+ <annotation cp="➿" type="tts">iho wɔlɔwɔlo meji</annotation>
+ <annotation cp="〽">àmì | ara | ara máàkì ti a ti tɔwó̩bɔ̀</annotation>
+ <annotation cp="〽" type="tts">ara máàkì ti a ti tɔwó̩bɔ̀</annotation>
+ <annotation cp="✳">àmì àkíyésì | àmì àkíyèsí onígbá-mé̩jɔ</annotation>
+ <annotation cp="✳" type="tts">àmì àkíyèsí onígbá-mé̩jɔ</annotation>
+ <annotation cp="✴">àmì àkíyèsí onígun-mé̩jɔ | ìràwɔ̀</annotation>
+ <annotation cp="✴" type="tts">àmì àkíyèsí onígun-mé̩jɔ</annotation>
+ <annotation cp="❇">dán</annotation>
+ <annotation cp="❇" type="tts">dán</annotation>
+ <annotation cp="©">òfin ìdábòbò ishɛ́</annotation>
+ <annotation cp="©" type="tts">òfin ìdábòbò ishɛ́</annotation>
+ <annotation cp="®">ìforúkɔsílɛ</annotation>
+ <annotation cp="®" type="tts">ìforúkɔsílɛ</annotation>
+ <annotation cp="™">àmì | àmì ìdámɔ̀ fún iléeshɛ́ | àmì ìdánimɔ̀ iléeshɛ́ | tm</annotation>
+ <annotation cp="™" type="tts">àmì ìdánimɔ̀ iléeshɛ́</annotation>
+ <annotation cp="🔠">ABCD | àgbéwɔlé | látíìnì | lé̩tà nlá | lɛ́tà | shafikun latini ɔ̀rɔ̀ gbólóhùn ńlá</annotation>
+ <annotation cp="🔠" type="tts">shafikun latini ɔ̀rɔ̀ gbólóhùn ńlá</annotation>
+ <annotation cp="🔡">abcd | àgbéwɔlé | látíìnì | lé̩tà nlá | lɛ́tà | shafikun latini ɔ̀rɔ̀ gbólóhùn kékeré</annotation>
+ <annotation cp="🔡" type="tts">shafikun latini ɔ̀rɔ̀ gbólóhùn kékeré</annotation>
+ <annotation cp="🔢">1234 | àgbéwɔlé | nɔ́mbà | shafikun awɔn nɔnba</annotation>
+ <annotation cp="🔢" type="tts">shafikun awɔn nɔnba</annotation>
+ <annotation cp="🔣">〒♪&% | àgbéwɔlé | shafikun awɔn àmì</annotation>
+ <annotation cp="🔣" type="tts">shafikun awɔn àmì</annotation>
+ <annotation cp="🔤">abc | àgbéwɔlé | álífábɛ́ɛ̀tì | àwɔn lɛ́tà | látíìnì | shafikun awɔn lɛta latini</annotation>
+ <annotation cp="🔤" type="tts">shafikun awɔn lɛta latini</annotation>
+ <annotation cp="🅰">a | Bɔ́tìnì A (irúfé̩ ɛ̀jɛ̀) | irúfɛ́ ɛ̀jɛ̀</annotation>
+ <annotation cp="🅰" type="tts">Bɔ́tìnì A (irúfé̩ ɛ̀jɛ̀)</annotation>
+ <annotation cp="🆎">ab | Bɔtini AB (irufɛ ɛjɛ) | irúfé̩ ɛ̀jɛ̀</annotation>
+ <annotation cp="🆎" type="tts">Bɔtini AB (irufɛ ɛjɛ)</annotation>
+ <annotation cp="🅱">b | Bɔ́tìnì B(irúfé̩ ɛ̀jɛ̀) | irúfé̩ ɛ̀jɛ̀</annotation>
+ <annotation cp="🅱" type="tts">Bɔ́tìnì B(irúfé̩ ɛ̀jɛ̀)</annotation>
+ <annotation cp="🆑">Bɔtini CL | cl</annotation>
+ <annotation cp="🆑" type="tts">Bɔtini CL</annotation>
+ <annotation cp="🆒">Bɔtini KUULU | tútù</annotation>
+ <annotation cp="🆒" type="tts">Bɔtini KUULU</annotation>
+ <annotation cp="🆓">Bɔtini ƆFƐ | ɔ̀fɛ́</annotation>
+ <annotation cp="🆓" type="tts">Bɔtini ƆFƐ</annotation>
+ <annotation cp="ℹ">àlàyé | i</annotation>
+ <annotation cp="ℹ" type="tts">àlàyé</annotation>
+ <annotation cp="🆔">Bɔtini ID | ìdánimò̩</annotation>
+ <annotation cp="🆔" type="tts">Bɔtini ID</annotation>
+ <annotation cp="Ⓜ">m | M òdo | òdo</annotation>
+ <annotation cp="Ⓜ" type="tts">M òdo</annotation>
+ <annotation cp="🆕">Bɔtini TUNTUN | tuntun</annotation>
+ <annotation cp="🆕" type="tts">Bɔtini TUNTUN</annotation>
+ <annotation cp="🆖">Bɔtini NG | ng</annotation>
+ <annotation cp="🆖" type="tts">Bɔtini NG</annotation>
+ <annotation cp="🅾">Bɔ́tìnì O (irúfé̩ èjè) | irúfé̩ èjè | o</annotation>
+ <annotation cp="🅾" type="tts">Bɔ́tìnì O (irúfé̩ èjè)</annotation>
+ <annotation cp="🆗">Bɔtini DARA | Ó Dára</annotation>
+ <annotation cp="🆗" type="tts">Bɔtini DARA</annotation>
+ <annotation cp="🅿">àyè ìgbékɔ̀sí | bó̩tìnì P</annotation>
+ <annotation cp="🅿" type="tts">bó̩tìnì P</annotation>
+ <annotation cp="🆘">Bɔtini SOS | ìrànwɔ́ | sos</annotation>
+ <annotation cp="🆘" type="tts">Bɔtini SOS</annotation>
+ <annotation cp="🆚">Bɔtini VS | figagbága pɛ̀lú | fp</annotation>
+ <annotation cp="🆚" type="tts">Bɔtini VS</annotation>
+ <annotation cp="🈁">"níbí" | Bɔtini Japanisi "nibi" | Japanese | katakana | ココ</annotation>
+ <annotation cp="🈁" type="tts">Bɔtini Japanisi "nibi"</annotation>
+ <annotation cp="🈂">"ìdíyelé fún owó ɔ̀yà" | Bɔ́tìnì Japanísì "ìdíyelé fún owó ɔ̀yà" | Japanese | katakana | サ</annotation>
+ <annotation cp="🈂" type="tts">Bɔ́tìnì Japanísì "ìdíyelé fún owó ɔ̀yà"</annotation>
+ <annotation cp="🈷">"owó ìdíyelé oshoòshù" | àmì ajɛmáwòrán | Bó̩tìnì Japanisi "owó ìdíyelé oshoòshù" | Japanese | 月</annotation>
+ <annotation cp="🈷" type="tts">Bó̩tìnì Japanisi "owó ìdíyelé oshoòshù"</annotation>
+ <annotation cp="🈶">"kòshɔ̀fé̩" | àmì ajɛmáwòrán | Bɔtini Japanisi "kosi lɔfɛ" | Japanese | 有</annotation>
+ <annotation cp="🈶" type="tts">Bɔtini Japanisi "kosi lɔfɛ"</annotation>
+ <annotation cp="🈯">"ìpamó̩" | àmì ajɛmáwòrán | Bɔtini Japanisi "nipamɔ" | Japanese | 指</annotation>
+ <annotation cp="🈯" type="tts">Bɔtini Japanisi "nipamɔ"</annotation>
+ <annotation cp="🉐">"ìdúnàdúrà" | àmì ajɛmáwòrán | Bɔtini Japanisi "idunadura" | Japanese | 得</annotation>
+ <annotation cp="🉐" type="tts">Bɔtini Japanisi "idunadura"</annotation>
+ <annotation cp="🈹">"ɛ̀dínwó" | àmì ajɛmáwòrán | Bɔtini Japanisi "ɛdinwo" | Japanese | 割</annotation>
+ <annotation cp="🈹" type="tts">Bɔtini Japanisi "ɛdinwo"</annotation>
+ <annotation cp="🈚">"lɔ́fɛ̀é̩" | àmì ajɛmáwòrán | Bɔtini Japanisi "lɔ́fɛ̀é̩" | Japanese | 無</annotation>
+ <annotation cp="🈚" type="tts">Bɔtini Japanisi "lɔ́fɛ̀é̩"</annotation>
+ <annotation cp="🈲">"àìfàyègbà" | àmì ajɛmáwòrán | Bɔtini Japanisi "shediwɔ" | Japanese | 禁</annotation>
+ <annotation cp="🈲" type="tts">Bɔtini Japanisi "shediwɔ"</annotation>
+ <annotation cp="🉑">"ìté̩wó̩gbà" | àmì ajɛmáwòrán | Bɔtini "itɛwɔgba" Japanisi | Japanese | 可</annotation>
+ <annotation cp="🉑" type="tts">Bɔtini "itɛwɔgba" Japanisi</annotation>
+ <annotation cp="🈸">"ohun èlò" | àmì ajɛmáwòrán | Bɔtini "ohun elo" Japanisi | Japanese | 申</annotation>
+ <annotation cp="🈸" type="tts">Bɔtini "ohun elo" Japanisi</annotation>
+ <annotation cp="🈴">"gbendéke ìkɛ́kɔ̀ó̩ yege" | àmì ajɛmáwòrán | Bɔtini "gbendeke iyege" Japanisi | Japanese | 合</annotation>
+ <annotation cp="🈴" type="tts">Bɔtini "gbendeke iyege" Japanisi</annotation>
+ <annotation cp="🈳">"ààyè" | àmì ajɛmáwòrán | Bɔtini "aaye" Japanisi | Japanese | 空</annotation>
+ <annotation cp="🈳" type="tts">Bɔtini "aaye" Japanisi</annotation>
+ <annotation cp="㊗">"kú oríre" | àmì ajɛmáwòrán | Bó̩tìnì "kú oríre" Japanisi | Japanese | 祝</annotation>
+ <annotation cp="㊗" type="tts">Bó̩tìnì "kú oríre" Japanisi</annotation>
+ <annotation cp="㊙">"àshírí" | àmì ajɛmáwòrán | Bó̩tìnì "àshírí"Japanisi | Japanese | 秘</annotation>
+ <annotation cp="㊙" type="tts">Bó̩tìnì "àshírí"Japanisi</annotation>
+ <annotation cp="🈺">"shí fún okòwò" | àmì ajɛmáwòrán | Bɔtini "shi fun okowo" Japanisi | Japanese | 営</annotation>
+ <annotation cp="🈺" type="tts">Bɔtini "shi fun okowo" Japanisi</annotation>
+ <annotation cp="🈵">"kosi aaye" | àmì ajɛmáwòrán | Bɔtini "kosi aaye" Japanisi | Japanese | 満</annotation>
+ <annotation cp="🈵" type="tts">Bɔtini "kosi aaye" Japanisi</annotation>
+ <annotation cp="🔴">jiomɛ́tíríkì | pupa | Rogodo | Rogodo Aláwɔ̀ pupa</annotation>
+ <annotation cp="🔴" type="tts">Rogodo Aláwɔ̀ pupa</annotation>
+ <annotation cp="🔵">Búlù | jiomɛ́tíríkì | rogodo | Rogodo Búlúù</annotation>
+ <annotation cp="🔵" type="tts">Rogodo Búlúù</annotation>
+ <annotation cp="⚫">Rogodo | Rogodo Aláwɔ̀ dúdú</annotation>
+ <annotation cp="⚫" type="tts">Rogodo Aláwɔ̀ dúdú</annotation>
+ <annotation cp="⚪">Rogodo | Rogodo Funfun</annotation>
+ <annotation cp="⚪" type="tts">Rogodo Funfun</annotation>
+ <annotation cp="⬛">ilà onigun mé̩rin | jiomé̩tíríkì | onigunmɛrin dudu nla</annotation>
+ <annotation cp="⬛" type="tts">onigunmɛrin dudu nla</annotation>
+ <annotation cp="⬜">ilà onigun mé̩rin | jiomé̩tíríkì | onigunmɛrin funfun nla</annotation>
+ <annotation cp="⬜" type="tts">onigunmɛrin funfun nla</annotation>
+ <annotation cp="◼">ilà onigun mé̩rin | ilà onígun mé̩rin aláàárín dúdú | jiomé̩tíríkì</annotation>
+ <annotation cp="◼" type="tts">ilà onígun mé̩rin aláàárín dúdú</annotation>
+ <annotation cp="◻">ilà onigun mé̩rin | ilà onígun mé̩rin aláàárín funfun | jiomé̩tíríkì</annotation>
+ <annotation cp="◻" type="tts">ilà onígun mé̩rin aláàárín funfun</annotation>
+ <annotation cp="◾">ilà onigun mé̩rin | jiomé̩tíríkì | onigunmɛrin idaji-kekere dudu</annotation>
+ <annotation cp="◾" type="tts">onigunmɛrin idaji-kekere dudu</annotation>
+ <annotation cp="◽">ilà onigun mé̩rin | jiomé̩tíríkì | onigunmɛrin idaji-kekere funfun</annotation>
+ <annotation cp="◽" type="tts">onigunmɛrin idaji-kekere funfun</annotation>
+ <annotation cp="▪">ilà onigun mé̩rin | jiomé̩tíríkì | kékeré onígun mɛ́rin dúdú</annotation>
+ <annotation cp="▪" type="tts">kékeré onígun mɛ́rin dúdú</annotation>
+ <annotation cp="▫">ilà onigun mé̩rin | jiomé̩tíríkì | kékeré onígun mɛ́rin funfun</annotation>
+ <annotation cp="▫" type="tts">kékeré onígun mɛ́rin funfun</annotation>
+ <annotation cp="🔶">díámɔ́ndì | diamɔndi alawɔ oronbo nla | jiomɛ́tíríkì | òronbó</annotation>
+ <annotation cp="🔶" type="tts">diamɔndi alawɔ oronbo nla</annotation>
+ <annotation cp="🔷">Búlù | díámɔ́ndì | diamɔndi alawɔ bulu nla | jiomɛ́tíríkì</annotation>
+ <annotation cp="🔷" type="tts">diamɔndi alawɔ bulu nla</annotation>
+ <annotation cp="🔸">díámɔ́ndì | diamɔndi alawɔ oronbo kekere | jiomɛ́tíríkì | òronbó</annotation>
+ <annotation cp="🔸" type="tts">diamɔndi alawɔ oronbo kekere</annotation>
+ <annotation cp="🔹">Búlù | díámɔ́ndì | diamɔndi alawɔ bulu kekere | jiomɛ́tíríkì</annotation>
+ <annotation cp="🔹" type="tts">diamɔndi alawɔ bulu kekere</annotation>
+ <annotation cp="🔺">Alawɔ Pupa Onigun Mɛta Toka Soke | jiomɛ́tíríkì | pupa</annotation>
+ <annotation cp="🔺" type="tts">Alawɔ Pupa Onigun Mɛta Toka Soke</annotation>
+ <annotation cp="🔻">Alawɔ Pupa Onigun Mɛta Toka Sisalɛ | Ilɛ̀ | jiomɛ́tíríkì | pupa</annotation>
+ <annotation cp="🔻" type="tts">Alawɔ Pupa Onigun Mɛta Toka Sisalɛ</annotation>
+ <annotation cp="💠">apanilé̩rìn-ín | Díámɔ́ndì | Diamɔndi Pɛlu Dɔti Kan | inú ilé | jiomɛ́tíríkì</annotation>
+ <annotation cp="💠" type="tts">Diamɔndi Pɛlu Dɔti Kan</annotation>
+ <annotation cp="🔘">Bó̩tìnì | Bɔ́tìnnì Rédíò | jiomɛ́tíríkì | rédíò</annotation>
+ <annotation cp="🔘" type="tts">Bɔ́tìnnì Rédíò</annotation>
+ <annotation cp="🔳">ààtò | Bó̩tìnì | Bɔtini Onigunmɛrin Funfun | jiomɛ́tíríkì | onígun mé̩rin</annotation>
+ <annotation cp="🔳" type="tts">Bɔtini Onigunmɛrin Funfun</annotation>
+ <annotation cp="🔲">Bó̩tìnì | Bɔtini Onigunmɛrin Dudu | jiomɛ́tíríkì | onígun mé̩rin</annotation>
+ <annotation cp="🔲" type="tts">Bɔtini Onigunmɛrin Dudu</annotation>
+ <annotation cp="🏁">asia péńpé onílà | eré ìje | ìsàmìsí aláwɔ̀ méjì</annotation>
+ <annotation cp="🏁" type="tts">asia péńpé onílà</annotation>
+ <annotation cp="🚩">asia onigun mɛta | ìfiránshé̩</annotation>
+ <annotation cp="🚩" type="tts">asia onigun mɛta</annotation>
+ <annotation cp="🎌">àgbélébù | Awɔn Asia Onidabu | ayɛyɛ | Japanese | rekoja</annotation>
+ <annotation cp="🎌" type="tts">Awɔn Asia Onidabu</annotation>
+ <annotation cp="🏴">asia dudu | ishàn omi</annotation>
+ <annotation cp="🏴" type="tts">asia dudu</annotation>
+ <annotation cp="🏳">àsíá funfun | ishàn omi</annotation>
+ <annotation cp="🏳" type="tts">àsíá funfun</annotation>
+ <annotation cp="🏳🌈">àsíá olóshùmarè | òshùmarè</annotation>
+ <annotation cp="🏳🌈" type="tts">àsíá olóshùmarè</annotation>
</annotations>
</ldml>
diff --git a/common/annotations/yue.xml b/common/annotations/yue.xml
index 59c336b..9d111c6 100644
--- a/common/annotations/yue.xml
+++ b/common/annotations/yue.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -333,6 +333,8 @@
<annotation cp="🙄" type="tts">圓碌碌大眼嘅臉</annotation>
<annotation cp="😬">痛苦 | 痛苦嘅臉 | 臉</annotation>
<annotation cp="😬" type="tts">痛苦嘅臉</annotation>
+ <annotation cp="😮💨">吹口哨 | 呻吟 | 呼氣 | 喘氣 | 嘆氣嘅臉 | 耳語 | 鬆一口氣</annotation>
+ <annotation cp="😮💨" type="tts">嘆氣嘅臉</annotation>
<annotation cp="🤥">木偶奇遇記 | 臉 | 講大話 | 講大話嘅臉</annotation>
<annotation cp="🤥" type="tts">講大話嘅臉</annotation>
<annotation cp="😌">放鬆 | 放鬆嘅臉 | 臉</annotation>
@@ -391,8 +393,6 @@
<annotation cp="☹" type="tts">皺眉嘅臉</annotation>
<annotation cp="😮">同情 | 嘴 | 打開 | 臉 | 開口嘅臉</annotation>
<annotation cp="😮" type="tts">開口嘅臉</annotation>
- <annotation cp="😮💨">吹口哨 | 呻吟 | 呼氣 | 喘氣 | 嘆氣嘅臉 | 耳語 | 鬆一口氣</annotation>
- <annotation cp="😮💨" type="tts">嘆氣嘅臉</annotation>
<annotation cp="😯">嚇驚 | 沉默 | 沉默嘅臉 | 臉 | 驚訝</annotation>
<annotation cp="😯" type="tts">沉默嘅臉</annotation>
<annotation cp="😲">嚇親 | 完全 | 臉 | 驚訝 | 驚訝嘅臉</annotation>
@@ -511,12 +511,12 @@
<annotation cp="❣" type="tts">沉重嘅感嘆嘅</annotation>
<annotation cp="💔">破碎 | 破碎嘅心 | 碎</annotation>
<annotation cp="💔" type="tts">破碎嘅心</annotation>
- <annotation cp="❤">心 | 紅色心</annotation>
- <annotation cp="❤" type="tts">紅色心</annotation>
<annotation cp="❤🔥">心 | 情慾 | 愛 | 有疤痕嘅心 | 燒 | 燒緊嘅心</annotation>
<annotation cp="❤🔥" type="tts">燒緊嘅心</annotation>
<annotation cp="❤🩹">修補 | 健康 | 包紥嘅心 | 好 | 復原緊 | 改善 | 療傷</annotation>
<annotation cp="❤🩹" type="tts">包紥嘅心</annotation>
+ <annotation cp="❤">心 | 紅色心</annotation>
+ <annotation cp="❤" type="tts">紅色心</annotation>
<annotation cp="🧡">橙色 | 橙色心</annotation>
<annotation cp="🧡" type="tts">橙色心</annotation>
<annotation cp="💛">黃色 | 黃色心</annotation>
@@ -679,14 +679,14 @@
<annotation cp="👨" type="tts">男人</annotation>
<annotation cp="🧔">留鬚嘅人 | 鬚</annotation>
<annotation cp="🧔" type="tts">留鬚嘅人</annotation>
- <annotation cp="👱♂">男 | 金色頭髮 | 金色頭髮嘅男人</annotation>
- <annotation cp="👱♂" type="tts">金色頭髮嘅男人</annotation>
- <annotation cp="🧔♀">女人 | 女人:鬍鬚 | 鬍鬚</annotation>
- <annotation cp="🧔♀" type="tts">女人:鬍鬚</annotation>
<annotation cp="🧔♂">男人 | 男人:鬍鬚 | 鬍鬚</annotation>
<annotation cp="🧔♂" type="tts">男人:鬍鬚</annotation>
+ <annotation cp="👱♂">男 | 金色頭髮 | 金色頭髮嘅男人</annotation>
+ <annotation cp="👱♂" type="tts">金色頭髮嘅男人</annotation>
<annotation cp="👩">女人</annotation>
<annotation cp="👩" type="tts">女人</annotation>
+ <annotation cp="🧔♀">女人 | 女人:鬍鬚 | 鬍鬚</annotation>
+ <annotation cp="🧔♀" type="tts">女人:鬍鬚</annotation>
<annotation cp="👱♀">女 | 金色頭髮 | 金色頭髮嘅女人</annotation>
<annotation cp="👱♀" type="tts">金色頭髮嘅女人</annotation>
<annotation cp="🧓">中性 | 老人 | 老年</annotation>
diff --git a/common/annotations/yue_Hans.xml b/common/annotations/yue_Hans.xml
index b01ce5b..b1c58ee 100644
--- a/common/annotations/yue_Hans.xml
+++ b/common/annotations/yue_Hans.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -334,6 +334,8 @@
<annotation cp="🙄" type="tts">圆碌碌大眼嘅脸</annotation>
<annotation cp="😬">痛苦 | 痛苦嘅脸 | 脸</annotation>
<annotation cp="😬" type="tts">痛苦嘅脸</annotation>
+ <annotation cp="😮💨">叹气嘅脸 | 吹口哨 | 呻吟 | 呼气 | 喘气 | 松一口气 | 耳语</annotation>
+ <annotation cp="😮💨" type="tts">叹气嘅脸</annotation>
<annotation cp="🤥">木偶奇遇记 | 脸 | 讲大话 | 讲大话嘅脸</annotation>
<annotation cp="🤥" type="tts">讲大话嘅脸</annotation>
<annotation cp="😌">放松 | 放松嘅脸 | 脸</annotation>
@@ -392,8 +394,6 @@
<annotation cp="☹" type="tts">皱眉嘅脸</annotation>
<annotation cp="😮">同情 | 嘴 | 开口嘅脸 | 打开 | 脸</annotation>
<annotation cp="😮" type="tts">开口嘅脸</annotation>
- <annotation cp="😮💨">叹气嘅脸 | 吹口哨 | 呻吟 | 呼气 | 喘气 | 松一口气 | 耳语</annotation>
- <annotation cp="😮💨" type="tts">叹气嘅脸</annotation>
<annotation cp="😯">吓惊 | 惊讶 | 沉默 | 沉默嘅脸 | 脸</annotation>
<annotation cp="😯" type="tts">沉默嘅脸</annotation>
<annotation cp="😲">吓亲 | 完全 | 惊讶 | 惊讶嘅脸 | 脸</annotation>
@@ -512,12 +512,12 @@
<annotation cp="❣" type="tts">沉重嘅感叹嘅</annotation>
<annotation cp="💔">破碎 | 破碎嘅心 | 碎</annotation>
<annotation cp="💔" type="tts">破碎嘅心</annotation>
- <annotation cp="❤">心 | 红色心</annotation>
- <annotation cp="❤" type="tts">红色心</annotation>
<annotation cp="❤🔥">心 | 情欲 | 有疤痕嘅心 | 烧 | 烧紧嘅心 | 爱</annotation>
<annotation cp="❤🔥" type="tts">烧紧嘅心</annotation>
<annotation cp="❤🩹">修补 | 健康 | 包紥嘅心 | 复原紧 | 好 | 改善 | 疗伤</annotation>
<annotation cp="❤🩹" type="tts">包紥嘅心</annotation>
+ <annotation cp="❤">心 | 红色心</annotation>
+ <annotation cp="❤" type="tts">红色心</annotation>
<annotation cp="🧡">橙色 | 橙色心</annotation>
<annotation cp="🧡" type="tts">橙色心</annotation>
<annotation cp="💛">黄色 | 黄色心</annotation>
@@ -680,14 +680,14 @@
<annotation cp="👨" type="tts">男人</annotation>
<annotation cp="🧔">留须嘅人 | 须</annotation>
<annotation cp="🧔" type="tts">留须嘅人</annotation>
- <annotation cp="👱♂">男 | 金色头发 | 金色头发嘅男人</annotation>
- <annotation cp="👱♂" type="tts">金色头发嘅男人</annotation>
- <annotation cp="🧔♀">女人 | 女人:胡须 | 胡须</annotation>
- <annotation cp="🧔♀" type="tts">女人:胡须</annotation>
<annotation cp="🧔♂">男人 | 男人:胡须 | 胡须</annotation>
<annotation cp="🧔♂" type="tts">男人:胡须</annotation>
+ <annotation cp="👱♂">男 | 金色头发 | 金色头发嘅男人</annotation>
+ <annotation cp="👱♂" type="tts">金色头发嘅男人</annotation>
<annotation cp="👩">女人</annotation>
<annotation cp="👩" type="tts">女人</annotation>
+ <annotation cp="🧔♀">女人 | 女人:胡须 | 胡须</annotation>
+ <annotation cp="🧔♀" type="tts">女人:胡须</annotation>
<annotation cp="👱♀">女 | 金色头发 | 金色头发嘅女人</annotation>
<annotation cp="👱♀" type="tts">金色头发嘅女人</annotation>
<annotation cp="🧓">中性 | 老人 | 老年</annotation>
diff --git a/common/annotations/zh.xml b/common/annotations/zh.xml
index b7ca767..641d8db 100644
--- a/common/annotations/zh.xml
+++ b/common/annotations/zh.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -437,6 +437,8 @@
<annotation cp="🙄" type="tts">翻白眼</annotation>
<annotation cp="😬">咬牙切齿 | 脸 | 露齿 | 鬼脸 | 龇牙咧嘴</annotation>
<annotation cp="😬" type="tts">龇牙咧嘴</annotation>
+ <annotation cp="😮💨" draft="contributed">呼气</annotation>
+ <annotation cp="😮💨" type="tts" draft="contributed">呼气</annotation>
<annotation cp="🤥">匹诺曹 | 脸 | 说谎 | 长鼻子</annotation>
<annotation cp="🤥" type="tts">说谎</annotation>
<annotation cp="😌">如释重负 | 松了口气 | 松口气 | 脸</annotation>
@@ -495,8 +497,6 @@
<annotation cp="☹" type="tts">不满</annotation>
<annotation cp="😮">吃惊 | 同情 | 啊 | 脸</annotation>
<annotation cp="😮" type="tts">吃惊</annotation>
- <annotation cp="😮💨" draft="contributed">呼气</annotation>
- <annotation cp="😮💨" type="tts" draft="contributed">呼气</annotation>
<annotation cp="😯">吃惊 | 缄默 | 脸</annotation>
<annotation cp="😯" type="tts">缄默</annotation>
<annotation cp="😲">惊 | 惊讶 | 脸 | 震惊</annotation>
@@ -615,12 +615,12 @@
<annotation cp="❣" type="tts">心叹号</annotation>
<annotation cp="💔">伤心 | 心碎</annotation>
<annotation cp="💔" type="tts">心碎</annotation>
- <annotation cp="❤">心 | 爱 | 红心</annotation>
- <annotation cp="❤" type="tts">红心</annotation>
<annotation cp="❤🔥" draft="contributed">火上之心</annotation>
<annotation cp="❤🔥" type="tts" draft="contributed">火上之心</annotation>
<annotation cp="❤🩹" draft="contributed">修复受伤的心灵</annotation>
<annotation cp="❤🩹" type="tts" draft="contributed">修复受伤的心灵</annotation>
+ <annotation cp="❤">心 | 爱 | 红心</annotation>
+ <annotation cp="❤" type="tts">红心</annotation>
<annotation cp="🧡">橙 | 橙心</annotation>
<annotation cp="🧡" type="tts">橙心</annotation>
<annotation cp="💛">黄 | 黄心</annotation>
@@ -783,14 +783,14 @@
<annotation cp="👨" type="tts">男人</annotation>
<annotation cp="🧔">人 | 有胡子的人 | 男 | 络腮胡 | 胡子 | 胡须</annotation>
<annotation cp="🧔" type="tts">有胡子的人</annotation>
- <annotation cp="👱♂">男 | 金发 | 金发男</annotation>
- <annotation cp="👱♂" type="tts">金发男</annotation>
- <annotation cp="🧔♀">女人 | 有络腮胡子的女人 | 胡子</annotation>
- <annotation cp="🧔♀" type="tts">有络腮胡子的女人</annotation>
<annotation cp="🧔♂">有络腮胡子的男人 | 男人 | 胡子</annotation>
<annotation cp="🧔♂" type="tts">有络腮胡子的男人</annotation>
+ <annotation cp="👱♂">男 | 金发 | 金发男</annotation>
+ <annotation cp="👱♂" type="tts">金发男</annotation>
<annotation cp="👩">女 | 女人</annotation>
<annotation cp="👩" type="tts">女人</annotation>
+ <annotation cp="🧔♀">女人 | 有络腮胡子的女人 | 胡子</annotation>
+ <annotation cp="🧔♀" type="tts">有络腮胡子的女人</annotation>
<annotation cp="👱♀">女 | 金发 | 金发女</annotation>
<annotation cp="👱♀" type="tts">金发女</annotation>
<annotation cp="🧓">性别不明 | 性别中性 | 成人 | 老人 | 老年人</annotation>
diff --git a/common/annotations/zh_Hant.xml b/common/annotations/zh_Hant.xml
index f372978..b48d405 100644
--- a/common/annotations/zh_Hant.xml
+++ b/common/annotations/zh_Hant.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -502,6 +502,8 @@
<annotation cp="🙄" type="tts">翻白眼</annotation>
<annotation cp="😬">咬牙 | 咬牙切齒</annotation>
<annotation cp="😬" type="tts">咬牙</annotation>
+ <annotation cp="😮💨">倒抽一口氣 | 呻吟 | 鬆一口氣</annotation>
+ <annotation cp="😮💨" type="tts">鬆一口氣</annotation>
<annotation cp="🤥">小木偶 | 變 | 長 | 鼻 | 鼻子變長了</annotation>
<annotation cp="🤥" type="tts">鼻子變長了</annotation>
<annotation cp="😌">放鬆 | 鬆了口氣</annotation>
@@ -560,8 +562,6 @@
<annotation cp="☹" type="tts">不滿意</annotation>
<annotation cp="😮">啊 | 驚訝</annotation>
<annotation cp="😮" type="tts">驚訝</annotation>
- <annotation cp="😮💨">倒抽一口氣 | 呻吟 | 鬆一口氣</annotation>
- <annotation cp="😮💨" type="tts">鬆一口氣</annotation>
<annotation cp="😯">哦 | 驚訝</annotation>
<annotation cp="😯" type="tts">哦</annotation>
<annotation cp="😲">震驚 | 驚</annotation>
@@ -680,12 +680,12 @@
<annotation cp="❣" type="tts">心嘆號</annotation>
<annotation cp="💔">心碎 | 破碎的心</annotation>
<annotation cp="💔" type="tts">心碎</annotation>
- <annotation cp="❤">心型 | 愛心</annotation>
- <annotation cp="❤" type="tts">愛心</annotation>
<annotation cp="❤🔥">奉獻 | 心型 | 愛 | 慾望 | 火熱的心</annotation>
<annotation cp="❤🔥" type="tts">火熱的心</annotation>
<annotation cp="❤🩹">健康 | 恢復 | 療傷 | 療心</annotation>
<annotation cp="❤🩹" type="tts">療心</annotation>
+ <annotation cp="❤">心型 | 愛心</annotation>
+ <annotation cp="❤" type="tts">愛心</annotation>
<annotation cp="🧡">心型 | 橘心</annotation>
<annotation cp="🧡" type="tts">橘心</annotation>
<annotation cp="💛">心型 | 黃心</annotation>
@@ -848,14 +848,14 @@
<annotation cp="👨" type="tts">男人</annotation>
<annotation cp="🧔">蓄鬍的人</annotation>
<annotation cp="🧔" type="tts">蓄鬍的人</annotation>
- <annotation cp="👱♂">男 | 金髮 | 金髮男</annotation>
- <annotation cp="👱♂" type="tts">金髮男</annotation>
- <annotation cp="🧔♀">女人 | 女人: 蓄鬍的人 | 鬍子</annotation>
- <annotation cp="🧔♀" type="tts">女人: 蓄鬍的人</annotation>
<annotation cp="🧔♂">男人 | 男人: 蓄鬍的人 | 鬍子</annotation>
<annotation cp="🧔♂" type="tts">男人: 蓄鬍的人</annotation>
+ <annotation cp="👱♂">男 | 金髮 | 金髮男</annotation>
+ <annotation cp="👱♂" type="tts">金髮男</annotation>
<annotation cp="👩">女 | 女人 | 女性</annotation>
<annotation cp="👩" type="tts">女人</annotation>
+ <annotation cp="🧔♀">女人 | 女人: 蓄鬍的人 | 鬍子</annotation>
+ <annotation cp="🧔♀" type="tts">女人: 蓄鬍的人</annotation>
<annotation cp="👱♀">女 | 金髮 | 金髮女</annotation>
<annotation cp="👱♀" type="tts">金髮女</annotation>
<annotation cp="🧓">長者</annotation>
diff --git a/common/annotations/zh_Hant_HK.xml b/common/annotations/zh_Hant_HK.xml
index 6d66d98..c8936ce 100644
--- a/common/annotations/zh_Hant_HK.xml
+++ b/common/annotations/zh_Hant_HK.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -463,6 +463,8 @@
<annotation cp="🙄" type="tts">反白眼嘅表情</annotation>
<annotation cp="😬">依起棚牙 | 咬牙 | 咬牙切齒 | 繃緊</annotation>
<annotation cp="😬" type="tts">依起棚牙</annotation>
+ <annotation cp="😮💨" draft="contributed">↑↑↑</annotation>
+ <annotation cp="😮💨" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="🤥">講大話嘅表情 | 鼻子變長了</annotation>
<annotation cp="🤥" type="tts">↑↑↑</annotation>
<annotation cp="😌">放鬆 | 鬆了口氣</annotation>
@@ -521,8 +523,6 @@
<annotation cp="☹" type="tts">不滿意</annotation>
<annotation cp="😮">啊 | 擘大口嘅表情</annotation>
<annotation cp="😮" type="tts">擘大口嘅表情</annotation>
- <annotation cp="😮💨" draft="contributed">↑↑↑</annotation>
- <annotation cp="😮💨" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="😯">哦 | 驚訝嘅表情</annotation>
<annotation cp="😯" type="tts">驚訝嘅表情</annotation>
<annotation cp="😲">震驚 | 驚</annotation>
@@ -641,12 +641,12 @@
<annotation cp="❣" type="tts">↑↑↑</annotation>
<annotation cp="💔">↑↑↑</annotation>
<annotation cp="💔" type="tts">↑↑↑</annotation>
- <annotation cp="❤">↑↑↑</annotation>
- <annotation cp="❤" type="tts">↑↑↑</annotation>
<annotation cp="❤🔥" draft="contributed">↑↑↑</annotation>
<annotation cp="❤🔥" type="tts" draft="contributed">↑↑↑</annotation>
<annotation cp="❤🩹" draft="contributed">↑↑↑</annotation>
<annotation cp="❤🩹" type="tts" draft="contributed">↑↑↑</annotation>
+ <annotation cp="❤">↑↑↑</annotation>
+ <annotation cp="❤" type="tts">↑↑↑</annotation>
<annotation cp="🧡">心型 | 橙心</annotation>
<annotation cp="🧡" type="tts">橙心</annotation>
<annotation cp="💛">↑↑↑</annotation>
@@ -809,14 +809,14 @@
<annotation cp="👨" type="tts">↑↑↑</annotation>
<annotation cp="🧔">留鬚嘅人 | 鬍鬚 | 鬚</annotation>
<annotation cp="🧔" type="tts">留鬚嘅人</annotation>
- <annotation cp="👱♂">男 | 金髮 | 金髮男人</annotation>
- <annotation cp="👱♂" type="tts">金髮男人</annotation>
- <annotation cp="🧔♀" draft="contributed">↑↑↑</annotation>
- <annotation cp="🧔♀" type="tts">↑↑↑</annotation>
<annotation cp="🧔♂" draft="contributed">↑↑↑</annotation>
<annotation cp="🧔♂" type="tts">↑↑↑</annotation>
+ <annotation cp="👱♂">男 | 金髮 | 金髮男人</annotation>
+ <annotation cp="👱♂" type="tts">金髮男人</annotation>
<annotation cp="👩">↑↑↑</annotation>
<annotation cp="👩" type="tts">↑↑↑</annotation>
+ <annotation cp="🧔♀" draft="contributed">↑↑↑</annotation>
+ <annotation cp="🧔♀" type="tts">↑↑↑</annotation>
<annotation cp="👱♀">女 | 金髮 | 金髮女人</annotation>
<annotation cp="👱♀" type="tts">金髮女人</annotation>
<annotation cp="🧓">老人家 | 老年人 | 長者</annotation>
diff --git a/common/annotations/zu.xml b/common/annotations/zu.xml
index ac7230d..7ae82aa 100644
--- a/common/annotations/zu.xml
+++ b/common/annotations/zu.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -591,10 +591,10 @@
<annotation cp="❣" type="tts">isibabazi senhliziyo edangele</annotation>
<annotation cp="💔">aphukile | inhliziyo | inhliziyo eyaphukile | ukwaphuka</annotation>
<annotation cp="💔" type="tts">inhliziyo eyaphukile</annotation>
- <annotation cp="❤">inhliiziyo | inhliziyo ebomvu</annotation>
- <annotation cp="❤" type="tts">inhliziyo ebomvu</annotation>
<annotation cp="❤🔥">inhliziyo ebhakuzayo</annotation>
<annotation cp="❤🔥" type="tts">inhliziyo ebhakuzayo</annotation>
+ <annotation cp="❤">inhliiziyo | inhliziyo ebomvu</annotation>
+ <annotation cp="❤" type="tts">inhliziyo ebomvu</annotation>
<annotation cp="🧡">inhliziyo ewolintshi | wolintshi</annotation>
<annotation cp="🧡" type="tts">inhliziyo ewolintshi</annotation>
<annotation cp="💛">inhliziyo | inhliziyo eqanda | qanda</annotation>
diff --git a/common/annotationsDerived/nb.xml b/common/annotationsDerived/nb.xml
index cf28691..22e308d 100644
--- a/common/annotationsDerived/nb.xml
+++ b/common/annotationsDerived/nb.xml
@@ -5,4066 +5,9 @@
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
-->
-<!-- Derived short names and annotations, using GenerateDerivedAnnotations.java. See warnings in /annotations/ file. -->
<ldml>
<identity>
<version number="$Revision$"/>
<language type="nb"/>
</identity>
- <annotations>
- <annotation cp="👋🏻">hånd | hudtype 1–2 | vinke | vinkende hånd | vinking</annotation>
- <annotation cp="👋🏻" type="tts">vinkende hånd: hudtype 1–2</annotation>
- <annotation cp="👋🏼">hånd | hudtype 3 | vinke | vinkende hånd | vinking</annotation>
- <annotation cp="👋🏼" type="tts">vinkende hånd: hudtype 3</annotation>
- <annotation cp="👋🏽">hånd | hudtype 4 | vinke | vinkende hånd | vinking</annotation>
- <annotation cp="👋🏽" type="tts">vinkende hånd: hudtype 4</annotation>
- <annotation cp="👋🏾">hånd | hudtype 5 | vinke | vinkende hånd | vinking</annotation>
- <annotation cp="👋🏾" type="tts">vinkende hånd: hudtype 5</annotation>
- <annotation cp="👋🏿">hånd | hudtype 6 | vinke | vinkende hånd | vinking</annotation>
- <annotation cp="👋🏿" type="tts">vinkende hånd: hudtype 6</annotation>
- <annotation cp="🤚🏻">hånd | håndbak | hudtype 1–2 | løftet</annotation>
- <annotation cp="🤚🏻" type="tts">løftet håndbak: hudtype 1–2</annotation>
- <annotation cp="🤚🏼">hånd | håndbak | hudtype 3 | løftet</annotation>
- <annotation cp="🤚🏼" type="tts">løftet håndbak: hudtype 3</annotation>
- <annotation cp="🤚🏽">hånd | håndbak | hudtype 4 | løftet</annotation>
- <annotation cp="🤚🏽" type="tts">løftet håndbak: hudtype 4</annotation>
- <annotation cp="🤚🏾">hånd | håndbak | hudtype 5 | løftet</annotation>
- <annotation cp="🤚🏾" type="tts">løftet håndbak: hudtype 5</annotation>
- <annotation cp="🤚🏿">hånd | håndbak | hudtype 6 | løftet</annotation>
- <annotation cp="🤚🏿" type="tts">løftet håndbak: hudtype 6</annotation>
- <annotation cp="🖐🏻">finger | flat hånd med spredte fingre | hånd | hudtype 1–2 | spredt</annotation>
- <annotation cp="🖐🏻" type="tts">flat hånd med spredte fingre: hudtype 1–2</annotation>
- <annotation cp="🖐🏼">finger | flat hånd med spredte fingre | hånd | hudtype 3 | spredt</annotation>
- <annotation cp="🖐🏼" type="tts">flat hånd med spredte fingre: hudtype 3</annotation>
- <annotation cp="🖐🏽">finger | flat hånd med spredte fingre | hånd | hudtype 4 | spredt</annotation>
- <annotation cp="🖐🏽" type="tts">flat hånd med spredte fingre: hudtype 4</annotation>
- <annotation cp="🖐🏾">finger | flat hånd med spredte fingre | hånd | hudtype 5 | spredt</annotation>
- <annotation cp="🖐🏾" type="tts">flat hånd med spredte fingre: hudtype 5</annotation>
- <annotation cp="🖐🏿">finger | flat hånd med spredte fingre | hånd | hudtype 6 | spredt</annotation>
- <annotation cp="🖐🏿" type="tts">flat hånd med spredte fingre: hudtype 6</annotation>
- <annotation cp="✋🏻">flat hånd | håndflate | hevet hånd | hudtype 1–2</annotation>
- <annotation cp="✋🏻" type="tts">hevet hånd: hudtype 1–2</annotation>
- <annotation cp="✋🏼">flat hånd | håndflate | hevet hånd | hudtype 3</annotation>
- <annotation cp="✋🏼" type="tts">hevet hånd: hudtype 3</annotation>
- <annotation cp="✋🏽">flat hånd | håndflate | hevet hånd | hudtype 4</annotation>
- <annotation cp="✋🏽" type="tts">hevet hånd: hudtype 4</annotation>
- <annotation cp="✋🏾">flat hånd | håndflate | hevet hånd | hudtype 5</annotation>
- <annotation cp="✋🏾" type="tts">hevet hånd: hudtype 5</annotation>
- <annotation cp="✋🏿">flat hånd | håndflate | hevet hånd | hudtype 6</annotation>
- <annotation cp="✋🏿" type="tts">hevet hånd: hudtype 6</annotation>
- <annotation cp="🖖🏻">finger | hånd | hudtype 1–2 | spock | vulcan | Vulcan-hilsen</annotation>
- <annotation cp="🖖🏻" type="tts">Vulcan-hilsen: hudtype 1–2</annotation>
- <annotation cp="🖖🏼">finger | hånd | hudtype 3 | spock | vulcan | Vulcan-hilsen</annotation>
- <annotation cp="🖖🏼" type="tts">Vulcan-hilsen: hudtype 3</annotation>
- <annotation cp="🖖🏽">finger | hånd | hudtype 4 | spock | vulcan | Vulcan-hilsen</annotation>
- <annotation cp="🖖🏽" type="tts">Vulcan-hilsen: hudtype 4</annotation>
- <annotation cp="🖖🏾">finger | hånd | hudtype 5 | spock | vulcan | Vulcan-hilsen</annotation>
- <annotation cp="🖖🏾" type="tts">Vulcan-hilsen: hudtype 5</annotation>
- <annotation cp="🖖🏿">finger | hånd | hudtype 6 | spock | vulcan | Vulcan-hilsen</annotation>
- <annotation cp="🖖🏿" type="tts">Vulcan-hilsen: hudtype 6</annotation>
- <annotation cp="👌🏻">hånd | hudtype 1–2 | OK | OK-hånd | tegn</annotation>
- <annotation cp="👌🏻" type="tts">OK-hånd: hudtype 1–2</annotation>
- <annotation cp="👌🏼">hånd | hudtype 3 | OK | OK-hånd | tegn</annotation>
- <annotation cp="👌🏼" type="tts">OK-hånd: hudtype 3</annotation>
- <annotation cp="👌🏽">hånd | hudtype 4 | OK | OK-hånd | tegn</annotation>
- <annotation cp="👌🏽" type="tts">OK-hånd: hudtype 4</annotation>
- <annotation cp="👌🏾">hånd | hudtype 5 | OK | OK-hånd | tegn</annotation>
- <annotation cp="👌🏾" type="tts">OK-hånd: hudtype 5</annotation>
- <annotation cp="👌🏿">hånd | hudtype 6 | OK | OK-hånd | tegn</annotation>
- <annotation cp="👌🏿" type="tts">OK-hånd: hudtype 6</annotation>
- <annotation cp="🤌🏻">fingre | fingrene sammen | hånd | hånd med fingertuppene sammen | hudtype 1–2 | sarkastisk | spørsmål</annotation>
- <annotation cp="🤌🏻" type="tts">hånd med fingertuppene sammen: hudtype 1–2</annotation>
- <annotation cp="🤌🏼">fingre | fingrene sammen | hånd | hånd med fingertuppene sammen | hudtype 3 | sarkastisk | spørsmål</annotation>
- <annotation cp="🤌🏼" type="tts">hånd med fingertuppene sammen: hudtype 3</annotation>
- <annotation cp="🤌🏽">fingre | fingrene sammen | hånd | hånd med fingertuppene sammen | hudtype 4 | sarkastisk | spørsmål</annotation>
- <annotation cp="🤌🏽" type="tts">hånd med fingertuppene sammen: hudtype 4</annotation>
- <annotation cp="🤌🏾">fingre | fingrene sammen | hånd | hånd med fingertuppene sammen | hudtype 5 | sarkastisk | spørsmål</annotation>
- <annotation cp="🤌🏾" type="tts">hånd med fingertuppene sammen: hudtype 5</annotation>
- <annotation cp="🤌🏿">fingre | fingrene sammen | hånd | hånd med fingertuppene sammen | hudtype 6 | sarkastisk | spørsmål</annotation>
- <annotation cp="🤌🏿" type="tts">hånd med fingertuppene sammen: hudtype 6</annotation>
- <annotation cp="🤏🏻">hånd som klyper | hudtype 1–2 | lite | liten</annotation>
- <annotation cp="🤏🏻" type="tts">hånd som klyper: hudtype 1–2</annotation>
- <annotation cp="🤏🏼">hånd som klyper | hudtype 3 | lite | liten</annotation>
- <annotation cp="🤏🏼" type="tts">hånd som klyper: hudtype 3</annotation>
- <annotation cp="🤏🏽">hånd som klyper | hudtype 4 | lite | liten</annotation>
- <annotation cp="🤏🏽" type="tts">hånd som klyper: hudtype 4</annotation>
- <annotation cp="🤏🏾">hånd som klyper | hudtype 5 | lite | liten</annotation>
- <annotation cp="🤏🏾" type="tts">hånd som klyper: hudtype 5</annotation>
- <annotation cp="🤏🏿">hånd som klyper | hudtype 6 | lite | liten</annotation>
- <annotation cp="🤏🏿" type="tts">hånd som klyper: hudtype 6</annotation>
- <annotation cp="✌🏻">hånd | hudtype 1–2 | peace-tegn | seierstegn</annotation>
- <annotation cp="✌🏻" type="tts">seierstegn: hudtype 1–2</annotation>
- <annotation cp="✌🏼">hånd | hudtype 3 | peace-tegn | seierstegn</annotation>
- <annotation cp="✌🏼" type="tts">seierstegn: hudtype 3</annotation>
- <annotation cp="✌🏽">hånd | hudtype 4 | peace-tegn | seierstegn</annotation>
- <annotation cp="✌🏽" type="tts">seierstegn: hudtype 4</annotation>
- <annotation cp="✌🏾">hånd | hudtype 5 | peace-tegn | seierstegn</annotation>
- <annotation cp="✌🏾" type="tts">seierstegn: hudtype 5</annotation>
- <annotation cp="✌🏿">hånd | hudtype 6 | peace-tegn | seierstegn</annotation>
- <annotation cp="✌🏿" type="tts">seierstegn: hudtype 6</annotation>
- <annotation cp="🤞🏻">finger | hånd | hell | hudtype 1–2 | kryss | kryssede fingre</annotation>
- <annotation cp="🤞🏻" type="tts">kryssede fingre: hudtype 1–2</annotation>
- <annotation cp="🤞🏼">finger | hånd | hell | hudtype 3 | kryss | kryssede fingre</annotation>
- <annotation cp="🤞🏼" type="tts">kryssede fingre: hudtype 3</annotation>
- <annotation cp="🤞🏽">finger | hånd | hell | hudtype 4 | kryss | kryssede fingre</annotation>
- <annotation cp="🤞🏽" type="tts">kryssede fingre: hudtype 4</annotation>
- <annotation cp="🤞🏾">finger | hånd | hell | hudtype 5 | kryss | kryssede fingre</annotation>
- <annotation cp="🤞🏾" type="tts">kryssede fingre: hudtype 5</annotation>
- <annotation cp="🤞🏿">finger | hånd | hell | hudtype 6 | kryss | kryssede fingre</annotation>
- <annotation cp="🤞🏿" type="tts">kryssede fingre: hudtype 6</annotation>
- <annotation cp="🤟🏻">glad i deg | glad i deg-tegn | hånd | hudtype 1–2 | ILY | tegnspråk</annotation>
- <annotation cp="🤟🏻" type="tts">glad i deg-tegn: hudtype 1–2</annotation>
- <annotation cp="🤟🏼">glad i deg | glad i deg-tegn | hånd | hudtype 3 | ILY | tegnspråk</annotation>
- <annotation cp="🤟🏼" type="tts">glad i deg-tegn: hudtype 3</annotation>
- <annotation cp="🤟🏽">glad i deg | glad i deg-tegn | hånd | hudtype 4 | ILY | tegnspråk</annotation>
- <annotation cp="🤟🏽" type="tts">glad i deg-tegn: hudtype 4</annotation>
- <annotation cp="🤟🏾">glad i deg | glad i deg-tegn | hånd | hudtype 5 | ILY | tegnspråk</annotation>
- <annotation cp="🤟🏾" type="tts">glad i deg-tegn: hudtype 5</annotation>
- <annotation cp="🤟🏿">glad i deg | glad i deg-tegn | hånd | hudtype 6 | ILY | tegnspråk</annotation>
- <annotation cp="🤟🏿" type="tts">glad i deg-tegn: hudtype 6</annotation>
- <annotation cp="🤘🏻">finger | hånd | horn | hudtype 1–2 | rock’n’roll</annotation>
- <annotation cp="🤘🏻" type="tts">rock’n’roll: hudtype 1–2</annotation>
- <annotation cp="🤘🏼">finger | hånd | horn | hudtype 3 | rock’n’roll</annotation>
- <annotation cp="🤘🏼" type="tts">rock’n’roll: hudtype 3</annotation>
- <annotation cp="🤘🏽">finger | hånd | horn | hudtype 4 | rock’n’roll</annotation>
- <annotation cp="🤘🏽" type="tts">rock’n’roll: hudtype 4</annotation>
- <annotation cp="🤘🏾">finger | hånd | horn | hudtype 5 | rock’n’roll</annotation>
- <annotation cp="🤘🏾" type="tts">rock’n’roll: hudtype 5</annotation>
- <annotation cp="🤘🏿">finger | hånd | horn | hudtype 6 | rock’n’roll</annotation>
- <annotation cp="🤘🏿" type="tts">rock’n’roll: hudtype 6</annotation>
- <annotation cp="🤙🏻">hånd | hudtype 1–2 | ring meg-hånd | ringe</annotation>
- <annotation cp="🤙🏻" type="tts">ring meg-hånd: hudtype 1–2</annotation>
- <annotation cp="🤙🏼">hånd | hudtype 3 | ring meg-hånd | ringe</annotation>
- <annotation cp="🤙🏼" type="tts">ring meg-hånd: hudtype 3</annotation>
- <annotation cp="🤙🏽">hånd | hudtype 4 | ring meg-hånd | ringe</annotation>
- <annotation cp="🤙🏽" type="tts">ring meg-hånd: hudtype 4</annotation>
- <annotation cp="🤙🏾">hånd | hudtype 5 | ring meg-hånd | ringe</annotation>
- <annotation cp="🤙🏾" type="tts">ring meg-hånd: hudtype 5</annotation>
- <annotation cp="🤙🏿">hånd | hudtype 6 | ring meg-hånd | ringe</annotation>
- <annotation cp="🤙🏿" type="tts">ring meg-hånd: hudtype 6</annotation>
- <annotation cp="👈🏻">finger | hånd | hudtype 1–2 | pekende finger | peker mot venstre – bakhånd | peker venstre</annotation>
- <annotation cp="👈🏻" type="tts">peker mot venstre – bakhånd: hudtype 1–2</annotation>
- <annotation cp="👈🏼">finger | hånd | hudtype 3 | pekende finger | peker mot venstre – bakhånd | peker venstre</annotation>
- <annotation cp="👈🏼" type="tts">peker mot venstre – bakhånd: hudtype 3</annotation>
- <annotation cp="👈🏽">finger | hånd | hudtype 4 | pekende finger | peker mot venstre – bakhånd | peker venstre</annotation>
- <annotation cp="👈🏽" type="tts">peker mot venstre – bakhånd: hudtype 4</annotation>
- <annotation cp="👈🏾">finger | hånd | hudtype 5 | pekende finger | peker mot venstre – bakhånd | peker venstre</annotation>
- <annotation cp="👈🏾" type="tts">peker mot venstre – bakhånd: hudtype 5</annotation>
- <annotation cp="👈🏿">finger | hånd | hudtype 6 | pekende finger | peker mot venstre – bakhånd | peker venstre</annotation>
- <annotation cp="👈🏿" type="tts">peker mot venstre – bakhånd: hudtype 6</annotation>
- <annotation cp="👉🏻">finger | hånd | hudtype 1–2 | pekende finger | peker mot høyre – bakhånd | peker opp</annotation>
- <annotation cp="👉🏻" type="tts">peker mot høyre – bakhånd: hudtype 1–2</annotation>
- <annotation cp="👉🏼">finger | hånd | hudtype 3 | pekende finger | peker mot høyre – bakhånd | peker opp</annotation>
- <annotation cp="👉🏼" type="tts">peker mot høyre – bakhånd: hudtype 3</annotation>
- <annotation cp="👉🏽">finger | hånd | hudtype 4 | pekende finger | peker mot høyre – bakhånd | peker opp</annotation>
- <annotation cp="👉🏽" type="tts">peker mot høyre – bakhånd: hudtype 4</annotation>
- <annotation cp="👉🏾">finger | hånd | hudtype 5 | pekende finger | peker mot høyre – bakhånd | peker opp</annotation>
- <annotation cp="👉🏾" type="tts">peker mot høyre – bakhånd: hudtype 5</annotation>
- <annotation cp="👉🏿">finger | hånd | hudtype 6 | pekende finger | peker mot høyre – bakhånd | peker opp</annotation>
- <annotation cp="👉🏿" type="tts">peker mot høyre – bakhånd: hudtype 6</annotation>
- <annotation cp="👆🏻">finger | hånd | hudtype 1–2 | pekende finger | peker opp | peker opp – bakhånd</annotation>
- <annotation cp="👆🏻" type="tts">peker opp – bakhånd: hudtype 1–2</annotation>
- <annotation cp="👆🏼">finger | hånd | hudtype 3 | pekende finger | peker opp | peker opp – bakhånd</annotation>
- <annotation cp="👆🏼" type="tts">peker opp – bakhånd: hudtype 3</annotation>
- <annotation cp="👆🏽">finger | hånd | hudtype 4 | pekende finger | peker opp | peker opp – bakhånd</annotation>
- <annotation cp="👆🏽" type="tts">peker opp – bakhånd: hudtype 4</annotation>
- <annotation cp="👆🏾">finger | hånd | hudtype 5 | pekende finger | peker opp | peker opp – bakhånd</annotation>
- <annotation cp="👆🏾" type="tts">peker opp – bakhånd: hudtype 5</annotation>
- <annotation cp="👆🏿">finger | hånd | hudtype 6 | pekende finger | peker opp | peker opp – bakhånd</annotation>
- <annotation cp="👆🏿" type="tts">peker opp – bakhånd: hudtype 6</annotation>
- <annotation cp="🖕🏻">finger | hånd | hudtype 1–2 | kropp | langfinger | vise fingeren</annotation>
- <annotation cp="🖕🏻" type="tts">langfinger: hudtype 1–2</annotation>
- <annotation cp="🖕🏼">finger | hånd | hudtype 3 | kropp | langfinger | vise fingeren</annotation>
- <annotation cp="🖕🏼" type="tts">langfinger: hudtype 3</annotation>
- <annotation cp="🖕🏽">finger | hånd | hudtype 4 | kropp | langfinger | vise fingeren</annotation>
- <annotation cp="🖕🏽" type="tts">langfinger: hudtype 4</annotation>
- <annotation cp="🖕🏾">finger | hånd | hudtype 5 | kropp | langfinger | vise fingeren</annotation>
- <annotation cp="🖕🏾" type="tts">langfinger: hudtype 5</annotation>
- <annotation cp="🖕🏿">finger | hånd | hudtype 6 | kropp | langfinger | vise fingeren</annotation>
- <annotation cp="🖕🏿" type="tts">langfinger: hudtype 6</annotation>
- <annotation cp="👇🏻">finger | hånd | hudtype 1–2 | pekende finger | peker ned | peker ned – bakhånd</annotation>
- <annotation cp="👇🏻" type="tts">peker ned – bakhånd: hudtype 1–2</annotation>
- <annotation cp="👇🏼">finger | hånd | hudtype 3 | pekende finger | peker ned | peker ned – bakhånd</annotation>
- <annotation cp="👇🏼" type="tts">peker ned – bakhånd: hudtype 3</annotation>
- <annotation cp="👇🏽">finger | hånd | hudtype 4 | pekende finger | peker ned | peker ned – bakhånd</annotation>
- <annotation cp="👇🏽" type="tts">peker ned – bakhånd: hudtype 4</annotation>
- <annotation cp="👇🏾">finger | hånd | hudtype 5 | pekende finger | peker ned | peker ned – bakhånd</annotation>
- <annotation cp="👇🏾" type="tts">peker ned – bakhånd: hudtype 5</annotation>
- <annotation cp="👇🏿">finger | hånd | hudtype 6 | pekende finger | peker ned | peker ned – bakhånd</annotation>
- <annotation cp="👇🏿" type="tts">peker ned – bakhånd: hudtype 6</annotation>
- <annotation cp="☝🏻">finger | hånd | hudtype 1–2 | kropp | opp | peke | pekefinger | peker opp</annotation>
- <annotation cp="☝🏻" type="tts">peker opp: hudtype 1–2</annotation>
- <annotation cp="☝🏼">finger | hånd | hudtype 3 | kropp | opp | peke | pekefinger | peker opp</annotation>
- <annotation cp="☝🏼" type="tts">peker opp: hudtype 3</annotation>
- <annotation cp="☝🏽">finger | hånd | hudtype 4 | kropp | opp | peke | pekefinger | peker opp</annotation>
- <annotation cp="☝🏽" type="tts">peker opp: hudtype 4</annotation>
- <annotation cp="☝🏾">finger | hånd | hudtype 5 | kropp | opp | peke | pekefinger | peker opp</annotation>
- <annotation cp="☝🏾" type="tts">peker opp: hudtype 5</annotation>
- <annotation cp="☝🏿">finger | hånd | hudtype 6 | kropp | opp | peke | pekefinger | peker opp</annotation>
- <annotation cp="☝🏿" type="tts">peker opp: hudtype 6</annotation>
- <annotation cp="👍🏻">hånd | hudtype 1–2 | tegn | tommel | tommel opp</annotation>
- <annotation cp="👍🏻" type="tts">tommel opp: hudtype 1–2</annotation>
- <annotation cp="👍🏼">hånd | hudtype 3 | tegn | tommel | tommel opp</annotation>
- <annotation cp="👍🏼" type="tts">tommel opp: hudtype 3</annotation>
- <annotation cp="👍🏽">hånd | hudtype 4 | tegn | tommel | tommel opp</annotation>
- <annotation cp="👍🏽" type="tts">tommel opp: hudtype 4</annotation>
- <annotation cp="👍🏾">hånd | hudtype 5 | tegn | tommel | tommel opp</annotation>
- <annotation cp="👍🏾" type="tts">tommel opp: hudtype 5</annotation>
- <annotation cp="👍🏿">hånd | hudtype 6 | tegn | tommel | tommel opp</annotation>
- <annotation cp="👍🏿" type="tts">tommel opp: hudtype 6</annotation>
- <annotation cp="👎🏻">hånd | hudtype 1–2 | tegn | tommel | tommel ned</annotation>
- <annotation cp="👎🏻" type="tts">tommel ned: hudtype 1–2</annotation>
- <annotation cp="👎🏼">hånd | hudtype 3 | tegn | tommel | tommel ned</annotation>
- <annotation cp="👎🏼" type="tts">tommel ned: hudtype 3</annotation>
- <annotation cp="👎🏽">hånd | hudtype 4 | tegn | tommel | tommel ned</annotation>
- <annotation cp="👎🏽" type="tts">tommel ned: hudtype 4</annotation>
- <annotation cp="👎🏾">hånd | hudtype 5 | tegn | tommel | tommel ned</annotation>
- <annotation cp="👎🏾" type="tts">tommel ned: hudtype 5</annotation>
- <annotation cp="👎🏿">hånd | hudtype 6 | tegn | tommel | tommel ned</annotation>
- <annotation cp="👎🏿" type="tts">tommel ned: hudtype 6</annotation>
- <annotation cp="✊🏻">hånd | hevet knyttneve | hudtype 1–2 | knyttet neve | neve</annotation>
- <annotation cp="✊🏻" type="tts">hevet knyttneve: hudtype 1–2</annotation>
- <annotation cp="✊🏼">hånd | hevet knyttneve | hudtype 3 | knyttet neve | neve</annotation>
- <annotation cp="✊🏼" type="tts">hevet knyttneve: hudtype 3</annotation>
- <annotation cp="✊🏽">hånd | hevet knyttneve | hudtype 4 | knyttet neve | neve</annotation>
- <annotation cp="✊🏽" type="tts">hevet knyttneve: hudtype 4</annotation>
- <annotation cp="✊🏾">hånd | hevet knyttneve | hudtype 5 | knyttet neve | neve</annotation>
- <annotation cp="✊🏾" type="tts">hevet knyttneve: hudtype 5</annotation>
- <annotation cp="✊🏿">hånd | hevet knyttneve | hudtype 6 | knyttet neve | neve</annotation>
- <annotation cp="✊🏿" type="tts">hevet knyttneve: hudtype 6</annotation>
- <annotation cp="👊🏻">hånd | hudtype 1–2 | knyttneve | neve</annotation>
- <annotation cp="👊🏻" type="tts">knyttneve: hudtype 1–2</annotation>
- <annotation cp="👊🏼">hånd | hudtype 3 | knyttneve | neve</annotation>
- <annotation cp="👊🏼" type="tts">knyttneve: hudtype 3</annotation>
- <annotation cp="👊🏽">hånd | hudtype 4 | knyttneve | neve</annotation>
- <annotation cp="👊🏽" type="tts">knyttneve: hudtype 4</annotation>
- <annotation cp="👊🏾">hånd | hudtype 5 | knyttneve | neve</annotation>
- <annotation cp="👊🏾" type="tts">knyttneve: hudtype 5</annotation>
- <annotation cp="👊🏿">hånd | hudtype 6 | knyttneve | neve</annotation>
- <annotation cp="👊🏿" type="tts">knyttneve: hudtype 6</annotation>
- <annotation cp="🤛🏻">hånd | hudtype 1–2 | knyttneve mot venstre | neve | venstre | venstrevendt</annotation>
- <annotation cp="🤛🏻" type="tts">knyttneve mot venstre: hudtype 1–2</annotation>
- <annotation cp="🤛🏼">hånd | hudtype 3 | knyttneve mot venstre | neve | venstre | venstrevendt</annotation>
- <annotation cp="🤛🏼" type="tts">knyttneve mot venstre: hudtype 3</annotation>
- <annotation cp="🤛🏽">hånd | hudtype 4 | knyttneve mot venstre | neve | venstre | venstrevendt</annotation>
- <annotation cp="🤛🏽" type="tts">knyttneve mot venstre: hudtype 4</annotation>
- <annotation cp="🤛🏾">hånd | hudtype 5 | knyttneve mot venstre | neve | venstre | venstrevendt</annotation>
- <annotation cp="🤛🏾" type="tts">knyttneve mot venstre: hudtype 5</annotation>
- <annotation cp="🤛🏿">hånd | hudtype 6 | knyttneve mot venstre | neve | venstre | venstrevendt</annotation>
- <annotation cp="🤛🏿" type="tts">knyttneve mot venstre: hudtype 6</annotation>
- <annotation cp="🤜🏻">hånd | høyre | høyrevendt | hudtype 1–2 | knyttneve mot høyre | neve</annotation>
- <annotation cp="🤜🏻" type="tts">knyttneve mot høyre: hudtype 1–2</annotation>
- <annotation cp="🤜🏼">hånd | høyre | høyrevendt | hudtype 3 | knyttneve mot høyre | neve</annotation>
- <annotation cp="🤜🏼" type="tts">knyttneve mot høyre: hudtype 3</annotation>
- <annotation cp="🤜🏽">hånd | høyre | høyrevendt | hudtype 4 | knyttneve mot høyre | neve</annotation>
- <annotation cp="🤜🏽" type="tts">knyttneve mot høyre: hudtype 4</annotation>
- <annotation cp="🤜🏾">hånd | høyre | høyrevendt | hudtype 5 | knyttneve mot høyre | neve</annotation>
- <annotation cp="🤜🏾" type="tts">knyttneve mot høyre: hudtype 5</annotation>
- <annotation cp="🤜🏿">hånd | høyre | høyrevendt | hudtype 6 | knyttneve mot høyre | neve</annotation>
- <annotation cp="🤜🏿" type="tts">knyttneve mot høyre: hudtype 6</annotation>
- <annotation cp="👏🏻">hånd | hender | hudtype 1–2 | klappende hender | klapping</annotation>
- <annotation cp="👏🏻" type="tts">klappende hender: hudtype 1–2</annotation>
- <annotation cp="👏🏼">hånd | hender | hudtype 3 | klappende hender | klapping</annotation>
- <annotation cp="👏🏼" type="tts">klappende hender: hudtype 3</annotation>
- <annotation cp="👏🏽">hånd | hender | hudtype 4 | klappende hender | klapping</annotation>
- <annotation cp="👏🏽" type="tts">klappende hender: hudtype 4</annotation>
- <annotation cp="👏🏾">hånd | hender | hudtype 5 | klappende hender | klapping</annotation>
- <annotation cp="👏🏾" type="tts">klappende hender: hudtype 5</annotation>
- <annotation cp="👏🏿">hånd | hender | hudtype 6 | klappende hender | klapping</annotation>
- <annotation cp="👏🏿" type="tts">klappende hender: hudtype 6</annotation>
- <annotation cp="🙌🏻">begge hender | feirer | feiring | hånd | hevede hender | hudtype 1–2 | rekker begge armene i været</annotation>
- <annotation cp="🙌🏻" type="tts">hevede hender: hudtype 1–2</annotation>
- <annotation cp="🙌🏼">begge hender | feirer | feiring | hånd | hevede hender | hudtype 3 | rekker begge armene i været</annotation>
- <annotation cp="🙌🏼" type="tts">hevede hender: hudtype 3</annotation>
- <annotation cp="🙌🏽">begge hender | feirer | feiring | hånd | hevede hender | hudtype 4 | rekker begge armene i været</annotation>
- <annotation cp="🙌🏽" type="tts">hevede hender: hudtype 4</annotation>
- <annotation cp="🙌🏾">begge hender | feirer | feiring | hånd | hevede hender | hudtype 5 | rekker begge armene i været</annotation>
- <annotation cp="🙌🏾" type="tts">hevede hender: hudtype 5</annotation>
- <annotation cp="🙌🏿">begge hender | feirer | feiring | hånd | hevede hender | hudtype 6 | rekker begge armene i været</annotation>
- <annotation cp="🙌🏿" type="tts">hevede hender: hudtype 6</annotation>
- <annotation cp="👐🏻">åpne | hånd | hender | hudtype 1–2</annotation>
- <annotation cp="👐🏻" type="tts">åpne hender: hudtype 1–2</annotation>
- <annotation cp="👐🏼">åpne | hånd | hender | hudtype 3</annotation>
- <annotation cp="👐🏼" type="tts">åpne hender: hudtype 3</annotation>
- <annotation cp="👐🏽">åpne | hånd | hender | hudtype 4</annotation>
- <annotation cp="👐🏽" type="tts">åpne hender: hudtype 4</annotation>
- <annotation cp="👐🏾">åpne | hånd | hender | hudtype 5</annotation>
- <annotation cp="👐🏾" type="tts">åpne hender: hudtype 5</annotation>
- <annotation cp="👐🏿">åpne | hånd | hender | hudtype 6</annotation>
- <annotation cp="👐🏿" type="tts">åpne hender: hudtype 6</annotation>
- <annotation cp="🤲🏻">ber | bønn | hånd | håndflatene sammen | hudtype 1–2</annotation>
- <annotation cp="🤲🏻" type="tts">håndflatene sammen: hudtype 1–2</annotation>
- <annotation cp="🤲🏼">ber | bønn | hånd | håndflatene sammen | hudtype 3</annotation>
- <annotation cp="🤲🏼" type="tts">håndflatene sammen: hudtype 3</annotation>
- <annotation cp="🤲🏽">ber | bønn | hånd | håndflatene sammen | hudtype 4</annotation>
- <annotation cp="🤲🏽" type="tts">håndflatene sammen: hudtype 4</annotation>
- <annotation cp="🤲🏾">ber | bønn | hånd | håndflatene sammen | hudtype 5</annotation>
- <annotation cp="🤲🏾" type="tts">håndflatene sammen: hudtype 5</annotation>
- <annotation cp="🤲🏿">ber | bønn | hånd | håndflatene sammen | hudtype 6</annotation>
- <annotation cp="🤲🏿" type="tts">håndflatene sammen: hudtype 6</annotation>
- <annotation cp="🙏🏻">be | ber | bevegelse | bønn | foldede hender | hånd | hudtype 1–2</annotation>
- <annotation cp="🙏🏻" type="tts">foldede hender: hudtype 1–2</annotation>
- <annotation cp="🙏🏼">be | ber | bevegelse | bønn | foldede hender | hånd | hudtype 3</annotation>
- <annotation cp="🙏🏼" type="tts">foldede hender: hudtype 3</annotation>
- <annotation cp="🙏🏽">be | ber | bevegelse | bønn | foldede hender | hånd | hudtype 4</annotation>
- <annotation cp="🙏🏽" type="tts">foldede hender: hudtype 4</annotation>
- <annotation cp="🙏🏾">be | ber | bevegelse | bønn | foldede hender | hånd | hudtype 5</annotation>
- <annotation cp="🙏🏾" type="tts">foldede hender: hudtype 5</annotation>
- <annotation cp="🙏🏿">be | ber | bevegelse | bønn | foldede hender | hånd | hudtype 6</annotation>
- <annotation cp="🙏🏿" type="tts">foldede hender: hudtype 6</annotation>
- <annotation cp="✍🏻">hånd | hudtype 1–2 | kropp | skrive | skrivende hånd</annotation>
- <annotation cp="✍🏻" type="tts">skrivende hånd: hudtype 1–2</annotation>
- <annotation cp="✍🏼">hånd | hudtype 3 | kropp | skrive | skrivende hånd</annotation>
- <annotation cp="✍🏼" type="tts">skrivende hånd: hudtype 3</annotation>
- <annotation cp="✍🏽">hånd | hudtype 4 | kropp | skrive | skrivende hånd</annotation>
- <annotation cp="✍🏽" type="tts">skrivende hånd: hudtype 4</annotation>
- <annotation cp="✍🏾">hånd | hudtype 5 | kropp | skrive | skrivende hånd</annotation>
- <annotation cp="✍🏾" type="tts">skrivende hånd: hudtype 5</annotation>
- <annotation cp="✍🏿">hånd | hudtype 6 | kropp | skrive | skrivende hånd</annotation>
- <annotation cp="✍🏿" type="tts">skrivende hånd: hudtype 6</annotation>
- <annotation cp="💅🏻">hudtype 1–2 | kosmetikk | manikyr | negl | neglelakk</annotation>
- <annotation cp="💅🏻" type="tts">neglelakk: hudtype 1–2</annotation>
- <annotation cp="💅🏼">hudtype 3 | kosmetikk | manikyr | negl | neglelakk</annotation>
- <annotation cp="💅🏼" type="tts">neglelakk: hudtype 3</annotation>
- <annotation cp="💅🏽">hudtype 4 | kosmetikk | manikyr | negl | neglelakk</annotation>
- <annotation cp="💅🏽" type="tts">neglelakk: hudtype 4</annotation>
- <annotation cp="💅🏾">hudtype 5 | kosmetikk | manikyr | negl | neglelakk</annotation>
- <annotation cp="💅🏾" type="tts">neglelakk: hudtype 5</annotation>
- <annotation cp="💅🏿">hudtype 6 | kosmetikk | manikyr | negl | neglelakk</annotation>
- <annotation cp="💅🏿" type="tts">neglelakk: hudtype 6</annotation>
- <annotation cp="🤳🏻">hudtype 1–2 | kamera | selfie | telefon</annotation>
- <annotation cp="🤳🏻" type="tts">selfie: hudtype 1–2</annotation>
- <annotation cp="🤳🏼">hudtype 3 | kamera | selfie | telefon</annotation>
- <annotation cp="🤳🏼" type="tts">selfie: hudtype 3</annotation>
- <annotation cp="🤳🏽">hudtype 4 | kamera | selfie | telefon</annotation>
- <annotation cp="🤳🏽" type="tts">selfie: hudtype 4</annotation>
- <annotation cp="🤳🏾">hudtype 5 | kamera | selfie | telefon</annotation>
- <annotation cp="🤳🏾" type="tts">selfie: hudtype 5</annotation>
- <annotation cp="🤳🏿">hudtype 6 | kamera | selfie | telefon</annotation>
- <annotation cp="🤳🏿" type="tts">selfie: hudtype 6</annotation>
- <annotation cp="💪🏻">biceps | fleks | hudtype 1–2 | muskel | muskelfleksing | sterk | tegneserie</annotation>
- <annotation cp="💪🏻" type="tts">biceps: hudtype 1–2</annotation>
- <annotation cp="💪🏼">biceps | fleks | hudtype 3 | muskel | muskelfleksing | sterk | tegneserie</annotation>
- <annotation cp="💪🏼" type="tts">biceps: hudtype 3</annotation>
- <annotation cp="💪🏽">biceps | fleks | hudtype 4 | muskel | muskelfleksing | sterk | tegneserie</annotation>
- <annotation cp="💪🏽" type="tts">biceps: hudtype 4</annotation>
- <annotation cp="💪🏾">biceps | fleks | hudtype 5 | muskel | muskelfleksing | sterk | tegneserie</annotation>
- <annotation cp="💪🏾" type="tts">biceps: hudtype 5</annotation>
- <annotation cp="💪🏿">biceps | fleks | hudtype 6 | muskel | muskelfleksing | sterk | tegneserie</annotation>
- <annotation cp="💪🏿" type="tts">biceps: hudtype 6</annotation>
- <annotation cp="🦵🏻">bein | hudtype 1–2 | lem | sparke</annotation>
- <annotation cp="🦵🏻" type="tts">bein: hudtype 1–2</annotation>
- <annotation cp="🦵🏼">bein | hudtype 3 | lem | sparke</annotation>
- <annotation cp="🦵🏼" type="tts">bein: hudtype 3</annotation>
- <annotation cp="🦵🏽">bein | hudtype 4 | lem | sparke</annotation>
- <annotation cp="🦵🏽" type="tts">bein: hudtype 4</annotation>
- <annotation cp="🦵🏾">bein | hudtype 5 | lem | sparke</annotation>
- <annotation cp="🦵🏾" type="tts">bein: hudtype 5</annotation>
- <annotation cp="🦵🏿">bein | hudtype 6 | lem | sparke</annotation>
- <annotation cp="🦵🏿" type="tts">bein: hudtype 6</annotation>
- <annotation cp="🦶🏻">fot | hudtype 1–2 | sparke | tråkke</annotation>
- <annotation cp="🦶🏻" type="tts">fot: hudtype 1–2</annotation>
- <annotation cp="🦶🏼">fot | hudtype 3 | sparke | tråkke</annotation>
- <annotation cp="🦶🏼" type="tts">fot: hudtype 3</annotation>
- <annotation cp="🦶🏽">fot | hudtype 4 | sparke | tråkke</annotation>
- <annotation cp="🦶🏽" type="tts">fot: hudtype 4</annotation>
- <annotation cp="🦶🏾">fot | hudtype 5 | sparke | tråkke</annotation>
- <annotation cp="🦶🏾" type="tts">fot: hudtype 5</annotation>
- <annotation cp="🦶🏿">fot | hudtype 6 | sparke | tråkke</annotation>
- <annotation cp="🦶🏿" type="tts">fot: hudtype 6</annotation>
- <annotation cp="👂🏻">hudtype 1–2 | kropp | øre</annotation>
- <annotation cp="👂🏻" type="tts">øre: hudtype 1–2</annotation>
- <annotation cp="👂🏼">hudtype 3 | kropp | øre</annotation>
- <annotation cp="👂🏼" type="tts">øre: hudtype 3</annotation>
- <annotation cp="👂🏽">hudtype 4 | kropp | øre</annotation>
- <annotation cp="👂🏽" type="tts">øre: hudtype 4</annotation>
- <annotation cp="👂🏾">hudtype 5 | kropp | øre</annotation>
- <annotation cp="👂🏾" type="tts">øre: hudtype 5</annotation>
- <annotation cp="👂🏿">hudtype 6 | kropp | øre</annotation>
- <annotation cp="👂🏿" type="tts">øre: hudtype 6</annotation>
- <annotation cp="🦻🏻">hudtype 1–2 | øre med høreapparat | svak hørsel | tilgjengelighet</annotation>
- <annotation cp="🦻🏻" type="tts">øre med høreapparat: hudtype 1–2</annotation>
- <annotation cp="🦻🏼">hudtype 3 | øre med høreapparat | svak hørsel | tilgjengelighet</annotation>
- <annotation cp="🦻🏼" type="tts">øre med høreapparat: hudtype 3</annotation>
- <annotation cp="🦻🏽">hudtype 4 | øre med høreapparat | svak hørsel | tilgjengelighet</annotation>
- <annotation cp="🦻🏽" type="tts">øre med høreapparat: hudtype 4</annotation>
- <annotation cp="🦻🏾">hudtype 5 | øre med høreapparat | svak hørsel | tilgjengelighet</annotation>
- <annotation cp="🦻🏾" type="tts">øre med høreapparat: hudtype 5</annotation>
- <annotation cp="🦻🏿">hudtype 6 | øre med høreapparat | svak hørsel | tilgjengelighet</annotation>
- <annotation cp="🦻🏿" type="tts">øre med høreapparat: hudtype 6</annotation>
- <annotation cp="👃🏻">fjes | hudtype 1–2 | kropp | nese</annotation>
- <annotation cp="👃🏻" type="tts">nese: hudtype 1–2</annotation>
- <annotation cp="👃🏼">fjes | hudtype 3 | kropp | nese</annotation>
- <annotation cp="👃🏼" type="tts">nese: hudtype 3</annotation>
- <annotation cp="👃🏽">fjes | hudtype 4 | kropp | nese</annotation>
- <annotation cp="👃🏽" type="tts">nese: hudtype 4</annotation>
- <annotation cp="👃🏾">fjes | hudtype 5 | kropp | nese</annotation>
- <annotation cp="👃🏾" type="tts">nese: hudtype 5</annotation>
- <annotation cp="👃🏿">fjes | hudtype 6 | kropp | nese</annotation>
- <annotation cp="👃🏿" type="tts">nese: hudtype 6</annotation>
- <annotation cp="👶🏻">baby | hudtype 1–2 | menneske | ung</annotation>
- <annotation cp="👶🏻" type="tts">baby: hudtype 1–2</annotation>
- <annotation cp="👶🏼">baby | hudtype 3 | menneske | ung</annotation>
- <annotation cp="👶🏼" type="tts">baby: hudtype 3</annotation>
- <annotation cp="👶🏽">baby | hudtype 4 | menneske | ung</annotation>
- <annotation cp="👶🏽" type="tts">baby: hudtype 4</annotation>
- <annotation cp="👶🏾">baby | hudtype 5 | menneske | ung</annotation>
- <annotation cp="👶🏾" type="tts">baby: hudtype 5</annotation>
- <annotation cp="👶🏿">baby | hudtype 6 | menneske | ung</annotation>
- <annotation cp="👶🏿" type="tts">baby: hudtype 6</annotation>
- <annotation cp="🧒🏻">barn | hudtype 1–2 | kjønnsnøytral | menneske | ung</annotation>
- <annotation cp="🧒🏻" type="tts">barn: hudtype 1–2</annotation>
- <annotation cp="🧒🏼">barn | hudtype 3 | kjønnsnøytral | menneske | ung</annotation>
- <annotation cp="🧒🏼" type="tts">barn: hudtype 3</annotation>
- <annotation cp="🧒🏽">barn | hudtype 4 | kjønnsnøytral | menneske | ung</annotation>
- <annotation cp="🧒🏽" type="tts">barn: hudtype 4</annotation>
- <annotation cp="🧒🏾">barn | hudtype 5 | kjønnsnøytral | menneske | ung</annotation>
- <annotation cp="🧒🏾" type="tts">barn: hudtype 5</annotation>
- <annotation cp="🧒🏿">barn | hudtype 6 | kjønnsnøytral | menneske | ung</annotation>
- <annotation cp="🧒🏿" type="tts">barn: hudtype 6</annotation>
- <annotation cp="👦🏻">gutt | hudtype 1–2 | menneske | ung</annotation>
- <annotation cp="👦🏻" type="tts">gutt: hudtype 1–2</annotation>
- <annotation cp="👦🏼">gutt | hudtype 3 | menneske | ung</annotation>
- <annotation cp="👦🏼" type="tts">gutt: hudtype 3</annotation>
- <annotation cp="👦🏽">gutt | hudtype 4 | menneske | ung</annotation>
- <annotation cp="👦🏽" type="tts">gutt: hudtype 4</annotation>
- <annotation cp="👦🏾">gutt | hudtype 5 | menneske | ung</annotation>
- <annotation cp="👦🏾" type="tts">gutt: hudtype 5</annotation>
- <annotation cp="👦🏿">gutt | hudtype 6 | menneske | ung</annotation>
- <annotation cp="👦🏿" type="tts">gutt: hudtype 6</annotation>
- <annotation cp="👧🏻">hudtype 1–2 | jente | Jomfruen | menneske | stjernebilde | stjernetegn | ung</annotation>
- <annotation cp="👧🏻" type="tts">jente: hudtype 1–2</annotation>
- <annotation cp="👧🏼">hudtype 3 | jente | Jomfruen | menneske | stjernebilde | stjernetegn | ung</annotation>
- <annotation cp="👧🏼" type="tts">jente: hudtype 3</annotation>
- <annotation cp="👧🏽">hudtype 4 | jente | Jomfruen | menneske | stjernebilde | stjernetegn | ung</annotation>
- <annotation cp="👧🏽" type="tts">jente: hudtype 4</annotation>
- <annotation cp="👧🏾">hudtype 5 | jente | Jomfruen | menneske | stjernebilde | stjernetegn | ung</annotation>
- <annotation cp="👧🏾" type="tts">jente: hudtype 5</annotation>
- <annotation cp="👧🏿">hudtype 6 | jente | Jomfruen | menneske | stjernebilde | stjernetegn | ung</annotation>
- <annotation cp="👧🏿" type="tts">jente: hudtype 6</annotation>
- <annotation cp="🧑🏻">hudtype 1–2 | kjønnsnøytral | menneske | person | voksen</annotation>
- <annotation cp="🧑🏻" type="tts">voksen: hudtype 1–2</annotation>
- <annotation cp="🧑🏼">hudtype 3 | kjønnsnøytral | menneske | person | voksen</annotation>
- <annotation cp="🧑🏼" type="tts">voksen: hudtype 3</annotation>
- <annotation cp="🧑🏽">hudtype 4 | kjønnsnøytral | menneske | person | voksen</annotation>
- <annotation cp="🧑🏽" type="tts">voksen: hudtype 4</annotation>
- <annotation cp="🧑🏾">hudtype 5 | kjønnsnøytral | menneske | person | voksen</annotation>
- <annotation cp="🧑🏾" type="tts">voksen: hudtype 5</annotation>
- <annotation cp="🧑🏿">hudtype 6 | kjønnsnøytral | menneske | person | voksen</annotation>
- <annotation cp="🧑🏿" type="tts">voksen: hudtype 6</annotation>
- <annotation cp="👱🏻">blond | blond person | hår | hudtype 1–2 | menneske | Person: blond</annotation>
- <annotation cp="👱🏻" type="tts">Person: hudtype 1–2, blond</annotation>
- <annotation cp="👱🏼">blond | blond person | hår | hudtype 3 | menneske | Person: blond</annotation>
- <annotation cp="👱🏼" type="tts">Person: hudtype 3, blond</annotation>
- <annotation cp="👱🏽">blond | blond person | hår | hudtype 4 | menneske | Person: blond</annotation>
- <annotation cp="👱🏽" type="tts">Person: hudtype 4, blond</annotation>
- <annotation cp="👱🏾">blond | blond person | hår | hudtype 5 | menneske | Person: blond</annotation>
- <annotation cp="👱🏾" type="tts">Person: hudtype 5, blond</annotation>
- <annotation cp="👱🏿">blond | blond person | hår | hudtype 6 | menneske | Person: blond</annotation>
- <annotation cp="👱🏿" type="tts">Person: hudtype 6, blond</annotation>
- <annotation cp="🧑🏻❤💋🧑🏼">hudtype 1–2 | hudtype 3 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
- <annotation cp="🧑🏻❤💋🧑🏼" type="tts">kyss: voksen, voksen, hudtype 1–2, hudtype 3</annotation>
- <annotation cp="🧑🏻❤💋🧑🏽">hudtype 1–2 | hudtype 4 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
- <annotation cp="🧑🏻❤💋🧑🏽" type="tts">kyss: voksen, voksen, hudtype 1–2, hudtype 4</annotation>
- <annotation cp="🧑🏻❤💋🧑🏾">hudtype 1–2 | hudtype 5 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
- <annotation cp="🧑🏻❤💋🧑🏾" type="tts">kyss: voksen, voksen, hudtype 1–2, hudtype 5</annotation>
- <annotation cp="🧑🏻❤💋🧑🏿">hudtype 1–2 | hudtype 6 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
- <annotation cp="🧑🏻❤💋🧑🏿" type="tts">kyss: voksen, voksen, hudtype 1–2, hudtype 6</annotation>
- <annotation cp="🧑🏼❤💋🧑🏻">hudtype 1–2 | hudtype 3 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
- <annotation cp="🧑🏼❤💋🧑🏻" type="tts">kyss: voksen, voksen, hudtype 3, hudtype 1–2</annotation>
- <annotation cp="🧑🏼❤💋🧑🏽">hudtype 3 | hudtype 4 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
- <annotation cp="🧑🏼❤💋🧑🏽" type="tts">kyss: voksen, voksen, hudtype 3, hudtype 4</annotation>
- <annotation cp="🧑🏼❤💋🧑🏾">hudtype 3 | hudtype 5 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
- <annotation cp="🧑🏼❤💋🧑🏾" type="tts">kyss: voksen, voksen, hudtype 3, hudtype 5</annotation>
- <annotation cp="🧑🏼❤💋🧑🏿">hudtype 3 | hudtype 6 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
- <annotation cp="🧑🏼❤💋🧑🏿" type="tts">kyss: voksen, voksen, hudtype 3, hudtype 6</annotation>
- <annotation cp="🧑🏽❤💋🧑🏻">hudtype 1–2 | hudtype 4 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
- <annotation cp="🧑🏽❤💋🧑🏻" type="tts">kyss: voksen, voksen, hudtype 4, hudtype 1–2</annotation>
- <annotation cp="🧑🏽❤💋🧑🏼">hudtype 3 | hudtype 4 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
- <annotation cp="🧑🏽❤💋🧑🏼" type="tts">kyss: voksen, voksen, hudtype 4, hudtype 3</annotation>
- <annotation cp="🧑🏽❤💋🧑🏾">hudtype 4 | hudtype 5 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
- <annotation cp="🧑🏽❤💋🧑🏾" type="tts">kyss: voksen, voksen, hudtype 4, hudtype 5</annotation>
- <annotation cp="🧑🏽❤💋🧑🏿">hudtype 4 | hudtype 6 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
- <annotation cp="🧑🏽❤💋🧑🏿" type="tts">kyss: voksen, voksen, hudtype 4, hudtype 6</annotation>
- <annotation cp="🧑🏾❤💋🧑🏻">hudtype 1–2 | hudtype 5 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
- <annotation cp="🧑🏾❤💋🧑🏻" type="tts">kyss: voksen, voksen, hudtype 5, hudtype 1–2</annotation>
- <annotation cp="🧑🏾❤💋🧑🏼">hudtype 3 | hudtype 5 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
- <annotation cp="🧑🏾❤💋🧑🏼" type="tts">kyss: voksen, voksen, hudtype 5, hudtype 3</annotation>
- <annotation cp="🧑🏾❤💋🧑🏽">hudtype 4 | hudtype 5 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
- <annotation cp="🧑🏾❤💋🧑🏽" type="tts">kyss: voksen, voksen, hudtype 5, hudtype 4</annotation>
- <annotation cp="🧑🏾❤💋🧑🏿">hudtype 5 | hudtype 6 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
- <annotation cp="🧑🏾❤💋🧑🏿" type="tts">kyss: voksen, voksen, hudtype 5, hudtype 6</annotation>
- <annotation cp="🧑🏿❤💋🧑🏻">hudtype 1–2 | hudtype 6 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
- <annotation cp="🧑🏿❤💋🧑🏻" type="tts">kyss: voksen, voksen, hudtype 6, hudtype 1–2</annotation>
- <annotation cp="🧑🏿❤💋🧑🏼">hudtype 3 | hudtype 6 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
- <annotation cp="🧑🏿❤💋🧑🏼" type="tts">kyss: voksen, voksen, hudtype 6, hudtype 3</annotation>
- <annotation cp="🧑🏿❤💋🧑🏽">hudtype 4 | hudtype 6 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
- <annotation cp="🧑🏿❤💋🧑🏽" type="tts">kyss: voksen, voksen, hudtype 6, hudtype 4</annotation>
- <annotation cp="🧑🏿❤💋🧑🏾">hudtype 5 | hudtype 6 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
- <annotation cp="🧑🏿❤💋🧑🏾" type="tts">kyss: voksen, voksen, hudtype 6, hudtype 5</annotation>
- <annotation cp="🧑🏻❤🧑🏼">hjerte | hudtype 1–2 | hudtype 3 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
- <annotation cp="🧑🏻❤🧑🏼" type="tts">par med hjerte: voksen, voksen, hudtype 1–2, hudtype 3</annotation>
- <annotation cp="🧑🏻❤🧑🏽">hjerte | hudtype 1–2 | hudtype 4 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
- <annotation cp="🧑🏻❤🧑🏽" type="tts">par med hjerte: voksen, voksen, hudtype 1–2, hudtype 4</annotation>
- <annotation cp="🧑🏻❤🧑🏾">hjerte | hudtype 1–2 | hudtype 5 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
- <annotation cp="🧑🏻❤🧑🏾" type="tts">par med hjerte: voksen, voksen, hudtype 1–2, hudtype 5</annotation>
- <annotation cp="🧑🏻❤🧑🏿">hjerte | hudtype 1–2 | hudtype 6 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
- <annotation cp="🧑🏻❤🧑🏿" type="tts">par med hjerte: voksen, voksen, hudtype 1–2, hudtype 6</annotation>
- <annotation cp="🧑🏼❤🧑🏻">hjerte | hudtype 1–2 | hudtype 3 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
- <annotation cp="🧑🏼❤🧑🏻" type="tts">par med hjerte: voksen, voksen, hudtype 3, hudtype 1–2</annotation>
- <annotation cp="🧑🏼❤🧑🏽">hjerte | hudtype 3 | hudtype 4 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
- <annotation cp="🧑🏼❤🧑🏽" type="tts">par med hjerte: voksen, voksen, hudtype 3, hudtype 4</annotation>
- <annotation cp="🧑🏼❤🧑🏾">hjerte | hudtype 3 | hudtype 5 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
- <annotation cp="🧑🏼❤🧑🏾" type="tts">par med hjerte: voksen, voksen, hudtype 3, hudtype 5</annotation>
- <annotation cp="🧑🏼❤🧑🏿">hjerte | hudtype 3 | hudtype 6 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
- <annotation cp="🧑🏼❤🧑🏿" type="tts">par med hjerte: voksen, voksen, hudtype 3, hudtype 6</annotation>
- <annotation cp="🧑🏽❤🧑🏻">hjerte | hudtype 1–2 | hudtype 4 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
- <annotation cp="🧑🏽❤🧑🏻" type="tts">par med hjerte: voksen, voksen, hudtype 4, hudtype 1–2</annotation>
- <annotation cp="🧑🏽❤🧑🏼">hjerte | hudtype 3 | hudtype 4 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
- <annotation cp="🧑🏽❤🧑🏼" type="tts">par med hjerte: voksen, voksen, hudtype 4, hudtype 3</annotation>
- <annotation cp="🧑🏽❤🧑🏾">hjerte | hudtype 4 | hudtype 5 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
- <annotation cp="🧑🏽❤🧑🏾" type="tts">par med hjerte: voksen, voksen, hudtype 4, hudtype 5</annotation>
- <annotation cp="🧑🏽❤🧑🏿">hjerte | hudtype 4 | hudtype 6 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
- <annotation cp="🧑🏽❤🧑🏿" type="tts">par med hjerte: voksen, voksen, hudtype 4, hudtype 6</annotation>
- <annotation cp="🧑🏾❤🧑🏻">hjerte | hudtype 1–2 | hudtype 5 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
- <annotation cp="🧑🏾❤🧑🏻" type="tts">par med hjerte: voksen, voksen, hudtype 5, hudtype 1–2</annotation>
- <annotation cp="🧑🏾❤🧑🏼">hjerte | hudtype 3 | hudtype 5 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
- <annotation cp="🧑🏾❤🧑🏼" type="tts">par med hjerte: voksen, voksen, hudtype 5, hudtype 3</annotation>
- <annotation cp="🧑🏾❤🧑🏽">hjerte | hudtype 4 | hudtype 5 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
- <annotation cp="🧑🏾❤🧑🏽" type="tts">par med hjerte: voksen, voksen, hudtype 5, hudtype 4</annotation>
- <annotation cp="🧑🏾❤🧑🏿">hjerte | hudtype 5 | hudtype 6 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
- <annotation cp="🧑🏾❤🧑🏿" type="tts">par med hjerte: voksen, voksen, hudtype 5, hudtype 6</annotation>
- <annotation cp="🧑🏿❤🧑🏻">hjerte | hudtype 1–2 | hudtype 6 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
- <annotation cp="🧑🏿❤🧑🏻" type="tts">par med hjerte: voksen, voksen, hudtype 6, hudtype 1–2</annotation>
- <annotation cp="🧑🏿❤🧑🏼">hjerte | hudtype 3 | hudtype 6 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
- <annotation cp="🧑🏿❤🧑🏼" type="tts">par med hjerte: voksen, voksen, hudtype 6, hudtype 3</annotation>
- <annotation cp="🧑🏿❤🧑🏽">hjerte | hudtype 4 | hudtype 6 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
- <annotation cp="🧑🏿❤🧑🏽" type="tts">par med hjerte: voksen, voksen, hudtype 6, hudtype 4</annotation>
- <annotation cp="🧑🏿❤🧑🏾">hjerte | hudtype 5 | hudtype 6 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
- <annotation cp="🧑🏿❤🧑🏾" type="tts">par med hjerte: voksen, voksen, hudtype 6, hudtype 5</annotation>
- <annotation cp="🧑🦰">kjønnsnøytral | menneske | person | rødt hår | voksen</annotation>
- <annotation cp="🧑🦰" type="tts">voksen: rødt hår</annotation>
- <annotation cp="🧑🏻🦰">hudtype 1–2 | kjønnsnøytral | menneske | person | rødt hår | voksen</annotation>
- <annotation cp="🧑🏻🦰" type="tts">voksen: hudtype 1–2, rødt hår</annotation>
- <annotation cp="🧑🏼🦰">hudtype 3 | kjønnsnøytral | menneske | person | rødt hår | voksen</annotation>
- <annotation cp="🧑🏼🦰" type="tts">voksen: hudtype 3, rødt hår</annotation>
- <annotation cp="🧑🏽🦰">hudtype 4 | kjønnsnøytral | menneske | person | rødt hår | voksen</annotation>
- <annotation cp="🧑🏽🦰" type="tts">voksen: hudtype 4, rødt hår</annotation>
- <annotation cp="🧑🏾🦰">hudtype 5 | kjønnsnøytral | menneske | person | rødt hår | voksen</annotation>
- <annotation cp="🧑🏾🦰" type="tts">voksen: hudtype 5, rødt hår</annotation>
- <annotation cp="🧑🏿🦰">hudtype 6 | kjønnsnøytral | menneske | person | rødt hår | voksen</annotation>
- <annotation cp="🧑🏿🦰" type="tts">voksen: hudtype 6, rødt hår</annotation>
- <annotation cp="🧑🦱">kjønnsnøytral | kruset hår | menneske | person | voksen</annotation>
- <annotation cp="🧑🦱" type="tts">voksen: kruset hår</annotation>
- <annotation cp="🧑🏻🦱">hudtype 1–2 | kjønnsnøytral | kruset hår | menneske | person | voksen</annotation>
- <annotation cp="🧑🏻🦱" type="tts">voksen: hudtype 1–2, kruset hår</annotation>
- <annotation cp="🧑🏼🦱">hudtype 3 | kjønnsnøytral | kruset hår | menneske | person | voksen</annotation>
- <annotation cp="🧑🏼🦱" type="tts">voksen: hudtype 3, kruset hår</annotation>
- <annotation cp="🧑🏽🦱">hudtype 4 | kjønnsnøytral | kruset hår | menneske | person | voksen</annotation>
- <annotation cp="🧑🏽🦱" type="tts">voksen: hudtype 4, kruset hår</annotation>
- <annotation cp="🧑🏾🦱">hudtype 5 | kjønnsnøytral | kruset hår | menneske | person | voksen</annotation>
- <annotation cp="🧑🏾🦱" type="tts">voksen: hudtype 5, kruset hår</annotation>
- <annotation cp="🧑🏿🦱">hudtype 6 | kjønnsnøytral | kruset hår | menneske | person | voksen</annotation>
- <annotation cp="🧑🏿🦱" type="tts">voksen: hudtype 6, kruset hår</annotation>
- <annotation cp="🧑🦳">grått hår | kjønnsnøytral | menneske | person | voksen</annotation>
- <annotation cp="🧑🦳" type="tts">voksen: grått hår</annotation>
- <annotation cp="🧑🏻🦳">grått hår | hudtype 1–2 | kjønnsnøytral | menneske | person | voksen</annotation>
- <annotation cp="🧑🏻🦳" type="tts">voksen: hudtype 1–2, grått hår</annotation>
- <annotation cp="🧑🏼🦳">grått hår | hudtype 3 | kjønnsnøytral | menneske | person | voksen</annotation>
- <annotation cp="🧑🏼🦳" type="tts">voksen: hudtype 3, grått hår</annotation>
- <annotation cp="🧑🏽🦳">grått hår | hudtype 4 | kjønnsnøytral | menneske | person | voksen</annotation>
- <annotation cp="🧑🏽🦳" type="tts">voksen: hudtype 4, grått hår</annotation>
- <annotation cp="🧑🏾🦳">grått hår | hudtype 5 | kjønnsnøytral | menneske | person | voksen</annotation>
- <annotation cp="🧑🏾🦳" type="tts">voksen: hudtype 5, grått hår</annotation>
- <annotation cp="🧑🏿🦳">grått hår | hudtype 6 | kjønnsnøytral | menneske | person | voksen</annotation>
- <annotation cp="🧑🏿🦳" type="tts">voksen: hudtype 6, grått hår</annotation>
- <annotation cp="🧑🦲">kjønnsnøytral | menneske | person | skallet | voksen</annotation>
- <annotation cp="🧑🦲" type="tts">voksen: skallet</annotation>
- <annotation cp="🧑🏻🦲">hudtype 1–2 | kjønnsnøytral | menneske | person | skallet | voksen</annotation>
- <annotation cp="🧑🏻🦲" type="tts">voksen: hudtype 1–2, skallet</annotation>
- <annotation cp="🧑🏼🦲">hudtype 3 | kjønnsnøytral | menneske | person | skallet | voksen</annotation>
- <annotation cp="🧑🏼🦲" type="tts">voksen: hudtype 3, skallet</annotation>
- <annotation cp="🧑🏽🦲">hudtype 4 | kjønnsnøytral | menneske | person | skallet | voksen</annotation>
- <annotation cp="🧑🏽🦲" type="tts">voksen: hudtype 4, skallet</annotation>
- <annotation cp="🧑🏾🦲">hudtype 5 | kjønnsnøytral | menneske | person | skallet | voksen</annotation>
- <annotation cp="🧑🏾🦲" type="tts">voksen: hudtype 5, skallet</annotation>
- <annotation cp="🧑🏿🦲">hudtype 6 | kjønnsnøytral | menneske | person | skallet | voksen</annotation>
- <annotation cp="🧑🏿🦲" type="tts">voksen: hudtype 6, skallet</annotation>
- <annotation cp="👨🏻">hudtype 1–2 | mann | menneske | voksen</annotation>
- <annotation cp="👨🏻" type="tts">mann: hudtype 1–2</annotation>
- <annotation cp="👨🏼">hudtype 3 | mann | menneske | voksen</annotation>
- <annotation cp="👨🏼" type="tts">mann: hudtype 3</annotation>
- <annotation cp="👨🏽">hudtype 4 | mann | menneske | voksen</annotation>
- <annotation cp="👨🏽" type="tts">mann: hudtype 4</annotation>
- <annotation cp="👨🏾">hudtype 5 | mann | menneske | voksen</annotation>
- <annotation cp="👨🏾" type="tts">mann: hudtype 5</annotation>
- <annotation cp="👨🏿">hudtype 6 | mann | menneske | voksen</annotation>
- <annotation cp="👨🏿" type="tts">mann: hudtype 6</annotation>
- <annotation cp="🧔🏻">hudtype 1–2 | mann | mann med skjegg | mann: skjegg | person | person: skjegg | skjegg</annotation>
- <annotation cp="🧔🏻" type="tts">person: hudtype 1–2, skjegg</annotation>
- <annotation cp="🧔🏼">hudtype 3 | mann | mann med skjegg | mann: skjegg | person | person: skjegg | skjegg</annotation>
- <annotation cp="🧔🏼" type="tts">person: hudtype 3, skjegg</annotation>
- <annotation cp="🧔🏽">hudtype 4 | mann | mann med skjegg | mann: skjegg | person | person: skjegg | skjegg</annotation>
- <annotation cp="🧔🏽" type="tts">person: hudtype 4, skjegg</annotation>
- <annotation cp="🧔🏾">hudtype 5 | mann | mann med skjegg | mann: skjegg | person | person: skjegg | skjegg</annotation>
- <annotation cp="🧔🏾" type="tts">person: hudtype 5, skjegg</annotation>
- <annotation cp="🧔🏿">hudtype 6 | mann | mann med skjegg | mann: skjegg | person | person: skjegg | skjegg</annotation>
- <annotation cp="🧔🏿" type="tts">person: hudtype 6, skjegg</annotation>
- <annotation cp="🧔🏻♂">hudtype 1–2 | mann | mann: skjegg | skjegg</annotation>
- <annotation cp="🧔🏻♂" type="tts">mann: hudtype 1–2, skjegg</annotation>
- <annotation cp="🧔🏼♂">hudtype 3 | mann | mann: skjegg | skjegg</annotation>
- <annotation cp="🧔🏼♂" type="tts">mann: hudtype 3, skjegg</annotation>
- <annotation cp="🧔🏽♂">hudtype 4 | mann | mann: skjegg | skjegg</annotation>
- <annotation cp="🧔🏽♂" type="tts">mann: hudtype 4, skjegg</annotation>
- <annotation cp="🧔🏾♂">hudtype 5 | mann | mann: skjegg | skjegg</annotation>
- <annotation cp="🧔🏾♂" type="tts">mann: hudtype 5, skjegg</annotation>
- <annotation cp="🧔🏿♂">hudtype 6 | mann | mann: skjegg | skjegg</annotation>
- <annotation cp="🧔🏿♂" type="tts">mann: hudtype 6, skjegg</annotation>
- <annotation cp="👱🏻♂">blond | hår | hudtype 1–2 | mann | mann: blond</annotation>
- <annotation cp="👱🏻♂" type="tts">mann: hudtype 1–2, blond</annotation>
- <annotation cp="👱🏼♂">blond | hår | hudtype 3 | mann | mann: blond</annotation>
- <annotation cp="👱🏼♂" type="tts">mann: hudtype 3, blond</annotation>
- <annotation cp="👱🏽♂">blond | hår | hudtype 4 | mann | mann: blond</annotation>
- <annotation cp="👱🏽♂" type="tts">mann: hudtype 4, blond</annotation>
- <annotation cp="👱🏾♂">blond | hår | hudtype 5 | mann | mann: blond</annotation>
- <annotation cp="👱🏾♂" type="tts">mann: hudtype 5, blond</annotation>
- <annotation cp="👱🏿♂">blond | hår | hudtype 6 | mann | mann: blond</annotation>
- <annotation cp="👱🏿♂" type="tts">mann: hudtype 6, blond</annotation>
- <annotation cp="👨🏻❤💋👨🏻">hudtype 1–2 | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👨🏻❤💋👨🏻" type="tts">kyss: mann, mann, hudtype 1–2</annotation>
- <annotation cp="👨🏻❤💋👨🏼">hudtype 1–2 | hudtype 3 | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👨🏻❤💋👨🏼" type="tts">kyss: mann, mann, hudtype 1–2, hudtype 3</annotation>
- <annotation cp="👨🏻❤💋👨🏽">hudtype 1–2 | hudtype 4 | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👨🏻❤💋👨🏽" type="tts">kyss: mann, mann, hudtype 1–2, hudtype 4</annotation>
- <annotation cp="👨🏻❤💋👨🏾">hudtype 1–2 | hudtype 5 | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👨🏻❤💋👨🏾" type="tts">kyss: mann, mann, hudtype 1–2, hudtype 5</annotation>
- <annotation cp="👨🏻❤💋👨🏿">hudtype 1–2 | hudtype 6 | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👨🏻❤💋👨🏿" type="tts">kyss: mann, mann, hudtype 1–2, hudtype 6</annotation>
- <annotation cp="👨🏼❤💋👨🏻">hudtype 1–2 | hudtype 3 | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👨🏼❤💋👨🏻" type="tts">kyss: mann, mann, hudtype 3, hudtype 1–2</annotation>
- <annotation cp="👨🏼❤💋👨🏼">hudtype 3 | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👨🏼❤💋👨🏼" type="tts">kyss: mann, mann, hudtype 3</annotation>
- <annotation cp="👨🏼❤💋👨🏽">hudtype 3 | hudtype 4 | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👨🏼❤💋👨🏽" type="tts">kyss: mann, mann, hudtype 3, hudtype 4</annotation>
- <annotation cp="👨🏼❤💋👨🏾">hudtype 3 | hudtype 5 | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👨🏼❤💋👨🏾" type="tts">kyss: mann, mann, hudtype 3, hudtype 5</annotation>
- <annotation cp="👨🏼❤💋👨🏿">hudtype 3 | hudtype 6 | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👨🏼❤💋👨🏿" type="tts">kyss: mann, mann, hudtype 3, hudtype 6</annotation>
- <annotation cp="👨🏽❤💋👨🏻">hudtype 1–2 | hudtype 4 | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👨🏽❤💋👨🏻" type="tts">kyss: mann, mann, hudtype 4, hudtype 1–2</annotation>
- <annotation cp="👨🏽❤💋👨🏼">hudtype 3 | hudtype 4 | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👨🏽❤💋👨🏼" type="tts">kyss: mann, mann, hudtype 4, hudtype 3</annotation>
- <annotation cp="👨🏽❤💋👨🏽">hudtype 4 | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👨🏽❤💋👨🏽" type="tts">kyss: mann, mann, hudtype 4</annotation>
- <annotation cp="👨🏽❤💋👨🏾">hudtype 4 | hudtype 5 | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👨🏽❤💋👨🏾" type="tts">kyss: mann, mann, hudtype 4, hudtype 5</annotation>
- <annotation cp="👨🏽❤💋👨🏿">hudtype 4 | hudtype 6 | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👨🏽❤💋👨🏿" type="tts">kyss: mann, mann, hudtype 4, hudtype 6</annotation>
- <annotation cp="👨🏾❤💋👨🏻">hudtype 1–2 | hudtype 5 | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👨🏾❤💋👨🏻" type="tts">kyss: mann, mann, hudtype 5, hudtype 1–2</annotation>
- <annotation cp="👨🏾❤💋👨🏼">hudtype 3 | hudtype 5 | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👨🏾❤💋👨🏼" type="tts">kyss: mann, mann, hudtype 5, hudtype 3</annotation>
- <annotation cp="👨🏾❤💋👨🏽">hudtype 4 | hudtype 5 | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👨🏾❤💋👨🏽" type="tts">kyss: mann, mann, hudtype 5, hudtype 4</annotation>
- <annotation cp="👨🏾❤💋👨🏾">hudtype 5 | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👨🏾❤💋👨🏾" type="tts">kyss: mann, mann, hudtype 5</annotation>
- <annotation cp="👨🏾❤💋👨🏿">hudtype 5 | hudtype 6 | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👨🏾❤💋👨🏿" type="tts">kyss: mann, mann, hudtype 5, hudtype 6</annotation>
- <annotation cp="👨🏿❤💋👨🏻">hudtype 1–2 | hudtype 6 | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👨🏿❤💋👨🏻" type="tts">kyss: mann, mann, hudtype 6, hudtype 1–2</annotation>
- <annotation cp="👨🏿❤💋👨🏼">hudtype 3 | hudtype 6 | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👨🏿❤💋👨🏼" type="tts">kyss: mann, mann, hudtype 6, hudtype 3</annotation>
- <annotation cp="👨🏿❤💋👨🏽">hudtype 4 | hudtype 6 | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👨🏿❤💋👨🏽" type="tts">kyss: mann, mann, hudtype 6, hudtype 4</annotation>
- <annotation cp="👨🏿❤💋👨🏾">hudtype 5 | hudtype 6 | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👨🏿❤💋👨🏾" type="tts">kyss: mann, mann, hudtype 6, hudtype 5</annotation>
- <annotation cp="👨🏿❤💋👨🏿">hudtype 6 | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👨🏿❤💋👨🏿" type="tts">kyss: mann, mann, hudtype 6</annotation>
- <annotation cp="👨🏻❤👨🏻">hjerte | hudtype 1–2 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👨🏻❤👨🏻" type="tts">par med hjerte: mann, mann, hudtype 1–2</annotation>
- <annotation cp="👨🏻❤👨🏼">hjerte | hudtype 1–2 | hudtype 3 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👨🏻❤👨🏼" type="tts">par med hjerte: mann, mann, hudtype 1–2, hudtype 3</annotation>
- <annotation cp="👨🏻❤👨🏽">hjerte | hudtype 1–2 | hudtype 4 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👨🏻❤👨🏽" type="tts">par med hjerte: mann, mann, hudtype 1–2, hudtype 4</annotation>
- <annotation cp="👨🏻❤👨🏾">hjerte | hudtype 1–2 | hudtype 5 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👨🏻❤👨🏾" type="tts">par med hjerte: mann, mann, hudtype 1–2, hudtype 5</annotation>
- <annotation cp="👨🏻❤👨🏿">hjerte | hudtype 1–2 | hudtype 6 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👨🏻❤👨🏿" type="tts">par med hjerte: mann, mann, hudtype 1–2, hudtype 6</annotation>
- <annotation cp="👨🏼❤👨🏻">hjerte | hudtype 1–2 | hudtype 3 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👨🏼❤👨🏻" type="tts">par med hjerte: mann, mann, hudtype 3, hudtype 1–2</annotation>
- <annotation cp="👨🏼❤👨🏼">hjerte | hudtype 3 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👨🏼❤👨🏼" type="tts">par med hjerte: mann, mann, hudtype 3</annotation>
- <annotation cp="👨🏼❤👨🏽">hjerte | hudtype 3 | hudtype 4 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👨🏼❤👨🏽" type="tts">par med hjerte: mann, mann, hudtype 3, hudtype 4</annotation>
- <annotation cp="👨🏼❤👨🏾">hjerte | hudtype 3 | hudtype 5 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👨🏼❤👨🏾" type="tts">par med hjerte: mann, mann, hudtype 3, hudtype 5</annotation>
- <annotation cp="👨🏼❤👨🏿">hjerte | hudtype 3 | hudtype 6 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👨🏼❤👨🏿" type="tts">par med hjerte: mann, mann, hudtype 3, hudtype 6</annotation>
- <annotation cp="👨🏽❤👨🏻">hjerte | hudtype 1–2 | hudtype 4 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👨🏽❤👨🏻" type="tts">par med hjerte: mann, mann, hudtype 4, hudtype 1–2</annotation>
- <annotation cp="👨🏽❤👨🏼">hjerte | hudtype 3 | hudtype 4 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👨🏽❤👨🏼" type="tts">par med hjerte: mann, mann, hudtype 4, hudtype 3</annotation>
- <annotation cp="👨🏽❤👨🏽">hjerte | hudtype 4 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👨🏽❤👨🏽" type="tts">par med hjerte: mann, mann, hudtype 4</annotation>
- <annotation cp="👨🏽❤👨🏾">hjerte | hudtype 4 | hudtype 5 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👨🏽❤👨🏾" type="tts">par med hjerte: mann, mann, hudtype 4, hudtype 5</annotation>
- <annotation cp="👨🏽❤👨🏿">hjerte | hudtype 4 | hudtype 6 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👨🏽❤👨🏿" type="tts">par med hjerte: mann, mann, hudtype 4, hudtype 6</annotation>
- <annotation cp="👨🏾❤👨🏻">hjerte | hudtype 1–2 | hudtype 5 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👨🏾❤👨🏻" type="tts">par med hjerte: mann, mann, hudtype 5, hudtype 1–2</annotation>
- <annotation cp="👨🏾❤👨🏼">hjerte | hudtype 3 | hudtype 5 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👨🏾❤👨🏼" type="tts">par med hjerte: mann, mann, hudtype 5, hudtype 3</annotation>
- <annotation cp="👨🏾❤👨🏽">hjerte | hudtype 4 | hudtype 5 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👨🏾❤👨🏽" type="tts">par med hjerte: mann, mann, hudtype 5, hudtype 4</annotation>
- <annotation cp="👨🏾❤👨🏾">hjerte | hudtype 5 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👨🏾❤👨🏾" type="tts">par med hjerte: mann, mann, hudtype 5</annotation>
- <annotation cp="👨🏾❤👨🏿">hjerte | hudtype 5 | hudtype 6 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👨🏾❤👨🏿" type="tts">par med hjerte: mann, mann, hudtype 5, hudtype 6</annotation>
- <annotation cp="👨🏿❤👨🏻">hjerte | hudtype 1–2 | hudtype 6 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👨🏿❤👨🏻" type="tts">par med hjerte: mann, mann, hudtype 6, hudtype 1–2</annotation>
- <annotation cp="👨🏿❤👨🏼">hjerte | hudtype 3 | hudtype 6 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👨🏿❤👨🏼" type="tts">par med hjerte: mann, mann, hudtype 6, hudtype 3</annotation>
- <annotation cp="👨🏿❤👨🏽">hjerte | hudtype 4 | hudtype 6 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👨🏿❤👨🏽" type="tts">par med hjerte: mann, mann, hudtype 6, hudtype 4</annotation>
- <annotation cp="👨🏿❤👨🏾">hjerte | hudtype 5 | hudtype 6 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👨🏿❤👨🏾" type="tts">par med hjerte: mann, mann, hudtype 6, hudtype 5</annotation>
- <annotation cp="👨🏿❤👨🏿">hjerte | hudtype 6 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👨🏿❤👨🏿" type="tts">par med hjerte: mann, mann, hudtype 6</annotation>
- <annotation cp="👨🦰">mann | menneske | rødt hår | voksen</annotation>
- <annotation cp="👨🦰" type="tts">mann: rødt hår</annotation>
- <annotation cp="👨🏻🦰">hudtype 1–2 | mann | menneske | rødt hår | voksen</annotation>
- <annotation cp="👨🏻🦰" type="tts">mann: hudtype 1–2, rødt hår</annotation>
- <annotation cp="👨🏼🦰">hudtype 3 | mann | menneske | rødt hår | voksen</annotation>
- <annotation cp="👨🏼🦰" type="tts">mann: hudtype 3, rødt hår</annotation>
- <annotation cp="👨🏽🦰">hudtype 4 | mann | menneske | rødt hår | voksen</annotation>
- <annotation cp="👨🏽🦰" type="tts">mann: hudtype 4, rødt hår</annotation>
- <annotation cp="👨🏾🦰">hudtype 5 | mann | menneske | rødt hår | voksen</annotation>
- <annotation cp="👨🏾🦰" type="tts">mann: hudtype 5, rødt hår</annotation>
- <annotation cp="👨🏿🦰">hudtype 6 | mann | menneske | rødt hår | voksen</annotation>
- <annotation cp="👨🏿🦰" type="tts">mann: hudtype 6, rødt hår</annotation>
- <annotation cp="👨🦱">kruset hår | mann | menneske | voksen</annotation>
- <annotation cp="👨🦱" type="tts">mann: kruset hår</annotation>
- <annotation cp="👨🏻🦱">hudtype 1–2 | kruset hår | mann | menneske | voksen</annotation>
- <annotation cp="👨🏻🦱" type="tts">mann: hudtype 1–2, kruset hår</annotation>
- <annotation cp="👨🏼🦱">hudtype 3 | kruset hår | mann | menneske | voksen</annotation>
- <annotation cp="👨🏼🦱" type="tts">mann: hudtype 3, kruset hår</annotation>
- <annotation cp="👨🏽🦱">hudtype 4 | kruset hår | mann | menneske | voksen</annotation>
- <annotation cp="👨🏽🦱" type="tts">mann: hudtype 4, kruset hår</annotation>
- <annotation cp="👨🏾🦱">hudtype 5 | kruset hår | mann | menneske | voksen</annotation>
- <annotation cp="👨🏾🦱" type="tts">mann: hudtype 5, kruset hår</annotation>
- <annotation cp="👨🏿🦱">hudtype 6 | kruset hår | mann | menneske | voksen</annotation>
- <annotation cp="👨🏿🦱" type="tts">mann: hudtype 6, kruset hår</annotation>
- <annotation cp="👨🦳">grått hår | mann | menneske | voksen</annotation>
- <annotation cp="👨🦳" type="tts">mann: grått hår</annotation>
- <annotation cp="👨🏻🦳">grått hår | hudtype 1–2 | mann | menneske | voksen</annotation>
- <annotation cp="👨🏻🦳" type="tts">mann: hudtype 1–2, grått hår</annotation>
- <annotation cp="👨🏼🦳">grått hår | hudtype 3 | mann | menneske | voksen</annotation>
- <annotation cp="👨🏼🦳" type="tts">mann: hudtype 3, grått hår</annotation>
- <annotation cp="👨🏽🦳">grått hår | hudtype 4 | mann | menneske | voksen</annotation>
- <annotation cp="👨🏽🦳" type="tts">mann: hudtype 4, grått hår</annotation>
- <annotation cp="👨🏾🦳">grått hår | hudtype 5 | mann | menneske | voksen</annotation>
- <annotation cp="👨🏾🦳" type="tts">mann: hudtype 5, grått hår</annotation>
- <annotation cp="👨🏿🦳">grått hår | hudtype 6 | mann | menneske | voksen</annotation>
- <annotation cp="👨🏿🦳" type="tts">mann: hudtype 6, grått hår</annotation>
- <annotation cp="👨🦲">mann | menneske | skallet | voksen</annotation>
- <annotation cp="👨🦲" type="tts">mann: skallet</annotation>
- <annotation cp="👨🏻🦲">hudtype 1–2 | mann | menneske | skallet | voksen</annotation>
- <annotation cp="👨🏻🦲" type="tts">mann: hudtype 1–2, skallet</annotation>
- <annotation cp="👨🏼🦲">hudtype 3 | mann | menneske | skallet | voksen</annotation>
- <annotation cp="👨🏼🦲" type="tts">mann: hudtype 3, skallet</annotation>
- <annotation cp="👨🏽🦲">hudtype 4 | mann | menneske | skallet | voksen</annotation>
- <annotation cp="👨🏽🦲" type="tts">mann: hudtype 4, skallet</annotation>
- <annotation cp="👨🏾🦲">hudtype 5 | mann | menneske | skallet | voksen</annotation>
- <annotation cp="👨🏾🦲" type="tts">mann: hudtype 5, skallet</annotation>
- <annotation cp="👨🏿🦲">hudtype 6 | mann | menneske | skallet | voksen</annotation>
- <annotation cp="👨🏿🦲" type="tts">mann: hudtype 6, skallet</annotation>
- <annotation cp="👩🏻">hudtype 1–2 | kvinne | menneske | voksen</annotation>
- <annotation cp="👩🏻" type="tts">kvinne: hudtype 1–2</annotation>
- <annotation cp="👩🏼">hudtype 3 | kvinne | menneske | voksen</annotation>
- <annotation cp="👩🏼" type="tts">kvinne: hudtype 3</annotation>
- <annotation cp="👩🏽">hudtype 4 | kvinne | menneske | voksen</annotation>
- <annotation cp="👩🏽" type="tts">kvinne: hudtype 4</annotation>
- <annotation cp="👩🏾">hudtype 5 | kvinne | menneske | voksen</annotation>
- <annotation cp="👩🏾" type="tts">kvinne: hudtype 5</annotation>
- <annotation cp="👩🏿">hudtype 6 | kvinne | menneske | voksen</annotation>
- <annotation cp="👩🏿" type="tts">kvinne: hudtype 6</annotation>
- <annotation cp="🧔🏻♀">hudtype 1–2 | kvinne | kvinne: skjegg | skjegg</annotation>
- <annotation cp="🧔🏻♀" type="tts">kvinne: hudtype 1–2, skjegg</annotation>
- <annotation cp="🧔🏼♀">hudtype 3 | kvinne | kvinne: skjegg | skjegg</annotation>
- <annotation cp="🧔🏼♀" type="tts">kvinne: hudtype 3, skjegg</annotation>
- <annotation cp="🧔🏽♀">hudtype 4 | kvinne | kvinne: skjegg | skjegg</annotation>
- <annotation cp="🧔🏽♀" type="tts">kvinne: hudtype 4, skjegg</annotation>
- <annotation cp="🧔🏾♀">hudtype 5 | kvinne | kvinne: skjegg | skjegg</annotation>
- <annotation cp="🧔🏾♀" type="tts">kvinne: hudtype 5, skjegg</annotation>
- <annotation cp="🧔🏿♀">hudtype 6 | kvinne | kvinne: skjegg | skjegg</annotation>
- <annotation cp="🧔🏿♀" type="tts">kvinne: hudtype 6, skjegg</annotation>
- <annotation cp="👱🏻♀">blond | blondine | hår | hudtype 1–2 | kvinne | kvinne: blond</annotation>
- <annotation cp="👱🏻♀" type="tts">kvinne: hudtype 1–2, blond</annotation>
- <annotation cp="👱🏼♀">blond | blondine | hår | hudtype 3 | kvinne | kvinne: blond</annotation>
- <annotation cp="👱🏼♀" type="tts">kvinne: hudtype 3, blond</annotation>
- <annotation cp="👱🏽♀">blond | blondine | hår | hudtype 4 | kvinne | kvinne: blond</annotation>
- <annotation cp="👱🏽♀" type="tts">kvinne: hudtype 4, blond</annotation>
- <annotation cp="👱🏾♀">blond | blondine | hår | hudtype 5 | kvinne | kvinne: blond</annotation>
- <annotation cp="👱🏾♀" type="tts">kvinne: hudtype 5, blond</annotation>
- <annotation cp="👱🏿♀">blond | blondine | hår | hudtype 6 | kvinne | kvinne: blond</annotation>
- <annotation cp="👱🏿♀" type="tts">kvinne: hudtype 6, blond</annotation>
- <annotation cp="👩🏻❤💋👨🏻">hudtype 1–2 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👩🏻❤💋👨🏻" type="tts">kyss: kvinne, mann, hudtype 1–2</annotation>
- <annotation cp="👩🏻❤💋👨🏼">hudtype 1–2 | hudtype 3 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👩🏻❤💋👨🏼" type="tts">kyss: kvinne, mann, hudtype 1–2, hudtype 3</annotation>
- <annotation cp="👩🏻❤💋👨🏽">hudtype 1–2 | hudtype 4 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👩🏻❤💋👨🏽" type="tts">kyss: kvinne, mann, hudtype 1–2, hudtype 4</annotation>
- <annotation cp="👩🏻❤💋👨🏾">hudtype 1–2 | hudtype 5 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👩🏻❤💋👨🏾" type="tts">kyss: kvinne, mann, hudtype 1–2, hudtype 5</annotation>
- <annotation cp="👩🏻❤💋👨🏿">hudtype 1–2 | hudtype 6 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👩🏻❤💋👨🏿" type="tts">kyss: kvinne, mann, hudtype 1–2, hudtype 6</annotation>
- <annotation cp="👩🏼❤💋👨🏻">hudtype 1–2 | hudtype 3 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👩🏼❤💋👨🏻" type="tts">kyss: kvinne, mann, hudtype 3, hudtype 1–2</annotation>
- <annotation cp="👩🏼❤💋👨🏼">hudtype 3 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👩🏼❤💋👨🏼" type="tts">kyss: kvinne, mann, hudtype 3</annotation>
- <annotation cp="👩🏼❤💋👨🏽">hudtype 3 | hudtype 4 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👩🏼❤💋👨🏽" type="tts">kyss: kvinne, mann, hudtype 3, hudtype 4</annotation>
- <annotation cp="👩🏼❤💋👨🏾">hudtype 3 | hudtype 5 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👩🏼❤💋👨🏾" type="tts">kyss: kvinne, mann, hudtype 3, hudtype 5</annotation>
- <annotation cp="👩🏼❤💋👨🏿">hudtype 3 | hudtype 6 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👩🏼❤💋👨🏿" type="tts">kyss: kvinne, mann, hudtype 3, hudtype 6</annotation>
- <annotation cp="👩🏽❤💋👨🏻">hudtype 1–2 | hudtype 4 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👩🏽❤💋👨🏻" type="tts">kyss: kvinne, mann, hudtype 4, hudtype 1–2</annotation>
- <annotation cp="👩🏽❤💋👨🏼">hudtype 3 | hudtype 4 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👩🏽❤💋👨🏼" type="tts">kyss: kvinne, mann, hudtype 4, hudtype 3</annotation>
- <annotation cp="👩🏽❤💋👨🏽">hudtype 4 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👩🏽❤💋👨🏽" type="tts">kyss: kvinne, mann, hudtype 4</annotation>
- <annotation cp="👩🏽❤💋👨🏾">hudtype 4 | hudtype 5 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👩🏽❤💋👨🏾" type="tts">kyss: kvinne, mann, hudtype 4, hudtype 5</annotation>
- <annotation cp="👩🏽❤💋👨🏿">hudtype 4 | hudtype 6 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👩🏽❤💋👨🏿" type="tts">kyss: kvinne, mann, hudtype 4, hudtype 6</annotation>
- <annotation cp="👩🏾❤💋👨🏻">hudtype 1–2 | hudtype 5 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👩🏾❤💋👨🏻" type="tts">kyss: kvinne, mann, hudtype 5, hudtype 1–2</annotation>
- <annotation cp="👩🏾❤💋👨🏼">hudtype 3 | hudtype 5 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👩🏾❤💋👨🏼" type="tts">kyss: kvinne, mann, hudtype 5, hudtype 3</annotation>
- <annotation cp="👩🏾❤💋👨🏽">hudtype 4 | hudtype 5 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👩🏾❤💋👨🏽" type="tts">kyss: kvinne, mann, hudtype 5, hudtype 4</annotation>
- <annotation cp="👩🏾❤💋👨🏾">hudtype 5 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👩🏾❤💋👨🏾" type="tts">kyss: kvinne, mann, hudtype 5</annotation>
- <annotation cp="👩🏾❤💋👨🏿">hudtype 5 | hudtype 6 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👩🏾❤💋👨🏿" type="tts">kyss: kvinne, mann, hudtype 5, hudtype 6</annotation>
- <annotation cp="👩🏿❤💋👨🏻">hudtype 1–2 | hudtype 6 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👩🏿❤💋👨🏻" type="tts">kyss: kvinne, mann, hudtype 6, hudtype 1–2</annotation>
- <annotation cp="👩🏿❤💋👨🏼">hudtype 3 | hudtype 6 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👩🏿❤💋👨🏼" type="tts">kyss: kvinne, mann, hudtype 6, hudtype 3</annotation>
- <annotation cp="👩🏿❤💋👨🏽">hudtype 4 | hudtype 6 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👩🏿❤💋👨🏽" type="tts">kyss: kvinne, mann, hudtype 6, hudtype 4</annotation>
- <annotation cp="👩🏿❤💋👨🏾">hudtype 5 | hudtype 6 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👩🏿❤💋👨🏾" type="tts">kyss: kvinne, mann, hudtype 6, hudtype 5</annotation>
- <annotation cp="👩🏿❤💋👨🏿">hudtype 6 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👩🏿❤💋👨🏿" type="tts">kyss: kvinne, mann, hudtype 6</annotation>
- <annotation cp="👩🏻❤💋👩🏻">hudtype 1–2 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="👩🏻❤💋👩🏻" type="tts">kyss: kvinne, kvinne, hudtype 1–2</annotation>
- <annotation cp="👩🏻❤💋👩🏼">hudtype 1–2 | hudtype 3 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="👩🏻❤💋👩🏼" type="tts">kyss: kvinne, kvinne, hudtype 1–2, hudtype 3</annotation>
- <annotation cp="👩🏻❤💋👩🏽">hudtype 1–2 | hudtype 4 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="👩🏻❤💋👩🏽" type="tts">kyss: kvinne, kvinne, hudtype 1–2, hudtype 4</annotation>
- <annotation cp="👩🏻❤💋👩🏾">hudtype 1–2 | hudtype 5 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="👩🏻❤💋👩🏾" type="tts">kyss: kvinne, kvinne, hudtype 1–2, hudtype 5</annotation>
- <annotation cp="👩🏻❤💋👩🏿">hudtype 1–2 | hudtype 6 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="👩🏻❤💋👩🏿" type="tts">kyss: kvinne, kvinne, hudtype 1–2, hudtype 6</annotation>
- <annotation cp="👩🏼❤💋👩🏻">hudtype 1–2 | hudtype 3 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="👩🏼❤💋👩🏻" type="tts">kyss: kvinne, kvinne, hudtype 3, hudtype 1–2</annotation>
- <annotation cp="👩🏼❤💋👩🏼">hudtype 3 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="👩🏼❤💋👩🏼" type="tts">kyss: kvinne, kvinne, hudtype 3</annotation>
- <annotation cp="👩🏼❤💋👩🏽">hudtype 3 | hudtype 4 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="👩🏼❤💋👩🏽" type="tts">kyss: kvinne, kvinne, hudtype 3, hudtype 4</annotation>
- <annotation cp="👩🏼❤💋👩🏾">hudtype 3 | hudtype 5 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="👩🏼❤💋👩🏾" type="tts">kyss: kvinne, kvinne, hudtype 3, hudtype 5</annotation>
- <annotation cp="👩🏼❤💋👩🏿">hudtype 3 | hudtype 6 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="👩🏼❤💋👩🏿" type="tts">kyss: kvinne, kvinne, hudtype 3, hudtype 6</annotation>
- <annotation cp="👩🏽❤💋👩🏻">hudtype 1–2 | hudtype 4 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="👩🏽❤💋👩🏻" type="tts">kyss: kvinne, kvinne, hudtype 4, hudtype 1–2</annotation>
- <annotation cp="👩🏽❤💋👩🏼">hudtype 3 | hudtype 4 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="👩🏽❤💋👩🏼" type="tts">kyss: kvinne, kvinne, hudtype 4, hudtype 3</annotation>
- <annotation cp="👩🏽❤💋👩🏽">hudtype 4 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="👩🏽❤💋👩🏽" type="tts">kyss: kvinne, kvinne, hudtype 4</annotation>
- <annotation cp="👩🏽❤💋👩🏾">hudtype 4 | hudtype 5 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="👩🏽❤💋👩🏾" type="tts">kyss: kvinne, kvinne, hudtype 4, hudtype 5</annotation>
- <annotation cp="👩🏽❤💋👩🏿">hudtype 4 | hudtype 6 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="👩🏽❤💋👩🏿" type="tts">kyss: kvinne, kvinne, hudtype 4, hudtype 6</annotation>
- <annotation cp="👩🏾❤💋👩🏻">hudtype 1–2 | hudtype 5 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="👩🏾❤💋👩🏻" type="tts">kyss: kvinne, kvinne, hudtype 5, hudtype 1–2</annotation>
- <annotation cp="👩🏾❤💋👩🏼">hudtype 3 | hudtype 5 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="👩🏾❤💋👩🏼" type="tts">kyss: kvinne, kvinne, hudtype 5, hudtype 3</annotation>
- <annotation cp="👩🏾❤💋👩🏽">hudtype 4 | hudtype 5 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="👩🏾❤💋👩🏽" type="tts">kyss: kvinne, kvinne, hudtype 5, hudtype 4</annotation>
- <annotation cp="👩🏾❤💋👩🏾">hudtype 5 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="👩🏾❤💋👩🏾" type="tts">kyss: kvinne, kvinne, hudtype 5</annotation>
- <annotation cp="👩🏾❤💋👩🏿">hudtype 5 | hudtype 6 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="👩🏾❤💋👩🏿" type="tts">kyss: kvinne, kvinne, hudtype 5, hudtype 6</annotation>
- <annotation cp="👩🏿❤💋👩🏻">hudtype 1–2 | hudtype 6 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="👩🏿❤💋👩🏻" type="tts">kyss: kvinne, kvinne, hudtype 6, hudtype 1–2</annotation>
- <annotation cp="👩🏿❤💋👩🏼">hudtype 3 | hudtype 6 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="👩🏿❤💋👩🏼" type="tts">kyss: kvinne, kvinne, hudtype 6, hudtype 3</annotation>
- <annotation cp="👩🏿❤💋👩🏽">hudtype 4 | hudtype 6 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="👩🏿❤💋👩🏽" type="tts">kyss: kvinne, kvinne, hudtype 6, hudtype 4</annotation>
- <annotation cp="👩🏿❤💋👩🏾">hudtype 5 | hudtype 6 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="👩🏿❤💋👩🏾" type="tts">kyss: kvinne, kvinne, hudtype 6, hudtype 5</annotation>
- <annotation cp="👩🏿❤💋👩🏿">hudtype 6 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="👩🏿❤💋👩🏿" type="tts">kyss: kvinne, kvinne, hudtype 6</annotation>
- <annotation cp="👩🏻❤👨🏻">hjerte | hudtype 1–2 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏻❤👨🏻" type="tts">par med hjerte: kvinne, mann, hudtype 1–2</annotation>
- <annotation cp="👩🏻❤👨🏼">hjerte | hudtype 1–2 | hudtype 3 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏻❤👨🏼" type="tts">par med hjerte: kvinne, mann, hudtype 1–2, hudtype 3</annotation>
- <annotation cp="👩🏻❤👨🏽">hjerte | hudtype 1–2 | hudtype 4 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏻❤👨🏽" type="tts">par med hjerte: kvinne, mann, hudtype 1–2, hudtype 4</annotation>
- <annotation cp="👩🏻❤👨🏾">hjerte | hudtype 1–2 | hudtype 5 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏻❤👨🏾" type="tts">par med hjerte: kvinne, mann, hudtype 1–2, hudtype 5</annotation>
- <annotation cp="👩🏻❤👨🏿">hjerte | hudtype 1–2 | hudtype 6 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏻❤👨🏿" type="tts">par med hjerte: kvinne, mann, hudtype 1–2, hudtype 6</annotation>
- <annotation cp="👩🏼❤👨🏻">hjerte | hudtype 1–2 | hudtype 3 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏼❤👨🏻" type="tts">par med hjerte: kvinne, mann, hudtype 3, hudtype 1–2</annotation>
- <annotation cp="👩🏼❤👨🏼">hjerte | hudtype 3 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏼❤👨🏼" type="tts">par med hjerte: kvinne, mann, hudtype 3</annotation>
- <annotation cp="👩🏼❤👨🏽">hjerte | hudtype 3 | hudtype 4 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏼❤👨🏽" type="tts">par med hjerte: kvinne, mann, hudtype 3, hudtype 4</annotation>
- <annotation cp="👩🏼❤👨🏾">hjerte | hudtype 3 | hudtype 5 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏼❤👨🏾" type="tts">par med hjerte: kvinne, mann, hudtype 3, hudtype 5</annotation>
- <annotation cp="👩🏼❤👨🏿">hjerte | hudtype 3 | hudtype 6 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏼❤👨🏿" type="tts">par med hjerte: kvinne, mann, hudtype 3, hudtype 6</annotation>
- <annotation cp="👩🏽❤👨🏻">hjerte | hudtype 1–2 | hudtype 4 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏽❤👨🏻" type="tts">par med hjerte: kvinne, mann, hudtype 4, hudtype 1–2</annotation>
- <annotation cp="👩🏽❤👨🏼">hjerte | hudtype 3 | hudtype 4 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏽❤👨🏼" type="tts">par med hjerte: kvinne, mann, hudtype 4, hudtype 3</annotation>
- <annotation cp="👩🏽❤👨🏽">hjerte | hudtype 4 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏽❤👨🏽" type="tts">par med hjerte: kvinne, mann, hudtype 4</annotation>
- <annotation cp="👩🏽❤👨🏾">hjerte | hudtype 4 | hudtype 5 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏽❤👨🏾" type="tts">par med hjerte: kvinne, mann, hudtype 4, hudtype 5</annotation>
- <annotation cp="👩🏽❤👨🏿">hjerte | hudtype 4 | hudtype 6 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏽❤👨🏿" type="tts">par med hjerte: kvinne, mann, hudtype 4, hudtype 6</annotation>
- <annotation cp="👩🏾❤👨🏻">hjerte | hudtype 1–2 | hudtype 5 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏾❤👨🏻" type="tts">par med hjerte: kvinne, mann, hudtype 5, hudtype 1–2</annotation>
- <annotation cp="👩🏾❤👨🏼">hjerte | hudtype 3 | hudtype 5 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏾❤👨🏼" type="tts">par med hjerte: kvinne, mann, hudtype 5, hudtype 3</annotation>
- <annotation cp="👩🏾❤👨🏽">hjerte | hudtype 4 | hudtype 5 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏾❤👨🏽" type="tts">par med hjerte: kvinne, mann, hudtype 5, hudtype 4</annotation>
- <annotation cp="👩🏾❤👨🏾">hjerte | hudtype 5 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏾❤👨🏾" type="tts">par med hjerte: kvinne, mann, hudtype 5</annotation>
- <annotation cp="👩🏾❤👨🏿">hjerte | hudtype 5 | hudtype 6 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏾❤👨🏿" type="tts">par med hjerte: kvinne, mann, hudtype 5, hudtype 6</annotation>
- <annotation cp="👩🏿❤👨🏻">hjerte | hudtype 1–2 | hudtype 6 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏿❤👨🏻" type="tts">par med hjerte: kvinne, mann, hudtype 6, hudtype 1–2</annotation>
- <annotation cp="👩🏿❤👨🏼">hjerte | hudtype 3 | hudtype 6 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏿❤👨🏼" type="tts">par med hjerte: kvinne, mann, hudtype 6, hudtype 3</annotation>
- <annotation cp="👩🏿❤👨🏽">hjerte | hudtype 4 | hudtype 6 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏿❤👨🏽" type="tts">par med hjerte: kvinne, mann, hudtype 6, hudtype 4</annotation>
- <annotation cp="👩🏿❤👨🏾">hjerte | hudtype 5 | hudtype 6 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏿❤👨🏾" type="tts">par med hjerte: kvinne, mann, hudtype 6, hudtype 5</annotation>
- <annotation cp="👩🏿❤👨🏿">hjerte | hudtype 6 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏿❤👨🏿" type="tts">par med hjerte: kvinne, mann, hudtype 6</annotation>
- <annotation cp="👩🏻❤👩🏻">hjerte | hudtype 1–2 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏻❤👩🏻" type="tts">par med hjerte: kvinne, kvinne, hudtype 1–2</annotation>
- <annotation cp="👩🏻❤👩🏼">hjerte | hudtype 1–2 | hudtype 3 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏻❤👩🏼" type="tts">par med hjerte: kvinne, kvinne, hudtype 1–2, hudtype 3</annotation>
- <annotation cp="👩🏻❤👩🏽">hjerte | hudtype 1–2 | hudtype 4 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏻❤👩🏽" type="tts">par med hjerte: kvinne, kvinne, hudtype 1–2, hudtype 4</annotation>
- <annotation cp="👩🏻❤👩🏾">hjerte | hudtype 1–2 | hudtype 5 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏻❤👩🏾" type="tts">par med hjerte: kvinne, kvinne, hudtype 1–2, hudtype 5</annotation>
- <annotation cp="👩🏻❤👩🏿">hjerte | hudtype 1–2 | hudtype 6 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏻❤👩🏿" type="tts">par med hjerte: kvinne, kvinne, hudtype 1–2, hudtype 6</annotation>
- <annotation cp="👩🏼❤👩🏻">hjerte | hudtype 1–2 | hudtype 3 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏼❤👩🏻" type="tts">par med hjerte: kvinne, kvinne, hudtype 3, hudtype 1–2</annotation>
- <annotation cp="👩🏼❤👩🏼">hjerte | hudtype 3 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏼❤👩🏼" type="tts">par med hjerte: kvinne, kvinne, hudtype 3</annotation>
- <annotation cp="👩🏼❤👩🏽">hjerte | hudtype 3 | hudtype 4 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏼❤👩🏽" type="tts">par med hjerte: kvinne, kvinne, hudtype 3, hudtype 4</annotation>
- <annotation cp="👩🏼❤👩🏾">hjerte | hudtype 3 | hudtype 5 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏼❤👩🏾" type="tts">par med hjerte: kvinne, kvinne, hudtype 3, hudtype 5</annotation>
- <annotation cp="👩🏼❤👩🏿">hjerte | hudtype 3 | hudtype 6 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏼❤👩🏿" type="tts">par med hjerte: kvinne, kvinne, hudtype 3, hudtype 6</annotation>
- <annotation cp="👩🏽❤👩🏻">hjerte | hudtype 1–2 | hudtype 4 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏽❤👩🏻" type="tts">par med hjerte: kvinne, kvinne, hudtype 4, hudtype 1–2</annotation>
- <annotation cp="👩🏽❤👩🏼">hjerte | hudtype 3 | hudtype 4 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏽❤👩🏼" type="tts">par med hjerte: kvinne, kvinne, hudtype 4, hudtype 3</annotation>
- <annotation cp="👩🏽❤👩🏽">hjerte | hudtype 4 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏽❤👩🏽" type="tts">par med hjerte: kvinne, kvinne, hudtype 4</annotation>
- <annotation cp="👩🏽❤👩🏾">hjerte | hudtype 4 | hudtype 5 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏽❤👩🏾" type="tts">par med hjerte: kvinne, kvinne, hudtype 4, hudtype 5</annotation>
- <annotation cp="👩🏽❤👩🏿">hjerte | hudtype 4 | hudtype 6 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏽❤👩🏿" type="tts">par med hjerte: kvinne, kvinne, hudtype 4, hudtype 6</annotation>
- <annotation cp="👩🏾❤👩🏻">hjerte | hudtype 1–2 | hudtype 5 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏾❤👩🏻" type="tts">par med hjerte: kvinne, kvinne, hudtype 5, hudtype 1–2</annotation>
- <annotation cp="👩🏾❤👩🏼">hjerte | hudtype 3 | hudtype 5 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏾❤👩🏼" type="tts">par med hjerte: kvinne, kvinne, hudtype 5, hudtype 3</annotation>
- <annotation cp="👩🏾❤👩🏽">hjerte | hudtype 4 | hudtype 5 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏾❤👩🏽" type="tts">par med hjerte: kvinne, kvinne, hudtype 5, hudtype 4</annotation>
- <annotation cp="👩🏾❤👩🏾">hjerte | hudtype 5 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏾❤👩🏾" type="tts">par med hjerte: kvinne, kvinne, hudtype 5</annotation>
- <annotation cp="👩🏾❤👩🏿">hjerte | hudtype 5 | hudtype 6 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏾❤👩🏿" type="tts">par med hjerte: kvinne, kvinne, hudtype 5, hudtype 6</annotation>
- <annotation cp="👩🏿❤👩🏻">hjerte | hudtype 1–2 | hudtype 6 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏿❤👩🏻" type="tts">par med hjerte: kvinne, kvinne, hudtype 6, hudtype 1–2</annotation>
- <annotation cp="👩🏿❤👩🏼">hjerte | hudtype 3 | hudtype 6 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏿❤👩🏼" type="tts">par med hjerte: kvinne, kvinne, hudtype 6, hudtype 3</annotation>
- <annotation cp="👩🏿❤👩🏽">hjerte | hudtype 4 | hudtype 6 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏿❤👩🏽" type="tts">par med hjerte: kvinne, kvinne, hudtype 6, hudtype 4</annotation>
- <annotation cp="👩🏿❤👩🏾">hjerte | hudtype 5 | hudtype 6 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏿❤👩🏾" type="tts">par med hjerte: kvinne, kvinne, hudtype 6, hudtype 5</annotation>
- <annotation cp="👩🏿❤👩🏿">hjerte | hudtype 6 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩🏿❤👩🏿" type="tts">par med hjerte: kvinne, kvinne, hudtype 6</annotation>
- <annotation cp="👩🦰">kvinne | menneske | rødt hår | voksen</annotation>
- <annotation cp="👩🦰" type="tts">kvinne: rødt hår</annotation>
- <annotation cp="👩🏻🦰">hudtype 1–2 | kvinne | menneske | rødt hår | voksen</annotation>
- <annotation cp="👩🏻🦰" type="tts">kvinne: hudtype 1–2, rødt hår</annotation>
- <annotation cp="👩🏼🦰">hudtype 3 | kvinne | menneske | rødt hår | voksen</annotation>
- <annotation cp="👩🏼🦰" type="tts">kvinne: hudtype 3, rødt hår</annotation>
- <annotation cp="👩🏽🦰">hudtype 4 | kvinne | menneske | rødt hår | voksen</annotation>
- <annotation cp="👩🏽🦰" type="tts">kvinne: hudtype 4, rødt hår</annotation>
- <annotation cp="👩🏾🦰">hudtype 5 | kvinne | menneske | rødt hår | voksen</annotation>
- <annotation cp="👩🏾🦰" type="tts">kvinne: hudtype 5, rødt hår</annotation>
- <annotation cp="👩🏿🦰">hudtype 6 | kvinne | menneske | rødt hår | voksen</annotation>
- <annotation cp="👩🏿🦰" type="tts">kvinne: hudtype 6, rødt hår</annotation>
- <annotation cp="👩🦱">kruset hår | kvinne | menneske | voksen</annotation>
- <annotation cp="👩🦱" type="tts">kvinne: kruset hår</annotation>
- <annotation cp="👩🏻🦱">hudtype 1–2 | kruset hår | kvinne | menneske | voksen</annotation>
- <annotation cp="👩🏻🦱" type="tts">kvinne: hudtype 1–2, kruset hår</annotation>
- <annotation cp="👩🏼🦱">hudtype 3 | kruset hår | kvinne | menneske | voksen</annotation>
- <annotation cp="👩🏼🦱" type="tts">kvinne: hudtype 3, kruset hår</annotation>
- <annotation cp="👩🏽🦱">hudtype 4 | kruset hår | kvinne | menneske | voksen</annotation>
- <annotation cp="👩🏽🦱" type="tts">kvinne: hudtype 4, kruset hår</annotation>
- <annotation cp="👩🏾🦱">hudtype 5 | kruset hår | kvinne | menneske | voksen</annotation>
- <annotation cp="👩🏾🦱" type="tts">kvinne: hudtype 5, kruset hår</annotation>
- <annotation cp="👩🏿🦱">hudtype 6 | kruset hår | kvinne | menneske | voksen</annotation>
- <annotation cp="👩🏿🦱" type="tts">kvinne: hudtype 6, kruset hår</annotation>
- <annotation cp="👩🦳">grått hår | kvinne | menneske | voksen</annotation>
- <annotation cp="👩🦳" type="tts">kvinne: grått hår</annotation>
- <annotation cp="👩🏻🦳">grått hår | hudtype 1–2 | kvinne | menneske | voksen</annotation>
- <annotation cp="👩🏻🦳" type="tts">kvinne: hudtype 1–2, grått hår</annotation>
- <annotation cp="👩🏼🦳">grått hår | hudtype 3 | kvinne | menneske | voksen</annotation>
- <annotation cp="👩🏼🦳" type="tts">kvinne: hudtype 3, grått hår</annotation>
- <annotation cp="👩🏽🦳">grått hår | hudtype 4 | kvinne | menneske | voksen</annotation>
- <annotation cp="👩🏽🦳" type="tts">kvinne: hudtype 4, grått hår</annotation>
- <annotation cp="👩🏾🦳">grått hår | hudtype 5 | kvinne | menneske | voksen</annotation>
- <annotation cp="👩🏾🦳" type="tts">kvinne: hudtype 5, grått hår</annotation>
- <annotation cp="👩🏿🦳">grått hår | hudtype 6 | kvinne | menneske | voksen</annotation>
- <annotation cp="👩🏿🦳" type="tts">kvinne: hudtype 6, grått hår</annotation>
- <annotation cp="👩🦲">kvinne | menneske | skallet | voksen</annotation>
- <annotation cp="👩🦲" type="tts">kvinne: skallet</annotation>
- <annotation cp="👩🏻🦲">hudtype 1–2 | kvinne | menneske | skallet | voksen</annotation>
- <annotation cp="👩🏻🦲" type="tts">kvinne: hudtype 1–2, skallet</annotation>
- <annotation cp="👩🏼🦲">hudtype 3 | kvinne | menneske | skallet | voksen</annotation>
- <annotation cp="👩🏼🦲" type="tts">kvinne: hudtype 3, skallet</annotation>
- <annotation cp="👩🏽🦲">hudtype 4 | kvinne | menneske | skallet | voksen</annotation>
- <annotation cp="👩🏽🦲" type="tts">kvinne: hudtype 4, skallet</annotation>
- <annotation cp="👩🏾🦲">hudtype 5 | kvinne | menneske | skallet | voksen</annotation>
- <annotation cp="👩🏾🦲" type="tts">kvinne: hudtype 5, skallet</annotation>
- <annotation cp="👩🏿🦲">hudtype 6 | kvinne | menneske | skallet | voksen</annotation>
- <annotation cp="👩🏿🦲" type="tts">kvinne: hudtype 6, skallet</annotation>
- <annotation cp="🧓🏻">eldre voksen | gammel | hudtype 1–2 | kjønnsnøytral | menneske | voksen</annotation>
- <annotation cp="🧓🏻" type="tts">eldre voksen: hudtype 1–2</annotation>
- <annotation cp="🧓🏼">eldre voksen | gammel | hudtype 3 | kjønnsnøytral | menneske | voksen</annotation>
- <annotation cp="🧓🏼" type="tts">eldre voksen: hudtype 3</annotation>
- <annotation cp="🧓🏽">eldre voksen | gammel | hudtype 4 | kjønnsnøytral | menneske | voksen</annotation>
- <annotation cp="🧓🏽" type="tts">eldre voksen: hudtype 4</annotation>
- <annotation cp="🧓🏾">eldre voksen | gammel | hudtype 5 | kjønnsnøytral | menneske | voksen</annotation>
- <annotation cp="🧓🏾" type="tts">eldre voksen: hudtype 5</annotation>
- <annotation cp="🧓🏿">eldre voksen | gammel | hudtype 6 | kjønnsnøytral | menneske | voksen</annotation>
- <annotation cp="🧓🏿" type="tts">eldre voksen: hudtype 6</annotation>
- <annotation cp="👴🏻">eldre | hudtype 1–2 | mann | menneske</annotation>
- <annotation cp="👴🏻" type="tts">eldre mann: hudtype 1–2</annotation>
- <annotation cp="👴🏼">eldre | hudtype 3 | mann | menneske</annotation>
- <annotation cp="👴🏼" type="tts">eldre mann: hudtype 3</annotation>
- <annotation cp="👴🏽">eldre | hudtype 4 | mann | menneske</annotation>
- <annotation cp="👴🏽" type="tts">eldre mann: hudtype 4</annotation>
- <annotation cp="👴🏾">eldre | hudtype 5 | mann | menneske</annotation>
- <annotation cp="👴🏾" type="tts">eldre mann: hudtype 5</annotation>
- <annotation cp="👴🏿">eldre | hudtype 6 | mann | menneske</annotation>
- <annotation cp="👴🏿" type="tts">eldre mann: hudtype 6</annotation>
- <annotation cp="👵🏻">eldre | hudtype 1–2 | kvinne | menneske</annotation>
- <annotation cp="👵🏻" type="tts">eldre kvinne: hudtype 1–2</annotation>
- <annotation cp="👵🏼">eldre | hudtype 3 | kvinne | menneske</annotation>
- <annotation cp="👵🏼" type="tts">eldre kvinne: hudtype 3</annotation>
- <annotation cp="👵🏽">eldre | hudtype 4 | kvinne | menneske</annotation>
- <annotation cp="👵🏽" type="tts">eldre kvinne: hudtype 4</annotation>
- <annotation cp="👵🏾">eldre | hudtype 5 | kvinne | menneske</annotation>
- <annotation cp="👵🏾" type="tts">eldre kvinne: hudtype 5</annotation>
- <annotation cp="👵🏿">eldre | hudtype 6 | kvinne | menneske</annotation>
- <annotation cp="👵🏿" type="tts">eldre kvinne: hudtype 6</annotation>
- <annotation cp="🙍🏻">hudtype 1–2 | mimikk | rynker brynene | rynker pannen</annotation>
- <annotation cp="🙍🏻" type="tts">rynker brynene: hudtype 1–2</annotation>
- <annotation cp="🙍🏼">hudtype 3 | mimikk | rynker brynene | rynker pannen</annotation>
- <annotation cp="🙍🏼" type="tts">rynker brynene: hudtype 3</annotation>
- <annotation cp="🙍🏽">hudtype 4 | mimikk | rynker brynene | rynker pannen</annotation>
- <annotation cp="🙍🏽" type="tts">rynker brynene: hudtype 4</annotation>
- <annotation cp="🙍🏾">hudtype 5 | mimikk | rynker brynene | rynker pannen</annotation>
- <annotation cp="🙍🏾" type="tts">rynker brynene: hudtype 5</annotation>
- <annotation cp="🙍🏿">hudtype 6 | mimikk | rynker brynene | rynker pannen</annotation>
- <annotation cp="🙍🏿" type="tts">rynker brynene: hudtype 6</annotation>
- <annotation cp="🙍🏻♂">hudtype 1–2 | mann | mann som rynker brynene | mimikk | rynker pannen | skeptisk</annotation>
- <annotation cp="🙍🏻♂" type="tts">mann som rynker brynene: hudtype 1–2</annotation>
- <annotation cp="🙍🏼♂">hudtype 3 | mann | mann som rynker brynene | mimikk | rynker pannen | skeptisk</annotation>
- <annotation cp="🙍🏼♂" type="tts">mann som rynker brynene: hudtype 3</annotation>
- <annotation cp="🙍🏽♂">hudtype 4 | mann | mann som rynker brynene | mimikk | rynker pannen | skeptisk</annotation>
- <annotation cp="🙍🏽♂" type="tts">mann som rynker brynene: hudtype 4</annotation>
- <annotation cp="🙍🏾♂">hudtype 5 | mann | mann som rynker brynene | mimikk | rynker pannen | skeptisk</annotation>
- <annotation cp="🙍🏾♂" type="tts">mann som rynker brynene: hudtype 5</annotation>
- <annotation cp="🙍🏿♂">hudtype 6 | mann | mann som rynker brynene | mimikk | rynker pannen | skeptisk</annotation>
- <annotation cp="🙍🏿♂" type="tts">mann som rynker brynene: hudtype 6</annotation>
- <annotation cp="🙍🏻♀">hudtype 1–2 | kvinne | kvinne som rynker brynene | mimikk | rynker pannen | skeptisk</annotation>
- <annotation cp="🙍🏻♀" type="tts">kvinne som rynker brynene: hudtype 1–2</annotation>
- <annotation cp="🙍🏼♀">hudtype 3 | kvinne | kvinne som rynker brynene | mimikk | rynker pannen | skeptisk</annotation>
- <annotation cp="🙍🏼♀" type="tts">kvinne som rynker brynene: hudtype 3</annotation>
- <annotation cp="🙍🏽♀">hudtype 4 | kvinne | kvinne som rynker brynene | mimikk | rynker pannen | skeptisk</annotation>
- <annotation cp="🙍🏽♀" type="tts">kvinne som rynker brynene: hudtype 4</annotation>
- <annotation cp="🙍🏾♀">hudtype 5 | kvinne | kvinne som rynker brynene | mimikk | rynker pannen | skeptisk</annotation>
- <annotation cp="🙍🏾♀" type="tts">kvinne som rynker brynene: hudtype 5</annotation>
- <annotation cp="🙍🏿♀">hudtype 6 | kvinne | kvinne som rynker brynene | mimikk | rynker pannen | skeptisk</annotation>
- <annotation cp="🙍🏿♀" type="tts">kvinne som rynker brynene: hudtype 6</annotation>
- <annotation cp="🙎🏻">furter | furting | hudtype 1–2 | mimikk | surmuling</annotation>
- <annotation cp="🙎🏻" type="tts">furter: hudtype 1–2</annotation>
- <annotation cp="🙎🏼">furter | furting | hudtype 3 | mimikk | surmuling</annotation>
- <annotation cp="🙎🏼" type="tts">furter: hudtype 3</annotation>
- <annotation cp="🙎🏽">furter | furting | hudtype 4 | mimikk | surmuling</annotation>
- <annotation cp="🙎🏽" type="tts">furter: hudtype 4</annotation>
- <annotation cp="🙎🏾">furter | furting | hudtype 5 | mimikk | surmuling</annotation>
- <annotation cp="🙎🏾" type="tts">furter: hudtype 5</annotation>
- <annotation cp="🙎🏿">furter | furting | hudtype 6 | mimikk | surmuling</annotation>
- <annotation cp="🙎🏿" type="tts">furter: hudtype 6</annotation>
- <annotation cp="🙎🏻♂">furting | hudtype 1–2 | mann | mann som furter | mimikk | surmuling</annotation>
- <annotation cp="🙎🏻♂" type="tts">mann som furter: hudtype 1–2</annotation>
- <annotation cp="🙎🏼♂">furting | hudtype 3 | mann | mann som furter | mimikk | surmuling</annotation>
- <annotation cp="🙎🏼♂" type="tts">mann som furter: hudtype 3</annotation>
- <annotation cp="🙎🏽♂">furting | hudtype 4 | mann | mann som furter | mimikk | surmuling</annotation>
- <annotation cp="🙎🏽♂" type="tts">mann som furter: hudtype 4</annotation>
- <annotation cp="🙎🏾♂">furting | hudtype 5 | mann | mann som furter | mimikk | surmuling</annotation>
- <annotation cp="🙎🏾♂" type="tts">mann som furter: hudtype 5</annotation>
- <annotation cp="🙎🏿♂">furting | hudtype 6 | mann | mann som furter | mimikk | surmuling</annotation>
- <annotation cp="🙎🏿♂" type="tts">mann som furter: hudtype 6</annotation>
- <annotation cp="🙎🏻♀">furting | hudtype 1–2 | kvinne | kvinne som furter | mimikk | surmuling</annotation>
- <annotation cp="🙎🏻♀" type="tts">kvinne som furter: hudtype 1–2</annotation>
- <annotation cp="🙎🏼♀">furting | hudtype 3 | kvinne | kvinne som furter | mimikk | surmuling</annotation>
- <annotation cp="🙎🏼♀" type="tts">kvinne som furter: hudtype 3</annotation>
- <annotation cp="🙎🏽♀">furting | hudtype 4 | kvinne | kvinne som furter | mimikk | surmuling</annotation>
- <annotation cp="🙎🏽♀" type="tts">kvinne som furter: hudtype 4</annotation>
- <annotation cp="🙎🏾♀">furting | hudtype 5 | kvinne | kvinne som furter | mimikk | surmuling</annotation>
- <annotation cp="🙎🏾♀" type="tts">kvinne som furter: hudtype 5</annotation>
- <annotation cp="🙎🏿♀">furting | hudtype 6 | kvinne | kvinne som furter | mimikk | surmuling</annotation>
- <annotation cp="🙎🏿♀" type="tts">kvinne som furter: hudtype 6</annotation>
- <annotation cp="🙅🏻">forbudt | gestikulerer NEI | hudtype 1–2 | ikke | mimikk | nei</annotation>
- <annotation cp="🙅🏻" type="tts">gestikulerer NEI: hudtype 1–2</annotation>
- <annotation cp="🙅🏼">forbudt | gestikulerer NEI | hudtype 3 | ikke | mimikk | nei</annotation>
- <annotation cp="🙅🏼" type="tts">gestikulerer NEI: hudtype 3</annotation>
- <annotation cp="🙅🏽">forbudt | gestikulerer NEI | hudtype 4 | ikke | mimikk | nei</annotation>
- <annotation cp="🙅🏽" type="tts">gestikulerer NEI: hudtype 4</annotation>
- <annotation cp="🙅🏾">forbudt | gestikulerer NEI | hudtype 5 | ikke | mimikk | nei</annotation>
- <annotation cp="🙅🏾" type="tts">gestikulerer NEI: hudtype 5</annotation>
- <annotation cp="🙅🏿">forbudt | gestikulerer NEI | hudtype 6 | ikke | mimikk | nei</annotation>
- <annotation cp="🙅🏿" type="tts">gestikulerer NEI: hudtype 6</annotation>
- <annotation cp="🙅🏻♂">avbryt | forbudt | hudtype 1–2 | mann | mann som gestikulerer NEI | nei | stopp</annotation>
- <annotation cp="🙅🏻♂" type="tts">mann som gestikulerer NEI: hudtype 1–2</annotation>
- <annotation cp="🙅🏼♂">avbryt | forbudt | hudtype 3 | mann | mann som gestikulerer NEI | nei | stopp</annotation>
- <annotation cp="🙅🏼♂" type="tts">mann som gestikulerer NEI: hudtype 3</annotation>
- <annotation cp="🙅🏽♂">avbryt | forbudt | hudtype 4 | mann | mann som gestikulerer NEI | nei | stopp</annotation>
- <annotation cp="🙅🏽♂" type="tts">mann som gestikulerer NEI: hudtype 4</annotation>
- <annotation cp="🙅🏾♂">avbryt | forbudt | hudtype 5 | mann | mann som gestikulerer NEI | nei | stopp</annotation>
- <annotation cp="🙅🏾♂" type="tts">mann som gestikulerer NEI: hudtype 5</annotation>
- <annotation cp="🙅🏿♂">avbryt | forbudt | hudtype 6 | mann | mann som gestikulerer NEI | nei | stopp</annotation>
- <annotation cp="🙅🏿♂" type="tts">mann som gestikulerer NEI: hudtype 6</annotation>
- <annotation cp="🙅🏻♀">avbryt | forbudt | hudtype 1–2 | kvinne | kvinne som gestikulerer NEI | nei | stopp</annotation>
- <annotation cp="🙅🏻♀" type="tts">kvinne som gestikulerer NEI: hudtype 1–2</annotation>
- <annotation cp="🙅🏼♀">avbryt | forbudt | hudtype 3 | kvinne | kvinne som gestikulerer NEI | nei | stopp</annotation>
- <annotation cp="🙅🏼♀" type="tts">kvinne som gestikulerer NEI: hudtype 3</annotation>
- <annotation cp="🙅🏽♀">avbryt | forbudt | hudtype 4 | kvinne | kvinne som gestikulerer NEI | nei | stopp</annotation>
- <annotation cp="🙅🏽♀" type="tts">kvinne som gestikulerer NEI: hudtype 4</annotation>
- <annotation cp="🙅🏾♀">avbryt | forbudt | hudtype 5 | kvinne | kvinne som gestikulerer NEI | nei | stopp</annotation>
- <annotation cp="🙅🏾♀" type="tts">kvinne som gestikulerer NEI: hudtype 5</annotation>
- <annotation cp="🙅🏿♀">avbryt | forbudt | hudtype 6 | kvinne | kvinne som gestikulerer NEI | nei | stopp</annotation>
- <annotation cp="🙅🏿♀" type="tts">kvinne som gestikulerer NEI: hudtype 6</annotation>
- <annotation cp="🙆🏻">gestikulerer OK | greit | hudtype 1–2 | ok</annotation>
- <annotation cp="🙆🏻" type="tts">gestikulerer OK: hudtype 1–2</annotation>
- <annotation cp="🙆🏼">gestikulerer OK | greit | hudtype 3 | ok</annotation>
- <annotation cp="🙆🏼" type="tts">gestikulerer OK: hudtype 3</annotation>
- <annotation cp="🙆🏽">gestikulerer OK | greit | hudtype 4 | ok</annotation>
- <annotation cp="🙆🏽" type="tts">gestikulerer OK: hudtype 4</annotation>
- <annotation cp="🙆🏾">gestikulerer OK | greit | hudtype 5 | ok</annotation>
- <annotation cp="🙆🏾" type="tts">gestikulerer OK: hudtype 5</annotation>
- <annotation cp="🙆🏿">gestikulerer OK | greit | hudtype 6 | ok</annotation>
- <annotation cp="🙆🏿" type="tts">gestikulerer OK: hudtype 6</annotation>
- <annotation cp="🙆🏻♂">greit | hudtype 1–2 | mann | mann som gestikulerer OK | ok</annotation>
- <annotation cp="🙆🏻♂" type="tts">mann som gestikulerer OK: hudtype 1–2</annotation>
- <annotation cp="🙆🏼♂">greit | hudtype 3 | mann | mann som gestikulerer OK | ok</annotation>
- <annotation cp="🙆🏼♂" type="tts">mann som gestikulerer OK: hudtype 3</annotation>
- <annotation cp="🙆🏽♂">greit | hudtype 4 | mann | mann som gestikulerer OK | ok</annotation>
- <annotation cp="🙆🏽♂" type="tts">mann som gestikulerer OK: hudtype 4</annotation>
- <annotation cp="🙆🏾♂">greit | hudtype 5 | mann | mann som gestikulerer OK | ok</annotation>
- <annotation cp="🙆🏾♂" type="tts">mann som gestikulerer OK: hudtype 5</annotation>
- <annotation cp="🙆🏿♂">greit | hudtype 6 | mann | mann som gestikulerer OK | ok</annotation>
- <annotation cp="🙆🏿♂" type="tts">mann som gestikulerer OK: hudtype 6</annotation>
- <annotation cp="🙆🏻♀">greit | hudtype 1–2 | kvinne | kvinne som gestikulerer OK | ok</annotation>
- <annotation cp="🙆🏻♀" type="tts">kvinne som gestikulerer OK: hudtype 1–2</annotation>
- <annotation cp="🙆🏼♀">greit | hudtype 3 | kvinne | kvinne som gestikulerer OK | ok</annotation>
- <annotation cp="🙆🏼♀" type="tts">kvinne som gestikulerer OK: hudtype 3</annotation>
- <annotation cp="🙆🏽♀">greit | hudtype 4 | kvinne | kvinne som gestikulerer OK | ok</annotation>
- <annotation cp="🙆🏽♀" type="tts">kvinne som gestikulerer OK: hudtype 4</annotation>
- <annotation cp="🙆🏾♀">greit | hudtype 5 | kvinne | kvinne som gestikulerer OK | ok</annotation>
- <annotation cp="🙆🏾♀" type="tts">kvinne som gestikulerer OK: hudtype 5</annotation>
- <annotation cp="🙆🏿♀">greit | hudtype 6 | kvinne | kvinne som gestikulerer OK | ok</annotation>
- <annotation cp="🙆🏿♀" type="tts">kvinne som gestikulerer OK: hudtype 6</annotation>
- <annotation cp="💁🏻">hjelp | hjelpende person | hudtype 1–2 | informasjon | menneske</annotation>
- <annotation cp="💁🏻" type="tts">hjelpende person: hudtype 1–2</annotation>
- <annotation cp="💁🏼">hjelp | hjelpende person | hudtype 3 | informasjon | menneske</annotation>
- <annotation cp="💁🏼" type="tts">hjelpende person: hudtype 3</annotation>
- <annotation cp="💁🏽">hjelp | hjelpende person | hudtype 4 | informasjon | menneske</annotation>
- <annotation cp="💁🏽" type="tts">hjelpende person: hudtype 4</annotation>
- <annotation cp="💁🏾">hjelp | hjelpende person | hudtype 5 | informasjon | menneske</annotation>
- <annotation cp="💁🏾" type="tts">hjelpende person: hudtype 5</annotation>
- <annotation cp="💁🏿">hjelp | hjelpende person | hudtype 6 | informasjon | menneske</annotation>
- <annotation cp="💁🏿" type="tts">hjelpende person: hudtype 6</annotation>
- <annotation cp="💁🏻♂">hjelpe | hjelpende mann | hudtype 1–2 | informasjon | mann</annotation>
- <annotation cp="💁🏻♂" type="tts">hjelpende mann: hudtype 1–2</annotation>
- <annotation cp="💁🏼♂">hjelpe | hjelpende mann | hudtype 3 | informasjon | mann</annotation>
- <annotation cp="💁🏼♂" type="tts">hjelpende mann: hudtype 3</annotation>
- <annotation cp="💁🏽♂">hjelpe | hjelpende mann | hudtype 4 | informasjon | mann</annotation>
- <annotation cp="💁🏽♂" type="tts">hjelpende mann: hudtype 4</annotation>
- <annotation cp="💁🏾♂">hjelpe | hjelpende mann | hudtype 5 | informasjon | mann</annotation>
- <annotation cp="💁🏾♂" type="tts">hjelpende mann: hudtype 5</annotation>
- <annotation cp="💁🏿♂">hjelpe | hjelpende mann | hudtype 6 | informasjon | mann</annotation>
- <annotation cp="💁🏿♂" type="tts">hjelpende mann: hudtype 6</annotation>
- <annotation cp="💁🏻♀">hjelpe | hjelpende kvinne | hudtype 1–2 | informasjon | kvinne</annotation>
- <annotation cp="💁🏻♀" type="tts">hjelpende kvinne: hudtype 1–2</annotation>
- <annotation cp="💁🏼♀">hjelpe | hjelpende kvinne | hudtype 3 | informasjon | kvinne</annotation>
- <annotation cp="💁🏼♀" type="tts">hjelpende kvinne: hudtype 3</annotation>
- <annotation cp="💁🏽♀">hjelpe | hjelpende kvinne | hudtype 4 | informasjon | kvinne</annotation>
- <annotation cp="💁🏽♀" type="tts">hjelpende kvinne: hudtype 4</annotation>
- <annotation cp="💁🏾♀">hjelpe | hjelpende kvinne | hudtype 5 | informasjon | kvinne</annotation>
- <annotation cp="💁🏾♀" type="tts">hjelpende kvinne: hudtype 5</annotation>
- <annotation cp="💁🏿♀">hjelpe | hjelpende kvinne | hudtype 6 | informasjon | kvinne</annotation>
- <annotation cp="💁🏿♀" type="tts">hjelpende kvinne: hudtype 6</annotation>
- <annotation cp="🙋🏻">hånd | hudtype 1–2 | person | rekker opp | rekker opp hånden</annotation>
- <annotation cp="🙋🏻" type="tts">rekker opp hånden: hudtype 1–2</annotation>
- <annotation cp="🙋🏼">hånd | hudtype 3 | person | rekker opp | rekker opp hånden</annotation>
- <annotation cp="🙋🏼" type="tts">rekker opp hånden: hudtype 3</annotation>
- <annotation cp="🙋🏽">hånd | hudtype 4 | person | rekker opp | rekker opp hånden</annotation>
- <annotation cp="🙋🏽" type="tts">rekker opp hånden: hudtype 4</annotation>
- <annotation cp="🙋🏾">hånd | hudtype 5 | person | rekker opp | rekker opp hånden</annotation>
- <annotation cp="🙋🏾" type="tts">rekker opp hånden: hudtype 5</annotation>
- <annotation cp="🙋🏿">hånd | hudtype 6 | person | rekker opp | rekker opp hånden</annotation>
- <annotation cp="🙋🏿" type="tts">rekker opp hånden: hudtype 6</annotation>
- <annotation cp="🙋🏻♂">hudtype 1–2 | mann | mann som rekker opp hånden | rekke opp hånden</annotation>
- <annotation cp="🙋🏻♂" type="tts">mann som rekker opp hånden: hudtype 1–2</annotation>
- <annotation cp="🙋🏼♂">hudtype 3 | mann | mann som rekker opp hånden | rekke opp hånden</annotation>
- <annotation cp="🙋🏼♂" type="tts">mann som rekker opp hånden: hudtype 3</annotation>
- <annotation cp="🙋🏽♂">hudtype 4 | mann | mann som rekker opp hånden | rekke opp hånden</annotation>
- <annotation cp="🙋🏽♂" type="tts">mann som rekker opp hånden: hudtype 4</annotation>
- <annotation cp="🙋🏾♂">hudtype 5 | mann | mann som rekker opp hånden | rekke opp hånden</annotation>
- <annotation cp="🙋🏾♂" type="tts">mann som rekker opp hånden: hudtype 5</annotation>
- <annotation cp="🙋🏿♂">hudtype 6 | mann | mann som rekker opp hånden | rekke opp hånden</annotation>
- <annotation cp="🙋🏿♂" type="tts">mann som rekker opp hånden: hudtype 6</annotation>
- <annotation cp="🙋🏻♀">hudtype 1–2 | kvinne | kvinne som rekker opp hånden | rekke opp hånden</annotation>
- <annotation cp="🙋🏻♀" type="tts">kvinne som rekker opp hånden: hudtype 1–2</annotation>
- <annotation cp="🙋🏼♀">hudtype 3 | kvinne | kvinne som rekker opp hånden | rekke opp hånden</annotation>
- <annotation cp="🙋🏼♀" type="tts">kvinne som rekker opp hånden: hudtype 3</annotation>
- <annotation cp="🙋🏽♀">hudtype 4 | kvinne | kvinne som rekker opp hånden | rekke opp hånden</annotation>
- <annotation cp="🙋🏽♀" type="tts">kvinne som rekker opp hånden: hudtype 4</annotation>
- <annotation cp="🙋🏾♀">hudtype 5 | kvinne | kvinne som rekker opp hånden | rekke opp hånden</annotation>
- <annotation cp="🙋🏾♀" type="tts">kvinne som rekker opp hånden: hudtype 5</annotation>
- <annotation cp="🙋🏿♀">hudtype 6 | kvinne | kvinne som rekker opp hånden | rekke opp hånden</annotation>
- <annotation cp="🙋🏿♀" type="tts">kvinne som rekker opp hånden: hudtype 6</annotation>
- <annotation cp="🧏🏻">døv | døv person | høre | hudtype 1–2 | øre | tilgjengelighet</annotation>
- <annotation cp="🧏🏻" type="tts">døv person: hudtype 1–2</annotation>
- <annotation cp="🧏🏼">døv | døv person | høre | hudtype 3 | øre | tilgjengelighet</annotation>
- <annotation cp="🧏🏼" type="tts">døv person: hudtype 3</annotation>
- <annotation cp="🧏🏽">døv | døv person | høre | hudtype 4 | øre | tilgjengelighet</annotation>
- <annotation cp="🧏🏽" type="tts">døv person: hudtype 4</annotation>
- <annotation cp="🧏🏾">døv | døv person | høre | hudtype 5 | øre | tilgjengelighet</annotation>
- <annotation cp="🧏🏾" type="tts">døv person: hudtype 5</annotation>
- <annotation cp="🧏🏿">døv | døv person | høre | hudtype 6 | øre | tilgjengelighet</annotation>
- <annotation cp="🧏🏿" type="tts">døv person: hudtype 6</annotation>
- <annotation cp="🧏🏻♂">døv | hudtype 1–2 | mann</annotation>
- <annotation cp="🧏🏻♂" type="tts">døv mann: hudtype 1–2</annotation>
- <annotation cp="🧏🏼♂">døv | hudtype 3 | mann</annotation>
- <annotation cp="🧏🏼♂" type="tts">døv mann: hudtype 3</annotation>
- <annotation cp="🧏🏽♂">døv | hudtype 4 | mann</annotation>
- <annotation cp="🧏🏽♂" type="tts">døv mann: hudtype 4</annotation>
- <annotation cp="🧏🏾♂">døv | hudtype 5 | mann</annotation>
- <annotation cp="🧏🏾♂" type="tts">døv mann: hudtype 5</annotation>
- <annotation cp="🧏🏿♂">døv | hudtype 6 | mann</annotation>
- <annotation cp="🧏🏿♂" type="tts">døv mann: hudtype 6</annotation>
- <annotation cp="🧏🏻♀">døv | hudtype 1–2 | kvinne</annotation>
- <annotation cp="🧏🏻♀" type="tts">døv kvinne: hudtype 1–2</annotation>
- <annotation cp="🧏🏼♀">døv | hudtype 3 | kvinne</annotation>
- <annotation cp="🧏🏼♀" type="tts">døv kvinne: hudtype 3</annotation>
- <annotation cp="🧏🏽♀">døv | hudtype 4 | kvinne</annotation>
- <annotation cp="🧏🏽♀" type="tts">døv kvinne: hudtype 4</annotation>
- <annotation cp="🧏🏾♀">døv | hudtype 5 | kvinne</annotation>
- <annotation cp="🧏🏾♀" type="tts">døv kvinne: hudtype 5</annotation>
- <annotation cp="🧏🏿♀">døv | hudtype 6 | kvinne</annotation>
- <annotation cp="🧏🏿♀" type="tts">døv kvinne: hudtype 6</annotation>
- <annotation cp="🙇🏻">beklagelse | beklager | bukk | bukker | hudtype 1–2 | unnskyld</annotation>
- <annotation cp="🙇🏻" type="tts">bukker: hudtype 1–2</annotation>
- <annotation cp="🙇🏼">beklagelse | beklager | bukk | bukker | hudtype 3 | unnskyld</annotation>
- <annotation cp="🙇🏼" type="tts">bukker: hudtype 3</annotation>
- <annotation cp="🙇🏽">beklagelse | beklager | bukk | bukker | hudtype 4 | unnskyld</annotation>
- <annotation cp="🙇🏽" type="tts">bukker: hudtype 4</annotation>
- <annotation cp="🙇🏾">beklagelse | beklager | bukk | bukker | hudtype 5 | unnskyld</annotation>
- <annotation cp="🙇🏾" type="tts">bukker: hudtype 5</annotation>
- <annotation cp="🙇🏿">beklagelse | beklager | bukk | bukker | hudtype 6 | unnskyld</annotation>
- <annotation cp="🙇🏿" type="tts">bukker: hudtype 6</annotation>
- <annotation cp="🙇🏻♂">beklagelse | bukk | bukkende mann | hudtype 1–2 | mann | unnskyld</annotation>
- <annotation cp="🙇🏻♂" type="tts">bukkende mann: hudtype 1–2</annotation>
- <annotation cp="🙇🏼♂">beklagelse | bukk | bukkende mann | hudtype 3 | mann | unnskyld</annotation>
- <annotation cp="🙇🏼♂" type="tts">bukkende mann: hudtype 3</annotation>
- <annotation cp="🙇🏽♂">beklagelse | bukk | bukkende mann | hudtype 4 | mann | unnskyld</annotation>
- <annotation cp="🙇🏽♂" type="tts">bukkende mann: hudtype 4</annotation>
- <annotation cp="🙇🏾♂">beklagelse | bukk | bukkende mann | hudtype 5 | mann | unnskyld</annotation>
- <annotation cp="🙇🏾♂" type="tts">bukkende mann: hudtype 5</annotation>
- <annotation cp="🙇🏿♂">beklagelse | bukk | bukkende mann | hudtype 6 | mann | unnskyld</annotation>
- <annotation cp="🙇🏿♂" type="tts">bukkende mann: hudtype 6</annotation>
- <annotation cp="🙇🏻♀">beklagelse | bukk | bukkende kvinne | hudtype 1–2 | kvinne | unnskyld</annotation>
- <annotation cp="🙇🏻♀" type="tts">bukkende kvinne: hudtype 1–2</annotation>
- <annotation cp="🙇🏼♀">beklagelse | bukk | bukkende kvinne | hudtype 3 | kvinne | unnskyld</annotation>
- <annotation cp="🙇🏼♀" type="tts">bukkende kvinne: hudtype 3</annotation>
- <annotation cp="🙇🏽♀">beklagelse | bukk | bukkende kvinne | hudtype 4 | kvinne | unnskyld</annotation>
- <annotation cp="🙇🏽♀" type="tts">bukkende kvinne: hudtype 4</annotation>
- <annotation cp="🙇🏾♀">beklagelse | bukk | bukkende kvinne | hudtype 5 | kvinne | unnskyld</annotation>
- <annotation cp="🙇🏾♀" type="tts">bukkende kvinne: hudtype 5</annotation>
- <annotation cp="🙇🏿♀">beklagelse | bukk | bukkende kvinne | hudtype 6 | kvinne | unnskyld</annotation>
- <annotation cp="🙇🏿♀" type="tts">bukkende kvinne: hudtype 6</annotation>
- <annotation cp="🤦🏻">ansikt | facepalm | fjes | hudtype 1–2 | irritasjon | oppgitt | slår hånden mot pannen | vantro</annotation>
- <annotation cp="🤦🏻" type="tts">slår hånden mot pannen: hudtype 1–2</annotation>
- <annotation cp="🤦🏼">ansikt | facepalm | fjes | hudtype 3 | irritasjon | oppgitt | slår hånden mot pannen | vantro</annotation>
- <annotation cp="🤦🏼" type="tts">slår hånden mot pannen: hudtype 3</annotation>
- <annotation cp="🤦🏽">ansikt | facepalm | fjes | hudtype 4 | irritasjon | oppgitt | slår hånden mot pannen | vantro</annotation>
- <annotation cp="🤦🏽" type="tts">slår hånden mot pannen: hudtype 4</annotation>
- <annotation cp="🤦🏾">ansikt | facepalm | fjes | hudtype 5 | irritasjon | oppgitt | slår hånden mot pannen | vantro</annotation>
- <annotation cp="🤦🏾" type="tts">slår hånden mot pannen: hudtype 5</annotation>
- <annotation cp="🤦🏿">ansikt | facepalm | fjes | hudtype 6 | irritasjon | oppgitt | slår hånden mot pannen | vantro</annotation>
- <annotation cp="🤦🏿" type="tts">slår hånden mot pannen: hudtype 6</annotation>
- <annotation cp="🤦🏻♂">ansikt | facepalm | fjes | hudtype 1–2 | irritasjon | mann | mann som slår hånden mot pannen | oppgitt | vantro</annotation>
- <annotation cp="🤦🏻♂" type="tts">mann som slår hånden mot pannen: hudtype 1–2</annotation>
- <annotation cp="🤦🏼♂">ansikt | facepalm | fjes | hudtype 3 | irritasjon | mann | mann som slår hånden mot pannen | oppgitt | vantro</annotation>
- <annotation cp="🤦🏼♂" type="tts">mann som slår hånden mot pannen: hudtype 3</annotation>
- <annotation cp="🤦🏽♂">ansikt | facepalm | fjes | hudtype 4 | irritasjon | mann | mann som slår hånden mot pannen | oppgitt | vantro</annotation>
- <annotation cp="🤦🏽♂" type="tts">mann som slår hånden mot pannen: hudtype 4</annotation>
- <annotation cp="🤦🏾♂">ansikt | facepalm | fjes | hudtype 5 | irritasjon | mann | mann som slår hånden mot pannen | oppgitt | vantro</annotation>
- <annotation cp="🤦🏾♂" type="tts">mann som slår hånden mot pannen: hudtype 5</annotation>
- <annotation cp="🤦🏿♂">ansikt | facepalm | fjes | hudtype 6 | irritasjon | mann | mann som slår hånden mot pannen | oppgitt | vantro</annotation>
- <annotation cp="🤦🏿♂" type="tts">mann som slår hånden mot pannen: hudtype 6</annotation>
- <annotation cp="🤦🏻♀">ansikt | facepalm | fjes | hudtype 1–2 | irritasjon | kvinne | kvinne som slår hånden mot pannen | oppgitt | vantro</annotation>
- <annotation cp="🤦🏻♀" type="tts">kvinne som slår hånden mot pannen: hudtype 1–2</annotation>
- <annotation cp="🤦🏼♀">ansikt | facepalm | fjes | hudtype 3 | irritasjon | kvinne | kvinne som slår hånden mot pannen | oppgitt | vantro</annotation>
- <annotation cp="🤦🏼♀" type="tts">kvinne som slår hånden mot pannen: hudtype 3</annotation>
- <annotation cp="🤦🏽♀">ansikt | facepalm | fjes | hudtype 4 | irritasjon | kvinne | kvinne som slår hånden mot pannen | oppgitt | vantro</annotation>
- <annotation cp="🤦🏽♀" type="tts">kvinne som slår hånden mot pannen: hudtype 4</annotation>
- <annotation cp="🤦🏾♀">ansikt | facepalm | fjes | hudtype 5 | irritasjon | kvinne | kvinne som slår hånden mot pannen | oppgitt | vantro</annotation>
- <annotation cp="🤦🏾♀" type="tts">kvinne som slår hånden mot pannen: hudtype 5</annotation>
- <annotation cp="🤦🏿♀">ansikt | facepalm | fjes | hudtype 6 | irritasjon | kvinne | kvinne som slår hånden mot pannen | oppgitt | vantro</annotation>
- <annotation cp="🤦🏿♀" type="tts">kvinne som slår hånden mot pannen: hudtype 6</annotation>
- <annotation cp="🤷🏻">hudtype 1–2 | likegyldighet | skuldertrekning | trekker på skuldrene | tvil</annotation>
- <annotation cp="🤷🏻" type="tts">trekker på skuldrene: hudtype 1–2</annotation>
- <annotation cp="🤷🏼">hudtype 3 | likegyldighet | skuldertrekning | trekker på skuldrene | tvil</annotation>
- <annotation cp="🤷🏼" type="tts">trekker på skuldrene: hudtype 3</annotation>
- <annotation cp="🤷🏽">hudtype 4 | likegyldighet | skuldertrekning | trekker på skuldrene | tvil</annotation>
- <annotation cp="🤷🏽" type="tts">trekker på skuldrene: hudtype 4</annotation>
- <annotation cp="🤷🏾">hudtype 5 | likegyldighet | skuldertrekning | trekker på skuldrene | tvil</annotation>
- <annotation cp="🤷🏾" type="tts">trekker på skuldrene: hudtype 5</annotation>
- <annotation cp="🤷🏿">hudtype 6 | likegyldighet | skuldertrekning | trekker på skuldrene | tvil</annotation>
- <annotation cp="🤷🏿" type="tts">trekker på skuldrene: hudtype 6</annotation>
- <annotation cp="🤷🏻♂">hudtype 1–2 | likegyldighet | mann | mann som trekker på skuldrene | skuldertrekning | tvil</annotation>
- <annotation cp="🤷🏻♂" type="tts">mann som trekker på skuldrene: hudtype 1–2</annotation>
- <annotation cp="🤷🏼♂">hudtype 3 | likegyldighet | mann | mann som trekker på skuldrene | skuldertrekning | tvil</annotation>
- <annotation cp="🤷🏼♂" type="tts">mann som trekker på skuldrene: hudtype 3</annotation>
- <annotation cp="🤷🏽♂">hudtype 4 | likegyldighet | mann | mann som trekker på skuldrene | skuldertrekning | tvil</annotation>
- <annotation cp="🤷🏽♂" type="tts">mann som trekker på skuldrene: hudtype 4</annotation>
- <annotation cp="🤷🏾♂">hudtype 5 | likegyldighet | mann | mann som trekker på skuldrene | skuldertrekning | tvil</annotation>
- <annotation cp="🤷🏾♂" type="tts">mann som trekker på skuldrene: hudtype 5</annotation>
- <annotation cp="🤷🏿♂">hudtype 6 | likegyldighet | mann | mann som trekker på skuldrene | skuldertrekning | tvil</annotation>
- <annotation cp="🤷🏿♂" type="tts">mann som trekker på skuldrene: hudtype 6</annotation>
- <annotation cp="🤷🏻♀">hudtype 1–2 | kvinne | kvinne som trekker på skuldrene | likegyldighet | skuldertrekning | tvil</annotation>
- <annotation cp="🤷🏻♀" type="tts">kvinne som trekker på skuldrene: hudtype 1–2</annotation>
- <annotation cp="🤷🏼♀">hudtype 3 | kvinne | kvinne som trekker på skuldrene | likegyldighet | skuldertrekning | tvil</annotation>
- <annotation cp="🤷🏼♀" type="tts">kvinne som trekker på skuldrene: hudtype 3</annotation>
- <annotation cp="🤷🏽♀">hudtype 4 | kvinne | kvinne som trekker på skuldrene | likegyldighet | skuldertrekning | tvil</annotation>
- <annotation cp="🤷🏽♀" type="tts">kvinne som trekker på skuldrene: hudtype 4</annotation>
- <annotation cp="🤷🏾♀">hudtype 5 | kvinne | kvinne som trekker på skuldrene | likegyldighet | skuldertrekning | tvil</annotation>
- <annotation cp="🤷🏾♀" type="tts">kvinne som trekker på skuldrene: hudtype 5</annotation>
- <annotation cp="🤷🏿♀">hudtype 6 | kvinne | kvinne som trekker på skuldrene | likegyldighet | skuldertrekning | tvil</annotation>
- <annotation cp="🤷🏿♀" type="tts">kvinne som trekker på skuldrene: hudtype 6</annotation>
- <annotation cp="🧑🏻⚕">doktor | helsearbeider | helsevesen | hudtype 1–2 | lege | sykepleier | terapeut</annotation>
- <annotation cp="🧑🏻⚕" type="tts">helsearbeider: hudtype 1–2</annotation>
- <annotation cp="🧑🏼⚕">doktor | helsearbeider | helsevesen | hudtype 3 | lege | sykepleier | terapeut</annotation>
- <annotation cp="🧑🏼⚕" type="tts">helsearbeider: hudtype 3</annotation>
- <annotation cp="🧑🏽⚕">doktor | helsearbeider | helsevesen | hudtype 4 | lege | sykepleier | terapeut</annotation>
- <annotation cp="🧑🏽⚕" type="tts">helsearbeider: hudtype 4</annotation>
- <annotation cp="🧑🏾⚕">doktor | helsearbeider | helsevesen | hudtype 5 | lege | sykepleier | terapeut</annotation>
- <annotation cp="🧑🏾⚕" type="tts">helsearbeider: hudtype 5</annotation>
- <annotation cp="🧑🏿⚕">doktor | helsearbeider | helsevesen | hudtype 6 | lege | sykepleier | terapeut</annotation>
- <annotation cp="🧑🏿⚕" type="tts">helsearbeider: hudtype 6</annotation>
- <annotation cp="👨🏻⚕">doktor | helsevesen | hudtype 1–2 | lege | mann | mannlig helsearbeider | sykepleier | terapeut</annotation>
- <annotation cp="👨🏻⚕" type="tts">mannlig helsearbeider: hudtype 1–2</annotation>
- <annotation cp="👨🏼⚕">doktor | helsevesen | hudtype 3 | lege | mann | mannlig helsearbeider | sykepleier | terapeut</annotation>
- <annotation cp="👨🏼⚕" type="tts">mannlig helsearbeider: hudtype 3</annotation>
- <annotation cp="👨🏽⚕">doktor | helsevesen | hudtype 4 | lege | mann | mannlig helsearbeider | sykepleier | terapeut</annotation>
- <annotation cp="👨🏽⚕" type="tts">mannlig helsearbeider: hudtype 4</annotation>
- <annotation cp="👨🏾⚕">doktor | helsevesen | hudtype 5 | lege | mann | mannlig helsearbeider | sykepleier | terapeut</annotation>
- <annotation cp="👨🏾⚕" type="tts">mannlig helsearbeider: hudtype 5</annotation>
- <annotation cp="👨🏿⚕">doktor | helsevesen | hudtype 6 | lege | mann | mannlig helsearbeider | sykepleier | terapeut</annotation>
- <annotation cp="👨🏿⚕" type="tts">mannlig helsearbeider: hudtype 6</annotation>
- <annotation cp="👩🏻⚕">doktor | helsevesen | hudtype 1–2 | kvinne | kvinnelig helsearbeider | lege | sykepleier | terapeut</annotation>
- <annotation cp="👩🏻⚕" type="tts">kvinnelig helsearbeider: hudtype 1–2</annotation>
- <annotation cp="👩🏼⚕">doktor | helsevesen | hudtype 3 | kvinne | kvinnelig helsearbeider | lege | sykepleier | terapeut</annotation>
- <annotation cp="👩🏼⚕" type="tts">kvinnelig helsearbeider: hudtype 3</annotation>
- <annotation cp="👩🏽⚕">doktor | helsevesen | hudtype 4 | kvinne | kvinnelig helsearbeider | lege | sykepleier | terapeut</annotation>
- <annotation cp="👩🏽⚕" type="tts">kvinnelig helsearbeider: hudtype 4</annotation>
- <annotation cp="👩🏾⚕">doktor | helsevesen | hudtype 5 | kvinne | kvinnelig helsearbeider | lege | sykepleier | terapeut</annotation>
- <annotation cp="👩🏾⚕" type="tts">kvinnelig helsearbeider: hudtype 5</annotation>
- <annotation cp="👩🏿⚕">doktor | helsevesen | hudtype 6 | kvinne | kvinnelig helsearbeider | lege | sykepleier | terapeut</annotation>
- <annotation cp="👩🏿⚕" type="tts">kvinnelig helsearbeider: hudtype 6</annotation>
- <annotation cp="🧑🏻🎓">hudtype 1–2 | skole | student | universitet</annotation>
- <annotation cp="🧑🏻🎓" type="tts">student: hudtype 1–2</annotation>
- <annotation cp="🧑🏼🎓">hudtype 3 | skole | student | universitet</annotation>
- <annotation cp="🧑🏼🎓" type="tts">student: hudtype 3</annotation>
- <annotation cp="🧑🏽🎓">hudtype 4 | skole | student | universitet</annotation>
- <annotation cp="🧑🏽🎓" type="tts">student: hudtype 4</annotation>
- <annotation cp="🧑🏾🎓">hudtype 5 | skole | student | universitet</annotation>
- <annotation cp="🧑🏾🎓" type="tts">student: hudtype 5</annotation>
- <annotation cp="🧑🏿🎓">hudtype 6 | skole | student | universitet</annotation>
- <annotation cp="🧑🏿🎓" type="tts">student: hudtype 6</annotation>
- <annotation cp="👨🏻🎓">hudtype 1–2 | mann | mannlig student | skole | student | universitet</annotation>
- <annotation cp="👨🏻🎓" type="tts">mannlig student: hudtype 1–2</annotation>
- <annotation cp="👨🏼🎓">hudtype 3 | mann | mannlig student | skole | student | universitet</annotation>
- <annotation cp="👨🏼🎓" type="tts">mannlig student: hudtype 3</annotation>
- <annotation cp="👨🏽🎓">hudtype 4 | mann | mannlig student | skole | student | universitet</annotation>
- <annotation cp="👨🏽🎓" type="tts">mannlig student: hudtype 4</annotation>
- <annotation cp="👨🏾🎓">hudtype 5 | mann | mannlig student | skole | student | universitet</annotation>
- <annotation cp="👨🏾🎓" type="tts">mannlig student: hudtype 5</annotation>
- <annotation cp="👨🏿🎓">hudtype 6 | mann | mannlig student | skole | student | universitet</annotation>
- <annotation cp="👨🏿🎓" type="tts">mannlig student: hudtype 6</annotation>
- <annotation cp="👩🏻🎓">hudtype 1–2 | kvinne | kvinnelig student | skole | student | universitet</annotation>
- <annotation cp="👩🏻🎓" type="tts">kvinnelig student: hudtype 1–2</annotation>
- <annotation cp="👩🏼🎓">hudtype 3 | kvinne | kvinnelig student | skole | student | universitet</annotation>
- <annotation cp="👩🏼🎓" type="tts">kvinnelig student: hudtype 3</annotation>
- <annotation cp="👩🏽🎓">hudtype 4 | kvinne | kvinnelig student | skole | student | universitet</annotation>
- <annotation cp="👩🏽🎓" type="tts">kvinnelig student: hudtype 4</annotation>
- <annotation cp="👩🏾🎓">hudtype 5 | kvinne | kvinnelig student | skole | student | universitet</annotation>
- <annotation cp="👩🏾🎓" type="tts">kvinnelig student: hudtype 5</annotation>
- <annotation cp="👩🏿🎓">hudtype 6 | kvinne | kvinnelig student | skole | student | universitet</annotation>
- <annotation cp="👩🏿🎓" type="tts">kvinnelig student: hudtype 6</annotation>
- <annotation cp="🧑🏻🏫">hudtype 1–2 | lærer | skole | undervisning</annotation>
- <annotation cp="🧑🏻🏫" type="tts">lærer: hudtype 1–2</annotation>
- <annotation cp="🧑🏼🏫">hudtype 3 | lærer | skole | undervisning</annotation>
- <annotation cp="🧑🏼🏫" type="tts">lærer: hudtype 3</annotation>
- <annotation cp="🧑🏽🏫">hudtype 4 | lærer | skole | undervisning</annotation>
- <annotation cp="🧑🏽🏫" type="tts">lærer: hudtype 4</annotation>
- <annotation cp="🧑🏾🏫">hudtype 5 | lærer | skole | undervisning</annotation>
- <annotation cp="🧑🏾🏫" type="tts">lærer: hudtype 5</annotation>
- <annotation cp="🧑🏿🏫">hudtype 6 | lærer | skole | undervisning</annotation>
- <annotation cp="🧑🏿🏫" type="tts">lærer: hudtype 6</annotation>
- <annotation cp="👨🏻🏫">hudtype 1–2 | lærer | mann | mannlig lærer | skole | undervisning</annotation>
- <annotation cp="👨🏻🏫" type="tts">mannlig lærer: hudtype 1–2</annotation>
- <annotation cp="👨🏼🏫">hudtype 3 | lærer | mann | mannlig lærer | skole | undervisning</annotation>
- <annotation cp="👨🏼🏫" type="tts">mannlig lærer: hudtype 3</annotation>
- <annotation cp="👨🏽🏫">hudtype 4 | lærer | mann | mannlig lærer | skole | undervisning</annotation>
- <annotation cp="👨🏽🏫" type="tts">mannlig lærer: hudtype 4</annotation>
- <annotation cp="👨🏾🏫">hudtype 5 | lærer | mann | mannlig lærer | skole | undervisning</annotation>
- <annotation cp="👨🏾🏫" type="tts">mannlig lærer: hudtype 5</annotation>
- <annotation cp="👨🏿🏫">hudtype 6 | lærer | mann | mannlig lærer | skole | undervisning</annotation>
- <annotation cp="👨🏿🏫" type="tts">mannlig lærer: hudtype 6</annotation>
- <annotation cp="👩🏻🏫">hudtype 1–2 | kvinne | kvinnelig lærer | lærer | skole | undervisning</annotation>
- <annotation cp="👩🏻🏫" type="tts">kvinnelig lærer: hudtype 1–2</annotation>
- <annotation cp="👩🏼🏫">hudtype 3 | kvinne | kvinnelig lærer | lærer | skole | undervisning</annotation>
- <annotation cp="👩🏼🏫" type="tts">kvinnelig lærer: hudtype 3</annotation>
- <annotation cp="👩🏽🏫">hudtype 4 | kvinne | kvinnelig lærer | lærer | skole | undervisning</annotation>
- <annotation cp="👩🏽🏫" type="tts">kvinnelig lærer: hudtype 4</annotation>
- <annotation cp="👩🏾🏫">hudtype 5 | kvinne | kvinnelig lærer | lærer | skole | undervisning</annotation>
- <annotation cp="👩🏾🏫" type="tts">kvinnelig lærer: hudtype 5</annotation>
- <annotation cp="👩🏿🏫">hudtype 6 | kvinne | kvinnelig lærer | lærer | skole | undervisning</annotation>
- <annotation cp="👩🏿🏫" type="tts">kvinnelig lærer: hudtype 6</annotation>
- <annotation cp="🧑🏻⚖">dommer | hudtype 1–2 | jus | juss</annotation>
- <annotation cp="🧑🏻⚖" type="tts">dommer: hudtype 1–2</annotation>
- <annotation cp="🧑🏼⚖">dommer | hudtype 3 | jus | juss</annotation>
- <annotation cp="🧑🏼⚖" type="tts">dommer: hudtype 3</annotation>
- <annotation cp="🧑🏽⚖">dommer | hudtype 4 | jus | juss</annotation>
- <annotation cp="🧑🏽⚖" type="tts">dommer: hudtype 4</annotation>
- <annotation cp="🧑🏾⚖">dommer | hudtype 5 | jus | juss</annotation>
- <annotation cp="🧑🏾⚖" type="tts">dommer: hudtype 5</annotation>
- <annotation cp="🧑🏿⚖">dommer | hudtype 6 | jus | juss</annotation>
- <annotation cp="🧑🏿⚖" type="tts">dommer: hudtype 6</annotation>
- <annotation cp="👨🏻⚖">dommer | hudtype 1–2 | jus | juss | mann | mannlig dommer | rettssak</annotation>
- <annotation cp="👨🏻⚖" type="tts">mannlig dommer: hudtype 1–2</annotation>
- <annotation cp="👨🏼⚖">dommer | hudtype 3 | jus | juss | mann | mannlig dommer | rettssak</annotation>
- <annotation cp="👨🏼⚖" type="tts">mannlig dommer: hudtype 3</annotation>
- <annotation cp="👨🏽⚖">dommer | hudtype 4 | jus | juss | mann | mannlig dommer | rettssak</annotation>
- <annotation cp="👨🏽⚖" type="tts">mannlig dommer: hudtype 4</annotation>
- <annotation cp="👨🏾⚖">dommer | hudtype 5 | jus | juss | mann | mannlig dommer | rettssak</annotation>
- <annotation cp="👨🏾⚖" type="tts">mannlig dommer: hudtype 5</annotation>
- <annotation cp="👨🏿⚖">dommer | hudtype 6 | jus | juss | mann | mannlig dommer | rettssak</annotation>
- <annotation cp="👨🏿⚖" type="tts">mannlig dommer: hudtype 6</annotation>
- <annotation cp="👩🏻⚖">dommer | hudtype 1–2 | jus | juss | kvinne | kvinnelig dommer | rettssak</annotation>
- <annotation cp="👩🏻⚖" type="tts">kvinnelig dommer: hudtype 1–2</annotation>
- <annotation cp="👩🏼⚖">dommer | hudtype 3 | jus | juss | kvinne | kvinnelig dommer | rettssak</annotation>
- <annotation cp="👩🏼⚖" type="tts">kvinnelig dommer: hudtype 3</annotation>
- <annotation cp="👩🏽⚖">dommer | hudtype 4 | jus | juss | kvinne | kvinnelig dommer | rettssak</annotation>
- <annotation cp="👩🏽⚖" type="tts">kvinnelig dommer: hudtype 4</annotation>
- <annotation cp="👩🏾⚖">dommer | hudtype 5 | jus | juss | kvinne | kvinnelig dommer | rettssak</annotation>
- <annotation cp="👩🏾⚖" type="tts">kvinnelig dommer: hudtype 5</annotation>
- <annotation cp="👩🏿⚖">dommer | hudtype 6 | jus | juss | kvinne | kvinnelig dommer | rettssak</annotation>
- <annotation cp="👩🏿⚖" type="tts">kvinnelig dommer: hudtype 6</annotation>
- <annotation cp="🧑🏻🌾">bonde | gårdbruker | hudtype 1–2 | jordbruk</annotation>
- <annotation cp="🧑🏻🌾" type="tts">gårdbruker: hudtype 1–2</annotation>
- <annotation cp="🧑🏼🌾">bonde | gårdbruker | hudtype 3 | jordbruk</annotation>
- <annotation cp="🧑🏼🌾" type="tts">gårdbruker: hudtype 3</annotation>
- <annotation cp="🧑🏽🌾">bonde | gårdbruker | hudtype 4 | jordbruk</annotation>
- <annotation cp="🧑🏽🌾" type="tts">gårdbruker: hudtype 4</annotation>
- <annotation cp="🧑🏾🌾">bonde | gårdbruker | hudtype 5 | jordbruk</annotation>
- <annotation cp="🧑🏾🌾" type="tts">gårdbruker: hudtype 5</annotation>
- <annotation cp="🧑🏿🌾">bonde | gårdbruker | hudtype 6 | jordbruk</annotation>
- <annotation cp="🧑🏿🌾" type="tts">gårdbruker: hudtype 6</annotation>
- <annotation cp="👨🏻🌾">bonde | dyrke | gårdbruker | hudtype 1–2 | jordbruk | mann | mannlig gårdbruker</annotation>
- <annotation cp="👨🏻🌾" type="tts">mannlig gårdbruker: hudtype 1–2</annotation>
- <annotation cp="👨🏼🌾">bonde | dyrke | gårdbruker | hudtype 3 | jordbruk | mann | mannlig gårdbruker</annotation>
- <annotation cp="👨🏼🌾" type="tts">mannlig gårdbruker: hudtype 3</annotation>
- <annotation cp="👨🏽🌾">bonde | dyrke | gårdbruker | hudtype 4 | jordbruk | mann | mannlig gårdbruker</annotation>
- <annotation cp="👨🏽🌾" type="tts">mannlig gårdbruker: hudtype 4</annotation>
- <annotation cp="👨🏾🌾">bonde | dyrke | gårdbruker | hudtype 5 | jordbruk | mann | mannlig gårdbruker</annotation>
- <annotation cp="👨🏾🌾" type="tts">mannlig gårdbruker: hudtype 5</annotation>
- <annotation cp="👨🏿🌾">bonde | dyrke | gårdbruker | hudtype 6 | jordbruk | mann | mannlig gårdbruker</annotation>
- <annotation cp="👨🏿🌾" type="tts">mannlig gårdbruker: hudtype 6</annotation>
- <annotation cp="👩🏻🌾">bonde | dyrke | gårdbruker | hudtype 1–2 | jordbruk | kvinne | kvinnelig gårdbruker</annotation>
- <annotation cp="👩🏻🌾" type="tts">kvinnelig gårdbruker: hudtype 1–2</annotation>
- <annotation cp="👩🏼🌾">bonde | dyrke | gårdbruker | hudtype 3 | jordbruk | kvinne | kvinnelig gårdbruker</annotation>
- <annotation cp="👩🏼🌾" type="tts">kvinnelig gårdbruker: hudtype 3</annotation>
- <annotation cp="👩🏽🌾">bonde | dyrke | gårdbruker | hudtype 4 | jordbruk | kvinne | kvinnelig gårdbruker</annotation>
- <annotation cp="👩🏽🌾" type="tts">kvinnelig gårdbruker: hudtype 4</annotation>
- <annotation cp="👩🏾🌾">bonde | dyrke | gårdbruker | hudtype 5 | jordbruk | kvinne | kvinnelig gårdbruker</annotation>
- <annotation cp="👩🏾🌾" type="tts">kvinnelig gårdbruker: hudtype 5</annotation>
- <annotation cp="👩🏿🌾">bonde | dyrke | gårdbruker | hudtype 6 | jordbruk | kvinne | kvinnelig gårdbruker</annotation>
- <annotation cp="👩🏿🌾" type="tts">kvinnelig gårdbruker: hudtype 6</annotation>
- <annotation cp="🧑🏻🍳">hudtype 1–2 | kokk | matlaging | restaurant</annotation>
- <annotation cp="🧑🏻🍳" type="tts">kokk: hudtype 1–2</annotation>
- <annotation cp="🧑🏼🍳">hudtype 3 | kokk | matlaging | restaurant</annotation>
- <annotation cp="🧑🏼🍳" type="tts">kokk: hudtype 3</annotation>
- <annotation cp="🧑🏽🍳">hudtype 4 | kokk | matlaging | restaurant</annotation>
- <annotation cp="🧑🏽🍳" type="tts">kokk: hudtype 4</annotation>
- <annotation cp="🧑🏾🍳">hudtype 5 | kokk | matlaging | restaurant</annotation>
- <annotation cp="🧑🏾🍳" type="tts">kokk: hudtype 5</annotation>
- <annotation cp="🧑🏿🍳">hudtype 6 | kokk | matlaging | restaurant</annotation>
- <annotation cp="🧑🏿🍳" type="tts">kokk: hudtype 6</annotation>
- <annotation cp="👨🏻🍳">hudtype 1–2 | mann | mannlig kokk | matlaging | restaurant</annotation>
- <annotation cp="👨🏻🍳" type="tts">mannlig kokk: hudtype 1–2</annotation>
- <annotation cp="👨🏼🍳">hudtype 3 | mann | mannlig kokk | matlaging | restaurant</annotation>
- <annotation cp="👨🏼🍳" type="tts">mannlig kokk: hudtype 3</annotation>
- <annotation cp="👨🏽🍳">hudtype 4 | mann | mannlig kokk | matlaging | restaurant</annotation>
- <annotation cp="👨🏽🍳" type="tts">mannlig kokk: hudtype 4</annotation>
- <annotation cp="👨🏾🍳">hudtype 5 | mann | mannlig kokk | matlaging | restaurant</annotation>
- <annotation cp="👨🏾🍳" type="tts">mannlig kokk: hudtype 5</annotation>
- <annotation cp="👨🏿🍳">hudtype 6 | mann | mannlig kokk | matlaging | restaurant</annotation>
- <annotation cp="👨🏿🍳" type="tts">mannlig kokk: hudtype 6</annotation>
- <annotation cp="👩🏻🍳">hudtype 1–2 | kvinne | kvinnelig kokk | matlaging | restaurant</annotation>
- <annotation cp="👩🏻🍳" type="tts">kvinnelig kokk: hudtype 1–2</annotation>
- <annotation cp="👩🏼🍳">hudtype 3 | kvinne | kvinnelig kokk | matlaging | restaurant</annotation>
- <annotation cp="👩🏼🍳" type="tts">kvinnelig kokk: hudtype 3</annotation>
- <annotation cp="👩🏽🍳">hudtype 4 | kvinne | kvinnelig kokk | matlaging | restaurant</annotation>
- <annotation cp="👩🏽🍳" type="tts">kvinnelig kokk: hudtype 4</annotation>
- <annotation cp="👩🏾🍳">hudtype 5 | kvinne | kvinnelig kokk | matlaging | restaurant</annotation>
- <annotation cp="👩🏾🍳" type="tts">kvinnelig kokk: hudtype 5</annotation>
- <annotation cp="👩🏿🍳">hudtype 6 | kvinne | kvinnelig kokk | matlaging | restaurant</annotation>
- <annotation cp="👩🏿🍳" type="tts">kvinnelig kokk: hudtype 6</annotation>
- <annotation cp="🧑🏻🔧">bil | elektriker | håndverker | hudtype 1–2 | mekaniker | motor | rørlegger</annotation>
- <annotation cp="🧑🏻🔧" type="tts">mekaniker: hudtype 1–2</annotation>
- <annotation cp="🧑🏼🔧">bil | elektriker | håndverker | hudtype 3 | mekaniker | motor | rørlegger</annotation>
- <annotation cp="🧑🏼🔧" type="tts">mekaniker: hudtype 3</annotation>
- <annotation cp="🧑🏽🔧">bil | elektriker | håndverker | hudtype 4 | mekaniker | motor | rørlegger</annotation>
- <annotation cp="🧑🏽🔧" type="tts">mekaniker: hudtype 4</annotation>
- <annotation cp="🧑🏾🔧">bil | elektriker | håndverker | hudtype 5 | mekaniker | motor | rørlegger</annotation>
- <annotation cp="🧑🏾🔧" type="tts">mekaniker: hudtype 5</annotation>
- <annotation cp="🧑🏿🔧">bil | elektriker | håndverker | hudtype 6 | mekaniker | motor | rørlegger</annotation>
- <annotation cp="🧑🏿🔧" type="tts">mekaniker: hudtype 6</annotation>
- <annotation cp="👨🏻🔧">bil | elektriker | håndverker | hudtype 1–2 | mann | mannlig mekaniker | mekaniker | motor | rørlegger</annotation>
- <annotation cp="👨🏻🔧" type="tts">mannlig mekaniker: hudtype 1–2</annotation>
- <annotation cp="👨🏼🔧">bil | elektriker | håndverker | hudtype 3 | mann | mannlig mekaniker | mekaniker | motor | rørlegger</annotation>
- <annotation cp="👨🏼🔧" type="tts">mannlig mekaniker: hudtype 3</annotation>
- <annotation cp="👨🏽🔧">bil | elektriker | håndverker | hudtype 4 | mann | mannlig mekaniker | mekaniker | motor | rørlegger</annotation>
- <annotation cp="👨🏽🔧" type="tts">mannlig mekaniker: hudtype 4</annotation>
- <annotation cp="👨🏾🔧">bil | elektriker | håndverker | hudtype 5 | mann | mannlig mekaniker | mekaniker | motor | rørlegger</annotation>
- <annotation cp="👨🏾🔧" type="tts">mannlig mekaniker: hudtype 5</annotation>
- <annotation cp="👨🏿🔧">bil | elektriker | håndverker | hudtype 6 | mann | mannlig mekaniker | mekaniker | motor | rørlegger</annotation>
- <annotation cp="👨🏿🔧" type="tts">mannlig mekaniker: hudtype 6</annotation>
- <annotation cp="👩🏻🔧">bil | elektriker | håndverker | hudtype 1–2 | kvinne | kvinnelig mekaniker | mekaniker | motor | rørlegger</annotation>
- <annotation cp="👩🏻🔧" type="tts">kvinnelig mekaniker: hudtype 1–2</annotation>
- <annotation cp="👩🏼🔧">bil | elektriker | håndverker | hudtype 3 | kvinne | kvinnelig mekaniker | mekaniker | motor | rørlegger</annotation>
- <annotation cp="👩🏼🔧" type="tts">kvinnelig mekaniker: hudtype 3</annotation>
- <annotation cp="👩🏽🔧">bil | elektriker | håndverker | hudtype 4 | kvinne | kvinnelig mekaniker | mekaniker | motor | rørlegger</annotation>
- <annotation cp="👩🏽🔧" type="tts">kvinnelig mekaniker: hudtype 4</annotation>
- <annotation cp="👩🏾🔧">bil | elektriker | håndverker | hudtype 5 | kvinne | kvinnelig mekaniker | mekaniker | motor | rørlegger</annotation>
- <annotation cp="👩🏾🔧" type="tts">kvinnelig mekaniker: hudtype 5</annotation>
- <annotation cp="👩🏿🔧">bil | elektriker | håndverker | hudtype 6 | kvinne | kvinnelig mekaniker | mekaniker | motor | rørlegger</annotation>
- <annotation cp="👩🏿🔧" type="tts">kvinnelig mekaniker: hudtype 6</annotation>
- <annotation cp="🧑🏻🏭">arbeider | fabrikk | hudtype 1–2 | industri | industriarbeider | produksjon</annotation>
- <annotation cp="🧑🏻🏭" type="tts">industriarbeider: hudtype 1–2</annotation>
- <annotation cp="🧑🏼🏭">arbeider | fabrikk | hudtype 3 | industri | industriarbeider | produksjon</annotation>
- <annotation cp="🧑🏼🏭" type="tts">industriarbeider: hudtype 3</annotation>
- <annotation cp="🧑🏽🏭">arbeider | fabrikk | hudtype 4 | industri | industriarbeider | produksjon</annotation>
- <annotation cp="🧑🏽🏭" type="tts">industriarbeider: hudtype 4</annotation>
- <annotation cp="🧑🏾🏭">arbeider | fabrikk | hudtype 5 | industri | industriarbeider | produksjon</annotation>
- <annotation cp="🧑🏾🏭" type="tts">industriarbeider: hudtype 5</annotation>
- <annotation cp="🧑🏿🏭">arbeider | fabrikk | hudtype 6 | industri | industriarbeider | produksjon</annotation>
- <annotation cp="🧑🏿🏭" type="tts">industriarbeider: hudtype 6</annotation>
- <annotation cp="👨🏻🏭">arbeider | fabrikk | hudtype 1–2 | industri | industriarbeider | mann | mannlig industriarbeider | produksjon</annotation>
- <annotation cp="👨🏻🏭" type="tts">mannlig industriarbeider: hudtype 1–2</annotation>
- <annotation cp="👨🏼🏭">arbeider | fabrikk | hudtype 3 | industri | industriarbeider | mann | mannlig industriarbeider | produksjon</annotation>
- <annotation cp="👨🏼🏭" type="tts">mannlig industriarbeider: hudtype 3</annotation>
- <annotation cp="👨🏽🏭">arbeider | fabrikk | hudtype 4 | industri | industriarbeider | mann | mannlig industriarbeider | produksjon</annotation>
- <annotation cp="👨🏽🏭" type="tts">mannlig industriarbeider: hudtype 4</annotation>
- <annotation cp="👨🏾🏭">arbeider | fabrikk | hudtype 5 | industri | industriarbeider | mann | mannlig industriarbeider | produksjon</annotation>
- <annotation cp="👨🏾🏭" type="tts">mannlig industriarbeider: hudtype 5</annotation>
- <annotation cp="👨🏿🏭">arbeider | fabrikk | hudtype 6 | industri | industriarbeider | mann | mannlig industriarbeider | produksjon</annotation>
- <annotation cp="👨🏿🏭" type="tts">mannlig industriarbeider: hudtype 6</annotation>
- <annotation cp="👩🏻🏭">fabrikk | hudtype 1–2 | industri | kvinne | kvinnelig industriarbeider | produksjon</annotation>
- <annotation cp="👩🏻🏭" type="tts">kvinnelig industriarbeider: hudtype 1–2</annotation>
- <annotation cp="👩🏼🏭">fabrikk | hudtype 3 | industri | kvinne | kvinnelig industriarbeider | produksjon</annotation>
- <annotation cp="👩🏼🏭" type="tts">kvinnelig industriarbeider: hudtype 3</annotation>
- <annotation cp="👩🏽🏭">fabrikk | hudtype 4 | industri | kvinne | kvinnelig industriarbeider | produksjon</annotation>
- <annotation cp="👩🏽🏭" type="tts">kvinnelig industriarbeider: hudtype 4</annotation>
- <annotation cp="👩🏾🏭">fabrikk | hudtype 5 | industri | kvinne | kvinnelig industriarbeider | produksjon</annotation>
- <annotation cp="👩🏾🏭" type="tts">kvinnelig industriarbeider: hudtype 5</annotation>
- <annotation cp="👩🏿🏭">fabrikk | hudtype 6 | industri | kvinne | kvinnelig industriarbeider | produksjon</annotation>
- <annotation cp="👩🏿🏭" type="tts">kvinnelig industriarbeider: hudtype 6</annotation>
- <annotation cp="🧑🏻💼">hudtype 1–2 | kontor | kontorarbeider | leder | næringsliv</annotation>
- <annotation cp="🧑🏻💼" type="tts">kontorarbeider: hudtype 1–2</annotation>
- <annotation cp="🧑🏼💼">hudtype 3 | kontor | kontorarbeider | leder | næringsliv</annotation>
- <annotation cp="🧑🏼💼" type="tts">kontorarbeider: hudtype 3</annotation>
- <annotation cp="🧑🏽💼">hudtype 4 | kontor | kontorarbeider | leder | næringsliv</annotation>
- <annotation cp="🧑🏽💼" type="tts">kontorarbeider: hudtype 4</annotation>
- <annotation cp="🧑🏾💼">hudtype 5 | kontor | kontorarbeider | leder | næringsliv</annotation>
- <annotation cp="🧑🏾💼" type="tts">kontorarbeider: hudtype 5</annotation>
- <annotation cp="🧑🏿💼">hudtype 6 | kontor | kontorarbeider | leder | næringsliv</annotation>
- <annotation cp="🧑🏿💼" type="tts">kontorarbeider: hudtype 6</annotation>
- <annotation cp="👨🏻💼">hudtype 1–2 | kontor | leder | mann | mannlig kontorarbeider | næringsliv</annotation>
- <annotation cp="👨🏻💼" type="tts">mannlig kontorarbeider: hudtype 1–2</annotation>
- <annotation cp="👨🏼💼">hudtype 3 | kontor | leder | mann | mannlig kontorarbeider | næringsliv</annotation>
- <annotation cp="👨🏼💼" type="tts">mannlig kontorarbeider: hudtype 3</annotation>
- <annotation cp="👨🏽💼">hudtype 4 | kontor | leder | mann | mannlig kontorarbeider | næringsliv</annotation>
- <annotation cp="👨🏽💼" type="tts">mannlig kontorarbeider: hudtype 4</annotation>
- <annotation cp="👨🏾💼">hudtype 5 | kontor | leder | mann | mannlig kontorarbeider | næringsliv</annotation>
- <annotation cp="👨🏾💼" type="tts">mannlig kontorarbeider: hudtype 5</annotation>
- <annotation cp="👨🏿💼">hudtype 6 | kontor | leder | mann | mannlig kontorarbeider | næringsliv</annotation>
- <annotation cp="👨🏿💼" type="tts">mannlig kontorarbeider: hudtype 6</annotation>
- <annotation cp="👩🏻💼">hudtype 1–2 | kontor | kvinne | kvinnelig kontorarbeider | leder | næringsliv</annotation>
- <annotation cp="👩🏻💼" type="tts">kvinnelig kontorarbeider: hudtype 1–2</annotation>
- <annotation cp="👩🏼💼">hudtype 3 | kontor | kvinne | kvinnelig kontorarbeider | leder | næringsliv</annotation>
- <annotation cp="👩🏼💼" type="tts">kvinnelig kontorarbeider: hudtype 3</annotation>
- <annotation cp="👩🏽💼">hudtype 4 | kontor | kvinne | kvinnelig kontorarbeider | leder | næringsliv</annotation>
- <annotation cp="👩🏽💼" type="tts">kvinnelig kontorarbeider: hudtype 4</annotation>
- <annotation cp="👩🏾💼">hudtype 5 | kontor | kvinne | kvinnelig kontorarbeider | leder | næringsliv</annotation>
- <annotation cp="👩🏾💼" type="tts">kvinnelig kontorarbeider: hudtype 5</annotation>
- <annotation cp="👩🏿💼">hudtype 6 | kontor | kvinne | kvinnelig kontorarbeider | leder | næringsliv</annotation>
- <annotation cp="👩🏿💼" type="tts">kvinnelig kontorarbeider: hudtype 6</annotation>
- <annotation cp="🧑🏻🔬">biologi | forsker | forskning | hudtype 1–2 | kjemi | lab | laboratorium | medisin | vitenskap</annotation>
- <annotation cp="🧑🏻🔬" type="tts">forsker: hudtype 1–2</annotation>
- <annotation cp="🧑🏼🔬">biologi | forsker | forskning | hudtype 3 | kjemi | lab | laboratorium | medisin | vitenskap</annotation>
- <annotation cp="🧑🏼🔬" type="tts">forsker: hudtype 3</annotation>
- <annotation cp="🧑🏽🔬">biologi | forsker | forskning | hudtype 4 | kjemi | lab | laboratorium | medisin | vitenskap</annotation>
- <annotation cp="🧑🏽🔬" type="tts">forsker: hudtype 4</annotation>
- <annotation cp="🧑🏾🔬">biologi | forsker | forskning | hudtype 5 | kjemi | lab | laboratorium | medisin | vitenskap</annotation>
- <annotation cp="🧑🏾🔬" type="tts">forsker: hudtype 5</annotation>
- <annotation cp="🧑🏿🔬">biologi | forsker | forskning | hudtype 6 | kjemi | lab | laboratorium | medisin | vitenskap</annotation>
- <annotation cp="🧑🏿🔬" type="tts">forsker: hudtype 6</annotation>
- <annotation cp="👨🏻🔬">hudtype 1–2 | kjemi | laboratorium | mann | mannlig forsker | vitenskap</annotation>
- <annotation cp="👨🏻🔬" type="tts">mannlig forsker: hudtype 1–2</annotation>
- <annotation cp="👨🏼🔬">hudtype 3 | kjemi | laboratorium | mann | mannlig forsker | vitenskap</annotation>
- <annotation cp="👨🏼🔬" type="tts">mannlig forsker: hudtype 3</annotation>
- <annotation cp="👨🏽🔬">hudtype 4 | kjemi | laboratorium | mann | mannlig forsker | vitenskap</annotation>
- <annotation cp="👨🏽🔬" type="tts">mannlig forsker: hudtype 4</annotation>
- <annotation cp="👨🏾🔬">hudtype 5 | kjemi | laboratorium | mann | mannlig forsker | vitenskap</annotation>
- <annotation cp="👨🏾🔬" type="tts">mannlig forsker: hudtype 5</annotation>
- <annotation cp="👨🏿🔬">hudtype 6 | kjemi | laboratorium | mann | mannlig forsker | vitenskap</annotation>
- <annotation cp="👨🏿🔬" type="tts">mannlig forsker: hudtype 6</annotation>
- <annotation cp="👩🏻🔬">hudtype 1–2 | kjemi | kvinne | kvinnelig forsker | laboratorium | vitenskap</annotation>
- <annotation cp="👩🏻🔬" type="tts">kvinnelig forsker: hudtype 1–2</annotation>
- <annotation cp="👩🏼🔬">hudtype 3 | kjemi | kvinne | kvinnelig forsker | laboratorium | vitenskap</annotation>
- <annotation cp="👩🏼🔬" type="tts">kvinnelig forsker: hudtype 3</annotation>
- <annotation cp="👩🏽🔬">hudtype 4 | kjemi | kvinne | kvinnelig forsker | laboratorium | vitenskap</annotation>
- <annotation cp="👩🏽🔬" type="tts">kvinnelig forsker: hudtype 4</annotation>
- <annotation cp="👩🏾🔬">hudtype 5 | kjemi | kvinne | kvinnelig forsker | laboratorium | vitenskap</annotation>
- <annotation cp="👩🏾🔬" type="tts">kvinnelig forsker: hudtype 5</annotation>
- <annotation cp="👩🏿🔬">hudtype 6 | kjemi | kvinne | kvinnelig forsker | laboratorium | vitenskap</annotation>
- <annotation cp="👩🏿🔬" type="tts">kvinnelig forsker: hudtype 6</annotation>
- <annotation cp="🧑🏻💻">data | hudtype 1–2 | IT | IT-ekspert | koding | programvare | teknologi</annotation>
- <annotation cp="🧑🏻💻" type="tts">IT-ekspert: hudtype 1–2</annotation>
- <annotation cp="🧑🏼💻">data | hudtype 3 | IT | IT-ekspert | koding | programvare | teknologi</annotation>
- <annotation cp="🧑🏼💻" type="tts">IT-ekspert: hudtype 3</annotation>
- <annotation cp="🧑🏽💻">data | hudtype 4 | IT | IT-ekspert | koding | programvare | teknologi</annotation>
- <annotation cp="🧑🏽💻" type="tts">IT-ekspert: hudtype 4</annotation>
- <annotation cp="🧑🏾💻">data | hudtype 5 | IT | IT-ekspert | koding | programvare | teknologi</annotation>
- <annotation cp="🧑🏾💻" type="tts">IT-ekspert: hudtype 5</annotation>
- <annotation cp="🧑🏿💻">data | hudtype 6 | IT | IT-ekspert | koding | programvare | teknologi</annotation>
- <annotation cp="🧑🏿💻" type="tts">IT-ekspert: hudtype 6</annotation>
- <annotation cp="👨🏻💻">data | hudtype 1–2 | IT | koding | mann | mannlig IT-ekspert | programvare | teknologi</annotation>
- <annotation cp="👨🏻💻" type="tts">mannlig IT-ekspert: hudtype 1–2</annotation>
- <annotation cp="👨🏼💻">data | hudtype 3 | IT | koding | mann | mannlig IT-ekspert | programvare | teknologi</annotation>
- <annotation cp="👨🏼💻" type="tts">mannlig IT-ekspert: hudtype 3</annotation>
- <annotation cp="👨🏽💻">data | hudtype 4 | IT | koding | mann | mannlig IT-ekspert | programvare | teknologi</annotation>
- <annotation cp="👨🏽💻" type="tts">mannlig IT-ekspert: hudtype 4</annotation>
- <annotation cp="👨🏾💻">data | hudtype 5 | IT | koding | mann | mannlig IT-ekspert | programvare | teknologi</annotation>
- <annotation cp="👨🏾💻" type="tts">mannlig IT-ekspert: hudtype 5</annotation>
- <annotation cp="👨🏿💻">data | hudtype 6 | IT | koding | mann | mannlig IT-ekspert | programvare | teknologi</annotation>
- <annotation cp="👨🏿💻" type="tts">mannlig IT-ekspert: hudtype 6</annotation>
- <annotation cp="👩🏻💻">data | hudtype 1–2 | IT | koding | kvinne | kvinnelig IT-ekspert | programvare | teknologi</annotation>
- <annotation cp="👩🏻💻" type="tts">kvinnelig IT-ekspert: hudtype 1–2</annotation>
- <annotation cp="👩🏼💻">data | hudtype 3 | IT | koding | kvinne | kvinnelig IT-ekspert | programvare | teknologi</annotation>
- <annotation cp="👩🏼💻" type="tts">kvinnelig IT-ekspert: hudtype 3</annotation>
- <annotation cp="👩🏽💻">data | hudtype 4 | IT | koding | kvinne | kvinnelig IT-ekspert | programvare | teknologi</annotation>
- <annotation cp="👩🏽💻" type="tts">kvinnelig IT-ekspert: hudtype 4</annotation>
- <annotation cp="👩🏾💻">data | hudtype 5 | IT | koding | kvinne | kvinnelig IT-ekspert | programvare | teknologi</annotation>
- <annotation cp="👩🏾💻" type="tts">kvinnelig IT-ekspert: hudtype 5</annotation>
- <annotation cp="👩🏿💻">data | hudtype 6 | IT | koding | kvinne | kvinnelig IT-ekspert | programvare | teknologi</annotation>
- <annotation cp="👩🏿💻" type="tts">kvinnelig IT-ekspert: hudtype 6</annotation>
- <annotation cp="🧑🏻🎤">artist | hudtype 1–2 | konsert | rock | sanger</annotation>
- <annotation cp="🧑🏻🎤" type="tts">artist: hudtype 1–2</annotation>
- <annotation cp="🧑🏼🎤">artist | hudtype 3 | konsert | rock | sanger</annotation>
- <annotation cp="🧑🏼🎤" type="tts">artist: hudtype 3</annotation>
- <annotation cp="🧑🏽🎤">artist | hudtype 4 | konsert | rock | sanger</annotation>
- <annotation cp="🧑🏽🎤" type="tts">artist: hudtype 4</annotation>
- <annotation cp="🧑🏾🎤">artist | hudtype 5 | konsert | rock | sanger</annotation>
- <annotation cp="🧑🏾🎤" type="tts">artist: hudtype 5</annotation>
- <annotation cp="🧑🏿🎤">artist | hudtype 6 | konsert | rock | sanger</annotation>
- <annotation cp="🧑🏿🎤" type="tts">artist: hudtype 6</annotation>
- <annotation cp="👨🏻🎤">artist | hudtype 1–2 | konsert | mann | mannlig artist | sanger</annotation>
- <annotation cp="👨🏻🎤" type="tts">mannlig artist: hudtype 1–2</annotation>
- <annotation cp="👨🏼🎤">artist | hudtype 3 | konsert | mann | mannlig artist | sanger</annotation>
- <annotation cp="👨🏼🎤" type="tts">mannlig artist: hudtype 3</annotation>
- <annotation cp="👨🏽🎤">artist | hudtype 4 | konsert | mann | mannlig artist | sanger</annotation>
- <annotation cp="👨🏽🎤" type="tts">mannlig artist: hudtype 4</annotation>
- <annotation cp="👨🏾🎤">artist | hudtype 5 | konsert | mann | mannlig artist | sanger</annotation>
- <annotation cp="👨🏾🎤" type="tts">mannlig artist: hudtype 5</annotation>
- <annotation cp="👨🏿🎤">artist | hudtype 6 | konsert | mann | mannlig artist | sanger</annotation>
- <annotation cp="👨🏿🎤" type="tts">mannlig artist: hudtype 6</annotation>
- <annotation cp="👩🏻🎤">artist | hudtype 1–2 | konsert | kvinne | kvinnelig artist | rock | sanger</annotation>
- <annotation cp="👩🏻🎤" type="tts">kvinnelig artist: hudtype 1–2</annotation>
- <annotation cp="👩🏼🎤">artist | hudtype 3 | konsert | kvinne | kvinnelig artist | rock | sanger</annotation>
- <annotation cp="👩🏼🎤" type="tts">kvinnelig artist: hudtype 3</annotation>
- <annotation cp="👩🏽🎤">artist | hudtype 4 | konsert | kvinne | kvinnelig artist | rock | sanger</annotation>
- <annotation cp="👩🏽🎤" type="tts">kvinnelig artist: hudtype 4</annotation>
- <annotation cp="👩🏾🎤">artist | hudtype 5 | konsert | kvinne | kvinnelig artist | rock | sanger</annotation>
- <annotation cp="👩🏾🎤" type="tts">kvinnelig artist: hudtype 5</annotation>
- <annotation cp="👩🏿🎤">artist | hudtype 6 | konsert | kvinne | kvinnelig artist | rock | sanger</annotation>
- <annotation cp="👩🏿🎤" type="tts">kvinnelig artist: hudtype 6</annotation>
- <annotation cp="🧑🏻🎨">hudtype 1–2 | kunstner | maler</annotation>
- <annotation cp="🧑🏻🎨" type="tts">kunstner: hudtype 1–2</annotation>
- <annotation cp="🧑🏼🎨">hudtype 3 | kunstner | maler</annotation>
- <annotation cp="🧑🏼🎨" type="tts">kunstner: hudtype 3</annotation>
- <annotation cp="🧑🏽🎨">hudtype 4 | kunstner | maler</annotation>
- <annotation cp="🧑🏽🎨" type="tts">kunstner: hudtype 4</annotation>
- <annotation cp="🧑🏾🎨">hudtype 5 | kunstner | maler</annotation>
- <annotation cp="🧑🏾🎨" type="tts">kunstner: hudtype 5</annotation>
- <annotation cp="🧑🏿🎨">hudtype 6 | kunstner | maler</annotation>
- <annotation cp="🧑🏿🎨" type="tts">kunstner: hudtype 6</annotation>
- <annotation cp="👨🏻🎨">hudtype 1–2 | kunstner | maler | mann | mannlig kunstner</annotation>
- <annotation cp="👨🏻🎨" type="tts">mannlig kunstner: hudtype 1–2</annotation>
- <annotation cp="👨🏼🎨">hudtype 3 | kunstner | maler | mann | mannlig kunstner</annotation>
- <annotation cp="👨🏼🎨" type="tts">mannlig kunstner: hudtype 3</annotation>
- <annotation cp="👨🏽🎨">hudtype 4 | kunstner | maler | mann | mannlig kunstner</annotation>
- <annotation cp="👨🏽🎨" type="tts">mannlig kunstner: hudtype 4</annotation>
- <annotation cp="👨🏾🎨">hudtype 5 | kunstner | maler | mann | mannlig kunstner</annotation>
- <annotation cp="👨🏾🎨" type="tts">mannlig kunstner: hudtype 5</annotation>
- <annotation cp="👨🏿🎨">hudtype 6 | kunstner | maler | mann | mannlig kunstner</annotation>
- <annotation cp="👨🏿🎨" type="tts">mannlig kunstner: hudtype 6</annotation>
- <annotation cp="👩🏻🎨">hudtype 1–2 | kunstner | kvinne | kvinnelig kunstner | maler</annotation>
- <annotation cp="👩🏻🎨" type="tts">kvinnelig kunstner: hudtype 1–2</annotation>
- <annotation cp="👩🏼🎨">hudtype 3 | kunstner | kvinne | kvinnelig kunstner | maler</annotation>
- <annotation cp="👩🏼🎨" type="tts">kvinnelig kunstner: hudtype 3</annotation>
- <annotation cp="👩🏽🎨">hudtype 4 | kunstner | kvinne | kvinnelig kunstner | maler</annotation>
- <annotation cp="👩🏽🎨" type="tts">kvinnelig kunstner: hudtype 4</annotation>
- <annotation cp="👩🏾🎨">hudtype 5 | kunstner | kvinne | kvinnelig kunstner | maler</annotation>
- <annotation cp="👩🏾🎨" type="tts">kvinnelig kunstner: hudtype 5</annotation>
- <annotation cp="👩🏿🎨">hudtype 6 | kunstner | kvinne | kvinnelig kunstner | maler</annotation>
- <annotation cp="👩🏿🎨" type="tts">kvinnelig kunstner: hudtype 6</annotation>
- <annotation cp="🧑🏻✈">fly | hudtype 1–2 | pilot</annotation>
- <annotation cp="🧑🏻✈" type="tts">pilot: hudtype 1–2</annotation>
- <annotation cp="🧑🏼✈">fly | hudtype 3 | pilot</annotation>
- <annotation cp="🧑🏼✈" type="tts">pilot: hudtype 3</annotation>
- <annotation cp="🧑🏽✈">fly | hudtype 4 | pilot</annotation>
- <annotation cp="🧑🏽✈" type="tts">pilot: hudtype 4</annotation>
- <annotation cp="🧑🏾✈">fly | hudtype 5 | pilot</annotation>
- <annotation cp="🧑🏾✈" type="tts">pilot: hudtype 5</annotation>
- <annotation cp="🧑🏿✈">fly | hudtype 6 | pilot</annotation>
- <annotation cp="🧑🏿✈" type="tts">pilot: hudtype 6</annotation>
- <annotation cp="👨🏻✈">fly | hudtype 1–2 | mann | mannlig pilot | pilot</annotation>
- <annotation cp="👨🏻✈" type="tts">mannlig pilot: hudtype 1–2</annotation>
- <annotation cp="👨🏼✈">fly | hudtype 3 | mann | mannlig pilot | pilot</annotation>
- <annotation cp="👨🏼✈" type="tts">mannlig pilot: hudtype 3</annotation>
- <annotation cp="👨🏽✈">fly | hudtype 4 | mann | mannlig pilot | pilot</annotation>
- <annotation cp="👨🏽✈" type="tts">mannlig pilot: hudtype 4</annotation>
- <annotation cp="👨🏾✈">fly | hudtype 5 | mann | mannlig pilot | pilot</annotation>
- <annotation cp="👨🏾✈" type="tts">mannlig pilot: hudtype 5</annotation>
- <annotation cp="👨🏿✈">fly | hudtype 6 | mann | mannlig pilot | pilot</annotation>
- <annotation cp="👨🏿✈" type="tts">mannlig pilot: hudtype 6</annotation>
- <annotation cp="👩🏻✈">fly | hudtype 1–2 | kvinne | kvinnelig pilot | pilot</annotation>
- <annotation cp="👩🏻✈" type="tts">kvinnelig pilot: hudtype 1–2</annotation>
- <annotation cp="👩🏼✈">fly | hudtype 3 | kvinne | kvinnelig pilot | pilot</annotation>
- <annotation cp="👩🏼✈" type="tts">kvinnelig pilot: hudtype 3</annotation>
- <annotation cp="👩🏽✈">fly | hudtype 4 | kvinne | kvinnelig pilot | pilot</annotation>
- <annotation cp="👩🏽✈" type="tts">kvinnelig pilot: hudtype 4</annotation>
- <annotation cp="👩🏾✈">fly | hudtype 5 | kvinne | kvinnelig pilot | pilot</annotation>
- <annotation cp="👩🏾✈" type="tts">kvinnelig pilot: hudtype 5</annotation>
- <annotation cp="👩🏿✈">fly | hudtype 6 | kvinne | kvinnelig pilot | pilot</annotation>
- <annotation cp="👩🏿✈" type="tts">kvinnelig pilot: hudtype 6</annotation>
- <annotation cp="🧑🏻🚀">astronaut | hudtype 1–2 | romfart | verdensrommet</annotation>
- <annotation cp="🧑🏻🚀" type="tts">astronaut: hudtype 1–2</annotation>
- <annotation cp="🧑🏼🚀">astronaut | hudtype 3 | romfart | verdensrommet</annotation>
- <annotation cp="🧑🏼🚀" type="tts">astronaut: hudtype 3</annotation>
- <annotation cp="🧑🏽🚀">astronaut | hudtype 4 | romfart | verdensrommet</annotation>
- <annotation cp="🧑🏽🚀" type="tts">astronaut: hudtype 4</annotation>
- <annotation cp="🧑🏾🚀">astronaut | hudtype 5 | romfart | verdensrommet</annotation>
- <annotation cp="🧑🏾🚀" type="tts">astronaut: hudtype 5</annotation>
- <annotation cp="🧑🏿🚀">astronaut | hudtype 6 | romfart | verdensrommet</annotation>
- <annotation cp="🧑🏿🚀" type="tts">astronaut: hudtype 6</annotation>
- <annotation cp="👨🏻🚀">astronaut | hudtype 1–2 | mann | mannlig astronaut | romfart | verdensrommet</annotation>
- <annotation cp="👨🏻🚀" type="tts">mannlig astronaut: hudtype 1–2</annotation>
- <annotation cp="👨🏼🚀">astronaut | hudtype 3 | mann | mannlig astronaut | romfart | verdensrommet</annotation>
- <annotation cp="👨🏼🚀" type="tts">mannlig astronaut: hudtype 3</annotation>
- <annotation cp="👨🏽🚀">astronaut | hudtype 4 | mann | mannlig astronaut | romfart | verdensrommet</annotation>
- <annotation cp="👨🏽🚀" type="tts">mannlig astronaut: hudtype 4</annotation>
- <annotation cp="👨🏾🚀">astronaut | hudtype 5 | mann | mannlig astronaut | romfart | verdensrommet</annotation>
- <annotation cp="👨🏾🚀" type="tts">mannlig astronaut: hudtype 5</annotation>
- <annotation cp="👨🏿🚀">astronaut | hudtype 6 | mann | mannlig astronaut | romfart | verdensrommet</annotation>
- <annotation cp="👨🏿🚀" type="tts">mannlig astronaut: hudtype 6</annotation>
- <annotation cp="👩🏻🚀">astronaut | hudtype 1–2 | kvinne | kvinnelig astronaut | romfart | verdensrommet</annotation>
- <annotation cp="👩🏻🚀" type="tts">kvinnelig astronaut: hudtype 1–2</annotation>
- <annotation cp="👩🏼🚀">astronaut | hudtype 3 | kvinne | kvinnelig astronaut | romfart | verdensrommet</annotation>
- <annotation cp="👩🏼🚀" type="tts">kvinnelig astronaut: hudtype 3</annotation>
- <annotation cp="👩🏽🚀">astronaut | hudtype 4 | kvinne | kvinnelig astronaut | romfart | verdensrommet</annotation>
- <annotation cp="👩🏽🚀" type="tts">kvinnelig astronaut: hudtype 4</annotation>
- <annotation cp="👩🏾🚀">astronaut | hudtype 5 | kvinne | kvinnelig astronaut | romfart | verdensrommet</annotation>
- <annotation cp="👩🏾🚀" type="tts">kvinnelig astronaut: hudtype 5</annotation>
- <annotation cp="👩🏿🚀">astronaut | hudtype 6 | kvinne | kvinnelig astronaut | romfart | verdensrommet</annotation>
- <annotation cp="👩🏿🚀" type="tts">kvinnelig astronaut: hudtype 6</annotation>
- <annotation cp="🧑🏻🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 1–2</annotation>
- <annotation cp="🧑🏻🚒" type="tts">brannkonstabel: hudtype 1–2</annotation>
- <annotation cp="🧑🏼🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 3</annotation>
- <annotation cp="🧑🏼🚒" type="tts">brannkonstabel: hudtype 3</annotation>
- <annotation cp="🧑🏽🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 4</annotation>
- <annotation cp="🧑🏽🚒" type="tts">brannkonstabel: hudtype 4</annotation>
- <annotation cp="🧑🏾🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 5</annotation>
- <annotation cp="🧑🏾🚒" type="tts">brannkonstabel: hudtype 5</annotation>
- <annotation cp="🧑🏿🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 6</annotation>
- <annotation cp="🧑🏿🚒" type="tts">brannkonstabel: hudtype 6</annotation>
- <annotation cp="👨🏻🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 1–2 | mann | mannlig brannkonstabel</annotation>
- <annotation cp="👨🏻🚒" type="tts">mannlig brannkonstabel: hudtype 1–2</annotation>
- <annotation cp="👨🏼🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 3 | mann | mannlig brannkonstabel</annotation>
- <annotation cp="👨🏼🚒" type="tts">mannlig brannkonstabel: hudtype 3</annotation>
- <annotation cp="👨🏽🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 4 | mann | mannlig brannkonstabel</annotation>
- <annotation cp="👨🏽🚒" type="tts">mannlig brannkonstabel: hudtype 4</annotation>
- <annotation cp="👨🏾🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 5 | mann | mannlig brannkonstabel</annotation>
- <annotation cp="👨🏾🚒" type="tts">mannlig brannkonstabel: hudtype 5</annotation>
- <annotation cp="👨🏿🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 6 | mann | mannlig brannkonstabel</annotation>
- <annotation cp="👨🏿🚒" type="tts">mannlig brannkonstabel: hudtype 6</annotation>
- <annotation cp="👩🏻🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 1–2 | kvinne | kvinnelig brannkonstabel</annotation>
- <annotation cp="👩🏻🚒" type="tts">kvinnelig brannkonstabel: hudtype 1–2</annotation>
- <annotation cp="👩🏼🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 3 | kvinne | kvinnelig brannkonstabel</annotation>
- <annotation cp="👩🏼🚒" type="tts">kvinnelig brannkonstabel: hudtype 3</annotation>
- <annotation cp="👩🏽🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 4 | kvinne | kvinnelig brannkonstabel</annotation>
- <annotation cp="👩🏽🚒" type="tts">kvinnelig brannkonstabel: hudtype 4</annotation>
- <annotation cp="👩🏾🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 5 | kvinne | kvinnelig brannkonstabel</annotation>
- <annotation cp="👩🏾🚒" type="tts">kvinnelig brannkonstabel: hudtype 5</annotation>
- <annotation cp="👩🏿🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 6 | kvinne | kvinnelig brannkonstabel</annotation>
- <annotation cp="👩🏿🚒" type="tts">kvinnelig brannkonstabel: hudtype 6</annotation>
- <annotation cp="👮🏻">betjent | hudtype 1–2 | menneske | politi | politibetjent</annotation>
- <annotation cp="👮🏻" type="tts">politibetjent: hudtype 1–2</annotation>
- <annotation cp="👮🏼">betjent | hudtype 3 | menneske | politi | politibetjent</annotation>
- <annotation cp="👮🏼" type="tts">politibetjent: hudtype 3</annotation>
- <annotation cp="👮🏽">betjent | hudtype 4 | menneske | politi | politibetjent</annotation>
- <annotation cp="👮🏽" type="tts">politibetjent: hudtype 4</annotation>
- <annotation cp="👮🏾">betjent | hudtype 5 | menneske | politi | politibetjent</annotation>
- <annotation cp="👮🏾" type="tts">politibetjent: hudtype 5</annotation>
- <annotation cp="👮🏿">betjent | hudtype 6 | menneske | politi | politibetjent</annotation>
- <annotation cp="👮🏿" type="tts">politibetjent: hudtype 6</annotation>
- <annotation cp="👮🏻♂">betjent | hudtype 1–2 | mann | mannlig politibetjent | politi | politibetjent</annotation>
- <annotation cp="👮🏻♂" type="tts">mannlig politibetjent: hudtype 1–2</annotation>
- <annotation cp="👮🏼♂">betjent | hudtype 3 | mann | mannlig politibetjent | politi | politibetjent</annotation>
- <annotation cp="👮🏼♂" type="tts">mannlig politibetjent: hudtype 3</annotation>
- <annotation cp="👮🏽♂">betjent | hudtype 4 | mann | mannlig politibetjent | politi | politibetjent</annotation>
- <annotation cp="👮🏽♂" type="tts">mannlig politibetjent: hudtype 4</annotation>
- <annotation cp="👮🏾♂">betjent | hudtype 5 | mann | mannlig politibetjent | politi | politibetjent</annotation>
- <annotation cp="👮🏾♂" type="tts">mannlig politibetjent: hudtype 5</annotation>
- <annotation cp="👮🏿♂">betjent | hudtype 6 | mann | mannlig politibetjent | politi | politibetjent</annotation>
- <annotation cp="👮🏿♂" type="tts">mannlig politibetjent: hudtype 6</annotation>
- <annotation cp="👮🏻♀">betjent | hudtype 1–2 | kvinne | kvinnelig politibetjent | politi | politibetjent</annotation>
- <annotation cp="👮🏻♀" type="tts">kvinnelig politibetjent: hudtype 1–2</annotation>
- <annotation cp="👮🏼♀">betjent | hudtype 3 | kvinne | kvinnelig politibetjent | politi | politibetjent</annotation>
- <annotation cp="👮🏼♀" type="tts">kvinnelig politibetjent: hudtype 3</annotation>
- <annotation cp="👮🏽♀">betjent | hudtype 4 | kvinne | kvinnelig politibetjent | politi | politibetjent</annotation>
- <annotation cp="👮🏽♀" type="tts">kvinnelig politibetjent: hudtype 4</annotation>
- <annotation cp="👮🏾♀">betjent | hudtype 5 | kvinne | kvinnelig politibetjent | politi | politibetjent</annotation>
- <annotation cp="👮🏾♀" type="tts">kvinnelig politibetjent: hudtype 5</annotation>
- <annotation cp="👮🏿♀">betjent | hudtype 6 | kvinne | kvinnelig politibetjent | politi | politibetjent</annotation>
- <annotation cp="👮🏿♀" type="tts">kvinnelig politibetjent: hudtype 6</annotation>
- <annotation cp="🕵🏻">detektiv | hudtype 1–2 | spion</annotation>
- <annotation cp="🕵🏻" type="tts">detektiv: hudtype 1–2</annotation>
- <annotation cp="🕵🏼">detektiv | hudtype 3 | spion</annotation>
- <annotation cp="🕵🏼" type="tts">detektiv: hudtype 3</annotation>
- <annotation cp="🕵🏽">detektiv | hudtype 4 | spion</annotation>
- <annotation cp="🕵🏽" type="tts">detektiv: hudtype 4</annotation>
- <annotation cp="🕵🏾">detektiv | hudtype 5 | spion</annotation>
- <annotation cp="🕵🏾" type="tts">detektiv: hudtype 5</annotation>
- <annotation cp="🕵🏿">detektiv | hudtype 6 | spion</annotation>
- <annotation cp="🕵🏿" type="tts">detektiv: hudtype 6</annotation>
- <annotation cp="🕵🏻♂">etterforske | forbrytelse | hudtype 1–2 | mann | mannlig detektiv | privatdetektiv</annotation>
- <annotation cp="🕵🏻♂" type="tts">mannlig detektiv: hudtype 1–2</annotation>
- <annotation cp="🕵🏼♂">etterforske | forbrytelse | hudtype 3 | mann | mannlig detektiv | privatdetektiv</annotation>
- <annotation cp="🕵🏼♂" type="tts">mannlig detektiv: hudtype 3</annotation>
- <annotation cp="🕵🏽♂">etterforske | forbrytelse | hudtype 4 | mann | mannlig detektiv | privatdetektiv</annotation>
- <annotation cp="🕵🏽♂" type="tts">mannlig detektiv: hudtype 4</annotation>
- <annotation cp="🕵🏾♂">etterforske | forbrytelse | hudtype 5 | mann | mannlig detektiv | privatdetektiv</annotation>
- <annotation cp="🕵🏾♂" type="tts">mannlig detektiv: hudtype 5</annotation>
- <annotation cp="🕵🏿♂">etterforske | forbrytelse | hudtype 6 | mann | mannlig detektiv | privatdetektiv</annotation>
- <annotation cp="🕵🏿♂" type="tts">mannlig detektiv: hudtype 6</annotation>
- <annotation cp="🕵🏻♀">etterforske | forbrytelse | hudtype 1–2 | kvinne | kvinnelig detektiv | privatdetektiv</annotation>
- <annotation cp="🕵🏻♀" type="tts">kvinnelig detektiv: hudtype 1–2</annotation>
- <annotation cp="🕵🏼♀">etterforske | forbrytelse | hudtype 3 | kvinne | kvinnelig detektiv | privatdetektiv</annotation>
- <annotation cp="🕵🏼♀" type="tts">kvinnelig detektiv: hudtype 3</annotation>
- <annotation cp="🕵🏽♀">etterforske | forbrytelse | hudtype 4 | kvinne | kvinnelig detektiv | privatdetektiv</annotation>
- <annotation cp="🕵🏽♀" type="tts">kvinnelig detektiv: hudtype 4</annotation>
- <annotation cp="🕵🏾♀">etterforske | forbrytelse | hudtype 5 | kvinne | kvinnelig detektiv | privatdetektiv</annotation>
- <annotation cp="🕵🏾♀" type="tts">kvinnelig detektiv: hudtype 5</annotation>
- <annotation cp="🕵🏿♀">etterforske | forbrytelse | hudtype 6 | kvinne | kvinnelig detektiv | privatdetektiv</annotation>
- <annotation cp="🕵🏿♀" type="tts">kvinnelig detektiv: hudtype 6</annotation>
- <annotation cp="💂🏻">gardist | hudtype 1–2 | menneske | vakt</annotation>
- <annotation cp="💂🏻" type="tts">gardist: hudtype 1–2</annotation>
- <annotation cp="💂🏼">gardist | hudtype 3 | menneske | vakt</annotation>
- <annotation cp="💂🏼" type="tts">gardist: hudtype 3</annotation>
- <annotation cp="💂🏽">gardist | hudtype 4 | menneske | vakt</annotation>
- <annotation cp="💂🏽" type="tts">gardist: hudtype 4</annotation>
- <annotation cp="💂🏾">gardist | hudtype 5 | menneske | vakt</annotation>
- <annotation cp="💂🏾" type="tts">gardist: hudtype 5</annotation>
- <annotation cp="💂🏿">gardist | hudtype 6 | menneske | vakt</annotation>
- <annotation cp="💂🏿" type="tts">gardist: hudtype 6</annotation>
- <annotation cp="💂🏻♂">gardist | hudtype 1–2 | mann | mannlig gardist | vakt</annotation>
- <annotation cp="💂🏻♂" type="tts">mannlig gardist: hudtype 1–2</annotation>
- <annotation cp="💂🏼♂">gardist | hudtype 3 | mann | mannlig gardist | vakt</annotation>
- <annotation cp="💂🏼♂" type="tts">mannlig gardist: hudtype 3</annotation>
- <annotation cp="💂🏽♂">gardist | hudtype 4 | mann | mannlig gardist | vakt</annotation>
- <annotation cp="💂🏽♂" type="tts">mannlig gardist: hudtype 4</annotation>
- <annotation cp="💂🏾♂">gardist | hudtype 5 | mann | mannlig gardist | vakt</annotation>
- <annotation cp="💂🏾♂" type="tts">mannlig gardist: hudtype 5</annotation>
- <annotation cp="💂🏿♂">gardist | hudtype 6 | mann | mannlig gardist | vakt</annotation>
- <annotation cp="💂🏿♂" type="tts">mannlig gardist: hudtype 6</annotation>
- <annotation cp="💂🏻♀">gardist | hudtype 1–2 | kvinne | kvinnelig gardist | vakt</annotation>
- <annotation cp="💂🏻♀" type="tts">kvinnelig gardist: hudtype 1–2</annotation>
- <annotation cp="💂🏼♀">gardist | hudtype 3 | kvinne | kvinnelig gardist | vakt</annotation>
- <annotation cp="💂🏼♀" type="tts">kvinnelig gardist: hudtype 3</annotation>
- <annotation cp="💂🏽♀">gardist | hudtype 4 | kvinne | kvinnelig gardist | vakt</annotation>
- <annotation cp="💂🏽♀" type="tts">kvinnelig gardist: hudtype 4</annotation>
- <annotation cp="💂🏾♀">gardist | hudtype 5 | kvinne | kvinnelig gardist | vakt</annotation>
- <annotation cp="💂🏾♀" type="tts">kvinnelig gardist: hudtype 5</annotation>
- <annotation cp="💂🏿♀">gardist | hudtype 6 | kvinne | kvinnelig gardist | vakt</annotation>
- <annotation cp="💂🏿♀" type="tts">kvinnelig gardist: hudtype 6</annotation>
- <annotation cp="🥷🏻">hudtype 1–2 | kampkunst | kriger | ninja | skjult</annotation>
- <annotation cp="🥷🏻" type="tts">ninja: hudtype 1–2</annotation>
- <annotation cp="🥷🏼">hudtype 3 | kampkunst | kriger | ninja | skjult</annotation>
- <annotation cp="🥷🏼" type="tts">ninja: hudtype 3</annotation>
- <annotation cp="🥷🏽">hudtype 4 | kampkunst | kriger | ninja | skjult</annotation>
- <annotation cp="🥷🏽" type="tts">ninja: hudtype 4</annotation>
- <annotation cp="🥷🏾">hudtype 5 | kampkunst | kriger | ninja | skjult</annotation>
- <annotation cp="🥷🏾" type="tts">ninja: hudtype 5</annotation>
- <annotation cp="🥷🏿">hudtype 6 | kampkunst | kriger | ninja | skjult</annotation>
- <annotation cp="🥷🏿" type="tts">ninja: hudtype 6</annotation>
- <annotation cp="👷🏻">anlegg | anleggsarbeider | arbeider | hjelm | hudtype 1–2 | ingeniør | menneske</annotation>
- <annotation cp="👷🏻" type="tts">anleggsarbeider: hudtype 1–2</annotation>
- <annotation cp="👷🏼">anlegg | anleggsarbeider | arbeider | hjelm | hudtype 3 | ingeniør | menneske</annotation>
- <annotation cp="👷🏼" type="tts">anleggsarbeider: hudtype 3</annotation>
- <annotation cp="👷🏽">anlegg | anleggsarbeider | arbeider | hjelm | hudtype 4 | ingeniør | menneske</annotation>
- <annotation cp="👷🏽" type="tts">anleggsarbeider: hudtype 4</annotation>
- <annotation cp="👷🏾">anlegg | anleggsarbeider | arbeider | hjelm | hudtype 5 | ingeniør | menneske</annotation>
- <annotation cp="👷🏾" type="tts">anleggsarbeider: hudtype 5</annotation>
- <annotation cp="👷🏿">anlegg | anleggsarbeider | arbeider | hjelm | hudtype 6 | ingeniør | menneske</annotation>
- <annotation cp="👷🏿" type="tts">anleggsarbeider: hudtype 6</annotation>
- <annotation cp="👷🏻♂">anlegg | arbeider | bygg | hjelm | hudtype 1–2 | ingeniør | mann | mannlig anleggsarbeider</annotation>
- <annotation cp="👷🏻♂" type="tts">mannlig anleggsarbeider: hudtype 1–2</annotation>
- <annotation cp="👷🏼♂">anlegg | arbeider | bygg | hjelm | hudtype 3 | ingeniør | mann | mannlig anleggsarbeider</annotation>
- <annotation cp="👷🏼♂" type="tts">mannlig anleggsarbeider: hudtype 3</annotation>
- <annotation cp="👷🏽♂">anlegg | arbeider | bygg | hjelm | hudtype 4 | ingeniør | mann | mannlig anleggsarbeider</annotation>
- <annotation cp="👷🏽♂" type="tts">mannlig anleggsarbeider: hudtype 4</annotation>
- <annotation cp="👷🏾♂">anlegg | arbeider | bygg | hjelm | hudtype 5 | ingeniør | mann | mannlig anleggsarbeider</annotation>
- <annotation cp="👷🏾♂" type="tts">mannlig anleggsarbeider: hudtype 5</annotation>
- <annotation cp="👷🏿♂">anlegg | arbeider | bygg | hjelm | hudtype 6 | ingeniør | mann | mannlig anleggsarbeider</annotation>
- <annotation cp="👷🏿♂" type="tts">mannlig anleggsarbeider: hudtype 6</annotation>
- <annotation cp="👷🏻♀">anlegg | arbeider | bygg | hjelm | hudtype 1–2 | ingeniør | kvinne | kvinnelig anleggsarbeider</annotation>
- <annotation cp="👷🏻♀" type="tts">kvinnelig anleggsarbeider: hudtype 1–2</annotation>
- <annotation cp="👷🏼♀">anlegg | arbeider | bygg | hjelm | hudtype 3 | ingeniør | kvinne | kvinnelig anleggsarbeider</annotation>
- <annotation cp="👷🏼♀" type="tts">kvinnelig anleggsarbeider: hudtype 3</annotation>
- <annotation cp="👷🏽♀">anlegg | arbeider | bygg | hjelm | hudtype 4 | ingeniør | kvinne | kvinnelig anleggsarbeider</annotation>
- <annotation cp="👷🏽♀" type="tts">kvinnelig anleggsarbeider: hudtype 4</annotation>
- <annotation cp="👷🏾♀">anlegg | arbeider | bygg | hjelm | hudtype 5 | ingeniør | kvinne | kvinnelig anleggsarbeider</annotation>
- <annotation cp="👷🏾♀" type="tts">kvinnelig anleggsarbeider: hudtype 5</annotation>
- <annotation cp="👷🏿♀">anlegg | arbeider | bygg | hjelm | hudtype 6 | ingeniør | kvinne | kvinnelig anleggsarbeider</annotation>
- <annotation cp="👷🏿♀" type="tts">kvinnelig anleggsarbeider: hudtype 6</annotation>
- <annotation cp="🤴🏻">hudtype 1–2 | prins</annotation>
- <annotation cp="🤴🏻" type="tts">prins: hudtype 1–2</annotation>
- <annotation cp="🤴🏼">hudtype 3 | prins</annotation>
- <annotation cp="🤴🏼" type="tts">prins: hudtype 3</annotation>
- <annotation cp="🤴🏽">hudtype 4 | prins</annotation>
- <annotation cp="🤴🏽" type="tts">prins: hudtype 4</annotation>
- <annotation cp="🤴🏾">hudtype 5 | prins</annotation>
- <annotation cp="🤴🏾" type="tts">prins: hudtype 5</annotation>
- <annotation cp="🤴🏿">hudtype 6 | prins</annotation>
- <annotation cp="🤴🏿" type="tts">prins: hudtype 6</annotation>
- <annotation cp="👸🏻">eventyr | fantasy | hudtype 1–2 | menneske | prinsesse</annotation>
- <annotation cp="👸🏻" type="tts">prinsesse: hudtype 1–2</annotation>
- <annotation cp="👸🏼">eventyr | fantasy | hudtype 3 | menneske | prinsesse</annotation>
- <annotation cp="👸🏼" type="tts">prinsesse: hudtype 3</annotation>
- <annotation cp="👸🏽">eventyr | fantasy | hudtype 4 | menneske | prinsesse</annotation>
- <annotation cp="👸🏽" type="tts">prinsesse: hudtype 4</annotation>
- <annotation cp="👸🏾">eventyr | fantasy | hudtype 5 | menneske | prinsesse</annotation>
- <annotation cp="👸🏾" type="tts">prinsesse: hudtype 5</annotation>
- <annotation cp="👸🏿">eventyr | fantasy | hudtype 6 | menneske | prinsesse</annotation>
- <annotation cp="👸🏿" type="tts">prinsesse: hudtype 6</annotation>
- <annotation cp="👳🏻">hudtype 1–2 | menneske | turban | turbankledd person</annotation>
- <annotation cp="👳🏻" type="tts">turbankledd person: hudtype 1–2</annotation>
- <annotation cp="👳🏼">hudtype 3 | menneske | turban | turbankledd person</annotation>
- <annotation cp="👳🏼" type="tts">turbankledd person: hudtype 3</annotation>
- <annotation cp="👳🏽">hudtype 4 | menneske | turban | turbankledd person</annotation>
- <annotation cp="👳🏽" type="tts">turbankledd person: hudtype 4</annotation>
- <annotation cp="👳🏾">hudtype 5 | menneske | turban | turbankledd person</annotation>
- <annotation cp="👳🏾" type="tts">turbankledd person: hudtype 5</annotation>
- <annotation cp="👳🏿">hudtype 6 | menneske | turban | turbankledd person</annotation>
- <annotation cp="👳🏿" type="tts">turbankledd person: hudtype 6</annotation>
- <annotation cp="👳🏻♂">hudtype 1–2 | mann | turban | turbankledd mann</annotation>
- <annotation cp="👳🏻♂" type="tts">turbankledd mann: hudtype 1–2</annotation>
- <annotation cp="👳🏼♂">hudtype 3 | mann | turban | turbankledd mann</annotation>
- <annotation cp="👳🏼♂" type="tts">turbankledd mann: hudtype 3</annotation>
- <annotation cp="👳🏽♂">hudtype 4 | mann | turban | turbankledd mann</annotation>
- <annotation cp="👳🏽♂" type="tts">turbankledd mann: hudtype 4</annotation>
- <annotation cp="👳🏾♂">hudtype 5 | mann | turban | turbankledd mann</annotation>
- <annotation cp="👳🏾♂" type="tts">turbankledd mann: hudtype 5</annotation>
- <annotation cp="👳🏿♂">hudtype 6 | mann | turban | turbankledd mann</annotation>
- <annotation cp="👳🏿♂" type="tts">turbankledd mann: hudtype 6</annotation>
- <annotation cp="👳🏻♀">hudtype 1–2 | kvinne | turban | turbankledd kvinne</annotation>
- <annotation cp="👳🏻♀" type="tts">turbankledd kvinne: hudtype 1–2</annotation>
- <annotation cp="👳🏼♀">hudtype 3 | kvinne | turban | turbankledd kvinne</annotation>
- <annotation cp="👳🏼♀" type="tts">turbankledd kvinne: hudtype 3</annotation>
- <annotation cp="👳🏽♀">hudtype 4 | kvinne | turban | turbankledd kvinne</annotation>
- <annotation cp="👳🏽♀" type="tts">turbankledd kvinne: hudtype 4</annotation>
- <annotation cp="👳🏾♀">hudtype 5 | kvinne | turban | turbankledd kvinne</annotation>
- <annotation cp="👳🏾♀" type="tts">turbankledd kvinne: hudtype 5</annotation>
- <annotation cp="👳🏿♀">hudtype 6 | kvinne | turban | turbankledd kvinne</annotation>
- <annotation cp="👳🏿♀" type="tts">turbankledd kvinne: hudtype 6</annotation>
- <annotation cp="👲🏻">gua pi mao | hatt | hudtype 1–2 | lue | mann | mann med kinesisk lue | menneske</annotation>
- <annotation cp="👲🏻" type="tts">mann med kinesisk lue: hudtype 1–2</annotation>
- <annotation cp="👲🏼">gua pi mao | hatt | hudtype 3 | lue | mann | mann med kinesisk lue | menneske</annotation>
- <annotation cp="👲🏼" type="tts">mann med kinesisk lue: hudtype 3</annotation>
- <annotation cp="👲🏽">gua pi mao | hatt | hudtype 4 | lue | mann | mann med kinesisk lue | menneske</annotation>
- <annotation cp="👲🏽" type="tts">mann med kinesisk lue: hudtype 4</annotation>
- <annotation cp="👲🏾">gua pi mao | hatt | hudtype 5 | lue | mann | mann med kinesisk lue | menneske</annotation>
- <annotation cp="👲🏾" type="tts">mann med kinesisk lue: hudtype 5</annotation>
- <annotation cp="👲🏿">gua pi mao | hatt | hudtype 6 | lue | mann | mann med kinesisk lue | menneske</annotation>
- <annotation cp="👲🏿" type="tts">mann med kinesisk lue: hudtype 6</annotation>
- <annotation cp="🧕🏻">hijab | hodeskjerf | hodeslør | hudtype 1–2 | kvinne med hodeslør | muslim</annotation>
- <annotation cp="🧕🏻" type="tts">kvinne med hodeslør: hudtype 1–2</annotation>
- <annotation cp="🧕🏼">hijab | hodeskjerf | hodeslør | hudtype 3 | kvinne med hodeslør | muslim</annotation>
- <annotation cp="🧕🏼" type="tts">kvinne med hodeslør: hudtype 3</annotation>
- <annotation cp="🧕🏽">hijab | hodeskjerf | hodeslør | hudtype 4 | kvinne med hodeslør | muslim</annotation>
- <annotation cp="🧕🏽" type="tts">kvinne med hodeslør: hudtype 4</annotation>
- <annotation cp="🧕🏾">hijab | hodeskjerf | hodeslør | hudtype 5 | kvinne med hodeslør | muslim</annotation>
- <annotation cp="🧕🏾" type="tts">kvinne med hodeslør: hudtype 5</annotation>
- <annotation cp="🧕🏿">hijab | hodeskjerf | hodeslør | hudtype 6 | kvinne med hodeslør | muslim</annotation>
- <annotation cp="🧕🏿" type="tts">kvinne med hodeslør: hudtype 6</annotation>
- <annotation cp="🤵🏻">brudgom | hudtype 1–2 | person | person i smoking | smoking</annotation>
- <annotation cp="🤵🏻" type="tts">person i smoking: hudtype 1–2</annotation>
- <annotation cp="🤵🏼">brudgom | hudtype 3 | person | person i smoking | smoking</annotation>
- <annotation cp="🤵🏼" type="tts">person i smoking: hudtype 3</annotation>
- <annotation cp="🤵🏽">brudgom | hudtype 4 | person | person i smoking | smoking</annotation>
- <annotation cp="🤵🏽" type="tts">person i smoking: hudtype 4</annotation>
- <annotation cp="🤵🏾">brudgom | hudtype 5 | person | person i smoking | smoking</annotation>
- <annotation cp="🤵🏾" type="tts">person i smoking: hudtype 5</annotation>
- <annotation cp="🤵🏿">brudgom | hudtype 6 | person | person i smoking | smoking</annotation>
- <annotation cp="🤵🏿" type="tts">person i smoking: hudtype 6</annotation>
- <annotation cp="🤵🏻♂">hudtype 1–2 | mann | mann i smoking | smoking</annotation>
- <annotation cp="🤵🏻♂" type="tts">mann i smoking: hudtype 1–2</annotation>
- <annotation cp="🤵🏼♂">hudtype 3 | mann | mann i smoking | smoking</annotation>
- <annotation cp="🤵🏼♂" type="tts">mann i smoking: hudtype 3</annotation>
- <annotation cp="🤵🏽♂">hudtype 4 | mann | mann i smoking | smoking</annotation>
- <annotation cp="🤵🏽♂" type="tts">mann i smoking: hudtype 4</annotation>
- <annotation cp="🤵🏾♂">hudtype 5 | mann | mann i smoking | smoking</annotation>
- <annotation cp="🤵🏾♂" type="tts">mann i smoking: hudtype 5</annotation>
- <annotation cp="🤵🏿♂">hudtype 6 | mann | mann i smoking | smoking</annotation>
- <annotation cp="🤵🏿♂" type="tts">mann i smoking: hudtype 6</annotation>
- <annotation cp="🤵🏻♀">hudtype 1–2 | kvinne | kvinne i smoking | smoking</annotation>
- <annotation cp="🤵🏻♀" type="tts">kvinne i smoking: hudtype 1–2</annotation>
- <annotation cp="🤵🏼♀">hudtype 3 | kvinne | kvinne i smoking | smoking</annotation>
- <annotation cp="🤵🏼♀" type="tts">kvinne i smoking: hudtype 3</annotation>
- <annotation cp="🤵🏽♀">hudtype 4 | kvinne | kvinne i smoking | smoking</annotation>
- <annotation cp="🤵🏽♀" type="tts">kvinne i smoking: hudtype 4</annotation>
- <annotation cp="🤵🏾♀">hudtype 5 | kvinne | kvinne i smoking | smoking</annotation>
- <annotation cp="🤵🏾♀" type="tts">kvinne i smoking: hudtype 5</annotation>
- <annotation cp="🤵🏿♀">hudtype 6 | kvinne | kvinne i smoking | smoking</annotation>
- <annotation cp="🤵🏿♀" type="tts">kvinne i smoking: hudtype 6</annotation>
- <annotation cp="👰🏻">brud | brud med slør | bryllup | hudtype 1–2 | mennesker | person med slør | slør</annotation>
- <annotation cp="👰🏻" type="tts">person med slør: hudtype 1–2</annotation>
- <annotation cp="👰🏼">brud | brud med slør | bryllup | hudtype 3 | mennesker | person med slør | slør</annotation>
- <annotation cp="👰🏼" type="tts">person med slør: hudtype 3</annotation>
- <annotation cp="👰🏽">brud | brud med slør | bryllup | hudtype 4 | mennesker | person med slør | slør</annotation>
- <annotation cp="👰🏽" type="tts">person med slør: hudtype 4</annotation>
- <annotation cp="👰🏾">brud | brud med slør | bryllup | hudtype 5 | mennesker | person med slør | slør</annotation>
- <annotation cp="👰🏾" type="tts">person med slør: hudtype 5</annotation>
- <annotation cp="👰🏿">brud | brud med slør | bryllup | hudtype 6 | mennesker | person med slør | slør</annotation>
- <annotation cp="👰🏿" type="tts">person med slør: hudtype 6</annotation>
- <annotation cp="👰🏻♂">hudtype 1–2 | mann | mann med slør | slør</annotation>
- <annotation cp="👰🏻♂" type="tts">mann med slør: hudtype 1–2</annotation>
- <annotation cp="👰🏼♂">hudtype 3 | mann | mann med slør | slør</annotation>
- <annotation cp="👰🏼♂" type="tts">mann med slør: hudtype 3</annotation>
- <annotation cp="👰🏽♂">hudtype 4 | mann | mann med slør | slør</annotation>
- <annotation cp="👰🏽♂" type="tts">mann med slør: hudtype 4</annotation>
- <annotation cp="👰🏾♂">hudtype 5 | mann | mann med slør | slør</annotation>
- <annotation cp="👰🏾♂" type="tts">mann med slør: hudtype 5</annotation>
- <annotation cp="👰🏿♂">hudtype 6 | mann | mann med slør | slør</annotation>
- <annotation cp="👰🏿♂" type="tts">mann med slør: hudtype 6</annotation>
- <annotation cp="👰🏻♀">hudtype 1–2 | kvinne | kvinne med slør | slør</annotation>
- <annotation cp="👰🏻♀" type="tts">kvinne med slør: hudtype 1–2</annotation>
- <annotation cp="👰🏼♀">hudtype 3 | kvinne | kvinne med slør | slør</annotation>
- <annotation cp="👰🏼♀" type="tts">kvinne med slør: hudtype 3</annotation>
- <annotation cp="👰🏽♀">hudtype 4 | kvinne | kvinne med slør | slør</annotation>
- <annotation cp="👰🏽♀" type="tts">kvinne med slør: hudtype 4</annotation>
- <annotation cp="👰🏾♀">hudtype 5 | kvinne | kvinne med slør | slør</annotation>
- <annotation cp="👰🏾♀" type="tts">kvinne med slør: hudtype 5</annotation>
- <annotation cp="👰🏿♀">hudtype 6 | kvinne | kvinne med slør | slør</annotation>
- <annotation cp="👰🏿♀" type="tts">kvinne med slør: hudtype 6</annotation>
- <annotation cp="🤰🏻">gravid | hudtype 1–2 | kvinne</annotation>
- <annotation cp="🤰🏻" type="tts">gravid kvinne: hudtype 1–2</annotation>
- <annotation cp="🤰🏼">gravid | hudtype 3 | kvinne</annotation>
- <annotation cp="🤰🏼" type="tts">gravid kvinne: hudtype 3</annotation>
- <annotation cp="🤰🏽">gravid | hudtype 4 | kvinne</annotation>
- <annotation cp="🤰🏽" type="tts">gravid kvinne: hudtype 4</annotation>
- <annotation cp="🤰🏾">gravid | hudtype 5 | kvinne</annotation>
- <annotation cp="🤰🏾" type="tts">gravid kvinne: hudtype 5</annotation>
- <annotation cp="🤰🏿">gravid | hudtype 6 | kvinne</annotation>
- <annotation cp="🤰🏿" type="tts">gravid kvinne: hudtype 6</annotation>
- <annotation cp="🤱🏻">ammer | amming | baby | bryst | hudtype 1–2 | morsmelk</annotation>
- <annotation cp="🤱🏻" type="tts">ammer: hudtype 1–2</annotation>
- <annotation cp="🤱🏼">ammer | amming | baby | bryst | hudtype 3 | morsmelk</annotation>
- <annotation cp="🤱🏼" type="tts">ammer: hudtype 3</annotation>
- <annotation cp="🤱🏽">ammer | amming | baby | bryst | hudtype 4 | morsmelk</annotation>
- <annotation cp="🤱🏽" type="tts">ammer: hudtype 4</annotation>
- <annotation cp="🤱🏾">ammer | amming | baby | bryst | hudtype 5 | morsmelk</annotation>
- <annotation cp="🤱🏾" type="tts">ammer: hudtype 5</annotation>
- <annotation cp="🤱🏿">ammer | amming | baby | bryst | hudtype 6 | morsmelk</annotation>
- <annotation cp="🤱🏿" type="tts">ammer: hudtype 6</annotation>
- <annotation cp="👩🏻🍼">baby | hudtype 1–2 | kvinne | kvinne som mater baby | mat | tåteflaske</annotation>
- <annotation cp="👩🏻🍼" type="tts">kvinne som mater baby: hudtype 1–2</annotation>
- <annotation cp="👩🏼🍼">baby | hudtype 3 | kvinne | kvinne som mater baby | mat | tåteflaske</annotation>
- <annotation cp="👩🏼🍼" type="tts">kvinne som mater baby: hudtype 3</annotation>
- <annotation cp="👩🏽🍼">baby | hudtype 4 | kvinne | kvinne som mater baby | mat | tåteflaske</annotation>
- <annotation cp="👩🏽🍼" type="tts">kvinne som mater baby: hudtype 4</annotation>
- <annotation cp="👩🏾🍼">baby | hudtype 5 | kvinne | kvinne som mater baby | mat | tåteflaske</annotation>
- <annotation cp="👩🏾🍼" type="tts">kvinne som mater baby: hudtype 5</annotation>
- <annotation cp="👩🏿🍼">baby | hudtype 6 | kvinne | kvinne som mater baby | mat | tåteflaske</annotation>
- <annotation cp="👩🏿🍼" type="tts">kvinne som mater baby: hudtype 6</annotation>
- <annotation cp="👨🏻🍼">baby | hudtype 1–2 | mann | mann som mater baby | mat | tåteflaske</annotation>
- <annotation cp="👨🏻🍼" type="tts">mann som mater baby: hudtype 1–2</annotation>
- <annotation cp="👨🏼🍼">baby | hudtype 3 | mann | mann som mater baby | mat | tåteflaske</annotation>
- <annotation cp="👨🏼🍼" type="tts">mann som mater baby: hudtype 3</annotation>
- <annotation cp="👨🏽🍼">baby | hudtype 4 | mann | mann som mater baby | mat | tåteflaske</annotation>
- <annotation cp="👨🏽🍼" type="tts">mann som mater baby: hudtype 4</annotation>
- <annotation cp="👨🏾🍼">baby | hudtype 5 | mann | mann som mater baby | mat | tåteflaske</annotation>
- <annotation cp="👨🏾🍼" type="tts">mann som mater baby: hudtype 5</annotation>
- <annotation cp="👨🏿🍼">baby | hudtype 6 | mann | mann som mater baby | mat | tåteflaske</annotation>
- <annotation cp="👨🏿🍼" type="tts">mann som mater baby: hudtype 6</annotation>
- <annotation cp="🧑🏻🍼">baby | hudtype 1–2 | mat | person | person som mater baby | tåteflaske</annotation>
- <annotation cp="🧑🏻🍼" type="tts">person som mater baby: hudtype 1–2</annotation>
- <annotation cp="🧑🏼🍼">baby | hudtype 3 | mat | person | person som mater baby | tåteflaske</annotation>
- <annotation cp="🧑🏼🍼" type="tts">person som mater baby: hudtype 3</annotation>
- <annotation cp="🧑🏽🍼">baby | hudtype 4 | mat | person | person som mater baby | tåteflaske</annotation>
- <annotation cp="🧑🏽🍼" type="tts">person som mater baby: hudtype 4</annotation>
- <annotation cp="🧑🏾🍼">baby | hudtype 5 | mat | person | person som mater baby | tåteflaske</annotation>
- <annotation cp="🧑🏾🍼" type="tts">person som mater baby: hudtype 5</annotation>
- <annotation cp="🧑🏿🍼">baby | hudtype 6 | mat | person | person som mater baby | tåteflaske</annotation>
- <annotation cp="🧑🏿🍼" type="tts">person som mater baby: hudtype 6</annotation>
- <annotation cp="👼🏻">ansikt | babyengel | engel | eventyr | hudtype 1–2</annotation>
- <annotation cp="👼🏻" type="tts">babyengel: hudtype 1–2</annotation>
- <annotation cp="👼🏼">ansikt | babyengel | engel | eventyr | hudtype 3</annotation>
- <annotation cp="👼🏼" type="tts">babyengel: hudtype 3</annotation>
- <annotation cp="👼🏽">ansikt | babyengel | engel | eventyr | hudtype 4</annotation>
- <annotation cp="👼🏽" type="tts">babyengel: hudtype 4</annotation>
- <annotation cp="👼🏾">ansikt | babyengel | engel | eventyr | hudtype 5</annotation>
- <annotation cp="👼🏾" type="tts">babyengel: hudtype 5</annotation>
- <annotation cp="👼🏿">ansikt | babyengel | engel | eventyr | hudtype 6</annotation>
- <annotation cp="👼🏿" type="tts">babyengel: hudtype 6</annotation>
- <annotation cp="🎅🏻">feiring | hudtype 1–2 | jul | julenissen | nissefar | nissen</annotation>
- <annotation cp="🎅🏻" type="tts">julenissen: hudtype 1–2</annotation>
- <annotation cp="🎅🏼">feiring | hudtype 3 | jul | julenissen | nissefar | nissen</annotation>
- <annotation cp="🎅🏼" type="tts">julenissen: hudtype 3</annotation>
- <annotation cp="🎅🏽">feiring | hudtype 4 | jul | julenissen | nissefar | nissen</annotation>
- <annotation cp="🎅🏽" type="tts">julenissen: hudtype 4</annotation>
- <annotation cp="🎅🏾">feiring | hudtype 5 | jul | julenissen | nissefar | nissen</annotation>
- <annotation cp="🎅🏾" type="tts">julenissen: hudtype 5</annotation>
- <annotation cp="🎅🏿">feiring | hudtype 6 | jul | julenissen | nissefar | nissen</annotation>
- <annotation cp="🎅🏿" type="tts">julenissen: hudtype 6</annotation>
- <annotation cp="🤶🏻">hudtype 1–2 | jul | julenissemor | mor | nisse</annotation>
- <annotation cp="🤶🏻" type="tts">julenissemor: hudtype 1–2</annotation>
- <annotation cp="🤶🏼">hudtype 3 | jul | julenissemor | mor | nisse</annotation>
- <annotation cp="🤶🏼" type="tts">julenissemor: hudtype 3</annotation>
- <annotation cp="🤶🏽">hudtype 4 | jul | julenissemor | mor | nisse</annotation>
- <annotation cp="🤶🏽" type="tts">julenissemor: hudtype 4</annotation>
- <annotation cp="🤶🏾">hudtype 5 | jul | julenissemor | mor | nisse</annotation>
- <annotation cp="🤶🏾" type="tts">julenissemor: hudtype 5</annotation>
- <annotation cp="🤶🏿">hudtype 6 | jul | julenissemor | mor | nisse</annotation>
- <annotation cp="🤶🏿" type="tts">julenissemor: hudtype 6</annotation>
- <annotation cp="🧑🏻🎄">feiring | hudtype 1–2 | jul | julenisse | nisse | person</annotation>
- <annotation cp="🧑🏻🎄" type="tts">julenisse: hudtype 1–2</annotation>
- <annotation cp="🧑🏼🎄">feiring | hudtype 3 | jul | julenisse | nisse | person</annotation>
- <annotation cp="🧑🏼🎄" type="tts">julenisse: hudtype 3</annotation>
- <annotation cp="🧑🏽🎄">feiring | hudtype 4 | jul | julenisse | nisse | person</annotation>
- <annotation cp="🧑🏽🎄" type="tts">julenisse: hudtype 4</annotation>
- <annotation cp="🧑🏾🎄">feiring | hudtype 5 | jul | julenisse | nisse | person</annotation>
- <annotation cp="🧑🏾🎄" type="tts">julenisse: hudtype 5</annotation>
- <annotation cp="🧑🏿🎄">feiring | hudtype 6 | jul | julenisse | nisse | person</annotation>
- <annotation cp="🧑🏿🎄" type="tts">julenisse: hudtype 6</annotation>
- <annotation cp="🦸🏻">god | helt | heltinne | hudtype 1–2 | superhelt | superkrefter</annotation>
- <annotation cp="🦸🏻" type="tts">superhelt: hudtype 1–2</annotation>
- <annotation cp="🦸🏼">god | helt | heltinne | hudtype 3 | superhelt | superkrefter</annotation>
- <annotation cp="🦸🏼" type="tts">superhelt: hudtype 3</annotation>
- <annotation cp="🦸🏽">god | helt | heltinne | hudtype 4 | superhelt | superkrefter</annotation>
- <annotation cp="🦸🏽" type="tts">superhelt: hudtype 4</annotation>
- <annotation cp="🦸🏾">god | helt | heltinne | hudtype 5 | superhelt | superkrefter</annotation>
- <annotation cp="🦸🏾" type="tts">superhelt: hudtype 5</annotation>
- <annotation cp="🦸🏿">god | helt | heltinne | hudtype 6 | superhelt | superkrefter</annotation>
- <annotation cp="🦸🏿" type="tts">superhelt: hudtype 6</annotation>
- <annotation cp="🦸🏻♂">god | helt | hudtype 1–2 | mann | mannlig superhelt | superkrefter</annotation>
- <annotation cp="🦸🏻♂" type="tts">mannlig superhelt: hudtype 1–2</annotation>
- <annotation cp="🦸🏼♂">god | helt | hudtype 3 | mann | mannlig superhelt | superkrefter</annotation>
- <annotation cp="🦸🏼♂" type="tts">mannlig superhelt: hudtype 3</annotation>
- <annotation cp="🦸🏽♂">god | helt | hudtype 4 | mann | mannlig superhelt | superkrefter</annotation>
- <annotation cp="🦸🏽♂" type="tts">mannlig superhelt: hudtype 4</annotation>
- <annotation cp="🦸🏾♂">god | helt | hudtype 5 | mann | mannlig superhelt | superkrefter</annotation>
- <annotation cp="🦸🏾♂" type="tts">mannlig superhelt: hudtype 5</annotation>
- <annotation cp="🦸🏿♂">god | helt | hudtype 6 | mann | mannlig superhelt | superkrefter</annotation>
- <annotation cp="🦸🏿♂" type="tts">mannlig superhelt: hudtype 6</annotation>
- <annotation cp="🦸🏻♀">god | helt | heltinne | hudtype 1–2 | kvinne | kvinnelig superhelt | superkrefter</annotation>
- <annotation cp="🦸🏻♀" type="tts">kvinnelig superhelt: hudtype 1–2</annotation>
- <annotation cp="🦸🏼♀">god | helt | heltinne | hudtype 3 | kvinne | kvinnelig superhelt | superkrefter</annotation>
- <annotation cp="🦸🏼♀" type="tts">kvinnelig superhelt: hudtype 3</annotation>
- <annotation cp="🦸🏽♀">god | helt | heltinne | hudtype 4 | kvinne | kvinnelig superhelt | superkrefter</annotation>
- <annotation cp="🦸🏽♀" type="tts">kvinnelig superhelt: hudtype 4</annotation>
- <annotation cp="🦸🏾♀">god | helt | heltinne | hudtype 5 | kvinne | kvinnelig superhelt | superkrefter</annotation>
- <annotation cp="🦸🏾♀" type="tts">kvinnelig superhelt: hudtype 5</annotation>
- <annotation cp="🦸🏿♀">god | helt | heltinne | hudtype 6 | kvinne | kvinnelig superhelt | superkrefter</annotation>
- <annotation cp="🦸🏿♀" type="tts">kvinnelig superhelt: hudtype 6</annotation>
- <annotation cp="🦹🏻">hudtype 1–2 | kriminell | ond | skurk | superkrefter | superskurk</annotation>
- <annotation cp="🦹🏻" type="tts">superskurk: hudtype 1–2</annotation>
- <annotation cp="🦹🏼">hudtype 3 | kriminell | ond | skurk | superkrefter | superskurk</annotation>
- <annotation cp="🦹🏼" type="tts">superskurk: hudtype 3</annotation>
- <annotation cp="🦹🏽">hudtype 4 | kriminell | ond | skurk | superkrefter | superskurk</annotation>
- <annotation cp="🦹🏽" type="tts">superskurk: hudtype 4</annotation>
- <annotation cp="🦹🏾">hudtype 5 | kriminell | ond | skurk | superkrefter | superskurk</annotation>
- <annotation cp="🦹🏾" type="tts">superskurk: hudtype 5</annotation>
- <annotation cp="🦹🏿">hudtype 6 | kriminell | ond | skurk | superkrefter | superskurk</annotation>
- <annotation cp="🦹🏿" type="tts">superskurk: hudtype 6</annotation>
- <annotation cp="🦹🏻♂">hudtype 1–2 | kriminell | mann | mannlig superskurk | ond | skurk | superkrefter</annotation>
- <annotation cp="🦹🏻♂" type="tts">mannlig superskurk: hudtype 1–2</annotation>
- <annotation cp="🦹🏼♂">hudtype 3 | kriminell | mann | mannlig superskurk | ond | skurk | superkrefter</annotation>
- <annotation cp="🦹🏼♂" type="tts">mannlig superskurk: hudtype 3</annotation>
- <annotation cp="🦹🏽♂">hudtype 4 | kriminell | mann | mannlig superskurk | ond | skurk | superkrefter</annotation>
- <annotation cp="🦹🏽♂" type="tts">mannlig superskurk: hudtype 4</annotation>
- <annotation cp="🦹🏾♂">hudtype 5 | kriminell | mann | mannlig superskurk | ond | skurk | superkrefter</annotation>
- <annotation cp="🦹🏾♂" type="tts">mannlig superskurk: hudtype 5</annotation>
- <annotation cp="🦹🏿♂">hudtype 6 | kriminell | mann | mannlig superskurk | ond | skurk | superkrefter</annotation>
- <annotation cp="🦹🏿♂" type="tts">mannlig superskurk: hudtype 6</annotation>
- <annotation cp="🦹🏻♀">hudtype 1–2 | kriminell | kvinne | kvinnelig superskurk | ond | skurk | superkrefter</annotation>
- <annotation cp="🦹🏻♀" type="tts">kvinnelig superskurk: hudtype 1–2</annotation>
- <annotation cp="🦹🏼♀">hudtype 3 | kriminell | kvinne | kvinnelig superskurk | ond | skurk | superkrefter</annotation>
- <annotation cp="🦹🏼♀" type="tts">kvinnelig superskurk: hudtype 3</annotation>
- <annotation cp="🦹🏽♀">hudtype 4 | kriminell | kvinne | kvinnelig superskurk | ond | skurk | superkrefter</annotation>
- <annotation cp="🦹🏽♀" type="tts">kvinnelig superskurk: hudtype 4</annotation>
- <annotation cp="🦹🏾♀">hudtype 5 | kriminell | kvinne | kvinnelig superskurk | ond | skurk | superkrefter</annotation>
- <annotation cp="🦹🏾♀" type="tts">kvinnelig superskurk: hudtype 5</annotation>
- <annotation cp="🦹🏿♀">hudtype 6 | kriminell | kvinne | kvinnelig superskurk | ond | skurk | superkrefter</annotation>
- <annotation cp="🦹🏿♀" type="tts">kvinnelig superskurk: hudtype 6</annotation>
- <annotation cp="🧙🏻">heks | hudtype 1–2 | trollkvinne | trollmann | trollperson</annotation>
- <annotation cp="🧙🏻" type="tts">trollperson: hudtype 1–2</annotation>
- <annotation cp="🧙🏼">heks | hudtype 3 | trollkvinne | trollmann | trollperson</annotation>
- <annotation cp="🧙🏼" type="tts">trollperson: hudtype 3</annotation>
- <annotation cp="🧙🏽">heks | hudtype 4 | trollkvinne | trollmann | trollperson</annotation>
- <annotation cp="🧙🏽" type="tts">trollperson: hudtype 4</annotation>
- <annotation cp="🧙🏾">heks | hudtype 5 | trollkvinne | trollmann | trollperson</annotation>
- <annotation cp="🧙🏾" type="tts">trollperson: hudtype 5</annotation>
- <annotation cp="🧙🏿">heks | hudtype 6 | trollkvinne | trollmann | trollperson</annotation>
- <annotation cp="🧙🏿" type="tts">trollperson: hudtype 6</annotation>
- <annotation cp="🧙🏻♂">heksemester | hudtype 1–2 | trollmann</annotation>
- <annotation cp="🧙🏻♂" type="tts">trollmann: hudtype 1–2</annotation>
- <annotation cp="🧙🏼♂">heksemester | hudtype 3 | trollmann</annotation>
- <annotation cp="🧙🏼♂" type="tts">trollmann: hudtype 3</annotation>
- <annotation cp="🧙🏽♂">heksemester | hudtype 4 | trollmann</annotation>
- <annotation cp="🧙🏽♂" type="tts">trollmann: hudtype 4</annotation>
- <annotation cp="🧙🏾♂">heksemester | hudtype 5 | trollmann</annotation>
- <annotation cp="🧙🏾♂" type="tts">trollmann: hudtype 5</annotation>
- <annotation cp="🧙🏿♂">heksemester | hudtype 6 | trollmann</annotation>
- <annotation cp="🧙🏿♂" type="tts">trollmann: hudtype 6</annotation>
- <annotation cp="🧙🏻♀">heks | hudtype 1–2 | trollkvinne</annotation>
- <annotation cp="🧙🏻♀" type="tts">trollkvinne: hudtype 1–2</annotation>
- <annotation cp="🧙🏼♀">heks | hudtype 3 | trollkvinne</annotation>
- <annotation cp="🧙🏼♀" type="tts">trollkvinne: hudtype 3</annotation>
- <annotation cp="🧙🏽♀">heks | hudtype 4 | trollkvinne</annotation>
- <annotation cp="🧙🏽♀" type="tts">trollkvinne: hudtype 4</annotation>
- <annotation cp="🧙🏾♀">heks | hudtype 5 | trollkvinne</annotation>
- <annotation cp="🧙🏾♀" type="tts">trollkvinne: hudtype 5</annotation>
- <annotation cp="🧙🏿♀">heks | hudtype 6 | trollkvinne</annotation>
- <annotation cp="🧙🏿♀" type="tts">trollkvinne: hudtype 6</annotation>
- <annotation cp="🧚🏻">fe | hudtype 1–2 | Oberon | Puck | Titania</annotation>
- <annotation cp="🧚🏻" type="tts">fe: hudtype 1–2</annotation>
- <annotation cp="🧚🏼">fe | hudtype 3 | Oberon | Puck | Titania</annotation>
- <annotation cp="🧚🏼" type="tts">fe: hudtype 3</annotation>
- <annotation cp="🧚🏽">fe | hudtype 4 | Oberon | Puck | Titania</annotation>
- <annotation cp="🧚🏽" type="tts">fe: hudtype 4</annotation>
- <annotation cp="🧚🏾">fe | hudtype 5 | Oberon | Puck | Titania</annotation>
- <annotation cp="🧚🏾" type="tts">fe: hudtype 5</annotation>
- <annotation cp="🧚🏿">fe | hudtype 6 | Oberon | Puck | Titania</annotation>
- <annotation cp="🧚🏿" type="tts">fe: hudtype 6</annotation>
- <annotation cp="🧚🏻♂">fe | hudtype 1–2 | mannlig fe | Oberon | Puck</annotation>
- <annotation cp="🧚🏻♂" type="tts">mannlig fe: hudtype 1–2</annotation>
- <annotation cp="🧚🏼♂">fe | hudtype 3 | mannlig fe | Oberon | Puck</annotation>
- <annotation cp="🧚🏼♂" type="tts">mannlig fe: hudtype 3</annotation>
- <annotation cp="🧚🏽♂">fe | hudtype 4 | mannlig fe | Oberon | Puck</annotation>
- <annotation cp="🧚🏽♂" type="tts">mannlig fe: hudtype 4</annotation>
- <annotation cp="🧚🏾♂">fe | hudtype 5 | mannlig fe | Oberon | Puck</annotation>
- <annotation cp="🧚🏾♂" type="tts">mannlig fe: hudtype 5</annotation>
- <annotation cp="🧚🏿♂">fe | hudtype 6 | mannlig fe | Oberon | Puck</annotation>
- <annotation cp="🧚🏿♂" type="tts">mannlig fe: hudtype 6</annotation>
- <annotation cp="🧚🏻♀">fe | hudtype 1–2 | kvinnelig fe | Titania</annotation>
- <annotation cp="🧚🏻♀" type="tts">kvinnelig fe: hudtype 1–2</annotation>
- <annotation cp="🧚🏼♀">fe | hudtype 3 | kvinnelig fe | Titania</annotation>
- <annotation cp="🧚🏼♀" type="tts">kvinnelig fe: hudtype 3</annotation>
- <annotation cp="🧚🏽♀">fe | hudtype 4 | kvinnelig fe | Titania</annotation>
- <annotation cp="🧚🏽♀" type="tts">kvinnelig fe: hudtype 4</annotation>
- <annotation cp="🧚🏾♀">fe | hudtype 5 | kvinnelig fe | Titania</annotation>
- <annotation cp="🧚🏾♀" type="tts">kvinnelig fe: hudtype 5</annotation>
- <annotation cp="🧚🏿♀">fe | hudtype 6 | kvinnelig fe | Titania</annotation>
- <annotation cp="🧚🏿♀" type="tts">kvinnelig fe: hudtype 6</annotation>
- <annotation cp="🧛🏻">Dracula | hudtype 1–2 | vampyr | vandød</annotation>
- <annotation cp="🧛🏻" type="tts">vampyr: hudtype 1–2</annotation>
- <annotation cp="🧛🏼">Dracula | hudtype 3 | vampyr | vandød</annotation>
- <annotation cp="🧛🏼" type="tts">vampyr: hudtype 3</annotation>
- <annotation cp="🧛🏽">Dracula | hudtype 4 | vampyr | vandød</annotation>
- <annotation cp="🧛🏽" type="tts">vampyr: hudtype 4</annotation>
- <annotation cp="🧛🏾">Dracula | hudtype 5 | vampyr | vandød</annotation>
- <annotation cp="🧛🏾" type="tts">vampyr: hudtype 5</annotation>
- <annotation cp="🧛🏿">Dracula | hudtype 6 | vampyr | vandød</annotation>
- <annotation cp="🧛🏿" type="tts">vampyr: hudtype 6</annotation>
- <annotation cp="🧛🏻♂">Dracula | hudtype 1–2 | mannlig vampyr | vandød</annotation>
- <annotation cp="🧛🏻♂" type="tts">mannlig vampyr: hudtype 1–2</annotation>
- <annotation cp="🧛🏼♂">Dracula | hudtype 3 | mannlig vampyr | vandød</annotation>
- <annotation cp="🧛🏼♂" type="tts">mannlig vampyr: hudtype 3</annotation>
- <annotation cp="🧛🏽♂">Dracula | hudtype 4 | mannlig vampyr | vandød</annotation>
- <annotation cp="🧛🏽♂" type="tts">mannlig vampyr: hudtype 4</annotation>
- <annotation cp="🧛🏾♂">Dracula | hudtype 5 | mannlig vampyr | vandød</annotation>
- <annotation cp="🧛🏾♂" type="tts">mannlig vampyr: hudtype 5</annotation>
- <annotation cp="🧛🏿♂">Dracula | hudtype 6 | mannlig vampyr | vandød</annotation>
- <annotation cp="🧛🏿♂" type="tts">mannlig vampyr: hudtype 6</annotation>
- <annotation cp="🧛🏻♀">hudtype 1–2 | kvinnelig vampyr | vandød</annotation>
- <annotation cp="🧛🏻♀" type="tts">kvinnelig vampyr: hudtype 1–2</annotation>
- <annotation cp="🧛🏼♀">hudtype 3 | kvinnelig vampyr | vandød</annotation>
- <annotation cp="🧛🏼♀" type="tts">kvinnelig vampyr: hudtype 3</annotation>
- <annotation cp="🧛🏽♀">hudtype 4 | kvinnelig vampyr | vandød</annotation>
- <annotation cp="🧛🏽♀" type="tts">kvinnelig vampyr: hudtype 4</annotation>
- <annotation cp="🧛🏾♀">hudtype 5 | kvinnelig vampyr | vandød</annotation>
- <annotation cp="🧛🏾♀" type="tts">kvinnelig vampyr: hudtype 5</annotation>
- <annotation cp="🧛🏿♀">hudtype 6 | kvinnelig vampyr | vandød</annotation>
- <annotation cp="🧛🏿♀" type="tts">kvinnelig vampyr: hudtype 6</annotation>
- <annotation cp="🧜🏻">havfrue | havkvinne | havmann | havperson | hudtype 1–2</annotation>
- <annotation cp="🧜🏻" type="tts">havperson: hudtype 1–2</annotation>
- <annotation cp="🧜🏼">havfrue | havkvinne | havmann | havperson | hudtype 3</annotation>
- <annotation cp="🧜🏼" type="tts">havperson: hudtype 3</annotation>
- <annotation cp="🧜🏽">havfrue | havkvinne | havmann | havperson | hudtype 4</annotation>
- <annotation cp="🧜🏽" type="tts">havperson: hudtype 4</annotation>
- <annotation cp="🧜🏾">havfrue | havkvinne | havmann | havperson | hudtype 5</annotation>
- <annotation cp="🧜🏾" type="tts">havperson: hudtype 5</annotation>
- <annotation cp="🧜🏿">havfrue | havkvinne | havmann | havperson | hudtype 6</annotation>
- <annotation cp="🧜🏿" type="tts">havperson: hudtype 6</annotation>
- <annotation cp="🧜🏻♂">havmann | hudtype 1–2 | Triton</annotation>
- <annotation cp="🧜🏻♂" type="tts">havmann: hudtype 1–2</annotation>
- <annotation cp="🧜🏼♂">havmann | hudtype 3 | Triton</annotation>
- <annotation cp="🧜🏼♂" type="tts">havmann: hudtype 3</annotation>
- <annotation cp="🧜🏽♂">havmann | hudtype 4 | Triton</annotation>
- <annotation cp="🧜🏽♂" type="tts">havmann: hudtype 4</annotation>
- <annotation cp="🧜🏾♂">havmann | hudtype 5 | Triton</annotation>
- <annotation cp="🧜🏾♂" type="tts">havmann: hudtype 5</annotation>
- <annotation cp="🧜🏿♂">havmann | hudtype 6 | Triton</annotation>
- <annotation cp="🧜🏿♂" type="tts">havmann: hudtype 6</annotation>
- <annotation cp="🧜🏻♀">havfrue | havkvinne | hudtype 1–2</annotation>
- <annotation cp="🧜🏻♀" type="tts">havfrue: hudtype 1–2</annotation>
- <annotation cp="🧜🏼♀">havfrue | havkvinne | hudtype 3</annotation>
- <annotation cp="🧜🏼♀" type="tts">havfrue: hudtype 3</annotation>
- <annotation cp="🧜🏽♀">havfrue | havkvinne | hudtype 4</annotation>
- <annotation cp="🧜🏽♀" type="tts">havfrue: hudtype 4</annotation>
- <annotation cp="🧜🏾♀">havfrue | havkvinne | hudtype 5</annotation>
- <annotation cp="🧜🏾♀" type="tts">havfrue: hudtype 5</annotation>
- <annotation cp="🧜🏿♀">havfrue | havkvinne | hudtype 6</annotation>
- <annotation cp="🧜🏿♀" type="tts">havfrue: hudtype 6</annotation>
- <annotation cp="🧝🏻">alv | hudtype 1–2 | magi</annotation>
- <annotation cp="🧝🏻" type="tts">alv: hudtype 1–2</annotation>
- <annotation cp="🧝🏼">alv | hudtype 3 | magi</annotation>
- <annotation cp="🧝🏼" type="tts">alv: hudtype 3</annotation>
- <annotation cp="🧝🏽">alv | hudtype 4 | magi</annotation>
- <annotation cp="🧝🏽" type="tts">alv: hudtype 4</annotation>
- <annotation cp="🧝🏾">alv | hudtype 5 | magi</annotation>
- <annotation cp="🧝🏾" type="tts">alv: hudtype 5</annotation>
- <annotation cp="🧝🏿">alv | hudtype 6 | magi</annotation>
- <annotation cp="🧝🏿" type="tts">alv: hudtype 6</annotation>
- <annotation cp="🧝🏻♂">hudtype 1–2 | magi | mannlig alv</annotation>
- <annotation cp="🧝🏻♂" type="tts">mannlig alv: hudtype 1–2</annotation>
- <annotation cp="🧝🏼♂">hudtype 3 | magi | mannlig alv</annotation>
- <annotation cp="🧝🏼♂" type="tts">mannlig alv: hudtype 3</annotation>
- <annotation cp="🧝🏽♂">hudtype 4 | magi | mannlig alv</annotation>
- <annotation cp="🧝🏽♂" type="tts">mannlig alv: hudtype 4</annotation>
- <annotation cp="🧝🏾♂">hudtype 5 | magi | mannlig alv</annotation>
- <annotation cp="🧝🏾♂" type="tts">mannlig alv: hudtype 5</annotation>
- <annotation cp="🧝🏿♂">hudtype 6 | magi | mannlig alv</annotation>
- <annotation cp="🧝🏿♂" type="tts">mannlig alv: hudtype 6</annotation>
- <annotation cp="🧝🏻♀">hudtype 1–2 | kvinnelig alv | magi</annotation>
- <annotation cp="🧝🏻♀" type="tts">kvinnelig alv: hudtype 1–2</annotation>
- <annotation cp="🧝🏼♀">hudtype 3 | kvinnelig alv | magi</annotation>
- <annotation cp="🧝🏼♀" type="tts">kvinnelig alv: hudtype 3</annotation>
- <annotation cp="🧝🏽♀">hudtype 4 | kvinnelig alv | magi</annotation>
- <annotation cp="🧝🏽♀" type="tts">kvinnelig alv: hudtype 4</annotation>
- <annotation cp="🧝🏾♀">hudtype 5 | kvinnelig alv | magi</annotation>
- <annotation cp="🧝🏾♀" type="tts">kvinnelig alv: hudtype 5</annotation>
- <annotation cp="🧝🏿♀">hudtype 6 | kvinnelig alv | magi</annotation>
- <annotation cp="🧝🏿♀" type="tts">kvinnelig alv: hudtype 6</annotation>
- <annotation cp="💆🏻">ansikt | ansiktsmassasje | hudtype 1–2 | massasje | skjønnhetssalong</annotation>
- <annotation cp="💆🏻" type="tts">ansiktsmassasje: hudtype 1–2</annotation>
- <annotation cp="💆🏼">ansikt | ansiktsmassasje | hudtype 3 | massasje | skjønnhetssalong</annotation>
- <annotation cp="💆🏼" type="tts">ansiktsmassasje: hudtype 3</annotation>
- <annotation cp="💆🏽">ansikt | ansiktsmassasje | hudtype 4 | massasje | skjønnhetssalong</annotation>
- <annotation cp="💆🏽" type="tts">ansiktsmassasje: hudtype 4</annotation>
- <annotation cp="💆🏾">ansikt | ansiktsmassasje | hudtype 5 | massasje | skjønnhetssalong</annotation>
- <annotation cp="💆🏾" type="tts">ansiktsmassasje: hudtype 5</annotation>
- <annotation cp="💆🏿">ansikt | ansiktsmassasje | hudtype 6 | massasje | skjønnhetssalong</annotation>
- <annotation cp="💆🏿" type="tts">ansiktsmassasje: hudtype 6</annotation>
- <annotation cp="💆🏻♂">ansikt | avslapning | hodemassasje | hudtype 1–2 | mann | mann som får ansiktsmassasje | massasje | velvære</annotation>
- <annotation cp="💆🏻♂" type="tts">mann som får ansiktsmassasje: hudtype 1–2</annotation>
- <annotation cp="💆🏼♂">ansikt | avslapning | hodemassasje | hudtype 3 | mann | mann som får ansiktsmassasje | massasje | velvære</annotation>
- <annotation cp="💆🏼♂" type="tts">mann som får ansiktsmassasje: hudtype 3</annotation>
- <annotation cp="💆🏽♂">ansikt | avslapning | hodemassasje | hudtype 4 | mann | mann som får ansiktsmassasje | massasje | velvære</annotation>
- <annotation cp="💆🏽♂" type="tts">mann som får ansiktsmassasje: hudtype 4</annotation>
- <annotation cp="💆🏾♂">ansikt | avslapning | hodemassasje | hudtype 5 | mann | mann som får ansiktsmassasje | massasje | velvære</annotation>
- <annotation cp="💆🏾♂" type="tts">mann som får ansiktsmassasje: hudtype 5</annotation>
- <annotation cp="💆🏿♂">ansikt | avslapning | hodemassasje | hudtype 6 | mann | mann som får ansiktsmassasje | massasje | velvære</annotation>
- <annotation cp="💆🏿♂" type="tts">mann som får ansiktsmassasje: hudtype 6</annotation>
- <annotation cp="💆🏻♀">ansikt | avslapning | hodemassasje | hudtype 1–2 | kvinne | kvinne som får ansiktsmassasje | massasje | velvære</annotation>
- <annotation cp="💆🏻♀" type="tts">kvinne som får ansiktsmassasje: hudtype 1–2</annotation>
- <annotation cp="💆🏼♀">ansikt | avslapning | hodemassasje | hudtype 3 | kvinne | kvinne som får ansiktsmassasje | massasje | velvære</annotation>
- <annotation cp="💆🏼♀" type="tts">kvinne som får ansiktsmassasje: hudtype 3</annotation>
- <annotation cp="💆🏽♀">ansikt | avslapning | hodemassasje | hudtype 4 | kvinne | kvinne som får ansiktsmassasje | massasje | velvære</annotation>
- <annotation cp="💆🏽♀" type="tts">kvinne som får ansiktsmassasje: hudtype 4</annotation>
- <annotation cp="💆🏾♀">ansikt | avslapning | hodemassasje | hudtype 5 | kvinne | kvinne som får ansiktsmassasje | massasje | velvære</annotation>
- <annotation cp="💆🏾♀" type="tts">kvinne som får ansiktsmassasje: hudtype 5</annotation>
- <annotation cp="💆🏿♀">ansikt | avslapning | hodemassasje | hudtype 6 | kvinne | kvinne som får ansiktsmassasje | massasje | velvære</annotation>
- <annotation cp="💆🏿♀" type="tts">kvinne som får ansiktsmassasje: hudtype 6</annotation>
- <annotation cp="💇🏻">frisør | hårklipp | hudtype 1–2 | salong | skjønnhet | skjønnhetssalong</annotation>
- <annotation cp="💇🏻" type="tts">hårklipp: hudtype 1–2</annotation>
- <annotation cp="💇🏼">frisør | hårklipp | hudtype 3 | salong | skjønnhet | skjønnhetssalong</annotation>
- <annotation cp="💇🏼" type="tts">hårklipp: hudtype 3</annotation>
- <annotation cp="💇🏽">frisør | hårklipp | hudtype 4 | salong | skjønnhet | skjønnhetssalong</annotation>
- <annotation cp="💇🏽" type="tts">hårklipp: hudtype 4</annotation>
- <annotation cp="💇🏾">frisør | hårklipp | hudtype 5 | salong | skjønnhet | skjønnhetssalong</annotation>
- <annotation cp="💇🏾" type="tts">hårklipp: hudtype 5</annotation>
- <annotation cp="💇🏿">frisør | hårklipp | hudtype 6 | salong | skjønnhet | skjønnhetssalong</annotation>
- <annotation cp="💇🏿" type="tts">hårklipp: hudtype 6</annotation>
- <annotation cp="💇🏻♂">frisør | hårklipp | hudtype 1–2 | mann | mann som får hårklipp | sveis</annotation>
- <annotation cp="💇🏻♂" type="tts">mann som får hårklipp: hudtype 1–2</annotation>
- <annotation cp="💇🏼♂">frisør | hårklipp | hudtype 3 | mann | mann som får hårklipp | sveis</annotation>
- <annotation cp="💇🏼♂" type="tts">mann som får hårklipp: hudtype 3</annotation>
- <annotation cp="💇🏽♂">frisør | hårklipp | hudtype 4 | mann | mann som får hårklipp | sveis</annotation>
- <annotation cp="💇🏽♂" type="tts">mann som får hårklipp: hudtype 4</annotation>
- <annotation cp="💇🏾♂">frisør | hårklipp | hudtype 5 | mann | mann som får hårklipp | sveis</annotation>
- <annotation cp="💇🏾♂" type="tts">mann som får hårklipp: hudtype 5</annotation>
- <annotation cp="💇🏿♂">frisør | hårklipp | hudtype 6 | mann | mann som får hårklipp | sveis</annotation>
- <annotation cp="💇🏿♂" type="tts">mann som får hårklipp: hudtype 6</annotation>
- <annotation cp="💇🏻♀">frisør | frisyre | hårklipp | hudtype 1–2 | kvinne | kvinne som får hårklipp</annotation>
- <annotation cp="💇🏻♀" type="tts">kvinne som får hårklipp: hudtype 1–2</annotation>
- <annotation cp="💇🏼♀">frisør | frisyre | hårklipp | hudtype 3 | kvinne | kvinne som får hårklipp</annotation>
- <annotation cp="💇🏼♀" type="tts">kvinne som får hårklipp: hudtype 3</annotation>
- <annotation cp="💇🏽♀">frisør | frisyre | hårklipp | hudtype 4 | kvinne | kvinne som får hårklipp</annotation>
- <annotation cp="💇🏽♀" type="tts">kvinne som får hårklipp: hudtype 4</annotation>
- <annotation cp="💇🏾♀">frisør | frisyre | hårklipp | hudtype 5 | kvinne | kvinne som får hårklipp</annotation>
- <annotation cp="💇🏾♀" type="tts">kvinne som får hårklipp: hudtype 5</annotation>
- <annotation cp="💇🏿♀">frisør | frisyre | hårklipp | hudtype 6 | kvinne | kvinne som får hårklipp</annotation>
- <annotation cp="💇🏿♀" type="tts">kvinne som får hårklipp: hudtype 6</annotation>
- <annotation cp="🚶🏻">fotgjenger | gå | gående | hudtype 1–2</annotation>
- <annotation cp="🚶🏻" type="tts">fotgjenger: hudtype 1–2</annotation>
- <annotation cp="🚶🏼">fotgjenger | gå | gående | hudtype 3</annotation>
- <annotation cp="🚶🏼" type="tts">fotgjenger: hudtype 3</annotation>
- <annotation cp="🚶🏽">fotgjenger | gå | gående | hudtype 4</annotation>
- <annotation cp="🚶🏽" type="tts">fotgjenger: hudtype 4</annotation>
- <annotation cp="🚶🏾">fotgjenger | gå | gående | hudtype 5</annotation>
- <annotation cp="🚶🏾" type="tts">fotgjenger: hudtype 5</annotation>
- <annotation cp="🚶🏿">fotgjenger | gå | gående | hudtype 6</annotation>
- <annotation cp="🚶🏿" type="tts">fotgjenger: hudtype 6</annotation>
- <annotation cp="🚶🏻♂">fotgjenger | gå | hudtype 1–2 | mann | mannlig fotgjenger | tur</annotation>
- <annotation cp="🚶🏻♂" type="tts">mannlig fotgjenger: hudtype 1–2</annotation>
- <annotation cp="🚶🏼♂">fotgjenger | gå | hudtype 3 | mann | mannlig fotgjenger | tur</annotation>
- <annotation cp="🚶🏼♂" type="tts">mannlig fotgjenger: hudtype 3</annotation>
- <annotation cp="🚶🏽♂">fotgjenger | gå | hudtype 4 | mann | mannlig fotgjenger | tur</annotation>
- <annotation cp="🚶🏽♂" type="tts">mannlig fotgjenger: hudtype 4</annotation>
- <annotation cp="🚶🏾♂">fotgjenger | gå | hudtype 5 | mann | mannlig fotgjenger | tur</annotation>
- <annotation cp="🚶🏾♂" type="tts">mannlig fotgjenger: hudtype 5</annotation>
- <annotation cp="🚶🏿♂">fotgjenger | gå | hudtype 6 | mann | mannlig fotgjenger | tur</annotation>
- <annotation cp="🚶🏿♂" type="tts">mannlig fotgjenger: hudtype 6</annotation>
- <annotation cp="🚶🏻♀">fotgjenger | gå | hudtype 1–2 | kvinne | kvinnelig fotgjenger | tur</annotation>
- <annotation cp="🚶🏻♀" type="tts">kvinnelig fotgjenger: hudtype 1–2</annotation>
- <annotation cp="🚶🏼♀">fotgjenger | gå | hudtype 3 | kvinne | kvinnelig fotgjenger | tur</annotation>
- <annotation cp="🚶🏼♀" type="tts">kvinnelig fotgjenger: hudtype 3</annotation>
- <annotation cp="🚶🏽♀">fotgjenger | gå | hudtype 4 | kvinne | kvinnelig fotgjenger | tur</annotation>
- <annotation cp="🚶🏽♀" type="tts">kvinnelig fotgjenger: hudtype 4</annotation>
- <annotation cp="🚶🏾♀">fotgjenger | gå | hudtype 5 | kvinne | kvinnelig fotgjenger | tur</annotation>
- <annotation cp="🚶🏾♀" type="tts">kvinnelig fotgjenger: hudtype 5</annotation>
- <annotation cp="🚶🏿♀">fotgjenger | gå | hudtype 6 | kvinne | kvinnelig fotgjenger | tur</annotation>
- <annotation cp="🚶🏿♀" type="tts">kvinnelig fotgjenger: hudtype 6</annotation>
- <annotation cp="🧍🏻">hudtype 1–2 | person som står | stå</annotation>
- <annotation cp="🧍🏻" type="tts">person som står: hudtype 1–2</annotation>
- <annotation cp="🧍🏼">hudtype 3 | person som står | stå</annotation>
- <annotation cp="🧍🏼" type="tts">person som står: hudtype 3</annotation>
- <annotation cp="🧍🏽">hudtype 4 | person som står | stå</annotation>
- <annotation cp="🧍🏽" type="tts">person som står: hudtype 4</annotation>
- <annotation cp="🧍🏾">hudtype 5 | person som står | stå</annotation>
- <annotation cp="🧍🏾" type="tts">person som står: hudtype 5</annotation>
- <annotation cp="🧍🏿">hudtype 6 | person som står | stå</annotation>
- <annotation cp="🧍🏿" type="tts">person som står: hudtype 6</annotation>
- <annotation cp="🧍🏻♂">hudtype 1–2 | mann | mann som står | står</annotation>
- <annotation cp="🧍🏻♂" type="tts">mann som står: hudtype 1–2</annotation>
- <annotation cp="🧍🏼♂">hudtype 3 | mann | mann som står | står</annotation>
- <annotation cp="🧍🏼♂" type="tts">mann som står: hudtype 3</annotation>
- <annotation cp="🧍🏽♂">hudtype 4 | mann | mann som står | står</annotation>
- <annotation cp="🧍🏽♂" type="tts">mann som står: hudtype 4</annotation>
- <annotation cp="🧍🏾♂">hudtype 5 | mann | mann som står | står</annotation>
- <annotation cp="🧍🏾♂" type="tts">mann som står: hudtype 5</annotation>
- <annotation cp="🧍🏿♂">hudtype 6 | mann | mann som står | står</annotation>
- <annotation cp="🧍🏿♂" type="tts">mann som står: hudtype 6</annotation>
- <annotation cp="🧍🏻♀">hudtype 1–2 | kvinne | kvinne som står | står</annotation>
- <annotation cp="🧍🏻♀" type="tts">kvinne som står: hudtype 1–2</annotation>
- <annotation cp="🧍🏼♀">hudtype 3 | kvinne | kvinne som står | står</annotation>
- <annotation cp="🧍🏼♀" type="tts">kvinne som står: hudtype 3</annotation>
- <annotation cp="🧍🏽♀">hudtype 4 | kvinne | kvinne som står | står</annotation>
- <annotation cp="🧍🏽♀" type="tts">kvinne som står: hudtype 4</annotation>
- <annotation cp="🧍🏾♀">hudtype 5 | kvinne | kvinne som står | står</annotation>
- <annotation cp="🧍🏾♀" type="tts">kvinne som står: hudtype 5</annotation>
- <annotation cp="🧍🏿♀">hudtype 6 | kvinne | kvinne som står | står</annotation>
- <annotation cp="🧍🏿♀" type="tts">kvinne som står: hudtype 6</annotation>
- <annotation cp="🧎🏻">hudtype 1–2 | knele | kneler | person som kneler</annotation>
- <annotation cp="🧎🏻" type="tts">person som kneler: hudtype 1–2</annotation>
- <annotation cp="🧎🏼">hudtype 3 | knele | kneler | person som kneler</annotation>
- <annotation cp="🧎🏼" type="tts">person som kneler: hudtype 3</annotation>
- <annotation cp="🧎🏽">hudtype 4 | knele | kneler | person som kneler</annotation>
- <annotation cp="🧎🏽" type="tts">person som kneler: hudtype 4</annotation>
- <annotation cp="🧎🏾">hudtype 5 | knele | kneler | person som kneler</annotation>
- <annotation cp="🧎🏾" type="tts">person som kneler: hudtype 5</annotation>
- <annotation cp="🧎🏿">hudtype 6 | knele | kneler | person som kneler</annotation>
- <annotation cp="🧎🏿" type="tts">person som kneler: hudtype 6</annotation>
- <annotation cp="🧎🏻♂">hudtype 1–2 | kneler | mann | mann som kneler</annotation>
- <annotation cp="🧎🏻♂" type="tts">mann som kneler: hudtype 1–2</annotation>
- <annotation cp="🧎🏼♂">hudtype 3 | kneler | mann | mann som kneler</annotation>
- <annotation cp="🧎🏼♂" type="tts">mann som kneler: hudtype 3</annotation>
- <annotation cp="🧎🏽♂">hudtype 4 | kneler | mann | mann som kneler</annotation>
- <annotation cp="🧎🏽♂" type="tts">mann som kneler: hudtype 4</annotation>
- <annotation cp="🧎🏾♂">hudtype 5 | kneler | mann | mann som kneler</annotation>
- <annotation cp="🧎🏾♂" type="tts">mann som kneler: hudtype 5</annotation>
- <annotation cp="🧎🏿♂">hudtype 6 | kneler | mann | mann som kneler</annotation>
- <annotation cp="🧎🏿♂" type="tts">mann som kneler: hudtype 6</annotation>
- <annotation cp="🧎🏻♀">hudtype 1–2 | kneler | kvinne | kvinne som kneler</annotation>
- <annotation cp="🧎🏻♀" type="tts">kvinne som kneler: hudtype 1–2</annotation>
- <annotation cp="🧎🏼♀">hudtype 3 | kneler | kvinne | kvinne som kneler</annotation>
- <annotation cp="🧎🏼♀" type="tts">kvinne som kneler: hudtype 3</annotation>
- <annotation cp="🧎🏽♀">hudtype 4 | kneler | kvinne | kvinne som kneler</annotation>
- <annotation cp="🧎🏽♀" type="tts">kvinne som kneler: hudtype 4</annotation>
- <annotation cp="🧎🏾♀">hudtype 5 | kneler | kvinne | kvinne som kneler</annotation>
- <annotation cp="🧎🏾♀" type="tts">kvinne som kneler: hudtype 5</annotation>
- <annotation cp="🧎🏿♀">hudtype 6 | kneler | kvinne | kvinne som kneler</annotation>
- <annotation cp="🧎🏿♀" type="tts">kvinne som kneler: hudtype 6</annotation>
- <annotation cp="🧑🏻🦯">blind | hudtype 1–2 | person med blindestokk | tilgjengelighet</annotation>
- <annotation cp="🧑🏻🦯" type="tts">person med blindestokk: hudtype 1–2</annotation>
- <annotation cp="🧑🏼🦯">blind | hudtype 3 | person med blindestokk | tilgjengelighet</annotation>
- <annotation cp="🧑🏼🦯" type="tts">person med blindestokk: hudtype 3</annotation>
- <annotation cp="🧑🏽🦯">blind | hudtype 4 | person med blindestokk | tilgjengelighet</annotation>
- <annotation cp="🧑🏽🦯" type="tts">person med blindestokk: hudtype 4</annotation>
- <annotation cp="🧑🏾🦯">blind | hudtype 5 | person med blindestokk | tilgjengelighet</annotation>
- <annotation cp="🧑🏾🦯" type="tts">person med blindestokk: hudtype 5</annotation>
- <annotation cp="🧑🏿🦯">blind | hudtype 6 | person med blindestokk | tilgjengelighet</annotation>
- <annotation cp="🧑🏿🦯" type="tts">person med blindestokk: hudtype 6</annotation>
- <annotation cp="👨🏻🦯">blind | hudtype 1–2 | mann | mann med blindestokk | tilgjengelighet</annotation>
- <annotation cp="👨🏻🦯" type="tts">mann med blindestokk: hudtype 1–2</annotation>
- <annotation cp="👨🏼🦯">blind | hudtype 3 | mann | mann med blindestokk | tilgjengelighet</annotation>
- <annotation cp="👨🏼🦯" type="tts">mann med blindestokk: hudtype 3</annotation>
- <annotation cp="👨🏽🦯">blind | hudtype 4 | mann | mann med blindestokk | tilgjengelighet</annotation>
- <annotation cp="👨🏽🦯" type="tts">mann med blindestokk: hudtype 4</annotation>
- <annotation cp="👨🏾🦯">blind | hudtype 5 | mann | mann med blindestokk | tilgjengelighet</annotation>
- <annotation cp="👨🏾🦯" type="tts">mann med blindestokk: hudtype 5</annotation>
- <annotation cp="👨🏿🦯">blind | hudtype 6 | mann | mann med blindestokk | tilgjengelighet</annotation>
- <annotation cp="👨🏿🦯" type="tts">mann med blindestokk: hudtype 6</annotation>
- <annotation cp="👩🏻🦯">blind | hudtype 1–2 | kvinne | kvinne med blindestokk | tilgjengelighet</annotation>
- <annotation cp="👩🏻🦯" type="tts">kvinne med blindestokk: hudtype 1–2</annotation>
- <annotation cp="👩🏼🦯">blind | hudtype 3 | kvinne | kvinne med blindestokk | tilgjengelighet</annotation>
- <annotation cp="👩🏼🦯" type="tts">kvinne med blindestokk: hudtype 3</annotation>
- <annotation cp="👩🏽🦯">blind | hudtype 4 | kvinne | kvinne med blindestokk | tilgjengelighet</annotation>
- <annotation cp="👩🏽🦯" type="tts">kvinne med blindestokk: hudtype 4</annotation>
- <annotation cp="👩🏾🦯">blind | hudtype 5 | kvinne | kvinne med blindestokk | tilgjengelighet</annotation>
- <annotation cp="👩🏾🦯" type="tts">kvinne med blindestokk: hudtype 5</annotation>
- <annotation cp="👩🏿🦯">blind | hudtype 6 | kvinne | kvinne med blindestokk | tilgjengelighet</annotation>
- <annotation cp="👩🏿🦯" type="tts">kvinne med blindestokk: hudtype 6</annotation>
- <annotation cp="🧑🏻🦼">hudtype 1–2 | person i motorisert rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="🧑🏻🦼" type="tts">person i motorisert rullestol: hudtype 1–2</annotation>
- <annotation cp="🧑🏼🦼">hudtype 3 | person i motorisert rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="🧑🏼🦼" type="tts">person i motorisert rullestol: hudtype 3</annotation>
- <annotation cp="🧑🏽🦼">hudtype 4 | person i motorisert rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="🧑🏽🦼" type="tts">person i motorisert rullestol: hudtype 4</annotation>
- <annotation cp="🧑🏾🦼">hudtype 5 | person i motorisert rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="🧑🏾🦼" type="tts">person i motorisert rullestol: hudtype 5</annotation>
- <annotation cp="🧑🏿🦼">hudtype 6 | person i motorisert rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="🧑🏿🦼" type="tts">person i motorisert rullestol: hudtype 6</annotation>
- <annotation cp="👨🏻🦼">hudtype 1–2 | mann | mann i motorisert rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="👨🏻🦼" type="tts">mann i motorisert rullestol: hudtype 1–2</annotation>
- <annotation cp="👨🏼🦼">hudtype 3 | mann | mann i motorisert rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="👨🏼🦼" type="tts">mann i motorisert rullestol: hudtype 3</annotation>
- <annotation cp="👨🏽🦼">hudtype 4 | mann | mann i motorisert rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="👨🏽🦼" type="tts">mann i motorisert rullestol: hudtype 4</annotation>
- <annotation cp="👨🏾🦼">hudtype 5 | mann | mann i motorisert rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="👨🏾🦼" type="tts">mann i motorisert rullestol: hudtype 5</annotation>
- <annotation cp="👨🏿🦼">hudtype 6 | mann | mann i motorisert rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="👨🏿🦼" type="tts">mann i motorisert rullestol: hudtype 6</annotation>
- <annotation cp="👩🏻🦼">hudtype 1–2 | kvinne | kvinne i motorisert rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="👩🏻🦼" type="tts">kvinne i motorisert rullestol: hudtype 1–2</annotation>
- <annotation cp="👩🏼🦼">hudtype 3 | kvinne | kvinne i motorisert rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="👩🏼🦼" type="tts">kvinne i motorisert rullestol: hudtype 3</annotation>
- <annotation cp="👩🏽🦼">hudtype 4 | kvinne | kvinne i motorisert rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="👩🏽🦼" type="tts">kvinne i motorisert rullestol: hudtype 4</annotation>
- <annotation cp="👩🏾🦼">hudtype 5 | kvinne | kvinne i motorisert rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="👩🏾🦼" type="tts">kvinne i motorisert rullestol: hudtype 5</annotation>
- <annotation cp="👩🏿🦼">hudtype 6 | kvinne | kvinne i motorisert rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="👩🏿🦼" type="tts">kvinne i motorisert rullestol: hudtype 6</annotation>
- <annotation cp="🧑🏻🦽">hudtype 1–2 | person i manuell rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="🧑🏻🦽" type="tts">person i manuell rullestol: hudtype 1–2</annotation>
- <annotation cp="🧑🏼🦽">hudtype 3 | person i manuell rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="🧑🏼🦽" type="tts">person i manuell rullestol: hudtype 3</annotation>
- <annotation cp="🧑🏽🦽">hudtype 4 | person i manuell rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="🧑🏽🦽" type="tts">person i manuell rullestol: hudtype 4</annotation>
- <annotation cp="🧑🏾🦽">hudtype 5 | person i manuell rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="🧑🏾🦽" type="tts">person i manuell rullestol: hudtype 5</annotation>
- <annotation cp="🧑🏿🦽">hudtype 6 | person i manuell rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="🧑🏿🦽" type="tts">person i manuell rullestol: hudtype 6</annotation>
- <annotation cp="👨🏻🦽">hudtype 1–2 | mann | mann i manuell rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="👨🏻🦽" type="tts">mann i manuell rullestol: hudtype 1–2</annotation>
- <annotation cp="👨🏼🦽">hudtype 3 | mann | mann i manuell rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="👨🏼🦽" type="tts">mann i manuell rullestol: hudtype 3</annotation>
- <annotation cp="👨🏽🦽">hudtype 4 | mann | mann i manuell rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="👨🏽🦽" type="tts">mann i manuell rullestol: hudtype 4</annotation>
- <annotation cp="👨🏾🦽">hudtype 5 | mann | mann i manuell rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="👨🏾🦽" type="tts">mann i manuell rullestol: hudtype 5</annotation>
- <annotation cp="👨🏿🦽">hudtype 6 | mann | mann i manuell rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="👨🏿🦽" type="tts">mann i manuell rullestol: hudtype 6</annotation>
- <annotation cp="👩🏻🦽">hudtype 1–2 | kvinne | kvinne i manuell rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="👩🏻🦽" type="tts">kvinne i manuell rullestol: hudtype 1–2</annotation>
- <annotation cp="👩🏼🦽">hudtype 3 | kvinne | kvinne i manuell rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="👩🏼🦽" type="tts">kvinne i manuell rullestol: hudtype 3</annotation>
- <annotation cp="👩🏽🦽">hudtype 4 | kvinne | kvinne i manuell rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="👩🏽🦽" type="tts">kvinne i manuell rullestol: hudtype 4</annotation>
- <annotation cp="👩🏾🦽">hudtype 5 | kvinne | kvinne i manuell rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="👩🏾🦽" type="tts">kvinne i manuell rullestol: hudtype 5</annotation>
- <annotation cp="👩🏿🦽">hudtype 6 | kvinne | kvinne i manuell rullestol | rullestol | tilgjengelighet</annotation>
- <annotation cp="👩🏿🦽" type="tts">kvinne i manuell rullestol: hudtype 6</annotation>
- <annotation cp="🏃🏻">hudtype 1–2 | jogger | jogging | løper | løping | maraton | sport</annotation>
- <annotation cp="🏃🏻" type="tts">løper: hudtype 1–2</annotation>
- <annotation cp="🏃🏼">hudtype 3 | jogger | jogging | løper | løping | maraton | sport</annotation>
- <annotation cp="🏃🏼" type="tts">løper: hudtype 3</annotation>
- <annotation cp="🏃🏽">hudtype 4 | jogger | jogging | løper | løping | maraton | sport</annotation>
- <annotation cp="🏃🏽" type="tts">løper: hudtype 4</annotation>
- <annotation cp="🏃🏾">hudtype 5 | jogger | jogging | løper | løping | maraton | sport</annotation>
- <annotation cp="🏃🏾" type="tts">løper: hudtype 5</annotation>
- <annotation cp="🏃🏿">hudtype 6 | jogger | jogging | løper | løping | maraton | sport</annotation>
- <annotation cp="🏃🏿" type="tts">løper: hudtype 6</annotation>
- <annotation cp="🏃🏻♂">hudtype 1–2 | jogge | løpe | mann | mannlig løper | maraton</annotation>
- <annotation cp="🏃🏻♂" type="tts">mannlig løper: hudtype 1–2</annotation>
- <annotation cp="🏃🏼♂">hudtype 3 | jogge | løpe | mann | mannlig løper | maraton</annotation>
- <annotation cp="🏃🏼♂" type="tts">mannlig løper: hudtype 3</annotation>
- <annotation cp="🏃🏽♂">hudtype 4 | jogge | løpe | mann | mannlig løper | maraton</annotation>
- <annotation cp="🏃🏽♂" type="tts">mannlig løper: hudtype 4</annotation>
- <annotation cp="🏃🏾♂">hudtype 5 | jogge | løpe | mann | mannlig løper | maraton</annotation>
- <annotation cp="🏃🏾♂" type="tts">mannlig løper: hudtype 5</annotation>
- <annotation cp="🏃🏿♂">hudtype 6 | jogge | løpe | mann | mannlig løper | maraton</annotation>
- <annotation cp="🏃🏿♂" type="tts">mannlig løper: hudtype 6</annotation>
- <annotation cp="🏃🏻♀">hudtype 1–2 | jogge | kvinne | kvinnelig løper | løpe | maraton</annotation>
- <annotation cp="🏃🏻♀" type="tts">kvinnelig løper: hudtype 1–2</annotation>
- <annotation cp="🏃🏼♀">hudtype 3 | jogge | kvinne | kvinnelig løper | løpe | maraton</annotation>
- <annotation cp="🏃🏼♀" type="tts">kvinnelig løper: hudtype 3</annotation>
- <annotation cp="🏃🏽♀">hudtype 4 | jogge | kvinne | kvinnelig løper | løpe | maraton</annotation>
- <annotation cp="🏃🏽♀" type="tts">kvinnelig løper: hudtype 4</annotation>
- <annotation cp="🏃🏾♀">hudtype 5 | jogge | kvinne | kvinnelig løper | løpe | maraton</annotation>
- <annotation cp="🏃🏾♀" type="tts">kvinnelig løper: hudtype 5</annotation>
- <annotation cp="🏃🏿♀">hudtype 6 | jogge | kvinne | kvinnelig løper | løpe | maraton</annotation>
- <annotation cp="🏃🏿♀" type="tts">kvinnelig løper: hudtype 6</annotation>
- <annotation cp="💃🏻">dans | dansende kvinne | hudtype 1–2 | kvinne</annotation>
- <annotation cp="💃🏻" type="tts">dansende kvinne: hudtype 1–2</annotation>
- <annotation cp="💃🏼">dans | dansende kvinne | hudtype 3 | kvinne</annotation>
- <annotation cp="💃🏼" type="tts">dansende kvinne: hudtype 3</annotation>
- <annotation cp="💃🏽">dans | dansende kvinne | hudtype 4 | kvinne</annotation>
- <annotation cp="💃🏽" type="tts">dansende kvinne: hudtype 4</annotation>
- <annotation cp="💃🏾">dans | dansende kvinne | hudtype 5 | kvinne</annotation>
- <annotation cp="💃🏾" type="tts">dansende kvinne: hudtype 5</annotation>
- <annotation cp="💃🏿">dans | dansende kvinne | hudtype 6 | kvinne</annotation>
- <annotation cp="💃🏿" type="tts">dansende kvinne: hudtype 6</annotation>
- <annotation cp="🕺🏻">dans | dansende mann | hudtype 1–2 | mann</annotation>
- <annotation cp="🕺🏻" type="tts">dansende mann: hudtype 1–2</annotation>
- <annotation cp="🕺🏼">dans | dansende mann | hudtype 3 | mann</annotation>
- <annotation cp="🕺🏼" type="tts">dansende mann: hudtype 3</annotation>
- <annotation cp="🕺🏽">dans | dansende mann | hudtype 4 | mann</annotation>
- <annotation cp="🕺🏽" type="tts">dansende mann: hudtype 4</annotation>
- <annotation cp="🕺🏾">dans | dansende mann | hudtype 5 | mann</annotation>
- <annotation cp="🕺🏾" type="tts">dansende mann: hudtype 5</annotation>
- <annotation cp="🕺🏿">dans | dansende mann | hudtype 6 | mann</annotation>
- <annotation cp="🕺🏿" type="tts">dansende mann: hudtype 6</annotation>
- <annotation cp="🕴🏻">business | dress | forretningsmann | hudtype 1–2 | mann | svevende mann i dress</annotation>
- <annotation cp="🕴🏻" type="tts">svevende mann i dress: hudtype 1–2</annotation>
- <annotation cp="🕴🏼">business | dress | forretningsmann | hudtype 3 | mann | svevende mann i dress</annotation>
- <annotation cp="🕴🏼" type="tts">svevende mann i dress: hudtype 3</annotation>
- <annotation cp="🕴🏽">business | dress | forretningsmann | hudtype 4 | mann | svevende mann i dress</annotation>
- <annotation cp="🕴🏽" type="tts">svevende mann i dress: hudtype 4</annotation>
- <annotation cp="🕴🏾">business | dress | forretningsmann | hudtype 5 | mann | svevende mann i dress</annotation>
- <annotation cp="🕴🏾" type="tts">svevende mann i dress: hudtype 5</annotation>
- <annotation cp="🕴🏿">business | dress | forretningsmann | hudtype 6 | mann | svevende mann i dress</annotation>
- <annotation cp="🕴🏿" type="tts">svevende mann i dress: hudtype 6</annotation>
- <annotation cp="🧖🏻">dampbad | hudtype 1–2 | person i badstu | sauna</annotation>
- <annotation cp="🧖🏻" type="tts">person i badstu: hudtype 1–2</annotation>
- <annotation cp="🧖🏼">dampbad | hudtype 3 | person i badstu | sauna</annotation>
- <annotation cp="🧖🏼" type="tts">person i badstu: hudtype 3</annotation>
- <annotation cp="🧖🏽">dampbad | hudtype 4 | person i badstu | sauna</annotation>
- <annotation cp="🧖🏽" type="tts">person i badstu: hudtype 4</annotation>
- <annotation cp="🧖🏾">dampbad | hudtype 5 | person i badstu | sauna</annotation>
- <annotation cp="🧖🏾" type="tts">person i badstu: hudtype 5</annotation>
- <annotation cp="🧖🏿">dampbad | hudtype 6 | person i badstu | sauna</annotation>
- <annotation cp="🧖🏿" type="tts">person i badstu: hudtype 6</annotation>
- <annotation cp="🧖🏻♂">dampbad | hudtype 1–2 | mann i badstu | sauna</annotation>
- <annotation cp="🧖🏻♂" type="tts">mann i badstu: hudtype 1–2</annotation>
- <annotation cp="🧖🏼♂">dampbad | hudtype 3 | mann i badstu | sauna</annotation>
- <annotation cp="🧖🏼♂" type="tts">mann i badstu: hudtype 3</annotation>
- <annotation cp="🧖🏽♂">dampbad | hudtype 4 | mann i badstu | sauna</annotation>
- <annotation cp="🧖🏽♂" type="tts">mann i badstu: hudtype 4</annotation>
- <annotation cp="🧖🏾♂">dampbad | hudtype 5 | mann i badstu | sauna</annotation>
- <annotation cp="🧖🏾♂" type="tts">mann i badstu: hudtype 5</annotation>
- <annotation cp="🧖🏿♂">dampbad | hudtype 6 | mann i badstu | sauna</annotation>
- <annotation cp="🧖🏿♂" type="tts">mann i badstu: hudtype 6</annotation>
- <annotation cp="🧖🏻♀">dampbad | hudtype 1–2 | kvinne i badstu | sauna</annotation>
- <annotation cp="🧖🏻♀" type="tts">kvinne i badstu: hudtype 1–2</annotation>
- <annotation cp="🧖🏼♀">dampbad | hudtype 3 | kvinne i badstu | sauna</annotation>
- <annotation cp="🧖🏼♀" type="tts">kvinne i badstu: hudtype 3</annotation>
- <annotation cp="🧖🏽♀">dampbad | hudtype 4 | kvinne i badstu | sauna</annotation>
- <annotation cp="🧖🏽♀" type="tts">kvinne i badstu: hudtype 4</annotation>
- <annotation cp="🧖🏾♀">dampbad | hudtype 5 | kvinne i badstu | sauna</annotation>
- <annotation cp="🧖🏾♀" type="tts">kvinne i badstu: hudtype 5</annotation>
- <annotation cp="🧖🏿♀">dampbad | hudtype 6 | kvinne i badstu | sauna</annotation>
- <annotation cp="🧖🏿♀" type="tts">kvinne i badstu: hudtype 6</annotation>
- <annotation cp="🧗🏻">hudtype 1–2 | klatrer | klatring</annotation>
- <annotation cp="🧗🏻" type="tts">klatrer: hudtype 1–2</annotation>
- <annotation cp="🧗🏼">hudtype 3 | klatrer | klatring</annotation>
- <annotation cp="🧗🏼" type="tts">klatrer: hudtype 3</annotation>
- <annotation cp="🧗🏽">hudtype 4 | klatrer | klatring</annotation>
- <annotation cp="🧗🏽" type="tts">klatrer: hudtype 4</annotation>
- <annotation cp="🧗🏾">hudtype 5 | klatrer | klatring</annotation>
- <annotation cp="🧗🏾" type="tts">klatrer: hudtype 5</annotation>
- <annotation cp="🧗🏿">hudtype 6 | klatrer | klatring</annotation>
- <annotation cp="🧗🏿" type="tts">klatrer: hudtype 6</annotation>
- <annotation cp="🧗🏻♂">hudtype 1–2 | klatring | mannlig klatrer</annotation>
- <annotation cp="🧗🏻♂" type="tts">mannlig klatrer: hudtype 1–2</annotation>
- <annotation cp="🧗🏼♂">hudtype 3 | klatring | mannlig klatrer</annotation>
- <annotation cp="🧗🏼♂" type="tts">mannlig klatrer: hudtype 3</annotation>
- <annotation cp="🧗🏽♂">hudtype 4 | klatring | mannlig klatrer</annotation>
- <annotation cp="🧗🏽♂" type="tts">mannlig klatrer: hudtype 4</annotation>
- <annotation cp="🧗🏾♂">hudtype 5 | klatring | mannlig klatrer</annotation>
- <annotation cp="🧗🏾♂" type="tts">mannlig klatrer: hudtype 5</annotation>
- <annotation cp="🧗🏿♂">hudtype 6 | klatring | mannlig klatrer</annotation>
- <annotation cp="🧗🏿♂" type="tts">mannlig klatrer: hudtype 6</annotation>
- <annotation cp="🧗🏻♀">hudtype 1–2 | klatring | kvinnelig klatrer</annotation>
- <annotation cp="🧗🏻♀" type="tts">kvinnelig klatrer: hudtype 1–2</annotation>
- <annotation cp="🧗🏼♀">hudtype 3 | klatring | kvinnelig klatrer</annotation>
- <annotation cp="🧗🏼♀" type="tts">kvinnelig klatrer: hudtype 3</annotation>
- <annotation cp="🧗🏽♀">hudtype 4 | klatring | kvinnelig klatrer</annotation>
- <annotation cp="🧗🏽♀" type="tts">kvinnelig klatrer: hudtype 4</annotation>
- <annotation cp="🧗🏾♀">hudtype 5 | klatring | kvinnelig klatrer</annotation>
- <annotation cp="🧗🏾♀" type="tts">kvinnelig klatrer: hudtype 5</annotation>
- <annotation cp="🧗🏿♀">hudtype 6 | klatring | kvinnelig klatrer</annotation>
- <annotation cp="🧗🏿♀" type="tts">kvinnelig klatrer: hudtype 6</annotation>
- <annotation cp="🏇🏻">galopp | hest | hesteveddeløp | hudtype 1–2 | jockey | løp | sport | veddeløpshest</annotation>
- <annotation cp="🏇🏻" type="tts">hesteveddeløp: hudtype 1–2</annotation>
- <annotation cp="🏇🏼">galopp | hest | hesteveddeløp | hudtype 3 | jockey | løp | sport | veddeløpshest</annotation>
- <annotation cp="🏇🏼" type="tts">hesteveddeløp: hudtype 3</annotation>
- <annotation cp="🏇🏽">galopp | hest | hesteveddeløp | hudtype 4 | jockey | løp | sport | veddeløpshest</annotation>
- <annotation cp="🏇🏽" type="tts">hesteveddeløp: hudtype 4</annotation>
- <annotation cp="🏇🏾">galopp | hest | hesteveddeløp | hudtype 5 | jockey | løp | sport | veddeløpshest</annotation>
- <annotation cp="🏇🏾" type="tts">hesteveddeløp: hudtype 5</annotation>
- <annotation cp="🏇🏿">galopp | hest | hesteveddeløp | hudtype 6 | jockey | løp | sport | veddeløpshest</annotation>
- <annotation cp="🏇🏿" type="tts">hesteveddeløp: hudtype 6</annotation>
- <annotation cp="🏂🏻">hudtype 1–2 | snøbrett | snøbrettkjøring | snowboard | snowboarder | snowboarding | vintersport</annotation>
- <annotation cp="🏂🏻" type="tts">snowboarder: hudtype 1–2</annotation>
- <annotation cp="🏂🏼">hudtype 3 | snøbrett | snøbrettkjøring | snowboard | snowboarder | snowboarding | vintersport</annotation>
- <annotation cp="🏂🏼" type="tts">snowboarder: hudtype 3</annotation>
- <annotation cp="🏂🏽">hudtype 4 | snøbrett | snøbrettkjøring | snowboard | snowboarder | snowboarding | vintersport</annotation>
- <annotation cp="🏂🏽" type="tts">snowboarder: hudtype 4</annotation>
- <annotation cp="🏂🏾">hudtype 5 | snøbrett | snøbrettkjøring | snowboard | snowboarder | snowboarding | vintersport</annotation>
- <annotation cp="🏂🏾" type="tts">snowboarder: hudtype 5</annotation>
- <annotation cp="🏂🏿">hudtype 6 | snøbrett | snøbrettkjøring | snowboard | snowboarder | snowboarding | vintersport</annotation>
- <annotation cp="🏂🏿" type="tts">snowboarder: hudtype 6</annotation>
- <annotation cp="🏌🏻">ball | golf | golfspiller | hudtype 1–2</annotation>
- <annotation cp="🏌🏻" type="tts">golfspiller: hudtype 1–2</annotation>
- <annotation cp="🏌🏼">ball | golf | golfspiller | hudtype 3</annotation>
- <annotation cp="🏌🏼" type="tts">golfspiller: hudtype 3</annotation>
- <annotation cp="🏌🏽">ball | golf | golfspiller | hudtype 4</annotation>
- <annotation cp="🏌🏽" type="tts">golfspiller: hudtype 4</annotation>
- <annotation cp="🏌🏾">ball | golf | golfspiller | hudtype 5</annotation>
- <annotation cp="🏌🏾" type="tts">golfspiller: hudtype 5</annotation>
- <annotation cp="🏌🏿">ball | golf | golfspiller | hudtype 6</annotation>
- <annotation cp="🏌🏿" type="tts">golfspiller: hudtype 6</annotation>
- <annotation cp="🏌🏻♂">golf | golfspiller | hudtype 1–2 | mann | mannlig golfspiller</annotation>
- <annotation cp="🏌🏻♂" type="tts">mannlig golfspiller: hudtype 1–2</annotation>
- <annotation cp="🏌🏼♂">golf | golfspiller | hudtype 3 | mann | mannlig golfspiller</annotation>
- <annotation cp="🏌🏼♂" type="tts">mannlig golfspiller: hudtype 3</annotation>
- <annotation cp="🏌🏽♂">golf | golfspiller | hudtype 4 | mann | mannlig golfspiller</annotation>
- <annotation cp="🏌🏽♂" type="tts">mannlig golfspiller: hudtype 4</annotation>
- <annotation cp="🏌🏾♂">golf | golfspiller | hudtype 5 | mann | mannlig golfspiller</annotation>
- <annotation cp="🏌🏾♂" type="tts">mannlig golfspiller: hudtype 5</annotation>
- <annotation cp="🏌🏿♂">golf | golfspiller | hudtype 6 | mann | mannlig golfspiller</annotation>
- <annotation cp="🏌🏿♂" type="tts">mannlig golfspiller: hudtype 6</annotation>
- <annotation cp="🏌🏻♀">golf | golfspiller | hudtype 1–2 | kvinne | kvinnelig golfspiller</annotation>
- <annotation cp="🏌🏻♀" type="tts">kvinnelig golfspiller: hudtype 1–2</annotation>
- <annotation cp="🏌🏼♀">golf | golfspiller | hudtype 3 | kvinne | kvinnelig golfspiller</annotation>
- <annotation cp="🏌🏼♀" type="tts">kvinnelig golfspiller: hudtype 3</annotation>
- <annotation cp="🏌🏽♀">golf | golfspiller | hudtype 4 | kvinne | kvinnelig golfspiller</annotation>
- <annotation cp="🏌🏽♀" type="tts">kvinnelig golfspiller: hudtype 4</annotation>
- <annotation cp="🏌🏾♀">golf | golfspiller | hudtype 5 | kvinne | kvinnelig golfspiller</annotation>
- <annotation cp="🏌🏾♀" type="tts">kvinnelig golfspiller: hudtype 5</annotation>
- <annotation cp="🏌🏿♀">golf | golfspiller | hudtype 6 | kvinne | kvinnelig golfspiller</annotation>
- <annotation cp="🏌🏿♀" type="tts">kvinnelig golfspiller: hudtype 6</annotation>
- <annotation cp="🏄🏻">hudtype 1–2 | sport | surfer | surfing</annotation>
- <annotation cp="🏄🏻" type="tts">surfer: hudtype 1–2</annotation>
- <annotation cp="🏄🏼">hudtype 3 | sport | surfer | surfing</annotation>
- <annotation cp="🏄🏼" type="tts">surfer: hudtype 3</annotation>
- <annotation cp="🏄🏽">hudtype 4 | sport | surfer | surfing</annotation>
- <annotation cp="🏄🏽" type="tts">surfer: hudtype 4</annotation>
- <annotation cp="🏄🏾">hudtype 5 | sport | surfer | surfing</annotation>
- <annotation cp="🏄🏾" type="tts">surfer: hudtype 5</annotation>
- <annotation cp="🏄🏿">hudtype 6 | sport | surfer | surfing</annotation>
- <annotation cp="🏄🏿" type="tts">surfer: hudtype 6</annotation>
- <annotation cp="🏄🏻♂">hudtype 1–2 | mann | mannlig surfer | surfing</annotation>
- <annotation cp="🏄🏻♂" type="tts">mannlig surfer: hudtype 1–2</annotation>
- <annotation cp="🏄🏼♂">hudtype 3 | mann | mannlig surfer | surfing</annotation>
- <annotation cp="🏄🏼♂" type="tts">mannlig surfer: hudtype 3</annotation>
- <annotation cp="🏄🏽♂">hudtype 4 | mann | mannlig surfer | surfing</annotation>
- <annotation cp="🏄🏽♂" type="tts">mannlig surfer: hudtype 4</annotation>
- <annotation cp="🏄🏾♂">hudtype 5 | mann | mannlig surfer | surfing</annotation>
- <annotation cp="🏄🏾♂" type="tts">mannlig surfer: hudtype 5</annotation>
- <annotation cp="🏄🏿♂">hudtype 6 | mann | mannlig surfer | surfing</annotation>
- <annotation cp="🏄🏿♂" type="tts">mannlig surfer: hudtype 6</annotation>
- <annotation cp="🏄🏻♀">hudtype 1–2 | kvinne | kvinnelig surfer | surfing</annotation>
- <annotation cp="🏄🏻♀" type="tts">kvinnelig surfer: hudtype 1–2</annotation>
- <annotation cp="🏄🏼♀">hudtype 3 | kvinne | kvinnelig surfer | surfing</annotation>
- <annotation cp="🏄🏼♀" type="tts">kvinnelig surfer: hudtype 3</annotation>
- <annotation cp="🏄🏽♀">hudtype 4 | kvinne | kvinnelig surfer | surfing</annotation>
- <annotation cp="🏄🏽♀" type="tts">kvinnelig surfer: hudtype 4</annotation>
- <annotation cp="🏄🏾♀">hudtype 5 | kvinne | kvinnelig surfer | surfing</annotation>
- <annotation cp="🏄🏾♀" type="tts">kvinnelig surfer: hudtype 5</annotation>
- <annotation cp="🏄🏿♀">hudtype 6 | kvinne | kvinnelig surfer | surfing</annotation>
- <annotation cp="🏄🏿♀" type="tts">kvinnelig surfer: hudtype 6</annotation>
- <annotation cp="🚣🏻">båt | fartøy | hudtype 1–2 | person i robåt</annotation>
- <annotation cp="🚣🏻" type="tts">person i robåt: hudtype 1–2</annotation>
- <annotation cp="🚣🏼">båt | fartøy | hudtype 3 | person i robåt</annotation>
- <annotation cp="🚣🏼" type="tts">person i robåt: hudtype 3</annotation>
- <annotation cp="🚣🏽">båt | fartøy | hudtype 4 | person i robåt</annotation>
- <annotation cp="🚣🏽" type="tts">person i robåt: hudtype 4</annotation>
- <annotation cp="🚣🏾">båt | fartøy | hudtype 5 | person i robåt</annotation>
- <annotation cp="🚣🏾" type="tts">person i robåt: hudtype 5</annotation>
- <annotation cp="🚣🏿">båt | fartøy | hudtype 6 | person i robåt</annotation>
- <annotation cp="🚣🏿" type="tts">person i robåt: hudtype 6</annotation>
- <annotation cp="🚣🏻♂">båt | hudtype 1–2 | mann | mann i robåt | ro | robåt</annotation>
- <annotation cp="🚣🏻♂" type="tts">mann i robåt: hudtype 1–2</annotation>
- <annotation cp="🚣🏼♂">båt | hudtype 3 | mann | mann i robåt | ro | robåt</annotation>
- <annotation cp="🚣🏼♂" type="tts">mann i robåt: hudtype 3</annotation>
- <annotation cp="🚣🏽♂">båt | hudtype 4 | mann | mann i robåt | ro | robåt</annotation>
- <annotation cp="🚣🏽♂" type="tts">mann i robåt: hudtype 4</annotation>
- <annotation cp="🚣🏾♂">båt | hudtype 5 | mann | mann i robåt | ro | robåt</annotation>
- <annotation cp="🚣🏾♂" type="tts">mann i robåt: hudtype 5</annotation>
- <annotation cp="🚣🏿♂">båt | hudtype 6 | mann | mann i robåt | ro | robåt</annotation>
- <annotation cp="🚣🏿♂" type="tts">mann i robåt: hudtype 6</annotation>
- <annotation cp="🚣🏻♀">båt | hudtype 1–2 | kvinne | kvinne i robåt | ro | robåt</annotation>
- <annotation cp="🚣🏻♀" type="tts">kvinne i robåt: hudtype 1–2</annotation>
- <annotation cp="🚣🏼♀">båt | hudtype 3 | kvinne | kvinne i robåt | ro | robåt</annotation>
- <annotation cp="🚣🏼♀" type="tts">kvinne i robåt: hudtype 3</annotation>
- <annotation cp="🚣🏽♀">båt | hudtype 4 | kvinne | kvinne i robåt | ro | robåt</annotation>
- <annotation cp="🚣🏽♀" type="tts">kvinne i robåt: hudtype 4</annotation>
- <annotation cp="🚣🏾♀">båt | hudtype 5 | kvinne | kvinne i robåt | ro | robåt</annotation>
- <annotation cp="🚣🏾♀" type="tts">kvinne i robåt: hudtype 5</annotation>
- <annotation cp="🚣🏿♀">båt | hudtype 6 | kvinne | kvinne i robåt | ro | robåt</annotation>
- <annotation cp="🚣🏿♀" type="tts">kvinne i robåt: hudtype 6</annotation>
- <annotation cp="🏊🏻">hudtype 1–2 | sport | svømme | svømmer | svømming</annotation>
- <annotation cp="🏊🏻" type="tts">svømmer: hudtype 1–2</annotation>
- <annotation cp="🏊🏼">hudtype 3 | sport | svømme | svømmer | svømming</annotation>
- <annotation cp="🏊🏼" type="tts">svømmer: hudtype 3</annotation>
- <annotation cp="🏊🏽">hudtype 4 | sport | svømme | svømmer | svømming</annotation>
- <annotation cp="🏊🏽" type="tts">svømmer: hudtype 4</annotation>
- <annotation cp="🏊🏾">hudtype 5 | sport | svømme | svømmer | svømming</annotation>
- <annotation cp="🏊🏾" type="tts">svømmer: hudtype 5</annotation>
- <annotation cp="🏊🏿">hudtype 6 | sport | svømme | svømmer | svømming</annotation>
- <annotation cp="🏊🏿" type="tts">svømmer: hudtype 6</annotation>
- <annotation cp="🏊🏻♂">hudtype 1–2 | mann | mannlig svømmer | svømme | svømming</annotation>
- <annotation cp="🏊🏻♂" type="tts">mannlig svømmer: hudtype 1–2</annotation>
- <annotation cp="🏊🏼♂">hudtype 3 | mann | mannlig svømmer | svømme | svømming</annotation>
- <annotation cp="🏊🏼♂" type="tts">mannlig svømmer: hudtype 3</annotation>
- <annotation cp="🏊🏽♂">hudtype 4 | mann | mannlig svømmer | svømme | svømming</annotation>
- <annotation cp="🏊🏽♂" type="tts">mannlig svømmer: hudtype 4</annotation>
- <annotation cp="🏊🏾♂">hudtype 5 | mann | mannlig svømmer | svømme | svømming</annotation>
- <annotation cp="🏊🏾♂" type="tts">mannlig svømmer: hudtype 5</annotation>
- <annotation cp="🏊🏿♂">hudtype 6 | mann | mannlig svømmer | svømme | svømming</annotation>
- <annotation cp="🏊🏿♂" type="tts">mannlig svømmer: hudtype 6</annotation>
- <annotation cp="🏊🏻♀">hudtype 1–2 | kvinne | kvinnelig svømmer | svømme | svømming</annotation>
- <annotation cp="🏊🏻♀" type="tts">kvinnelig svømmer: hudtype 1–2</annotation>
- <annotation cp="🏊🏼♀">hudtype 3 | kvinne | kvinnelig svømmer | svømme | svømming</annotation>
- <annotation cp="🏊🏼♀" type="tts">kvinnelig svømmer: hudtype 3</annotation>
- <annotation cp="🏊🏽♀">hudtype 4 | kvinne | kvinnelig svømmer | svømme | svømming</annotation>
- <annotation cp="🏊🏽♀" type="tts">kvinnelig svømmer: hudtype 4</annotation>
- <annotation cp="🏊🏾♀">hudtype 5 | kvinne | kvinnelig svømmer | svømme | svømming</annotation>
- <annotation cp="🏊🏾♀" type="tts">kvinnelig svømmer: hudtype 5</annotation>
- <annotation cp="🏊🏿♀">hudtype 6 | kvinne | kvinnelig svømmer | svømme | svømming</annotation>
- <annotation cp="🏊🏿♀" type="tts">kvinnelig svømmer: hudtype 6</annotation>
- <annotation cp="⛹🏻">ball | ballsport | hudtype 1–2 | person med ball</annotation>
- <annotation cp="⛹🏻" type="tts">person med ball: hudtype 1–2</annotation>
- <annotation cp="⛹🏼">ball | ballsport | hudtype 3 | person med ball</annotation>
- <annotation cp="⛹🏼" type="tts">person med ball: hudtype 3</annotation>
- <annotation cp="⛹🏽">ball | ballsport | hudtype 4 | person med ball</annotation>
- <annotation cp="⛹🏽" type="tts">person med ball: hudtype 4</annotation>
- <annotation cp="⛹🏾">ball | ballsport | hudtype 5 | person med ball</annotation>
- <annotation cp="⛹🏾" type="tts">person med ball: hudtype 5</annotation>
- <annotation cp="⛹🏿">ball | ballsport | hudtype 6 | person med ball</annotation>
- <annotation cp="⛹🏿" type="tts">person med ball: hudtype 6</annotation>
- <annotation cp="⛹🏻♂">ballsport | hudtype 1–2 | mann | mann med ball</annotation>
- <annotation cp="⛹🏻♂" type="tts">mann med ball: hudtype 1–2</annotation>
- <annotation cp="⛹🏼♂">ballsport | hudtype 3 | mann | mann med ball</annotation>
- <annotation cp="⛹🏼♂" type="tts">mann med ball: hudtype 3</annotation>
- <annotation cp="⛹🏽♂">ballsport | hudtype 4 | mann | mann med ball</annotation>
- <annotation cp="⛹🏽♂" type="tts">mann med ball: hudtype 4</annotation>
- <annotation cp="⛹🏾♂">ballsport | hudtype 5 | mann | mann med ball</annotation>
- <annotation cp="⛹🏾♂" type="tts">mann med ball: hudtype 5</annotation>
- <annotation cp="⛹🏿♂">ballsport | hudtype 6 | mann | mann med ball</annotation>
- <annotation cp="⛹🏿♂" type="tts">mann med ball: hudtype 6</annotation>
- <annotation cp="⛹🏻♀">ballsport | hudtype 1–2 | kvinne | kvinne med ball</annotation>
- <annotation cp="⛹🏻♀" type="tts">kvinne med ball: hudtype 1–2</annotation>
- <annotation cp="⛹🏼♀">ballsport | hudtype 3 | kvinne | kvinne med ball</annotation>
- <annotation cp="⛹🏼♀" type="tts">kvinne med ball: hudtype 3</annotation>
- <annotation cp="⛹🏽♀">ballsport | hudtype 4 | kvinne | kvinne med ball</annotation>
- <annotation cp="⛹🏽♀" type="tts">kvinne med ball: hudtype 4</annotation>
- <annotation cp="⛹🏾♀">ballsport | hudtype 5 | kvinne | kvinne med ball</annotation>
- <annotation cp="⛹🏾♀" type="tts">kvinne med ball: hudtype 5</annotation>
- <annotation cp="⛹🏿♀">ballsport | hudtype 6 | kvinne | kvinne med ball</annotation>
- <annotation cp="⛹🏿♀" type="tts">kvinne med ball: hudtype 6</annotation>
- <annotation cp="🏋🏻">hudtype 1–2 | løfter | vekt | vektløfter</annotation>
- <annotation cp="🏋🏻" type="tts">vektløfter: hudtype 1–2</annotation>
- <annotation cp="🏋🏼">hudtype 3 | løfter | vekt | vektløfter</annotation>
- <annotation cp="🏋🏼" type="tts">vektløfter: hudtype 3</annotation>
- <annotation cp="🏋🏽">hudtype 4 | løfter | vekt | vektløfter</annotation>
- <annotation cp="🏋🏽" type="tts">vektløfter: hudtype 4</annotation>
- <annotation cp="🏋🏾">hudtype 5 | løfter | vekt | vektløfter</annotation>
- <annotation cp="🏋🏾" type="tts">vektløfter: hudtype 5</annotation>
- <annotation cp="🏋🏿">hudtype 6 | løfter | vekt | vektløfter</annotation>
- <annotation cp="🏋🏿" type="tts">vektløfter: hudtype 6</annotation>
- <annotation cp="🏋🏻♂">bodybuilding | hudtype 1–2 | mann | mannlig vektløfter | vektløfter</annotation>
- <annotation cp="🏋🏻♂" type="tts">mannlig vektløfter: hudtype 1–2</annotation>
- <annotation cp="🏋🏼♂">bodybuilding | hudtype 3 | mann | mannlig vektløfter | vektløfter</annotation>
- <annotation cp="🏋🏼♂" type="tts">mannlig vektløfter: hudtype 3</annotation>
- <annotation cp="🏋🏽♂">bodybuilding | hudtype 4 | mann | mannlig vektløfter | vektløfter</annotation>
- <annotation cp="🏋🏽♂" type="tts">mannlig vektløfter: hudtype 4</annotation>
- <annotation cp="🏋🏾♂">bodybuilding | hudtype 5 | mann | mannlig vektløfter | vektløfter</annotation>
- <annotation cp="🏋🏾♂" type="tts">mannlig vektløfter: hudtype 5</annotation>
- <annotation cp="🏋🏿♂">bodybuilding | hudtype 6 | mann | mannlig vektløfter | vektløfter</annotation>
- <annotation cp="🏋🏿♂" type="tts">mannlig vektløfter: hudtype 6</annotation>
- <annotation cp="🏋🏻♀">bodybuilding | hudtype 1–2 | kvinne | kvinnelig vektløfter | vektløfting</annotation>
- <annotation cp="🏋🏻♀" type="tts">kvinnelig vektløfter: hudtype 1–2</annotation>
- <annotation cp="🏋🏼♀">bodybuilding | hudtype 3 | kvinne | kvinnelig vektløfter | vektløfting</annotation>
- <annotation cp="🏋🏼♀" type="tts">kvinnelig vektløfter: hudtype 3</annotation>
- <annotation cp="🏋🏽♀">bodybuilding | hudtype 4 | kvinne | kvinnelig vektløfter | vektløfting</annotation>
- <annotation cp="🏋🏽♀" type="tts">kvinnelig vektløfter: hudtype 4</annotation>
- <annotation cp="🏋🏾♀">bodybuilding | hudtype 5 | kvinne | kvinnelig vektløfter | vektløfting</annotation>
- <annotation cp="🏋🏾♀" type="tts">kvinnelig vektløfter: hudtype 5</annotation>
- <annotation cp="🏋🏿♀">bodybuilding | hudtype 6 | kvinne | kvinnelig vektløfter | vektløfting</annotation>
- <annotation cp="🏋🏿♀" type="tts">kvinnelig vektløfter: hudtype 6</annotation>
- <annotation cp="🚴🏻">hudtype 1–2 | sykkel | sykle | syklist</annotation>
- <annotation cp="🚴🏻" type="tts">syklist: hudtype 1–2</annotation>
- <annotation cp="🚴🏼">hudtype 3 | sykkel | sykle | syklist</annotation>
- <annotation cp="🚴🏼" type="tts">syklist: hudtype 3</annotation>
- <annotation cp="🚴🏽">hudtype 4 | sykkel | sykle | syklist</annotation>
- <annotation cp="🚴🏽" type="tts">syklist: hudtype 4</annotation>
- <annotation cp="🚴🏾">hudtype 5 | sykkel | sykle | syklist</annotation>
- <annotation cp="🚴🏾" type="tts">syklist: hudtype 5</annotation>
- <annotation cp="🚴🏿">hudtype 6 | sykkel | sykle | syklist</annotation>
- <annotation cp="🚴🏿" type="tts">syklist: hudtype 6</annotation>
- <annotation cp="🚴🏻♂">hudtype 1–2 | mann | mannlig syklist | sykkel | sykle</annotation>
- <annotation cp="🚴🏻♂" type="tts">mannlig syklist: hudtype 1–2</annotation>
- <annotation cp="🚴🏼♂">hudtype 3 | mann | mannlig syklist | sykkel | sykle</annotation>
- <annotation cp="🚴🏼♂" type="tts">mannlig syklist: hudtype 3</annotation>
- <annotation cp="🚴🏽♂">hudtype 4 | mann | mannlig syklist | sykkel | sykle</annotation>
- <annotation cp="🚴🏽♂" type="tts">mannlig syklist: hudtype 4</annotation>
- <annotation cp="🚴🏾♂">hudtype 5 | mann | mannlig syklist | sykkel | sykle</annotation>
- <annotation cp="🚴🏾♂" type="tts">mannlig syklist: hudtype 5</annotation>
- <annotation cp="🚴🏿♂">hudtype 6 | mann | mannlig syklist | sykkel | sykle</annotation>
- <annotation cp="🚴🏿♂" type="tts">mannlig syklist: hudtype 6</annotation>
- <annotation cp="🚴🏻♀">hudtype 1–2 | kvinne | kvinnelig syklist | sykkel | sykle</annotation>
- <annotation cp="🚴🏻♀" type="tts">kvinnelig syklist: hudtype 1–2</annotation>
- <annotation cp="🚴🏼♀">hudtype 3 | kvinne | kvinnelig syklist | sykkel | sykle</annotation>
- <annotation cp="🚴🏼♀" type="tts">kvinnelig syklist: hudtype 3</annotation>
- <annotation cp="🚴🏽♀">hudtype 4 | kvinne | kvinnelig syklist | sykkel | sykle</annotation>
- <annotation cp="🚴🏽♀" type="tts">kvinnelig syklist: hudtype 4</annotation>
- <annotation cp="🚴🏾♀">hudtype 5 | kvinne | kvinnelig syklist | sykkel | sykle</annotation>
- <annotation cp="🚴🏾♀" type="tts">kvinnelig syklist: hudtype 5</annotation>
- <annotation cp="🚴🏿♀">hudtype 6 | kvinne | kvinnelig syklist | sykkel | sykle</annotation>
- <annotation cp="🚴🏿♀" type="tts">kvinnelig syklist: hudtype 6</annotation>
- <annotation cp="🚵🏻">hudtype 1–2 | mountainbike | sykkel | terrengsykkel | terrengsyklist</annotation>
- <annotation cp="🚵🏻" type="tts">terrengsyklist: hudtype 1–2</annotation>
- <annotation cp="🚵🏼">hudtype 3 | mountainbike | sykkel | terrengsykkel | terrengsyklist</annotation>
- <annotation cp="🚵🏼" type="tts">terrengsyklist: hudtype 3</annotation>
- <annotation cp="🚵🏽">hudtype 4 | mountainbike | sykkel | terrengsykkel | terrengsyklist</annotation>
- <annotation cp="🚵🏽" type="tts">terrengsyklist: hudtype 4</annotation>
- <annotation cp="🚵🏾">hudtype 5 | mountainbike | sykkel | terrengsykkel | terrengsyklist</annotation>
- <annotation cp="🚵🏾" type="tts">terrengsyklist: hudtype 5</annotation>
- <annotation cp="🚵🏿">hudtype 6 | mountainbike | sykkel | terrengsykkel | terrengsyklist</annotation>
- <annotation cp="🚵🏿" type="tts">terrengsyklist: hudtype 6</annotation>
- <annotation cp="🚵🏻♂">hudtype 1–2 | mann | mann på terrengsykkel | mountainbike | sykkel | terrengsykkel</annotation>
- <annotation cp="🚵🏻♂" type="tts">mann på terrengsykkel: hudtype 1–2</annotation>
- <annotation cp="🚵🏼♂">hudtype 3 | mann | mann på terrengsykkel | mountainbike | sykkel | terrengsykkel</annotation>
- <annotation cp="🚵🏼♂" type="tts">mann på terrengsykkel: hudtype 3</annotation>
- <annotation cp="🚵🏽♂">hudtype 4 | mann | mann på terrengsykkel | mountainbike | sykkel | terrengsykkel</annotation>
- <annotation cp="🚵🏽♂" type="tts">mann på terrengsykkel: hudtype 4</annotation>
- <annotation cp="🚵🏾♂">hudtype 5 | mann | mann på terrengsykkel | mountainbike | sykkel | terrengsykkel</annotation>
- <annotation cp="🚵🏾♂" type="tts">mann på terrengsykkel: hudtype 5</annotation>
- <annotation cp="🚵🏿♂">hudtype 6 | mann | mann på terrengsykkel | mountainbike | sykkel | terrengsykkel</annotation>
- <annotation cp="🚵🏿♂" type="tts">mann på terrengsykkel: hudtype 6</annotation>
- <annotation cp="🚵🏻♀">hudtype 1–2 | kvinne | kvinne på terrengsykkel | mountainbike | sykkel | terrengsykkel</annotation>
- <annotation cp="🚵🏻♀" type="tts">kvinne på terrengsykkel: hudtype 1–2</annotation>
- <annotation cp="🚵🏼♀">hudtype 3 | kvinne | kvinne på terrengsykkel | mountainbike | sykkel | terrengsykkel</annotation>
- <annotation cp="🚵🏼♀" type="tts">kvinne på terrengsykkel: hudtype 3</annotation>
- <annotation cp="🚵🏽♀">hudtype 4 | kvinne | kvinne på terrengsykkel | mountainbike | sykkel | terrengsykkel</annotation>
- <annotation cp="🚵🏽♀" type="tts">kvinne på terrengsykkel: hudtype 4</annotation>
- <annotation cp="🚵🏾♀">hudtype 5 | kvinne | kvinne på terrengsykkel | mountainbike | sykkel | terrengsykkel</annotation>
- <annotation cp="🚵🏾♀" type="tts">kvinne på terrengsykkel: hudtype 5</annotation>
- <annotation cp="🚵🏿♀">hudtype 6 | kvinne | kvinne på terrengsykkel | mountainbike | sykkel | terrengsykkel</annotation>
- <annotation cp="🚵🏿♀" type="tts">kvinne på terrengsykkel: hudtype 6</annotation>
- <annotation cp="🤸🏻">gym | gymnastikk | hudtype 1–2 | person | slå hjul | sport</annotation>
- <annotation cp="🤸🏻" type="tts">slå hjul: hudtype 1–2</annotation>
- <annotation cp="🤸🏼">gym | gymnastikk | hudtype 3 | person | slå hjul | sport</annotation>
- <annotation cp="🤸🏼" type="tts">slå hjul: hudtype 3</annotation>
- <annotation cp="🤸🏽">gym | gymnastikk | hudtype 4 | person | slå hjul | sport</annotation>
- <annotation cp="🤸🏽" type="tts">slå hjul: hudtype 4</annotation>
- <annotation cp="🤸🏾">gym | gymnastikk | hudtype 5 | person | slå hjul | sport</annotation>
- <annotation cp="🤸🏾" type="tts">slå hjul: hudtype 5</annotation>
- <annotation cp="🤸🏿">gym | gymnastikk | hudtype 6 | person | slå hjul | sport</annotation>
- <annotation cp="🤸🏿" type="tts">slå hjul: hudtype 6</annotation>
- <annotation cp="🤸🏻♂">hudtype 1–2 | mann | mann som slår hjul | slå hjul</annotation>
- <annotation cp="🤸🏻♂" type="tts">mann som slår hjul: hudtype 1–2</annotation>
- <annotation cp="🤸🏼♂">hudtype 3 | mann | mann som slår hjul | slå hjul</annotation>
- <annotation cp="🤸🏼♂" type="tts">mann som slår hjul: hudtype 3</annotation>
- <annotation cp="🤸🏽♂">hudtype 4 | mann | mann som slår hjul | slå hjul</annotation>
- <annotation cp="🤸🏽♂" type="tts">mann som slår hjul: hudtype 4</annotation>
- <annotation cp="🤸🏾♂">hudtype 5 | mann | mann som slår hjul | slå hjul</annotation>
- <annotation cp="🤸🏾♂" type="tts">mann som slår hjul: hudtype 5</annotation>
- <annotation cp="🤸🏿♂">hudtype 6 | mann | mann som slår hjul | slå hjul</annotation>
- <annotation cp="🤸🏿♂" type="tts">mann som slår hjul: hudtype 6</annotation>
- <annotation cp="🤸🏻♀">hudtype 1–2 | kvinne | kvinne som slår hjul | slå hjul</annotation>
- <annotation cp="🤸🏻♀" type="tts">kvinne som slår hjul: hudtype 1–2</annotation>
- <annotation cp="🤸🏼♀">hudtype 3 | kvinne | kvinne som slår hjul | slå hjul</annotation>
- <annotation cp="🤸🏼♀" type="tts">kvinne som slår hjul: hudtype 3</annotation>
- <annotation cp="🤸🏽♀">hudtype 4 | kvinne | kvinne som slår hjul | slå hjul</annotation>
- <annotation cp="🤸🏽♀" type="tts">kvinne som slår hjul: hudtype 4</annotation>
- <annotation cp="🤸🏾♀">hudtype 5 | kvinne | kvinne som slår hjul | slå hjul</annotation>
- <annotation cp="🤸🏾♀" type="tts">kvinne som slår hjul: hudtype 5</annotation>
- <annotation cp="🤸🏿♀">hudtype 6 | kvinne | kvinne som slår hjul | slå hjul</annotation>
- <annotation cp="🤸🏿♀" type="tts">kvinne som slår hjul: hudtype 6</annotation>
- <annotation cp="🤽🏻">hudtype 1–2 | person | polo | sport | vann | vannpolo</annotation>
- <annotation cp="🤽🏻" type="tts">vannpolo: hudtype 1–2</annotation>
- <annotation cp="🤽🏼">hudtype 3 | person | polo | sport | vann | vannpolo</annotation>
- <annotation cp="🤽🏼" type="tts">vannpolo: hudtype 3</annotation>
- <annotation cp="🤽🏽">hudtype 4 | person | polo | sport | vann | vannpolo</annotation>
- <annotation cp="🤽🏽" type="tts">vannpolo: hudtype 4</annotation>
- <annotation cp="🤽🏾">hudtype 5 | person | polo | sport | vann | vannpolo</annotation>
- <annotation cp="🤽🏾" type="tts">vannpolo: hudtype 5</annotation>
- <annotation cp="🤽🏿">hudtype 6 | person | polo | sport | vann | vannpolo</annotation>
- <annotation cp="🤽🏿" type="tts">vannpolo: hudtype 6</annotation>
- <annotation cp="🤽🏻♂">hudtype 1–2 | mann | mannlig vannpolospiller | vannpolo</annotation>
- <annotation cp="🤽🏻♂" type="tts">mannlig vannpolospiller: hudtype 1–2</annotation>
- <annotation cp="🤽🏼♂">hudtype 3 | mann | mannlig vannpolospiller | vannpolo</annotation>
- <annotation cp="🤽🏼♂" type="tts">mannlig vannpolospiller: hudtype 3</annotation>
- <annotation cp="🤽🏽♂">hudtype 4 | mann | mannlig vannpolospiller | vannpolo</annotation>
- <annotation cp="🤽🏽♂" type="tts">mannlig vannpolospiller: hudtype 4</annotation>
- <annotation cp="🤽🏾♂">hudtype 5 | mann | mannlig vannpolospiller | vannpolo</annotation>
- <annotation cp="🤽🏾♂" type="tts">mannlig vannpolospiller: hudtype 5</annotation>
- <annotation cp="🤽🏿♂">hudtype 6 | mann | mannlig vannpolospiller | vannpolo</annotation>
- <annotation cp="🤽🏿♂" type="tts">mannlig vannpolospiller: hudtype 6</annotation>
- <annotation cp="🤽🏻♀">hudtype 1–2 | kvinne | kvinnelig vannpolospiller | vannpolo</annotation>
- <annotation cp="🤽🏻♀" type="tts">kvinnelig vannpolospiller: hudtype 1–2</annotation>
- <annotation cp="🤽🏼♀">hudtype 3 | kvinne | kvinnelig vannpolospiller | vannpolo</annotation>
- <annotation cp="🤽🏼♀" type="tts">kvinnelig vannpolospiller: hudtype 3</annotation>
- <annotation cp="🤽🏽♀">hudtype 4 | kvinne | kvinnelig vannpolospiller | vannpolo</annotation>
- <annotation cp="🤽🏽♀" type="tts">kvinnelig vannpolospiller: hudtype 4</annotation>
- <annotation cp="🤽🏾♀">hudtype 5 | kvinne | kvinnelig vannpolospiller | vannpolo</annotation>
- <annotation cp="🤽🏾♀" type="tts">kvinnelig vannpolospiller: hudtype 5</annotation>
- <annotation cp="🤽🏿♀">hudtype 6 | kvinne | kvinnelig vannpolospiller | vannpolo</annotation>
- <annotation cp="🤽🏿♀" type="tts">kvinnelig vannpolospiller: hudtype 6</annotation>
- <annotation cp="🤾🏻">ball | håndball | hudtype 1–2 | person | sport</annotation>
- <annotation cp="🤾🏻" type="tts">håndball: hudtype 1–2</annotation>
- <annotation cp="🤾🏼">ball | håndball | hudtype 3 | person | sport</annotation>
- <annotation cp="🤾🏼" type="tts">håndball: hudtype 3</annotation>
- <annotation cp="🤾🏽">ball | håndball | hudtype 4 | person | sport</annotation>
- <annotation cp="🤾🏽" type="tts">håndball: hudtype 4</annotation>
- <annotation cp="🤾🏾">ball | håndball | hudtype 5 | person | sport</annotation>
- <annotation cp="🤾🏾" type="tts">håndball: hudtype 5</annotation>
- <annotation cp="🤾🏿">ball | håndball | hudtype 6 | person | sport</annotation>
- <annotation cp="🤾🏿" type="tts">håndball: hudtype 6</annotation>
- <annotation cp="🤾🏻♂">håndball | hudtype 1–2 | mann | mannlig håndballspiller</annotation>
- <annotation cp="🤾🏻♂" type="tts">mannlig håndballspiller: hudtype 1–2</annotation>
- <annotation cp="🤾🏼♂">håndball | hudtype 3 | mann | mannlig håndballspiller</annotation>
- <annotation cp="🤾🏼♂" type="tts">mannlig håndballspiller: hudtype 3</annotation>
- <annotation cp="🤾🏽♂">håndball | hudtype 4 | mann | mannlig håndballspiller</annotation>
- <annotation cp="🤾🏽♂" type="tts">mannlig håndballspiller: hudtype 4</annotation>
- <annotation cp="🤾🏾♂">håndball | hudtype 5 | mann | mannlig håndballspiller</annotation>
- <annotation cp="🤾🏾♂" type="tts">mannlig håndballspiller: hudtype 5</annotation>
- <annotation cp="🤾🏿♂">håndball | hudtype 6 | mann | mannlig håndballspiller</annotation>
- <annotation cp="🤾🏿♂" type="tts">mannlig håndballspiller: hudtype 6</annotation>
- <annotation cp="🤾🏻♀">håndball | hudtype 1–2 | kvinne | kvinnelig håndballspiller</annotation>
- <annotation cp="🤾🏻♀" type="tts">kvinnelig håndballspiller: hudtype 1–2</annotation>
- <annotation cp="🤾🏼♀">håndball | hudtype 3 | kvinne | kvinnelig håndballspiller</annotation>
- <annotation cp="🤾🏼♀" type="tts">kvinnelig håndballspiller: hudtype 3</annotation>
- <annotation cp="🤾🏽♀">håndball | hudtype 4 | kvinne | kvinnelig håndballspiller</annotation>
- <annotation cp="🤾🏽♀" type="tts">kvinnelig håndballspiller: hudtype 4</annotation>
- <annotation cp="🤾🏾♀">håndball | hudtype 5 | kvinne | kvinnelig håndballspiller</annotation>
- <annotation cp="🤾🏾♀" type="tts">kvinnelig håndballspiller: hudtype 5</annotation>
- <annotation cp="🤾🏿♀">håndball | hudtype 6 | kvinne | kvinnelig håndballspiller</annotation>
- <annotation cp="🤾🏿♀" type="tts">kvinnelig håndballspiller: hudtype 6</annotation>
- <annotation cp="🤹🏻">balanse | ferdighet | hudtype 1–2 | multitasking | sjonglering</annotation>
- <annotation cp="🤹🏻" type="tts">sjonglering: hudtype 1–2</annotation>
- <annotation cp="🤹🏼">balanse | ferdighet | hudtype 3 | multitasking | sjonglering</annotation>
- <annotation cp="🤹🏼" type="tts">sjonglering: hudtype 3</annotation>
- <annotation cp="🤹🏽">balanse | ferdighet | hudtype 4 | multitasking | sjonglering</annotation>
- <annotation cp="🤹🏽" type="tts">sjonglering: hudtype 4</annotation>
- <annotation cp="🤹🏾">balanse | ferdighet | hudtype 5 | multitasking | sjonglering</annotation>
- <annotation cp="🤹🏾" type="tts">sjonglering: hudtype 5</annotation>
- <annotation cp="🤹🏿">balanse | ferdighet | hudtype 6 | multitasking | sjonglering</annotation>
- <annotation cp="🤹🏿" type="tts">sjonglering: hudtype 6</annotation>
- <annotation cp="🤹🏻♂">hudtype 1–2 | mann | mannlig sjonglør | multitasking | sirkus | sjonglere</annotation>
- <annotation cp="🤹🏻♂" type="tts">mannlig sjonglør: hudtype 1–2</annotation>
- <annotation cp="🤹🏼♂">hudtype 3 | mann | mannlig sjonglør | multitasking | sirkus | sjonglere</annotation>
- <annotation cp="🤹🏼♂" type="tts">mannlig sjonglør: hudtype 3</annotation>
- <annotation cp="🤹🏽♂">hudtype 4 | mann | mannlig sjonglør | multitasking | sirkus | sjonglere</annotation>
- <annotation cp="🤹🏽♂" type="tts">mannlig sjonglør: hudtype 4</annotation>
- <annotation cp="🤹🏾♂">hudtype 5 | mann | mannlig sjonglør | multitasking | sirkus | sjonglere</annotation>
- <annotation cp="🤹🏾♂" type="tts">mannlig sjonglør: hudtype 5</annotation>
- <annotation cp="🤹🏿♂">hudtype 6 | mann | mannlig sjonglør | multitasking | sirkus | sjonglere</annotation>
- <annotation cp="🤹🏿♂" type="tts">mannlig sjonglør: hudtype 6</annotation>
- <annotation cp="🤹🏻♀">hudtype 1–2 | kvinne | kvinnelig sjonglør | multitasking | sirkus | sjonglere</annotation>
- <annotation cp="🤹🏻♀" type="tts">kvinnelig sjonglør: hudtype 1–2</annotation>
- <annotation cp="🤹🏼♀">hudtype 3 | kvinne | kvinnelig sjonglør | multitasking | sirkus | sjonglere</annotation>
- <annotation cp="🤹🏼♀" type="tts">kvinnelig sjonglør: hudtype 3</annotation>
- <annotation cp="🤹🏽♀">hudtype 4 | kvinne | kvinnelig sjonglør | multitasking | sirkus | sjonglere</annotation>
- <annotation cp="🤹🏽♀" type="tts">kvinnelig sjonglør: hudtype 4</annotation>
- <annotation cp="🤹🏾♀">hudtype 5 | kvinne | kvinnelig sjonglør | multitasking | sirkus | sjonglere</annotation>
- <annotation cp="🤹🏾♀" type="tts">kvinnelig sjonglør: hudtype 5</annotation>
- <annotation cp="🤹🏿♀">hudtype 6 | kvinne | kvinnelig sjonglør | multitasking | sirkus | sjonglere</annotation>
- <annotation cp="🤹🏿♀" type="tts">kvinnelig sjonglør: hudtype 6</annotation>
- <annotation cp="🧘🏻">hudtype 1–2 | lotusstilling | meditasjon | yoga</annotation>
- <annotation cp="🧘🏻" type="tts">lotusstilling: hudtype 1–2</annotation>
- <annotation cp="🧘🏼">hudtype 3 | lotusstilling | meditasjon | yoga</annotation>
- <annotation cp="🧘🏼" type="tts">lotusstilling: hudtype 3</annotation>
- <annotation cp="🧘🏽">hudtype 4 | lotusstilling | meditasjon | yoga</annotation>
- <annotation cp="🧘🏽" type="tts">lotusstilling: hudtype 4</annotation>
- <annotation cp="🧘🏾">hudtype 5 | lotusstilling | meditasjon | yoga</annotation>
- <annotation cp="🧘🏾" type="tts">lotusstilling: hudtype 5</annotation>
- <annotation cp="🧘🏿">hudtype 6 | lotusstilling | meditasjon | yoga</annotation>
- <annotation cp="🧘🏿" type="tts">lotusstilling: hudtype 6</annotation>
- <annotation cp="🧘🏻♂">hudtype 1–2 | mann i lotusstilling | meditasjon | yoga</annotation>
- <annotation cp="🧘🏻♂" type="tts">mann i lotusstilling: hudtype 1–2</annotation>
- <annotation cp="🧘🏼♂">hudtype 3 | mann i lotusstilling | meditasjon | yoga</annotation>
- <annotation cp="🧘🏼♂" type="tts">mann i lotusstilling: hudtype 3</annotation>
- <annotation cp="🧘🏽♂">hudtype 4 | mann i lotusstilling | meditasjon | yoga</annotation>
- <annotation cp="🧘🏽♂" type="tts">mann i lotusstilling: hudtype 4</annotation>
- <annotation cp="🧘🏾♂">hudtype 5 | mann i lotusstilling | meditasjon | yoga</annotation>
- <annotation cp="🧘🏾♂" type="tts">mann i lotusstilling: hudtype 5</annotation>
- <annotation cp="🧘🏿♂">hudtype 6 | mann i lotusstilling | meditasjon | yoga</annotation>
- <annotation cp="🧘🏿♂" type="tts">mann i lotusstilling: hudtype 6</annotation>
- <annotation cp="🧘🏻♀">hudtype 1–2 | kvinne i lotusstilling | meditasjon | yoga</annotation>
- <annotation cp="🧘🏻♀" type="tts">kvinne i lotusstilling: hudtype 1–2</annotation>
- <annotation cp="🧘🏼♀">hudtype 3 | kvinne i lotusstilling | meditasjon | yoga</annotation>
- <annotation cp="🧘🏼♀" type="tts">kvinne i lotusstilling: hudtype 3</annotation>
- <annotation cp="🧘🏽♀">hudtype 4 | kvinne i lotusstilling | meditasjon | yoga</annotation>
- <annotation cp="🧘🏽♀" type="tts">kvinne i lotusstilling: hudtype 4</annotation>
- <annotation cp="🧘🏾♀">hudtype 5 | kvinne i lotusstilling | meditasjon | yoga</annotation>
- <annotation cp="🧘🏾♀" type="tts">kvinne i lotusstilling: hudtype 5</annotation>
- <annotation cp="🧘🏿♀">hudtype 6 | kvinne i lotusstilling | meditasjon | yoga</annotation>
- <annotation cp="🧘🏿♀" type="tts">kvinne i lotusstilling: hudtype 6</annotation>
- <annotation cp="🛀🏻">bad | badekar | hudtype 1–2 | person i badekar</annotation>
- <annotation cp="🛀🏻" type="tts">person i badekar: hudtype 1–2</annotation>
- <annotation cp="🛀🏼">bad | badekar | hudtype 3 | person i badekar</annotation>
- <annotation cp="🛀🏼" type="tts">person i badekar: hudtype 3</annotation>
- <annotation cp="🛀🏽">bad | badekar | hudtype 4 | person i badekar</annotation>
- <annotation cp="🛀🏽" type="tts">person i badekar: hudtype 4</annotation>
- <annotation cp="🛀🏾">bad | badekar | hudtype 5 | person i badekar</annotation>
- <annotation cp="🛀🏾" type="tts">person i badekar: hudtype 5</annotation>
- <annotation cp="🛀🏿">bad | badekar | hudtype 6 | person i badekar</annotation>
- <annotation cp="🛀🏿" type="tts">person i badekar: hudtype 6</annotation>
- <annotation cp="🛌🏻">hotell | hudtype 1–2 | person i seng | sove</annotation>
- <annotation cp="🛌🏻" type="tts">person i seng: hudtype 1–2</annotation>
- <annotation cp="🛌🏼">hotell | hudtype 3 | person i seng | sove</annotation>
- <annotation cp="🛌🏼" type="tts">person i seng: hudtype 3</annotation>
- <annotation cp="🛌🏽">hotell | hudtype 4 | person i seng | sove</annotation>
- <annotation cp="🛌🏽" type="tts">person i seng: hudtype 4</annotation>
- <annotation cp="🛌🏾">hotell | hudtype 5 | person i seng | sove</annotation>
- <annotation cp="🛌🏾" type="tts">person i seng: hudtype 5</annotation>
- <annotation cp="🛌🏿">hotell | hudtype 6 | person i seng | sove</annotation>
- <annotation cp="🛌🏿" type="tts">person i seng: hudtype 6</annotation>
- <annotation cp="🧑🏻🤝🧑🏻">hånd | holde hender | hudtype 1–2 | par | personer | personer som leier</annotation>
- <annotation cp="🧑🏻🤝🧑🏻" type="tts">personer som leier: hudtype 1–2</annotation>
- <annotation cp="🧑🏻🤝🧑🏼">hånd | holde hender | hudtype 1–2 | hudtype 3 | par | personer | personer som leier</annotation>
- <annotation cp="🧑🏻🤝🧑🏼" type="tts">personer som leier: hudtype 1–2, hudtype 3</annotation>
- <annotation cp="🧑🏻🤝🧑🏽">hånd | holde hender | hudtype 1–2 | hudtype 4 | par | personer | personer som leier</annotation>
- <annotation cp="🧑🏻🤝🧑🏽" type="tts">personer som leier: hudtype 1–2, hudtype 4</annotation>
- <annotation cp="🧑🏻🤝🧑🏾">hånd | holde hender | hudtype 1–2 | hudtype 5 | par | personer | personer som leier</annotation>
- <annotation cp="🧑🏻🤝🧑🏾" type="tts">personer som leier: hudtype 1–2, hudtype 5</annotation>
- <annotation cp="🧑🏻🤝🧑🏿">hånd | holde hender | hudtype 1–2 | hudtype 6 | par | personer | personer som leier</annotation>
- <annotation cp="🧑🏻🤝🧑🏿" type="tts">personer som leier: hudtype 1–2, hudtype 6</annotation>
- <annotation cp="🧑🏼🤝🧑🏻">hånd | holde hender | hudtype 1–2 | hudtype 3 | par | personer | personer som leier</annotation>
- <annotation cp="🧑🏼🤝🧑🏻" type="tts">personer som leier: hudtype 3, hudtype 1–2</annotation>
- <annotation cp="🧑🏼🤝🧑🏼">hånd | holde hender | hudtype 3 | par | personer | personer som leier</annotation>
- <annotation cp="🧑🏼🤝🧑🏼" type="tts">personer som leier: hudtype 3</annotation>
- <annotation cp="🧑🏼🤝🧑🏽">hånd | holde hender | hudtype 3 | hudtype 4 | par | personer | personer som leier</annotation>
- <annotation cp="🧑🏼🤝🧑🏽" type="tts">personer som leier: hudtype 3, hudtype 4</annotation>
- <annotation cp="🧑🏼🤝🧑🏾">hånd | holde hender | hudtype 3 | hudtype 5 | par | personer | personer som leier</annotation>
- <annotation cp="🧑🏼🤝🧑🏾" type="tts">personer som leier: hudtype 3, hudtype 5</annotation>
- <annotation cp="🧑🏼🤝🧑🏿">hånd | holde hender | hudtype 3 | hudtype 6 | par | personer | personer som leier</annotation>
- <annotation cp="🧑🏼🤝🧑🏿" type="tts">personer som leier: hudtype 3, hudtype 6</annotation>
- <annotation cp="🧑🏽🤝🧑🏻">hånd | holde hender | hudtype 1–2 | hudtype 4 | par | personer | personer som leier</annotation>
- <annotation cp="🧑🏽🤝🧑🏻" type="tts">personer som leier: hudtype 4, hudtype 1–2</annotation>
- <annotation cp="🧑🏽🤝🧑🏼">hånd | holde hender | hudtype 3 | hudtype 4 | par | personer | personer som leier</annotation>
- <annotation cp="🧑🏽🤝🧑🏼" type="tts">personer som leier: hudtype 4, hudtype 3</annotation>
- <annotation cp="🧑🏽🤝🧑🏽">hånd | holde hender | hudtype 4 | par | personer | personer som leier</annotation>
- <annotation cp="🧑🏽🤝🧑🏽" type="tts">personer som leier: hudtype 4</annotation>
- <annotation cp="🧑🏽🤝🧑🏾">hånd | holde hender | hudtype 4 | hudtype 5 | par | personer | personer som leier</annotation>
- <annotation cp="🧑🏽🤝🧑🏾" type="tts">personer som leier: hudtype 4, hudtype 5</annotation>
- <annotation cp="🧑🏽🤝🧑🏿">hånd | holde hender | hudtype 4 | hudtype 6 | par | personer | personer som leier</annotation>
- <annotation cp="🧑🏽🤝🧑🏿" type="tts">personer som leier: hudtype 4, hudtype 6</annotation>
- <annotation cp="🧑🏾🤝🧑🏻">hånd | holde hender | hudtype 1–2 | hudtype 5 | par | personer | personer som leier</annotation>
- <annotation cp="🧑🏾🤝🧑🏻" type="tts">personer som leier: hudtype 5, hudtype 1–2</annotation>
- <annotation cp="🧑🏾🤝🧑🏼">hånd | holde hender | hudtype 3 | hudtype 5 | par | personer | personer som leier</annotation>
- <annotation cp="🧑🏾🤝🧑🏼" type="tts">personer som leier: hudtype 5, hudtype 3</annotation>
- <annotation cp="🧑🏾🤝🧑🏽">hånd | holde hender | hudtype 4 | hudtype 5 | par | personer | personer som leier</annotation>
- <annotation cp="🧑🏾🤝🧑🏽" type="tts">personer som leier: hudtype 5, hudtype 4</annotation>
- <annotation cp="🧑🏾🤝🧑🏾">hånd | holde hender | hudtype 5 | par | personer | personer som leier</annotation>
- <annotation cp="🧑🏾🤝🧑🏾" type="tts">personer som leier: hudtype 5</annotation>
- <annotation cp="🧑🏾🤝🧑🏿">hånd | holde hender | hudtype 5 | hudtype 6 | par | personer | personer som leier</annotation>
- <annotation cp="🧑🏾🤝🧑🏿" type="tts">personer som leier: hudtype 5, hudtype 6</annotation>
- <annotation cp="🧑🏿🤝🧑🏻">hånd | holde hender | hudtype 1–2 | hudtype 6 | par | personer | personer som leier</annotation>
- <annotation cp="🧑🏿🤝🧑🏻" type="tts">personer som leier: hudtype 6, hudtype 1–2</annotation>
- <annotation cp="🧑🏿🤝🧑🏼">hånd | holde hender | hudtype 3 | hudtype 6 | par | personer | personer som leier</annotation>
- <annotation cp="🧑🏿🤝🧑🏼" type="tts">personer som leier: hudtype 6, hudtype 3</annotation>
- <annotation cp="🧑🏿🤝🧑🏽">hånd | holde hender | hudtype 4 | hudtype 6 | par | personer | personer som leier</annotation>
- <annotation cp="🧑🏿🤝🧑🏽" type="tts">personer som leier: hudtype 6, hudtype 4</annotation>
- <annotation cp="🧑🏿🤝🧑🏾">hånd | holde hender | hudtype 5 | hudtype 6 | par | personer | personer som leier</annotation>
- <annotation cp="🧑🏿🤝🧑🏾" type="tts">personer som leier: hudtype 6, hudtype 5</annotation>
- <annotation cp="🧑🏿🤝🧑🏿">hånd | holde hender | hudtype 6 | par | personer | personer som leier</annotation>
- <annotation cp="🧑🏿🤝🧑🏿" type="tts">personer som leier: hudtype 6</annotation>
- <annotation cp="👭🏻">hånd | holder hender | hudtype 1–2 | kvinne | kvinner som leier | par</annotation>
- <annotation cp="👭🏻" type="tts">kvinner som leier: hudtype 1–2</annotation>
- <annotation cp="👩🏻🤝👩🏼">hånd | holder hender | hudtype 1–2 | hudtype 3 | kvinne | kvinner som leier | par</annotation>
- <annotation cp="👩🏻🤝👩🏼" type="tts">kvinner som leier: hudtype 1–2, hudtype 3</annotation>
- <annotation cp="👩🏻🤝👩🏽">hånd | holder hender | hudtype 1–2 | hudtype 4 | kvinne | kvinner som leier | par</annotation>
- <annotation cp="👩🏻🤝👩🏽" type="tts">kvinner som leier: hudtype 1–2, hudtype 4</annotation>
- <annotation cp="👩🏻🤝👩🏾">hånd | holder hender | hudtype 1–2 | hudtype 5 | kvinne | kvinner som leier | par</annotation>
- <annotation cp="👩🏻🤝👩🏾" type="tts">kvinner som leier: hudtype 1–2, hudtype 5</annotation>
- <annotation cp="👩🏻🤝👩🏿">hånd | holder hender | hudtype 1–2 | hudtype 6 | kvinne | kvinner som leier | par</annotation>
- <annotation cp="👩🏻🤝👩🏿" type="tts">kvinner som leier: hudtype 1–2, hudtype 6</annotation>
- <annotation cp="👩🏼🤝👩🏻">hånd | holder hender | hudtype 1–2 | hudtype 3 | kvinne | kvinner som leier | par</annotation>
- <annotation cp="👩🏼🤝👩🏻" type="tts">kvinner som leier: hudtype 3, hudtype 1–2</annotation>
- <annotation cp="👭🏼">hånd | holder hender | hudtype 3 | kvinne | kvinner som leier | par</annotation>
- <annotation cp="👭🏼" type="tts">kvinner som leier: hudtype 3</annotation>
- <annotation cp="👩🏼🤝👩🏽">hånd | holder hender | hudtype 3 | hudtype 4 | kvinne | kvinner som leier | par</annotation>
- <annotation cp="👩🏼🤝👩🏽" type="tts">kvinner som leier: hudtype 3, hudtype 4</annotation>
- <annotation cp="👩🏼🤝👩🏾">hånd | holder hender | hudtype 3 | hudtype 5 | kvinne | kvinner som leier | par</annotation>
- <annotation cp="👩🏼🤝👩🏾" type="tts">kvinner som leier: hudtype 3, hudtype 5</annotation>
- <annotation cp="👩🏼🤝👩🏿">hånd | holder hender | hudtype 3 | hudtype 6 | kvinne | kvinner som leier | par</annotation>
- <annotation cp="👩🏼🤝👩🏿" type="tts">kvinner som leier: hudtype 3, hudtype 6</annotation>
- <annotation cp="👩🏽🤝👩🏻">hånd | holder hender | hudtype 1–2 | hudtype 4 | kvinne | kvinner som leier | par</annotation>
- <annotation cp="👩🏽🤝👩🏻" type="tts">kvinner som leier: hudtype 4, hudtype 1–2</annotation>
- <annotation cp="👩🏽🤝👩🏼">hånd | holder hender | hudtype 3 | hudtype 4 | kvinne | kvinner som leier | par</annotation>
- <annotation cp="👩🏽🤝👩🏼" type="tts">kvinner som leier: hudtype 4, hudtype 3</annotation>
- <annotation cp="👭🏽">hånd | holder hender | hudtype 4 | kvinne | kvinner som leier | par</annotation>
- <annotation cp="👭🏽" type="tts">kvinner som leier: hudtype 4</annotation>
- <annotation cp="👩🏽🤝👩🏾">hånd | holder hender | hudtype 4 | hudtype 5 | kvinne | kvinner som leier | par</annotation>
- <annotation cp="👩🏽🤝👩🏾" type="tts">kvinner som leier: hudtype 4, hudtype 5</annotation>
- <annotation cp="👩🏽🤝👩🏿">hånd | holder hender | hudtype 4 | hudtype 6 | kvinne | kvinner som leier | par</annotation>
- <annotation cp="👩🏽🤝👩🏿" type="tts">kvinner som leier: hudtype 4, hudtype 6</annotation>
- <annotation cp="👩🏾🤝👩🏻">hånd | holder hender | hudtype 1–2 | hudtype 5 | kvinne | kvinner som leier | par</annotation>
- <annotation cp="👩🏾🤝👩🏻" type="tts">kvinner som leier: hudtype 5, hudtype 1–2</annotation>
- <annotation cp="👩🏾🤝👩🏼">hånd | holder hender | hudtype 3 | hudtype 5 | kvinne | kvinner som leier | par</annotation>
- <annotation cp="👩🏾🤝👩🏼" type="tts">kvinner som leier: hudtype 5, hudtype 3</annotation>
- <annotation cp="👩🏾🤝👩🏽">hånd | holder hender | hudtype 4 | hudtype 5 | kvinne | kvinner som leier | par</annotation>
- <annotation cp="👩🏾🤝👩🏽" type="tts">kvinner som leier: hudtype 5, hudtype 4</annotation>
- <annotation cp="👭🏾">hånd | holder hender | hudtype 5 | kvinne | kvinner som leier | par</annotation>
- <annotation cp="👭🏾" type="tts">kvinner som leier: hudtype 5</annotation>
- <annotation cp="👩🏾🤝👩🏿">hånd | holder hender | hudtype 5 | hudtype 6 | kvinne | kvinner som leier | par</annotation>
- <annotation cp="👩🏾🤝👩🏿" type="tts">kvinner som leier: hudtype 5, hudtype 6</annotation>
- <annotation cp="👩🏿🤝👩🏻">hånd | holder hender | hudtype 1–2 | hudtype 6 | kvinne | kvinner som leier | par</annotation>
- <annotation cp="👩🏿🤝👩🏻" type="tts">kvinner som leier: hudtype 6, hudtype 1–2</annotation>
- <annotation cp="👩🏿🤝👩🏼">hånd | holder hender | hudtype 3 | hudtype 6 | kvinne | kvinner som leier | par</annotation>
- <annotation cp="👩🏿🤝👩🏼" type="tts">kvinner som leier: hudtype 6, hudtype 3</annotation>
- <annotation cp="👩🏿🤝👩🏽">hånd | holder hender | hudtype 4 | hudtype 6 | kvinne | kvinner som leier | par</annotation>
- <annotation cp="👩🏿🤝👩🏽" type="tts">kvinner som leier: hudtype 6, hudtype 4</annotation>
- <annotation cp="👩🏿🤝👩🏾">hånd | holder hender | hudtype 5 | hudtype 6 | kvinne | kvinner som leier | par</annotation>
- <annotation cp="👩🏿🤝👩🏾" type="tts">kvinner som leier: hudtype 6, hudtype 5</annotation>
- <annotation cp="👭🏿">hånd | holder hender | hudtype 6 | kvinne | kvinner som leier | par</annotation>
- <annotation cp="👭🏿" type="tts">kvinner som leier: hudtype 6</annotation>
- <annotation cp="👫🏻">hånd | holder hender | hudtype 1–2 | kvinne | mann | mann og kvinne som leier | par</annotation>
- <annotation cp="👫🏻" type="tts">mann og kvinne som leier: hudtype 1–2</annotation>
- <annotation cp="👩🏻🤝👨🏼">hånd | holder hender | hudtype 1–2 | hudtype 3 | kvinne | mann | mann og kvinne som leier | par</annotation>
- <annotation cp="👩🏻🤝👨🏼" type="tts">mann og kvinne som leier: hudtype 1–2, hudtype 3</annotation>
- <annotation cp="👩🏻🤝👨🏽">hånd | holder hender | hudtype 1–2 | hudtype 4 | kvinne | mann | mann og kvinne som leier | par</annotation>
- <annotation cp="👩🏻🤝👨🏽" type="tts">mann og kvinne som leier: hudtype 1–2, hudtype 4</annotation>
- <annotation cp="👩🏻🤝👨🏾">hånd | holder hender | hudtype 1–2 | hudtype 5 | kvinne | mann | mann og kvinne som leier | par</annotation>
- <annotation cp="👩🏻🤝👨🏾" type="tts">mann og kvinne som leier: hudtype 1–2, hudtype 5</annotation>
- <annotation cp="👩🏻🤝👨🏿">hånd | holder hender | hudtype 1–2 | hudtype 6 | kvinne | mann | mann og kvinne som leier | par</annotation>
- <annotation cp="👩🏻🤝👨🏿" type="tts">mann og kvinne som leier: hudtype 1–2, hudtype 6</annotation>
- <annotation cp="👩🏼🤝👨🏻">hånd | holder hender | hudtype 1–2 | hudtype 3 | kvinne | mann | mann og kvinne som leier | par</annotation>
- <annotation cp="👩🏼🤝👨🏻" type="tts">mann og kvinne som leier: hudtype 3, hudtype 1–2</annotation>
- <annotation cp="👫🏼">hånd | holder hender | hudtype 3 | kvinne | mann | mann og kvinne som leier | par</annotation>
- <annotation cp="👫🏼" type="tts">mann og kvinne som leier: hudtype 3</annotation>
- <annotation cp="👩🏼🤝👨🏽">hånd | holder hender | hudtype 3 | hudtype 4 | kvinne | mann | mann og kvinne som leier | par</annotation>
- <annotation cp="👩🏼🤝👨🏽" type="tts">mann og kvinne som leier: hudtype 3, hudtype 4</annotation>
- <annotation cp="👩🏼🤝👨🏾">hånd | holder hender | hudtype 3 | hudtype 5 | kvinne | mann | mann og kvinne som leier | par</annotation>
- <annotation cp="👩🏼🤝👨🏾" type="tts">mann og kvinne som leier: hudtype 3, hudtype 5</annotation>
- <annotation cp="👩🏼🤝👨🏿">hånd | holder hender | hudtype 3 | hudtype 6 | kvinne | mann | mann og kvinne som leier | par</annotation>
- <annotation cp="👩🏼🤝👨🏿" type="tts">mann og kvinne som leier: hudtype 3, hudtype 6</annotation>
- <annotation cp="👩🏽🤝👨🏻">hånd | holder hender | hudtype 1–2 | hudtype 4 | kvinne | mann | mann og kvinne som leier | par</annotation>
- <annotation cp="👩🏽🤝👨🏻" type="tts">mann og kvinne som leier: hudtype 4, hudtype 1–2</annotation>
- <annotation cp="👩🏽🤝👨🏼">hånd | holder hender | hudtype 3 | hudtype 4 | kvinne | mann | mann og kvinne som leier | par</annotation>
- <annotation cp="👩🏽🤝👨🏼" type="tts">mann og kvinne som leier: hudtype 4, hudtype 3</annotation>
- <annotation cp="👫🏽">hånd | holder hender | hudtype 4 | kvinne | mann | mann og kvinne som leier | par</annotation>
- <annotation cp="👫🏽" type="tts">mann og kvinne som leier: hudtype 4</annotation>
- <annotation cp="👩🏽🤝👨🏾">hånd | holder hender | hudtype 4 | hudtype 5 | kvinne | mann | mann og kvinne som leier | par</annotation>
- <annotation cp="👩🏽🤝👨🏾" type="tts">mann og kvinne som leier: hudtype 4, hudtype 5</annotation>
- <annotation cp="👩🏽🤝👨🏿">hånd | holder hender | hudtype 4 | hudtype 6 | kvinne | mann | mann og kvinne som leier | par</annotation>
- <annotation cp="👩🏽🤝👨🏿" type="tts">mann og kvinne som leier: hudtype 4, hudtype 6</annotation>
- <annotation cp="👩🏾🤝👨🏻">hånd | holder hender | hudtype 1–2 | hudtype 5 | kvinne | mann | mann og kvinne som leier | par</annotation>
- <annotation cp="👩🏾🤝👨🏻" type="tts">mann og kvinne som leier: hudtype 5, hudtype 1–2</annotation>
- <annotation cp="👩🏾🤝👨🏼">hånd | holder hender | hudtype 3 | hudtype 5 | kvinne | mann | mann og kvinne som leier | par</annotation>
- <annotation cp="👩🏾🤝👨🏼" type="tts">mann og kvinne som leier: hudtype 5, hudtype 3</annotation>
- <annotation cp="👩🏾🤝👨🏽">hånd | holder hender | hudtype 4 | hudtype 5 | kvinne | mann | mann og kvinne som leier | par</annotation>
- <annotation cp="👩🏾🤝👨🏽" type="tts">mann og kvinne som leier: hudtype 5, hudtype 4</annotation>
- <annotation cp="👫🏾">hånd | holder hender | hudtype 5 | kvinne | mann | mann og kvinne som leier | par</annotation>
- <annotation cp="👫🏾" type="tts">mann og kvinne som leier: hudtype 5</annotation>
- <annotation cp="👩🏾🤝👨🏿">hånd | holder hender | hudtype 5 | hudtype 6 | kvinne | mann | mann og kvinne som leier | par</annotation>
- <annotation cp="👩🏾🤝👨🏿" type="tts">mann og kvinne som leier: hudtype 5, hudtype 6</annotation>
- <annotation cp="👩🏿🤝👨🏻">hånd | holder hender | hudtype 1–2 | hudtype 6 | kvinne | mann | mann og kvinne som leier | par</annotation>
- <annotation cp="👩🏿🤝👨🏻" type="tts">mann og kvinne som leier: hudtype 6, hudtype 1–2</annotation>
- <annotation cp="👩🏿🤝👨🏼">hånd | holder hender | hudtype 3 | hudtype 6 | kvinne | mann | mann og kvinne som leier | par</annotation>
- <annotation cp="👩🏿🤝👨🏼" type="tts">mann og kvinne som leier: hudtype 6, hudtype 3</annotation>
- <annotation cp="👩🏿🤝👨🏽">hånd | holder hender | hudtype 4 | hudtype 6 | kvinne | mann | mann og kvinne som leier | par</annotation>
- <annotation cp="👩🏿🤝👨🏽" type="tts">mann og kvinne som leier: hudtype 6, hudtype 4</annotation>
- <annotation cp="👩🏿🤝👨🏾">hånd | holder hender | hudtype 5 | hudtype 6 | kvinne | mann | mann og kvinne som leier | par</annotation>
- <annotation cp="👩🏿🤝👨🏾" type="tts">mann og kvinne som leier: hudtype 6, hudtype 5</annotation>
- <annotation cp="👫🏿">hånd | holder hender | hudtype 6 | kvinne | mann | mann og kvinne som leier | par</annotation>
- <annotation cp="👫🏿" type="tts">mann og kvinne som leier: hudtype 6</annotation>
- <annotation cp="👬🏻">hånd | holde hender | hudtype 1–2 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
- <annotation cp="👬🏻" type="tts">menn som leier: hudtype 1–2</annotation>
- <annotation cp="👨🏻🤝👨🏼">hånd | holde hender | hudtype 1–2 | hudtype 3 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
- <annotation cp="👨🏻🤝👨🏼" type="tts">menn som leier: hudtype 1–2, hudtype 3</annotation>
- <annotation cp="👨🏻🤝👨🏽">hånd | holde hender | hudtype 1–2 | hudtype 4 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
- <annotation cp="👨🏻🤝👨🏽" type="tts">menn som leier: hudtype 1–2, hudtype 4</annotation>
- <annotation cp="👨🏻🤝👨🏾">hånd | holde hender | hudtype 1–2 | hudtype 5 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
- <annotation cp="👨🏻🤝👨🏾" type="tts">menn som leier: hudtype 1–2, hudtype 5</annotation>
- <annotation cp="👨🏻🤝👨🏿">hånd | holde hender | hudtype 1–2 | hudtype 6 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
- <annotation cp="👨🏻🤝👨🏿" type="tts">menn som leier: hudtype 1–2, hudtype 6</annotation>
- <annotation cp="👨🏼🤝👨🏻">hånd | holde hender | hudtype 1–2 | hudtype 3 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
- <annotation cp="👨🏼🤝👨🏻" type="tts">menn som leier: hudtype 3, hudtype 1–2</annotation>
- <annotation cp="👬🏼">hånd | holde hender | hudtype 3 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
- <annotation cp="👬🏼" type="tts">menn som leier: hudtype 3</annotation>
- <annotation cp="👨🏼🤝👨🏽">hånd | holde hender | hudtype 3 | hudtype 4 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
- <annotation cp="👨🏼🤝👨🏽" type="tts">menn som leier: hudtype 3, hudtype 4</annotation>
- <annotation cp="👨🏼🤝👨🏾">hånd | holde hender | hudtype 3 | hudtype 5 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
- <annotation cp="👨🏼🤝👨🏾" type="tts">menn som leier: hudtype 3, hudtype 5</annotation>
- <annotation cp="👨🏼🤝👨🏿">hånd | holde hender | hudtype 3 | hudtype 6 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
- <annotation cp="👨🏼🤝👨🏿" type="tts">menn som leier: hudtype 3, hudtype 6</annotation>
- <annotation cp="👨🏽🤝👨🏻">hånd | holde hender | hudtype 1–2 | hudtype 4 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
- <annotation cp="👨🏽🤝👨🏻" type="tts">menn som leier: hudtype 4, hudtype 1–2</annotation>
- <annotation cp="👨🏽🤝👨🏼">hånd | holde hender | hudtype 3 | hudtype 4 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
- <annotation cp="👨🏽🤝👨🏼" type="tts">menn som leier: hudtype 4, hudtype 3</annotation>
- <annotation cp="👬🏽">hånd | holde hender | hudtype 4 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
- <annotation cp="👬🏽" type="tts">menn som leier: hudtype 4</annotation>
- <annotation cp="👨🏽🤝👨🏾">hånd | holde hender | hudtype 4 | hudtype 5 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
- <annotation cp="👨🏽🤝👨🏾" type="tts">menn som leier: hudtype 4, hudtype 5</annotation>
- <annotation cp="👨🏽🤝👨🏿">hånd | holde hender | hudtype 4 | hudtype 6 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
- <annotation cp="👨🏽🤝👨🏿" type="tts">menn som leier: hudtype 4, hudtype 6</annotation>
- <annotation cp="👨🏾🤝👨🏻">hånd | holde hender | hudtype 1–2 | hudtype 5 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
- <annotation cp="👨🏾🤝👨🏻" type="tts">menn som leier: hudtype 5, hudtype 1–2</annotation>
- <annotation cp="👨🏾🤝👨🏼">hånd | holde hender | hudtype 3 | hudtype 5 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
- <annotation cp="👨🏾🤝👨🏼" type="tts">menn som leier: hudtype 5, hudtype 3</annotation>
- <annotation cp="👨🏾🤝👨🏽">hånd | holde hender | hudtype 4 | hudtype 5 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
- <annotation cp="👨🏾🤝👨🏽" type="tts">menn som leier: hudtype 5, hudtype 4</annotation>
- <annotation cp="👬🏾">hånd | holde hender | hudtype 5 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
- <annotation cp="👬🏾" type="tts">menn som leier: hudtype 5</annotation>
- <annotation cp="👨🏾🤝👨🏿">hånd | holde hender | hudtype 5 | hudtype 6 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
- <annotation cp="👨🏾🤝👨🏿" type="tts">menn som leier: hudtype 5, hudtype 6</annotation>
- <annotation cp="👨🏿🤝👨🏻">hånd | holde hender | hudtype 1–2 | hudtype 6 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
- <annotation cp="👨🏿🤝👨🏻" type="tts">menn som leier: hudtype 6, hudtype 1–2</annotation>
- <annotation cp="👨🏿🤝👨🏼">hånd | holde hender | hudtype 3 | hudtype 6 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
- <annotation cp="👨🏿🤝👨🏼" type="tts">menn som leier: hudtype 6, hudtype 3</annotation>
- <annotation cp="👨🏿🤝👨🏽">hånd | holde hender | hudtype 4 | hudtype 6 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
- <annotation cp="👨🏿🤝👨🏽" type="tts">menn som leier: hudtype 6, hudtype 4</annotation>
- <annotation cp="👨🏿🤝👨🏾">hånd | holde hender | hudtype 5 | hudtype 6 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
- <annotation cp="👨🏿🤝👨🏾" type="tts">menn som leier: hudtype 6, hudtype 5</annotation>
- <annotation cp="👬🏿">hånd | holde hender | hudtype 6 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
- <annotation cp="👬🏿" type="tts">menn som leier: hudtype 6</annotation>
- <annotation cp="💏🏻">hudtype 1–2 | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="💏🏻" type="tts">kyss: hudtype 1–2</annotation>
- <annotation cp="💏🏼">hudtype 3 | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="💏🏼" type="tts">kyss: hudtype 3</annotation>
- <annotation cp="💏🏽">hudtype 4 | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="💏🏽" type="tts">kyss: hudtype 4</annotation>
- <annotation cp="💏🏾">hudtype 5 | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="💏🏾" type="tts">kyss: hudtype 5</annotation>
- <annotation cp="💏🏿">hudtype 6 | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="💏🏿" type="tts">kyss: hudtype 6</annotation>
- <annotation cp="👩❤💋👨">kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👩❤💋👨" type="tts">kyss: kvinne, mann</annotation>
- <annotation cp="👨❤💋👨">kyss | kyssing | mann | mennesker | romantikk</annotation>
- <annotation cp="👨❤💋👨" type="tts">kyss: mann, mann</annotation>
- <annotation cp="👩❤💋👩">kvinne | kyss | kyssing | mennesker | romantikk</annotation>
- <annotation cp="👩❤💋👩" type="tts">kyss: kvinne, kvinne</annotation>
- <annotation cp="💑🏻">hjerte | hudtype 1–2 | kjærlighet | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="💑🏻" type="tts">par med hjerte: hudtype 1–2</annotation>
- <annotation cp="💑🏼">hjerte | hudtype 3 | kjærlighet | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="💑🏼" type="tts">par med hjerte: hudtype 3</annotation>
- <annotation cp="💑🏽">hjerte | hudtype 4 | kjærlighet | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="💑🏽" type="tts">par med hjerte: hudtype 4</annotation>
- <annotation cp="💑🏾">hjerte | hudtype 5 | kjærlighet | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="💑🏾" type="tts">par med hjerte: hudtype 5</annotation>
- <annotation cp="💑🏿">hjerte | hudtype 6 | kjærlighet | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="💑🏿" type="tts">par med hjerte: hudtype 6</annotation>
- <annotation cp="👩❤👨">hjerte | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩❤👨" type="tts">par med hjerte: kvinne, mann</annotation>
- <annotation cp="👨❤👨">hjerte | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👨❤👨" type="tts">par med hjerte: mann, mann</annotation>
- <annotation cp="👩❤👩">hjerte | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
- <annotation cp="👩❤👩" type="tts">par med hjerte: kvinne, kvinne</annotation>
- <annotation cp="👨👩👦">barn | familie | far | gutt | kvinne | mann | mennesker | mor</annotation>
- <annotation cp="👨👩👦" type="tts">familie: mann, kvinne, gutt</annotation>
- <annotation cp="👨👩👧">barn | familie | far | jente | kvinne | mann | mennesker | mor</annotation>
- <annotation cp="👨👩👧" type="tts">familie: mann, kvinne, jente</annotation>
- <annotation cp="👨👩👧👦">barn | familie | far | gutt | jente | kvinne | mann | mennesker | mor</annotation>
- <annotation cp="👨👩👧👦" type="tts">familie: mann, kvinne, jente, gutt</annotation>
- <annotation cp="👨👩👦👦">barn | familie | far | gutt | kvinne | mann | mennesker | mor</annotation>
- <annotation cp="👨👩👦👦" type="tts">familie: mann, kvinne, gutt, gutt</annotation>
- <annotation cp="👨👩👧👧">barn | familie | far | jente | kvinne | mann | mennesker | mor</annotation>
- <annotation cp="👨👩👧👧" type="tts">familie: mann, kvinne, jente, jente</annotation>
- <annotation cp="👨👨👦">barn | familie | far | gutt | mann | mennesker | mor</annotation>
- <annotation cp="👨👨👦" type="tts">familie: mann, mann, gutt</annotation>
- <annotation cp="👨👨👧">barn | familie | far | jente | mann | mennesker | mor</annotation>
- <annotation cp="👨👨👧" type="tts">familie: mann, mann, jente</annotation>
- <annotation cp="👨👨👧👦">barn | familie | far | gutt | jente | mann | mennesker | mor</annotation>
- <annotation cp="👨👨👧👦" type="tts">familie: mann, mann, jente, gutt</annotation>
- <annotation cp="👨👨👦👦">barn | familie | far | gutt | mann | mennesker | mor</annotation>
- <annotation cp="👨👨👦👦" type="tts">familie: mann, mann, gutt, gutt</annotation>
- <annotation cp="👨👨👧👧">barn | familie | far | jente | mann | mennesker | mor</annotation>
- <annotation cp="👨👨👧👧" type="tts">familie: mann, mann, jente, jente</annotation>
- <annotation cp="👩👩👦">barn | familie | far | gutt | kvinne | mennesker | mor</annotation>
- <annotation cp="👩👩👦" type="tts">familie: kvinne, kvinne, gutt</annotation>
- <annotation cp="👩👩👧">barn | familie | far | jente | kvinne | mennesker | mor</annotation>
- <annotation cp="👩👩👧" type="tts">familie: kvinne, kvinne, jente</annotation>
- <annotation cp="👩👩👧👦">barn | familie | far | gutt | jente | kvinne | mennesker | mor</annotation>
- <annotation cp="👩👩👧👦" type="tts">familie: kvinne, kvinne, jente, gutt</annotation>
- <annotation cp="👩👩👦👦">barn | familie | far | gutt | kvinne | mennesker | mor</annotation>
- <annotation cp="👩👩👦👦" type="tts">familie: kvinne, kvinne, gutt, gutt</annotation>
- <annotation cp="👩👩👧👧">barn | familie | far | jente | kvinne | mennesker | mor</annotation>
- <annotation cp="👩👩👧👧" type="tts">familie: kvinne, kvinne, jente, jente</annotation>
- <annotation cp="👨👦">barn | familie | far | gutt | mann | mennesker | mor</annotation>
- <annotation cp="👨👦" type="tts">familie: mann, gutt</annotation>
- <annotation cp="👨👦👦">barn | familie | far | gutt | mann | mennesker | mor</annotation>
- <annotation cp="👨👦👦" type="tts">familie: mann, gutt, gutt</annotation>
- <annotation cp="👨👧">barn | familie | far | jente | mann | mennesker | mor</annotation>
- <annotation cp="👨👧" type="tts">familie: mann, jente</annotation>
- <annotation cp="👨👧👦">barn | familie | far | gutt | jente | mann | mennesker | mor</annotation>
- <annotation cp="👨👧👦" type="tts">familie: mann, jente, gutt</annotation>
- <annotation cp="👨👧👧">barn | familie | far | jente | mann | mennesker | mor</annotation>
- <annotation cp="👨👧👧" type="tts">familie: mann, jente, jente</annotation>
- <annotation cp="👩👦">barn | familie | far | gutt | kvinne | mennesker | mor</annotation>
- <annotation cp="👩👦" type="tts">familie: kvinne, gutt</annotation>
- <annotation cp="👩👦👦">barn | familie | far | gutt | kvinne | mennesker | mor</annotation>
- <annotation cp="👩👦👦" type="tts">familie: kvinne, gutt, gutt</annotation>
- <annotation cp="👩👧">barn | familie | far | jente | kvinne | mennesker | mor</annotation>
- <annotation cp="👩👧" type="tts">familie: kvinne, jente</annotation>
- <annotation cp="👩👧👦">barn | familie | far | gutt | jente | kvinne | mennesker | mor</annotation>
- <annotation cp="👩👧👦" type="tts">familie: kvinne, jente, gutt</annotation>
- <annotation cp="👩👧👧">barn | familie | far | jente | kvinne | mennesker | mor</annotation>
- <annotation cp="👩👧👧" type="tts">familie: kvinne, jente, jente</annotation>
- <annotation cp="#⃣">taster</annotation>
- <annotation cp="#⃣" type="tts">taster: #</annotation>
- <annotation cp="*⃣">taster</annotation>
- <annotation cp="*⃣" type="tts">taster: *</annotation>
- <annotation cp="🔟">taster</annotation>
- <annotation cp="🔟" type="tts">taster: 10</annotation>
- <annotation cp="🇦🇨">flagg</annotation>
- <annotation cp="🇦🇨" type="tts">flagg: Ascension</annotation>
- <annotation cp="🇦🇩">flagg</annotation>
- <annotation cp="🇦🇩" type="tts">flagg: Andorra</annotation>
- <annotation cp="🇦🇪">flagg</annotation>
- <annotation cp="🇦🇪" type="tts">flagg: De forente arabiske emirater</annotation>
- <annotation cp="🇦🇫">flagg</annotation>
- <annotation cp="🇦🇫" type="tts">flagg: Afghanistan</annotation>
- <annotation cp="🇦🇬">flagg</annotation>
- <annotation cp="🇦🇬" type="tts">flagg: Antigua og Barbuda</annotation>
- <annotation cp="🇦🇮">flagg</annotation>
- <annotation cp="🇦🇮" type="tts">flagg: Anguilla</annotation>
- <annotation cp="🇦🇱">flagg</annotation>
- <annotation cp="🇦🇱" type="tts">flagg: Albania</annotation>
- <annotation cp="🇦🇲">flagg</annotation>
- <annotation cp="🇦🇲" type="tts">flagg: Armenia</annotation>
- <annotation cp="🇦🇴">flagg</annotation>
- <annotation cp="🇦🇴" type="tts">flagg: Angola</annotation>
- <annotation cp="🇦🇶">flagg</annotation>
- <annotation cp="🇦🇶" type="tts">flagg: Antarktis</annotation>
- <annotation cp="🇦🇷">flagg</annotation>
- <annotation cp="🇦🇷" type="tts">flagg: Argentina</annotation>
- <annotation cp="🇦🇸">flagg</annotation>
- <annotation cp="🇦🇸" type="tts">flagg: Amerikansk Samoa</annotation>
- <annotation cp="🇦🇹">flagg</annotation>
- <annotation cp="🇦🇹" type="tts">flagg: Østerrike</annotation>
- <annotation cp="🇦🇺">flagg</annotation>
- <annotation cp="🇦🇺" type="tts">flagg: Australia</annotation>
- <annotation cp="🇦🇼">flagg</annotation>
- <annotation cp="🇦🇼" type="tts">flagg: Aruba</annotation>
- <annotation cp="🇦🇽">flagg</annotation>
- <annotation cp="🇦🇽" type="tts">flagg: Åland</annotation>
- <annotation cp="🇦🇿">flagg</annotation>
- <annotation cp="🇦🇿" type="tts">flagg: Aserbajdsjan</annotation>
- <annotation cp="🇧🇦">flagg</annotation>
- <annotation cp="🇧🇦" type="tts">flagg: Bosnia-Hercegovina</annotation>
- <annotation cp="🇧🇧">flagg</annotation>
- <annotation cp="🇧🇧" type="tts">flagg: Barbados</annotation>
- <annotation cp="🇧🇩">flagg</annotation>
- <annotation cp="🇧🇩" type="tts">flagg: Bangladesh</annotation>
- <annotation cp="🇧🇪">flagg</annotation>
- <annotation cp="🇧🇪" type="tts">flagg: Belgia</annotation>
- <annotation cp="🇧🇫">flagg</annotation>
- <annotation cp="🇧🇫" type="tts">flagg: Burkina Faso</annotation>
- <annotation cp="🇧🇬">flagg</annotation>
- <annotation cp="🇧🇬" type="tts">flagg: Bulgaria</annotation>
- <annotation cp="🇧🇭">flagg</annotation>
- <annotation cp="🇧🇭" type="tts">flagg: Bahrain</annotation>
- <annotation cp="🇧🇮">flagg</annotation>
- <annotation cp="🇧🇮" type="tts">flagg: Burundi</annotation>
- <annotation cp="🇧🇯">flagg</annotation>
- <annotation cp="🇧🇯" type="tts">flagg: Benin</annotation>
- <annotation cp="🇧🇱">flagg</annotation>
- <annotation cp="🇧🇱" type="tts">flagg: Saint-Barthélemy</annotation>
- <annotation cp="🇧🇲">flagg</annotation>
- <annotation cp="🇧🇲" type="tts">flagg: Bermuda</annotation>
- <annotation cp="🇧🇳">flagg</annotation>
- <annotation cp="🇧🇳" type="tts">flagg: Brunei</annotation>
- <annotation cp="🇧🇴">flagg</annotation>
- <annotation cp="🇧🇴" type="tts">flagg: Bolivia</annotation>
- <annotation cp="🇧🇶">flagg</annotation>
- <annotation cp="🇧🇶" type="tts">flagg: Karibisk Nederland</annotation>
- <annotation cp="🇧🇷">flagg</annotation>
- <annotation cp="🇧🇷" type="tts">flagg: Brasil</annotation>
- <annotation cp="🇧🇸">flagg</annotation>
- <annotation cp="🇧🇸" type="tts">flagg: Bahamas</annotation>
- <annotation cp="🇧🇹">flagg</annotation>
- <annotation cp="🇧🇹" type="tts">flagg: Bhutan</annotation>
- <annotation cp="🇧🇻">flagg</annotation>
- <annotation cp="🇧🇻" type="tts">flagg: Bouvetøya</annotation>
- <annotation cp="🇧🇼">flagg</annotation>
- <annotation cp="🇧🇼" type="tts">flagg: Botswana</annotation>
- <annotation cp="🇧🇾">flagg</annotation>
- <annotation cp="🇧🇾" type="tts">flagg: Hviterussland</annotation>
- <annotation cp="🇧🇿">flagg</annotation>
- <annotation cp="🇧🇿" type="tts">flagg: Belize</annotation>
- <annotation cp="🇨🇦">flagg</annotation>
- <annotation cp="🇨🇦" type="tts">flagg: Canada</annotation>
- <annotation cp="🇨🇨">flagg</annotation>
- <annotation cp="🇨🇨" type="tts">flagg: Kokosøyene</annotation>
- <annotation cp="🇨🇩">flagg</annotation>
- <annotation cp="🇨🇩" type="tts">flagg: Kongo</annotation>
- <annotation cp="🇨🇫">flagg</annotation>
- <annotation cp="🇨🇫" type="tts">flagg: Den sentralafrikanske republikk</annotation>
- <annotation cp="🇨🇬">flagg</annotation>
- <annotation cp="🇨🇬" type="tts">flagg: Kongo-Brazzaville</annotation>
- <annotation cp="🇨🇭">flagg</annotation>
- <annotation cp="🇨🇭" type="tts">flagg: Sveits</annotation>
- <annotation cp="🇨🇮">flagg</annotation>
- <annotation cp="🇨🇮" type="tts">flagg: Elfenbenskysten</annotation>
- <annotation cp="🇨🇰">flagg</annotation>
- <annotation cp="🇨🇰" type="tts">flagg: Cookøyene</annotation>
- <annotation cp="🇨🇱">flagg</annotation>
- <annotation cp="🇨🇱" type="tts">flagg: Chile</annotation>
- <annotation cp="🇨🇲">flagg</annotation>
- <annotation cp="🇨🇲" type="tts">flagg: Kamerun</annotation>
- <annotation cp="🇨🇳">flagg</annotation>
- <annotation cp="🇨🇳" type="tts">flagg: Kina</annotation>
- <annotation cp="🇨🇴">flagg</annotation>
- <annotation cp="🇨🇴" type="tts">flagg: Colombia</annotation>
- <annotation cp="🇨🇵">flagg</annotation>
- <annotation cp="🇨🇵" type="tts">flagg: Clippertonøya</annotation>
- <annotation cp="🇨🇷">flagg</annotation>
- <annotation cp="🇨🇷" type="tts">flagg: Costa Rica</annotation>
- <annotation cp="🇨🇺">flagg</annotation>
- <annotation cp="🇨🇺" type="tts">flagg: Cuba</annotation>
- <annotation cp="🇨🇻">flagg</annotation>
- <annotation cp="🇨🇻" type="tts">flagg: Kapp Verde</annotation>
- <annotation cp="🇨🇼">flagg</annotation>
- <annotation cp="🇨🇼" type="tts">flagg: Curaçao</annotation>
- <annotation cp="🇨🇽">flagg</annotation>
- <annotation cp="🇨🇽" type="tts">flagg: Christmasøya</annotation>
- <annotation cp="🇨🇾">flagg</annotation>
- <annotation cp="🇨🇾" type="tts">flagg: Kypros</annotation>
- <annotation cp="🇨🇿">flagg</annotation>
- <annotation cp="🇨🇿" type="tts">flagg: Tsjekkia</annotation>
- <annotation cp="🇩🇪">flagg</annotation>
- <annotation cp="🇩🇪" type="tts">flagg: Tyskland</annotation>
- <annotation cp="🇩🇬">flagg</annotation>
- <annotation cp="🇩🇬" type="tts">flagg: Diego Garcia</annotation>
- <annotation cp="🇩🇯">flagg</annotation>
- <annotation cp="🇩🇯" type="tts">flagg: Djibouti</annotation>
- <annotation cp="🇩🇰">flagg</annotation>
- <annotation cp="🇩🇰" type="tts">flagg: Danmark</annotation>
- <annotation cp="🇩🇲">flagg</annotation>
- <annotation cp="🇩🇲" type="tts">flagg: Dominica</annotation>
- <annotation cp="🇩🇴">flagg</annotation>
- <annotation cp="🇩🇴" type="tts">flagg: Den dominikanske republikk</annotation>
- <annotation cp="🇩🇿">flagg</annotation>
- <annotation cp="🇩🇿" type="tts">flagg: Algerie</annotation>
- <annotation cp="🇪🇦">flagg</annotation>
- <annotation cp="🇪🇦" type="tts">flagg: Ceuta og Melilla</annotation>
- <annotation cp="🇪🇨">flagg</annotation>
- <annotation cp="🇪🇨" type="tts">flagg: Ecuador</annotation>
- <annotation cp="🇪🇪">flagg</annotation>
- <annotation cp="🇪🇪" type="tts">flagg: Estland</annotation>
- <annotation cp="🇪🇬">flagg</annotation>
- <annotation cp="🇪🇬" type="tts">flagg: Egypt</annotation>
- <annotation cp="🇪🇭">flagg</annotation>
- <annotation cp="🇪🇭" type="tts">flagg: Vest-Sahara</annotation>
- <annotation cp="🇪🇷">flagg</annotation>
- <annotation cp="🇪🇷" type="tts">flagg: Eritrea</annotation>
- <annotation cp="🇪🇸">flagg</annotation>
- <annotation cp="🇪🇸" type="tts">flagg: Spania</annotation>
- <annotation cp="🇪🇹">flagg</annotation>
- <annotation cp="🇪🇹" type="tts">flagg: Etiopia</annotation>
- <annotation cp="🇪🇺">flagg</annotation>
- <annotation cp="🇪🇺" type="tts">flagg: Den europeiske union</annotation>
- <annotation cp="🇫🇮">flagg</annotation>
- <annotation cp="🇫🇮" type="tts">flagg: Finland</annotation>
- <annotation cp="🇫🇯">flagg</annotation>
- <annotation cp="🇫🇯" type="tts">flagg: Fiji</annotation>
- <annotation cp="🇫🇰">flagg</annotation>
- <annotation cp="🇫🇰" type="tts">flagg: Falklandsøyene</annotation>
- <annotation cp="🇫🇲">flagg</annotation>
- <annotation cp="🇫🇲" type="tts">flagg: Mikronesiaføderasjonen</annotation>
- <annotation cp="🇫🇴">flagg</annotation>
- <annotation cp="🇫🇴" type="tts">flagg: Færøyene</annotation>
- <annotation cp="🇫🇷">flagg</annotation>
- <annotation cp="🇫🇷" type="tts">flagg: Frankrike</annotation>
- <annotation cp="🇬🇦">flagg</annotation>
- <annotation cp="🇬🇦" type="tts">flagg: Gabon</annotation>
- <annotation cp="🇬🇧">flagg</annotation>
- <annotation cp="🇬🇧" type="tts">flagg: Storbritannia</annotation>
- <annotation cp="🇬🇩">flagg</annotation>
- <annotation cp="🇬🇩" type="tts">flagg: Grenada</annotation>
- <annotation cp="🇬🇪">flagg</annotation>
- <annotation cp="🇬🇪" type="tts">flagg: Georgia</annotation>
- <annotation cp="🇬🇫">flagg</annotation>
- <annotation cp="🇬🇫" type="tts">flagg: Fransk Guyana</annotation>
- <annotation cp="🇬🇬">flagg</annotation>
- <annotation cp="🇬🇬" type="tts">flagg: Guernsey</annotation>
- <annotation cp="🇬🇭">flagg</annotation>
- <annotation cp="🇬🇭" type="tts">flagg: Ghana</annotation>
- <annotation cp="🇬🇮">flagg</annotation>
- <annotation cp="🇬🇮" type="tts">flagg: Gibraltar</annotation>
- <annotation cp="🇬🇱">flagg</annotation>
- <annotation cp="🇬🇱" type="tts">flagg: Grønland</annotation>
- <annotation cp="🇬🇲">flagg</annotation>
- <annotation cp="🇬🇲" type="tts">flagg: Gambia</annotation>
- <annotation cp="🇬🇳">flagg</annotation>
- <annotation cp="🇬🇳" type="tts">flagg: Guinea</annotation>
- <annotation cp="🇬🇵">flagg</annotation>
- <annotation cp="🇬🇵" type="tts">flagg: Guadeloupe</annotation>
- <annotation cp="🇬🇶">flagg</annotation>
- <annotation cp="🇬🇶" type="tts">flagg: Ekvatorial-Guinea</annotation>
- <annotation cp="🇬🇷">flagg</annotation>
- <annotation cp="🇬🇷" type="tts">flagg: Hellas</annotation>
- <annotation cp="🇬🇸">flagg</annotation>
- <annotation cp="🇬🇸" type="tts">flagg: Sør-Georgia og Sør-Sandwichøyene</annotation>
- <annotation cp="🇬🇹">flagg</annotation>
- <annotation cp="🇬🇹" type="tts">flagg: Guatemala</annotation>
- <annotation cp="🇬🇺">flagg</annotation>
- <annotation cp="🇬🇺" type="tts">flagg: Guam</annotation>
- <annotation cp="🇬🇼">flagg</annotation>
- <annotation cp="🇬🇼" type="tts">flagg: Guinea-Bissau</annotation>
- <annotation cp="🇬🇾">flagg</annotation>
- <annotation cp="🇬🇾" type="tts">flagg: Guyana</annotation>
- <annotation cp="🇭🇰">flagg</annotation>
- <annotation cp="🇭🇰" type="tts">flagg: Hongkong SAR Kina</annotation>
- <annotation cp="🇭🇲">flagg</annotation>
- <annotation cp="🇭🇲" type="tts">flagg: Heard- og McDonaldøyene</annotation>
- <annotation cp="🇭🇳">flagg</annotation>
- <annotation cp="🇭🇳" type="tts">flagg: Honduras</annotation>
- <annotation cp="🇭🇷">flagg</annotation>
- <annotation cp="🇭🇷" type="tts">flagg: Kroatia</annotation>
- <annotation cp="🇭🇹">flagg</annotation>
- <annotation cp="🇭🇹" type="tts">flagg: Haiti</annotation>
- <annotation cp="🇭🇺">flagg</annotation>
- <annotation cp="🇭🇺" type="tts">flagg: Ungarn</annotation>
- <annotation cp="🇮🇨">flagg</annotation>
- <annotation cp="🇮🇨" type="tts">flagg: Kanariøyene</annotation>
- <annotation cp="🇮🇩">flagg</annotation>
- <annotation cp="🇮🇩" type="tts">flagg: Indonesia</annotation>
- <annotation cp="🇮🇪">flagg</annotation>
- <annotation cp="🇮🇪" type="tts">flagg: Irland</annotation>
- <annotation cp="🇮🇱">flagg</annotation>
- <annotation cp="🇮🇱" type="tts">flagg: Israel</annotation>
- <annotation cp="🇮🇲">flagg</annotation>
- <annotation cp="🇮🇲" type="tts">flagg: Man</annotation>
- <annotation cp="🇮🇳">flagg</annotation>
- <annotation cp="🇮🇳" type="tts">flagg: India</annotation>
- <annotation cp="🇮🇴">flagg</annotation>
- <annotation cp="🇮🇴" type="tts">flagg: Det britiske territoriet i Indiahavet</annotation>
- <annotation cp="🇮🇶">flagg</annotation>
- <annotation cp="🇮🇶" type="tts">flagg: Irak</annotation>
- <annotation cp="🇮🇷">flagg</annotation>
- <annotation cp="🇮🇷" type="tts">flagg: Iran</annotation>
- <annotation cp="🇮🇸">flagg</annotation>
- <annotation cp="🇮🇸" type="tts">flagg: Island</annotation>
- <annotation cp="🇮🇹">flagg</annotation>
- <annotation cp="🇮🇹" type="tts">flagg: Italia</annotation>
- <annotation cp="🇯🇪">flagg</annotation>
- <annotation cp="🇯🇪" type="tts">flagg: Jersey</annotation>
- <annotation cp="🇯🇲">flagg</annotation>
- <annotation cp="🇯🇲" type="tts">flagg: Jamaica</annotation>
- <annotation cp="🇯🇴">flagg</annotation>
- <annotation cp="🇯🇴" type="tts">flagg: Jordan</annotation>
- <annotation cp="🇯🇵">flagg</annotation>
- <annotation cp="🇯🇵" type="tts">flagg: Japan</annotation>
- <annotation cp="🇰🇪">flagg</annotation>
- <annotation cp="🇰🇪" type="tts">flagg: Kenya</annotation>
- <annotation cp="🇰🇬">flagg</annotation>
- <annotation cp="🇰🇬" type="tts">flagg: Kirgisistan</annotation>
- <annotation cp="🇰🇭">flagg</annotation>
- <annotation cp="🇰🇭" type="tts">flagg: Kambodsja</annotation>
- <annotation cp="🇰🇮">flagg</annotation>
- <annotation cp="🇰🇮" type="tts">flagg: Kiribati</annotation>
- <annotation cp="🇰🇲">flagg</annotation>
- <annotation cp="🇰🇲" type="tts">flagg: Komorene</annotation>
- <annotation cp="🇰🇳">flagg</annotation>
- <annotation cp="🇰🇳" type="tts">flagg: Saint Kitts og Nevis</annotation>
- <annotation cp="🇰🇵">flagg</annotation>
- <annotation cp="🇰🇵" type="tts">flagg: Nord-Korea</annotation>
- <annotation cp="🇰🇷">flagg</annotation>
- <annotation cp="🇰🇷" type="tts">flagg: Sør-Korea</annotation>
- <annotation cp="🇰🇼">flagg</annotation>
- <annotation cp="🇰🇼" type="tts">flagg: Kuwait</annotation>
- <annotation cp="🇰🇾">flagg</annotation>
- <annotation cp="🇰🇾" type="tts">flagg: Caymanøyene</annotation>
- <annotation cp="🇰🇿">flagg</annotation>
- <annotation cp="🇰🇿" type="tts">flagg: Kasakhstan</annotation>
- <annotation cp="🇱🇦">flagg</annotation>
- <annotation cp="🇱🇦" type="tts">flagg: Laos</annotation>
- <annotation cp="🇱🇧">flagg</annotation>
- <annotation cp="🇱🇧" type="tts">flagg: Libanon</annotation>
- <annotation cp="🇱🇨">flagg</annotation>
- <annotation cp="🇱🇨" type="tts">flagg: St. Lucia</annotation>
- <annotation cp="🇱🇮">flagg</annotation>
- <annotation cp="🇱🇮" type="tts">flagg: Liechtenstein</annotation>
- <annotation cp="🇱🇰">flagg</annotation>
- <annotation cp="🇱🇰" type="tts">flagg: Sri Lanka</annotation>
- <annotation cp="🇱🇷">flagg</annotation>
- <annotation cp="🇱🇷" type="tts">flagg: Liberia</annotation>
- <annotation cp="🇱🇸">flagg</annotation>
- <annotation cp="🇱🇸" type="tts">flagg: Lesotho</annotation>
- <annotation cp="🇱🇹">flagg</annotation>
- <annotation cp="🇱🇹" type="tts">flagg: Litauen</annotation>
- <annotation cp="🇱🇺">flagg</annotation>
- <annotation cp="🇱🇺" type="tts">flagg: Luxemburg</annotation>
- <annotation cp="🇱🇻">flagg</annotation>
- <annotation cp="🇱🇻" type="tts">flagg: Latvia</annotation>
- <annotation cp="🇱🇾">flagg</annotation>
- <annotation cp="🇱🇾" type="tts">flagg: Libya</annotation>
- <annotation cp="🇲🇦">flagg</annotation>
- <annotation cp="🇲🇦" type="tts">flagg: Marokko</annotation>
- <annotation cp="🇲🇨">flagg</annotation>
- <annotation cp="🇲🇨" type="tts">flagg: Monaco</annotation>
- <annotation cp="🇲🇩">flagg</annotation>
- <annotation cp="🇲🇩" type="tts">flagg: Moldova</annotation>
- <annotation cp="🇲🇪">flagg</annotation>
- <annotation cp="🇲🇪" type="tts">flagg: Montenegro</annotation>
- <annotation cp="🇲🇫">flagg</annotation>
- <annotation cp="🇲🇫" type="tts">flagg: Saint-Martin</annotation>
- <annotation cp="🇲🇬">flagg</annotation>
- <annotation cp="🇲🇬" type="tts">flagg: Madagaskar</annotation>
- <annotation cp="🇲🇭">flagg</annotation>
- <annotation cp="🇲🇭" type="tts">flagg: Marshalløyene</annotation>
- <annotation cp="🇲🇰">flagg</annotation>
- <annotation cp="🇲🇰" type="tts">flagg: Nord-Makedonia</annotation>
- <annotation cp="🇲🇱">flagg</annotation>
- <annotation cp="🇲🇱" type="tts">flagg: Mali</annotation>
- <annotation cp="🇲🇲">flagg</annotation>
- <annotation cp="🇲🇲" type="tts">flagg: Myanmar (Burma)</annotation>
- <annotation cp="🇲🇳">flagg</annotation>
- <annotation cp="🇲🇳" type="tts">flagg: Mongolia</annotation>
- <annotation cp="🇲🇴">flagg</annotation>
- <annotation cp="🇲🇴" type="tts">flagg: Macao SAR Kina</annotation>
- <annotation cp="🇲🇵">flagg</annotation>
- <annotation cp="🇲🇵" type="tts">flagg: Nord-Marianene</annotation>
- <annotation cp="🇲🇶">flagg</annotation>
- <annotation cp="🇲🇶" type="tts">flagg: Martinique</annotation>
- <annotation cp="🇲🇷">flagg</annotation>
- <annotation cp="🇲🇷" type="tts">flagg: Mauritania</annotation>
- <annotation cp="🇲🇸">flagg</annotation>
- <annotation cp="🇲🇸" type="tts">flagg: Montserrat</annotation>
- <annotation cp="🇲🇹">flagg</annotation>
- <annotation cp="🇲🇹" type="tts">flagg: Malta</annotation>
- <annotation cp="🇲🇺">flagg</annotation>
- <annotation cp="🇲🇺" type="tts">flagg: Mauritius</annotation>
- <annotation cp="🇲🇻">flagg</annotation>
- <annotation cp="🇲🇻" type="tts">flagg: Maldivene</annotation>
- <annotation cp="🇲🇼">flagg</annotation>
- <annotation cp="🇲🇼" type="tts">flagg: Malawi</annotation>
- <annotation cp="🇲🇽">flagg</annotation>
- <annotation cp="🇲🇽" type="tts">flagg: Mexico</annotation>
- <annotation cp="🇲🇾">flagg</annotation>
- <annotation cp="🇲🇾" type="tts">flagg: Malaysia</annotation>
- <annotation cp="🇲🇿">flagg</annotation>
- <annotation cp="🇲🇿" type="tts">flagg: Mosambik</annotation>
- <annotation cp="🇳🇦">flagg</annotation>
- <annotation cp="🇳🇦" type="tts">flagg: Namibia</annotation>
- <annotation cp="🇳🇨">flagg</annotation>
- <annotation cp="🇳🇨" type="tts">flagg: Ny-Caledonia</annotation>
- <annotation cp="🇳🇪">flagg</annotation>
- <annotation cp="🇳🇪" type="tts">flagg: Niger</annotation>
- <annotation cp="🇳🇫">flagg</annotation>
- <annotation cp="🇳🇫" type="tts">flagg: Norfolkøya</annotation>
- <annotation cp="🇳🇬">flagg</annotation>
- <annotation cp="🇳🇬" type="tts">flagg: Nigeria</annotation>
- <annotation cp="🇳🇮">flagg</annotation>
- <annotation cp="🇳🇮" type="tts">flagg: Nicaragua</annotation>
- <annotation cp="🇳🇱">flagg</annotation>
- <annotation cp="🇳🇱" type="tts">flagg: Nederland</annotation>
- <annotation cp="🇳🇴">flagg</annotation>
- <annotation cp="🇳🇴" type="tts">flagg: Norge</annotation>
- <annotation cp="🇳🇵">flagg</annotation>
- <annotation cp="🇳🇵" type="tts">flagg: Nepal</annotation>
- <annotation cp="🇳🇷">flagg</annotation>
- <annotation cp="🇳🇷" type="tts">flagg: Nauru</annotation>
- <annotation cp="🇳🇺">flagg</annotation>
- <annotation cp="🇳🇺" type="tts">flagg: Niue</annotation>
- <annotation cp="🇳🇿">flagg</annotation>
- <annotation cp="🇳🇿" type="tts">flagg: New Zealand</annotation>
- <annotation cp="🇴🇲">flagg</annotation>
- <annotation cp="🇴🇲" type="tts">flagg: Oman</annotation>
- <annotation cp="🇵🇦">flagg</annotation>
- <annotation cp="🇵🇦" type="tts">flagg: Panama</annotation>
- <annotation cp="🇵🇪">flagg</annotation>
- <annotation cp="🇵🇪" type="tts">flagg: Peru</annotation>
- <annotation cp="🇵🇫">flagg</annotation>
- <annotation cp="🇵🇫" type="tts">flagg: Fransk Polynesia</annotation>
- <annotation cp="🇵🇬">flagg</annotation>
- <annotation cp="🇵🇬" type="tts">flagg: Papua Ny-Guinea</annotation>
- <annotation cp="🇵🇭">flagg</annotation>
- <annotation cp="🇵🇭" type="tts">flagg: Filippinene</annotation>
- <annotation cp="🇵🇰">flagg</annotation>
- <annotation cp="🇵🇰" type="tts">flagg: Pakistan</annotation>
- <annotation cp="🇵🇱">flagg</annotation>
- <annotation cp="🇵🇱" type="tts">flagg: Polen</annotation>
- <annotation cp="🇵🇲">flagg</annotation>
- <annotation cp="🇵🇲" type="tts">flagg: Saint-Pierre-et-Miquelon</annotation>
- <annotation cp="🇵🇳">flagg</annotation>
- <annotation cp="🇵🇳" type="tts">flagg: Pitcairnøyene</annotation>
- <annotation cp="🇵🇷">flagg</annotation>
- <annotation cp="🇵🇷" type="tts">flagg: Puerto Rico</annotation>
- <annotation cp="🇵🇸">flagg</annotation>
- <annotation cp="🇵🇸" type="tts">flagg: Det palestinske området</annotation>
- <annotation cp="🇵🇹">flagg</annotation>
- <annotation cp="🇵🇹" type="tts">flagg: Portugal</annotation>
- <annotation cp="🇵🇼">flagg</annotation>
- <annotation cp="🇵🇼" type="tts">flagg: Palau</annotation>
- <annotation cp="🇵🇾">flagg</annotation>
- <annotation cp="🇵🇾" type="tts">flagg: Paraguay</annotation>
- <annotation cp="🇶🇦">flagg</annotation>
- <annotation cp="🇶🇦" type="tts">flagg: Qatar</annotation>
- <annotation cp="🇷🇪">flagg</annotation>
- <annotation cp="🇷🇪" type="tts">flagg: Réunion</annotation>
- <annotation cp="🇷🇴">flagg</annotation>
- <annotation cp="🇷🇴" type="tts">flagg: Romania</annotation>
- <annotation cp="🇷🇸">flagg</annotation>
- <annotation cp="🇷🇸" type="tts">flagg: Serbia</annotation>
- <annotation cp="🇷🇺">flagg</annotation>
- <annotation cp="🇷🇺" type="tts">flagg: Russland</annotation>
- <annotation cp="🇷🇼">flagg</annotation>
- <annotation cp="🇷🇼" type="tts">flagg: Rwanda</annotation>
- <annotation cp="🇸🇦">flagg</annotation>
- <annotation cp="🇸🇦" type="tts">flagg: Saudi-Arabia</annotation>
- <annotation cp="🇸🇧">flagg</annotation>
- <annotation cp="🇸🇧" type="tts">flagg: Salomonøyene</annotation>
- <annotation cp="🇸🇨">flagg</annotation>
- <annotation cp="🇸🇨" type="tts">flagg: Seychellene</annotation>
- <annotation cp="🇸🇩">flagg</annotation>
- <annotation cp="🇸🇩" type="tts">flagg: Sudan</annotation>
- <annotation cp="🇸🇪">flagg</annotation>
- <annotation cp="🇸🇪" type="tts">flagg: Sverige</annotation>
- <annotation cp="🇸🇬">flagg</annotation>
- <annotation cp="🇸🇬" type="tts">flagg: Singapore</annotation>
- <annotation cp="🇸🇭">flagg</annotation>
- <annotation cp="🇸🇭" type="tts">flagg: St. Helena</annotation>
- <annotation cp="🇸🇮">flagg</annotation>
- <annotation cp="🇸🇮" type="tts">flagg: Slovenia</annotation>
- <annotation cp="🇸🇯">flagg</annotation>
- <annotation cp="🇸🇯" type="tts">flagg: Svalbard og Jan Mayen</annotation>
- <annotation cp="🇸🇰">flagg</annotation>
- <annotation cp="🇸🇰" type="tts">flagg: Slovakia</annotation>
- <annotation cp="🇸🇱">flagg</annotation>
- <annotation cp="🇸🇱" type="tts">flagg: Sierra Leone</annotation>
- <annotation cp="🇸🇲">flagg</annotation>
- <annotation cp="🇸🇲" type="tts">flagg: San Marino</annotation>
- <annotation cp="🇸🇳">flagg</annotation>
- <annotation cp="🇸🇳" type="tts">flagg: Senegal</annotation>
- <annotation cp="🇸🇴">flagg</annotation>
- <annotation cp="🇸🇴" type="tts">flagg: Somalia</annotation>
- <annotation cp="🇸🇷">flagg</annotation>
- <annotation cp="🇸🇷" type="tts">flagg: Surinam</annotation>
- <annotation cp="🇸🇸">flagg</annotation>
- <annotation cp="🇸🇸" type="tts">flagg: Sør-Sudan</annotation>
- <annotation cp="🇸🇹">flagg</annotation>
- <annotation cp="🇸🇹" type="tts">flagg: São Tomé og Príncipe</annotation>
- <annotation cp="🇸🇻">flagg</annotation>
- <annotation cp="🇸🇻" type="tts">flagg: El Salvador</annotation>
- <annotation cp="🇸🇽">flagg</annotation>
- <annotation cp="🇸🇽" type="tts">flagg: Sint Maarten</annotation>
- <annotation cp="🇸🇾">flagg</annotation>
- <annotation cp="🇸🇾" type="tts">flagg: Syria</annotation>
- <annotation cp="🇸🇿">flagg</annotation>
- <annotation cp="🇸🇿" type="tts">flagg: Eswatini</annotation>
- <annotation cp="🇹🇦">flagg</annotation>
- <annotation cp="🇹🇦" type="tts">flagg: Tristan da Cunha</annotation>
- <annotation cp="🇹🇨">flagg</annotation>
- <annotation cp="🇹🇨" type="tts">flagg: Turks- og Caicosøyene</annotation>
- <annotation cp="🇹🇩">flagg</annotation>
- <annotation cp="🇹🇩" type="tts">flagg: Tsjad</annotation>
- <annotation cp="🇹🇫">flagg</annotation>
- <annotation cp="🇹🇫" type="tts">flagg: De franske sørterritorier</annotation>
- <annotation cp="🇹🇬">flagg</annotation>
- <annotation cp="🇹🇬" type="tts">flagg: Togo</annotation>
- <annotation cp="🇹🇭">flagg</annotation>
- <annotation cp="🇹🇭" type="tts">flagg: Thailand</annotation>
- <annotation cp="🇹🇯">flagg</annotation>
- <annotation cp="🇹🇯" type="tts">flagg: Tadsjikistan</annotation>
- <annotation cp="🇹🇰">flagg</annotation>
- <annotation cp="🇹🇰" type="tts">flagg: Tokelau</annotation>
- <annotation cp="🇹🇱">flagg</annotation>
- <annotation cp="🇹🇱" type="tts">flagg: Øst-Timor</annotation>
- <annotation cp="🇹🇲">flagg</annotation>
- <annotation cp="🇹🇲" type="tts">flagg: Turkmenistan</annotation>
- <annotation cp="🇹🇳">flagg</annotation>
- <annotation cp="🇹🇳" type="tts">flagg: Tunisia</annotation>
- <annotation cp="🇹🇴">flagg</annotation>
- <annotation cp="🇹🇴" type="tts">flagg: Tonga</annotation>
- <annotation cp="🇹🇷">flagg</annotation>
- <annotation cp="🇹🇷" type="tts">flagg: Tyrkia</annotation>
- <annotation cp="🇹🇹">flagg</annotation>
- <annotation cp="🇹🇹" type="tts">flagg: Trinidad og Tobago</annotation>
- <annotation cp="🇹🇻">flagg</annotation>
- <annotation cp="🇹🇻" type="tts">flagg: Tuvalu</annotation>
- <annotation cp="🇹🇼">flagg</annotation>
- <annotation cp="🇹🇼" type="tts">flagg: Taiwan</annotation>
- <annotation cp="🇹🇿">flagg</annotation>
- <annotation cp="🇹🇿" type="tts">flagg: Tanzania</annotation>
- <annotation cp="🇺🇦">flagg</annotation>
- <annotation cp="🇺🇦" type="tts">flagg: Ukraina</annotation>
- <annotation cp="🇺🇬">flagg</annotation>
- <annotation cp="🇺🇬" type="tts">flagg: Uganda</annotation>
- <annotation cp="🇺🇲">flagg</annotation>
- <annotation cp="🇺🇲" type="tts">flagg: USAs ytre øyer</annotation>
- <annotation cp="🇺🇳">flagg</annotation>
- <annotation cp="🇺🇳" type="tts">flagg: FN</annotation>
- <annotation cp="🇺🇸">flagg</annotation>
- <annotation cp="🇺🇸" type="tts">flagg: USA</annotation>
- <annotation cp="🇺🇾">flagg</annotation>
- <annotation cp="🇺🇾" type="tts">flagg: Uruguay</annotation>
- <annotation cp="🇺🇿">flagg</annotation>
- <annotation cp="🇺🇿" type="tts">flagg: Usbekistan</annotation>
- <annotation cp="🇻🇦">flagg</annotation>
- <annotation cp="🇻🇦" type="tts">flagg: Vatikanstaten</annotation>
- <annotation cp="🇻🇨">flagg</annotation>
- <annotation cp="🇻🇨" type="tts">flagg: St. Vincent og Grenadinene</annotation>
- <annotation cp="🇻🇪">flagg</annotation>
- <annotation cp="🇻🇪" type="tts">flagg: Venezuela</annotation>
- <annotation cp="🇻🇬">flagg</annotation>
- <annotation cp="🇻🇬" type="tts">flagg: De britiske jomfruøyene</annotation>
- <annotation cp="🇻🇮">flagg</annotation>
- <annotation cp="🇻🇮" type="tts">flagg: De amerikanske jomfruøyene</annotation>
- <annotation cp="🇻🇳">flagg</annotation>
- <annotation cp="🇻🇳" type="tts">flagg: Vietnam</annotation>
- <annotation cp="🇻🇺">flagg</annotation>
- <annotation cp="🇻🇺" type="tts">flagg: Vanuatu</annotation>
- <annotation cp="🇼🇫">flagg</annotation>
- <annotation cp="🇼🇫" type="tts">flagg: Wallis og Futuna</annotation>
- <annotation cp="🇼🇸">flagg</annotation>
- <annotation cp="🇼🇸" type="tts">flagg: Samoa</annotation>
- <annotation cp="🇽🇰">flagg</annotation>
- <annotation cp="🇽🇰" type="tts">flagg: Kosovo</annotation>
- <annotation cp="🇾🇪">flagg</annotation>
- <annotation cp="🇾🇪" type="tts">flagg: Jemen</annotation>
- <annotation cp="🇾🇹">flagg</annotation>
- <annotation cp="🇾🇹" type="tts">flagg: Mayotte</annotation>
- <annotation cp="🇿🇦">flagg</annotation>
- <annotation cp="🇿🇦" type="tts">flagg: Sør-Afrika</annotation>
- <annotation cp="🇿🇲">flagg</annotation>
- <annotation cp="🇿🇲" type="tts">flagg: Zambia</annotation>
- <annotation cp="🇿🇼">flagg</annotation>
- <annotation cp="🇿🇼" type="tts">flagg: Zimbabwe</annotation>
- <annotation cp="🏴">flagg</annotation>
- <annotation cp="🏴" type="tts">flagg: England</annotation>
- <annotation cp="🏴">flagg</annotation>
- <annotation cp="🏴" type="tts">flagg: Skottland</annotation>
- <annotation cp="🏴">flagg</annotation>
- <annotation cp="🏴" type="tts">flagg: Wales</annotation>
- <annotation cp="¤" type="tts">ukjent valuta</annotation>
- <annotation cp="֏" type="tts">armenske dram</annotation>
- <annotation cp="؋" type="tts">afghanske afghani</annotation>
- <annotation cp="৳" type="tts">bangladeshiske taka</annotation>
- <annotation cp="฿" type="tts">thailandske baht</annotation>
- <annotation cp="៛" type="tts">kambodsjanske riel</annotation>
- <annotation cp="₡" type="tts">costaricanske colón</annotation>
- <annotation cp="₦" type="tts">nigerianske naira</annotation>
- <annotation cp="₧" type="tts">spanske peseta</annotation>
- <annotation cp="₪" type="tts">nye israelske shekler</annotation>
- <annotation cp="₫" type="tts">vietnamesiske dong</annotation>
- <annotation cp="₭" type="tts">laotiske kip</annotation>
- <annotation cp="₮" type="tts">mongolske tugrik</annotation>
- <annotation cp="₲" type="tts">paraguayanske guarani</annotation>
- <annotation cp="₴" type="tts">ukrainske hryvnia</annotation>
- <annotation cp="₵" type="tts">ghanesiske cedi</annotation>
- <annotation cp="₸" type="tts">kasakhstanske tenge</annotation>
- <annotation cp="₺" type="tts">tyrkiske lire</annotation>
- <annotation cp="₼" type="tts">aserbajdsjanske manat</annotation>
- <annotation cp="₾" type="tts">georgiske lari</annotation>
- <annotation cp="0⃣">taster</annotation>
- <annotation cp="0⃣" type="tts">taster: 0</annotation>
- <annotation cp="1⃣">taster</annotation>
- <annotation cp="1⃣" type="tts">taster: 1</annotation>
- <annotation cp="2⃣">taster</annotation>
- <annotation cp="2⃣" type="tts">taster: 2</annotation>
- <annotation cp="3⃣">taster</annotation>
- <annotation cp="3⃣" type="tts">taster: 3</annotation>
- <annotation cp="4⃣">taster</annotation>
- <annotation cp="4⃣" type="tts">taster: 4</annotation>
- <annotation cp="5⃣">taster</annotation>
- <annotation cp="5⃣" type="tts">taster: 5</annotation>
- <annotation cp="6⃣">taster</annotation>
- <annotation cp="6⃣" type="tts">taster: 6</annotation>
- <annotation cp="7⃣">taster</annotation>
- <annotation cp="7⃣" type="tts">taster: 7</annotation>
- <annotation cp="8⃣">taster</annotation>
- <annotation cp="8⃣" type="tts">taster: 8</annotation>
- <annotation cp="9⃣">taster</annotation>
- <annotation cp="9⃣" type="tts">taster: 9</annotation>
- </annotations>
</ldml>
diff --git a/common/annotationsDerived/no.xml b/common/annotationsDerived/no.xml
new file mode 100644
index 0000000..f5c8e39
--- /dev/null
+++ b/common/annotationsDerived/no.xml
@@ -0,0 +1,4070 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
+<!-- Copyright © 1991-2020 Unicode, Inc.
+For terms of use, see http://www.unicode.org/copyright.html
+Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
+CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
+-->
+<!-- Derived short names and annotations, using GenerateDerivedAnnotations.java. See warnings in /annotations/ file. -->
+<ldml>
+ <identity>
+ <version number="$Revision$"/>
+ <language type="no"/>
+ </identity>
+ <annotations>
+ <annotation cp="👋🏻">hånd | hudtype 1–2 | vinke | vinkende hånd | vinking</annotation>
+ <annotation cp="👋🏻" type="tts">vinkende hånd: hudtype 1–2</annotation>
+ <annotation cp="👋🏼">hånd | hudtype 3 | vinke | vinkende hånd | vinking</annotation>
+ <annotation cp="👋🏼" type="tts">vinkende hånd: hudtype 3</annotation>
+ <annotation cp="👋🏽">hånd | hudtype 4 | vinke | vinkende hånd | vinking</annotation>
+ <annotation cp="👋🏽" type="tts">vinkende hånd: hudtype 4</annotation>
+ <annotation cp="👋🏾">hånd | hudtype 5 | vinke | vinkende hånd | vinking</annotation>
+ <annotation cp="👋🏾" type="tts">vinkende hånd: hudtype 5</annotation>
+ <annotation cp="👋🏿">hånd | hudtype 6 | vinke | vinkende hånd | vinking</annotation>
+ <annotation cp="👋🏿" type="tts">vinkende hånd: hudtype 6</annotation>
+ <annotation cp="🤚🏻">hånd | håndbak | hudtype 1–2 | løftet</annotation>
+ <annotation cp="🤚🏻" type="tts">løftet håndbak: hudtype 1–2</annotation>
+ <annotation cp="🤚🏼">hånd | håndbak | hudtype 3 | løftet</annotation>
+ <annotation cp="🤚🏼" type="tts">løftet håndbak: hudtype 3</annotation>
+ <annotation cp="🤚🏽">hånd | håndbak | hudtype 4 | løftet</annotation>
+ <annotation cp="🤚🏽" type="tts">løftet håndbak: hudtype 4</annotation>
+ <annotation cp="🤚🏾">hånd | håndbak | hudtype 5 | løftet</annotation>
+ <annotation cp="🤚🏾" type="tts">løftet håndbak: hudtype 5</annotation>
+ <annotation cp="🤚🏿">hånd | håndbak | hudtype 6 | løftet</annotation>
+ <annotation cp="🤚🏿" type="tts">løftet håndbak: hudtype 6</annotation>
+ <annotation cp="🖐🏻">finger | flat hånd med spredte fingre | hånd | hudtype 1–2 | spredt</annotation>
+ <annotation cp="🖐🏻" type="tts">flat hånd med spredte fingre: hudtype 1–2</annotation>
+ <annotation cp="🖐🏼">finger | flat hånd med spredte fingre | hånd | hudtype 3 | spredt</annotation>
+ <annotation cp="🖐🏼" type="tts">flat hånd med spredte fingre: hudtype 3</annotation>
+ <annotation cp="🖐🏽">finger | flat hånd med spredte fingre | hånd | hudtype 4 | spredt</annotation>
+ <annotation cp="🖐🏽" type="tts">flat hånd med spredte fingre: hudtype 4</annotation>
+ <annotation cp="🖐🏾">finger | flat hånd med spredte fingre | hånd | hudtype 5 | spredt</annotation>
+ <annotation cp="🖐🏾" type="tts">flat hånd med spredte fingre: hudtype 5</annotation>
+ <annotation cp="🖐🏿">finger | flat hånd med spredte fingre | hånd | hudtype 6 | spredt</annotation>
+ <annotation cp="🖐🏿" type="tts">flat hånd med spredte fingre: hudtype 6</annotation>
+ <annotation cp="✋🏻">flat hånd | håndflate | hevet hånd | hudtype 1–2</annotation>
+ <annotation cp="✋🏻" type="tts">hevet hånd: hudtype 1–2</annotation>
+ <annotation cp="✋🏼">flat hånd | håndflate | hevet hånd | hudtype 3</annotation>
+ <annotation cp="✋🏼" type="tts">hevet hånd: hudtype 3</annotation>
+ <annotation cp="✋🏽">flat hånd | håndflate | hevet hånd | hudtype 4</annotation>
+ <annotation cp="✋🏽" type="tts">hevet hånd: hudtype 4</annotation>
+ <annotation cp="✋🏾">flat hånd | håndflate | hevet hånd | hudtype 5</annotation>
+ <annotation cp="✋🏾" type="tts">hevet hånd: hudtype 5</annotation>
+ <annotation cp="✋🏿">flat hånd | håndflate | hevet hånd | hudtype 6</annotation>
+ <annotation cp="✋🏿" type="tts">hevet hånd: hudtype 6</annotation>
+ <annotation cp="🖖🏻">finger | hånd | hudtype 1–2 | spock | vulcan | Vulcan-hilsen</annotation>
+ <annotation cp="🖖🏻" type="tts">Vulcan-hilsen: hudtype 1–2</annotation>
+ <annotation cp="🖖🏼">finger | hånd | hudtype 3 | spock | vulcan | Vulcan-hilsen</annotation>
+ <annotation cp="🖖🏼" type="tts">Vulcan-hilsen: hudtype 3</annotation>
+ <annotation cp="🖖🏽">finger | hånd | hudtype 4 | spock | vulcan | Vulcan-hilsen</annotation>
+ <annotation cp="🖖🏽" type="tts">Vulcan-hilsen: hudtype 4</annotation>
+ <annotation cp="🖖🏾">finger | hånd | hudtype 5 | spock | vulcan | Vulcan-hilsen</annotation>
+ <annotation cp="🖖🏾" type="tts">Vulcan-hilsen: hudtype 5</annotation>
+ <annotation cp="🖖🏿">finger | hånd | hudtype 6 | spock | vulcan | Vulcan-hilsen</annotation>
+ <annotation cp="🖖🏿" type="tts">Vulcan-hilsen: hudtype 6</annotation>
+ <annotation cp="👌🏻">hånd | hudtype 1–2 | OK | OK-hånd | tegn</annotation>
+ <annotation cp="👌🏻" type="tts">OK-hånd: hudtype 1–2</annotation>
+ <annotation cp="👌🏼">hånd | hudtype 3 | OK | OK-hånd | tegn</annotation>
+ <annotation cp="👌🏼" type="tts">OK-hånd: hudtype 3</annotation>
+ <annotation cp="👌🏽">hånd | hudtype 4 | OK | OK-hånd | tegn</annotation>
+ <annotation cp="👌🏽" type="tts">OK-hånd: hudtype 4</annotation>
+ <annotation cp="👌🏾">hånd | hudtype 5 | OK | OK-hånd | tegn</annotation>
+ <annotation cp="👌🏾" type="tts">OK-hånd: hudtype 5</annotation>
+ <annotation cp="👌🏿">hånd | hudtype 6 | OK | OK-hånd | tegn</annotation>
+ <annotation cp="👌🏿" type="tts">OK-hånd: hudtype 6</annotation>
+ <annotation cp="🤌🏻">fingre | fingrene sammen | hånd | hånd med fingertuppene sammen | hudtype 1–2 | sarkastisk | spørsmål</annotation>
+ <annotation cp="🤌🏻" type="tts">hånd med fingertuppene sammen: hudtype 1–2</annotation>
+ <annotation cp="🤌🏼">fingre | fingrene sammen | hånd | hånd med fingertuppene sammen | hudtype 3 | sarkastisk | spørsmål</annotation>
+ <annotation cp="🤌🏼" type="tts">hånd med fingertuppene sammen: hudtype 3</annotation>
+ <annotation cp="🤌🏽">fingre | fingrene sammen | hånd | hånd med fingertuppene sammen | hudtype 4 | sarkastisk | spørsmål</annotation>
+ <annotation cp="🤌🏽" type="tts">hånd med fingertuppene sammen: hudtype 4</annotation>
+ <annotation cp="🤌🏾">fingre | fingrene sammen | hånd | hånd med fingertuppene sammen | hudtype 5 | sarkastisk | spørsmål</annotation>
+ <annotation cp="🤌🏾" type="tts">hånd med fingertuppene sammen: hudtype 5</annotation>
+ <annotation cp="🤌🏿">fingre | fingrene sammen | hånd | hånd med fingertuppene sammen | hudtype 6 | sarkastisk | spørsmål</annotation>
+ <annotation cp="🤌🏿" type="tts">hånd med fingertuppene sammen: hudtype 6</annotation>
+ <annotation cp="🤏🏻">hånd som klyper | hudtype 1–2 | lite | liten</annotation>
+ <annotation cp="🤏🏻" type="tts">hånd som klyper: hudtype 1–2</annotation>
+ <annotation cp="🤏🏼">hånd som klyper | hudtype 3 | lite | liten</annotation>
+ <annotation cp="🤏🏼" type="tts">hånd som klyper: hudtype 3</annotation>
+ <annotation cp="🤏🏽">hånd som klyper | hudtype 4 | lite | liten</annotation>
+ <annotation cp="🤏🏽" type="tts">hånd som klyper: hudtype 4</annotation>
+ <annotation cp="🤏🏾">hånd som klyper | hudtype 5 | lite | liten</annotation>
+ <annotation cp="🤏🏾" type="tts">hånd som klyper: hudtype 5</annotation>
+ <annotation cp="🤏🏿">hånd som klyper | hudtype 6 | lite | liten</annotation>
+ <annotation cp="🤏🏿" type="tts">hånd som klyper: hudtype 6</annotation>
+ <annotation cp="✌🏻">hånd | hudtype 1–2 | peace-tegn | seierstegn</annotation>
+ <annotation cp="✌🏻" type="tts">seierstegn: hudtype 1–2</annotation>
+ <annotation cp="✌🏼">hånd | hudtype 3 | peace-tegn | seierstegn</annotation>
+ <annotation cp="✌🏼" type="tts">seierstegn: hudtype 3</annotation>
+ <annotation cp="✌🏽">hånd | hudtype 4 | peace-tegn | seierstegn</annotation>
+ <annotation cp="✌🏽" type="tts">seierstegn: hudtype 4</annotation>
+ <annotation cp="✌🏾">hånd | hudtype 5 | peace-tegn | seierstegn</annotation>
+ <annotation cp="✌🏾" type="tts">seierstegn: hudtype 5</annotation>
+ <annotation cp="✌🏿">hånd | hudtype 6 | peace-tegn | seierstegn</annotation>
+ <annotation cp="✌🏿" type="tts">seierstegn: hudtype 6</annotation>
+ <annotation cp="🤞🏻">finger | hånd | hell | hudtype 1–2 | kryss | kryssede fingre</annotation>
+ <annotation cp="🤞🏻" type="tts">kryssede fingre: hudtype 1–2</annotation>
+ <annotation cp="🤞🏼">finger | hånd | hell | hudtype 3 | kryss | kryssede fingre</annotation>
+ <annotation cp="🤞🏼" type="tts">kryssede fingre: hudtype 3</annotation>
+ <annotation cp="🤞🏽">finger | hånd | hell | hudtype 4 | kryss | kryssede fingre</annotation>
+ <annotation cp="🤞🏽" type="tts">kryssede fingre: hudtype 4</annotation>
+ <annotation cp="🤞🏾">finger | hånd | hell | hudtype 5 | kryss | kryssede fingre</annotation>
+ <annotation cp="🤞🏾" type="tts">kryssede fingre: hudtype 5</annotation>
+ <annotation cp="🤞🏿">finger | hånd | hell | hudtype 6 | kryss | kryssede fingre</annotation>
+ <annotation cp="🤞🏿" type="tts">kryssede fingre: hudtype 6</annotation>
+ <annotation cp="🤟🏻">glad i deg | glad i deg-tegn | hånd | hudtype 1–2 | ILY | tegnspråk</annotation>
+ <annotation cp="🤟🏻" type="tts">glad i deg-tegn: hudtype 1–2</annotation>
+ <annotation cp="🤟🏼">glad i deg | glad i deg-tegn | hånd | hudtype 3 | ILY | tegnspråk</annotation>
+ <annotation cp="🤟🏼" type="tts">glad i deg-tegn: hudtype 3</annotation>
+ <annotation cp="🤟🏽">glad i deg | glad i deg-tegn | hånd | hudtype 4 | ILY | tegnspråk</annotation>
+ <annotation cp="🤟🏽" type="tts">glad i deg-tegn: hudtype 4</annotation>
+ <annotation cp="🤟🏾">glad i deg | glad i deg-tegn | hånd | hudtype 5 | ILY | tegnspråk</annotation>
+ <annotation cp="🤟🏾" type="tts">glad i deg-tegn: hudtype 5</annotation>
+ <annotation cp="🤟🏿">glad i deg | glad i deg-tegn | hånd | hudtype 6 | ILY | tegnspråk</annotation>
+ <annotation cp="🤟🏿" type="tts">glad i deg-tegn: hudtype 6</annotation>
+ <annotation cp="🤘🏻">finger | hånd | horn | hudtype 1–2 | rock’n’roll</annotation>
+ <annotation cp="🤘🏻" type="tts">rock’n’roll: hudtype 1–2</annotation>
+ <annotation cp="🤘🏼">finger | hånd | horn | hudtype 3 | rock’n’roll</annotation>
+ <annotation cp="🤘🏼" type="tts">rock’n’roll: hudtype 3</annotation>
+ <annotation cp="🤘🏽">finger | hånd | horn | hudtype 4 | rock’n’roll</annotation>
+ <annotation cp="🤘🏽" type="tts">rock’n’roll: hudtype 4</annotation>
+ <annotation cp="🤘🏾">finger | hånd | horn | hudtype 5 | rock’n’roll</annotation>
+ <annotation cp="🤘🏾" type="tts">rock’n’roll: hudtype 5</annotation>
+ <annotation cp="🤘🏿">finger | hånd | horn | hudtype 6 | rock’n’roll</annotation>
+ <annotation cp="🤘🏿" type="tts">rock’n’roll: hudtype 6</annotation>
+ <annotation cp="🤙🏻">hånd | hudtype 1–2 | ring meg-hånd | ringe</annotation>
+ <annotation cp="🤙🏻" type="tts">ring meg-hånd: hudtype 1–2</annotation>
+ <annotation cp="🤙🏼">hånd | hudtype 3 | ring meg-hånd | ringe</annotation>
+ <annotation cp="🤙🏼" type="tts">ring meg-hånd: hudtype 3</annotation>
+ <annotation cp="🤙🏽">hånd | hudtype 4 | ring meg-hånd | ringe</annotation>
+ <annotation cp="🤙🏽" type="tts">ring meg-hånd: hudtype 4</annotation>
+ <annotation cp="🤙🏾">hånd | hudtype 5 | ring meg-hånd | ringe</annotation>
+ <annotation cp="🤙🏾" type="tts">ring meg-hånd: hudtype 5</annotation>
+ <annotation cp="🤙🏿">hånd | hudtype 6 | ring meg-hånd | ringe</annotation>
+ <annotation cp="🤙🏿" type="tts">ring meg-hånd: hudtype 6</annotation>
+ <annotation cp="👈🏻">finger | hånd | hudtype 1–2 | pekende finger | peker mot venstre – bakhånd | peker venstre</annotation>
+ <annotation cp="👈🏻" type="tts">peker mot venstre – bakhånd: hudtype 1–2</annotation>
+ <annotation cp="👈🏼">finger | hånd | hudtype 3 | pekende finger | peker mot venstre – bakhånd | peker venstre</annotation>
+ <annotation cp="👈🏼" type="tts">peker mot venstre – bakhånd: hudtype 3</annotation>
+ <annotation cp="👈🏽">finger | hånd | hudtype 4 | pekende finger | peker mot venstre – bakhånd | peker venstre</annotation>
+ <annotation cp="👈🏽" type="tts">peker mot venstre – bakhånd: hudtype 4</annotation>
+ <annotation cp="👈🏾">finger | hånd | hudtype 5 | pekende finger | peker mot venstre – bakhånd | peker venstre</annotation>
+ <annotation cp="👈🏾" type="tts">peker mot venstre – bakhånd: hudtype 5</annotation>
+ <annotation cp="👈🏿">finger | hånd | hudtype 6 | pekende finger | peker mot venstre – bakhånd | peker venstre</annotation>
+ <annotation cp="👈🏿" type="tts">peker mot venstre – bakhånd: hudtype 6</annotation>
+ <annotation cp="👉🏻">finger | hånd | hudtype 1–2 | pekende finger | peker mot høyre – bakhånd | peker opp</annotation>
+ <annotation cp="👉🏻" type="tts">peker mot høyre – bakhånd: hudtype 1–2</annotation>
+ <annotation cp="👉🏼">finger | hånd | hudtype 3 | pekende finger | peker mot høyre – bakhånd | peker opp</annotation>
+ <annotation cp="👉🏼" type="tts">peker mot høyre – bakhånd: hudtype 3</annotation>
+ <annotation cp="👉🏽">finger | hånd | hudtype 4 | pekende finger | peker mot høyre – bakhånd | peker opp</annotation>
+ <annotation cp="👉🏽" type="tts">peker mot høyre – bakhånd: hudtype 4</annotation>
+ <annotation cp="👉🏾">finger | hånd | hudtype 5 | pekende finger | peker mot høyre – bakhånd | peker opp</annotation>
+ <annotation cp="👉🏾" type="tts">peker mot høyre – bakhånd: hudtype 5</annotation>
+ <annotation cp="👉🏿">finger | hånd | hudtype 6 | pekende finger | peker mot høyre – bakhånd | peker opp</annotation>
+ <annotation cp="👉🏿" type="tts">peker mot høyre – bakhånd: hudtype 6</annotation>
+ <annotation cp="👆🏻">finger | hånd | hudtype 1–2 | pekende finger | peker opp | peker opp – bakhånd</annotation>
+ <annotation cp="👆🏻" type="tts">peker opp – bakhånd: hudtype 1–2</annotation>
+ <annotation cp="👆🏼">finger | hånd | hudtype 3 | pekende finger | peker opp | peker opp – bakhånd</annotation>
+ <annotation cp="👆🏼" type="tts">peker opp – bakhånd: hudtype 3</annotation>
+ <annotation cp="👆🏽">finger | hånd | hudtype 4 | pekende finger | peker opp | peker opp – bakhånd</annotation>
+ <annotation cp="👆🏽" type="tts">peker opp – bakhånd: hudtype 4</annotation>
+ <annotation cp="👆🏾">finger | hånd | hudtype 5 | pekende finger | peker opp | peker opp – bakhånd</annotation>
+ <annotation cp="👆🏾" type="tts">peker opp – bakhånd: hudtype 5</annotation>
+ <annotation cp="👆🏿">finger | hånd | hudtype 6 | pekende finger | peker opp | peker opp – bakhånd</annotation>
+ <annotation cp="👆🏿" type="tts">peker opp – bakhånd: hudtype 6</annotation>
+ <annotation cp="🖕🏻">finger | hånd | hudtype 1–2 | kropp | langfinger | vise fingeren</annotation>
+ <annotation cp="🖕🏻" type="tts">langfinger: hudtype 1–2</annotation>
+ <annotation cp="🖕🏼">finger | hånd | hudtype 3 | kropp | langfinger | vise fingeren</annotation>
+ <annotation cp="🖕🏼" type="tts">langfinger: hudtype 3</annotation>
+ <annotation cp="🖕🏽">finger | hånd | hudtype 4 | kropp | langfinger | vise fingeren</annotation>
+ <annotation cp="🖕🏽" type="tts">langfinger: hudtype 4</annotation>
+ <annotation cp="🖕🏾">finger | hånd | hudtype 5 | kropp | langfinger | vise fingeren</annotation>
+ <annotation cp="🖕🏾" type="tts">langfinger: hudtype 5</annotation>
+ <annotation cp="🖕🏿">finger | hånd | hudtype 6 | kropp | langfinger | vise fingeren</annotation>
+ <annotation cp="🖕🏿" type="tts">langfinger: hudtype 6</annotation>
+ <annotation cp="👇🏻">finger | hånd | hudtype 1–2 | pekende finger | peker ned | peker ned – bakhånd</annotation>
+ <annotation cp="👇🏻" type="tts">peker ned – bakhånd: hudtype 1–2</annotation>
+ <annotation cp="👇🏼">finger | hånd | hudtype 3 | pekende finger | peker ned | peker ned – bakhånd</annotation>
+ <annotation cp="👇🏼" type="tts">peker ned – bakhånd: hudtype 3</annotation>
+ <annotation cp="👇🏽">finger | hånd | hudtype 4 | pekende finger | peker ned | peker ned – bakhånd</annotation>
+ <annotation cp="👇🏽" type="tts">peker ned – bakhånd: hudtype 4</annotation>
+ <annotation cp="👇🏾">finger | hånd | hudtype 5 | pekende finger | peker ned | peker ned – bakhånd</annotation>
+ <annotation cp="👇🏾" type="tts">peker ned – bakhånd: hudtype 5</annotation>
+ <annotation cp="👇🏿">finger | hånd | hudtype 6 | pekende finger | peker ned | peker ned – bakhånd</annotation>
+ <annotation cp="👇🏿" type="tts">peker ned – bakhånd: hudtype 6</annotation>
+ <annotation cp="☝🏻">finger | hånd | hudtype 1–2 | kropp | opp | peke | pekefinger | peker opp</annotation>
+ <annotation cp="☝🏻" type="tts">peker opp: hudtype 1–2</annotation>
+ <annotation cp="☝🏼">finger | hånd | hudtype 3 | kropp | opp | peke | pekefinger | peker opp</annotation>
+ <annotation cp="☝🏼" type="tts">peker opp: hudtype 3</annotation>
+ <annotation cp="☝🏽">finger | hånd | hudtype 4 | kropp | opp | peke | pekefinger | peker opp</annotation>
+ <annotation cp="☝🏽" type="tts">peker opp: hudtype 4</annotation>
+ <annotation cp="☝🏾">finger | hånd | hudtype 5 | kropp | opp | peke | pekefinger | peker opp</annotation>
+ <annotation cp="☝🏾" type="tts">peker opp: hudtype 5</annotation>
+ <annotation cp="☝🏿">finger | hånd | hudtype 6 | kropp | opp | peke | pekefinger | peker opp</annotation>
+ <annotation cp="☝🏿" type="tts">peker opp: hudtype 6</annotation>
+ <annotation cp="👍🏻">hånd | hudtype 1–2 | tegn | tommel | tommel opp</annotation>
+ <annotation cp="👍🏻" type="tts">tommel opp: hudtype 1–2</annotation>
+ <annotation cp="👍🏼">hånd | hudtype 3 | tegn | tommel | tommel opp</annotation>
+ <annotation cp="👍🏼" type="tts">tommel opp: hudtype 3</annotation>
+ <annotation cp="👍🏽">hånd | hudtype 4 | tegn | tommel | tommel opp</annotation>
+ <annotation cp="👍🏽" type="tts">tommel opp: hudtype 4</annotation>
+ <annotation cp="👍🏾">hånd | hudtype 5 | tegn | tommel | tommel opp</annotation>
+ <annotation cp="👍🏾" type="tts">tommel opp: hudtype 5</annotation>
+ <annotation cp="👍🏿">hånd | hudtype 6 | tegn | tommel | tommel opp</annotation>
+ <annotation cp="👍🏿" type="tts">tommel opp: hudtype 6</annotation>
+ <annotation cp="👎🏻">hånd | hudtype 1–2 | tegn | tommel | tommel ned</annotation>
+ <annotation cp="👎🏻" type="tts">tommel ned: hudtype 1–2</annotation>
+ <annotation cp="👎🏼">hånd | hudtype 3 | tegn | tommel | tommel ned</annotation>
+ <annotation cp="👎🏼" type="tts">tommel ned: hudtype 3</annotation>
+ <annotation cp="👎🏽">hånd | hudtype 4 | tegn | tommel | tommel ned</annotation>
+ <annotation cp="👎🏽" type="tts">tommel ned: hudtype 4</annotation>
+ <annotation cp="👎🏾">hånd | hudtype 5 | tegn | tommel | tommel ned</annotation>
+ <annotation cp="👎🏾" type="tts">tommel ned: hudtype 5</annotation>
+ <annotation cp="👎🏿">hånd | hudtype 6 | tegn | tommel | tommel ned</annotation>
+ <annotation cp="👎🏿" type="tts">tommel ned: hudtype 6</annotation>
+ <annotation cp="✊🏻">hånd | hevet knyttneve | hudtype 1–2 | knyttet neve | neve</annotation>
+ <annotation cp="✊🏻" type="tts">hevet knyttneve: hudtype 1–2</annotation>
+ <annotation cp="✊🏼">hånd | hevet knyttneve | hudtype 3 | knyttet neve | neve</annotation>
+ <annotation cp="✊🏼" type="tts">hevet knyttneve: hudtype 3</annotation>
+ <annotation cp="✊🏽">hånd | hevet knyttneve | hudtype 4 | knyttet neve | neve</annotation>
+ <annotation cp="✊🏽" type="tts">hevet knyttneve: hudtype 4</annotation>
+ <annotation cp="✊🏾">hånd | hevet knyttneve | hudtype 5 | knyttet neve | neve</annotation>
+ <annotation cp="✊🏾" type="tts">hevet knyttneve: hudtype 5</annotation>
+ <annotation cp="✊🏿">hånd | hevet knyttneve | hudtype 6 | knyttet neve | neve</annotation>
+ <annotation cp="✊🏿" type="tts">hevet knyttneve: hudtype 6</annotation>
+ <annotation cp="👊🏻">hånd | hudtype 1–2 | knyttneve | neve</annotation>
+ <annotation cp="👊🏻" type="tts">knyttneve: hudtype 1–2</annotation>
+ <annotation cp="👊🏼">hånd | hudtype 3 | knyttneve | neve</annotation>
+ <annotation cp="👊🏼" type="tts">knyttneve: hudtype 3</annotation>
+ <annotation cp="👊🏽">hånd | hudtype 4 | knyttneve | neve</annotation>
+ <annotation cp="👊🏽" type="tts">knyttneve: hudtype 4</annotation>
+ <annotation cp="👊🏾">hånd | hudtype 5 | knyttneve | neve</annotation>
+ <annotation cp="👊🏾" type="tts">knyttneve: hudtype 5</annotation>
+ <annotation cp="👊🏿">hånd | hudtype 6 | knyttneve | neve</annotation>
+ <annotation cp="👊🏿" type="tts">knyttneve: hudtype 6</annotation>
+ <annotation cp="🤛🏻">hånd | hudtype 1–2 | knyttneve mot venstre | neve | venstre | venstrevendt</annotation>
+ <annotation cp="🤛🏻" type="tts">knyttneve mot venstre: hudtype 1–2</annotation>
+ <annotation cp="🤛🏼">hånd | hudtype 3 | knyttneve mot venstre | neve | venstre | venstrevendt</annotation>
+ <annotation cp="🤛🏼" type="tts">knyttneve mot venstre: hudtype 3</annotation>
+ <annotation cp="🤛🏽">hånd | hudtype 4 | knyttneve mot venstre | neve | venstre | venstrevendt</annotation>
+ <annotation cp="🤛🏽" type="tts">knyttneve mot venstre: hudtype 4</annotation>
+ <annotation cp="🤛🏾">hånd | hudtype 5 | knyttneve mot venstre | neve | venstre | venstrevendt</annotation>
+ <annotation cp="🤛🏾" type="tts">knyttneve mot venstre: hudtype 5</annotation>
+ <annotation cp="🤛🏿">hånd | hudtype 6 | knyttneve mot venstre | neve | venstre | venstrevendt</annotation>
+ <annotation cp="🤛🏿" type="tts">knyttneve mot venstre: hudtype 6</annotation>
+ <annotation cp="🤜🏻">hånd | høyre | høyrevendt | hudtype 1–2 | knyttneve mot høyre | neve</annotation>
+ <annotation cp="🤜🏻" type="tts">knyttneve mot høyre: hudtype 1–2</annotation>
+ <annotation cp="🤜🏼">hånd | høyre | høyrevendt | hudtype 3 | knyttneve mot høyre | neve</annotation>
+ <annotation cp="🤜🏼" type="tts">knyttneve mot høyre: hudtype 3</annotation>
+ <annotation cp="🤜🏽">hånd | høyre | høyrevendt | hudtype 4 | knyttneve mot høyre | neve</annotation>
+ <annotation cp="🤜🏽" type="tts">knyttneve mot høyre: hudtype 4</annotation>
+ <annotation cp="🤜🏾">hånd | høyre | høyrevendt | hudtype 5 | knyttneve mot høyre | neve</annotation>
+ <annotation cp="🤜🏾" type="tts">knyttneve mot høyre: hudtype 5</annotation>
+ <annotation cp="🤜🏿">hånd | høyre | høyrevendt | hudtype 6 | knyttneve mot høyre | neve</annotation>
+ <annotation cp="🤜🏿" type="tts">knyttneve mot høyre: hudtype 6</annotation>
+ <annotation cp="👏🏻">hånd | hender | hudtype 1–2 | klappende hender | klapping</annotation>
+ <annotation cp="👏🏻" type="tts">klappende hender: hudtype 1–2</annotation>
+ <annotation cp="👏🏼">hånd | hender | hudtype 3 | klappende hender | klapping</annotation>
+ <annotation cp="👏🏼" type="tts">klappende hender: hudtype 3</annotation>
+ <annotation cp="👏🏽">hånd | hender | hudtype 4 | klappende hender | klapping</annotation>
+ <annotation cp="👏🏽" type="tts">klappende hender: hudtype 4</annotation>
+ <annotation cp="👏🏾">hånd | hender | hudtype 5 | klappende hender | klapping</annotation>
+ <annotation cp="👏🏾" type="tts">klappende hender: hudtype 5</annotation>
+ <annotation cp="👏🏿">hånd | hender | hudtype 6 | klappende hender | klapping</annotation>
+ <annotation cp="👏🏿" type="tts">klappende hender: hudtype 6</annotation>
+ <annotation cp="🙌🏻">begge hender | feirer | feiring | hånd | hevede hender | hudtype 1–2 | rekker begge armene i været</annotation>
+ <annotation cp="🙌🏻" type="tts">hevede hender: hudtype 1–2</annotation>
+ <annotation cp="🙌🏼">begge hender | feirer | feiring | hånd | hevede hender | hudtype 3 | rekker begge armene i været</annotation>
+ <annotation cp="🙌🏼" type="tts">hevede hender: hudtype 3</annotation>
+ <annotation cp="🙌🏽">begge hender | feirer | feiring | hånd | hevede hender | hudtype 4 | rekker begge armene i været</annotation>
+ <annotation cp="🙌🏽" type="tts">hevede hender: hudtype 4</annotation>
+ <annotation cp="🙌🏾">begge hender | feirer | feiring | hånd | hevede hender | hudtype 5 | rekker begge armene i været</annotation>
+ <annotation cp="🙌🏾" type="tts">hevede hender: hudtype 5</annotation>
+ <annotation cp="🙌🏿">begge hender | feirer | feiring | hånd | hevede hender | hudtype 6 | rekker begge armene i været</annotation>
+ <annotation cp="🙌🏿" type="tts">hevede hender: hudtype 6</annotation>
+ <annotation cp="👐🏻">åpne | hånd | hender | hudtype 1–2</annotation>
+ <annotation cp="👐🏻" type="tts">åpne hender: hudtype 1–2</annotation>
+ <annotation cp="👐🏼">åpne | hånd | hender | hudtype 3</annotation>
+ <annotation cp="👐🏼" type="tts">åpne hender: hudtype 3</annotation>
+ <annotation cp="👐🏽">åpne | hånd | hender | hudtype 4</annotation>
+ <annotation cp="👐🏽" type="tts">åpne hender: hudtype 4</annotation>
+ <annotation cp="👐🏾">åpne | hånd | hender | hudtype 5</annotation>
+ <annotation cp="👐🏾" type="tts">åpne hender: hudtype 5</annotation>
+ <annotation cp="👐🏿">åpne | hånd | hender | hudtype 6</annotation>
+ <annotation cp="👐🏿" type="tts">åpne hender: hudtype 6</annotation>
+ <annotation cp="🤲🏻">ber | bønn | hånd | håndflatene sammen | hudtype 1–2</annotation>
+ <annotation cp="🤲🏻" type="tts">håndflatene sammen: hudtype 1–2</annotation>
+ <annotation cp="🤲🏼">ber | bønn | hånd | håndflatene sammen | hudtype 3</annotation>
+ <annotation cp="🤲🏼" type="tts">håndflatene sammen: hudtype 3</annotation>
+ <annotation cp="🤲🏽">ber | bønn | hånd | håndflatene sammen | hudtype 4</annotation>
+ <annotation cp="🤲🏽" type="tts">håndflatene sammen: hudtype 4</annotation>
+ <annotation cp="🤲🏾">ber | bønn | hånd | håndflatene sammen | hudtype 5</annotation>
+ <annotation cp="🤲🏾" type="tts">håndflatene sammen: hudtype 5</annotation>
+ <annotation cp="🤲🏿">ber | bønn | hånd | håndflatene sammen | hudtype 6</annotation>
+ <annotation cp="🤲🏿" type="tts">håndflatene sammen: hudtype 6</annotation>
+ <annotation cp="🙏🏻">be | ber | bevegelse | bønn | foldede hender | hånd | hudtype 1–2</annotation>
+ <annotation cp="🙏🏻" type="tts">foldede hender: hudtype 1–2</annotation>
+ <annotation cp="🙏🏼">be | ber | bevegelse | bønn | foldede hender | hånd | hudtype 3</annotation>
+ <annotation cp="🙏🏼" type="tts">foldede hender: hudtype 3</annotation>
+ <annotation cp="🙏🏽">be | ber | bevegelse | bønn | foldede hender | hånd | hudtype 4</annotation>
+ <annotation cp="🙏🏽" type="tts">foldede hender: hudtype 4</annotation>
+ <annotation cp="🙏🏾">be | ber | bevegelse | bønn | foldede hender | hånd | hudtype 5</annotation>
+ <annotation cp="🙏🏾" type="tts">foldede hender: hudtype 5</annotation>
+ <annotation cp="🙏🏿">be | ber | bevegelse | bønn | foldede hender | hånd | hudtype 6</annotation>
+ <annotation cp="🙏🏿" type="tts">foldede hender: hudtype 6</annotation>
+ <annotation cp="✍🏻">hånd | hudtype 1–2 | kropp | skrive | skrivende hånd</annotation>
+ <annotation cp="✍🏻" type="tts">skrivende hånd: hudtype 1–2</annotation>
+ <annotation cp="✍🏼">hånd | hudtype 3 | kropp | skrive | skrivende hånd</annotation>
+ <annotation cp="✍🏼" type="tts">skrivende hånd: hudtype 3</annotation>
+ <annotation cp="✍🏽">hånd | hudtype 4 | kropp | skrive | skrivende hånd</annotation>
+ <annotation cp="✍🏽" type="tts">skrivende hånd: hudtype 4</annotation>
+ <annotation cp="✍🏾">hånd | hudtype 5 | kropp | skrive | skrivende hånd</annotation>
+ <annotation cp="✍🏾" type="tts">skrivende hånd: hudtype 5</annotation>
+ <annotation cp="✍🏿">hånd | hudtype 6 | kropp | skrive | skrivende hånd</annotation>
+ <annotation cp="✍🏿" type="tts">skrivende hånd: hudtype 6</annotation>
+ <annotation cp="💅🏻">hudtype 1–2 | kosmetikk | manikyr | negl | neglelakk</annotation>
+ <annotation cp="💅🏻" type="tts">neglelakk: hudtype 1–2</annotation>
+ <annotation cp="💅🏼">hudtype 3 | kosmetikk | manikyr | negl | neglelakk</annotation>
+ <annotation cp="💅🏼" type="tts">neglelakk: hudtype 3</annotation>
+ <annotation cp="💅🏽">hudtype 4 | kosmetikk | manikyr | negl | neglelakk</annotation>
+ <annotation cp="💅🏽" type="tts">neglelakk: hudtype 4</annotation>
+ <annotation cp="💅🏾">hudtype 5 | kosmetikk | manikyr | negl | neglelakk</annotation>
+ <annotation cp="💅🏾" type="tts">neglelakk: hudtype 5</annotation>
+ <annotation cp="💅🏿">hudtype 6 | kosmetikk | manikyr | negl | neglelakk</annotation>
+ <annotation cp="💅🏿" type="tts">neglelakk: hudtype 6</annotation>
+ <annotation cp="🤳🏻">hudtype 1–2 | kamera | selfie | telefon</annotation>
+ <annotation cp="🤳🏻" type="tts">selfie: hudtype 1–2</annotation>
+ <annotation cp="🤳🏼">hudtype 3 | kamera | selfie | telefon</annotation>
+ <annotation cp="🤳🏼" type="tts">selfie: hudtype 3</annotation>
+ <annotation cp="🤳🏽">hudtype 4 | kamera | selfie | telefon</annotation>
+ <annotation cp="🤳🏽" type="tts">selfie: hudtype 4</annotation>
+ <annotation cp="🤳🏾">hudtype 5 | kamera | selfie | telefon</annotation>
+ <annotation cp="🤳🏾" type="tts">selfie: hudtype 5</annotation>
+ <annotation cp="🤳🏿">hudtype 6 | kamera | selfie | telefon</annotation>
+ <annotation cp="🤳🏿" type="tts">selfie: hudtype 6</annotation>
+ <annotation cp="💪🏻">biceps | fleks | hudtype 1–2 | muskel | muskelfleksing | sterk | tegneserie</annotation>
+ <annotation cp="💪🏻" type="tts">biceps: hudtype 1–2</annotation>
+ <annotation cp="💪🏼">biceps | fleks | hudtype 3 | muskel | muskelfleksing | sterk | tegneserie</annotation>
+ <annotation cp="💪🏼" type="tts">biceps: hudtype 3</annotation>
+ <annotation cp="💪🏽">biceps | fleks | hudtype 4 | muskel | muskelfleksing | sterk | tegneserie</annotation>
+ <annotation cp="💪🏽" type="tts">biceps: hudtype 4</annotation>
+ <annotation cp="💪🏾">biceps | fleks | hudtype 5 | muskel | muskelfleksing | sterk | tegneserie</annotation>
+ <annotation cp="💪🏾" type="tts">biceps: hudtype 5</annotation>
+ <annotation cp="💪🏿">biceps | fleks | hudtype 6 | muskel | muskelfleksing | sterk | tegneserie</annotation>
+ <annotation cp="💪🏿" type="tts">biceps: hudtype 6</annotation>
+ <annotation cp="🦵🏻">bein | hudtype 1–2 | lem | sparke</annotation>
+ <annotation cp="🦵🏻" type="tts">bein: hudtype 1–2</annotation>
+ <annotation cp="🦵🏼">bein | hudtype 3 | lem | sparke</annotation>
+ <annotation cp="🦵🏼" type="tts">bein: hudtype 3</annotation>
+ <annotation cp="🦵🏽">bein | hudtype 4 | lem | sparke</annotation>
+ <annotation cp="🦵🏽" type="tts">bein: hudtype 4</annotation>
+ <annotation cp="🦵🏾">bein | hudtype 5 | lem | sparke</annotation>
+ <annotation cp="🦵🏾" type="tts">bein: hudtype 5</annotation>
+ <annotation cp="🦵🏿">bein | hudtype 6 | lem | sparke</annotation>
+ <annotation cp="🦵🏿" type="tts">bein: hudtype 6</annotation>
+ <annotation cp="🦶🏻">fot | hudtype 1–2 | sparke | tråkke</annotation>
+ <annotation cp="🦶🏻" type="tts">fot: hudtype 1–2</annotation>
+ <annotation cp="🦶🏼">fot | hudtype 3 | sparke | tråkke</annotation>
+ <annotation cp="🦶🏼" type="tts">fot: hudtype 3</annotation>
+ <annotation cp="🦶🏽">fot | hudtype 4 | sparke | tråkke</annotation>
+ <annotation cp="🦶🏽" type="tts">fot: hudtype 4</annotation>
+ <annotation cp="🦶🏾">fot | hudtype 5 | sparke | tråkke</annotation>
+ <annotation cp="🦶🏾" type="tts">fot: hudtype 5</annotation>
+ <annotation cp="🦶🏿">fot | hudtype 6 | sparke | tråkke</annotation>
+ <annotation cp="🦶🏿" type="tts">fot: hudtype 6</annotation>
+ <annotation cp="👂🏻">hudtype 1–2 | kropp | øre</annotation>
+ <annotation cp="👂🏻" type="tts">øre: hudtype 1–2</annotation>
+ <annotation cp="👂🏼">hudtype 3 | kropp | øre</annotation>
+ <annotation cp="👂🏼" type="tts">øre: hudtype 3</annotation>
+ <annotation cp="👂🏽">hudtype 4 | kropp | øre</annotation>
+ <annotation cp="👂🏽" type="tts">øre: hudtype 4</annotation>
+ <annotation cp="👂🏾">hudtype 5 | kropp | øre</annotation>
+ <annotation cp="👂🏾" type="tts">øre: hudtype 5</annotation>
+ <annotation cp="👂🏿">hudtype 6 | kropp | øre</annotation>
+ <annotation cp="👂🏿" type="tts">øre: hudtype 6</annotation>
+ <annotation cp="🦻🏻">hudtype 1–2 | øre med høreapparat | svak hørsel | tilgjengelighet</annotation>
+ <annotation cp="🦻🏻" type="tts">øre med høreapparat: hudtype 1–2</annotation>
+ <annotation cp="🦻🏼">hudtype 3 | øre med høreapparat | svak hørsel | tilgjengelighet</annotation>
+ <annotation cp="🦻🏼" type="tts">øre med høreapparat: hudtype 3</annotation>
+ <annotation cp="🦻🏽">hudtype 4 | øre med høreapparat | svak hørsel | tilgjengelighet</annotation>
+ <annotation cp="🦻🏽" type="tts">øre med høreapparat: hudtype 4</annotation>
+ <annotation cp="🦻🏾">hudtype 5 | øre med høreapparat | svak hørsel | tilgjengelighet</annotation>
+ <annotation cp="🦻🏾" type="tts">øre med høreapparat: hudtype 5</annotation>
+ <annotation cp="🦻🏿">hudtype 6 | øre med høreapparat | svak hørsel | tilgjengelighet</annotation>
+ <annotation cp="🦻🏿" type="tts">øre med høreapparat: hudtype 6</annotation>
+ <annotation cp="👃🏻">fjes | hudtype 1–2 | kropp | nese</annotation>
+ <annotation cp="👃🏻" type="tts">nese: hudtype 1–2</annotation>
+ <annotation cp="👃🏼">fjes | hudtype 3 | kropp | nese</annotation>
+ <annotation cp="👃🏼" type="tts">nese: hudtype 3</annotation>
+ <annotation cp="👃🏽">fjes | hudtype 4 | kropp | nese</annotation>
+ <annotation cp="👃🏽" type="tts">nese: hudtype 4</annotation>
+ <annotation cp="👃🏾">fjes | hudtype 5 | kropp | nese</annotation>
+ <annotation cp="👃🏾" type="tts">nese: hudtype 5</annotation>
+ <annotation cp="👃🏿">fjes | hudtype 6 | kropp | nese</annotation>
+ <annotation cp="👃🏿" type="tts">nese: hudtype 6</annotation>
+ <annotation cp="👶🏻">baby | hudtype 1–2 | menneske | ung</annotation>
+ <annotation cp="👶🏻" type="tts">baby: hudtype 1–2</annotation>
+ <annotation cp="👶🏼">baby | hudtype 3 | menneske | ung</annotation>
+ <annotation cp="👶🏼" type="tts">baby: hudtype 3</annotation>
+ <annotation cp="👶🏽">baby | hudtype 4 | menneske | ung</annotation>
+ <annotation cp="👶🏽" type="tts">baby: hudtype 4</annotation>
+ <annotation cp="👶🏾">baby | hudtype 5 | menneske | ung</annotation>
+ <annotation cp="👶🏾" type="tts">baby: hudtype 5</annotation>
+ <annotation cp="👶🏿">baby | hudtype 6 | menneske | ung</annotation>
+ <annotation cp="👶🏿" type="tts">baby: hudtype 6</annotation>
+ <annotation cp="🧒🏻">barn | hudtype 1–2 | kjønnsnøytral | menneske | ung</annotation>
+ <annotation cp="🧒🏻" type="tts">barn: hudtype 1–2</annotation>
+ <annotation cp="🧒🏼">barn | hudtype 3 | kjønnsnøytral | menneske | ung</annotation>
+ <annotation cp="🧒🏼" type="tts">barn: hudtype 3</annotation>
+ <annotation cp="🧒🏽">barn | hudtype 4 | kjønnsnøytral | menneske | ung</annotation>
+ <annotation cp="🧒🏽" type="tts">barn: hudtype 4</annotation>
+ <annotation cp="🧒🏾">barn | hudtype 5 | kjønnsnøytral | menneske | ung</annotation>
+ <annotation cp="🧒🏾" type="tts">barn: hudtype 5</annotation>
+ <annotation cp="🧒🏿">barn | hudtype 6 | kjønnsnøytral | menneske | ung</annotation>
+ <annotation cp="🧒🏿" type="tts">barn: hudtype 6</annotation>
+ <annotation cp="👦🏻">gutt | hudtype 1–2 | menneske | ung</annotation>
+ <annotation cp="👦🏻" type="tts">gutt: hudtype 1–2</annotation>
+ <annotation cp="👦🏼">gutt | hudtype 3 | menneske | ung</annotation>
+ <annotation cp="👦🏼" type="tts">gutt: hudtype 3</annotation>
+ <annotation cp="👦🏽">gutt | hudtype 4 | menneske | ung</annotation>
+ <annotation cp="👦🏽" type="tts">gutt: hudtype 4</annotation>
+ <annotation cp="👦🏾">gutt | hudtype 5 | menneske | ung</annotation>
+ <annotation cp="👦🏾" type="tts">gutt: hudtype 5</annotation>
+ <annotation cp="👦🏿">gutt | hudtype 6 | menneske | ung</annotation>
+ <annotation cp="👦🏿" type="tts">gutt: hudtype 6</annotation>
+ <annotation cp="👧🏻">hudtype 1–2 | jente | Jomfruen | menneske | stjernebilde | stjernetegn | ung</annotation>
+ <annotation cp="👧🏻" type="tts">jente: hudtype 1–2</annotation>
+ <annotation cp="👧🏼">hudtype 3 | jente | Jomfruen | menneske | stjernebilde | stjernetegn | ung</annotation>
+ <annotation cp="👧🏼" type="tts">jente: hudtype 3</annotation>
+ <annotation cp="👧🏽">hudtype 4 | jente | Jomfruen | menneske | stjernebilde | stjernetegn | ung</annotation>
+ <annotation cp="👧🏽" type="tts">jente: hudtype 4</annotation>
+ <annotation cp="👧🏾">hudtype 5 | jente | Jomfruen | menneske | stjernebilde | stjernetegn | ung</annotation>
+ <annotation cp="👧🏾" type="tts">jente: hudtype 5</annotation>
+ <annotation cp="👧🏿">hudtype 6 | jente | Jomfruen | menneske | stjernebilde | stjernetegn | ung</annotation>
+ <annotation cp="👧🏿" type="tts">jente: hudtype 6</annotation>
+ <annotation cp="🧑🏻">hudtype 1–2 | kjønnsnøytral | menneske | person | voksen</annotation>
+ <annotation cp="🧑🏻" type="tts">voksen: hudtype 1–2</annotation>
+ <annotation cp="🧑🏼">hudtype 3 | kjønnsnøytral | menneske | person | voksen</annotation>
+ <annotation cp="🧑🏼" type="tts">voksen: hudtype 3</annotation>
+ <annotation cp="🧑🏽">hudtype 4 | kjønnsnøytral | menneske | person | voksen</annotation>
+ <annotation cp="🧑🏽" type="tts">voksen: hudtype 4</annotation>
+ <annotation cp="🧑🏾">hudtype 5 | kjønnsnøytral | menneske | person | voksen</annotation>
+ <annotation cp="🧑🏾" type="tts">voksen: hudtype 5</annotation>
+ <annotation cp="🧑🏿">hudtype 6 | kjønnsnøytral | menneske | person | voksen</annotation>
+ <annotation cp="🧑🏿" type="tts">voksen: hudtype 6</annotation>
+ <annotation cp="👱🏻">blond | blond person | hår | hudtype 1–2 | menneske | Person: blond</annotation>
+ <annotation cp="👱🏻" type="tts">Person: hudtype 1–2, blond</annotation>
+ <annotation cp="👱🏼">blond | blond person | hår | hudtype 3 | menneske | Person: blond</annotation>
+ <annotation cp="👱🏼" type="tts">Person: hudtype 3, blond</annotation>
+ <annotation cp="👱🏽">blond | blond person | hår | hudtype 4 | menneske | Person: blond</annotation>
+ <annotation cp="👱🏽" type="tts">Person: hudtype 4, blond</annotation>
+ <annotation cp="👱🏾">blond | blond person | hår | hudtype 5 | menneske | Person: blond</annotation>
+ <annotation cp="👱🏾" type="tts">Person: hudtype 5, blond</annotation>
+ <annotation cp="👱🏿">blond | blond person | hår | hudtype 6 | menneske | Person: blond</annotation>
+ <annotation cp="👱🏿" type="tts">Person: hudtype 6, blond</annotation>
+ <annotation cp="🧑🏻❤💋🧑🏼">hudtype 1–2 | hudtype 3 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
+ <annotation cp="🧑🏻❤💋🧑🏼" type="tts">kyss: voksen, voksen, hudtype 1–2, hudtype 3</annotation>
+ <annotation cp="🧑🏻❤💋🧑🏽">hudtype 1–2 | hudtype 4 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
+ <annotation cp="🧑🏻❤💋🧑🏽" type="tts">kyss: voksen, voksen, hudtype 1–2, hudtype 4</annotation>
+ <annotation cp="🧑🏻❤💋🧑🏾">hudtype 1–2 | hudtype 5 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
+ <annotation cp="🧑🏻❤💋🧑🏾" type="tts">kyss: voksen, voksen, hudtype 1–2, hudtype 5</annotation>
+ <annotation cp="🧑🏻❤💋🧑🏿">hudtype 1–2 | hudtype 6 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
+ <annotation cp="🧑🏻❤💋🧑🏿" type="tts">kyss: voksen, voksen, hudtype 1–2, hudtype 6</annotation>
+ <annotation cp="🧑🏼❤💋🧑🏻">hudtype 1–2 | hudtype 3 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
+ <annotation cp="🧑🏼❤💋🧑🏻" type="tts">kyss: voksen, voksen, hudtype 3, hudtype 1–2</annotation>
+ <annotation cp="🧑🏼❤💋🧑🏽">hudtype 3 | hudtype 4 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
+ <annotation cp="🧑🏼❤💋🧑🏽" type="tts">kyss: voksen, voksen, hudtype 3, hudtype 4</annotation>
+ <annotation cp="🧑🏼❤💋🧑🏾">hudtype 3 | hudtype 5 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
+ <annotation cp="🧑🏼❤💋🧑🏾" type="tts">kyss: voksen, voksen, hudtype 3, hudtype 5</annotation>
+ <annotation cp="🧑🏼❤💋🧑🏿">hudtype 3 | hudtype 6 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
+ <annotation cp="🧑🏼❤💋🧑🏿" type="tts">kyss: voksen, voksen, hudtype 3, hudtype 6</annotation>
+ <annotation cp="🧑🏽❤💋🧑🏻">hudtype 1–2 | hudtype 4 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
+ <annotation cp="🧑🏽❤💋🧑🏻" type="tts">kyss: voksen, voksen, hudtype 4, hudtype 1–2</annotation>
+ <annotation cp="🧑🏽❤💋🧑🏼">hudtype 3 | hudtype 4 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
+ <annotation cp="🧑🏽❤💋🧑🏼" type="tts">kyss: voksen, voksen, hudtype 4, hudtype 3</annotation>
+ <annotation cp="🧑🏽❤💋🧑🏾">hudtype 4 | hudtype 5 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
+ <annotation cp="🧑🏽❤💋🧑🏾" type="tts">kyss: voksen, voksen, hudtype 4, hudtype 5</annotation>
+ <annotation cp="🧑🏽❤💋🧑🏿">hudtype 4 | hudtype 6 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
+ <annotation cp="🧑🏽❤💋🧑🏿" type="tts">kyss: voksen, voksen, hudtype 4, hudtype 6</annotation>
+ <annotation cp="🧑🏾❤💋🧑🏻">hudtype 1–2 | hudtype 5 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
+ <annotation cp="🧑🏾❤💋🧑🏻" type="tts">kyss: voksen, voksen, hudtype 5, hudtype 1–2</annotation>
+ <annotation cp="🧑🏾❤💋🧑🏼">hudtype 3 | hudtype 5 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
+ <annotation cp="🧑🏾❤💋🧑🏼" type="tts">kyss: voksen, voksen, hudtype 5, hudtype 3</annotation>
+ <annotation cp="🧑🏾❤💋🧑🏽">hudtype 4 | hudtype 5 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
+ <annotation cp="🧑🏾❤💋🧑🏽" type="tts">kyss: voksen, voksen, hudtype 5, hudtype 4</annotation>
+ <annotation cp="🧑🏾❤💋🧑🏿">hudtype 5 | hudtype 6 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
+ <annotation cp="🧑🏾❤💋🧑🏿" type="tts">kyss: voksen, voksen, hudtype 5, hudtype 6</annotation>
+ <annotation cp="🧑🏿❤💋🧑🏻">hudtype 1–2 | hudtype 6 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
+ <annotation cp="🧑🏿❤💋🧑🏻" type="tts">kyss: voksen, voksen, hudtype 6, hudtype 1–2</annotation>
+ <annotation cp="🧑🏿❤💋🧑🏼">hudtype 3 | hudtype 6 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
+ <annotation cp="🧑🏿❤💋🧑🏼" type="tts">kyss: voksen, voksen, hudtype 6, hudtype 3</annotation>
+ <annotation cp="🧑🏿❤💋🧑🏽">hudtype 4 | hudtype 6 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
+ <annotation cp="🧑🏿❤💋🧑🏽" type="tts">kyss: voksen, voksen, hudtype 6, hudtype 4</annotation>
+ <annotation cp="🧑🏿❤💋🧑🏾">hudtype 5 | hudtype 6 | kyss | kyssing | mennesker | romantikk | voksen</annotation>
+ <annotation cp="🧑🏿❤💋🧑🏾" type="tts">kyss: voksen, voksen, hudtype 6, hudtype 5</annotation>
+ <annotation cp="🧑🏻❤🧑🏼">hjerte | hudtype 1–2 | hudtype 3 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
+ <annotation cp="🧑🏻❤🧑🏼" type="tts">par med hjerte: voksen, voksen, hudtype 1–2, hudtype 3</annotation>
+ <annotation cp="🧑🏻❤🧑🏽">hjerte | hudtype 1–2 | hudtype 4 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
+ <annotation cp="🧑🏻❤🧑🏽" type="tts">par med hjerte: voksen, voksen, hudtype 1–2, hudtype 4</annotation>
+ <annotation cp="🧑🏻❤🧑🏾">hjerte | hudtype 1–2 | hudtype 5 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
+ <annotation cp="🧑🏻❤🧑🏾" type="tts">par med hjerte: voksen, voksen, hudtype 1–2, hudtype 5</annotation>
+ <annotation cp="🧑🏻❤🧑🏿">hjerte | hudtype 1–2 | hudtype 6 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
+ <annotation cp="🧑🏻❤🧑🏿" type="tts">par med hjerte: voksen, voksen, hudtype 1–2, hudtype 6</annotation>
+ <annotation cp="🧑🏼❤🧑🏻">hjerte | hudtype 1–2 | hudtype 3 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
+ <annotation cp="🧑🏼❤🧑🏻" type="tts">par med hjerte: voksen, voksen, hudtype 3, hudtype 1–2</annotation>
+ <annotation cp="🧑🏼❤🧑🏽">hjerte | hudtype 3 | hudtype 4 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
+ <annotation cp="🧑🏼❤🧑🏽" type="tts">par med hjerte: voksen, voksen, hudtype 3, hudtype 4</annotation>
+ <annotation cp="🧑🏼❤🧑🏾">hjerte | hudtype 3 | hudtype 5 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
+ <annotation cp="🧑🏼❤🧑🏾" type="tts">par med hjerte: voksen, voksen, hudtype 3, hudtype 5</annotation>
+ <annotation cp="🧑🏼❤🧑🏿">hjerte | hudtype 3 | hudtype 6 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
+ <annotation cp="🧑🏼❤🧑🏿" type="tts">par med hjerte: voksen, voksen, hudtype 3, hudtype 6</annotation>
+ <annotation cp="🧑🏽❤🧑🏻">hjerte | hudtype 1–2 | hudtype 4 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
+ <annotation cp="🧑🏽❤🧑🏻" type="tts">par med hjerte: voksen, voksen, hudtype 4, hudtype 1–2</annotation>
+ <annotation cp="🧑🏽❤🧑🏼">hjerte | hudtype 3 | hudtype 4 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
+ <annotation cp="🧑🏽❤🧑🏼" type="tts">par med hjerte: voksen, voksen, hudtype 4, hudtype 3</annotation>
+ <annotation cp="🧑🏽❤🧑🏾">hjerte | hudtype 4 | hudtype 5 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
+ <annotation cp="🧑🏽❤🧑🏾" type="tts">par med hjerte: voksen, voksen, hudtype 4, hudtype 5</annotation>
+ <annotation cp="🧑🏽❤🧑🏿">hjerte | hudtype 4 | hudtype 6 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
+ <annotation cp="🧑🏽❤🧑🏿" type="tts">par med hjerte: voksen, voksen, hudtype 4, hudtype 6</annotation>
+ <annotation cp="🧑🏾❤🧑🏻">hjerte | hudtype 1–2 | hudtype 5 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
+ <annotation cp="🧑🏾❤🧑🏻" type="tts">par med hjerte: voksen, voksen, hudtype 5, hudtype 1–2</annotation>
+ <annotation cp="🧑🏾❤🧑🏼">hjerte | hudtype 3 | hudtype 5 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
+ <annotation cp="🧑🏾❤🧑🏼" type="tts">par med hjerte: voksen, voksen, hudtype 5, hudtype 3</annotation>
+ <annotation cp="🧑🏾❤🧑🏽">hjerte | hudtype 4 | hudtype 5 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
+ <annotation cp="🧑🏾❤🧑🏽" type="tts">par med hjerte: voksen, voksen, hudtype 5, hudtype 4</annotation>
+ <annotation cp="🧑🏾❤🧑🏿">hjerte | hudtype 5 | hudtype 6 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
+ <annotation cp="🧑🏾❤🧑🏿" type="tts">par med hjerte: voksen, voksen, hudtype 5, hudtype 6</annotation>
+ <annotation cp="🧑🏿❤🧑🏻">hjerte | hudtype 1–2 | hudtype 6 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
+ <annotation cp="🧑🏿❤🧑🏻" type="tts">par med hjerte: voksen, voksen, hudtype 6, hudtype 1–2</annotation>
+ <annotation cp="🧑🏿❤🧑🏼">hjerte | hudtype 3 | hudtype 6 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
+ <annotation cp="🧑🏿❤🧑🏼" type="tts">par med hjerte: voksen, voksen, hudtype 6, hudtype 3</annotation>
+ <annotation cp="🧑🏿❤🧑🏽">hjerte | hudtype 4 | hudtype 6 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
+ <annotation cp="🧑🏿❤🧑🏽" type="tts">par med hjerte: voksen, voksen, hudtype 6, hudtype 4</annotation>
+ <annotation cp="🧑🏿❤🧑🏾">hjerte | hudtype 5 | hudtype 6 | kjærlighet | mennesker | par med hjerte | romantikk | voksen</annotation>
+ <annotation cp="🧑🏿❤🧑🏾" type="tts">par med hjerte: voksen, voksen, hudtype 6, hudtype 5</annotation>
+ <annotation cp="🧑🦰">kjønnsnøytral | menneske | person | rødt hår | voksen</annotation>
+ <annotation cp="🧑🦰" type="tts">voksen: rødt hår</annotation>
+ <annotation cp="🧑🏻🦰">hudtype 1–2 | kjønnsnøytral | menneske | person | rødt hår | voksen</annotation>
+ <annotation cp="🧑🏻🦰" type="tts">voksen: hudtype 1–2, rødt hår</annotation>
+ <annotation cp="🧑🏼🦰">hudtype 3 | kjønnsnøytral | menneske | person | rødt hår | voksen</annotation>
+ <annotation cp="🧑🏼🦰" type="tts">voksen: hudtype 3, rødt hår</annotation>
+ <annotation cp="🧑🏽🦰">hudtype 4 | kjønnsnøytral | menneske | person | rødt hår | voksen</annotation>
+ <annotation cp="🧑🏽🦰" type="tts">voksen: hudtype 4, rødt hår</annotation>
+ <annotation cp="🧑🏾🦰">hudtype 5 | kjønnsnøytral | menneske | person | rødt hår | voksen</annotation>
+ <annotation cp="🧑🏾🦰" type="tts">voksen: hudtype 5, rødt hår</annotation>
+ <annotation cp="🧑🏿🦰">hudtype 6 | kjønnsnøytral | menneske | person | rødt hår | voksen</annotation>
+ <annotation cp="🧑🏿🦰" type="tts">voksen: hudtype 6, rødt hår</annotation>
+ <annotation cp="🧑🦱">kjønnsnøytral | kruset hår | menneske | person | voksen</annotation>
+ <annotation cp="🧑🦱" type="tts">voksen: kruset hår</annotation>
+ <annotation cp="🧑🏻🦱">hudtype 1–2 | kjønnsnøytral | kruset hår | menneske | person | voksen</annotation>
+ <annotation cp="🧑🏻🦱" type="tts">voksen: hudtype 1–2, kruset hår</annotation>
+ <annotation cp="🧑🏼🦱">hudtype 3 | kjønnsnøytral | kruset hår | menneske | person | voksen</annotation>
+ <annotation cp="🧑🏼🦱" type="tts">voksen: hudtype 3, kruset hår</annotation>
+ <annotation cp="🧑🏽🦱">hudtype 4 | kjønnsnøytral | kruset hår | menneske | person | voksen</annotation>
+ <annotation cp="🧑🏽🦱" type="tts">voksen: hudtype 4, kruset hår</annotation>
+ <annotation cp="🧑🏾🦱">hudtype 5 | kjønnsnøytral | kruset hår | menneske | person | voksen</annotation>
+ <annotation cp="🧑🏾🦱" type="tts">voksen: hudtype 5, kruset hår</annotation>
+ <annotation cp="🧑🏿🦱">hudtype 6 | kjønnsnøytral | kruset hår | menneske | person | voksen</annotation>
+ <annotation cp="🧑🏿🦱" type="tts">voksen: hudtype 6, kruset hår</annotation>
+ <annotation cp="🧑🦳">grått hår | kjønnsnøytral | menneske | person | voksen</annotation>
+ <annotation cp="🧑🦳" type="tts">voksen: grått hår</annotation>
+ <annotation cp="🧑🏻🦳">grått hår | hudtype 1–2 | kjønnsnøytral | menneske | person | voksen</annotation>
+ <annotation cp="🧑🏻🦳" type="tts">voksen: hudtype 1–2, grått hår</annotation>
+ <annotation cp="🧑🏼🦳">grått hår | hudtype 3 | kjønnsnøytral | menneske | person | voksen</annotation>
+ <annotation cp="🧑🏼🦳" type="tts">voksen: hudtype 3, grått hår</annotation>
+ <annotation cp="🧑🏽🦳">grått hår | hudtype 4 | kjønnsnøytral | menneske | person | voksen</annotation>
+ <annotation cp="🧑🏽🦳" type="tts">voksen: hudtype 4, grått hår</annotation>
+ <annotation cp="🧑🏾🦳">grått hår | hudtype 5 | kjønnsnøytral | menneske | person | voksen</annotation>
+ <annotation cp="🧑🏾🦳" type="tts">voksen: hudtype 5, grått hår</annotation>
+ <annotation cp="🧑🏿🦳">grått hår | hudtype 6 | kjønnsnøytral | menneske | person | voksen</annotation>
+ <annotation cp="🧑🏿🦳" type="tts">voksen: hudtype 6, grått hår</annotation>
+ <annotation cp="🧑🦲">kjønnsnøytral | menneske | person | skallet | voksen</annotation>
+ <annotation cp="🧑🦲" type="tts">voksen: skallet</annotation>
+ <annotation cp="🧑🏻🦲">hudtype 1–2 | kjønnsnøytral | menneske | person | skallet | voksen</annotation>
+ <annotation cp="🧑🏻🦲" type="tts">voksen: hudtype 1–2, skallet</annotation>
+ <annotation cp="🧑🏼🦲">hudtype 3 | kjønnsnøytral | menneske | person | skallet | voksen</annotation>
+ <annotation cp="🧑🏼🦲" type="tts">voksen: hudtype 3, skallet</annotation>
+ <annotation cp="🧑🏽🦲">hudtype 4 | kjønnsnøytral | menneske | person | skallet | voksen</annotation>
+ <annotation cp="🧑🏽🦲" type="tts">voksen: hudtype 4, skallet</annotation>
+ <annotation cp="🧑🏾🦲">hudtype 5 | kjønnsnøytral | menneske | person | skallet | voksen</annotation>
+ <annotation cp="🧑🏾🦲" type="tts">voksen: hudtype 5, skallet</annotation>
+ <annotation cp="🧑🏿🦲">hudtype 6 | kjønnsnøytral | menneske | person | skallet | voksen</annotation>
+ <annotation cp="🧑🏿🦲" type="tts">voksen: hudtype 6, skallet</annotation>
+ <annotation cp="👨🏻">hudtype 1–2 | mann | menneske | voksen</annotation>
+ <annotation cp="👨🏻" type="tts">mann: hudtype 1–2</annotation>
+ <annotation cp="👨🏼">hudtype 3 | mann | menneske | voksen</annotation>
+ <annotation cp="👨🏼" type="tts">mann: hudtype 3</annotation>
+ <annotation cp="👨🏽">hudtype 4 | mann | menneske | voksen</annotation>
+ <annotation cp="👨🏽" type="tts">mann: hudtype 4</annotation>
+ <annotation cp="👨🏾">hudtype 5 | mann | menneske | voksen</annotation>
+ <annotation cp="👨🏾" type="tts">mann: hudtype 5</annotation>
+ <annotation cp="👨🏿">hudtype 6 | mann | menneske | voksen</annotation>
+ <annotation cp="👨🏿" type="tts">mann: hudtype 6</annotation>
+ <annotation cp="🧔🏻">hudtype 1–2 | mann | mann med skjegg | mann: skjegg | person | person: skjegg | skjegg</annotation>
+ <annotation cp="🧔🏻" type="tts">person: hudtype 1–2, skjegg</annotation>
+ <annotation cp="🧔🏼">hudtype 3 | mann | mann med skjegg | mann: skjegg | person | person: skjegg | skjegg</annotation>
+ <annotation cp="🧔🏼" type="tts">person: hudtype 3, skjegg</annotation>
+ <annotation cp="🧔🏽">hudtype 4 | mann | mann med skjegg | mann: skjegg | person | person: skjegg | skjegg</annotation>
+ <annotation cp="🧔🏽" type="tts">person: hudtype 4, skjegg</annotation>
+ <annotation cp="🧔🏾">hudtype 5 | mann | mann med skjegg | mann: skjegg | person | person: skjegg | skjegg</annotation>
+ <annotation cp="🧔🏾" type="tts">person: hudtype 5, skjegg</annotation>
+ <annotation cp="🧔🏿">hudtype 6 | mann | mann med skjegg | mann: skjegg | person | person: skjegg | skjegg</annotation>
+ <annotation cp="🧔🏿" type="tts">person: hudtype 6, skjegg</annotation>
+ <annotation cp="🧔🏻♂">hudtype 1–2 | mann | mann: skjegg | skjegg</annotation>
+ <annotation cp="🧔🏻♂" type="tts">mann: hudtype 1–2, skjegg</annotation>
+ <annotation cp="🧔🏼♂">hudtype 3 | mann | mann: skjegg | skjegg</annotation>
+ <annotation cp="🧔🏼♂" type="tts">mann: hudtype 3, skjegg</annotation>
+ <annotation cp="🧔🏽♂">hudtype 4 | mann | mann: skjegg | skjegg</annotation>
+ <annotation cp="🧔🏽♂" type="tts">mann: hudtype 4, skjegg</annotation>
+ <annotation cp="🧔🏾♂">hudtype 5 | mann | mann: skjegg | skjegg</annotation>
+ <annotation cp="🧔🏾♂" type="tts">mann: hudtype 5, skjegg</annotation>
+ <annotation cp="🧔🏿♂">hudtype 6 | mann | mann: skjegg | skjegg</annotation>
+ <annotation cp="🧔🏿♂" type="tts">mann: hudtype 6, skjegg</annotation>
+ <annotation cp="👱🏻♂">blond | hår | hudtype 1–2 | mann | mann: blond</annotation>
+ <annotation cp="👱🏻♂" type="tts">mann: hudtype 1–2, blond</annotation>
+ <annotation cp="👱🏼♂">blond | hår | hudtype 3 | mann | mann: blond</annotation>
+ <annotation cp="👱🏼♂" type="tts">mann: hudtype 3, blond</annotation>
+ <annotation cp="👱🏽♂">blond | hår | hudtype 4 | mann | mann: blond</annotation>
+ <annotation cp="👱🏽♂" type="tts">mann: hudtype 4, blond</annotation>
+ <annotation cp="👱🏾♂">blond | hår | hudtype 5 | mann | mann: blond</annotation>
+ <annotation cp="👱🏾♂" type="tts">mann: hudtype 5, blond</annotation>
+ <annotation cp="👱🏿♂">blond | hår | hudtype 6 | mann | mann: blond</annotation>
+ <annotation cp="👱🏿♂" type="tts">mann: hudtype 6, blond</annotation>
+ <annotation cp="👨🏻❤💋👨🏻">hudtype 1–2 | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👨🏻❤💋👨🏻" type="tts">kyss: mann, mann, hudtype 1–2</annotation>
+ <annotation cp="👨🏻❤💋👨🏼">hudtype 1–2 | hudtype 3 | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👨🏻❤💋👨🏼" type="tts">kyss: mann, mann, hudtype 1–2, hudtype 3</annotation>
+ <annotation cp="👨🏻❤💋👨🏽">hudtype 1–2 | hudtype 4 | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👨🏻❤💋👨🏽" type="tts">kyss: mann, mann, hudtype 1–2, hudtype 4</annotation>
+ <annotation cp="👨🏻❤💋👨🏾">hudtype 1–2 | hudtype 5 | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👨🏻❤💋👨🏾" type="tts">kyss: mann, mann, hudtype 1–2, hudtype 5</annotation>
+ <annotation cp="👨🏻❤💋👨🏿">hudtype 1–2 | hudtype 6 | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👨🏻❤💋👨🏿" type="tts">kyss: mann, mann, hudtype 1–2, hudtype 6</annotation>
+ <annotation cp="👨🏼❤💋👨🏻">hudtype 1–2 | hudtype 3 | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👨🏼❤💋👨🏻" type="tts">kyss: mann, mann, hudtype 3, hudtype 1–2</annotation>
+ <annotation cp="👨🏼❤💋👨🏼">hudtype 3 | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👨🏼❤💋👨🏼" type="tts">kyss: mann, mann, hudtype 3</annotation>
+ <annotation cp="👨🏼❤💋👨🏽">hudtype 3 | hudtype 4 | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👨🏼❤💋👨🏽" type="tts">kyss: mann, mann, hudtype 3, hudtype 4</annotation>
+ <annotation cp="👨🏼❤💋👨🏾">hudtype 3 | hudtype 5 | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👨🏼❤💋👨🏾" type="tts">kyss: mann, mann, hudtype 3, hudtype 5</annotation>
+ <annotation cp="👨🏼❤💋👨🏿">hudtype 3 | hudtype 6 | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👨🏼❤💋👨🏿" type="tts">kyss: mann, mann, hudtype 3, hudtype 6</annotation>
+ <annotation cp="👨🏽❤💋👨🏻">hudtype 1–2 | hudtype 4 | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👨🏽❤💋👨🏻" type="tts">kyss: mann, mann, hudtype 4, hudtype 1–2</annotation>
+ <annotation cp="👨🏽❤💋👨🏼">hudtype 3 | hudtype 4 | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👨🏽❤💋👨🏼" type="tts">kyss: mann, mann, hudtype 4, hudtype 3</annotation>
+ <annotation cp="👨🏽❤💋👨🏽">hudtype 4 | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👨🏽❤💋👨🏽" type="tts">kyss: mann, mann, hudtype 4</annotation>
+ <annotation cp="👨🏽❤💋👨🏾">hudtype 4 | hudtype 5 | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👨🏽❤💋👨🏾" type="tts">kyss: mann, mann, hudtype 4, hudtype 5</annotation>
+ <annotation cp="👨🏽❤💋👨🏿">hudtype 4 | hudtype 6 | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👨🏽❤💋👨🏿" type="tts">kyss: mann, mann, hudtype 4, hudtype 6</annotation>
+ <annotation cp="👨🏾❤💋👨🏻">hudtype 1–2 | hudtype 5 | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👨🏾❤💋👨🏻" type="tts">kyss: mann, mann, hudtype 5, hudtype 1–2</annotation>
+ <annotation cp="👨🏾❤💋👨🏼">hudtype 3 | hudtype 5 | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👨🏾❤💋👨🏼" type="tts">kyss: mann, mann, hudtype 5, hudtype 3</annotation>
+ <annotation cp="👨🏾❤💋👨🏽">hudtype 4 | hudtype 5 | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👨🏾❤💋👨🏽" type="tts">kyss: mann, mann, hudtype 5, hudtype 4</annotation>
+ <annotation cp="👨🏾❤💋👨🏾">hudtype 5 | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👨🏾❤💋👨🏾" type="tts">kyss: mann, mann, hudtype 5</annotation>
+ <annotation cp="👨🏾❤💋👨🏿">hudtype 5 | hudtype 6 | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👨🏾❤💋👨🏿" type="tts">kyss: mann, mann, hudtype 5, hudtype 6</annotation>
+ <annotation cp="👨🏿❤💋👨🏻">hudtype 1–2 | hudtype 6 | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👨🏿❤💋👨🏻" type="tts">kyss: mann, mann, hudtype 6, hudtype 1–2</annotation>
+ <annotation cp="👨🏿❤💋👨🏼">hudtype 3 | hudtype 6 | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👨🏿❤💋👨🏼" type="tts">kyss: mann, mann, hudtype 6, hudtype 3</annotation>
+ <annotation cp="👨🏿❤💋👨🏽">hudtype 4 | hudtype 6 | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👨🏿❤💋👨🏽" type="tts">kyss: mann, mann, hudtype 6, hudtype 4</annotation>
+ <annotation cp="👨🏿❤💋👨🏾">hudtype 5 | hudtype 6 | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👨🏿❤💋👨🏾" type="tts">kyss: mann, mann, hudtype 6, hudtype 5</annotation>
+ <annotation cp="👨🏿❤💋👨🏿">hudtype 6 | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👨🏿❤💋👨🏿" type="tts">kyss: mann, mann, hudtype 6</annotation>
+ <annotation cp="👨🏻❤👨🏻">hjerte | hudtype 1–2 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👨🏻❤👨🏻" type="tts">par med hjerte: mann, mann, hudtype 1–2</annotation>
+ <annotation cp="👨🏻❤👨🏼">hjerte | hudtype 1–2 | hudtype 3 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👨🏻❤👨🏼" type="tts">par med hjerte: mann, mann, hudtype 1–2, hudtype 3</annotation>
+ <annotation cp="👨🏻❤👨🏽">hjerte | hudtype 1–2 | hudtype 4 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👨🏻❤👨🏽" type="tts">par med hjerte: mann, mann, hudtype 1–2, hudtype 4</annotation>
+ <annotation cp="👨🏻❤👨🏾">hjerte | hudtype 1–2 | hudtype 5 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👨🏻❤👨🏾" type="tts">par med hjerte: mann, mann, hudtype 1–2, hudtype 5</annotation>
+ <annotation cp="👨🏻❤👨🏿">hjerte | hudtype 1–2 | hudtype 6 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👨🏻❤👨🏿" type="tts">par med hjerte: mann, mann, hudtype 1–2, hudtype 6</annotation>
+ <annotation cp="👨🏼❤👨🏻">hjerte | hudtype 1–2 | hudtype 3 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👨🏼❤👨🏻" type="tts">par med hjerte: mann, mann, hudtype 3, hudtype 1–2</annotation>
+ <annotation cp="👨🏼❤👨🏼">hjerte | hudtype 3 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👨🏼❤👨🏼" type="tts">par med hjerte: mann, mann, hudtype 3</annotation>
+ <annotation cp="👨🏼❤👨🏽">hjerte | hudtype 3 | hudtype 4 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👨🏼❤👨🏽" type="tts">par med hjerte: mann, mann, hudtype 3, hudtype 4</annotation>
+ <annotation cp="👨🏼❤👨🏾">hjerte | hudtype 3 | hudtype 5 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👨🏼❤👨🏾" type="tts">par med hjerte: mann, mann, hudtype 3, hudtype 5</annotation>
+ <annotation cp="👨🏼❤👨🏿">hjerte | hudtype 3 | hudtype 6 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👨🏼❤👨🏿" type="tts">par med hjerte: mann, mann, hudtype 3, hudtype 6</annotation>
+ <annotation cp="👨🏽❤👨🏻">hjerte | hudtype 1–2 | hudtype 4 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👨🏽❤👨🏻" type="tts">par med hjerte: mann, mann, hudtype 4, hudtype 1–2</annotation>
+ <annotation cp="👨🏽❤👨🏼">hjerte | hudtype 3 | hudtype 4 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👨🏽❤👨🏼" type="tts">par med hjerte: mann, mann, hudtype 4, hudtype 3</annotation>
+ <annotation cp="👨🏽❤👨🏽">hjerte | hudtype 4 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👨🏽❤👨🏽" type="tts">par med hjerte: mann, mann, hudtype 4</annotation>
+ <annotation cp="👨🏽❤👨🏾">hjerte | hudtype 4 | hudtype 5 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👨🏽❤👨🏾" type="tts">par med hjerte: mann, mann, hudtype 4, hudtype 5</annotation>
+ <annotation cp="👨🏽❤👨🏿">hjerte | hudtype 4 | hudtype 6 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👨🏽❤👨🏿" type="tts">par med hjerte: mann, mann, hudtype 4, hudtype 6</annotation>
+ <annotation cp="👨🏾❤👨🏻">hjerte | hudtype 1–2 | hudtype 5 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👨🏾❤👨🏻" type="tts">par med hjerte: mann, mann, hudtype 5, hudtype 1–2</annotation>
+ <annotation cp="👨🏾❤👨🏼">hjerte | hudtype 3 | hudtype 5 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👨🏾❤👨🏼" type="tts">par med hjerte: mann, mann, hudtype 5, hudtype 3</annotation>
+ <annotation cp="👨🏾❤👨🏽">hjerte | hudtype 4 | hudtype 5 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👨🏾❤👨🏽" type="tts">par med hjerte: mann, mann, hudtype 5, hudtype 4</annotation>
+ <annotation cp="👨🏾❤👨🏾">hjerte | hudtype 5 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👨🏾❤👨🏾" type="tts">par med hjerte: mann, mann, hudtype 5</annotation>
+ <annotation cp="👨🏾❤👨🏿">hjerte | hudtype 5 | hudtype 6 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👨🏾❤👨🏿" type="tts">par med hjerte: mann, mann, hudtype 5, hudtype 6</annotation>
+ <annotation cp="👨🏿❤👨🏻">hjerte | hudtype 1–2 | hudtype 6 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👨🏿❤👨🏻" type="tts">par med hjerte: mann, mann, hudtype 6, hudtype 1–2</annotation>
+ <annotation cp="👨🏿❤👨🏼">hjerte | hudtype 3 | hudtype 6 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👨🏿❤👨🏼" type="tts">par med hjerte: mann, mann, hudtype 6, hudtype 3</annotation>
+ <annotation cp="👨🏿❤👨🏽">hjerte | hudtype 4 | hudtype 6 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👨🏿❤👨🏽" type="tts">par med hjerte: mann, mann, hudtype 6, hudtype 4</annotation>
+ <annotation cp="👨🏿❤👨🏾">hjerte | hudtype 5 | hudtype 6 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👨🏿❤👨🏾" type="tts">par med hjerte: mann, mann, hudtype 6, hudtype 5</annotation>
+ <annotation cp="👨🏿❤👨🏿">hjerte | hudtype 6 | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👨🏿❤👨🏿" type="tts">par med hjerte: mann, mann, hudtype 6</annotation>
+ <annotation cp="👨🦰">mann | menneske | rødt hår | voksen</annotation>
+ <annotation cp="👨🦰" type="tts">mann: rødt hår</annotation>
+ <annotation cp="👨🏻🦰">hudtype 1–2 | mann | menneske | rødt hår | voksen</annotation>
+ <annotation cp="👨🏻🦰" type="tts">mann: hudtype 1–2, rødt hår</annotation>
+ <annotation cp="👨🏼🦰">hudtype 3 | mann | menneske | rødt hår | voksen</annotation>
+ <annotation cp="👨🏼🦰" type="tts">mann: hudtype 3, rødt hår</annotation>
+ <annotation cp="👨🏽🦰">hudtype 4 | mann | menneske | rødt hår | voksen</annotation>
+ <annotation cp="👨🏽🦰" type="tts">mann: hudtype 4, rødt hår</annotation>
+ <annotation cp="👨🏾🦰">hudtype 5 | mann | menneske | rødt hår | voksen</annotation>
+ <annotation cp="👨🏾🦰" type="tts">mann: hudtype 5, rødt hår</annotation>
+ <annotation cp="👨🏿🦰">hudtype 6 | mann | menneske | rødt hår | voksen</annotation>
+ <annotation cp="👨🏿🦰" type="tts">mann: hudtype 6, rødt hår</annotation>
+ <annotation cp="👨🦱">kruset hår | mann | menneske | voksen</annotation>
+ <annotation cp="👨🦱" type="tts">mann: kruset hår</annotation>
+ <annotation cp="👨🏻🦱">hudtype 1–2 | kruset hår | mann | menneske | voksen</annotation>
+ <annotation cp="👨🏻🦱" type="tts">mann: hudtype 1–2, kruset hår</annotation>
+ <annotation cp="👨🏼🦱">hudtype 3 | kruset hår | mann | menneske | voksen</annotation>
+ <annotation cp="👨🏼🦱" type="tts">mann: hudtype 3, kruset hår</annotation>
+ <annotation cp="👨🏽🦱">hudtype 4 | kruset hår | mann | menneske | voksen</annotation>
+ <annotation cp="👨🏽🦱" type="tts">mann: hudtype 4, kruset hår</annotation>
+ <annotation cp="👨🏾🦱">hudtype 5 | kruset hår | mann | menneske | voksen</annotation>
+ <annotation cp="👨🏾🦱" type="tts">mann: hudtype 5, kruset hår</annotation>
+ <annotation cp="👨🏿🦱">hudtype 6 | kruset hår | mann | menneske | voksen</annotation>
+ <annotation cp="👨🏿🦱" type="tts">mann: hudtype 6, kruset hår</annotation>
+ <annotation cp="👨🦳">grått hår | mann | menneske | voksen</annotation>
+ <annotation cp="👨🦳" type="tts">mann: grått hår</annotation>
+ <annotation cp="👨🏻🦳">grått hår | hudtype 1–2 | mann | menneske | voksen</annotation>
+ <annotation cp="👨🏻🦳" type="tts">mann: hudtype 1–2, grått hår</annotation>
+ <annotation cp="👨🏼🦳">grått hår | hudtype 3 | mann | menneske | voksen</annotation>
+ <annotation cp="👨🏼🦳" type="tts">mann: hudtype 3, grått hår</annotation>
+ <annotation cp="👨🏽🦳">grått hår | hudtype 4 | mann | menneske | voksen</annotation>
+ <annotation cp="👨🏽🦳" type="tts">mann: hudtype 4, grått hår</annotation>
+ <annotation cp="👨🏾🦳">grått hår | hudtype 5 | mann | menneske | voksen</annotation>
+ <annotation cp="👨🏾🦳" type="tts">mann: hudtype 5, grått hår</annotation>
+ <annotation cp="👨🏿🦳">grått hår | hudtype 6 | mann | menneske | voksen</annotation>
+ <annotation cp="👨🏿🦳" type="tts">mann: hudtype 6, grått hår</annotation>
+ <annotation cp="👨🦲">mann | menneske | skallet | voksen</annotation>
+ <annotation cp="👨🦲" type="tts">mann: skallet</annotation>
+ <annotation cp="👨🏻🦲">hudtype 1–2 | mann | menneske | skallet | voksen</annotation>
+ <annotation cp="👨🏻🦲" type="tts">mann: hudtype 1–2, skallet</annotation>
+ <annotation cp="👨🏼🦲">hudtype 3 | mann | menneske | skallet | voksen</annotation>
+ <annotation cp="👨🏼🦲" type="tts">mann: hudtype 3, skallet</annotation>
+ <annotation cp="👨🏽🦲">hudtype 4 | mann | menneske | skallet | voksen</annotation>
+ <annotation cp="👨🏽🦲" type="tts">mann: hudtype 4, skallet</annotation>
+ <annotation cp="👨🏾🦲">hudtype 5 | mann | menneske | skallet | voksen</annotation>
+ <annotation cp="👨🏾🦲" type="tts">mann: hudtype 5, skallet</annotation>
+ <annotation cp="👨🏿🦲">hudtype 6 | mann | menneske | skallet | voksen</annotation>
+ <annotation cp="👨🏿🦲" type="tts">mann: hudtype 6, skallet</annotation>
+ <annotation cp="👩🏻">hudtype 1–2 | kvinne | menneske | voksen</annotation>
+ <annotation cp="👩🏻" type="tts">kvinne: hudtype 1–2</annotation>
+ <annotation cp="👩🏼">hudtype 3 | kvinne | menneske | voksen</annotation>
+ <annotation cp="👩🏼" type="tts">kvinne: hudtype 3</annotation>
+ <annotation cp="👩🏽">hudtype 4 | kvinne | menneske | voksen</annotation>
+ <annotation cp="👩🏽" type="tts">kvinne: hudtype 4</annotation>
+ <annotation cp="👩🏾">hudtype 5 | kvinne | menneske | voksen</annotation>
+ <annotation cp="👩🏾" type="tts">kvinne: hudtype 5</annotation>
+ <annotation cp="👩🏿">hudtype 6 | kvinne | menneske | voksen</annotation>
+ <annotation cp="👩🏿" type="tts">kvinne: hudtype 6</annotation>
+ <annotation cp="🧔🏻♀">hudtype 1–2 | kvinne | kvinne: skjegg | skjegg</annotation>
+ <annotation cp="🧔🏻♀" type="tts">kvinne: hudtype 1–2, skjegg</annotation>
+ <annotation cp="🧔🏼♀">hudtype 3 | kvinne | kvinne: skjegg | skjegg</annotation>
+ <annotation cp="🧔🏼♀" type="tts">kvinne: hudtype 3, skjegg</annotation>
+ <annotation cp="🧔🏽♀">hudtype 4 | kvinne | kvinne: skjegg | skjegg</annotation>
+ <annotation cp="🧔🏽♀" type="tts">kvinne: hudtype 4, skjegg</annotation>
+ <annotation cp="🧔🏾♀">hudtype 5 | kvinne | kvinne: skjegg | skjegg</annotation>
+ <annotation cp="🧔🏾♀" type="tts">kvinne: hudtype 5, skjegg</annotation>
+ <annotation cp="🧔🏿♀">hudtype 6 | kvinne | kvinne: skjegg | skjegg</annotation>
+ <annotation cp="🧔🏿♀" type="tts">kvinne: hudtype 6, skjegg</annotation>
+ <annotation cp="👱🏻♀">blond | blondine | hår | hudtype 1–2 | kvinne | kvinne: blond</annotation>
+ <annotation cp="👱🏻♀" type="tts">kvinne: hudtype 1–2, blond</annotation>
+ <annotation cp="👱🏼♀">blond | blondine | hår | hudtype 3 | kvinne | kvinne: blond</annotation>
+ <annotation cp="👱🏼♀" type="tts">kvinne: hudtype 3, blond</annotation>
+ <annotation cp="👱🏽♀">blond | blondine | hår | hudtype 4 | kvinne | kvinne: blond</annotation>
+ <annotation cp="👱🏽♀" type="tts">kvinne: hudtype 4, blond</annotation>
+ <annotation cp="👱🏾♀">blond | blondine | hår | hudtype 5 | kvinne | kvinne: blond</annotation>
+ <annotation cp="👱🏾♀" type="tts">kvinne: hudtype 5, blond</annotation>
+ <annotation cp="👱🏿♀">blond | blondine | hår | hudtype 6 | kvinne | kvinne: blond</annotation>
+ <annotation cp="👱🏿♀" type="tts">kvinne: hudtype 6, blond</annotation>
+ <annotation cp="👩🏻❤💋👨🏻">hudtype 1–2 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👩🏻❤💋👨🏻" type="tts">kyss: kvinne, mann, hudtype 1–2</annotation>
+ <annotation cp="👩🏻❤💋👨🏼">hudtype 1–2 | hudtype 3 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👩🏻❤💋👨🏼" type="tts">kyss: kvinne, mann, hudtype 1–2, hudtype 3</annotation>
+ <annotation cp="👩🏻❤💋👨🏽">hudtype 1–2 | hudtype 4 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👩🏻❤💋👨🏽" type="tts">kyss: kvinne, mann, hudtype 1–2, hudtype 4</annotation>
+ <annotation cp="👩🏻❤💋👨🏾">hudtype 1–2 | hudtype 5 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👩🏻❤💋👨🏾" type="tts">kyss: kvinne, mann, hudtype 1–2, hudtype 5</annotation>
+ <annotation cp="👩🏻❤💋👨🏿">hudtype 1–2 | hudtype 6 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👩🏻❤💋👨🏿" type="tts">kyss: kvinne, mann, hudtype 1–2, hudtype 6</annotation>
+ <annotation cp="👩🏼❤💋👨🏻">hudtype 1–2 | hudtype 3 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👩🏼❤💋👨🏻" type="tts">kyss: kvinne, mann, hudtype 3, hudtype 1–2</annotation>
+ <annotation cp="👩🏼❤💋👨🏼">hudtype 3 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👩🏼❤💋👨🏼" type="tts">kyss: kvinne, mann, hudtype 3</annotation>
+ <annotation cp="👩🏼❤💋👨🏽">hudtype 3 | hudtype 4 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👩🏼❤💋👨🏽" type="tts">kyss: kvinne, mann, hudtype 3, hudtype 4</annotation>
+ <annotation cp="👩🏼❤💋👨🏾">hudtype 3 | hudtype 5 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👩🏼❤💋👨🏾" type="tts">kyss: kvinne, mann, hudtype 3, hudtype 5</annotation>
+ <annotation cp="👩🏼❤💋👨🏿">hudtype 3 | hudtype 6 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👩🏼❤💋👨🏿" type="tts">kyss: kvinne, mann, hudtype 3, hudtype 6</annotation>
+ <annotation cp="👩🏽❤💋👨🏻">hudtype 1–2 | hudtype 4 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👩🏽❤💋👨🏻" type="tts">kyss: kvinne, mann, hudtype 4, hudtype 1–2</annotation>
+ <annotation cp="👩🏽❤💋👨🏼">hudtype 3 | hudtype 4 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👩🏽❤💋👨🏼" type="tts">kyss: kvinne, mann, hudtype 4, hudtype 3</annotation>
+ <annotation cp="👩🏽❤💋👨🏽">hudtype 4 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👩🏽❤💋👨🏽" type="tts">kyss: kvinne, mann, hudtype 4</annotation>
+ <annotation cp="👩🏽❤💋👨🏾">hudtype 4 | hudtype 5 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👩🏽❤💋👨🏾" type="tts">kyss: kvinne, mann, hudtype 4, hudtype 5</annotation>
+ <annotation cp="👩🏽❤💋👨🏿">hudtype 4 | hudtype 6 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👩🏽❤💋👨🏿" type="tts">kyss: kvinne, mann, hudtype 4, hudtype 6</annotation>
+ <annotation cp="👩🏾❤💋👨🏻">hudtype 1–2 | hudtype 5 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👩🏾❤💋👨🏻" type="tts">kyss: kvinne, mann, hudtype 5, hudtype 1–2</annotation>
+ <annotation cp="👩🏾❤💋👨🏼">hudtype 3 | hudtype 5 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👩🏾❤💋👨🏼" type="tts">kyss: kvinne, mann, hudtype 5, hudtype 3</annotation>
+ <annotation cp="👩🏾❤💋👨🏽">hudtype 4 | hudtype 5 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👩🏾❤💋👨🏽" type="tts">kyss: kvinne, mann, hudtype 5, hudtype 4</annotation>
+ <annotation cp="👩🏾❤💋👨🏾">hudtype 5 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👩🏾❤💋👨🏾" type="tts">kyss: kvinne, mann, hudtype 5</annotation>
+ <annotation cp="👩🏾❤💋👨🏿">hudtype 5 | hudtype 6 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👩🏾❤💋👨🏿" type="tts">kyss: kvinne, mann, hudtype 5, hudtype 6</annotation>
+ <annotation cp="👩🏿❤💋👨🏻">hudtype 1–2 | hudtype 6 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👩🏿❤💋👨🏻" type="tts">kyss: kvinne, mann, hudtype 6, hudtype 1–2</annotation>
+ <annotation cp="👩🏿❤💋👨🏼">hudtype 3 | hudtype 6 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👩🏿❤💋👨🏼" type="tts">kyss: kvinne, mann, hudtype 6, hudtype 3</annotation>
+ <annotation cp="👩🏿❤💋👨🏽">hudtype 4 | hudtype 6 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👩🏿❤💋👨🏽" type="tts">kyss: kvinne, mann, hudtype 6, hudtype 4</annotation>
+ <annotation cp="👩🏿❤💋👨🏾">hudtype 5 | hudtype 6 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👩🏿❤💋👨🏾" type="tts">kyss: kvinne, mann, hudtype 6, hudtype 5</annotation>
+ <annotation cp="👩🏿❤💋👨🏿">hudtype 6 | kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👩🏿❤💋👨🏿" type="tts">kyss: kvinne, mann, hudtype 6</annotation>
+ <annotation cp="👩🏻❤💋👩🏻">hudtype 1–2 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="👩🏻❤💋👩🏻" type="tts">kyss: kvinne, kvinne, hudtype 1–2</annotation>
+ <annotation cp="👩🏻❤💋👩🏼">hudtype 1–2 | hudtype 3 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="👩🏻❤💋👩🏼" type="tts">kyss: kvinne, kvinne, hudtype 1–2, hudtype 3</annotation>
+ <annotation cp="👩🏻❤💋👩🏽">hudtype 1–2 | hudtype 4 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="👩🏻❤💋👩🏽" type="tts">kyss: kvinne, kvinne, hudtype 1–2, hudtype 4</annotation>
+ <annotation cp="👩🏻❤💋👩🏾">hudtype 1–2 | hudtype 5 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="👩🏻❤💋👩🏾" type="tts">kyss: kvinne, kvinne, hudtype 1–2, hudtype 5</annotation>
+ <annotation cp="👩🏻❤💋👩🏿">hudtype 1–2 | hudtype 6 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="👩🏻❤💋👩🏿" type="tts">kyss: kvinne, kvinne, hudtype 1–2, hudtype 6</annotation>
+ <annotation cp="👩🏼❤💋👩🏻">hudtype 1–2 | hudtype 3 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="👩🏼❤💋👩🏻" type="tts">kyss: kvinne, kvinne, hudtype 3, hudtype 1–2</annotation>
+ <annotation cp="👩🏼❤💋👩🏼">hudtype 3 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="👩🏼❤💋👩🏼" type="tts">kyss: kvinne, kvinne, hudtype 3</annotation>
+ <annotation cp="👩🏼❤💋👩🏽">hudtype 3 | hudtype 4 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="👩🏼❤💋👩🏽" type="tts">kyss: kvinne, kvinne, hudtype 3, hudtype 4</annotation>
+ <annotation cp="👩🏼❤💋👩🏾">hudtype 3 | hudtype 5 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="👩🏼❤💋👩🏾" type="tts">kyss: kvinne, kvinne, hudtype 3, hudtype 5</annotation>
+ <annotation cp="👩🏼❤💋👩🏿">hudtype 3 | hudtype 6 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="👩🏼❤💋👩🏿" type="tts">kyss: kvinne, kvinne, hudtype 3, hudtype 6</annotation>
+ <annotation cp="👩🏽❤💋👩🏻">hudtype 1–2 | hudtype 4 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="👩🏽❤💋👩🏻" type="tts">kyss: kvinne, kvinne, hudtype 4, hudtype 1–2</annotation>
+ <annotation cp="👩🏽❤💋👩🏼">hudtype 3 | hudtype 4 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="👩🏽❤💋👩🏼" type="tts">kyss: kvinne, kvinne, hudtype 4, hudtype 3</annotation>
+ <annotation cp="👩🏽❤💋👩🏽">hudtype 4 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="👩🏽❤💋👩🏽" type="tts">kyss: kvinne, kvinne, hudtype 4</annotation>
+ <annotation cp="👩🏽❤💋👩🏾">hudtype 4 | hudtype 5 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="👩🏽❤💋👩🏾" type="tts">kyss: kvinne, kvinne, hudtype 4, hudtype 5</annotation>
+ <annotation cp="👩🏽❤💋👩🏿">hudtype 4 | hudtype 6 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="👩🏽❤💋👩🏿" type="tts">kyss: kvinne, kvinne, hudtype 4, hudtype 6</annotation>
+ <annotation cp="👩🏾❤💋👩🏻">hudtype 1–2 | hudtype 5 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="👩🏾❤💋👩🏻" type="tts">kyss: kvinne, kvinne, hudtype 5, hudtype 1–2</annotation>
+ <annotation cp="👩🏾❤💋👩🏼">hudtype 3 | hudtype 5 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="👩🏾❤💋👩🏼" type="tts">kyss: kvinne, kvinne, hudtype 5, hudtype 3</annotation>
+ <annotation cp="👩🏾❤💋👩🏽">hudtype 4 | hudtype 5 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="👩🏾❤💋👩🏽" type="tts">kyss: kvinne, kvinne, hudtype 5, hudtype 4</annotation>
+ <annotation cp="👩🏾❤💋👩🏾">hudtype 5 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="👩🏾❤💋👩🏾" type="tts">kyss: kvinne, kvinne, hudtype 5</annotation>
+ <annotation cp="👩🏾❤💋👩🏿">hudtype 5 | hudtype 6 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="👩🏾❤💋👩🏿" type="tts">kyss: kvinne, kvinne, hudtype 5, hudtype 6</annotation>
+ <annotation cp="👩🏿❤💋👩🏻">hudtype 1–2 | hudtype 6 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="👩🏿❤💋👩🏻" type="tts">kyss: kvinne, kvinne, hudtype 6, hudtype 1–2</annotation>
+ <annotation cp="👩🏿❤💋👩🏼">hudtype 3 | hudtype 6 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="👩🏿❤💋👩🏼" type="tts">kyss: kvinne, kvinne, hudtype 6, hudtype 3</annotation>
+ <annotation cp="👩🏿❤💋👩🏽">hudtype 4 | hudtype 6 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="👩🏿❤💋👩🏽" type="tts">kyss: kvinne, kvinne, hudtype 6, hudtype 4</annotation>
+ <annotation cp="👩🏿❤💋👩🏾">hudtype 5 | hudtype 6 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="👩🏿❤💋👩🏾" type="tts">kyss: kvinne, kvinne, hudtype 6, hudtype 5</annotation>
+ <annotation cp="👩🏿❤💋👩🏿">hudtype 6 | kvinne | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="👩🏿❤💋👩🏿" type="tts">kyss: kvinne, kvinne, hudtype 6</annotation>
+ <annotation cp="👩🏻❤👨🏻">hjerte | hudtype 1–2 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏻❤👨🏻" type="tts">par med hjerte: kvinne, mann, hudtype 1–2</annotation>
+ <annotation cp="👩🏻❤👨🏼">hjerte | hudtype 1–2 | hudtype 3 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏻❤👨🏼" type="tts">par med hjerte: kvinne, mann, hudtype 1–2, hudtype 3</annotation>
+ <annotation cp="👩🏻❤👨🏽">hjerte | hudtype 1–2 | hudtype 4 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏻❤👨🏽" type="tts">par med hjerte: kvinne, mann, hudtype 1–2, hudtype 4</annotation>
+ <annotation cp="👩🏻❤👨🏾">hjerte | hudtype 1–2 | hudtype 5 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏻❤👨🏾" type="tts">par med hjerte: kvinne, mann, hudtype 1–2, hudtype 5</annotation>
+ <annotation cp="👩🏻❤👨🏿">hjerte | hudtype 1–2 | hudtype 6 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏻❤👨🏿" type="tts">par med hjerte: kvinne, mann, hudtype 1–2, hudtype 6</annotation>
+ <annotation cp="👩🏼❤👨🏻">hjerte | hudtype 1–2 | hudtype 3 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏼❤👨🏻" type="tts">par med hjerte: kvinne, mann, hudtype 3, hudtype 1–2</annotation>
+ <annotation cp="👩🏼❤👨🏼">hjerte | hudtype 3 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏼❤👨🏼" type="tts">par med hjerte: kvinne, mann, hudtype 3</annotation>
+ <annotation cp="👩🏼❤👨🏽">hjerte | hudtype 3 | hudtype 4 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏼❤👨🏽" type="tts">par med hjerte: kvinne, mann, hudtype 3, hudtype 4</annotation>
+ <annotation cp="👩🏼❤👨🏾">hjerte | hudtype 3 | hudtype 5 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏼❤👨🏾" type="tts">par med hjerte: kvinne, mann, hudtype 3, hudtype 5</annotation>
+ <annotation cp="👩🏼❤👨🏿">hjerte | hudtype 3 | hudtype 6 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏼❤👨🏿" type="tts">par med hjerte: kvinne, mann, hudtype 3, hudtype 6</annotation>
+ <annotation cp="👩🏽❤👨🏻">hjerte | hudtype 1–2 | hudtype 4 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏽❤👨🏻" type="tts">par med hjerte: kvinne, mann, hudtype 4, hudtype 1–2</annotation>
+ <annotation cp="👩🏽❤👨🏼">hjerte | hudtype 3 | hudtype 4 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏽❤👨🏼" type="tts">par med hjerte: kvinne, mann, hudtype 4, hudtype 3</annotation>
+ <annotation cp="👩🏽❤👨🏽">hjerte | hudtype 4 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏽❤👨🏽" type="tts">par med hjerte: kvinne, mann, hudtype 4</annotation>
+ <annotation cp="👩🏽❤👨🏾">hjerte | hudtype 4 | hudtype 5 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏽❤👨🏾" type="tts">par med hjerte: kvinne, mann, hudtype 4, hudtype 5</annotation>
+ <annotation cp="👩🏽❤👨🏿">hjerte | hudtype 4 | hudtype 6 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏽❤👨🏿" type="tts">par med hjerte: kvinne, mann, hudtype 4, hudtype 6</annotation>
+ <annotation cp="👩🏾❤👨🏻">hjerte | hudtype 1–2 | hudtype 5 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏾❤👨🏻" type="tts">par med hjerte: kvinne, mann, hudtype 5, hudtype 1–2</annotation>
+ <annotation cp="👩🏾❤👨🏼">hjerte | hudtype 3 | hudtype 5 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏾❤👨🏼" type="tts">par med hjerte: kvinne, mann, hudtype 5, hudtype 3</annotation>
+ <annotation cp="👩🏾❤👨🏽">hjerte | hudtype 4 | hudtype 5 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏾❤👨🏽" type="tts">par med hjerte: kvinne, mann, hudtype 5, hudtype 4</annotation>
+ <annotation cp="👩🏾❤👨🏾">hjerte | hudtype 5 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏾❤👨🏾" type="tts">par med hjerte: kvinne, mann, hudtype 5</annotation>
+ <annotation cp="👩🏾❤👨🏿">hjerte | hudtype 5 | hudtype 6 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏾❤👨🏿" type="tts">par med hjerte: kvinne, mann, hudtype 5, hudtype 6</annotation>
+ <annotation cp="👩🏿❤👨🏻">hjerte | hudtype 1–2 | hudtype 6 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏿❤👨🏻" type="tts">par med hjerte: kvinne, mann, hudtype 6, hudtype 1–2</annotation>
+ <annotation cp="👩🏿❤👨🏼">hjerte | hudtype 3 | hudtype 6 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏿❤👨🏼" type="tts">par med hjerte: kvinne, mann, hudtype 6, hudtype 3</annotation>
+ <annotation cp="👩🏿❤👨🏽">hjerte | hudtype 4 | hudtype 6 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏿❤👨🏽" type="tts">par med hjerte: kvinne, mann, hudtype 6, hudtype 4</annotation>
+ <annotation cp="👩🏿❤👨🏾">hjerte | hudtype 5 | hudtype 6 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏿❤👨🏾" type="tts">par med hjerte: kvinne, mann, hudtype 6, hudtype 5</annotation>
+ <annotation cp="👩🏿❤👨🏿">hjerte | hudtype 6 | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏿❤👨🏿" type="tts">par med hjerte: kvinne, mann, hudtype 6</annotation>
+ <annotation cp="👩🏻❤👩🏻">hjerte | hudtype 1–2 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏻❤👩🏻" type="tts">par med hjerte: kvinne, kvinne, hudtype 1–2</annotation>
+ <annotation cp="👩🏻❤👩🏼">hjerte | hudtype 1–2 | hudtype 3 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏻❤👩🏼" type="tts">par med hjerte: kvinne, kvinne, hudtype 1–2, hudtype 3</annotation>
+ <annotation cp="👩🏻❤👩🏽">hjerte | hudtype 1–2 | hudtype 4 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏻❤👩🏽" type="tts">par med hjerte: kvinne, kvinne, hudtype 1–2, hudtype 4</annotation>
+ <annotation cp="👩🏻❤👩🏾">hjerte | hudtype 1–2 | hudtype 5 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏻❤👩🏾" type="tts">par med hjerte: kvinne, kvinne, hudtype 1–2, hudtype 5</annotation>
+ <annotation cp="👩🏻❤👩🏿">hjerte | hudtype 1–2 | hudtype 6 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏻❤👩🏿" type="tts">par med hjerte: kvinne, kvinne, hudtype 1–2, hudtype 6</annotation>
+ <annotation cp="👩🏼❤👩🏻">hjerte | hudtype 1–2 | hudtype 3 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏼❤👩🏻" type="tts">par med hjerte: kvinne, kvinne, hudtype 3, hudtype 1–2</annotation>
+ <annotation cp="👩🏼❤👩🏼">hjerte | hudtype 3 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏼❤👩🏼" type="tts">par med hjerte: kvinne, kvinne, hudtype 3</annotation>
+ <annotation cp="👩🏼❤👩🏽">hjerte | hudtype 3 | hudtype 4 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏼❤👩🏽" type="tts">par med hjerte: kvinne, kvinne, hudtype 3, hudtype 4</annotation>
+ <annotation cp="👩🏼❤👩🏾">hjerte | hudtype 3 | hudtype 5 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏼❤👩🏾" type="tts">par med hjerte: kvinne, kvinne, hudtype 3, hudtype 5</annotation>
+ <annotation cp="👩🏼❤👩🏿">hjerte | hudtype 3 | hudtype 6 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏼❤👩🏿" type="tts">par med hjerte: kvinne, kvinne, hudtype 3, hudtype 6</annotation>
+ <annotation cp="👩🏽❤👩🏻">hjerte | hudtype 1–2 | hudtype 4 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏽❤👩🏻" type="tts">par med hjerte: kvinne, kvinne, hudtype 4, hudtype 1–2</annotation>
+ <annotation cp="👩🏽❤👩🏼">hjerte | hudtype 3 | hudtype 4 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏽❤👩🏼" type="tts">par med hjerte: kvinne, kvinne, hudtype 4, hudtype 3</annotation>
+ <annotation cp="👩🏽❤👩🏽">hjerte | hudtype 4 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏽❤👩🏽" type="tts">par med hjerte: kvinne, kvinne, hudtype 4</annotation>
+ <annotation cp="👩🏽❤👩🏾">hjerte | hudtype 4 | hudtype 5 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏽❤👩🏾" type="tts">par med hjerte: kvinne, kvinne, hudtype 4, hudtype 5</annotation>
+ <annotation cp="👩🏽❤👩🏿">hjerte | hudtype 4 | hudtype 6 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏽❤👩🏿" type="tts">par med hjerte: kvinne, kvinne, hudtype 4, hudtype 6</annotation>
+ <annotation cp="👩🏾❤👩🏻">hjerte | hudtype 1–2 | hudtype 5 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏾❤👩🏻" type="tts">par med hjerte: kvinne, kvinne, hudtype 5, hudtype 1–2</annotation>
+ <annotation cp="👩🏾❤👩🏼">hjerte | hudtype 3 | hudtype 5 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏾❤👩🏼" type="tts">par med hjerte: kvinne, kvinne, hudtype 5, hudtype 3</annotation>
+ <annotation cp="👩🏾❤👩🏽">hjerte | hudtype 4 | hudtype 5 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏾❤👩🏽" type="tts">par med hjerte: kvinne, kvinne, hudtype 5, hudtype 4</annotation>
+ <annotation cp="👩🏾❤👩🏾">hjerte | hudtype 5 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏾❤👩🏾" type="tts">par med hjerte: kvinne, kvinne, hudtype 5</annotation>
+ <annotation cp="👩🏾❤👩🏿">hjerte | hudtype 5 | hudtype 6 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏾❤👩🏿" type="tts">par med hjerte: kvinne, kvinne, hudtype 5, hudtype 6</annotation>
+ <annotation cp="👩🏿❤👩🏻">hjerte | hudtype 1–2 | hudtype 6 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏿❤👩🏻" type="tts">par med hjerte: kvinne, kvinne, hudtype 6, hudtype 1–2</annotation>
+ <annotation cp="👩🏿❤👩🏼">hjerte | hudtype 3 | hudtype 6 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏿❤👩🏼" type="tts">par med hjerte: kvinne, kvinne, hudtype 6, hudtype 3</annotation>
+ <annotation cp="👩🏿❤👩🏽">hjerte | hudtype 4 | hudtype 6 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏿❤👩🏽" type="tts">par med hjerte: kvinne, kvinne, hudtype 6, hudtype 4</annotation>
+ <annotation cp="👩🏿❤👩🏾">hjerte | hudtype 5 | hudtype 6 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏿❤👩🏾" type="tts">par med hjerte: kvinne, kvinne, hudtype 6, hudtype 5</annotation>
+ <annotation cp="👩🏿❤👩🏿">hjerte | hudtype 6 | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩🏿❤👩🏿" type="tts">par med hjerte: kvinne, kvinne, hudtype 6</annotation>
+ <annotation cp="👩🦰">kvinne | menneske | rødt hår | voksen</annotation>
+ <annotation cp="👩🦰" type="tts">kvinne: rødt hår</annotation>
+ <annotation cp="👩🏻🦰">hudtype 1–2 | kvinne | menneske | rødt hår | voksen</annotation>
+ <annotation cp="👩🏻🦰" type="tts">kvinne: hudtype 1–2, rødt hår</annotation>
+ <annotation cp="👩🏼🦰">hudtype 3 | kvinne | menneske | rødt hår | voksen</annotation>
+ <annotation cp="👩🏼🦰" type="tts">kvinne: hudtype 3, rødt hår</annotation>
+ <annotation cp="👩🏽🦰">hudtype 4 | kvinne | menneske | rødt hår | voksen</annotation>
+ <annotation cp="👩🏽🦰" type="tts">kvinne: hudtype 4, rødt hår</annotation>
+ <annotation cp="👩🏾🦰">hudtype 5 | kvinne | menneske | rødt hår | voksen</annotation>
+ <annotation cp="👩🏾🦰" type="tts">kvinne: hudtype 5, rødt hår</annotation>
+ <annotation cp="👩🏿🦰">hudtype 6 | kvinne | menneske | rødt hår | voksen</annotation>
+ <annotation cp="👩🏿🦰" type="tts">kvinne: hudtype 6, rødt hår</annotation>
+ <annotation cp="👩🦱">kruset hår | kvinne | menneske | voksen</annotation>
+ <annotation cp="👩🦱" type="tts">kvinne: kruset hår</annotation>
+ <annotation cp="👩🏻🦱">hudtype 1–2 | kruset hår | kvinne | menneske | voksen</annotation>
+ <annotation cp="👩🏻🦱" type="tts">kvinne: hudtype 1–2, kruset hår</annotation>
+ <annotation cp="👩🏼🦱">hudtype 3 | kruset hår | kvinne | menneske | voksen</annotation>
+ <annotation cp="👩🏼🦱" type="tts">kvinne: hudtype 3, kruset hår</annotation>
+ <annotation cp="👩🏽🦱">hudtype 4 | kruset hår | kvinne | menneske | voksen</annotation>
+ <annotation cp="👩🏽🦱" type="tts">kvinne: hudtype 4, kruset hår</annotation>
+ <annotation cp="👩🏾🦱">hudtype 5 | kruset hår | kvinne | menneske | voksen</annotation>
+ <annotation cp="👩🏾🦱" type="tts">kvinne: hudtype 5, kruset hår</annotation>
+ <annotation cp="👩🏿🦱">hudtype 6 | kruset hår | kvinne | menneske | voksen</annotation>
+ <annotation cp="👩🏿🦱" type="tts">kvinne: hudtype 6, kruset hår</annotation>
+ <annotation cp="👩🦳">grått hår | kvinne | menneske | voksen</annotation>
+ <annotation cp="👩🦳" type="tts">kvinne: grått hår</annotation>
+ <annotation cp="👩🏻🦳">grått hår | hudtype 1–2 | kvinne | menneske | voksen</annotation>
+ <annotation cp="👩🏻🦳" type="tts">kvinne: hudtype 1–2, grått hår</annotation>
+ <annotation cp="👩🏼🦳">grått hår | hudtype 3 | kvinne | menneske | voksen</annotation>
+ <annotation cp="👩🏼🦳" type="tts">kvinne: hudtype 3, grått hår</annotation>
+ <annotation cp="👩🏽🦳">grått hår | hudtype 4 | kvinne | menneske | voksen</annotation>
+ <annotation cp="👩🏽🦳" type="tts">kvinne: hudtype 4, grått hår</annotation>
+ <annotation cp="👩🏾🦳">grått hår | hudtype 5 | kvinne | menneske | voksen</annotation>
+ <annotation cp="👩🏾🦳" type="tts">kvinne: hudtype 5, grått hår</annotation>
+ <annotation cp="👩🏿🦳">grått hår | hudtype 6 | kvinne | menneske | voksen</annotation>
+ <annotation cp="👩🏿🦳" type="tts">kvinne: hudtype 6, grått hår</annotation>
+ <annotation cp="👩🦲">kvinne | menneske | skallet | voksen</annotation>
+ <annotation cp="👩🦲" type="tts">kvinne: skallet</annotation>
+ <annotation cp="👩🏻🦲">hudtype 1–2 | kvinne | menneske | skallet | voksen</annotation>
+ <annotation cp="👩🏻🦲" type="tts">kvinne: hudtype 1–2, skallet</annotation>
+ <annotation cp="👩🏼🦲">hudtype 3 | kvinne | menneske | skallet | voksen</annotation>
+ <annotation cp="👩🏼🦲" type="tts">kvinne: hudtype 3, skallet</annotation>
+ <annotation cp="👩🏽🦲">hudtype 4 | kvinne | menneske | skallet | voksen</annotation>
+ <annotation cp="👩🏽🦲" type="tts">kvinne: hudtype 4, skallet</annotation>
+ <annotation cp="👩🏾🦲">hudtype 5 | kvinne | menneske | skallet | voksen</annotation>
+ <annotation cp="👩🏾🦲" type="tts">kvinne: hudtype 5, skallet</annotation>
+ <annotation cp="👩🏿🦲">hudtype 6 | kvinne | menneske | skallet | voksen</annotation>
+ <annotation cp="👩🏿🦲" type="tts">kvinne: hudtype 6, skallet</annotation>
+ <annotation cp="🧓🏻">eldre voksen | gammel | hudtype 1–2 | kjønnsnøytral | menneske | voksen</annotation>
+ <annotation cp="🧓🏻" type="tts">eldre voksen: hudtype 1–2</annotation>
+ <annotation cp="🧓🏼">eldre voksen | gammel | hudtype 3 | kjønnsnøytral | menneske | voksen</annotation>
+ <annotation cp="🧓🏼" type="tts">eldre voksen: hudtype 3</annotation>
+ <annotation cp="🧓🏽">eldre voksen | gammel | hudtype 4 | kjønnsnøytral | menneske | voksen</annotation>
+ <annotation cp="🧓🏽" type="tts">eldre voksen: hudtype 4</annotation>
+ <annotation cp="🧓🏾">eldre voksen | gammel | hudtype 5 | kjønnsnøytral | menneske | voksen</annotation>
+ <annotation cp="🧓🏾" type="tts">eldre voksen: hudtype 5</annotation>
+ <annotation cp="🧓🏿">eldre voksen | gammel | hudtype 6 | kjønnsnøytral | menneske | voksen</annotation>
+ <annotation cp="🧓🏿" type="tts">eldre voksen: hudtype 6</annotation>
+ <annotation cp="👴🏻">eldre | hudtype 1–2 | mann | menneske</annotation>
+ <annotation cp="👴🏻" type="tts">eldre mann: hudtype 1–2</annotation>
+ <annotation cp="👴🏼">eldre | hudtype 3 | mann | menneske</annotation>
+ <annotation cp="👴🏼" type="tts">eldre mann: hudtype 3</annotation>
+ <annotation cp="👴🏽">eldre | hudtype 4 | mann | menneske</annotation>
+ <annotation cp="👴🏽" type="tts">eldre mann: hudtype 4</annotation>
+ <annotation cp="👴🏾">eldre | hudtype 5 | mann | menneske</annotation>
+ <annotation cp="👴🏾" type="tts">eldre mann: hudtype 5</annotation>
+ <annotation cp="👴🏿">eldre | hudtype 6 | mann | menneske</annotation>
+ <annotation cp="👴🏿" type="tts">eldre mann: hudtype 6</annotation>
+ <annotation cp="👵🏻">eldre | hudtype 1–2 | kvinne | menneske</annotation>
+ <annotation cp="👵🏻" type="tts">eldre kvinne: hudtype 1–2</annotation>
+ <annotation cp="👵🏼">eldre | hudtype 3 | kvinne | menneske</annotation>
+ <annotation cp="👵🏼" type="tts">eldre kvinne: hudtype 3</annotation>
+ <annotation cp="👵🏽">eldre | hudtype 4 | kvinne | menneske</annotation>
+ <annotation cp="👵🏽" type="tts">eldre kvinne: hudtype 4</annotation>
+ <annotation cp="👵🏾">eldre | hudtype 5 | kvinne | menneske</annotation>
+ <annotation cp="👵🏾" type="tts">eldre kvinne: hudtype 5</annotation>
+ <annotation cp="👵🏿">eldre | hudtype 6 | kvinne | menneske</annotation>
+ <annotation cp="👵🏿" type="tts">eldre kvinne: hudtype 6</annotation>
+ <annotation cp="🙍🏻">hudtype 1–2 | mimikk | rynker brynene | rynker pannen</annotation>
+ <annotation cp="🙍🏻" type="tts">rynker brynene: hudtype 1–2</annotation>
+ <annotation cp="🙍🏼">hudtype 3 | mimikk | rynker brynene | rynker pannen</annotation>
+ <annotation cp="🙍🏼" type="tts">rynker brynene: hudtype 3</annotation>
+ <annotation cp="🙍🏽">hudtype 4 | mimikk | rynker brynene | rynker pannen</annotation>
+ <annotation cp="🙍🏽" type="tts">rynker brynene: hudtype 4</annotation>
+ <annotation cp="🙍🏾">hudtype 5 | mimikk | rynker brynene | rynker pannen</annotation>
+ <annotation cp="🙍🏾" type="tts">rynker brynene: hudtype 5</annotation>
+ <annotation cp="🙍🏿">hudtype 6 | mimikk | rynker brynene | rynker pannen</annotation>
+ <annotation cp="🙍🏿" type="tts">rynker brynene: hudtype 6</annotation>
+ <annotation cp="🙍🏻♂">hudtype 1–2 | mann | mann som rynker brynene | mimikk | rynker pannen | skeptisk</annotation>
+ <annotation cp="🙍🏻♂" type="tts">mann som rynker brynene: hudtype 1–2</annotation>
+ <annotation cp="🙍🏼♂">hudtype 3 | mann | mann som rynker brynene | mimikk | rynker pannen | skeptisk</annotation>
+ <annotation cp="🙍🏼♂" type="tts">mann som rynker brynene: hudtype 3</annotation>
+ <annotation cp="🙍🏽♂">hudtype 4 | mann | mann som rynker brynene | mimikk | rynker pannen | skeptisk</annotation>
+ <annotation cp="🙍🏽♂" type="tts">mann som rynker brynene: hudtype 4</annotation>
+ <annotation cp="🙍🏾♂">hudtype 5 | mann | mann som rynker brynene | mimikk | rynker pannen | skeptisk</annotation>
+ <annotation cp="🙍🏾♂" type="tts">mann som rynker brynene: hudtype 5</annotation>
+ <annotation cp="🙍🏿♂">hudtype 6 | mann | mann som rynker brynene | mimikk | rynker pannen | skeptisk</annotation>
+ <annotation cp="🙍🏿♂" type="tts">mann som rynker brynene: hudtype 6</annotation>
+ <annotation cp="🙍🏻♀">hudtype 1–2 | kvinne | kvinne som rynker brynene | mimikk | rynker pannen | skeptisk</annotation>
+ <annotation cp="🙍🏻♀" type="tts">kvinne som rynker brynene: hudtype 1–2</annotation>
+ <annotation cp="🙍🏼♀">hudtype 3 | kvinne | kvinne som rynker brynene | mimikk | rynker pannen | skeptisk</annotation>
+ <annotation cp="🙍🏼♀" type="tts">kvinne som rynker brynene: hudtype 3</annotation>
+ <annotation cp="🙍🏽♀">hudtype 4 | kvinne | kvinne som rynker brynene | mimikk | rynker pannen | skeptisk</annotation>
+ <annotation cp="🙍🏽♀" type="tts">kvinne som rynker brynene: hudtype 4</annotation>
+ <annotation cp="🙍🏾♀">hudtype 5 | kvinne | kvinne som rynker brynene | mimikk | rynker pannen | skeptisk</annotation>
+ <annotation cp="🙍🏾♀" type="tts">kvinne som rynker brynene: hudtype 5</annotation>
+ <annotation cp="🙍🏿♀">hudtype 6 | kvinne | kvinne som rynker brynene | mimikk | rynker pannen | skeptisk</annotation>
+ <annotation cp="🙍🏿♀" type="tts">kvinne som rynker brynene: hudtype 6</annotation>
+ <annotation cp="🙎🏻">furter | furting | hudtype 1–2 | mimikk | surmuling</annotation>
+ <annotation cp="🙎🏻" type="tts">furter: hudtype 1–2</annotation>
+ <annotation cp="🙎🏼">furter | furting | hudtype 3 | mimikk | surmuling</annotation>
+ <annotation cp="🙎🏼" type="tts">furter: hudtype 3</annotation>
+ <annotation cp="🙎🏽">furter | furting | hudtype 4 | mimikk | surmuling</annotation>
+ <annotation cp="🙎🏽" type="tts">furter: hudtype 4</annotation>
+ <annotation cp="🙎🏾">furter | furting | hudtype 5 | mimikk | surmuling</annotation>
+ <annotation cp="🙎🏾" type="tts">furter: hudtype 5</annotation>
+ <annotation cp="🙎🏿">furter | furting | hudtype 6 | mimikk | surmuling</annotation>
+ <annotation cp="🙎🏿" type="tts">furter: hudtype 6</annotation>
+ <annotation cp="🙎🏻♂">furting | hudtype 1–2 | mann | mann som furter | mimikk | surmuling</annotation>
+ <annotation cp="🙎🏻♂" type="tts">mann som furter: hudtype 1–2</annotation>
+ <annotation cp="🙎🏼♂">furting | hudtype 3 | mann | mann som furter | mimikk | surmuling</annotation>
+ <annotation cp="🙎🏼♂" type="tts">mann som furter: hudtype 3</annotation>
+ <annotation cp="🙎🏽♂">furting | hudtype 4 | mann | mann som furter | mimikk | surmuling</annotation>
+ <annotation cp="🙎🏽♂" type="tts">mann som furter: hudtype 4</annotation>
+ <annotation cp="🙎🏾♂">furting | hudtype 5 | mann | mann som furter | mimikk | surmuling</annotation>
+ <annotation cp="🙎🏾♂" type="tts">mann som furter: hudtype 5</annotation>
+ <annotation cp="🙎🏿♂">furting | hudtype 6 | mann | mann som furter | mimikk | surmuling</annotation>
+ <annotation cp="🙎🏿♂" type="tts">mann som furter: hudtype 6</annotation>
+ <annotation cp="🙎🏻♀">furting | hudtype 1–2 | kvinne | kvinne som furter | mimikk | surmuling</annotation>
+ <annotation cp="🙎🏻♀" type="tts">kvinne som furter: hudtype 1–2</annotation>
+ <annotation cp="🙎🏼♀">furting | hudtype 3 | kvinne | kvinne som furter | mimikk | surmuling</annotation>
+ <annotation cp="🙎🏼♀" type="tts">kvinne som furter: hudtype 3</annotation>
+ <annotation cp="🙎🏽♀">furting | hudtype 4 | kvinne | kvinne som furter | mimikk | surmuling</annotation>
+ <annotation cp="🙎🏽♀" type="tts">kvinne som furter: hudtype 4</annotation>
+ <annotation cp="🙎🏾♀">furting | hudtype 5 | kvinne | kvinne som furter | mimikk | surmuling</annotation>
+ <annotation cp="🙎🏾♀" type="tts">kvinne som furter: hudtype 5</annotation>
+ <annotation cp="🙎🏿♀">furting | hudtype 6 | kvinne | kvinne som furter | mimikk | surmuling</annotation>
+ <annotation cp="🙎🏿♀" type="tts">kvinne som furter: hudtype 6</annotation>
+ <annotation cp="🙅🏻">forbudt | gestikulerer NEI | hudtype 1–2 | ikke | mimikk | nei</annotation>
+ <annotation cp="🙅🏻" type="tts">gestikulerer NEI: hudtype 1–2</annotation>
+ <annotation cp="🙅🏼">forbudt | gestikulerer NEI | hudtype 3 | ikke | mimikk | nei</annotation>
+ <annotation cp="🙅🏼" type="tts">gestikulerer NEI: hudtype 3</annotation>
+ <annotation cp="🙅🏽">forbudt | gestikulerer NEI | hudtype 4 | ikke | mimikk | nei</annotation>
+ <annotation cp="🙅🏽" type="tts">gestikulerer NEI: hudtype 4</annotation>
+ <annotation cp="🙅🏾">forbudt | gestikulerer NEI | hudtype 5 | ikke | mimikk | nei</annotation>
+ <annotation cp="🙅🏾" type="tts">gestikulerer NEI: hudtype 5</annotation>
+ <annotation cp="🙅🏿">forbudt | gestikulerer NEI | hudtype 6 | ikke | mimikk | nei</annotation>
+ <annotation cp="🙅🏿" type="tts">gestikulerer NEI: hudtype 6</annotation>
+ <annotation cp="🙅🏻♂">avbryt | forbudt | hudtype 1–2 | mann | mann som gestikulerer NEI | nei | stopp</annotation>
+ <annotation cp="🙅🏻♂" type="tts">mann som gestikulerer NEI: hudtype 1–2</annotation>
+ <annotation cp="🙅🏼♂">avbryt | forbudt | hudtype 3 | mann | mann som gestikulerer NEI | nei | stopp</annotation>
+ <annotation cp="🙅🏼♂" type="tts">mann som gestikulerer NEI: hudtype 3</annotation>
+ <annotation cp="🙅🏽♂">avbryt | forbudt | hudtype 4 | mann | mann som gestikulerer NEI | nei | stopp</annotation>
+ <annotation cp="🙅🏽♂" type="tts">mann som gestikulerer NEI: hudtype 4</annotation>
+ <annotation cp="🙅🏾♂">avbryt | forbudt | hudtype 5 | mann | mann som gestikulerer NEI | nei | stopp</annotation>
+ <annotation cp="🙅🏾♂" type="tts">mann som gestikulerer NEI: hudtype 5</annotation>
+ <annotation cp="🙅🏿♂">avbryt | forbudt | hudtype 6 | mann | mann som gestikulerer NEI | nei | stopp</annotation>
+ <annotation cp="🙅🏿♂" type="tts">mann som gestikulerer NEI: hudtype 6</annotation>
+ <annotation cp="🙅🏻♀">avbryt | forbudt | hudtype 1–2 | kvinne | kvinne som gestikulerer NEI | nei | stopp</annotation>
+ <annotation cp="🙅🏻♀" type="tts">kvinne som gestikulerer NEI: hudtype 1–2</annotation>
+ <annotation cp="🙅🏼♀">avbryt | forbudt | hudtype 3 | kvinne | kvinne som gestikulerer NEI | nei | stopp</annotation>
+ <annotation cp="🙅🏼♀" type="tts">kvinne som gestikulerer NEI: hudtype 3</annotation>
+ <annotation cp="🙅🏽♀">avbryt | forbudt | hudtype 4 | kvinne | kvinne som gestikulerer NEI | nei | stopp</annotation>
+ <annotation cp="🙅🏽♀" type="tts">kvinne som gestikulerer NEI: hudtype 4</annotation>
+ <annotation cp="🙅🏾♀">avbryt | forbudt | hudtype 5 | kvinne | kvinne som gestikulerer NEI | nei | stopp</annotation>
+ <annotation cp="🙅🏾♀" type="tts">kvinne som gestikulerer NEI: hudtype 5</annotation>
+ <annotation cp="🙅🏿♀">avbryt | forbudt | hudtype 6 | kvinne | kvinne som gestikulerer NEI | nei | stopp</annotation>
+ <annotation cp="🙅🏿♀" type="tts">kvinne som gestikulerer NEI: hudtype 6</annotation>
+ <annotation cp="🙆🏻">gestikulerer OK | greit | hudtype 1–2 | ok</annotation>
+ <annotation cp="🙆🏻" type="tts">gestikulerer OK: hudtype 1–2</annotation>
+ <annotation cp="🙆🏼">gestikulerer OK | greit | hudtype 3 | ok</annotation>
+ <annotation cp="🙆🏼" type="tts">gestikulerer OK: hudtype 3</annotation>
+ <annotation cp="🙆🏽">gestikulerer OK | greit | hudtype 4 | ok</annotation>
+ <annotation cp="🙆🏽" type="tts">gestikulerer OK: hudtype 4</annotation>
+ <annotation cp="🙆🏾">gestikulerer OK | greit | hudtype 5 | ok</annotation>
+ <annotation cp="🙆🏾" type="tts">gestikulerer OK: hudtype 5</annotation>
+ <annotation cp="🙆🏿">gestikulerer OK | greit | hudtype 6 | ok</annotation>
+ <annotation cp="🙆🏿" type="tts">gestikulerer OK: hudtype 6</annotation>
+ <annotation cp="🙆🏻♂">greit | hudtype 1–2 | mann | mann som gestikulerer OK | ok</annotation>
+ <annotation cp="🙆🏻♂" type="tts">mann som gestikulerer OK: hudtype 1–2</annotation>
+ <annotation cp="🙆🏼♂">greit | hudtype 3 | mann | mann som gestikulerer OK | ok</annotation>
+ <annotation cp="🙆🏼♂" type="tts">mann som gestikulerer OK: hudtype 3</annotation>
+ <annotation cp="🙆🏽♂">greit | hudtype 4 | mann | mann som gestikulerer OK | ok</annotation>
+ <annotation cp="🙆🏽♂" type="tts">mann som gestikulerer OK: hudtype 4</annotation>
+ <annotation cp="🙆🏾♂">greit | hudtype 5 | mann | mann som gestikulerer OK | ok</annotation>
+ <annotation cp="🙆🏾♂" type="tts">mann som gestikulerer OK: hudtype 5</annotation>
+ <annotation cp="🙆🏿♂">greit | hudtype 6 | mann | mann som gestikulerer OK | ok</annotation>
+ <annotation cp="🙆🏿♂" type="tts">mann som gestikulerer OK: hudtype 6</annotation>
+ <annotation cp="🙆🏻♀">greit | hudtype 1–2 | kvinne | kvinne som gestikulerer OK | ok</annotation>
+ <annotation cp="🙆🏻♀" type="tts">kvinne som gestikulerer OK: hudtype 1–2</annotation>
+ <annotation cp="🙆🏼♀">greit | hudtype 3 | kvinne | kvinne som gestikulerer OK | ok</annotation>
+ <annotation cp="🙆🏼♀" type="tts">kvinne som gestikulerer OK: hudtype 3</annotation>
+ <annotation cp="🙆🏽♀">greit | hudtype 4 | kvinne | kvinne som gestikulerer OK | ok</annotation>
+ <annotation cp="🙆🏽♀" type="tts">kvinne som gestikulerer OK: hudtype 4</annotation>
+ <annotation cp="🙆🏾♀">greit | hudtype 5 | kvinne | kvinne som gestikulerer OK | ok</annotation>
+ <annotation cp="🙆🏾♀" type="tts">kvinne som gestikulerer OK: hudtype 5</annotation>
+ <annotation cp="🙆🏿♀">greit | hudtype 6 | kvinne | kvinne som gestikulerer OK | ok</annotation>
+ <annotation cp="🙆🏿♀" type="tts">kvinne som gestikulerer OK: hudtype 6</annotation>
+ <annotation cp="💁🏻">hjelp | hjelpende person | hudtype 1–2 | informasjon | menneske</annotation>
+ <annotation cp="💁🏻" type="tts">hjelpende person: hudtype 1–2</annotation>
+ <annotation cp="💁🏼">hjelp | hjelpende person | hudtype 3 | informasjon | menneske</annotation>
+ <annotation cp="💁🏼" type="tts">hjelpende person: hudtype 3</annotation>
+ <annotation cp="💁🏽">hjelp | hjelpende person | hudtype 4 | informasjon | menneske</annotation>
+ <annotation cp="💁🏽" type="tts">hjelpende person: hudtype 4</annotation>
+ <annotation cp="💁🏾">hjelp | hjelpende person | hudtype 5 | informasjon | menneske</annotation>
+ <annotation cp="💁🏾" type="tts">hjelpende person: hudtype 5</annotation>
+ <annotation cp="💁🏿">hjelp | hjelpende person | hudtype 6 | informasjon | menneske</annotation>
+ <annotation cp="💁🏿" type="tts">hjelpende person: hudtype 6</annotation>
+ <annotation cp="💁🏻♂">hjelpe | hjelpende mann | hudtype 1–2 | informasjon | mann</annotation>
+ <annotation cp="💁🏻♂" type="tts">hjelpende mann: hudtype 1–2</annotation>
+ <annotation cp="💁🏼♂">hjelpe | hjelpende mann | hudtype 3 | informasjon | mann</annotation>
+ <annotation cp="💁🏼♂" type="tts">hjelpende mann: hudtype 3</annotation>
+ <annotation cp="💁🏽♂">hjelpe | hjelpende mann | hudtype 4 | informasjon | mann</annotation>
+ <annotation cp="💁🏽♂" type="tts">hjelpende mann: hudtype 4</annotation>
+ <annotation cp="💁🏾♂">hjelpe | hjelpende mann | hudtype 5 | informasjon | mann</annotation>
+ <annotation cp="💁🏾♂" type="tts">hjelpende mann: hudtype 5</annotation>
+ <annotation cp="💁🏿♂">hjelpe | hjelpende mann | hudtype 6 | informasjon | mann</annotation>
+ <annotation cp="💁🏿♂" type="tts">hjelpende mann: hudtype 6</annotation>
+ <annotation cp="💁🏻♀">hjelpe | hjelpende kvinne | hudtype 1–2 | informasjon | kvinne</annotation>
+ <annotation cp="💁🏻♀" type="tts">hjelpende kvinne: hudtype 1–2</annotation>
+ <annotation cp="💁🏼♀">hjelpe | hjelpende kvinne | hudtype 3 | informasjon | kvinne</annotation>
+ <annotation cp="💁🏼♀" type="tts">hjelpende kvinne: hudtype 3</annotation>
+ <annotation cp="💁🏽♀">hjelpe | hjelpende kvinne | hudtype 4 | informasjon | kvinne</annotation>
+ <annotation cp="💁🏽♀" type="tts">hjelpende kvinne: hudtype 4</annotation>
+ <annotation cp="💁🏾♀">hjelpe | hjelpende kvinne | hudtype 5 | informasjon | kvinne</annotation>
+ <annotation cp="💁🏾♀" type="tts">hjelpende kvinne: hudtype 5</annotation>
+ <annotation cp="💁🏿♀">hjelpe | hjelpende kvinne | hudtype 6 | informasjon | kvinne</annotation>
+ <annotation cp="💁🏿♀" type="tts">hjelpende kvinne: hudtype 6</annotation>
+ <annotation cp="🙋🏻">hånd | hudtype 1–2 | person | rekker opp | rekker opp hånden</annotation>
+ <annotation cp="🙋🏻" type="tts">rekker opp hånden: hudtype 1–2</annotation>
+ <annotation cp="🙋🏼">hånd | hudtype 3 | person | rekker opp | rekker opp hånden</annotation>
+ <annotation cp="🙋🏼" type="tts">rekker opp hånden: hudtype 3</annotation>
+ <annotation cp="🙋🏽">hånd | hudtype 4 | person | rekker opp | rekker opp hånden</annotation>
+ <annotation cp="🙋🏽" type="tts">rekker opp hånden: hudtype 4</annotation>
+ <annotation cp="🙋🏾">hånd | hudtype 5 | person | rekker opp | rekker opp hånden</annotation>
+ <annotation cp="🙋🏾" type="tts">rekker opp hånden: hudtype 5</annotation>
+ <annotation cp="🙋🏿">hånd | hudtype 6 | person | rekker opp | rekker opp hånden</annotation>
+ <annotation cp="🙋🏿" type="tts">rekker opp hånden: hudtype 6</annotation>
+ <annotation cp="🙋🏻♂">hudtype 1–2 | mann | mann som rekker opp hånden | rekke opp hånden</annotation>
+ <annotation cp="🙋🏻♂" type="tts">mann som rekker opp hånden: hudtype 1–2</annotation>
+ <annotation cp="🙋🏼♂">hudtype 3 | mann | mann som rekker opp hånden | rekke opp hånden</annotation>
+ <annotation cp="🙋🏼♂" type="tts">mann som rekker opp hånden: hudtype 3</annotation>
+ <annotation cp="🙋🏽♂">hudtype 4 | mann | mann som rekker opp hånden | rekke opp hånden</annotation>
+ <annotation cp="🙋🏽♂" type="tts">mann som rekker opp hånden: hudtype 4</annotation>
+ <annotation cp="🙋🏾♂">hudtype 5 | mann | mann som rekker opp hånden | rekke opp hånden</annotation>
+ <annotation cp="🙋🏾♂" type="tts">mann som rekker opp hånden: hudtype 5</annotation>
+ <annotation cp="🙋🏿♂">hudtype 6 | mann | mann som rekker opp hånden | rekke opp hånden</annotation>
+ <annotation cp="🙋🏿♂" type="tts">mann som rekker opp hånden: hudtype 6</annotation>
+ <annotation cp="🙋🏻♀">hudtype 1–2 | kvinne | kvinne som rekker opp hånden | rekke opp hånden</annotation>
+ <annotation cp="🙋🏻♀" type="tts">kvinne som rekker opp hånden: hudtype 1–2</annotation>
+ <annotation cp="🙋🏼♀">hudtype 3 | kvinne | kvinne som rekker opp hånden | rekke opp hånden</annotation>
+ <annotation cp="🙋🏼♀" type="tts">kvinne som rekker opp hånden: hudtype 3</annotation>
+ <annotation cp="🙋🏽♀">hudtype 4 | kvinne | kvinne som rekker opp hånden | rekke opp hånden</annotation>
+ <annotation cp="🙋🏽♀" type="tts">kvinne som rekker opp hånden: hudtype 4</annotation>
+ <annotation cp="🙋🏾♀">hudtype 5 | kvinne | kvinne som rekker opp hånden | rekke opp hånden</annotation>
+ <annotation cp="🙋🏾♀" type="tts">kvinne som rekker opp hånden: hudtype 5</annotation>
+ <annotation cp="🙋🏿♀">hudtype 6 | kvinne | kvinne som rekker opp hånden | rekke opp hånden</annotation>
+ <annotation cp="🙋🏿♀" type="tts">kvinne som rekker opp hånden: hudtype 6</annotation>
+ <annotation cp="🧏🏻">døv | døv person | høre | hudtype 1–2 | øre | tilgjengelighet</annotation>
+ <annotation cp="🧏🏻" type="tts">døv person: hudtype 1–2</annotation>
+ <annotation cp="🧏🏼">døv | døv person | høre | hudtype 3 | øre | tilgjengelighet</annotation>
+ <annotation cp="🧏🏼" type="tts">døv person: hudtype 3</annotation>
+ <annotation cp="🧏🏽">døv | døv person | høre | hudtype 4 | øre | tilgjengelighet</annotation>
+ <annotation cp="🧏🏽" type="tts">døv person: hudtype 4</annotation>
+ <annotation cp="🧏🏾">døv | døv person | høre | hudtype 5 | øre | tilgjengelighet</annotation>
+ <annotation cp="🧏🏾" type="tts">døv person: hudtype 5</annotation>
+ <annotation cp="🧏🏿">døv | døv person | høre | hudtype 6 | øre | tilgjengelighet</annotation>
+ <annotation cp="🧏🏿" type="tts">døv person: hudtype 6</annotation>
+ <annotation cp="🧏🏻♂">døv | hudtype 1–2 | mann</annotation>
+ <annotation cp="🧏🏻♂" type="tts">døv mann: hudtype 1–2</annotation>
+ <annotation cp="🧏🏼♂">døv | hudtype 3 | mann</annotation>
+ <annotation cp="🧏🏼♂" type="tts">døv mann: hudtype 3</annotation>
+ <annotation cp="🧏🏽♂">døv | hudtype 4 | mann</annotation>
+ <annotation cp="🧏🏽♂" type="tts">døv mann: hudtype 4</annotation>
+ <annotation cp="🧏🏾♂">døv | hudtype 5 | mann</annotation>
+ <annotation cp="🧏🏾♂" type="tts">døv mann: hudtype 5</annotation>
+ <annotation cp="🧏🏿♂">døv | hudtype 6 | mann</annotation>
+ <annotation cp="🧏🏿♂" type="tts">døv mann: hudtype 6</annotation>
+ <annotation cp="🧏🏻♀">døv | hudtype 1–2 | kvinne</annotation>
+ <annotation cp="🧏🏻♀" type="tts">døv kvinne: hudtype 1–2</annotation>
+ <annotation cp="🧏🏼♀">døv | hudtype 3 | kvinne</annotation>
+ <annotation cp="🧏🏼♀" type="tts">døv kvinne: hudtype 3</annotation>
+ <annotation cp="🧏🏽♀">døv | hudtype 4 | kvinne</annotation>
+ <annotation cp="🧏🏽♀" type="tts">døv kvinne: hudtype 4</annotation>
+ <annotation cp="🧏🏾♀">døv | hudtype 5 | kvinne</annotation>
+ <annotation cp="🧏🏾♀" type="tts">døv kvinne: hudtype 5</annotation>
+ <annotation cp="🧏🏿♀">døv | hudtype 6 | kvinne</annotation>
+ <annotation cp="🧏🏿♀" type="tts">døv kvinne: hudtype 6</annotation>
+ <annotation cp="🙇🏻">beklagelse | beklager | bukk | bukker | hudtype 1–2 | unnskyld</annotation>
+ <annotation cp="🙇🏻" type="tts">bukker: hudtype 1–2</annotation>
+ <annotation cp="🙇🏼">beklagelse | beklager | bukk | bukker | hudtype 3 | unnskyld</annotation>
+ <annotation cp="🙇🏼" type="tts">bukker: hudtype 3</annotation>
+ <annotation cp="🙇🏽">beklagelse | beklager | bukk | bukker | hudtype 4 | unnskyld</annotation>
+ <annotation cp="🙇🏽" type="tts">bukker: hudtype 4</annotation>
+ <annotation cp="🙇🏾">beklagelse | beklager | bukk | bukker | hudtype 5 | unnskyld</annotation>
+ <annotation cp="🙇🏾" type="tts">bukker: hudtype 5</annotation>
+ <annotation cp="🙇🏿">beklagelse | beklager | bukk | bukker | hudtype 6 | unnskyld</annotation>
+ <annotation cp="🙇🏿" type="tts">bukker: hudtype 6</annotation>
+ <annotation cp="🙇🏻♂">beklagelse | bukk | bukkende mann | hudtype 1–2 | mann | unnskyld</annotation>
+ <annotation cp="🙇🏻♂" type="tts">bukkende mann: hudtype 1–2</annotation>
+ <annotation cp="🙇🏼♂">beklagelse | bukk | bukkende mann | hudtype 3 | mann | unnskyld</annotation>
+ <annotation cp="🙇🏼♂" type="tts">bukkende mann: hudtype 3</annotation>
+ <annotation cp="🙇🏽♂">beklagelse | bukk | bukkende mann | hudtype 4 | mann | unnskyld</annotation>
+ <annotation cp="🙇🏽♂" type="tts">bukkende mann: hudtype 4</annotation>
+ <annotation cp="🙇🏾♂">beklagelse | bukk | bukkende mann | hudtype 5 | mann | unnskyld</annotation>
+ <annotation cp="🙇🏾♂" type="tts">bukkende mann: hudtype 5</annotation>
+ <annotation cp="🙇🏿♂">beklagelse | bukk | bukkende mann | hudtype 6 | mann | unnskyld</annotation>
+ <annotation cp="🙇🏿♂" type="tts">bukkende mann: hudtype 6</annotation>
+ <annotation cp="🙇🏻♀">beklagelse | bukk | bukkende kvinne | hudtype 1–2 | kvinne | unnskyld</annotation>
+ <annotation cp="🙇🏻♀" type="tts">bukkende kvinne: hudtype 1–2</annotation>
+ <annotation cp="🙇🏼♀">beklagelse | bukk | bukkende kvinne | hudtype 3 | kvinne | unnskyld</annotation>
+ <annotation cp="🙇🏼♀" type="tts">bukkende kvinne: hudtype 3</annotation>
+ <annotation cp="🙇🏽♀">beklagelse | bukk | bukkende kvinne | hudtype 4 | kvinne | unnskyld</annotation>
+ <annotation cp="🙇🏽♀" type="tts">bukkende kvinne: hudtype 4</annotation>
+ <annotation cp="🙇🏾♀">beklagelse | bukk | bukkende kvinne | hudtype 5 | kvinne | unnskyld</annotation>
+ <annotation cp="🙇🏾♀" type="tts">bukkende kvinne: hudtype 5</annotation>
+ <annotation cp="🙇🏿♀">beklagelse | bukk | bukkende kvinne | hudtype 6 | kvinne | unnskyld</annotation>
+ <annotation cp="🙇🏿♀" type="tts">bukkende kvinne: hudtype 6</annotation>
+ <annotation cp="🤦🏻">ansikt | facepalm | fjes | hudtype 1–2 | irritasjon | oppgitt | slår hånden mot pannen | vantro</annotation>
+ <annotation cp="🤦🏻" type="tts">slår hånden mot pannen: hudtype 1–2</annotation>
+ <annotation cp="🤦🏼">ansikt | facepalm | fjes | hudtype 3 | irritasjon | oppgitt | slår hånden mot pannen | vantro</annotation>
+ <annotation cp="🤦🏼" type="tts">slår hånden mot pannen: hudtype 3</annotation>
+ <annotation cp="🤦🏽">ansikt | facepalm | fjes | hudtype 4 | irritasjon | oppgitt | slår hånden mot pannen | vantro</annotation>
+ <annotation cp="🤦🏽" type="tts">slår hånden mot pannen: hudtype 4</annotation>
+ <annotation cp="🤦🏾">ansikt | facepalm | fjes | hudtype 5 | irritasjon | oppgitt | slår hånden mot pannen | vantro</annotation>
+ <annotation cp="🤦🏾" type="tts">slår hånden mot pannen: hudtype 5</annotation>
+ <annotation cp="🤦🏿">ansikt | facepalm | fjes | hudtype 6 | irritasjon | oppgitt | slår hånden mot pannen | vantro</annotation>
+ <annotation cp="🤦🏿" type="tts">slår hånden mot pannen: hudtype 6</annotation>
+ <annotation cp="🤦🏻♂">ansikt | facepalm | fjes | hudtype 1–2 | irritasjon | mann | mann som slår hånden mot pannen | oppgitt | vantro</annotation>
+ <annotation cp="🤦🏻♂" type="tts">mann som slår hånden mot pannen: hudtype 1–2</annotation>
+ <annotation cp="🤦🏼♂">ansikt | facepalm | fjes | hudtype 3 | irritasjon | mann | mann som slår hånden mot pannen | oppgitt | vantro</annotation>
+ <annotation cp="🤦🏼♂" type="tts">mann som slår hånden mot pannen: hudtype 3</annotation>
+ <annotation cp="🤦🏽♂">ansikt | facepalm | fjes | hudtype 4 | irritasjon | mann | mann som slår hånden mot pannen | oppgitt | vantro</annotation>
+ <annotation cp="🤦🏽♂" type="tts">mann som slår hånden mot pannen: hudtype 4</annotation>
+ <annotation cp="🤦🏾♂">ansikt | facepalm | fjes | hudtype 5 | irritasjon | mann | mann som slår hånden mot pannen | oppgitt | vantro</annotation>
+ <annotation cp="🤦🏾♂" type="tts">mann som slår hånden mot pannen: hudtype 5</annotation>
+ <annotation cp="🤦🏿♂">ansikt | facepalm | fjes | hudtype 6 | irritasjon | mann | mann som slår hånden mot pannen | oppgitt | vantro</annotation>
+ <annotation cp="🤦🏿♂" type="tts">mann som slår hånden mot pannen: hudtype 6</annotation>
+ <annotation cp="🤦🏻♀">ansikt | facepalm | fjes | hudtype 1–2 | irritasjon | kvinne | kvinne som slår hånden mot pannen | oppgitt | vantro</annotation>
+ <annotation cp="🤦🏻♀" type="tts">kvinne som slår hånden mot pannen: hudtype 1–2</annotation>
+ <annotation cp="🤦🏼♀">ansikt | facepalm | fjes | hudtype 3 | irritasjon | kvinne | kvinne som slår hånden mot pannen | oppgitt | vantro</annotation>
+ <annotation cp="🤦🏼♀" type="tts">kvinne som slår hånden mot pannen: hudtype 3</annotation>
+ <annotation cp="🤦🏽♀">ansikt | facepalm | fjes | hudtype 4 | irritasjon | kvinne | kvinne som slår hånden mot pannen | oppgitt | vantro</annotation>
+ <annotation cp="🤦🏽♀" type="tts">kvinne som slår hånden mot pannen: hudtype 4</annotation>
+ <annotation cp="🤦🏾♀">ansikt | facepalm | fjes | hudtype 5 | irritasjon | kvinne | kvinne som slår hånden mot pannen | oppgitt | vantro</annotation>
+ <annotation cp="🤦🏾♀" type="tts">kvinne som slår hånden mot pannen: hudtype 5</annotation>
+ <annotation cp="🤦🏿♀">ansikt | facepalm | fjes | hudtype 6 | irritasjon | kvinne | kvinne som slår hånden mot pannen | oppgitt | vantro</annotation>
+ <annotation cp="🤦🏿♀" type="tts">kvinne som slår hånden mot pannen: hudtype 6</annotation>
+ <annotation cp="🤷🏻">hudtype 1–2 | likegyldighet | skuldertrekning | trekker på skuldrene | tvil</annotation>
+ <annotation cp="🤷🏻" type="tts">trekker på skuldrene: hudtype 1–2</annotation>
+ <annotation cp="🤷🏼">hudtype 3 | likegyldighet | skuldertrekning | trekker på skuldrene | tvil</annotation>
+ <annotation cp="🤷🏼" type="tts">trekker på skuldrene: hudtype 3</annotation>
+ <annotation cp="🤷🏽">hudtype 4 | likegyldighet | skuldertrekning | trekker på skuldrene | tvil</annotation>
+ <annotation cp="🤷🏽" type="tts">trekker på skuldrene: hudtype 4</annotation>
+ <annotation cp="🤷🏾">hudtype 5 | likegyldighet | skuldertrekning | trekker på skuldrene | tvil</annotation>
+ <annotation cp="🤷🏾" type="tts">trekker på skuldrene: hudtype 5</annotation>
+ <annotation cp="🤷🏿">hudtype 6 | likegyldighet | skuldertrekning | trekker på skuldrene | tvil</annotation>
+ <annotation cp="🤷🏿" type="tts">trekker på skuldrene: hudtype 6</annotation>
+ <annotation cp="🤷🏻♂">hudtype 1–2 | likegyldighet | mann | mann som trekker på skuldrene | skuldertrekning | tvil</annotation>
+ <annotation cp="🤷🏻♂" type="tts">mann som trekker på skuldrene: hudtype 1–2</annotation>
+ <annotation cp="🤷🏼♂">hudtype 3 | likegyldighet | mann | mann som trekker på skuldrene | skuldertrekning | tvil</annotation>
+ <annotation cp="🤷🏼♂" type="tts">mann som trekker på skuldrene: hudtype 3</annotation>
+ <annotation cp="🤷🏽♂">hudtype 4 | likegyldighet | mann | mann som trekker på skuldrene | skuldertrekning | tvil</annotation>
+ <annotation cp="🤷🏽♂" type="tts">mann som trekker på skuldrene: hudtype 4</annotation>
+ <annotation cp="🤷🏾♂">hudtype 5 | likegyldighet | mann | mann som trekker på skuldrene | skuldertrekning | tvil</annotation>
+ <annotation cp="🤷🏾♂" type="tts">mann som trekker på skuldrene: hudtype 5</annotation>
+ <annotation cp="🤷🏿♂">hudtype 6 | likegyldighet | mann | mann som trekker på skuldrene | skuldertrekning | tvil</annotation>
+ <annotation cp="🤷🏿♂" type="tts">mann som trekker på skuldrene: hudtype 6</annotation>
+ <annotation cp="🤷🏻♀">hudtype 1–2 | kvinne | kvinne som trekker på skuldrene | likegyldighet | skuldertrekning | tvil</annotation>
+ <annotation cp="🤷🏻♀" type="tts">kvinne som trekker på skuldrene: hudtype 1–2</annotation>
+ <annotation cp="🤷🏼♀">hudtype 3 | kvinne | kvinne som trekker på skuldrene | likegyldighet | skuldertrekning | tvil</annotation>
+ <annotation cp="🤷🏼♀" type="tts">kvinne som trekker på skuldrene: hudtype 3</annotation>
+ <annotation cp="🤷🏽♀">hudtype 4 | kvinne | kvinne som trekker på skuldrene | likegyldighet | skuldertrekning | tvil</annotation>
+ <annotation cp="🤷🏽♀" type="tts">kvinne som trekker på skuldrene: hudtype 4</annotation>
+ <annotation cp="🤷🏾♀">hudtype 5 | kvinne | kvinne som trekker på skuldrene | likegyldighet | skuldertrekning | tvil</annotation>
+ <annotation cp="🤷🏾♀" type="tts">kvinne som trekker på skuldrene: hudtype 5</annotation>
+ <annotation cp="🤷🏿♀">hudtype 6 | kvinne | kvinne som trekker på skuldrene | likegyldighet | skuldertrekning | tvil</annotation>
+ <annotation cp="🤷🏿♀" type="tts">kvinne som trekker på skuldrene: hudtype 6</annotation>
+ <annotation cp="🧑🏻⚕">doktor | helsearbeider | helsevesen | hudtype 1–2 | lege | sykepleier | terapeut</annotation>
+ <annotation cp="🧑🏻⚕" type="tts">helsearbeider: hudtype 1–2</annotation>
+ <annotation cp="🧑🏼⚕">doktor | helsearbeider | helsevesen | hudtype 3 | lege | sykepleier | terapeut</annotation>
+ <annotation cp="🧑🏼⚕" type="tts">helsearbeider: hudtype 3</annotation>
+ <annotation cp="🧑🏽⚕">doktor | helsearbeider | helsevesen | hudtype 4 | lege | sykepleier | terapeut</annotation>
+ <annotation cp="🧑🏽⚕" type="tts">helsearbeider: hudtype 4</annotation>
+ <annotation cp="🧑🏾⚕">doktor | helsearbeider | helsevesen | hudtype 5 | lege | sykepleier | terapeut</annotation>
+ <annotation cp="🧑🏾⚕" type="tts">helsearbeider: hudtype 5</annotation>
+ <annotation cp="🧑🏿⚕">doktor | helsearbeider | helsevesen | hudtype 6 | lege | sykepleier | terapeut</annotation>
+ <annotation cp="🧑🏿⚕" type="tts">helsearbeider: hudtype 6</annotation>
+ <annotation cp="👨🏻⚕">doktor | helsevesen | hudtype 1–2 | lege | mann | mannlig helsearbeider | sykepleier | terapeut</annotation>
+ <annotation cp="👨🏻⚕" type="tts">mannlig helsearbeider: hudtype 1–2</annotation>
+ <annotation cp="👨🏼⚕">doktor | helsevesen | hudtype 3 | lege | mann | mannlig helsearbeider | sykepleier | terapeut</annotation>
+ <annotation cp="👨🏼⚕" type="tts">mannlig helsearbeider: hudtype 3</annotation>
+ <annotation cp="👨🏽⚕">doktor | helsevesen | hudtype 4 | lege | mann | mannlig helsearbeider | sykepleier | terapeut</annotation>
+ <annotation cp="👨🏽⚕" type="tts">mannlig helsearbeider: hudtype 4</annotation>
+ <annotation cp="👨🏾⚕">doktor | helsevesen | hudtype 5 | lege | mann | mannlig helsearbeider | sykepleier | terapeut</annotation>
+ <annotation cp="👨🏾⚕" type="tts">mannlig helsearbeider: hudtype 5</annotation>
+ <annotation cp="👨🏿⚕">doktor | helsevesen | hudtype 6 | lege | mann | mannlig helsearbeider | sykepleier | terapeut</annotation>
+ <annotation cp="👨🏿⚕" type="tts">mannlig helsearbeider: hudtype 6</annotation>
+ <annotation cp="👩🏻⚕">doktor | helsevesen | hudtype 1–2 | kvinne | kvinnelig helsearbeider | lege | sykepleier | terapeut</annotation>
+ <annotation cp="👩🏻⚕" type="tts">kvinnelig helsearbeider: hudtype 1–2</annotation>
+ <annotation cp="👩🏼⚕">doktor | helsevesen | hudtype 3 | kvinne | kvinnelig helsearbeider | lege | sykepleier | terapeut</annotation>
+ <annotation cp="👩🏼⚕" type="tts">kvinnelig helsearbeider: hudtype 3</annotation>
+ <annotation cp="👩🏽⚕">doktor | helsevesen | hudtype 4 | kvinne | kvinnelig helsearbeider | lege | sykepleier | terapeut</annotation>
+ <annotation cp="👩🏽⚕" type="tts">kvinnelig helsearbeider: hudtype 4</annotation>
+ <annotation cp="👩🏾⚕">doktor | helsevesen | hudtype 5 | kvinne | kvinnelig helsearbeider | lege | sykepleier | terapeut</annotation>
+ <annotation cp="👩🏾⚕" type="tts">kvinnelig helsearbeider: hudtype 5</annotation>
+ <annotation cp="👩🏿⚕">doktor | helsevesen | hudtype 6 | kvinne | kvinnelig helsearbeider | lege | sykepleier | terapeut</annotation>
+ <annotation cp="👩🏿⚕" type="tts">kvinnelig helsearbeider: hudtype 6</annotation>
+ <annotation cp="🧑🏻🎓">hudtype 1–2 | skole | student | universitet</annotation>
+ <annotation cp="🧑🏻🎓" type="tts">student: hudtype 1–2</annotation>
+ <annotation cp="🧑🏼🎓">hudtype 3 | skole | student | universitet</annotation>
+ <annotation cp="🧑🏼🎓" type="tts">student: hudtype 3</annotation>
+ <annotation cp="🧑🏽🎓">hudtype 4 | skole | student | universitet</annotation>
+ <annotation cp="🧑🏽🎓" type="tts">student: hudtype 4</annotation>
+ <annotation cp="🧑🏾🎓">hudtype 5 | skole | student | universitet</annotation>
+ <annotation cp="🧑🏾🎓" type="tts">student: hudtype 5</annotation>
+ <annotation cp="🧑🏿🎓">hudtype 6 | skole | student | universitet</annotation>
+ <annotation cp="🧑🏿🎓" type="tts">student: hudtype 6</annotation>
+ <annotation cp="👨🏻🎓">hudtype 1–2 | mann | mannlig student | skole | student | universitet</annotation>
+ <annotation cp="👨🏻🎓" type="tts">mannlig student: hudtype 1–2</annotation>
+ <annotation cp="👨🏼🎓">hudtype 3 | mann | mannlig student | skole | student | universitet</annotation>
+ <annotation cp="👨🏼🎓" type="tts">mannlig student: hudtype 3</annotation>
+ <annotation cp="👨🏽🎓">hudtype 4 | mann | mannlig student | skole | student | universitet</annotation>
+ <annotation cp="👨🏽🎓" type="tts">mannlig student: hudtype 4</annotation>
+ <annotation cp="👨🏾🎓">hudtype 5 | mann | mannlig student | skole | student | universitet</annotation>
+ <annotation cp="👨🏾🎓" type="tts">mannlig student: hudtype 5</annotation>
+ <annotation cp="👨🏿🎓">hudtype 6 | mann | mannlig student | skole | student | universitet</annotation>
+ <annotation cp="👨🏿🎓" type="tts">mannlig student: hudtype 6</annotation>
+ <annotation cp="👩🏻🎓">hudtype 1–2 | kvinne | kvinnelig student | skole | student | universitet</annotation>
+ <annotation cp="👩🏻🎓" type="tts">kvinnelig student: hudtype 1–2</annotation>
+ <annotation cp="👩🏼🎓">hudtype 3 | kvinne | kvinnelig student | skole | student | universitet</annotation>
+ <annotation cp="👩🏼🎓" type="tts">kvinnelig student: hudtype 3</annotation>
+ <annotation cp="👩🏽🎓">hudtype 4 | kvinne | kvinnelig student | skole | student | universitet</annotation>
+ <annotation cp="👩🏽🎓" type="tts">kvinnelig student: hudtype 4</annotation>
+ <annotation cp="👩🏾🎓">hudtype 5 | kvinne | kvinnelig student | skole | student | universitet</annotation>
+ <annotation cp="👩🏾🎓" type="tts">kvinnelig student: hudtype 5</annotation>
+ <annotation cp="👩🏿🎓">hudtype 6 | kvinne | kvinnelig student | skole | student | universitet</annotation>
+ <annotation cp="👩🏿🎓" type="tts">kvinnelig student: hudtype 6</annotation>
+ <annotation cp="🧑🏻🏫">hudtype 1–2 | lærer | skole | undervisning</annotation>
+ <annotation cp="🧑🏻🏫" type="tts">lærer: hudtype 1–2</annotation>
+ <annotation cp="🧑🏼🏫">hudtype 3 | lærer | skole | undervisning</annotation>
+ <annotation cp="🧑🏼🏫" type="tts">lærer: hudtype 3</annotation>
+ <annotation cp="🧑🏽🏫">hudtype 4 | lærer | skole | undervisning</annotation>
+ <annotation cp="🧑🏽🏫" type="tts">lærer: hudtype 4</annotation>
+ <annotation cp="🧑🏾🏫">hudtype 5 | lærer | skole | undervisning</annotation>
+ <annotation cp="🧑🏾🏫" type="tts">lærer: hudtype 5</annotation>
+ <annotation cp="🧑🏿🏫">hudtype 6 | lærer | skole | undervisning</annotation>
+ <annotation cp="🧑🏿🏫" type="tts">lærer: hudtype 6</annotation>
+ <annotation cp="👨🏻🏫">hudtype 1–2 | lærer | mann | mannlig lærer | skole | undervisning</annotation>
+ <annotation cp="👨🏻🏫" type="tts">mannlig lærer: hudtype 1–2</annotation>
+ <annotation cp="👨🏼🏫">hudtype 3 | lærer | mann | mannlig lærer | skole | undervisning</annotation>
+ <annotation cp="👨🏼🏫" type="tts">mannlig lærer: hudtype 3</annotation>
+ <annotation cp="👨🏽🏫">hudtype 4 | lærer | mann | mannlig lærer | skole | undervisning</annotation>
+ <annotation cp="👨🏽🏫" type="tts">mannlig lærer: hudtype 4</annotation>
+ <annotation cp="👨🏾🏫">hudtype 5 | lærer | mann | mannlig lærer | skole | undervisning</annotation>
+ <annotation cp="👨🏾🏫" type="tts">mannlig lærer: hudtype 5</annotation>
+ <annotation cp="👨🏿🏫">hudtype 6 | lærer | mann | mannlig lærer | skole | undervisning</annotation>
+ <annotation cp="👨🏿🏫" type="tts">mannlig lærer: hudtype 6</annotation>
+ <annotation cp="👩🏻🏫">hudtype 1–2 | kvinne | kvinnelig lærer | lærer | skole | undervisning</annotation>
+ <annotation cp="👩🏻🏫" type="tts">kvinnelig lærer: hudtype 1–2</annotation>
+ <annotation cp="👩🏼🏫">hudtype 3 | kvinne | kvinnelig lærer | lærer | skole | undervisning</annotation>
+ <annotation cp="👩🏼🏫" type="tts">kvinnelig lærer: hudtype 3</annotation>
+ <annotation cp="👩🏽🏫">hudtype 4 | kvinne | kvinnelig lærer | lærer | skole | undervisning</annotation>
+ <annotation cp="👩🏽🏫" type="tts">kvinnelig lærer: hudtype 4</annotation>
+ <annotation cp="👩🏾🏫">hudtype 5 | kvinne | kvinnelig lærer | lærer | skole | undervisning</annotation>
+ <annotation cp="👩🏾🏫" type="tts">kvinnelig lærer: hudtype 5</annotation>
+ <annotation cp="👩🏿🏫">hudtype 6 | kvinne | kvinnelig lærer | lærer | skole | undervisning</annotation>
+ <annotation cp="👩🏿🏫" type="tts">kvinnelig lærer: hudtype 6</annotation>
+ <annotation cp="🧑🏻⚖">dommer | hudtype 1–2 | jus | juss</annotation>
+ <annotation cp="🧑🏻⚖" type="tts">dommer: hudtype 1–2</annotation>
+ <annotation cp="🧑🏼⚖">dommer | hudtype 3 | jus | juss</annotation>
+ <annotation cp="🧑🏼⚖" type="tts">dommer: hudtype 3</annotation>
+ <annotation cp="🧑🏽⚖">dommer | hudtype 4 | jus | juss</annotation>
+ <annotation cp="🧑🏽⚖" type="tts">dommer: hudtype 4</annotation>
+ <annotation cp="🧑🏾⚖">dommer | hudtype 5 | jus | juss</annotation>
+ <annotation cp="🧑🏾⚖" type="tts">dommer: hudtype 5</annotation>
+ <annotation cp="🧑🏿⚖">dommer | hudtype 6 | jus | juss</annotation>
+ <annotation cp="🧑🏿⚖" type="tts">dommer: hudtype 6</annotation>
+ <annotation cp="👨🏻⚖">dommer | hudtype 1–2 | jus | juss | mann | mannlig dommer | rettssak</annotation>
+ <annotation cp="👨🏻⚖" type="tts">mannlig dommer: hudtype 1–2</annotation>
+ <annotation cp="👨🏼⚖">dommer | hudtype 3 | jus | juss | mann | mannlig dommer | rettssak</annotation>
+ <annotation cp="👨🏼⚖" type="tts">mannlig dommer: hudtype 3</annotation>
+ <annotation cp="👨🏽⚖">dommer | hudtype 4 | jus | juss | mann | mannlig dommer | rettssak</annotation>
+ <annotation cp="👨🏽⚖" type="tts">mannlig dommer: hudtype 4</annotation>
+ <annotation cp="👨🏾⚖">dommer | hudtype 5 | jus | juss | mann | mannlig dommer | rettssak</annotation>
+ <annotation cp="👨🏾⚖" type="tts">mannlig dommer: hudtype 5</annotation>
+ <annotation cp="👨🏿⚖">dommer | hudtype 6 | jus | juss | mann | mannlig dommer | rettssak</annotation>
+ <annotation cp="👨🏿⚖" type="tts">mannlig dommer: hudtype 6</annotation>
+ <annotation cp="👩🏻⚖">dommer | hudtype 1–2 | jus | juss | kvinne | kvinnelig dommer | rettssak</annotation>
+ <annotation cp="👩🏻⚖" type="tts">kvinnelig dommer: hudtype 1–2</annotation>
+ <annotation cp="👩🏼⚖">dommer | hudtype 3 | jus | juss | kvinne | kvinnelig dommer | rettssak</annotation>
+ <annotation cp="👩🏼⚖" type="tts">kvinnelig dommer: hudtype 3</annotation>
+ <annotation cp="👩🏽⚖">dommer | hudtype 4 | jus | juss | kvinne | kvinnelig dommer | rettssak</annotation>
+ <annotation cp="👩🏽⚖" type="tts">kvinnelig dommer: hudtype 4</annotation>
+ <annotation cp="👩🏾⚖">dommer | hudtype 5 | jus | juss | kvinne | kvinnelig dommer | rettssak</annotation>
+ <annotation cp="👩🏾⚖" type="tts">kvinnelig dommer: hudtype 5</annotation>
+ <annotation cp="👩🏿⚖">dommer | hudtype 6 | jus | juss | kvinne | kvinnelig dommer | rettssak</annotation>
+ <annotation cp="👩🏿⚖" type="tts">kvinnelig dommer: hudtype 6</annotation>
+ <annotation cp="🧑🏻🌾">bonde | gårdbruker | hudtype 1–2 | jordbruk</annotation>
+ <annotation cp="🧑🏻🌾" type="tts">gårdbruker: hudtype 1–2</annotation>
+ <annotation cp="🧑🏼🌾">bonde | gårdbruker | hudtype 3 | jordbruk</annotation>
+ <annotation cp="🧑🏼🌾" type="tts">gårdbruker: hudtype 3</annotation>
+ <annotation cp="🧑🏽🌾">bonde | gårdbruker | hudtype 4 | jordbruk</annotation>
+ <annotation cp="🧑🏽🌾" type="tts">gårdbruker: hudtype 4</annotation>
+ <annotation cp="🧑🏾🌾">bonde | gårdbruker | hudtype 5 | jordbruk</annotation>
+ <annotation cp="🧑🏾🌾" type="tts">gårdbruker: hudtype 5</annotation>
+ <annotation cp="🧑🏿🌾">bonde | gårdbruker | hudtype 6 | jordbruk</annotation>
+ <annotation cp="🧑🏿🌾" type="tts">gårdbruker: hudtype 6</annotation>
+ <annotation cp="👨🏻🌾">bonde | dyrke | gårdbruker | hudtype 1–2 | jordbruk | mann | mannlig gårdbruker</annotation>
+ <annotation cp="👨🏻🌾" type="tts">mannlig gårdbruker: hudtype 1–2</annotation>
+ <annotation cp="👨🏼🌾">bonde | dyrke | gårdbruker | hudtype 3 | jordbruk | mann | mannlig gårdbruker</annotation>
+ <annotation cp="👨🏼🌾" type="tts">mannlig gårdbruker: hudtype 3</annotation>
+ <annotation cp="👨🏽🌾">bonde | dyrke | gårdbruker | hudtype 4 | jordbruk | mann | mannlig gårdbruker</annotation>
+ <annotation cp="👨🏽🌾" type="tts">mannlig gårdbruker: hudtype 4</annotation>
+ <annotation cp="👨🏾🌾">bonde | dyrke | gårdbruker | hudtype 5 | jordbruk | mann | mannlig gårdbruker</annotation>
+ <annotation cp="👨🏾🌾" type="tts">mannlig gårdbruker: hudtype 5</annotation>
+ <annotation cp="👨🏿🌾">bonde | dyrke | gårdbruker | hudtype 6 | jordbruk | mann | mannlig gårdbruker</annotation>
+ <annotation cp="👨🏿🌾" type="tts">mannlig gårdbruker: hudtype 6</annotation>
+ <annotation cp="👩🏻🌾">bonde | dyrke | gårdbruker | hudtype 1–2 | jordbruk | kvinne | kvinnelig gårdbruker</annotation>
+ <annotation cp="👩🏻🌾" type="tts">kvinnelig gårdbruker: hudtype 1–2</annotation>
+ <annotation cp="👩🏼🌾">bonde | dyrke | gårdbruker | hudtype 3 | jordbruk | kvinne | kvinnelig gårdbruker</annotation>
+ <annotation cp="👩🏼🌾" type="tts">kvinnelig gårdbruker: hudtype 3</annotation>
+ <annotation cp="👩🏽🌾">bonde | dyrke | gårdbruker | hudtype 4 | jordbruk | kvinne | kvinnelig gårdbruker</annotation>
+ <annotation cp="👩🏽🌾" type="tts">kvinnelig gårdbruker: hudtype 4</annotation>
+ <annotation cp="👩🏾🌾">bonde | dyrke | gårdbruker | hudtype 5 | jordbruk | kvinne | kvinnelig gårdbruker</annotation>
+ <annotation cp="👩🏾🌾" type="tts">kvinnelig gårdbruker: hudtype 5</annotation>
+ <annotation cp="👩🏿🌾">bonde | dyrke | gårdbruker | hudtype 6 | jordbruk | kvinne | kvinnelig gårdbruker</annotation>
+ <annotation cp="👩🏿🌾" type="tts">kvinnelig gårdbruker: hudtype 6</annotation>
+ <annotation cp="🧑🏻🍳">hudtype 1–2 | kokk | matlaging | restaurant</annotation>
+ <annotation cp="🧑🏻🍳" type="tts">kokk: hudtype 1–2</annotation>
+ <annotation cp="🧑🏼🍳">hudtype 3 | kokk | matlaging | restaurant</annotation>
+ <annotation cp="🧑🏼🍳" type="tts">kokk: hudtype 3</annotation>
+ <annotation cp="🧑🏽🍳">hudtype 4 | kokk | matlaging | restaurant</annotation>
+ <annotation cp="🧑🏽🍳" type="tts">kokk: hudtype 4</annotation>
+ <annotation cp="🧑🏾🍳">hudtype 5 | kokk | matlaging | restaurant</annotation>
+ <annotation cp="🧑🏾🍳" type="tts">kokk: hudtype 5</annotation>
+ <annotation cp="🧑🏿🍳">hudtype 6 | kokk | matlaging | restaurant</annotation>
+ <annotation cp="🧑🏿🍳" type="tts">kokk: hudtype 6</annotation>
+ <annotation cp="👨🏻🍳">hudtype 1–2 | mann | mannlig kokk | matlaging | restaurant</annotation>
+ <annotation cp="👨🏻🍳" type="tts">mannlig kokk: hudtype 1–2</annotation>
+ <annotation cp="👨🏼🍳">hudtype 3 | mann | mannlig kokk | matlaging | restaurant</annotation>
+ <annotation cp="👨🏼🍳" type="tts">mannlig kokk: hudtype 3</annotation>
+ <annotation cp="👨🏽🍳">hudtype 4 | mann | mannlig kokk | matlaging | restaurant</annotation>
+ <annotation cp="👨🏽🍳" type="tts">mannlig kokk: hudtype 4</annotation>
+ <annotation cp="👨🏾🍳">hudtype 5 | mann | mannlig kokk | matlaging | restaurant</annotation>
+ <annotation cp="👨🏾🍳" type="tts">mannlig kokk: hudtype 5</annotation>
+ <annotation cp="👨🏿🍳">hudtype 6 | mann | mannlig kokk | matlaging | restaurant</annotation>
+ <annotation cp="👨🏿🍳" type="tts">mannlig kokk: hudtype 6</annotation>
+ <annotation cp="👩🏻🍳">hudtype 1–2 | kvinne | kvinnelig kokk | matlaging | restaurant</annotation>
+ <annotation cp="👩🏻🍳" type="tts">kvinnelig kokk: hudtype 1–2</annotation>
+ <annotation cp="👩🏼🍳">hudtype 3 | kvinne | kvinnelig kokk | matlaging | restaurant</annotation>
+ <annotation cp="👩🏼🍳" type="tts">kvinnelig kokk: hudtype 3</annotation>
+ <annotation cp="👩🏽🍳">hudtype 4 | kvinne | kvinnelig kokk | matlaging | restaurant</annotation>
+ <annotation cp="👩🏽🍳" type="tts">kvinnelig kokk: hudtype 4</annotation>
+ <annotation cp="👩🏾🍳">hudtype 5 | kvinne | kvinnelig kokk | matlaging | restaurant</annotation>
+ <annotation cp="👩🏾🍳" type="tts">kvinnelig kokk: hudtype 5</annotation>
+ <annotation cp="👩🏿🍳">hudtype 6 | kvinne | kvinnelig kokk | matlaging | restaurant</annotation>
+ <annotation cp="👩🏿🍳" type="tts">kvinnelig kokk: hudtype 6</annotation>
+ <annotation cp="🧑🏻🔧">bil | elektriker | håndverker | hudtype 1–2 | mekaniker | motor | rørlegger</annotation>
+ <annotation cp="🧑🏻🔧" type="tts">mekaniker: hudtype 1–2</annotation>
+ <annotation cp="🧑🏼🔧">bil | elektriker | håndverker | hudtype 3 | mekaniker | motor | rørlegger</annotation>
+ <annotation cp="🧑🏼🔧" type="tts">mekaniker: hudtype 3</annotation>
+ <annotation cp="🧑🏽🔧">bil | elektriker | håndverker | hudtype 4 | mekaniker | motor | rørlegger</annotation>
+ <annotation cp="🧑🏽🔧" type="tts">mekaniker: hudtype 4</annotation>
+ <annotation cp="🧑🏾🔧">bil | elektriker | håndverker | hudtype 5 | mekaniker | motor | rørlegger</annotation>
+ <annotation cp="🧑🏾🔧" type="tts">mekaniker: hudtype 5</annotation>
+ <annotation cp="🧑🏿🔧">bil | elektriker | håndverker | hudtype 6 | mekaniker | motor | rørlegger</annotation>
+ <annotation cp="🧑🏿🔧" type="tts">mekaniker: hudtype 6</annotation>
+ <annotation cp="👨🏻🔧">bil | elektriker | håndverker | hudtype 1–2 | mann | mannlig mekaniker | mekaniker | motor | rørlegger</annotation>
+ <annotation cp="👨🏻🔧" type="tts">mannlig mekaniker: hudtype 1–2</annotation>
+ <annotation cp="👨🏼🔧">bil | elektriker | håndverker | hudtype 3 | mann | mannlig mekaniker | mekaniker | motor | rørlegger</annotation>
+ <annotation cp="👨🏼🔧" type="tts">mannlig mekaniker: hudtype 3</annotation>
+ <annotation cp="👨🏽🔧">bil | elektriker | håndverker | hudtype 4 | mann | mannlig mekaniker | mekaniker | motor | rørlegger</annotation>
+ <annotation cp="👨🏽🔧" type="tts">mannlig mekaniker: hudtype 4</annotation>
+ <annotation cp="👨🏾🔧">bil | elektriker | håndverker | hudtype 5 | mann | mannlig mekaniker | mekaniker | motor | rørlegger</annotation>
+ <annotation cp="👨🏾🔧" type="tts">mannlig mekaniker: hudtype 5</annotation>
+ <annotation cp="👨🏿🔧">bil | elektriker | håndverker | hudtype 6 | mann | mannlig mekaniker | mekaniker | motor | rørlegger</annotation>
+ <annotation cp="👨🏿🔧" type="tts">mannlig mekaniker: hudtype 6</annotation>
+ <annotation cp="👩🏻🔧">bil | elektriker | håndverker | hudtype 1–2 | kvinne | kvinnelig mekaniker | mekaniker | motor | rørlegger</annotation>
+ <annotation cp="👩🏻🔧" type="tts">kvinnelig mekaniker: hudtype 1–2</annotation>
+ <annotation cp="👩🏼🔧">bil | elektriker | håndverker | hudtype 3 | kvinne | kvinnelig mekaniker | mekaniker | motor | rørlegger</annotation>
+ <annotation cp="👩🏼🔧" type="tts">kvinnelig mekaniker: hudtype 3</annotation>
+ <annotation cp="👩🏽🔧">bil | elektriker | håndverker | hudtype 4 | kvinne | kvinnelig mekaniker | mekaniker | motor | rørlegger</annotation>
+ <annotation cp="👩🏽🔧" type="tts">kvinnelig mekaniker: hudtype 4</annotation>
+ <annotation cp="👩🏾🔧">bil | elektriker | håndverker | hudtype 5 | kvinne | kvinnelig mekaniker | mekaniker | motor | rørlegger</annotation>
+ <annotation cp="👩🏾🔧" type="tts">kvinnelig mekaniker: hudtype 5</annotation>
+ <annotation cp="👩🏿🔧">bil | elektriker | håndverker | hudtype 6 | kvinne | kvinnelig mekaniker | mekaniker | motor | rørlegger</annotation>
+ <annotation cp="👩🏿🔧" type="tts">kvinnelig mekaniker: hudtype 6</annotation>
+ <annotation cp="🧑🏻🏭">arbeider | fabrikk | hudtype 1–2 | industri | industriarbeider | produksjon</annotation>
+ <annotation cp="🧑🏻🏭" type="tts">industriarbeider: hudtype 1–2</annotation>
+ <annotation cp="🧑🏼🏭">arbeider | fabrikk | hudtype 3 | industri | industriarbeider | produksjon</annotation>
+ <annotation cp="🧑🏼🏭" type="tts">industriarbeider: hudtype 3</annotation>
+ <annotation cp="🧑🏽🏭">arbeider | fabrikk | hudtype 4 | industri | industriarbeider | produksjon</annotation>
+ <annotation cp="🧑🏽🏭" type="tts">industriarbeider: hudtype 4</annotation>
+ <annotation cp="🧑🏾🏭">arbeider | fabrikk | hudtype 5 | industri | industriarbeider | produksjon</annotation>
+ <annotation cp="🧑🏾🏭" type="tts">industriarbeider: hudtype 5</annotation>
+ <annotation cp="🧑🏿🏭">arbeider | fabrikk | hudtype 6 | industri | industriarbeider | produksjon</annotation>
+ <annotation cp="🧑🏿🏭" type="tts">industriarbeider: hudtype 6</annotation>
+ <annotation cp="👨🏻🏭">arbeider | fabrikk | hudtype 1–2 | industri | industriarbeider | mann | mannlig industriarbeider | produksjon</annotation>
+ <annotation cp="👨🏻🏭" type="tts">mannlig industriarbeider: hudtype 1–2</annotation>
+ <annotation cp="👨🏼🏭">arbeider | fabrikk | hudtype 3 | industri | industriarbeider | mann | mannlig industriarbeider | produksjon</annotation>
+ <annotation cp="👨🏼🏭" type="tts">mannlig industriarbeider: hudtype 3</annotation>
+ <annotation cp="👨🏽🏭">arbeider | fabrikk | hudtype 4 | industri | industriarbeider | mann | mannlig industriarbeider | produksjon</annotation>
+ <annotation cp="👨🏽🏭" type="tts">mannlig industriarbeider: hudtype 4</annotation>
+ <annotation cp="👨🏾🏭">arbeider | fabrikk | hudtype 5 | industri | industriarbeider | mann | mannlig industriarbeider | produksjon</annotation>
+ <annotation cp="👨🏾🏭" type="tts">mannlig industriarbeider: hudtype 5</annotation>
+ <annotation cp="👨🏿🏭">arbeider | fabrikk | hudtype 6 | industri | industriarbeider | mann | mannlig industriarbeider | produksjon</annotation>
+ <annotation cp="👨🏿🏭" type="tts">mannlig industriarbeider: hudtype 6</annotation>
+ <annotation cp="👩🏻🏭">fabrikk | hudtype 1–2 | industri | kvinne | kvinnelig industriarbeider | produksjon</annotation>
+ <annotation cp="👩🏻🏭" type="tts">kvinnelig industriarbeider: hudtype 1–2</annotation>
+ <annotation cp="👩🏼🏭">fabrikk | hudtype 3 | industri | kvinne | kvinnelig industriarbeider | produksjon</annotation>
+ <annotation cp="👩🏼🏭" type="tts">kvinnelig industriarbeider: hudtype 3</annotation>
+ <annotation cp="👩🏽🏭">fabrikk | hudtype 4 | industri | kvinne | kvinnelig industriarbeider | produksjon</annotation>
+ <annotation cp="👩🏽🏭" type="tts">kvinnelig industriarbeider: hudtype 4</annotation>
+ <annotation cp="👩🏾🏭">fabrikk | hudtype 5 | industri | kvinne | kvinnelig industriarbeider | produksjon</annotation>
+ <annotation cp="👩🏾🏭" type="tts">kvinnelig industriarbeider: hudtype 5</annotation>
+ <annotation cp="👩🏿🏭">fabrikk | hudtype 6 | industri | kvinne | kvinnelig industriarbeider | produksjon</annotation>
+ <annotation cp="👩🏿🏭" type="tts">kvinnelig industriarbeider: hudtype 6</annotation>
+ <annotation cp="🧑🏻💼">hudtype 1–2 | kontor | kontorarbeider | leder | næringsliv</annotation>
+ <annotation cp="🧑🏻💼" type="tts">kontorarbeider: hudtype 1–2</annotation>
+ <annotation cp="🧑🏼💼">hudtype 3 | kontor | kontorarbeider | leder | næringsliv</annotation>
+ <annotation cp="🧑🏼💼" type="tts">kontorarbeider: hudtype 3</annotation>
+ <annotation cp="🧑🏽💼">hudtype 4 | kontor | kontorarbeider | leder | næringsliv</annotation>
+ <annotation cp="🧑🏽💼" type="tts">kontorarbeider: hudtype 4</annotation>
+ <annotation cp="🧑🏾💼">hudtype 5 | kontor | kontorarbeider | leder | næringsliv</annotation>
+ <annotation cp="🧑🏾💼" type="tts">kontorarbeider: hudtype 5</annotation>
+ <annotation cp="🧑🏿💼">hudtype 6 | kontor | kontorarbeider | leder | næringsliv</annotation>
+ <annotation cp="🧑🏿💼" type="tts">kontorarbeider: hudtype 6</annotation>
+ <annotation cp="👨🏻💼">hudtype 1–2 | kontor | leder | mann | mannlig kontorarbeider | næringsliv</annotation>
+ <annotation cp="👨🏻💼" type="tts">mannlig kontorarbeider: hudtype 1–2</annotation>
+ <annotation cp="👨🏼💼">hudtype 3 | kontor | leder | mann | mannlig kontorarbeider | næringsliv</annotation>
+ <annotation cp="👨🏼💼" type="tts">mannlig kontorarbeider: hudtype 3</annotation>
+ <annotation cp="👨🏽💼">hudtype 4 | kontor | leder | mann | mannlig kontorarbeider | næringsliv</annotation>
+ <annotation cp="👨🏽💼" type="tts">mannlig kontorarbeider: hudtype 4</annotation>
+ <annotation cp="👨🏾💼">hudtype 5 | kontor | leder | mann | mannlig kontorarbeider | næringsliv</annotation>
+ <annotation cp="👨🏾💼" type="tts">mannlig kontorarbeider: hudtype 5</annotation>
+ <annotation cp="👨🏿💼">hudtype 6 | kontor | leder | mann | mannlig kontorarbeider | næringsliv</annotation>
+ <annotation cp="👨🏿💼" type="tts">mannlig kontorarbeider: hudtype 6</annotation>
+ <annotation cp="👩🏻💼">hudtype 1–2 | kontor | kvinne | kvinnelig kontorarbeider | leder | næringsliv</annotation>
+ <annotation cp="👩🏻💼" type="tts">kvinnelig kontorarbeider: hudtype 1–2</annotation>
+ <annotation cp="👩🏼💼">hudtype 3 | kontor | kvinne | kvinnelig kontorarbeider | leder | næringsliv</annotation>
+ <annotation cp="👩🏼💼" type="tts">kvinnelig kontorarbeider: hudtype 3</annotation>
+ <annotation cp="👩🏽💼">hudtype 4 | kontor | kvinne | kvinnelig kontorarbeider | leder | næringsliv</annotation>
+ <annotation cp="👩🏽💼" type="tts">kvinnelig kontorarbeider: hudtype 4</annotation>
+ <annotation cp="👩🏾💼">hudtype 5 | kontor | kvinne | kvinnelig kontorarbeider | leder | næringsliv</annotation>
+ <annotation cp="👩🏾💼" type="tts">kvinnelig kontorarbeider: hudtype 5</annotation>
+ <annotation cp="👩🏿💼">hudtype 6 | kontor | kvinne | kvinnelig kontorarbeider | leder | næringsliv</annotation>
+ <annotation cp="👩🏿💼" type="tts">kvinnelig kontorarbeider: hudtype 6</annotation>
+ <annotation cp="🧑🏻🔬">biologi | forsker | forskning | hudtype 1–2 | kjemi | lab | laboratorium | medisin | vitenskap</annotation>
+ <annotation cp="🧑🏻🔬" type="tts">forsker: hudtype 1–2</annotation>
+ <annotation cp="🧑🏼🔬">biologi | forsker | forskning | hudtype 3 | kjemi | lab | laboratorium | medisin | vitenskap</annotation>
+ <annotation cp="🧑🏼🔬" type="tts">forsker: hudtype 3</annotation>
+ <annotation cp="🧑🏽🔬">biologi | forsker | forskning | hudtype 4 | kjemi | lab | laboratorium | medisin | vitenskap</annotation>
+ <annotation cp="🧑🏽🔬" type="tts">forsker: hudtype 4</annotation>
+ <annotation cp="🧑🏾🔬">biologi | forsker | forskning | hudtype 5 | kjemi | lab | laboratorium | medisin | vitenskap</annotation>
+ <annotation cp="🧑🏾🔬" type="tts">forsker: hudtype 5</annotation>
+ <annotation cp="🧑🏿🔬">biologi | forsker | forskning | hudtype 6 | kjemi | lab | laboratorium | medisin | vitenskap</annotation>
+ <annotation cp="🧑🏿🔬" type="tts">forsker: hudtype 6</annotation>
+ <annotation cp="👨🏻🔬">hudtype 1–2 | kjemi | laboratorium | mann | mannlig forsker | vitenskap</annotation>
+ <annotation cp="👨🏻🔬" type="tts">mannlig forsker: hudtype 1–2</annotation>
+ <annotation cp="👨🏼🔬">hudtype 3 | kjemi | laboratorium | mann | mannlig forsker | vitenskap</annotation>
+ <annotation cp="👨🏼🔬" type="tts">mannlig forsker: hudtype 3</annotation>
+ <annotation cp="👨🏽🔬">hudtype 4 | kjemi | laboratorium | mann | mannlig forsker | vitenskap</annotation>
+ <annotation cp="👨🏽🔬" type="tts">mannlig forsker: hudtype 4</annotation>
+ <annotation cp="👨🏾🔬">hudtype 5 | kjemi | laboratorium | mann | mannlig forsker | vitenskap</annotation>
+ <annotation cp="👨🏾🔬" type="tts">mannlig forsker: hudtype 5</annotation>
+ <annotation cp="👨🏿🔬">hudtype 6 | kjemi | laboratorium | mann | mannlig forsker | vitenskap</annotation>
+ <annotation cp="👨🏿🔬" type="tts">mannlig forsker: hudtype 6</annotation>
+ <annotation cp="👩🏻🔬">hudtype 1–2 | kjemi | kvinne | kvinnelig forsker | laboratorium | vitenskap</annotation>
+ <annotation cp="👩🏻🔬" type="tts">kvinnelig forsker: hudtype 1–2</annotation>
+ <annotation cp="👩🏼🔬">hudtype 3 | kjemi | kvinne | kvinnelig forsker | laboratorium | vitenskap</annotation>
+ <annotation cp="👩🏼🔬" type="tts">kvinnelig forsker: hudtype 3</annotation>
+ <annotation cp="👩🏽🔬">hudtype 4 | kjemi | kvinne | kvinnelig forsker | laboratorium | vitenskap</annotation>
+ <annotation cp="👩🏽🔬" type="tts">kvinnelig forsker: hudtype 4</annotation>
+ <annotation cp="👩🏾🔬">hudtype 5 | kjemi | kvinne | kvinnelig forsker | laboratorium | vitenskap</annotation>
+ <annotation cp="👩🏾🔬" type="tts">kvinnelig forsker: hudtype 5</annotation>
+ <annotation cp="👩🏿🔬">hudtype 6 | kjemi | kvinne | kvinnelig forsker | laboratorium | vitenskap</annotation>
+ <annotation cp="👩🏿🔬" type="tts">kvinnelig forsker: hudtype 6</annotation>
+ <annotation cp="🧑🏻💻">data | hudtype 1–2 | IT | IT-ekspert | koding | programvare | teknologi</annotation>
+ <annotation cp="🧑🏻💻" type="tts">IT-ekspert: hudtype 1–2</annotation>
+ <annotation cp="🧑🏼💻">data | hudtype 3 | IT | IT-ekspert | koding | programvare | teknologi</annotation>
+ <annotation cp="🧑🏼💻" type="tts">IT-ekspert: hudtype 3</annotation>
+ <annotation cp="🧑🏽💻">data | hudtype 4 | IT | IT-ekspert | koding | programvare | teknologi</annotation>
+ <annotation cp="🧑🏽💻" type="tts">IT-ekspert: hudtype 4</annotation>
+ <annotation cp="🧑🏾💻">data | hudtype 5 | IT | IT-ekspert | koding | programvare | teknologi</annotation>
+ <annotation cp="🧑🏾💻" type="tts">IT-ekspert: hudtype 5</annotation>
+ <annotation cp="🧑🏿💻">data | hudtype 6 | IT | IT-ekspert | koding | programvare | teknologi</annotation>
+ <annotation cp="🧑🏿💻" type="tts">IT-ekspert: hudtype 6</annotation>
+ <annotation cp="👨🏻💻">data | hudtype 1–2 | IT | koding | mann | mannlig IT-ekspert | programvare | teknologi</annotation>
+ <annotation cp="👨🏻💻" type="tts">mannlig IT-ekspert: hudtype 1–2</annotation>
+ <annotation cp="👨🏼💻">data | hudtype 3 | IT | koding | mann | mannlig IT-ekspert | programvare | teknologi</annotation>
+ <annotation cp="👨🏼💻" type="tts">mannlig IT-ekspert: hudtype 3</annotation>
+ <annotation cp="👨🏽💻">data | hudtype 4 | IT | koding | mann | mannlig IT-ekspert | programvare | teknologi</annotation>
+ <annotation cp="👨🏽💻" type="tts">mannlig IT-ekspert: hudtype 4</annotation>
+ <annotation cp="👨🏾💻">data | hudtype 5 | IT | koding | mann | mannlig IT-ekspert | programvare | teknologi</annotation>
+ <annotation cp="👨🏾💻" type="tts">mannlig IT-ekspert: hudtype 5</annotation>
+ <annotation cp="👨🏿💻">data | hudtype 6 | IT | koding | mann | mannlig IT-ekspert | programvare | teknologi</annotation>
+ <annotation cp="👨🏿💻" type="tts">mannlig IT-ekspert: hudtype 6</annotation>
+ <annotation cp="👩🏻💻">data | hudtype 1–2 | IT | koding | kvinne | kvinnelig IT-ekspert | programvare | teknologi</annotation>
+ <annotation cp="👩🏻💻" type="tts">kvinnelig IT-ekspert: hudtype 1–2</annotation>
+ <annotation cp="👩🏼💻">data | hudtype 3 | IT | koding | kvinne | kvinnelig IT-ekspert | programvare | teknologi</annotation>
+ <annotation cp="👩🏼💻" type="tts">kvinnelig IT-ekspert: hudtype 3</annotation>
+ <annotation cp="👩🏽💻">data | hudtype 4 | IT | koding | kvinne | kvinnelig IT-ekspert | programvare | teknologi</annotation>
+ <annotation cp="👩🏽💻" type="tts">kvinnelig IT-ekspert: hudtype 4</annotation>
+ <annotation cp="👩🏾💻">data | hudtype 5 | IT | koding | kvinne | kvinnelig IT-ekspert | programvare | teknologi</annotation>
+ <annotation cp="👩🏾💻" type="tts">kvinnelig IT-ekspert: hudtype 5</annotation>
+ <annotation cp="👩🏿💻">data | hudtype 6 | IT | koding | kvinne | kvinnelig IT-ekspert | programvare | teknologi</annotation>
+ <annotation cp="👩🏿💻" type="tts">kvinnelig IT-ekspert: hudtype 6</annotation>
+ <annotation cp="🧑🏻🎤">artist | hudtype 1–2 | konsert | rock | sanger</annotation>
+ <annotation cp="🧑🏻🎤" type="tts">artist: hudtype 1–2</annotation>
+ <annotation cp="🧑🏼🎤">artist | hudtype 3 | konsert | rock | sanger</annotation>
+ <annotation cp="🧑🏼🎤" type="tts">artist: hudtype 3</annotation>
+ <annotation cp="🧑🏽🎤">artist | hudtype 4 | konsert | rock | sanger</annotation>
+ <annotation cp="🧑🏽🎤" type="tts">artist: hudtype 4</annotation>
+ <annotation cp="🧑🏾🎤">artist | hudtype 5 | konsert | rock | sanger</annotation>
+ <annotation cp="🧑🏾🎤" type="tts">artist: hudtype 5</annotation>
+ <annotation cp="🧑🏿🎤">artist | hudtype 6 | konsert | rock | sanger</annotation>
+ <annotation cp="🧑🏿🎤" type="tts">artist: hudtype 6</annotation>
+ <annotation cp="👨🏻🎤">artist | hudtype 1–2 | konsert | mann | mannlig artist | sanger</annotation>
+ <annotation cp="👨🏻🎤" type="tts">mannlig artist: hudtype 1–2</annotation>
+ <annotation cp="👨🏼🎤">artist | hudtype 3 | konsert | mann | mannlig artist | sanger</annotation>
+ <annotation cp="👨🏼🎤" type="tts">mannlig artist: hudtype 3</annotation>
+ <annotation cp="👨🏽🎤">artist | hudtype 4 | konsert | mann | mannlig artist | sanger</annotation>
+ <annotation cp="👨🏽🎤" type="tts">mannlig artist: hudtype 4</annotation>
+ <annotation cp="👨🏾🎤">artist | hudtype 5 | konsert | mann | mannlig artist | sanger</annotation>
+ <annotation cp="👨🏾🎤" type="tts">mannlig artist: hudtype 5</annotation>
+ <annotation cp="👨🏿🎤">artist | hudtype 6 | konsert | mann | mannlig artist | sanger</annotation>
+ <annotation cp="👨🏿🎤" type="tts">mannlig artist: hudtype 6</annotation>
+ <annotation cp="👩🏻🎤">artist | hudtype 1–2 | konsert | kvinne | kvinnelig artist | rock | sanger</annotation>
+ <annotation cp="👩🏻🎤" type="tts">kvinnelig artist: hudtype 1–2</annotation>
+ <annotation cp="👩🏼🎤">artist | hudtype 3 | konsert | kvinne | kvinnelig artist | rock | sanger</annotation>
+ <annotation cp="👩🏼🎤" type="tts">kvinnelig artist: hudtype 3</annotation>
+ <annotation cp="👩🏽🎤">artist | hudtype 4 | konsert | kvinne | kvinnelig artist | rock | sanger</annotation>
+ <annotation cp="👩🏽🎤" type="tts">kvinnelig artist: hudtype 4</annotation>
+ <annotation cp="👩🏾🎤">artist | hudtype 5 | konsert | kvinne | kvinnelig artist | rock | sanger</annotation>
+ <annotation cp="👩🏾🎤" type="tts">kvinnelig artist: hudtype 5</annotation>
+ <annotation cp="👩🏿🎤">artist | hudtype 6 | konsert | kvinne | kvinnelig artist | rock | sanger</annotation>
+ <annotation cp="👩🏿🎤" type="tts">kvinnelig artist: hudtype 6</annotation>
+ <annotation cp="🧑🏻🎨">hudtype 1–2 | kunstner | maler</annotation>
+ <annotation cp="🧑🏻🎨" type="tts">kunstner: hudtype 1–2</annotation>
+ <annotation cp="🧑🏼🎨">hudtype 3 | kunstner | maler</annotation>
+ <annotation cp="🧑🏼🎨" type="tts">kunstner: hudtype 3</annotation>
+ <annotation cp="🧑🏽🎨">hudtype 4 | kunstner | maler</annotation>
+ <annotation cp="🧑🏽🎨" type="tts">kunstner: hudtype 4</annotation>
+ <annotation cp="🧑🏾🎨">hudtype 5 | kunstner | maler</annotation>
+ <annotation cp="🧑🏾🎨" type="tts">kunstner: hudtype 5</annotation>
+ <annotation cp="🧑🏿🎨">hudtype 6 | kunstner | maler</annotation>
+ <annotation cp="🧑🏿🎨" type="tts">kunstner: hudtype 6</annotation>
+ <annotation cp="👨🏻🎨">hudtype 1–2 | kunstner | maler | mann | mannlig kunstner</annotation>
+ <annotation cp="👨🏻🎨" type="tts">mannlig kunstner: hudtype 1–2</annotation>
+ <annotation cp="👨🏼🎨">hudtype 3 | kunstner | maler | mann | mannlig kunstner</annotation>
+ <annotation cp="👨🏼🎨" type="tts">mannlig kunstner: hudtype 3</annotation>
+ <annotation cp="👨🏽🎨">hudtype 4 | kunstner | maler | mann | mannlig kunstner</annotation>
+ <annotation cp="👨🏽🎨" type="tts">mannlig kunstner: hudtype 4</annotation>
+ <annotation cp="👨🏾🎨">hudtype 5 | kunstner | maler | mann | mannlig kunstner</annotation>
+ <annotation cp="👨🏾🎨" type="tts">mannlig kunstner: hudtype 5</annotation>
+ <annotation cp="👨🏿🎨">hudtype 6 | kunstner | maler | mann | mannlig kunstner</annotation>
+ <annotation cp="👨🏿🎨" type="tts">mannlig kunstner: hudtype 6</annotation>
+ <annotation cp="👩🏻🎨">hudtype 1–2 | kunstner | kvinne | kvinnelig kunstner | maler</annotation>
+ <annotation cp="👩🏻🎨" type="tts">kvinnelig kunstner: hudtype 1–2</annotation>
+ <annotation cp="👩🏼🎨">hudtype 3 | kunstner | kvinne | kvinnelig kunstner | maler</annotation>
+ <annotation cp="👩🏼🎨" type="tts">kvinnelig kunstner: hudtype 3</annotation>
+ <annotation cp="👩🏽🎨">hudtype 4 | kunstner | kvinne | kvinnelig kunstner | maler</annotation>
+ <annotation cp="👩🏽🎨" type="tts">kvinnelig kunstner: hudtype 4</annotation>
+ <annotation cp="👩🏾🎨">hudtype 5 | kunstner | kvinne | kvinnelig kunstner | maler</annotation>
+ <annotation cp="👩🏾🎨" type="tts">kvinnelig kunstner: hudtype 5</annotation>
+ <annotation cp="👩🏿🎨">hudtype 6 | kunstner | kvinne | kvinnelig kunstner | maler</annotation>
+ <annotation cp="👩🏿🎨" type="tts">kvinnelig kunstner: hudtype 6</annotation>
+ <annotation cp="🧑🏻✈">fly | hudtype 1–2 | pilot</annotation>
+ <annotation cp="🧑🏻✈" type="tts">pilot: hudtype 1–2</annotation>
+ <annotation cp="🧑🏼✈">fly | hudtype 3 | pilot</annotation>
+ <annotation cp="🧑🏼✈" type="tts">pilot: hudtype 3</annotation>
+ <annotation cp="🧑🏽✈">fly | hudtype 4 | pilot</annotation>
+ <annotation cp="🧑🏽✈" type="tts">pilot: hudtype 4</annotation>
+ <annotation cp="🧑🏾✈">fly | hudtype 5 | pilot</annotation>
+ <annotation cp="🧑🏾✈" type="tts">pilot: hudtype 5</annotation>
+ <annotation cp="🧑🏿✈">fly | hudtype 6 | pilot</annotation>
+ <annotation cp="🧑🏿✈" type="tts">pilot: hudtype 6</annotation>
+ <annotation cp="👨🏻✈">fly | hudtype 1–2 | mann | mannlig pilot | pilot</annotation>
+ <annotation cp="👨🏻✈" type="tts">mannlig pilot: hudtype 1–2</annotation>
+ <annotation cp="👨🏼✈">fly | hudtype 3 | mann | mannlig pilot | pilot</annotation>
+ <annotation cp="👨🏼✈" type="tts">mannlig pilot: hudtype 3</annotation>
+ <annotation cp="👨🏽✈">fly | hudtype 4 | mann | mannlig pilot | pilot</annotation>
+ <annotation cp="👨🏽✈" type="tts">mannlig pilot: hudtype 4</annotation>
+ <annotation cp="👨🏾✈">fly | hudtype 5 | mann | mannlig pilot | pilot</annotation>
+ <annotation cp="👨🏾✈" type="tts">mannlig pilot: hudtype 5</annotation>
+ <annotation cp="👨🏿✈">fly | hudtype 6 | mann | mannlig pilot | pilot</annotation>
+ <annotation cp="👨🏿✈" type="tts">mannlig pilot: hudtype 6</annotation>
+ <annotation cp="👩🏻✈">fly | hudtype 1–2 | kvinne | kvinnelig pilot | pilot</annotation>
+ <annotation cp="👩🏻✈" type="tts">kvinnelig pilot: hudtype 1–2</annotation>
+ <annotation cp="👩🏼✈">fly | hudtype 3 | kvinne | kvinnelig pilot | pilot</annotation>
+ <annotation cp="👩🏼✈" type="tts">kvinnelig pilot: hudtype 3</annotation>
+ <annotation cp="👩🏽✈">fly | hudtype 4 | kvinne | kvinnelig pilot | pilot</annotation>
+ <annotation cp="👩🏽✈" type="tts">kvinnelig pilot: hudtype 4</annotation>
+ <annotation cp="👩🏾✈">fly | hudtype 5 | kvinne | kvinnelig pilot | pilot</annotation>
+ <annotation cp="👩🏾✈" type="tts">kvinnelig pilot: hudtype 5</annotation>
+ <annotation cp="👩🏿✈">fly | hudtype 6 | kvinne | kvinnelig pilot | pilot</annotation>
+ <annotation cp="👩🏿✈" type="tts">kvinnelig pilot: hudtype 6</annotation>
+ <annotation cp="🧑🏻🚀">astronaut | hudtype 1–2 | romfart | verdensrommet</annotation>
+ <annotation cp="🧑🏻🚀" type="tts">astronaut: hudtype 1–2</annotation>
+ <annotation cp="🧑🏼🚀">astronaut | hudtype 3 | romfart | verdensrommet</annotation>
+ <annotation cp="🧑🏼🚀" type="tts">astronaut: hudtype 3</annotation>
+ <annotation cp="🧑🏽🚀">astronaut | hudtype 4 | romfart | verdensrommet</annotation>
+ <annotation cp="🧑🏽🚀" type="tts">astronaut: hudtype 4</annotation>
+ <annotation cp="🧑🏾🚀">astronaut | hudtype 5 | romfart | verdensrommet</annotation>
+ <annotation cp="🧑🏾🚀" type="tts">astronaut: hudtype 5</annotation>
+ <annotation cp="🧑🏿🚀">astronaut | hudtype 6 | romfart | verdensrommet</annotation>
+ <annotation cp="🧑🏿🚀" type="tts">astronaut: hudtype 6</annotation>
+ <annotation cp="👨🏻🚀">astronaut | hudtype 1–2 | mann | mannlig astronaut | romfart | verdensrommet</annotation>
+ <annotation cp="👨🏻🚀" type="tts">mannlig astronaut: hudtype 1–2</annotation>
+ <annotation cp="👨🏼🚀">astronaut | hudtype 3 | mann | mannlig astronaut | romfart | verdensrommet</annotation>
+ <annotation cp="👨🏼🚀" type="tts">mannlig astronaut: hudtype 3</annotation>
+ <annotation cp="👨🏽🚀">astronaut | hudtype 4 | mann | mannlig astronaut | romfart | verdensrommet</annotation>
+ <annotation cp="👨🏽🚀" type="tts">mannlig astronaut: hudtype 4</annotation>
+ <annotation cp="👨🏾🚀">astronaut | hudtype 5 | mann | mannlig astronaut | romfart | verdensrommet</annotation>
+ <annotation cp="👨🏾🚀" type="tts">mannlig astronaut: hudtype 5</annotation>
+ <annotation cp="👨🏿🚀">astronaut | hudtype 6 | mann | mannlig astronaut | romfart | verdensrommet</annotation>
+ <annotation cp="👨🏿🚀" type="tts">mannlig astronaut: hudtype 6</annotation>
+ <annotation cp="👩🏻🚀">astronaut | hudtype 1–2 | kvinne | kvinnelig astronaut | romfart | verdensrommet</annotation>
+ <annotation cp="👩🏻🚀" type="tts">kvinnelig astronaut: hudtype 1–2</annotation>
+ <annotation cp="👩🏼🚀">astronaut | hudtype 3 | kvinne | kvinnelig astronaut | romfart | verdensrommet</annotation>
+ <annotation cp="👩🏼🚀" type="tts">kvinnelig astronaut: hudtype 3</annotation>
+ <annotation cp="👩🏽🚀">astronaut | hudtype 4 | kvinne | kvinnelig astronaut | romfart | verdensrommet</annotation>
+ <annotation cp="👩🏽🚀" type="tts">kvinnelig astronaut: hudtype 4</annotation>
+ <annotation cp="👩🏾🚀">astronaut | hudtype 5 | kvinne | kvinnelig astronaut | romfart | verdensrommet</annotation>
+ <annotation cp="👩🏾🚀" type="tts">kvinnelig astronaut: hudtype 5</annotation>
+ <annotation cp="👩🏿🚀">astronaut | hudtype 6 | kvinne | kvinnelig astronaut | romfart | verdensrommet</annotation>
+ <annotation cp="👩🏿🚀" type="tts">kvinnelig astronaut: hudtype 6</annotation>
+ <annotation cp="🧑🏻🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 1–2</annotation>
+ <annotation cp="🧑🏻🚒" type="tts">brannkonstabel: hudtype 1–2</annotation>
+ <annotation cp="🧑🏼🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 3</annotation>
+ <annotation cp="🧑🏼🚒" type="tts">brannkonstabel: hudtype 3</annotation>
+ <annotation cp="🧑🏽🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 4</annotation>
+ <annotation cp="🧑🏽🚒" type="tts">brannkonstabel: hudtype 4</annotation>
+ <annotation cp="🧑🏾🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 5</annotation>
+ <annotation cp="🧑🏾🚒" type="tts">brannkonstabel: hudtype 5</annotation>
+ <annotation cp="🧑🏿🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 6</annotation>
+ <annotation cp="🧑🏿🚒" type="tts">brannkonstabel: hudtype 6</annotation>
+ <annotation cp="👨🏻🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 1–2 | mann | mannlig brannkonstabel</annotation>
+ <annotation cp="👨🏻🚒" type="tts">mannlig brannkonstabel: hudtype 1–2</annotation>
+ <annotation cp="👨🏼🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 3 | mann | mannlig brannkonstabel</annotation>
+ <annotation cp="👨🏼🚒" type="tts">mannlig brannkonstabel: hudtype 3</annotation>
+ <annotation cp="👨🏽🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 4 | mann | mannlig brannkonstabel</annotation>
+ <annotation cp="👨🏽🚒" type="tts">mannlig brannkonstabel: hudtype 4</annotation>
+ <annotation cp="👨🏾🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 5 | mann | mannlig brannkonstabel</annotation>
+ <annotation cp="👨🏾🚒" type="tts">mannlig brannkonstabel: hudtype 5</annotation>
+ <annotation cp="👨🏿🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 6 | mann | mannlig brannkonstabel</annotation>
+ <annotation cp="👨🏿🚒" type="tts">mannlig brannkonstabel: hudtype 6</annotation>
+ <annotation cp="👩🏻🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 1–2 | kvinne | kvinnelig brannkonstabel</annotation>
+ <annotation cp="👩🏻🚒" type="tts">kvinnelig brannkonstabel: hudtype 1–2</annotation>
+ <annotation cp="👩🏼🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 3 | kvinne | kvinnelig brannkonstabel</annotation>
+ <annotation cp="👩🏼🚒" type="tts">kvinnelig brannkonstabel: hudtype 3</annotation>
+ <annotation cp="👩🏽🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 4 | kvinne | kvinnelig brannkonstabel</annotation>
+ <annotation cp="👩🏽🚒" type="tts">kvinnelig brannkonstabel: hudtype 4</annotation>
+ <annotation cp="👩🏾🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 5 | kvinne | kvinnelig brannkonstabel</annotation>
+ <annotation cp="👩🏾🚒" type="tts">kvinnelig brannkonstabel: hudtype 5</annotation>
+ <annotation cp="👩🏿🚒">brannbil | brannkonstabel | brannmann | brannvesenet | hudtype 6 | kvinne | kvinnelig brannkonstabel</annotation>
+ <annotation cp="👩🏿🚒" type="tts">kvinnelig brannkonstabel: hudtype 6</annotation>
+ <annotation cp="👮🏻">betjent | hudtype 1–2 | menneske | politi | politibetjent</annotation>
+ <annotation cp="👮🏻" type="tts">politibetjent: hudtype 1–2</annotation>
+ <annotation cp="👮🏼">betjent | hudtype 3 | menneske | politi | politibetjent</annotation>
+ <annotation cp="👮🏼" type="tts">politibetjent: hudtype 3</annotation>
+ <annotation cp="👮🏽">betjent | hudtype 4 | menneske | politi | politibetjent</annotation>
+ <annotation cp="👮🏽" type="tts">politibetjent: hudtype 4</annotation>
+ <annotation cp="👮🏾">betjent | hudtype 5 | menneske | politi | politibetjent</annotation>
+ <annotation cp="👮🏾" type="tts">politibetjent: hudtype 5</annotation>
+ <annotation cp="👮🏿">betjent | hudtype 6 | menneske | politi | politibetjent</annotation>
+ <annotation cp="👮🏿" type="tts">politibetjent: hudtype 6</annotation>
+ <annotation cp="👮🏻♂">betjent | hudtype 1–2 | mann | mannlig politibetjent | politi | politibetjent</annotation>
+ <annotation cp="👮🏻♂" type="tts">mannlig politibetjent: hudtype 1–2</annotation>
+ <annotation cp="👮🏼♂">betjent | hudtype 3 | mann | mannlig politibetjent | politi | politibetjent</annotation>
+ <annotation cp="👮🏼♂" type="tts">mannlig politibetjent: hudtype 3</annotation>
+ <annotation cp="👮🏽♂">betjent | hudtype 4 | mann | mannlig politibetjent | politi | politibetjent</annotation>
+ <annotation cp="👮🏽♂" type="tts">mannlig politibetjent: hudtype 4</annotation>
+ <annotation cp="👮🏾♂">betjent | hudtype 5 | mann | mannlig politibetjent | politi | politibetjent</annotation>
+ <annotation cp="👮🏾♂" type="tts">mannlig politibetjent: hudtype 5</annotation>
+ <annotation cp="👮🏿♂">betjent | hudtype 6 | mann | mannlig politibetjent | politi | politibetjent</annotation>
+ <annotation cp="👮🏿♂" type="tts">mannlig politibetjent: hudtype 6</annotation>
+ <annotation cp="👮🏻♀">betjent | hudtype 1–2 | kvinne | kvinnelig politibetjent | politi | politibetjent</annotation>
+ <annotation cp="👮🏻♀" type="tts">kvinnelig politibetjent: hudtype 1–2</annotation>
+ <annotation cp="👮🏼♀">betjent | hudtype 3 | kvinne | kvinnelig politibetjent | politi | politibetjent</annotation>
+ <annotation cp="👮🏼♀" type="tts">kvinnelig politibetjent: hudtype 3</annotation>
+ <annotation cp="👮🏽♀">betjent | hudtype 4 | kvinne | kvinnelig politibetjent | politi | politibetjent</annotation>
+ <annotation cp="👮🏽♀" type="tts">kvinnelig politibetjent: hudtype 4</annotation>
+ <annotation cp="👮🏾♀">betjent | hudtype 5 | kvinne | kvinnelig politibetjent | politi | politibetjent</annotation>
+ <annotation cp="👮🏾♀" type="tts">kvinnelig politibetjent: hudtype 5</annotation>
+ <annotation cp="👮🏿♀">betjent | hudtype 6 | kvinne | kvinnelig politibetjent | politi | politibetjent</annotation>
+ <annotation cp="👮🏿♀" type="tts">kvinnelig politibetjent: hudtype 6</annotation>
+ <annotation cp="🕵🏻">detektiv | hudtype 1–2 | spion</annotation>
+ <annotation cp="🕵🏻" type="tts">detektiv: hudtype 1–2</annotation>
+ <annotation cp="🕵🏼">detektiv | hudtype 3 | spion</annotation>
+ <annotation cp="🕵🏼" type="tts">detektiv: hudtype 3</annotation>
+ <annotation cp="🕵🏽">detektiv | hudtype 4 | spion</annotation>
+ <annotation cp="🕵🏽" type="tts">detektiv: hudtype 4</annotation>
+ <annotation cp="🕵🏾">detektiv | hudtype 5 | spion</annotation>
+ <annotation cp="🕵🏾" type="tts">detektiv: hudtype 5</annotation>
+ <annotation cp="🕵🏿">detektiv | hudtype 6 | spion</annotation>
+ <annotation cp="🕵🏿" type="tts">detektiv: hudtype 6</annotation>
+ <annotation cp="🕵🏻♂">etterforske | forbrytelse | hudtype 1–2 | mann | mannlig detektiv | privatdetektiv</annotation>
+ <annotation cp="🕵🏻♂" type="tts">mannlig detektiv: hudtype 1–2</annotation>
+ <annotation cp="🕵🏼♂">etterforske | forbrytelse | hudtype 3 | mann | mannlig detektiv | privatdetektiv</annotation>
+ <annotation cp="🕵🏼♂" type="tts">mannlig detektiv: hudtype 3</annotation>
+ <annotation cp="🕵🏽♂">etterforske | forbrytelse | hudtype 4 | mann | mannlig detektiv | privatdetektiv</annotation>
+ <annotation cp="🕵🏽♂" type="tts">mannlig detektiv: hudtype 4</annotation>
+ <annotation cp="🕵🏾♂">etterforske | forbrytelse | hudtype 5 | mann | mannlig detektiv | privatdetektiv</annotation>
+ <annotation cp="🕵🏾♂" type="tts">mannlig detektiv: hudtype 5</annotation>
+ <annotation cp="🕵🏿♂">etterforske | forbrytelse | hudtype 6 | mann | mannlig detektiv | privatdetektiv</annotation>
+ <annotation cp="🕵🏿♂" type="tts">mannlig detektiv: hudtype 6</annotation>
+ <annotation cp="🕵🏻♀">etterforske | forbrytelse | hudtype 1–2 | kvinne | kvinnelig detektiv | privatdetektiv</annotation>
+ <annotation cp="🕵🏻♀" type="tts">kvinnelig detektiv: hudtype 1–2</annotation>
+ <annotation cp="🕵🏼♀">etterforske | forbrytelse | hudtype 3 | kvinne | kvinnelig detektiv | privatdetektiv</annotation>
+ <annotation cp="🕵🏼♀" type="tts">kvinnelig detektiv: hudtype 3</annotation>
+ <annotation cp="🕵🏽♀">etterforske | forbrytelse | hudtype 4 | kvinne | kvinnelig detektiv | privatdetektiv</annotation>
+ <annotation cp="🕵🏽♀" type="tts">kvinnelig detektiv: hudtype 4</annotation>
+ <annotation cp="🕵🏾♀">etterforske | forbrytelse | hudtype 5 | kvinne | kvinnelig detektiv | privatdetektiv</annotation>
+ <annotation cp="🕵🏾♀" type="tts">kvinnelig detektiv: hudtype 5</annotation>
+ <annotation cp="🕵🏿♀">etterforske | forbrytelse | hudtype 6 | kvinne | kvinnelig detektiv | privatdetektiv</annotation>
+ <annotation cp="🕵🏿♀" type="tts">kvinnelig detektiv: hudtype 6</annotation>
+ <annotation cp="💂🏻">gardist | hudtype 1–2 | menneske | vakt</annotation>
+ <annotation cp="💂🏻" type="tts">gardist: hudtype 1–2</annotation>
+ <annotation cp="💂🏼">gardist | hudtype 3 | menneske | vakt</annotation>
+ <annotation cp="💂🏼" type="tts">gardist: hudtype 3</annotation>
+ <annotation cp="💂🏽">gardist | hudtype 4 | menneske | vakt</annotation>
+ <annotation cp="💂🏽" type="tts">gardist: hudtype 4</annotation>
+ <annotation cp="💂🏾">gardist | hudtype 5 | menneske | vakt</annotation>
+ <annotation cp="💂🏾" type="tts">gardist: hudtype 5</annotation>
+ <annotation cp="💂🏿">gardist | hudtype 6 | menneske | vakt</annotation>
+ <annotation cp="💂🏿" type="tts">gardist: hudtype 6</annotation>
+ <annotation cp="💂🏻♂">gardist | hudtype 1–2 | mann | mannlig gardist | vakt</annotation>
+ <annotation cp="💂🏻♂" type="tts">mannlig gardist: hudtype 1–2</annotation>
+ <annotation cp="💂🏼♂">gardist | hudtype 3 | mann | mannlig gardist | vakt</annotation>
+ <annotation cp="💂🏼♂" type="tts">mannlig gardist: hudtype 3</annotation>
+ <annotation cp="💂🏽♂">gardist | hudtype 4 | mann | mannlig gardist | vakt</annotation>
+ <annotation cp="💂🏽♂" type="tts">mannlig gardist: hudtype 4</annotation>
+ <annotation cp="💂🏾♂">gardist | hudtype 5 | mann | mannlig gardist | vakt</annotation>
+ <annotation cp="💂🏾♂" type="tts">mannlig gardist: hudtype 5</annotation>
+ <annotation cp="💂🏿♂">gardist | hudtype 6 | mann | mannlig gardist | vakt</annotation>
+ <annotation cp="💂🏿♂" type="tts">mannlig gardist: hudtype 6</annotation>
+ <annotation cp="💂🏻♀">gardist | hudtype 1–2 | kvinne | kvinnelig gardist | vakt</annotation>
+ <annotation cp="💂🏻♀" type="tts">kvinnelig gardist: hudtype 1–2</annotation>
+ <annotation cp="💂🏼♀">gardist | hudtype 3 | kvinne | kvinnelig gardist | vakt</annotation>
+ <annotation cp="💂🏼♀" type="tts">kvinnelig gardist: hudtype 3</annotation>
+ <annotation cp="💂🏽♀">gardist | hudtype 4 | kvinne | kvinnelig gardist | vakt</annotation>
+ <annotation cp="💂🏽♀" type="tts">kvinnelig gardist: hudtype 4</annotation>
+ <annotation cp="💂🏾♀">gardist | hudtype 5 | kvinne | kvinnelig gardist | vakt</annotation>
+ <annotation cp="💂🏾♀" type="tts">kvinnelig gardist: hudtype 5</annotation>
+ <annotation cp="💂🏿♀">gardist | hudtype 6 | kvinne | kvinnelig gardist | vakt</annotation>
+ <annotation cp="💂🏿♀" type="tts">kvinnelig gardist: hudtype 6</annotation>
+ <annotation cp="🥷🏻">hudtype 1–2 | kampkunst | kriger | ninja | skjult</annotation>
+ <annotation cp="🥷🏻" type="tts">ninja: hudtype 1–2</annotation>
+ <annotation cp="🥷🏼">hudtype 3 | kampkunst | kriger | ninja | skjult</annotation>
+ <annotation cp="🥷🏼" type="tts">ninja: hudtype 3</annotation>
+ <annotation cp="🥷🏽">hudtype 4 | kampkunst | kriger | ninja | skjult</annotation>
+ <annotation cp="🥷🏽" type="tts">ninja: hudtype 4</annotation>
+ <annotation cp="🥷🏾">hudtype 5 | kampkunst | kriger | ninja | skjult</annotation>
+ <annotation cp="🥷🏾" type="tts">ninja: hudtype 5</annotation>
+ <annotation cp="🥷🏿">hudtype 6 | kampkunst | kriger | ninja | skjult</annotation>
+ <annotation cp="🥷🏿" type="tts">ninja: hudtype 6</annotation>
+ <annotation cp="👷🏻">anlegg | anleggsarbeider | arbeider | hjelm | hudtype 1–2 | ingeniør | menneske</annotation>
+ <annotation cp="👷🏻" type="tts">anleggsarbeider: hudtype 1–2</annotation>
+ <annotation cp="👷🏼">anlegg | anleggsarbeider | arbeider | hjelm | hudtype 3 | ingeniør | menneske</annotation>
+ <annotation cp="👷🏼" type="tts">anleggsarbeider: hudtype 3</annotation>
+ <annotation cp="👷🏽">anlegg | anleggsarbeider | arbeider | hjelm | hudtype 4 | ingeniør | menneske</annotation>
+ <annotation cp="👷🏽" type="tts">anleggsarbeider: hudtype 4</annotation>
+ <annotation cp="👷🏾">anlegg | anleggsarbeider | arbeider | hjelm | hudtype 5 | ingeniør | menneske</annotation>
+ <annotation cp="👷🏾" type="tts">anleggsarbeider: hudtype 5</annotation>
+ <annotation cp="👷🏿">anlegg | anleggsarbeider | arbeider | hjelm | hudtype 6 | ingeniør | menneske</annotation>
+ <annotation cp="👷🏿" type="tts">anleggsarbeider: hudtype 6</annotation>
+ <annotation cp="👷🏻♂">anlegg | arbeider | bygg | hjelm | hudtype 1–2 | ingeniør | mann | mannlig anleggsarbeider</annotation>
+ <annotation cp="👷🏻♂" type="tts">mannlig anleggsarbeider: hudtype 1–2</annotation>
+ <annotation cp="👷🏼♂">anlegg | arbeider | bygg | hjelm | hudtype 3 | ingeniør | mann | mannlig anleggsarbeider</annotation>
+ <annotation cp="👷🏼♂" type="tts">mannlig anleggsarbeider: hudtype 3</annotation>
+ <annotation cp="👷🏽♂">anlegg | arbeider | bygg | hjelm | hudtype 4 | ingeniør | mann | mannlig anleggsarbeider</annotation>
+ <annotation cp="👷🏽♂" type="tts">mannlig anleggsarbeider: hudtype 4</annotation>
+ <annotation cp="👷🏾♂">anlegg | arbeider | bygg | hjelm | hudtype 5 | ingeniør | mann | mannlig anleggsarbeider</annotation>
+ <annotation cp="👷🏾♂" type="tts">mannlig anleggsarbeider: hudtype 5</annotation>
+ <annotation cp="👷🏿♂">anlegg | arbeider | bygg | hjelm | hudtype 6 | ingeniør | mann | mannlig anleggsarbeider</annotation>
+ <annotation cp="👷🏿♂" type="tts">mannlig anleggsarbeider: hudtype 6</annotation>
+ <annotation cp="👷🏻♀">anlegg | arbeider | bygg | hjelm | hudtype 1–2 | ingeniør | kvinne | kvinnelig anleggsarbeider</annotation>
+ <annotation cp="👷🏻♀" type="tts">kvinnelig anleggsarbeider: hudtype 1–2</annotation>
+ <annotation cp="👷🏼♀">anlegg | arbeider | bygg | hjelm | hudtype 3 | ingeniør | kvinne | kvinnelig anleggsarbeider</annotation>
+ <annotation cp="👷🏼♀" type="tts">kvinnelig anleggsarbeider: hudtype 3</annotation>
+ <annotation cp="👷🏽♀">anlegg | arbeider | bygg | hjelm | hudtype 4 | ingeniør | kvinne | kvinnelig anleggsarbeider</annotation>
+ <annotation cp="👷🏽♀" type="tts">kvinnelig anleggsarbeider: hudtype 4</annotation>
+ <annotation cp="👷🏾♀">anlegg | arbeider | bygg | hjelm | hudtype 5 | ingeniør | kvinne | kvinnelig anleggsarbeider</annotation>
+ <annotation cp="👷🏾♀" type="tts">kvinnelig anleggsarbeider: hudtype 5</annotation>
+ <annotation cp="👷🏿♀">anlegg | arbeider | bygg | hjelm | hudtype 6 | ingeniør | kvinne | kvinnelig anleggsarbeider</annotation>
+ <annotation cp="👷🏿♀" type="tts">kvinnelig anleggsarbeider: hudtype 6</annotation>
+ <annotation cp="🤴🏻">hudtype 1–2 | prins</annotation>
+ <annotation cp="🤴🏻" type="tts">prins: hudtype 1–2</annotation>
+ <annotation cp="🤴🏼">hudtype 3 | prins</annotation>
+ <annotation cp="🤴🏼" type="tts">prins: hudtype 3</annotation>
+ <annotation cp="🤴🏽">hudtype 4 | prins</annotation>
+ <annotation cp="🤴🏽" type="tts">prins: hudtype 4</annotation>
+ <annotation cp="🤴🏾">hudtype 5 | prins</annotation>
+ <annotation cp="🤴🏾" type="tts">prins: hudtype 5</annotation>
+ <annotation cp="🤴🏿">hudtype 6 | prins</annotation>
+ <annotation cp="🤴🏿" type="tts">prins: hudtype 6</annotation>
+ <annotation cp="👸🏻">eventyr | fantasy | hudtype 1–2 | menneske | prinsesse</annotation>
+ <annotation cp="👸🏻" type="tts">prinsesse: hudtype 1–2</annotation>
+ <annotation cp="👸🏼">eventyr | fantasy | hudtype 3 | menneske | prinsesse</annotation>
+ <annotation cp="👸🏼" type="tts">prinsesse: hudtype 3</annotation>
+ <annotation cp="👸🏽">eventyr | fantasy | hudtype 4 | menneske | prinsesse</annotation>
+ <annotation cp="👸🏽" type="tts">prinsesse: hudtype 4</annotation>
+ <annotation cp="👸🏾">eventyr | fantasy | hudtype 5 | menneske | prinsesse</annotation>
+ <annotation cp="👸🏾" type="tts">prinsesse: hudtype 5</annotation>
+ <annotation cp="👸🏿">eventyr | fantasy | hudtype 6 | menneske | prinsesse</annotation>
+ <annotation cp="👸🏿" type="tts">prinsesse: hudtype 6</annotation>
+ <annotation cp="👳🏻">hudtype 1–2 | menneske | turban | turbankledd person</annotation>
+ <annotation cp="👳🏻" type="tts">turbankledd person: hudtype 1–2</annotation>
+ <annotation cp="👳🏼">hudtype 3 | menneske | turban | turbankledd person</annotation>
+ <annotation cp="👳🏼" type="tts">turbankledd person: hudtype 3</annotation>
+ <annotation cp="👳🏽">hudtype 4 | menneske | turban | turbankledd person</annotation>
+ <annotation cp="👳🏽" type="tts">turbankledd person: hudtype 4</annotation>
+ <annotation cp="👳🏾">hudtype 5 | menneske | turban | turbankledd person</annotation>
+ <annotation cp="👳🏾" type="tts">turbankledd person: hudtype 5</annotation>
+ <annotation cp="👳🏿">hudtype 6 | menneske | turban | turbankledd person</annotation>
+ <annotation cp="👳🏿" type="tts">turbankledd person: hudtype 6</annotation>
+ <annotation cp="👳🏻♂">hudtype 1–2 | mann | turban | turbankledd mann</annotation>
+ <annotation cp="👳🏻♂" type="tts">turbankledd mann: hudtype 1–2</annotation>
+ <annotation cp="👳🏼♂">hudtype 3 | mann | turban | turbankledd mann</annotation>
+ <annotation cp="👳🏼♂" type="tts">turbankledd mann: hudtype 3</annotation>
+ <annotation cp="👳🏽♂">hudtype 4 | mann | turban | turbankledd mann</annotation>
+ <annotation cp="👳🏽♂" type="tts">turbankledd mann: hudtype 4</annotation>
+ <annotation cp="👳🏾♂">hudtype 5 | mann | turban | turbankledd mann</annotation>
+ <annotation cp="👳🏾♂" type="tts">turbankledd mann: hudtype 5</annotation>
+ <annotation cp="👳🏿♂">hudtype 6 | mann | turban | turbankledd mann</annotation>
+ <annotation cp="👳🏿♂" type="tts">turbankledd mann: hudtype 6</annotation>
+ <annotation cp="👳🏻♀">hudtype 1–2 | kvinne | turban | turbankledd kvinne</annotation>
+ <annotation cp="👳🏻♀" type="tts">turbankledd kvinne: hudtype 1–2</annotation>
+ <annotation cp="👳🏼♀">hudtype 3 | kvinne | turban | turbankledd kvinne</annotation>
+ <annotation cp="👳🏼♀" type="tts">turbankledd kvinne: hudtype 3</annotation>
+ <annotation cp="👳🏽♀">hudtype 4 | kvinne | turban | turbankledd kvinne</annotation>
+ <annotation cp="👳🏽♀" type="tts">turbankledd kvinne: hudtype 4</annotation>
+ <annotation cp="👳🏾♀">hudtype 5 | kvinne | turban | turbankledd kvinne</annotation>
+ <annotation cp="👳🏾♀" type="tts">turbankledd kvinne: hudtype 5</annotation>
+ <annotation cp="👳🏿♀">hudtype 6 | kvinne | turban | turbankledd kvinne</annotation>
+ <annotation cp="👳🏿♀" type="tts">turbankledd kvinne: hudtype 6</annotation>
+ <annotation cp="👲🏻">gua pi mao | hatt | hudtype 1–2 | lue | mann | mann med kinesisk lue | menneske</annotation>
+ <annotation cp="👲🏻" type="tts">mann med kinesisk lue: hudtype 1–2</annotation>
+ <annotation cp="👲🏼">gua pi mao | hatt | hudtype 3 | lue | mann | mann med kinesisk lue | menneske</annotation>
+ <annotation cp="👲🏼" type="tts">mann med kinesisk lue: hudtype 3</annotation>
+ <annotation cp="👲🏽">gua pi mao | hatt | hudtype 4 | lue | mann | mann med kinesisk lue | menneske</annotation>
+ <annotation cp="👲🏽" type="tts">mann med kinesisk lue: hudtype 4</annotation>
+ <annotation cp="👲🏾">gua pi mao | hatt | hudtype 5 | lue | mann | mann med kinesisk lue | menneske</annotation>
+ <annotation cp="👲🏾" type="tts">mann med kinesisk lue: hudtype 5</annotation>
+ <annotation cp="👲🏿">gua pi mao | hatt | hudtype 6 | lue | mann | mann med kinesisk lue | menneske</annotation>
+ <annotation cp="👲🏿" type="tts">mann med kinesisk lue: hudtype 6</annotation>
+ <annotation cp="🧕🏻">hijab | hodeskjerf | hodeslør | hudtype 1–2 | kvinne med hodeslør | muslim</annotation>
+ <annotation cp="🧕🏻" type="tts">kvinne med hodeslør: hudtype 1–2</annotation>
+ <annotation cp="🧕🏼">hijab | hodeskjerf | hodeslør | hudtype 3 | kvinne med hodeslør | muslim</annotation>
+ <annotation cp="🧕🏼" type="tts">kvinne med hodeslør: hudtype 3</annotation>
+ <annotation cp="🧕🏽">hijab | hodeskjerf | hodeslør | hudtype 4 | kvinne med hodeslør | muslim</annotation>
+ <annotation cp="🧕🏽" type="tts">kvinne med hodeslør: hudtype 4</annotation>
+ <annotation cp="🧕🏾">hijab | hodeskjerf | hodeslør | hudtype 5 | kvinne med hodeslør | muslim</annotation>
+ <annotation cp="🧕🏾" type="tts">kvinne med hodeslør: hudtype 5</annotation>
+ <annotation cp="🧕🏿">hijab | hodeskjerf | hodeslør | hudtype 6 | kvinne med hodeslør | muslim</annotation>
+ <annotation cp="🧕🏿" type="tts">kvinne med hodeslør: hudtype 6</annotation>
+ <annotation cp="🤵🏻">brudgom | hudtype 1–2 | person | person i smoking | smoking</annotation>
+ <annotation cp="🤵🏻" type="tts">person i smoking: hudtype 1–2</annotation>
+ <annotation cp="🤵🏼">brudgom | hudtype 3 | person | person i smoking | smoking</annotation>
+ <annotation cp="🤵🏼" type="tts">person i smoking: hudtype 3</annotation>
+ <annotation cp="🤵🏽">brudgom | hudtype 4 | person | person i smoking | smoking</annotation>
+ <annotation cp="🤵🏽" type="tts">person i smoking: hudtype 4</annotation>
+ <annotation cp="🤵🏾">brudgom | hudtype 5 | person | person i smoking | smoking</annotation>
+ <annotation cp="🤵🏾" type="tts">person i smoking: hudtype 5</annotation>
+ <annotation cp="🤵🏿">brudgom | hudtype 6 | person | person i smoking | smoking</annotation>
+ <annotation cp="🤵🏿" type="tts">person i smoking: hudtype 6</annotation>
+ <annotation cp="🤵🏻♂">hudtype 1–2 | mann | mann i smoking | smoking</annotation>
+ <annotation cp="🤵🏻♂" type="tts">mann i smoking: hudtype 1–2</annotation>
+ <annotation cp="🤵🏼♂">hudtype 3 | mann | mann i smoking | smoking</annotation>
+ <annotation cp="🤵🏼♂" type="tts">mann i smoking: hudtype 3</annotation>
+ <annotation cp="🤵🏽♂">hudtype 4 | mann | mann i smoking | smoking</annotation>
+ <annotation cp="🤵🏽♂" type="tts">mann i smoking: hudtype 4</annotation>
+ <annotation cp="🤵🏾♂">hudtype 5 | mann | mann i smoking | smoking</annotation>
+ <annotation cp="🤵🏾♂" type="tts">mann i smoking: hudtype 5</annotation>
+ <annotation cp="🤵🏿♂">hudtype 6 | mann | mann i smoking | smoking</annotation>
+ <annotation cp="🤵🏿♂" type="tts">mann i smoking: hudtype 6</annotation>
+ <annotation cp="🤵🏻♀">hudtype 1–2 | kvinne | kvinne i smoking | smoking</annotation>
+ <annotation cp="🤵🏻♀" type="tts">kvinne i smoking: hudtype 1–2</annotation>
+ <annotation cp="🤵🏼♀">hudtype 3 | kvinne | kvinne i smoking | smoking</annotation>
+ <annotation cp="🤵🏼♀" type="tts">kvinne i smoking: hudtype 3</annotation>
+ <annotation cp="🤵🏽♀">hudtype 4 | kvinne | kvinne i smoking | smoking</annotation>
+ <annotation cp="🤵🏽♀" type="tts">kvinne i smoking: hudtype 4</annotation>
+ <annotation cp="🤵🏾♀">hudtype 5 | kvinne | kvinne i smoking | smoking</annotation>
+ <annotation cp="🤵🏾♀" type="tts">kvinne i smoking: hudtype 5</annotation>
+ <annotation cp="🤵🏿♀">hudtype 6 | kvinne | kvinne i smoking | smoking</annotation>
+ <annotation cp="🤵🏿♀" type="tts">kvinne i smoking: hudtype 6</annotation>
+ <annotation cp="👰🏻">brud | brud med slør | bryllup | hudtype 1–2 | mennesker | person med slør | slør</annotation>
+ <annotation cp="👰🏻" type="tts">person med slør: hudtype 1–2</annotation>
+ <annotation cp="👰🏼">brud | brud med slør | bryllup | hudtype 3 | mennesker | person med slør | slør</annotation>
+ <annotation cp="👰🏼" type="tts">person med slør: hudtype 3</annotation>
+ <annotation cp="👰🏽">brud | brud med slør | bryllup | hudtype 4 | mennesker | person med slør | slør</annotation>
+ <annotation cp="👰🏽" type="tts">person med slør: hudtype 4</annotation>
+ <annotation cp="👰🏾">brud | brud med slør | bryllup | hudtype 5 | mennesker | person med slør | slør</annotation>
+ <annotation cp="👰🏾" type="tts">person med slør: hudtype 5</annotation>
+ <annotation cp="👰🏿">brud | brud med slør | bryllup | hudtype 6 | mennesker | person med slør | slør</annotation>
+ <annotation cp="👰🏿" type="tts">person med slør: hudtype 6</annotation>
+ <annotation cp="👰🏻♂">hudtype 1–2 | mann | mann med slør | slør</annotation>
+ <annotation cp="👰🏻♂" type="tts">mann med slør: hudtype 1–2</annotation>
+ <annotation cp="👰🏼♂">hudtype 3 | mann | mann med slør | slør</annotation>
+ <annotation cp="👰🏼♂" type="tts">mann med slør: hudtype 3</annotation>
+ <annotation cp="👰🏽♂">hudtype 4 | mann | mann med slør | slør</annotation>
+ <annotation cp="👰🏽♂" type="tts">mann med slør: hudtype 4</annotation>
+ <annotation cp="👰🏾♂">hudtype 5 | mann | mann med slør | slør</annotation>
+ <annotation cp="👰🏾♂" type="tts">mann med slør: hudtype 5</annotation>
+ <annotation cp="👰🏿♂">hudtype 6 | mann | mann med slør | slør</annotation>
+ <annotation cp="👰🏿♂" type="tts">mann med slør: hudtype 6</annotation>
+ <annotation cp="👰🏻♀">hudtype 1–2 | kvinne | kvinne med slør | slør</annotation>
+ <annotation cp="👰🏻♀" type="tts">kvinne med slør: hudtype 1–2</annotation>
+ <annotation cp="👰🏼♀">hudtype 3 | kvinne | kvinne med slør | slør</annotation>
+ <annotation cp="👰🏼♀" type="tts">kvinne med slør: hudtype 3</annotation>
+ <annotation cp="👰🏽♀">hudtype 4 | kvinne | kvinne med slør | slør</annotation>
+ <annotation cp="👰🏽♀" type="tts">kvinne med slør: hudtype 4</annotation>
+ <annotation cp="👰🏾♀">hudtype 5 | kvinne | kvinne med slør | slør</annotation>
+ <annotation cp="👰🏾♀" type="tts">kvinne med slør: hudtype 5</annotation>
+ <annotation cp="👰🏿♀">hudtype 6 | kvinne | kvinne med slør | slør</annotation>
+ <annotation cp="👰🏿♀" type="tts">kvinne med slør: hudtype 6</annotation>
+ <annotation cp="🤰🏻">gravid | hudtype 1–2 | kvinne</annotation>
+ <annotation cp="🤰🏻" type="tts">gravid kvinne: hudtype 1–2</annotation>
+ <annotation cp="🤰🏼">gravid | hudtype 3 | kvinne</annotation>
+ <annotation cp="🤰🏼" type="tts">gravid kvinne: hudtype 3</annotation>
+ <annotation cp="🤰🏽">gravid | hudtype 4 | kvinne</annotation>
+ <annotation cp="🤰🏽" type="tts">gravid kvinne: hudtype 4</annotation>
+ <annotation cp="🤰🏾">gravid | hudtype 5 | kvinne</annotation>
+ <annotation cp="🤰🏾" type="tts">gravid kvinne: hudtype 5</annotation>
+ <annotation cp="🤰🏿">gravid | hudtype 6 | kvinne</annotation>
+ <annotation cp="🤰🏿" type="tts">gravid kvinne: hudtype 6</annotation>
+ <annotation cp="🤱🏻">ammer | amming | baby | bryst | hudtype 1–2 | morsmelk</annotation>
+ <annotation cp="🤱🏻" type="tts">ammer: hudtype 1–2</annotation>
+ <annotation cp="🤱🏼">ammer | amming | baby | bryst | hudtype 3 | morsmelk</annotation>
+ <annotation cp="🤱🏼" type="tts">ammer: hudtype 3</annotation>
+ <annotation cp="🤱🏽">ammer | amming | baby | bryst | hudtype 4 | morsmelk</annotation>
+ <annotation cp="🤱🏽" type="tts">ammer: hudtype 4</annotation>
+ <annotation cp="🤱🏾">ammer | amming | baby | bryst | hudtype 5 | morsmelk</annotation>
+ <annotation cp="🤱🏾" type="tts">ammer: hudtype 5</annotation>
+ <annotation cp="🤱🏿">ammer | amming | baby | bryst | hudtype 6 | morsmelk</annotation>
+ <annotation cp="🤱🏿" type="tts">ammer: hudtype 6</annotation>
+ <annotation cp="👩🏻🍼">baby | hudtype 1–2 | kvinne | kvinne som mater baby | mat | tåteflaske</annotation>
+ <annotation cp="👩🏻🍼" type="tts">kvinne som mater baby: hudtype 1–2</annotation>
+ <annotation cp="👩🏼🍼">baby | hudtype 3 | kvinne | kvinne som mater baby | mat | tåteflaske</annotation>
+ <annotation cp="👩🏼🍼" type="tts">kvinne som mater baby: hudtype 3</annotation>
+ <annotation cp="👩🏽🍼">baby | hudtype 4 | kvinne | kvinne som mater baby | mat | tåteflaske</annotation>
+ <annotation cp="👩🏽🍼" type="tts">kvinne som mater baby: hudtype 4</annotation>
+ <annotation cp="👩🏾🍼">baby | hudtype 5 | kvinne | kvinne som mater baby | mat | tåteflaske</annotation>
+ <annotation cp="👩🏾🍼" type="tts">kvinne som mater baby: hudtype 5</annotation>
+ <annotation cp="👩🏿🍼">baby | hudtype 6 | kvinne | kvinne som mater baby | mat | tåteflaske</annotation>
+ <annotation cp="👩🏿🍼" type="tts">kvinne som mater baby: hudtype 6</annotation>
+ <annotation cp="👨🏻🍼">baby | hudtype 1–2 | mann | mann som mater baby | mat | tåteflaske</annotation>
+ <annotation cp="👨🏻🍼" type="tts">mann som mater baby: hudtype 1–2</annotation>
+ <annotation cp="👨🏼🍼">baby | hudtype 3 | mann | mann som mater baby | mat | tåteflaske</annotation>
+ <annotation cp="👨🏼🍼" type="tts">mann som mater baby: hudtype 3</annotation>
+ <annotation cp="👨🏽🍼">baby | hudtype 4 | mann | mann som mater baby | mat | tåteflaske</annotation>
+ <annotation cp="👨🏽🍼" type="tts">mann som mater baby: hudtype 4</annotation>
+ <annotation cp="👨🏾🍼">baby | hudtype 5 | mann | mann som mater baby | mat | tåteflaske</annotation>
+ <annotation cp="👨🏾🍼" type="tts">mann som mater baby: hudtype 5</annotation>
+ <annotation cp="👨🏿🍼">baby | hudtype 6 | mann | mann som mater baby | mat | tåteflaske</annotation>
+ <annotation cp="👨🏿🍼" type="tts">mann som mater baby: hudtype 6</annotation>
+ <annotation cp="🧑🏻🍼">baby | hudtype 1–2 | mat | person | person som mater baby | tåteflaske</annotation>
+ <annotation cp="🧑🏻🍼" type="tts">person som mater baby: hudtype 1–2</annotation>
+ <annotation cp="🧑🏼🍼">baby | hudtype 3 | mat | person | person som mater baby | tåteflaske</annotation>
+ <annotation cp="🧑🏼🍼" type="tts">person som mater baby: hudtype 3</annotation>
+ <annotation cp="🧑🏽🍼">baby | hudtype 4 | mat | person | person som mater baby | tåteflaske</annotation>
+ <annotation cp="🧑🏽🍼" type="tts">person som mater baby: hudtype 4</annotation>
+ <annotation cp="🧑🏾🍼">baby | hudtype 5 | mat | person | person som mater baby | tåteflaske</annotation>
+ <annotation cp="🧑🏾🍼" type="tts">person som mater baby: hudtype 5</annotation>
+ <annotation cp="🧑🏿🍼">baby | hudtype 6 | mat | person | person som mater baby | tåteflaske</annotation>
+ <annotation cp="🧑🏿🍼" type="tts">person som mater baby: hudtype 6</annotation>
+ <annotation cp="👼🏻">ansikt | babyengel | engel | eventyr | hudtype 1–2</annotation>
+ <annotation cp="👼🏻" type="tts">babyengel: hudtype 1–2</annotation>
+ <annotation cp="👼🏼">ansikt | babyengel | engel | eventyr | hudtype 3</annotation>
+ <annotation cp="👼🏼" type="tts">babyengel: hudtype 3</annotation>
+ <annotation cp="👼🏽">ansikt | babyengel | engel | eventyr | hudtype 4</annotation>
+ <annotation cp="👼🏽" type="tts">babyengel: hudtype 4</annotation>
+ <annotation cp="👼🏾">ansikt | babyengel | engel | eventyr | hudtype 5</annotation>
+ <annotation cp="👼🏾" type="tts">babyengel: hudtype 5</annotation>
+ <annotation cp="👼🏿">ansikt | babyengel | engel | eventyr | hudtype 6</annotation>
+ <annotation cp="👼🏿" type="tts">babyengel: hudtype 6</annotation>
+ <annotation cp="🎅🏻">feiring | hudtype 1–2 | jul | julenissen | nissefar | nissen</annotation>
+ <annotation cp="🎅🏻" type="tts">julenissen: hudtype 1–2</annotation>
+ <annotation cp="🎅🏼">feiring | hudtype 3 | jul | julenissen | nissefar | nissen</annotation>
+ <annotation cp="🎅🏼" type="tts">julenissen: hudtype 3</annotation>
+ <annotation cp="🎅🏽">feiring | hudtype 4 | jul | julenissen | nissefar | nissen</annotation>
+ <annotation cp="🎅🏽" type="tts">julenissen: hudtype 4</annotation>
+ <annotation cp="🎅🏾">feiring | hudtype 5 | jul | julenissen | nissefar | nissen</annotation>
+ <annotation cp="🎅🏾" type="tts">julenissen: hudtype 5</annotation>
+ <annotation cp="🎅🏿">feiring | hudtype 6 | jul | julenissen | nissefar | nissen</annotation>
+ <annotation cp="🎅🏿" type="tts">julenissen: hudtype 6</annotation>
+ <annotation cp="🤶🏻">hudtype 1–2 | jul | julenissemor | mor | nisse</annotation>
+ <annotation cp="🤶🏻" type="tts">julenissemor: hudtype 1–2</annotation>
+ <annotation cp="🤶🏼">hudtype 3 | jul | julenissemor | mor | nisse</annotation>
+ <annotation cp="🤶🏼" type="tts">julenissemor: hudtype 3</annotation>
+ <annotation cp="🤶🏽">hudtype 4 | jul | julenissemor | mor | nisse</annotation>
+ <annotation cp="🤶🏽" type="tts">julenissemor: hudtype 4</annotation>
+ <annotation cp="🤶🏾">hudtype 5 | jul | julenissemor | mor | nisse</annotation>
+ <annotation cp="🤶🏾" type="tts">julenissemor: hudtype 5</annotation>
+ <annotation cp="🤶🏿">hudtype 6 | jul | julenissemor | mor | nisse</annotation>
+ <annotation cp="🤶🏿" type="tts">julenissemor: hudtype 6</annotation>
+ <annotation cp="🧑🏻🎄">feiring | hudtype 1–2 | jul | julenisse | nisse | person</annotation>
+ <annotation cp="🧑🏻🎄" type="tts">julenisse: hudtype 1–2</annotation>
+ <annotation cp="🧑🏼🎄">feiring | hudtype 3 | jul | julenisse | nisse | person</annotation>
+ <annotation cp="🧑🏼🎄" type="tts">julenisse: hudtype 3</annotation>
+ <annotation cp="🧑🏽🎄">feiring | hudtype 4 | jul | julenisse | nisse | person</annotation>
+ <annotation cp="🧑🏽🎄" type="tts">julenisse: hudtype 4</annotation>
+ <annotation cp="🧑🏾🎄">feiring | hudtype 5 | jul | julenisse | nisse | person</annotation>
+ <annotation cp="🧑🏾🎄" type="tts">julenisse: hudtype 5</annotation>
+ <annotation cp="🧑🏿🎄">feiring | hudtype 6 | jul | julenisse | nisse | person</annotation>
+ <annotation cp="🧑🏿🎄" type="tts">julenisse: hudtype 6</annotation>
+ <annotation cp="🦸🏻">god | helt | heltinne | hudtype 1–2 | superhelt | superkrefter</annotation>
+ <annotation cp="🦸🏻" type="tts">superhelt: hudtype 1–2</annotation>
+ <annotation cp="🦸🏼">god | helt | heltinne | hudtype 3 | superhelt | superkrefter</annotation>
+ <annotation cp="🦸🏼" type="tts">superhelt: hudtype 3</annotation>
+ <annotation cp="🦸🏽">god | helt | heltinne | hudtype 4 | superhelt | superkrefter</annotation>
+ <annotation cp="🦸🏽" type="tts">superhelt: hudtype 4</annotation>
+ <annotation cp="🦸🏾">god | helt | heltinne | hudtype 5 | superhelt | superkrefter</annotation>
+ <annotation cp="🦸🏾" type="tts">superhelt: hudtype 5</annotation>
+ <annotation cp="🦸🏿">god | helt | heltinne | hudtype 6 | superhelt | superkrefter</annotation>
+ <annotation cp="🦸🏿" type="tts">superhelt: hudtype 6</annotation>
+ <annotation cp="🦸🏻♂">god | helt | hudtype 1–2 | mann | mannlig superhelt | superkrefter</annotation>
+ <annotation cp="🦸🏻♂" type="tts">mannlig superhelt: hudtype 1–2</annotation>
+ <annotation cp="🦸🏼♂">god | helt | hudtype 3 | mann | mannlig superhelt | superkrefter</annotation>
+ <annotation cp="🦸🏼♂" type="tts">mannlig superhelt: hudtype 3</annotation>
+ <annotation cp="🦸🏽♂">god | helt | hudtype 4 | mann | mannlig superhelt | superkrefter</annotation>
+ <annotation cp="🦸🏽♂" type="tts">mannlig superhelt: hudtype 4</annotation>
+ <annotation cp="🦸🏾♂">god | helt | hudtype 5 | mann | mannlig superhelt | superkrefter</annotation>
+ <annotation cp="🦸🏾♂" type="tts">mannlig superhelt: hudtype 5</annotation>
+ <annotation cp="🦸🏿♂">god | helt | hudtype 6 | mann | mannlig superhelt | superkrefter</annotation>
+ <annotation cp="🦸🏿♂" type="tts">mannlig superhelt: hudtype 6</annotation>
+ <annotation cp="🦸🏻♀">god | helt | heltinne | hudtype 1–2 | kvinne | kvinnelig superhelt | superkrefter</annotation>
+ <annotation cp="🦸🏻♀" type="tts">kvinnelig superhelt: hudtype 1–2</annotation>
+ <annotation cp="🦸🏼♀">god | helt | heltinne | hudtype 3 | kvinne | kvinnelig superhelt | superkrefter</annotation>
+ <annotation cp="🦸🏼♀" type="tts">kvinnelig superhelt: hudtype 3</annotation>
+ <annotation cp="🦸🏽♀">god | helt | heltinne | hudtype 4 | kvinne | kvinnelig superhelt | superkrefter</annotation>
+ <annotation cp="🦸🏽♀" type="tts">kvinnelig superhelt: hudtype 4</annotation>
+ <annotation cp="🦸🏾♀">god | helt | heltinne | hudtype 5 | kvinne | kvinnelig superhelt | superkrefter</annotation>
+ <annotation cp="🦸🏾♀" type="tts">kvinnelig superhelt: hudtype 5</annotation>
+ <annotation cp="🦸🏿♀">god | helt | heltinne | hudtype 6 | kvinne | kvinnelig superhelt | superkrefter</annotation>
+ <annotation cp="🦸🏿♀" type="tts">kvinnelig superhelt: hudtype 6</annotation>
+ <annotation cp="🦹🏻">hudtype 1–2 | kriminell | ond | skurk | superkrefter | superskurk</annotation>
+ <annotation cp="🦹🏻" type="tts">superskurk: hudtype 1–2</annotation>
+ <annotation cp="🦹🏼">hudtype 3 | kriminell | ond | skurk | superkrefter | superskurk</annotation>
+ <annotation cp="🦹🏼" type="tts">superskurk: hudtype 3</annotation>
+ <annotation cp="🦹🏽">hudtype 4 | kriminell | ond | skurk | superkrefter | superskurk</annotation>
+ <annotation cp="🦹🏽" type="tts">superskurk: hudtype 4</annotation>
+ <annotation cp="🦹🏾">hudtype 5 | kriminell | ond | skurk | superkrefter | superskurk</annotation>
+ <annotation cp="🦹🏾" type="tts">superskurk: hudtype 5</annotation>
+ <annotation cp="🦹🏿">hudtype 6 | kriminell | ond | skurk | superkrefter | superskurk</annotation>
+ <annotation cp="🦹🏿" type="tts">superskurk: hudtype 6</annotation>
+ <annotation cp="🦹🏻♂">hudtype 1–2 | kriminell | mann | mannlig superskurk | ond | skurk | superkrefter</annotation>
+ <annotation cp="🦹🏻♂" type="tts">mannlig superskurk: hudtype 1–2</annotation>
+ <annotation cp="🦹🏼♂">hudtype 3 | kriminell | mann | mannlig superskurk | ond | skurk | superkrefter</annotation>
+ <annotation cp="🦹🏼♂" type="tts">mannlig superskurk: hudtype 3</annotation>
+ <annotation cp="🦹🏽♂">hudtype 4 | kriminell | mann | mannlig superskurk | ond | skurk | superkrefter</annotation>
+ <annotation cp="🦹🏽♂" type="tts">mannlig superskurk: hudtype 4</annotation>
+ <annotation cp="🦹🏾♂">hudtype 5 | kriminell | mann | mannlig superskurk | ond | skurk | superkrefter</annotation>
+ <annotation cp="🦹🏾♂" type="tts">mannlig superskurk: hudtype 5</annotation>
+ <annotation cp="🦹🏿♂">hudtype 6 | kriminell | mann | mannlig superskurk | ond | skurk | superkrefter</annotation>
+ <annotation cp="🦹🏿♂" type="tts">mannlig superskurk: hudtype 6</annotation>
+ <annotation cp="🦹🏻♀">hudtype 1–2 | kriminell | kvinne | kvinnelig superskurk | ond | skurk | superkrefter</annotation>
+ <annotation cp="🦹🏻♀" type="tts">kvinnelig superskurk: hudtype 1–2</annotation>
+ <annotation cp="🦹🏼♀">hudtype 3 | kriminell | kvinne | kvinnelig superskurk | ond | skurk | superkrefter</annotation>
+ <annotation cp="🦹🏼♀" type="tts">kvinnelig superskurk: hudtype 3</annotation>
+ <annotation cp="🦹🏽♀">hudtype 4 | kriminell | kvinne | kvinnelig superskurk | ond | skurk | superkrefter</annotation>
+ <annotation cp="🦹🏽♀" type="tts">kvinnelig superskurk: hudtype 4</annotation>
+ <annotation cp="🦹🏾♀">hudtype 5 | kriminell | kvinne | kvinnelig superskurk | ond | skurk | superkrefter</annotation>
+ <annotation cp="🦹🏾♀" type="tts">kvinnelig superskurk: hudtype 5</annotation>
+ <annotation cp="🦹🏿♀">hudtype 6 | kriminell | kvinne | kvinnelig superskurk | ond | skurk | superkrefter</annotation>
+ <annotation cp="🦹🏿♀" type="tts">kvinnelig superskurk: hudtype 6</annotation>
+ <annotation cp="🧙🏻">heks | hudtype 1–2 | trollkvinne | trollmann | trollperson</annotation>
+ <annotation cp="🧙🏻" type="tts">trollperson: hudtype 1–2</annotation>
+ <annotation cp="🧙🏼">heks | hudtype 3 | trollkvinne | trollmann | trollperson</annotation>
+ <annotation cp="🧙🏼" type="tts">trollperson: hudtype 3</annotation>
+ <annotation cp="🧙🏽">heks | hudtype 4 | trollkvinne | trollmann | trollperson</annotation>
+ <annotation cp="🧙🏽" type="tts">trollperson: hudtype 4</annotation>
+ <annotation cp="🧙🏾">heks | hudtype 5 | trollkvinne | trollmann | trollperson</annotation>
+ <annotation cp="🧙🏾" type="tts">trollperson: hudtype 5</annotation>
+ <annotation cp="🧙🏿">heks | hudtype 6 | trollkvinne | trollmann | trollperson</annotation>
+ <annotation cp="🧙🏿" type="tts">trollperson: hudtype 6</annotation>
+ <annotation cp="🧙🏻♂">heksemester | hudtype 1–2 | trollmann</annotation>
+ <annotation cp="🧙🏻♂" type="tts">trollmann: hudtype 1–2</annotation>
+ <annotation cp="🧙🏼♂">heksemester | hudtype 3 | trollmann</annotation>
+ <annotation cp="🧙🏼♂" type="tts">trollmann: hudtype 3</annotation>
+ <annotation cp="🧙🏽♂">heksemester | hudtype 4 | trollmann</annotation>
+ <annotation cp="🧙🏽♂" type="tts">trollmann: hudtype 4</annotation>
+ <annotation cp="🧙🏾♂">heksemester | hudtype 5 | trollmann</annotation>
+ <annotation cp="🧙🏾♂" type="tts">trollmann: hudtype 5</annotation>
+ <annotation cp="🧙🏿♂">heksemester | hudtype 6 | trollmann</annotation>
+ <annotation cp="🧙🏿♂" type="tts">trollmann: hudtype 6</annotation>
+ <annotation cp="🧙🏻♀">heks | hudtype 1–2 | trollkvinne</annotation>
+ <annotation cp="🧙🏻♀" type="tts">trollkvinne: hudtype 1–2</annotation>
+ <annotation cp="🧙🏼♀">heks | hudtype 3 | trollkvinne</annotation>
+ <annotation cp="🧙🏼♀" type="tts">trollkvinne: hudtype 3</annotation>
+ <annotation cp="🧙🏽♀">heks | hudtype 4 | trollkvinne</annotation>
+ <annotation cp="🧙🏽♀" type="tts">trollkvinne: hudtype 4</annotation>
+ <annotation cp="🧙🏾♀">heks | hudtype 5 | trollkvinne</annotation>
+ <annotation cp="🧙🏾♀" type="tts">trollkvinne: hudtype 5</annotation>
+ <annotation cp="🧙🏿♀">heks | hudtype 6 | trollkvinne</annotation>
+ <annotation cp="🧙🏿♀" type="tts">trollkvinne: hudtype 6</annotation>
+ <annotation cp="🧚🏻">fe | hudtype 1–2 | Oberon | Puck | Titania</annotation>
+ <annotation cp="🧚🏻" type="tts">fe: hudtype 1–2</annotation>
+ <annotation cp="🧚🏼">fe | hudtype 3 | Oberon | Puck | Titania</annotation>
+ <annotation cp="🧚🏼" type="tts">fe: hudtype 3</annotation>
+ <annotation cp="🧚🏽">fe | hudtype 4 | Oberon | Puck | Titania</annotation>
+ <annotation cp="🧚🏽" type="tts">fe: hudtype 4</annotation>
+ <annotation cp="🧚🏾">fe | hudtype 5 | Oberon | Puck | Titania</annotation>
+ <annotation cp="🧚🏾" type="tts">fe: hudtype 5</annotation>
+ <annotation cp="🧚🏿">fe | hudtype 6 | Oberon | Puck | Titania</annotation>
+ <annotation cp="🧚🏿" type="tts">fe: hudtype 6</annotation>
+ <annotation cp="🧚🏻♂">fe | hudtype 1–2 | mannlig fe | Oberon | Puck</annotation>
+ <annotation cp="🧚🏻♂" type="tts">mannlig fe: hudtype 1–2</annotation>
+ <annotation cp="🧚🏼♂">fe | hudtype 3 | mannlig fe | Oberon | Puck</annotation>
+ <annotation cp="🧚🏼♂" type="tts">mannlig fe: hudtype 3</annotation>
+ <annotation cp="🧚🏽♂">fe | hudtype 4 | mannlig fe | Oberon | Puck</annotation>
+ <annotation cp="🧚🏽♂" type="tts">mannlig fe: hudtype 4</annotation>
+ <annotation cp="🧚🏾♂">fe | hudtype 5 | mannlig fe | Oberon | Puck</annotation>
+ <annotation cp="🧚🏾♂" type="tts">mannlig fe: hudtype 5</annotation>
+ <annotation cp="🧚🏿♂">fe | hudtype 6 | mannlig fe | Oberon | Puck</annotation>
+ <annotation cp="🧚🏿♂" type="tts">mannlig fe: hudtype 6</annotation>
+ <annotation cp="🧚🏻♀">fe | hudtype 1–2 | kvinnelig fe | Titania</annotation>
+ <annotation cp="🧚🏻♀" type="tts">kvinnelig fe: hudtype 1–2</annotation>
+ <annotation cp="🧚🏼♀">fe | hudtype 3 | kvinnelig fe | Titania</annotation>
+ <annotation cp="🧚🏼♀" type="tts">kvinnelig fe: hudtype 3</annotation>
+ <annotation cp="🧚🏽♀">fe | hudtype 4 | kvinnelig fe | Titania</annotation>
+ <annotation cp="🧚🏽♀" type="tts">kvinnelig fe: hudtype 4</annotation>
+ <annotation cp="🧚🏾♀">fe | hudtype 5 | kvinnelig fe | Titania</annotation>
+ <annotation cp="🧚🏾♀" type="tts">kvinnelig fe: hudtype 5</annotation>
+ <annotation cp="🧚🏿♀">fe | hudtype 6 | kvinnelig fe | Titania</annotation>
+ <annotation cp="🧚🏿♀" type="tts">kvinnelig fe: hudtype 6</annotation>
+ <annotation cp="🧛🏻">Dracula | hudtype 1–2 | vampyr | vandød</annotation>
+ <annotation cp="🧛🏻" type="tts">vampyr: hudtype 1–2</annotation>
+ <annotation cp="🧛🏼">Dracula | hudtype 3 | vampyr | vandød</annotation>
+ <annotation cp="🧛🏼" type="tts">vampyr: hudtype 3</annotation>
+ <annotation cp="🧛🏽">Dracula | hudtype 4 | vampyr | vandød</annotation>
+ <annotation cp="🧛🏽" type="tts">vampyr: hudtype 4</annotation>
+ <annotation cp="🧛🏾">Dracula | hudtype 5 | vampyr | vandød</annotation>
+ <annotation cp="🧛🏾" type="tts">vampyr: hudtype 5</annotation>
+ <annotation cp="🧛🏿">Dracula | hudtype 6 | vampyr | vandød</annotation>
+ <annotation cp="🧛🏿" type="tts">vampyr: hudtype 6</annotation>
+ <annotation cp="🧛🏻♂">Dracula | hudtype 1–2 | mannlig vampyr | vandød</annotation>
+ <annotation cp="🧛🏻♂" type="tts">mannlig vampyr: hudtype 1–2</annotation>
+ <annotation cp="🧛🏼♂">Dracula | hudtype 3 | mannlig vampyr | vandød</annotation>
+ <annotation cp="🧛🏼♂" type="tts">mannlig vampyr: hudtype 3</annotation>
+ <annotation cp="🧛🏽♂">Dracula | hudtype 4 | mannlig vampyr | vandød</annotation>
+ <annotation cp="🧛🏽♂" type="tts">mannlig vampyr: hudtype 4</annotation>
+ <annotation cp="🧛🏾♂">Dracula | hudtype 5 | mannlig vampyr | vandød</annotation>
+ <annotation cp="🧛🏾♂" type="tts">mannlig vampyr: hudtype 5</annotation>
+ <annotation cp="🧛🏿♂">Dracula | hudtype 6 | mannlig vampyr | vandød</annotation>
+ <annotation cp="🧛🏿♂" type="tts">mannlig vampyr: hudtype 6</annotation>
+ <annotation cp="🧛🏻♀">hudtype 1–2 | kvinnelig vampyr | vandød</annotation>
+ <annotation cp="🧛🏻♀" type="tts">kvinnelig vampyr: hudtype 1–2</annotation>
+ <annotation cp="🧛🏼♀">hudtype 3 | kvinnelig vampyr | vandød</annotation>
+ <annotation cp="🧛🏼♀" type="tts">kvinnelig vampyr: hudtype 3</annotation>
+ <annotation cp="🧛🏽♀">hudtype 4 | kvinnelig vampyr | vandød</annotation>
+ <annotation cp="🧛🏽♀" type="tts">kvinnelig vampyr: hudtype 4</annotation>
+ <annotation cp="🧛🏾♀">hudtype 5 | kvinnelig vampyr | vandød</annotation>
+ <annotation cp="🧛🏾♀" type="tts">kvinnelig vampyr: hudtype 5</annotation>
+ <annotation cp="🧛🏿♀">hudtype 6 | kvinnelig vampyr | vandød</annotation>
+ <annotation cp="🧛🏿♀" type="tts">kvinnelig vampyr: hudtype 6</annotation>
+ <annotation cp="🧜🏻">havfrue | havkvinne | havmann | havperson | hudtype 1–2</annotation>
+ <annotation cp="🧜🏻" type="tts">havperson: hudtype 1–2</annotation>
+ <annotation cp="🧜🏼">havfrue | havkvinne | havmann | havperson | hudtype 3</annotation>
+ <annotation cp="🧜🏼" type="tts">havperson: hudtype 3</annotation>
+ <annotation cp="🧜🏽">havfrue | havkvinne | havmann | havperson | hudtype 4</annotation>
+ <annotation cp="🧜🏽" type="tts">havperson: hudtype 4</annotation>
+ <annotation cp="🧜🏾">havfrue | havkvinne | havmann | havperson | hudtype 5</annotation>
+ <annotation cp="🧜🏾" type="tts">havperson: hudtype 5</annotation>
+ <annotation cp="🧜🏿">havfrue | havkvinne | havmann | havperson | hudtype 6</annotation>
+ <annotation cp="🧜🏿" type="tts">havperson: hudtype 6</annotation>
+ <annotation cp="🧜🏻♂">havmann | hudtype 1–2 | Triton</annotation>
+ <annotation cp="🧜🏻♂" type="tts">havmann: hudtype 1–2</annotation>
+ <annotation cp="🧜🏼♂">havmann | hudtype 3 | Triton</annotation>
+ <annotation cp="🧜🏼♂" type="tts">havmann: hudtype 3</annotation>
+ <annotation cp="🧜🏽♂">havmann | hudtype 4 | Triton</annotation>
+ <annotation cp="🧜🏽♂" type="tts">havmann: hudtype 4</annotation>
+ <annotation cp="🧜🏾♂">havmann | hudtype 5 | Triton</annotation>
+ <annotation cp="🧜🏾♂" type="tts">havmann: hudtype 5</annotation>
+ <annotation cp="🧜🏿♂">havmann | hudtype 6 | Triton</annotation>
+ <annotation cp="🧜🏿♂" type="tts">havmann: hudtype 6</annotation>
+ <annotation cp="🧜🏻♀">havfrue | havkvinne | hudtype 1–2</annotation>
+ <annotation cp="🧜🏻♀" type="tts">havfrue: hudtype 1–2</annotation>
+ <annotation cp="🧜🏼♀">havfrue | havkvinne | hudtype 3</annotation>
+ <annotation cp="🧜🏼♀" type="tts">havfrue: hudtype 3</annotation>
+ <annotation cp="🧜🏽♀">havfrue | havkvinne | hudtype 4</annotation>
+ <annotation cp="🧜🏽♀" type="tts">havfrue: hudtype 4</annotation>
+ <annotation cp="🧜🏾♀">havfrue | havkvinne | hudtype 5</annotation>
+ <annotation cp="🧜🏾♀" type="tts">havfrue: hudtype 5</annotation>
+ <annotation cp="🧜🏿♀">havfrue | havkvinne | hudtype 6</annotation>
+ <annotation cp="🧜🏿♀" type="tts">havfrue: hudtype 6</annotation>
+ <annotation cp="🧝🏻">alv | hudtype 1–2 | magi</annotation>
+ <annotation cp="🧝🏻" type="tts">alv: hudtype 1–2</annotation>
+ <annotation cp="🧝🏼">alv | hudtype 3 | magi</annotation>
+ <annotation cp="🧝🏼" type="tts">alv: hudtype 3</annotation>
+ <annotation cp="🧝🏽">alv | hudtype 4 | magi</annotation>
+ <annotation cp="🧝🏽" type="tts">alv: hudtype 4</annotation>
+ <annotation cp="🧝🏾">alv | hudtype 5 | magi</annotation>
+ <annotation cp="🧝🏾" type="tts">alv: hudtype 5</annotation>
+ <annotation cp="🧝🏿">alv | hudtype 6 | magi</annotation>
+ <annotation cp="🧝🏿" type="tts">alv: hudtype 6</annotation>
+ <annotation cp="🧝🏻♂">hudtype 1–2 | magi | mannlig alv</annotation>
+ <annotation cp="🧝🏻♂" type="tts">mannlig alv: hudtype 1–2</annotation>
+ <annotation cp="🧝🏼♂">hudtype 3 | magi | mannlig alv</annotation>
+ <annotation cp="🧝🏼♂" type="tts">mannlig alv: hudtype 3</annotation>
+ <annotation cp="🧝🏽♂">hudtype 4 | magi | mannlig alv</annotation>
+ <annotation cp="🧝🏽♂" type="tts">mannlig alv: hudtype 4</annotation>
+ <annotation cp="🧝🏾♂">hudtype 5 | magi | mannlig alv</annotation>
+ <annotation cp="🧝🏾♂" type="tts">mannlig alv: hudtype 5</annotation>
+ <annotation cp="🧝🏿♂">hudtype 6 | magi | mannlig alv</annotation>
+ <annotation cp="🧝🏿♂" type="tts">mannlig alv: hudtype 6</annotation>
+ <annotation cp="🧝🏻♀">hudtype 1–2 | kvinnelig alv | magi</annotation>
+ <annotation cp="🧝🏻♀" type="tts">kvinnelig alv: hudtype 1–2</annotation>
+ <annotation cp="🧝🏼♀">hudtype 3 | kvinnelig alv | magi</annotation>
+ <annotation cp="🧝🏼♀" type="tts">kvinnelig alv: hudtype 3</annotation>
+ <annotation cp="🧝🏽♀">hudtype 4 | kvinnelig alv | magi</annotation>
+ <annotation cp="🧝🏽♀" type="tts">kvinnelig alv: hudtype 4</annotation>
+ <annotation cp="🧝🏾♀">hudtype 5 | kvinnelig alv | magi</annotation>
+ <annotation cp="🧝🏾♀" type="tts">kvinnelig alv: hudtype 5</annotation>
+ <annotation cp="🧝🏿♀">hudtype 6 | kvinnelig alv | magi</annotation>
+ <annotation cp="🧝🏿♀" type="tts">kvinnelig alv: hudtype 6</annotation>
+ <annotation cp="💆🏻">ansikt | ansiktsmassasje | hudtype 1–2 | massasje | skjønnhetssalong</annotation>
+ <annotation cp="💆🏻" type="tts">ansiktsmassasje: hudtype 1–2</annotation>
+ <annotation cp="💆🏼">ansikt | ansiktsmassasje | hudtype 3 | massasje | skjønnhetssalong</annotation>
+ <annotation cp="💆🏼" type="tts">ansiktsmassasje: hudtype 3</annotation>
+ <annotation cp="💆🏽">ansikt | ansiktsmassasje | hudtype 4 | massasje | skjønnhetssalong</annotation>
+ <annotation cp="💆🏽" type="tts">ansiktsmassasje: hudtype 4</annotation>
+ <annotation cp="💆🏾">ansikt | ansiktsmassasje | hudtype 5 | massasje | skjønnhetssalong</annotation>
+ <annotation cp="💆🏾" type="tts">ansiktsmassasje: hudtype 5</annotation>
+ <annotation cp="💆🏿">ansikt | ansiktsmassasje | hudtype 6 | massasje | skjønnhetssalong</annotation>
+ <annotation cp="💆🏿" type="tts">ansiktsmassasje: hudtype 6</annotation>
+ <annotation cp="💆🏻♂">ansikt | avslapning | hodemassasje | hudtype 1–2 | mann | mann som får ansiktsmassasje | massasje | velvære</annotation>
+ <annotation cp="💆🏻♂" type="tts">mann som får ansiktsmassasje: hudtype 1–2</annotation>
+ <annotation cp="💆🏼♂">ansikt | avslapning | hodemassasje | hudtype 3 | mann | mann som får ansiktsmassasje | massasje | velvære</annotation>
+ <annotation cp="💆🏼♂" type="tts">mann som får ansiktsmassasje: hudtype 3</annotation>
+ <annotation cp="💆🏽♂">ansikt | avslapning | hodemassasje | hudtype 4 | mann | mann som får ansiktsmassasje | massasje | velvære</annotation>
+ <annotation cp="💆🏽♂" type="tts">mann som får ansiktsmassasje: hudtype 4</annotation>
+ <annotation cp="💆🏾♂">ansikt | avslapning | hodemassasje | hudtype 5 | mann | mann som får ansiktsmassasje | massasje | velvære</annotation>
+ <annotation cp="💆🏾♂" type="tts">mann som får ansiktsmassasje: hudtype 5</annotation>
+ <annotation cp="💆🏿♂">ansikt | avslapning | hodemassasje | hudtype 6 | mann | mann som får ansiktsmassasje | massasje | velvære</annotation>
+ <annotation cp="💆🏿♂" type="tts">mann som får ansiktsmassasje: hudtype 6</annotation>
+ <annotation cp="💆🏻♀">ansikt | avslapning | hodemassasje | hudtype 1–2 | kvinne | kvinne som får ansiktsmassasje | massasje | velvære</annotation>
+ <annotation cp="💆🏻♀" type="tts">kvinne som får ansiktsmassasje: hudtype 1–2</annotation>
+ <annotation cp="💆🏼♀">ansikt | avslapning | hodemassasje | hudtype 3 | kvinne | kvinne som får ansiktsmassasje | massasje | velvære</annotation>
+ <annotation cp="💆🏼♀" type="tts">kvinne som får ansiktsmassasje: hudtype 3</annotation>
+ <annotation cp="💆🏽♀">ansikt | avslapning | hodemassasje | hudtype 4 | kvinne | kvinne som får ansiktsmassasje | massasje | velvære</annotation>
+ <annotation cp="💆🏽♀" type="tts">kvinne som får ansiktsmassasje: hudtype 4</annotation>
+ <annotation cp="💆🏾♀">ansikt | avslapning | hodemassasje | hudtype 5 | kvinne | kvinne som får ansiktsmassasje | massasje | velvære</annotation>
+ <annotation cp="💆🏾♀" type="tts">kvinne som får ansiktsmassasje: hudtype 5</annotation>
+ <annotation cp="💆🏿♀">ansikt | avslapning | hodemassasje | hudtype 6 | kvinne | kvinne som får ansiktsmassasje | massasje | velvære</annotation>
+ <annotation cp="💆🏿♀" type="tts">kvinne som får ansiktsmassasje: hudtype 6</annotation>
+ <annotation cp="💇🏻">frisør | hårklipp | hudtype 1–2 | salong | skjønnhet | skjønnhetssalong</annotation>
+ <annotation cp="💇🏻" type="tts">hårklipp: hudtype 1–2</annotation>
+ <annotation cp="💇🏼">frisør | hårklipp | hudtype 3 | salong | skjønnhet | skjønnhetssalong</annotation>
+ <annotation cp="💇🏼" type="tts">hårklipp: hudtype 3</annotation>
+ <annotation cp="💇🏽">frisør | hårklipp | hudtype 4 | salong | skjønnhet | skjønnhetssalong</annotation>
+ <annotation cp="💇🏽" type="tts">hårklipp: hudtype 4</annotation>
+ <annotation cp="💇🏾">frisør | hårklipp | hudtype 5 | salong | skjønnhet | skjønnhetssalong</annotation>
+ <annotation cp="💇🏾" type="tts">hårklipp: hudtype 5</annotation>
+ <annotation cp="💇🏿">frisør | hårklipp | hudtype 6 | salong | skjønnhet | skjønnhetssalong</annotation>
+ <annotation cp="💇🏿" type="tts">hårklipp: hudtype 6</annotation>
+ <annotation cp="💇🏻♂">frisør | hårklipp | hudtype 1–2 | mann | mann som får hårklipp | sveis</annotation>
+ <annotation cp="💇🏻♂" type="tts">mann som får hårklipp: hudtype 1–2</annotation>
+ <annotation cp="💇🏼♂">frisør | hårklipp | hudtype 3 | mann | mann som får hårklipp | sveis</annotation>
+ <annotation cp="💇🏼♂" type="tts">mann som får hårklipp: hudtype 3</annotation>
+ <annotation cp="💇🏽♂">frisør | hårklipp | hudtype 4 | mann | mann som får hårklipp | sveis</annotation>
+ <annotation cp="💇🏽♂" type="tts">mann som får hårklipp: hudtype 4</annotation>
+ <annotation cp="💇🏾♂">frisør | hårklipp | hudtype 5 | mann | mann som får hårklipp | sveis</annotation>
+ <annotation cp="💇🏾♂" type="tts">mann som får hårklipp: hudtype 5</annotation>
+ <annotation cp="💇🏿♂">frisør | hårklipp | hudtype 6 | mann | mann som får hårklipp | sveis</annotation>
+ <annotation cp="💇🏿♂" type="tts">mann som får hårklipp: hudtype 6</annotation>
+ <annotation cp="💇🏻♀">frisør | frisyre | hårklipp | hudtype 1–2 | kvinne | kvinne som får hårklipp</annotation>
+ <annotation cp="💇🏻♀" type="tts">kvinne som får hårklipp: hudtype 1–2</annotation>
+ <annotation cp="💇🏼♀">frisør | frisyre | hårklipp | hudtype 3 | kvinne | kvinne som får hårklipp</annotation>
+ <annotation cp="💇🏼♀" type="tts">kvinne som får hårklipp: hudtype 3</annotation>
+ <annotation cp="💇🏽♀">frisør | frisyre | hårklipp | hudtype 4 | kvinne | kvinne som får hårklipp</annotation>
+ <annotation cp="💇🏽♀" type="tts">kvinne som får hårklipp: hudtype 4</annotation>
+ <annotation cp="💇🏾♀">frisør | frisyre | hårklipp | hudtype 5 | kvinne | kvinne som får hårklipp</annotation>
+ <annotation cp="💇🏾♀" type="tts">kvinne som får hårklipp: hudtype 5</annotation>
+ <annotation cp="💇🏿♀">frisør | frisyre | hårklipp | hudtype 6 | kvinne | kvinne som får hårklipp</annotation>
+ <annotation cp="💇🏿♀" type="tts">kvinne som får hårklipp: hudtype 6</annotation>
+ <annotation cp="🚶🏻">fotgjenger | gå | gående | hudtype 1–2</annotation>
+ <annotation cp="🚶🏻" type="tts">fotgjenger: hudtype 1–2</annotation>
+ <annotation cp="🚶🏼">fotgjenger | gå | gående | hudtype 3</annotation>
+ <annotation cp="🚶🏼" type="tts">fotgjenger: hudtype 3</annotation>
+ <annotation cp="🚶🏽">fotgjenger | gå | gående | hudtype 4</annotation>
+ <annotation cp="🚶🏽" type="tts">fotgjenger: hudtype 4</annotation>
+ <annotation cp="🚶🏾">fotgjenger | gå | gående | hudtype 5</annotation>
+ <annotation cp="🚶🏾" type="tts">fotgjenger: hudtype 5</annotation>
+ <annotation cp="🚶🏿">fotgjenger | gå | gående | hudtype 6</annotation>
+ <annotation cp="🚶🏿" type="tts">fotgjenger: hudtype 6</annotation>
+ <annotation cp="🚶🏻♂">fotgjenger | gå | hudtype 1–2 | mann | mannlig fotgjenger | tur</annotation>
+ <annotation cp="🚶🏻♂" type="tts">mannlig fotgjenger: hudtype 1–2</annotation>
+ <annotation cp="🚶🏼♂">fotgjenger | gå | hudtype 3 | mann | mannlig fotgjenger | tur</annotation>
+ <annotation cp="🚶🏼♂" type="tts">mannlig fotgjenger: hudtype 3</annotation>
+ <annotation cp="🚶🏽♂">fotgjenger | gå | hudtype 4 | mann | mannlig fotgjenger | tur</annotation>
+ <annotation cp="🚶🏽♂" type="tts">mannlig fotgjenger: hudtype 4</annotation>
+ <annotation cp="🚶🏾♂">fotgjenger | gå | hudtype 5 | mann | mannlig fotgjenger | tur</annotation>
+ <annotation cp="🚶🏾♂" type="tts">mannlig fotgjenger: hudtype 5</annotation>
+ <annotation cp="🚶🏿♂">fotgjenger | gå | hudtype 6 | mann | mannlig fotgjenger | tur</annotation>
+ <annotation cp="🚶🏿♂" type="tts">mannlig fotgjenger: hudtype 6</annotation>
+ <annotation cp="🚶🏻♀">fotgjenger | gå | hudtype 1–2 | kvinne | kvinnelig fotgjenger | tur</annotation>
+ <annotation cp="🚶🏻♀" type="tts">kvinnelig fotgjenger: hudtype 1–2</annotation>
+ <annotation cp="🚶🏼♀">fotgjenger | gå | hudtype 3 | kvinne | kvinnelig fotgjenger | tur</annotation>
+ <annotation cp="🚶🏼♀" type="tts">kvinnelig fotgjenger: hudtype 3</annotation>
+ <annotation cp="🚶🏽♀">fotgjenger | gå | hudtype 4 | kvinne | kvinnelig fotgjenger | tur</annotation>
+ <annotation cp="🚶🏽♀" type="tts">kvinnelig fotgjenger: hudtype 4</annotation>
+ <annotation cp="🚶🏾♀">fotgjenger | gå | hudtype 5 | kvinne | kvinnelig fotgjenger | tur</annotation>
+ <annotation cp="🚶🏾♀" type="tts">kvinnelig fotgjenger: hudtype 5</annotation>
+ <annotation cp="🚶🏿♀">fotgjenger | gå | hudtype 6 | kvinne | kvinnelig fotgjenger | tur</annotation>
+ <annotation cp="🚶🏿♀" type="tts">kvinnelig fotgjenger: hudtype 6</annotation>
+ <annotation cp="🧍🏻">hudtype 1–2 | person som står | stå</annotation>
+ <annotation cp="🧍🏻" type="tts">person som står: hudtype 1–2</annotation>
+ <annotation cp="🧍🏼">hudtype 3 | person som står | stå</annotation>
+ <annotation cp="🧍🏼" type="tts">person som står: hudtype 3</annotation>
+ <annotation cp="🧍🏽">hudtype 4 | person som står | stå</annotation>
+ <annotation cp="🧍🏽" type="tts">person som står: hudtype 4</annotation>
+ <annotation cp="🧍🏾">hudtype 5 | person som står | stå</annotation>
+ <annotation cp="🧍🏾" type="tts">person som står: hudtype 5</annotation>
+ <annotation cp="🧍🏿">hudtype 6 | person som står | stå</annotation>
+ <annotation cp="🧍🏿" type="tts">person som står: hudtype 6</annotation>
+ <annotation cp="🧍🏻♂">hudtype 1–2 | mann | mann som står | står</annotation>
+ <annotation cp="🧍🏻♂" type="tts">mann som står: hudtype 1–2</annotation>
+ <annotation cp="🧍🏼♂">hudtype 3 | mann | mann som står | står</annotation>
+ <annotation cp="🧍🏼♂" type="tts">mann som står: hudtype 3</annotation>
+ <annotation cp="🧍🏽♂">hudtype 4 | mann | mann som står | står</annotation>
+ <annotation cp="🧍🏽♂" type="tts">mann som står: hudtype 4</annotation>
+ <annotation cp="🧍🏾♂">hudtype 5 | mann | mann som står | står</annotation>
+ <annotation cp="🧍🏾♂" type="tts">mann som står: hudtype 5</annotation>
+ <annotation cp="🧍🏿♂">hudtype 6 | mann | mann som står | står</annotation>
+ <annotation cp="🧍🏿♂" type="tts">mann som står: hudtype 6</annotation>
+ <annotation cp="🧍🏻♀">hudtype 1–2 | kvinne | kvinne som står | står</annotation>
+ <annotation cp="🧍🏻♀" type="tts">kvinne som står: hudtype 1–2</annotation>
+ <annotation cp="🧍🏼♀">hudtype 3 | kvinne | kvinne som står | står</annotation>
+ <annotation cp="🧍🏼♀" type="tts">kvinne som står: hudtype 3</annotation>
+ <annotation cp="🧍🏽♀">hudtype 4 | kvinne | kvinne som står | står</annotation>
+ <annotation cp="🧍🏽♀" type="tts">kvinne som står: hudtype 4</annotation>
+ <annotation cp="🧍🏾♀">hudtype 5 | kvinne | kvinne som står | står</annotation>
+ <annotation cp="🧍🏾♀" type="tts">kvinne som står: hudtype 5</annotation>
+ <annotation cp="🧍🏿♀">hudtype 6 | kvinne | kvinne som står | står</annotation>
+ <annotation cp="🧍🏿♀" type="tts">kvinne som står: hudtype 6</annotation>
+ <annotation cp="🧎🏻">hudtype 1–2 | knele | kneler | person som kneler</annotation>
+ <annotation cp="🧎🏻" type="tts">person som kneler: hudtype 1–2</annotation>
+ <annotation cp="🧎🏼">hudtype 3 | knele | kneler | person som kneler</annotation>
+ <annotation cp="🧎🏼" type="tts">person som kneler: hudtype 3</annotation>
+ <annotation cp="🧎🏽">hudtype 4 | knele | kneler | person som kneler</annotation>
+ <annotation cp="🧎🏽" type="tts">person som kneler: hudtype 4</annotation>
+ <annotation cp="🧎🏾">hudtype 5 | knele | kneler | person som kneler</annotation>
+ <annotation cp="🧎🏾" type="tts">person som kneler: hudtype 5</annotation>
+ <annotation cp="🧎🏿">hudtype 6 | knele | kneler | person som kneler</annotation>
+ <annotation cp="🧎🏿" type="tts">person som kneler: hudtype 6</annotation>
+ <annotation cp="🧎🏻♂">hudtype 1–2 | kneler | mann | mann som kneler</annotation>
+ <annotation cp="🧎🏻♂" type="tts">mann som kneler: hudtype 1–2</annotation>
+ <annotation cp="🧎🏼♂">hudtype 3 | kneler | mann | mann som kneler</annotation>
+ <annotation cp="🧎🏼♂" type="tts">mann som kneler: hudtype 3</annotation>
+ <annotation cp="🧎🏽♂">hudtype 4 | kneler | mann | mann som kneler</annotation>
+ <annotation cp="🧎🏽♂" type="tts">mann som kneler: hudtype 4</annotation>
+ <annotation cp="🧎🏾♂">hudtype 5 | kneler | mann | mann som kneler</annotation>
+ <annotation cp="🧎🏾♂" type="tts">mann som kneler: hudtype 5</annotation>
+ <annotation cp="🧎🏿♂">hudtype 6 | kneler | mann | mann som kneler</annotation>
+ <annotation cp="🧎🏿♂" type="tts">mann som kneler: hudtype 6</annotation>
+ <annotation cp="🧎🏻♀">hudtype 1–2 | kneler | kvinne | kvinne som kneler</annotation>
+ <annotation cp="🧎🏻♀" type="tts">kvinne som kneler: hudtype 1–2</annotation>
+ <annotation cp="🧎🏼♀">hudtype 3 | kneler | kvinne | kvinne som kneler</annotation>
+ <annotation cp="🧎🏼♀" type="tts">kvinne som kneler: hudtype 3</annotation>
+ <annotation cp="🧎🏽♀">hudtype 4 | kneler | kvinne | kvinne som kneler</annotation>
+ <annotation cp="🧎🏽♀" type="tts">kvinne som kneler: hudtype 4</annotation>
+ <annotation cp="🧎🏾♀">hudtype 5 | kneler | kvinne | kvinne som kneler</annotation>
+ <annotation cp="🧎🏾♀" type="tts">kvinne som kneler: hudtype 5</annotation>
+ <annotation cp="🧎🏿♀">hudtype 6 | kneler | kvinne | kvinne som kneler</annotation>
+ <annotation cp="🧎🏿♀" type="tts">kvinne som kneler: hudtype 6</annotation>
+ <annotation cp="🧑🏻🦯">blind | hudtype 1–2 | person med blindestokk | tilgjengelighet</annotation>
+ <annotation cp="🧑🏻🦯" type="tts">person med blindestokk: hudtype 1–2</annotation>
+ <annotation cp="🧑🏼🦯">blind | hudtype 3 | person med blindestokk | tilgjengelighet</annotation>
+ <annotation cp="🧑🏼🦯" type="tts">person med blindestokk: hudtype 3</annotation>
+ <annotation cp="🧑🏽🦯">blind | hudtype 4 | person med blindestokk | tilgjengelighet</annotation>
+ <annotation cp="🧑🏽🦯" type="tts">person med blindestokk: hudtype 4</annotation>
+ <annotation cp="🧑🏾🦯">blind | hudtype 5 | person med blindestokk | tilgjengelighet</annotation>
+ <annotation cp="🧑🏾🦯" type="tts">person med blindestokk: hudtype 5</annotation>
+ <annotation cp="🧑🏿🦯">blind | hudtype 6 | person med blindestokk | tilgjengelighet</annotation>
+ <annotation cp="🧑🏿🦯" type="tts">person med blindestokk: hudtype 6</annotation>
+ <annotation cp="👨🏻🦯">blind | hudtype 1–2 | mann | mann med blindestokk | tilgjengelighet</annotation>
+ <annotation cp="👨🏻🦯" type="tts">mann med blindestokk: hudtype 1–2</annotation>
+ <annotation cp="👨🏼🦯">blind | hudtype 3 | mann | mann med blindestokk | tilgjengelighet</annotation>
+ <annotation cp="👨🏼🦯" type="tts">mann med blindestokk: hudtype 3</annotation>
+ <annotation cp="👨🏽🦯">blind | hudtype 4 | mann | mann med blindestokk | tilgjengelighet</annotation>
+ <annotation cp="👨🏽🦯" type="tts">mann med blindestokk: hudtype 4</annotation>
+ <annotation cp="👨🏾🦯">blind | hudtype 5 | mann | mann med blindestokk | tilgjengelighet</annotation>
+ <annotation cp="👨🏾🦯" type="tts">mann med blindestokk: hudtype 5</annotation>
+ <annotation cp="👨🏿🦯">blind | hudtype 6 | mann | mann med blindestokk | tilgjengelighet</annotation>
+ <annotation cp="👨🏿🦯" type="tts">mann med blindestokk: hudtype 6</annotation>
+ <annotation cp="👩🏻🦯">blind | hudtype 1–2 | kvinne | kvinne med blindestokk | tilgjengelighet</annotation>
+ <annotation cp="👩🏻🦯" type="tts">kvinne med blindestokk: hudtype 1–2</annotation>
+ <annotation cp="👩🏼🦯">blind | hudtype 3 | kvinne | kvinne med blindestokk | tilgjengelighet</annotation>
+ <annotation cp="👩🏼🦯" type="tts">kvinne med blindestokk: hudtype 3</annotation>
+ <annotation cp="👩🏽🦯">blind | hudtype 4 | kvinne | kvinne med blindestokk | tilgjengelighet</annotation>
+ <annotation cp="👩🏽🦯" type="tts">kvinne med blindestokk: hudtype 4</annotation>
+ <annotation cp="👩🏾🦯">blind | hudtype 5 | kvinne | kvinne med blindestokk | tilgjengelighet</annotation>
+ <annotation cp="👩🏾🦯" type="tts">kvinne med blindestokk: hudtype 5</annotation>
+ <annotation cp="👩🏿🦯">blind | hudtype 6 | kvinne | kvinne med blindestokk | tilgjengelighet</annotation>
+ <annotation cp="👩🏿🦯" type="tts">kvinne med blindestokk: hudtype 6</annotation>
+ <annotation cp="🧑🏻🦼">hudtype 1–2 | person i motorisert rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="🧑🏻🦼" type="tts">person i motorisert rullestol: hudtype 1–2</annotation>
+ <annotation cp="🧑🏼🦼">hudtype 3 | person i motorisert rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="🧑🏼🦼" type="tts">person i motorisert rullestol: hudtype 3</annotation>
+ <annotation cp="🧑🏽🦼">hudtype 4 | person i motorisert rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="🧑🏽🦼" type="tts">person i motorisert rullestol: hudtype 4</annotation>
+ <annotation cp="🧑🏾🦼">hudtype 5 | person i motorisert rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="🧑🏾🦼" type="tts">person i motorisert rullestol: hudtype 5</annotation>
+ <annotation cp="🧑🏿🦼">hudtype 6 | person i motorisert rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="🧑🏿🦼" type="tts">person i motorisert rullestol: hudtype 6</annotation>
+ <annotation cp="👨🏻🦼">hudtype 1–2 | mann | mann i motorisert rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="👨🏻🦼" type="tts">mann i motorisert rullestol: hudtype 1–2</annotation>
+ <annotation cp="👨🏼🦼">hudtype 3 | mann | mann i motorisert rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="👨🏼🦼" type="tts">mann i motorisert rullestol: hudtype 3</annotation>
+ <annotation cp="👨🏽🦼">hudtype 4 | mann | mann i motorisert rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="👨🏽🦼" type="tts">mann i motorisert rullestol: hudtype 4</annotation>
+ <annotation cp="👨🏾🦼">hudtype 5 | mann | mann i motorisert rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="👨🏾🦼" type="tts">mann i motorisert rullestol: hudtype 5</annotation>
+ <annotation cp="👨🏿🦼">hudtype 6 | mann | mann i motorisert rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="👨🏿🦼" type="tts">mann i motorisert rullestol: hudtype 6</annotation>
+ <annotation cp="👩🏻🦼">hudtype 1–2 | kvinne | kvinne i motorisert rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="👩🏻🦼" type="tts">kvinne i motorisert rullestol: hudtype 1–2</annotation>
+ <annotation cp="👩🏼🦼">hudtype 3 | kvinne | kvinne i motorisert rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="👩🏼🦼" type="tts">kvinne i motorisert rullestol: hudtype 3</annotation>
+ <annotation cp="👩🏽🦼">hudtype 4 | kvinne | kvinne i motorisert rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="👩🏽🦼" type="tts">kvinne i motorisert rullestol: hudtype 4</annotation>
+ <annotation cp="👩🏾🦼">hudtype 5 | kvinne | kvinne i motorisert rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="👩🏾🦼" type="tts">kvinne i motorisert rullestol: hudtype 5</annotation>
+ <annotation cp="👩🏿🦼">hudtype 6 | kvinne | kvinne i motorisert rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="👩🏿🦼" type="tts">kvinne i motorisert rullestol: hudtype 6</annotation>
+ <annotation cp="🧑🏻🦽">hudtype 1–2 | person i manuell rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="🧑🏻🦽" type="tts">person i manuell rullestol: hudtype 1–2</annotation>
+ <annotation cp="🧑🏼🦽">hudtype 3 | person i manuell rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="🧑🏼🦽" type="tts">person i manuell rullestol: hudtype 3</annotation>
+ <annotation cp="🧑🏽🦽">hudtype 4 | person i manuell rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="🧑🏽🦽" type="tts">person i manuell rullestol: hudtype 4</annotation>
+ <annotation cp="🧑🏾🦽">hudtype 5 | person i manuell rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="🧑🏾🦽" type="tts">person i manuell rullestol: hudtype 5</annotation>
+ <annotation cp="🧑🏿🦽">hudtype 6 | person i manuell rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="🧑🏿🦽" type="tts">person i manuell rullestol: hudtype 6</annotation>
+ <annotation cp="👨🏻🦽">hudtype 1–2 | mann | mann i manuell rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="👨🏻🦽" type="tts">mann i manuell rullestol: hudtype 1–2</annotation>
+ <annotation cp="👨🏼🦽">hudtype 3 | mann | mann i manuell rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="👨🏼🦽" type="tts">mann i manuell rullestol: hudtype 3</annotation>
+ <annotation cp="👨🏽🦽">hudtype 4 | mann | mann i manuell rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="👨🏽🦽" type="tts">mann i manuell rullestol: hudtype 4</annotation>
+ <annotation cp="👨🏾🦽">hudtype 5 | mann | mann i manuell rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="👨🏾🦽" type="tts">mann i manuell rullestol: hudtype 5</annotation>
+ <annotation cp="👨🏿🦽">hudtype 6 | mann | mann i manuell rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="👨🏿🦽" type="tts">mann i manuell rullestol: hudtype 6</annotation>
+ <annotation cp="👩🏻🦽">hudtype 1–2 | kvinne | kvinne i manuell rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="👩🏻🦽" type="tts">kvinne i manuell rullestol: hudtype 1–2</annotation>
+ <annotation cp="👩🏼🦽">hudtype 3 | kvinne | kvinne i manuell rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="👩🏼🦽" type="tts">kvinne i manuell rullestol: hudtype 3</annotation>
+ <annotation cp="👩🏽🦽">hudtype 4 | kvinne | kvinne i manuell rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="👩🏽🦽" type="tts">kvinne i manuell rullestol: hudtype 4</annotation>
+ <annotation cp="👩🏾🦽">hudtype 5 | kvinne | kvinne i manuell rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="👩🏾🦽" type="tts">kvinne i manuell rullestol: hudtype 5</annotation>
+ <annotation cp="👩🏿🦽">hudtype 6 | kvinne | kvinne i manuell rullestol | rullestol | tilgjengelighet</annotation>
+ <annotation cp="👩🏿🦽" type="tts">kvinne i manuell rullestol: hudtype 6</annotation>
+ <annotation cp="🏃🏻">hudtype 1–2 | jogger | jogging | løper | løping | maraton | sport</annotation>
+ <annotation cp="🏃🏻" type="tts">løper: hudtype 1–2</annotation>
+ <annotation cp="🏃🏼">hudtype 3 | jogger | jogging | løper | løping | maraton | sport</annotation>
+ <annotation cp="🏃🏼" type="tts">løper: hudtype 3</annotation>
+ <annotation cp="🏃🏽">hudtype 4 | jogger | jogging | løper | løping | maraton | sport</annotation>
+ <annotation cp="🏃🏽" type="tts">løper: hudtype 4</annotation>
+ <annotation cp="🏃🏾">hudtype 5 | jogger | jogging | løper | løping | maraton | sport</annotation>
+ <annotation cp="🏃🏾" type="tts">løper: hudtype 5</annotation>
+ <annotation cp="🏃🏿">hudtype 6 | jogger | jogging | løper | løping | maraton | sport</annotation>
+ <annotation cp="🏃🏿" type="tts">løper: hudtype 6</annotation>
+ <annotation cp="🏃🏻♂">hudtype 1–2 | jogge | løpe | mann | mannlig løper | maraton</annotation>
+ <annotation cp="🏃🏻♂" type="tts">mannlig løper: hudtype 1–2</annotation>
+ <annotation cp="🏃🏼♂">hudtype 3 | jogge | løpe | mann | mannlig løper | maraton</annotation>
+ <annotation cp="🏃🏼♂" type="tts">mannlig løper: hudtype 3</annotation>
+ <annotation cp="🏃🏽♂">hudtype 4 | jogge | løpe | mann | mannlig løper | maraton</annotation>
+ <annotation cp="🏃🏽♂" type="tts">mannlig løper: hudtype 4</annotation>
+ <annotation cp="🏃🏾♂">hudtype 5 | jogge | løpe | mann | mannlig løper | maraton</annotation>
+ <annotation cp="🏃🏾♂" type="tts">mannlig løper: hudtype 5</annotation>
+ <annotation cp="🏃🏿♂">hudtype 6 | jogge | løpe | mann | mannlig løper | maraton</annotation>
+ <annotation cp="🏃🏿♂" type="tts">mannlig løper: hudtype 6</annotation>
+ <annotation cp="🏃🏻♀">hudtype 1–2 | jogge | kvinne | kvinnelig løper | løpe | maraton</annotation>
+ <annotation cp="🏃🏻♀" type="tts">kvinnelig løper: hudtype 1–2</annotation>
+ <annotation cp="🏃🏼♀">hudtype 3 | jogge | kvinne | kvinnelig løper | løpe | maraton</annotation>
+ <annotation cp="🏃🏼♀" type="tts">kvinnelig løper: hudtype 3</annotation>
+ <annotation cp="🏃🏽♀">hudtype 4 | jogge | kvinne | kvinnelig løper | løpe | maraton</annotation>
+ <annotation cp="🏃🏽♀" type="tts">kvinnelig løper: hudtype 4</annotation>
+ <annotation cp="🏃🏾♀">hudtype 5 | jogge | kvinne | kvinnelig løper | løpe | maraton</annotation>
+ <annotation cp="🏃🏾♀" type="tts">kvinnelig løper: hudtype 5</annotation>
+ <annotation cp="🏃🏿♀">hudtype 6 | jogge | kvinne | kvinnelig løper | løpe | maraton</annotation>
+ <annotation cp="🏃🏿♀" type="tts">kvinnelig løper: hudtype 6</annotation>
+ <annotation cp="💃🏻">dans | dansende kvinne | hudtype 1–2 | kvinne</annotation>
+ <annotation cp="💃🏻" type="tts">dansende kvinne: hudtype 1–2</annotation>
+ <annotation cp="💃🏼">dans | dansende kvinne | hudtype 3 | kvinne</annotation>
+ <annotation cp="💃🏼" type="tts">dansende kvinne: hudtype 3</annotation>
+ <annotation cp="💃🏽">dans | dansende kvinne | hudtype 4 | kvinne</annotation>
+ <annotation cp="💃🏽" type="tts">dansende kvinne: hudtype 4</annotation>
+ <annotation cp="💃🏾">dans | dansende kvinne | hudtype 5 | kvinne</annotation>
+ <annotation cp="💃🏾" type="tts">dansende kvinne: hudtype 5</annotation>
+ <annotation cp="💃🏿">dans | dansende kvinne | hudtype 6 | kvinne</annotation>
+ <annotation cp="💃🏿" type="tts">dansende kvinne: hudtype 6</annotation>
+ <annotation cp="🕺🏻">dans | dansende mann | hudtype 1–2 | mann</annotation>
+ <annotation cp="🕺🏻" type="tts">dansende mann: hudtype 1–2</annotation>
+ <annotation cp="🕺🏼">dans | dansende mann | hudtype 3 | mann</annotation>
+ <annotation cp="🕺🏼" type="tts">dansende mann: hudtype 3</annotation>
+ <annotation cp="🕺🏽">dans | dansende mann | hudtype 4 | mann</annotation>
+ <annotation cp="🕺🏽" type="tts">dansende mann: hudtype 4</annotation>
+ <annotation cp="🕺🏾">dans | dansende mann | hudtype 5 | mann</annotation>
+ <annotation cp="🕺🏾" type="tts">dansende mann: hudtype 5</annotation>
+ <annotation cp="🕺🏿">dans | dansende mann | hudtype 6 | mann</annotation>
+ <annotation cp="🕺🏿" type="tts">dansende mann: hudtype 6</annotation>
+ <annotation cp="🕴🏻">business | dress | forretningsmann | hudtype 1–2 | mann | svevende mann i dress</annotation>
+ <annotation cp="🕴🏻" type="tts">svevende mann i dress: hudtype 1–2</annotation>
+ <annotation cp="🕴🏼">business | dress | forretningsmann | hudtype 3 | mann | svevende mann i dress</annotation>
+ <annotation cp="🕴🏼" type="tts">svevende mann i dress: hudtype 3</annotation>
+ <annotation cp="🕴🏽">business | dress | forretningsmann | hudtype 4 | mann | svevende mann i dress</annotation>
+ <annotation cp="🕴🏽" type="tts">svevende mann i dress: hudtype 4</annotation>
+ <annotation cp="🕴🏾">business | dress | forretningsmann | hudtype 5 | mann | svevende mann i dress</annotation>
+ <annotation cp="🕴🏾" type="tts">svevende mann i dress: hudtype 5</annotation>
+ <annotation cp="🕴🏿">business | dress | forretningsmann | hudtype 6 | mann | svevende mann i dress</annotation>
+ <annotation cp="🕴🏿" type="tts">svevende mann i dress: hudtype 6</annotation>
+ <annotation cp="🧖🏻">dampbad | hudtype 1–2 | person i badstu | sauna</annotation>
+ <annotation cp="🧖🏻" type="tts">person i badstu: hudtype 1–2</annotation>
+ <annotation cp="🧖🏼">dampbad | hudtype 3 | person i badstu | sauna</annotation>
+ <annotation cp="🧖🏼" type="tts">person i badstu: hudtype 3</annotation>
+ <annotation cp="🧖🏽">dampbad | hudtype 4 | person i badstu | sauna</annotation>
+ <annotation cp="🧖🏽" type="tts">person i badstu: hudtype 4</annotation>
+ <annotation cp="🧖🏾">dampbad | hudtype 5 | person i badstu | sauna</annotation>
+ <annotation cp="🧖🏾" type="tts">person i badstu: hudtype 5</annotation>
+ <annotation cp="🧖🏿">dampbad | hudtype 6 | person i badstu | sauna</annotation>
+ <annotation cp="🧖🏿" type="tts">person i badstu: hudtype 6</annotation>
+ <annotation cp="🧖🏻♂">dampbad | hudtype 1–2 | mann i badstu | sauna</annotation>
+ <annotation cp="🧖🏻♂" type="tts">mann i badstu: hudtype 1–2</annotation>
+ <annotation cp="🧖🏼♂">dampbad | hudtype 3 | mann i badstu | sauna</annotation>
+ <annotation cp="🧖🏼♂" type="tts">mann i badstu: hudtype 3</annotation>
+ <annotation cp="🧖🏽♂">dampbad | hudtype 4 | mann i badstu | sauna</annotation>
+ <annotation cp="🧖🏽♂" type="tts">mann i badstu: hudtype 4</annotation>
+ <annotation cp="🧖🏾♂">dampbad | hudtype 5 | mann i badstu | sauna</annotation>
+ <annotation cp="🧖🏾♂" type="tts">mann i badstu: hudtype 5</annotation>
+ <annotation cp="🧖🏿♂">dampbad | hudtype 6 | mann i badstu | sauna</annotation>
+ <annotation cp="🧖🏿♂" type="tts">mann i badstu: hudtype 6</annotation>
+ <annotation cp="🧖🏻♀">dampbad | hudtype 1–2 | kvinne i badstu | sauna</annotation>
+ <annotation cp="🧖🏻♀" type="tts">kvinne i badstu: hudtype 1–2</annotation>
+ <annotation cp="🧖🏼♀">dampbad | hudtype 3 | kvinne i badstu | sauna</annotation>
+ <annotation cp="🧖🏼♀" type="tts">kvinne i badstu: hudtype 3</annotation>
+ <annotation cp="🧖🏽♀">dampbad | hudtype 4 | kvinne i badstu | sauna</annotation>
+ <annotation cp="🧖🏽♀" type="tts">kvinne i badstu: hudtype 4</annotation>
+ <annotation cp="🧖🏾♀">dampbad | hudtype 5 | kvinne i badstu | sauna</annotation>
+ <annotation cp="🧖🏾♀" type="tts">kvinne i badstu: hudtype 5</annotation>
+ <annotation cp="🧖🏿♀">dampbad | hudtype 6 | kvinne i badstu | sauna</annotation>
+ <annotation cp="🧖🏿♀" type="tts">kvinne i badstu: hudtype 6</annotation>
+ <annotation cp="🧗🏻">hudtype 1–2 | klatrer | klatring</annotation>
+ <annotation cp="🧗🏻" type="tts">klatrer: hudtype 1–2</annotation>
+ <annotation cp="🧗🏼">hudtype 3 | klatrer | klatring</annotation>
+ <annotation cp="🧗🏼" type="tts">klatrer: hudtype 3</annotation>
+ <annotation cp="🧗🏽">hudtype 4 | klatrer | klatring</annotation>
+ <annotation cp="🧗🏽" type="tts">klatrer: hudtype 4</annotation>
+ <annotation cp="🧗🏾">hudtype 5 | klatrer | klatring</annotation>
+ <annotation cp="🧗🏾" type="tts">klatrer: hudtype 5</annotation>
+ <annotation cp="🧗🏿">hudtype 6 | klatrer | klatring</annotation>
+ <annotation cp="🧗🏿" type="tts">klatrer: hudtype 6</annotation>
+ <annotation cp="🧗🏻♂">hudtype 1–2 | klatring | mannlig klatrer</annotation>
+ <annotation cp="🧗🏻♂" type="tts">mannlig klatrer: hudtype 1–2</annotation>
+ <annotation cp="🧗🏼♂">hudtype 3 | klatring | mannlig klatrer</annotation>
+ <annotation cp="🧗🏼♂" type="tts">mannlig klatrer: hudtype 3</annotation>
+ <annotation cp="🧗🏽♂">hudtype 4 | klatring | mannlig klatrer</annotation>
+ <annotation cp="🧗🏽♂" type="tts">mannlig klatrer: hudtype 4</annotation>
+ <annotation cp="🧗🏾♂">hudtype 5 | klatring | mannlig klatrer</annotation>
+ <annotation cp="🧗🏾♂" type="tts">mannlig klatrer: hudtype 5</annotation>
+ <annotation cp="🧗🏿♂">hudtype 6 | klatring | mannlig klatrer</annotation>
+ <annotation cp="🧗🏿♂" type="tts">mannlig klatrer: hudtype 6</annotation>
+ <annotation cp="🧗🏻♀">hudtype 1–2 | klatring | kvinnelig klatrer</annotation>
+ <annotation cp="🧗🏻♀" type="tts">kvinnelig klatrer: hudtype 1–2</annotation>
+ <annotation cp="🧗🏼♀">hudtype 3 | klatring | kvinnelig klatrer</annotation>
+ <annotation cp="🧗🏼♀" type="tts">kvinnelig klatrer: hudtype 3</annotation>
+ <annotation cp="🧗🏽♀">hudtype 4 | klatring | kvinnelig klatrer</annotation>
+ <annotation cp="🧗🏽♀" type="tts">kvinnelig klatrer: hudtype 4</annotation>
+ <annotation cp="🧗🏾♀">hudtype 5 | klatring | kvinnelig klatrer</annotation>
+ <annotation cp="🧗🏾♀" type="tts">kvinnelig klatrer: hudtype 5</annotation>
+ <annotation cp="🧗🏿♀">hudtype 6 | klatring | kvinnelig klatrer</annotation>
+ <annotation cp="🧗🏿♀" type="tts">kvinnelig klatrer: hudtype 6</annotation>
+ <annotation cp="🏇🏻">galopp | hest | hesteveddeløp | hudtype 1–2 | jockey | løp | sport | veddeløpshest</annotation>
+ <annotation cp="🏇🏻" type="tts">hesteveddeløp: hudtype 1–2</annotation>
+ <annotation cp="🏇🏼">galopp | hest | hesteveddeløp | hudtype 3 | jockey | løp | sport | veddeløpshest</annotation>
+ <annotation cp="🏇🏼" type="tts">hesteveddeløp: hudtype 3</annotation>
+ <annotation cp="🏇🏽">galopp | hest | hesteveddeløp | hudtype 4 | jockey | løp | sport | veddeløpshest</annotation>
+ <annotation cp="🏇🏽" type="tts">hesteveddeløp: hudtype 4</annotation>
+ <annotation cp="🏇🏾">galopp | hest | hesteveddeløp | hudtype 5 | jockey | løp | sport | veddeløpshest</annotation>
+ <annotation cp="🏇🏾" type="tts">hesteveddeløp: hudtype 5</annotation>
+ <annotation cp="🏇🏿">galopp | hest | hesteveddeløp | hudtype 6 | jockey | løp | sport | veddeløpshest</annotation>
+ <annotation cp="🏇🏿" type="tts">hesteveddeløp: hudtype 6</annotation>
+ <annotation cp="🏂🏻">hudtype 1–2 | snøbrett | snøbrettkjøring | snowboard | snowboarder | snowboarding | vintersport</annotation>
+ <annotation cp="🏂🏻" type="tts">snowboarder: hudtype 1–2</annotation>
+ <annotation cp="🏂🏼">hudtype 3 | snøbrett | snøbrettkjøring | snowboard | snowboarder | snowboarding | vintersport</annotation>
+ <annotation cp="🏂🏼" type="tts">snowboarder: hudtype 3</annotation>
+ <annotation cp="🏂🏽">hudtype 4 | snøbrett | snøbrettkjøring | snowboard | snowboarder | snowboarding | vintersport</annotation>
+ <annotation cp="🏂🏽" type="tts">snowboarder: hudtype 4</annotation>
+ <annotation cp="🏂🏾">hudtype 5 | snøbrett | snøbrettkjøring | snowboard | snowboarder | snowboarding | vintersport</annotation>
+ <annotation cp="🏂🏾" type="tts">snowboarder: hudtype 5</annotation>
+ <annotation cp="🏂🏿">hudtype 6 | snøbrett | snøbrettkjøring | snowboard | snowboarder | snowboarding | vintersport</annotation>
+ <annotation cp="🏂🏿" type="tts">snowboarder: hudtype 6</annotation>
+ <annotation cp="🏌🏻">ball | golf | golfspiller | hudtype 1–2</annotation>
+ <annotation cp="🏌🏻" type="tts">golfspiller: hudtype 1–2</annotation>
+ <annotation cp="🏌🏼">ball | golf | golfspiller | hudtype 3</annotation>
+ <annotation cp="🏌🏼" type="tts">golfspiller: hudtype 3</annotation>
+ <annotation cp="🏌🏽">ball | golf | golfspiller | hudtype 4</annotation>
+ <annotation cp="🏌🏽" type="tts">golfspiller: hudtype 4</annotation>
+ <annotation cp="🏌🏾">ball | golf | golfspiller | hudtype 5</annotation>
+ <annotation cp="🏌🏾" type="tts">golfspiller: hudtype 5</annotation>
+ <annotation cp="🏌🏿">ball | golf | golfspiller | hudtype 6</annotation>
+ <annotation cp="🏌🏿" type="tts">golfspiller: hudtype 6</annotation>
+ <annotation cp="🏌🏻♂">golf | golfspiller | hudtype 1–2 | mann | mannlig golfspiller</annotation>
+ <annotation cp="🏌🏻♂" type="tts">mannlig golfspiller: hudtype 1–2</annotation>
+ <annotation cp="🏌🏼♂">golf | golfspiller | hudtype 3 | mann | mannlig golfspiller</annotation>
+ <annotation cp="🏌🏼♂" type="tts">mannlig golfspiller: hudtype 3</annotation>
+ <annotation cp="🏌🏽♂">golf | golfspiller | hudtype 4 | mann | mannlig golfspiller</annotation>
+ <annotation cp="🏌🏽♂" type="tts">mannlig golfspiller: hudtype 4</annotation>
+ <annotation cp="🏌🏾♂">golf | golfspiller | hudtype 5 | mann | mannlig golfspiller</annotation>
+ <annotation cp="🏌🏾♂" type="tts">mannlig golfspiller: hudtype 5</annotation>
+ <annotation cp="🏌🏿♂">golf | golfspiller | hudtype 6 | mann | mannlig golfspiller</annotation>
+ <annotation cp="🏌🏿♂" type="tts">mannlig golfspiller: hudtype 6</annotation>
+ <annotation cp="🏌🏻♀">golf | golfspiller | hudtype 1–2 | kvinne | kvinnelig golfspiller</annotation>
+ <annotation cp="🏌🏻♀" type="tts">kvinnelig golfspiller: hudtype 1–2</annotation>
+ <annotation cp="🏌🏼♀">golf | golfspiller | hudtype 3 | kvinne | kvinnelig golfspiller</annotation>
+ <annotation cp="🏌🏼♀" type="tts">kvinnelig golfspiller: hudtype 3</annotation>
+ <annotation cp="🏌🏽♀">golf | golfspiller | hudtype 4 | kvinne | kvinnelig golfspiller</annotation>
+ <annotation cp="🏌🏽♀" type="tts">kvinnelig golfspiller: hudtype 4</annotation>
+ <annotation cp="🏌🏾♀">golf | golfspiller | hudtype 5 | kvinne | kvinnelig golfspiller</annotation>
+ <annotation cp="🏌🏾♀" type="tts">kvinnelig golfspiller: hudtype 5</annotation>
+ <annotation cp="🏌🏿♀">golf | golfspiller | hudtype 6 | kvinne | kvinnelig golfspiller</annotation>
+ <annotation cp="🏌🏿♀" type="tts">kvinnelig golfspiller: hudtype 6</annotation>
+ <annotation cp="🏄🏻">hudtype 1–2 | sport | surfer | surfing</annotation>
+ <annotation cp="🏄🏻" type="tts">surfer: hudtype 1–2</annotation>
+ <annotation cp="🏄🏼">hudtype 3 | sport | surfer | surfing</annotation>
+ <annotation cp="🏄🏼" type="tts">surfer: hudtype 3</annotation>
+ <annotation cp="🏄🏽">hudtype 4 | sport | surfer | surfing</annotation>
+ <annotation cp="🏄🏽" type="tts">surfer: hudtype 4</annotation>
+ <annotation cp="🏄🏾">hudtype 5 | sport | surfer | surfing</annotation>
+ <annotation cp="🏄🏾" type="tts">surfer: hudtype 5</annotation>
+ <annotation cp="🏄🏿">hudtype 6 | sport | surfer | surfing</annotation>
+ <annotation cp="🏄🏿" type="tts">surfer: hudtype 6</annotation>
+ <annotation cp="🏄🏻♂">hudtype 1–2 | mann | mannlig surfer | surfing</annotation>
+ <annotation cp="🏄🏻♂" type="tts">mannlig surfer: hudtype 1–2</annotation>
+ <annotation cp="🏄🏼♂">hudtype 3 | mann | mannlig surfer | surfing</annotation>
+ <annotation cp="🏄🏼♂" type="tts">mannlig surfer: hudtype 3</annotation>
+ <annotation cp="🏄🏽♂">hudtype 4 | mann | mannlig surfer | surfing</annotation>
+ <annotation cp="🏄🏽♂" type="tts">mannlig surfer: hudtype 4</annotation>
+ <annotation cp="🏄🏾♂">hudtype 5 | mann | mannlig surfer | surfing</annotation>
+ <annotation cp="🏄🏾♂" type="tts">mannlig surfer: hudtype 5</annotation>
+ <annotation cp="🏄🏿♂">hudtype 6 | mann | mannlig surfer | surfing</annotation>
+ <annotation cp="🏄🏿♂" type="tts">mannlig surfer: hudtype 6</annotation>
+ <annotation cp="🏄🏻♀">hudtype 1–2 | kvinne | kvinnelig surfer | surfing</annotation>
+ <annotation cp="🏄🏻♀" type="tts">kvinnelig surfer: hudtype 1–2</annotation>
+ <annotation cp="🏄🏼♀">hudtype 3 | kvinne | kvinnelig surfer | surfing</annotation>
+ <annotation cp="🏄🏼♀" type="tts">kvinnelig surfer: hudtype 3</annotation>
+ <annotation cp="🏄🏽♀">hudtype 4 | kvinne | kvinnelig surfer | surfing</annotation>
+ <annotation cp="🏄🏽♀" type="tts">kvinnelig surfer: hudtype 4</annotation>
+ <annotation cp="🏄🏾♀">hudtype 5 | kvinne | kvinnelig surfer | surfing</annotation>
+ <annotation cp="🏄🏾♀" type="tts">kvinnelig surfer: hudtype 5</annotation>
+ <annotation cp="🏄🏿♀">hudtype 6 | kvinne | kvinnelig surfer | surfing</annotation>
+ <annotation cp="🏄🏿♀" type="tts">kvinnelig surfer: hudtype 6</annotation>
+ <annotation cp="🚣🏻">båt | fartøy | hudtype 1–2 | person i robåt</annotation>
+ <annotation cp="🚣🏻" type="tts">person i robåt: hudtype 1–2</annotation>
+ <annotation cp="🚣🏼">båt | fartøy | hudtype 3 | person i robåt</annotation>
+ <annotation cp="🚣🏼" type="tts">person i robåt: hudtype 3</annotation>
+ <annotation cp="🚣🏽">båt | fartøy | hudtype 4 | person i robåt</annotation>
+ <annotation cp="🚣🏽" type="tts">person i robåt: hudtype 4</annotation>
+ <annotation cp="🚣🏾">båt | fartøy | hudtype 5 | person i robåt</annotation>
+ <annotation cp="🚣🏾" type="tts">person i robåt: hudtype 5</annotation>
+ <annotation cp="🚣🏿">båt | fartøy | hudtype 6 | person i robåt</annotation>
+ <annotation cp="🚣🏿" type="tts">person i robåt: hudtype 6</annotation>
+ <annotation cp="🚣🏻♂">båt | hudtype 1–2 | mann | mann i robåt | ro | robåt</annotation>
+ <annotation cp="🚣🏻♂" type="tts">mann i robåt: hudtype 1–2</annotation>
+ <annotation cp="🚣🏼♂">båt | hudtype 3 | mann | mann i robåt | ro | robåt</annotation>
+ <annotation cp="🚣🏼♂" type="tts">mann i robåt: hudtype 3</annotation>
+ <annotation cp="🚣🏽♂">båt | hudtype 4 | mann | mann i robåt | ro | robåt</annotation>
+ <annotation cp="🚣🏽♂" type="tts">mann i robåt: hudtype 4</annotation>
+ <annotation cp="🚣🏾♂">båt | hudtype 5 | mann | mann i robåt | ro | robåt</annotation>
+ <annotation cp="🚣🏾♂" type="tts">mann i robåt: hudtype 5</annotation>
+ <annotation cp="🚣🏿♂">båt | hudtype 6 | mann | mann i robåt | ro | robåt</annotation>
+ <annotation cp="🚣🏿♂" type="tts">mann i robåt: hudtype 6</annotation>
+ <annotation cp="🚣🏻♀">båt | hudtype 1–2 | kvinne | kvinne i robåt | ro | robåt</annotation>
+ <annotation cp="🚣🏻♀" type="tts">kvinne i robåt: hudtype 1–2</annotation>
+ <annotation cp="🚣🏼♀">båt | hudtype 3 | kvinne | kvinne i robåt | ro | robåt</annotation>
+ <annotation cp="🚣🏼♀" type="tts">kvinne i robåt: hudtype 3</annotation>
+ <annotation cp="🚣🏽♀">båt | hudtype 4 | kvinne | kvinne i robåt | ro | robåt</annotation>
+ <annotation cp="🚣🏽♀" type="tts">kvinne i robåt: hudtype 4</annotation>
+ <annotation cp="🚣🏾♀">båt | hudtype 5 | kvinne | kvinne i robåt | ro | robåt</annotation>
+ <annotation cp="🚣🏾♀" type="tts">kvinne i robåt: hudtype 5</annotation>
+ <annotation cp="🚣🏿♀">båt | hudtype 6 | kvinne | kvinne i robåt | ro | robåt</annotation>
+ <annotation cp="🚣🏿♀" type="tts">kvinne i robåt: hudtype 6</annotation>
+ <annotation cp="🏊🏻">hudtype 1–2 | sport | svømme | svømmer | svømming</annotation>
+ <annotation cp="🏊🏻" type="tts">svømmer: hudtype 1–2</annotation>
+ <annotation cp="🏊🏼">hudtype 3 | sport | svømme | svømmer | svømming</annotation>
+ <annotation cp="🏊🏼" type="tts">svømmer: hudtype 3</annotation>
+ <annotation cp="🏊🏽">hudtype 4 | sport | svømme | svømmer | svømming</annotation>
+ <annotation cp="🏊🏽" type="tts">svømmer: hudtype 4</annotation>
+ <annotation cp="🏊🏾">hudtype 5 | sport | svømme | svømmer | svømming</annotation>
+ <annotation cp="🏊🏾" type="tts">svømmer: hudtype 5</annotation>
+ <annotation cp="🏊🏿">hudtype 6 | sport | svømme | svømmer | svømming</annotation>
+ <annotation cp="🏊🏿" type="tts">svømmer: hudtype 6</annotation>
+ <annotation cp="🏊🏻♂">hudtype 1–2 | mann | mannlig svømmer | svømme | svømming</annotation>
+ <annotation cp="🏊🏻♂" type="tts">mannlig svømmer: hudtype 1–2</annotation>
+ <annotation cp="🏊🏼♂">hudtype 3 | mann | mannlig svømmer | svømme | svømming</annotation>
+ <annotation cp="🏊🏼♂" type="tts">mannlig svømmer: hudtype 3</annotation>
+ <annotation cp="🏊🏽♂">hudtype 4 | mann | mannlig svømmer | svømme | svømming</annotation>
+ <annotation cp="🏊🏽♂" type="tts">mannlig svømmer: hudtype 4</annotation>
+ <annotation cp="🏊🏾♂">hudtype 5 | mann | mannlig svømmer | svømme | svømming</annotation>
+ <annotation cp="🏊🏾♂" type="tts">mannlig svømmer: hudtype 5</annotation>
+ <annotation cp="🏊🏿♂">hudtype 6 | mann | mannlig svømmer | svømme | svømming</annotation>
+ <annotation cp="🏊🏿♂" type="tts">mannlig svømmer: hudtype 6</annotation>
+ <annotation cp="🏊🏻♀">hudtype 1–2 | kvinne | kvinnelig svømmer | svømme | svømming</annotation>
+ <annotation cp="🏊🏻♀" type="tts">kvinnelig svømmer: hudtype 1–2</annotation>
+ <annotation cp="🏊🏼♀">hudtype 3 | kvinne | kvinnelig svømmer | svømme | svømming</annotation>
+ <annotation cp="🏊🏼♀" type="tts">kvinnelig svømmer: hudtype 3</annotation>
+ <annotation cp="🏊🏽♀">hudtype 4 | kvinne | kvinnelig svømmer | svømme | svømming</annotation>
+ <annotation cp="🏊🏽♀" type="tts">kvinnelig svømmer: hudtype 4</annotation>
+ <annotation cp="🏊🏾♀">hudtype 5 | kvinne | kvinnelig svømmer | svømme | svømming</annotation>
+ <annotation cp="🏊🏾♀" type="tts">kvinnelig svømmer: hudtype 5</annotation>
+ <annotation cp="🏊🏿♀">hudtype 6 | kvinne | kvinnelig svømmer | svømme | svømming</annotation>
+ <annotation cp="🏊🏿♀" type="tts">kvinnelig svømmer: hudtype 6</annotation>
+ <annotation cp="⛹🏻">ball | ballsport | hudtype 1–2 | person med ball</annotation>
+ <annotation cp="⛹🏻" type="tts">person med ball: hudtype 1–2</annotation>
+ <annotation cp="⛹🏼">ball | ballsport | hudtype 3 | person med ball</annotation>
+ <annotation cp="⛹🏼" type="tts">person med ball: hudtype 3</annotation>
+ <annotation cp="⛹🏽">ball | ballsport | hudtype 4 | person med ball</annotation>
+ <annotation cp="⛹🏽" type="tts">person med ball: hudtype 4</annotation>
+ <annotation cp="⛹🏾">ball | ballsport | hudtype 5 | person med ball</annotation>
+ <annotation cp="⛹🏾" type="tts">person med ball: hudtype 5</annotation>
+ <annotation cp="⛹🏿">ball | ballsport | hudtype 6 | person med ball</annotation>
+ <annotation cp="⛹🏿" type="tts">person med ball: hudtype 6</annotation>
+ <annotation cp="⛹🏻♂">ballsport | hudtype 1–2 | mann | mann med ball</annotation>
+ <annotation cp="⛹🏻♂" type="tts">mann med ball: hudtype 1–2</annotation>
+ <annotation cp="⛹🏼♂">ballsport | hudtype 3 | mann | mann med ball</annotation>
+ <annotation cp="⛹🏼♂" type="tts">mann med ball: hudtype 3</annotation>
+ <annotation cp="⛹🏽♂">ballsport | hudtype 4 | mann | mann med ball</annotation>
+ <annotation cp="⛹🏽♂" type="tts">mann med ball: hudtype 4</annotation>
+ <annotation cp="⛹🏾♂">ballsport | hudtype 5 | mann | mann med ball</annotation>
+ <annotation cp="⛹🏾♂" type="tts">mann med ball: hudtype 5</annotation>
+ <annotation cp="⛹🏿♂">ballsport | hudtype 6 | mann | mann med ball</annotation>
+ <annotation cp="⛹🏿♂" type="tts">mann med ball: hudtype 6</annotation>
+ <annotation cp="⛹🏻♀">ballsport | hudtype 1–2 | kvinne | kvinne med ball</annotation>
+ <annotation cp="⛹🏻♀" type="tts">kvinne med ball: hudtype 1–2</annotation>
+ <annotation cp="⛹🏼♀">ballsport | hudtype 3 | kvinne | kvinne med ball</annotation>
+ <annotation cp="⛹🏼♀" type="tts">kvinne med ball: hudtype 3</annotation>
+ <annotation cp="⛹🏽♀">ballsport | hudtype 4 | kvinne | kvinne med ball</annotation>
+ <annotation cp="⛹🏽♀" type="tts">kvinne med ball: hudtype 4</annotation>
+ <annotation cp="⛹🏾♀">ballsport | hudtype 5 | kvinne | kvinne med ball</annotation>
+ <annotation cp="⛹🏾♀" type="tts">kvinne med ball: hudtype 5</annotation>
+ <annotation cp="⛹🏿♀">ballsport | hudtype 6 | kvinne | kvinne med ball</annotation>
+ <annotation cp="⛹🏿♀" type="tts">kvinne med ball: hudtype 6</annotation>
+ <annotation cp="🏋🏻">hudtype 1–2 | løfter | vekt | vektløfter</annotation>
+ <annotation cp="🏋🏻" type="tts">vektløfter: hudtype 1–2</annotation>
+ <annotation cp="🏋🏼">hudtype 3 | løfter | vekt | vektløfter</annotation>
+ <annotation cp="🏋🏼" type="tts">vektløfter: hudtype 3</annotation>
+ <annotation cp="🏋🏽">hudtype 4 | løfter | vekt | vektløfter</annotation>
+ <annotation cp="🏋🏽" type="tts">vektløfter: hudtype 4</annotation>
+ <annotation cp="🏋🏾">hudtype 5 | løfter | vekt | vektløfter</annotation>
+ <annotation cp="🏋🏾" type="tts">vektløfter: hudtype 5</annotation>
+ <annotation cp="🏋🏿">hudtype 6 | løfter | vekt | vektløfter</annotation>
+ <annotation cp="🏋🏿" type="tts">vektløfter: hudtype 6</annotation>
+ <annotation cp="🏋🏻♂">bodybuilding | hudtype 1–2 | mann | mannlig vektløfter | vektløfter</annotation>
+ <annotation cp="🏋🏻♂" type="tts">mannlig vektløfter: hudtype 1–2</annotation>
+ <annotation cp="🏋🏼♂">bodybuilding | hudtype 3 | mann | mannlig vektløfter | vektløfter</annotation>
+ <annotation cp="🏋🏼♂" type="tts">mannlig vektløfter: hudtype 3</annotation>
+ <annotation cp="🏋🏽♂">bodybuilding | hudtype 4 | mann | mannlig vektløfter | vektløfter</annotation>
+ <annotation cp="🏋🏽♂" type="tts">mannlig vektløfter: hudtype 4</annotation>
+ <annotation cp="🏋🏾♂">bodybuilding | hudtype 5 | mann | mannlig vektløfter | vektløfter</annotation>
+ <annotation cp="🏋🏾♂" type="tts">mannlig vektløfter: hudtype 5</annotation>
+ <annotation cp="🏋🏿♂">bodybuilding | hudtype 6 | mann | mannlig vektløfter | vektløfter</annotation>
+ <annotation cp="🏋🏿♂" type="tts">mannlig vektløfter: hudtype 6</annotation>
+ <annotation cp="🏋🏻♀">bodybuilding | hudtype 1–2 | kvinne | kvinnelig vektløfter | vektløfting</annotation>
+ <annotation cp="🏋🏻♀" type="tts">kvinnelig vektløfter: hudtype 1–2</annotation>
+ <annotation cp="🏋🏼♀">bodybuilding | hudtype 3 | kvinne | kvinnelig vektløfter | vektløfting</annotation>
+ <annotation cp="🏋🏼♀" type="tts">kvinnelig vektløfter: hudtype 3</annotation>
+ <annotation cp="🏋🏽♀">bodybuilding | hudtype 4 | kvinne | kvinnelig vektløfter | vektløfting</annotation>
+ <annotation cp="🏋🏽♀" type="tts">kvinnelig vektløfter: hudtype 4</annotation>
+ <annotation cp="🏋🏾♀">bodybuilding | hudtype 5 | kvinne | kvinnelig vektløfter | vektløfting</annotation>
+ <annotation cp="🏋🏾♀" type="tts">kvinnelig vektløfter: hudtype 5</annotation>
+ <annotation cp="🏋🏿♀">bodybuilding | hudtype 6 | kvinne | kvinnelig vektløfter | vektløfting</annotation>
+ <annotation cp="🏋🏿♀" type="tts">kvinnelig vektløfter: hudtype 6</annotation>
+ <annotation cp="🚴🏻">hudtype 1–2 | sykkel | sykle | syklist</annotation>
+ <annotation cp="🚴🏻" type="tts">syklist: hudtype 1–2</annotation>
+ <annotation cp="🚴🏼">hudtype 3 | sykkel | sykle | syklist</annotation>
+ <annotation cp="🚴🏼" type="tts">syklist: hudtype 3</annotation>
+ <annotation cp="🚴🏽">hudtype 4 | sykkel | sykle | syklist</annotation>
+ <annotation cp="🚴🏽" type="tts">syklist: hudtype 4</annotation>
+ <annotation cp="🚴🏾">hudtype 5 | sykkel | sykle | syklist</annotation>
+ <annotation cp="🚴🏾" type="tts">syklist: hudtype 5</annotation>
+ <annotation cp="🚴🏿">hudtype 6 | sykkel | sykle | syklist</annotation>
+ <annotation cp="🚴🏿" type="tts">syklist: hudtype 6</annotation>
+ <annotation cp="🚴🏻♂">hudtype 1–2 | mann | mannlig syklist | sykkel | sykle</annotation>
+ <annotation cp="🚴🏻♂" type="tts">mannlig syklist: hudtype 1–2</annotation>
+ <annotation cp="🚴🏼♂">hudtype 3 | mann | mannlig syklist | sykkel | sykle</annotation>
+ <annotation cp="🚴🏼♂" type="tts">mannlig syklist: hudtype 3</annotation>
+ <annotation cp="🚴🏽♂">hudtype 4 | mann | mannlig syklist | sykkel | sykle</annotation>
+ <annotation cp="🚴🏽♂" type="tts">mannlig syklist: hudtype 4</annotation>
+ <annotation cp="🚴🏾♂">hudtype 5 | mann | mannlig syklist | sykkel | sykle</annotation>
+ <annotation cp="🚴🏾♂" type="tts">mannlig syklist: hudtype 5</annotation>
+ <annotation cp="🚴🏿♂">hudtype 6 | mann | mannlig syklist | sykkel | sykle</annotation>
+ <annotation cp="🚴🏿♂" type="tts">mannlig syklist: hudtype 6</annotation>
+ <annotation cp="🚴🏻♀">hudtype 1–2 | kvinne | kvinnelig syklist | sykkel | sykle</annotation>
+ <annotation cp="🚴🏻♀" type="tts">kvinnelig syklist: hudtype 1–2</annotation>
+ <annotation cp="🚴🏼♀">hudtype 3 | kvinne | kvinnelig syklist | sykkel | sykle</annotation>
+ <annotation cp="🚴🏼♀" type="tts">kvinnelig syklist: hudtype 3</annotation>
+ <annotation cp="🚴🏽♀">hudtype 4 | kvinne | kvinnelig syklist | sykkel | sykle</annotation>
+ <annotation cp="🚴🏽♀" type="tts">kvinnelig syklist: hudtype 4</annotation>
+ <annotation cp="🚴🏾♀">hudtype 5 | kvinne | kvinnelig syklist | sykkel | sykle</annotation>
+ <annotation cp="🚴🏾♀" type="tts">kvinnelig syklist: hudtype 5</annotation>
+ <annotation cp="🚴🏿♀">hudtype 6 | kvinne | kvinnelig syklist | sykkel | sykle</annotation>
+ <annotation cp="🚴🏿♀" type="tts">kvinnelig syklist: hudtype 6</annotation>
+ <annotation cp="🚵🏻">hudtype 1–2 | mountainbike | sykkel | terrengsykkel | terrengsyklist</annotation>
+ <annotation cp="🚵🏻" type="tts">terrengsyklist: hudtype 1–2</annotation>
+ <annotation cp="🚵🏼">hudtype 3 | mountainbike | sykkel | terrengsykkel | terrengsyklist</annotation>
+ <annotation cp="🚵🏼" type="tts">terrengsyklist: hudtype 3</annotation>
+ <annotation cp="🚵🏽">hudtype 4 | mountainbike | sykkel | terrengsykkel | terrengsyklist</annotation>
+ <annotation cp="🚵🏽" type="tts">terrengsyklist: hudtype 4</annotation>
+ <annotation cp="🚵🏾">hudtype 5 | mountainbike | sykkel | terrengsykkel | terrengsyklist</annotation>
+ <annotation cp="🚵🏾" type="tts">terrengsyklist: hudtype 5</annotation>
+ <annotation cp="🚵🏿">hudtype 6 | mountainbike | sykkel | terrengsykkel | terrengsyklist</annotation>
+ <annotation cp="🚵🏿" type="tts">terrengsyklist: hudtype 6</annotation>
+ <annotation cp="🚵🏻♂">hudtype 1–2 | mann | mann på terrengsykkel | mountainbike | sykkel | terrengsykkel</annotation>
+ <annotation cp="🚵🏻♂" type="tts">mann på terrengsykkel: hudtype 1–2</annotation>
+ <annotation cp="🚵🏼♂">hudtype 3 | mann | mann på terrengsykkel | mountainbike | sykkel | terrengsykkel</annotation>
+ <annotation cp="🚵🏼♂" type="tts">mann på terrengsykkel: hudtype 3</annotation>
+ <annotation cp="🚵🏽♂">hudtype 4 | mann | mann på terrengsykkel | mountainbike | sykkel | terrengsykkel</annotation>
+ <annotation cp="🚵🏽♂" type="tts">mann på terrengsykkel: hudtype 4</annotation>
+ <annotation cp="🚵🏾♂">hudtype 5 | mann | mann på terrengsykkel | mountainbike | sykkel | terrengsykkel</annotation>
+ <annotation cp="🚵🏾♂" type="tts">mann på terrengsykkel: hudtype 5</annotation>
+ <annotation cp="🚵🏿♂">hudtype 6 | mann | mann på terrengsykkel | mountainbike | sykkel | terrengsykkel</annotation>
+ <annotation cp="🚵🏿♂" type="tts">mann på terrengsykkel: hudtype 6</annotation>
+ <annotation cp="🚵🏻♀">hudtype 1–2 | kvinne | kvinne på terrengsykkel | mountainbike | sykkel | terrengsykkel</annotation>
+ <annotation cp="🚵🏻♀" type="tts">kvinne på terrengsykkel: hudtype 1–2</annotation>
+ <annotation cp="🚵🏼♀">hudtype 3 | kvinne | kvinne på terrengsykkel | mountainbike | sykkel | terrengsykkel</annotation>
+ <annotation cp="🚵🏼♀" type="tts">kvinne på terrengsykkel: hudtype 3</annotation>
+ <annotation cp="🚵🏽♀">hudtype 4 | kvinne | kvinne på terrengsykkel | mountainbike | sykkel | terrengsykkel</annotation>
+ <annotation cp="🚵🏽♀" type="tts">kvinne på terrengsykkel: hudtype 4</annotation>
+ <annotation cp="🚵🏾♀">hudtype 5 | kvinne | kvinne på terrengsykkel | mountainbike | sykkel | terrengsykkel</annotation>
+ <annotation cp="🚵🏾♀" type="tts">kvinne på terrengsykkel: hudtype 5</annotation>
+ <annotation cp="🚵🏿♀">hudtype 6 | kvinne | kvinne på terrengsykkel | mountainbike | sykkel | terrengsykkel</annotation>
+ <annotation cp="🚵🏿♀" type="tts">kvinne på terrengsykkel: hudtype 6</annotation>
+ <annotation cp="🤸🏻">gym | gymnastikk | hudtype 1–2 | person | slå hjul | sport</annotation>
+ <annotation cp="🤸🏻" type="tts">slå hjul: hudtype 1–2</annotation>
+ <annotation cp="🤸🏼">gym | gymnastikk | hudtype 3 | person | slå hjul | sport</annotation>
+ <annotation cp="🤸🏼" type="tts">slå hjul: hudtype 3</annotation>
+ <annotation cp="🤸🏽">gym | gymnastikk | hudtype 4 | person | slå hjul | sport</annotation>
+ <annotation cp="🤸🏽" type="tts">slå hjul: hudtype 4</annotation>
+ <annotation cp="🤸🏾">gym | gymnastikk | hudtype 5 | person | slå hjul | sport</annotation>
+ <annotation cp="🤸🏾" type="tts">slå hjul: hudtype 5</annotation>
+ <annotation cp="🤸🏿">gym | gymnastikk | hudtype 6 | person | slå hjul | sport</annotation>
+ <annotation cp="🤸🏿" type="tts">slå hjul: hudtype 6</annotation>
+ <annotation cp="🤸🏻♂">hudtype 1–2 | mann | mann som slår hjul | slå hjul</annotation>
+ <annotation cp="🤸🏻♂" type="tts">mann som slår hjul: hudtype 1–2</annotation>
+ <annotation cp="🤸🏼♂">hudtype 3 | mann | mann som slår hjul | slå hjul</annotation>
+ <annotation cp="🤸🏼♂" type="tts">mann som slår hjul: hudtype 3</annotation>
+ <annotation cp="🤸🏽♂">hudtype 4 | mann | mann som slår hjul | slå hjul</annotation>
+ <annotation cp="🤸🏽♂" type="tts">mann som slår hjul: hudtype 4</annotation>
+ <annotation cp="🤸🏾♂">hudtype 5 | mann | mann som slår hjul | slå hjul</annotation>
+ <annotation cp="🤸🏾♂" type="tts">mann som slår hjul: hudtype 5</annotation>
+ <annotation cp="🤸🏿♂">hudtype 6 | mann | mann som slår hjul | slå hjul</annotation>
+ <annotation cp="🤸🏿♂" type="tts">mann som slår hjul: hudtype 6</annotation>
+ <annotation cp="🤸🏻♀">hudtype 1–2 | kvinne | kvinne som slår hjul | slå hjul</annotation>
+ <annotation cp="🤸🏻♀" type="tts">kvinne som slår hjul: hudtype 1–2</annotation>
+ <annotation cp="🤸🏼♀">hudtype 3 | kvinne | kvinne som slår hjul | slå hjul</annotation>
+ <annotation cp="🤸🏼♀" type="tts">kvinne som slår hjul: hudtype 3</annotation>
+ <annotation cp="🤸🏽♀">hudtype 4 | kvinne | kvinne som slår hjul | slå hjul</annotation>
+ <annotation cp="🤸🏽♀" type="tts">kvinne som slår hjul: hudtype 4</annotation>
+ <annotation cp="🤸🏾♀">hudtype 5 | kvinne | kvinne som slår hjul | slå hjul</annotation>
+ <annotation cp="🤸🏾♀" type="tts">kvinne som slår hjul: hudtype 5</annotation>
+ <annotation cp="🤸🏿♀">hudtype 6 | kvinne | kvinne som slår hjul | slå hjul</annotation>
+ <annotation cp="🤸🏿♀" type="tts">kvinne som slår hjul: hudtype 6</annotation>
+ <annotation cp="🤽🏻">hudtype 1–2 | person | polo | sport | vann | vannpolo</annotation>
+ <annotation cp="🤽🏻" type="tts">vannpolo: hudtype 1–2</annotation>
+ <annotation cp="🤽🏼">hudtype 3 | person | polo | sport | vann | vannpolo</annotation>
+ <annotation cp="🤽🏼" type="tts">vannpolo: hudtype 3</annotation>
+ <annotation cp="🤽🏽">hudtype 4 | person | polo | sport | vann | vannpolo</annotation>
+ <annotation cp="🤽🏽" type="tts">vannpolo: hudtype 4</annotation>
+ <annotation cp="🤽🏾">hudtype 5 | person | polo | sport | vann | vannpolo</annotation>
+ <annotation cp="🤽🏾" type="tts">vannpolo: hudtype 5</annotation>
+ <annotation cp="🤽🏿">hudtype 6 | person | polo | sport | vann | vannpolo</annotation>
+ <annotation cp="🤽🏿" type="tts">vannpolo: hudtype 6</annotation>
+ <annotation cp="🤽🏻♂">hudtype 1–2 | mann | mannlig vannpolospiller | vannpolo</annotation>
+ <annotation cp="🤽🏻♂" type="tts">mannlig vannpolospiller: hudtype 1–2</annotation>
+ <annotation cp="🤽🏼♂">hudtype 3 | mann | mannlig vannpolospiller | vannpolo</annotation>
+ <annotation cp="🤽🏼♂" type="tts">mannlig vannpolospiller: hudtype 3</annotation>
+ <annotation cp="🤽🏽♂">hudtype 4 | mann | mannlig vannpolospiller | vannpolo</annotation>
+ <annotation cp="🤽🏽♂" type="tts">mannlig vannpolospiller: hudtype 4</annotation>
+ <annotation cp="🤽🏾♂">hudtype 5 | mann | mannlig vannpolospiller | vannpolo</annotation>
+ <annotation cp="🤽🏾♂" type="tts">mannlig vannpolospiller: hudtype 5</annotation>
+ <annotation cp="🤽🏿♂">hudtype 6 | mann | mannlig vannpolospiller | vannpolo</annotation>
+ <annotation cp="🤽🏿♂" type="tts">mannlig vannpolospiller: hudtype 6</annotation>
+ <annotation cp="🤽🏻♀">hudtype 1–2 | kvinne | kvinnelig vannpolospiller | vannpolo</annotation>
+ <annotation cp="🤽🏻♀" type="tts">kvinnelig vannpolospiller: hudtype 1–2</annotation>
+ <annotation cp="🤽🏼♀">hudtype 3 | kvinne | kvinnelig vannpolospiller | vannpolo</annotation>
+ <annotation cp="🤽🏼♀" type="tts">kvinnelig vannpolospiller: hudtype 3</annotation>
+ <annotation cp="🤽🏽♀">hudtype 4 | kvinne | kvinnelig vannpolospiller | vannpolo</annotation>
+ <annotation cp="🤽🏽♀" type="tts">kvinnelig vannpolospiller: hudtype 4</annotation>
+ <annotation cp="🤽🏾♀">hudtype 5 | kvinne | kvinnelig vannpolospiller | vannpolo</annotation>
+ <annotation cp="🤽🏾♀" type="tts">kvinnelig vannpolospiller: hudtype 5</annotation>
+ <annotation cp="🤽🏿♀">hudtype 6 | kvinne | kvinnelig vannpolospiller | vannpolo</annotation>
+ <annotation cp="🤽🏿♀" type="tts">kvinnelig vannpolospiller: hudtype 6</annotation>
+ <annotation cp="🤾🏻">ball | håndball | hudtype 1–2 | person | sport</annotation>
+ <annotation cp="🤾🏻" type="tts">håndball: hudtype 1–2</annotation>
+ <annotation cp="🤾🏼">ball | håndball | hudtype 3 | person | sport</annotation>
+ <annotation cp="🤾🏼" type="tts">håndball: hudtype 3</annotation>
+ <annotation cp="🤾🏽">ball | håndball | hudtype 4 | person | sport</annotation>
+ <annotation cp="🤾🏽" type="tts">håndball: hudtype 4</annotation>
+ <annotation cp="🤾🏾">ball | håndball | hudtype 5 | person | sport</annotation>
+ <annotation cp="🤾🏾" type="tts">håndball: hudtype 5</annotation>
+ <annotation cp="🤾🏿">ball | håndball | hudtype 6 | person | sport</annotation>
+ <annotation cp="🤾🏿" type="tts">håndball: hudtype 6</annotation>
+ <annotation cp="🤾🏻♂">håndball | hudtype 1–2 | mann | mannlig håndballspiller</annotation>
+ <annotation cp="🤾🏻♂" type="tts">mannlig håndballspiller: hudtype 1–2</annotation>
+ <annotation cp="🤾🏼♂">håndball | hudtype 3 | mann | mannlig håndballspiller</annotation>
+ <annotation cp="🤾🏼♂" type="tts">mannlig håndballspiller: hudtype 3</annotation>
+ <annotation cp="🤾🏽♂">håndball | hudtype 4 | mann | mannlig håndballspiller</annotation>
+ <annotation cp="🤾🏽♂" type="tts">mannlig håndballspiller: hudtype 4</annotation>
+ <annotation cp="🤾🏾♂">håndball | hudtype 5 | mann | mannlig håndballspiller</annotation>
+ <annotation cp="🤾🏾♂" type="tts">mannlig håndballspiller: hudtype 5</annotation>
+ <annotation cp="🤾🏿♂">håndball | hudtype 6 | mann | mannlig håndballspiller</annotation>
+ <annotation cp="🤾🏿♂" type="tts">mannlig håndballspiller: hudtype 6</annotation>
+ <annotation cp="🤾🏻♀">håndball | hudtype 1–2 | kvinne | kvinnelig håndballspiller</annotation>
+ <annotation cp="🤾🏻♀" type="tts">kvinnelig håndballspiller: hudtype 1–2</annotation>
+ <annotation cp="🤾🏼♀">håndball | hudtype 3 | kvinne | kvinnelig håndballspiller</annotation>
+ <annotation cp="🤾🏼♀" type="tts">kvinnelig håndballspiller: hudtype 3</annotation>
+ <annotation cp="🤾🏽♀">håndball | hudtype 4 | kvinne | kvinnelig håndballspiller</annotation>
+ <annotation cp="🤾🏽♀" type="tts">kvinnelig håndballspiller: hudtype 4</annotation>
+ <annotation cp="🤾🏾♀">håndball | hudtype 5 | kvinne | kvinnelig håndballspiller</annotation>
+ <annotation cp="🤾🏾♀" type="tts">kvinnelig håndballspiller: hudtype 5</annotation>
+ <annotation cp="🤾🏿♀">håndball | hudtype 6 | kvinne | kvinnelig håndballspiller</annotation>
+ <annotation cp="🤾🏿♀" type="tts">kvinnelig håndballspiller: hudtype 6</annotation>
+ <annotation cp="🤹🏻">balanse | ferdighet | hudtype 1–2 | multitasking | sjonglering</annotation>
+ <annotation cp="🤹🏻" type="tts">sjonglering: hudtype 1–2</annotation>
+ <annotation cp="🤹🏼">balanse | ferdighet | hudtype 3 | multitasking | sjonglering</annotation>
+ <annotation cp="🤹🏼" type="tts">sjonglering: hudtype 3</annotation>
+ <annotation cp="🤹🏽">balanse | ferdighet | hudtype 4 | multitasking | sjonglering</annotation>
+ <annotation cp="🤹🏽" type="tts">sjonglering: hudtype 4</annotation>
+ <annotation cp="🤹🏾">balanse | ferdighet | hudtype 5 | multitasking | sjonglering</annotation>
+ <annotation cp="🤹🏾" type="tts">sjonglering: hudtype 5</annotation>
+ <annotation cp="🤹🏿">balanse | ferdighet | hudtype 6 | multitasking | sjonglering</annotation>
+ <annotation cp="🤹🏿" type="tts">sjonglering: hudtype 6</annotation>
+ <annotation cp="🤹🏻♂">hudtype 1–2 | mann | mannlig sjonglør | multitasking | sirkus | sjonglere</annotation>
+ <annotation cp="🤹🏻♂" type="tts">mannlig sjonglør: hudtype 1–2</annotation>
+ <annotation cp="🤹🏼♂">hudtype 3 | mann | mannlig sjonglør | multitasking | sirkus | sjonglere</annotation>
+ <annotation cp="🤹🏼♂" type="tts">mannlig sjonglør: hudtype 3</annotation>
+ <annotation cp="🤹🏽♂">hudtype 4 | mann | mannlig sjonglør | multitasking | sirkus | sjonglere</annotation>
+ <annotation cp="🤹🏽♂" type="tts">mannlig sjonglør: hudtype 4</annotation>
+ <annotation cp="🤹🏾♂">hudtype 5 | mann | mannlig sjonglør | multitasking | sirkus | sjonglere</annotation>
+ <annotation cp="🤹🏾♂" type="tts">mannlig sjonglør: hudtype 5</annotation>
+ <annotation cp="🤹🏿♂">hudtype 6 | mann | mannlig sjonglør | multitasking | sirkus | sjonglere</annotation>
+ <annotation cp="🤹🏿♂" type="tts">mannlig sjonglør: hudtype 6</annotation>
+ <annotation cp="🤹🏻♀">hudtype 1–2 | kvinne | kvinnelig sjonglør | multitasking | sirkus | sjonglere</annotation>
+ <annotation cp="🤹🏻♀" type="tts">kvinnelig sjonglør: hudtype 1–2</annotation>
+ <annotation cp="🤹🏼♀">hudtype 3 | kvinne | kvinnelig sjonglør | multitasking | sirkus | sjonglere</annotation>
+ <annotation cp="🤹🏼♀" type="tts">kvinnelig sjonglør: hudtype 3</annotation>
+ <annotation cp="🤹🏽♀">hudtype 4 | kvinne | kvinnelig sjonglør | multitasking | sirkus | sjonglere</annotation>
+ <annotation cp="🤹🏽♀" type="tts">kvinnelig sjonglør: hudtype 4</annotation>
+ <annotation cp="🤹🏾♀">hudtype 5 | kvinne | kvinnelig sjonglør | multitasking | sirkus | sjonglere</annotation>
+ <annotation cp="🤹🏾♀" type="tts">kvinnelig sjonglør: hudtype 5</annotation>
+ <annotation cp="🤹🏿♀">hudtype 6 | kvinne | kvinnelig sjonglør | multitasking | sirkus | sjonglere</annotation>
+ <annotation cp="🤹🏿♀" type="tts">kvinnelig sjonglør: hudtype 6</annotation>
+ <annotation cp="🧘🏻">hudtype 1–2 | lotusstilling | meditasjon | yoga</annotation>
+ <annotation cp="🧘🏻" type="tts">lotusstilling: hudtype 1–2</annotation>
+ <annotation cp="🧘🏼">hudtype 3 | lotusstilling | meditasjon | yoga</annotation>
+ <annotation cp="🧘🏼" type="tts">lotusstilling: hudtype 3</annotation>
+ <annotation cp="🧘🏽">hudtype 4 | lotusstilling | meditasjon | yoga</annotation>
+ <annotation cp="🧘🏽" type="tts">lotusstilling: hudtype 4</annotation>
+ <annotation cp="🧘🏾">hudtype 5 | lotusstilling | meditasjon | yoga</annotation>
+ <annotation cp="🧘🏾" type="tts">lotusstilling: hudtype 5</annotation>
+ <annotation cp="🧘🏿">hudtype 6 | lotusstilling | meditasjon | yoga</annotation>
+ <annotation cp="🧘🏿" type="tts">lotusstilling: hudtype 6</annotation>
+ <annotation cp="🧘🏻♂">hudtype 1–2 | mann i lotusstilling | meditasjon | yoga</annotation>
+ <annotation cp="🧘🏻♂" type="tts">mann i lotusstilling: hudtype 1–2</annotation>
+ <annotation cp="🧘🏼♂">hudtype 3 | mann i lotusstilling | meditasjon | yoga</annotation>
+ <annotation cp="🧘🏼♂" type="tts">mann i lotusstilling: hudtype 3</annotation>
+ <annotation cp="🧘🏽♂">hudtype 4 | mann i lotusstilling | meditasjon | yoga</annotation>
+ <annotation cp="🧘🏽♂" type="tts">mann i lotusstilling: hudtype 4</annotation>
+ <annotation cp="🧘🏾♂">hudtype 5 | mann i lotusstilling | meditasjon | yoga</annotation>
+ <annotation cp="🧘🏾♂" type="tts">mann i lotusstilling: hudtype 5</annotation>
+ <annotation cp="🧘🏿♂">hudtype 6 | mann i lotusstilling | meditasjon | yoga</annotation>
+ <annotation cp="🧘🏿♂" type="tts">mann i lotusstilling: hudtype 6</annotation>
+ <annotation cp="🧘🏻♀">hudtype 1–2 | kvinne i lotusstilling | meditasjon | yoga</annotation>
+ <annotation cp="🧘🏻♀" type="tts">kvinne i lotusstilling: hudtype 1–2</annotation>
+ <annotation cp="🧘🏼♀">hudtype 3 | kvinne i lotusstilling | meditasjon | yoga</annotation>
+ <annotation cp="🧘🏼♀" type="tts">kvinne i lotusstilling: hudtype 3</annotation>
+ <annotation cp="🧘🏽♀">hudtype 4 | kvinne i lotusstilling | meditasjon | yoga</annotation>
+ <annotation cp="🧘🏽♀" type="tts">kvinne i lotusstilling: hudtype 4</annotation>
+ <annotation cp="🧘🏾♀">hudtype 5 | kvinne i lotusstilling | meditasjon | yoga</annotation>
+ <annotation cp="🧘🏾♀" type="tts">kvinne i lotusstilling: hudtype 5</annotation>
+ <annotation cp="🧘🏿♀">hudtype 6 | kvinne i lotusstilling | meditasjon | yoga</annotation>
+ <annotation cp="🧘🏿♀" type="tts">kvinne i lotusstilling: hudtype 6</annotation>
+ <annotation cp="🛀🏻">bad | badekar | hudtype 1–2 | person i badekar</annotation>
+ <annotation cp="🛀🏻" type="tts">person i badekar: hudtype 1–2</annotation>
+ <annotation cp="🛀🏼">bad | badekar | hudtype 3 | person i badekar</annotation>
+ <annotation cp="🛀🏼" type="tts">person i badekar: hudtype 3</annotation>
+ <annotation cp="🛀🏽">bad | badekar | hudtype 4 | person i badekar</annotation>
+ <annotation cp="🛀🏽" type="tts">person i badekar: hudtype 4</annotation>
+ <annotation cp="🛀🏾">bad | badekar | hudtype 5 | person i badekar</annotation>
+ <annotation cp="🛀🏾" type="tts">person i badekar: hudtype 5</annotation>
+ <annotation cp="🛀🏿">bad | badekar | hudtype 6 | person i badekar</annotation>
+ <annotation cp="🛀🏿" type="tts">person i badekar: hudtype 6</annotation>
+ <annotation cp="🛌🏻">hotell | hudtype 1–2 | person i seng | sove</annotation>
+ <annotation cp="🛌🏻" type="tts">person i seng: hudtype 1–2</annotation>
+ <annotation cp="🛌🏼">hotell | hudtype 3 | person i seng | sove</annotation>
+ <annotation cp="🛌🏼" type="tts">person i seng: hudtype 3</annotation>
+ <annotation cp="🛌🏽">hotell | hudtype 4 | person i seng | sove</annotation>
+ <annotation cp="🛌🏽" type="tts">person i seng: hudtype 4</annotation>
+ <annotation cp="🛌🏾">hotell | hudtype 5 | person i seng | sove</annotation>
+ <annotation cp="🛌🏾" type="tts">person i seng: hudtype 5</annotation>
+ <annotation cp="🛌🏿">hotell | hudtype 6 | person i seng | sove</annotation>
+ <annotation cp="🛌🏿" type="tts">person i seng: hudtype 6</annotation>
+ <annotation cp="🧑🏻🤝🧑🏻">hånd | holde hender | hudtype 1–2 | par | personer | personer som leier</annotation>
+ <annotation cp="🧑🏻🤝🧑🏻" type="tts">personer som leier: hudtype 1–2</annotation>
+ <annotation cp="🧑🏻🤝🧑🏼">hånd | holde hender | hudtype 1–2 | hudtype 3 | par | personer | personer som leier</annotation>
+ <annotation cp="🧑🏻🤝🧑🏼" type="tts">personer som leier: hudtype 1–2, hudtype 3</annotation>
+ <annotation cp="🧑🏻🤝🧑🏽">hånd | holde hender | hudtype 1–2 | hudtype 4 | par | personer | personer som leier</annotation>
+ <annotation cp="🧑🏻🤝🧑🏽" type="tts">personer som leier: hudtype 1–2, hudtype 4</annotation>
+ <annotation cp="🧑🏻🤝🧑🏾">hånd | holde hender | hudtype 1–2 | hudtype 5 | par | personer | personer som leier</annotation>
+ <annotation cp="🧑🏻🤝🧑🏾" type="tts">personer som leier: hudtype 1–2, hudtype 5</annotation>
+ <annotation cp="🧑🏻🤝🧑🏿">hånd | holde hender | hudtype 1–2 | hudtype 6 | par | personer | personer som leier</annotation>
+ <annotation cp="🧑🏻🤝🧑🏿" type="tts">personer som leier: hudtype 1–2, hudtype 6</annotation>
+ <annotation cp="🧑🏼🤝🧑🏻">hånd | holde hender | hudtype 1–2 | hudtype 3 | par | personer | personer som leier</annotation>
+ <annotation cp="🧑🏼🤝🧑🏻" type="tts">personer som leier: hudtype 3, hudtype 1–2</annotation>
+ <annotation cp="🧑🏼🤝🧑🏼">hånd | holde hender | hudtype 3 | par | personer | personer som leier</annotation>
+ <annotation cp="🧑🏼🤝🧑🏼" type="tts">personer som leier: hudtype 3</annotation>
+ <annotation cp="🧑🏼🤝🧑🏽">hånd | holde hender | hudtype 3 | hudtype 4 | par | personer | personer som leier</annotation>
+ <annotation cp="🧑🏼🤝🧑🏽" type="tts">personer som leier: hudtype 3, hudtype 4</annotation>
+ <annotation cp="🧑🏼🤝🧑🏾">hånd | holde hender | hudtype 3 | hudtype 5 | par | personer | personer som leier</annotation>
+ <annotation cp="🧑🏼🤝🧑🏾" type="tts">personer som leier: hudtype 3, hudtype 5</annotation>
+ <annotation cp="🧑🏼🤝🧑🏿">hånd | holde hender | hudtype 3 | hudtype 6 | par | personer | personer som leier</annotation>
+ <annotation cp="🧑🏼🤝🧑🏿" type="tts">personer som leier: hudtype 3, hudtype 6</annotation>
+ <annotation cp="🧑🏽🤝🧑🏻">hånd | holde hender | hudtype 1–2 | hudtype 4 | par | personer | personer som leier</annotation>
+ <annotation cp="🧑🏽🤝🧑🏻" type="tts">personer som leier: hudtype 4, hudtype 1–2</annotation>
+ <annotation cp="🧑🏽🤝🧑🏼">hånd | holde hender | hudtype 3 | hudtype 4 | par | personer | personer som leier</annotation>
+ <annotation cp="🧑🏽🤝🧑🏼" type="tts">personer som leier: hudtype 4, hudtype 3</annotation>
+ <annotation cp="🧑🏽🤝🧑🏽">hånd | holde hender | hudtype 4 | par | personer | personer som leier</annotation>
+ <annotation cp="🧑🏽🤝🧑🏽" type="tts">personer som leier: hudtype 4</annotation>
+ <annotation cp="🧑🏽🤝🧑🏾">hånd | holde hender | hudtype 4 | hudtype 5 | par | personer | personer som leier</annotation>
+ <annotation cp="🧑🏽🤝🧑🏾" type="tts">personer som leier: hudtype 4, hudtype 5</annotation>
+ <annotation cp="🧑🏽🤝🧑🏿">hånd | holde hender | hudtype 4 | hudtype 6 | par | personer | personer som leier</annotation>
+ <annotation cp="🧑🏽🤝🧑🏿" type="tts">personer som leier: hudtype 4, hudtype 6</annotation>
+ <annotation cp="🧑🏾🤝🧑🏻">hånd | holde hender | hudtype 1–2 | hudtype 5 | par | personer | personer som leier</annotation>
+ <annotation cp="🧑🏾🤝🧑🏻" type="tts">personer som leier: hudtype 5, hudtype 1–2</annotation>
+ <annotation cp="🧑🏾🤝🧑🏼">hånd | holde hender | hudtype 3 | hudtype 5 | par | personer | personer som leier</annotation>
+ <annotation cp="🧑🏾🤝🧑🏼" type="tts">personer som leier: hudtype 5, hudtype 3</annotation>
+ <annotation cp="🧑🏾🤝🧑🏽">hånd | holde hender | hudtype 4 | hudtype 5 | par | personer | personer som leier</annotation>
+ <annotation cp="🧑🏾🤝🧑🏽" type="tts">personer som leier: hudtype 5, hudtype 4</annotation>
+ <annotation cp="🧑🏾🤝🧑🏾">hånd | holde hender | hudtype 5 | par | personer | personer som leier</annotation>
+ <annotation cp="🧑🏾🤝🧑🏾" type="tts">personer som leier: hudtype 5</annotation>
+ <annotation cp="🧑🏾🤝🧑🏿">hånd | holde hender | hudtype 5 | hudtype 6 | par | personer | personer som leier</annotation>
+ <annotation cp="🧑🏾🤝🧑🏿" type="tts">personer som leier: hudtype 5, hudtype 6</annotation>
+ <annotation cp="🧑🏿🤝🧑🏻">hånd | holde hender | hudtype 1–2 | hudtype 6 | par | personer | personer som leier</annotation>
+ <annotation cp="🧑🏿🤝🧑🏻" type="tts">personer som leier: hudtype 6, hudtype 1–2</annotation>
+ <annotation cp="🧑🏿🤝🧑🏼">hånd | holde hender | hudtype 3 | hudtype 6 | par | personer | personer som leier</annotation>
+ <annotation cp="🧑🏿🤝🧑🏼" type="tts">personer som leier: hudtype 6, hudtype 3</annotation>
+ <annotation cp="🧑🏿🤝🧑🏽">hånd | holde hender | hudtype 4 | hudtype 6 | par | personer | personer som leier</annotation>
+ <annotation cp="🧑🏿🤝🧑🏽" type="tts">personer som leier: hudtype 6, hudtype 4</annotation>
+ <annotation cp="🧑🏿🤝🧑🏾">hånd | holde hender | hudtype 5 | hudtype 6 | par | personer | personer som leier</annotation>
+ <annotation cp="🧑🏿🤝🧑🏾" type="tts">personer som leier: hudtype 6, hudtype 5</annotation>
+ <annotation cp="🧑🏿🤝🧑🏿">hånd | holde hender | hudtype 6 | par | personer | personer som leier</annotation>
+ <annotation cp="🧑🏿🤝🧑🏿" type="tts">personer som leier: hudtype 6</annotation>
+ <annotation cp="👭🏻">hånd | holder hender | hudtype 1–2 | kvinne | kvinner som leier | par</annotation>
+ <annotation cp="👭🏻" type="tts">kvinner som leier: hudtype 1–2</annotation>
+ <annotation cp="👩🏻🤝👩🏼">hånd | holder hender | hudtype 1–2 | hudtype 3 | kvinne | kvinner som leier | par</annotation>
+ <annotation cp="👩🏻🤝👩🏼" type="tts">kvinner som leier: hudtype 1–2, hudtype 3</annotation>
+ <annotation cp="👩🏻🤝👩🏽">hånd | holder hender | hudtype 1–2 | hudtype 4 | kvinne | kvinner som leier | par</annotation>
+ <annotation cp="👩🏻🤝👩🏽" type="tts">kvinner som leier: hudtype 1–2, hudtype 4</annotation>
+ <annotation cp="👩🏻🤝👩🏾">hånd | holder hender | hudtype 1–2 | hudtype 5 | kvinne | kvinner som leier | par</annotation>
+ <annotation cp="👩🏻🤝👩🏾" type="tts">kvinner som leier: hudtype 1–2, hudtype 5</annotation>
+ <annotation cp="👩🏻🤝👩🏿">hånd | holder hender | hudtype 1–2 | hudtype 6 | kvinne | kvinner som leier | par</annotation>
+ <annotation cp="👩🏻🤝👩🏿" type="tts">kvinner som leier: hudtype 1–2, hudtype 6</annotation>
+ <annotation cp="👩🏼🤝👩🏻">hånd | holder hender | hudtype 1–2 | hudtype 3 | kvinne | kvinner som leier | par</annotation>
+ <annotation cp="👩🏼🤝👩🏻" type="tts">kvinner som leier: hudtype 3, hudtype 1–2</annotation>
+ <annotation cp="👭🏼">hånd | holder hender | hudtype 3 | kvinne | kvinner som leier | par</annotation>
+ <annotation cp="👭🏼" type="tts">kvinner som leier: hudtype 3</annotation>
+ <annotation cp="👩🏼🤝👩🏽">hånd | holder hender | hudtype 3 | hudtype 4 | kvinne | kvinner som leier | par</annotation>
+ <annotation cp="👩🏼🤝👩🏽" type="tts">kvinner som leier: hudtype 3, hudtype 4</annotation>
+ <annotation cp="👩🏼🤝👩🏾">hånd | holder hender | hudtype 3 | hudtype 5 | kvinne | kvinner som leier | par</annotation>
+ <annotation cp="👩🏼🤝👩🏾" type="tts">kvinner som leier: hudtype 3, hudtype 5</annotation>
+ <annotation cp="👩🏼🤝👩🏿">hånd | holder hender | hudtype 3 | hudtype 6 | kvinne | kvinner som leier | par</annotation>
+ <annotation cp="👩🏼🤝👩🏿" type="tts">kvinner som leier: hudtype 3, hudtype 6</annotation>
+ <annotation cp="👩🏽🤝👩🏻">hånd | holder hender | hudtype 1–2 | hudtype 4 | kvinne | kvinner som leier | par</annotation>
+ <annotation cp="👩🏽🤝👩🏻" type="tts">kvinner som leier: hudtype 4, hudtype 1–2</annotation>
+ <annotation cp="👩🏽🤝👩🏼">hånd | holder hender | hudtype 3 | hudtype 4 | kvinne | kvinner som leier | par</annotation>
+ <annotation cp="👩🏽🤝👩🏼" type="tts">kvinner som leier: hudtype 4, hudtype 3</annotation>
+ <annotation cp="👭🏽">hånd | holder hender | hudtype 4 | kvinne | kvinner som leier | par</annotation>
+ <annotation cp="👭🏽" type="tts">kvinner som leier: hudtype 4</annotation>
+ <annotation cp="👩🏽🤝👩🏾">hånd | holder hender | hudtype 4 | hudtype 5 | kvinne | kvinner som leier | par</annotation>
+ <annotation cp="👩🏽🤝👩🏾" type="tts">kvinner som leier: hudtype 4, hudtype 5</annotation>
+ <annotation cp="👩🏽🤝👩🏿">hånd | holder hender | hudtype 4 | hudtype 6 | kvinne | kvinner som leier | par</annotation>
+ <annotation cp="👩🏽🤝👩🏿" type="tts">kvinner som leier: hudtype 4, hudtype 6</annotation>
+ <annotation cp="👩🏾🤝👩🏻">hånd | holder hender | hudtype 1–2 | hudtype 5 | kvinne | kvinner som leier | par</annotation>
+ <annotation cp="👩🏾🤝👩🏻" type="tts">kvinner som leier: hudtype 5, hudtype 1–2</annotation>
+ <annotation cp="👩🏾🤝👩🏼">hånd | holder hender | hudtype 3 | hudtype 5 | kvinne | kvinner som leier | par</annotation>
+ <annotation cp="👩🏾🤝👩🏼" type="tts">kvinner som leier: hudtype 5, hudtype 3</annotation>
+ <annotation cp="👩🏾🤝👩🏽">hånd | holder hender | hudtype 4 | hudtype 5 | kvinne | kvinner som leier | par</annotation>
+ <annotation cp="👩🏾🤝👩🏽" type="tts">kvinner som leier: hudtype 5, hudtype 4</annotation>
+ <annotation cp="👭🏾">hånd | holder hender | hudtype 5 | kvinne | kvinner som leier | par</annotation>
+ <annotation cp="👭🏾" type="tts">kvinner som leier: hudtype 5</annotation>
+ <annotation cp="👩🏾🤝👩🏿">hånd | holder hender | hudtype 5 | hudtype 6 | kvinne | kvinner som leier | par</annotation>
+ <annotation cp="👩🏾🤝👩🏿" type="tts">kvinner som leier: hudtype 5, hudtype 6</annotation>
+ <annotation cp="👩🏿🤝👩🏻">hånd | holder hender | hudtype 1–2 | hudtype 6 | kvinne | kvinner som leier | par</annotation>
+ <annotation cp="👩🏿🤝👩🏻" type="tts">kvinner som leier: hudtype 6, hudtype 1–2</annotation>
+ <annotation cp="👩🏿🤝👩🏼">hånd | holder hender | hudtype 3 | hudtype 6 | kvinne | kvinner som leier | par</annotation>
+ <annotation cp="👩🏿🤝👩🏼" type="tts">kvinner som leier: hudtype 6, hudtype 3</annotation>
+ <annotation cp="👩🏿🤝👩🏽">hånd | holder hender | hudtype 4 | hudtype 6 | kvinne | kvinner som leier | par</annotation>
+ <annotation cp="👩🏿🤝👩🏽" type="tts">kvinner som leier: hudtype 6, hudtype 4</annotation>
+ <annotation cp="👩🏿🤝👩🏾">hånd | holder hender | hudtype 5 | hudtype 6 | kvinne | kvinner som leier | par</annotation>
+ <annotation cp="👩🏿🤝👩🏾" type="tts">kvinner som leier: hudtype 6, hudtype 5</annotation>
+ <annotation cp="👭🏿">hånd | holder hender | hudtype 6 | kvinne | kvinner som leier | par</annotation>
+ <annotation cp="👭🏿" type="tts">kvinner som leier: hudtype 6</annotation>
+ <annotation cp="👫🏻">hånd | holder hender | hudtype 1–2 | kvinne | mann | mann og kvinne som leier | par</annotation>
+ <annotation cp="👫🏻" type="tts">mann og kvinne som leier: hudtype 1–2</annotation>
+ <annotation cp="👩🏻🤝👨🏼">hånd | holder hender | hudtype 1–2 | hudtype 3 | kvinne | mann | mann og kvinne som leier | par</annotation>
+ <annotation cp="👩🏻🤝👨🏼" type="tts">mann og kvinne som leier: hudtype 1–2, hudtype 3</annotation>
+ <annotation cp="👩🏻🤝👨🏽">hånd | holder hender | hudtype 1–2 | hudtype 4 | kvinne | mann | mann og kvinne som leier | par</annotation>
+ <annotation cp="👩🏻🤝👨🏽" type="tts">mann og kvinne som leier: hudtype 1–2, hudtype 4</annotation>
+ <annotation cp="👩🏻🤝👨🏾">hånd | holder hender | hudtype 1–2 | hudtype 5 | kvinne | mann | mann og kvinne som leier | par</annotation>
+ <annotation cp="👩🏻🤝👨🏾" type="tts">mann og kvinne som leier: hudtype 1–2, hudtype 5</annotation>
+ <annotation cp="👩🏻🤝👨🏿">hånd | holder hender | hudtype 1–2 | hudtype 6 | kvinne | mann | mann og kvinne som leier | par</annotation>
+ <annotation cp="👩🏻🤝👨🏿" type="tts">mann og kvinne som leier: hudtype 1–2, hudtype 6</annotation>
+ <annotation cp="👩🏼🤝👨🏻">hånd | holder hender | hudtype 1–2 | hudtype 3 | kvinne | mann | mann og kvinne som leier | par</annotation>
+ <annotation cp="👩🏼🤝👨🏻" type="tts">mann og kvinne som leier: hudtype 3, hudtype 1–2</annotation>
+ <annotation cp="👫🏼">hånd | holder hender | hudtype 3 | kvinne | mann | mann og kvinne som leier | par</annotation>
+ <annotation cp="👫🏼" type="tts">mann og kvinne som leier: hudtype 3</annotation>
+ <annotation cp="👩🏼🤝👨🏽">hånd | holder hender | hudtype 3 | hudtype 4 | kvinne | mann | mann og kvinne som leier | par</annotation>
+ <annotation cp="👩🏼🤝👨🏽" type="tts">mann og kvinne som leier: hudtype 3, hudtype 4</annotation>
+ <annotation cp="👩🏼🤝👨🏾">hånd | holder hender | hudtype 3 | hudtype 5 | kvinne | mann | mann og kvinne som leier | par</annotation>
+ <annotation cp="👩🏼🤝👨🏾" type="tts">mann og kvinne som leier: hudtype 3, hudtype 5</annotation>
+ <annotation cp="👩🏼🤝👨🏿">hånd | holder hender | hudtype 3 | hudtype 6 | kvinne | mann | mann og kvinne som leier | par</annotation>
+ <annotation cp="👩🏼🤝👨🏿" type="tts">mann og kvinne som leier: hudtype 3, hudtype 6</annotation>
+ <annotation cp="👩🏽🤝👨🏻">hånd | holder hender | hudtype 1–2 | hudtype 4 | kvinne | mann | mann og kvinne som leier | par</annotation>
+ <annotation cp="👩🏽🤝👨🏻" type="tts">mann og kvinne som leier: hudtype 4, hudtype 1–2</annotation>
+ <annotation cp="👩🏽🤝👨🏼">hånd | holder hender | hudtype 3 | hudtype 4 | kvinne | mann | mann og kvinne som leier | par</annotation>
+ <annotation cp="👩🏽🤝👨🏼" type="tts">mann og kvinne som leier: hudtype 4, hudtype 3</annotation>
+ <annotation cp="👫🏽">hånd | holder hender | hudtype 4 | kvinne | mann | mann og kvinne som leier | par</annotation>
+ <annotation cp="👫🏽" type="tts">mann og kvinne som leier: hudtype 4</annotation>
+ <annotation cp="👩🏽🤝👨🏾">hånd | holder hender | hudtype 4 | hudtype 5 | kvinne | mann | mann og kvinne som leier | par</annotation>
+ <annotation cp="👩🏽🤝👨🏾" type="tts">mann og kvinne som leier: hudtype 4, hudtype 5</annotation>
+ <annotation cp="👩🏽🤝👨🏿">hånd | holder hender | hudtype 4 | hudtype 6 | kvinne | mann | mann og kvinne som leier | par</annotation>
+ <annotation cp="👩🏽🤝👨🏿" type="tts">mann og kvinne som leier: hudtype 4, hudtype 6</annotation>
+ <annotation cp="👩🏾🤝👨🏻">hånd | holder hender | hudtype 1–2 | hudtype 5 | kvinne | mann | mann og kvinne som leier | par</annotation>
+ <annotation cp="👩🏾🤝👨🏻" type="tts">mann og kvinne som leier: hudtype 5, hudtype 1–2</annotation>
+ <annotation cp="👩🏾🤝👨🏼">hånd | holder hender | hudtype 3 | hudtype 5 | kvinne | mann | mann og kvinne som leier | par</annotation>
+ <annotation cp="👩🏾🤝👨🏼" type="tts">mann og kvinne som leier: hudtype 5, hudtype 3</annotation>
+ <annotation cp="👩🏾🤝👨🏽">hånd | holder hender | hudtype 4 | hudtype 5 | kvinne | mann | mann og kvinne som leier | par</annotation>
+ <annotation cp="👩🏾🤝👨🏽" type="tts">mann og kvinne som leier: hudtype 5, hudtype 4</annotation>
+ <annotation cp="👫🏾">hånd | holder hender | hudtype 5 | kvinne | mann | mann og kvinne som leier | par</annotation>
+ <annotation cp="👫🏾" type="tts">mann og kvinne som leier: hudtype 5</annotation>
+ <annotation cp="👩🏾🤝👨🏿">hånd | holder hender | hudtype 5 | hudtype 6 | kvinne | mann | mann og kvinne som leier | par</annotation>
+ <annotation cp="👩🏾🤝👨🏿" type="tts">mann og kvinne som leier: hudtype 5, hudtype 6</annotation>
+ <annotation cp="👩🏿🤝👨🏻">hånd | holder hender | hudtype 1–2 | hudtype 6 | kvinne | mann | mann og kvinne som leier | par</annotation>
+ <annotation cp="👩🏿🤝👨🏻" type="tts">mann og kvinne som leier: hudtype 6, hudtype 1–2</annotation>
+ <annotation cp="👩🏿🤝👨🏼">hånd | holder hender | hudtype 3 | hudtype 6 | kvinne | mann | mann og kvinne som leier | par</annotation>
+ <annotation cp="👩🏿🤝👨🏼" type="tts">mann og kvinne som leier: hudtype 6, hudtype 3</annotation>
+ <annotation cp="👩🏿🤝👨🏽">hånd | holder hender | hudtype 4 | hudtype 6 | kvinne | mann | mann og kvinne som leier | par</annotation>
+ <annotation cp="👩🏿🤝👨🏽" type="tts">mann og kvinne som leier: hudtype 6, hudtype 4</annotation>
+ <annotation cp="👩🏿🤝👨🏾">hånd | holder hender | hudtype 5 | hudtype 6 | kvinne | mann | mann og kvinne som leier | par</annotation>
+ <annotation cp="👩🏿🤝👨🏾" type="tts">mann og kvinne som leier: hudtype 6, hudtype 5</annotation>
+ <annotation cp="👫🏿">hånd | holder hender | hudtype 6 | kvinne | mann | mann og kvinne som leier | par</annotation>
+ <annotation cp="👫🏿" type="tts">mann og kvinne som leier: hudtype 6</annotation>
+ <annotation cp="👬🏻">hånd | holde hender | hudtype 1–2 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
+ <annotation cp="👬🏻" type="tts">menn som leier: hudtype 1–2</annotation>
+ <annotation cp="👨🏻🤝👨🏼">hånd | holde hender | hudtype 1–2 | hudtype 3 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
+ <annotation cp="👨🏻🤝👨🏼" type="tts">menn som leier: hudtype 1–2, hudtype 3</annotation>
+ <annotation cp="👨🏻🤝👨🏽">hånd | holde hender | hudtype 1–2 | hudtype 4 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
+ <annotation cp="👨🏻🤝👨🏽" type="tts">menn som leier: hudtype 1–2, hudtype 4</annotation>
+ <annotation cp="👨🏻🤝👨🏾">hånd | holde hender | hudtype 1–2 | hudtype 5 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
+ <annotation cp="👨🏻🤝👨🏾" type="tts">menn som leier: hudtype 1–2, hudtype 5</annotation>
+ <annotation cp="👨🏻🤝👨🏿">hånd | holde hender | hudtype 1–2 | hudtype 6 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
+ <annotation cp="👨🏻🤝👨🏿" type="tts">menn som leier: hudtype 1–2, hudtype 6</annotation>
+ <annotation cp="👨🏼🤝👨🏻">hånd | holde hender | hudtype 1–2 | hudtype 3 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
+ <annotation cp="👨🏼🤝👨🏻" type="tts">menn som leier: hudtype 3, hudtype 1–2</annotation>
+ <annotation cp="👬🏼">hånd | holde hender | hudtype 3 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
+ <annotation cp="👬🏼" type="tts">menn som leier: hudtype 3</annotation>
+ <annotation cp="👨🏼🤝👨🏽">hånd | holde hender | hudtype 3 | hudtype 4 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
+ <annotation cp="👨🏼🤝👨🏽" type="tts">menn som leier: hudtype 3, hudtype 4</annotation>
+ <annotation cp="👨🏼🤝👨🏾">hånd | holde hender | hudtype 3 | hudtype 5 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
+ <annotation cp="👨🏼🤝👨🏾" type="tts">menn som leier: hudtype 3, hudtype 5</annotation>
+ <annotation cp="👨🏼🤝👨🏿">hånd | holde hender | hudtype 3 | hudtype 6 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
+ <annotation cp="👨🏼🤝👨🏿" type="tts">menn som leier: hudtype 3, hudtype 6</annotation>
+ <annotation cp="👨🏽🤝👨🏻">hånd | holde hender | hudtype 1–2 | hudtype 4 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
+ <annotation cp="👨🏽🤝👨🏻" type="tts">menn som leier: hudtype 4, hudtype 1–2</annotation>
+ <annotation cp="👨🏽🤝👨🏼">hånd | holde hender | hudtype 3 | hudtype 4 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
+ <annotation cp="👨🏽🤝👨🏼" type="tts">menn som leier: hudtype 4, hudtype 3</annotation>
+ <annotation cp="👬🏽">hånd | holde hender | hudtype 4 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
+ <annotation cp="👬🏽" type="tts">menn som leier: hudtype 4</annotation>
+ <annotation cp="👨🏽🤝👨🏾">hånd | holde hender | hudtype 4 | hudtype 5 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
+ <annotation cp="👨🏽🤝👨🏾" type="tts">menn som leier: hudtype 4, hudtype 5</annotation>
+ <annotation cp="👨🏽🤝👨🏿">hånd | holde hender | hudtype 4 | hudtype 6 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
+ <annotation cp="👨🏽🤝👨🏿" type="tts">menn som leier: hudtype 4, hudtype 6</annotation>
+ <annotation cp="👨🏾🤝👨🏻">hånd | holde hender | hudtype 1–2 | hudtype 5 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
+ <annotation cp="👨🏾🤝👨🏻" type="tts">menn som leier: hudtype 5, hudtype 1–2</annotation>
+ <annotation cp="👨🏾🤝👨🏼">hånd | holde hender | hudtype 3 | hudtype 5 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
+ <annotation cp="👨🏾🤝👨🏼" type="tts">menn som leier: hudtype 5, hudtype 3</annotation>
+ <annotation cp="👨🏾🤝👨🏽">hånd | holde hender | hudtype 4 | hudtype 5 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
+ <annotation cp="👨🏾🤝👨🏽" type="tts">menn som leier: hudtype 5, hudtype 4</annotation>
+ <annotation cp="👬🏾">hånd | holde hender | hudtype 5 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
+ <annotation cp="👬🏾" type="tts">menn som leier: hudtype 5</annotation>
+ <annotation cp="👨🏾🤝👨🏿">hånd | holde hender | hudtype 5 | hudtype 6 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
+ <annotation cp="👨🏾🤝👨🏿" type="tts">menn som leier: hudtype 5, hudtype 6</annotation>
+ <annotation cp="👨🏿🤝👨🏻">hånd | holde hender | hudtype 1–2 | hudtype 6 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
+ <annotation cp="👨🏿🤝👨🏻" type="tts">menn som leier: hudtype 6, hudtype 1–2</annotation>
+ <annotation cp="👨🏿🤝👨🏼">hånd | holde hender | hudtype 3 | hudtype 6 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
+ <annotation cp="👨🏿🤝👨🏼" type="tts">menn som leier: hudtype 6, hudtype 3</annotation>
+ <annotation cp="👨🏿🤝👨🏽">hånd | holde hender | hudtype 4 | hudtype 6 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
+ <annotation cp="👨🏿🤝👨🏽" type="tts">menn som leier: hudtype 6, hudtype 4</annotation>
+ <annotation cp="👨🏿🤝👨🏾">hånd | holde hender | hudtype 5 | hudtype 6 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
+ <annotation cp="👨🏿🤝👨🏾" type="tts">menn som leier: hudtype 6, hudtype 5</annotation>
+ <annotation cp="👬🏿">hånd | holde hender | hudtype 6 | mann | menn | menn som leier | par | stjernetegn | tvillingene</annotation>
+ <annotation cp="👬🏿" type="tts">menn som leier: hudtype 6</annotation>
+ <annotation cp="💏🏻">hudtype 1–2 | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="💏🏻" type="tts">kyss: hudtype 1–2</annotation>
+ <annotation cp="💏🏼">hudtype 3 | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="💏🏼" type="tts">kyss: hudtype 3</annotation>
+ <annotation cp="💏🏽">hudtype 4 | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="💏🏽" type="tts">kyss: hudtype 4</annotation>
+ <annotation cp="💏🏾">hudtype 5 | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="💏🏾" type="tts">kyss: hudtype 5</annotation>
+ <annotation cp="💏🏿">hudtype 6 | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="💏🏿" type="tts">kyss: hudtype 6</annotation>
+ <annotation cp="👩❤💋👨">kvinne | kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👩❤💋👨" type="tts">kyss: kvinne, mann</annotation>
+ <annotation cp="👨❤💋👨">kyss | kyssing | mann | mennesker | romantikk</annotation>
+ <annotation cp="👨❤💋👨" type="tts">kyss: mann, mann</annotation>
+ <annotation cp="👩❤💋👩">kvinne | kyss | kyssing | mennesker | romantikk</annotation>
+ <annotation cp="👩❤💋👩" type="tts">kyss: kvinne, kvinne</annotation>
+ <annotation cp="💑🏻">hjerte | hudtype 1–2 | kjærlighet | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="💑🏻" type="tts">par med hjerte: hudtype 1–2</annotation>
+ <annotation cp="💑🏼">hjerte | hudtype 3 | kjærlighet | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="💑🏼" type="tts">par med hjerte: hudtype 3</annotation>
+ <annotation cp="💑🏽">hjerte | hudtype 4 | kjærlighet | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="💑🏽" type="tts">par med hjerte: hudtype 4</annotation>
+ <annotation cp="💑🏾">hjerte | hudtype 5 | kjærlighet | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="💑🏾" type="tts">par med hjerte: hudtype 5</annotation>
+ <annotation cp="💑🏿">hjerte | hudtype 6 | kjærlighet | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="💑🏿" type="tts">par med hjerte: hudtype 6</annotation>
+ <annotation cp="👩❤👨">hjerte | kjærlighet | kvinne | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩❤👨" type="tts">par med hjerte: kvinne, mann</annotation>
+ <annotation cp="👨❤👨">hjerte | kjærlighet | mann | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👨❤👨" type="tts">par med hjerte: mann, mann</annotation>
+ <annotation cp="👩❤👩">hjerte | kjærlighet | kvinne | mennesker | par med hjerte | romantikk</annotation>
+ <annotation cp="👩❤👩" type="tts">par med hjerte: kvinne, kvinne</annotation>
+ <annotation cp="👨👩👦">barn | familie | far | gutt | kvinne | mann | mennesker | mor</annotation>
+ <annotation cp="👨👩👦" type="tts">familie: mann, kvinne, gutt</annotation>
+ <annotation cp="👨👩👧">barn | familie | far | jente | kvinne | mann | mennesker | mor</annotation>
+ <annotation cp="👨👩👧" type="tts">familie: mann, kvinne, jente</annotation>
+ <annotation cp="👨👩👧👦">barn | familie | far | gutt | jente | kvinne | mann | mennesker | mor</annotation>
+ <annotation cp="👨👩👧👦" type="tts">familie: mann, kvinne, jente, gutt</annotation>
+ <annotation cp="👨👩👦👦">barn | familie | far | gutt | kvinne | mann | mennesker | mor</annotation>
+ <annotation cp="👨👩👦👦" type="tts">familie: mann, kvinne, gutt, gutt</annotation>
+ <annotation cp="👨👩👧👧">barn | familie | far | jente | kvinne | mann | mennesker | mor</annotation>
+ <annotation cp="👨👩👧👧" type="tts">familie: mann, kvinne, jente, jente</annotation>
+ <annotation cp="👨👨👦">barn | familie | far | gutt | mann | mennesker | mor</annotation>
+ <annotation cp="👨👨👦" type="tts">familie: mann, mann, gutt</annotation>
+ <annotation cp="👨👨👧">barn | familie | far | jente | mann | mennesker | mor</annotation>
+ <annotation cp="👨👨👧" type="tts">familie: mann, mann, jente</annotation>
+ <annotation cp="👨👨👧👦">barn | familie | far | gutt | jente | mann | mennesker | mor</annotation>
+ <annotation cp="👨👨👧👦" type="tts">familie: mann, mann, jente, gutt</annotation>
+ <annotation cp="👨👨👦👦">barn | familie | far | gutt | mann | mennesker | mor</annotation>
+ <annotation cp="👨👨👦👦" type="tts">familie: mann, mann, gutt, gutt</annotation>
+ <annotation cp="👨👨👧👧">barn | familie | far | jente | mann | mennesker | mor</annotation>
+ <annotation cp="👨👨👧👧" type="tts">familie: mann, mann, jente, jente</annotation>
+ <annotation cp="👩👩👦">barn | familie | far | gutt | kvinne | mennesker | mor</annotation>
+ <annotation cp="👩👩👦" type="tts">familie: kvinne, kvinne, gutt</annotation>
+ <annotation cp="👩👩👧">barn | familie | far | jente | kvinne | mennesker | mor</annotation>
+ <annotation cp="👩👩👧" type="tts">familie: kvinne, kvinne, jente</annotation>
+ <annotation cp="👩👩👧👦">barn | familie | far | gutt | jente | kvinne | mennesker | mor</annotation>
+ <annotation cp="👩👩👧👦" type="tts">familie: kvinne, kvinne, jente, gutt</annotation>
+ <annotation cp="👩👩👦👦">barn | familie | far | gutt | kvinne | mennesker | mor</annotation>
+ <annotation cp="👩👩👦👦" type="tts">familie: kvinne, kvinne, gutt, gutt</annotation>
+ <annotation cp="👩👩👧👧">barn | familie | far | jente | kvinne | mennesker | mor</annotation>
+ <annotation cp="👩👩👧👧" type="tts">familie: kvinne, kvinne, jente, jente</annotation>
+ <annotation cp="👨👦">barn | familie | far | gutt | mann | mennesker | mor</annotation>
+ <annotation cp="👨👦" type="tts">familie: mann, gutt</annotation>
+ <annotation cp="👨👦👦">barn | familie | far | gutt | mann | mennesker | mor</annotation>
+ <annotation cp="👨👦👦" type="tts">familie: mann, gutt, gutt</annotation>
+ <annotation cp="👨👧">barn | familie | far | jente | mann | mennesker | mor</annotation>
+ <annotation cp="👨👧" type="tts">familie: mann, jente</annotation>
+ <annotation cp="👨👧👦">barn | familie | far | gutt | jente | mann | mennesker | mor</annotation>
+ <annotation cp="👨👧👦" type="tts">familie: mann, jente, gutt</annotation>
+ <annotation cp="👨👧👧">barn | familie | far | jente | mann | mennesker | mor</annotation>
+ <annotation cp="👨👧👧" type="tts">familie: mann, jente, jente</annotation>
+ <annotation cp="👩👦">barn | familie | far | gutt | kvinne | mennesker | mor</annotation>
+ <annotation cp="👩👦" type="tts">familie: kvinne, gutt</annotation>
+ <annotation cp="👩👦👦">barn | familie | far | gutt | kvinne | mennesker | mor</annotation>
+ <annotation cp="👩👦👦" type="tts">familie: kvinne, gutt, gutt</annotation>
+ <annotation cp="👩👧">barn | familie | far | jente | kvinne | mennesker | mor</annotation>
+ <annotation cp="👩👧" type="tts">familie: kvinne, jente</annotation>
+ <annotation cp="👩👧👦">barn | familie | far | gutt | jente | kvinne | mennesker | mor</annotation>
+ <annotation cp="👩👧👦" type="tts">familie: kvinne, jente, gutt</annotation>
+ <annotation cp="👩👧👧">barn | familie | far | jente | kvinne | mennesker | mor</annotation>
+ <annotation cp="👩👧👧" type="tts">familie: kvinne, jente, jente</annotation>
+ <annotation cp="#⃣">taster</annotation>
+ <annotation cp="#⃣" type="tts">taster: #</annotation>
+ <annotation cp="*⃣">taster</annotation>
+ <annotation cp="*⃣" type="tts">taster: *</annotation>
+ <annotation cp="🔟">taster</annotation>
+ <annotation cp="🔟" type="tts">taster: 10</annotation>
+ <annotation cp="🇦🇨">flagg</annotation>
+ <annotation cp="🇦🇨" type="tts">flagg: Ascension</annotation>
+ <annotation cp="🇦🇩">flagg</annotation>
+ <annotation cp="🇦🇩" type="tts">flagg: Andorra</annotation>
+ <annotation cp="🇦🇪">flagg</annotation>
+ <annotation cp="🇦🇪" type="tts">flagg: De forente arabiske emirater</annotation>
+ <annotation cp="🇦🇫">flagg</annotation>
+ <annotation cp="🇦🇫" type="tts">flagg: Afghanistan</annotation>
+ <annotation cp="🇦🇬">flagg</annotation>
+ <annotation cp="🇦🇬" type="tts">flagg: Antigua og Barbuda</annotation>
+ <annotation cp="🇦🇮">flagg</annotation>
+ <annotation cp="🇦🇮" type="tts">flagg: Anguilla</annotation>
+ <annotation cp="🇦🇱">flagg</annotation>
+ <annotation cp="🇦🇱" type="tts">flagg: Albania</annotation>
+ <annotation cp="🇦🇲">flagg</annotation>
+ <annotation cp="🇦🇲" type="tts">flagg: Armenia</annotation>
+ <annotation cp="🇦🇴">flagg</annotation>
+ <annotation cp="🇦🇴" type="tts">flagg: Angola</annotation>
+ <annotation cp="🇦🇶">flagg</annotation>
+ <annotation cp="🇦🇶" type="tts">flagg: Antarktis</annotation>
+ <annotation cp="🇦🇷">flagg</annotation>
+ <annotation cp="🇦🇷" type="tts">flagg: Argentina</annotation>
+ <annotation cp="🇦🇸">flagg</annotation>
+ <annotation cp="🇦🇸" type="tts">flagg: Amerikansk Samoa</annotation>
+ <annotation cp="🇦🇹">flagg</annotation>
+ <annotation cp="🇦🇹" type="tts">flagg: Østerrike</annotation>
+ <annotation cp="🇦🇺">flagg</annotation>
+ <annotation cp="🇦🇺" type="tts">flagg: Australia</annotation>
+ <annotation cp="🇦🇼">flagg</annotation>
+ <annotation cp="🇦🇼" type="tts">flagg: Aruba</annotation>
+ <annotation cp="🇦🇽">flagg</annotation>
+ <annotation cp="🇦🇽" type="tts">flagg: Åland</annotation>
+ <annotation cp="🇦🇿">flagg</annotation>
+ <annotation cp="🇦🇿" type="tts">flagg: Aserbajdsjan</annotation>
+ <annotation cp="🇧🇦">flagg</annotation>
+ <annotation cp="🇧🇦" type="tts">flagg: Bosnia-Hercegovina</annotation>
+ <annotation cp="🇧🇧">flagg</annotation>
+ <annotation cp="🇧🇧" type="tts">flagg: Barbados</annotation>
+ <annotation cp="🇧🇩">flagg</annotation>
+ <annotation cp="🇧🇩" type="tts">flagg: Bangladesh</annotation>
+ <annotation cp="🇧🇪">flagg</annotation>
+ <annotation cp="🇧🇪" type="tts">flagg: Belgia</annotation>
+ <annotation cp="🇧🇫">flagg</annotation>
+ <annotation cp="🇧🇫" type="tts">flagg: Burkina Faso</annotation>
+ <annotation cp="🇧🇬">flagg</annotation>
+ <annotation cp="🇧🇬" type="tts">flagg: Bulgaria</annotation>
+ <annotation cp="🇧🇭">flagg</annotation>
+ <annotation cp="🇧🇭" type="tts">flagg: Bahrain</annotation>
+ <annotation cp="🇧🇮">flagg</annotation>
+ <annotation cp="🇧🇮" type="tts">flagg: Burundi</annotation>
+ <annotation cp="🇧🇯">flagg</annotation>
+ <annotation cp="🇧🇯" type="tts">flagg: Benin</annotation>
+ <annotation cp="🇧🇱">flagg</annotation>
+ <annotation cp="🇧🇱" type="tts">flagg: Saint-Barthélemy</annotation>
+ <annotation cp="🇧🇲">flagg</annotation>
+ <annotation cp="🇧🇲" type="tts">flagg: Bermuda</annotation>
+ <annotation cp="🇧🇳">flagg</annotation>
+ <annotation cp="🇧🇳" type="tts">flagg: Brunei</annotation>
+ <annotation cp="🇧🇴">flagg</annotation>
+ <annotation cp="🇧🇴" type="tts">flagg: Bolivia</annotation>
+ <annotation cp="🇧🇶">flagg</annotation>
+ <annotation cp="🇧🇶" type="tts">flagg: Karibisk Nederland</annotation>
+ <annotation cp="🇧🇷">flagg</annotation>
+ <annotation cp="🇧🇷" type="tts">flagg: Brasil</annotation>
+ <annotation cp="🇧🇸">flagg</annotation>
+ <annotation cp="🇧🇸" type="tts">flagg: Bahamas</annotation>
+ <annotation cp="🇧🇹">flagg</annotation>
+ <annotation cp="🇧🇹" type="tts">flagg: Bhutan</annotation>
+ <annotation cp="🇧🇻">flagg</annotation>
+ <annotation cp="🇧🇻" type="tts">flagg: Bouvetøya</annotation>
+ <annotation cp="🇧🇼">flagg</annotation>
+ <annotation cp="🇧🇼" type="tts">flagg: Botswana</annotation>
+ <annotation cp="🇧🇾">flagg</annotation>
+ <annotation cp="🇧🇾" type="tts">flagg: Hviterussland</annotation>
+ <annotation cp="🇧🇿">flagg</annotation>
+ <annotation cp="🇧🇿" type="tts">flagg: Belize</annotation>
+ <annotation cp="🇨🇦">flagg</annotation>
+ <annotation cp="🇨🇦" type="tts">flagg: Canada</annotation>
+ <annotation cp="🇨🇨">flagg</annotation>
+ <annotation cp="🇨🇨" type="tts">flagg: Kokosøyene</annotation>
+ <annotation cp="🇨🇩">flagg</annotation>
+ <annotation cp="🇨🇩" type="tts">flagg: Kongo</annotation>
+ <annotation cp="🇨🇫">flagg</annotation>
+ <annotation cp="🇨🇫" type="tts">flagg: Den sentralafrikanske republikk</annotation>
+ <annotation cp="🇨🇬">flagg</annotation>
+ <annotation cp="🇨🇬" type="tts">flagg: Kongo-Brazzaville</annotation>
+ <annotation cp="🇨🇭">flagg</annotation>
+ <annotation cp="🇨🇭" type="tts">flagg: Sveits</annotation>
+ <annotation cp="🇨🇮">flagg</annotation>
+ <annotation cp="🇨🇮" type="tts">flagg: Elfenbenskysten</annotation>
+ <annotation cp="🇨🇰">flagg</annotation>
+ <annotation cp="🇨🇰" type="tts">flagg: Cookøyene</annotation>
+ <annotation cp="🇨🇱">flagg</annotation>
+ <annotation cp="🇨🇱" type="tts">flagg: Chile</annotation>
+ <annotation cp="🇨🇲">flagg</annotation>
+ <annotation cp="🇨🇲" type="tts">flagg: Kamerun</annotation>
+ <annotation cp="🇨🇳">flagg</annotation>
+ <annotation cp="🇨🇳" type="tts">flagg: Kina</annotation>
+ <annotation cp="🇨🇴">flagg</annotation>
+ <annotation cp="🇨🇴" type="tts">flagg: Colombia</annotation>
+ <annotation cp="🇨🇵">flagg</annotation>
+ <annotation cp="🇨🇵" type="tts">flagg: Clippertonøya</annotation>
+ <annotation cp="🇨🇷">flagg</annotation>
+ <annotation cp="🇨🇷" type="tts">flagg: Costa Rica</annotation>
+ <annotation cp="🇨🇺">flagg</annotation>
+ <annotation cp="🇨🇺" type="tts">flagg: Cuba</annotation>
+ <annotation cp="🇨🇻">flagg</annotation>
+ <annotation cp="🇨🇻" type="tts">flagg: Kapp Verde</annotation>
+ <annotation cp="🇨🇼">flagg</annotation>
+ <annotation cp="🇨🇼" type="tts">flagg: Curaçao</annotation>
+ <annotation cp="🇨🇽">flagg</annotation>
+ <annotation cp="🇨🇽" type="tts">flagg: Christmasøya</annotation>
+ <annotation cp="🇨🇾">flagg</annotation>
+ <annotation cp="🇨🇾" type="tts">flagg: Kypros</annotation>
+ <annotation cp="🇨🇿">flagg</annotation>
+ <annotation cp="🇨🇿" type="tts">flagg: Tsjekkia</annotation>
+ <annotation cp="🇩🇪">flagg</annotation>
+ <annotation cp="🇩🇪" type="tts">flagg: Tyskland</annotation>
+ <annotation cp="🇩🇬">flagg</annotation>
+ <annotation cp="🇩🇬" type="tts">flagg: Diego Garcia</annotation>
+ <annotation cp="🇩🇯">flagg</annotation>
+ <annotation cp="🇩🇯" type="tts">flagg: Djibouti</annotation>
+ <annotation cp="🇩🇰">flagg</annotation>
+ <annotation cp="🇩🇰" type="tts">flagg: Danmark</annotation>
+ <annotation cp="🇩🇲">flagg</annotation>
+ <annotation cp="🇩🇲" type="tts">flagg: Dominica</annotation>
+ <annotation cp="🇩🇴">flagg</annotation>
+ <annotation cp="🇩🇴" type="tts">flagg: Den dominikanske republikk</annotation>
+ <annotation cp="🇩🇿">flagg</annotation>
+ <annotation cp="🇩🇿" type="tts">flagg: Algerie</annotation>
+ <annotation cp="🇪🇦">flagg</annotation>
+ <annotation cp="🇪🇦" type="tts">flagg: Ceuta og Melilla</annotation>
+ <annotation cp="🇪🇨">flagg</annotation>
+ <annotation cp="🇪🇨" type="tts">flagg: Ecuador</annotation>
+ <annotation cp="🇪🇪">flagg</annotation>
+ <annotation cp="🇪🇪" type="tts">flagg: Estland</annotation>
+ <annotation cp="🇪🇬">flagg</annotation>
+ <annotation cp="🇪🇬" type="tts">flagg: Egypt</annotation>
+ <annotation cp="🇪🇭">flagg</annotation>
+ <annotation cp="🇪🇭" type="tts">flagg: Vest-Sahara</annotation>
+ <annotation cp="🇪🇷">flagg</annotation>
+ <annotation cp="🇪🇷" type="tts">flagg: Eritrea</annotation>
+ <annotation cp="🇪🇸">flagg</annotation>
+ <annotation cp="🇪🇸" type="tts">flagg: Spania</annotation>
+ <annotation cp="🇪🇹">flagg</annotation>
+ <annotation cp="🇪🇹" type="tts">flagg: Etiopia</annotation>
+ <annotation cp="🇪🇺">flagg</annotation>
+ <annotation cp="🇪🇺" type="tts">flagg: Den europeiske union</annotation>
+ <annotation cp="🇫🇮">flagg</annotation>
+ <annotation cp="🇫🇮" type="tts">flagg: Finland</annotation>
+ <annotation cp="🇫🇯">flagg</annotation>
+ <annotation cp="🇫🇯" type="tts">flagg: Fiji</annotation>
+ <annotation cp="🇫🇰">flagg</annotation>
+ <annotation cp="🇫🇰" type="tts">flagg: Falklandsøyene</annotation>
+ <annotation cp="🇫🇲">flagg</annotation>
+ <annotation cp="🇫🇲" type="tts">flagg: Mikronesiaføderasjonen</annotation>
+ <annotation cp="🇫🇴">flagg</annotation>
+ <annotation cp="🇫🇴" type="tts">flagg: Færøyene</annotation>
+ <annotation cp="🇫🇷">flagg</annotation>
+ <annotation cp="🇫🇷" type="tts">flagg: Frankrike</annotation>
+ <annotation cp="🇬🇦">flagg</annotation>
+ <annotation cp="🇬🇦" type="tts">flagg: Gabon</annotation>
+ <annotation cp="🇬🇧">flagg</annotation>
+ <annotation cp="🇬🇧" type="tts">flagg: Storbritannia</annotation>
+ <annotation cp="🇬🇩">flagg</annotation>
+ <annotation cp="🇬🇩" type="tts">flagg: Grenada</annotation>
+ <annotation cp="🇬🇪">flagg</annotation>
+ <annotation cp="🇬🇪" type="tts">flagg: Georgia</annotation>
+ <annotation cp="🇬🇫">flagg</annotation>
+ <annotation cp="🇬🇫" type="tts">flagg: Fransk Guyana</annotation>
+ <annotation cp="🇬🇬">flagg</annotation>
+ <annotation cp="🇬🇬" type="tts">flagg: Guernsey</annotation>
+ <annotation cp="🇬🇭">flagg</annotation>
+ <annotation cp="🇬🇭" type="tts">flagg: Ghana</annotation>
+ <annotation cp="🇬🇮">flagg</annotation>
+ <annotation cp="🇬🇮" type="tts">flagg: Gibraltar</annotation>
+ <annotation cp="🇬🇱">flagg</annotation>
+ <annotation cp="🇬🇱" type="tts">flagg: Grønland</annotation>
+ <annotation cp="🇬🇲">flagg</annotation>
+ <annotation cp="🇬🇲" type="tts">flagg: Gambia</annotation>
+ <annotation cp="🇬🇳">flagg</annotation>
+ <annotation cp="🇬🇳" type="tts">flagg: Guinea</annotation>
+ <annotation cp="🇬🇵">flagg</annotation>
+ <annotation cp="🇬🇵" type="tts">flagg: Guadeloupe</annotation>
+ <annotation cp="🇬🇶">flagg</annotation>
+ <annotation cp="🇬🇶" type="tts">flagg: Ekvatorial-Guinea</annotation>
+ <annotation cp="🇬🇷">flagg</annotation>
+ <annotation cp="🇬🇷" type="tts">flagg: Hellas</annotation>
+ <annotation cp="🇬🇸">flagg</annotation>
+ <annotation cp="🇬🇸" type="tts">flagg: Sør-Georgia og Sør-Sandwichøyene</annotation>
+ <annotation cp="🇬🇹">flagg</annotation>
+ <annotation cp="🇬🇹" type="tts">flagg: Guatemala</annotation>
+ <annotation cp="🇬🇺">flagg</annotation>
+ <annotation cp="🇬🇺" type="tts">flagg: Guam</annotation>
+ <annotation cp="🇬🇼">flagg</annotation>
+ <annotation cp="🇬🇼" type="tts">flagg: Guinea-Bissau</annotation>
+ <annotation cp="🇬🇾">flagg</annotation>
+ <annotation cp="🇬🇾" type="tts">flagg: Guyana</annotation>
+ <annotation cp="🇭🇰">flagg</annotation>
+ <annotation cp="🇭🇰" type="tts">flagg: Hongkong SAR Kina</annotation>
+ <annotation cp="🇭🇲">flagg</annotation>
+ <annotation cp="🇭🇲" type="tts">flagg: Heard- og McDonaldøyene</annotation>
+ <annotation cp="🇭🇳">flagg</annotation>
+ <annotation cp="🇭🇳" type="tts">flagg: Honduras</annotation>
+ <annotation cp="🇭🇷">flagg</annotation>
+ <annotation cp="🇭🇷" type="tts">flagg: Kroatia</annotation>
+ <annotation cp="🇭🇹">flagg</annotation>
+ <annotation cp="🇭🇹" type="tts">flagg: Haiti</annotation>
+ <annotation cp="🇭🇺">flagg</annotation>
+ <annotation cp="🇭🇺" type="tts">flagg: Ungarn</annotation>
+ <annotation cp="🇮🇨">flagg</annotation>
+ <annotation cp="🇮🇨" type="tts">flagg: Kanariøyene</annotation>
+ <annotation cp="🇮🇩">flagg</annotation>
+ <annotation cp="🇮🇩" type="tts">flagg: Indonesia</annotation>
+ <annotation cp="🇮🇪">flagg</annotation>
+ <annotation cp="🇮🇪" type="tts">flagg: Irland</annotation>
+ <annotation cp="🇮🇱">flagg</annotation>
+ <annotation cp="🇮🇱" type="tts">flagg: Israel</annotation>
+ <annotation cp="🇮🇲">flagg</annotation>
+ <annotation cp="🇮🇲" type="tts">flagg: Man</annotation>
+ <annotation cp="🇮🇳">flagg</annotation>
+ <annotation cp="🇮🇳" type="tts">flagg: India</annotation>
+ <annotation cp="🇮🇴">flagg</annotation>
+ <annotation cp="🇮🇴" type="tts">flagg: Det britiske territoriet i Indiahavet</annotation>
+ <annotation cp="🇮🇶">flagg</annotation>
+ <annotation cp="🇮🇶" type="tts">flagg: Irak</annotation>
+ <annotation cp="🇮🇷">flagg</annotation>
+ <annotation cp="🇮🇷" type="tts">flagg: Iran</annotation>
+ <annotation cp="🇮🇸">flagg</annotation>
+ <annotation cp="🇮🇸" type="tts">flagg: Island</annotation>
+ <annotation cp="🇮🇹">flagg</annotation>
+ <annotation cp="🇮🇹" type="tts">flagg: Italia</annotation>
+ <annotation cp="🇯🇪">flagg</annotation>
+ <annotation cp="🇯🇪" type="tts">flagg: Jersey</annotation>
+ <annotation cp="🇯🇲">flagg</annotation>
+ <annotation cp="🇯🇲" type="tts">flagg: Jamaica</annotation>
+ <annotation cp="🇯🇴">flagg</annotation>
+ <annotation cp="🇯🇴" type="tts">flagg: Jordan</annotation>
+ <annotation cp="🇯🇵">flagg</annotation>
+ <annotation cp="🇯🇵" type="tts">flagg: Japan</annotation>
+ <annotation cp="🇰🇪">flagg</annotation>
+ <annotation cp="🇰🇪" type="tts">flagg: Kenya</annotation>
+ <annotation cp="🇰🇬">flagg</annotation>
+ <annotation cp="🇰🇬" type="tts">flagg: Kirgisistan</annotation>
+ <annotation cp="🇰🇭">flagg</annotation>
+ <annotation cp="🇰🇭" type="tts">flagg: Kambodsja</annotation>
+ <annotation cp="🇰🇮">flagg</annotation>
+ <annotation cp="🇰🇮" type="tts">flagg: Kiribati</annotation>
+ <annotation cp="🇰🇲">flagg</annotation>
+ <annotation cp="🇰🇲" type="tts">flagg: Komorene</annotation>
+ <annotation cp="🇰🇳">flagg</annotation>
+ <annotation cp="🇰🇳" type="tts">flagg: Saint Kitts og Nevis</annotation>
+ <annotation cp="🇰🇵">flagg</annotation>
+ <annotation cp="🇰🇵" type="tts">flagg: Nord-Korea</annotation>
+ <annotation cp="🇰🇷">flagg</annotation>
+ <annotation cp="🇰🇷" type="tts">flagg: Sør-Korea</annotation>
+ <annotation cp="🇰🇼">flagg</annotation>
+ <annotation cp="🇰🇼" type="tts">flagg: Kuwait</annotation>
+ <annotation cp="🇰🇾">flagg</annotation>
+ <annotation cp="🇰🇾" type="tts">flagg: Caymanøyene</annotation>
+ <annotation cp="🇰🇿">flagg</annotation>
+ <annotation cp="🇰🇿" type="tts">flagg: Kasakhstan</annotation>
+ <annotation cp="🇱🇦">flagg</annotation>
+ <annotation cp="🇱🇦" type="tts">flagg: Laos</annotation>
+ <annotation cp="🇱🇧">flagg</annotation>
+ <annotation cp="🇱🇧" type="tts">flagg: Libanon</annotation>
+ <annotation cp="🇱🇨">flagg</annotation>
+ <annotation cp="🇱🇨" type="tts">flagg: St. Lucia</annotation>
+ <annotation cp="🇱🇮">flagg</annotation>
+ <annotation cp="🇱🇮" type="tts">flagg: Liechtenstein</annotation>
+ <annotation cp="🇱🇰">flagg</annotation>
+ <annotation cp="🇱🇰" type="tts">flagg: Sri Lanka</annotation>
+ <annotation cp="🇱🇷">flagg</annotation>
+ <annotation cp="🇱🇷" type="tts">flagg: Liberia</annotation>
+ <annotation cp="🇱🇸">flagg</annotation>
+ <annotation cp="🇱🇸" type="tts">flagg: Lesotho</annotation>
+ <annotation cp="🇱🇹">flagg</annotation>
+ <annotation cp="🇱🇹" type="tts">flagg: Litauen</annotation>
+ <annotation cp="🇱🇺">flagg</annotation>
+ <annotation cp="🇱🇺" type="tts">flagg: Luxemburg</annotation>
+ <annotation cp="🇱🇻">flagg</annotation>
+ <annotation cp="🇱🇻" type="tts">flagg: Latvia</annotation>
+ <annotation cp="🇱🇾">flagg</annotation>
+ <annotation cp="🇱🇾" type="tts">flagg: Libya</annotation>
+ <annotation cp="🇲🇦">flagg</annotation>
+ <annotation cp="🇲🇦" type="tts">flagg: Marokko</annotation>
+ <annotation cp="🇲🇨">flagg</annotation>
+ <annotation cp="🇲🇨" type="tts">flagg: Monaco</annotation>
+ <annotation cp="🇲🇩">flagg</annotation>
+ <annotation cp="🇲🇩" type="tts">flagg: Moldova</annotation>
+ <annotation cp="🇲🇪">flagg</annotation>
+ <annotation cp="🇲🇪" type="tts">flagg: Montenegro</annotation>
+ <annotation cp="🇲🇫">flagg</annotation>
+ <annotation cp="🇲🇫" type="tts">flagg: Saint-Martin</annotation>
+ <annotation cp="🇲🇬">flagg</annotation>
+ <annotation cp="🇲🇬" type="tts">flagg: Madagaskar</annotation>
+ <annotation cp="🇲🇭">flagg</annotation>
+ <annotation cp="🇲🇭" type="tts">flagg: Marshalløyene</annotation>
+ <annotation cp="🇲🇰">flagg</annotation>
+ <annotation cp="🇲🇰" type="tts">flagg: Nord-Makedonia</annotation>
+ <annotation cp="🇲🇱">flagg</annotation>
+ <annotation cp="🇲🇱" type="tts">flagg: Mali</annotation>
+ <annotation cp="🇲🇲">flagg</annotation>
+ <annotation cp="🇲🇲" type="tts">flagg: Myanmar (Burma)</annotation>
+ <annotation cp="🇲🇳">flagg</annotation>
+ <annotation cp="🇲🇳" type="tts">flagg: Mongolia</annotation>
+ <annotation cp="🇲🇴">flagg</annotation>
+ <annotation cp="🇲🇴" type="tts">flagg: Macao SAR Kina</annotation>
+ <annotation cp="🇲🇵">flagg</annotation>
+ <annotation cp="🇲🇵" type="tts">flagg: Nord-Marianene</annotation>
+ <annotation cp="🇲🇶">flagg</annotation>
+ <annotation cp="🇲🇶" type="tts">flagg: Martinique</annotation>
+ <annotation cp="🇲🇷">flagg</annotation>
+ <annotation cp="🇲🇷" type="tts">flagg: Mauritania</annotation>
+ <annotation cp="🇲🇸">flagg</annotation>
+ <annotation cp="🇲🇸" type="tts">flagg: Montserrat</annotation>
+ <annotation cp="🇲🇹">flagg</annotation>
+ <annotation cp="🇲🇹" type="tts">flagg: Malta</annotation>
+ <annotation cp="🇲🇺">flagg</annotation>
+ <annotation cp="🇲🇺" type="tts">flagg: Mauritius</annotation>
+ <annotation cp="🇲🇻">flagg</annotation>
+ <annotation cp="🇲🇻" type="tts">flagg: Maldivene</annotation>
+ <annotation cp="🇲🇼">flagg</annotation>
+ <annotation cp="🇲🇼" type="tts">flagg: Malawi</annotation>
+ <annotation cp="🇲🇽">flagg</annotation>
+ <annotation cp="🇲🇽" type="tts">flagg: Mexico</annotation>
+ <annotation cp="🇲🇾">flagg</annotation>
+ <annotation cp="🇲🇾" type="tts">flagg: Malaysia</annotation>
+ <annotation cp="🇲🇿">flagg</annotation>
+ <annotation cp="🇲🇿" type="tts">flagg: Mosambik</annotation>
+ <annotation cp="🇳🇦">flagg</annotation>
+ <annotation cp="🇳🇦" type="tts">flagg: Namibia</annotation>
+ <annotation cp="🇳🇨">flagg</annotation>
+ <annotation cp="🇳🇨" type="tts">flagg: Ny-Caledonia</annotation>
+ <annotation cp="🇳🇪">flagg</annotation>
+ <annotation cp="🇳🇪" type="tts">flagg: Niger</annotation>
+ <annotation cp="🇳🇫">flagg</annotation>
+ <annotation cp="🇳🇫" type="tts">flagg: Norfolkøya</annotation>
+ <annotation cp="🇳🇬">flagg</annotation>
+ <annotation cp="🇳🇬" type="tts">flagg: Nigeria</annotation>
+ <annotation cp="🇳🇮">flagg</annotation>
+ <annotation cp="🇳🇮" type="tts">flagg: Nicaragua</annotation>
+ <annotation cp="🇳🇱">flagg</annotation>
+ <annotation cp="🇳🇱" type="tts">flagg: Nederland</annotation>
+ <annotation cp="🇳🇴">flagg</annotation>
+ <annotation cp="🇳🇴" type="tts">flagg: Norge</annotation>
+ <annotation cp="🇳🇵">flagg</annotation>
+ <annotation cp="🇳🇵" type="tts">flagg: Nepal</annotation>
+ <annotation cp="🇳🇷">flagg</annotation>
+ <annotation cp="🇳🇷" type="tts">flagg: Nauru</annotation>
+ <annotation cp="🇳🇺">flagg</annotation>
+ <annotation cp="🇳🇺" type="tts">flagg: Niue</annotation>
+ <annotation cp="🇳🇿">flagg</annotation>
+ <annotation cp="🇳🇿" type="tts">flagg: New Zealand</annotation>
+ <annotation cp="🇴🇲">flagg</annotation>
+ <annotation cp="🇴🇲" type="tts">flagg: Oman</annotation>
+ <annotation cp="🇵🇦">flagg</annotation>
+ <annotation cp="🇵🇦" type="tts">flagg: Panama</annotation>
+ <annotation cp="🇵🇪">flagg</annotation>
+ <annotation cp="🇵🇪" type="tts">flagg: Peru</annotation>
+ <annotation cp="🇵🇫">flagg</annotation>
+ <annotation cp="🇵🇫" type="tts">flagg: Fransk Polynesia</annotation>
+ <annotation cp="🇵🇬">flagg</annotation>
+ <annotation cp="🇵🇬" type="tts">flagg: Papua Ny-Guinea</annotation>
+ <annotation cp="🇵🇭">flagg</annotation>
+ <annotation cp="🇵🇭" type="tts">flagg: Filippinene</annotation>
+ <annotation cp="🇵🇰">flagg</annotation>
+ <annotation cp="🇵🇰" type="tts">flagg: Pakistan</annotation>
+ <annotation cp="🇵🇱">flagg</annotation>
+ <annotation cp="🇵🇱" type="tts">flagg: Polen</annotation>
+ <annotation cp="🇵🇲">flagg</annotation>
+ <annotation cp="🇵🇲" type="tts">flagg: Saint-Pierre-et-Miquelon</annotation>
+ <annotation cp="🇵🇳">flagg</annotation>
+ <annotation cp="🇵🇳" type="tts">flagg: Pitcairnøyene</annotation>
+ <annotation cp="🇵🇷">flagg</annotation>
+ <annotation cp="🇵🇷" type="tts">flagg: Puerto Rico</annotation>
+ <annotation cp="🇵🇸">flagg</annotation>
+ <annotation cp="🇵🇸" type="tts">flagg: Det palestinske området</annotation>
+ <annotation cp="🇵🇹">flagg</annotation>
+ <annotation cp="🇵🇹" type="tts">flagg: Portugal</annotation>
+ <annotation cp="🇵🇼">flagg</annotation>
+ <annotation cp="🇵🇼" type="tts">flagg: Palau</annotation>
+ <annotation cp="🇵🇾">flagg</annotation>
+ <annotation cp="🇵🇾" type="tts">flagg: Paraguay</annotation>
+ <annotation cp="🇶🇦">flagg</annotation>
+ <annotation cp="🇶🇦" type="tts">flagg: Qatar</annotation>
+ <annotation cp="🇷🇪">flagg</annotation>
+ <annotation cp="🇷🇪" type="tts">flagg: Réunion</annotation>
+ <annotation cp="🇷🇴">flagg</annotation>
+ <annotation cp="🇷🇴" type="tts">flagg: Romania</annotation>
+ <annotation cp="🇷🇸">flagg</annotation>
+ <annotation cp="🇷🇸" type="tts">flagg: Serbia</annotation>
+ <annotation cp="🇷🇺">flagg</annotation>
+ <annotation cp="🇷🇺" type="tts">flagg: Russland</annotation>
+ <annotation cp="🇷🇼">flagg</annotation>
+ <annotation cp="🇷🇼" type="tts">flagg: Rwanda</annotation>
+ <annotation cp="🇸🇦">flagg</annotation>
+ <annotation cp="🇸🇦" type="tts">flagg: Saudi-Arabia</annotation>
+ <annotation cp="🇸🇧">flagg</annotation>
+ <annotation cp="🇸🇧" type="tts">flagg: Salomonøyene</annotation>
+ <annotation cp="🇸🇨">flagg</annotation>
+ <annotation cp="🇸🇨" type="tts">flagg: Seychellene</annotation>
+ <annotation cp="🇸🇩">flagg</annotation>
+ <annotation cp="🇸🇩" type="tts">flagg: Sudan</annotation>
+ <annotation cp="🇸🇪">flagg</annotation>
+ <annotation cp="🇸🇪" type="tts">flagg: Sverige</annotation>
+ <annotation cp="🇸🇬">flagg</annotation>
+ <annotation cp="🇸🇬" type="tts">flagg: Singapore</annotation>
+ <annotation cp="🇸🇭">flagg</annotation>
+ <annotation cp="🇸🇭" type="tts">flagg: St. Helena</annotation>
+ <annotation cp="🇸🇮">flagg</annotation>
+ <annotation cp="🇸🇮" type="tts">flagg: Slovenia</annotation>
+ <annotation cp="🇸🇯">flagg</annotation>
+ <annotation cp="🇸🇯" type="tts">flagg: Svalbard og Jan Mayen</annotation>
+ <annotation cp="🇸🇰">flagg</annotation>
+ <annotation cp="🇸🇰" type="tts">flagg: Slovakia</annotation>
+ <annotation cp="🇸🇱">flagg</annotation>
+ <annotation cp="🇸🇱" type="tts">flagg: Sierra Leone</annotation>
+ <annotation cp="🇸🇲">flagg</annotation>
+ <annotation cp="🇸🇲" type="tts">flagg: San Marino</annotation>
+ <annotation cp="🇸🇳">flagg</annotation>
+ <annotation cp="🇸🇳" type="tts">flagg: Senegal</annotation>
+ <annotation cp="🇸🇴">flagg</annotation>
+ <annotation cp="🇸🇴" type="tts">flagg: Somalia</annotation>
+ <annotation cp="🇸🇷">flagg</annotation>
+ <annotation cp="🇸🇷" type="tts">flagg: Surinam</annotation>
+ <annotation cp="🇸🇸">flagg</annotation>
+ <annotation cp="🇸🇸" type="tts">flagg: Sør-Sudan</annotation>
+ <annotation cp="🇸🇹">flagg</annotation>
+ <annotation cp="🇸🇹" type="tts">flagg: São Tomé og Príncipe</annotation>
+ <annotation cp="🇸🇻">flagg</annotation>
+ <annotation cp="🇸🇻" type="tts">flagg: El Salvador</annotation>
+ <annotation cp="🇸🇽">flagg</annotation>
+ <annotation cp="🇸🇽" type="tts">flagg: Sint Maarten</annotation>
+ <annotation cp="🇸🇾">flagg</annotation>
+ <annotation cp="🇸🇾" type="tts">flagg: Syria</annotation>
+ <annotation cp="🇸🇿">flagg</annotation>
+ <annotation cp="🇸🇿" type="tts">flagg: Eswatini</annotation>
+ <annotation cp="🇹🇦">flagg</annotation>
+ <annotation cp="🇹🇦" type="tts">flagg: Tristan da Cunha</annotation>
+ <annotation cp="🇹🇨">flagg</annotation>
+ <annotation cp="🇹🇨" type="tts">flagg: Turks- og Caicosøyene</annotation>
+ <annotation cp="🇹🇩">flagg</annotation>
+ <annotation cp="🇹🇩" type="tts">flagg: Tsjad</annotation>
+ <annotation cp="🇹🇫">flagg</annotation>
+ <annotation cp="🇹🇫" type="tts">flagg: De franske sørterritorier</annotation>
+ <annotation cp="🇹🇬">flagg</annotation>
+ <annotation cp="🇹🇬" type="tts">flagg: Togo</annotation>
+ <annotation cp="🇹🇭">flagg</annotation>
+ <annotation cp="🇹🇭" type="tts">flagg: Thailand</annotation>
+ <annotation cp="🇹🇯">flagg</annotation>
+ <annotation cp="🇹🇯" type="tts">flagg: Tadsjikistan</annotation>
+ <annotation cp="🇹🇰">flagg</annotation>
+ <annotation cp="🇹🇰" type="tts">flagg: Tokelau</annotation>
+ <annotation cp="🇹🇱">flagg</annotation>
+ <annotation cp="🇹🇱" type="tts">flagg: Øst-Timor</annotation>
+ <annotation cp="🇹🇲">flagg</annotation>
+ <annotation cp="🇹🇲" type="tts">flagg: Turkmenistan</annotation>
+ <annotation cp="🇹🇳">flagg</annotation>
+ <annotation cp="🇹🇳" type="tts">flagg: Tunisia</annotation>
+ <annotation cp="🇹🇴">flagg</annotation>
+ <annotation cp="🇹🇴" type="tts">flagg: Tonga</annotation>
+ <annotation cp="🇹🇷">flagg</annotation>
+ <annotation cp="🇹🇷" type="tts">flagg: Tyrkia</annotation>
+ <annotation cp="🇹🇹">flagg</annotation>
+ <annotation cp="🇹🇹" type="tts">flagg: Trinidad og Tobago</annotation>
+ <annotation cp="🇹🇻">flagg</annotation>
+ <annotation cp="🇹🇻" type="tts">flagg: Tuvalu</annotation>
+ <annotation cp="🇹🇼">flagg</annotation>
+ <annotation cp="🇹🇼" type="tts">flagg: Taiwan</annotation>
+ <annotation cp="🇹🇿">flagg</annotation>
+ <annotation cp="🇹🇿" type="tts">flagg: Tanzania</annotation>
+ <annotation cp="🇺🇦">flagg</annotation>
+ <annotation cp="🇺🇦" type="tts">flagg: Ukraina</annotation>
+ <annotation cp="🇺🇬">flagg</annotation>
+ <annotation cp="🇺🇬" type="tts">flagg: Uganda</annotation>
+ <annotation cp="🇺🇲">flagg</annotation>
+ <annotation cp="🇺🇲" type="tts">flagg: USAs ytre øyer</annotation>
+ <annotation cp="🇺🇳">flagg</annotation>
+ <annotation cp="🇺🇳" type="tts">flagg: FN</annotation>
+ <annotation cp="🇺🇸">flagg</annotation>
+ <annotation cp="🇺🇸" type="tts">flagg: USA</annotation>
+ <annotation cp="🇺🇾">flagg</annotation>
+ <annotation cp="🇺🇾" type="tts">flagg: Uruguay</annotation>
+ <annotation cp="🇺🇿">flagg</annotation>
+ <annotation cp="🇺🇿" type="tts">flagg: Usbekistan</annotation>
+ <annotation cp="🇻🇦">flagg</annotation>
+ <annotation cp="🇻🇦" type="tts">flagg: Vatikanstaten</annotation>
+ <annotation cp="🇻🇨">flagg</annotation>
+ <annotation cp="🇻🇨" type="tts">flagg: St. Vincent og Grenadinene</annotation>
+ <annotation cp="🇻🇪">flagg</annotation>
+ <annotation cp="🇻🇪" type="tts">flagg: Venezuela</annotation>
+ <annotation cp="🇻🇬">flagg</annotation>
+ <annotation cp="🇻🇬" type="tts">flagg: De britiske jomfruøyene</annotation>
+ <annotation cp="🇻🇮">flagg</annotation>
+ <annotation cp="🇻🇮" type="tts">flagg: De amerikanske jomfruøyene</annotation>
+ <annotation cp="🇻🇳">flagg</annotation>
+ <annotation cp="🇻🇳" type="tts">flagg: Vietnam</annotation>
+ <annotation cp="🇻🇺">flagg</annotation>
+ <annotation cp="🇻🇺" type="tts">flagg: Vanuatu</annotation>
+ <annotation cp="🇼🇫">flagg</annotation>
+ <annotation cp="🇼🇫" type="tts">flagg: Wallis og Futuna</annotation>
+ <annotation cp="🇼🇸">flagg</annotation>
+ <annotation cp="🇼🇸" type="tts">flagg: Samoa</annotation>
+ <annotation cp="🇽🇰">flagg</annotation>
+ <annotation cp="🇽🇰" type="tts">flagg: Kosovo</annotation>
+ <annotation cp="🇾🇪">flagg</annotation>
+ <annotation cp="🇾🇪" type="tts">flagg: Jemen</annotation>
+ <annotation cp="🇾🇹">flagg</annotation>
+ <annotation cp="🇾🇹" type="tts">flagg: Mayotte</annotation>
+ <annotation cp="🇿🇦">flagg</annotation>
+ <annotation cp="🇿🇦" type="tts">flagg: Sør-Afrika</annotation>
+ <annotation cp="🇿🇲">flagg</annotation>
+ <annotation cp="🇿🇲" type="tts">flagg: Zambia</annotation>
+ <annotation cp="🇿🇼">flagg</annotation>
+ <annotation cp="🇿🇼" type="tts">flagg: Zimbabwe</annotation>
+ <annotation cp="🏴">flagg</annotation>
+ <annotation cp="🏴" type="tts">flagg: England</annotation>
+ <annotation cp="🏴">flagg</annotation>
+ <annotation cp="🏴" type="tts">flagg: Skottland</annotation>
+ <annotation cp="🏴">flagg</annotation>
+ <annotation cp="🏴" type="tts">flagg: Wales</annotation>
+ <annotation cp="¤" type="tts">ukjent valuta</annotation>
+ <annotation cp="֏" type="tts">armenske dram</annotation>
+ <annotation cp="؋" type="tts">afghanske afghani</annotation>
+ <annotation cp="৳" type="tts">bangladeshiske taka</annotation>
+ <annotation cp="฿" type="tts">thailandske baht</annotation>
+ <annotation cp="៛" type="tts">kambodsjanske riel</annotation>
+ <annotation cp="₡" type="tts">costaricanske colón</annotation>
+ <annotation cp="₦" type="tts">nigerianske naira</annotation>
+ <annotation cp="₧" type="tts">spanske peseta</annotation>
+ <annotation cp="₪" type="tts">nye israelske shekler</annotation>
+ <annotation cp="₫" type="tts">vietnamesiske dong</annotation>
+ <annotation cp="₭" type="tts">laotiske kip</annotation>
+ <annotation cp="₮" type="tts">mongolske tugrik</annotation>
+ <annotation cp="₲" type="tts">paraguayanske guarani</annotation>
+ <annotation cp="₴" type="tts">ukrainske hryvnia</annotation>
+ <annotation cp="₵" type="tts">ghanesiske cedi</annotation>
+ <annotation cp="₸" type="tts">kasakhstanske tenge</annotation>
+ <annotation cp="₺" type="tts">tyrkiske lire</annotation>
+ <annotation cp="₼" type="tts">aserbajdsjanske manat</annotation>
+ <annotation cp="₾" type="tts">georgiske lari</annotation>
+ <annotation cp="0⃣">taster</annotation>
+ <annotation cp="0⃣" type="tts">taster: 0</annotation>
+ <annotation cp="1⃣">taster</annotation>
+ <annotation cp="1⃣" type="tts">taster: 1</annotation>
+ <annotation cp="2⃣">taster</annotation>
+ <annotation cp="2⃣" type="tts">taster: 2</annotation>
+ <annotation cp="3⃣">taster</annotation>
+ <annotation cp="3⃣" type="tts">taster: 3</annotation>
+ <annotation cp="4⃣">taster</annotation>
+ <annotation cp="4⃣" type="tts">taster: 4</annotation>
+ <annotation cp="5⃣">taster</annotation>
+ <annotation cp="5⃣" type="tts">taster: 5</annotation>
+ <annotation cp="6⃣">taster</annotation>
+ <annotation cp="6⃣" type="tts">taster: 6</annotation>
+ <annotation cp="7⃣">taster</annotation>
+ <annotation cp="7⃣" type="tts">taster: 7</annotation>
+ <annotation cp="8⃣">taster</annotation>
+ <annotation cp="8⃣" type="tts">taster: 8</annotation>
+ <annotation cp="9⃣">taster</annotation>
+ <annotation cp="9⃣" type="tts">taster: 9</annotation>
+ </annotations>
+</ldml>
diff --git a/common/casing/nb.xml b/common/casing/nb.xml
index aad5d20..22e308d 100644
--- a/common/casing/nb.xml
+++ b/common/casing/nb.xml
@@ -1,36 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2015 Unicode, Inc.
-CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
+<!-- Copyright © 1991-2020 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
+Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
+CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
-->
<ldml>
<identity>
<version number="$Revision$"/>
<language type="nb"/>
</identity>
- <metadata>
- <casingData>
- <casingItem type="calendar_field">lowercase</casingItem>
- <casingItem type="currencyName">lowercase</casingItem>
- <casingItem type="currencyName_count">lowercase</casingItem>
- <casingItem type="day_format_except_narrow">lowercase</casingItem>
- <casingItem type="day_narrow">titlecase</casingItem>
- <casingItem type="day_standalone_except_narrow">lowercase</casingItem>
- <casingItem type="era_name">titlecase</casingItem>
- <casingItem type="era_narrow">titlecase</casingItem>
- <casingItem type="keyValue">lowercase</casingItem>
- <casingItem type="language">lowercase</casingItem>
- <casingItem type="metazone_long">lowercase</casingItem>
- <casingItem type="month_format_except_narrow">lowercase</casingItem>
- <casingItem type="month_standalone_except_narrow">lowercase</casingItem>
- <casingItem type="quarter_abbreviated">titlecase</casingItem>
- <casingItem type="relative">lowercase</casingItem>
- <casingItem type="script">lowercase</casingItem>
- <casingItem type="territory">titlecase</casingItem>
- <casingItem type="variant">lowercase</casingItem>
- <casingItem type="zone_exemplarCity">titlecase</casingItem>
- <casingItem type="zone_long">lowercase</casingItem>
- </casingData>
- </metadata>
</ldml>
diff --git a/common/casing/no.xml b/common/casing/no.xml
new file mode 100644
index 0000000..2fe15bb
--- /dev/null
+++ b/common/casing/no.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
+<!-- Copyright © 1991-2015 Unicode, Inc.
+CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
+For terms of use, see http://www.unicode.org/copyright.html
+-->
+<ldml>
+ <identity>
+ <version number="$Revision$"/>
+ <language type="no"/>
+ </identity>
+ <metadata>
+ <casingData>
+ <casingItem type="calendar_field">lowercase</casingItem>
+ <casingItem type="currencyName">lowercase</casingItem>
+ <casingItem type="currencyName_count">lowercase</casingItem>
+ <casingItem type="day_format_except_narrow">lowercase</casingItem>
+ <casingItem type="day_narrow">titlecase</casingItem>
+ <casingItem type="day_standalone_except_narrow">lowercase</casingItem>
+ <casingItem type="era_name">titlecase</casingItem>
+ <casingItem type="era_narrow">titlecase</casingItem>
+ <casingItem type="keyValue">lowercase</casingItem>
+ <casingItem type="language">lowercase</casingItem>
+ <casingItem type="metazone_long">lowercase</casingItem>
+ <casingItem type="month_format_except_narrow">lowercase</casingItem>
+ <casingItem type="month_standalone_except_narrow">lowercase</casingItem>
+ <casingItem type="quarter_abbreviated">titlecase</casingItem>
+ <casingItem type="relative">lowercase</casingItem>
+ <casingItem type="script">lowercase</casingItem>
+ <casingItem type="territory">titlecase</casingItem>
+ <casingItem type="variant">lowercase</casingItem>
+ <casingItem type="zone_exemplarCity">titlecase</casingItem>
+ <casingItem type="zone_long">lowercase</casingItem>
+ </casingData>
+ </metadata>
+</ldml>
diff --git a/common/collation/nb.xml b/common/collation/nb.xml
index ed59586..22e308d 100644
--- a/common/collation/nb.xml
+++ b/common/collation/nb.xml
@@ -1,30 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!--
-Copyright © 1991-2014 Unicode, Inc.
-CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
+<!-- Copyright © 1991-2020 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
+Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
+CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
-->
<ldml>
<identity>
<version number="$Revision$"/>
- <language type="nb" />
+ <language type="nb"/>
</identity>
- <collations>
- <collation type="search">
- <cr><![CDATA[
- [import und-u-co-search]
- [import nb-u-co-standard]
- ]]></cr>
- </collation>
- <collation type="standard">
- <cr><![CDATA[
- &D<<đ<<<Đ<<ð<<<Ð
- &t<<<þ/h
- &T<<<Þ/H
- &Y<<ü<<<Ü<<ű<<<Ű
- &[before 1]ǀ<æ<<<Æ<<ä<<<Ä<<ę<<<Ę<ø<<<Ø<<ö<<<Ö<<ő<<<Ő<<œ<<<Œ<å<<<Å<<aa<<<Aa<<<AA
- ]]></cr>
- </collation>
- </collations>
</ldml>
diff --git a/common/collation/nn.xml b/common/collation/nn.xml
index 3eb3151..5784474 100644
--- a/common/collation/nn.xml
+++ b/common/collation/nn.xml
@@ -1,25 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!--
-Copyright © 1991-2014 Unicode, Inc.
-CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
+<!-- Copyright © 1991-2020 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
+Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
+CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
-->
<ldml>
<identity>
<version number="$Revision$"/>
- <language type="nn" />
+ <language type="nn"/>
</identity>
- <collations>
- <collation type="search">
- <cr><![CDATA[
- [import nb-u-co-search]
- ]]></cr>
- </collation>
- <collation type="standard">
- <cr><![CDATA[
- [import nb-u-co-standard]
- ]]></cr>
- </collation>
- </collations>
</ldml>
diff --git a/common/collation/no.xml b/common/collation/no.xml
new file mode 100644
index 0000000..505d31f
--- /dev/null
+++ b/common/collation/no.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
+<!--
+Copyright © 1991-2014 Unicode, Inc.
+CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
+For terms of use, see http://www.unicode.org/copyright.html
+-->
+<ldml>
+ <identity>
+ <version number="$Revision$"/>
+ <language type="no" />
+ </identity>
+ <collations>
+ <collation type="search">
+ <cr><![CDATA[
+ [import und-u-co-search]
+ [import no-u-co-standard]
+ ]]></cr>
+ </collation>
+ <collation type="standard">
+ <cr><![CDATA[
+ &D<<đ<<<Đ<<ð<<<Ð
+ &t<<<þ/h
+ &T<<<Þ/H
+ &Y<<ü<<<Ü<<ű<<<Ű
+ &[before 1]ǀ<æ<<<Æ<<ä<<<Ä<<ę<<<Ę<ø<<<Ø<<ö<<<Ö<<ő<<<Ő<<œ<<<Œ<å<<<Å<<aa<<<Aa<<<AA
+ ]]></cr>
+ </collation>
+ </collations>
+</ldml>
diff --git a/common/dtd/ldml.dtd b/common/dtd/ldml.dtd
index dc4fb40..c0920b2 100644
--- a/common/dtd/ldml.dtd
+++ b/common/dtd/ldml.dtd
@@ -46,7 +46,7 @@
<!ATTLIST version number CDATA #REQUIRED >
<!--@MATCH:regex/\$Revision.*\$-->
<!--@METADATA-->
-<!ATTLIST version cldrVersion CDATA #FIXED "38.1" >
+<!ATTLIST version cldrVersion CDATA #FIXED "39" >
<!--@MATCH:any-->
<!--@VALUE-->
<!ATTLIST version draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
diff --git a/common/dtd/ldmlBCP47.dtd b/common/dtd/ldmlBCP47.dtd
index 4964551..6090e38 100644
--- a/common/dtd/ldmlBCP47.dtd
+++ b/common/dtd/ldmlBCP47.dtd
@@ -16,7 +16,7 @@
<!ATTLIST version number CDATA #REQUIRED >
<!--@MATCH:regex/\$Revision.*\$-->
<!--@METADATA-->
-<!ATTLIST version cldrVersion CDATA #FIXED "38.1" >
+<!ATTLIST version cldrVersion CDATA #FIXED "39" >
<!--@MATCH:version-->
<!--@VALUE-->
diff --git a/common/dtd/ldmlSupplemental.dtd b/common/dtd/ldmlSupplemental.dtd
index 4bacc4e..e0258ed 100644
--- a/common/dtd/ldmlSupplemental.dtd
+++ b/common/dtd/ldmlSupplemental.dtd
@@ -17,7 +17,7 @@
<!ATTLIST version number CDATA #REQUIRED >
<!--@MATCH:any-->
<!--@METADATA-->
-<!ATTLIST version cldrVersion CDATA #FIXED "38.1" >
+<!ATTLIST version cldrVersion CDATA #FIXED "39" >
<!--@MATCH:version-->
<!--@VALUE-->
<!ATTLIST version unicodeVersion CDATA #FIXED "13.0.0" >
@@ -384,6 +384,9 @@
<!ATTLIST unitConstant status NMTOKEN #IMPLIED >
<!--@MATCH:literal/approximate, exact-->
<!--@VALUE-->
+<!ATTLIST unitConstant description CDATA #IMPLIED >
+ <!--@MATCH:any-->
+ <!--@METADATA-->
<!ELEMENT unitQuantities ( unitQuantity* ) >
@@ -396,6 +399,8 @@
<!ATTLIST unitQuantity status NMTOKEN #IMPLIED >
<!--@MATCH:regex/simple-->
<!--@VALUE-->
+<!ATTLIST unitQuantity description CDATA #IMPLIED >
+ <!--@METADATA-->
<!ELEMENT convertUnits ( convertUnit* ) >
@@ -412,8 +417,10 @@
<!--@MATCH:regex/[-+*/\._ 0-9a-zA-Z]+-->
<!--@VALUE-->
<!ATTLIST convertUnit systems NMTOKENS #IMPLIED >
- <!--@MATCH:set/literal/ussystem, uksystem-->
+ <!--@MATCH:set/literal/ussystem, uksystem, metric, si, other -->
<!--@VALUE-->
+<!ATTLIST convertUnit description CDATA #IMPLIED >
+ <!--@METADATA-->
<!ELEMENT unitPreferenceData ( unitPreferences* ) >
<!ATTLIST unitPreferenceData draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
@@ -1242,7 +1249,7 @@
<!ATTLIST grammaticalCase scope NMTOKENS #IMPLIED >
<!--@MATCH:set/literal/units-->
<!ATTLIST grammaticalCase values NMTOKENS #IMPLIED >
- <!--@MATCH:set/literal/ablative, accusative, comitative, dative, ergative, genitive, instrumental, locative, locativecopulative, nominative, oblique, partitive, prepositional, sociative, vocative-->
+ <!--@MATCH:set/literal/abessive, ablative, accusative, adessive, allative, causal, comitative, dative, delative, elative, ergative, essive, genitive, illative, inessive, instrumental, locative, locativecopulative, nominative, oblique, partitive, prepositional, sociative, sublative, superessive, terminative, translative, vocative-->
<!--@VALUE-->
<!ELEMENT grammaticalGender EMPTY >
diff --git a/common/main/af.xml b/common/main/af.xml
index e94499d..766e5c4 100644
--- a/common/main/af.xml
+++ b/common/main/af.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -332,7 +332,6 @@
<language type="rn">Rundi</language>
<language type="ro">Roemeens</language>
<language type="rof">Rombo</language>
- <language type="root">Root</language>
<language type="ru">Russies</language>
<language type="rup">Aromanies</language>
<language type="rw">Rwandees</language>
@@ -2455,9 +2454,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Gekoördineerde universele tyd</standard>
@@ -2577,12 +2573,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -3615,6 +3611,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -5862,7 +5861,7 @@
<displayName>Wes-Afrikaanse CFA-frank</displayName>
<displayName count="one">Wes-Afrikaanse CFA-frank</displayName>
<displayName count="other">Wes-Afrikaanse CFA-frank</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>CFP-frank</displayName>
@@ -6111,7 +6110,7 @@
<unitPattern count="one">{0} karaat</unitPattern>
<unitPattern count="other">{0} karaat</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>milligram per desiliter</displayName>
<unitPattern count="one">{0} milligram per desiliter</unitPattern>
<unitPattern count="other">{0} milligram per desiliter</unitPattern>
@@ -7146,7 +7145,7 @@
<unitPattern count="one">{0} kar.</unitPattern>
<unitPattern count="other">{0} kar.</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dℓ</displayName>
<unitPattern count="one">{0} mg/dℓ</unitPattern>
<unitPattern count="other">{0} mg/dℓ</unitPattern>
@@ -7492,9 +7491,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -7616,9 +7615,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>VSA-ton</displayName>
diff --git a/common/main/am.xml b/common/main/am.xml
index f34e800..086993c 100644
--- a/common/main/am.xml
+++ b/common/main/am.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -378,7 +378,6 @@
<language type="ro">ሮማኒያን</language>
<language type="ro_MD">ሞልዳቪያንኛ</language>
<language type="rof">ሮምቦ</language>
- <language type="root">ሩት</language>
<language type="ru">ራሽያኛ</language>
<language type="rup">አሮማንያን</language>
<language type="rw">ኪንያርዋንድኛ</language>
@@ -3056,9 +3055,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>ሳንታ ኢዛቤል</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>ሆኖሉሉ</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>የተቀነባበረ ሁለገብ ሰዓት</standard>
@@ -3178,12 +3174,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>ብሮክን ሂል</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>ከሪ</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>ሜልቦርን</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>ከሪ</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>ሆባርት</exemplarCity>
</zone>
@@ -4216,6 +4212,9 @@
<zone type="America/Nome">
<exemplarCity>ኖሜ</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>ሆኖሉሉ</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>ጆንስተን</exemplarCity>
</zone>
@@ -6480,7 +6479,7 @@
<displayName>የምዕራብ አፍሪካ ሴፋ ፍራንክ</displayName>
<displayName count="one">የምዕራብ አፍሪካ ሴፋ ፍራንክ</displayName>
<displayName count="other">የምዕራብ አፍሪካ ሴፋ ፍራንክ</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>ሲ ኤፍ ፒ ፍራንክ</displayName>
@@ -6730,7 +6729,7 @@
<unitPattern count="one">{0} ካራት</unitPattern>
<unitPattern count="other">{0} ካራት</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>ሚሊ ግራም በ ዴሲ ሊትር</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -7200,9 +7199,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>ቶን</displayName>
@@ -7580,7 +7579,7 @@
<unitPrefixPattern>ሚ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>ና{0}</unitPrefixPattern>
@@ -7765,7 +7764,7 @@
<unitPattern count="one">{0} ካራት</unitPattern>
<unitPattern count="other">{0} ካራት</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -8235,9 +8234,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>ቶን</displayName>
@@ -8615,7 +8614,7 @@
<unitPrefixPattern>ሚ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>ና{0}</unitPrefixPattern>
diff --git a/common/main/ar.xml b/common/main/ar.xml
index ad21248..94a4d10 100644
--- a/common/main/ar.xml
+++ b/common/main/ar.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -421,7 +421,6 @@
<language type="ro_MD">المولدوفية</language>
<language type="rof">الرومبو</language>
<language type="rom">الغجرية</language>
- <language type="root">الجذر</language>
<language type="ru">الروسية</language>
<language type="rup">الأرومانيان</language>
<language type="rw">الكينيارواندا</language>
@@ -3726,9 +3725,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>سانتا إيزابيل</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>هونولولو</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>التوقيت العالمي المنسق</standard>
@@ -3848,12 +3844,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>بروكن هيل</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>كوري</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>ميلبورن</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>كوري</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>هوبارت</exemplarCity>
</zone>
@@ -4886,6 +4882,9 @@
<zone type="America/Nome">
<exemplarCity>نوم</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>هونولولو</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>جونستون</exemplarCity>
</zone>
@@ -8428,7 +8427,7 @@
<displayName count="few">فرنك غرب أفريقي</displayName>
<displayName count="many">فرنك غرب أفريقي</displayName>
<displayName count="other">فرنك غرب أفريقي</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>بالاديوم</displayName>
@@ -8847,7 +8846,7 @@
<unitPattern count="many">{0} قيراطًا</unitPattern>
<unitPattern count="other">{0} قيراط</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>مغم/ديسيبل</displayName>
<unitPattern count="zero">{0} مغم/ديسيبل</unitPattern>
<unitPattern count="one">{0} مغم/ديسيبل</unitPattern>
@@ -10610,7 +10609,7 @@
<unitPattern count="many">{0} قيراط</unitPattern>
<unitPattern count="other">{0} قيراط</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>مغم/ديسبل</displayName>
<unitPattern count="zero">{0} مغم/ديسبل</unitPattern>
<unitPattern count="one">{0} مغم/ديسبل</unitPattern>
diff --git a/common/main/ar_SA.xml b/common/main/ar_SA.xml
index 5d164db..cc65a5e 100644
--- a/common/main/ar_SA.xml
+++ b/common/main/ar_SA.xml
@@ -398,7 +398,6 @@
<language type="ro">↑↑↑</language>
<language type="rof">↑↑↑</language>
<language type="rom">↑↑↑</language>
- <language type="root">↑↑↑</language>
<language type="ru">↑↑↑</language>
<language type="rup">↑↑↑</language>
<language type="rw">↑↑↑</language>
@@ -1621,7 +1620,7 @@
<unitPattern count="many" draft="contributed">{0} قيراطًا</unitPattern>
<unitPattern count="other" draft="contributed">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName draft="contributed">↑↑↑</displayName>
<unitPattern count="zero" draft="contributed">↑↑↑</unitPattern>
<unitPattern count="one" draft="contributed">↑↑↑</unitPattern>
@@ -3138,7 +3137,7 @@
<unitPattern count="many" draft="contributed">{0} قيراطًا</unitPattern>
<unitPattern count="other" draft="contributed">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName draft="contributed">↑↑↑</displayName>
<unitPattern count="zero" draft="contributed">↑↑↑</unitPattern>
<unitPattern count="one" draft="contributed">↑↑↑</unitPattern>
diff --git a/common/main/as.xml b/common/main/as.xml
index eda0e73..3c6091a 100644
--- a/common/main/as.xml
+++ b/common/main/as.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -314,7 +314,6 @@
<language type="ro">ৰোমানীয়</language>
<language type="ro_MD">মোল্ডাভিয়ান</language>
<language type="rof">ৰোম্বো</language>
- <language type="root">ৰুট</language>
<language type="ru">ৰাছিয়ান</language>
<language type="rup">আৰোমানীয়</language>
<language type="rw">কিনয়াৰোৱাণ্ডা</language>
@@ -2414,12 +2413,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>ব্ৰোকেন হিল</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>ক্যুৰি</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>মেলব’ৰ্ণ</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>ক্যুৰি</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>হোবাৰ্ট</exemplarCity>
</zone>
@@ -5675,7 +5674,7 @@
<displayName>পশ্চিম আফ্ৰিকান CFA ফ্ৰেংক</displayName>
<displayName count="one">পশ্চিম আফ্ৰিকান CFA ফ্ৰেংক</displayName>
<displayName count="other">পশ্চিম আফ্ৰিকান CFA ফ্ৰেংক</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>CFP ফ্ৰেংক</displayName>
@@ -5918,7 +5917,7 @@
<unitPattern count="one">{0} কেৰেট</unitPattern>
<unitPattern count="other">{0} কেৰেট</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>প্ৰতি ডেচিলিটাৰত মিলিগ্ৰাম</displayName>
<unitPattern count="one">প্ৰতি ডেচিলিটাৰত {0} মিলিগ্ৰাম</unitPattern>
<unitPattern count="other">প্ৰতি ডেচিলিটাৰত {0} মিলিগ্ৰাম</unitPattern>
@@ -6953,7 +6952,7 @@
<unitPattern count="one">{0} কেৰেট</unitPattern>
<unitPattern count="other">{0} কেৰেট</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>মিঃ গ্ৰাঃ/ডেঃ লিঃ</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -7803,7 +7802,7 @@
<unitPrefixPattern>মিলি{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>নেনো{0}</unitPrefixPattern>
diff --git a/common/main/ast.xml b/common/main/ast.xml
index 20af970..4505453 100644
--- a/common/main/ast.xml
+++ b/common/main/ast.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -4735,14 +4735,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <short>
- <generic>HST</generic>
- <standard>HST</standard>
- <daylight>HDT</daylight>
- </short>
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Hora coordinada universal</standard>
@@ -4862,12 +4854,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -5885,6 +5877,14 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <short>
+ <generic>HST</generic>
+ <standard>HST</standard>
+ <daylight>HDT</daylight>
+ </short>
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -8970,7 +8970,7 @@
<displayName>francu CFA BCEAO</displayName>
<displayName count="one">francu CFA BCEAO</displayName>
<displayName count="other">francos CFA BCEAO</displayName>
- <symbol>CFA</symbol>
+ <symbol>F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>Paladiu</displayName>
@@ -9218,7 +9218,7 @@
<unitPattern count="one">{0} quilate</unitPattern>
<unitPattern count="other">{0} quilates</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>miligramos per decillitru</displayName>
<unitPattern count="one">{0} miligramu per decillitru</unitPattern>
<unitPattern count="other">{0} miligramos per decillitru</unitPattern>
@@ -9930,7 +9930,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -10176,9 +10176,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µmetros</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μmetros</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -10280,9 +10280,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tonelaes</displayName>
@@ -10642,7 +10642,7 @@
<unitPattern count="one">{0}kt</unitPattern>
<unitPattern count="other">{0}kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0}mg/dL</unitPattern>
<unitPattern count="other">{0}mg/dL</unitPattern>
@@ -10888,9 +10888,9 @@
<unitPattern count="other">{0}mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0}µm</unitPattern>
- <unitPattern count="other">{0}µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0}μm</unitPattern>
+ <unitPattern count="other">{0}μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -10987,9 +10987,9 @@
<unitPattern count="other">{0}mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0}µg</unitPattern>
- <unitPattern count="other">{0}µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0}μg</unitPattern>
+ <unitPattern count="other">{0}μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>ton</displayName>
diff --git a/common/main/az.xml b/common/main/az.xml
index ec6061e..4388ce3 100644
--- a/common/main/az.xml
+++ b/common/main/az.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -404,7 +404,6 @@
<language type="ro_MD">moldav</language>
<language type="rof">rombo</language>
<language type="rom">roman</language>
- <language type="root">rut</language>
<language type="ru">rus</language>
<language type="rup">aroman</language>
<language type="rw">kinyarvanda</language>
@@ -2731,9 +2730,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa İzabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Koordinasiya edilmiş ümumdünya vaxtı</standard>
@@ -2853,12 +2849,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Kuriye</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melburn</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Kuriye</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -3891,6 +3887,9 @@
<zone type="America/Nome">
<exemplarCity>Nom</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Conston</exemplarCity>
</zone>
@@ -6560,7 +6559,7 @@
<displayName>Fil Dişi Sahili Frankı</displayName>
<displayName count="one">Fil Dişi Sahili frankı</displayName>
<displayName count="other">Fil Dişi Sahili frankı</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>Palladium</displayName>
@@ -6871,7 +6870,7 @@
<unitPattern count="one">{0} karat</unitPattern>
<unitPattern count="other">{0} karat</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>milliqram/desilitr</displayName>
<unitPattern count="one">{0} milliqram/desilitr</unitPattern>
<unitPattern count="other">{0} milliqram/desilitr</unitPattern>
@@ -7217,9 +7216,9 @@
<unitPattern count="other">{0} millimetr</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -7906,7 +7905,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mq/dl</displayName>
<unitPattern count="one">{0} mq/dl</unitPattern>
<unitPattern count="other">{0} mq/dl</unitPattern>
@@ -8252,9 +8251,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -8376,9 +8375,9 @@
<unitPattern count="other">{0} mq</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µq</displayName>
- <unitPattern count="one">{0} µq</unitPattern>
- <unitPattern count="other">{0} µq</unitPattern>
+ <displayName>μq</displayName>
+ <unitPattern count="one">{0} μq</unitPattern>
+ <unitPattern count="other">{0} μq</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tn</displayName>
diff --git a/common/main/az_Cyrl.xml b/common/main/az_Cyrl.xml
index ef1fbfe..57df933 100644
--- a/common/main/az_Cyrl.xml
+++ b/common/main/az_Cyrl.xml
@@ -300,7 +300,6 @@
<language type="rn">рунди</language>
<language type="ro">румын</language>
<language type="rof">ромбо</language>
- <language type="root">рут</language>
<language type="ru">рус</language>
<language type="rup">ароман</language>
<language type="rw">кинјарванда</language>
diff --git a/common/main/be.xml b/common/main/be.xml
index e2e81c4..f6754aa 100644
--- a/common/main/be.xml
+++ b/common/main/be.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -336,7 +336,6 @@
<language type="ro">румынская</language>
<language type="ro_MD">малдаўская</language>
<language type="rof">ромба</language>
- <language type="root">корань</language>
<language type="ru">руская</language>
<language type="rup">арумунская</language>
<language type="rw">руанда</language>
@@ -2580,9 +2579,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Санта-Ісабель</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Ганалулу</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Універсальны каардынаваны час</standard>
@@ -2702,12 +2698,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Брокен-Хіл</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Керы</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Мельбурн</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Керы</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Хобарт</exemplarCity>
</zone>
@@ -3740,6 +3736,9 @@
<zone type="America/Nome">
<exemplarCity>Ном</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Ганалулу</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Джонстан</exemplarCity>
</zone>
@@ -4935,10 +4934,10 @@
<pattern type="100000000" count="few">000 млн ¤</pattern>
<pattern type="100000000" count="many">000 млн ¤</pattern>
<pattern type="100000000" count="other">000 млн ¤</pattern>
- <pattern type="1000000000" count="one">0 млрд ¤ </pattern>
- <pattern type="1000000000" count="few">0 млрд ¤ </pattern>
- <pattern type="1000000000" count="many">0 млрд ¤ </pattern>
- <pattern type="1000000000" count="other">0 млрд ¤ </pattern>
+ <pattern type="1000000000" count="one">0 млрд ¤</pattern>
+ <pattern type="1000000000" count="few">0 млрд ¤</pattern>
+ <pattern type="1000000000" count="many">0 млрд ¤</pattern>
+ <pattern type="1000000000" count="other">0 млрд ¤</pattern>
<pattern type="10000000000" count="one">00 млрд ¤</pattern>
<pattern type="10000000000" count="few">00 млрд ¤</pattern>
<pattern type="10000000000" count="many">00 млрд ¤</pattern>
@@ -6303,7 +6302,7 @@
<displayName count="few">заходнеафрыканскія франкі КФА</displayName>
<displayName count="many">заходнеафрыканскіх франкаў КФА</displayName>
<displayName count="other">заходнеафрыканскага франка КФА</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>французскі ціхаакіянскі франк</displayName>
@@ -6597,7 +6596,7 @@
<unitPattern count="many">{0} карат</unitPattern>
<unitPattern count="other">{0} карата</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>міліграм на дэцылітр</displayName>
<unitPattern count="one">{0} міліграм на дэцылітр</unitPattern>
<unitPattern count="few">{0} міліграмы на дэцылітр</unitPattern>
@@ -7996,7 +7995,7 @@
<unitPattern count="many">{0} кар</unitPattern>
<unitPattern count="other">{0} кар</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>мг/дл</displayName>
<unitPattern count="one">{0} мг/дл</unitPattern>
<unitPattern count="few">{0} мг/дл</unitPattern>
diff --git a/common/main/bg.xml b/common/main/bg.xml
index 2685f03..f78a5c7 100644
--- a/common/main/bg.xml
+++ b/common/main/bg.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -403,7 +403,6 @@
<language type="ro_MD">молдовски</language>
<language type="rof">ромбо</language>
<language type="rom">ромски</language>
- <language type="root">роот</language>
<language type="ru">руски</language>
<language type="rup">арумънски</language>
<language type="rw">киняруанда</language>
@@ -2752,9 +2751,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Санта Исабел</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Хонолулу</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Координирано универсално време</standard>
@@ -2874,12 +2870,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Броукън Хил</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Къри</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Мелбърн</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Къри</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Хобарт</exemplarCity>
</zone>
@@ -3912,6 +3908,9 @@
<zone type="America/Nome">
<exemplarCity>Ноум</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Хонолулу</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Джонстън</exemplarCity>
</zone>
@@ -6543,7 +6542,7 @@
<displayName>Западноафрикански франк</displayName>
<displayName count="one">западноафрикански франк</displayName>
<displayName count="other">западноафрикански франка</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>Паладий</displayName>
@@ -6843,7 +6842,7 @@
<unitPattern count="one">{0} карат</unitPattern>
<unitPattern count="other">{0} карата</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>милиграми на децилитър</displayName>
<unitPattern count="one">{0} милиграм на децилитър</unitPattern>
<unitPattern count="other">{0} милиграма на децилитър</unitPattern>
@@ -7693,7 +7692,7 @@
<unitPrefixPattern>м{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>н{0}</unitPrefixPattern>
@@ -7878,7 +7877,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="other">{0} mg/dl</unitPattern>
@@ -8224,9 +8223,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -8348,9 +8347,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>↑↑↑</displayName>
@@ -8728,7 +8727,7 @@
<unitPrefixPattern>м{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>н{0}</unitPrefixPattern>
diff --git a/common/main/bn.xml b/common/main/bn.xml
index 5f2eb39..c9e9624 100644
--- a/common/main/bn.xml
+++ b/common/main/bn.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -407,7 +407,6 @@
<language type="ro_MD">মলদাভিয়</language>
<language type="rof">রম্বো</language>
<language type="rom">রোমানি</language>
- <language type="root">মূল</language>
<language type="ru">রুশ</language>
<language type="rup">আরমেনিয়ান</language>
<language type="rw">কিনয়ারোয়ান্ডা</language>
@@ -3747,9 +3746,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>সান্তা ইসাবেল</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>হনোলুলু</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>স্থানাংকিত আন্তর্জাতিক সময়</standard>
@@ -3869,12 +3865,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>ব্রোকেন হিল</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>কিউরি</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>মেলবোর্ন</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>কিউরি</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>হোবার্ট</exemplarCity>
</zone>
@@ -4907,6 +4903,9 @@
<zone type="America/Nome">
<exemplarCity>নোম</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>হনোলুলু</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>জনস্টন</exemplarCity>
</zone>
@@ -7521,7 +7520,7 @@
<displayName>পশ্চিম আফ্রিকান [CFA] ফ্র্যাঙ্ক</displayName>
<displayName count="one">পশ্চিম আফ্রিকান [CFA] ফ্র্যাঙ্ক</displayName>
<displayName count="other">পশ্চিম আফ্রিকান [CFA] ফ্র্যাঙ্ক</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>প্যালেডিয়াম</displayName>
@@ -7807,7 +7806,7 @@
<unitPattern count="one">{0} ক্যারেট</unitPattern>
<unitPattern count="other">{0} ক্যারেট</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>মিলিগ্রাম, প্রতি ডেসিলিটারে</displayName>
<unitPattern count="one">{0} মিলিগ্রাম, প্রতি ডেসিলিটারে</unitPattern>
<unitPattern count="other">{0} মিলিগ্রাম, প্রতি ডেসিলিটারে</unitPattern>
@@ -8657,7 +8656,7 @@
<unitPrefixPattern>মি {0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>ন্যা {0}</unitPrefixPattern>
@@ -8842,7 +8841,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -9188,9 +9187,9 @@
<unitPattern count="other">{0} মিমি</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µmeters</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μmeters</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -9312,9 +9311,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tn</displayName>
@@ -9692,7 +9691,7 @@
<unitPrefixPattern>মি{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>ন্যা{0}</unitPrefixPattern>
@@ -9929,8 +9928,8 @@
<unitPattern count="other">{0} মিমি</unitPattern>
</unit>
<unit type="length-micrometer">
- <unitPattern count="one" draft="contributed">{0} µm</unitPattern>
- <unitPattern count="other" draft="contributed">{0} µm</unitPattern>
+ <unitPattern count="one" draft="contributed">{0} μm</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName draft="contributed">nm</displayName>
@@ -10027,9 +10026,9 @@
<unitPattern count="other" draft="contributed">{0}/মিগ্রা:</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName draft="contributed">µg</displayName>
- <unitPattern count="one" draft="contributed">{0} µg</unitPattern>
- <unitPattern count="other" draft="contributed">{0} µg</unitPattern>
+ <displayName draft="contributed">μg</displayName>
+ <unitPattern count="one" draft="contributed">{0} μg</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName draft="contributed">টন</displayName>
diff --git a/common/main/br.xml b/common/main/br.xml
index f574fb2..34b734c 100644
--- a/common/main/br.xml
+++ b/common/main/br.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -423,7 +423,6 @@
<language type="ro_MD">moldoveg</language>
<language type="rof">rombo</language>
<language type="rom">romanieg</language>
- <language type="root">gwrizienn</language>
<language type="ru">rusianeg</language>
<language type="rup">aroumaneg</language>
<language type="rw">kinyarwanda</language>
@@ -6957,9 +6956,6 @@
<regionFormat type="daylight">eur hañv {0}</regionFormat>
<regionFormat type="standard">eur cʼhoañv {0}</regionFormat>
<fallbackFormat>{1} ({0})</fallbackFormat>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>amzer hollvedel kenurzhiet</standard>
@@ -7079,12 +7075,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>↑↑↑</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>↑↑↑</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
@@ -8084,6 +8080,9 @@
<zone type="America/Nome">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
@@ -12040,7 +12039,7 @@
<displayName count="few">lur CFA BCEAO</displayName>
<displayName count="many">a lurioù CFA BCEAO</displayName>
<displayName count="other">lur CFA Afrika ar Cʼhornôg</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>palladiom</displayName>
@@ -12469,7 +12468,7 @@
<unitPattern count="many">{0} a garatoù</unitPattern>
<unitPattern count="other">{0} karat</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>milligramm dre zekilitr</displayName>
<unitPattern count="one">{0} milligramm dre zekilitr</unitPattern>
<unitPattern count="two">{0} villigramm dre zekilitr</unitPattern>
@@ -14016,7 +14015,7 @@
<unitPattern count="many">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="two">{0} mg/dl</unitPattern>
@@ -14563,12 +14562,12 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="two">{0} µm</unitPattern>
- <unitPattern count="few">{0} µm</unitPattern>
- <unitPattern count="many">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="two">{0} μm</unitPattern>
+ <unitPattern count="few">{0} μm</unitPattern>
+ <unitPattern count="many">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -14759,12 +14758,12 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="two">{0} µg</unitPattern>
- <unitPattern count="few">{0} µg</unitPattern>
- <unitPattern count="many">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="two">{0} μg</unitPattern>
+ <unitPattern count="few">{0} μg</unitPattern>
+ <unitPattern count="many">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tn</displayName>
@@ -15595,7 +15594,7 @@
<unitPattern count="many">{0}kt</unitPattern>
<unitPattern count="other">{0}kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0}mg/dl</unitPattern>
<unitPattern count="two">{0}mg/dl</unitPattern>
@@ -16142,12 +16141,12 @@
<unitPattern count="other">{0}mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0}µm</unitPattern>
- <unitPattern count="two">{0}µm</unitPattern>
- <unitPattern count="few">{0}µm</unitPattern>
- <unitPattern count="many">{0}µm</unitPattern>
- <unitPattern count="other">{0}µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0}μm</unitPattern>
+ <unitPattern count="two">{0}μm</unitPattern>
+ <unitPattern count="few">{0}μm</unitPattern>
+ <unitPattern count="many">{0}μm</unitPattern>
+ <unitPattern count="other">{0}μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -16338,12 +16337,12 @@
<unitPattern count="other">{0}mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0}µg</unitPattern>
- <unitPattern count="two">{0}µg</unitPattern>
- <unitPattern count="few">{0}µg</unitPattern>
- <unitPattern count="many">{0}µg</unitPattern>
- <unitPattern count="other">{0}µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0}μg</unitPattern>
+ <unitPattern count="two">{0}μg</unitPattern>
+ <unitPattern count="few">{0}μg</unitPattern>
+ <unitPattern count="many">{0}μg</unitPattern>
+ <unitPattern count="other">{0}μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tn</displayName>
diff --git a/common/main/brx.xml b/common/main/brx.xml
index 34feb88..37fd894 100644
--- a/common/main/brx.xml
+++ b/common/main/brx.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -337,7 +337,6 @@
<language type="ro">रूमानीयन्</language>
<language type="ro_MD">मोल्डेवियन्</language>
<language type="rom">रुमानी</language>
- <language type="root">रुट</language>
<language type="ru">रुसी</language>
<language type="rup">आरोमानी</language>
<language type="rw">किन्यारुआण्डा</language>
@@ -1204,9 +1203,6 @@
</field>
</fields>
<timeZoneNames>
- <zone type="Pacific/Honolulu">
- <exemplarCity>होनोलुलु</exemplarCity>
- </zone>
<zone type="Etc/Unknown">
<exemplarCity>अज्ञात</exemplarCity>
</zone>
@@ -1315,12 +1311,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>ब्रोकन हिल्</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>करी</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>मेलबोर्न्</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>करी</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>होबार्ट्</exemplarCity>
</zone>
@@ -2212,6 +2208,9 @@
<zone type="America/Nome">
<exemplarCity>नोम</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>होनोलुलु</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>जौन्स्टन</exemplarCity>
</zone>
diff --git a/common/main/bs.xml b/common/main/bs.xml
index 075a391..cc86371 100644
--- a/common/main/bs.xml
+++ b/common/main/bs.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -416,7 +416,6 @@
<language type="ro_MD">moldavski</language>
<language type="rof">rombo</language>
<language type="rom">romani</language>
- <language type="root">korijenski</language>
<language type="ru">ruski</language>
<language type="rup">arumunski</language>
<language type="rw">kinjaruanda</language>
@@ -2988,9 +2987,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Koordinirano svjetsko vrijeme</standard>
@@ -3110,12 +3106,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melburn</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -4148,6 +4144,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -7352,7 +7351,7 @@
<displayName count="one">zapadnoafrički franak (CFA)</displayName>
<displayName count="few">zapadnoafrička franka (CFA)</displayName>
<displayName count="other">zapadnoafričkih franaka (CFA)</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>Paladijum</displayName>
@@ -7715,7 +7714,7 @@
<unitPattern count="few">{0} karata</unitPattern>
<unitPattern count="other">{0} karata</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>miligrami po decilitru</displayName>
<unitPattern count="one">{0} miligram po decilitru</unitPattern>
<unitPattern count="few">{0} miligrama po decilitru</unitPattern>
@@ -8932,7 +8931,7 @@
<unitPattern count="few">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="few">{0} mg/dL</unitPattern>
@@ -9345,10 +9344,10 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="few">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="few">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -9493,10 +9492,10 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="few">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="few">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tone</displayName>
diff --git a/common/main/bs_Cyrl.xml b/common/main/bs_Cyrl.xml
index df30a1f..732e99a 100644
--- a/common/main/bs_Cyrl.xml
+++ b/common/main/bs_Cyrl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -378,7 +378,6 @@
<language type="ro_MD">молдавски</language>
<language type="rof">ромбо</language>
<language type="rom">романи</language>
- <language type="root">рут</language>
<language type="ru">руски</language>
<language type="rup">ароманијски</language>
<language type="rw">кинјаруанда</language>
@@ -3141,9 +3140,6 @@
<regionFormat type="daylight">↑↑↑</regionFormat>
<regionFormat type="standard">↑↑↑</regionFormat>
<fallbackFormat>{1} ({0})</fallbackFormat>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Хонолулу</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Координисано универзално вријеме</standard>
@@ -3263,12 +3259,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Брокен Хил</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Курие</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Мелбурн</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Курие</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Хобарт</exemplarCity>
</zone>
@@ -4301,6 +4297,9 @@
<zone type="America/Nome">
<exemplarCity>Ном</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Хонолулу</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Џонстон</exemplarCity>
</zone>
diff --git a/common/main/ca.xml b/common/main/ca.xml
index 5e246b3..1488500 100644
--- a/common/main/ca.xml
+++ b/common/main/ca.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -452,7 +452,6 @@
<language type="ro_MD">moldau</language>
<language type="rof">rombo</language>
<language type="rom">romaní</language>
- <language type="root">arrel</language>
<language type="ru">rus</language>
<language type="rup">aromanès</language>
<language type="rw">ruandès</language>
@@ -3044,9 +3043,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Temps universal coordinat</standard>
@@ -3166,12 +3162,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -4204,6 +4200,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -7048,7 +7047,7 @@
<displayName>franc CFA BCEAO</displayName>
<displayName count="one">franc CFA BCEAO</displayName>
<displayName count="other">francs CFA BCEAO</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>pal·ladi</displayName>
@@ -7375,7 +7374,7 @@
<unitPattern count="one">{0} quirat</unitPattern>
<unitPattern count="other">{0} quirats</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mil·ligrams per decilitre</displayName>
<unitPattern count="one">{0} mil·ligram per decilitre</unitPattern>
<unitPattern count="other">{0} mil·ligrams per decilitre</unitPattern>
@@ -8410,7 +8409,7 @@
<unitPattern count="one">{0} ct</unitPattern>
<unitPattern count="other">{0} ct</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="other">{0} mg/dl</unitPattern>
@@ -8756,9 +8755,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -8880,9 +8879,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>t</displayName>
diff --git a/common/main/ccp.xml b/common/main/ccp.xml
index b1fa845..c44389d 100644
--- a/common/main/ccp.xml
+++ b/common/main/ccp.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -397,7 +397,6 @@
<language type="ro_MD">𑄟𑄧𑄣𑄴𑄘𑄞𑄨𑄠𑄧</language>
<language type="rof">𑄢𑄧𑄟𑄴𑄝𑄮</language>
<language type="rom">𑄢𑄮𑄟𑄚𑄨</language>
- <language type="root">𑄥𑄨𑄠𑄮𑄢𑄴</language>
<language type="ru">𑄢𑄪𑄌𑄴</language>
<language type="rup">𑄃𑄢𑄴𑄟𑄬𑄚𑄨𑄠𑄚𑄴</language>
<language type="rw">𑄇𑄨𑄚𑄴𑄠𑄢𑄮𑄠𑄚𑄴𑄓</language>
@@ -2502,9 +2501,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>𑄥𑄚𑄴𑄖 𑄃𑄨𑄥𑄝𑄬𑄣𑄴</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>𑄦𑄧𑄚𑄮𑄣𑄪𑄣𑄪</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>𑄘𑄇𑄴𑄘𑄨𑄠 𑄛𑄨𑄖𑄴𑄗𑄨𑄟𑄨𑄢𑄴 𑄃𑄧𑄇𑄴𑄖𑄧</standard>
@@ -2624,12 +2620,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>𑄝𑄳𑄢𑄮𑄇𑄬𑄚𑄴 𑄦𑄨𑄣𑄴</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>𑄇𑄨𑄃𑄪𑄢𑄨</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>𑄟𑄬𑄣𑄴𑄝𑄢𑄴𑄚𑄴</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>𑄇𑄨𑄃𑄪𑄢𑄨</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>𑄦𑄮𑄝𑄢𑄴𑄑𑄴</exemplarCity>
</zone>
@@ -3647,6 +3643,9 @@
<zone type="America/Nome">
<exemplarCity>𑄚𑄮𑄟𑄴</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>𑄦𑄧𑄚𑄮𑄣𑄪𑄣𑄪</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>𑄎𑄧𑄚𑄴𑄥𑄳𑄑𑄧𑄚𑄴</exemplarCity>
</zone>
@@ -6129,7 +6128,7 @@
<displayName>𑄛𑄧𑄎𑄨𑄟𑄴 𑄃𑄜𑄳𑄢𑄨𑄇𑄚𑄴 [CFA] 𑄜𑄳𑄢𑄳𑄠𑄋𑄳𑄇𑄴</displayName>
<displayName count="one">𑄛𑄧𑄎𑄨𑄟𑄴 𑄃𑄜𑄳𑄢𑄨𑄇𑄚𑄴 [CFA] 𑄜𑄳𑄢𑄳𑄠𑄋𑄳𑄇𑄴</displayName>
<displayName count="other">𑄛𑄧𑄎𑄨𑄟𑄴 𑄃𑄜𑄳𑄢𑄨𑄇𑄚𑄴 [CFA] 𑄜𑄳𑄢𑄳𑄠𑄋𑄳𑄇𑄴</displayName>
- <symbol>CFA</symbol>
+ <symbol>F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>𑄛𑄳𑄠𑄣𑄬𑄓𑄨𑄠𑄟𑄴</displayName>
@@ -6303,7 +6302,7 @@
<unitPattern count="one">{0} 𑄇𑄳𑄠𑄢𑄬𑄖𑄴</unitPattern>
<unitPattern count="other">{0} 𑄇𑄳𑄠𑄢𑄬𑄖𑄴</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>𑄟𑄨𑄣𑄨𑄉𑄳𑄢𑄟𑄴, 𑄛𑄳𑄢𑄧𑄖𑄨 𑄓𑄬𑄥𑄨𑄣𑄨𑄑𑄢𑄬</displayName>
<unitPattern count="one">{0} 𑄟𑄨𑄣𑄨𑄉𑄳𑄢𑄟𑄴, 𑄛𑄳𑄢𑄧𑄖𑄨 𑄓𑄬𑄥𑄨𑄣𑄨𑄑𑄢𑄬</unitPattern>
<unitPattern count="other">{0} 𑄟𑄨𑄣𑄨𑄉𑄳𑄢𑄟𑄴, 𑄛𑄳𑄢𑄧𑄖𑄨 𑄓𑄬𑄥𑄨𑄣𑄨𑄑𑄢𑄬</unitPattern>
@@ -6990,7 +6989,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -7236,9 +7235,9 @@
<unitPattern count="other">{0} 𑄟𑄨𑄟𑄨</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µmeters</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μmeters</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -7325,9 +7324,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tn</displayName>
diff --git a/common/main/ce.xml b/common/main/ce.xml
index 0d8e594..b6619eb 100644
--- a/common/main/ce.xml
+++ b/common/main/ce.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -311,7 +311,6 @@
<language type="ro">румынийн</language>
<language type="ro_MD">молдавийн</language>
<language type="rof">ромбо</language>
- <language type="root">ораман мотт</language>
<language type="ru">оьрсийн</language>
<language type="rup">аруминийн</language>
<language type="rw">киньяруанда</language>
@@ -1585,9 +1584,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Санта-Изабел</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Гонолулу</exemplarCity>
- </zone>
<zone type="Etc/Unknown">
<exemplarCity>Йоьвзуш йоцу гӀала</exemplarCity>
</zone>
@@ -1702,12 +1698,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Брокен-Хилл</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Керри</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Мельбурн</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Керри</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Хобарт</exemplarCity>
</zone>
@@ -2737,6 +2733,9 @@
<zone type="America/Nome">
<exemplarCity>Ном</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Гонолулу</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Джонстон</exemplarCity>
</zone>
@@ -4895,7 +4894,7 @@
<displayName>Малхбузен Африкан КФА франк</displayName>
<displayName count="one">Малхбузен Африкан КФА франк</displayName>
<displayName count="other">Малхбузен Африкан КФА франк</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>Французийн Тийна океанан франк</displayName>
diff --git a/common/main/ceb.xml b/common/main/ceb.xml
index 923bd5d..26306a5 100644
--- a/common/main/ceb.xml
+++ b/common/main/ceb.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -1404,10 +1404,10 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
- <zone type="Australia/Currie">
+ <zone type="Australia/Melbourne">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
- <zone type="Australia/Melbourne">
+ <zone type="Australia/Currie">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
<zone type="Australia/Hobart">
@@ -4753,7 +4753,7 @@
<unitPattern count="one">{0} ka karat</unitPattern>
<unitPattern count="other">{0} ka mga karat</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mga milligram kada deciliter</displayName>
<unitPattern count="one">{0} ka milligram kada deciliter</unitPattern>
<unitPattern count="other">{0} ka mga milligram kada deciliter</unitPattern>
@@ -5768,7 +5768,7 @@
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -6114,7 +6114,7 @@
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>mga µmeter</displayName>
+ <displayName>mga μmeter</displayName>
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
diff --git a/common/main/chr.xml b/common/main/chr.xml
index d63dae8..dd23c32 100644
--- a/common/main/chr.xml
+++ b/common/main/chr.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -313,7 +313,6 @@
<language type="ro">ᎶᎹᏂᎠᏂ</language>
<language type="ro_MD">ᎹᎵᏙᏫᎠ ᏣᎹᏂᎠᏂ</language>
<language type="rof">ᎶᎹᏉ</language>
- <language type="root">ᎤᎾᏍᎦᎸ</language>
<language type="ru">ᏲᏅᎯ</language>
<language type="rup">ᎠᏬᎹᏂᎠᏂ</language>
<language type="rw">ᎩᏂᏯᏩᏂᏓ</language>
@@ -2299,14 +2298,6 @@
<regionFormat type="daylight">{0} ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ</regionFormat>
<regionFormat type="standard">{0} ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ</regionFormat>
<fallbackFormat>{1} ({0})</fallbackFormat>
- <zone type="Pacific/Honolulu">
- <short>
- <generic>HST</generic>
- <standard>HST</standard>
- <daylight>HDT</daylight>
- </short>
- <exemplarCity>ᎭᏃᎷᎷ</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>ᎢᎩᏠᏱ ᏂᎦᏓ ᎠᏟᎢᎵᏒ</standard>
@@ -2426,12 +2417,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>ᎤᏲᏨᎯ ᎦᏚᏏ</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>ᎫᎵ</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>ᎺᎵᏉᏁ</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>ᎫᎵ</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>ᎰᏆᏘ</exemplarCity>
</zone>
@@ -3464,6 +3455,14 @@
<zone type="America/Nome">
<exemplarCity>ᏃᎺ</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <short>
+ <generic>HST</generic>
+ <standard>HST</standard>
+ <daylight>HDT</daylight>
+ </short>
+ <exemplarCity>ᎭᏃᎷᎷ</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>ᏣᏂᏏᏂ</exemplarCity>
</zone>
@@ -5678,7 +5677,7 @@
<displayName>ᏭᏕᎵᎬ ᎬᎿᎨᏍᏛ CFA ᎠᏕᎳ</displayName>
<displayName count="one">ᏭᏕᎵᎬ ᎬᎿᎨᏍᏛ CFA ᎠᏕᎳ</displayName>
<displayName count="other">ᏭᏕᎵᎬ ᎬᎿᎨᏍᏛ CFA ᎠᏕᎳ</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>CFP ᎠᏕᎳ</displayName>
@@ -5897,7 +5896,7 @@
<unitPattern count="one">{0} ᎧᏇᏓ</unitPattern>
<unitPattern count="other">{0} ᏗᎧᏇᏓ</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>ᏌᏉ ᎢᏯᎦᎨᎵᏁᎢ ᎤᏍᏗ ᏂᏚᏓᎨᏒ ᏌᏉ ᎢᏳᎾᏓᎢ ᏍᎪᎯ ᎵᏔᎢ ᎢᏳᏓᎵ</displayName>
<unitPattern count="one">{0} ᏌᏉ ᎢᏯᎦᎨᎵᏁᎢ ᎤᏍᏗ ᎤᏓᎨᏒ ᏌᏉ ᎢᏳᎾᏓᎢ ᏍᎪᎯ ᎵᏔᎢ ᎢᏳᏓᎵ</unitPattern>
<unitPattern count="other">{0} ᏌᏉ ᎢᏯᎦᎨᎵᏁᎢ ᎤᏍᏗ ᏂᏚᏓᎨᏒ ᏌᏉ ᎢᏳᎾᏓᎢ ᏍᎪᎯ ᎵᏔᎢ ᎢᏳᏓᎵ</unitPattern>
@@ -6828,7 +6827,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -7164,9 +7163,9 @@
<unitPattern count="other">{0} ᏌᎢᎠ</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>ᎾᎠ</displayName>
@@ -7268,9 +7267,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>ᏗᏈᏂ</displayName>
diff --git a/common/main/ckb.xml b/common/main/ckb.xml
index 1d20a2e..e3e4e8d 100644
--- a/common/main/ckb.xml
+++ b/common/main/ckb.xml
@@ -304,7 +304,6 @@
<language type="ro">ڕۆمانی</language>
<language type="ro_MD">مۆڵداڤی</language>
<language type="rof">ڕۆمبۆ</language>
- <language type="root">ڕووت</language>
<language type="ru">ڕووسی</language>
<language type="rup">ئارمۆمانی</language>
<language type="rw">کینیارواندا</language>
diff --git a/common/main/cs.xml b/common/main/cs.xml
index 8d66a03..79ba51f 100644
--- a/common/main/cs.xml
+++ b/common/main/cs.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -480,7 +480,6 @@
<language type="ro_MD">moldavština</language>
<language type="rof">rombo</language>
<language type="rom">romština</language>
- <language type="root">kořen</language>
<language type="rtm">rotumanština</language>
<language type="ru">ruština</language>
<language type="rue">rusínština</language>
@@ -7336,14 +7335,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <short>
- <generic draft="contributed">HST</generic>
- <standard draft="contributed">HST</standard>
- <daylight draft="contributed">HDT</daylight>
- </short>
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Koordinovaný světový čas</standard>
@@ -7466,12 +7457,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -8504,6 +8495,14 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <short>
+ <generic draft="contributed">HST</generic>
+ <standard draft="contributed">HST</standard>
+ <daylight draft="contributed">HDT</daylight>
+ </short>
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -12324,7 +12323,7 @@
<displayName count="few">CFA/BCEAO franky</displayName>
<displayName count="many">CFA/BCEAO franku</displayName>
<displayName count="other">CFA/BCEAO franků</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>palladium</displayName>
@@ -12757,7 +12756,7 @@
<unitPattern count="many">{0} karátu</unitPattern>
<unitPattern count="other">{0} karátů</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>miligramy na decilitr</displayName>
<unitPattern count="one">{0} miligram na decilitr</unitPattern>
<unitPattern count="few">{0} miligramy na decilitr</unitPattern>
@@ -13931,7 +13930,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>n{0}</unitPrefixPattern>
@@ -14156,7 +14155,7 @@
<unitPattern count="many">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="few">{0} mg/dl</unitPattern>
@@ -14636,11 +14635,11 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="few">{0} µm</unitPattern>
- <unitPattern count="many">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="few">{0} μm</unitPattern>
+ <unitPattern count="many">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -14808,11 +14807,11 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="few">{0} µg</unitPattern>
- <unitPattern count="many">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="few">{0} μg</unitPattern>
+ <unitPattern count="many">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>sht</displayName>
@@ -15330,7 +15329,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>n{0}</unitPrefixPattern>
@@ -15548,7 +15547,7 @@
<unitPattern count="many" draft="contributed">{0} kt</unitPattern>
<unitPattern count="other" draft="contributed">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName draft="contributed">mg/dl</displayName>
<unitPattern count="one" draft="contributed">{0} mg/dl</unitPattern>
<unitPattern count="few" draft="contributed">{0} mg/dl</unitPattern>
@@ -15958,11 +15957,11 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName draft="contributed">µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="few">{0} µm</unitPattern>
- <unitPattern count="many">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName draft="contributed">μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="few">{0} μm</unitPattern>
+ <unitPattern count="many">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName draft="contributed">nm</displayName>
@@ -16123,11 +16122,11 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName draft="contributed">µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="few">{0} µg</unitPattern>
- <unitPattern count="many">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName draft="contributed">μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="few">{0} μg</unitPattern>
+ <unitPattern count="many">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName draft="contributed">t</displayName>
diff --git a/common/main/cy.xml b/common/main/cy.xml
index 883c6aa..6bc60a0 100644
--- a/common/main/cy.xml
+++ b/common/main/cy.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -414,7 +414,6 @@
<language type="ro_MD">Moldofeg</language>
<language type="rof">Rombo</language>
<language type="rom">Romani</language>
- <language type="root">Y Gwraidd</language>
<language type="rtm">Rotumaneg</language>
<language type="ru">Rwseg</language>
<language type="rup">Aromaneg</language>
@@ -2915,9 +2914,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Amser Cyffredniol Cydlynol</standard>
@@ -3037,12 +3033,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -4075,6 +4071,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -7975,7 +7974,7 @@
<displayName count="few">ffranc CFA Gorllewin Affrica</displayName>
<displayName count="many">ffranc CFA Gorllewin Affrica</displayName>
<displayName count="other">ffranc CFA Gorllewin Affrica</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>Paladiwm</displayName>
@@ -8435,7 +8434,7 @@
<unitPattern count="many">↑↑↑</unitPattern>
<unitPattern count="other">{0} karat</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>miligramau y declilitr</displayName>
<unitPattern count="zero">↑↑↑</unitPattern>
<unitPattern count="one">{0} miligram y decilitr</unitPattern>
@@ -10198,7 +10197,7 @@
<unitPattern count="many">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="zero">↑↑↑</unitPattern>
<unitPattern count="one">↑↑↑</unitPattern>
@@ -10812,13 +10811,13 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µmetrau</displayName>
- <unitPattern count="zero">{0} µm</unitPattern>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="two">{0} µm</unitPattern>
- <unitPattern count="few">{0} µm</unitPattern>
- <unitPattern count="many">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μmetrau</displayName>
+ <unitPattern count="zero">{0} μm</unitPattern>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="two">{0} μm</unitPattern>
+ <unitPattern count="few">{0} μm</unitPattern>
+ <unitPattern count="many">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -11032,13 +11031,13 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="zero">{0} µg</unitPattern>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="two">{0} µg</unitPattern>
- <unitPattern count="few">{0} µg</unitPattern>
- <unitPattern count="many">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="zero">{0} μg</unitPattern>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="two">{0} μg</unitPattern>
+ <unitPattern count="few">{0} μg</unitPattern>
+ <unitPattern count="many">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tn</displayName>
@@ -12244,13 +12243,13 @@
<unitPattern count="other">{0}mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="zero">{0}µm</unitPattern>
- <unitPattern count="one">{0}µm</unitPattern>
- <unitPattern count="two">{0}µm</unitPattern>
- <unitPattern count="few">{0}µm</unitPattern>
- <unitPattern count="many">{0}µm</unitPattern>
- <unitPattern count="other">{0}µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="zero">{0}μm</unitPattern>
+ <unitPattern count="one">{0}μm</unitPattern>
+ <unitPattern count="two">{0}μm</unitPattern>
+ <unitPattern count="few">{0}μm</unitPattern>
+ <unitPattern count="many">{0}μm</unitPattern>
+ <unitPattern count="other">{0}μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -12395,13 +12394,13 @@
<unitPattern count="other">{0}mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="zero">{0}µg</unitPattern>
- <unitPattern count="one">{0}µg</unitPattern>
- <unitPattern count="two">{0}µg</unitPattern>
- <unitPattern count="few">{0}µg</unitPattern>
- <unitPattern count="many">{0}µg</unitPattern>
- <unitPattern count="other">{0}µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="zero">{0}μg</unitPattern>
+ <unitPattern count="one">{0}μg</unitPattern>
+ <unitPattern count="two">{0}μg</unitPattern>
+ <unitPattern count="few">{0}μg</unitPattern>
+ <unitPattern count="many">{0}μg</unitPattern>
+ <unitPattern count="other">{0}μg</unitPattern>
</unit>
<unit type="mass-stone">
<displayName>stôn</displayName>
diff --git a/common/main/da.xml b/common/main/da.xml
index c026868..9fae8f6 100644
--- a/common/main/da.xml
+++ b/common/main/da.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -423,7 +423,6 @@
<language type="ro_MD">moldovisk</language>
<language type="rof">rombo</language>
<language type="rom">romani</language>
- <language type="root">rod</language>
<language type="ru">russisk</language>
<language type="rup">arumænsk</language>
<language type="rw">kinyarwanda</language>
@@ -3057,9 +3056,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Koordineret universaltid</standard>
@@ -3179,12 +3175,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -4217,6 +4213,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -7064,7 +7063,7 @@
<displayName>CFA-franc BCEAO</displayName>
<displayName count="one">CFA-franc BCEAO</displayName>
<displayName count="other">CFA-franc BCEAO</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>Palladium</displayName>
@@ -7400,7 +7399,7 @@
<unitPattern count="one">{0} karat</unitPattern>
<unitPattern count="other">{0} karat</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>milligram pr. deciliter</displayName>
<unitPattern count="one">{0} milligram pr. deciliter</unitPattern>
<unitPattern count="other">{0} milligram pr. deciliter</unitPattern>
@@ -8500,7 +8499,7 @@
<unitPattern count="one">{0} kt.</unitPattern>
<unitPattern count="other">{0} kt.</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="other">{0} mg/dl</unitPattern>
@@ -8846,9 +8845,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -8970,9 +8969,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tn</displayName>
@@ -9350,7 +9349,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>n{0}</unitPrefixPattern>
@@ -9484,7 +9483,7 @@
<unitPattern count="one">{0}ac</unitPattern>
<unitPattern count="other">{0}ac</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName draft="unconfirmed">mg/dL</displayName>
<unitPattern count="one" draft="unconfirmed">{0}mg/dL</unitPattern>
<unitPattern count="other" draft="unconfirmed">{0}mg/dL</unitPattern>
@@ -9649,7 +9648,7 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName draft="contributed">µm</displayName>
+ <displayName draft="contributed">μm</displayName>
<unitPattern count="one" draft="contributed">{0}μm</unitPattern>
<unitPattern count="other" draft="contributed">{0}μm</unitPattern>
</unit>
diff --git a/common/main/de.xml b/common/main/de.xml
index 920aa1a..0a74cca 100644
--- a/common/main/de.xml
+++ b/common/main/de.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -480,7 +480,6 @@
<language type="ro_MD">Moldauisch</language>
<language type="rof">Rombo</language>
<language type="rom">Romani</language>
- <language type="root">Root</language>
<language type="rtm">Rotumanisch</language>
<language type="ru">Russisch</language>
<language type="rue">Russinisch</language>
@@ -3514,9 +3513,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Koordinierte Weltzeit</standard>
@@ -3636,12 +3632,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -4674,6 +4670,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -7688,7 +7687,7 @@
<displayName>CFA-Franc (BCEAO)</displayName>
<displayName count="one">CFA-Franc (BCEAO)</displayName>
<displayName count="other">CFA-Francs (BCEAO)</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>Unze Palladium</displayName>
@@ -8161,7 +8160,7 @@
<unitPattern count="one">{0} Karat</unitPattern>
<unitPattern count="other">{0} Karat</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>Milligramm pro Deziliter</displayName>
<unitPattern count="one">{0} Milligramm pro Deziliter</unitPattern>
<unitPattern count="other">{0} Milligramm pro Deziliter</unitPattern>
@@ -9749,7 +9748,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -10756,7 +10755,7 @@
<unitPattern count="one" draft="contributed">{0} kt</unitPattern>
<unitPattern count="other" draft="contributed">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<unitPattern count="one" draft="unconfirmed">{0}mg/dL</unitPattern>
<unitPattern count="other" draft="unconfirmed">{0}mg/dL</unitPattern>
</unit>
@@ -10972,9 +10971,9 @@
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName draft="contributed">µm</displayName>
- <unitPattern count="one" draft="contributed">{0} µm</unitPattern>
- <unitPattern count="other" draft="contributed">{0} µm</unitPattern>
+ <displayName draft="contributed">μm</displayName>
+ <unitPattern count="one" draft="contributed">{0} μm</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName draft="contributed">nm</displayName>
@@ -11056,9 +11055,9 @@
<unitPattern count="other" draft="contributed">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName draft="contributed">µg</displayName>
- <unitPattern count="one" draft="contributed">{0} µg</unitPattern>
- <unitPattern count="other" draft="contributed">{0} µg</unitPattern>
+ <displayName draft="contributed">μg</displayName>
+ <unitPattern count="one" draft="contributed">{0} μg</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName draft="contributed">Tons</displayName>
diff --git a/common/main/de_CH.xml b/common/main/de_CH.xml
index 1a7ae38..b527e47 100644
--- a/common/main/de_CH.xml
+++ b/common/main/de_CH.xml
@@ -193,28 +193,28 @@
<units>
<unitLength type="long">
<compoundUnit type="1024p1">
- <unitPrefixPattern>kibi{0}</unitPrefixPattern>
+ <unitPrefixPattern>Kibi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p2">
- <unitPrefixPattern>mebi{0}</unitPrefixPattern>
+ <unitPrefixPattern>Mebi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p3">
- <unitPrefixPattern>gibi{0}</unitPrefixPattern>
+ <unitPrefixPattern>Gibi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p4">
- <unitPrefixPattern>tebi{0}</unitPrefixPattern>
+ <unitPrefixPattern>Tebi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p5">
- <unitPrefixPattern>pebi{0}</unitPrefixPattern>
+ <unitPrefixPattern>Pebi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p6">
- <unitPrefixPattern>exbi{0}</unitPrefixPattern>
+ <unitPrefixPattern>Exbi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p7">
- <unitPrefixPattern>zebi{0}</unitPrefixPattern>
+ <unitPrefixPattern>Zebi{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="1024p8">
- <unitPrefixPattern>yobe{0}</unitPrefixPattern>
+ <unitPrefixPattern>Yobi{0}</unitPrefixPattern>
</compoundUnit>
<unit type="area-square-foot">
<displayName>Quadratfuss</displayName>
@@ -227,7 +227,7 @@
<unitPattern count="other" case="dative">{0} Quadratfuss</unitPattern>
<unitPattern count="other" case="genitive">{0} Quadratfuss</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
</unit>
<unit type="graphics-dot">
diff --git a/common/main/dsb.xml b/common/main/dsb.xml
index 8a6aba8..517e04f 100644
--- a/common/main/dsb.xml
+++ b/common/main/dsb.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -4555,7 +4555,7 @@
<displayName count="two">CFA-franka (BCEAO)</displayName>
<displayName count="few">CFA-franki (BCEAO)</displayName>
<displayName count="other">CFA-frankow (BCEAO)</displayName>
- <symbol>CFA</symbol>
+ <symbol>F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>CFP-frank</displayName>
@@ -5938,11 +5938,11 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="two">{0} µg</unitPattern>
- <unitPattern count="few">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="two">{0} μg</unitPattern>
+ <unitPattern count="few">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>am.tony</displayName>
diff --git a/common/main/dz.xml b/common/main/dz.xml
index 979eed5..9185426 100644
--- a/common/main/dz.xml
+++ b/common/main/dz.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -2630,7 +2630,7 @@
</currency>
</currencies>
<minimalPairs>
- <pluralMinimalPairs count="other">ཉིནམ་ {0} </pluralMinimalPairs>
+ <pluralMinimalPairs count="other">ཉིནམ་ {0}</pluralMinimalPairs>
</minimalPairs>
</numbers>
<units>
diff --git a/common/main/ee.xml b/common/main/ee.xml
index 3071d14..4e0bacc 100644
--- a/common/main/ee.xml
+++ b/common/main/ee.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -2287,9 +2287,6 @@
<regionFormat type="daylight">{0} kele gaƒoƒo me</regionFormat>
<regionFormat type="standard">{0} nutome gaƒoƒo me</regionFormat>
<fallbackFormat>{1} ({0})</fallbackFormat>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Xexeme gaƒoƒoɖoanyi me</standard>
@@ -2409,12 +2406,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -3444,6 +3441,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
diff --git a/common/main/el.xml b/common/main/el.xml
index e04dea7..66a06f4 100644
--- a/common/main/el.xml
+++ b/common/main/el.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -417,7 +417,6 @@
<language type="ro_MD">Μολδαβικά</language>
<language type="rof">Ρόμπο</language>
<language type="rom">Ρομανί</language>
- <language type="root">Ρίζα</language>
<language type="ru">Ρωσικά</language>
<language type="rup">Αρομανικά</language>
<language type="rw">Κινιαρουάντα</language>
@@ -3400,9 +3399,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Σάντα Ιζαμπέλ</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Χονολουλού</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Συντονισμένη Παγκόσμια Ώρα</standard>
@@ -3522,12 +3518,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Μπρόκεν Χιλ</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Κάρι</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Μελβούρνη</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Κάρι</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Χόμπαρτ</exemplarCity>
</zone>
@@ -4560,6 +4556,9 @@
<zone type="America/Nome">
<exemplarCity>Νόμε</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Χονολουλού</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Τζόνστον</exemplarCity>
</zone>
@@ -7354,7 +7353,7 @@
<displayName>Φράγκο CFA Δυτικής Αφρικής</displayName>
<displayName count="one">φράγκο CFA Δυτικής Αφρικής</displayName>
<displayName count="other">φράγκα CFA Δυτικής Αφρικής</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>Φράγκο CFP</displayName>
@@ -7659,7 +7658,7 @@
<unitPattern count="one">{0} καράτι</unitPattern>
<unitPattern count="other">{0} καράτια</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>χιλιοστόγραμμα ανά δεκατόλιτρο</displayName>
<unitPattern count="one">{0} χιλιοστόγραμμο ανά δεκατόλιτρο</unitPattern>
<unitPattern count="other">{0} χιλιοστόγραμμα ανά δεκατόλιτρο</unitPattern>
@@ -8509,7 +8508,7 @@
<unitPrefixPattern>χλστ-{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µκρ-{0}</unitPrefixPattern>
+ <unitPrefixPattern>μκρ-{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>νν-{0}</unitPrefixPattern>
@@ -8694,7 +8693,7 @@
<unitPattern count="one">{0} κρτ</unitPattern>
<unitPattern count="other">{0} κρτ</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -9041,8 +9040,8 @@
</unit>
<unit type="length-micrometer">
<displayName>μικρόμετρα</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -9164,9 +9163,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>τόνοι ΗΠΑ</displayName>
diff --git a/common/main/en.xml b/common/main/en.xml
index d82bc00..a456574 100644
--- a/common/main/en.xml
+++ b/common/main/en.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -488,7 +488,6 @@
<language type="ro_MD">Moldavian</language>
<language type="rof">Rombo</language>
<language type="rom">Romany</language>
- <language type="root">Root</language>
<language type="rtm">Rotuman</language>
<language type="ru">Russian</language>
<language type="rue">Rusyn</language>
@@ -861,7 +860,7 @@
<script type="Zzzz">Unknown Script</script>
</scripts>
<territories>
- <territory type="001">World</territory>
+ <territory type="001">world</territory>
<territory type="002">Africa</territory>
<territory type="003">North America</territory>
<territory type="005">South America</territory>
@@ -3240,13 +3239,6 @@
<regionFormat type="daylight">{0} Daylight Time</regionFormat>
<regionFormat type="standard">{0} Standard Time</regionFormat>
<fallbackFormat>{1} ({0})</fallbackFormat>
- <zone type="Pacific/Honolulu">
- <short>
- <generic>HST</generic>
- <standard>HST</standard>
- <daylight>HDT</daylight>
- </short>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Coordinated Universal Time</standard>
@@ -3293,6 +3285,13 @@
<exemplarCity>Kiev</exemplarCity>
<exemplarCity alt="formal">Kyiv</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <short>
+ <generic>HST</generic>
+ <standard>HST</standard>
+ <daylight>HDT</daylight>
+ </short>
+ </zone>
<zone type="Asia/Saigon">
<exemplarCity>Ho Chi Minh City</exemplarCity>
</zone>
@@ -6159,7 +6158,7 @@
<unitPattern count="one">{0} karat</unitPattern>
<unitPattern count="other">{0} karats</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>milligrams per deciliter</displayName>
<unitPattern count="one">{0} milligram per deciliter</unitPattern>
<unitPattern count="other">{0} milligrams per deciliter</unitPattern>
@@ -7096,7 +7095,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -7264,9 +7263,9 @@
<unitPattern count="other">{0} ms</unitPattern>
</unit>
<unit type="duration-microsecond">
- <displayName>µsecs</displayName>
- <unitPattern count="one">{0} µs</unitPattern>
- <unitPattern count="other">{0} µs</unitPattern>
+ <displayName>μsecs</displayName>
+ <unitPattern count="one">{0} μs</unitPattern>
+ <unitPattern count="other">{0} μs</unitPattern>
</unit>
<unit type="duration-nanosecond">
<displayName>nanosecs</displayName>
@@ -7432,9 +7431,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µmeters</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μmeters</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -7546,9 +7545,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tons</displayName>
@@ -7960,7 +7959,7 @@
<unitPattern count="one">{0}kt</unitPattern>
<unitPattern count="other">{0}kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0}mg/dL</unitPattern>
<unitPattern count="other">{0}mg/dL</unitPattern>
@@ -8122,8 +8121,8 @@
</unit>
<unit type="duration-microsecond">
<displayName>μsec</displayName>
- <unitPattern count="one">{0}µs</unitPattern>
- <unitPattern count="other">{0}µs</unitPattern>
+ <unitPattern count="one">{0}μs</unitPattern>
+ <unitPattern count="other">{0}μs</unitPattern>
</unit>
<unit type="duration-nanosecond">
<displayName>ns</displayName>
@@ -8296,9 +8295,9 @@
<unitPattern count="other">{0}mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0}µm</unitPattern>
- <unitPattern count="other">{0}µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0}μm</unitPattern>
+ <unitPattern count="other">{0}μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -8416,9 +8415,9 @@
<unitPattern count="other">{0}mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0}µg</unitPattern>
- <unitPattern count="other">{0}µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0}μg</unitPattern>
+ <unitPattern count="other">{0}μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>ton</displayName>
diff --git a/common/main/en_001.xml b/common/main/en_001.xml
index 0a37bec..b3a9e7d 100644
--- a/common/main/en_001.xml
+++ b/common/main/en_001.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -733,13 +733,6 @@
</field>
</fields>
<timeZoneNames>
- <zone type="Pacific/Honolulu">
- <short>
- <generic>∅∅∅</generic>
- <standard>∅∅∅</standard>
- <daylight>∅∅∅</daylight>
- </short>
- </zone>
<zone type="America/St_Barthelemy">
<exemplarCity>St Barthélemy</exemplarCity>
</zone>
@@ -758,6 +751,13 @@
<zone type="Atlantic/St_Helena">
<exemplarCity>St Helena</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <short>
+ <generic>∅∅∅</generic>
+ <standard>∅∅∅</standard>
+ <daylight>∅∅∅</daylight>
+ </short>
+ </zone>
<zone type="America/St_Vincent">
<exemplarCity>St Vincent</exemplarCity>
</zone>
@@ -934,7 +934,7 @@
<unitPattern count="one">{0} carat</unitPattern>
<unitPattern count="other">{0} carats</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>milligrams per decilitre</displayName>
<unitPattern count="one">{0} milligram per decilitre</unitPattern>
<unitPattern count="other">{0} milligrams per decilitre</unitPattern>
@@ -1206,7 +1206,7 @@
<unitPattern count="one">{0} ct</unitPattern>
<unitPattern count="other">{0} ct</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="other">{0} mg/dl</unitPattern>
@@ -1269,7 +1269,7 @@
<displayName>metres</displayName>
</unit>
<unit type="length-micrometer">
- <displayName>µmetres</displayName>
+ <displayName>μmetres</displayName>
</unit>
<unit type="mass-stone">
<displayName>stone</displayName>
@@ -1387,7 +1387,7 @@
<unit type="area-square-meter">
<displayName draft="contributed">metres²</displayName>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0}mg/dl</unitPattern>
<unitPattern count="other">{0}mg/dl</unitPattern>
diff --git a/common/main/en_AU.xml b/common/main/en_AU.xml
index bc29de0..26e3997 100644
--- a/common/main/en_AU.xml
+++ b/common/main/en_AU.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -482,7 +482,6 @@
<language type="ro_MD">Moldovan</language>
<language type="rof">↑↑↑</language>
<language type="rom">↑↑↑</language>
- <language type="root">↑↑↑</language>
<language type="rtm">↑↑↑</language>
<language type="ru">↑↑↑</language>
<language type="rue">↑↑↑</language>
@@ -3104,10 +3103,10 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
- <zone type="Australia/Currie">
+ <zone type="Australia/Melbourne">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
- <zone type="Australia/Melbourne">
+ <zone type="Australia/Currie">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
<zone type="Australia/Hobart">
@@ -6605,7 +6604,7 @@
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
@@ -7635,7 +7634,7 @@
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -7981,9 +7980,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µmetres</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μmetres</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -8105,9 +8104,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tons</displayName>
@@ -8570,7 +8569,7 @@
<compoundUnit type="times">
<compoundUnitPattern>↑↑↑</compoundUnitPattern>
</compoundUnit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0}mg/dL</unitPattern>
<unitPattern count="other">{0}mg/dL</unitPattern>
diff --git a/common/main/en_CA.xml b/common/main/en_CA.xml
index c2dbeb2..707c8db 100644
--- a/common/main/en_CA.xml
+++ b/common/main/en_CA.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -479,7 +479,6 @@
<language type="ro_MD">Moldovan</language>
<language type="rof">↑↑↑</language>
<language type="rom" draft="contributed">↑↑↑</language>
- <language type="root">↑↑↑</language>
<language type="rtm" draft="contributed">↑↑↑</language>
<language type="ru">↑↑↑</language>
<language type="rue" draft="contributed">↑↑↑</language>
@@ -3092,13 +3091,6 @@
<regionFormat type="daylight">{0} Daylight Saving Time</regionFormat>
<regionFormat type="standard">↑↑↑</regionFormat>
<fallbackFormat>↑↑↑</fallbackFormat>
- <zone type="Pacific/Honolulu">
- <short>
- <generic>HST</generic>
- <standard>HST</standard>
- <daylight>HDT</daylight>
- </short>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>↑↑↑</standard>
@@ -3218,10 +3210,10 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
- <zone type="Australia/Currie">
+ <zone type="Australia/Melbourne">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
- <zone type="Australia/Melbourne">
+ <zone type="Australia/Currie">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
<zone type="Australia/Hobart">
@@ -4256,6 +4248,13 @@
<zone type="America/Nome">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <short>
+ <generic>HST</generic>
+ <standard>HST</standard>
+ <daylight>HDT</daylight>
+ </short>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
@@ -6720,7 +6719,7 @@
<unitPattern count="one">{0} karat</unitPattern>
<unitPattern count="other">{0} karats</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
@@ -7755,7 +7754,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -8695,7 +8694,7 @@
<compoundUnit type="times">
<compoundUnitPattern>↑↑↑</compoundUnitPattern>
</compoundUnit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0}mg/dL</unitPattern>
<unitPattern count="other">{0}mg/dL</unitPattern>
diff --git a/common/main/en_GB.xml b/common/main/en_GB.xml
index 138bb81..1060a60 100644
--- a/common/main/en_GB.xml
+++ b/common/main/en_GB.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -470,7 +470,6 @@
<language type="ro_MD">Moldavian</language>
<language type="rof">Rombo</language>
<language type="rom">↑↑↑</language>
- <language type="root">Root</language>
<language type="rtm">↑↑↑</language>
<language type="ru">Russian</language>
<language type="rue">↑↑↑</language>
@@ -3608,12 +3607,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -7086,7 +7085,7 @@
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
@@ -8121,7 +8120,7 @@
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
diff --git a/common/main/en_IN.xml b/common/main/en_IN.xml
index d4b6bb3..a915c84 100644
--- a/common/main/en_IN.xml
+++ b/common/main/en_IN.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -481,7 +481,6 @@
<language type="ro_MD">Moldavian</language>
<language type="rof">↑↑↑</language>
<language type="rom">↑↑↑</language>
- <language type="root">↑↑↑</language>
<language type="rtm">↑↑↑</language>
<language type="ru">↑↑↑</language>
<language type="rue">↑↑↑</language>
@@ -3093,10 +3092,10 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
- <zone type="Australia/Currie">
+ <zone type="Australia/Melbourne">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
- <zone type="Australia/Melbourne">
+ <zone type="Australia/Currie">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
<zone type="Australia/Hobart">
@@ -6560,7 +6559,7 @@
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
@@ -7595,7 +7594,7 @@
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
diff --git a/common/main/eo.xml b/common/main/eo.xml
index 6b8085b..81105c8 100644
--- a/common/main/eo.xml
+++ b/common/main/eo.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -1839,9 +1839,9 @@
<unitPattern count="other" draft="unconfirmed">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName draft="unconfirmed">µm</displayName>
- <unitPattern count="one" draft="unconfirmed">{0} µm</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0} µm</unitPattern>
+ <displayName draft="unconfirmed">μm</displayName>
+ <unitPattern count="one" draft="unconfirmed">{0} μm</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName draft="unconfirmed">nm</displayName>
@@ -1977,9 +1977,9 @@
<unitPattern count="other" draft="unconfirmed">{0}mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName draft="unconfirmed">µm</displayName>
- <unitPattern count="one" draft="unconfirmed">{0}µm</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0}µm</unitPattern>
+ <displayName draft="unconfirmed">μm</displayName>
+ <unitPattern count="one" draft="unconfirmed">{0}μm</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0}μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName draft="unconfirmed">nm</displayName>
diff --git a/common/main/es.xml b/common/main/es.xml
index aa56edd..62a4a44 100644
--- a/common/main/es.xml
+++ b/common/main/es.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -422,7 +422,6 @@
<language type="ro_MD">moldavo</language>
<language type="rof">rombo</language>
<language type="rom">romaní</language>
- <language type="root">raíz</language>
<language type="ru">ruso</language>
<language type="rup">arrumano</language>
<language type="rw">kinyarwanda</language>
@@ -3494,9 +3493,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulú</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>tiempo universal coordinado</standard>
@@ -3616,12 +3612,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -4654,6 +4650,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulú</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -7723,7 +7722,7 @@
<unitPattern count="one">{0} quilate</unitPattern>
<unitPattern count="other">{0} quilates</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>miligramos por decilitro</displayName>
<unitPattern count="one">{0} miligramo por decilitro</unitPattern>
<unitPattern count="other">{0} miligramos por decilitro</unitPattern>
@@ -8654,7 +8653,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>n{0}</unitPrefixPattern>
@@ -8839,7 +8838,7 @@
<unitPattern count="one">{0} ct</unitPattern>
<unitPattern count="other">{0} ct</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -9185,9 +9184,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -9309,9 +9308,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tc</displayName>
@@ -9689,7 +9688,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>n{0}</unitPrefixPattern>
@@ -9919,9 +9918,9 @@
<unitPattern count="other">{0}mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName draft="contributed">µm</displayName>
- <unitPattern count="one" draft="contributed">{0}µm</unitPattern>
- <unitPattern count="other" draft="contributed">{0}µm</unitPattern>
+ <displayName draft="contributed">μm</displayName>
+ <unitPattern count="one" draft="contributed">{0}μm</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName draft="contributed">nm</displayName>
diff --git a/common/main/es_419.xml b/common/main/es_419.xml
index c08e278..40b2e28 100644
--- a/common/main/es_419.xml
+++ b/common/main/es_419.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -419,7 +419,6 @@
<language type="ro_MD">moldavo</language>
<language type="rof">rombo</language>
<language type="rom">↑↑↑</language>
- <language type="root">raíz</language>
<language type="ru">ruso</language>
<language type="rup">arrumano</language>
<language type="rw">kinyarwanda</language>
@@ -2855,9 +2854,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulú</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>hora universal coordinada</standard>
@@ -2977,12 +2973,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -4015,6 +4011,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulú</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -6469,7 +6468,7 @@
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
@@ -7400,7 +7399,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>↑↑↑</unitPrefixPattern>
@@ -7585,7 +7584,7 @@
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -7931,9 +7930,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -8055,9 +8054,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>ton</displayName>
@@ -8435,7 +8434,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>↑↑↑</unitPrefixPattern>
@@ -8637,8 +8636,8 @@
</unit>
<unit type="length-micrometer">
<displayName>↑↑↑</displayName>
- <unitPattern count="one" draft="contributed">{0}µm</unitPattern>
- <unitPattern count="other" draft="contributed">{0}µm</unitPattern>
+ <unitPattern count="one" draft="contributed">{0}μm</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>↑↑↑</displayName>
@@ -8712,9 +8711,9 @@
<unitPattern count="other" draft="contributed">{0}mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName draft="contributed">µg</displayName>
- <unitPattern count="one" draft="contributed">{0}µg</unitPattern>
- <unitPattern count="other" draft="contributed">{0}µg</unitPattern>
+ <displayName draft="contributed">μg</displayName>
+ <unitPattern count="one" draft="contributed">{0}μg</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName draft="contributed">ton</displayName>
diff --git a/common/main/es_GT.xml b/common/main/es_GT.xml
index 6009ce6..4ce4b46 100644
--- a/common/main/es_GT.xml
+++ b/common/main/es_GT.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -240,10 +240,10 @@
<pattern type="100000000" count="other" draft="contributed">¤000M</pattern>
<pattern type="1000000000" count="one" draft="contributed">¤0000M</pattern>
<pattern type="1000000000" count="other" draft="contributed">¤0000M</pattern>
- <pattern type="10000000000" count="one" draft="contributed">¤00MRD </pattern>
- <pattern type="10000000000" count="other" draft="contributed">¤00MRD </pattern>
- <pattern type="100000000000" count="one" draft="contributed">¤000MRD </pattern>
- <pattern type="100000000000" count="other" draft="contributed">¤000MRD </pattern>
+ <pattern type="10000000000" count="one" draft="contributed">¤00MRD</pattern>
+ <pattern type="10000000000" count="other" draft="contributed">¤00MRD</pattern>
+ <pattern type="100000000000" count="one" draft="contributed">¤000MRD</pattern>
+ <pattern type="100000000000" count="other" draft="contributed">¤000MRD</pattern>
</currencyFormat>
</currencyFormatLength>
<unitPattern count="one" draft="contributed">{1} {0}</unitPattern>
diff --git a/common/main/es_MX.xml b/common/main/es_MX.xml
index c939ec4..6fa016e 100644
--- a/common/main/es_MX.xml
+++ b/common/main/es_MX.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -419,7 +419,6 @@
<language type="ro_MD">↑↑↑</language>
<language type="rof">↑↑↑</language>
<language type="rom">↑↑↑</language>
- <language type="root">↑↑↑</language>
<language type="ru">↑↑↑</language>
<language type="rup">↑↑↑</language>
<language type="rw">kinyarwanda</language>
@@ -2495,9 +2494,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>hora universal coordinada</standard>
@@ -2617,10 +2613,10 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
- <zone type="Australia/Currie">
+ <zone type="Australia/Melbourne">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
- <zone type="Australia/Melbourne">
+ <zone type="Australia/Currie">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
<zone type="Australia/Hobart">
@@ -3655,6 +3651,9 @@
<zone type="America/Nome">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
@@ -6101,7 +6100,7 @@
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>miligramos por decilitro</displayName>
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
@@ -7217,7 +7216,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
diff --git a/common/main/es_US.xml b/common/main/es_US.xml
index 44973fa..b65f610 100644
--- a/common/main/es_US.xml
+++ b/common/main/es_US.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -421,7 +421,6 @@
<language type="ro_MD">↑↑↑</language>
<language type="rof">↑↑↑</language>
<language type="rom">↑↑↑</language>
- <language type="root">↑↑↑</language>
<language type="ru">↑↑↑</language>
<language type="rup">↑↑↑</language>
<language type="rw" draft="contributed">kinyarwanda</language>
@@ -2522,14 +2521,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <short>
- <generic>HST</generic>
- <standard>HST</standard>
- <daylight>HDT</daylight>
- </short>
- <exemplarCity draft="contributed">Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>hora universal coordinada</standard>
@@ -2649,10 +2640,10 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
- <zone type="Australia/Currie">
+ <zone type="Australia/Melbourne">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
- <zone type="Australia/Melbourne">
+ <zone type="Australia/Currie">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
<zone type="Australia/Hobart">
@@ -3687,6 +3678,14 @@
<zone type="America/Nome">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <short>
+ <generic>HST</generic>
+ <standard>HST</standard>
+ <daylight>HDT</daylight>
+ </short>
+ <exemplarCity draft="contributed">Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
@@ -6164,7 +6163,7 @@
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>miligramos por decilitro</displayName>
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
@@ -7280,7 +7279,7 @@
<unitPattern count="one" draft="contributed">↑↑↑</unitPattern>
<unitPattern count="other" draft="contributed">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
diff --git a/common/main/et.xml b/common/main/et.xml
index 16887ca..2ccfe08 100644
--- a/common/main/et.xml
+++ b/common/main/et.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -2931,9 +2931,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Koordineeritud maailmaaeg</standard>
@@ -3053,12 +3050,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -4091,6 +4088,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -6833,7 +6833,7 @@
<displayName>Lääne-Aafrika CFA frank</displayName>
<displayName count="one">Lääne-Aafrika CFA frank</displayName>
<displayName count="other">Lääne-Aafrika CFA franki</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>pallaadium</displayName>
@@ -7127,7 +7127,7 @@
<unitPattern count="one">{0} karaat</unitPattern>
<unitPattern count="other">{0} karaati</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>milligrammid detsiliitri kohta</displayName>
<unitPattern count="one">{0} milligramm detsiliitri kohta</unitPattern>
<unitPattern count="other">{0} milligrammi detsiliitri kohta</unitPattern>
@@ -8162,7 +8162,7 @@
<unitPattern count="one">{0} ct</unitPattern>
<unitPattern count="other">{0} ct</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="other">{0} mg/dl</unitPattern>
@@ -8508,9 +8508,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -8632,9 +8632,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>lüh t</displayName>
diff --git a/common/main/eu.xml b/common/main/eu.xml
index 2c9c199..0fbfb9a 100644
--- a/common/main/eu.xml
+++ b/common/main/eu.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -320,7 +320,6 @@
<language type="ro">errumaniera</language>
<language type="ro_MD">moldaviera</language>
<language type="rof">rombo</language>
- <language type="root">erroa</language>
<language type="ru">errusiera</language>
<language type="rup">aromaniera</language>
<language type="rw">kinyaruanda</language>
@@ -2461,9 +2460,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>ordu unibertsal koordinatua</standard>
@@ -2583,12 +2579,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -3621,6 +3617,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -5868,7 +5867,7 @@
<displayName>Afrika mendebaldeko CFA frankoa</displayName>
<displayName count="one">Afrika mendebaldeko CFA franko</displayName>
<displayName count="other">Afrika mendebaldeko CFA franko</displayName>
- <symbol>CFA</symbol>
+ <symbol>F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>CFP frankoa</displayName>
@@ -6114,7 +6113,7 @@
<unitPattern count="one">{0} kilate</unitPattern>
<unitPattern count="other">{0} kilate</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>miligramo dezilitro bakoitzeko</displayName>
<unitPattern count="one">{0} miligramo dezilitro bakoitzeko</unitPattern>
<unitPattern count="other">{0} miligramo dezilitro bakoitzeko</unitPattern>
@@ -7052,7 +7051,7 @@
<compoundUnitPattern1 count="other">↑↑↑</compoundUnitPattern1>
</compoundUnit>
<compoundUnit type="times">
- <compoundUnitPattern>{0}{1}</compoundUnitPattern>
+ <compoundUnitPattern>{0}-{1}</compoundUnitPattern>
</compoundUnit>
<unit type="acceleration-g-force">
<displayName>G</displayName>
@@ -7149,7 +7148,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="other">{0} mg/dl</unitPattern>
@@ -7495,9 +7494,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -7619,9 +7618,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>AEBko tona</displayName>
@@ -8087,7 +8086,7 @@
<compoundUnitPattern1 count="other">↑↑↑</compoundUnitPattern1>
</compoundUnit>
<compoundUnit type="times">
- <compoundUnitPattern>{0}{1}</compoundUnitPattern>
+ <compoundUnitPattern>{0}-{1}</compoundUnitPattern>
</compoundUnit>
<unit type="acceleration-g-force">
<unitPattern count="one">{0} G</unitPattern>
diff --git a/common/main/fa.xml b/common/main/fa.xml
index 8bf732d..06ce385 100644
--- a/common/main/fa.xml
+++ b/common/main/fa.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -419,7 +419,6 @@
<language type="ro_MD">مولداویایی</language>
<language type="rof">رومبویی</language>
<language type="rom">رومانویی</language>
- <language type="root">ریشه</language>
<language type="ru">روسی</language>
<language type="rup">آرومانی</language>
<language type="rw">کینیارواندایی</language>
@@ -3745,9 +3744,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>سانتا ایزابل</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>هونولولو</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>زمان هماهنگ جهانی</standard>
@@ -3867,12 +3863,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>بروکنهیل</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>کوری</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>ملبورن</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>کوری</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>هوبارت</exemplarCity>
</zone>
@@ -4905,6 +4901,9 @@
<zone type="America/Nome">
<exemplarCity>نوم</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>هونولولو</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>جانستون</exemplarCity>
</zone>
@@ -7522,7 +7521,7 @@
<displayName>فرانک CFA غرب افریقا</displayName>
<displayName count="one">فرانک CFA غرب افریقا</displayName>
<displayName count="other">فرانک CFA غرب افریقا</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>پالادیم</displayName>
@@ -7795,7 +7794,7 @@
<unitPattern count="one">{0} عیار</unitPattern>
<unitPattern count="other">{0} عیار</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>میلیگرم در دسیلیتر</displayName>
<unitPattern count="one">{0} میلیگرم در دسیلیتر</unitPattern>
<unitPattern count="other">{0} میلیگرم در دسیلیتر</unitPattern>
@@ -8830,7 +8829,7 @@
<unitPattern count="one">{0} عیار</unitPattern>
<unitPattern count="other">{0} عیار</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>میلیگرم در دسیلیتر</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -9943,8 +9942,8 @@
<unitPattern count="other">{0}mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <unitPattern count="one" draft="contributed">{0}µm</unitPattern>
- <unitPattern count="other" draft="contributed">{0}µm</unitPattern>
+ <unitPattern count="one" draft="contributed">{0}μm</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName draft="contributed">نانومتر</displayName>
diff --git a/common/main/fa_AF.xml b/common/main/fa_AF.xml
index 543b7c6..da28559 100644
--- a/common/main/fa_AF.xml
+++ b/common/main/fa_AF.xml
@@ -286,7 +286,6 @@
<language type="rn">↑↑↑</language>
<language type="ro">↑↑↑</language>
<language type="rof">↑↑↑</language>
- <language type="root">↑↑↑</language>
<language type="ru">↑↑↑</language>
<language type="rup">↑↑↑</language>
<language type="rw">↑↑↑</language>
diff --git a/common/main/ff_Adlm.xml b/common/main/ff_Adlm.xml
index 1477b78..053cb28 100644
--- a/common/main/ff_Adlm.xml
+++ b/common/main/ff_Adlm.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -2232,12 +2232,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>𞤄𞤪𞤮𞤳𞤭𞤲-𞤖𞤭𞥅𞤤</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>𞤑𞤵𞥅𞤪𞤭𞥅</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>𞤃𞤫𞤤𞤦𞤵𞥅𞤪𞤲𞤵</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>𞤑𞤵𞥅𞤪𞤭𞥅</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>𞤖𞤵𞥅𞤦𞤢𞤪𞤼𞤵</exemplarCity>
</zone>
@@ -5590,7 +5590,7 @@
<unitPattern count="one">{0} 𞤣𞤵𞥅𞤲𞤢𞤥𞤵</unitPattern>
<unitPattern count="other">{0} 𞤣𞤵𞥅𞤲𞤢𞤥𞤭</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>𞤥𞤭𞤤𞤭𞤺𞤢𞤪𞤬𞤭 𞤲𞤣𞤫𞤪 𞤣𞤫𞥅𞤧𞤭𞤤𞤭𞥅𞤼𞤵</displayName>
</unit>
<unit type="digital-petabyte">
diff --git a/common/main/fi.xml b/common/main/fi.xml
index 6832d96..73a6256 100644
--- a/common/main/fi.xml
+++ b/common/main/fi.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -483,7 +483,6 @@
<language type="ro_MD">moldova</language>
<language type="rof">rombo</language>
<language type="rom">romani</language>
- <language type="root">juuri</language>
<language type="rtm">rotuma</language>
<language type="ru">venäjä</language>
<language type="rue">ruteeni</language>
@@ -3642,9 +3641,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>UTC-yleisaika</standard>
@@ -3767,12 +3763,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -4809,6 +4805,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -7825,7 +7824,7 @@
<displayName>CFA-frangi BCEAO</displayName>
<displayName count="one">CFA-frangi BCEAO</displayName>
<displayName count="other">CFA-frangia BCEAO</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>palladium</displayName>
@@ -8177,7 +8176,7 @@
<unitPattern count="one">{0} karaatti</unitPattern>
<unitPattern count="other">{0} karaattia</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="other">{0} mg/dl</unitPattern>
@@ -9212,7 +9211,7 @@
<unitPattern count="one">{0} ka</unitPattern>
<unitPattern count="other">{0} ka</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="other">{0} mg/dl</unitPattern>
@@ -9558,9 +9557,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -9682,9 +9681,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>am. tn</displayName>
@@ -10247,7 +10246,7 @@
<unitPattern count="one">{0}ka</unitPattern>
<unitPattern count="other">{0}ka</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0}mg/dl</unitPattern>
<unitPattern count="other">{0}mg/dl</unitPattern>
@@ -10583,9 +10582,9 @@
<unitPattern count="other">{0}mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0}µm</unitPattern>
- <unitPattern count="other">{0}µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0}μm</unitPattern>
+ <unitPattern count="other">{0}μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -10697,7 +10696,7 @@
<unitPattern count="other">{0}mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
+ <displayName>μg</displayName>
<unitPattern count="one">{0}μg</unitPattern>
<unitPattern count="other">{0}μg</unitPattern>
</unit>
diff --git a/common/main/fil.xml b/common/main/fil.xml
index fd10134..76df35f 100644
--- a/common/main/fil.xml
+++ b/common/main/fil.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -324,7 +324,6 @@
<language type="ro">Romanian</language>
<language type="ro_MD">Moldavian</language>
<language type="rof">Rombo</language>
- <language type="root">Root</language>
<language type="ru">Russian</language>
<language type="rup">Aromanian</language>
<language type="rw">Kinyarwanda</language>
@@ -4506,9 +4505,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Coordinated Universal Time</standard>
@@ -4628,12 +4624,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -5666,6 +5662,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -7903,7 +7902,7 @@
<displayName>CFA Franc ng Kanlurang Africa</displayName>
<displayName count="one">CFA franc ng Kanlurang Africa</displayName>
<displayName count="other">CFA francs ng Kanlurang Africa</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>CFP Franc</displayName>
@@ -8148,7 +8147,7 @@
<unitPattern count="one">{0} karat</unitPattern>
<unitPattern count="other">{0} na karat</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} milligram per deciliter</unitPattern>
<unitPattern count="other">{0} milligrams per deciliter</unitPattern>
@@ -8998,7 +8997,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>n{0}</unitPrefixPattern>
@@ -9183,7 +9182,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -9529,9 +9528,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µmetro</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μmetro</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -9653,9 +9652,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tonelada</displayName>
@@ -10033,7 +10032,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>n{0}</unitPrefixPattern>
@@ -10257,9 +10256,9 @@
<unitPattern count="other">{0}mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName draft="contributed">µmetro</displayName>
- <unitPattern count="one" draft="contributed">{0} µm</unitPattern>
- <unitPattern count="other" draft="contributed">{0} µm</unitPattern>
+ <displayName draft="contributed">μmetro</displayName>
+ <unitPattern count="one" draft="contributed">{0} μm</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName draft="contributed">nm</displayName>
@@ -10351,9 +10350,9 @@
<unitPattern count="other" draft="contributed">{0}mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName draft="contributed">µg</displayName>
- <unitPattern count="one" draft="contributed">{0}µg</unitPattern>
- <unitPattern count="other" draft="contributed">{0}µg</unitPattern>
+ <displayName draft="contributed">μg</displayName>
+ <unitPattern count="one" draft="contributed">{0}μg</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName draft="contributed">ton</displayName>
diff --git a/common/main/fo.xml b/common/main/fo.xml
index 85de2b6..047627a 100644
--- a/common/main/fo.xml
+++ b/common/main/fo.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -2359,9 +2359,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Samskipað heimstíð</standard>
@@ -2481,12 +2478,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -3519,6 +3516,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -5708,7 +5708,7 @@
<displayName>Vesturafrika CFA frankur</displayName>
<displayName count="one">Vesturafrika CFA frankur</displayName>
<displayName count="other">Vesturafrika CFA frankar</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName draft="contributed">unse palladium</displayName>
@@ -5959,7 +5959,7 @@
<unitPattern count="one">{0} karat</unitPattern>
<unitPattern count="other">{0} karat</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>milligramm fyri hvønn desilitur</displayName>
<unitPattern count="one">{0} milligramm fyri hvønn desilitur</unitPattern>
<unitPattern count="other">{0} milligramm fyri hvønn desilitur</unitPattern>
@@ -6992,7 +6992,7 @@
<unitPattern count="one">{0} karat</unitPattern>
<unitPattern count="other">{0} karat</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="other">{0} mg/dl</unitPattern>
@@ -7338,9 +7338,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -7462,9 +7462,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>stutt t</displayName>
@@ -7958,7 +7958,7 @@
<unitPattern count="one" draft="contributed">{0}m²</unitPattern>
<unitPattern count="other" draft="contributed">{0}m²</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName draft="unconfirmed">mg/dL</displayName>
<unitPattern count="one" draft="unconfirmed">{0}mg/dL</unitPattern>
<unitPattern count="other" draft="unconfirmed">{0}mg/dL</unitPattern>
diff --git a/common/main/fr.xml b/common/main/fr.xml
index 16dbf74..6ac78a0 100644
--- a/common/main/fr.xml
+++ b/common/main/fr.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -169,9 +169,7 @@
<language type="en_AU">anglais australien</language>
<language type="en_CA">anglais canadien</language>
<language type="en_GB">anglais britannique</language>
- <language type="en_GB" alt="short">anglais (R.-U.)</language>
<language type="en_US">anglais américain</language>
- <language type="en_US" alt="short">anglais (É.-U.)</language>
<language type="enm">moyen anglais</language>
<language type="eo">espéranto</language>
<language type="es">espagnol</language>
@@ -481,7 +479,6 @@
<language type="ro_MD">moldave</language>
<language type="rof">rombo</language>
<language type="rom">romani</language>
- <language type="root">racine</language>
<language type="rtm">rotuman</language>
<language type="ru">russe</language>
<language type="rue">ruthène</language>
@@ -5151,14 +5148,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <short>
- <generic draft="unconfirmed">HT</generic>
- <standard draft="unconfirmed">HST</standard>
- <daylight draft="unconfirmed">HDT</daylight>
- </short>
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Temps universel coordonné</standard>
@@ -5281,12 +5270,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -6319,6 +6308,14 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <short>
+ <generic draft="unconfirmed">HT</generic>
+ <standard draft="unconfirmed">HST</standard>
+ <daylight draft="unconfirmed">HDT</daylight>
+ </short>
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -9576,7 +9573,7 @@
<displayName>franc CFA (BCEAO)</displayName>
<displayName count="one">franc CFA (BCEAO)</displayName>
<displayName count="other">francs CFA (BCEAO)</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>palladium</displayName>
@@ -9942,7 +9939,7 @@
<unitPattern count="one">{0} carat</unitPattern>
<unitPattern count="other">{0} carats</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>milligrammes par décilitre</displayName>
<unitPattern count="one">{0} milligramme par décilitre</unitPattern>
<unitPattern count="other">{0} milligrammes par décilitre</unitPattern>
@@ -10945,7 +10942,7 @@
<compoundUnitPattern1 count="other">↑↑↑</compoundUnitPattern1>
</compoundUnit>
<compoundUnit type="times">
- <compoundUnitPattern>{0}{1}</compoundUnitPattern>
+ <compoundUnitPattern>{0}-{1}</compoundUnitPattern>
</compoundUnit>
<unit type="acceleration-g-force">
<displayName>force g</displayName>
@@ -11042,7 +11039,7 @@
<unitPattern count="one">{0} ct</unitPattern>
<unitPattern count="other">{0} ct</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="other">{0} mg/dl</unitPattern>
@@ -11388,9 +11385,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -11512,9 +11509,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>sh tn</displayName>
@@ -11980,7 +11977,7 @@
<compoundUnitPattern1 count="other">↑↑↑</compoundUnitPattern1>
</compoundUnit>
<compoundUnit type="times">
- <compoundUnitPattern>{0}{1}</compoundUnitPattern>
+ <compoundUnitPattern>{0}-{1}</compoundUnitPattern>
</compoundUnit>
<unit type="acceleration-g-force">
<displayName draft="contributed">G</displayName>
@@ -12075,7 +12072,7 @@
<unitPattern count="one" draft="unconfirmed">{0}ct</unitPattern>
<unitPattern count="other" draft="unconfirmed">{0}ct</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName draft="unconfirmed">mg/dl</displayName>
<unitPattern count="one" draft="unconfirmed">{0}mg/dl</unitPattern>
<unitPattern count="other" draft="unconfirmed">{0}mg/dl</unitPattern>
@@ -12360,7 +12357,7 @@
<unitPattern count="other">{0}mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName draft="contributed">µm</displayName>
+ <displayName draft="contributed">μm</displayName>
</unit>
<unit type="length-nanometer">
<displayName draft="contributed">nm</displayName>
@@ -12455,7 +12452,7 @@
<displayName draft="contributed">mg</displayName>
</unit>
<unit type="mass-microgram">
- <displayName draft="contributed">µg</displayName>
+ <displayName draft="contributed">μg</displayName>
</unit>
<unit type="mass-ton">
<displayName>sh tn</displayName>
diff --git a/common/main/fr_CA.xml b/common/main/fr_CA.xml
index b1a4140..ca85e35 100644
--- a/common/main/fr_CA.xml
+++ b/common/main/fr_CA.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -479,7 +479,6 @@
<language type="ro_MD">moldave</language>
<language type="rof">rombo</language>
<language type="rom">↑↑↑</language>
- <language type="root">↑↑↑</language>
<language type="rtm">↑↑↑</language>
<language type="ru">russe</language>
<language type="rue">↑↑↑</language>
@@ -3331,9 +3330,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>temps universel coordonné</standard>
@@ -3453,12 +3449,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -4491,6 +4487,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -7013,7 +7012,7 @@
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
@@ -8113,7 +8112,7 @@
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
@@ -8459,9 +8458,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -8584,8 +8583,8 @@
</unit>
<unit type="mass-microgram">
<displayName>↑↑↑</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tc</displayName>
@@ -9127,8 +9126,8 @@
</unit>
<unit type="duration-microsecond">
<displayName>↑↑↑</displayName>
- <unitPattern count="one" draft="contributed">{0}µs</unitPattern>
- <unitPattern count="other" draft="contributed">{0}µs</unitPattern>
+ <unitPattern count="one" draft="contributed">{0}μs</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}μs</unitPattern>
</unit>
<unit type="duration-nanosecond">
<displayName>↑↑↑</displayName>
@@ -9165,8 +9164,8 @@
</unit>
<unit type="length-micrometer">
<displayName>↑↑↑</displayName>
- <unitPattern count="one" draft="contributed">{0}µm</unitPattern>
- <unitPattern count="other" draft="contributed">{0}µm</unitPattern>
+ <unitPattern count="one" draft="contributed">{0}μm</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>↑↑↑</displayName>
@@ -9254,8 +9253,8 @@
</unit>
<unit type="mass-microgram">
<displayName>↑↑↑</displayName>
- <unitPattern count="one" draft="contributed">{0}µg</unitPattern>
- <unitPattern count="other" draft="contributed">{0}µg</unitPattern>
+ <unitPattern count="one" draft="contributed">{0}μg</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName draft="contributed">tc</displayName>
diff --git a/common/main/fy.xml b/common/main/fy.xml
index 375799b..8a6f37a 100644
--- a/common/main/fy.xml
+++ b/common/main/fy.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -397,7 +397,6 @@
<language type="ro_MD" draft="contributed">Moldavysk</language>
<language type="rof" draft="contributed">Rombo</language>
<language type="rom" draft="contributed">Romani</language>
- <language type="root" draft="contributed">Root</language>
<language type="ru" draft="contributed">Russysk</language>
<language type="rup" draft="contributed">Aromaniaansk</language>
<language type="rw" draft="contributed">Kinyarwanda</language>
@@ -6113,7 +6112,7 @@
<displayName draft="contributed">CFA-franc BCEAO</displayName>
<displayName count="one" draft="contributed">CFA-franc BCEAO</displayName>
<displayName count="other" draft="contributed">CFA-franc BCEAO</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName draft="contributed">Palladium</displayName>
diff --git a/common/main/ga.xml b/common/main/ga.xml
index 4a95cef..bc44731 100644
--- a/common/main/ga.xml
+++ b/common/main/ga.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -299,7 +299,6 @@
<language type="ro_MD">Moldáivis</language>
<language type="rof">Rombo</language>
<language type="rom">Romainis</language>
- <language type="root" draft="contributed">Root</language>
<language type="ru">Rúisis</language>
<language type="rup">Arómáinis</language>
<language type="rw">Ciniaruaindis</language>
@@ -2987,9 +2986,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Am Uilíoch Lárnach</standard>
@@ -3109,12 +3105,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -4153,6 +4149,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -8413,7 +8412,7 @@
<unitPattern count="many">{0} gcarat óir</unitPattern>
<unitPattern count="other">{0} carat óir</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>milleagraim sa deicilítear</displayName>
<unitPattern count="one">{0} mhilleagram sa deicilítear</unitPattern>
<unitPattern count="two">{0} mhilleagram sa deicilítear</unitPattern>
@@ -9749,7 +9748,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>n{0}</unitPrefixPattern>
@@ -9994,7 +9993,7 @@
<unitPattern count="many">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="two">{0} mg/dL</unitPattern>
@@ -10541,12 +10540,12 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µméadair</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="two">{0} µm</unitPattern>
- <unitPattern count="few">{0} µm</unitPattern>
- <unitPattern count="many">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μméadair</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="two">{0} μm</unitPattern>
+ <unitPattern count="few">{0} μm</unitPattern>
+ <unitPattern count="many">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -10737,12 +10736,12 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="two">{0} µg</unitPattern>
- <unitPattern count="few">{0} µg</unitPattern>
- <unitPattern count="many">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="two">{0} μg</unitPattern>
+ <unitPattern count="few">{0} μg</unitPattern>
+ <unitPattern count="many">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tonnaí gearra</displayName>
@@ -11330,7 +11329,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>n{0}</unitPrefixPattern>
@@ -11567,7 +11566,7 @@
<unitPattern count="many">{0}kt</unitPattern>
<unitPattern count="other">{0}kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="two">{0} mg/dL</unitPattern>
@@ -11962,12 +11961,12 @@
<unitPattern count="other">{0}mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0}µm</unitPattern>
- <unitPattern count="two">{0}µm</unitPattern>
- <unitPattern count="few">{0}µm</unitPattern>
- <unitPattern count="many">{0}µm</unitPattern>
- <unitPattern count="other">{0}µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0}μm</unitPattern>
+ <unitPattern count="two">{0}μm</unitPattern>
+ <unitPattern count="few">{0}μm</unitPattern>
+ <unitPattern count="many">{0}μm</unitPattern>
+ <unitPattern count="other">{0}μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -12126,12 +12125,12 @@
<unitPattern count="other">{0}mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0}µg</unitPattern>
- <unitPattern count="two">{0}µg</unitPattern>
- <unitPattern count="few">{0}µg</unitPattern>
- <unitPattern count="many">{0}µg</unitPattern>
- <unitPattern count="other">{0}µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0}μg</unitPattern>
+ <unitPattern count="two">{0}μg</unitPattern>
+ <unitPattern count="few">{0}μg</unitPattern>
+ <unitPattern count="many">{0}μg</unitPattern>
+ <unitPattern count="other">{0}μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tonnaí gearra</displayName>
diff --git a/common/main/gd.xml b/common/main/gd.xml
index 4d4a271..db7265d 100644
--- a/common/main/gd.xml
+++ b/common/main/gd.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -467,7 +467,6 @@
<language type="ro_MD">Moldobhais</language>
<language type="rof">Rombo</language>
<language type="rom">Romanais</language>
- <language type="root">Root</language>
<language type="ru">Ruisis</language>
<language type="rue">Rusyn</language>
<language type="rug">Roviana</language>
@@ -4228,14 +4227,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <short>
- <generic>HST</generic>
- <standard>HST</standard>
- <daylight>HDT</daylight>
- </short>
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Àm Uile-choitcheann Co-òrdanaichte</standard>
@@ -4358,12 +4349,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -5402,6 +5393,14 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <short>
+ <generic>HST</generic>
+ <standard>HST</standard>
+ <daylight>HDT</daylight>
+ </short>
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -9919,7 +9918,7 @@
<displayName count="two">fhranc CFA Afraga an Iar</displayName>
<displayName count="few">franc CFA Afraga an Iar</displayName>
<displayName count="other">franc CFA Afraga an Iar</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>Pallaideam</displayName>
@@ -10120,7 +10119,7 @@
</miscPatterns>
<minimalPairs>
<pluralMinimalPairs count="one">{0} bhròg</pluralMinimalPairs>
- <pluralMinimalPairs count="two">{0} bhròig</pluralMinimalPairs>
+ <pluralMinimalPairs count="two">{0} bhròig</pluralMinimalPairs>
<pluralMinimalPairs count="few">{0} brògan</pluralMinimalPairs>
<pluralMinimalPairs count="other">{0} bròg</pluralMinimalPairs>
</minimalPairs>
@@ -10362,7 +10361,7 @@
<unitPattern count="few">{0} karat</unitPattern>
<unitPattern count="other">{0} karat</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>miligram san deicheamh-liotair</displayName>
<unitPattern count="one">{0} mhiligram san deicheamh-liotair</unitPattern>
<unitPattern count="two">{0} mhiligram san deicheamh-liotair</unitPattern>
@@ -11761,7 +11760,7 @@
<unitPattern count="few">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="two">{0} mg/dL</unitPattern>
@@ -12241,11 +12240,11 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µ-meatair</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="two">{0} µm</unitPattern>
- <unitPattern count="few">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μ-meatair</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="two">{0} μm</unitPattern>
+ <unitPattern count="few">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -12413,11 +12412,11 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="two">{0} µg</unitPattern>
- <unitPattern count="few">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="two">{0} μg</unitPattern>
+ <unitPattern count="few">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tunna</displayName>
@@ -13160,7 +13159,7 @@
<unitPattern count="few">{0}kt</unitPattern>
<unitPattern count="other">{0}kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0}mg/dL</unitPattern>
<unitPattern count="two">{0}mg/dL</unitPattern>
@@ -13640,11 +13639,11 @@
<unitPattern count="other">{0}mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0}µm</unitPattern>
- <unitPattern count="two">{0}µm</unitPattern>
- <unitPattern count="few">{0}µm</unitPattern>
- <unitPattern count="other">{0}µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0}μm</unitPattern>
+ <unitPattern count="two">{0}μm</unitPattern>
+ <unitPattern count="few">{0}μm</unitPattern>
+ <unitPattern count="other">{0}μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -13812,11 +13811,11 @@
<unitPattern count="other">{0}mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0}µg</unitPattern>
- <unitPattern count="two">{0}µg</unitPattern>
- <unitPattern count="few">{0}µg</unitPattern>
- <unitPattern count="other">{0}µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0}μg</unitPattern>
+ <unitPattern count="two">{0}μg</unitPattern>
+ <unitPattern count="few">{0}μg</unitPattern>
+ <unitPattern count="other">{0}μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tn</displayName>
diff --git a/common/main/gl.xml b/common/main/gl.xml
index dab4b44..a526a15 100644
--- a/common/main/gl.xml
+++ b/common/main/gl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -323,7 +323,6 @@
<language type="ro">romanés</language>
<language type="ro_MD">moldavo</language>
<language type="rof">rombo</language>
- <language type="root">raíz</language>
<language type="ru">ruso</language>
<language type="rup">aromanés</language>
<language type="rw">kiñaruanda</language>
@@ -2450,9 +2449,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulú</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Horario universal coordinado</standard>
@@ -2572,12 +2568,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -3610,6 +3606,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulú</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -6024,7 +6023,7 @@
<displayName>franco CFA (BCEAO)</displayName>
<displayName count="one">franco CFA (BCEAO)</displayName>
<displayName count="other">francos CFA (BCEAO)</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName draft="contributed">Paladio</displayName>
@@ -6276,7 +6275,7 @@
<unitPattern count="one">{0} quilate</unitPattern>
<unitPattern count="other">{0} quilates</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>miligramos por decilitro</displayName>
<unitPattern count="one">{0} miligramo por decilitro</unitPattern>
<unitPattern count="other">{0} miligramos por decilitro</unitPattern>
@@ -7126,7 +7125,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>n{0}</unitPrefixPattern>
@@ -7311,7 +7310,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="other">{0} mg/dl</unitPattern>
@@ -7657,9 +7656,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -7781,9 +7780,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tn EUA</displayName>
@@ -8161,7 +8160,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>n{0}</unitPrefixPattern>
diff --git a/common/main/gsw.xml b/common/main/gsw.xml
index 62cb8f9..2c4b06f 100644
--- a/common/main/gsw.xml
+++ b/common/main/gsw.xml
@@ -348,7 +348,6 @@
<language type="ro">Rumänisch</language>
<language type="ro_MD">Moldawisch</language>
<language type="rom">Zigüünerschpraach</language>
- <language type="root">Root</language>
<language type="ru">Russisch</language>
<language type="rup">Aromunisch</language>
<language type="rw">Ruandisch</language>
diff --git a/common/main/gu.xml b/common/main/gu.xml
index b7a1fb6..66c8ea6 100644
--- a/common/main/gu.xml
+++ b/common/main/gu.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -417,7 +417,6 @@
<language type="ro_MD">મોલડાવિયન</language>
<language type="rof">રોમ્બો</language>
<language type="rom">રોમાની</language>
- <language type="root">રૂટ</language>
<language type="ru">રશિયન</language>
<language type="rup">અરોમેનિયન</language>
<language type="rw">કિન્યારવાન્ડા</language>
@@ -3339,9 +3338,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>સાંતા ઇસાબેલ</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>હોનોલુલુ</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>સંકલિત યુનિવર્સલ સમય</standard>
@@ -3461,12 +3457,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>બ્રોકન હિલ</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>ક્યુરી</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>મેલબોર્ન</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>ક્યુરી</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>હોબાર્ટ</exemplarCity>
</zone>
@@ -4499,6 +4495,9 @@
<zone type="America/Nome">
<exemplarCity>નોમ</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>હોનોલુલુ</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>જોહ્નસ્ટોન</exemplarCity>
</zone>
@@ -6820,7 +6819,7 @@
<displayName>પશ્ચિમી આફ્રિકન [CFA] ફ્રેંક</displayName>
<displayName count="one">પશ્ચિમી આફ્રિકન [CFA] ફ્રેંક</displayName>
<displayName count="other">પશ્ચિમી આફ્રિકન [CFA] ફ્રેંક્સ</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>[CFP] ફ્રેંક</displayName>
@@ -7070,7 +7069,7 @@
<unitPattern count="one">{0} કૅરેટ</unitPattern>
<unitPattern count="other">{0} કૅરેટ</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>મિલિગ્રામ પ્રતિ ડેસિલિટર</displayName>
<unitPattern count="one">{0} મિલિગ્રામ પ્રતિ ડેસિલિટર</unitPattern>
<unitPattern count="other">{0} મિલિગ્રામ પ્રતિ ડેસિલિટર</unitPattern>
@@ -8105,7 +8104,7 @@
<unitPattern count="one">{0} કૅરેટ</unitPattern>
<unitPattern count="other">{0} કૅરેટ</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -8452,8 +8451,8 @@
</unit>
<unit type="length-micrometer">
<displayName>માઇક્રોમીટર</displayName>
- <unitPattern count="one">{0} µમી</unitPattern>
- <unitPattern count="other">{0} µમી</unitPattern>
+ <unitPattern count="one">{0} μમી</unitPattern>
+ <unitPattern count="other">{0} μમી</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>નેનોમીટર</displayName>
@@ -8575,9 +8574,9 @@
<unitPattern count="other">{0} મિગ્રા</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µગ્રામ</displayName>
- <unitPattern count="one">{0} µગ્રામ</unitPattern>
- <unitPattern count="other">{0} µગ્રામ</unitPattern>
+ <displayName>μગ્રામ</displayName>
+ <unitPattern count="one">{0} μગ્રામ</unitPattern>
+ <unitPattern count="other">{0} μગ્રામ</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>ટન</displayName>
diff --git a/common/main/ha.xml b/common/main/ha.xml
index c522af4..0addb45 100644
--- a/common/main/ha.xml
+++ b/common/main/ha.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -2260,10 +2260,10 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
- <zone type="Australia/Currie">
+ <zone type="Australia/Melbourne">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
- <zone type="Australia/Melbourne">
+ <zone type="Australia/Currie">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
<zone type="Australia/Hobart">
@@ -5715,7 +5715,7 @@
<unitPattern count="one">karat {0}</unitPattern>
<unitPattern count="other">karats {0}</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>milligrams per deciliter</displayName>
<unitPattern count="one">milligram per deciliter {0}</unitPattern>
<unitPattern count="other">milligrams per deciliter {0}</unitPattern>
@@ -6730,7 +6730,7 @@
<unitPattern count="one">kt {0}</unitPattern>
<unitPattern count="other">kt {0}</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="one">mg/dL {0}</unitPattern>
<unitPattern count="other">mg/dL {0}</unitPattern>
@@ -6898,9 +6898,9 @@
<unitPattern count="other">ms {0}</unitPattern>
</unit>
<unit type="duration-microsecond">
- <displayName>µsecs</displayName>
- <unitPattern count="one">µs {0}</unitPattern>
- <unitPattern count="other">µs {0}</unitPattern>
+ <displayName>μsecs</displayName>
+ <unitPattern count="one">μs {0}</unitPattern>
+ <unitPattern count="other">μs {0}</unitPattern>
</unit>
<unit type="duration-nanosecond">
<displayName>nanoseks</displayName>
@@ -7076,9 +7076,9 @@
<unitPattern count="other">mm {0}</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µmeters</displayName>
- <unitPattern count="one">µm {0}</unitPattern>
- <unitPattern count="other">µm {0}</unitPattern>
+ <displayName>μmeters</displayName>
+ <unitPattern count="one">μm {0}</unitPattern>
+ <unitPattern count="other">μm {0}</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>↑↑↑</displayName>
@@ -7191,8 +7191,8 @@
</unit>
<unit type="mass-microgram">
<displayName>↑↑↑</displayName>
- <unitPattern count="one">µg {0}</unitPattern>
- <unitPattern count="other">µg {0}</unitPattern>
+ <unitPattern count="one">μg {0}</unitPattern>
+ <unitPattern count="other">μg {0}</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tan-tan</displayName>
diff --git a/common/main/ha_NE.xml b/common/main/ha_NE.xml
index 2947d64..7763c71 100644
--- a/common/main/ha_NE.xml
+++ b/common/main/ha_NE.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -3472,6 +3472,7 @@
</miscPatterns>
<minimalPairs>
<pluralMinimalPairs count="one" draft="contributed">rana {0}</pluralMinimalPairs>
+ <pluralMinimalPairs count="other" draft="contributed">ranaku {0}</pluralMinimalPairs>
</minimalPairs>
</numbers>
<units>
@@ -3635,7 +3636,7 @@
<unitPattern count="one">karat {0}</unitPattern>
<unitPattern count="other">karats {0}</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>milligrams per deciliter</displayName>
<unitPattern count="one">milligram per deciliter {0}</unitPattern>
<unitPattern count="other">milligrams per deciliter {0}</unitPattern>
@@ -4525,7 +4526,7 @@
<unitPattern count="one">kt {0}</unitPattern>
<unitPattern count="other">kt {0}</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<unitPattern count="one">mg/dL {0}</unitPattern>
<unitPattern count="other">mg/dL {0}</unitPattern>
</unit>
@@ -4687,9 +4688,9 @@
<unitPattern count="other">ms {0}</unitPattern>
</unit>
<unit type="duration-microsecond">
- <displayName>µsecs</displayName>
- <unitPattern count="one">µs {0}</unitPattern>
- <unitPattern count="other">µs {0}</unitPattern>
+ <displayName>μsecs</displayName>
+ <unitPattern count="one">μs {0}</unitPattern>
+ <unitPattern count="other">μs {0}</unitPattern>
</unit>
<unit type="duration-nanosecond">
<displayName>nanoseks</displayName>
@@ -4846,9 +4847,9 @@
<unitPattern count="other">mm {0}</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µmeters</displayName>
- <unitPattern count="one">µm {0}</unitPattern>
- <unitPattern count="other">µm {0}</unitPattern>
+ <displayName>μmeters</displayName>
+ <unitPattern count="one">μm {0}</unitPattern>
+ <unitPattern count="other">μm {0}</unitPattern>
</unit>
<unit type="length-nanometer">
<unitPattern count="one">nm {0}</unitPattern>
@@ -4943,8 +4944,8 @@
<unitPattern count="other">mg {0}</unitPattern>
</unit>
<unit type="mass-microgram">
- <unitPattern count="one">µg {0}</unitPattern>
- <unitPattern count="other">µg {0}</unitPattern>
+ <unitPattern count="one">μg {0}</unitPattern>
+ <unitPattern count="other">μg {0}</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tan-tan</displayName>
diff --git a/common/main/he.xml b/common/main/he.xml
index 798f076..c3e0fc5 100644
--- a/common/main/he.xml
+++ b/common/main/he.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -423,7 +423,6 @@
<language type="ro_MD">מולדבית</language>
<language type="rof">רומבו</language>
<language type="rom">רומאני</language>
- <language type="root">רוט</language>
<language type="ru">רוסית</language>
<language type="rup">ארומנית</language>
<language type="rw">קנירואנדית</language>
@@ -3673,9 +3672,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>סנטה איזבל</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>הונולולו</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>זמן אוניברסלי מתואם</standard>
@@ -3795,12 +3791,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>ברוקן היל</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>קרי</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>מלבורן</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>קרי</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>הוברט</exemplarCity>
</zone>
@@ -4833,6 +4829,9 @@
<zone type="America/Nome">
<exemplarCity>נום</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>הונולולו</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>ג׳ונסטון</exemplarCity>
</zone>
@@ -7674,7 +7673,7 @@
<displayName count="two">פרנק CFA מערב אפריקני</displayName>
<displayName count="many">פרנק CFA מערב אפריקני</displayName>
<displayName count="other">פרנק CFA מערב אפריקני</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName draft="contributed">פלדיום</displayName>
@@ -7997,7 +7996,7 @@
<unitPattern count="many">{0} קראט</unitPattern>
<unitPattern count="other">{0} קראט</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>מיליגרם/דציליטר</displayName>
<unitPattern count="one">{0} מיליגרם/דציליטר</unitPattern>
<unitPattern count="two">{0} מיליגרם/דציליטר</unitPattern>
@@ -9396,7 +9395,7 @@
<unitPattern count="many">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="two">{0} mg/dL</unitPattern>
@@ -9876,11 +9875,11 @@
<unitPattern count="other">{0} מ״מ</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="two">{0} µm</unitPattern>
- <unitPattern count="many">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="two">{0} μm</unitPattern>
+ <unitPattern count="many">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -10909,11 +10908,11 @@
<unitPattern count="other">{0} מ״מ</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName draft="contributed">µm</displayName>
- <unitPattern count="one" draft="contributed">{0} µm</unitPattern>
- <unitPattern count="two" draft="contributed">{0} µm</unitPattern>
- <unitPattern count="many" draft="contributed">{0} µm</unitPattern>
- <unitPattern count="other" draft="contributed">{0} µm</unitPattern>
+ <displayName draft="contributed">μm</displayName>
+ <unitPattern count="one" draft="contributed">{0} μm</unitPattern>
+ <unitPattern count="two" draft="contributed">{0} μm</unitPattern>
+ <unitPattern count="many" draft="contributed">{0} μm</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName draft="contributed">nm</displayName>
diff --git a/common/main/hi.xml b/common/main/hi.xml
index cc527c5..a455406 100644
--- a/common/main/hi.xml
+++ b/common/main/hi.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -408,7 +408,6 @@
<language type="ro_MD">मोलडावियन</language>
<language type="rof">रोम्बो</language>
<language type="rom">रोमानी</language>
- <language type="root">रूट</language>
<language type="ru">रूसी</language>
<language type="rup">अरोमानियन</language>
<language type="rw">किन्यारवांडा</language>
@@ -3370,14 +3369,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>सांता इसाबेल</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <short>
- <generic>एचएसटी</generic>
- <standard>एचएसटी</standard>
- <daylight draft="provisional">HST</daylight>
- </short>
- <exemplarCity>होनोलुलु</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>समन्वित वैश्विक समय</standard>
@@ -3500,12 +3491,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>ब्रोकन हिल</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>क्यूरी</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>मेलबोर्न</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>क्यूरी</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>होबार्ट</exemplarCity>
</zone>
@@ -4137,7 +4128,7 @@
<exemplarCity>चोइबालसन</exemplarCity>
</zone>
<zone type="Asia/Macau">
- <exemplarCity>मकाउ</exemplarCity>
+ <exemplarCity>मकाऊ</exemplarCity>
</zone>
<zone type="Pacific/Saipan">
<exemplarCity>सायपान</exemplarCity>
@@ -4538,6 +4529,14 @@
<zone type="America/Nome">
<exemplarCity>नोम</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <short>
+ <generic>एचएसटी</generic>
+ <standard>एचएसटी</standard>
+ <daylight draft="provisional">HST</daylight>
+ </short>
+ <exemplarCity>होनोलुलु</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>जॉनस्टन</exemplarCity>
</zone>
@@ -7013,7 +7012,7 @@
<displayName>पश्चिमी अफ़्रीकी CFA फ़्रैंक</displayName>
<displayName count="one">पश्चिमी अफ़्रीकी CFA फ़्रैंक</displayName>
<displayName count="other">पश्चिमी अफ़्रीकी CFA फ़्रैंक</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>[CFP] फ़्रैंक</displayName>
@@ -7299,7 +7298,7 @@
<unitPattern count="one">{0} कैरट</unitPattern>
<unitPattern count="other">{0} कैरट</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>मिलिग्राम प्रति डेसीलीटर</displayName>
<unitPattern count="one">{0} मिलिग्राम प्रति डेसीलीटर</unitPattern>
<unitPattern count="other">{0} मिलिग्राम प्रति डेसीलीटर</unitPattern>
@@ -8529,7 +8528,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>मि॰ग्रा॰/डे॰ली॰</displayName>
<unitPattern count="one">{0} मि॰ग्रा॰/डे॰ली॰</unitPattern>
<unitPattern count="other">{0} मि॰ग्रा॰/डे॰ली॰</unitPattern>
@@ -8875,9 +8874,9 @@
<unitPattern count="other">{0} मि॰मी॰</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µ मा॰मी॰</displayName>
- <unitPattern count="one">{0} µ मा॰मी॰</unitPattern>
- <unitPattern count="other">{0} µ मा॰मी॰</unitPattern>
+ <displayName>μ मा॰मी॰</displayName>
+ <unitPattern count="one">{0} μ मा॰मी॰</unitPattern>
+ <unitPattern count="other">{0} μ मा॰मी॰</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>नै॰मी॰</displayName>
diff --git a/common/main/hr.xml b/common/main/hr.xml
index da8cd54..a06dc4d 100644
--- a/common/main/hr.xml
+++ b/common/main/hr.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -424,7 +424,6 @@
<language type="ro_MD">moldavski</language>
<language type="rof">rombo</language>
<language type="rom">romski</language>
- <language type="root">korijenski</language>
<language type="ru">ruski</language>
<language type="rup">aromunski</language>
<language type="rw">kinyarwanda</language>
@@ -3626,9 +3625,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>koordinirano svjetsko vrijeme</standard>
@@ -3748,12 +3744,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -4786,6 +4782,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -8129,7 +8128,7 @@
<displayName count="one">CFA franak BCEAO</displayName>
<displayName count="few">CFA franka BCEAO</displayName>
<displayName count="other">CFA franaka BCEAO</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>paladij</displayName>
@@ -8525,7 +8524,7 @@
<unitPattern count="few">{0} karata</unitPattern>
<unitPattern count="other">{0} karata</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>miligrami po decilitru</displayName>
<unitPattern count="one">{0} miligram po decilitru</unitPattern>
<unitPattern count="few">{0} miligrama po decilitru</unitPattern>
@@ -9742,7 +9741,7 @@
<unitPattern count="few">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="few">{0} mg/dl</unitPattern>
@@ -10155,10 +10154,10 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="few">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="few">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -10303,10 +10302,10 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="few">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="few">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tn</displayName>
@@ -11153,9 +11152,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <unitPattern count="one" draft="contributed">{0} µm</unitPattern>
- <unitPattern count="few" draft="contributed">{0} µm</unitPattern>
- <unitPattern count="other" draft="contributed">{0} µm</unitPattern>
+ <unitPattern count="one" draft="contributed">{0} μm</unitPattern>
+ <unitPattern count="few" draft="contributed">{0} μm</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<unitPattern count="one" draft="contributed">{0} nm</unitPattern>
@@ -11246,9 +11245,9 @@
<unitPattern count="other" draft="contributed">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <unitPattern count="one" draft="contributed">{0} µg</unitPattern>
- <unitPattern count="few" draft="contributed">{0} µg</unitPattern>
- <unitPattern count="other" draft="contributed">{0} µg</unitPattern>
+ <unitPattern count="one" draft="contributed">{0} μg</unitPattern>
+ <unitPattern count="few" draft="contributed">{0} μg</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<unitPattern count="one" draft="contributed">{0} tn</unitPattern>
diff --git a/common/main/hsb.xml b/common/main/hsb.xml
index 89d1d59..3f26935 100644
--- a/common/main/hsb.xml
+++ b/common/main/hsb.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -4546,7 +4546,7 @@
<displayName count="two">CFA-frankaj (BCEAO)</displayName>
<displayName count="few">CFA-franki (BCEAO)</displayName>
<displayName count="other">CFA-frankow (BCEAO)</displayName>
- <symbol>CFA</symbol>
+ <symbol>F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>CFP-frank</displayName>
@@ -5929,11 +5929,11 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="two">{0} µg</unitPattern>
- <unitPattern count="few">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="two">{0} μg</unitPattern>
+ <unitPattern count="few">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>am.tony</displayName>
diff --git a/common/main/hu.xml b/common/main/hu.xml
index 72db196..4ff07b8 100644
--- a/common/main/hu.xml
+++ b/common/main/hu.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -422,7 +422,6 @@
<language type="ro_MD">moldvai</language>
<language type="rof">rombo</language>
<language type="rom">roma</language>
- <language type="root">ősi</language>
<language type="ru">orosz</language>
<language type="rup">aromán</language>
<language type="rw">kinyarvanda</language>
@@ -3345,9 +3344,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>koordinált világidő</standard>
@@ -3467,12 +3463,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -4505,6 +4501,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -7320,7 +7319,7 @@
<displayName>CFA frank BCEAO</displayName>
<displayName count="one">CFA frank BCEAO</displayName>
<displayName count="other">CFA frank BCEAO</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>palládium</displayName>
@@ -7631,7 +7630,7 @@
<unitPattern count="one">{0} karát</unitPattern>
<unitPattern count="other">{0} karát</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>milligramm/deciliter</displayName>
<unitPattern count="one">{0} milligramm/deciliter</unitPattern>
<unitPattern count="other">{0} milligramm/deciliter</unitPattern>
@@ -8666,7 +8665,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="other">{0} mg/dl</unitPattern>
@@ -9012,9 +9011,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -9136,9 +9135,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tn</displayName>
diff --git a/common/main/hy.xml b/common/main/hy.xml
index 47902e5..34dc0dd 100644
--- a/common/main/hy.xml
+++ b/common/main/hy.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -361,7 +361,6 @@
<language type="ro_MD">մոլդովերեն</language>
<language type="rof">ռոմբո</language>
<language type="rom">ռոմաներեն</language>
- <language type="root">ռուտերեն</language>
<language type="rtm">ռոտուման</language>
<language type="ru">ռուսերեն</language>
<language type="rue">ռուսիներեն</language>
@@ -2448,9 +2447,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Սանտա Իզաբել</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Հոնոլուլու</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Համաշխարհային կոորդինացված ժամանակ</standard>
@@ -2570,12 +2566,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Բրոքեն Հիլ</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Քերի</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Մելբուրն</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Քերի</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Հոբարտ</exemplarCity>
</zone>
@@ -3608,6 +3604,9 @@
<zone type="America/Nome">
<exemplarCity>Նոմ</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Հոնոլուլու</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Ջոնսթոն</exemplarCity>
</zone>
@@ -5800,7 +5799,7 @@
<displayName>Արևմտյան Աֆրիկայի ԿՖԱ ֆրանկ</displayName>
<displayName count="one">Արևմտյան Աֆրիկայի ԿՖԱ ֆրանկ</displayName>
<displayName count="other">Արևմտյան Աֆրիկայի ԿՖԱ ֆրանկ</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>ԿՊՖ ֆրանկ</displayName>
@@ -6048,7 +6047,7 @@
<unitPattern count="one">{0} կարատ</unitPattern>
<unitPattern count="other">{0} կարատ</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>միլիգրամներ դեցիլիտրի վրա</displayName>
<unitPattern count="one">{0} միլիգրամ դեցիլիտրի վրա</unitPattern>
<unitPattern count="other">{0} միլիգրամ դեցիլիտրի վրա</unitPattern>
@@ -7083,7 +7082,7 @@
<unitPattern count="one">{0} կար</unitPattern>
<unitPattern count="other">{0} կար</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>մգ/դլ</displayName>
<unitPattern count="one">{0} մգ/դլ</unitPattern>
<unitPattern count="other">{0} մգ/դլ</unitPattern>
diff --git a/common/main/ia.xml b/common/main/ia.xml
index a298dcd..fcdb198 100644
--- a/common/main/ia.xml
+++ b/common/main/ia.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -308,7 +308,6 @@
<language type="ro">romaniano</language>
<language type="ro_MD">moldavo</language>
<language type="rof">rombo</language>
- <language type="root">radice</language>
<language type="ru">russo</language>
<language type="rup">aromaniano</language>
<language type="rw">kinyarwanda</language>
@@ -3716,7 +3715,7 @@
<unitPattern count="one" draft="contributed">{0} kt</unitPattern>
<unitPattern count="other" draft="contributed">{0} carates</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>milligrammas per decilitro</displayName>
<unitPattern count="one" draft="contributed">{0} mg/dL</unitPattern>
<unitPattern count="other" draft="contributed">{0} milligrammas per decilitro</unitPattern>
@@ -3978,7 +3977,7 @@
</unit>
<unit type="length-micrometer">
<displayName>micrometros</displayName>
- <unitPattern count="one" draft="contributed">{0} µm</unitPattern>
+ <unitPattern count="one" draft="contributed">{0} μm</unitPattern>
<unitPattern count="other" draft="contributed">{0} micrometros</unitPattern>
</unit>
<unit type="length-nanometer">
@@ -4072,7 +4071,7 @@
</unit>
<unit type="mass-microgram">
<displayName>microgrammas</displayName>
- <unitPattern count="one" draft="contributed">{0} µg</unitPattern>
+ <unitPattern count="one" draft="contributed">{0} μg</unitPattern>
<unitPattern count="other" draft="contributed">{0} microgrammas</unitPattern>
</unit>
<unit type="mass-ton">
@@ -4429,7 +4428,7 @@
<unitPattern count="one" draft="contributed">{0} kt</unitPattern>
<unitPattern count="other" draft="contributed">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one" draft="contributed">{0} mg/dL</unitPattern>
<unitPattern count="other" draft="contributed">{0} mg/dL</unitPattern>
@@ -4690,9 +4689,9 @@
<unitPattern count="other" draft="contributed">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one" draft="contributed">{0} µm</unitPattern>
- <unitPattern count="other" draft="contributed">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one" draft="contributed">{0} μm</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -4784,9 +4783,9 @@
<unitPattern count="other" draft="contributed">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one" draft="contributed">{0} µg</unitPattern>
- <unitPattern count="other" draft="contributed">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one" draft="contributed">{0} μg</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tn</displayName>
diff --git a/common/main/id.xml b/common/main/id.xml
index 157915c..b76c487 100644
--- a/common/main/id.xml
+++ b/common/main/id.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -436,7 +436,6 @@
<language type="ro_MD">Moldavia</language>
<language type="rof">Rombo</language>
<language type="rom">Romani</language>
- <language type="root">Root</language>
<language type="rtm">Rotuma</language>
<language type="ru">Rusia</language>
<language type="rup">Aromania</language>
@@ -3417,9 +3416,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Waktu Universal Terkoordinasi</standard>
@@ -3539,12 +3535,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -4577,6 +4573,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -7068,7 +7067,7 @@
<currency type="XOF">
<displayName>Franc CFA Afrika Barat</displayName>
<displayName count="other">Franc CFA Afrika Barat</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>Palladium</displayName>
@@ -7342,7 +7341,7 @@
<displayName>karat</displayName>
<unitPattern count="other">{0} karat</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>milligram per desiliter</displayName>
<unitPattern count="other">{0} milligram per desiliter</unitPattern>
</unit>
@@ -8195,7 +8194,7 @@
<displayName>karat</displayName>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="other">{0} mg/dL</unitPattern>
</unit>
@@ -8474,8 +8473,8 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µmeter</displayName>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μmeter</displayName>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -8574,8 +8573,8 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>ton AS</displayName>
@@ -9063,8 +9062,8 @@
<unitPattern count="other">{0}mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName draft="contributed">µmeter</displayName>
- <unitPattern count="other" draft="contributed">{0}µm</unitPattern>
+ <displayName draft="contributed">μmeter</displayName>
+ <unitPattern count="other" draft="contributed">{0}μm</unitPattern>
</unit>
<unit type="length-nanometer">
<unitPattern count="other" draft="contributed">{0}nm</unitPattern>
diff --git a/common/main/ig.xml b/common/main/ig.xml
index 4e06d32..c05ccdb 100644
--- a/common/main/ig.xml
+++ b/common/main/ig.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -2154,10 +2154,10 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
- <zone type="Australia/Currie">
+ <zone type="Australia/Melbourne">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
- <zone type="Australia/Melbourne">
+ <zone type="Australia/Currie">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
<zone type="Australia/Hobart">
@@ -5428,7 +5428,7 @@
<displayName>↑↑↑</displayName>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
@@ -6281,7 +6281,7 @@
<displayName>↑↑↑</displayName>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
diff --git a/common/main/is.xml b/common/main/is.xml
index 9631539..070f444 100644
--- a/common/main/is.xml
+++ b/common/main/is.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -408,7 +408,6 @@
<language type="ro_MD">moldóvska</language>
<language type="rof">rombó</language>
<language type="rom">romaní</language>
- <language type="root">rót</language>
<language type="ru">rússneska</language>
<language type="rup">arúmenska</language>
<language type="rw">kínjarvanda</language>
@@ -4905,9 +4904,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Samræmdur alþjóðlegur tími</standard>
@@ -5030,12 +5026,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -6068,6 +6064,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -8504,7 +8503,7 @@
<displayName>vesturafrískur franki</displayName>
<displayName count="one">vesturafrískur franki</displayName>
<displayName count="other">vesturafrískir frankar</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName draft="unconfirmed">unse palladín</displayName>
@@ -8771,7 +8770,7 @@
<unitPattern count="one">{0} karat</unitPattern>
<unitPattern count="other">{0} karöt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>milligrömm á desílítra</displayName>
<unitPattern count="one">{0} milligramm á desílítra</unitPattern>
<unitPattern count="other">{0} milligrömm á desílítra</unitPattern>
@@ -9806,7 +9805,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="other">{0} mg/dl</unitPattern>
@@ -10152,9 +10151,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µmetrar</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μmetrar</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -10276,9 +10275,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>BNA tonn</displayName>
@@ -10831,7 +10830,7 @@
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0}mg/dL</unitPattern>
<unitPattern count="other">{0}mg/dL</unitPattern>
@@ -11120,9 +11119,9 @@
<unitPattern count="other">{0}mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µmetrar</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μmetrar</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -11234,9 +11233,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>BNA tonn</displayName>
diff --git a/common/main/it.xml b/common/main/it.xml
index b7782f8..acaa5ca 100644
--- a/common/main/it.xml
+++ b/common/main/it.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -2937,9 +2937,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Tempo coordinato universale</standard>
@@ -3059,12 +3056,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -4097,6 +4094,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -6974,7 +6974,7 @@
<unitPattern count="one">{0} carato</unitPattern>
<unitPattern count="other">{0} carati</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>milligrammi per decilitro</displayName>
<unitPattern count="one">{0} milligrammo per decilitro</unitPattern>
<unitPattern count="other">{0} milligrammi per decilitro</unitPattern>
@@ -8080,7 +8080,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="other">{0} mg/dl</unitPattern>
@@ -8426,9 +8426,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -8550,9 +8550,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tn</displayName>
diff --git a/common/main/ja.xml b/common/main/ja.xml
index 3c31d1b..10c419a 100644
--- a/common/main/ja.xml
+++ b/common/main/ja.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -481,7 +481,6 @@
<language type="ro_MD">モルダビア語</language>
<language type="rof">ロンボ語</language>
<language type="rom">ロマーニー語</language>
- <language type="root">ルート</language>
<language type="rtm">ロツマ語</language>
<language type="ru">ロシア語</language>
<language type="rue">ルシン語</language>
@@ -4848,9 +4847,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>サンタイサベル</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>ホノルル</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>協定世界時</standard>
@@ -4970,12 +4966,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>ブロークンヒル</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>カリー</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>メルボルン</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>カリー</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>ホバート</exemplarCity>
</zone>
@@ -6008,6 +6004,9 @@
<zone type="America/Nome">
<exemplarCity>ノーム</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>ホノルル</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>ジョンストン島</exemplarCity>
</zone>
@@ -7126,7 +7125,7 @@
<percentSign>%</percentSign>
<plusSign draft="contributed">+</plusSign>
<minusSign draft="contributed">-</minusSign>
- <approximatelySign>約 </approximatelySign>
+ <approximatelySign>約</approximatelySign>
<exponential>E</exponential>
<superscriptingExponent>×</superscriptingExponent>
<perMille>‰</perMille>
@@ -8707,7 +8706,7 @@
<currency type="XOF">
<displayName>西アフリカ CFA フラン</displayName>
<displayName count="other">西アフリカ CFA フラン</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>パラジウム</displayName>
@@ -9015,7 +9014,7 @@
<displayName>金</displayName>
<unitPattern count="other">{0} 金</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>ミリグラム毎デシリットル</displayName>
<unitPattern count="other">{0} ミリグラム毎デシリットル</unitPattern>
</unit>
@@ -9868,7 +9867,7 @@
<displayName>金</displayName>
<unitPattern count="other">{0} 金</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>ミリグラム毎デシリットル</displayName>
<unitPattern count="other">{0} mg/dL</unitPattern>
</unit>
@@ -10148,7 +10147,7 @@
</unit>
<unit type="length-micrometer">
<displayName>マイクロメートル</displayName>
- <unitPattern count="other">{0} µm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>ナノメートル</displayName>
@@ -10248,7 +10247,7 @@
</unit>
<unit type="mass-microgram">
<displayName>マイクログラム</displayName>
- <unitPattern count="other">{0} µg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>米トン</displayName>
@@ -10773,7 +10772,7 @@
<unitPattern count="other">{0}ms</unitPattern>
</unit>
<unit type="duration-microsecond">
- <displayName draft="contributed">µs</displayName>
+ <displayName draft="contributed">μs</displayName>
<unitPattern count="other" draft="contributed">{0}μs</unitPattern>
</unit>
<unit type="duration-nanosecond">
@@ -10846,7 +10845,7 @@
</unit>
<unit type="length-micrometer">
<displayName draft="contributed">マイクロメートル</displayName>
- <unitPattern count="other" draft="contributed">{0}µm</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName draft="contributed">ナノメートル</displayName>
@@ -10923,7 +10922,7 @@
<unitPattern count="other" draft="contributed">{0}mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <unitPattern count="other" draft="contributed">{0}µg</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}μg</unitPattern>
</unit>
<unit type="mass-ton">
<unitPattern count="other" draft="contributed">{0}t</unitPattern>
diff --git a/common/main/jv.xml b/common/main/jv.xml
index 6fb3416..fda85ff 100644
--- a/common/main/jv.xml
+++ b/common/main/jv.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -2167,12 +2167,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -5393,7 +5393,7 @@
<displayName>karat</displayName>
<unitPattern count="other">{0} karat</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>miligram saben desiliter</displayName>
<unitPattern count="other">{0} miligram saben desiliter</unitPattern>
</unit>
@@ -6246,7 +6246,7 @@
<displayName>karat</displayName>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="other">{0} mg/dL</unitPattern>
</unit>
@@ -6525,8 +6525,8 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µmeter</displayName>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μmeter</displayName>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
diff --git a/common/main/ka.xml b/common/main/ka.xml
index f335e35..bea9269 100644
--- a/common/main/ka.xml
+++ b/common/main/ka.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -384,7 +384,6 @@
<language type="ro_MD">მოლდავური</language>
<language type="rof">რომბო</language>
<language type="rom">ბოშური</language>
- <language type="root">ძირეული ენა</language>
<language type="ru">რუსული</language>
<language type="rup">არომანული</language>
<language type="rw">კინიარუანდა</language>
@@ -2930,9 +2929,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>სანტა ისაბელი</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>ჰონოლულუ</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>მსოფლიო კოორდინირებული დრო</standard>
@@ -3052,12 +3048,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>ბროუკენ ჰილი</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>ქური</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>მელბურნი</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>ქური</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>ჰობარტი</exemplarCity>
</zone>
@@ -4090,6 +4086,9 @@
<zone type="America/Nome">
<exemplarCity>ნომი</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>ჰონოლულუ</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>ჯონსტონი</exemplarCity>
</zone>
@@ -6508,7 +6507,7 @@
<displayName>დასავლეთ აფრიკული CFA ფრანკი</displayName>
<displayName count="one">დასავლეთ აფრიკული CFA ფრანკი</displayName>
<displayName count="other">დასავლეთ აფრიკული CFA ფრანკი</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>CFP ფრანკი</displayName>
@@ -6780,7 +6779,7 @@
<unitPattern count="one">{0} კარატი</unitPattern>
<unitPattern count="other">{0} კარატი</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>მილიგრამი დეცილიტრზე</displayName>
<unitPattern count="one">{0} მილიგრამი დეცილიტრზე</unitPattern>
<unitPattern count="other">{0} მილიგრამი დეცილიტრზე</unitPattern>
@@ -7815,7 +7814,7 @@
<unitPattern count="one">{0} კარ.</unitPattern>
<unitPattern count="other">{0} კარ.</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>მგ/დლ</displayName>
<unitPattern count="one">{0} მგ/დლ</unitPattern>
<unitPattern count="other">{0} მგ/დლ</unitPattern>
diff --git a/common/main/kab.xml b/common/main/kab.xml
index caee067..4bbf2f8 100644
--- a/common/main/kab.xml
+++ b/common/main/kab.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -307,7 +307,6 @@
<language type="ro">Tarumanit</language>
<language type="ro_MD" draft="unconfirmed">Tamuldavt</language>
<language type="rof" draft="unconfirmed">Tarumbut</language>
- <language type="root" draft="unconfirmed">Aẓar</language>
<language type="ru">Tarusit</language>
<language type="rup" draft="unconfirmed">Tavalakt</language>
<language type="rw">Taruwandit</language>
@@ -2281,9 +2280,6 @@
<regionFormat type="daylight" draft="unconfirmed">{0} (Akud n unebdu)</regionFormat>
<regionFormat type="standard" draft="unconfirmed">{0} Akud amezday</regionFormat>
<fallbackFormat draft="unconfirmed">{1} ({0})</fallbackFormat>
- <zone type="Pacific/Honolulu">
- <exemplarCity draft="unconfirmed">Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard draft="unconfirmed">Akud agraɣlan imyuddsen</standard>
@@ -2403,12 +2399,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity draft="unconfirmed">Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity draft="unconfirmed">Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity draft="unconfirmed">Malburn</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity draft="unconfirmed">Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity draft="unconfirmed">Hobart</exemplarCity>
</zone>
@@ -3441,6 +3437,9 @@
<zone type="America/Nome">
<exemplarCity draft="unconfirmed">Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity draft="unconfirmed">Honolulu</exemplarCity>
+ </zone>
<zone type="America/Anchorage">
<exemplarCity draft="unconfirmed">Ankuraj</exemplarCity>
</zone>
@@ -6280,7 +6279,7 @@
<displayName>Afrank BCEAO CFA</displayName>
<displayName count="one" draft="unconfirmed">Afrank CFA (BCEAO)</displayName>
<displayName count="other" draft="unconfirmed">Ifranken CFA (BCEAO)</displayName>
- <symbol draft="unconfirmed">CFA</symbol>
+ <symbol draft="unconfirmed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName draft="unconfirmed">Palladium</displayName>
@@ -7084,7 +7083,7 @@
<unitPattern count="one" draft="unconfirmed">{0} n udunam</unitPattern>
<unitPattern count="other" draft="unconfirmed">{0} n udunam</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName draft="unconfirmed">mg/dL</displayName>
<unitPattern count="one" draft="unconfirmed">{0} mg/dL</unitPattern>
<unitPattern count="other" draft="unconfirmed">{0} mg/dL</unitPattern>
@@ -7318,9 +7317,9 @@
<unitPattern count="other" draft="unconfirmed">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName draft="unconfirmed">µmitr</displayName>
- <unitPattern count="one" draft="unconfirmed">{0} µm</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0} µm</unitPattern>
+ <displayName draft="unconfirmed">μmitr</displayName>
+ <unitPattern count="one" draft="unconfirmed">{0} μm</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName draft="unconfirmed">nm</displayName>
@@ -7416,9 +7415,9 @@
<unitPattern count="other" draft="unconfirmed">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName draft="unconfirmed">µg</displayName>
- <unitPattern count="one" draft="unconfirmed">{0} µg</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0} µg</unitPattern>
+ <displayName draft="unconfirmed">μg</displayName>
+ <unitPattern count="one" draft="unconfirmed">{0} μg</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName draft="unconfirmed">iṭunen</displayName>
diff --git a/common/main/kea.xml b/common/main/kea.xml
index 14a2e9b..70e0a99 100644
--- a/common/main/kea.xml
+++ b/common/main/kea.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -3180,7 +3180,7 @@
<currency type="XOF">
<displayName>Franku CFA (BCEAO)</displayName>
<displayName count="other">Franku CFA (BCEAO)</displayName>
- <symbol>CFA</symbol>
+ <symbol>F CFA</symbol>
</currency>
<currency type="XPF">
<symbol>CFPF</symbol>
@@ -3371,7 +3371,7 @@
<displayName>kilati</displayName>
<unitPattern count="other">{0} kilati</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>miligrama pur desilitru</displayName>
<unitPattern count="other">{0} miligrama pur desilitru</unitPattern>
</unit>
@@ -4178,7 +4178,7 @@
<displayName>kt</displayName>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="other">{0} mg/dl</unitPattern>
</unit>
@@ -4457,8 +4457,8 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
diff --git a/common/main/kk.xml b/common/main/kk.xml
index 346eb88..0daf7a3 100644
--- a/common/main/kk.xml
+++ b/common/main/kk.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -319,7 +319,6 @@
<language type="ro">румын тілі</language>
<language type="ro_MD">молдован тілі</language>
<language type="rof">ромбо тілі</language>
- <language type="root">ата тіл</language>
<language type="ru">орыс тілі</language>
<language type="rup">арумын тілі</language>
<language type="rw">киньяруанда тілі</language>
@@ -2397,9 +2396,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Санта-Изабел</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Гонолулу</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Дүниежүзілік үйлестірілген уақыт</standard>
@@ -2519,12 +2515,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Брокен-Хилл</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Керри</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Мельбурн</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Керри</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Хобарт</exemplarCity>
</zone>
@@ -3557,6 +3553,9 @@
<zone type="America/Nome">
<exemplarCity>Ном</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Гонолулу</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Джонстон</exemplarCity>
</zone>
@@ -5754,7 +5753,7 @@
<displayName>КФА ВСЕАО франкі</displayName>
<displayName count="one">КФА ВСЕАО франкі</displayName>
<displayName count="other">КФА ВСЕАО франкі</displayName>
- <symbol>CFA</symbol>
+ <symbol>F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>КФП франкі</displayName>
@@ -5996,7 +5995,7 @@
<unitPattern count="one">{0} карат</unitPattern>
<unitPattern count="other">{0} карат</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>миллиграмм/децилитр</displayName>
<unitPattern count="one">{0} миллиграмм/децилитр</unitPattern>
<unitPattern count="other">{0} миллиграмм/децилитр</unitPattern>
@@ -7031,7 +7030,7 @@
<unitPattern count="one">{0} кар.</unitPattern>
<unitPattern count="other">{0} кар.</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>мг/дл</displayName>
<unitPattern count="one">{0} мг/дл</unitPattern>
<unitPattern count="other">{0} мг/дл</unitPattern>
diff --git a/common/main/kl.xml b/common/main/kl.xml
index 597c533..8918659 100644
--- a/common/main/kl.xml
+++ b/common/main/kl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -1350,7 +1350,7 @@
<unitPattern count="one" draft="unconfirmed">{0} kvadratfod</unitPattern>
<unitPattern count="other" draft="unconfirmed">{0} kvadratfod</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName draft="unconfirmed">milligrammi per desiliteri</displayName>
<unitPattern count="one" draft="unconfirmed">{0} milligrammi per desiliteri</unitPattern>
<unitPattern count="other" draft="unconfirmed">{0} milligrammi per desiliteri</unitPattern>
@@ -1735,7 +1735,7 @@
<unitPattern count="one">{0} ft²</unitPattern>
<unitPattern count="other">{0} ft²</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName draft="unconfirmed">mg/dL</displayName>
<unitPattern count="one" draft="unconfirmed">{0} mg/dL</unitPattern>
<unitPattern count="other" draft="unconfirmed">{0} mg/dL</unitPattern>
@@ -1845,9 +1845,9 @@
<unitPattern count="other" draft="unconfirmed">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName draft="unconfirmed">µm</displayName>
- <unitPattern count="one" draft="unconfirmed">{0} µm</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0} µm</unitPattern>
+ <displayName draft="unconfirmed">μm</displayName>
+ <unitPattern count="one" draft="unconfirmed">{0} μm</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName draft="unconfirmed">nm</displayName>
@@ -2118,7 +2118,7 @@
<unitPattern count="one">{0} ft²</unitPattern>
<unitPattern count="other">{0} ft²</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName draft="unconfirmed">mg/dL</displayName>
<unitPattern count="one" draft="unconfirmed">{0}mg/dL</unitPattern>
<unitPattern count="other" draft="unconfirmed">{0}mg/dL</unitPattern>
@@ -2213,9 +2213,9 @@
<unitPattern count="other" draft="unconfirmed">{0}mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName draft="unconfirmed">µm</displayName>
- <unitPattern count="one" draft="unconfirmed">{0}µm</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0}µm</unitPattern>
+ <displayName draft="unconfirmed">μm</displayName>
+ <unitPattern count="one" draft="unconfirmed">{0}μm</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0}μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName draft="unconfirmed">nm</displayName>
diff --git a/common/main/km.xml b/common/main/km.xml
index d64bc8f..f891c77 100644
--- a/common/main/km.xml
+++ b/common/main/km.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -319,7 +319,6 @@
<language type="ro">រូម៉ានី</language>
<language type="ro_MD">ម៉ុលដាវី</language>
<language type="rof">រុមបូ</language>
- <language type="root">រូត</language>
<language type="ru">រុស្ស៊ី</language>
<language type="rup">អារ៉ូម៉ានី</language>
<language type="rw">គិនយ៉ាវ៉ាន់ដា</language>
@@ -2294,9 +2293,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>សាន់តាអ៊ីសាប៊ែល</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>ហូណូលូលូ</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>ម៉ោងសកលដែលមានការសម្រួល</standard>
@@ -2416,12 +2412,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>ប្រូកខិនហីល</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>ខូរៀ</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>ម៉េលប៊ន</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>ខូរៀ</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>ហូបាត</exemplarCity>
</zone>
@@ -3454,6 +3450,9 @@
<zone type="America/Nome">
<exemplarCity>ណូម</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>ហូណូលូលូ</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>ចនស្តុន</exemplarCity>
</zone>
@@ -5452,7 +5451,7 @@
<currency type="XOF">
<displayName>ហ្វ្រង់ CFA អាហ្វ្រិកខាងលិច</displayName>
<displayName count="other">ហ្វ្រង់ CFA អាហ្វ្រិកខាងលិច</displayName>
- <symbol>CFA</symbol>
+ <symbol>F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>ហ្វ្រង់ CFP</displayName>
@@ -5670,7 +5669,7 @@
<displayName>ការ៉ាត់</displayName>
<unitPattern count="other">{0} ការ៉ាត់</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>មិល្លីក្រាមក្នុងមួយដេស៊ីលីត្រ</displayName>
<unitPattern count="other">{0} មិល្លីក្រាមក្នុងមួយដេស៊ីលីត្រ</unitPattern>
</unit>
@@ -6358,7 +6357,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>n{0}</unitPrefixPattern>
@@ -6523,7 +6522,7 @@
<displayName>ការ៉ាត់</displayName>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="other">{0} mg/dL</unitPattern>
</unit>
@@ -6803,7 +6802,7 @@
</unit>
<unit type="length-micrometer">
<displayName>មីក្រូម៉ែត្រ</displayName>
- <unitPattern count="other">{0} µm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -6902,8 +6901,8 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>តោនអាមេរិក</displayName>
@@ -7211,7 +7210,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>n{0}</unitPrefixPattern>
diff --git a/common/main/kn.xml b/common/main/kn.xml
index d0e0e41..88b3859 100644
--- a/common/main/kn.xml
+++ b/common/main/kn.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -409,7 +409,6 @@
<language type="ro_MD">ಮಾಲ್ಡೇವಿಯನ್</language>
<language type="rof">ರೊಂಬೊ</language>
<language type="rom">ರೋಮಾನಿ</language>
- <language type="root">ರೂಟ್</language>
<language type="ru">ರಷ್ಯನ್</language>
<language type="rup">ಅರೋಮಾನಿಯನ್</language>
<language type="rw">ಕಿನ್ಯಾರ್ವಾಂಡಾ</language>
@@ -3323,9 +3322,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>ಸಾಂತಾ ಇಸಾಬೆಲ್</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>ಹೊನಲುಲು</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>ಸಂಘಟಿತ ಸಾರ್ವತ್ರಿಕ ಸಮಯ</standard>
@@ -3445,12 +3441,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>ಬ್ರೊಕನ್ ಹಿಲ್</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>ಕರೀ</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>ಮೆಲ್ಬರ್ನ್</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>ಕರೀ</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>ಹೋಬಾರ್ಟ್</exemplarCity>
</zone>
@@ -4483,6 +4479,9 @@
<zone type="America/Nome">
<exemplarCity>ನೋಮ್</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>ಹೊನಲುಲು</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>ಜಾನ್ಸ್ಟನ್</exemplarCity>
</zone>
@@ -6801,7 +6800,7 @@
<displayName>ಪಶ್ಚಿಮ ಆಫ್ರಿಕಾದ CFA ಫ್ರಾಂಕ್</displayName>
<displayName count="one">ಪಶ್ಚಿಮ ಆಫ್ರಿಕಾದ CFA ಫ್ರಾಂಕ್</displayName>
<displayName count="other">ಪಶ್ಚಿಮ ಆಫ್ರಿಕಾದ CFA ಫ್ರಾಂಕ್ಗಳು</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>[CFP] ಫ್ರಾಂಕ್</displayName>
@@ -7047,7 +7046,7 @@
<unitPattern count="one">{0} ಕಾರಟ್</unitPattern>
<unitPattern count="other">{0} ಕಾರಟ್ಗಳು</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>ಪ್ರತಿ ಡೆಸಿಲೀಟರ್ಗೆ ಮಿಲಿಗ್ರಾಂಗಳು</displayName>
<unitPattern count="one">{0} ಪ್ರತಿ ಡೆಸಿಲೀಟರ್ಗೆ ಮಿಲಿಗ್ರಾಂ</unitPattern>
<unitPattern count="other">{0} ಪ್ರತಿ ಡೆಸಿಲೀಟರ್ಗೆ ಮಿಲಿಗ್ರಾಂಗಳು</unitPattern>
@@ -8082,7 +8081,7 @@
<unitPattern count="one">{0} ಕಾರ.</unitPattern>
<unitPattern count="other">{0} ಕಾರ.</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>ಮಿಗ್ರಾಂ/ಡೆಲೀ</displayName>
<unitPattern count="one">{0} ಮಿಗ್ರಾಂ/ಡೆಲೀ</unitPattern>
<unitPattern count="other">{0} ಮಿಗ್ರಾಂ/ಡೆಲೀ</unitPattern>
@@ -8428,9 +8427,9 @@
<unitPattern count="other">{0} ಮಿಮೀ</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µmeters</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μmeters</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>ನ್ಯಾ.ಮೀ</displayName>
diff --git a/common/main/ko.xml b/common/main/ko.xml
index ee5bb93..a84010b 100644
--- a/common/main/ko.xml
+++ b/common/main/ko.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -434,7 +434,6 @@
<language type="ro_MD">몰도바어</language>
<language type="rof">롬보어</language>
<language type="rom">집시어</language>
- <language type="root">어근</language>
<language type="ru">러시아어</language>
<language type="rue">루신어</language>
<language type="rup">아로마니아어</language>
@@ -4176,9 +4175,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>산타 이사벨</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>호놀룰루</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>협정 세계시</standard>
@@ -4298,12 +4294,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>브로컨힐</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>퀴리</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>멜버른</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>퀴리</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>호바트</exemplarCity>
</zone>
@@ -5336,6 +5332,9 @@
<zone type="America/Nome">
<exemplarCity>놈</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>호놀룰루</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>존스톤</exemplarCity>
</zone>
@@ -7768,7 +7767,7 @@
<currency type="XOF">
<displayName>서아프리카 CFA 프랑</displayName>
<displayName count="other">서아프리카 CFA 프랑</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>팔라듐</displayName>
@@ -8030,7 +8029,7 @@
<displayName>캐럿</displayName>
<unitPattern count="other">{0}캐럿</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>데시리터당 밀리그램</displayName>
<unitPattern count="other">데시리터당 {0}밀리그램</unitPattern>
</unit>
@@ -8883,7 +8882,7 @@
<displayName>kt</displayName>
<unitPattern count="other">{0}kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="other">{0}mg/dL</unitPattern>
</unit>
@@ -9162,8 +9161,8 @@
<unitPattern count="other">{0}mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="other">{0}µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="other">{0}μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -9262,8 +9261,8 @@
<unitPattern count="other">{0}mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="other">{0}µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="other">{0}μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tn</displayName>
@@ -9777,8 +9776,8 @@
<unitPattern count="other">{0}mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName draft="contributed">µm</displayName>
- <unitPattern count="other" draft="contributed">{0}µm</unitPattern>
+ <displayName draft="contributed">μm</displayName>
+ <unitPattern count="other" draft="contributed">{0}μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName draft="contributed">nm</displayName>
@@ -9857,8 +9856,8 @@
<unitPattern count="other" draft="contributed">{0}mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName draft="contributed">µg</displayName>
- <unitPattern count="other" draft="contributed">{0}µg</unitPattern>
+ <displayName draft="contributed">μg</displayName>
+ <unitPattern count="other" draft="contributed">{0}μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName draft="contributed">tn</displayName>
diff --git a/common/main/kok.xml b/common/main/kok.xml
index 58d2da6..cdee250 100644
--- a/common/main/kok.xml
+++ b/common/main/kok.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -314,7 +314,6 @@
<language type="ro">रोमानियन</language>
<language type="ro_MD">मोल्डावियन्</language>
<language type="rof">रोम्बो</language>
- <language type="root">रूट</language>
<language type="ru">रशियन</language>
<language type="rup">आरोमेनियन</language>
<language type="rw">किन्यार्वान्डा</language>
@@ -2311,12 +2310,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>ब्रोकन हिल</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>क्युरी</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>मेलबर्न</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>क्युरी</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>होबार्ट</exemplarCity>
</zone>
@@ -5351,7 +5350,7 @@
<currency type="XOF">
<displayName>अस्तंत आफ्रिकी सीएफए फ्रँक</displayName>
<displayName count="other">अस्तंत आफ्रिकी सीएफए फ्रँक्स</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>सीएफपी फ्रँक</displayName>
@@ -5568,7 +5567,7 @@
<displayName>कॅरट्स</displayName>
<unitPattern count="other">{0} कॅरट्स</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>मिलिग्राम/डेसिलिटर</displayName>
<unitPattern count="other">{0} मिलिग्राम/डेसिलिटर</unitPattern>
</unit>
@@ -6256,7 +6255,7 @@
<unitPrefixPattern>मि{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>नॅ{0}</unitPrefixPattern>
@@ -6421,7 +6420,7 @@
<displayName>कॅरट्स</displayName>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>मिग्रा/डेलि</displayName>
<unitPattern count="other">{0} मिग्रा/डेलि</unitPattern>
</unit>
@@ -6700,8 +6699,8 @@
<unitPattern count="other">{0} मिमी</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -6800,8 +6799,8 @@
<unitPattern count="other">{0} मिग्रा</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>टन</displayName>
@@ -7109,7 +7108,7 @@
<unitPrefixPattern>मि {0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>नॅ{0}</unitPrefixPattern>
diff --git a/common/main/ks.xml b/common/main/ks.xml
index 783977e..36748a5 100644
--- a/common/main/ks.xml
+++ b/common/main/ks.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -344,7 +344,6 @@
<language type="ro">رومٲنی</language>
<language type="ro_MD">مولداوِیَن</language>
<language type="rom">رومَنی</language>
- <language type="root">روٗٹ</language>
<language type="ru">روٗسی</language>
<language type="rup">اَرومانی</language>
<language type="rw">کِنیاوِندا</language>
@@ -1243,9 +1242,6 @@
<timeZoneNames>
<hourFormat>+HH:mm;-HH:mm</hourFormat>
<gmtFormat>GMT{0}</gmtFormat>
- <zone type="Pacific/Honolulu">
- <exemplarCity>ہونولو لو</exemplarCity>
- </zone>
<zone type="Etc/Unknown">
<exemplarCity>غٲر زان</exemplarCity>
</zone>
@@ -1354,12 +1350,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>بروکٕن ہِل</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>کیوٗری</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>مؠلبعارن</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>کیوٗری</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>حۄبٲٹ</exemplarCity>
</zone>
@@ -2245,6 +2241,9 @@
<zone type="America/Nome">
<exemplarCity>نوم</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>ہونولو لو</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>جانسٹَن</exemplarCity>
</zone>
diff --git a/common/main/ksh.xml b/common/main/ksh.xml
index 90d1938..eff9398 100644
--- a/common/main/ksh.xml
+++ b/common/main/ksh.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -1398,9 +1398,6 @@
<regionFormat type="daylight" draft="contributed">Summerzick vun {0}</regionFormat>
<regionFormat type="standard" draft="contributed">Schtandattzick vun {0}</regionFormat>
<fallbackFormat draft="contributed">{1} ({0})</fallbackFormat>
- <zone type="Pacific/Honolulu">
- <exemplarCity draft="contributed">Honululu</exemplarCity>
- </zone>
<zone type="Etc/Unknown">
<exemplarCity draft="contributed">- weße mer nit -</exemplarCity>
</zone>
@@ -1627,6 +1624,9 @@
<zone type="Europe/Zaporozhye">
<exemplarCity draft="contributed">Saporischschja</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity draft="contributed">Honululu</exemplarCity>
+ </zone>
<zone type="America/Yakutat">
<exemplarCity draft="contributed">Jakutat</exemplarCity>
</zone>
diff --git a/common/main/ky.xml b/common/main/ky.xml
index a5850b4..615d7ac 100644
--- a/common/main/ky.xml
+++ b/common/main/ky.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -321,7 +321,6 @@
<language type="ro">румынча</language>
<language type="ro_MD">молдованча</language>
<language type="rof">ромбочо</language>
- <language type="root">түпкү</language>
<language type="ru">орусча</language>
<language type="rup">аромунча</language>
<language type="rw">руандача</language>
@@ -2381,9 +2380,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Санта Изабел</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Гонолулу</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Бирдиктүү дүйнөлүк убакыт</standard>
@@ -2503,12 +2499,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Броукен Хил</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Керри</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Мельбурн</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Керри</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Хобарт</exemplarCity>
</zone>
@@ -3541,6 +3537,9 @@
<zone type="America/Nome">
<exemplarCity>Ном</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Гонолулу</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Жонстон</exemplarCity>
</zone>
@@ -5732,7 +5731,7 @@
<displayName>КФА франкы</displayName>
<displayName count="one">КФА франкы</displayName>
<displayName count="other">КФА франкы</displayName>
- <symbol>CFA</symbol>
+ <symbol>F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>КФП франкы</displayName>
@@ -5975,7 +5974,7 @@
<unitPattern count="one">{0} карат</unitPattern>
<unitPattern count="other">{0} карат</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>децилитрга миллиграмм</displayName>
<unitPattern count="one">децилитрга {0} миллиграмм</unitPattern>
<unitPattern count="other">децилитрга {0} миллиграмм</unitPattern>
@@ -7010,7 +7009,7 @@
<unitPattern count="one">{0} кт</unitPattern>
<unitPattern count="other">{0} кт</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>мг/дл</displayName>
<unitPattern count="one">{0} мг/дл</unitPattern>
<unitPattern count="other">{0} мг/дл</unitPattern>
@@ -7356,9 +7355,9 @@
<unitPattern count="other">{0} мм</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µметр</displayName>
- <unitPattern count="one">{0} µм</unitPattern>
- <unitPattern count="other">{0} µм</unitPattern>
+ <displayName>μметр</displayName>
+ <unitPattern count="one">{0} μм</unitPattern>
+ <unitPattern count="other">{0} μм</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>нм</displayName>
diff --git a/common/main/lb.xml b/common/main/lb.xml
index d84ddfa..3fe5ff3 100644
--- a/common/main/lb.xml
+++ b/common/main/lb.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -469,7 +469,6 @@
<language type="ro_MD">Moldawesch</language>
<language type="rof">Rombo</language>
<language type="rom">Romani</language>
- <language type="root">Root</language>
<language type="rtm">Rotumanesch</language>
<language type="ru">Russesch</language>
<language type="rue">Russinesch</language>
@@ -5045,7 +5044,7 @@
<displayName>CFA-Frang (BCEAO)</displayName>
<displayName count="one">CFA-Frang (BCEAO)</displayName>
<displayName count="other">CFA-Frang (BCEAO)</displayName>
- <symbol>CFA</symbol>
+ <symbol>F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>Onz Palladium</displayName>
@@ -6048,9 +6047,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -6138,9 +6137,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tn</displayName>
@@ -6486,8 +6485,8 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<unitPattern count="one">{0} nm</unitPattern>
@@ -6558,8 +6557,8 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<unitPattern count="one">{0} tn</unitPattern>
diff --git a/common/main/lo.xml b/common/main/lo.xml
index f460595..9dd575b 100644
--- a/common/main/lo.xml
+++ b/common/main/lo.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -414,7 +414,6 @@
<language type="ro_MD">ໂມດາວຽນ</language>
<language type="rof">ຣົມໂບ</language>
<language type="rom">ໂຣເມນີ</language>
- <language type="root">ລູດ</language>
<language type="ru">ລັດເຊຍ</language>
<language type="rup">ອາໂຣມານຽນ</language>
<language type="rw">ຄິນຢາວານດາ</language>
@@ -3694,9 +3693,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>ຊານຕາ ອິດຊາເບວ</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>ໂຮໂນລູລູ</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>ເວລາສາກົນເຊີງພິກັດ</standard>
@@ -3819,12 +3815,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>ໂບຣກເຄນ ຮິວ</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>ກູຣີ</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>ເມວເບິນ</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>ກູຣີ</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>ໂຮບາດ</exemplarCity>
</zone>
@@ -4857,6 +4853,9 @@
<zone type="America/Nome">
<exemplarCity>ນອມ</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>ໂຮໂນລູລູ</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>ຈອນສະໂຕນ</exemplarCity>
</zone>
@@ -7310,7 +7309,7 @@
<currency type="XOF">
<displayName>ຟັງເຊຟານ ອາຟຣິກາຕາເວັນຕົກ</displayName>
<displayName count="other">ຟັງເຊຟານ ອາຟຣິກາຕາເວັນຕົກ</displayName>
- <symbol>CFA</symbol>
+ <symbol>F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>ແພເລດຽມ</displayName>
@@ -7576,7 +7575,7 @@
<displayName>ກະຣັດ</displayName>
<unitPattern count="other">{0} ກະຣັດ</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>ມິລິກຣັມຕໍ່ເດຊິລິດ</displayName>
<unitPattern count="other">{0} mg/dL</unitPattern>
</unit>
@@ -7955,8 +7954,8 @@
<unitPattern count="other">{0} ມິນລີກຣາມ</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>ໂຕນ</displayName>
@@ -8429,7 +8428,7 @@
<displayName>ກະຣັດ</displayName>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="other">{0} mg/dL</unitPattern>
</unit>
@@ -8708,8 +8707,8 @@
<unitPattern count="other">{0} ມມ</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>ນມ</displayName>
@@ -8808,8 +8807,8 @@
<unitPattern count="other">{0} ມກ</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>ຕ</displayName>
diff --git a/common/main/lt.xml b/common/main/lt.xml
index 9661189..36bcbfc 100644
--- a/common/main/lt.xml
+++ b/common/main/lt.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -479,7 +479,6 @@
<language type="ro_MD">moldavų</language>
<language type="rof">rombo</language>
<language type="rom">romų</language>
- <language type="root">rūt</language>
<language type="rtm">rotumanų</language>
<language type="ru">rusų</language>
<language type="rue">rusinų</language>
@@ -4745,9 +4744,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Izabelė</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>pasaulio suderintasis laikas</standard>
@@ -4867,12 +4863,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hilis</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Karis</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melburnas</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Karis</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobartas</exemplarCity>
</zone>
@@ -5905,6 +5901,9 @@
<zone type="America/Nome">
<exemplarCity>Nomas</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Džonstonas</exemplarCity>
</zone>
@@ -9838,7 +9837,7 @@
<unitPattern count="many">{0} karato</unitPattern>
<unitPattern count="other">{0} karatų</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>miligramai decilitre</displayName>
<unitPattern count="one">{0} miligramas decilitre</unitPattern>
<unitPattern count="few">{0} miligramai decilitre</unitPattern>
@@ -11237,7 +11236,7 @@
<unitPattern count="many">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="few">{0} mg/dl</unitPattern>
@@ -11717,11 +11716,11 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="few">{0} µm</unitPattern>
- <unitPattern count="many">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="few">{0} μm</unitPattern>
+ <unitPattern count="many">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -11889,11 +11888,11 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="few">{0} µg</unitPattern>
- <unitPattern count="many">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="few">{0} μg</unitPattern>
+ <unitPattern count="many">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>t</displayName>
diff --git a/common/main/lv.xml b/common/main/lv.xml
index 759845a..f5e26b3 100644
--- a/common/main/lv.xml
+++ b/common/main/lv.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -417,7 +417,6 @@
<language type="ro_MD">moldāvu</language>
<language type="rof">rombo</language>
<language type="rom">čigānu</language>
- <language type="root">sakne</language>
<language type="ru">krievu</language>
<language type="rup">aromūnu</language>
<language type="rw">kiņaruanda</language>
@@ -3125,9 +3124,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santaisabela</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Universālais koordinētais laiks</standard>
@@ -3247,12 +3243,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Brokenhila</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Kari</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melburna</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Kari</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobārta</exemplarCity>
</zone>
@@ -4285,6 +4281,9 @@
<zone type="America/Nome">
<exemplarCity>Noma</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Džonstona atols</exemplarCity>
</zone>
@@ -6864,7 +6863,7 @@
<displayName count="zero">Rietumāfrikas CFA franki</displayName>
<displayName count="one">Rietumāfrikas CFA franks</displayName>
<displayName count="other">Rietumāfrikas CFA franki</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>pallādijs</displayName>
@@ -7164,7 +7163,7 @@
<unitPattern count="one">{0} karāts</unitPattern>
<unitPattern count="other">{0} karāti</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>miligrami uz decilitru</displayName>
<unitPattern count="zero">{0} miligramu uz decilitru</unitPattern>
<unitPattern count="one">{0} miligrams uz decilitru</unitPattern>
@@ -8381,7 +8380,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="zero">{0} mg/dl</unitPattern>
<unitPattern count="one">{0} mg/dl</unitPattern>
@@ -8794,10 +8793,10 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="zero">{0} µm</unitPattern>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="zero">{0} μm</unitPattern>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -8942,10 +8941,10 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="zero">{0} µg</unitPattern>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="zero">{0} μg</unitPattern>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tonnas</displayName>
diff --git a/common/main/mk.xml b/common/main/mk.xml
index 9f612d7..cc1855b 100644
--- a/common/main/mk.xml
+++ b/common/main/mk.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -478,7 +478,6 @@
<language type="ro_MD">молдавски</language>
<language type="rof">ромбо</language>
<language type="rom">ромски</language>
- <language type="root">корен</language>
<language type="rtm">ротумански</language>
<language type="ru">руски</language>
<language type="rue">русински</language>
@@ -3587,9 +3586,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Света Изабела</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Хонолулу</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Координирано универзално време</standard>
@@ -3709,12 +3705,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Брокен Хил</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Курие</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Мелбурн</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Курие</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Хобарт</exemplarCity>
</zone>
@@ -4747,6 +4743,9 @@
<zone type="America/Nome">
<exemplarCity>Ном</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Хонолулу</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Џонстон</exemplarCity>
</zone>
@@ -5906,12 +5905,12 @@
</currencyFormatLength>
<currencyFormatLength type="short">
<currencyFormat type="standard">
- <pattern type="1000" count="one">0 илј'.' ¤ </pattern>
- <pattern type="1000" count="other">0 илј'.' ¤ </pattern>
- <pattern type="10000" count="one">00 илј'.' ¤ </pattern>
- <pattern type="10000" count="other">00 илј'.' ¤ </pattern>
- <pattern type="100000" count="one">000 илј'.' ¤ </pattern>
- <pattern type="100000" count="other">000 илј'.' ¤ </pattern>
+ <pattern type="1000" count="one">0 илј'.' ¤</pattern>
+ <pattern type="1000" count="other">0 илј'.' ¤</pattern>
+ <pattern type="10000" count="one">00 илј'.' ¤</pattern>
+ <pattern type="10000" count="other">00 илј'.' ¤</pattern>
+ <pattern type="100000" count="one">000 илј'.' ¤</pattern>
+ <pattern type="100000" count="other">000 илј'.' ¤</pattern>
<pattern type="1000000" count="one">0 мил'.' ¤</pattern>
<pattern type="1000000" count="other">0 мил'.' ¤</pattern>
<pattern type="10000000" count="one">00 мил'.' ¤</pattern>
@@ -7159,7 +7158,7 @@
<displayName>Западноафрикански франк</displayName>
<displayName count="one">Западноафрикански франк</displayName>
<displayName count="other">Западноафрикански франци</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>ЦФП франк</displayName>
@@ -7429,7 +7428,7 @@
<unitPattern count="one">{0} карат</unitPattern>
<unitPattern count="other">{0} карати</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>милиграм по децилитар</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -8464,7 +8463,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -8810,9 +8809,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -8934,9 +8933,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>американски тони</displayName>
@@ -9616,8 +9615,8 @@
<unitPattern count="other">{0}mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <unitPattern count="one">{0} µм</unitPattern>
- <unitPattern count="other">{0} µм</unitPattern>
+ <unitPattern count="one">{0} μм</unitPattern>
+ <unitPattern count="other">{0} μм</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName draft="contributed">нм</displayName>
@@ -9713,8 +9712,8 @@
<unitPattern count="other">{0} мг</unitPattern>
</unit>
<unit type="mass-microgram">
- <unitPattern count="one">{0} µг</unitPattern>
- <unitPattern count="other">{0} µг</unitPattern>
+ <unitPattern count="one">{0} μг</unitPattern>
+ <unitPattern count="other">{0} μг</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>тони</displayName>
diff --git a/common/main/ml.xml b/common/main/ml.xml
index b4e6501..7e7f4ae 100644
--- a/common/main/ml.xml
+++ b/common/main/ml.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -421,7 +421,6 @@
<language type="ro_MD">മോൾഡാവിയൻ</language>
<language type="rof">റോംബോ</language>
<language type="rom">റൊമാനി</language>
- <language type="root">മൂലഭാഷ</language>
<language type="ru">റഷ്യൻ</language>
<language type="rup">ആരോമാനിയൻ</language>
<language type="rw">കിന്യാർവാണ്ട</language>
@@ -3425,9 +3424,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>സാന്ത ഇസബേൽ</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>ഹോണലൂലു</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>കോർഡിനേറ്റഡ് യൂണിവേഴ്സൽ ടൈം</standard>
@@ -3547,12 +3543,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>ബ്രോക്കൺ ഹിൽ</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>ക്യൂറി</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>മെൽബൺ</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>ക്യൂറി</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>ഹൊബാർട്ട്</exemplarCity>
</zone>
@@ -4585,6 +4581,9 @@
<zone type="America/Nome">
<exemplarCity>നോം</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>ഹോണലൂലു</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>ജോൺസ്റ്റൺ</exemplarCity>
</zone>
@@ -7371,7 +7370,7 @@
<displayName>പശ്ചിമ ആഫ്രിക്കൻ [CFA] ഫ്രാങ്ക്</displayName>
<displayName count="one">പശ്ചിമ ആഫ്രിക്കൻ [CFA] ഫ്രാങ്ക്</displayName>
<displayName count="other">പശ്ചിമ ആഫ്രിക്കൻ [CFA] ഫ്രാങ്ക്</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>പലാഡിയം</displayName>
@@ -7677,7 +7676,7 @@
<unitPattern count="one">{0} ക്യാരറ്റ്</unitPattern>
<unitPattern count="other">{0} ക്യാരറ്റ്</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>മില്ലിഗ്രാം / ഡെസിലിറ്റർ</displayName>
<unitPattern count="one">{0} മില്ലിഗ്രാം / ഡെസിലിറ്റർ</unitPattern>
<unitPattern count="other">{0} മില്ലിഗ്രാം / ഡെസിലിറ്റർ</unitPattern>
@@ -8712,7 +8711,7 @@
<unitPattern count="one">{0} ക്യാ.</unitPattern>
<unitPattern count="other">{0} ക്യാ.</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>മി.ഗ്രാം/ഡെ.ലി.</displayName>
<unitPattern count="one">{0} മി.ഗ്രാം/ഡെ.ലി.</unitPattern>
<unitPattern count="other">{0} മി.ഗ്രാം/ഡെ.ലി.</unitPattern>
@@ -9058,9 +9057,9 @@
<unitPattern count="other">{0} മി.മീ.</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µമീറ്റർ</displayName>
- <unitPattern count="one">µമീ.</unitPattern>
- <unitPattern count="other">{0} µമീ.</unitPattern>
+ <displayName>μമീറ്റർ</displayName>
+ <unitPattern count="one">μമീ.</unitPattern>
+ <unitPattern count="other">{0} μമീ.</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>നാ.മീ.</displayName>
@@ -9182,9 +9181,9 @@
<unitPattern count="other">{0} മി.ഗ്രാം.</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µ.ഗ്രാം.</displayName>
- <unitPattern count="one">{0} µ.ഗ്രാം.</unitPattern>
- <unitPattern count="other">{0} µ.ഗ്രാം.</unitPattern>
+ <displayName>μ.ഗ്രാം.</displayName>
+ <unitPattern count="one">{0} μ.ഗ്രാം.</unitPattern>
+ <unitPattern count="other">{0} μ.ഗ്രാം.</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>ടൺ</displayName>
@@ -9795,9 +9794,9 @@
<unitPattern count="other">{0} മി.മീ.</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName draft="contributed">µമീ.</displayName>
- <unitPattern count="one" draft="contributed">{0}µമീ.</unitPattern>
- <unitPattern count="other" draft="contributed">{0}µമീ.</unitPattern>
+ <displayName draft="contributed">μമീ.</displayName>
+ <unitPattern count="one" draft="contributed">{0}μമീ.</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}μമീ.</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName draft="contributed">നാ.മീ.</displayName>
@@ -9894,9 +9893,9 @@
<unitPattern count="other" draft="contributed">{0}മി.ഗ്രാം.</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName draft="contributed">µ.ഗ്രാം.</displayName>
- <unitPattern count="one" draft="contributed">{0}µ.ഗ്രാം.</unitPattern>
- <unitPattern count="other" draft="contributed">{0}µ.ഗ്രാം.</unitPattern>
+ <displayName draft="contributed">μ.ഗ്രാം.</displayName>
+ <unitPattern count="one" draft="contributed">{0}μ.ഗ്രാം.</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}μ.ഗ്രാം.</unitPattern>
</unit>
<unit type="mass-ton">
<displayName draft="contributed">ടൺ</displayName>
diff --git a/common/main/mn.xml b/common/main/mn.xml
index 5ddf4bb..1084142 100644
--- a/common/main/mn.xml
+++ b/common/main/mn.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -318,7 +318,6 @@
<language type="ro">румын</language>
<language type="ro_MD">молдав</language>
<language type="rof">ромбо</language>
- <language type="root">рут</language>
<language type="ru">орос</language>
<language type="rup">ароманы</language>
<language type="rw">киньяруанда</language>
@@ -2370,9 +2369,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Санта Изабель</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Хонолулу</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Олон улсын зохицуулалттай цаг</standard>
@@ -2492,12 +2488,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Брокен Хилл</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Кюрри</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Мельбурн</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Кюрри</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Хобарт</exemplarCity>
</zone>
@@ -3530,6 +3526,9 @@
<zone type="America/Nome">
<exemplarCity>Ном</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Хонолулу</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Жонстон</exemplarCity>
</zone>
@@ -5722,7 +5721,7 @@
<displayName>Баруун Африкийн франк</displayName>
<displayName count="one">Баруун Африкийн франк</displayName>
<displayName count="other">Баруун Африкийн франк</displayName>
- <symbol>CFA</symbol>
+ <symbol>F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>Францын колонийн франк</displayName>
@@ -5970,7 +5969,7 @@
<unitPattern count="one">{0} карат</unitPattern>
<unitPattern count="other">{0} карат</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>мг/дл</displayName>
<unitPattern count="one">{0} мг/дл</unitPattern>
<unitPattern count="other">{0} мг/дл</unitPattern>
@@ -6820,7 +6819,7 @@
<unitPrefixPattern>м{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>н{0}</unitPrefixPattern>
@@ -7005,7 +7004,7 @@
<unitPattern count="one">{0} кар</unitPattern>
<unitPattern count="other">{0} кар</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>мг/дл</displayName>
<unitPattern count="one">{0} мг/дл</unitPattern>
<unitPattern count="other">{0} мг/дл</unitPattern>
@@ -7351,9 +7350,9 @@
<unitPattern count="other">{0} мм</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µметр</displayName>
- <unitPattern count="one">{0} µм</unitPattern>
- <unitPattern count="other">{0} µм</unitPattern>
+ <displayName>μметр</displayName>
+ <unitPattern count="one">{0} μм</unitPattern>
+ <unitPattern count="other">{0} μм</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>нм</displayName>
@@ -7475,9 +7474,9 @@
<unitPattern count="other">{0} мг</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µг</displayName>
- <unitPattern count="one">{0} µг</unitPattern>
- <unitPattern count="other">{0} µг</unitPattern>
+ <displayName>μг</displayName>
+ <unitPattern count="one">{0} μг</unitPattern>
+ <unitPattern count="other">{0} μг</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>америк тонн</displayName>
@@ -7855,7 +7854,7 @@
<unitPrefixPattern>м{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>н{0}</unitPrefixPattern>
diff --git a/common/main/mr.xml b/common/main/mr.xml
index 13033bd..0a4bdd0 100644
--- a/common/main/mr.xml
+++ b/common/main/mr.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -409,7 +409,6 @@
<language type="ro_MD">मोल्डाव्हियन</language>
<language type="rof">रोम्बो</language>
<language type="rom">रोमानी</language>
- <language type="root">रूट</language>
<language type="ru">रशियन</language>
<language type="rup">अरोमानियन</language>
<language type="rw">किन्यार्वान्डा</language>
@@ -3333,9 +3332,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>सांता इसाबेल</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>होनोलुलू</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>समन्वित वैश्विक वेळ</standard>
@@ -3455,12 +3451,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>ब्रोकन हिल</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>कुह्री</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>मेलबोर्न</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>कुह्री</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>होबार्ट</exemplarCity>
</zone>
@@ -4493,6 +4489,9 @@
<zone type="America/Nome">
<exemplarCity>नोम</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>होनोलुलू</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>जोहान्स्टन</exemplarCity>
</zone>
@@ -6811,7 +6810,7 @@
<displayName>पश्चिम आफ्रिकन [CFA] फ्रँक</displayName>
<displayName count="one">पश्चिम आफ्रिकन [CFA] फ्रँक</displayName>
<displayName count="other">पश्चिम आफ्रिकन [CFA] फ्रँक्स</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>[CFP] फ्रँक</displayName>
@@ -7060,7 +7059,7 @@
<unitPattern count="one">{0} कॅरेट</unitPattern>
<unitPattern count="other">{0} कॅरेट्स</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>मिलीग्रामस् पर डेसीलिटर</displayName>
<unitPattern count="one">{0} मिलीग्राम पर डेसीलिटर</unitPattern>
<unitPattern count="other">{0} मिलीग्रामस् पर डेसीलिटर</unitPattern>
@@ -7910,7 +7909,7 @@
<unitPrefixPattern>मि{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>नॅ{0}</unitPrefixPattern>
@@ -8095,7 +8094,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -8442,8 +8441,8 @@
</unit>
<unit type="length-micrometer">
<displayName>मायक्रोमीटर</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>नॅमी</displayName>
@@ -8565,9 +8564,9 @@
<unitPattern count="other">{0} मिग्रॅ</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>टन</displayName>
@@ -8945,7 +8944,7 @@
<unitPrefixPattern>मि{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>नॅ{0}</unitPrefixPattern>
@@ -9182,8 +9181,8 @@
</unit>
<unit type="length-micrometer">
<displayName draft="contributed">मायक्रोमीटर</displayName>
- <unitPattern count="one" draft="contributed">{0} µm</unitPattern>
- <unitPattern count="other" draft="contributed">{0} µm</unitPattern>
+ <unitPattern count="one" draft="contributed">{0} μm</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName draft="contributed">नॅमी</displayName>
diff --git a/common/main/ms.xml b/common/main/ms.xml
index 7c6c798..e428bb6 100644
--- a/common/main/ms.xml
+++ b/common/main/ms.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -360,7 +360,6 @@
<language type="ro">Romania</language>
<language type="ro_MD">Moldavia</language>
<language type="rof">Rombo</language>
- <language type="root">Root</language>
<language type="ru">Rusia</language>
<language type="rup">Aromanian</language>
<language type="rw">Kinyarwanda</language>
@@ -4190,9 +4189,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Waktu Universal Selaras</standard>
@@ -4315,12 +4311,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -5353,6 +5349,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -7825,7 +7824,7 @@
<currency type="XOF">
<displayName>Franc CFA BCEAO</displayName>
<displayName count="other">Franc CFA BCEAO</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<symbol draft="contributed">↑↑↑</symbol>
@@ -8106,7 +8105,7 @@
<displayName>karat</displayName>
<unitPattern count="other">{0} karat</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>miligram setiap desiliter</displayName>
<unitPattern count="other">{0} miligram setiap desiliter</unitPattern>
</unit>
@@ -8959,7 +8958,7 @@
<displayName>karat</displayName>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="other">{0} mg/dL</unitPattern>
</unit>
@@ -9238,8 +9237,8 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µmeter</displayName>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μmeter</displayName>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -9338,8 +9337,8 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tan</displayName>
@@ -9895,8 +9894,8 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName draft="contributed">µm</displayName>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName draft="contributed">μm</displayName>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -9979,8 +9978,8 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tan</displayName>
diff --git a/common/main/mt.xml b/common/main/mt.xml
index 9c6b62a..a5a0c25 100644
--- a/common/main/mt.xml
+++ b/common/main/mt.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -391,7 +391,6 @@
<language type="ro_MD">Moldovan</language>
<language type="rof">Rombo</language>
<language type="rom">Romanesk</language>
- <language type="root">Root</language>
<language type="ru">Russu</language>
<language type="rup">Aromanjan</language>
<language type="rw">Kinjarwanda</language>
@@ -2063,9 +2062,6 @@
<regionFormat type="daylight">{0} (+1)</regionFormat>
<regionFormat type="standard">{0} Ħin Standard</regionFormat>
<fallbackFormat>{1} ({0})</fallbackFormat>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/Unknown">
<exemplarCity>Belt Mhux Magħruf</exemplarCity>
</zone>
@@ -2141,12 +2137,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -3098,6 +3094,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -3887,7 +3886,7 @@
<symbol alt="narrow" draft="contributed">$</symbol>
</currency>
<currency type="XOF">
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<symbol draft="contributed">CFPF</symbol>
diff --git a/common/main/my.xml b/common/main/my.xml
index 1dd29c9..24e9509 100644
--- a/common/main/my.xml
+++ b/common/main/my.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -337,7 +337,6 @@
<language type="ro">ရိုမေနီယား</language>
<language type="ro_MD">မော်လဒိုဗာ</language>
<language type="rof">ရွမ်ဘို</language>
- <language type="root">မူလရင်းမြစ်</language>
<language type="ru">ရုရှ</language>
<language type="rup">အာရိုမန်းနီးယန်း</language>
<language type="rw">ကင်ရာဝန်ဒါ</language>
@@ -1622,9 +1621,9 @@
<greatestDifference id="y">G y – y</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="GyM">
- <greatestDifference id="G">GGGGG y-MM – GGGGG y-MM </greatestDifference>
+ <greatestDifference id="G">GGGGG y-MM – GGGGG y-MM</greatestDifference>
<greatestDifference id="M">GGGGG y-MM – y-MM</greatestDifference>
- <greatestDifference id="y">GGGGG y-MM – y-MM </greatestDifference>
+ <greatestDifference id="y">GGGGG y-MM – y-MM</greatestDifference>
</intervalFormatItem>
<intervalFormatItem id="GyMd">
<greatestDifference id="d">GGGGG y-MM-dd – y-MM-dd</greatestDifference>
@@ -1645,7 +1644,7 @@
</intervalFormatItem>
<intervalFormatItem id="GyMMMd">
<greatestDifference id="d">G y MMM d – d</greatestDifference>
- <greatestDifference id="G">G y MMM d – G y MMM d </greatestDifference>
+ <greatestDifference id="G">G y MMM d – G y MMM d</greatestDifference>
<greatestDifference id="M">G y MMM d – MMM d</greatestDifference>
<greatestDifference id="y">G y MMM d – y MMM d</greatestDifference>
</intervalFormatItem>
@@ -2324,9 +2323,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>ဆန်တာ အစ္ဇဘဲလ်</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>ဟိုနိုလူလူ</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>ညှိထားသည့် ကမ္ဘာ့ စံတော်ချိန်</standard>
@@ -2446,12 +2442,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>ဘရိုကင်ဟီးလ်</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>ကာရီ</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>မဲလ်ဘုန်း</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>ကာရီ</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>ဟိုးဘားတ်</exemplarCity>
</zone>
@@ -3484,6 +3480,9 @@
<zone type="America/Nome">
<exemplarCity>နိုမီ</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>ဟိုနိုလူလူ</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>ဂျွန်စတန်</exemplarCity>
</zone>
@@ -5593,7 +5592,7 @@
<currency type="XOF">
<displayName>အနောက် အာဖရိက CFA ဖရန့်</displayName>
<displayName count="other">အနောက် အာဖရိက CFA ဖရန့်</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>CFP ဖရန့်</displayName>
@@ -5819,7 +5818,7 @@
<displayName>ကာရက်</displayName>
<unitPattern count="other">{0} ကာရက်</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>တစ်ဒက်စီလီတာရှိ မီလီဂရမ်</displayName>
<unitPattern count="other">တစ်ဒက်စီလီတာရှိ {0} မီလီဂရမ်</unitPattern>
</unit>
@@ -6672,7 +6671,7 @@
<displayName>ကာရက်</displayName>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="other">{0} mg/dL</unitPattern>
</unit>
@@ -6952,7 +6951,7 @@
</unit>
<unit type="length-micrometer">
<displayName>မိုက်ခရိုမီတာ</displayName>
- <unitPattern count="other">{0} µm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -7051,8 +7050,8 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>တန်</displayName>
diff --git a/common/main/mzn.xml b/common/main/mzn.xml
index d8132a5..7211012 100644
--- a/common/main/mzn.xml
+++ b/common/main/mzn.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -1871,7 +1871,7 @@
<currency type="XOF">
<displayName>غربی آفریقای ِسیافای فرانک</displayName>
<displayName count="other">غربی آفریقای ِسیافای فرانک</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="YER">
<displayName>یمن ِریال</displayName>
@@ -2512,7 +2512,7 @@
</unit>
<unit type="mass-microgram">
<displayName>میکروگرم</displayName>
- <unitPattern count="other">{0} µg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>تُن</displayName>
diff --git a/common/main/nb.xml b/common/main/nb.xml
index 9f746e8..22e308d 100644
--- a/common/main/nb.xml
+++ b/common/main/nb.xml
@@ -4,16830 +4,10 @@
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
-
-Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ for derived annotations.
-->
<ldml>
<identity>
<version number="$Revision$"/>
<language type="nb"/>
</identity>
- <localeDisplayNames>
- <localeDisplayPattern>
- <localePattern>{0} ({1})</localePattern>
- <localeSeparator>{0}, {1}</localeSeparator>
- <localeKeyTypePattern>{0}: {1}</localeKeyTypePattern>
- </localeDisplayPattern>
- <languages>
- <language type="aa">afar</language>
- <language type="ab">abkhasisk</language>
- <language type="ace">achinesisk</language>
- <language type="ach">acoli</language>
- <language type="ada">adangme</language>
- <language type="ady">adygeisk</language>
- <language type="ae">avestisk</language>
- <language type="aeb">tunisisk-arabisk</language>
- <language type="af">afrikaans</language>
- <language type="afh">afrihili</language>
- <language type="agq">aghem</language>
- <language type="ain">ainu</language>
- <language type="ak">akan</language>
- <language type="akk">akkadisk</language>
- <language type="akz">alabama</language>
- <language type="ale">aleutisk</language>
- <language type="aln">gegisk-albansk</language>
- <language type="alt">søraltaisk</language>
- <language type="am">amharisk</language>
- <language type="an">aragonsk</language>
- <language type="ang">gammelengelsk</language>
- <language type="anp">angika</language>
- <language type="ar">arabisk</language>
- <language type="ar_001">moderne standardarabisk</language>
- <language type="arc">arameisk</language>
- <language type="arn">mapudungun</language>
- <language type="aro">araona</language>
- <language type="arp">arapaho</language>
- <language type="arq">algerisk arabisk</language>
- <language type="ars">najdi-arabisk</language>
- <language type="ars" alt="menu">arabisk (najd)</language>
- <language type="arw">arawak</language>
- <language type="ary">marokkansk-arabisk</language>
- <language type="arz">egyptisk arabisk</language>
- <language type="as">assamesisk</language>
- <language type="asa">asu</language>
- <language type="ase">amerikansk tegnspråk</language>
- <language type="ast">asturisk</language>
- <language type="av">avarisk</language>
- <language type="avk">kotava</language>
- <language type="awa">avadhi</language>
- <language type="ay">aymara</language>
- <language type="az">aserbajdsjansk</language>
- <language type="az" alt="short">azeri</language>
- <language type="ba">basjkirsk</language>
- <language type="bal">baluchi</language>
- <language type="ban">balinesisk</language>
- <language type="bar">bairisk</language>
- <language type="bas">basaa</language>
- <language type="bax">bamun</language>
- <language type="bbc">batak toba</language>
- <language type="bbj">ghomala</language>
- <language type="be">hviterussisk</language>
- <language type="bej">beja</language>
- <language type="bem">bemba</language>
- <language type="bew">betawi</language>
- <language type="bez">bena</language>
- <language type="bfd">bafut</language>
- <language type="bfq">badaga</language>
- <language type="bg">bulgarsk</language>
- <language type="bgn">vestbalutsji</language>
- <language type="bho">bhojpuri</language>
- <language type="bi">bislama</language>
- <language type="bik">bikol</language>
- <language type="bin">bini</language>
- <language type="bjn">banjar</language>
- <language type="bkm">kom</language>
- <language type="bla">siksika</language>
- <language type="bm">bambara</language>
- <language type="bn">bengali</language>
- <language type="bo">tibetansk</language>
- <language type="bpy">bishnupriya</language>
- <language type="bqi">bakhtiari</language>
- <language type="br">bretonsk</language>
- <language type="bra">braj</language>
- <language type="brh">brahui</language>
- <language type="brx">bodo</language>
- <language type="bs">bosnisk</language>
- <language type="bss">akose</language>
- <language type="bua">burjatisk</language>
- <language type="bug">buginesisk</language>
- <language type="bum">bulu</language>
- <language type="byn">blin</language>
- <language type="byv">medumba</language>
- <language type="ca">katalansk</language>
- <language type="cad">caddo</language>
- <language type="car">karibisk</language>
- <language type="cay">cayuga</language>
- <language type="cch">atsam</language>
- <language type="ccp">chakma</language>
- <language type="ce">tsjetsjensk</language>
- <language type="ceb">cebuansk</language>
- <language type="cgg">kiga</language>
- <language type="ch">chamorro</language>
- <language type="chb">chibcha</language>
- <language type="chg">tsjagatai</language>
- <language type="chk">chuukesisk</language>
- <language type="chm">mari</language>
- <language type="chn">chinook</language>
- <language type="cho">choctaw</language>
- <language type="chp">chipewiansk</language>
- <language type="chr">cherokesisk</language>
- <language type="chy">cheyenne</language>
- <language type="ckb">kurdisk (sorani)</language>
- <language type="ckb" alt="menu">kurdisk (sentral)</language>
- <language type="ckb" alt="variant">↑↑↑</language>
- <language type="co">korsikansk</language>
- <language type="cop">koptisk</language>
- <language type="cps">kapiz</language>
- <language type="cr">cree</language>
- <language type="crh">krimtatarisk</language>
- <language type="crs">seselwa</language>
- <language type="cs">tsjekkisk</language>
- <language type="csb">kasjubisk</language>
- <language type="cu">kirkeslavisk</language>
- <language type="cv">tsjuvasjisk</language>
- <language type="cy">walisisk</language>
- <language type="da">dansk</language>
- <language type="dak">dakota</language>
- <language type="dar">dargwa</language>
- <language type="dav">taita</language>
- <language type="de">tysk</language>
- <language type="de_AT">↑↑↑</language>
- <language type="de_CH">↑↑↑</language>
- <language type="del">delaware</language>
- <language type="den">slavey</language>
- <language type="dgr">dogrib</language>
- <language type="din">dinka</language>
- <language type="dje">zarma</language>
- <language type="doi">dogri</language>
- <language type="dsb">lavsorbisk</language>
- <language type="dtp">sentraldusun</language>
- <language type="dua">duala</language>
- <language type="dum">mellomnederlandsk</language>
- <language type="dv">divehi</language>
- <language type="dyo">jola-fonyi</language>
- <language type="dyu">dyula</language>
- <language type="dz">dzongkha</language>
- <language type="dzg">dazaga</language>
- <language type="ebu">kiembu</language>
- <language type="ee">ewe</language>
- <language type="efi">efik</language>
- <language type="egl">emiliansk</language>
- <language type="egy">gammelegyptisk</language>
- <language type="eka">ekajuk</language>
- <language type="el">gresk</language>
- <language type="elx">elamittisk</language>
- <language type="en">engelsk</language>
- <language type="en_AU">↑↑↑</language>
- <language type="en_CA">↑↑↑</language>
- <language type="en_GB">↑↑↑</language>
- <language type="en_GB" alt="short">↑↑↑</language>
- <language type="en_US">↑↑↑</language>
- <language type="en_US" alt="short">↑↑↑</language>
- <language type="enm">mellomengelsk</language>
- <language type="eo">esperanto</language>
- <language type="es">spansk</language>
- <language type="es_419">↑↑↑</language>
- <language type="es_ES">↑↑↑</language>
- <language type="es_MX">↑↑↑</language>
- <language type="esu">sentralyupik</language>
- <language type="et">estisk</language>
- <language type="eu">baskisk</language>
- <language type="ewo">ewondo</language>
- <language type="ext">ekstremaduransk</language>
- <language type="fa">persisk</language>
- <language type="fa_AF">dari</language>
- <language type="fan">fang</language>
- <language type="fat">fanti</language>
- <language type="ff">fulfulde</language>
- <language type="fi">finsk</language>
- <language type="fil">filipino</language>
- <language type="fit">tornedalsfinsk</language>
- <language type="fj">fijiansk</language>
- <language type="fo">færøysk</language>
- <language type="fon">fon</language>
- <language type="fr">fransk</language>
- <language type="fr_CA">↑↑↑</language>
- <language type="fr_CH">↑↑↑</language>
- <language type="frc">cajunfransk</language>
- <language type="frm">mellomfransk</language>
- <language type="fro">gammelfransk</language>
- <language type="frp">arpitansk</language>
- <language type="frr">nordfrisisk</language>
- <language type="frs">østfrisisk</language>
- <language type="fur">friuliansk</language>
- <language type="fy">vestfrisisk</language>
- <language type="ga">irsk</language>
- <language type="gaa">ga</language>
- <language type="gag">gagausisk</language>
- <language type="gan">gan</language>
- <language type="gay">gayo</language>
- <language type="gba">gbaya</language>
- <language type="gbz">zoroastrisk dari</language>
- <language type="gd">skotsk-gælisk</language>
- <language type="gez">geez</language>
- <language type="gil">kiribatisk</language>
- <language type="gl">galisisk</language>
- <language type="glk">gileki</language>
- <language type="gmh">mellomhøytysk</language>
- <language type="gn">guarani</language>
- <language type="goh">gammelhøytysk</language>
- <language type="gom">goansk konkani</language>
- <language type="gon">gondi</language>
- <language type="gor">gorontalo</language>
- <language type="got">gotisk</language>
- <language type="grb">grebo</language>
- <language type="grc">gammelgresk</language>
- <language type="gsw">sveitsertysk</language>
- <language type="gu">gujarati</language>
- <language type="guc">wayuu</language>
- <language type="gur">frafra</language>
- <language type="guz">gusii</language>
- <language type="gv">mansk</language>
- <language type="gwi">gwichin</language>
- <language type="ha">hausa</language>
- <language type="hai">haida</language>
- <language type="hak">hakka</language>
- <language type="haw">hawaiisk</language>
- <language type="he">hebraisk</language>
- <language type="hi">hindi</language>
- <language type="hif">fijiansk hindi</language>
- <language type="hil">hiligaynon</language>
- <language type="hit">hettittisk</language>
- <language type="hmn">hmong</language>
- <language type="ho">hiri motu</language>
- <language type="hr">kroatisk</language>
- <language type="hsb">høysorbisk</language>
- <language type="hsn">xiang</language>
- <language type="ht">haitisk</language>
- <language type="hu">ungarsk</language>
- <language type="hup">hupa</language>
- <language type="hy">armensk</language>
- <language type="hz">herero</language>
- <language type="ia">interlingua</language>
- <language type="iba">iban</language>
- <language type="ibb">ibibio</language>
- <language type="id">indonesisk</language>
- <language type="ie">interlingue</language>
- <language type="ig">ibo</language>
- <language type="ii">sichuan-yi</language>
- <language type="ik">inupiak</language>
- <language type="ilo">iloko</language>
- <language type="inh">ingusjisk</language>
- <language type="io">ido</language>
- <language type="is">islandsk</language>
- <language type="it">italiensk</language>
- <language type="iu">inuktitut</language>
- <language type="izh">ingrisk</language>
- <language type="ja">japansk</language>
- <language type="jam">jamaicansk kreolengelsk</language>
- <language type="jbo">lojban</language>
- <language type="jgo">ngomba</language>
- <language type="jmc">machame</language>
- <language type="jpr">jødepersisk</language>
- <language type="jrb">jødearabisk</language>
- <language type="jut">jysk</language>
- <language type="jv">javanesisk</language>
- <language type="ka">georgisk</language>
- <language type="kaa">karakalpakisk</language>
- <language type="kab">kabylsk</language>
- <language type="kac">kachin</language>
- <language type="kaj">jju</language>
- <language type="kam">kamba</language>
- <language type="kaw">kawi</language>
- <language type="kbd">kabardisk</language>
- <language type="kbl">kanembu</language>
- <language type="kcg">tyap</language>
- <language type="kde">makonde</language>
- <language type="kea">kappverdisk</language>
- <language type="ken">kenyang</language>
- <language type="kfo">koro</language>
- <language type="kg">kikongo</language>
- <language type="kgp">kaingang</language>
- <language type="kha">khasi</language>
- <language type="kho">khotanesisk</language>
- <language type="khq">koyra chiini</language>
- <language type="khw">khowar</language>
- <language type="ki">kikuyu</language>
- <language type="kiu">kirmancki</language>
- <language type="kj">kuanyama</language>
- <language type="kk">kasakhisk</language>
- <language type="kkj">kako</language>
- <language type="kl">grønlandsk</language>
- <language type="kln">kalenjin</language>
- <language type="km">khmer</language>
- <language type="kmb">kimbundu</language>
- <language type="kn">kannada</language>
- <language type="ko">koreansk</language>
- <language type="koi">komipermjakisk</language>
- <language type="kok">konkani</language>
- <language type="kos">kosraeansk</language>
- <language type="kpe">kpelle</language>
- <language type="kr">kanuri</language>
- <language type="krc">karatsjajbalkarsk</language>
- <language type="kri">krio</language>
- <language type="krj">kinaray-a</language>
- <language type="krl">karelsk</language>
- <language type="kru">kurukh</language>
- <language type="ks">kasjmiri</language>
- <language type="ksb">shambala</language>
- <language type="ksf">bafia</language>
- <language type="ksh">kølnsk</language>
- <language type="ku">kurdisk</language>
- <language type="kum">kumykisk</language>
- <language type="kut">kutenai</language>
- <language type="kv">komi</language>
- <language type="kw">kornisk</language>
- <language type="ky">kirgisisk</language>
- <language type="la">latin</language>
- <language type="lad">ladinsk</language>
- <language type="lag">langi</language>
- <language type="lah">lahnda</language>
- <language type="lam">lamba</language>
- <language type="lb">luxemburgsk</language>
- <language type="lez">lesgisk</language>
- <language type="lfn">lingua franca nova</language>
- <language type="lg">ganda</language>
- <language type="li">limburgsk</language>
- <language type="lij">ligurisk</language>
- <language type="liv">livisk</language>
- <language type="lkt">lakota</language>
- <language type="lmo">lombardisk</language>
- <language type="ln">lingala</language>
- <language type="lo">laotisk</language>
- <language type="lol">mongo</language>
- <language type="lou">louisianakreolsk</language>
- <language type="loz">lozi</language>
- <language type="lrc">nord-luri</language>
- <language type="lt">litauisk</language>
- <language type="ltg">latgallisk</language>
- <language type="lu">luba-katanga</language>
- <language type="lua">luba-lulua</language>
- <language type="lui">luiseno</language>
- <language type="lun">lunda</language>
- <language type="luo">luo</language>
- <language type="lus">mizo</language>
- <language type="luy">luhya</language>
- <language type="lv">latvisk</language>
- <language type="lzh">klassisk kinesisk</language>
- <language type="lzz">lazisk</language>
- <language type="mad">maduresisk</language>
- <language type="maf">mafa</language>
- <language type="mag">magahi</language>
- <language type="mai">maithili</language>
- <language type="mak">makasar</language>
- <language type="man">mandingo</language>
- <language type="mas">masai</language>
- <language type="mde">maba</language>
- <language type="mdf">moksja</language>
- <language type="mdr">mandar</language>
- <language type="men">mende</language>
- <language type="mer">meru</language>
- <language type="mfe">mauritisk-kreolsk</language>
- <language type="mg">gassisk</language>
- <language type="mga">mellomirsk</language>
- <language type="mgh">makhuwa-meetto</language>
- <language type="mgo">meta’</language>
- <language type="mh">marshallesisk</language>
- <language type="mi">maori</language>
- <language type="mic">micmac</language>
- <language type="min">minangkabau</language>
- <language type="mk">makedonsk</language>
- <language type="ml">malayalam</language>
- <language type="mn">mongolsk</language>
- <language type="mnc">mandsju</language>
- <language type="mni">manipuri</language>
- <language type="moh">mohawk</language>
- <language type="mos">mossi</language>
- <language type="mr">marathi</language>
- <language type="mrj">vestmarisk</language>
- <language type="ms">malayisk</language>
- <language type="mt">maltesisk</language>
- <language type="mua">mundang</language>
- <language type="mul">flere språk</language>
- <language type="mus">creek</language>
- <language type="mwl">mirandesisk</language>
- <language type="mwr">marwari</language>
- <language type="mwv">mentawai</language>
- <language type="my">burmesisk</language>
- <language type="mye">myene</language>
- <language type="myv">erzia</language>
- <language type="mzn">mazandarani</language>
- <language type="na">nauru</language>
- <language type="nan">minnan</language>
- <language type="nap">napolitansk</language>
- <language type="naq">nama</language>
- <language type="nb">norsk bokmål</language>
- <language type="nd">nord-ndebele</language>
- <language type="nds">nedertysk</language>
- <language type="nds_NL">nedersaksisk</language>
- <language type="ne">nepali</language>
- <language type="new">newari</language>
- <language type="ng">ndonga</language>
- <language type="nia">nias</language>
- <language type="niu">niueansk</language>
- <language type="njo">ao naga</language>
- <language type="nl">nederlandsk</language>
- <language type="nl_BE">flamsk</language>
- <language type="nmg">kwasio</language>
- <language type="nn">norsk nynorsk</language>
- <language type="nnh">ngiemboon</language>
- <language type="no">norsk</language>
- <language type="nog">nogaisk</language>
- <language type="non">gammelnorsk</language>
- <language type="nov">novial</language>
- <language type="nqo">nʼko</language>
- <language type="nr">sør-ndebele</language>
- <language type="nso">nord-sotho</language>
- <language type="nus">nuer</language>
- <language type="nv">navajo</language>
- <language type="nwc">klassisk newari</language>
- <language type="ny">nyanja</language>
- <language type="nym">nyamwezi</language>
- <language type="nyn">nyankole</language>
- <language type="nyo">nyoro</language>
- <language type="nzi">nzima</language>
- <language type="oc">oksitansk</language>
- <language type="oj">ojibwa</language>
- <language type="om">oromo</language>
- <language type="or">odia</language>
- <language type="os">ossetisk</language>
- <language type="osa">osage</language>
- <language type="ota">ottomansk tyrkisk</language>
- <language type="pa">panjabi</language>
- <language type="pag">pangasinan</language>
- <language type="pal">pahlavi</language>
- <language type="pam">pampanga</language>
- <language type="pap">papiamento</language>
- <language type="pau">palauisk</language>
- <language type="pcd">pikardisk</language>
- <language type="pcm">nigeriansk pidginspråk</language>
- <language type="pdc">pennsylvaniatysk</language>
- <language type="pdt">plautdietsch</language>
- <language type="peo">gammelpersisk</language>
- <language type="pfl">palatintysk</language>
- <language type="phn">fønikisk</language>
- <language type="pi">pali</language>
- <language type="pl">polsk</language>
- <language type="pms">piemontesisk</language>
- <language type="pnt">pontisk</language>
- <language type="pon">ponapisk</language>
- <language type="prg">prøyssisk</language>
- <language type="pro">gammelprovençalsk</language>
- <language type="ps">pashto</language>
- <language type="ps" alt="variant">pushto</language>
- <language type="pt">portugisisk</language>
- <language type="pt_BR">↑↑↑</language>
- <language type="pt_PT">↑↑↑</language>
- <language type="qu">quechua</language>
- <language type="quc">k’iche’</language>
- <language type="qug">kichwa (Chimborazo-høylandet)</language>
- <language type="raj">rajasthani</language>
- <language type="rap">rapanui</language>
- <language type="rar">rarotongansk</language>
- <language type="rgn">romagnolsk</language>
- <language type="rif">riff</language>
- <language type="rm">retoromansk</language>
- <language type="rn">rundi</language>
- <language type="ro">rumensk</language>
- <language type="ro_MD">moldovsk</language>
- <language type="rof">rombo</language>
- <language type="rom">romani</language>
- <language type="root">rot</language>
- <language type="rtm">rotumansk</language>
- <language type="ru">russisk</language>
- <language type="rue">rusinsk</language>
- <language type="rug">roviana</language>
- <language type="rup">aromansk</language>
- <language type="rw">kinyarwanda</language>
- <language type="rwk">rwa</language>
- <language type="sa">sanskrit</language>
- <language type="sad">sandawe</language>
- <language type="sah">sakha</language>
- <language type="sam">samaritansk arameisk</language>
- <language type="saq">samburu</language>
- <language type="sas">sasak</language>
- <language type="sat">santali</language>
- <language type="saz">saurashtra</language>
- <language type="sba">ngambay</language>
- <language type="sbp">sangu</language>
- <language type="sc">sardisk</language>
- <language type="scn">siciliansk</language>
- <language type="sco">skotsk</language>
- <language type="sd">sindhi</language>
- <language type="sdc">sassaresisk sardisk</language>
- <language type="sdh">sørkurdisk</language>
- <language type="se">nordsamisk</language>
- <language type="see">seneca</language>
- <language type="seh">sena</language>
- <language type="sei">seri</language>
- <language type="sel">selkupisk</language>
- <language type="ses">koyraboro senni</language>
- <language type="sg">sango</language>
- <language type="sga">gammelirsk</language>
- <language type="sgs">samogitisk</language>
- <language type="sh">serbokroatisk</language>
- <language type="shi">tachelhit</language>
- <language type="shn">shan</language>
- <language type="shu">tsjadisk arabisk</language>
- <language type="si">singalesisk</language>
- <language type="sid">sidamo</language>
- <language type="sk">slovakisk</language>
- <language type="sl">slovensk</language>
- <language type="sli">lavschlesisk</language>
- <language type="sly">selayar</language>
- <language type="sm">samoansk</language>
- <language type="sma">sørsamisk</language>
- <language type="smj">lulesamisk</language>
- <language type="smn">enaresamisk</language>
- <language type="sms">skoltesamisk</language>
- <language type="sn">shona</language>
- <language type="snk">soninke</language>
- <language type="so">somali</language>
- <language type="sog">sogdisk</language>
- <language type="sq">albansk</language>
- <language type="sr">serbisk</language>
- <language type="srn">sranan</language>
- <language type="srr">serer</language>
- <language type="ss">swati</language>
- <language type="ssy">saho</language>
- <language type="st">sør-sotho</language>
- <language type="stq">saterfrisisk</language>
- <language type="su">sundanesisk</language>
- <language type="suk">sukuma</language>
- <language type="sus">susu</language>
- <language type="sux">sumerisk</language>
- <language type="sv">svensk</language>
- <language type="sw">swahili</language>
- <language type="sw_CD">kongolesisk swahili</language>
- <language type="swb">komorisk</language>
- <language type="syc">klassisk syrisk</language>
- <language type="syr">syriakisk</language>
- <language type="szl">schlesisk</language>
- <language type="ta">tamil</language>
- <language type="tcy">tulu</language>
- <language type="te">telugu</language>
- <language type="tem">temne</language>
- <language type="teo">teso</language>
- <language type="ter">tereno</language>
- <language type="tet">tetum</language>
- <language type="tg">tadsjikisk</language>
- <language type="th">thai</language>
- <language type="ti">tigrinja</language>
- <language type="tig">tigré</language>
- <language type="tiv">tiv</language>
- <language type="tk">turkmensk</language>
- <language type="tkl">tokelauisk</language>
- <language type="tkr">tsakhursk</language>
- <language type="tl">tagalog</language>
- <language type="tlh">klingon</language>
- <language type="tli">tlingit</language>
- <language type="tly">talysj</language>
- <language type="tmh">tamasjek</language>
- <language type="tn">setswana</language>
- <language type="to">tongansk</language>
- <language type="tog">nyasa-tongansk</language>
- <language type="tpi">tok pisin</language>
- <language type="tr">tyrkisk</language>
- <language type="tru">turoyo</language>
- <language type="trv">taroko</language>
- <language type="ts">tsonga</language>
- <language type="tsd">tsakonisk</language>
- <language type="tsi">tsimshian</language>
- <language type="tt">tatarisk</language>
- <language type="ttt">muslimsk tat</language>
- <language type="tum">tumbuka</language>
- <language type="tvl">tuvalsk</language>
- <language type="tw">twi</language>
- <language type="twq">tasawaq</language>
- <language type="ty">tahitisk</language>
- <language type="tyv">tuvinsk</language>
- <language type="tzm">sentralmarokkansk tamazight</language>
- <language type="udm">udmurtisk</language>
- <language type="ug">uigurisk</language>
- <language type="uga">ugaritisk</language>
- <language type="uk">ukrainsk</language>
- <language type="umb">umbundu</language>
- <language type="und">ukjent språk</language>
- <language type="ur">urdu</language>
- <language type="uz">usbekisk</language>
- <language type="vai">vai</language>
- <language type="ve">venda</language>
- <language type="vec">venetiansk</language>
- <language type="vep">vepsisk</language>
- <language type="vi">vietnamesisk</language>
- <language type="vls">vestflamsk</language>
- <language type="vmf">Main-frankisk</language>
- <language type="vo">volapyk</language>
- <language type="vot">votisk</language>
- <language type="vro">sørestisk</language>
- <language type="vun">vunjo</language>
- <language type="wa">vallonsk</language>
- <language type="wae">walsertysk</language>
- <language type="wal">wolaytta</language>
- <language type="war">waray-waray</language>
- <language type="was">washo</language>
- <language type="wbp">warlpiri</language>
- <language type="wo">wolof</language>
- <language type="wuu">wu</language>
- <language type="xal">kalmukkisk</language>
- <language type="xh">xhosa</language>
- <language type="xmf">mingrelsk</language>
- <language type="xog">soga</language>
- <language type="yao">yao</language>
- <language type="yap">yapesisk</language>
- <language type="yav">yangben</language>
- <language type="ybb">yemba</language>
- <language type="yi">jiddisk</language>
- <language type="yo">joruba</language>
- <language type="yrl">nheengatu</language>
- <language type="yue">kantonesisk</language>
- <language type="yue" alt="menu">↑↑↑</language>
- <language type="za">zhuang</language>
- <language type="zap">zapotekisk</language>
- <language type="zbl">blissymboler</language>
- <language type="zea">zeeuws</language>
- <language type="zen">zenaga</language>
- <language type="zgh">standard marrokansk tamazight</language>
- <language type="zh">kinesisk</language>
- <language type="zh" alt="menu">kinesisk, mandarin</language>
- <language type="zh_Hans">forenklet kinesisk</language>
- <language type="zh_Hans" alt="long">forenklet mandarinkinesisk</language>
- <language type="zh_Hant">tradisjonell kinesisk</language>
- <language type="zh_Hant" alt="long">tradisjonell mandarinkinesisk</language>
- <language type="zu">zulu</language>
- <language type="zun">zuni</language>
- <language type="zxx">uten språklig innhold</language>
- <language type="zza">zazaisk</language>
- </languages>
- <scripts>
- <script type="Afak" draft="contributed">afaka</script>
- <script type="Aghb" draft="contributed">kaukasus-albansk</script>
- <script type="Ahom" draft="contributed">ahom</script>
- <script type="Arab">arabisk</script>
- <script type="Arab" alt="variant">persisk-arabisk</script>
- <script type="Aran" draft="contributed">nastaliq</script>
- <script type="Armi">arameisk</script>
- <script type="Armn">armensk</script>
- <script type="Avst">avestisk</script>
- <script type="Bali">balinesisk</script>
- <script type="Bamu" draft="contributed">bamum</script>
- <script type="Bass" draft="contributed">bassa vah</script>
- <script type="Batk">batak</script>
- <script type="Beng">bengalsk</script>
- <script type="Blis">blissymbol</script>
- <script type="Bopo">bopomofo</script>
- <script type="Brah">brahmi</script>
- <script type="Brai">punktskrift</script>
- <script type="Bugi">buginesisk</script>
- <script type="Buhd">buhid</script>
- <script type="Cakm">chakma</script>
- <script type="Cans">felles kanadiske urspråksstavelser</script>
- <script type="Cari">karisk</script>
- <script type="Cham">cham</script>
- <script type="Cher">cherokee</script>
- <script type="Cirt">cirth</script>
- <script type="Copt">koptisk</script>
- <script type="Cprt">kypriotisk</script>
- <script type="Cyrl">kyrillisk</script>
- <script type="Cyrs">kirkeslavisk kyrillisk</script>
- <script type="Deva">devanagari</script>
- <script type="Dsrt">deseret</script>
- <script type="Dupl" draft="contributed">duployan stenografi</script>
- <script type="Egyd">egyptisk demotisk</script>
- <script type="Egyh">egyptisk hieratisk</script>
- <script type="Egyp">egyptiske hieroglyfer</script>
- <script type="Elba" draft="contributed">elbasisk</script>
- <script type="Ethi">etiopisk</script>
- <script type="Geok">georgisk khutsuri</script>
- <script type="Geor">georgisk</script>
- <script type="Glag">glagolittisk</script>
- <script type="Goth">gotisk</script>
- <script type="Gran" draft="contributed">gammeltamilsk</script>
- <script type="Grek">gresk</script>
- <script type="Gujr">gujarati</script>
- <script type="Guru">gurmukhi</script>
- <script type="Hanb">han-kinesisk med bopomofo</script>
- <script type="Hang">hangul</script>
- <script type="Hani">han</script>
- <script type="Hano">hanunoo</script>
- <script type="Hans">forenklet</script>
- <script type="Hans" alt="stand-alone">forenklet han</script>
- <script type="Hant">tradisjonell</script>
- <script type="Hant" alt="stand-alone">tradisjonell han</script>
- <script type="Hatr" draft="contributed">hatransk armensk</script>
- <script type="Hebr">hebraisk</script>
- <script type="Hira">hiragana</script>
- <script type="Hluw" draft="contributed">anatoliske hieroglyfer</script>
- <script type="Hmng">pahawh hmong</script>
- <script type="Hrkt">japanske stavelsesskrifter</script>
- <script type="Hung">gammelungarsk</script>
- <script type="Inds">indus</script>
- <script type="Ital">gammelitalisk</script>
- <script type="Jamo">jamo</script>
- <script type="Java">javanesisk</script>
- <script type="Jpan">japansk</script>
- <script type="Jurc" draft="contributed">jurchen</script>
- <script type="Kali">kayah li</script>
- <script type="Kana">katakana</script>
- <script type="Khar">kharoshthi</script>
- <script type="Khmr">khmer</script>
- <script type="Khoj" draft="contributed">khojki</script>
- <script type="Knda">kannada</script>
- <script type="Kore">koreansk</script>
- <script type="Kpel" draft="contributed">kpelle</script>
- <script type="Kthi">kaithisk</script>
- <script type="Lana">lanna</script>
- <script type="Laoo">laotisk</script>
- <script type="Latf">frakturlatinsk</script>
- <script type="Latg">gælisk latinsk</script>
- <script type="Latn">latinsk</script>
- <script type="Lepc">lepcha</script>
- <script type="Limb">limbu</script>
- <script type="Lina">lineær A</script>
- <script type="Linb">lineær B</script>
- <script type="Lisu" draft="contributed">fraser</script>
- <script type="Loma" draft="contributed">loma</script>
- <script type="Lyci">lykisk</script>
- <script type="Lydi">lydisk</script>
- <script type="Mahj" draft="contributed">mahajani</script>
- <script type="Mand">mandaisk</script>
- <script type="Mani">manikeisk</script>
- <script type="Maya">maya-hieroglyfer</script>
- <script type="Mend" draft="contributed">mende</script>
- <script type="Merc" draft="contributed">meroitisk kursiv</script>
- <script type="Mero">meroitisk</script>
- <script type="Mlym">malayalam</script>
- <script type="Modi" draft="contributed">modi</script>
- <script type="Mong">mongolsk</script>
- <script type="Moon">moon</script>
- <script type="Mroo" draft="contributed">mro</script>
- <script type="Mtei">meitei-mayek</script>
- <script type="Mult" draft="contributed">multani</script>
- <script type="Mymr">burmesisk</script>
- <script type="Narb" draft="contributed">gammelnordarabisk</script>
- <script type="Nbat" draft="contributed">nabataeansk</script>
- <script type="Nkgb" draft="contributed">naxi geba</script>
- <script type="Nkoo">n’ko</script>
- <script type="Nshu" draft="contributed">nüshu</script>
- <script type="Ogam">ogham</script>
- <script type="Olck">ol-chiki</script>
- <script type="Orkh">orkhon</script>
- <script type="Orya">odia</script>
- <script type="Osma">osmanya</script>
- <script type="Palm" draft="contributed">palmyrensk</script>
- <script type="Pauc" draft="contributed">pau cin hau</script>
- <script type="Perm">gammelpermisk</script>
- <script type="Phag">phags-pa</script>
- <script type="Phli">inskripsjonspahlavi</script>
- <script type="Phlp">psalter pahlavi</script>
- <script type="Phlv">pahlavi</script>
- <script type="Phnx">fønikisk</script>
- <script type="Plrd">pollard-fonetisk</script>
- <script type="Prti">inskripsjonsparthisk</script>
- <script type="Qaag" draft="contributed">zawgyi</script>
- <script type="Rjng">rejang</script>
- <script type="Roro">rongorongo</script>
- <script type="Runr">runer</script>
- <script type="Samr">samaritansk</script>
- <script type="Sara">sarati</script>
- <script type="Sarb" draft="contributed">gammelsørarabisk</script>
- <script type="Saur">saurashtra</script>
- <script type="Sgnw">tegnskrift</script>
- <script type="Shaw">shavisk</script>
- <script type="Shrd" draft="contributed">sharada</script>
- <script type="Sidd" draft="contributed">siddham</script>
- <script type="Sind" draft="contributed">khudawadi</script>
- <script type="Sinh">singalesisk</script>
- <script type="Sora" draft="contributed">sora sompeng</script>
- <script type="Sund">sundanesisk</script>
- <script type="Sylo">syloti nagri</script>
- <script type="Syrc">syrisk</script>
- <script type="Syre">estrangelosyriakisk</script>
- <script type="Syrj">vestlig syriakisk</script>
- <script type="Syrn">østlig syriakisk</script>
- <script type="Tagb">tagbanwa</script>
- <script type="Takr" draft="contributed">takri</script>
- <script type="Tale">tai le</script>
- <script type="Talu">ny tai lue</script>
- <script type="Taml">tamilsk</script>
- <script type="Tang" draft="contributed">tangut</script>
- <script type="Tavt">tai viet</script>
- <script type="Telu">telugu</script>
- <script type="Teng">tengwar</script>
- <script type="Tfng">tifinagh</script>
- <script type="Tglg">tagalog</script>
- <script type="Thaa">taana</script>
- <script type="Thai">thai</script>
- <script type="Tibt">tibetansk</script>
- <script type="Tirh" draft="contributed">tirhuta</script>
- <script type="Ugar">ugaritisk</script>
- <script type="Vaii">vai</script>
- <script type="Visp">synlig tale</script>
- <script type="Wara" draft="contributed">varang kshiti</script>
- <script type="Wole" draft="contributed">woleai</script>
- <script type="Xpeo">gammelpersisk</script>
- <script type="Xsux">sumersk-akkadisk kileskrift</script>
- <script type="Yiii">yi</script>
- <script type="Zinh">nedarvet</script>
- <script type="Zmth">matematisk notasjon</script>
- <script type="Zsye">emoji</script>
- <script type="Zsym">symboler</script>
- <script type="Zxxx">språk uten skrift</script>
- <script type="Zyyy">felles</script>
- <script type="Zzzz">ukjent skrift</script>
- </scripts>
- <territories>
- <territory type="001">verden</territory>
- <territory type="002">Afrika</territory>
- <territory type="003">Nord-Amerika</territory>
- <territory type="005">Sør-Amerika</territory>
- <territory type="009">Oseania</territory>
- <territory type="011">Vest-Afrika</territory>
- <territory type="013">Mellom-Amerika</territory>
- <territory type="014">Øst-Afrika</territory>
- <territory type="015">Nord-Afrika</territory>
- <territory type="017">Sentral-Afrika</territory>
- <territory type="018">Sørlige Afrika</territory>
- <territory type="019">Amerika</territory>
- <territory type="021">Nordlige Amerika</territory>
- <territory type="029">Karibia</territory>
- <territory type="030">Øst-Asia</territory>
- <territory type="034">Sør-Asia</territory>
- <territory type="035">Sørøst-Asia</territory>
- <territory type="039">Sør-Europa</territory>
- <territory type="053">Australasia</territory>
- <territory type="054">Melanesia</territory>
- <territory type="057">Mikronesia</territory>
- <territory type="061">Polynesia</territory>
- <territory type="142">Asia</territory>
- <territory type="143">Sentral-Asia</territory>
- <territory type="145">Vest-Asia</territory>
- <territory type="150">Europa</territory>
- <territory type="151">Øst-Europa</territory>
- <territory type="154">Nord-Europa</territory>
- <territory type="155">Vest-Europa</territory>
- <territory type="202">Afrika sør for Sahara</territory>
- <territory type="419">Latin-Amerika</territory>
- <territory type="AC">Ascension</territory>
- <territory type="AD">Andorra</territory>
- <territory type="AE">De forente arabiske emirater</territory>
- <territory type="AF">Afghanistan</territory>
- <territory type="AG">Antigua og Barbuda</territory>
- <territory type="AI">Anguilla</territory>
- <territory type="AL">Albania</territory>
- <territory type="AM">Armenia</territory>
- <territory type="AO">Angola</territory>
- <territory type="AQ">Antarktis</territory>
- <territory type="AR">Argentina</territory>
- <territory type="AS">Amerikansk Samoa</territory>
- <territory type="AT">Østerrike</territory>
- <territory type="AU">Australia</territory>
- <territory type="AW">Aruba</territory>
- <territory type="AX">Åland</territory>
- <territory type="AZ">Aserbajdsjan</territory>
- <territory type="BA">Bosnia-Hercegovina</territory>
- <territory type="BB">Barbados</territory>
- <territory type="BD">Bangladesh</territory>
- <territory type="BE">Belgia</territory>
- <territory type="BF">Burkina Faso</territory>
- <territory type="BG">Bulgaria</territory>
- <territory type="BH">Bahrain</territory>
- <territory type="BI">Burundi</territory>
- <territory type="BJ">Benin</territory>
- <territory type="BL">Saint-Barthélemy</territory>
- <territory type="BM">Bermuda</territory>
- <territory type="BN">Brunei</territory>
- <territory type="BO">Bolivia</territory>
- <territory type="BQ">Karibisk Nederland</territory>
- <territory type="BR">Brasil</territory>
- <territory type="BS">Bahamas</territory>
- <territory type="BT">Bhutan</territory>
- <territory type="BV">Bouvetøya</territory>
- <territory type="BW">Botswana</territory>
- <territory type="BY">Hviterussland</territory>
- <territory type="BZ">Belize</territory>
- <territory type="CA">Canada</territory>
- <territory type="CC">Kokosøyene</territory>
- <territory type="CD">Kongo</territory>
- <territory type="CD" alt="variant">Den demokratiske republikken Kongo</territory>
- <territory type="CF">Den sentralafrikanske republikk</territory>
- <territory type="CG">Kongo-Brazzaville</territory>
- <territory type="CG" alt="variant">Republikken Kongo</territory>
- <territory type="CH">Sveits</territory>
- <territory type="CI">Elfenbenskysten</territory>
- <territory type="CI" alt="variant">Elfenbenskysten</territory>
- <territory type="CK">Cookøyene</territory>
- <territory type="CL">Chile</territory>
- <territory type="CM">Kamerun</territory>
- <territory type="CN">Kina</territory>
- <territory type="CO">Colombia</territory>
- <territory type="CP">Clippertonøya</territory>
- <territory type="CR">Costa Rica</territory>
- <territory type="CU">Cuba</territory>
- <territory type="CV">Kapp Verde</territory>
- <territory type="CW">Curaçao</territory>
- <territory type="CX">Christmasøya</territory>
- <territory type="CY">Kypros</territory>
- <territory type="CZ">Tsjekkia</territory>
- <territory type="CZ" alt="variant">Den tsjekkiske republikk</territory>
- <territory type="DE">Tyskland</territory>
- <territory type="DG">Diego Garcia</territory>
- <territory type="DJ">Djibouti</territory>
- <territory type="DK">Danmark</territory>
- <territory type="DM">Dominica</territory>
- <territory type="DO">Den dominikanske republikk</territory>
- <territory type="DZ">Algerie</territory>
- <territory type="EA">Ceuta og Melilla</territory>
- <territory type="EC">Ecuador</territory>
- <territory type="EE">Estland</territory>
- <territory type="EG">Egypt</territory>
- <territory type="EH">Vest-Sahara</territory>
- <territory type="ER">Eritrea</territory>
- <territory type="ES">Spania</territory>
- <territory type="ET">Etiopia</territory>
- <territory type="EU">Den europeiske union</territory>
- <territory type="EZ">eurosonen</territory>
- <territory type="FI">Finland</territory>
- <territory type="FJ">Fiji</territory>
- <territory type="FK">Falklandsøyene</territory>
- <territory type="FK" alt="variant">Falklandsøyene (Islas Malvinas)</territory>
- <territory type="FM">Mikronesiaføderasjonen</territory>
- <territory type="FO">Færøyene</territory>
- <territory type="FR">Frankrike</territory>
- <territory type="GA">Gabon</territory>
- <territory type="GB">Storbritannia</territory>
- <territory type="GB" alt="short">Storbritannia</territory>
- <territory type="GD">Grenada</territory>
- <territory type="GE">Georgia</territory>
- <territory type="GF">Fransk Guyana</territory>
- <territory type="GG">Guernsey</territory>
- <territory type="GH">Ghana</territory>
- <territory type="GI">Gibraltar</territory>
- <territory type="GL">Grønland</territory>
- <territory type="GM">Gambia</territory>
- <territory type="GN">Guinea</territory>
- <territory type="GP">Guadeloupe</territory>
- <territory type="GQ">Ekvatorial-Guinea</territory>
- <territory type="GR">Hellas</territory>
- <territory type="GS">Sør-Georgia og Sør-Sandwichøyene</territory>
- <territory type="GT">Guatemala</territory>
- <territory type="GU">Guam</territory>
- <territory type="GW">Guinea-Bissau</territory>
- <territory type="GY">Guyana</territory>
- <territory type="HK">Hongkong SAR Kina</territory>
- <territory type="HK" alt="short">Hongkong</territory>
- <territory type="HM">Heard- og McDonaldøyene</territory>
- <territory type="HN">Honduras</territory>
- <territory type="HR">Kroatia</territory>
- <territory type="HT">Haiti</territory>
- <territory type="HU">Ungarn</territory>
- <territory type="IC">Kanariøyene</territory>
- <territory type="ID">Indonesia</territory>
- <territory type="IE">Irland</territory>
- <territory type="IL">Israel</territory>
- <territory type="IM">Man</territory>
- <territory type="IN">India</territory>
- <territory type="IO">Det britiske territoriet i Indiahavet</territory>
- <territory type="IQ">Irak</territory>
- <territory type="IR">Iran</territory>
- <territory type="IS">Island</territory>
- <territory type="IT">Italia</territory>
- <territory type="JE">Jersey</territory>
- <territory type="JM">Jamaica</territory>
- <territory type="JO">Jordan</territory>
- <territory type="JP">Japan</territory>
- <territory type="KE">Kenya</territory>
- <territory type="KG">Kirgisistan</territory>
- <territory type="KH">Kambodsja</territory>
- <territory type="KI">Kiribati</territory>
- <territory type="KM">Komorene</territory>
- <territory type="KN">Saint Kitts og Nevis</territory>
- <territory type="KP">Nord-Korea</territory>
- <territory type="KR">Sør-Korea</territory>
- <territory type="KW">Kuwait</territory>
- <territory type="KY">Caymanøyene</territory>
- <territory type="KZ">Kasakhstan</territory>
- <territory type="LA">Laos</territory>
- <territory type="LB">Libanon</territory>
- <territory type="LC">St. Lucia</territory>
- <territory type="LI">Liechtenstein</territory>
- <territory type="LK">Sri Lanka</territory>
- <territory type="LR">Liberia</territory>
- <territory type="LS">Lesotho</territory>
- <territory type="LT">Litauen</territory>
- <territory type="LU">Luxemburg</territory>
- <territory type="LV">Latvia</territory>
- <territory type="LY">Libya</territory>
- <territory type="MA">Marokko</territory>
- <territory type="MC">Monaco</territory>
- <territory type="MD">Moldova</territory>
- <territory type="ME">Montenegro</territory>
- <territory type="MF">Saint-Martin</territory>
- <territory type="MG">Madagaskar</territory>
- <territory type="MH">Marshalløyene</territory>
- <territory type="MK">Nord-Makedonia</territory>
- <territory type="ML">Mali</territory>
- <territory type="MM">Myanmar (Burma)</territory>
- <territory type="MN">Mongolia</territory>
- <territory type="MO">Macao SAR Kina</territory>
- <territory type="MO" alt="short">Macao</territory>
- <territory type="MP">Nord-Marianene</territory>
- <territory type="MQ">Martinique</territory>
- <territory type="MR">Mauritania</territory>
- <territory type="MS">Montserrat</territory>
- <territory type="MT">Malta</territory>
- <territory type="MU">Mauritius</territory>
- <territory type="MV">Maldivene</territory>
- <territory type="MW">Malawi</territory>
- <territory type="MX">Mexico</territory>
- <territory type="MY">Malaysia</territory>
- <territory type="MZ">Mosambik</territory>
- <territory type="NA">Namibia</territory>
- <territory type="NC">Ny-Caledonia</territory>
- <territory type="NE">Niger</territory>
- <territory type="NF">Norfolkøya</territory>
- <territory type="NG">Nigeria</territory>
- <territory type="NI">Nicaragua</territory>
- <territory type="NL">Nederland</territory>
- <territory type="NO">Norge</territory>
- <territory type="NP">Nepal</territory>
- <territory type="NR">Nauru</territory>
- <territory type="NU">Niue</territory>
- <territory type="NZ">New Zealand</territory>
- <territory type="OM">Oman</territory>
- <territory type="PA">Panama</territory>
- <territory type="PE">Peru</territory>
- <territory type="PF">Fransk Polynesia</territory>
- <territory type="PG">Papua Ny-Guinea</territory>
- <territory type="PH">Filippinene</territory>
- <territory type="PK">Pakistan</territory>
- <territory type="PL">Polen</territory>
- <territory type="PM">Saint-Pierre-et-Miquelon</territory>
- <territory type="PN">Pitcairnøyene</territory>
- <territory type="PR">Puerto Rico</territory>
- <territory type="PS">Det palestinske området</territory>
- <territory type="PS" alt="short">Palestina</territory>
- <territory type="PT">Portugal</territory>
- <territory type="PW">Palau</territory>
- <territory type="PY">Paraguay</territory>
- <territory type="QA">Qatar</territory>
- <territory type="QO">Ytre Oseania</territory>
- <territory type="RE">Réunion</territory>
- <territory type="RO">Romania</territory>
- <territory type="RS">Serbia</territory>
- <territory type="RU">Russland</territory>
- <territory type="RW">Rwanda</territory>
- <territory type="SA">Saudi-Arabia</territory>
- <territory type="SB">Salomonøyene</territory>
- <territory type="SC">Seychellene</territory>
- <territory type="SD">Sudan</territory>
- <territory type="SE">Sverige</territory>
- <territory type="SG">Singapore</territory>
- <territory type="SH">St. Helena</territory>
- <territory type="SI">Slovenia</territory>
- <territory type="SJ">Svalbard og Jan Mayen</territory>
- <territory type="SK">Slovakia</territory>
- <territory type="SL">Sierra Leone</territory>
- <territory type="SM">San Marino</territory>
- <territory type="SN">Senegal</territory>
- <territory type="SO">Somalia</territory>
- <territory type="SR">Surinam</territory>
- <territory type="SS">Sør-Sudan</territory>
- <territory type="ST">São Tomé og Príncipe</territory>
- <territory type="SV">El Salvador</territory>
- <territory type="SX">Sint Maarten</territory>
- <territory type="SY">Syria</territory>
- <territory type="SZ">Eswatini</territory>
- <territory type="SZ" alt="variant">Swaziland</territory>
- <territory type="TA">Tristan da Cunha</territory>
- <territory type="TC">Turks- og Caicosøyene</territory>
- <territory type="TD">Tsjad</territory>
- <territory type="TF">De franske sørterritorier</territory>
- <territory type="TG">Togo</territory>
- <territory type="TH">Thailand</territory>
- <territory type="TJ">Tadsjikistan</territory>
- <territory type="TK">Tokelau</territory>
- <territory type="TL">Øst-Timor</territory>
- <territory type="TL" alt="variant">Timor-Leste</territory>
- <territory type="TM">Turkmenistan</territory>
- <territory type="TN">Tunisia</territory>
- <territory type="TO">Tonga</territory>
- <territory type="TR">Tyrkia</territory>
- <territory type="TT">Trinidad og Tobago</territory>
- <territory type="TV">Tuvalu</territory>
- <territory type="TW">Taiwan</territory>
- <territory type="TZ">Tanzania</territory>
- <territory type="UA">Ukraina</territory>
- <territory type="UG">Uganda</territory>
- <territory type="UM">USAs ytre øyer</territory>
- <territory type="UN">FN</territory>
- <territory type="UN" alt="short">FN</territory>
- <territory type="US">USA</territory>
- <territory type="US" alt="short">USA</territory>
- <territory type="UY">Uruguay</territory>
- <territory type="UZ">Usbekistan</territory>
- <territory type="VA">Vatikanstaten</territory>
- <territory type="VC">St. Vincent og Grenadinene</territory>
- <territory type="VE">Venezuela</territory>
- <territory type="VG">De britiske jomfruøyene</territory>
- <territory type="VI">De amerikanske jomfruøyene</territory>
- <territory type="VN">Vietnam</territory>
- <territory type="VU">Vanuatu</territory>
- <territory type="WF">Wallis og Futuna</territory>
- <territory type="WS">Samoa</territory>
- <territory type="XA">pseudospråk – aksenter</territory>
- <territory type="XB">pseudospråk – tekst begge veier</territory>
- <territory type="XK">Kosovo</territory>
- <territory type="YE">Jemen</territory>
- <territory type="YT">Mayotte</territory>
- <territory type="ZA">Sør-Afrika</territory>
- <territory type="ZM">Zambia</territory>
- <territory type="ZW">Zimbabwe</territory>
- <territory type="ZZ">ukjent område</territory>
- </territories>
- <subdivisions>
- <subdivision type="gbeng">England</subdivision>
- <subdivision type="gbsct">Skottland</subdivision>
- <subdivision type="gbwls">Wales</subdivision>
- </subdivisions>
- <variants>
- <variant type="1901">tradisjonell tysk ortografi</variant>
- <variant type="1994">standardisert resisk ortografi</variant>
- <variant type="1996">tysk ortografi fra 1996</variant>
- <variant type="1606NICT">nyere mellomfransk til 1606</variant>
- <variant type="1694ACAD">eldre nyfransk</variant>
- <variant type="1959ACAD" draft="contributed">akademisk</variant>
- <variant type="ALALC97" draft="contributed">ALA-LC-romanisering, 1997-utgaven</variant>
- <variant type="ALUKU">Aluku-dialekt</variant>
- <variant type="AREVELA">øst-armensk</variant>
- <variant type="AREVMDA">vest-armensk</variant>
- <variant type="BAKU1926" draft="contributed">samlet tyrkisk-latinsk alfabet</variant>
- <variant type="BALANKA" draft="contributed">balankadialekten av anii</variant>
- <variant type="BARLA" draft="contributed">barlaventa-dialektgruppen av kappverdiansk</variant>
- <variant type="BAUDDHA" draft="contributed">bauddha</variant>
- <variant type="BISCAYAN" draft="contributed">biscayan</variant>
- <variant type="BISKE">san giorgio- og biladialekt</variant>
- <variant type="BOHORIC" draft="contributed">bohorisk alfabet</variant>
- <variant type="BOONT">boontling</variant>
- <variant type="DAJNKO" draft="contributed">dajnkoalfabet</variant>
- <variant type="EKAVSK" draft="contributed">serbisk med ekavisk uttale</variant>
- <variant type="EMODENG" draft="contributed">tidlig moderne engelsk</variant>
- <variant type="FONIPA">det internasjonale fonetiske alfabet (IPA)</variant>
- <variant type="FONUPA">det uraliske fonetiske alfabet (UPA)</variant>
- <variant type="FONXSAMP" draft="contributed">fonxsamp</variant>
- <variant type="HEPBURN" draft="contributed">Hepburn-romanisering</variant>
- <variant type="HOGNORSK" draft="contributed">høgnorsk</variant>
- <variant type="IJEKAVSK" draft="contributed">serbisk med ijekavisk uttale</variant>
- <variant type="ITIHASA" draft="contributed">itihasa</variant>
- <variant type="JAUER" draft="contributed">jauer</variant>
- <variant type="JYUTPING" draft="contributed">jyutping</variant>
- <variant type="KKCOR">felles ortografi</variant>
- <variant type="KOCIEWIE" draft="contributed">kociewie</variant>
- <variant type="KSCOR" draft="contributed">standard ortografi</variant>
- <variant type="LAUKIKA" draft="contributed">laukika</variant>
- <variant type="LIPAW" draft="contributed">resia med Lipovaz-dialekt</variant>
- <variant type="METELKO" draft="contributed">Metelko-alfabet</variant>
- <variant type="MONOTON">monotonisk rettskriving</variant>
- <variant type="NDYUKA">ndyuka-dialekt</variant>
- <variant type="NEDIS">natisonedialekt</variant>
- <variant type="NJIVA">gniva- og njivadialekt</variant>
- <variant type="NULIK" draft="contributed">moderne volapük</variant>
- <variant type="OSOJS">oseacco- og osojanedialekt</variant>
- <variant type="PAMAKA">Pamaka-dialekt</variant>
- <variant type="PINYIN">pinyin</variant>
- <variant type="POLYTON">polytonisk rettskriving</variant>
- <variant type="POSIX">dataspråk</variant>
- <variant type="REVISED">revidert ortografi</variant>
- <variant type="RIGIK" draft="contributed">klassisk volapük</variant>
- <variant type="ROZAJ">resisk dialekt</variant>
- <variant type="SAAHO">saho</variant>
- <variant type="SCOTLAND">skotsk standard engelsk</variant>
- <variant type="SCOUSE">scouse dialekt</variant>
- <variant type="SOLBA">stolvizza- og solbicadialekt</variant>
- <variant type="SOTAV" draft="contributed">sotavento-dialektgruppen av kappverdiansk</variant>
- <variant type="SURMIRAN" draft="contributed">surmiransk</variant>
- <variant type="SURSILV" draft="contributed">sursilvan</variant>
- <variant type="SUTSILV" draft="contributed">sutsilvan</variant>
- <variant type="TARASK" draft="contributed">taraskievica-ortografi</variant>
- <variant type="UCCOR" draft="contributed">harmonisert ortografi</variant>
- <variant type="UCRCOR">harmonisert revidert ortografi</variant>
- <variant type="ULSTER" draft="contributed">ulster</variant>
- <variant type="UNIFON" draft="contributed">Unifon fonetisk alfabet</variant>
- <variant type="VAIDIKA" draft="contributed">vaidika</variant>
- <variant type="VALENCIA">valensiansk</variant>
- <variant type="VALLADER" draft="contributed">vallader</variant>
- <variant type="WADEGILE">Wade-Giles-romanisering</variant>
- </variants>
- <keys>
- <key type="calendar">kalender</key>
- <key type="cf">valutaformat</key>
- <key type="colAlternate">Ignorer sortering etter symboler</key>
- <key type="colBackwards">omvendt sortering etter aksent</key>
- <key type="colCaseFirst">Organisering av store og små bokstaver</key>
- <key type="colCaseLevel">Sortering av store og små bokstaver</key>
- <key type="collation">sorteringsrekkefølge</key>
- <key type="colNormalization">Normalisert sortering</key>
- <key type="colNumeric">Numerisk sortering</key>
- <key type="colStrength">Sorteringsstyrke</key>
- <key type="currency">valuta</key>
- <key type="hc">timesyklus (12 eller 24)</key>
- <key type="lb">linjeskiftstil</key>
- <key type="ms">målesystem</key>
- <key type="numbers">tall</key>
- <key type="timezone">tidssone</key>
- <key type="va">språkvariant</key>
- <key type="x">privat bruk</key>
- </keys>
- <types>
- <type key="calendar" type="buddhist">buddhistisk kalender</type>
- <type key="calendar" type="chinese">kinesisk kalender</type>
- <type key="calendar" type="coptic">koptisk kalender</type>
- <type key="calendar" type="dangi">dangisk kalender</type>
- <type key="calendar" type="ethiopic">etiopisk kalender</type>
- <type key="calendar" type="ethiopic-amete-alem">etiopisk amete-alem-kalender</type>
- <type key="calendar" type="gregorian">gregoriansk kalender</type>
- <type key="calendar" type="hebrew">hebraisk kalender</type>
- <type key="calendar" type="indian">indisk nasjonalkalender</type>
- <type key="calendar" type="islamic">islamsk kalender</type>
- <type key="calendar" type="islamic-civil">islamsk kalender (tabell, sivil)</type>
- <type key="calendar" type="islamic-rgsa">islamsk kalender (Saudi-Arabia, observasjon)</type>
- <type key="calendar" type="islamic-tbla">islamsk kalender (tabell, astronomisk)</type>
- <type key="calendar" type="islamic-umalqura" draft="contributed">islamsk kalender (Umm al-Qura)</type>
- <type key="calendar" type="iso8601">ISO 8601-kalender</type>
- <type key="calendar" type="japanese">japansk kalender</type>
- <type key="calendar" type="persian">persisk kalender</type>
- <type key="calendar" type="roc">minguo-kalender</type>
- <type key="cf" type="account">valutaformat for regnskapsføring</type>
- <type key="cf" type="standard">standard valutaformat</type>
- <type key="colAlternate" type="non-ignorable" draft="contributed">sortér symboler</type>
- <type key="colAlternate" type="shifted" draft="contributed">Ignorer symboler under sortering</type>
- <type key="colBackwards" type="no" draft="contributed">sortér aksenttegn normalt</type>
- <type key="colBackwards" type="yes" draft="contributed">sortér aksenttegn i motsatt rekkefølge</type>
- <type key="colCaseFirst" type="lower" draft="contributed">Sortér små bokstaver først</type>
- <type key="colCaseFirst" type="no" draft="contributed">Sortér store og små bokstaver i vanlig rekkefølge</type>
- <type key="colCaseFirst" type="upper" draft="contributed">Sortér store bokstaver først</type>
- <type key="colCaseLevel" type="no" draft="contributed">Sortér uavhengig av store og små bokstaver.</type>
- <type key="colCaseLevel" type="yes" draft="contributed">Sortér med skille mellom små og store bokstaver</type>
- <type key="collation" type="big5han">tradisjonell kinesisk sortering - Big 5</type>
- <type key="collation" type="compat" draft="contributed">forrige sorteringsrekkefølge (for kompatibilitet)</type>
- <type key="collation" type="dictionary">ordlistesortering</type>
- <type key="collation" type="ducet">standard Unicode-sorteringsrekkefølge</type>
- <type key="collation" type="emoji" draft="contributed">emoji-sorteringsrekkefølge</type>
- <type key="collation" type="eor" draft="contributed">sorteringsrekkefølge for flerspråklige europeiske dokumenter</type>
- <type key="collation" type="gb2312han">forenklet kinesisk sortering - GB2312</type>
- <type key="collation" type="phonebook">telefonkatalogsortering</type>
- <type key="collation" type="phonetic" draft="contributed">Fonetisk sorteringsrekkefølge</type>
- <type key="collation" type="pinyin">pinyinsortering</type>
- <type key="collation" type="reformed">reformert sortering</type>
- <type key="collation" type="search">generelt søk</type>
- <type key="collation" type="searchjl" draft="contributed">Søk etter første konsonant i hangul</type>
- <type key="collation" type="standard">standard sorteringsrekkefølge</type>
- <type key="collation" type="stroke">streksortering</type>
- <type key="collation" type="traditional">tradisjonell sortering</type>
- <type key="collation" type="unihan">radikal-strek-sortering</type>
- <type key="collation" type="zhuyin" draft="contributed">zhuyin-sortering</type>
- <type key="colNormalization" type="no" draft="contributed">Sortér uten normalisering</type>
- <type key="colNormalization" type="yes" draft="contributed">Sortér Unicode normalisert</type>
- <type key="colNumeric" type="no" draft="contributed">Sortér sifre individuelt</type>
- <type key="colNumeric" type="yes" draft="contributed">Sortér sifre numerisk</type>
- <type key="colStrength" type="identical" draft="contributed">Sortér alle</type>
- <type key="colStrength" type="primary" draft="contributed">Sortér bare basisbokstaver</type>
- <type key="colStrength" type="quaternary" draft="contributed">Sortér aksenttegn / små og store bokstaver / bredde / kana</type>
- <type key="colStrength" type="secondary" draft="contributed">Sortér aksenttegn</type>
- <type key="colStrength" type="tertiary" draft="contributed">Sortér aksenttegn / små og store bokstaver / bredde</type>
- <type key="d0" type="fwidth">full bredde</type>
- <type key="d0" type="hwidth">halv bredde</type>
- <type key="d0" type="npinyin" draft="contributed">Numerisk</type>
- <type key="hc" type="h11">12-timers system (0–11)</type>
- <type key="hc" type="h12">12-timers system (1–12)</type>
- <type key="hc" type="h23">24-timers system (0–23)</type>
- <type key="hc" type="h24">24-timers system (1–24)</type>
- <type key="lb" type="loose">løs linjeskiftstil</type>
- <type key="lb" type="normal">normal linjeskiftstil</type>
- <type key="lb" type="strict">streng linjeskiftstil</type>
- <type key="m0" type="bgn">USBGN-translitterasjon</type>
- <type key="m0" type="ungegn">UNGEGN-translitterasjon</type>
- <type key="ms" type="metric">metrisk system</type>
- <type key="ms" type="uksystem">britisk målesystem</type>
- <type key="ms" type="ussystem">amerikansk målesystem</type>
- <type key="numbers" type="arab">arabisk-indiske sifre</type>
- <type key="numbers" type="arabext">utvidede arabisk-indiske sifre</type>
- <type key="numbers" type="armn">armenske tall</type>
- <type key="numbers" type="armnlow">små armenske tall</type>
- <type key="numbers" type="bali" draft="contributed">baliske tall</type>
- <type key="numbers" type="beng">bengalske sifre</type>
- <type key="numbers" type="brah" draft="contributed">brahmiske tall</type>
- <type key="numbers" type="cakm" draft="contributed">chakma-tall</type>
- <type key="numbers" type="cham" draft="contributed">cham-tall</type>
- <type key="numbers" type="deva">devanagari-sifre</type>
- <type key="numbers" type="ethi">etiopiske tall</type>
- <type key="numbers" type="finance" draft="contributed">Finansielle tall</type>
- <type key="numbers" type="fullwide">sifre med full bredde</type>
- <type key="numbers" type="geor">georgiske tall</type>
- <type key="numbers" type="grek">greske tall</type>
- <type key="numbers" type="greklow">små greske tall</type>
- <type key="numbers" type="gujr">gujarati-sifre</type>
- <type key="numbers" type="guru">gurmukhi-sifre</type>
- <type key="numbers" type="hanidec">kinesiske desimaltall</type>
- <type key="numbers" type="hans">forenklet kinesisk-tall</type>
- <type key="numbers" type="hansfin">forenklet kinesisk-finanstall</type>
- <type key="numbers" type="hant">tradisjonell kinesisk-tall</type>
- <type key="numbers" type="hantfin">tradisjonell kinesisk-finanstall</type>
- <type key="numbers" type="hebr">hebraiske tall</type>
- <type key="numbers" type="java" draft="contributed">java-tall</type>
- <type key="numbers" type="jpan">japanske tall</type>
- <type key="numbers" type="jpanfin">japanske finanstall</type>
- <type key="numbers" type="kali" draft="contributed">kayah li-tall</type>
- <type key="numbers" type="khmr">khmer-sifre</type>
- <type key="numbers" type="knda">kannada-sifre</type>
- <type key="numbers" type="lana" draft="contributed">thai tham hora-tall</type>
- <type key="numbers" type="lanatham" draft="contributed">tai tham tham-tall</type>
- <type key="numbers" type="laoo">laotiske sifre</type>
- <type key="numbers" type="latn">vestlige sifre</type>
- <type key="numbers" type="lepc" draft="contributed">lepecha-tall</type>
- <type key="numbers" type="limb" draft="contributed">limbu-tall</type>
- <type key="numbers" type="mlym">malayalam-sifre</type>
- <type key="numbers" type="mong">mongolske tall</type>
- <type key="numbers" type="mtei" draft="contributed">meetei mayek-tall</type>
- <type key="numbers" type="mymr">burmesiske sifre</type>
- <type key="numbers" type="mymrshan" draft="contributed">myanmar shan-tall</type>
- <type key="numbers" type="native" draft="contributed">Språkspesifikke sifre</type>
- <type key="numbers" type="nkoo" draft="contributed">n’ko-tall</type>
- <type key="numbers" type="olck" draft="contributed">ol chiki-tall</type>
- <type key="numbers" type="orya">odia-sifre</type>
- <type key="numbers" type="osma" draft="contributed">osmanya-tall</type>
- <type key="numbers" type="roman">romertall</type>
- <type key="numbers" type="romanlow">små romertall</type>
- <type key="numbers" type="saur" draft="contributed">sarushatra-tall</type>
- <type key="numbers" type="shrd" draft="contributed">sharada-tall</type>
- <type key="numbers" type="sora" draft="contributed">sora sompeng-tall</type>
- <type key="numbers" type="sund" draft="contributed">sundanese-tall</type>
- <type key="numbers" type="takr" draft="contributed">takri-tall</type>
- <type key="numbers" type="talu" draft="contributed">ny tai lue-tall</type>
- <type key="numbers" type="taml">tamilske tall</type>
- <type key="numbers" type="tamldec">tamilske sifre</type>
- <type key="numbers" type="telu">telugu-sifre</type>
- <type key="numbers" type="thai">thailandske sifre</type>
- <type key="numbers" type="tibt">tibetanske sifre</type>
- <type key="numbers" type="traditional" draft="contributed">Tradisjonelle tall</type>
- <type key="numbers" type="vaii" draft="contributed">vai-sifre</type>
- </types>
- <measurementSystemNames>
- <measurementSystemName type="metric">metrisk</measurementSystemName>
- <measurementSystemName type="UK">engelsk</measurementSystemName>
- <measurementSystemName type="US">amerikansk</measurementSystemName>
- </measurementSystemNames>
- <codePatterns>
- <codePattern type="language">Språk: {0}</codePattern>
- <codePattern type="script">Skrift: {0}</codePattern>
- <codePattern type="territory">Område: {0}</codePattern>
- </codePatterns>
- </localeDisplayNames>
- <contextTransforms>
- <contextTransformUsage type="relative">
- <contextTransform type="stand-alone">titlecase-firstword</contextTransform>
- </contextTransformUsage>
- <contextTransformUsage type="typographicNames">
- <contextTransform type="stand-alone">titlecase-firstword</contextTransform>
- <contextTransform type="uiListOrMenu">titlecase-firstword</contextTransform>
- </contextTransformUsage>
- </contextTransforms>
- <characters>
- <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 æ ø å]</exemplarCharacters>
- <exemplarCharacters type="auxiliary">[á ǎ ã č ç đ è ê í ń ñ ŋ š ŧ ú ü ž ä ö]</exemplarCharacters>
- <exemplarCharacters type="index">[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 Æ Ø Å]</exemplarCharacters>
- <exemplarCharacters type="numbers">[ , % ‰ + − 0 1 2 3 4 5 6 7 8 9]</exemplarCharacters>
- <exemplarCharacters type="punctuation">[\- ‑ – , ; \: ! ? . ' " « » ( ) \[ \] \{ \} § @ * / \\]</exemplarCharacters>
- <ellipsis type="final">{0}…</ellipsis>
- <ellipsis type="initial">…{0}</ellipsis>
- <ellipsis type="medial">{0}…{1}</ellipsis>
- <ellipsis type="word-final">{0} …</ellipsis>
- <ellipsis type="word-initial">… {0}</ellipsis>
- <ellipsis type="word-medial">{0} … {1}</ellipsis>
- <moreInformation>?</moreInformation>
- <parseLenients scope="date" level="lenient">
- <parseLenient sample="-" draft="contributed">↑↑↑</parseLenient>
- <parseLenient sample=":" draft="contributed">↑↑↑</parseLenient>
- </parseLenients>
- <parseLenients scope="general" level="lenient">
- <parseLenient sample="." draft="contributed">↑↑↑</parseLenient>
- <parseLenient sample="’" draft="contributed">↑↑↑</parseLenient>
- <parseLenient sample="%" draft="contributed">↑↑↑</parseLenient>
- <parseLenient sample="‰" draft="contributed">↑↑↑</parseLenient>
- <parseLenient sample="$" draft="contributed">↑↑↑</parseLenient>
- <parseLenient sample="£" draft="contributed">↑↑↑</parseLenient>
- <parseLenient sample="¥" draft="contributed">↑↑↑</parseLenient>
- <parseLenient sample="₩" draft="contributed">↑↑↑</parseLenient>
- <parseLenient sample="₹" draft="contributed">↑↑↑</parseLenient>
- </parseLenients>
- <parseLenients scope="number" level="lenient">
- <parseLenient sample="-" draft="contributed">↑↑↑</parseLenient>
- <parseLenient sample="," draft="contributed">↑↑↑</parseLenient>
- <parseLenient sample="+" draft="contributed">↑↑↑</parseLenient>
- </parseLenients>
- <parseLenients scope="number" level="stricter">
- <parseLenient sample="," draft="contributed">↑↑↑</parseLenient>
- <parseLenient sample="." draft="contributed">↑↑↑</parseLenient>
- </parseLenients>
- </characters>
- <delimiters>
- <quotationStart>«</quotationStart>
- <quotationEnd>»</quotationEnd>
- <alternateQuotationStart>‘</alternateQuotationStart>
- <alternateQuotationEnd>’</alternateQuotationEnd>
- </delimiters>
- <dates>
- <calendars>
- <calendar type="buddhist">
- <eras>
- <eraNames>
- <era type="0">BE</era>
- </eraNames>
- <eraAbbr>
- <era type="0">BE</era>
- </eraAbbr>
- <eraNarrow>
- <era type="0">BE</era>
- </eraNarrow>
- </eras>
- <dateFormats>
- <dateFormatLength type="full">
- <dateFormat>
- <pattern draft="contributed">EEEE d. MMMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="long">
- <dateFormat>
- <pattern draft="contributed">d. MMMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="medium">
- <dateFormat>
- <pattern draft="contributed">d. MMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="short">
- <dateFormat>
- <pattern draft="contributed">d.M.y G</pattern>
- </dateFormat>
- </dateFormatLength>
- </dateFormats>
- <dateTimeFormats>
- <dateTimeFormatLength type="full">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="long">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="medium">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="short">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <availableFormats>
- <dateFormatItem id="d" draft="contributed">d.</dateFormatItem>
- <dateFormatItem id="E" draft="contributed">ccc</dateFormatItem>
- <dateFormatItem id="Ed" draft="contributed">E d.</dateFormatItem>
- <dateFormatItem id="Gy" draft="contributed">y G</dateFormatItem>
- <dateFormatItem id="GyMMM" draft="contributed">MMM y G</dateFormatItem>
- <dateFormatItem id="GyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
- <dateFormatItem id="GyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
- <dateFormatItem id="M" draft="contributed">L.</dateFormatItem>
- <dateFormatItem id="Md" draft="contributed">d.M.</dateFormatItem>
- <dateFormatItem id="MEd" draft="contributed">E d.M</dateFormatItem>
- <dateFormatItem id="MMdd" draft="contributed">d.M.</dateFormatItem>
- <dateFormatItem id="MMM" draft="contributed">LLL</dateFormatItem>
- <dateFormatItem id="MMMd" draft="contributed">d. MMM</dateFormatItem>
- <dateFormatItem id="MMMEd" draft="contributed">E d. MMM</dateFormatItem>
- <dateFormatItem id="MMMMd" draft="contributed">d. MMMM</dateFormatItem>
- <dateFormatItem id="y" draft="contributed">y G</dateFormatItem>
- <dateFormatItem id="yyyy" draft="contributed">y G</dateFormatItem>
- <dateFormatItem id="yyyyM" draft="contributed">M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMd" draft="contributed">d.M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMEd" draft="contributed">E d.M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMM" draft="contributed">MM.y G</dateFormatItem>
- <dateFormatItem id="yyyyMMM" draft="contributed">MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMM" draft="contributed">MMMM y G</dateFormatItem>
- <dateFormatItem id="yyyyQQQ" draft="contributed">QQQ y G</dateFormatItem>
- <dateFormatItem id="yyyyQQQQ" draft="contributed">QQQQ y G</dateFormatItem>
- </availableFormats>
- <intervalFormats>
- <intervalFormatFallback draft="contributed">{0}–{1}</intervalFormatFallback>
- <intervalFormatItem id="d">
- <greatestDifference id="d" draft="contributed">d.–d.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="h">
- <greatestDifference id="a" draft="contributed">h a–h a</greatestDifference>
- <greatestDifference id="h" draft="contributed">h–h a</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="H">
- <greatestDifference id="H" draft="contributed">HH–HH</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="hv">
- <greatestDifference id="a" draft="contributed">h a–h a v</greatestDifference>
- <greatestDifference id="h" draft="contributed">h–h a v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Hv">
- <greatestDifference id="H" draft="contributed">HH–HH v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="M">
- <greatestDifference id="M" draft="contributed">M.–M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Md">
- <greatestDifference id="d" draft="contributed">d.M.–d.M.</greatestDifference>
- <greatestDifference id="M" draft="contributed">d.M.–d.M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MEd">
- <greatestDifference id="d" draft="contributed">E d.M.–E d.M.</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d.M.–E d.M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMM">
- <greatestDifference id="M" draft="contributed">MMM–MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMMd">
- <greatestDifference id="d" draft="contributed">d.–d. MMM</greatestDifference>
- <greatestDifference id="M" draft="contributed">d. MMM–d. MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMMEd">
- <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="y">
- <greatestDifference id="y" draft="contributed">y–y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yM">
- <greatestDifference id="M" draft="contributed">M.y–M.y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">M.y–M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMd">
- <greatestDifference id="d" draft="contributed">d.M.y–d.M.y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">d.M.y–d.M.y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">d.M.y–d.M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMEd">
- <greatestDifference id="d" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMM">
- <greatestDifference id="M" draft="contributed">MMM–MMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">MMM y–MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMd">
- <greatestDifference id="d" draft="contributed">d.–d. MMM y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">d. MMM–d. MMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">d. MMM y–d. MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMEd">
- <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">E d. MMM y–E d. MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMM">
- <greatestDifference id="M" draft="contributed">MMMM–MMMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">MMMM y–MMMM y G</greatestDifference>
- </intervalFormatItem>
- </intervalFormats>
- </dateTimeFormats>
- </calendar>
- <calendar type="chinese">
- <months>
- <monthContext type="format">
- <monthWidth type="abbreviated">
- <month type="1" draft="contributed">M01</month>
- <month type="2" draft="contributed">M02</month>
- <month type="3" draft="contributed">M03</month>
- <month type="4" draft="contributed">M04</month>
- <month type="5" draft="contributed">M05</month>
- <month type="6" draft="contributed">M06</month>
- <month type="7" draft="contributed">M07</month>
- <month type="8" draft="contributed">M08</month>
- <month type="9" draft="contributed">M09</month>
- <month type="10" draft="contributed">M10</month>
- <month type="11" draft="contributed">M11</month>
- <month type="12" draft="contributed">M12</month>
- </monthWidth>
- <monthWidth type="narrow">
- <month type="1" draft="contributed">1</month>
- <month type="2" draft="contributed">2</month>
- <month type="3" draft="contributed">3</month>
- <month type="4" draft="contributed">4</month>
- <month type="5" draft="contributed">5</month>
- <month type="6" draft="contributed">6</month>
- <month type="7" draft="contributed">7</month>
- <month type="8" draft="contributed">8</month>
- <month type="9" draft="contributed">9</month>
- <month type="10" draft="contributed">10</month>
- <month type="11" draft="contributed">11</month>
- <month type="12" draft="contributed">12</month>
- </monthWidth>
- <monthWidth type="wide">
- <month type="1" draft="contributed">M01</month>
- <month type="2" draft="contributed">M02</month>
- <month type="3" draft="contributed">M03</month>
- <month type="4" draft="contributed">M04</month>
- <month type="5" draft="contributed">M05</month>
- <month type="6" draft="contributed">M06</month>
- <month type="7" draft="contributed">M07</month>
- <month type="8" draft="contributed">M08</month>
- <month type="9" draft="contributed">M09</month>
- <month type="10" draft="contributed">M10</month>
- <month type="11" draft="contributed">M11</month>
- <month type="12" draft="contributed">M12</month>
- </monthWidth>
- </monthContext>
- <monthContext type="stand-alone">
- <monthWidth type="abbreviated">
- <month type="1" draft="contributed">M01</month>
- <month type="2" draft="contributed">M02</month>
- <month type="3" draft="contributed">M03</month>
- <month type="4" draft="contributed">M04</month>
- <month type="5" draft="contributed">M05</month>
- <month type="6" draft="contributed">M06</month>
- <month type="7" draft="contributed">M07</month>
- <month type="8" draft="contributed">M08</month>
- <month type="9" draft="contributed">M09</month>
- <month type="10" draft="contributed">M10</month>
- <month type="11" draft="contributed">M11</month>
- <month type="12" draft="contributed">M12</month>
- </monthWidth>
- <monthWidth type="narrow">
- <month type="1" draft="contributed">1</month>
- <month type="2" draft="contributed">2</month>
- <month type="3" draft="contributed">3</month>
- <month type="4" draft="contributed">4</month>
- <month type="5" draft="contributed">5</month>
- <month type="6" draft="contributed">6</month>
- <month type="7" draft="contributed">7</month>
- <month type="8" draft="contributed">8</month>
- <month type="9" draft="contributed">9</month>
- <month type="10" draft="contributed">10</month>
- <month type="11" draft="contributed">11</month>
- <month type="12" draft="contributed">12</month>
- </monthWidth>
- <monthWidth type="wide">
- <month type="1" draft="contributed">M01</month>
- <month type="2" draft="contributed">M02</month>
- <month type="3" draft="contributed">M03</month>
- <month type="4" draft="contributed">M04</month>
- <month type="5" draft="contributed">M05</month>
- <month type="6" draft="contributed">M06</month>
- <month type="7" draft="contributed">M07</month>
- <month type="8" draft="contributed">M08</month>
- <month type="9" draft="contributed">M09</month>
- <month type="10" draft="contributed">M10</month>
- <month type="11" draft="contributed">M11</month>
- <month type="12" draft="contributed">M12</month>
- </monthWidth>
- </monthContext>
- </months>
- <monthPatterns>
- <monthPatternContext type="format">
- <monthPatternWidth type="abbreviated">
- <monthPattern type="leap" draft="contributed">{0}bis</monthPattern>
- </monthPatternWidth>
- <monthPatternWidth type="narrow">
- <monthPattern type="leap" draft="contributed">{0}b</monthPattern>
- </monthPatternWidth>
- <monthPatternWidth type="wide">
- <monthPattern type="leap" draft="contributed">{0}bis</monthPattern>
- </monthPatternWidth>
- </monthPatternContext>
- <monthPatternContext type="numeric">
- <monthPatternWidth type="all">
- <monthPattern type="leap" draft="contributed">{0}bis</monthPattern>
- </monthPatternWidth>
- </monthPatternContext>
- <monthPatternContext type="stand-alone">
- <monthPatternWidth type="abbreviated">
- <monthPattern type="leap" draft="contributed">{0}bis</monthPattern>
- </monthPatternWidth>
- <monthPatternWidth type="narrow">
- <monthPattern type="leap" draft="contributed">{0}b</monthPattern>
- </monthPatternWidth>
- <monthPatternWidth type="wide">
- <monthPattern type="leap" draft="contributed">{0}bis</monthPattern>
- </monthPatternWidth>
- </monthPatternContext>
- </monthPatterns>
- <cyclicNameSets>
- <cyclicNameSet type="dayParts">
- <cyclicNameContext type="format">
- <cyclicNameWidth type="abbreviated">
- <cyclicName type="1" draft="contributed">zi</cyclicName>
- <cyclicName type="2" draft="contributed">chou</cyclicName>
- <cyclicName type="3" draft="contributed">yin</cyclicName>
- <cyclicName type="4" draft="contributed">mao</cyclicName>
- <cyclicName type="5" draft="contributed">chen</cyclicName>
- <cyclicName type="6" draft="contributed">si</cyclicName>
- <cyclicName type="7" draft="contributed">wu</cyclicName>
- <cyclicName type="8" draft="contributed">wei</cyclicName>
- <cyclicName type="9" draft="contributed">shen</cyclicName>
- <cyclicName type="10" draft="contributed">you</cyclicName>
- <cyclicName type="11" draft="contributed">xu</cyclicName>
- <cyclicName type="12" draft="contributed">hai</cyclicName>
- </cyclicNameWidth>
- <cyclicNameWidth type="narrow">
- <cyclicName type="1" draft="contributed">zi</cyclicName>
- <cyclicName type="2" draft="contributed">chou</cyclicName>
- <cyclicName type="3" draft="contributed">yin</cyclicName>
- <cyclicName type="4" draft="contributed">mao</cyclicName>
- <cyclicName type="5" draft="contributed">chen</cyclicName>
- <cyclicName type="6" draft="contributed">si</cyclicName>
- <cyclicName type="7" draft="contributed">wu</cyclicName>
- <cyclicName type="8" draft="contributed">wei</cyclicName>
- <cyclicName type="9" draft="contributed">shen</cyclicName>
- <cyclicName type="10" draft="contributed">you</cyclicName>
- <cyclicName type="11" draft="contributed">xu</cyclicName>
- <cyclicName type="12" draft="contributed">hai</cyclicName>
- </cyclicNameWidth>
- <cyclicNameWidth type="wide">
- <cyclicName type="1" draft="contributed">zi</cyclicName>
- <cyclicName type="2" draft="contributed">chou</cyclicName>
- <cyclicName type="3" draft="contributed">yin</cyclicName>
- <cyclicName type="4" draft="contributed">mao</cyclicName>
- <cyclicName type="5" draft="contributed">chen</cyclicName>
- <cyclicName type="6" draft="contributed">si</cyclicName>
- <cyclicName type="7" draft="contributed">wu</cyclicName>
- <cyclicName type="8" draft="contributed">wei</cyclicName>
- <cyclicName type="9" draft="contributed">shen</cyclicName>
- <cyclicName type="10" draft="contributed">you</cyclicName>
- <cyclicName type="11" draft="contributed">xu</cyclicName>
- <cyclicName type="12" draft="contributed">hai</cyclicName>
- </cyclicNameWidth>
- </cyclicNameContext>
- </cyclicNameSet>
- <cyclicNameSet type="days">
- <cyclicNameContext type="format">
- <cyclicNameWidth type="abbreviated">
- <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
- <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
- <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
- <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
- <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
- <cyclicName type="6" draft="contributed">ji-si</cyclicName>
- <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
- <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
- <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
- <cyclicName type="10" draft="contributed">gui-you</cyclicName>
- <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
- <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
- <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
- <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
- <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
- <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
- <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
- <cyclicName type="18" draft="contributed">xin-si</cyclicName>
- <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
- <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
- <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
- <cyclicName type="22" draft="contributed">yi-you</cyclicName>
- <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
- <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
- <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
- <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
- <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
- <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
- <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
- <cyclicName type="30" draft="contributed">gui-si</cyclicName>
- <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
- <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
- <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
- <cyclicName type="34" draft="contributed">ding-you</cyclicName>
- <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
- <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
- <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
- <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
- <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
- <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
- <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
- <cyclicName type="42" draft="contributed">yi-si</cyclicName>
- <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
- <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
- <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
- <cyclicName type="46" draft="contributed">ji-you</cyclicName>
- <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
- <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
- <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
- <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
- <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
- <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
- <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
- <cyclicName type="54" draft="contributed">ding-si</cyclicName>
- <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
- <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
- <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
- <cyclicName type="58" draft="contributed">xin-you</cyclicName>
- <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
- <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
- </cyclicNameWidth>
- <cyclicNameWidth type="narrow">
- <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
- <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
- <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
- <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
- <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
- <cyclicName type="6" draft="contributed">ji-si</cyclicName>
- <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
- <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
- <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
- <cyclicName type="10" draft="contributed">gui-you</cyclicName>
- <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
- <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
- <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
- <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
- <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
- <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
- <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
- <cyclicName type="18" draft="contributed">xin-si</cyclicName>
- <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
- <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
- <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
- <cyclicName type="22" draft="contributed">yi-you</cyclicName>
- <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
- <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
- <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
- <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
- <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
- <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
- <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
- <cyclicName type="30" draft="contributed">gui-si</cyclicName>
- <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
- <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
- <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
- <cyclicName type="34" draft="contributed">ding-you</cyclicName>
- <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
- <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
- <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
- <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
- <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
- <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
- <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
- <cyclicName type="42" draft="contributed">yi-si</cyclicName>
- <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
- <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
- <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
- <cyclicName type="46" draft="contributed">ji-you</cyclicName>
- <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
- <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
- <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
- <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
- <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
- <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
- <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
- <cyclicName type="54" draft="contributed">ding-si</cyclicName>
- <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
- <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
- <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
- <cyclicName type="58" draft="contributed">xin-you</cyclicName>
- <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
- <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
- </cyclicNameWidth>
- <cyclicNameWidth type="wide">
- <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
- <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
- <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
- <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
- <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
- <cyclicName type="6" draft="contributed">ji-si</cyclicName>
- <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
- <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
- <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
- <cyclicName type="10" draft="contributed">gui-you</cyclicName>
- <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
- <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
- <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
- <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
- <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
- <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
- <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
- <cyclicName type="18" draft="contributed">xin-si</cyclicName>
- <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
- <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
- <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
- <cyclicName type="22" draft="contributed">yi-you</cyclicName>
- <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
- <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
- <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
- <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
- <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
- <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
- <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
- <cyclicName type="30" draft="contributed">gui-si</cyclicName>
- <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
- <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
- <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
- <cyclicName type="34" draft="contributed">ding-you</cyclicName>
- <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
- <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
- <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
- <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
- <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
- <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
- <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
- <cyclicName type="42" draft="contributed">yi-si</cyclicName>
- <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
- <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
- <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
- <cyclicName type="46" draft="contributed">ji-you</cyclicName>
- <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
- <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
- <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
- <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
- <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
- <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
- <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
- <cyclicName type="54" draft="contributed">ding-si</cyclicName>
- <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
- <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
- <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
- <cyclicName type="58" draft="contributed">xin-you</cyclicName>
- <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
- <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
- </cyclicNameWidth>
- </cyclicNameContext>
- </cyclicNameSet>
- <cyclicNameSet type="months">
- <cyclicNameContext type="format">
- <cyclicNameWidth type="abbreviated">
- <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
- <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
- <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
- <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
- <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
- <cyclicName type="6" draft="contributed">ji-si</cyclicName>
- <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
- <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
- <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
- <cyclicName type="10" draft="contributed">gui-you</cyclicName>
- <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
- <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
- <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
- <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
- <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
- <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
- <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
- <cyclicName type="18" draft="contributed">xin-si</cyclicName>
- <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
- <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
- <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
- <cyclicName type="22" draft="contributed">yi-you</cyclicName>
- <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
- <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
- <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
- <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
- <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
- <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
- <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
- <cyclicName type="30" draft="contributed">gui-si</cyclicName>
- <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
- <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
- <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
- <cyclicName type="34" draft="contributed">ding-you</cyclicName>
- <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
- <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
- <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
- <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
- <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
- <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
- <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
- <cyclicName type="42" draft="contributed">yi-si</cyclicName>
- <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
- <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
- <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
- <cyclicName type="46" draft="contributed">ji-you</cyclicName>
- <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
- <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
- <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
- <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
- <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
- <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
- <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
- <cyclicName type="54" draft="contributed">ding-si</cyclicName>
- <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
- <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
- <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
- <cyclicName type="58" draft="contributed">xin-you</cyclicName>
- <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
- <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
- </cyclicNameWidth>
- <cyclicNameWidth type="narrow">
- <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
- <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
- <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
- <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
- <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
- <cyclicName type="6" draft="contributed">ji-si</cyclicName>
- <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
- <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
- <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
- <cyclicName type="10" draft="contributed">gui-you</cyclicName>
- <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
- <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
- <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
- <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
- <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
- <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
- <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
- <cyclicName type="18" draft="contributed">xin-si</cyclicName>
- <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
- <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
- <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
- <cyclicName type="22" draft="contributed">yi-you</cyclicName>
- <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
- <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
- <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
- <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
- <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
- <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
- <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
- <cyclicName type="30" draft="contributed">gui-si</cyclicName>
- <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
- <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
- <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
- <cyclicName type="34" draft="contributed">ding-you</cyclicName>
- <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
- <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
- <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
- <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
- <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
- <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
- <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
- <cyclicName type="42" draft="contributed">yi-si</cyclicName>
- <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
- <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
- <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
- <cyclicName type="46" draft="contributed">ji-you</cyclicName>
- <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
- <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
- <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
- <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
- <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
- <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
- <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
- <cyclicName type="54" draft="contributed">ding-si</cyclicName>
- <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
- <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
- <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
- <cyclicName type="58" draft="contributed">xin-you</cyclicName>
- <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
- <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
- </cyclicNameWidth>
- <cyclicNameWidth type="wide">
- <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
- <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
- <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
- <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
- <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
- <cyclicName type="6" draft="contributed">ji-si</cyclicName>
- <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
- <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
- <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
- <cyclicName type="10" draft="contributed">gui-you</cyclicName>
- <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
- <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
- <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
- <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
- <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
- <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
- <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
- <cyclicName type="18" draft="contributed">xin-si</cyclicName>
- <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
- <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
- <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
- <cyclicName type="22" draft="contributed">yi-you</cyclicName>
- <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
- <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
- <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
- <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
- <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
- <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
- <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
- <cyclicName type="30" draft="contributed">gui-si</cyclicName>
- <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
- <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
- <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
- <cyclicName type="34" draft="contributed">ding-you</cyclicName>
- <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
- <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
- <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
- <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
- <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
- <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
- <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
- <cyclicName type="42" draft="contributed">yi-si</cyclicName>
- <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
- <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
- <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
- <cyclicName type="46" draft="contributed">ji-you</cyclicName>
- <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
- <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
- <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
- <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
- <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
- <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
- <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
- <cyclicName type="54" draft="contributed">ding-si</cyclicName>
- <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
- <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
- <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
- <cyclicName type="58" draft="contributed">xin-you</cyclicName>
- <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
- <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
- </cyclicNameWidth>
- </cyclicNameContext>
- </cyclicNameSet>
- <cyclicNameSet type="solarTerms">
- <cyclicNameContext type="format">
- <cyclicNameWidth type="abbreviated">
- <cyclicName type="1" draft="contributed">vårstart</cyclicName>
- <cyclicName type="2" draft="contributed">regnvann</cyclicName>
- <cyclicName type="3" draft="contributed">insekter våkner</cyclicName>
- <cyclicName type="4" draft="contributed">vårjevndøgn</cyclicName>
- <cyclicName type="5" draft="contributed">lyst og klart</cyclicName>
- <cyclicName type="6" draft="contributed">kornregn</cyclicName>
- <cyclicName type="7" draft="contributed">sommerstart</cyclicName>
- <cyclicName type="8" draft="contributed">tidl. korn</cyclicName>
- <cyclicName type="9" draft="contributed">korn i aks</cyclicName>
- <cyclicName type="10" draft="contributed">sommersolverv</cyclicName>
- <cyclicName type="11" draft="contributed">liten varme</cyclicName>
- <cyclicName type="12" draft="contributed">stor varme</cyclicName>
- <cyclicName type="13" draft="contributed">høststart</cyclicName>
- <cyclicName type="14" draft="contributed">varmeslutt</cyclicName>
- <cyclicName type="15" draft="contributed">hvit dugg</cyclicName>
- <cyclicName type="16" draft="contributed">høstjevndøgn</cyclicName>
- <cyclicName type="17" draft="contributed">kalddugg</cyclicName>
- <cyclicName type="18" draft="contributed">første frost</cyclicName>
- <cyclicName type="19" draft="contributed">vinterstart</cyclicName>
- <cyclicName type="20" draft="contributed">litt snø</cyclicName>
- <cyclicName type="21" draft="contributed">mye snø</cyclicName>
- <cyclicName type="22" draft="contributed">vintersolverv</cyclicName>
- <cyclicName type="23" draft="contributed">liten kulde</cyclicName>
- <cyclicName type="24" draft="contributed">stor kulde</cyclicName>
- </cyclicNameWidth>
- <cyclicNameWidth type="narrow">
- <cyclicName type="1" draft="contributed">vårstart</cyclicName>
- <cyclicName type="2" draft="contributed">regnvann</cyclicName>
- <cyclicName type="3" draft="contributed">insekter våkner</cyclicName>
- <cyclicName type="4" draft="contributed">vårjevndøgn</cyclicName>
- <cyclicName type="5" draft="contributed">lyst og klart</cyclicName>
- <cyclicName type="6" draft="contributed">kornregn</cyclicName>
- <cyclicName type="7" draft="contributed">sommerstart</cyclicName>
- <cyclicName type="8" draft="contributed">tidl. korn</cyclicName>
- <cyclicName type="9" draft="contributed">korn i aks</cyclicName>
- <cyclicName type="10" draft="contributed">sommersolverv</cyclicName>
- <cyclicName type="11" draft="contributed">liten varme</cyclicName>
- <cyclicName type="12" draft="contributed">stor varme</cyclicName>
- <cyclicName type="13" draft="contributed">høststart</cyclicName>
- <cyclicName type="14" draft="contributed">varmeslutt</cyclicName>
- <cyclicName type="15" draft="contributed">hvit dugg</cyclicName>
- <cyclicName type="16" draft="contributed">høstjevndøgn</cyclicName>
- <cyclicName type="17" draft="contributed">kalddugg</cyclicName>
- <cyclicName type="18" draft="contributed">første frost</cyclicName>
- <cyclicName type="19" draft="contributed">vinterstart</cyclicName>
- <cyclicName type="20" draft="contributed">litt snø</cyclicName>
- <cyclicName type="21" draft="contributed">mye snø</cyclicName>
- <cyclicName type="22" draft="contributed">vintersolverv</cyclicName>
- <cyclicName type="23" draft="contributed">liten kulde</cyclicName>
- <cyclicName type="24" draft="contributed">stor kulde</cyclicName>
- </cyclicNameWidth>
- <cyclicNameWidth type="wide">
- <cyclicName type="1" draft="contributed">vårstart</cyclicName>
- <cyclicName type="2" draft="contributed">regnvann</cyclicName>
- <cyclicName type="3" draft="contributed">insekter våkner</cyclicName>
- <cyclicName type="4" draft="contributed">vårjevndøgn</cyclicName>
- <cyclicName type="5" draft="contributed">lyst og klart</cyclicName>
- <cyclicName type="6" draft="contributed">kornregn</cyclicName>
- <cyclicName type="7" draft="contributed">sommerstart</cyclicName>
- <cyclicName type="8" draft="contributed">tidl. korn</cyclicName>
- <cyclicName type="9" draft="contributed">korn i aks</cyclicName>
- <cyclicName type="10" draft="contributed">sommersolverv</cyclicName>
- <cyclicName type="11" draft="contributed">liten varme</cyclicName>
- <cyclicName type="12" draft="contributed">stor varme</cyclicName>
- <cyclicName type="13" draft="contributed">høststart</cyclicName>
- <cyclicName type="14" draft="contributed">varmeslutt</cyclicName>
- <cyclicName type="15" draft="contributed">hvit dugg</cyclicName>
- <cyclicName type="16" draft="contributed">høstjevndøgn</cyclicName>
- <cyclicName type="17" draft="contributed">kalddugg</cyclicName>
- <cyclicName type="18" draft="contributed">første frost</cyclicName>
- <cyclicName type="19" draft="contributed">vinterstart</cyclicName>
- <cyclicName type="20" draft="contributed">litt snø</cyclicName>
- <cyclicName type="21" draft="contributed">mye snø</cyclicName>
- <cyclicName type="22" draft="contributed">vintersolverv</cyclicName>
- <cyclicName type="23" draft="contributed">liten kulde</cyclicName>
- <cyclicName type="24" draft="contributed">stor kulde</cyclicName>
- </cyclicNameWidth>
- </cyclicNameContext>
- </cyclicNameSet>
- <cyclicNameSet type="years">
- <cyclicNameContext type="format">
- <cyclicNameWidth type="abbreviated">
- <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
- <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
- <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
- <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
- <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
- <cyclicName type="6" draft="contributed">ji-si</cyclicName>
- <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
- <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
- <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
- <cyclicName type="10" draft="contributed">gui-you</cyclicName>
- <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
- <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
- <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
- <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
- <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
- <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
- <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
- <cyclicName type="18" draft="contributed">xin-si</cyclicName>
- <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
- <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
- <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
- <cyclicName type="22" draft="contributed">yi-you</cyclicName>
- <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
- <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
- <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
- <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
- <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
- <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
- <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
- <cyclicName type="30" draft="contributed">gui-si</cyclicName>
- <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
- <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
- <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
- <cyclicName type="34" draft="contributed">ding-you</cyclicName>
- <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
- <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
- <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
- <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
- <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
- <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
- <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
- <cyclicName type="42" draft="contributed">yi-si</cyclicName>
- <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
- <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
- <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
- <cyclicName type="46" draft="contributed">ji-you</cyclicName>
- <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
- <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
- <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
- <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
- <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
- <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
- <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
- <cyclicName type="54" draft="contributed">ding-si</cyclicName>
- <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
- <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
- <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
- <cyclicName type="58" draft="contributed">xin-you</cyclicName>
- <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
- <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
- </cyclicNameWidth>
- <cyclicNameWidth type="narrow">
- <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
- <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
- <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
- <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
- <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
- <cyclicName type="6" draft="contributed">ji-si</cyclicName>
- <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
- <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
- <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
- <cyclicName type="10" draft="contributed">gui-you</cyclicName>
- <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
- <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
- <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
- <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
- <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
- <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
- <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
- <cyclicName type="18" draft="contributed">xin-si</cyclicName>
- <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
- <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
- <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
- <cyclicName type="22" draft="contributed">yi-you</cyclicName>
- <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
- <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
- <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
- <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
- <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
- <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
- <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
- <cyclicName type="30" draft="contributed">gui-si</cyclicName>
- <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
- <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
- <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
- <cyclicName type="34" draft="contributed">ding-you</cyclicName>
- <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
- <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
- <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
- <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
- <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
- <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
- <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
- <cyclicName type="42" draft="contributed">yi-si</cyclicName>
- <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
- <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
- <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
- <cyclicName type="46" draft="contributed">ji-you</cyclicName>
- <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
- <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
- <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
- <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
- <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
- <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
- <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
- <cyclicName type="54" draft="contributed">ding-si</cyclicName>
- <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
- <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
- <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
- <cyclicName type="58" draft="contributed">xin-you</cyclicName>
- <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
- <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
- </cyclicNameWidth>
- <cyclicNameWidth type="wide">
- <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
- <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
- <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
- <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
- <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
- <cyclicName type="6" draft="contributed">ji-si</cyclicName>
- <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
- <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
- <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
- <cyclicName type="10" draft="contributed">gui-you</cyclicName>
- <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
- <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
- <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
- <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
- <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
- <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
- <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
- <cyclicName type="18" draft="contributed">xin-si</cyclicName>
- <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
- <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
- <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
- <cyclicName type="22" draft="contributed">yi-you</cyclicName>
- <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
- <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
- <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
- <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
- <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
- <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
- <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
- <cyclicName type="30" draft="contributed">gui-si</cyclicName>
- <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
- <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
- <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
- <cyclicName type="34" draft="contributed">ding-you</cyclicName>
- <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
- <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
- <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
- <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
- <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
- <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
- <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
- <cyclicName type="42" draft="contributed">yi-si</cyclicName>
- <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
- <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
- <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
- <cyclicName type="46" draft="contributed">ji-you</cyclicName>
- <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
- <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
- <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
- <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
- <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
- <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
- <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
- <cyclicName type="54" draft="contributed">ding-si</cyclicName>
- <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
- <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
- <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
- <cyclicName type="58" draft="contributed">xin-you</cyclicName>
- <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
- <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
- </cyclicNameWidth>
- </cyclicNameContext>
- </cyclicNameSet>
- <cyclicNameSet type="zodiacs">
- <cyclicNameContext type="format">
- <cyclicNameWidth type="abbreviated">
- <cyclicName type="1" draft="contributed">zi</cyclicName>
- <cyclicName type="2" draft="contributed">chou</cyclicName>
- <cyclicName type="3" draft="contributed">yin</cyclicName>
- <cyclicName type="4" draft="contributed">mao</cyclicName>
- <cyclicName type="5" draft="contributed">chen</cyclicName>
- <cyclicName type="6" draft="contributed">si</cyclicName>
- <cyclicName type="7" draft="contributed">wu</cyclicName>
- <cyclicName type="8" draft="contributed">wei</cyclicName>
- <cyclicName type="9" draft="contributed">shen</cyclicName>
- <cyclicName type="10" draft="contributed">you</cyclicName>
- <cyclicName type="11" draft="contributed">xu</cyclicName>
- <cyclicName type="12" draft="contributed">hai</cyclicName>
- </cyclicNameWidth>
- <cyclicNameWidth type="narrow">
- <cyclicName type="1" draft="contributed">zi</cyclicName>
- <cyclicName type="2" draft="contributed">chou</cyclicName>
- <cyclicName type="3" draft="contributed">yin</cyclicName>
- <cyclicName type="4" draft="contributed">mao</cyclicName>
- <cyclicName type="5" draft="contributed">chen</cyclicName>
- <cyclicName type="6" draft="contributed">si</cyclicName>
- <cyclicName type="7" draft="contributed">wu</cyclicName>
- <cyclicName type="8" draft="contributed">wei</cyclicName>
- <cyclicName type="9" draft="contributed">shen</cyclicName>
- <cyclicName type="10" draft="contributed">you</cyclicName>
- <cyclicName type="11" draft="contributed">xu</cyclicName>
- <cyclicName type="12" draft="contributed">hai</cyclicName>
- </cyclicNameWidth>
- <cyclicNameWidth type="wide">
- <cyclicName type="1" draft="contributed">zi</cyclicName>
- <cyclicName type="2" draft="contributed">chou</cyclicName>
- <cyclicName type="3" draft="contributed">yin</cyclicName>
- <cyclicName type="4" draft="contributed">mao</cyclicName>
- <cyclicName type="5" draft="contributed">chen</cyclicName>
- <cyclicName type="6" draft="contributed">si</cyclicName>
- <cyclicName type="7" draft="contributed">wu</cyclicName>
- <cyclicName type="8" draft="contributed">wei</cyclicName>
- <cyclicName type="9" draft="contributed">shen</cyclicName>
- <cyclicName type="10" draft="contributed">you</cyclicName>
- <cyclicName type="11" draft="contributed">xu</cyclicName>
- <cyclicName type="12" draft="contributed">hai</cyclicName>
- </cyclicNameWidth>
- </cyclicNameContext>
- </cyclicNameSet>
- </cyclicNameSets>
- <dateFormats>
- <dateFormatLength type="full">
- <dateFormat>
- <pattern draft="contributed">EEEE d. MMMM r(U)</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="long">
- <dateFormat>
- <pattern draft="contributed">d. MMMM r(U)</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="medium">
- <dateFormat>
- <pattern draft="contributed">d. MMM r</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="short">
- <dateFormat>
- <pattern draft="contributed">d.M.r</pattern>
- </dateFormat>
- </dateFormatLength>
- </dateFormats>
- <dateTimeFormats>
- <dateTimeFormatLength type="full">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="long">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="medium">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="short">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <availableFormats>
- <dateFormatItem id="d" draft="contributed">d.</dateFormatItem>
- <dateFormatItem id="E" draft="contributed">ccc</dateFormatItem>
- <dateFormatItem id="Ed" draft="contributed">E d.</dateFormatItem>
- <dateFormatItem id="Gy" draft="contributed">r(U)</dateFormatItem>
- <dateFormatItem id="GyMMM" draft="contributed">MMM r(U)</dateFormatItem>
- <dateFormatItem id="GyMMMd" draft="contributed">d. MMM r</dateFormatItem>
- <dateFormatItem id="GyMMMEd" draft="contributed">E d. MMM r(U)</dateFormatItem>
- <dateFormatItem id="h" draft="contributed">h a</dateFormatItem>
- <dateFormatItem id="H" draft="contributed">HH</dateFormatItem>
- <dateFormatItem id="M" draft="contributed">L.</dateFormatItem>
- <dateFormatItem id="Md" draft="contributed">dd.MM</dateFormatItem>
- <dateFormatItem id="MEd" draft="contributed">E dd.MM.</dateFormatItem>
- <dateFormatItem id="MMM" draft="contributed">LLL</dateFormatItem>
- <dateFormatItem id="MMMd" draft="contributed">d. MMM</dateFormatItem>
- <dateFormatItem id="MMMEd" draft="contributed">E d. MMM</dateFormatItem>
- <dateFormatItem id="MMMMd" draft="contributed">d. MMMM</dateFormatItem>
- <dateFormatItem id="UM" draft="contributed">MM. U</dateFormatItem>
- <dateFormatItem id="UMd" draft="contributed">d.MM. U</dateFormatItem>
- <dateFormatItem id="UMMM" draft="contributed">MMM U</dateFormatItem>
- <dateFormatItem id="UMMMd" draft="contributed">d. MMM U</dateFormatItem>
- <dateFormatItem id="y" draft="contributed">r(U)</dateFormatItem>
- <dateFormatItem id="yMd" draft="contributed">dd.MM.r</dateFormatItem>
- <dateFormatItem id="yyyy" draft="contributed">r(U)</dateFormatItem>
- <dateFormatItem id="yyyyM" draft="contributed">MM.r</dateFormatItem>
- <dateFormatItem id="yyyyMd" draft="contributed">dd.MM.r</dateFormatItem>
- <dateFormatItem id="yyyyMEd" draft="contributed">E dd.MM.r</dateFormatItem>
- <dateFormatItem id="yyyyMMM" draft="contributed">MMM r(U)</dateFormatItem>
- <dateFormatItem id="yyyyMMMd" draft="contributed">d. MMM r</dateFormatItem>
- <dateFormatItem id="yyyyMMMEd" draft="contributed">E d. MMM r(U)</dateFormatItem>
- <dateFormatItem id="yyyyMMMM" draft="contributed">MMMM r(U)</dateFormatItem>
- <dateFormatItem id="yyyyQQQ" draft="contributed">QQQ r(U)</dateFormatItem>
- <dateFormatItem id="yyyyQQQQ" draft="contributed">QQQQ r(U)</dateFormatItem>
- </availableFormats>
- <intervalFormats>
- <intervalFormatFallback draft="contributed">{0}–{1}</intervalFormatFallback>
- <intervalFormatItem id="d">
- <greatestDifference id="d" draft="contributed">d.–d.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="h">
- <greatestDifference id="a" draft="contributed">h a–h a</greatestDifference>
- <greatestDifference id="h" draft="contributed">h–h a</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="H">
- <greatestDifference id="H" draft="contributed">HH–HH</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="hm">
- <greatestDifference id="a" draft="contributed">h:mm a–h:mm a</greatestDifference>
- <greatestDifference id="h" draft="contributed">h:mm–h:mm a</greatestDifference>
- <greatestDifference id="m" draft="contributed">h:mm–h:mm a</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Hm">
- <greatestDifference id="H" draft="contributed">HH:mm–HH:mm</greatestDifference>
- <greatestDifference id="m" draft="contributed">HH:mm–HH:mm</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="hmv">
- <greatestDifference id="a" draft="contributed">h:mm a–h:mm a v</greatestDifference>
- <greatestDifference id="h" draft="contributed">h:mm–h:mm a v</greatestDifference>
- <greatestDifference id="m" draft="contributed">h:mm–h:mm a v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Hmv">
- <greatestDifference id="H" draft="contributed">HH:mm–HH:mm v</greatestDifference>
- <greatestDifference id="m" draft="contributed">HH:mm–HH:mm v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="hv">
- <greatestDifference id="a" draft="contributed">h a–h a v</greatestDifference>
- <greatestDifference id="h" draft="contributed">h–h a v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Hv">
- <greatestDifference id="H" draft="contributed">HH–HH v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="M">
- <greatestDifference id="M" draft="contributed">MM.–MM.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Md">
- <greatestDifference id="d" draft="contributed">dd.MM.–dd.MM.</greatestDifference>
- <greatestDifference id="M" draft="contributed">dd.MM.–dd.MM.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MEd">
- <greatestDifference id="d" draft="contributed">dd.MM.E–dd.MM.E</greatestDifference>
- <greatestDifference id="M" draft="contributed">dd.MM.E–dd.MM.E</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMM">
- <greatestDifference id="M" draft="contributed">LLL–LLL</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMMd">
- <greatestDifference id="d" draft="contributed">d.–d. MMM</greatestDifference>
- <greatestDifference id="M" draft="contributed">d. MMM–d. MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMMEd">
- <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="y">
- <greatestDifference id="y" draft="contributed">U–U</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yM">
- <greatestDifference id="M" draft="contributed">MM.y–MM.y</greatestDifference>
- <greatestDifference id="y" draft="contributed">MM.y–MM.y</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMd">
- <greatestDifference id="d" draft="contributed">dd.MM.y–dd.MM.y</greatestDifference>
- <greatestDifference id="M" draft="contributed">dd.MM.y–dd.MM.y</greatestDifference>
- <greatestDifference id="y" draft="contributed">dd.MM.y–dd.MM.y</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMEd">
- <greatestDifference id="d" draft="contributed">E dd.MM.y–E dd.MM.y</greatestDifference>
- <greatestDifference id="M" draft="contributed">E dd.MM.y–E dd.MM.y</greatestDifference>
- <greatestDifference id="y" draft="contributed">E dd.MM.y–E dd.MM.y</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMM">
- <greatestDifference id="M" draft="contributed">MMM–MMM U</greatestDifference>
- <greatestDifference id="y" draft="contributed">MMM U–MMM U</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMd">
- <greatestDifference id="d" draft="contributed">d.–d. U MMM</greatestDifference>
- <greatestDifference id="M" draft="contributed">d. MMM–d. MMM U</greatestDifference>
- <greatestDifference id="y" draft="contributed">d. MMM U–d. MMM U</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMEd">
- <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM U</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM U</greatestDifference>
- <greatestDifference id="y" draft="contributed">E d. MMM U–E d. MMM U</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMM">
- <greatestDifference id="M" draft="contributed">MMMM–MMMM U</greatestDifference>
- <greatestDifference id="y" draft="contributed">MMMM U–MMMM U</greatestDifference>
- </intervalFormatItem>
- </intervalFormats>
- </dateTimeFormats>
- </calendar>
- <calendar type="coptic">
- <months>
- <monthContext type="format">
- <monthWidth type="abbreviated">
- <month type="1">tout</month>
- <month type="2">baba</month>
- <month type="3">hator</month>
- <month type="4">kiahk</month>
- <month type="5">toba</month>
- <month type="6">amshir</month>
- <month type="7">baramhat</month>
- <month type="8">baramouda</month>
- <month type="9">bashans</month>
- <month type="10">paona</month>
- <month type="11">epep</month>
- <month type="12">mesra</month>
- <month type="13">nasie</month>
- </monthWidth>
- <monthWidth type="narrow">
- <month type="1">1</month>
- <month type="2">2</month>
- <month type="3">3</month>
- <month type="4">4</month>
- <month type="5">5</month>
- <month type="6">6</month>
- <month type="7">7</month>
- <month type="8">8</month>
- <month type="9">9</month>
- <month type="10">10</month>
- <month type="11">11</month>
- <month type="12">12</month>
- <month type="13">13</month>
- </monthWidth>
- <monthWidth type="wide">
- <month type="1">tout</month>
- <month type="2">baba</month>
- <month type="3">hator</month>
- <month type="4">kiahk</month>
- <month type="5">toba</month>
- <month type="6">amshir</month>
- <month type="7">baramhat</month>
- <month type="8">baramouda</month>
- <month type="9">bashans</month>
- <month type="10">paona</month>
- <month type="11">epep</month>
- <month type="12">mesra</month>
- <month type="13">nasie</month>
- </monthWidth>
- </monthContext>
- <monthContext type="stand-alone">
- <monthWidth type="abbreviated">
- <month type="1">tout</month>
- <month type="2">baba</month>
- <month type="3">hator</month>
- <month type="4">kiahk</month>
- <month type="5">toba</month>
- <month type="6">amshir</month>
- <month type="7">baramhat</month>
- <month type="8">baramouda</month>
- <month type="9">bashans</month>
- <month type="10">paona</month>
- <month type="11">epep</month>
- <month type="12">mesra</month>
- <month type="13">nasie</month>
- </monthWidth>
- <monthWidth type="narrow">
- <month type="1">1</month>
- <month type="2">2</month>
- <month type="3">3</month>
- <month type="4">4</month>
- <month type="5">5</month>
- <month type="6">6</month>
- <month type="7">7</month>
- <month type="8">8</month>
- <month type="9">9</month>
- <month type="10">10</month>
- <month type="11">11</month>
- <month type="12">12</month>
- <month type="13">13</month>
- </monthWidth>
- <monthWidth type="wide">
- <month type="1">tout</month>
- <month type="2">baba</month>
- <month type="3">hator</month>
- <month type="4">kiahk</month>
- <month type="5">toba</month>
- <month type="6">amshir</month>
- <month type="7">baramhat</month>
- <month type="8">baramouda</month>
- <month type="9">bashans</month>
- <month type="10">paona</month>
- <month type="11">epep</month>
- <month type="12">mesra</month>
- <month type="13">nasie</month>
- </monthWidth>
- </monthContext>
- </months>
- <eras>
- <eraNames>
- <era type="0">0. tidsalder</era>
- <era type="1">1. tidsalder</era>
- </eraNames>
- <eraAbbr>
- <era type="0">0. t.a.</era>
- <era type="1">1. t.a.</era>
- </eraAbbr>
- <eraNarrow>
- <era type="0">TA0</era>
- <era type="1">TA1</era>
- </eraNarrow>
- </eras>
- <dateFormats>
- <dateFormatLength type="full">
- <dateFormat>
- <pattern draft="contributed">EEEE d. MMMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="long">
- <dateFormat>
- <pattern draft="contributed">d. MMMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="medium">
- <dateFormat>
- <pattern draft="contributed">d. MMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="short">
- <dateFormat>
- <pattern draft="contributed">d.M.y G</pattern>
- </dateFormat>
- </dateFormatLength>
- </dateFormats>
- <dateTimeFormats>
- <dateTimeFormatLength type="full">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="long">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="medium">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="short">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <availableFormats>
- <dateFormatItem id="d" draft="contributed">d.</dateFormatItem>
- <dateFormatItem id="E" draft="contributed">ccc</dateFormatItem>
- <dateFormatItem id="Ed" draft="contributed">E d.</dateFormatItem>
- <dateFormatItem id="Gy" draft="contributed">y G</dateFormatItem>
- <dateFormatItem id="GyMMM" draft="contributed">MMM y G</dateFormatItem>
- <dateFormatItem id="GyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
- <dateFormatItem id="GyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
- <dateFormatItem id="M" draft="contributed">L.</dateFormatItem>
- <dateFormatItem id="Md" draft="contributed">d.M.</dateFormatItem>
- <dateFormatItem id="MEd" draft="contributed">E d.M</dateFormatItem>
- <dateFormatItem id="MMdd" draft="contributed">d.M.</dateFormatItem>
- <dateFormatItem id="MMM" draft="contributed">LLL</dateFormatItem>
- <dateFormatItem id="MMMd" draft="contributed">d. MMM</dateFormatItem>
- <dateFormatItem id="MMMEd" draft="contributed">E d. MMM</dateFormatItem>
- <dateFormatItem id="MMMMd" draft="contributed">d. MMMM</dateFormatItem>
- <dateFormatItem id="y" draft="contributed">y G</dateFormatItem>
- <dateFormatItem id="yyyy" draft="contributed">y G</dateFormatItem>
- <dateFormatItem id="yyyyM" draft="contributed">M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMd" draft="contributed">d.M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMEd" draft="contributed">E d.M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMM" draft="contributed">MM.y G</dateFormatItem>
- <dateFormatItem id="yyyyMMM" draft="contributed">MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMM" draft="contributed">MMMM y G</dateFormatItem>
- <dateFormatItem id="yyyyQQQ" draft="contributed">QQQ y G</dateFormatItem>
- <dateFormatItem id="yyyyQQQQ" draft="contributed">QQQQ y G</dateFormatItem>
- </availableFormats>
- <intervalFormats>
- <intervalFormatFallback draft="contributed">{0}–{1}</intervalFormatFallback>
- <intervalFormatItem id="d">
- <greatestDifference id="d" draft="contributed">d.–d.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="h">
- <greatestDifference id="a" draft="contributed">h a–h a</greatestDifference>
- <greatestDifference id="h" draft="contributed">h–h a</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="H">
- <greatestDifference id="H" draft="contributed">HH–HH</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="hv">
- <greatestDifference id="a" draft="contributed">h a–h a v</greatestDifference>
- <greatestDifference id="h" draft="contributed">h–h a v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Hv">
- <greatestDifference id="H" draft="contributed">HH–HH v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="M">
- <greatestDifference id="M" draft="contributed">M.–M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Md">
- <greatestDifference id="d" draft="contributed">d.M.–d.M.</greatestDifference>
- <greatestDifference id="M" draft="contributed">d.M.–d.M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MEd">
- <greatestDifference id="d" draft="contributed">E d.M.–E d.M.</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d.M.–E d.M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMM">
- <greatestDifference id="M" draft="contributed">MMM–MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMMd">
- <greatestDifference id="d" draft="contributed">d.–d. MMM</greatestDifference>
- <greatestDifference id="M" draft="contributed">d. MMM–d. MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMMEd">
- <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="y">
- <greatestDifference id="y" draft="contributed">y–y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yM">
- <greatestDifference id="M" draft="contributed">M.y–M.y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">M.y–M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMd">
- <greatestDifference id="d" draft="contributed">d.M.y–d.M.y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">d.M.y–d.M.y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">d.M.y–d.M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMEd">
- <greatestDifference id="d" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMM">
- <greatestDifference id="M" draft="contributed">MMM–MMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">MMM y–MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMd">
- <greatestDifference id="d" draft="contributed">d.–d. MMM y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">d. MMM–d. MMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">d. MMM y–d. MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMEd">
- <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">E d. MMM y–E d. MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMM">
- <greatestDifference id="M" draft="contributed">MMMM–MMMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">MMMM y–MMMM y G</greatestDifference>
- </intervalFormatItem>
- </intervalFormats>
- </dateTimeFormats>
- </calendar>
- <calendar type="dangi">
- <months>
- <monthContext type="format">
- <monthWidth type="abbreviated">
- <month type="1" draft="contributed">M01</month>
- <month type="2" draft="contributed">M02</month>
- <month type="3" draft="contributed">M03</month>
- <month type="4" draft="contributed">M04</month>
- <month type="5" draft="contributed">M05</month>
- <month type="6" draft="contributed">M06</month>
- <month type="7" draft="contributed">M07</month>
- <month type="8" draft="contributed">M08</month>
- <month type="9" draft="contributed">M09</month>
- <month type="10" draft="contributed">M10</month>
- <month type="11" draft="contributed">M11</month>
- <month type="12" draft="contributed">M12</month>
- </monthWidth>
- <monthWidth type="narrow">
- <month type="1" draft="contributed">1</month>
- <month type="2" draft="contributed">2</month>
- <month type="3" draft="contributed">3</month>
- <month type="4" draft="contributed">4</month>
- <month type="5" draft="contributed">5</month>
- <month type="6" draft="contributed">6</month>
- <month type="7" draft="contributed">7</month>
- <month type="8" draft="contributed">8</month>
- <month type="9" draft="contributed">9</month>
- <month type="10" draft="contributed">10</month>
- <month type="11" draft="contributed">11</month>
- <month type="12" draft="contributed">12</month>
- </monthWidth>
- <monthWidth type="wide">
- <month type="1" draft="contributed">M01</month>
- <month type="2" draft="contributed">M02</month>
- <month type="3" draft="contributed">M03</month>
- <month type="4" draft="contributed">M04</month>
- <month type="5" draft="contributed">M05</month>
- <month type="6" draft="contributed">M06</month>
- <month type="7" draft="contributed">M07</month>
- <month type="8" draft="contributed">M08</month>
- <month type="9" draft="contributed">M09</month>
- <month type="10" draft="contributed">M10</month>
- <month type="11" draft="contributed">M11</month>
- <month type="12" draft="contributed">M12</month>
- </monthWidth>
- </monthContext>
- <monthContext type="stand-alone">
- <monthWidth type="abbreviated">
- <month type="1" draft="contributed">M01</month>
- <month type="2" draft="contributed">M02</month>
- <month type="3" draft="contributed">M03</month>
- <month type="4" draft="contributed">M04</month>
- <month type="5" draft="contributed">M05</month>
- <month type="6" draft="contributed">M06</month>
- <month type="7" draft="contributed">M07</month>
- <month type="8" draft="contributed">M08</month>
- <month type="9" draft="contributed">M09</month>
- <month type="10" draft="contributed">M10</month>
- <month type="11" draft="contributed">M11</month>
- <month type="12" draft="contributed">M12</month>
- </monthWidth>
- <monthWidth type="narrow">
- <month type="1" draft="contributed">1</month>
- <month type="2" draft="contributed">2</month>
- <month type="3" draft="contributed">3</month>
- <month type="4" draft="contributed">4</month>
- <month type="5" draft="contributed">5</month>
- <month type="6" draft="contributed">6</month>
- <month type="7" draft="contributed">7</month>
- <month type="8" draft="contributed">8</month>
- <month type="9" draft="contributed">9</month>
- <month type="10" draft="contributed">10</month>
- <month type="11" draft="contributed">11</month>
- <month type="12" draft="contributed">12</month>
- </monthWidth>
- <monthWidth type="wide">
- <month type="1" draft="contributed">M01</month>
- <month type="2" draft="contributed">M02</month>
- <month type="3" draft="contributed">M03</month>
- <month type="4" draft="contributed">M04</month>
- <month type="5" draft="contributed">M05</month>
- <month type="6" draft="contributed">M06</month>
- <month type="7" draft="contributed">M07</month>
- <month type="8" draft="contributed">M08</month>
- <month type="9" draft="contributed">M09</month>
- <month type="10" draft="contributed">M10</month>
- <month type="11" draft="contributed">M11</month>
- <month type="12" draft="contributed">M12</month>
- </monthWidth>
- </monthContext>
- </months>
- <monthPatterns>
- <monthPatternContext type="format">
- <monthPatternWidth type="abbreviated">
- <monthPattern type="leap" draft="contributed">{0}bis</monthPattern>
- </monthPatternWidth>
- <monthPatternWidth type="narrow">
- <monthPattern type="leap" draft="contributed">{0}b</monthPattern>
- </monthPatternWidth>
- <monthPatternWidth type="wide">
- <monthPattern type="leap" draft="contributed">{0}bis</monthPattern>
- </monthPatternWidth>
- </monthPatternContext>
- <monthPatternContext type="numeric">
- <monthPatternWidth type="all">
- <monthPattern type="leap" draft="contributed">{0}bis</monthPattern>
- </monthPatternWidth>
- </monthPatternContext>
- <monthPatternContext type="stand-alone">
- <monthPatternWidth type="abbreviated">
- <monthPattern type="leap" draft="contributed">{0}bis</monthPattern>
- </monthPatternWidth>
- <monthPatternWidth type="narrow">
- <monthPattern type="leap" draft="contributed">{0}b</monthPattern>
- </monthPatternWidth>
- <monthPatternWidth type="wide">
- <monthPattern type="leap" draft="contributed">{0}bis</monthPattern>
- </monthPatternWidth>
- </monthPatternContext>
- </monthPatterns>
- <cyclicNameSets>
- <cyclicNameSet type="dayParts">
- <cyclicNameContext type="format">
- <cyclicNameWidth type="abbreviated">
- <cyclicName type="1" draft="contributed">zi</cyclicName>
- <cyclicName type="2" draft="contributed">chou</cyclicName>
- <cyclicName type="3" draft="contributed">yin</cyclicName>
- <cyclicName type="4" draft="contributed">mao</cyclicName>
- <cyclicName type="5" draft="contributed">chen</cyclicName>
- <cyclicName type="6" draft="contributed">si</cyclicName>
- <cyclicName type="7" draft="contributed">wu</cyclicName>
- <cyclicName type="8" draft="contributed">wei</cyclicName>
- <cyclicName type="9" draft="contributed">shen</cyclicName>
- <cyclicName type="10" draft="contributed">you</cyclicName>
- <cyclicName type="11" draft="contributed">xu</cyclicName>
- <cyclicName type="12" draft="contributed">hai</cyclicName>
- </cyclicNameWidth>
- <cyclicNameWidth type="narrow">
- <cyclicName type="1" draft="contributed">zi</cyclicName>
- <cyclicName type="2" draft="contributed">chou</cyclicName>
- <cyclicName type="3" draft="contributed">yin</cyclicName>
- <cyclicName type="4" draft="contributed">mao</cyclicName>
- <cyclicName type="5" draft="contributed">chen</cyclicName>
- <cyclicName type="6" draft="contributed">si</cyclicName>
- <cyclicName type="7" draft="contributed">wu</cyclicName>
- <cyclicName type="8" draft="contributed">wei</cyclicName>
- <cyclicName type="9" draft="contributed">shen</cyclicName>
- <cyclicName type="10" draft="contributed">you</cyclicName>
- <cyclicName type="11" draft="contributed">xu</cyclicName>
- <cyclicName type="12" draft="contributed">hai</cyclicName>
- </cyclicNameWidth>
- <cyclicNameWidth type="wide">
- <cyclicName type="1" draft="contributed">zi</cyclicName>
- <cyclicName type="2" draft="contributed">chou</cyclicName>
- <cyclicName type="3" draft="contributed">yin</cyclicName>
- <cyclicName type="4" draft="contributed">mao</cyclicName>
- <cyclicName type="5" draft="contributed">chen</cyclicName>
- <cyclicName type="6" draft="contributed">si</cyclicName>
- <cyclicName type="7" draft="contributed">wu</cyclicName>
- <cyclicName type="8" draft="contributed">wei</cyclicName>
- <cyclicName type="9" draft="contributed">shen</cyclicName>
- <cyclicName type="10" draft="contributed">you</cyclicName>
- <cyclicName type="11" draft="contributed">xu</cyclicName>
- <cyclicName type="12" draft="contributed">hai</cyclicName>
- </cyclicNameWidth>
- </cyclicNameContext>
- </cyclicNameSet>
- <cyclicNameSet type="days">
- <cyclicNameContext type="format">
- <cyclicNameWidth type="abbreviated">
- <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
- <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
- <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
- <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
- <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
- <cyclicName type="6" draft="contributed">ji-si</cyclicName>
- <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
- <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
- <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
- <cyclicName type="10" draft="contributed">gui-you</cyclicName>
- <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
- <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
- <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
- <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
- <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
- <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
- <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
- <cyclicName type="18" draft="contributed">xin-si</cyclicName>
- <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
- <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
- <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
- <cyclicName type="22" draft="contributed">yi-you</cyclicName>
- <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
- <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
- <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
- <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
- <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
- <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
- <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
- <cyclicName type="30" draft="contributed">gui-si</cyclicName>
- <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
- <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
- <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
- <cyclicName type="34" draft="contributed">ding-you</cyclicName>
- <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
- <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
- <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
- <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
- <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
- <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
- <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
- <cyclicName type="42" draft="contributed">yi-si</cyclicName>
- <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
- <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
- <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
- <cyclicName type="46" draft="contributed">ji-you</cyclicName>
- <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
- <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
- <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
- <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
- <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
- <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
- <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
- <cyclicName type="54" draft="contributed">ding-si</cyclicName>
- <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
- <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
- <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
- <cyclicName type="58" draft="contributed">xin-you</cyclicName>
- <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
- <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
- </cyclicNameWidth>
- <cyclicNameWidth type="narrow">
- <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
- <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
- <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
- <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
- <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
- <cyclicName type="6" draft="contributed">ji-si</cyclicName>
- <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
- <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
- <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
- <cyclicName type="10" draft="contributed">gui-you</cyclicName>
- <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
- <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
- <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
- <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
- <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
- <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
- <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
- <cyclicName type="18" draft="contributed">xin-si</cyclicName>
- <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
- <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
- <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
- <cyclicName type="22" draft="contributed">yi-you</cyclicName>
- <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
- <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
- <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
- <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
- <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
- <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
- <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
- <cyclicName type="30" draft="contributed">gui-si</cyclicName>
- <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
- <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
- <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
- <cyclicName type="34" draft="contributed">ding-you</cyclicName>
- <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
- <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
- <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
- <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
- <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
- <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
- <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
- <cyclicName type="42" draft="contributed">yi-si</cyclicName>
- <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
- <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
- <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
- <cyclicName type="46" draft="contributed">ji-you</cyclicName>
- <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
- <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
- <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
- <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
- <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
- <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
- <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
- <cyclicName type="54" draft="contributed">ding-si</cyclicName>
- <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
- <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
- <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
- <cyclicName type="58" draft="contributed">xin-you</cyclicName>
- <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
- <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
- </cyclicNameWidth>
- <cyclicNameWidth type="wide">
- <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
- <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
- <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
- <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
- <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
- <cyclicName type="6" draft="contributed">ji-si</cyclicName>
- <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
- <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
- <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
- <cyclicName type="10" draft="contributed">gui-you</cyclicName>
- <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
- <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
- <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
- <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
- <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
- <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
- <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
- <cyclicName type="18" draft="contributed">xin-si</cyclicName>
- <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
- <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
- <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
- <cyclicName type="22" draft="contributed">yi-you</cyclicName>
- <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
- <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
- <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
- <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
- <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
- <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
- <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
- <cyclicName type="30" draft="contributed">gui-si</cyclicName>
- <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
- <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
- <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
- <cyclicName type="34" draft="contributed">ding-you</cyclicName>
- <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
- <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
- <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
- <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
- <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
- <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
- <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
- <cyclicName type="42" draft="contributed">yi-si</cyclicName>
- <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
- <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
- <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
- <cyclicName type="46" draft="contributed">ji-you</cyclicName>
- <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
- <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
- <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
- <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
- <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
- <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
- <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
- <cyclicName type="54" draft="contributed">ding-si</cyclicName>
- <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
- <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
- <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
- <cyclicName type="58" draft="contributed">xin-you</cyclicName>
- <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
- <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
- </cyclicNameWidth>
- </cyclicNameContext>
- </cyclicNameSet>
- <cyclicNameSet type="months">
- <cyclicNameContext type="format">
- <cyclicNameWidth type="abbreviated">
- <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
- <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
- <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
- <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
- <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
- <cyclicName type="6" draft="contributed">ji-si</cyclicName>
- <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
- <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
- <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
- <cyclicName type="10" draft="contributed">gui-you</cyclicName>
- <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
- <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
- <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
- <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
- <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
- <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
- <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
- <cyclicName type="18" draft="contributed">xin-si</cyclicName>
- <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
- <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
- <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
- <cyclicName type="22" draft="contributed">yi-you</cyclicName>
- <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
- <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
- <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
- <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
- <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
- <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
- <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
- <cyclicName type="30" draft="contributed">gui-si</cyclicName>
- <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
- <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
- <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
- <cyclicName type="34" draft="contributed">ding-you</cyclicName>
- <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
- <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
- <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
- <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
- <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
- <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
- <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
- <cyclicName type="42" draft="contributed">yi-si</cyclicName>
- <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
- <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
- <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
- <cyclicName type="46" draft="contributed">ji-you</cyclicName>
- <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
- <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
- <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
- <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
- <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
- <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
- <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
- <cyclicName type="54" draft="contributed">ding-si</cyclicName>
- <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
- <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
- <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
- <cyclicName type="58" draft="contributed">xin-you</cyclicName>
- <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
- <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
- </cyclicNameWidth>
- <cyclicNameWidth type="narrow">
- <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
- <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
- <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
- <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
- <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
- <cyclicName type="6" draft="contributed">ji-si</cyclicName>
- <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
- <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
- <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
- <cyclicName type="10" draft="contributed">gui-you</cyclicName>
- <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
- <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
- <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
- <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
- <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
- <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
- <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
- <cyclicName type="18" draft="contributed">xin-si</cyclicName>
- <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
- <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
- <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
- <cyclicName type="22" draft="contributed">yi-you</cyclicName>
- <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
- <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
- <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
- <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
- <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
- <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
- <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
- <cyclicName type="30" draft="contributed">gui-si</cyclicName>
- <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
- <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
- <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
- <cyclicName type="34" draft="contributed">ding-you</cyclicName>
- <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
- <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
- <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
- <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
- <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
- <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
- <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
- <cyclicName type="42" draft="contributed">yi-si</cyclicName>
- <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
- <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
- <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
- <cyclicName type="46" draft="contributed">ji-you</cyclicName>
- <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
- <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
- <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
- <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
- <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
- <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
- <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
- <cyclicName type="54" draft="contributed">ding-si</cyclicName>
- <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
- <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
- <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
- <cyclicName type="58" draft="contributed">xin-you</cyclicName>
- <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
- <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
- </cyclicNameWidth>
- <cyclicNameWidth type="wide">
- <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
- <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
- <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
- <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
- <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
- <cyclicName type="6" draft="contributed">ji-si</cyclicName>
- <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
- <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
- <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
- <cyclicName type="10" draft="contributed">gui-you</cyclicName>
- <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
- <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
- <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
- <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
- <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
- <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
- <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
- <cyclicName type="18" draft="contributed">xin-si</cyclicName>
- <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
- <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
- <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
- <cyclicName type="22" draft="contributed">yi-you</cyclicName>
- <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
- <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
- <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
- <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
- <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
- <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
- <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
- <cyclicName type="30" draft="contributed">gui-si</cyclicName>
- <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
- <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
- <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
- <cyclicName type="34" draft="contributed">ding-you</cyclicName>
- <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
- <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
- <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
- <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
- <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
- <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
- <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
- <cyclicName type="42" draft="contributed">yi-si</cyclicName>
- <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
- <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
- <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
- <cyclicName type="46" draft="contributed">ji-you</cyclicName>
- <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
- <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
- <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
- <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
- <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
- <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
- <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
- <cyclicName type="54" draft="contributed">ding-si</cyclicName>
- <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
- <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
- <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
- <cyclicName type="58" draft="contributed">xin-you</cyclicName>
- <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
- <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
- </cyclicNameWidth>
- </cyclicNameContext>
- </cyclicNameSet>
- <cyclicNameSet type="solarTerms">
- <cyclicNameContext type="format">
- <cyclicNameWidth type="abbreviated">
- <cyclicName type="1" draft="contributed">vårstart</cyclicName>
- <cyclicName type="2" draft="contributed">regnvann</cyclicName>
- <cyclicName type="3" draft="contributed">insekter våkner</cyclicName>
- <cyclicName type="4" draft="contributed">vårjevndøgn</cyclicName>
- <cyclicName type="5" draft="contributed">lyst og klart</cyclicName>
- <cyclicName type="6" draft="contributed">kornregn</cyclicName>
- <cyclicName type="7" draft="contributed">sommerstart</cyclicName>
- <cyclicName type="8" draft="contributed">tidl. korn</cyclicName>
- <cyclicName type="9" draft="contributed">korn i aks</cyclicName>
- <cyclicName type="10" draft="contributed">sommersolverv</cyclicName>
- <cyclicName type="11" draft="contributed">liten varme</cyclicName>
- <cyclicName type="12" draft="contributed">stor varme</cyclicName>
- <cyclicName type="13" draft="contributed">høststart</cyclicName>
- <cyclicName type="14" draft="contributed">varmeslutt</cyclicName>
- <cyclicName type="15" draft="contributed">hvit dugg</cyclicName>
- <cyclicName type="16" draft="contributed">høstjevndøgn</cyclicName>
- <cyclicName type="17" draft="contributed">kalddugg</cyclicName>
- <cyclicName type="18" draft="contributed">første frost</cyclicName>
- <cyclicName type="19" draft="contributed">vinterstart</cyclicName>
- <cyclicName type="20" draft="contributed">litt snø</cyclicName>
- <cyclicName type="21" draft="contributed">mye snø</cyclicName>
- <cyclicName type="22" draft="contributed">vintersolverv</cyclicName>
- <cyclicName type="23" draft="contributed">liten kulde</cyclicName>
- <cyclicName type="24" draft="contributed">stor kulde</cyclicName>
- </cyclicNameWidth>
- <cyclicNameWidth type="narrow">
- <cyclicName type="1" draft="contributed">vårstart</cyclicName>
- <cyclicName type="2" draft="contributed">regnvann</cyclicName>
- <cyclicName type="3" draft="contributed">insekter våkner</cyclicName>
- <cyclicName type="4" draft="contributed">vårjevndøgn</cyclicName>
- <cyclicName type="5" draft="contributed">lyst og klart</cyclicName>
- <cyclicName type="6" draft="contributed">kornregn</cyclicName>
- <cyclicName type="7" draft="contributed">sommerstart</cyclicName>
- <cyclicName type="8" draft="contributed">tidl. korn</cyclicName>
- <cyclicName type="9" draft="contributed">korn i aks</cyclicName>
- <cyclicName type="10" draft="contributed">sommersolverv</cyclicName>
- <cyclicName type="11" draft="contributed">liten varme</cyclicName>
- <cyclicName type="12" draft="contributed">stor varme</cyclicName>
- <cyclicName type="13" draft="contributed">høststart</cyclicName>
- <cyclicName type="14" draft="contributed">varmeslutt</cyclicName>
- <cyclicName type="15" draft="contributed">hvit dugg</cyclicName>
- <cyclicName type="16" draft="contributed">høstjevndøgn</cyclicName>
- <cyclicName type="17" draft="contributed">kalddugg</cyclicName>
- <cyclicName type="18" draft="contributed">første frost</cyclicName>
- <cyclicName type="19" draft="contributed">vinterstart</cyclicName>
- <cyclicName type="20" draft="contributed">litt snø</cyclicName>
- <cyclicName type="21" draft="contributed">mye snø</cyclicName>
- <cyclicName type="22" draft="contributed">vintersolverv</cyclicName>
- <cyclicName type="23" draft="contributed">liten kulde</cyclicName>
- <cyclicName type="24" draft="contributed">stor kulde</cyclicName>
- </cyclicNameWidth>
- <cyclicNameWidth type="wide">
- <cyclicName type="1" draft="contributed">vårstart</cyclicName>
- <cyclicName type="2" draft="contributed">regnvann</cyclicName>
- <cyclicName type="3" draft="contributed">insekter våkner</cyclicName>
- <cyclicName type="4" draft="contributed">vårjevndøgn</cyclicName>
- <cyclicName type="5" draft="contributed">lyst og klart</cyclicName>
- <cyclicName type="6" draft="contributed">kornregn</cyclicName>
- <cyclicName type="7" draft="contributed">sommerstart</cyclicName>
- <cyclicName type="8" draft="contributed">tidl. korn</cyclicName>
- <cyclicName type="9" draft="contributed">korn i aks</cyclicName>
- <cyclicName type="10" draft="contributed">sommersolverv</cyclicName>
- <cyclicName type="11" draft="contributed">liten varme</cyclicName>
- <cyclicName type="12" draft="contributed">stor varme</cyclicName>
- <cyclicName type="13" draft="contributed">høststart</cyclicName>
- <cyclicName type="14" draft="contributed">varmeslutt</cyclicName>
- <cyclicName type="15" draft="contributed">hvit dugg</cyclicName>
- <cyclicName type="16" draft="contributed">høstjevndøgn</cyclicName>
- <cyclicName type="17" draft="contributed">kalddugg</cyclicName>
- <cyclicName type="18" draft="contributed">første frost</cyclicName>
- <cyclicName type="19" draft="contributed">vinterstart</cyclicName>
- <cyclicName type="20" draft="contributed">litt snø</cyclicName>
- <cyclicName type="21" draft="contributed">mye snø</cyclicName>
- <cyclicName type="22" draft="contributed">vintersolverv</cyclicName>
- <cyclicName type="23" draft="contributed">liten kulde</cyclicName>
- <cyclicName type="24" draft="contributed">stor kulde</cyclicName>
- </cyclicNameWidth>
- </cyclicNameContext>
- </cyclicNameSet>
- <cyclicNameSet type="years">
- <cyclicNameContext type="format">
- <cyclicNameWidth type="abbreviated">
- <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
- <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
- <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
- <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
- <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
- <cyclicName type="6" draft="contributed">ji-si</cyclicName>
- <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
- <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
- <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
- <cyclicName type="10" draft="contributed">gui-you</cyclicName>
- <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
- <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
- <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
- <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
- <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
- <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
- <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
- <cyclicName type="18" draft="contributed">xin-si</cyclicName>
- <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
- <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
- <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
- <cyclicName type="22" draft="contributed">yi-you</cyclicName>
- <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
- <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
- <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
- <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
- <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
- <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
- <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
- <cyclicName type="30" draft="contributed">gui-si</cyclicName>
- <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
- <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
- <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
- <cyclicName type="34" draft="contributed">ding-you</cyclicName>
- <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
- <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
- <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
- <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
- <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
- <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
- <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
- <cyclicName type="42" draft="contributed">yi-si</cyclicName>
- <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
- <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
- <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
- <cyclicName type="46" draft="contributed">ji-you</cyclicName>
- <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
- <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
- <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
- <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
- <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
- <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
- <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
- <cyclicName type="54" draft="contributed">ding-si</cyclicName>
- <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
- <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
- <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
- <cyclicName type="58" draft="contributed">xin-you</cyclicName>
- <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
- <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
- </cyclicNameWidth>
- <cyclicNameWidth type="narrow">
- <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
- <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
- <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
- <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
- <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
- <cyclicName type="6" draft="contributed">ji-si</cyclicName>
- <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
- <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
- <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
- <cyclicName type="10" draft="contributed">gui-you</cyclicName>
- <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
- <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
- <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
- <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
- <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
- <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
- <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
- <cyclicName type="18" draft="contributed">xin-si</cyclicName>
- <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
- <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
- <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
- <cyclicName type="22" draft="contributed">yi-you</cyclicName>
- <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
- <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
- <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
- <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
- <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
- <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
- <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
- <cyclicName type="30" draft="contributed">gui-si</cyclicName>
- <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
- <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
- <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
- <cyclicName type="34" draft="contributed">ding-you</cyclicName>
- <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
- <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
- <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
- <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
- <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
- <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
- <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
- <cyclicName type="42" draft="contributed">yi-si</cyclicName>
- <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
- <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
- <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
- <cyclicName type="46" draft="contributed">ji-you</cyclicName>
- <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
- <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
- <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
- <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
- <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
- <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
- <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
- <cyclicName type="54" draft="contributed">ding-si</cyclicName>
- <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
- <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
- <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
- <cyclicName type="58" draft="contributed">xin-you</cyclicName>
- <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
- <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
- </cyclicNameWidth>
- <cyclicNameWidth type="wide">
- <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
- <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
- <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
- <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
- <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
- <cyclicName type="6" draft="contributed">ji-si</cyclicName>
- <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
- <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
- <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
- <cyclicName type="10" draft="contributed">gui-you</cyclicName>
- <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
- <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
- <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
- <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
- <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
- <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
- <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
- <cyclicName type="18" draft="contributed">xin-si</cyclicName>
- <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
- <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
- <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
- <cyclicName type="22" draft="contributed">yi-you</cyclicName>
- <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
- <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
- <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
- <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
- <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
- <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
- <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
- <cyclicName type="30" draft="contributed">gui-si</cyclicName>
- <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
- <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
- <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
- <cyclicName type="34" draft="contributed">ding-you</cyclicName>
- <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
- <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
- <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
- <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
- <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
- <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
- <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
- <cyclicName type="42" draft="contributed">yi-si</cyclicName>
- <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
- <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
- <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
- <cyclicName type="46" draft="contributed">ji-you</cyclicName>
- <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
- <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
- <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
- <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
- <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
- <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
- <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
- <cyclicName type="54" draft="contributed">ding-si</cyclicName>
- <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
- <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
- <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
- <cyclicName type="58" draft="contributed">xin-you</cyclicName>
- <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
- <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
- </cyclicNameWidth>
- </cyclicNameContext>
- </cyclicNameSet>
- <cyclicNameSet type="zodiacs">
- <cyclicNameContext type="format">
- <cyclicNameWidth type="abbreviated">
- <cyclicName type="1" draft="contributed">zi</cyclicName>
- <cyclicName type="2" draft="contributed">chou</cyclicName>
- <cyclicName type="3" draft="contributed">yin</cyclicName>
- <cyclicName type="4" draft="contributed">mao</cyclicName>
- <cyclicName type="5" draft="contributed">chen</cyclicName>
- <cyclicName type="6" draft="contributed">si</cyclicName>
- <cyclicName type="7" draft="contributed">wu</cyclicName>
- <cyclicName type="8" draft="contributed">wei</cyclicName>
- <cyclicName type="9" draft="contributed">shen</cyclicName>
- <cyclicName type="10" draft="contributed">you</cyclicName>
- <cyclicName type="11" draft="contributed">xu</cyclicName>
- <cyclicName type="12" draft="contributed">hai</cyclicName>
- </cyclicNameWidth>
- <cyclicNameWidth type="narrow">
- <cyclicName type="1" draft="contributed">zi</cyclicName>
- <cyclicName type="2" draft="contributed">chou</cyclicName>
- <cyclicName type="3" draft="contributed">yin</cyclicName>
- <cyclicName type="4" draft="contributed">mao</cyclicName>
- <cyclicName type="5" draft="contributed">chen</cyclicName>
- <cyclicName type="6" draft="contributed">si</cyclicName>
- <cyclicName type="7" draft="contributed">wu</cyclicName>
- <cyclicName type="8" draft="contributed">wei</cyclicName>
- <cyclicName type="9" draft="contributed">shen</cyclicName>
- <cyclicName type="10" draft="contributed">you</cyclicName>
- <cyclicName type="11" draft="contributed">xu</cyclicName>
- <cyclicName type="12" draft="contributed">hai</cyclicName>
- </cyclicNameWidth>
- <cyclicNameWidth type="wide">
- <cyclicName type="1" draft="contributed">zi</cyclicName>
- <cyclicName type="2" draft="contributed">chou</cyclicName>
- <cyclicName type="3" draft="contributed">yin</cyclicName>
- <cyclicName type="4" draft="contributed">mao</cyclicName>
- <cyclicName type="5" draft="contributed">chen</cyclicName>
- <cyclicName type="6" draft="contributed">si</cyclicName>
- <cyclicName type="7" draft="contributed">wu</cyclicName>
- <cyclicName type="8" draft="contributed">wei</cyclicName>
- <cyclicName type="9" draft="contributed">shen</cyclicName>
- <cyclicName type="10" draft="contributed">you</cyclicName>
- <cyclicName type="11" draft="contributed">xu</cyclicName>
- <cyclicName type="12" draft="contributed">hai</cyclicName>
- </cyclicNameWidth>
- </cyclicNameContext>
- </cyclicNameSet>
- </cyclicNameSets>
- <dateFormats>
- <dateFormatLength type="full">
- <dateFormat>
- <pattern draft="contributed">EEEE d. MMMM r(U)</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="long">
- <dateFormat>
- <pattern draft="contributed">d. MMMM r(U)</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="medium">
- <dateFormat>
- <pattern draft="contributed">d. MMM r</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="short">
- <dateFormat>
- <pattern draft="contributed">d.M.r</pattern>
- </dateFormat>
- </dateFormatLength>
- </dateFormats>
- <dateTimeFormats>
- <dateTimeFormatLength type="full">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="long">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="medium">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="short">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <availableFormats>
- <dateFormatItem id="d" draft="contributed">d.</dateFormatItem>
- <dateFormatItem id="E" draft="contributed">ccc</dateFormatItem>
- <dateFormatItem id="Ed" draft="contributed">E d.</dateFormatItem>
- <dateFormatItem id="Gy" draft="contributed">r(U)</dateFormatItem>
- <dateFormatItem id="GyMMM" draft="contributed">MMM r(U)</dateFormatItem>
- <dateFormatItem id="GyMMMd" draft="contributed">d. MMM r</dateFormatItem>
- <dateFormatItem id="GyMMMEd" draft="contributed">E d. MMM r(U)</dateFormatItem>
- <dateFormatItem id="M" draft="contributed">L.</dateFormatItem>
- <dateFormatItem id="Md" draft="contributed">dd.MM</dateFormatItem>
- <dateFormatItem id="MEd" draft="contributed">E dd.MM.</dateFormatItem>
- <dateFormatItem id="MMM" draft="contributed">LLL</dateFormatItem>
- <dateFormatItem id="MMMd" draft="contributed">d. MMM</dateFormatItem>
- <dateFormatItem id="MMMEd" draft="contributed">E d. MMM</dateFormatItem>
- <dateFormatItem id="MMMMd" draft="contributed">d. MMMM</dateFormatItem>
- <dateFormatItem id="UM" draft="contributed">MM. U</dateFormatItem>
- <dateFormatItem id="UMd" draft="contributed">d.MM. U</dateFormatItem>
- <dateFormatItem id="UMMM" draft="contributed">MMM U</dateFormatItem>
- <dateFormatItem id="UMMMd" draft="contributed">d. MMM U</dateFormatItem>
- <dateFormatItem id="y" draft="contributed">r(U)</dateFormatItem>
- <dateFormatItem id="yMd" draft="contributed">dd.MM.r</dateFormatItem>
- <dateFormatItem id="yyyy" draft="contributed">r(U)</dateFormatItem>
- <dateFormatItem id="yyyyM" draft="contributed">MM.r</dateFormatItem>
- <dateFormatItem id="yyyyMd" draft="contributed">dd.MM.r</dateFormatItem>
- <dateFormatItem id="yyyyMEd" draft="contributed">E dd.MM.r</dateFormatItem>
- <dateFormatItem id="yyyyMMM" draft="contributed">MMM r(U)</dateFormatItem>
- <dateFormatItem id="yyyyMMMd" draft="contributed">d. MMM r</dateFormatItem>
- <dateFormatItem id="yyyyMMMEd" draft="contributed">E d. MMM r(U)</dateFormatItem>
- <dateFormatItem id="yyyyMMMM" draft="contributed">MMMM r(U)</dateFormatItem>
- <dateFormatItem id="yyyyQQQ" draft="contributed">QQQ r(U)</dateFormatItem>
- <dateFormatItem id="yyyyQQQQ" draft="contributed">QQQQ r(U)</dateFormatItem>
- </availableFormats>
- <intervalFormats>
- <intervalFormatFallback draft="contributed">{0}–{1}</intervalFormatFallback>
- <intervalFormatItem id="d">
- <greatestDifference id="d" draft="contributed">d.–d.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="h">
- <greatestDifference id="a" draft="contributed">h a–h a</greatestDifference>
- <greatestDifference id="h" draft="contributed">h–h a</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="H">
- <greatestDifference id="H" draft="contributed">HH–HH</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="hv">
- <greatestDifference id="a" draft="contributed">h a–h a v</greatestDifference>
- <greatestDifference id="h" draft="contributed">h–h a v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Hv">
- <greatestDifference id="H" draft="contributed">HH–HH v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="M">
- <greatestDifference id="M" draft="contributed">MM.–MM.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Md">
- <greatestDifference id="d" draft="contributed">dd.MM.–dd.MM.</greatestDifference>
- <greatestDifference id="M" draft="contributed">dd.MM.–dd.MM.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MEd">
- <greatestDifference id="d" draft="contributed">dd.MM.E–dd.MM.E</greatestDifference>
- <greatestDifference id="M" draft="contributed">dd.MM.E–dd.MM.E</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMM">
- <greatestDifference id="M" draft="contributed">LLL–LLL</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMMd">
- <greatestDifference id="d" draft="contributed">d.–d. MMM</greatestDifference>
- <greatestDifference id="M" draft="contributed">d. MMM–d. MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMMEd">
- <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="y">
- <greatestDifference id="y" draft="contributed">U–U</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yM">
- <greatestDifference id="M" draft="contributed">MM.y–MM.y</greatestDifference>
- <greatestDifference id="y" draft="contributed">MM.y–MM.y</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMd">
- <greatestDifference id="d" draft="contributed">dd.MM.y–dd.MM.y</greatestDifference>
- <greatestDifference id="M" draft="contributed">dd.MM.y–dd.MM.y</greatestDifference>
- <greatestDifference id="y" draft="contributed">dd.MM.y–dd.MM.y</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMEd">
- <greatestDifference id="d" draft="contributed">E dd.MM.y–E dd.MM.y</greatestDifference>
- <greatestDifference id="M" draft="contributed">E dd.MM.y–E dd.MM.y</greatestDifference>
- <greatestDifference id="y" draft="contributed">E dd.MM.y–E dd.MM.y</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMM">
- <greatestDifference id="M" draft="contributed">MMM–MMM U</greatestDifference>
- <greatestDifference id="y" draft="contributed">MMM U–MMM U</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMd">
- <greatestDifference id="d" draft="contributed">d.–d. U MMM</greatestDifference>
- <greatestDifference id="M" draft="contributed">d. MMM–d. MMM U</greatestDifference>
- <greatestDifference id="y" draft="contributed">d. MMM U–d. MMM U</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMEd">
- <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM U</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM U</greatestDifference>
- <greatestDifference id="y" draft="contributed">E d. MMM U–E d. MMM U</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMM">
- <greatestDifference id="M" draft="contributed">MMMM–MMMM U</greatestDifference>
- <greatestDifference id="y" draft="contributed">MMMM U–MMMM U</greatestDifference>
- </intervalFormatItem>
- </intervalFormats>
- </dateTimeFormats>
- </calendar>
- <calendar type="ethiopic">
- <months>
- <monthContext type="format">
- <monthWidth type="abbreviated">
- <month type="1">meskerem</month>
- <month type="2">tekemt</month>
- <month type="3">hedar</month>
- <month type="4">tahsas</month>
- <month type="5">ter</month>
- <month type="6">yekatit</month>
- <month type="7">megabit</month>
- <month type="8">miazia</month>
- <month type="9">genbot</month>
- <month type="10">sene</month>
- <month type="11">hamle</month>
- <month type="12">nehasse</month>
- <month type="13">pagumen</month>
- </monthWidth>
- <monthWidth type="narrow">
- <month type="1">1</month>
- <month type="2">2</month>
- <month type="3">3</month>
- <month type="4">4</month>
- <month type="5">5</month>
- <month type="6">6</month>
- <month type="7">7</month>
- <month type="8">8</month>
- <month type="9">9</month>
- <month type="10">10</month>
- <month type="11">11</month>
- <month type="12">12</month>
- <month type="13">13</month>
- </monthWidth>
- <monthWidth type="wide">
- <month type="1">meskerem</month>
- <month type="2">tekemt</month>
- <month type="3">hedar</month>
- <month type="4">tahsas</month>
- <month type="5">ter</month>
- <month type="6">yekatit</month>
- <month type="7">megabit</month>
- <month type="8">miazia</month>
- <month type="9">genbot</month>
- <month type="10">sene</month>
- <month type="11">hamle</month>
- <month type="12">nehasse</month>
- <month type="13">pagumen</month>
- </monthWidth>
- </monthContext>
- <monthContext type="stand-alone">
- <monthWidth type="abbreviated">
- <month type="1">meskerem</month>
- <month type="2">tekemt</month>
- <month type="3">hedar</month>
- <month type="4">tahsas</month>
- <month type="5">ter</month>
- <month type="6">yekatit</month>
- <month type="7">megabit</month>
- <month type="8">miazia</month>
- <month type="9">genbot</month>
- <month type="10">sene</month>
- <month type="11">hamle</month>
- <month type="12">nehasse</month>
- <month type="13">pagumen</month>
- </monthWidth>
- <monthWidth type="narrow">
- <month type="1">1</month>
- <month type="2">2</month>
- <month type="3">3</month>
- <month type="4">4</month>
- <month type="5">5</month>
- <month type="6">6</month>
- <month type="7">7</month>
- <month type="8">8</month>
- <month type="9">9</month>
- <month type="10">10</month>
- <month type="11">11</month>
- <month type="12">12</month>
- <month type="13">13</month>
- </monthWidth>
- <monthWidth type="wide">
- <month type="1">meskerem</month>
- <month type="2">tekemt</month>
- <month type="3">hedar</month>
- <month type="4">tahsas</month>
- <month type="5">ter</month>
- <month type="6">yekatit</month>
- <month type="7">megabit</month>
- <month type="8">miazia</month>
- <month type="9">genbot</month>
- <month type="10">sene</month>
- <month type="11">hamle</month>
- <month type="12">nehasse</month>
- <month type="13">pagumen</month>
- </monthWidth>
- </monthContext>
- </months>
- <eras>
- <eraNames>
- <era type="0">0. tidsalder</era>
- <era type="1">1. tidsalder</era>
- </eraNames>
- <eraAbbr>
- <era type="0">0. t.a.</era>
- <era type="1">1. t.a.</era>
- </eraAbbr>
- <eraNarrow>
- <era type="0">TA0</era>
- <era type="1">TA1</era>
- </eraNarrow>
- </eras>
- <dateFormats>
- <dateFormatLength type="full">
- <dateFormat>
- <pattern draft="contributed">EEEE d. MMMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="long">
- <dateFormat>
- <pattern draft="contributed">d. MMMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="medium">
- <dateFormat>
- <pattern draft="contributed">d. MMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- </dateFormats>
- <dateTimeFormats>
- <dateTimeFormatLength type="full">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="long">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="medium">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="short">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <availableFormats>
- <dateFormatItem id="d" draft="contributed">d.</dateFormatItem>
- <dateFormatItem id="E" draft="contributed">ccc</dateFormatItem>
- <dateFormatItem id="Ed" draft="contributed">E d.</dateFormatItem>
- <dateFormatItem id="Gy" draft="contributed">y G</dateFormatItem>
- <dateFormatItem id="GyMMM" draft="contributed">MMM y G</dateFormatItem>
- <dateFormatItem id="GyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
- <dateFormatItem id="GyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
- <dateFormatItem id="M" draft="contributed">L.</dateFormatItem>
- <dateFormatItem id="Md" draft="contributed">d.M.</dateFormatItem>
- <dateFormatItem id="MEd" draft="contributed">E d.M</dateFormatItem>
- <dateFormatItem id="MMdd" draft="contributed">d.M.</dateFormatItem>
- <dateFormatItem id="MMM" draft="contributed">LLL</dateFormatItem>
- <dateFormatItem id="MMMd" draft="contributed">d. MMM</dateFormatItem>
- <dateFormatItem id="MMMEd" draft="contributed">E d. MMM</dateFormatItem>
- <dateFormatItem id="MMMMd" draft="contributed">d. MMMM</dateFormatItem>
- <dateFormatItem id="y" draft="contributed">y G</dateFormatItem>
- <dateFormatItem id="yyyy" draft="contributed">y G</dateFormatItem>
- <dateFormatItem id="yyyyM" draft="contributed">M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMd" draft="contributed">d.M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMEd" draft="contributed">E d.M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMM" draft="contributed">MM.y G</dateFormatItem>
- <dateFormatItem id="yyyyMMM" draft="contributed">MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMM" draft="contributed">MMMM y G</dateFormatItem>
- <dateFormatItem id="yyyyQQQ" draft="contributed">QQQ y G</dateFormatItem>
- <dateFormatItem id="yyyyQQQQ" draft="contributed">QQQQ y G</dateFormatItem>
- </availableFormats>
- <intervalFormats>
- <intervalFormatFallback draft="contributed">{0}–{1}</intervalFormatFallback>
- <intervalFormatItem id="d">
- <greatestDifference id="d" draft="contributed">d.–d.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="h">
- <greatestDifference id="a" draft="contributed">h a–h a</greatestDifference>
- <greatestDifference id="h" draft="contributed">h–h a</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="H">
- <greatestDifference id="H" draft="contributed">HH–HH</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="hv">
- <greatestDifference id="a" draft="contributed">h a–h a v</greatestDifference>
- <greatestDifference id="h" draft="contributed">h–h a v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Hv">
- <greatestDifference id="H" draft="contributed">HH–HH v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="M">
- <greatestDifference id="M" draft="contributed">M.–M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Md">
- <greatestDifference id="d" draft="contributed">d.M.–d.M.</greatestDifference>
- <greatestDifference id="M" draft="contributed">d.M.–d.M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MEd">
- <greatestDifference id="d" draft="contributed">E d.M.–E d.M.</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d.M.–E d.M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMM">
- <greatestDifference id="M" draft="contributed">MMM–MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMMd">
- <greatestDifference id="d" draft="contributed">d.–d. MMM</greatestDifference>
- <greatestDifference id="M" draft="contributed">d. MMM–d. MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMMEd">
- <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="y">
- <greatestDifference id="y" draft="contributed">y–y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yM">
- <greatestDifference id="M" draft="contributed">M.y–M.y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">M.y–M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMd">
- <greatestDifference id="d" draft="contributed">d.M.y–d.M.y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">d.M.y–d.M.y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">d.M.y–d.M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMEd">
- <greatestDifference id="d" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMM">
- <greatestDifference id="M" draft="contributed">MMM–MMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">MMM y–MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMd">
- <greatestDifference id="d" draft="contributed">d.–d. MMM y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">d. MMM–d. MMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">d. MMM y–d. MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMEd">
- <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">E d. MMM y–E d. MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMM">
- <greatestDifference id="M" draft="contributed">MMMM–MMMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">MMMM y–MMMM y G</greatestDifference>
- </intervalFormatItem>
- </intervalFormats>
- </dateTimeFormats>
- </calendar>
- <calendar type="ethiopic-amete-alem">
- <eras>
- <eraNames>
- <era type="0" draft="contributed">0. tidsalder</era>
- </eraNames>
- <eraAbbr>
- <era type="0" draft="contributed">0. t.a.</era>
- </eraAbbr>
- <eraNarrow>
- <era type="0" draft="contributed">TA0</era>
- </eraNarrow>
- </eras>
- </calendar>
- <calendar type="generic">
- <dateFormats>
- <dateFormatLength type="full">
- <dateFormat>
- <pattern>EEEE d. MMMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="long">
- <dateFormat>
- <pattern>d. MMMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="medium">
- <dateFormat>
- <pattern>d. MMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="short">
- <dateFormat>
- <pattern>d.M.y G</pattern>
- </dateFormat>
- </dateFormatLength>
- </dateFormats>
- <dateTimeFormats>
- <dateTimeFormatLength type="full">
- <dateTimeFormat>
- <pattern>{1} 'kl'. {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="long">
- <dateTimeFormat>
- <pattern>{1} 'kl'. {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="medium">
- <dateTimeFormat>
- <pattern>{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="short">
- <dateTimeFormat>
- <pattern>{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <availableFormats>
- <dateFormatItem id="Bh">h B</dateFormatItem>
- <dateFormatItem id="Bhm">h:mm B</dateFormatItem>
- <dateFormatItem id="Bhms">h:mm:ss B</dateFormatItem>
- <dateFormatItem id="d">d.</dateFormatItem>
- <dateFormatItem id="E">ccc</dateFormatItem>
- <dateFormatItem id="EBhm">E h:mm B</dateFormatItem>
- <dateFormatItem id="EBhms">E h:mm:ss B</dateFormatItem>
- <dateFormatItem id="Ed">E d.</dateFormatItem>
- <dateFormatItem id="Ehm">E h:mm a</dateFormatItem>
- <dateFormatItem id="EHm">E HH:mm</dateFormatItem>
- <dateFormatItem id="Ehms">E h:mm:ss a</dateFormatItem>
- <dateFormatItem id="EHms">E HH:mm:ss</dateFormatItem>
- <dateFormatItem id="Gy">y G</dateFormatItem>
- <dateFormatItem id="GyMMM">MMM y G</dateFormatItem>
- <dateFormatItem id="GyMMMd">d. MMM y G</dateFormatItem>
- <dateFormatItem id="GyMMMEd">E d. MMM y G</dateFormatItem>
- <dateFormatItem id="h">h a</dateFormatItem>
- <dateFormatItem id="H">HH</dateFormatItem>
- <dateFormatItem id="hm">h:mm a</dateFormatItem>
- <dateFormatItem id="Hm">HH:mm</dateFormatItem>
- <dateFormatItem id="hms">h:mm:ss a</dateFormatItem>
- <dateFormatItem id="Hms">HH:mm:ss</dateFormatItem>
- <dateFormatItem id="M">L.</dateFormatItem>
- <dateFormatItem id="Md">d.M.</dateFormatItem>
- <dateFormatItem id="MEd">E d.M</dateFormatItem>
- <dateFormatItem id="MMdd">d.M.</dateFormatItem>
- <dateFormatItem id="MMM">LLL</dateFormatItem>
- <dateFormatItem id="MMMd">d. MMM</dateFormatItem>
- <dateFormatItem id="MMMEd">E d. MMM</dateFormatItem>
- <dateFormatItem id="MMMMd">d. MMMM</dateFormatItem>
- <dateFormatItem id="ms">mm:ss</dateFormatItem>
- <dateFormatItem id="y">y G</dateFormatItem>
- <dateFormatItem id="yyyy">y G</dateFormatItem>
- <dateFormatItem id="yyyyM">M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMd">d.M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMEd">E d.M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMM">MM.y G</dateFormatItem>
- <dateFormatItem id="yyyyMMM">MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMd">d. MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMEd">E d. MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMM">MMMM y G</dateFormatItem>
- <dateFormatItem id="yyyyQQQ">QQQ y G</dateFormatItem>
- <dateFormatItem id="yyyyQQQQ">QQQQ y G</dateFormatItem>
- </availableFormats>
- <intervalFormats>
- <intervalFormatFallback>{0}–{1}</intervalFormatFallback>
- <intervalFormatItem id="Bh">
- <greatestDifference id="B">h B–h B</greatestDifference>
- <greatestDifference id="h">↑↑↑</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Bhm">
- <greatestDifference id="B">h:mm B–h:mm B</greatestDifference>
- <greatestDifference id="h">↑↑↑</greatestDifference>
- <greatestDifference id="m">↑↑↑</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="d">
- <greatestDifference id="d">d.–d.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Gy">
- <greatestDifference id="G">y G–y G</greatestDifference>
- <greatestDifference id="y">y–y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="GyM">
- <greatestDifference id="G">MM.y GGGGG–MM.y GGGGG</greatestDifference>
- <greatestDifference id="M">MM.y–MM.y GGGGG</greatestDifference>
- <greatestDifference id="y">MM.y–MM.y GGGGG</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="GyMd">
- <greatestDifference id="d">dd.MM.y–dd.MM.y GGGGG</greatestDifference>
- <greatestDifference id="G">dd.MM.y GGGGG–dd.MM.y GGGGG</greatestDifference>
- <greatestDifference id="M">dd.MM.y–dd.MM.y GGGGG</greatestDifference>
- <greatestDifference id="y">dd.MM.y–dd.MM.y GGGGG</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="GyMEd">
- <greatestDifference id="d">E dd.MM.y–E dd.MM.y GGGGG</greatestDifference>
- <greatestDifference id="G">E dd.MM.y GGGGG–E dd.MM.y GGGGG</greatestDifference>
- <greatestDifference id="M">E dd.MM.y–E dd.MM.y GGGGG</greatestDifference>
- <greatestDifference id="y">E dd.MM.y–E dd.MM.y GGGGG</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="GyMMM">
- <greatestDifference id="G">MMM y G–MMM y G</greatestDifference>
- <greatestDifference id="M">MMM–MMM y G</greatestDifference>
- <greatestDifference id="y">MMM y–MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="GyMMMd">
- <greatestDifference id="d">d.–d. MMM y G</greatestDifference>
- <greatestDifference id="G">d. MMM y G–d. MMM y G</greatestDifference>
- <greatestDifference id="M">d. MMM–d. MMM y G</greatestDifference>
- <greatestDifference id="y">d. MMM y–d. MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="GyMMMEd">
- <greatestDifference id="d">E d. MMM–E d. MMM y G</greatestDifference>
- <greatestDifference id="G">E d. MMM y G–E d. MMM y G</greatestDifference>
- <greatestDifference id="M">E d. MMM–E d. MMM y G</greatestDifference>
- <greatestDifference id="y">E d. MMM y–E d. MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="h">
- <greatestDifference id="a">h a – h a</greatestDifference>
- <greatestDifference id="h" draft="contributed">h–h a</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="H">
- <greatestDifference id="H" draft="contributed">HH–HH</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="hm">
- <greatestDifference id="a">h:mm a – h:mm a</greatestDifference>
- <greatestDifference id="h">h:mm–h:mm a</greatestDifference>
- <greatestDifference id="m">h:mm–h:mm a</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Hm">
- <greatestDifference id="H">HH:mm–HH:mm</greatestDifference>
- <greatestDifference id="m">HH:mm–HH:mm</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="hmv">
- <greatestDifference id="a">h:mm a – h:mm a v</greatestDifference>
- <greatestDifference id="h">h:mm–h:mm a v</greatestDifference>
- <greatestDifference id="m">h:mm–h:mm a v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Hmv">
- <greatestDifference id="H">HH:mm–HH:mm v</greatestDifference>
- <greatestDifference id="m">HH:mm–HH:mm v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="hv">
- <greatestDifference id="a">h a – h a v</greatestDifference>
- <greatestDifference id="h" draft="contributed">h–h a v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Hv">
- <greatestDifference id="H" draft="contributed">HH–HH v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="M">
- <greatestDifference id="M">M.–M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Md">
- <greatestDifference id="d">d.M.–d.M.</greatestDifference>
- <greatestDifference id="M">d.M.–d.M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MEd">
- <greatestDifference id="d">E d.M.–E d.M.</greatestDifference>
- <greatestDifference id="M">E d.M.–E d.M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMM">
- <greatestDifference id="M">MMM–MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMMd">
- <greatestDifference id="d">d.–d. MMM</greatestDifference>
- <greatestDifference id="M">d. MMM–d. MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMMEd">
- <greatestDifference id="d">E d. MMM–E d. MMM</greatestDifference>
- <greatestDifference id="M">E d. MMM–E d. MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="y">
- <greatestDifference id="y">y–y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yM">
- <greatestDifference id="M">M.y–M.y G</greatestDifference>
- <greatestDifference id="y">M.y–M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMd">
- <greatestDifference id="d">d.M.y–d.M.y G</greatestDifference>
- <greatestDifference id="M">d.M.y–d.M.y G</greatestDifference>
- <greatestDifference id="y">d.M.y–d.M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMEd">
- <greatestDifference id="d">E d.M.y–E d.M.y G</greatestDifference>
- <greatestDifference id="M">E d.M.y–E d.M.y G</greatestDifference>
- <greatestDifference id="y">E d.M.y–E d.M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMM">
- <greatestDifference id="M">MMM–MMM y G</greatestDifference>
- <greatestDifference id="y">MMM y–MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMd">
- <greatestDifference id="d">d.–d. MMM y G</greatestDifference>
- <greatestDifference id="M">d. MMM–d. MMM y G</greatestDifference>
- <greatestDifference id="y">d. MMM y–d. MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMEd">
- <greatestDifference id="d">E d. MMM–E d. MMM y G</greatestDifference>
- <greatestDifference id="M">E d. MMM–E d. MMM y G</greatestDifference>
- <greatestDifference id="y">E d. MMM y–E d. MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMM">
- <greatestDifference id="M">MMMM–MMMM y G</greatestDifference>
- <greatestDifference id="y">MMMM y–MMMM y G</greatestDifference>
- </intervalFormatItem>
- </intervalFormats>
- </dateTimeFormats>
- </calendar>
- <calendar type="gregorian">
- <months>
- <monthContext type="format">
- <monthWidth type="abbreviated">
- <month type="1">jan.</month>
- <month type="2">feb.</month>
- <month type="3">mar.</month>
- <month type="4">apr.</month>
- <month type="5">mai</month>
- <month type="6">jun.</month>
- <month type="7">jul.</month>
- <month type="8">aug.</month>
- <month type="9">sep.</month>
- <month type="10">okt.</month>
- <month type="11">nov.</month>
- <month type="12">des.</month>
- </monthWidth>
- <monthWidth type="narrow">
- <month type="1">J</month>
- <month type="2">F</month>
- <month type="3">M</month>
- <month type="4">A</month>
- <month type="5">M</month>
- <month type="6">J</month>
- <month type="7">J</month>
- <month type="8">A</month>
- <month type="9">S</month>
- <month type="10">O</month>
- <month type="11">N</month>
- <month type="12">D</month>
- </monthWidth>
- <monthWidth type="wide">
- <month type="1">januar</month>
- <month type="2">februar</month>
- <month type="3">mars</month>
- <month type="4">april</month>
- <month type="5">mai</month>
- <month type="6">juni</month>
- <month type="7">juli</month>
- <month type="8">august</month>
- <month type="9">september</month>
- <month type="10">oktober</month>
- <month type="11">november</month>
- <month type="12">desember</month>
- </monthWidth>
- </monthContext>
- <monthContext type="stand-alone">
- <monthWidth type="abbreviated">
- <month type="1">jan</month>
- <month type="2">feb</month>
- <month type="3">mar</month>
- <month type="4">apr</month>
- <month type="5">mai</month>
- <month type="6">jun</month>
- <month type="7">jul</month>
- <month type="8">aug</month>
- <month type="9">sep</month>
- <month type="10">okt</month>
- <month type="11">nov</month>
- <month type="12">des</month>
- </monthWidth>
- <monthWidth type="narrow">
- <month type="1">J</month>
- <month type="2">F</month>
- <month type="3">M</month>
- <month type="4">A</month>
- <month type="5">M</month>
- <month type="6">J</month>
- <month type="7">J</month>
- <month type="8">A</month>
- <month type="9">S</month>
- <month type="10">O</month>
- <month type="11">N</month>
- <month type="12">D</month>
- </monthWidth>
- <monthWidth type="wide">
- <month type="1">januar</month>
- <month type="2">februar</month>
- <month type="3">mars</month>
- <month type="4">april</month>
- <month type="5">mai</month>
- <month type="6">juni</month>
- <month type="7">juli</month>
- <month type="8">august</month>
- <month type="9">september</month>
- <month type="10">oktober</month>
- <month type="11">november</month>
- <month type="12">desember</month>
- </monthWidth>
- </monthContext>
- </months>
- <days>
- <dayContext type="format">
- <dayWidth type="abbreviated">
- <day type="sun">søn.</day>
- <day type="mon">man.</day>
- <day type="tue">tir.</day>
- <day type="wed">ons.</day>
- <day type="thu">tor.</day>
- <day type="fri">fre.</day>
- <day type="sat">lør.</day>
- </dayWidth>
- <dayWidth type="narrow">
- <day type="sun">↑↑↑</day>
- <day type="mon">↑↑↑</day>
- <day type="tue">↑↑↑</day>
- <day type="wed">O</day>
- <day type="thu">↑↑↑</day>
- <day type="fri">↑↑↑</day>
- <day type="sat">L</day>
- </dayWidth>
- <dayWidth type="short">
- <day type="sun">sø.</day>
- <day type="mon">ma.</day>
- <day type="tue">ti.</day>
- <day type="wed">on.</day>
- <day type="thu">to.</day>
- <day type="fri">fr.</day>
- <day type="sat">lø.</day>
- </dayWidth>
- <dayWidth type="wide">
- <day type="sun">søndag</day>
- <day type="mon">mandag</day>
- <day type="tue">tirsdag</day>
- <day type="wed">onsdag</day>
- <day type="thu">torsdag</day>
- <day type="fri">fredag</day>
- <day type="sat">lørdag</day>
- </dayWidth>
- </dayContext>
- <dayContext type="stand-alone">
- <dayWidth type="abbreviated">
- <day type="sun">søn.</day>
- <day type="mon">man.</day>
- <day type="tue">tir.</day>
- <day type="wed">ons.</day>
- <day type="thu">tor.</day>
- <day type="fri">fre.</day>
- <day type="sat">lør.</day>
- </dayWidth>
- <dayWidth type="narrow">
- <day type="sun">↑↑↑</day>
- <day type="mon">↑↑↑</day>
- <day type="tue">↑↑↑</day>
- <day type="wed">O</day>
- <day type="thu">↑↑↑</day>
- <day type="fri">↑↑↑</day>
- <day type="sat">L</day>
- </dayWidth>
- <dayWidth type="short">
- <day type="sun">sø.</day>
- <day type="mon">ma.</day>
- <day type="tue">ti.</day>
- <day type="wed">on.</day>
- <day type="thu">to.</day>
- <day type="fri">fr.</day>
- <day type="sat">lø.</day>
- </dayWidth>
- <dayWidth type="wide">
- <day type="sun">søndag</day>
- <day type="mon">mandag</day>
- <day type="tue">tirsdag</day>
- <day type="wed">onsdag</day>
- <day type="thu">torsdag</day>
- <day type="fri">fredag</day>
- <day type="sat">lørdag</day>
- </dayWidth>
- </dayContext>
- </days>
- <quarters>
- <quarterContext type="format">
- <quarterWidth type="abbreviated">
- <quarter type="1">K1</quarter>
- <quarter type="2">K2</quarter>
- <quarter type="3">K3</quarter>
- <quarter type="4">K4</quarter>
- </quarterWidth>
- <quarterWidth type="narrow">
- <quarter type="1">1.</quarter>
- <quarter type="2">2.</quarter>
- <quarter type="3">3.</quarter>
- <quarter type="4">4.</quarter>
- </quarterWidth>
- <quarterWidth type="wide">
- <quarter type="1">1. kvartal</quarter>
- <quarter type="2">2. kvartal</quarter>
- <quarter type="3">3. kvartal</quarter>
- <quarter type="4">4. kvartal</quarter>
- </quarterWidth>
- </quarterContext>
- <quarterContext type="stand-alone">
- <quarterWidth type="abbreviated">
- <quarter type="1">K1</quarter>
- <quarter type="2">K2</quarter>
- <quarter type="3">K3</quarter>
- <quarter type="4">K4</quarter>
- </quarterWidth>
- <quarterWidth type="narrow">
- <quarter type="1">1.</quarter>
- <quarter type="2">2.</quarter>
- <quarter type="3">3.</quarter>
- <quarter type="4">4.</quarter>
- </quarterWidth>
- <quarterWidth type="wide">
- <quarter type="1">1. kvartal</quarter>
- <quarter type="2">2. kvartal</quarter>
- <quarter type="3">3. kvartal</quarter>
- <quarter type="4">4. kvartal</quarter>
- </quarterWidth>
- </quarterContext>
- </quarters>
- <dayPeriods>
- <dayPeriodContext type="format">
- <dayPeriodWidth type="abbreviated">
- <dayPeriod type="midnight">midn.</dayPeriod>
- <dayPeriod type="am">a.m.</dayPeriod>
- <dayPeriod type="pm">p.m.</dayPeriod>
- <dayPeriod type="morning1">morg.</dayPeriod>
- <dayPeriod type="morning2">form.</dayPeriod>
- <dayPeriod type="afternoon1">etterm.</dayPeriod>
- <dayPeriod type="evening1">kveld</dayPeriod>
- <dayPeriod type="night1">natt</dayPeriod>
- </dayPeriodWidth>
- <dayPeriodWidth type="narrow">
- <dayPeriod type="midnight">mn.</dayPeriod>
- <dayPeriod type="am">a</dayPeriod>
- <dayPeriod type="pm">p</dayPeriod>
- <dayPeriod type="morning1">mg.</dayPeriod>
- <dayPeriod type="morning2">fm.</dayPeriod>
- <dayPeriod type="afternoon1">em.</dayPeriod>
- <dayPeriod type="evening1">kv.</dayPeriod>
- <dayPeriod type="night1">nt.</dayPeriod>
- </dayPeriodWidth>
- <dayPeriodWidth type="wide">
- <dayPeriod type="midnight">midnatt</dayPeriod>
- <dayPeriod type="am">a.m.</dayPeriod>
- <dayPeriod type="pm">p.m.</dayPeriod>
- <dayPeriod type="morning1">på morgenen</dayPeriod>
- <dayPeriod type="morning2">på formiddagen</dayPeriod>
- <dayPeriod type="afternoon1">på ettermiddagen</dayPeriod>
- <dayPeriod type="evening1">på kvelden</dayPeriod>
- <dayPeriod type="night1">på natten</dayPeriod>
- </dayPeriodWidth>
- </dayPeriodContext>
- <dayPeriodContext type="stand-alone">
- <dayPeriodWidth type="abbreviated">
- <dayPeriod type="midnight">midn.</dayPeriod>
- <dayPeriod type="am">a.m.</dayPeriod>
- <dayPeriod type="pm">p.m.</dayPeriod>
- <dayPeriod type="morning1">morg.</dayPeriod>
- <dayPeriod type="morning2">form.</dayPeriod>
- <dayPeriod type="afternoon1">etterm.</dayPeriod>
- <dayPeriod type="evening1">kveld</dayPeriod>
- <dayPeriod type="night1">natt</dayPeriod>
- </dayPeriodWidth>
- <dayPeriodWidth type="narrow">
- <dayPeriod type="midnight">mn.</dayPeriod>
- <dayPeriod type="am">a.m.</dayPeriod>
- <dayPeriod type="pm">p.m.</dayPeriod>
- <dayPeriod type="morning1">mg.</dayPeriod>
- <dayPeriod type="morning2">fm.</dayPeriod>
- <dayPeriod type="afternoon1">em.</dayPeriod>
- <dayPeriod type="evening1">kv.</dayPeriod>
- <dayPeriod type="night1">nt.</dayPeriod>
- </dayPeriodWidth>
- <dayPeriodWidth type="wide">
- <dayPeriod type="midnight">midnatt</dayPeriod>
- <dayPeriod type="am">a.m.</dayPeriod>
- <dayPeriod type="pm">p.m.</dayPeriod>
- <dayPeriod type="morning1">morgen</dayPeriod>
- <dayPeriod type="morning2">formiddag</dayPeriod>
- <dayPeriod type="afternoon1">ettermiddag</dayPeriod>
- <dayPeriod type="evening1">kveld</dayPeriod>
- <dayPeriod type="night1">natt</dayPeriod>
- </dayPeriodWidth>
- </dayPeriodContext>
- </dayPeriods>
- <eras>
- <eraNames>
- <era type="0">før Kristus</era>
- <era type="0" alt="variant">før vår tidsregning</era>
- <era type="1">etter Kristus</era>
- <era type="1" alt="variant">etter vår tidsregning</era>
- </eraNames>
- <eraAbbr>
- <era type="0">f.Kr.</era>
- <era type="0" alt="variant">fvt.</era>
- <era type="1">e.Kr.</era>
- <era type="1" alt="variant">evt.</era>
- </eraAbbr>
- <eraNarrow>
- <era type="0">f.Kr.</era>
- <era type="0" alt="variant">fvt.</era>
- <era type="1">e.Kr.</era>
- <era type="1" alt="variant" draft="contributed">vt.</era>
- </eraNarrow>
- </eras>
- <dateFormats>
- <dateFormatLength type="full">
- <dateFormat>
- <pattern>EEEE d. MMMM y</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="long">
- <dateFormat>
- <pattern>d. MMMM y</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="medium">
- <dateFormat>
- <pattern>d. MMM y</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="short">
- <dateFormat>
- <pattern>dd.MM.y</pattern>
- </dateFormat>
- </dateFormatLength>
- </dateFormats>
- <timeFormats>
- <timeFormatLength type="full">
- <timeFormat>
- <pattern draft="contributed">HH:mm:ss zzzz</pattern>
- <pattern alt="variant">HH.mm.ss zzzz</pattern>
- </timeFormat>
- </timeFormatLength>
- <timeFormatLength type="long">
- <timeFormat>
- <pattern draft="contributed">HH:mm:ss z</pattern>
- <pattern alt="variant">HH.mm.ss z</pattern>
- </timeFormat>
- </timeFormatLength>
- <timeFormatLength type="medium">
- <timeFormat>
- <pattern draft="contributed">HH:mm:ss</pattern>
- <pattern alt="variant">HH.mm.ss</pattern>
- </timeFormat>
- </timeFormatLength>
- <timeFormatLength type="short">
- <timeFormat>
- <pattern draft="contributed">HH:mm</pattern>
- <pattern alt="variant">HH.mm</pattern>
- </timeFormat>
- </timeFormatLength>
- </timeFormats>
- <dateTimeFormats>
- <dateTimeFormatLength type="full">
- <dateTimeFormat>
- <pattern>{1} 'kl'. {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="long">
- <dateTimeFormat>
- <pattern>{1} 'kl'. {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="medium">
- <dateTimeFormat>
- <pattern>{1}, {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="short">
- <dateTimeFormat>
- <pattern>{1}, {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <availableFormats>
- <dateFormatItem id="Bh">h B</dateFormatItem>
- <dateFormatItem id="Bhm">h:mm B</dateFormatItem>
- <dateFormatItem id="Bhms">h:mm:ss B</dateFormatItem>
- <dateFormatItem id="d">d.</dateFormatItem>
- <dateFormatItem id="E">ccc</dateFormatItem>
- <dateFormatItem id="EBhm">E h:mm B</dateFormatItem>
- <dateFormatItem id="EBhms">E h:mm:ss B</dateFormatItem>
- <dateFormatItem id="Ed">E d.</dateFormatItem>
- <dateFormatItem id="Ehm">E h:mm a</dateFormatItem>
- <dateFormatItem id="EHm">E 'kl'. HH:mm</dateFormatItem>
- <dateFormatItem id="Ehms">E h:mm:ss a</dateFormatItem>
- <dateFormatItem id="EHms">E 'kl'. HH:mm:ss</dateFormatItem>
- <dateFormatItem id="Gy">y G</dateFormatItem>
- <dateFormatItem id="GyMMM">MMM y G</dateFormatItem>
- <dateFormatItem id="GyMMMd">d. MMM y G</dateFormatItem>
- <dateFormatItem id="GyMMMEd">E d. MMM y G</dateFormatItem>
- <dateFormatItem id="h">h a</dateFormatItem>
- <dateFormatItem id="H">HH</dateFormatItem>
- <dateFormatItem id="hm">h:mm a</dateFormatItem>
- <dateFormatItem id="Hm">HH:mm</dateFormatItem>
- <dateFormatItem id="hms">h:mm:ss a</dateFormatItem>
- <dateFormatItem id="Hms">HH:mm:ss</dateFormatItem>
- <dateFormatItem id="hmsv">h:mm:ss a v</dateFormatItem>
- <dateFormatItem id="Hmsv">HH:mm:ss v</dateFormatItem>
- <dateFormatItem id="hmv">h:mm a v</dateFormatItem>
- <dateFormatItem id="Hmv">HH:mm v</dateFormatItem>
- <dateFormatItem id="M">L.</dateFormatItem>
- <dateFormatItem id="Md">d.M.</dateFormatItem>
- <dateFormatItem id="MEd">E d.M.</dateFormatItem>
- <dateFormatItem id="MMdd">d.M.</dateFormatItem>
- <dateFormatItem id="MMM">LLL</dateFormatItem>
- <dateFormatItem id="MMMd">d. MMM</dateFormatItem>
- <dateFormatItem id="MMMEd">E d. MMM</dateFormatItem>
- <dateFormatItem id="MMMMd">d. MMMM</dateFormatItem>
- <dateFormatItem id="MMMMW" count="one">W. 'uke' 'i' MMMM</dateFormatItem>
- <dateFormatItem id="MMMMW" count="other">W. 'uke' 'i' MMMM</dateFormatItem>
- <dateFormatItem id="ms">mm:ss</dateFormatItem>
- <dateFormatItem id="y">y</dateFormatItem>
- <dateFormatItem id="yM">M.y</dateFormatItem>
- <dateFormatItem id="yMd">d.M.y</dateFormatItem>
- <dateFormatItem id="yMEd">E d.M.y</dateFormatItem>
- <dateFormatItem id="yMM">MM.y</dateFormatItem>
- <dateFormatItem id="yMMM">MMM y</dateFormatItem>
- <dateFormatItem id="yMMMd">d. MMM y</dateFormatItem>
- <dateFormatItem id="yMMMEd">E d. MMM y</dateFormatItem>
- <dateFormatItem id="yMMMM">MMMM y</dateFormatItem>
- <dateFormatItem id="yQQQ">QQQ y</dateFormatItem>
- <dateFormatItem id="yQQQQ">QQQQ y</dateFormatItem>
- <dateFormatItem id="yw" count="one">'uke' w 'i' Y</dateFormatItem>
- <dateFormatItem id="yw" count="other">'uke' w 'i' Y</dateFormatItem>
- </availableFormats>
- <appendItems>
- <appendItem request="Timezone">{0} {1}</appendItem>
- </appendItems>
- <intervalFormats>
- <intervalFormatFallback>{0}–{1}</intervalFormatFallback>
- <intervalFormatItem id="Bh">
- <greatestDifference id="B">h B–h B</greatestDifference>
- <greatestDifference id="h">↑↑↑</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Bhm">
- <greatestDifference id="B">h:mm B–h:mm B</greatestDifference>
- <greatestDifference id="h">↑↑↑</greatestDifference>
- <greatestDifference id="m">↑↑↑</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="d">
- <greatestDifference id="d">d.–d.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Gy">
- <greatestDifference id="G">y G–y G</greatestDifference>
- <greatestDifference id="y">y–y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="GyM">
- <greatestDifference id="G">MM.y GGGGG–MM.y GGGGG</greatestDifference>
- <greatestDifference id="M">MM.y–MM.y GGGGG</greatestDifference>
- <greatestDifference id="y">MM.y–MM.y GGGGG</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="GyMd">
- <greatestDifference id="d">dd.MM.y–dd.MM.y GGGGG</greatestDifference>
- <greatestDifference id="G">dd.MM.y GGGGG–dd.MM.y GGGGG</greatestDifference>
- <greatestDifference id="M">dd.MM.y–dd.MM.y GGGGG</greatestDifference>
- <greatestDifference id="y">dd.MM.y–dd.MM.y GGGGG</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="GyMEd">
- <greatestDifference id="d">E dd.MM.y–E dd.MM.y GGGGG</greatestDifference>
- <greatestDifference id="G">E dd.MM.y GGGGG–E dd.MM.y GGGGG</greatestDifference>
- <greatestDifference id="M">E dd.MM.y–E dd.MM.y GGGGG</greatestDifference>
- <greatestDifference id="y">E dd.MM.y–E dd.MM.y GGGGG</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="GyMMM">
- <greatestDifference id="G">MMM y G–MMM y G</greatestDifference>
- <greatestDifference id="M">MMM–MMM y G</greatestDifference>
- <greatestDifference id="y">MMM y–MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="GyMMMd">
- <greatestDifference id="d">d.–d. MMM y G</greatestDifference>
- <greatestDifference id="G">d. MMM y G–d. MMM y G</greatestDifference>
- <greatestDifference id="M">d. MMM–d. MMM y G</greatestDifference>
- <greatestDifference id="y">d. MMM y–d. MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="GyMMMEd">
- <greatestDifference id="d">E d. MMM–E d. MMM y G</greatestDifference>
- <greatestDifference id="G">E d. MMM y G–E d. MMM y G</greatestDifference>
- <greatestDifference id="M">E d. MMM–E d. MMM y G</greatestDifference>
- <greatestDifference id="y">E d. MMM y–E d. MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="h">
- <greatestDifference id="a">h a–h a</greatestDifference>
- <greatestDifference id="h">h–h a</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="H">
- <greatestDifference id="H">HH–HH</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="hm">
- <greatestDifference id="a">h:mm a–h:mm a</greatestDifference>
- <greatestDifference id="h">h:mm–h:mm a</greatestDifference>
- <greatestDifference id="m">h:mm–h:mm a</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Hm">
- <greatestDifference id="H">HH:mm–HH:mm</greatestDifference>
- <greatestDifference id="m">HH:mm–HH:mm</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="hmv">
- <greatestDifference id="a">h:mm a–h:mm a v</greatestDifference>
- <greatestDifference id="h">h:mm–h:mm a v</greatestDifference>
- <greatestDifference id="m">h:mm–h:mm a v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Hmv">
- <greatestDifference id="H">HH:mm–HH:mm v</greatestDifference>
- <greatestDifference id="m">HH:mm–HH:mm v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="hv">
- <greatestDifference id="a">h a–h a v</greatestDifference>
- <greatestDifference id="h">h–h a v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Hv">
- <greatestDifference id="H">HH–HH v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="M">
- <greatestDifference id="M">M.–M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Md">
- <greatestDifference id="d">dd.MM.–dd.MM.</greatestDifference>
- <greatestDifference id="M">dd.MM.–dd.MM.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MEd">
- <greatestDifference id="d">E dd.MM.–E dd.MM.</greatestDifference>
- <greatestDifference id="M">E dd.MM.–E dd.MM.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMM">
- <greatestDifference id="M">MMM–MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMMd">
- <greatestDifference id="d">d.–d. MMM</greatestDifference>
- <greatestDifference id="M">d. MMM–d. MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMMEd">
- <greatestDifference id="d">E d.–E d. MMM</greatestDifference>
- <greatestDifference id="M">E d. MMM–E d. MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="y">
- <greatestDifference id="y">y–y</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yM">
- <greatestDifference id="M">MM.y–MM.y</greatestDifference>
- <greatestDifference id="y">MM.y–MM.y</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMd">
- <greatestDifference id="d">dd.MM.y–dd.MM.y</greatestDifference>
- <greatestDifference id="M">dd.MM.y–dd.MM.y</greatestDifference>
- <greatestDifference id="y">dd.MM.y–dd.MM.y</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMEd">
- <greatestDifference id="d">E dd.MM.y–E dd.MM.y</greatestDifference>
- <greatestDifference id="M">E dd.MM.y–E dd.MM.y</greatestDifference>
- <greatestDifference id="y">E dd.MM.y–E dd.MM.y</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMM">
- <greatestDifference id="M">MMM–MMM y</greatestDifference>
- <greatestDifference id="y">MMM y–MMM y</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMd">
- <greatestDifference id="d">d.–d. MMM y</greatestDifference>
- <greatestDifference id="M">d. MMM–d. MMM y</greatestDifference>
- <greatestDifference id="y">d. MMM y–d. MMM y</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMEd">
- <greatestDifference id="d">E d.–E d. MMM y</greatestDifference>
- <greatestDifference id="M">E d. MMM–E d. MMM y</greatestDifference>
- <greatestDifference id="y">E d. MMM y–E d. MMM y</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMM">
- <greatestDifference id="M">MMMM–MMMM y</greatestDifference>
- <greatestDifference id="y">MMMM y–MMMM y</greatestDifference>
- </intervalFormatItem>
- </intervalFormats>
- </dateTimeFormats>
- </calendar>
- <calendar type="hebrew">
- <months>
- <monthContext type="format">
- <monthWidth type="abbreviated">
- <month type="1">tishri</month>
- <month type="2">heshvan</month>
- <month type="3">kislev</month>
- <month type="4">tevet</month>
- <month type="5">shevat</month>
- <month type="6">adar I</month>
- <month type="7">adar</month>
- <month type="7" yeartype="leap">adar II</month>
- <month type="8">nisan</month>
- <month type="9">iyar</month>
- <month type="10">sivan</month>
- <month type="11">tamuz</month>
- <month type="12">av</month>
- <month type="13">elul</month>
- </monthWidth>
- <monthWidth type="narrow">
- <month type="1">1</month>
- <month type="2">2</month>
- <month type="3">3</month>
- <month type="4">4</month>
- <month type="5">5</month>
- <month type="6">6</month>
- <month type="7">7</month>
- <month type="7" yeartype="leap">7</month>
- <month type="8">8</month>
- <month type="9">9</month>
- <month type="10">10</month>
- <month type="11">11</month>
- <month type="12">12</month>
- <month type="13">13</month>
- </monthWidth>
- <monthWidth type="wide">
- <month type="1">tishri</month>
- <month type="2">heshvan</month>
- <month type="3">kislev</month>
- <month type="4">tevet</month>
- <month type="5">shevat</month>
- <month type="6">adar I</month>
- <month type="7">adar</month>
- <month type="7" yeartype="leap">adar II</month>
- <month type="8">nisan</month>
- <month type="9">iyar</month>
- <month type="10">sivan</month>
- <month type="11">tamuz</month>
- <month type="12">av</month>
- <month type="13">elul</month>
- </monthWidth>
- </monthContext>
- <monthContext type="stand-alone">
- <monthWidth type="abbreviated">
- <month type="1">tishri</month>
- <month type="2">heshvan</month>
- <month type="3">kislev</month>
- <month type="4">tevet</month>
- <month type="5">shevat</month>
- <month type="6">adar I</month>
- <month type="7">adar</month>
- <month type="7" yeartype="leap">adar II</month>
- <month type="8">nisan</month>
- <month type="9">iyar</month>
- <month type="10">sivan</month>
- <month type="11">tamuz</month>
- <month type="12">av</month>
- <month type="13">elul</month>
- </monthWidth>
- <monthWidth type="narrow">
- <month type="1">1</month>
- <month type="2">2</month>
- <month type="3">3</month>
- <month type="4">4</month>
- <month type="5">5</month>
- <month type="6">6</month>
- <month type="7">7</month>
- <month type="7" yeartype="leap">7</month>
- <month type="8">8</month>
- <month type="9">9</month>
- <month type="10">10</month>
- <month type="11">11</month>
- <month type="12">12</month>
- <month type="13">13</month>
- </monthWidth>
- <monthWidth type="wide">
- <month type="1">tishri</month>
- <month type="2">heshvan</month>
- <month type="3">kislev</month>
- <month type="4">tevet</month>
- <month type="5">shevat</month>
- <month type="6">adar I</month>
- <month type="7">adar</month>
- <month type="7" yeartype="leap">adar II</month>
- <month type="8">nisan</month>
- <month type="9">iyar</month>
- <month type="10">sivan</month>
- <month type="11">tamuz</month>
- <month type="12">av</month>
- <month type="13">elul</month>
- </monthWidth>
- </monthContext>
- </months>
- <eras>
- <eraNames>
- <era type="0">AM</era>
- </eraNames>
- <eraAbbr>
- <era type="0">AM</era>
- </eraAbbr>
- <eraNarrow>
- <era type="0">AM</era>
- </eraNarrow>
- </eras>
- <dateFormats>
- <dateFormatLength type="full">
- <dateFormat>
- <pattern draft="contributed">EEEE d. MMMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="long">
- <dateFormat>
- <pattern draft="contributed">d. MMMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="medium">
- <dateFormat>
- <pattern draft="contributed">d. MMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="short">
- <dateFormat>
- <pattern draft="contributed">d.M.y G</pattern>
- </dateFormat>
- </dateFormatLength>
- </dateFormats>
- <dateTimeFormats>
- <dateTimeFormatLength type="full">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="long">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="medium">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="short">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <availableFormats>
- <dateFormatItem id="d" draft="contributed">d.</dateFormatItem>
- <dateFormatItem id="E" draft="contributed">ccc</dateFormatItem>
- <dateFormatItem id="Ed" draft="contributed">E d.</dateFormatItem>
- <dateFormatItem id="Gy" draft="contributed">y G</dateFormatItem>
- <dateFormatItem id="GyMMM" draft="contributed">MMM y G</dateFormatItem>
- <dateFormatItem id="GyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
- <dateFormatItem id="GyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
- <dateFormatItem id="M" draft="contributed">L.</dateFormatItem>
- <dateFormatItem id="Md" draft="contributed">d.M.</dateFormatItem>
- <dateFormatItem id="MEd" draft="contributed">E d.M</dateFormatItem>
- <dateFormatItem id="MMdd" draft="contributed">d.M.</dateFormatItem>
- <dateFormatItem id="MMM" draft="contributed">LLL</dateFormatItem>
- <dateFormatItem id="MMMd" draft="contributed">d. MMM</dateFormatItem>
- <dateFormatItem id="MMMEd" draft="contributed">E d. MMM</dateFormatItem>
- <dateFormatItem id="MMMMd" draft="contributed">d. MMMM</dateFormatItem>
- <dateFormatItem id="y" draft="contributed">y G</dateFormatItem>
- <dateFormatItem id="yyyy" draft="contributed">y G</dateFormatItem>
- <dateFormatItem id="yyyyM" draft="contributed">M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMd" draft="contributed">d.M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMEd" draft="contributed">E d.M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMM" draft="contributed">MM.y G</dateFormatItem>
- <dateFormatItem id="yyyyMMM" draft="contributed">MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMM" draft="contributed">MMMM y G</dateFormatItem>
- <dateFormatItem id="yyyyQQQ" draft="contributed">QQQ y G</dateFormatItem>
- <dateFormatItem id="yyyyQQQQ" draft="contributed">QQQQ y G</dateFormatItem>
- </availableFormats>
- <intervalFormats>
- <intervalFormatFallback draft="contributed">{0}–{1}</intervalFormatFallback>
- <intervalFormatItem id="d">
- <greatestDifference id="d" draft="contributed">d.–d.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="h">
- <greatestDifference id="a" draft="contributed">h a–h a</greatestDifference>
- <greatestDifference id="h" draft="contributed">h–h a</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="H">
- <greatestDifference id="H" draft="contributed">HH–HH</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="hv">
- <greatestDifference id="a" draft="contributed">h a–h a v</greatestDifference>
- <greatestDifference id="h" draft="contributed">h–h a v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Hv">
- <greatestDifference id="H" draft="contributed">HH–HH v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="M">
- <greatestDifference id="M" draft="contributed">M.–M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Md">
- <greatestDifference id="d" draft="contributed">d.M.–d.M.</greatestDifference>
- <greatestDifference id="M" draft="contributed">d.M.–d.M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MEd">
- <greatestDifference id="d" draft="contributed">E d.M.–E d.M.</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d.M.–E d.M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMM">
- <greatestDifference id="M" draft="contributed">MMM–MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMMd">
- <greatestDifference id="d" draft="contributed">d.–d. MMM</greatestDifference>
- <greatestDifference id="M" draft="contributed">d. MMM–d. MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMMEd">
- <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="y">
- <greatestDifference id="y" draft="contributed">y–y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yM">
- <greatestDifference id="M" draft="contributed">M.y–M.y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">M.y–M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMd">
- <greatestDifference id="d" draft="contributed">d.M.y–d.M.y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">d.M.y–d.M.y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">d.M.y–d.M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMEd">
- <greatestDifference id="d" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMM">
- <greatestDifference id="M" draft="contributed">MMM–MMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">MMM y–MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMd">
- <greatestDifference id="d" draft="contributed">d.–d. MMM y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">d. MMM–d. MMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">d. MMM y–d. MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMEd">
- <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">E d. MMM y–E d. MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMM">
- <greatestDifference id="M" draft="contributed">MMMM–MMMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">MMMM y–MMMM y G</greatestDifference>
- </intervalFormatItem>
- </intervalFormats>
- </dateTimeFormats>
- </calendar>
- <calendar type="indian">
- <months>
- <monthContext type="format">
- <monthWidth type="abbreviated">
- <month type="1">chaitra</month>
- <month type="2">vaisakha</month>
- <month type="3">jyaistha</month>
- <month type="4">asadha</month>
- <month type="5">sravana</month>
- <month type="6">bhadra</month>
- <month type="7">asvina</month>
- <month type="8">kartika</month>
- <month type="9">agrahayana</month>
- <month type="10">pausa</month>
- <month type="11">magha</month>
- <month type="12">phalguna</month>
- </monthWidth>
- <monthWidth type="narrow">
- <month type="1">1</month>
- <month type="2">2</month>
- <month type="3">3</month>
- <month type="4">4</month>
- <month type="5">5</month>
- <month type="6">6</month>
- <month type="7">7</month>
- <month type="8">8</month>
- <month type="9">9</month>
- <month type="10">10</month>
- <month type="11">11</month>
- <month type="12">12</month>
- </monthWidth>
- <monthWidth type="wide">
- <month type="1">chaitra</month>
- <month type="2">vaisakha</month>
- <month type="3">jyaistha</month>
- <month type="4">asadha</month>
- <month type="5">sravana</month>
- <month type="6">bhadra</month>
- <month type="7">asvina</month>
- <month type="8">kartika</month>
- <month type="9">agrahayana</month>
- <month type="10">pausa</month>
- <month type="11">magha</month>
- <month type="12">phalguna</month>
- </monthWidth>
- </monthContext>
- <monthContext type="stand-alone">
- <monthWidth type="abbreviated">
- <month type="1">chaitra</month>
- <month type="2">vaisakha</month>
- <month type="3">jyaistha</month>
- <month type="4">asadha</month>
- <month type="5">sravana</month>
- <month type="6">bhadra</month>
- <month type="7">asvina</month>
- <month type="8">kartika</month>
- <month type="9">agrahayana</month>
- <month type="10">pausa</month>
- <month type="11">magha</month>
- <month type="12">phalguna</month>
- </monthWidth>
- <monthWidth type="narrow">
- <month type="1">1</month>
- <month type="2">2</month>
- <month type="3">3</month>
- <month type="4">4</month>
- <month type="5">5</month>
- <month type="6">6</month>
- <month type="7">7</month>
- <month type="8">8</month>
- <month type="9">9</month>
- <month type="10">10</month>
- <month type="11">11</month>
- <month type="12">12</month>
- </monthWidth>
- <monthWidth type="wide">
- <month type="1">chaitra</month>
- <month type="2">vaisakha</month>
- <month type="3">jyaistha</month>
- <month type="4">asadha</month>
- <month type="5">sravana</month>
- <month type="6">bhadra</month>
- <month type="7">asvina</month>
- <month type="8">kartika</month>
- <month type="9">agrahayana</month>
- <month type="10">pausa</month>
- <month type="11">magha</month>
- <month type="12">phalguna</month>
- </monthWidth>
- </monthContext>
- </months>
- <eras>
- <eraNames>
- <era type="0">saka</era>
- </eraNames>
- <eraAbbr>
- <era type="0">saka</era>
- </eraAbbr>
- <eraNarrow>
- <era type="0">saka</era>
- </eraNarrow>
- </eras>
- <dateFormats>
- <dateFormatLength type="full">
- <dateFormat>
- <pattern draft="contributed">EEEE d. MMMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="long">
- <dateFormat>
- <pattern draft="contributed">d. MMMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="medium">
- <dateFormat>
- <pattern draft="contributed">d. MMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="short">
- <dateFormat>
- <pattern draft="contributed">d.M.y G</pattern>
- </dateFormat>
- </dateFormatLength>
- </dateFormats>
- <dateTimeFormats>
- <dateTimeFormatLength type="full">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="long">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="medium">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="short">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <availableFormats>
- <dateFormatItem id="d" draft="contributed">d.</dateFormatItem>
- <dateFormatItem id="E" draft="contributed">ccc</dateFormatItem>
- <dateFormatItem id="Ed" draft="contributed">E d.</dateFormatItem>
- <dateFormatItem id="Gy" draft="contributed">y G</dateFormatItem>
- <dateFormatItem id="GyMMM" draft="contributed">MMM y G</dateFormatItem>
- <dateFormatItem id="GyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
- <dateFormatItem id="GyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
- <dateFormatItem id="M" draft="contributed">L.</dateFormatItem>
- <dateFormatItem id="Md" draft="contributed">d.M.</dateFormatItem>
- <dateFormatItem id="MEd" draft="contributed">E d.M</dateFormatItem>
- <dateFormatItem id="MMdd" draft="contributed">d.M.</dateFormatItem>
- <dateFormatItem id="MMM" draft="contributed">LLL</dateFormatItem>
- <dateFormatItem id="MMMd" draft="contributed">d. MMM</dateFormatItem>
- <dateFormatItem id="MMMEd" draft="contributed">E d. MMM</dateFormatItem>
- <dateFormatItem id="MMMMd" draft="contributed">d. MMMM</dateFormatItem>
- <dateFormatItem id="y" draft="contributed">y G</dateFormatItem>
- <dateFormatItem id="yyyy" draft="contributed">y G</dateFormatItem>
- <dateFormatItem id="yyyyM" draft="contributed">M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMd" draft="contributed">d.M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMEd" draft="contributed">E d.M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMM" draft="contributed">MM.y G</dateFormatItem>
- <dateFormatItem id="yyyyMMM" draft="contributed">MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMM" draft="contributed">MMMM y G</dateFormatItem>
- <dateFormatItem id="yyyyQQQ" draft="contributed">QQQ y G</dateFormatItem>
- <dateFormatItem id="yyyyQQQQ" draft="contributed">QQQQ y G</dateFormatItem>
- </availableFormats>
- <intervalFormats>
- <intervalFormatFallback draft="contributed">{0}–{1}</intervalFormatFallback>
- <intervalFormatItem id="d">
- <greatestDifference id="d" draft="contributed">d.–d.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="h">
- <greatestDifference id="a" draft="contributed">h a–h a</greatestDifference>
- <greatestDifference id="h" draft="contributed">h–h a</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="H">
- <greatestDifference id="H" draft="contributed">HH–HH</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="hv">
- <greatestDifference id="a" draft="contributed">h a–h a v</greatestDifference>
- <greatestDifference id="h" draft="contributed">h–h a v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Hv">
- <greatestDifference id="H" draft="contributed">HH–HH v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="M">
- <greatestDifference id="M" draft="contributed">M.–M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Md">
- <greatestDifference id="d" draft="contributed">d.M.–d.M.</greatestDifference>
- <greatestDifference id="M" draft="contributed">d.M.–d.M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MEd">
- <greatestDifference id="d" draft="contributed">E d.M.–E d.M.</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d.M.–E d.M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMM">
- <greatestDifference id="M" draft="contributed">MMM–MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMMd">
- <greatestDifference id="d" draft="contributed">d.–d. MMM</greatestDifference>
- <greatestDifference id="M" draft="contributed">d. MMM–d. MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMMEd">
- <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="y">
- <greatestDifference id="y" draft="contributed">y–y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yM">
- <greatestDifference id="M" draft="contributed">M.y–M.y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">M.y–M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMd">
- <greatestDifference id="d" draft="contributed">d.M.y–d.M.y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">d.M.y–d.M.y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">d.M.y–d.M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMEd">
- <greatestDifference id="d" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMM">
- <greatestDifference id="M" draft="contributed">MMM–MMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">MMM y–MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMd">
- <greatestDifference id="d" draft="contributed">d.–d. MMM y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">d. MMM–d. MMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">d. MMM y–d. MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMEd">
- <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">E d. MMM y–E d. MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMM">
- <greatestDifference id="M" draft="contributed">MMMM–MMMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">MMMM y–MMMM y G</greatestDifference>
- </intervalFormatItem>
- </intervalFormats>
- </dateTimeFormats>
- </calendar>
- <calendar type="islamic">
- <months>
- <monthContext type="format">
- <monthWidth type="abbreviated">
- <month type="1">muh.</month>
- <month type="2">saf.</month>
- <month type="3">rab. I</month>
- <month type="4">rab. II</month>
- <month type="5">jum. I</month>
- <month type="6">jum. II</month>
- <month type="7">raj.</month>
- <month type="8">sha.</month>
- <month type="9">ram.</month>
- <month type="10">shaw.</month>
- <month type="11">dhuʻl-q.</month>
- <month type="12">dhuʻl-h.</month>
- </monthWidth>
- <monthWidth type="narrow">
- <month type="1">1</month>
- <month type="2">2</month>
- <month type="3">3</month>
- <month type="4">4</month>
- <month type="5">5</month>
- <month type="6">6</month>
- <month type="7">7</month>
- <month type="8">8</month>
- <month type="9">9</month>
- <month type="10">10</month>
- <month type="11">11</month>
- <month type="12">12</month>
- </monthWidth>
- <monthWidth type="wide">
- <month type="1">muharram</month>
- <month type="2">safar</month>
- <month type="3">rabiʻ I</month>
- <month type="4">rabiʻ II</month>
- <month type="5">jumada I</month>
- <month type="6">jumada II</month>
- <month type="7">rajab</month>
- <month type="8">shaʻban</month>
- <month type="9">ramadan</month>
- <month type="10">shawwal</month>
- <month type="11">dhuʻl-qiʻdah</month>
- <month type="12">dhuʻl-hijjah</month>
- </monthWidth>
- </monthContext>
- <monthContext type="stand-alone">
- <monthWidth type="abbreviated">
- <month type="1">muh.</month>
- <month type="2">saf.</month>
- <month type="3">rab. I</month>
- <month type="4">rab. II</month>
- <month type="5">jum. I</month>
- <month type="6">jum. II</month>
- <month type="7">raj.</month>
- <month type="8">sha.</month>
- <month type="9">ram.</month>
- <month type="10">shaw.</month>
- <month type="11">dhuʻl-q.</month>
- <month type="12">Dhuʻl-H.</month>
- </monthWidth>
- <monthWidth type="narrow">
- <month type="1">1</month>
- <month type="2">2</month>
- <month type="3">3</month>
- <month type="4">4</month>
- <month type="5">5</month>
- <month type="6">6</month>
- <month type="7">7</month>
- <month type="8">8</month>
- <month type="9">9</month>
- <month type="10">10</month>
- <month type="11">11</month>
- <month type="12">12</month>
- </monthWidth>
- <monthWidth type="wide">
- <month type="1">muharram</month>
- <month type="2">safar</month>
- <month type="3">rabiʻ I</month>
- <month type="4">rabiʻ II</month>
- <month type="5">jumada I</month>
- <month type="6">jumada II</month>
- <month type="7">rajab</month>
- <month type="8">shaʻban</month>
- <month type="9">ramadan</month>
- <month type="10">shawwal</month>
- <month type="11">dhuʻl-qiʻdah</month>
- <month type="12">dhuʻl-hijjah</month>
- </monthWidth>
- </monthContext>
- </months>
- <eras>
- <eraNames>
- <era type="0">AH</era>
- </eraNames>
- <eraAbbr>
- <era type="0">AH</era>
- </eraAbbr>
- <eraNarrow>
- <era type="0">AH</era>
- </eraNarrow>
- </eras>
- <dateFormats>
- <dateFormatLength type="full">
- <dateFormat>
- <pattern draft="contributed">EEEE d. MMMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="long">
- <dateFormat>
- <pattern draft="contributed">d. MMMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="medium">
- <dateFormat>
- <pattern draft="contributed">d. MMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="short">
- <dateFormat>
- <pattern draft="contributed">d.M.y G</pattern>
- </dateFormat>
- </dateFormatLength>
- </dateFormats>
- <dateTimeFormats>
- <dateTimeFormatLength type="full">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="long">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="medium">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="short">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <availableFormats>
- <dateFormatItem id="d" draft="contributed">d.</dateFormatItem>
- <dateFormatItem id="E" draft="contributed">ccc</dateFormatItem>
- <dateFormatItem id="Ed" draft="contributed">E d.</dateFormatItem>
- <dateFormatItem id="Gy" draft="contributed">y G</dateFormatItem>
- <dateFormatItem id="GyMMM" draft="contributed">MMM y G</dateFormatItem>
- <dateFormatItem id="GyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
- <dateFormatItem id="GyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
- <dateFormatItem id="M" draft="contributed">L.</dateFormatItem>
- <dateFormatItem id="Md" draft="contributed">d.M.</dateFormatItem>
- <dateFormatItem id="MEd" draft="contributed">E d.M</dateFormatItem>
- <dateFormatItem id="MMdd" draft="contributed">d.M.</dateFormatItem>
- <dateFormatItem id="MMM" draft="contributed">LLL</dateFormatItem>
- <dateFormatItem id="MMMd" draft="contributed">d. MMM</dateFormatItem>
- <dateFormatItem id="MMMEd" draft="contributed">E d. MMM</dateFormatItem>
- <dateFormatItem id="MMMMd" draft="contributed">d. MMMM</dateFormatItem>
- <dateFormatItem id="y" draft="contributed">y G</dateFormatItem>
- <dateFormatItem id="yyyy" draft="contributed">y G</dateFormatItem>
- <dateFormatItem id="yyyyM" draft="contributed">M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMd" draft="contributed">d.M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMEd" draft="contributed">E d.M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMM" draft="contributed">MM.y G</dateFormatItem>
- <dateFormatItem id="yyyyMMM" draft="contributed">MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMM" draft="contributed">MMMM y G</dateFormatItem>
- <dateFormatItem id="yyyyQQQ" draft="contributed">QQQ y G</dateFormatItem>
- <dateFormatItem id="yyyyQQQQ" draft="contributed">QQQQ y G</dateFormatItem>
- </availableFormats>
- <intervalFormats>
- <intervalFormatFallback draft="contributed">{0}–{1}</intervalFormatFallback>
- <intervalFormatItem id="d">
- <greatestDifference id="d" draft="contributed">d.–d.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="h">
- <greatestDifference id="a" draft="contributed">h a–h a</greatestDifference>
- <greatestDifference id="h" draft="contributed">h–h a</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="H">
- <greatestDifference id="H" draft="contributed">HH–HH</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="hv">
- <greatestDifference id="a" draft="contributed">h a–h a v</greatestDifference>
- <greatestDifference id="h" draft="contributed">h–h a v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Hv">
- <greatestDifference id="H" draft="contributed">HH–HH v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="M">
- <greatestDifference id="M" draft="contributed">M.–M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Md">
- <greatestDifference id="d" draft="contributed">d.M.–d.M.</greatestDifference>
- <greatestDifference id="M" draft="contributed">d.M.–d.M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MEd">
- <greatestDifference id="d" draft="contributed">E d.M.–E d.M.</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d.M.–E d.M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMM">
- <greatestDifference id="M" draft="contributed">MMM–MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMMd">
- <greatestDifference id="d" draft="contributed">d.–d. MMM</greatestDifference>
- <greatestDifference id="M" draft="contributed">d. MMM–d. MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMMEd">
- <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="y">
- <greatestDifference id="y" draft="contributed">y–y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yM">
- <greatestDifference id="M" draft="contributed">M.y–M.y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">M.y–M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMd">
- <greatestDifference id="d" draft="contributed">d.M.y–d.M.y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">d.M.y–d.M.y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">d.M.y–d.M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMEd">
- <greatestDifference id="d" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMM">
- <greatestDifference id="M" draft="contributed">MMM–MMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">MMM y–MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMd">
- <greatestDifference id="d" draft="contributed">d.–d. MMM y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">d. MMM–d. MMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">d. MMM y–d. MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMEd">
- <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">E d. MMM y–E d. MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMM">
- <greatestDifference id="M" draft="contributed">MMMM–MMMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">MMMM y–MMMM y G</greatestDifference>
- </intervalFormatItem>
- </intervalFormats>
- </dateTimeFormats>
- </calendar>
- <calendar type="japanese">
- <eras>
- <eraNames>
- <era type="0" draft="contributed">Taika (645–650)</era>
- <era type="1" draft="contributed">Hakuchi (650–671)</era>
- <era type="2" draft="contributed">Hakuhō (672–686)</era>
- <era type="3" draft="contributed">Shuchō (686–701)</era>
- <era type="4" draft="contributed">Taihō (701–704)</era>
- <era type="5" draft="contributed">Keiun (704–708)</era>
- <era type="6" draft="contributed">Wadō (708–715)</era>
- <era type="7" draft="contributed">Reiki (715–717)</era>
- <era type="8" draft="contributed">Yōrō (717–724)</era>
- <era type="9" draft="contributed">Jinki (724–729)</era>
- <era type="10" draft="contributed">Tenpyō (729–749)</era>
- <era type="11" draft="contributed">Tenpyō-kampō (749-749)</era>
- <era type="12" draft="contributed">Tenpyō-shōhō (749-757)</era>
- <era type="13" draft="contributed">Tenpyō-hōji (757-765)</era>
- <era type="14" draft="contributed">Tenpyō-jingo (765-767)</era>
- <era type="15" draft="contributed">Jingo-keiun (767-770)</era>
- <era type="16" draft="contributed">Hōki (770–780)</era>
- <era type="17" draft="contributed">Ten-ō (781-782)</era>
- <era type="18" draft="contributed">Enryaku (782–806)</era>
- <era type="19" draft="contributed">Daidō (806–810)</era>
- <era type="20" draft="contributed">Kōnin (810–824)</era>
- <era type="21" draft="contributed">Tenchō (824–834)</era>
- <era type="22" draft="contributed">Jōwa (834–848)</era>
- <era type="23" draft="contributed">Kajō (848–851)</era>
- <era type="24" draft="contributed">Ninju (851–854)</era>
- <era type="25" draft="contributed">Saikō (854–857)</era>
- <era type="26" draft="contributed">Ten-an (857-859)</era>
- <era type="27" draft="contributed">Jōgan (859–877)</era>
- <era type="28" draft="contributed">Gangyō (877–885)</era>
- <era type="29" draft="contributed">Ninna (885–889)</era>
- <era type="30" draft="contributed">Kanpyō (889–898)</era>
- <era type="31" draft="contributed">Shōtai (898–901)</era>
- <era type="32" draft="contributed">Engi (901–923)</era>
- <era type="33" draft="contributed">Enchō (923–931)</era>
- <era type="34" draft="contributed">Jōhei (931–938)</era>
- <era type="35" draft="contributed">Tengyō (938–947)</era>
- <era type="36" draft="contributed">Tenryaku (947–957)</era>
- <era type="37" draft="contributed">Tentoku (957–961)</era>
- <era type="38" draft="contributed">Ōwa (961–964)</era>
- <era type="39" draft="contributed">Kōhō (964–968)</era>
- <era type="40" draft="contributed">Anna (968–970)</era>
- <era type="41" draft="contributed">Tenroku (970–973)</era>
- <era type="42" draft="contributed">Ten’en (973–976)</era>
- <era type="43" draft="contributed">Jōgen (976–978)</era>
- <era type="44" draft="contributed">Tengen (978–983)</era>
- <era type="45" draft="contributed">Eikan (983–985)</era>
- <era type="46" draft="contributed">Kanna (985–987)</era>
- <era type="47" draft="contributed">Eien (987–989)</era>
- <era type="48" draft="contributed">Eiso (989–990)</era>
- <era type="49" draft="contributed">Shōryaku (990–995)</era>
- <era type="50" draft="contributed">Chōtoku (995–999)</era>
- <era type="51" draft="contributed">Chōhō (999–1004)</era>
- <era type="52" draft="contributed">Kankō (1004–1012)</era>
- <era type="53" draft="contributed">Chōwa (1012–1017)</era>
- <era type="54" draft="contributed">Kannin (1017–1021)</era>
- <era type="55" draft="contributed">Jian (1021–1024)</era>
- <era type="56" draft="contributed">Manju (1024–1028)</era>
- <era type="57" draft="contributed">Chōgen (1028–1037)</era>
- <era type="58" draft="contributed">Chōryaku (1037–1040)</era>
- <era type="59" draft="contributed">Chōkyū (1040–1044)</era>
- <era type="60" draft="contributed">Kantoku (1044–1046)</era>
- <era type="61" draft="contributed">Eishō (1046–1053)</era>
- <era type="62" draft="contributed">Tengi (1053–1058)</era>
- <era type="63" draft="contributed">Kōhei (1058–1065)</era>
- <era type="64" draft="contributed">Jiryaku (1065–1069)</era>
- <era type="65" draft="contributed">Enkyū (1069–1074)</era>
- <era type="66" draft="contributed">Shōho (1074–1077)</era>
- <era type="67" draft="contributed">Shōryaku (1077–1081)</era>
- <era type="68" draft="contributed">Eihō (1081–1084)</era>
- <era type="69" draft="contributed">Ōtoku (1084–1087)</era>
- <era type="70" draft="contributed">Kanji (1087–1094)</era>
- <era type="71" draft="contributed">Kahō (1094–1096)</era>
- <era type="72" draft="contributed">Eichō (1096–1097)</era>
- <era type="73" draft="contributed">Jōtoku (1097–1099)</era>
- <era type="74" draft="contributed">Kōwa (1099–1104)</era>
- <era type="75" draft="contributed">Chōji (1104–1106)</era>
- <era type="76" draft="contributed">Kashō (1106–1108)</era>
- <era type="77" draft="contributed">Tennin (1108–1110)</era>
- <era type="78" draft="contributed">Ten-ei (1110-1113)</era>
- <era type="79" draft="contributed">Eikyū (1113–1118)</era>
- <era type="80" draft="contributed">Gen’ei (1118–1120)</era>
- <era type="81" draft="contributed">Hōan (1120–1124)</era>
- <era type="82" draft="contributed">Tenji (1124–1126)</era>
- <era type="83" draft="contributed">Daiji (1126–1131)</era>
- <era type="84" draft="contributed">Tenshō (1131–1132)</era>
- <era type="85" draft="contributed">Chōshō (1132–1135)</era>
- <era type="86" draft="contributed">Hōen (1135–1141)</era>
- <era type="87" draft="contributed">Eiji (1141–1142)</era>
- <era type="88" draft="contributed">Kōji (1142–1144)</era>
- <era type="89" draft="contributed">Ten’yō (1144–1145)</era>
- <era type="90" draft="contributed">Kyūan (1145–1151)</era>
- <era type="91" draft="contributed">Ninpei (1151–1154)</era>
- <era type="92" draft="contributed">Kyūju (1154–1156)</era>
- <era type="93" draft="contributed">Hōgen (1156–1159)</era>
- <era type="94" draft="contributed">Heiji (1159–1160)</era>
- <era type="95" draft="contributed">Eiryaku (1160–1161)</era>
- <era type="96" draft="contributed">Ōho (1161–1163)</era>
- <era type="97" draft="contributed">Chōkan (1163–1165)</era>
- <era type="98" draft="contributed">Eiman (1165–1166)</era>
- <era type="99" draft="contributed">Nin’an (1166–1169)</era>
- <era type="100" draft="contributed">Kaō (1169–1171)</era>
- <era type="101" draft="contributed">Shōan (1171–1175)</era>
- <era type="102" draft="contributed">Angen (1175–1177)</era>
- <era type="103" draft="contributed">Jishō (1177–1181)</era>
- <era type="104" draft="contributed">Yōwa (1181–1182)</era>
- <era type="105" draft="contributed">Juei (1182–1184)</era>
- <era type="106" draft="contributed">Genryaku (1184–1185)</era>
- <era type="107" draft="contributed">Bunji (1185–1190)</era>
- <era type="108" draft="contributed">Kenkyū (1190–1199)</era>
- <era type="109" draft="contributed">Shōji (1199–1201)</era>
- <era type="110" draft="contributed">Kennin (1201–1204)</era>
- <era type="111" draft="contributed">Genkyū (1204–1206)</era>
- <era type="112" draft="contributed">Ken’ei (1206–1207)</era>
- <era type="113" draft="contributed">Jōgen (1207–1211)</era>
- <era type="114" draft="contributed">Kenryaku (1211–1213)</era>
- <era type="115" draft="contributed">Kenpō (1213–1219)</era>
- <era type="116" draft="contributed">Jōkyū (1219–1222)</era>
- <era type="117" draft="contributed">Jōō (1222–1224)</era>
- <era type="118" draft="contributed">Gennin (1224–1225)</era>
- <era type="119" draft="contributed">Karoku (1225–1227)</era>
- <era type="120" draft="contributed">Antei (1227–1229)</era>
- <era type="121" draft="contributed">Kanki (1229–1232)</era>
- <era type="122" draft="contributed">Jōei (1232–1233)</era>
- <era type="123" draft="contributed">Tenpuku (1233–1234)</era>
- <era type="124" draft="contributed">Bunryaku (1234–1235)</era>
- <era type="125" draft="contributed">Katei (1235–1238)</era>
- <era type="126" draft="contributed">Ryakunin (1238–1239)</era>
- <era type="127" draft="contributed">En’ō (1239–1240)</era>
- <era type="128" draft="contributed">Ninji (1240–1243)</era>
- <era type="129" draft="contributed">Kangen (1243–1247)</era>
- <era type="130" draft="contributed">Hōji (1247–1249)</era>
- <era type="131" draft="contributed">Kenchō (1249–1256)</era>
- <era type="132" draft="contributed">Kōgen (1256–1257)</era>
- <era type="133" draft="contributed">Shōka (1257–1259)</era>
- <era type="134" draft="contributed">Shōgen (1259–1260)</era>
- <era type="135" draft="contributed">Bun’ō (1260–1261)</era>
- <era type="136" draft="contributed">Kōchō (1261–1264)</era>
- <era type="137" draft="contributed">Bun’ei (1264–1275)</era>
- <era type="138" draft="contributed">Kenji (1275–1278)</era>
- <era type="139" draft="contributed">Kōan (1278–1288)</era>
- <era type="140" draft="contributed">Shōō (1288–1293)</era>
- <era type="141" draft="contributed">Einin (1293–1299)</era>
- <era type="142" draft="contributed">Shōan (1299–1302)</era>
- <era type="143" draft="contributed">Kengen (1302–1303)</era>
- <era type="144" draft="contributed">Kagen (1303–1306)</era>
- <era type="145" draft="contributed">Tokuji (1306–1308)</era>
- <era type="146" draft="contributed">Enkyō (1308–1311)</era>
- <era type="147" draft="contributed">Ōchō (1311–1312)</era>
- <era type="148" draft="contributed">Shōwa (1312–1317)</era>
- <era type="149" draft="contributed">Bunpō (1317–1319)</era>
- <era type="150" draft="contributed">Genō (1319–1321)</era>
- <era type="151" draft="contributed">Genkō (1321–1324)</era>
- <era type="152" draft="contributed">Shōchū (1324–1326)</era>
- <era type="153" draft="contributed">Karyaku (1326–1329)</era>
- <era type="154" draft="contributed">Gentoku (1329–1331)</era>
- <era type="155" draft="contributed">Genkō (1331–1334)</era>
- <era type="156" draft="contributed">Kenmu (1334–1336)</era>
- <era type="157" draft="contributed">Engen (1336–1340)</era>
- <era type="158" draft="contributed">Kōkoku (1340–1346)</era>
- <era type="159" draft="contributed">Shōhei (1346–1370)</era>
- <era type="160" draft="contributed">Kentoku (1370–1372)</era>
- <era type="161" draft="contributed">Bunchū (1372–1375)</era>
- <era type="162" draft="contributed">Tenju (1375–1379)</era>
- <era type="163" draft="contributed">Kōryaku (1379–1381)</era>
- <era type="164" draft="contributed">Kōwa (1381–1384)</era>
- <era type="165" draft="contributed">Genchū (1384–1392)</era>
- <era type="166" draft="contributed">Meitoku (1384–1387)</era>
- <era type="167" draft="contributed">Kakei (1387–1389)</era>
- <era type="168" draft="contributed">Kōō (1389–1390)</era>
- <era type="169" draft="contributed">Meitoku (1390–1394)</era>
- <era type="170" draft="contributed">Ōei (1394–1428)</era>
- <era type="171" draft="contributed">Shōchō (1428–1429)</era>
- <era type="172" draft="contributed">Eikyō (1429–1441)</era>
- <era type="173" draft="contributed">Kakitsu (1441–1444)</era>
- <era type="174" draft="contributed">Bun’an (1444–1449)</era>
- <era type="175" draft="contributed">Hōtoku (1449–1452)</era>
- <era type="176" draft="contributed">Kyōtoku (1452–1455)</era>
- <era type="177" draft="contributed">Kōshō (1455–1457)</era>
- <era type="178" draft="contributed">Chōroku (1457–1460)</era>
- <era type="179" draft="contributed">Kanshō (1460–1466)</era>
- <era type="180" draft="contributed">Bunshō (1466–1467)</era>
- <era type="181" draft="contributed">Ōnin (1467–1469)</era>
- <era type="182" draft="contributed">Bunmei (1469–1487)</era>
- <era type="183" draft="contributed">Chōkyō (1487–1489)</era>
- <era type="184" draft="contributed">Entoku (1489–1492)</era>
- <era type="185" draft="contributed">Meiō (1492–1501)</era>
- <era type="186" draft="contributed">Bunki (1501–1504)</era>
- <era type="187" draft="contributed">Eishō (1504–1521)</era>
- <era type="188" draft="contributed">Taiei (1521–1528)</era>
- <era type="189" draft="contributed">Kyōroku (1528–1532)</era>
- <era type="190" draft="contributed">Tenbun (1532–1555)</era>
- <era type="191" draft="contributed">Kōji (1555–1558)</era>
- <era type="192" draft="contributed">Eiroku (1558–1570)</era>
- <era type="193" draft="contributed">Genki (1570–1573)</era>
- <era type="194" draft="contributed">Tenshō (1573–1592)</era>
- <era type="195" draft="contributed">Bunroku (1592–1596)</era>
- <era type="196" draft="contributed">Keichō (1596–1615)</era>
- <era type="197" draft="contributed">Genna (1615–1624)</era>
- <era type="198" draft="contributed">Kan’ei (1624–1644)</era>
- <era type="199" draft="contributed">Shōho (1644–1648)</era>
- <era type="200" draft="contributed">Keian (1648–1652)</era>
- <era type="201" draft="contributed">Jōō (1652–1655)</era>
- <era type="202" draft="contributed">Meireki (1655–1658)</era>
- <era type="203" draft="contributed">Manji (1658–1661)</era>
- <era type="204" draft="contributed">Kanbun (1661–1673)</era>
- <era type="205" draft="contributed">Enpō (1673–1681)</era>
- <era type="206" draft="contributed">Tenna (1681–1684)</era>
- <era type="207" draft="contributed">Jōkyō (1684–1688)</era>
- <era type="208" draft="contributed">Genroku (1688–1704)</era>
- <era type="209" draft="contributed">Hōei (1704–1711)</era>
- <era type="210" draft="contributed">Shōtoku (1711–1716)</era>
- <era type="211" draft="contributed">Kyōhō (1716–1736)</era>
- <era type="212" draft="contributed">Genbun (1736–1741)</era>
- <era type="213" draft="contributed">Kanpō (1741–1744)</era>
- <era type="214" draft="contributed">Enkyō (1744–1748)</era>
- <era type="215" draft="contributed">Kan’en (1748–1751)</era>
- <era type="216" draft="contributed">Hōreki (1751–1764)</era>
- <era type="217" draft="contributed">Meiwa (1764–1772)</era>
- <era type="218" draft="contributed">An’ei (1772–1781)</era>
- <era type="219" draft="contributed">Tenmei (1781–1789)</era>
- <era type="220" draft="contributed">Kansei (1789–1801)</era>
- <era type="221" draft="contributed">Kyōwa (1801–1804)</era>
- <era type="222" draft="contributed">Bunka (1804–1818)</era>
- <era type="223" draft="contributed">Bunsei (1818–1830)</era>
- <era type="224" draft="contributed">Tenpō (1830–1844)</era>
- <era type="225" draft="contributed">Kōka (1844–1848)</era>
- <era type="226" draft="contributed">Kaei (1848–1854)</era>
- <era type="227" draft="contributed">Ansei (1854–1860)</era>
- <era type="228" draft="contributed">Man’en (1860–1861)</era>
- <era type="229" draft="contributed">Bunkyū (1861–1864)</era>
- <era type="230" draft="contributed">Genji (1864–1865)</era>
- <era type="231" draft="contributed">Keiō (1865–1868)</era>
- <era type="232" draft="contributed">Meiji</era>
- <era type="233" draft="contributed">Taishō</era>
- <era type="234" draft="contributed">Shōwa</era>
- <era type="235" draft="contributed">Heisei</era>
- </eraNames>
- <eraAbbr>
- <era type="0" draft="contributed">Taika (645–650)</era>
- <era type="1" draft="contributed">Hakuchi (650–671)</era>
- <era type="2" draft="contributed">Hakuhō (672–686)</era>
- <era type="3" draft="contributed">Shuchō (686–701)</era>
- <era type="4" draft="contributed">Taihō (701–704)</era>
- <era type="5" draft="contributed">Keiun (704–708)</era>
- <era type="6" draft="contributed">Wadō (708–715)</era>
- <era type="7" draft="contributed">Reiki (715–717)</era>
- <era type="8" draft="contributed">Yōrō (717–724)</era>
- <era type="9" draft="contributed">Jinki (724–729)</era>
- <era type="10" draft="contributed">Tenpyō (729–749)</era>
- <era type="11" draft="contributed">Tenpyō-kampō (749-749)</era>
- <era type="12" draft="contributed">Tenpyō-shōhō (749-757)</era>
- <era type="13" draft="contributed">Tenpyō-hōji (757-765)</era>
- <era type="14" draft="contributed">Tenpyō-jingo (765-767)</era>
- <era type="15" draft="contributed">Jingo-keiun (767-770)</era>
- <era type="16" draft="contributed">Hōki (770–780)</era>
- <era type="17" draft="contributed">Ten-ō (781-782)</era>
- <era type="18" draft="contributed">Enryaku (782–806)</era>
- <era type="19" draft="contributed">Daidō (806–810)</era>
- <era type="20" draft="contributed">Kōnin (810–824)</era>
- <era type="21" draft="contributed">Tenchō (824–834)</era>
- <era type="22" draft="contributed">Jōwa (834–848)</era>
- <era type="23" draft="contributed">Kajō (848–851)</era>
- <era type="24" draft="contributed">Ninju (851–854)</era>
- <era type="25" draft="contributed">Saikō (854–857)</era>
- <era type="26" draft="contributed">Ten-an (857-859)</era>
- <era type="27" draft="contributed">Jōgan (859–877)</era>
- <era type="28" draft="contributed">Gangyō (877–885)</era>
- <era type="29" draft="contributed">Ninna (885–889)</era>
- <era type="30" draft="contributed">Kanpyō (889–898)</era>
- <era type="31" draft="contributed">Shōtai (898–901)</era>
- <era type="32" draft="contributed">Engi (901–923)</era>
- <era type="33" draft="contributed">Enchō (923–931)</era>
- <era type="34" draft="contributed">Jōhei (931–938)</era>
- <era type="35" draft="contributed">Tengyō (938–947)</era>
- <era type="36" draft="contributed">Tenryaku (947–957)</era>
- <era type="37" draft="contributed">Tentoku (957–961)</era>
- <era type="38" draft="contributed">Ōwa (961–964)</era>
- <era type="39" draft="contributed">Kōhō (964–968)</era>
- <era type="40" draft="contributed">Anna (968–970)</era>
- <era type="41" draft="contributed">Tenroku (970–973)</era>
- <era type="42" draft="contributed">Ten’en (973–976)</era>
- <era type="43" draft="contributed">Jōgen (976–978)</era>
- <era type="44" draft="contributed">Tengen (978–983)</era>
- <era type="45" draft="contributed">Eikan (983–985)</era>
- <era type="46" draft="contributed">Kanna (985–987)</era>
- <era type="47" draft="contributed">Eien (987–989)</era>
- <era type="48" draft="contributed">Eiso (989–990)</era>
- <era type="49" draft="contributed">Shōryaku (990–995)</era>
- <era type="50" draft="contributed">Chōtoku (995–999)</era>
- <era type="51" draft="contributed">Chōhō (999–1004)</era>
- <era type="52" draft="contributed">Kankō (1004–1012)</era>
- <era type="53" draft="contributed">Chōwa (1012–1017)</era>
- <era type="54" draft="contributed">Kannin (1017–1021)</era>
- <era type="55" draft="contributed">Jian (1021–1024)</era>
- <era type="56" draft="contributed">Manju (1024–1028)</era>
- <era type="57" draft="contributed">Chōgen (1028–1037)</era>
- <era type="58" draft="contributed">Chōryaku (1037–1040)</era>
- <era type="59" draft="contributed">Chōkyū (1040–1044)</era>
- <era type="60" draft="contributed">Kantoku (1044–1046)</era>
- <era type="61" draft="contributed">Eishō (1046–1053)</era>
- <era type="62" draft="contributed">Tengi (1053–1058)</era>
- <era type="63" draft="contributed">Kōhei (1058–1065)</era>
- <era type="64" draft="contributed">Jiryaku (1065–1069)</era>
- <era type="65" draft="contributed">Enkyū (1069–1074)</era>
- <era type="66" draft="contributed">Shōho (1074–1077)</era>
- <era type="67" draft="contributed">Shōryaku (1077–1081)</era>
- <era type="68" draft="contributed">Eihō (1081–1084)</era>
- <era type="69" draft="contributed">Ōtoku (1084–1087)</era>
- <era type="70" draft="contributed">Kanji (1087–1094)</era>
- <era type="71" draft="contributed">Kahō (1094–1096)</era>
- <era type="72" draft="contributed">Eichō (1096–1097)</era>
- <era type="73" draft="contributed">Jōtoku (1097–1099)</era>
- <era type="74" draft="contributed">Kōwa (1099–1104)</era>
- <era type="75" draft="contributed">Chōji (1104–1106)</era>
- <era type="76" draft="contributed">Kashō (1106–1108)</era>
- <era type="77" draft="contributed">Tennin (1108–1110)</era>
- <era type="78" draft="contributed">Ten-ei (1110-1113)</era>
- <era type="79" draft="contributed">Eikyū (1113–1118)</era>
- <era type="80" draft="contributed">Gen’ei (1118–1120)</era>
- <era type="81" draft="contributed">Hōan (1120–1124)</era>
- <era type="82" draft="contributed">Tenji (1124–1126)</era>
- <era type="83" draft="contributed">Daiji (1126–1131)</era>
- <era type="84" draft="contributed">Tenshō (1131–1132)</era>
- <era type="85" draft="contributed">Chōshō (1132–1135)</era>
- <era type="86" draft="contributed">Hōen (1135–1141)</era>
- <era type="87" draft="contributed">Eiji (1141–1142)</era>
- <era type="88" draft="contributed">Kōji (1142–1144)</era>
- <era type="89" draft="contributed">Ten’yō (1144–1145)</era>
- <era type="90" draft="contributed">Kyūan (1145–1151)</era>
- <era type="91" draft="contributed">Ninpei (1151–1154)</era>
- <era type="92" draft="contributed">Kyūju (1154–1156)</era>
- <era type="93" draft="contributed">Hōgen (1156–1159)</era>
- <era type="94" draft="contributed">Heiji (1159–1160)</era>
- <era type="95" draft="contributed">Eiryaku (1160–1161)</era>
- <era type="96" draft="contributed">Ōho (1161–1163)</era>
- <era type="97" draft="contributed">Chōkan (1163–1165)</era>
- <era type="98" draft="contributed">Eiman (1165–1166)</era>
- <era type="99" draft="contributed">Nin’an (1166–1169)</era>
- <era type="100" draft="contributed">Kaō (1169–1171)</era>
- <era type="101" draft="contributed">Shōan (1171–1175)</era>
- <era type="102" draft="contributed">Angen (1175–1177)</era>
- <era type="103" draft="contributed">Jishō (1177–1181)</era>
- <era type="104" draft="contributed">Yōwa (1181–1182)</era>
- <era type="105" draft="contributed">Juei (1182–1184)</era>
- <era type="106" draft="contributed">Genryaku (1184–1185)</era>
- <era type="107" draft="contributed">Bunji (1185–1190)</era>
- <era type="108" draft="contributed">Kenkyū (1190–1199)</era>
- <era type="109" draft="contributed">Shōji (1199–1201)</era>
- <era type="110" draft="contributed">Kennin (1201–1204)</era>
- <era type="111" draft="contributed">Genkyū (1204–1206)</era>
- <era type="112" draft="contributed">Ken’ei (1206–1207)</era>
- <era type="113" draft="contributed">Jōgen (1207–1211)</era>
- <era type="114" draft="contributed">Kenryaku (1211–1213)</era>
- <era type="115" draft="contributed">Kenpō (1213–1219)</era>
- <era type="116" draft="contributed">Jōkyū (1219–1222)</era>
- <era type="117" draft="contributed">Jōō (1222–1224)</era>
- <era type="118" draft="contributed">Gennin (1224–1225)</era>
- <era type="119" draft="contributed">Karoku (1225–1227)</era>
- <era type="120" draft="contributed">Antei (1227–1229)</era>
- <era type="121" draft="contributed">Kanki (1229–1232)</era>
- <era type="122" draft="contributed">Jōei (1232–1233)</era>
- <era type="123" draft="contributed">Tenpuku (1233–1234)</era>
- <era type="124" draft="contributed">Bunryaku (1234–1235)</era>
- <era type="125" draft="contributed">Katei (1235–1238)</era>
- <era type="126" draft="contributed">Ryakunin (1238–1239)</era>
- <era type="127" draft="contributed">En’ō (1239–1240)</era>
- <era type="128" draft="contributed">Ninji (1240–1243)</era>
- <era type="129" draft="contributed">Kangen (1243–1247)</era>
- <era type="130" draft="contributed">Hōji (1247–1249)</era>
- <era type="131" draft="contributed">Kenchō (1249–1256)</era>
- <era type="132" draft="contributed">Kōgen (1256–1257)</era>
- <era type="133" draft="contributed">Shōka (1257–1259)</era>
- <era type="134" draft="contributed">Shōgen (1259–1260)</era>
- <era type="135" draft="contributed">Bun’ō (1260–1261)</era>
- <era type="136" draft="contributed">Kōchō (1261–1264)</era>
- <era type="137" draft="contributed">Bun’ei (1264–1275)</era>
- <era type="138" draft="contributed">Kenji (1275–1278)</era>
- <era type="139" draft="contributed">Kōan (1278–1288)</era>
- <era type="140" draft="contributed">Shōō (1288–1293)</era>
- <era type="141" draft="contributed">Einin (1293–1299)</era>
- <era type="142" draft="contributed">Shōan (1299–1302)</era>
- <era type="143" draft="contributed">Kengen (1302–1303)</era>
- <era type="144" draft="contributed">Kagen (1303–1306)</era>
- <era type="145" draft="contributed">Tokuji (1306–1308)</era>
- <era type="146" draft="contributed">Enkyō (1308–1311)</era>
- <era type="147" draft="contributed">Ōchō (1311–1312)</era>
- <era type="148" draft="contributed">Shōwa (1312–1317)</era>
- <era type="149" draft="contributed">Bunpō (1317–1319)</era>
- <era type="150" draft="contributed">Genō (1319–1321)</era>
- <era type="151" draft="contributed">Genkō (1321–1324)</era>
- <era type="152" draft="contributed">Shōchū (1324–1326)</era>
- <era type="153" draft="contributed">Karyaku (1326–1329)</era>
- <era type="154" draft="contributed">Gentoku (1329–1331)</era>
- <era type="155" draft="contributed">Genkō (1331–1334)</era>
- <era type="156" draft="contributed">Kenmu (1334–1336)</era>
- <era type="157" draft="contributed">Engen (1336–1340)</era>
- <era type="158" draft="contributed">Kōkoku (1340–1346)</era>
- <era type="159" draft="contributed">Shōhei (1346–1370)</era>
- <era type="160" draft="contributed">Kentoku (1370–1372)</era>
- <era type="161" draft="contributed">Bunchū (1372–1375)</era>
- <era type="162" draft="contributed">Tenju (1375–1379)</era>
- <era type="163" draft="contributed">Kōryaku (1379–1381)</era>
- <era type="164" draft="contributed">Kōwa (1381–1384)</era>
- <era type="165" draft="contributed">Genchū (1384–1392)</era>
- <era type="166" draft="contributed">Meitoku (1384–1387)</era>
- <era type="167" draft="contributed">Kakei (1387–1389)</era>
- <era type="168" draft="contributed">Kōō (1389–1390)</era>
- <era type="169" draft="contributed">Meitoku (1390–1394)</era>
- <era type="170" draft="contributed">Ōei (1394–1428)</era>
- <era type="171" draft="contributed">Shōchō (1428–1429)</era>
- <era type="172" draft="contributed">Eikyō (1429–1441)</era>
- <era type="173" draft="contributed">Kakitsu (1441–1444)</era>
- <era type="174" draft="contributed">Bun’an (1444–1449)</era>
- <era type="175" draft="contributed">Hōtoku (1449–1452)</era>
- <era type="176" draft="contributed">Kyōtoku (1452–1455)</era>
- <era type="177" draft="contributed">Kōshō (1455–1457)</era>
- <era type="178" draft="contributed">Chōroku (1457–1460)</era>
- <era type="179" draft="contributed">Kanshō (1460–1466)</era>
- <era type="180" draft="contributed">Bunshō (1466–1467)</era>
- <era type="181" draft="contributed">Ōnin (1467–1469)</era>
- <era type="182" draft="contributed">Bunmei (1469–1487)</era>
- <era type="183" draft="contributed">Chōkyō (1487–1489)</era>
- <era type="184" draft="contributed">Entoku (1489–1492)</era>
- <era type="185" draft="contributed">Meiō (1492–1501)</era>
- <era type="186" draft="contributed">Bunki (1501–1504)</era>
- <era type="187" draft="contributed">Eishō (1504–1521)</era>
- <era type="188" draft="contributed">Taiei (1521–1528)</era>
- <era type="189" draft="contributed">Kyōroku (1528–1532)</era>
- <era type="190" draft="contributed">Tenbun (1532–1555)</era>
- <era type="191" draft="contributed">Kōji (1555–1558)</era>
- <era type="192" draft="contributed">Eiroku (1558–1570)</era>
- <era type="193" draft="contributed">Genki (1570–1573)</era>
- <era type="194" draft="contributed">Tenshō (1573–1592)</era>
- <era type="195" draft="contributed">Bunroku (1592–1596)</era>
- <era type="196" draft="contributed">Keichō (1596–1615)</era>
- <era type="197" draft="contributed">Genna (1615–1624)</era>
- <era type="198" draft="contributed">Kan’ei (1624–1644)</era>
- <era type="199" draft="contributed">Shōho (1644–1648)</era>
- <era type="200" draft="contributed">Keian (1648–1652)</era>
- <era type="201" draft="contributed">Jōō (1652–1655)</era>
- <era type="202" draft="contributed">Meireki (1655–1658)</era>
- <era type="203" draft="contributed">Manji (1658–1661)</era>
- <era type="204" draft="contributed">Kanbun (1661–1673)</era>
- <era type="205" draft="contributed">Enpō (1673–1681)</era>
- <era type="206" draft="contributed">Tenna (1681–1684)</era>
- <era type="207" draft="contributed">Jōkyō (1684–1688)</era>
- <era type="208" draft="contributed">Genroku (1688–1704)</era>
- <era type="209" draft="contributed">Hōei (1704–1711)</era>
- <era type="210" draft="contributed">Shōtoku (1711–1716)</era>
- <era type="211" draft="contributed">Kyōhō (1716–1736)</era>
- <era type="212" draft="contributed">Genbun (1736–1741)</era>
- <era type="213" draft="contributed">Kanpō (1741–1744)</era>
- <era type="214" draft="contributed">Enkyō (1744–1748)</era>
- <era type="215" draft="contributed">Kan’en (1748–1751)</era>
- <era type="216" draft="contributed">Hōreki (1751–1764)</era>
- <era type="217" draft="contributed">Meiwa (1764–1772)</era>
- <era type="218" draft="contributed">An’ei (1772–1781)</era>
- <era type="219" draft="contributed">Tenmei (1781–1789)</era>
- <era type="220" draft="contributed">Kansei (1789–1801)</era>
- <era type="221" draft="contributed">Kyōwa (1801–1804)</era>
- <era type="222" draft="contributed">Bunka (1804–1818)</era>
- <era type="223" draft="contributed">Bunsei (1818–1830)</era>
- <era type="224" draft="contributed">Tenpō (1830–1844)</era>
- <era type="225" draft="contributed">Kōka (1844–1848)</era>
- <era type="226" draft="contributed">Kaei (1848–1854)</era>
- <era type="227" draft="contributed">Ansei (1854–1860)</era>
- <era type="228" draft="contributed">Man’en (1860–1861)</era>
- <era type="229" draft="contributed">Bunkyū (1861–1864)</era>
- <era type="230" draft="contributed">Genji (1864–1865)</era>
- <era type="231" draft="contributed">Keiō (1865–1868)</era>
- <era type="232" draft="contributed">Meiji</era>
- <era type="233" draft="contributed">Taishō</era>
- <era type="234" draft="contributed">Shōwa</era>
- <era type="235" draft="contributed">Heisei</era>
- </eraAbbr>
- <eraNarrow>
- <era type="232" draft="contributed">M</era>
- <era type="233" draft="contributed">T</era>
- <era type="234" draft="contributed">S</era>
- <era type="235" draft="contributed">H</era>
- </eraNarrow>
- </eras>
- <dateFormats>
- <dateFormatLength type="full">
- <dateFormat>
- <pattern>EEEE d. MMMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="long">
- <dateFormat>
- <pattern>d. MMMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="medium">
- <dateFormat>
- <pattern>d. MMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="short">
- <dateFormat>
- <pattern>d.M y G</pattern>
- </dateFormat>
- </dateFormatLength>
- </dateFormats>
- <dateTimeFormats>
- <dateTimeFormatLength type="full">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="long">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="medium">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="short">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <availableFormats>
- <dateFormatItem id="d" draft="contributed">d.</dateFormatItem>
- <dateFormatItem id="E" draft="contributed">ccc</dateFormatItem>
- <dateFormatItem id="Ed" draft="contributed">E d.</dateFormatItem>
- <dateFormatItem id="Gy" draft="contributed">y G</dateFormatItem>
- <dateFormatItem id="GyMMM" draft="contributed">MMM y G</dateFormatItem>
- <dateFormatItem id="GyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
- <dateFormatItem id="GyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
- <dateFormatItem id="M" draft="contributed">L.</dateFormatItem>
- <dateFormatItem id="Md" draft="contributed">d.M.</dateFormatItem>
- <dateFormatItem id="MEd" draft="contributed">E d.M</dateFormatItem>
- <dateFormatItem id="MMdd" draft="contributed">d.M.</dateFormatItem>
- <dateFormatItem id="MMM" draft="contributed">LLL</dateFormatItem>
- <dateFormatItem id="MMMd" draft="contributed">d. MMM</dateFormatItem>
- <dateFormatItem id="MMMEd" draft="contributed">E d. MMM</dateFormatItem>
- <dateFormatItem id="MMMMd" draft="contributed">d. MMMM</dateFormatItem>
- <dateFormatItem id="y" draft="contributed">y G</dateFormatItem>
- <dateFormatItem id="yyyy" draft="contributed">y G</dateFormatItem>
- <dateFormatItem id="yyyyM" draft="contributed">M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMd" draft="contributed">d.M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMEd" draft="contributed">E d.M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMM" draft="contributed">MM.y G</dateFormatItem>
- <dateFormatItem id="yyyyMMM" draft="contributed">MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMM" draft="contributed">MMMM y G</dateFormatItem>
- <dateFormatItem id="yyyyQQQ" draft="contributed">QQQ y G</dateFormatItem>
- <dateFormatItem id="yyyyQQQQ" draft="contributed">QQQQ y G</dateFormatItem>
- </availableFormats>
- <intervalFormats>
- <intervalFormatFallback draft="contributed">{0}–{1}</intervalFormatFallback>
- <intervalFormatItem id="d">
- <greatestDifference id="d" draft="contributed">d.–d.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="h">
- <greatestDifference id="a" draft="contributed">h a–h a</greatestDifference>
- <greatestDifference id="h" draft="contributed">h–h a</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="H">
- <greatestDifference id="H" draft="contributed">HH–HH</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="hv">
- <greatestDifference id="a" draft="contributed">h a–h a v</greatestDifference>
- <greatestDifference id="h" draft="contributed">h–h a v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Hv">
- <greatestDifference id="H" draft="contributed">HH–HH v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="M">
- <greatestDifference id="M" draft="contributed">M.–M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Md">
- <greatestDifference id="d" draft="contributed">d.M.–d.M.</greatestDifference>
- <greatestDifference id="M" draft="contributed">d.M.–d.M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MEd">
- <greatestDifference id="d" draft="contributed">E d.M.–E d.M.</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d.M.–E d.M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMM">
- <greatestDifference id="M" draft="contributed">MMM–MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMMd">
- <greatestDifference id="d" draft="contributed">d.–d. MMM</greatestDifference>
- <greatestDifference id="M" draft="contributed">d. MMM–d. MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMMEd">
- <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="y">
- <greatestDifference id="y" draft="contributed">y–y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yM">
- <greatestDifference id="M" draft="contributed">M.y–M.y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">M.y–M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMd">
- <greatestDifference id="d" draft="contributed">d.M.y–d.M.y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">d.M.y–d.M.y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">d.M.y–d.M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMEd">
- <greatestDifference id="d" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMM">
- <greatestDifference id="M" draft="contributed">MMM–MMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">MMM y–MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMd">
- <greatestDifference id="d" draft="contributed">d.–d. MMM y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">d. MMM–d. MMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">d. MMM y–d. MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMEd">
- <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">E d. MMM y–E d. MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMM">
- <greatestDifference id="M" draft="contributed">MMMM–MMMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">MMMM y–MMMM y G</greatestDifference>
- </intervalFormatItem>
- </intervalFormats>
- </dateTimeFormats>
- </calendar>
- <calendar type="persian">
- <months>
- <monthContext type="format">
- <monthWidth type="abbreviated">
- <month type="1">farvardin</month>
- <month type="2">ordibehesht</month>
- <month type="3">khordad</month>
- <month type="4">tir</month>
- <month type="5">mordad</month>
- <month type="6">shahrivar</month>
- <month type="7">mehr</month>
- <month type="8">aban</month>
- <month type="9">azar</month>
- <month type="10">dey</month>
- <month type="11">bahman</month>
- <month type="12">esfand</month>
- </monthWidth>
- <monthWidth type="narrow">
- <month type="1">1</month>
- <month type="2">2</month>
- <month type="3">3</month>
- <month type="4">4</month>
- <month type="5">5</month>
- <month type="6">6</month>
- <month type="7">7</month>
- <month type="8">8</month>
- <month type="9">9</month>
- <month type="10">10</month>
- <month type="11">11</month>
- <month type="12">12</month>
- </monthWidth>
- <monthWidth type="wide">
- <month type="1">farvardin</month>
- <month type="2">ordibehesht</month>
- <month type="3">khordad</month>
- <month type="4">tir</month>
- <month type="5">mordad</month>
- <month type="6">shahrivar</month>
- <month type="7">mehr</month>
- <month type="8">aban</month>
- <month type="9">azar</month>
- <month type="10">dey</month>
- <month type="11">bahman</month>
- <month type="12">esfand</month>
- </monthWidth>
- </monthContext>
- <monthContext type="stand-alone">
- <monthWidth type="abbreviated">
- <month type="1">farvardin</month>
- <month type="2">ordibehesht</month>
- <month type="3">khordad</month>
- <month type="4">tir</month>
- <month type="5">mordad</month>
- <month type="6">shahrivar</month>
- <month type="7">mehr</month>
- <month type="8">aban</month>
- <month type="9">azar</month>
- <month type="10">dey</month>
- <month type="11">bahman</month>
- <month type="12">esfand</month>
- </monthWidth>
- <monthWidth type="narrow">
- <month type="1">1</month>
- <month type="2">2</month>
- <month type="3">3</month>
- <month type="4">4</month>
- <month type="5">5</month>
- <month type="6">6</month>
- <month type="7">7</month>
- <month type="8">8</month>
- <month type="9">9</month>
- <month type="10">10</month>
- <month type="11">11</month>
- <month type="12">12</month>
- </monthWidth>
- <monthWidth type="wide">
- <month type="1">farvardin</month>
- <month type="2">ordibehesht</month>
- <month type="3">khordad</month>
- <month type="4">tir</month>
- <month type="5">mordad</month>
- <month type="6">shahrivar</month>
- <month type="7">mehr</month>
- <month type="8">aban</month>
- <month type="9">azar</month>
- <month type="10">dey</month>
- <month type="11">bahman</month>
- <month type="12">esfand</month>
- </monthWidth>
- </monthContext>
- </months>
- <eras>
- <eraNames>
- <era type="0">AP</era>
- </eraNames>
- <eraAbbr>
- <era type="0">AP</era>
- </eraAbbr>
- <eraNarrow>
- <era type="0">AP</era>
- </eraNarrow>
- </eras>
- <dateFormats>
- <dateFormatLength type="full">
- <dateFormat>
- <pattern draft="contributed">EEEE d. MMMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="long">
- <dateFormat>
- <pattern draft="contributed">d. MMMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="medium">
- <dateFormat>
- <pattern draft="contributed">d. MMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="short">
- <dateFormat>
- <pattern draft="contributed">d.M.y G</pattern>
- </dateFormat>
- </dateFormatLength>
- </dateFormats>
- <dateTimeFormats>
- <dateTimeFormatLength type="full">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="long">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="medium">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="short">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <availableFormats>
- <dateFormatItem id="d" draft="contributed">d.</dateFormatItem>
- <dateFormatItem id="E" draft="contributed">ccc</dateFormatItem>
- <dateFormatItem id="Ed" draft="contributed">E d.</dateFormatItem>
- <dateFormatItem id="Gy" draft="contributed">y G</dateFormatItem>
- <dateFormatItem id="GyMMM" draft="contributed">MMM y G</dateFormatItem>
- <dateFormatItem id="GyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
- <dateFormatItem id="GyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
- <dateFormatItem id="M" draft="contributed">L.</dateFormatItem>
- <dateFormatItem id="Md" draft="contributed">d.M.</dateFormatItem>
- <dateFormatItem id="MEd" draft="contributed">E d.M</dateFormatItem>
- <dateFormatItem id="MMdd" draft="contributed">d.M.</dateFormatItem>
- <dateFormatItem id="MMM" draft="contributed">LLL</dateFormatItem>
- <dateFormatItem id="MMMd" draft="contributed">d. MMM</dateFormatItem>
- <dateFormatItem id="MMMEd" draft="contributed">E d. MMM</dateFormatItem>
- <dateFormatItem id="MMMMd" draft="contributed">d. MMMM</dateFormatItem>
- <dateFormatItem id="y" draft="contributed">y G</dateFormatItem>
- <dateFormatItem id="yyyy" draft="contributed">y G</dateFormatItem>
- <dateFormatItem id="yyyyM" draft="contributed">M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMd" draft="contributed">d.M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMEd" draft="contributed">E d.M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMM" draft="contributed">MM.y G</dateFormatItem>
- <dateFormatItem id="yyyyMMM" draft="contributed">MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMM" draft="contributed">MMMM y G</dateFormatItem>
- <dateFormatItem id="yyyyQQQ" draft="contributed">QQQ y G</dateFormatItem>
- <dateFormatItem id="yyyyQQQQ" draft="contributed">QQQQ y G</dateFormatItem>
- </availableFormats>
- <intervalFormats>
- <intervalFormatFallback draft="contributed">{0}–{1}</intervalFormatFallback>
- <intervalFormatItem id="d">
- <greatestDifference id="d" draft="contributed">d.–d.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="h">
- <greatestDifference id="a" draft="contributed">h a–h a</greatestDifference>
- <greatestDifference id="h" draft="contributed">h–h a</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="H">
- <greatestDifference id="H" draft="contributed">HH–HH</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="hv">
- <greatestDifference id="a" draft="contributed">h a–h a v</greatestDifference>
- <greatestDifference id="h" draft="contributed">h–h a v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Hv">
- <greatestDifference id="H" draft="contributed">HH–HH v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="M">
- <greatestDifference id="M" draft="contributed">M.–M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Md">
- <greatestDifference id="d" draft="contributed">d.M.–d.M.</greatestDifference>
- <greatestDifference id="M" draft="contributed">d.M.–d.M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MEd">
- <greatestDifference id="d" draft="contributed">E d.M.–E d.M.</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d.M.–E d.M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMM">
- <greatestDifference id="M" draft="contributed">MMM–MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMMd">
- <greatestDifference id="d" draft="contributed">d.–d. MMM</greatestDifference>
- <greatestDifference id="M" draft="contributed">d. MMM–d. MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMMEd">
- <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="y">
- <greatestDifference id="y" draft="contributed">y–y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yM">
- <greatestDifference id="M" draft="contributed">M.y–M.y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">M.y–M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMd">
- <greatestDifference id="d" draft="contributed">d.M.y–d.M.y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">d.M.y–d.M.y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">d.M.y–d.M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMEd">
- <greatestDifference id="d" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMM">
- <greatestDifference id="M" draft="contributed">MMM–MMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">MMM y–MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMd">
- <greatestDifference id="d" draft="contributed">d.–d. MMM y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">d. MMM–d. MMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">d. MMM y–d. MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMEd">
- <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">E d. MMM y–E d. MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMM">
- <greatestDifference id="M" draft="contributed">MMMM–MMMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">MMMM y–MMMM y G</greatestDifference>
- </intervalFormatItem>
- </intervalFormats>
- </dateTimeFormats>
- </calendar>
- <calendar type="roc">
- <eras>
- <eraNames>
- <era type="0" draft="contributed">Før R.O.C.</era>
- <era type="1">Minguo</era>
- </eraNames>
- <eraAbbr>
- <era type="0">Før ROC</era>
- <era type="1">Minguo</era>
- </eraAbbr>
- <eraNarrow>
- <era type="1">Minguo</era>
- </eraNarrow>
- </eras>
- <dateFormats>
- <dateFormatLength type="full">
- <dateFormat>
- <pattern draft="contributed">EEEE d. MMMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="long">
- <dateFormat>
- <pattern draft="contributed">d. MMMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="medium">
- <dateFormat>
- <pattern draft="contributed">d. MMM y G</pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="short">
- <dateFormat>
- <pattern draft="contributed">d.M.y G</pattern>
- </dateFormat>
- </dateFormatLength>
- </dateFormats>
- <dateTimeFormats>
- <dateTimeFormatLength type="full">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="long">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="medium">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type="short">
- <dateTimeFormat>
- <pattern draft="contributed">{1} {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <availableFormats>
- <dateFormatItem id="d" draft="contributed">d.</dateFormatItem>
- <dateFormatItem id="E" draft="contributed">ccc</dateFormatItem>
- <dateFormatItem id="Ed" draft="contributed">E d.</dateFormatItem>
- <dateFormatItem id="Gy" draft="contributed">y G</dateFormatItem>
- <dateFormatItem id="GyMMM" draft="contributed">MMM y G</dateFormatItem>
- <dateFormatItem id="GyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
- <dateFormatItem id="GyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
- <dateFormatItem id="M" draft="contributed">L.</dateFormatItem>
- <dateFormatItem id="Md" draft="contributed">d.M.</dateFormatItem>
- <dateFormatItem id="MEd" draft="contributed">E d.M</dateFormatItem>
- <dateFormatItem id="MMdd" draft="contributed">d.M.</dateFormatItem>
- <dateFormatItem id="MMM" draft="contributed">LLL</dateFormatItem>
- <dateFormatItem id="MMMd" draft="contributed">d. MMM</dateFormatItem>
- <dateFormatItem id="MMMEd" draft="contributed">E d. MMM</dateFormatItem>
- <dateFormatItem id="MMMMd" draft="contributed">d. MMMM</dateFormatItem>
- <dateFormatItem id="y" draft="contributed">y G</dateFormatItem>
- <dateFormatItem id="yyyy" draft="contributed">y G</dateFormatItem>
- <dateFormatItem id="yyyyM" draft="contributed">M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMd" draft="contributed">d.M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMEd" draft="contributed">E d.M.y G</dateFormatItem>
- <dateFormatItem id="yyyyMM" draft="contributed">MM.y G</dateFormatItem>
- <dateFormatItem id="yyyyMMM" draft="contributed">MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
- <dateFormatItem id="yyyyMMMM" draft="contributed">MMMM y G</dateFormatItem>
- <dateFormatItem id="yyyyQQQ" draft="contributed">QQQ y G</dateFormatItem>
- <dateFormatItem id="yyyyQQQQ" draft="contributed">QQQQ y G</dateFormatItem>
- </availableFormats>
- <intervalFormats>
- <intervalFormatFallback draft="contributed">{0}–{1}</intervalFormatFallback>
- <intervalFormatItem id="d">
- <greatestDifference id="d" draft="contributed">d.–d.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="h">
- <greatestDifference id="a" draft="contributed">h a–h a</greatestDifference>
- <greatestDifference id="h" draft="contributed">h–h a</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="H">
- <greatestDifference id="H" draft="contributed">HH–HH</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="hv">
- <greatestDifference id="a" draft="contributed">h a–h a v</greatestDifference>
- <greatestDifference id="h" draft="contributed">h–h a v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Hv">
- <greatestDifference id="H" draft="contributed">HH–HH v</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="M">
- <greatestDifference id="M" draft="contributed">M.–M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="Md">
- <greatestDifference id="d" draft="contributed">d.M.–d.M.</greatestDifference>
- <greatestDifference id="M" draft="contributed">d.M.–d.M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MEd">
- <greatestDifference id="d" draft="contributed">E d.M.–E d.M.</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d.M.–E d.M.</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMM">
- <greatestDifference id="M" draft="contributed">MMM–MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMMd">
- <greatestDifference id="d" draft="contributed">d.–d. MMM</greatestDifference>
- <greatestDifference id="M" draft="contributed">d. MMM–d. MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="MMMEd">
- <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="y">
- <greatestDifference id="y" draft="contributed">y–y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yM">
- <greatestDifference id="M" draft="contributed">M.y–M.y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">M.y–M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMd">
- <greatestDifference id="d" draft="contributed">d.M.y–d.M.y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">d.M.y–d.M.y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">d.M.y–d.M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMEd">
- <greatestDifference id="d" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMM">
- <greatestDifference id="M" draft="contributed">MMM–MMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">MMM y–MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMd">
- <greatestDifference id="d" draft="contributed">d.–d. MMM y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">d. MMM–d. MMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">d. MMM y–d. MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMEd">
- <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
- <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">E d. MMM y–E d. MMM y G</greatestDifference>
- </intervalFormatItem>
- <intervalFormatItem id="yMMMM">
- <greatestDifference id="M" draft="contributed">MMMM–MMMM y G</greatestDifference>
- <greatestDifference id="y" draft="contributed">MMMM y–MMMM y G</greatestDifference>
- </intervalFormatItem>
- </intervalFormats>
- </dateTimeFormats>
- </calendar>
- </calendars>
- <fields>
- <field type="era">
- <displayName>tidsalder</displayName>
- </field>
- <field type="era-short">
- <displayName>tidsalder</displayName>
- </field>
- <field type="era-narrow">
- <displayName>tidsalder</displayName>
- </field>
- <field type="year">
- <displayName>år</displayName>
- <relative type="-1">i fjor</relative>
- <relative type="0">i år</relative>
- <relative type="1">neste år</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} år</relativeTimePattern>
- <relativeTimePattern count="other">om {0} år</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} år siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} år siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="year-short">
- <displayName>år</displayName>
- <relative type="-1">i fjor</relative>
- <relative type="0">i år</relative>
- <relative type="1">neste år</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} år</relativeTimePattern>
- <relativeTimePattern count="other">om {0} år</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} år siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} år siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="year-narrow">
- <displayName>år</displayName>
- <relative type="-1">i fjor</relative>
- <relative type="0">i år</relative>
- <relative type="1">neste år</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">+{0} år</relativeTimePattern>
- <relativeTimePattern count="other">+{0} år</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">–{0} år</relativeTimePattern>
- <relativeTimePattern count="other">–{0} år</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="quarter">
- <displayName>kvartal</displayName>
- <relative type="-1">forrige kvartal</relative>
- <relative type="0">dette kvartalet</relative>
- <relative type="1">neste kvartal</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} kvartal</relativeTimePattern>
- <relativeTimePattern count="other">om {0} kvartaler</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} kvartal siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} kvartaler siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="quarter-short">
- <displayName>kv.</displayName>
- <relative type="-1">forrige kv.</relative>
- <relative type="0">dette kv.</relative>
- <relative type="1">neste kv.</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} kv.</relativeTimePattern>
- <relativeTimePattern count="other">om {0} kv.</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} kv. siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} kv. siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="quarter-narrow">
- <displayName>kv.</displayName>
- <relative type="-1">forrige kv.</relative>
- <relative type="0">dette kv.</relative>
- <relative type="1">neste kv.</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">+{0} kv.</relativeTimePattern>
- <relativeTimePattern count="other">+{0} kv.</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">–{0} kv.</relativeTimePattern>
- <relativeTimePattern count="other">–{0} kv.</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="month">
- <displayName>måned</displayName>
- <relative type="-1">forrige måned</relative>
- <relative type="0">denne måneden</relative>
- <relative type="1">neste måned</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} måned</relativeTimePattern>
- <relativeTimePattern count="other">om {0} måneder</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} måned siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} måneder siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="month-short">
- <displayName>mnd.</displayName>
- <relative type="-1">forrige md.</relative>
- <relative type="0">denne md.</relative>
- <relative type="1">neste md.</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} md.</relativeTimePattern>
- <relativeTimePattern count="other">om {0} md.</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} md. siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} md. siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="month-narrow">
- <displayName>md.</displayName>
- <relative type="-1">forrige md.</relative>
- <relative type="0">denne md.</relative>
- <relative type="1">neste md.</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">+{0} md.</relativeTimePattern>
- <relativeTimePattern count="other">+{0} md.</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">-{0} md.</relativeTimePattern>
- <relativeTimePattern count="other">-{0} md.</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="week">
- <displayName>uke</displayName>
- <relative type="-1">forrige uke</relative>
- <relative type="0">denne uken</relative>
- <relative type="1">neste uke</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} uke</relativeTimePattern>
- <relativeTimePattern count="other">om {0} uker</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} uke siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} uker siden</relativeTimePattern>
- </relativeTime>
- <relativePeriod>uken som inneholder {0}</relativePeriod>
- </field>
- <field type="week-short">
- <displayName>uke</displayName>
- <relative type="-1">forrige uke</relative>
- <relative type="0">denne uken</relative>
- <relative type="1">neste uke</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} u.</relativeTimePattern>
- <relativeTimePattern count="other">om {0} u.</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} u. siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} u. siden</relativeTimePattern>
- </relativeTime>
- <relativePeriod>uken med {0}</relativePeriod>
- </field>
- <field type="week-narrow">
- <displayName>u.</displayName>
- <relative type="-1">forrige uke</relative>
- <relative type="0">denne uken</relative>
- <relative type="1">neste uke</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">+{0} u.</relativeTimePattern>
- <relativeTimePattern count="other">+{0} u.</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">-{0} u.</relativeTimePattern>
- <relativeTimePattern count="other">-{0} u.</relativeTimePattern>
- </relativeTime>
- <relativePeriod>u. {0}</relativePeriod>
- </field>
- <field type="weekOfMonth">
- <displayName>uke i måneden</displayName>
- </field>
- <field type="weekOfMonth-short">
- <displayName>uke i mnd.</displayName>
- </field>
- <field type="weekOfMonth-narrow">
- <displayName>uke i md.</displayName>
- </field>
- <field type="day">
- <displayName>dag</displayName>
- <relative type="-2">i forgårs</relative>
- <relative type="-1">i går</relative>
- <relative type="0">i dag</relative>
- <relative type="1">i morgen</relative>
- <relative type="2">i overmorgen</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} døgn</relativeTimePattern>
- <relativeTimePattern count="other">om {0} døgn</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} døgn siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} døgn siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="day-short">
- <displayName>dag</displayName>
- <relative type="-2">i forgårs</relative>
- <relative type="-1">i går</relative>
- <relative type="0">i dag</relative>
- <relative type="1">i morgen</relative>
- <relative type="2">i overmorgen</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} d.</relativeTimePattern>
- <relativeTimePattern count="other">om {0} d.</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} d. siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} d. siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="day-narrow">
- <displayName>d.</displayName>
- <relative type="-2" draft="contributed">-2 d.</relative>
- <relative type="-1">i går</relative>
- <relative type="0">i dag</relative>
- <relative type="1">i morgen</relative>
- <relative type="2" draft="contributed">+2 d.</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">+{0} d.</relativeTimePattern>
- <relativeTimePattern count="other">+{0} d.</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">-{0} d.</relativeTimePattern>
- <relativeTimePattern count="other">-{0} d.</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="dayOfYear">
- <displayName>dag i året</displayName>
- </field>
- <field type="dayOfYear-short">
- <displayName>dag i året</displayName>
- </field>
- <field type="dayOfYear-narrow">
- <displayName>d. i året</displayName>
- </field>
- <field type="weekday">
- <displayName>ukedag</displayName>
- </field>
- <field type="weekday-short">
- <displayName>ukedag</displayName>
- </field>
- <field type="weekday-narrow">
- <displayName>uked.</displayName>
- </field>
- <field type="weekdayOfMonth">
- <displayName>ukedag i måneden</displayName>
- </field>
- <field type="weekdayOfMonth-short">
- <displayName>uked. i mnd.</displayName>
- </field>
- <field type="weekdayOfMonth-narrow">
- <displayName>uked. i md.</displayName>
- </field>
- <field type="sun">
- <relative type="-1">forrige søndag</relative>
- <relative type="0">søndag</relative>
- <relative type="1">neste søndag</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} søndag</relativeTimePattern>
- <relativeTimePattern count="other">om {0} søndager</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} søndag siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} søndager siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="sun-short">
- <relative type="-1">sist søn.</relative>
- <relative type="0">denne søn.</relative>
- <relative type="1">neste søn.</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} søn.</relativeTimePattern>
- <relativeTimePattern count="other">om {0} søn.</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} søn. siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} søn. siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="sun-narrow">
- <relative type="-1">sist sø.</relative>
- <relative type="0">denne sø.</relative>
- <relative type="1">neste sø.</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} sø.</relativeTimePattern>
- <relativeTimePattern count="other">om {0} sø.</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} sø. siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} sø. siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="mon">
- <relative type="-1">forrige mandag</relative>
- <relative type="0">mandag</relative>
- <relative type="1">neste mandag</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} mandag</relativeTimePattern>
- <relativeTimePattern count="other">om {0} mandager</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} mandag siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} mandager siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="mon-short">
- <relative type="-1">sist man.</relative>
- <relative type="0">denne man.</relative>
- <relative type="1">neste man.</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} man.</relativeTimePattern>
- <relativeTimePattern count="other">om {0} man.</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} man. siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} man. siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="mon-narrow">
- <relative type="-1">sist ma.</relative>
- <relative type="0">denne ma.</relative>
- <relative type="1">neste ma.</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} ma.</relativeTimePattern>
- <relativeTimePattern count="other">om {0} ma.</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} ma. siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} ma. siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="tue">
- <relative type="-1">forrige tirsdag</relative>
- <relative type="0">tirsdag</relative>
- <relative type="1">neste tirsdag</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} tirsdag</relativeTimePattern>
- <relativeTimePattern count="other">om {0} tirsdager</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} tirsdag siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} tirsdager siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="tue-short">
- <relative type="-1">sist tir.</relative>
- <relative type="0">denne tir.</relative>
- <relative type="1">neste tir.</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} tir.</relativeTimePattern>
- <relativeTimePattern count="other">om {0} tir.</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} tir. siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} tir. siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="tue-narrow">
- <relative type="-1">sist ti.</relative>
- <relative type="0">denne ti.</relative>
- <relative type="1">neste ti.</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} ti.</relativeTimePattern>
- <relativeTimePattern count="other">om {0} ti.</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} ti. siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} ti. siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="wed">
- <relative type="-1">forrige onsdag</relative>
- <relative type="0">onsdag</relative>
- <relative type="1">neste onsdag</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} onsdag</relativeTimePattern>
- <relativeTimePattern count="other">om {0} onsdager</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} onsdag siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} onsdager siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="wed-short">
- <relative type="-1">sist ons.</relative>
- <relative type="0">denne ons.</relative>
- <relative type="1">neste ons.</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} ons.</relativeTimePattern>
- <relativeTimePattern count="other">om {0} ons.</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} ons. siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} ons. siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="wed-narrow">
- <relative type="-1">sist on.</relative>
- <relative type="0">denne on.</relative>
- <relative type="1">neste on.</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} on.</relativeTimePattern>
- <relativeTimePattern count="other">om {0} on.</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} on. siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} on. siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="thu">
- <relative type="-1">forrige torsdag</relative>
- <relative type="0">torsdag</relative>
- <relative type="1">neste torsdag</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} torsdag</relativeTimePattern>
- <relativeTimePattern count="other">om {0} torsdager</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} torsdag siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} torsdager siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="thu-short">
- <relative type="-1">sist tor.</relative>
- <relative type="0">denne tor.</relative>
- <relative type="1">neste tor.</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} tor.</relativeTimePattern>
- <relativeTimePattern count="other">om {0} tor.</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} tor. siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} tor. siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="thu-narrow">
- <relative type="-1">sist to.</relative>
- <relative type="0">denne to.</relative>
- <relative type="1">neste to.</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} to.</relativeTimePattern>
- <relativeTimePattern count="other">om {0} to.</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} to. siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} to. siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="fri">
- <relative type="-1">forrige fredag</relative>
- <relative type="0">fredag</relative>
- <relative type="1">neste fredag</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} fredag</relativeTimePattern>
- <relativeTimePattern count="other">om {0} fredager</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} fredag siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} fredager siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="fri-short">
- <relative type="-1">sist fre.</relative>
- <relative type="0">denne fre.</relative>
- <relative type="1">neste fre.</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} fre.</relativeTimePattern>
- <relativeTimePattern count="other">om {0} fre.</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} fre. siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} fre. siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="fri-narrow">
- <relative type="-1">sist fr.</relative>
- <relative type="0">denne fr.</relative>
- <relative type="1">neste fr.</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} fr.</relativeTimePattern>
- <relativeTimePattern count="other">om {0} fr.</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} fr. siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} fr. siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="sat">
- <relative type="-1">forrige lørdag</relative>
- <relative type="0">lørdag</relative>
- <relative type="1">neste lørdag</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} lørdag</relativeTimePattern>
- <relativeTimePattern count="other">om {0} lørdager</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} lørdag siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} lørdager siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="sat-short">
- <relative type="-1">sist lør.</relative>
- <relative type="0">denne lør.</relative>
- <relative type="1">neste lør.</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} lør.</relativeTimePattern>
- <relativeTimePattern count="other">om {0} lør.</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} lør. siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} lør. siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="sat-narrow">
- <relative type="-1">sist lø.</relative>
- <relative type="0">denne lø.</relative>
- <relative type="1">neste lø.</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} lø.</relativeTimePattern>
- <relativeTimePattern count="other">om {0} lø.</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} lø. siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} lø. siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="dayperiod-short">
- <displayName>am/pm</displayName>
- </field>
- <field type="dayperiod">
- <displayName>a.m./p.m.</displayName>
- </field>
- <field type="dayperiod-narrow">
- <displayName>am/pm</displayName>
- </field>
- <field type="hour">
- <displayName>time</displayName>
- <relative type="0">denne timen</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} time</relativeTimePattern>
- <relativeTimePattern count="other">om {0} timer</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} time siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} timer siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="hour-short">
- <displayName>t</displayName>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} t</relativeTimePattern>
- <relativeTimePattern count="other">om {0} t</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} t siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} t siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="hour-narrow">
- <displayName>t</displayName>
- <relativeTime type="future">
- <relativeTimePattern count="one">+{0} t</relativeTimePattern>
- <relativeTimePattern count="other">+{0} t</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">-{0} t</relativeTimePattern>
- <relativeTimePattern count="other">-{0} t</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="minute">
- <displayName>minutt</displayName>
- <relative type="0">dette minuttet</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} minutt</relativeTimePattern>
- <relativeTimePattern count="other">om {0} minutter</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} minutt siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} minutter siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="minute-short">
- <displayName>min</displayName>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} min</relativeTimePattern>
- <relativeTimePattern count="other">om {0} min</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} min siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} min siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="minute-narrow">
- <displayName>m</displayName>
- <relativeTime type="future">
- <relativeTimePattern count="one">+{0} min</relativeTimePattern>
- <relativeTimePattern count="other">+{0} min</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">-{0} min</relativeTimePattern>
- <relativeTimePattern count="other">-{0} min</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="second">
- <displayName>sekund</displayName>
- <relative type="0">nå</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} sekund</relativeTimePattern>
- <relativeTimePattern count="other">om {0} sekunder</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} sekund siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} sekunder siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="second-short">
- <displayName>sek</displayName>
- <relative type="0" draft="contributed">nå</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">om {0} sek</relativeTimePattern>
- <relativeTimePattern count="other">om {0} sek</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">for {0} sek siden</relativeTimePattern>
- <relativeTimePattern count="other">for {0} sek siden</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="second-narrow">
- <displayName>s</displayName>
- <relative type="0" draft="contributed">nå</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">+{0} s</relativeTimePattern>
- <relativeTimePattern count="other">+{0} s</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">-{0} s</relativeTimePattern>
- <relativeTimePattern count="other">-{0} s</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="zone">
- <displayName>tidssone</displayName>
- </field>
- <field type="zone-short">
- <displayName>tidssone</displayName>
- </field>
- <field type="zone-narrow">
- <displayName>tidssone</displayName>
- </field>
- </fields>
- <timeZoneNames>
- <hourFormat>+HH:mm;-HH:mm</hourFormat>
- <gmtFormat>GMT{0}</gmtFormat>
- <gmtZeroFormat>GMT</gmtZeroFormat>
- <regionFormat>tidssone for {0}</regionFormat>
- <regionFormat type="daylight">sommertid – {0}</regionFormat>
- <regionFormat type="standard">normaltid – {0}</regionFormat>
- <fallbackFormat>{1} ({0})</fallbackFormat>
- <zone type="America/Santa_Isabel">
- <exemplarCity>Santa Isabel</exemplarCity>
- </zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
- <zone type="Etc/UTC">
- <long>
- <standard>koordinert universaltid</standard>
- </long>
- </zone>
- <zone type="Etc/Unknown">
- <exemplarCity>ukjent by</exemplarCity>
- </zone>
- <zone type="Europe/Andorra">
- <exemplarCity>Andorra</exemplarCity>
- </zone>
- <zone type="Asia/Dubai">
- <exemplarCity>Dubai</exemplarCity>
- </zone>
- <zone type="Asia/Kabul">
- <exemplarCity>Kabul</exemplarCity>
- </zone>
- <zone type="America/Antigua">
- <exemplarCity>Antigua</exemplarCity>
- </zone>
- <zone type="America/Anguilla">
- <exemplarCity>Anguilla</exemplarCity>
- </zone>
- <zone type="Europe/Tirane">
- <exemplarCity>Tirana</exemplarCity>
- </zone>
- <zone type="Asia/Yerevan">
- <exemplarCity>Jerevan</exemplarCity>
- </zone>
- <zone type="Africa/Luanda">
- <exemplarCity>Luanda</exemplarCity>
- </zone>
- <zone type="Antarctica/Rothera">
- <exemplarCity>Rothera</exemplarCity>
- </zone>
- <zone type="Antarctica/Palmer">
- <exemplarCity>Palmer</exemplarCity>
- </zone>
- <zone type="Antarctica/Troll">
- <exemplarCity>Troll</exemplarCity>
- </zone>
- <zone type="Antarctica/Syowa">
- <exemplarCity>Syowa</exemplarCity>
- </zone>
- <zone type="Antarctica/Mawson">
- <exemplarCity>Mawson</exemplarCity>
- </zone>
- <zone type="Antarctica/Davis">
- <exemplarCity>Davis</exemplarCity>
- </zone>
- <zone type="Antarctica/Vostok">
- <exemplarCity>Vostok</exemplarCity>
- </zone>
- <zone type="Antarctica/Casey">
- <exemplarCity>Casey</exemplarCity>
- </zone>
- <zone type="Antarctica/DumontDUrville">
- <exemplarCity>Dumont d’Urville</exemplarCity>
- </zone>
- <zone type="Antarctica/McMurdo">
- <exemplarCity>McMurdo</exemplarCity>
- </zone>
- <zone type="America/Argentina/Rio_Gallegos">
- <exemplarCity>Rio Gallegos</exemplarCity>
- </zone>
- <zone type="America/Mendoza">
- <exemplarCity>Mendoza</exemplarCity>
- </zone>
- <zone type="America/Argentina/San_Juan">
- <exemplarCity>San Juan</exemplarCity>
- </zone>
- <zone type="America/Argentina/Ushuaia">
- <exemplarCity>Ushuaia</exemplarCity>
- </zone>
- <zone type="America/Argentina/La_Rioja">
- <exemplarCity>La Rioja</exemplarCity>
- </zone>
- <zone type="America/Argentina/San_Luis">
- <exemplarCity>San Luis</exemplarCity>
- </zone>
- <zone type="America/Catamarca">
- <exemplarCity>Catamarca</exemplarCity>
- </zone>
- <zone type="America/Argentina/Salta">
- <exemplarCity>Salta</exemplarCity>
- </zone>
- <zone type="America/Jujuy">
- <exemplarCity>Jujuy</exemplarCity>
- </zone>
- <zone type="America/Argentina/Tucuman">
- <exemplarCity>Tucumán</exemplarCity>
- </zone>
- <zone type="America/Cordoba">
- <exemplarCity>Córdoba</exemplarCity>
- </zone>
- <zone type="America/Buenos_Aires">
- <exemplarCity>Buenos Aires</exemplarCity>
- </zone>
- <zone type="Pacific/Pago_Pago">
- <exemplarCity>Pago Pago</exemplarCity>
- </zone>
- <zone type="Europe/Vienna">
- <exemplarCity>Wien</exemplarCity>
- </zone>
- <zone type="Australia/Perth">
- <exemplarCity>Perth</exemplarCity>
- </zone>
- <zone type="Australia/Eucla">
- <exemplarCity>Eucla</exemplarCity>
- </zone>
- <zone type="Australia/Darwin">
- <exemplarCity>Darwin</exemplarCity>
- </zone>
- <zone type="Australia/Adelaide">
- <exemplarCity>Adelaide</exemplarCity>
- </zone>
- <zone type="Australia/Broken_Hill">
- <exemplarCity>Broken Hill</exemplarCity>
- </zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
- <zone type="Australia/Melbourne">
- <exemplarCity>Melbourne</exemplarCity>
- </zone>
- <zone type="Australia/Hobart">
- <exemplarCity>Hobart</exemplarCity>
- </zone>
- <zone type="Australia/Lindeman">
- <exemplarCity>Lindeman</exemplarCity>
- </zone>
- <zone type="Australia/Sydney">
- <exemplarCity>Sydney</exemplarCity>
- </zone>
- <zone type="Australia/Brisbane">
- <exemplarCity>Brisbane</exemplarCity>
- </zone>
- <zone type="Antarctica/Macquarie">
- <exemplarCity>Macquarie</exemplarCity>
- </zone>
- <zone type="Australia/Lord_Howe">
- <exemplarCity>Lord Howe</exemplarCity>
- </zone>
- <zone type="America/Aruba">
- <exemplarCity>Aruba</exemplarCity>
- </zone>
- <zone type="Europe/Mariehamn">
- <exemplarCity>Mariehamn</exemplarCity>
- </zone>
- <zone type="Asia/Baku">
- <exemplarCity>Baku</exemplarCity>
- </zone>
- <zone type="Europe/Sarajevo">
- <exemplarCity>Sarajevo</exemplarCity>
- </zone>
- <zone type="America/Barbados">
- <exemplarCity>Barbados</exemplarCity>
- </zone>
- <zone type="Asia/Dhaka">
- <exemplarCity>Dhaka</exemplarCity>
- </zone>
- <zone type="Europe/Brussels">
- <exemplarCity>Brussel</exemplarCity>
- </zone>
- <zone type="Africa/Ouagadougou">
- <exemplarCity>Ouagadougou</exemplarCity>
- </zone>
- <zone type="Europe/Sofia">
- <exemplarCity>Sofia</exemplarCity>
- </zone>
- <zone type="Asia/Bahrain">
- <exemplarCity>Bahrain</exemplarCity>
- </zone>
- <zone type="Africa/Bujumbura">
- <exemplarCity>Bujumbura</exemplarCity>
- </zone>
- <zone type="Africa/Porto-Novo">
- <exemplarCity>Porto-Novo</exemplarCity>
- </zone>
- <zone type="America/St_Barthelemy">
- <exemplarCity>Saint-Barthélemy</exemplarCity>
- </zone>
- <zone type="Atlantic/Bermuda">
- <exemplarCity>Bermuda</exemplarCity>
- </zone>
- <zone type="Asia/Brunei">
- <exemplarCity>Brunei</exemplarCity>
- </zone>
- <zone type="America/La_Paz">
- <exemplarCity>La Paz</exemplarCity>
- </zone>
- <zone type="America/Kralendijk">
- <exemplarCity>Kralendijk</exemplarCity>
- </zone>
- <zone type="America/Eirunepe">
- <exemplarCity>Eirunepe</exemplarCity>
- </zone>
- <zone type="America/Rio_Branco">
- <exemplarCity>Rio Branco</exemplarCity>
- </zone>
- <zone type="America/Porto_Velho">
- <exemplarCity>Porto Velho</exemplarCity>
- </zone>
- <zone type="America/Boa_Vista">
- <exemplarCity>Boa Vista</exemplarCity>
- </zone>
- <zone type="America/Manaus">
- <exemplarCity>Manaus</exemplarCity>
- </zone>
- <zone type="America/Cuiaba">
- <exemplarCity>Cuiabá</exemplarCity>
- </zone>
- <zone type="America/Santarem">
- <exemplarCity>Santarém</exemplarCity>
- </zone>
- <zone type="America/Campo_Grande">
- <exemplarCity>Campo Grande</exemplarCity>
- </zone>
- <zone type="America/Belem">
- <exemplarCity>Belém</exemplarCity>
- </zone>
- <zone type="America/Araguaina">
- <exemplarCity>Araguaína</exemplarCity>
- </zone>
- <zone type="America/Sao_Paulo">
- <exemplarCity>São Paulo</exemplarCity>
- </zone>
- <zone type="America/Bahia">
- <exemplarCity>Bahia</exemplarCity>
- </zone>
- <zone type="America/Fortaleza">
- <exemplarCity>Fortaleza</exemplarCity>
- </zone>
- <zone type="America/Maceio">
- <exemplarCity>Maceió</exemplarCity>
- </zone>
- <zone type="America/Recife">
- <exemplarCity>Recife</exemplarCity>
- </zone>
- <zone type="America/Noronha">
- <exemplarCity>Noronha</exemplarCity>
- </zone>
- <zone type="America/Nassau">
- <exemplarCity>Nassau</exemplarCity>
- </zone>
- <zone type="Asia/Thimphu">
- <exemplarCity>Thimpu</exemplarCity>
- </zone>
- <zone type="Africa/Gaborone">
- <exemplarCity>Gaborone</exemplarCity>
- </zone>
- <zone type="Europe/Minsk">
- <exemplarCity>Minsk</exemplarCity>
- </zone>
- <zone type="America/Belize">
- <exemplarCity>Belize</exemplarCity>
- </zone>
- <zone type="America/Dawson">
- <exemplarCity>Dawson</exemplarCity>
- </zone>
- <zone type="America/Whitehorse">
- <exemplarCity>Whitehorse</exemplarCity>
- </zone>
- <zone type="America/Inuvik">
- <exemplarCity>Inuvik</exemplarCity>
- </zone>
- <zone type="America/Vancouver">
- <exemplarCity>Vancouver</exemplarCity>
- </zone>
- <zone type="America/Fort_Nelson">
- <exemplarCity>Fort Nelson</exemplarCity>
- </zone>
- <zone type="America/Dawson_Creek">
- <exemplarCity>Dawson Creek</exemplarCity>
- </zone>
- <zone type="America/Creston">
- <exemplarCity>Creston</exemplarCity>
- </zone>
- <zone type="America/Yellowknife">
- <exemplarCity>Yellowknife</exemplarCity>
- </zone>
- <zone type="America/Edmonton">
- <exemplarCity>Edmonton</exemplarCity>
- </zone>
- <zone type="America/Swift_Current">
- <exemplarCity>Swift Current</exemplarCity>
- </zone>
- <zone type="America/Cambridge_Bay">
- <exemplarCity>Cambridge Bay</exemplarCity>
- </zone>
- <zone type="America/Regina">
- <exemplarCity>Regina</exemplarCity>
- </zone>
- <zone type="America/Winnipeg">
- <exemplarCity>Winnipeg</exemplarCity>
- </zone>
- <zone type="America/Resolute">
- <exemplarCity>Resolute</exemplarCity>
- </zone>
- <zone type="America/Rainy_River">
- <exemplarCity>Rainy River</exemplarCity>
- </zone>
- <zone type="America/Rankin_Inlet">
- <exemplarCity>Rankin Inlet</exemplarCity>
- </zone>
- <zone type="America/Coral_Harbour">
- <exemplarCity>Atikokan</exemplarCity>
- </zone>
- <zone type="America/Thunder_Bay">
- <exemplarCity>Thunder Bay</exemplarCity>
- </zone>
- <zone type="America/Nipigon">
- <exemplarCity>Nipigon</exemplarCity>
- </zone>
- <zone type="America/Toronto">
- <exemplarCity>Toronto</exemplarCity>
- </zone>
- <zone type="America/Iqaluit">
- <exemplarCity>Iqaluit</exemplarCity>
- </zone>
- <zone type="America/Pangnirtung">
- <exemplarCity>Pangnirtung</exemplarCity>
- </zone>
- <zone type="America/Moncton">
- <exemplarCity>Moncton</exemplarCity>
- </zone>
- <zone type="America/Halifax">
- <exemplarCity>Halifax</exemplarCity>
- </zone>
- <zone type="America/Goose_Bay">
- <exemplarCity>Goose Bay</exemplarCity>
- </zone>
- <zone type="America/Glace_Bay">
- <exemplarCity>Glace Bay</exemplarCity>
- </zone>
- <zone type="America/Blanc-Sablon">
- <exemplarCity>Blanc-Sablon</exemplarCity>
- </zone>
- <zone type="America/St_Johns">
- <exemplarCity>St. John’s</exemplarCity>
- </zone>
- <zone type="Indian/Cocos">
- <exemplarCity>Kokosøyene</exemplarCity>
- </zone>
- <zone type="Africa/Kinshasa">
- <exemplarCity>Kinshasa</exemplarCity>
- </zone>
- <zone type="Africa/Lubumbashi">
- <exemplarCity>Lubumbashi</exemplarCity>
- </zone>
- <zone type="Africa/Bangui">
- <exemplarCity>Bangui</exemplarCity>
- </zone>
- <zone type="Africa/Brazzaville">
- <exemplarCity>Brazzaville</exemplarCity>
- </zone>
- <zone type="Europe/Zurich">
- <exemplarCity>Zürich</exemplarCity>
- </zone>
- <zone type="Africa/Abidjan">
- <exemplarCity>Abidjan</exemplarCity>
- </zone>
- <zone type="Pacific/Rarotonga">
- <exemplarCity>Rarotonga</exemplarCity>
- </zone>
- <zone type="Pacific/Easter">
- <exemplarCity>Påskeøya</exemplarCity>
- </zone>
- <zone type="America/Punta_Arenas">
- <exemplarCity>Punta Arenas</exemplarCity>
- </zone>
- <zone type="America/Santiago">
- <exemplarCity>Santiago</exemplarCity>
- </zone>
- <zone type="Africa/Douala">
- <exemplarCity>Douala</exemplarCity>
- </zone>
- <zone type="Asia/Urumqi">
- <exemplarCity>Ürümqi</exemplarCity>
- </zone>
- <zone type="Asia/Shanghai">
- <exemplarCity>Shanghai</exemplarCity>
- </zone>
- <zone type="America/Bogota">
- <exemplarCity>Bogotá</exemplarCity>
- </zone>
- <zone type="America/Costa_Rica">
- <exemplarCity>Costa Rica</exemplarCity>
- </zone>
- <zone type="America/Havana">
- <exemplarCity>Havana</exemplarCity>
- </zone>
- <zone type="Atlantic/Cape_Verde">
- <exemplarCity>Kapp Verde</exemplarCity>
- </zone>
- <zone type="America/Curacao">
- <exemplarCity>Curaçao</exemplarCity>
- </zone>
- <zone type="Indian/Christmas">
- <exemplarCity>Christmasøya</exemplarCity>
- </zone>
- <zone type="Asia/Nicosia">
- <exemplarCity>Nikosia</exemplarCity>
- </zone>
- <zone type="Asia/Famagusta">
- <exemplarCity>Famagusta</exemplarCity>
- </zone>
- <zone type="Europe/Prague">
- <exemplarCity>Praha</exemplarCity>
- </zone>
- <zone type="Europe/Busingen">
- <exemplarCity>Büsingen</exemplarCity>
- </zone>
- <zone type="Europe/Berlin">
- <exemplarCity>Berlin</exemplarCity>
- </zone>
- <zone type="Africa/Djibouti">
- <exemplarCity>Djibouti</exemplarCity>
- </zone>
- <zone type="Europe/Copenhagen">
- <exemplarCity>København</exemplarCity>
- </zone>
- <zone type="America/Dominica">
- <exemplarCity>Dominica</exemplarCity>
- </zone>
- <zone type="America/Santo_Domingo">
- <exemplarCity>Santo Domingo</exemplarCity>
- </zone>
- <zone type="Africa/Algiers">
- <exemplarCity>Alger</exemplarCity>
- </zone>
- <zone type="Pacific/Galapagos">
- <exemplarCity>Galápagosøyene</exemplarCity>
- </zone>
- <zone type="America/Guayaquil">
- <exemplarCity>Guayaquil</exemplarCity>
- </zone>
- <zone type="Europe/Tallinn">
- <exemplarCity>Tallinn</exemplarCity>
- </zone>
- <zone type="Africa/Cairo">
- <exemplarCity>Kairo</exemplarCity>
- </zone>
- <zone type="Africa/El_Aaiun">
- <exemplarCity>El Aaiún</exemplarCity>
- </zone>
- <zone type="Africa/Asmera">
- <exemplarCity>Asmara</exemplarCity>
- </zone>
- <zone type="Atlantic/Canary">
- <exemplarCity>Kanariøyene</exemplarCity>
- </zone>
- <zone type="Africa/Ceuta">
- <exemplarCity>Ceuta</exemplarCity>
- </zone>
- <zone type="Europe/Madrid">
- <exemplarCity>Madrid</exemplarCity>
- </zone>
- <zone type="Africa/Addis_Ababa">
- <exemplarCity>Addis Abeba</exemplarCity>
- </zone>
- <zone type="Europe/Helsinki">
- <exemplarCity>Helsingfors</exemplarCity>
- </zone>
- <zone type="Pacific/Fiji">
- <exemplarCity>Fiji</exemplarCity>
- </zone>
- <zone type="Atlantic/Stanley">
- <exemplarCity>Stanley</exemplarCity>
- </zone>
- <zone type="Pacific/Truk">
- <exemplarCity>Chuuk</exemplarCity>
- </zone>
- <zone type="Pacific/Ponape">
- <exemplarCity>Pohnpei</exemplarCity>
- </zone>
- <zone type="Pacific/Kosrae">
- <exemplarCity>Kosrae</exemplarCity>
- </zone>
- <zone type="Atlantic/Faeroe">
- <exemplarCity>Færøyene</exemplarCity>
- </zone>
- <zone type="Europe/Paris">
- <exemplarCity>Paris</exemplarCity>
- </zone>
- <zone type="Africa/Libreville">
- <exemplarCity>Libreville</exemplarCity>
- </zone>
- <zone type="Europe/London">
- <long>
- <daylight>britisk sommertid</daylight>
- </long>
- <exemplarCity>London</exemplarCity>
- </zone>
- <zone type="America/Grenada">
- <exemplarCity>Grenada</exemplarCity>
- </zone>
- <zone type="Asia/Tbilisi">
- <exemplarCity>Tbilisi</exemplarCity>
- </zone>
- <zone type="America/Cayenne">
- <exemplarCity>Cayenne</exemplarCity>
- </zone>
- <zone type="Europe/Guernsey">
- <exemplarCity>Guernsey</exemplarCity>
- </zone>
- <zone type="Africa/Accra">
- <exemplarCity>Accra</exemplarCity>
- </zone>
- <zone type="Europe/Gibraltar">
- <exemplarCity>Gibraltar</exemplarCity>
- </zone>
- <zone type="America/Thule">
- <exemplarCity>Thule</exemplarCity>
- </zone>
- <zone type="America/Godthab">
- <exemplarCity>Nuuk</exemplarCity>
- </zone>
- <zone type="America/Scoresbysund">
- <exemplarCity>Ittoqqortoormiit</exemplarCity>
- </zone>
- <zone type="America/Danmarkshavn">
- <exemplarCity>Danmarkshavn</exemplarCity>
- </zone>
- <zone type="Africa/Banjul">
- <exemplarCity>Banjul</exemplarCity>
- </zone>
- <zone type="Africa/Conakry">
- <exemplarCity>Conakry</exemplarCity>
- </zone>
- <zone type="America/Guadeloupe">
- <exemplarCity>Guadeloupe</exemplarCity>
- </zone>
- <zone type="Africa/Malabo">
- <exemplarCity>Malabo</exemplarCity>
- </zone>
- <zone type="Europe/Athens">
- <exemplarCity>Athen</exemplarCity>
- </zone>
- <zone type="Atlantic/South_Georgia">
- <exemplarCity>Sør-Georgia</exemplarCity>
- </zone>
- <zone type="America/Guatemala">
- <exemplarCity>Guatemala</exemplarCity>
- </zone>
- <zone type="Pacific/Guam">
- <exemplarCity>Guam</exemplarCity>
- </zone>
- <zone type="Africa/Bissau">
- <exemplarCity>Bissau</exemplarCity>
- </zone>
- <zone type="America/Guyana">
- <exemplarCity>Guyana</exemplarCity>
- </zone>
- <zone type="Asia/Hong_Kong">
- <exemplarCity>Hongkong</exemplarCity>
- </zone>
- <zone type="America/Tegucigalpa">
- <exemplarCity>Tegucigalpa</exemplarCity>
- </zone>
- <zone type="Europe/Zagreb">
- <exemplarCity>Zagreb</exemplarCity>
- </zone>
- <zone type="America/Port-au-Prince">
- <exemplarCity>Port-au-Prince</exemplarCity>
- </zone>
- <zone type="Europe/Budapest">
- <exemplarCity>Budapest</exemplarCity>
- </zone>
- <zone type="Asia/Jakarta">
- <exemplarCity>Jakarta</exemplarCity>
- </zone>
- <zone type="Asia/Pontianak">
- <exemplarCity>Pontianak</exemplarCity>
- </zone>
- <zone type="Asia/Makassar">
- <exemplarCity>Makassar</exemplarCity>
- </zone>
- <zone type="Asia/Jayapura">
- <exemplarCity>Jajapura</exemplarCity>
- </zone>
- <zone type="Europe/Dublin">
- <long>
- <daylight>irsk sommertid</daylight>
- </long>
- <exemplarCity>Dublin</exemplarCity>
- </zone>
- <zone type="Asia/Jerusalem">
- <exemplarCity>Jerusalem</exemplarCity>
- </zone>
- <zone type="Europe/Isle_of_Man">
- <exemplarCity>Man</exemplarCity>
- </zone>
- <zone type="Asia/Calcutta">
- <exemplarCity>Kolkata</exemplarCity>
- </zone>
- <zone type="Indian/Chagos">
- <exemplarCity>Chagos</exemplarCity>
- </zone>
- <zone type="Asia/Baghdad">
- <exemplarCity>Bagdad</exemplarCity>
- </zone>
- <zone type="Asia/Tehran">
- <exemplarCity>Teheran</exemplarCity>
- </zone>
- <zone type="Atlantic/Reykjavik">
- <exemplarCity>Reykjavík</exemplarCity>
- </zone>
- <zone type="Europe/Rome">
- <exemplarCity>Roma</exemplarCity>
- </zone>
- <zone type="Europe/Jersey">
- <exemplarCity>Jersey</exemplarCity>
- </zone>
- <zone type="America/Jamaica">
- <exemplarCity>Jamaica</exemplarCity>
- </zone>
- <zone type="Asia/Amman">
- <exemplarCity>Amman</exemplarCity>
- </zone>
- <zone type="Asia/Tokyo">
- <exemplarCity>Tokyo</exemplarCity>
- </zone>
- <zone type="Africa/Nairobi">
- <exemplarCity>Nairobi</exemplarCity>
- </zone>
- <zone type="Asia/Bishkek">
- <exemplarCity>Bisjkek</exemplarCity>
- </zone>
- <zone type="Asia/Phnom_Penh">
- <exemplarCity>Phnom Penh</exemplarCity>
- </zone>
- <zone type="Pacific/Enderbury">
- <exemplarCity>Enderbury</exemplarCity>
- </zone>
- <zone type="Pacific/Kiritimati">
- <exemplarCity>Kiritimati</exemplarCity>
- </zone>
- <zone type="Pacific/Tarawa">
- <exemplarCity>Tarawa</exemplarCity>
- </zone>
- <zone type="Indian/Comoro">
- <exemplarCity>Komorene</exemplarCity>
- </zone>
- <zone type="America/St_Kitts">
- <exemplarCity>St. Kitts</exemplarCity>
- </zone>
- <zone type="Asia/Pyongyang">
- <exemplarCity>Pyongyang</exemplarCity>
- </zone>
- <zone type="Asia/Seoul">
- <exemplarCity>Seoul</exemplarCity>
- </zone>
- <zone type="Asia/Kuwait">
- <exemplarCity>Kuwait</exemplarCity>
- </zone>
- <zone type="America/Cayman">
- <exemplarCity>Caymanøyene</exemplarCity>
- </zone>
- <zone type="Asia/Aqtau">
- <exemplarCity>Aktau</exemplarCity>
- </zone>
- <zone type="Asia/Oral">
- <exemplarCity>Oral</exemplarCity>
- </zone>
- <zone type="Asia/Atyrau">
- <exemplarCity>Atyrau</exemplarCity>
- </zone>
- <zone type="Asia/Aqtobe">
- <exemplarCity>Aqtöbe</exemplarCity>
- </zone>
- <zone type="Asia/Qostanay">
- <exemplarCity>Kostanaj</exemplarCity>
- </zone>
- <zone type="Asia/Qyzylorda">
- <exemplarCity>Kyzylorda</exemplarCity>
- </zone>
- <zone type="Asia/Almaty">
- <exemplarCity>Almaty</exemplarCity>
- </zone>
- <zone type="Asia/Vientiane">
- <exemplarCity>Vientiane</exemplarCity>
- </zone>
- <zone type="Asia/Beirut">
- <exemplarCity>Beirut</exemplarCity>
- </zone>
- <zone type="America/St_Lucia">
- <exemplarCity>St. Lucia</exemplarCity>
- </zone>
- <zone type="Europe/Vaduz">
- <exemplarCity>Vaduz</exemplarCity>
- </zone>
- <zone type="Asia/Colombo">
- <exemplarCity>Colombo</exemplarCity>
- </zone>
- <zone type="Africa/Monrovia">
- <exemplarCity>Monrovia</exemplarCity>
- </zone>
- <zone type="Africa/Maseru">
- <exemplarCity>Maseru</exemplarCity>
- </zone>
- <zone type="Europe/Vilnius">
- <exemplarCity>Vilnius</exemplarCity>
- </zone>
- <zone type="Europe/Luxembourg">
- <exemplarCity>Luxemburg</exemplarCity>
- </zone>
- <zone type="Europe/Riga">
- <exemplarCity>Riga</exemplarCity>
- </zone>
- <zone type="Africa/Tripoli">
- <exemplarCity>Tripoli</exemplarCity>
- </zone>
- <zone type="Africa/Casablanca">
- <exemplarCity>Casablanca</exemplarCity>
- </zone>
- <zone type="Europe/Monaco">
- <exemplarCity>Monaco</exemplarCity>
- </zone>
- <zone type="Europe/Chisinau">
- <exemplarCity>Chișinău</exemplarCity>
- </zone>
- <zone type="Europe/Podgorica">
- <exemplarCity>Podgorica</exemplarCity>
- </zone>
- <zone type="America/Marigot">
- <exemplarCity>Marigot</exemplarCity>
- </zone>
- <zone type="Indian/Antananarivo">
- <exemplarCity>Antananarivo</exemplarCity>
- </zone>
- <zone type="Pacific/Kwajalein">
- <exemplarCity>Kwajalein</exemplarCity>
- </zone>
- <zone type="Pacific/Majuro">
- <exemplarCity>Majuro</exemplarCity>
- </zone>
- <zone type="Europe/Skopje">
- <exemplarCity>Skopje</exemplarCity>
- </zone>
- <zone type="Africa/Bamako">
- <exemplarCity>Bamako</exemplarCity>
- </zone>
- <zone type="Asia/Rangoon">
- <exemplarCity>Yangon</exemplarCity>
- </zone>
- <zone type="Asia/Hovd">
- <exemplarCity>Hovd</exemplarCity>
- </zone>
- <zone type="Asia/Ulaanbaatar">
- <exemplarCity>Ulan Bator</exemplarCity>
- </zone>
- <zone type="Asia/Choibalsan">
- <exemplarCity>Choybalsan</exemplarCity>
- </zone>
- <zone type="Asia/Macau">
- <exemplarCity>Macao</exemplarCity>
- </zone>
- <zone type="Pacific/Saipan">
- <exemplarCity>Saipan</exemplarCity>
- </zone>
- <zone type="America/Martinique">
- <exemplarCity>Martinique</exemplarCity>
- </zone>
- <zone type="Africa/Nouakchott">
- <exemplarCity>Nouakchott</exemplarCity>
- </zone>
- <zone type="America/Montserrat">
- <exemplarCity>Montserrat</exemplarCity>
- </zone>
- <zone type="Europe/Malta">
- <exemplarCity>Malta</exemplarCity>
- </zone>
- <zone type="Indian/Mauritius">
- <exemplarCity>Mauritius</exemplarCity>
- </zone>
- <zone type="Indian/Maldives">
- <exemplarCity>Maldivene</exemplarCity>
- </zone>
- <zone type="Africa/Blantyre">
- <exemplarCity>Blantyre</exemplarCity>
- </zone>
- <zone type="America/Tijuana">
- <exemplarCity>Tijuana</exemplarCity>
- </zone>
- <zone type="America/Hermosillo">
- <exemplarCity>Hermosillo</exemplarCity>
- </zone>
- <zone type="America/Mazatlan">
- <exemplarCity>Mazatlan</exemplarCity>
- </zone>
- <zone type="America/Chihuahua">
- <exemplarCity>Chihuahua</exemplarCity>
- </zone>
- <zone type="America/Bahia_Banderas">
- <exemplarCity>Bahía Banderas</exemplarCity>
- </zone>
- <zone type="America/Ojinaga">
- <exemplarCity>Ojinaga</exemplarCity>
- </zone>
- <zone type="America/Monterrey">
- <exemplarCity>Monterrey</exemplarCity>
- </zone>
- <zone type="America/Mexico_City">
- <exemplarCity>Mexico by</exemplarCity>
- </zone>
- <zone type="America/Matamoros">
- <exemplarCity>Matamoros</exemplarCity>
- </zone>
- <zone type="America/Merida">
- <exemplarCity>Mérida</exemplarCity>
- </zone>
- <zone type="America/Cancun">
- <exemplarCity>Cancún</exemplarCity>
- </zone>
- <zone type="Asia/Kuala_Lumpur">
- <exemplarCity>Kuala Lumpur</exemplarCity>
- </zone>
- <zone type="Asia/Kuching">
- <exemplarCity>Kuching</exemplarCity>
- </zone>
- <zone type="Africa/Maputo">
- <exemplarCity>Maputo</exemplarCity>
- </zone>
- <zone type="Africa/Windhoek">
- <exemplarCity>Windhoek</exemplarCity>
- </zone>
- <zone type="Pacific/Noumea">
- <exemplarCity>Nouméa</exemplarCity>
- </zone>
- <zone type="Africa/Niamey">
- <exemplarCity>Niamey</exemplarCity>
- </zone>
- <zone type="Pacific/Norfolk">
- <exemplarCity>Norfolkøya</exemplarCity>
- </zone>
- <zone type="Africa/Lagos">
- <exemplarCity>Lagos</exemplarCity>
- </zone>
- <zone type="America/Managua">
- <exemplarCity>Managua</exemplarCity>
- </zone>
- <zone type="Europe/Amsterdam">
- <exemplarCity>Amsterdam</exemplarCity>
- </zone>
- <zone type="Europe/Oslo">
- <exemplarCity>Oslo</exemplarCity>
- </zone>
- <zone type="Asia/Katmandu">
- <exemplarCity>Katmandu</exemplarCity>
- </zone>
- <zone type="Pacific/Nauru">
- <exemplarCity>Nauru</exemplarCity>
- </zone>
- <zone type="Pacific/Niue">
- <exemplarCity>Niue</exemplarCity>
- </zone>
- <zone type="Pacific/Chatham">
- <exemplarCity>Chatham</exemplarCity>
- </zone>
- <zone type="Pacific/Auckland">
- <exemplarCity>Auckland</exemplarCity>
- </zone>
- <zone type="Asia/Muscat">
- <exemplarCity>Muskat</exemplarCity>
- </zone>
- <zone type="America/Panama">
- <exemplarCity>Panama</exemplarCity>
- </zone>
- <zone type="America/Lima">
- <exemplarCity>Lima</exemplarCity>
- </zone>
- <zone type="Pacific/Tahiti">
- <exemplarCity>Tahiti</exemplarCity>
- </zone>
- <zone type="Pacific/Marquesas">
- <exemplarCity>Marquesas</exemplarCity>
- </zone>
- <zone type="Pacific/Gambier">
- <exemplarCity>Gambier</exemplarCity>
- </zone>
- <zone type="Pacific/Port_Moresby">
- <exemplarCity>Port Moresby</exemplarCity>
- </zone>
- <zone type="Pacific/Bougainville">
- <exemplarCity>Bougainville</exemplarCity>
- </zone>
- <zone type="Asia/Manila">
- <exemplarCity>Manila</exemplarCity>
- </zone>
- <zone type="Asia/Karachi">
- <exemplarCity>Karachi</exemplarCity>
- </zone>
- <zone type="Europe/Warsaw">
- <exemplarCity>Warszawa</exemplarCity>
- </zone>
- <zone type="America/Miquelon">
- <exemplarCity>Miquelon</exemplarCity>
- </zone>
- <zone type="Pacific/Pitcairn">
- <exemplarCity>Pitcairn</exemplarCity>
- </zone>
- <zone type="America/Puerto_Rico">
- <exemplarCity>Puerto Rico</exemplarCity>
- </zone>
- <zone type="Asia/Gaza">
- <exemplarCity>Gaza</exemplarCity>
- </zone>
- <zone type="Asia/Hebron">
- <exemplarCity>Hebron</exemplarCity>
- </zone>
- <zone type="Atlantic/Azores">
- <exemplarCity>Asorene</exemplarCity>
- </zone>
- <zone type="Atlantic/Madeira">
- <exemplarCity>Madeira</exemplarCity>
- </zone>
- <zone type="Europe/Lisbon">
- <exemplarCity>Lisboa</exemplarCity>
- </zone>
- <zone type="Pacific/Palau">
- <exemplarCity>Palau</exemplarCity>
- </zone>
- <zone type="America/Asuncion">
- <exemplarCity>Asunción</exemplarCity>
- </zone>
- <zone type="Asia/Qatar">
- <exemplarCity>Qatar</exemplarCity>
- </zone>
- <zone type="Indian/Reunion">
- <exemplarCity>Réunion</exemplarCity>
- </zone>
- <zone type="Europe/Bucharest">
- <exemplarCity>București</exemplarCity>
- </zone>
- <zone type="Europe/Belgrade">
- <exemplarCity>Beograd</exemplarCity>
- </zone>
- <zone type="Europe/Kaliningrad">
- <exemplarCity>Kaliningrad</exemplarCity>
- </zone>
- <zone type="Europe/Moscow">
- <exemplarCity>Moskva</exemplarCity>
- </zone>
- <zone type="Europe/Volgograd">
- <exemplarCity>Volgograd</exemplarCity>
- </zone>
- <zone type="Europe/Saratov">
- <exemplarCity>Saratov</exemplarCity>
- </zone>
- <zone type="Europe/Astrakhan">
- <exemplarCity>Astrakhan</exemplarCity>
- </zone>
- <zone type="Europe/Ulyanovsk">
- <exemplarCity>Uljanovsk</exemplarCity>
- </zone>
- <zone type="Europe/Kirov">
- <exemplarCity>Kirov</exemplarCity>
- </zone>
- <zone type="Europe/Samara">
- <exemplarCity>Samara</exemplarCity>
- </zone>
- <zone type="Asia/Yekaterinburg">
- <exemplarCity>Jekaterinburg</exemplarCity>
- </zone>
- <zone type="Asia/Omsk">
- <exemplarCity>Omsk</exemplarCity>
- </zone>
- <zone type="Asia/Novosibirsk">
- <exemplarCity>Novosibirsk</exemplarCity>
- </zone>
- <zone type="Asia/Barnaul">
- <exemplarCity>Barnaul</exemplarCity>
- </zone>
- <zone type="Asia/Tomsk">
- <exemplarCity>Tomsk</exemplarCity>
- </zone>
- <zone type="Asia/Novokuznetsk">
- <exemplarCity>Novokuznetsk</exemplarCity>
- </zone>
- <zone type="Asia/Krasnoyarsk">
- <exemplarCity>Krasnojarsk</exemplarCity>
- </zone>
- <zone type="Asia/Irkutsk">
- <exemplarCity>Irkutsk</exemplarCity>
- </zone>
- <zone type="Asia/Chita">
- <exemplarCity>Tsjita</exemplarCity>
- </zone>
- <zone type="Asia/Yakutsk">
- <exemplarCity>Jakutsk</exemplarCity>
- </zone>
- <zone type="Asia/Vladivostok">
- <exemplarCity>Vladivostok</exemplarCity>
- </zone>
- <zone type="Asia/Khandyga">
- <exemplarCity>Khandyga</exemplarCity>
- </zone>
- <zone type="Asia/Sakhalin">
- <exemplarCity>Sakhalin</exemplarCity>
- </zone>
- <zone type="Asia/Ust-Nera">
- <exemplarCity>Ust-Nera</exemplarCity>
- </zone>
- <zone type="Asia/Magadan">
- <exemplarCity>Magadan</exemplarCity>
- </zone>
- <zone type="Asia/Srednekolymsk">
- <exemplarCity>Srednekolymsk</exemplarCity>
- </zone>
- <zone type="Asia/Kamchatka">
- <exemplarCity>Kamtsjatka</exemplarCity>
- </zone>
- <zone type="Asia/Anadyr">
- <exemplarCity>Anadyr</exemplarCity>
- </zone>
- <zone type="Africa/Kigali">
- <exemplarCity>Kigali</exemplarCity>
- </zone>
- <zone type="Asia/Riyadh">
- <exemplarCity>Riyadh</exemplarCity>
- </zone>
- <zone type="Pacific/Guadalcanal">
- <exemplarCity>Guadalcanal</exemplarCity>
- </zone>
- <zone type="Indian/Mahe">
- <exemplarCity>Mahé</exemplarCity>
- </zone>
- <zone type="Africa/Khartoum">
- <exemplarCity>Khartoum</exemplarCity>
- </zone>
- <zone type="Europe/Stockholm">
- <exemplarCity>Stockholm</exemplarCity>
- </zone>
- <zone type="Asia/Singapore">
- <exemplarCity>Singapore</exemplarCity>
- </zone>
- <zone type="Atlantic/St_Helena">
- <exemplarCity>St. Helena</exemplarCity>
- </zone>
- <zone type="Europe/Ljubljana">
- <exemplarCity>Ljubljana</exemplarCity>
- </zone>
- <zone type="Arctic/Longyearbyen">
- <exemplarCity>Longyearbyen</exemplarCity>
- </zone>
- <zone type="Europe/Bratislava">
- <exemplarCity>Bratislava</exemplarCity>
- </zone>
- <zone type="Africa/Freetown">
- <exemplarCity>Freetown</exemplarCity>
- </zone>
- <zone type="Europe/San_Marino">
- <exemplarCity>San Marino</exemplarCity>
- </zone>
- <zone type="Africa/Dakar">
- <exemplarCity>Dakar</exemplarCity>
- </zone>
- <zone type="Africa/Mogadishu">
- <exemplarCity>Mogadishu</exemplarCity>
- </zone>
- <zone type="America/Paramaribo">
- <exemplarCity>Paramaribo</exemplarCity>
- </zone>
- <zone type="Africa/Juba">
- <exemplarCity>Juba</exemplarCity>
- </zone>
- <zone type="Africa/Sao_Tome">
- <exemplarCity>São Tomé</exemplarCity>
- </zone>
- <zone type="America/El_Salvador">
- <exemplarCity>El Salvador</exemplarCity>
- </zone>
- <zone type="America/Lower_Princes">
- <exemplarCity>Lower Prince’s Quarter</exemplarCity>
- </zone>
- <zone type="Asia/Damascus">
- <exemplarCity>Damaskus</exemplarCity>
- </zone>
- <zone type="Africa/Mbabane">
- <exemplarCity>Mbabane</exemplarCity>
- </zone>
- <zone type="America/Grand_Turk">
- <exemplarCity>Grand Turk</exemplarCity>
- </zone>
- <zone type="Africa/Ndjamena">
- <exemplarCity>Ndjamena</exemplarCity>
- </zone>
- <zone type="Indian/Kerguelen">
- <exemplarCity>Kerguelen</exemplarCity>
- </zone>
- <zone type="Africa/Lome">
- <exemplarCity>Lomé</exemplarCity>
- </zone>
- <zone type="Asia/Bangkok">
- <exemplarCity>Bangkok</exemplarCity>
- </zone>
- <zone type="Asia/Dushanbe">
- <exemplarCity>Dusjanbe</exemplarCity>
- </zone>
- <zone type="Pacific/Fakaofo">
- <exemplarCity>Fakaofo</exemplarCity>
- </zone>
- <zone type="Asia/Dili">
- <exemplarCity>Dili</exemplarCity>
- </zone>
- <zone type="Asia/Ashgabat">
- <exemplarCity>Asjkhabad</exemplarCity>
- </zone>
- <zone type="Africa/Tunis">
- <exemplarCity>Tunis</exemplarCity>
- </zone>
- <zone type="Pacific/Tongatapu">
- <exemplarCity>Tongatapu</exemplarCity>
- </zone>
- <zone type="Europe/Istanbul">
- <exemplarCity>Istanbul</exemplarCity>
- </zone>
- <zone type="America/Port_of_Spain">
- <exemplarCity>Port of Spain</exemplarCity>
- </zone>
- <zone type="Pacific/Funafuti">
- <exemplarCity>Funafuti</exemplarCity>
- </zone>
- <zone type="Asia/Taipei">
- <exemplarCity>Taipei</exemplarCity>
- </zone>
- <zone type="Africa/Dar_es_Salaam">
- <exemplarCity>Dar-es-Salaam</exemplarCity>
- </zone>
- <zone type="Europe/Uzhgorod">
- <exemplarCity>Uzjhorod</exemplarCity>
- </zone>
- <zone type="Europe/Kiev">
- <exemplarCity>Kiev</exemplarCity>
- </zone>
- <zone type="Europe/Simferopol">
- <exemplarCity>Simferopol</exemplarCity>
- </zone>
- <zone type="Europe/Zaporozhye">
- <exemplarCity>Zaporizjzja</exemplarCity>
- </zone>
- <zone type="Africa/Kampala">
- <exemplarCity>Kampala</exemplarCity>
- </zone>
- <zone type="Pacific/Midway">
- <exemplarCity>Midway</exemplarCity>
- </zone>
- <zone type="Pacific/Wake">
- <exemplarCity>Wake</exemplarCity>
- </zone>
- <zone type="America/Adak">
- <exemplarCity>Adak</exemplarCity>
- </zone>
- <zone type="America/Nome">
- <exemplarCity>Nome</exemplarCity>
- </zone>
- <zone type="Pacific/Johnston">
- <exemplarCity>Johnston</exemplarCity>
- </zone>
- <zone type="America/Anchorage">
- <exemplarCity>Anchorage</exemplarCity>
- </zone>
- <zone type="America/Yakutat">
- <exemplarCity>Yakutat</exemplarCity>
- </zone>
- <zone type="America/Sitka">
- <exemplarCity>Sitka</exemplarCity>
- </zone>
- <zone type="America/Juneau">
- <exemplarCity>Juneau</exemplarCity>
- </zone>
- <zone type="America/Metlakatla">
- <exemplarCity>Metlakatla</exemplarCity>
- </zone>
- <zone type="America/Los_Angeles">
- <exemplarCity>Los Angeles</exemplarCity>
- </zone>
- <zone type="America/Boise">
- <exemplarCity>Boise</exemplarCity>
- </zone>
- <zone type="America/Phoenix">
- <exemplarCity>Phoenix</exemplarCity>
- </zone>
- <zone type="America/Denver">
- <exemplarCity>Denver</exemplarCity>
- </zone>
- <zone type="America/North_Dakota/Beulah">
- <exemplarCity>Beulah, Nord-Dakota</exemplarCity>
- </zone>
- <zone type="America/North_Dakota/New_Salem">
- <exemplarCity>New Salem, Nord-Dakota</exemplarCity>
- </zone>
- <zone type="America/North_Dakota/Center">
- <exemplarCity>Center, Nord-Dakota</exemplarCity>
- </zone>
- <zone type="America/Chicago">
- <exemplarCity>Chicago</exemplarCity>
- </zone>
- <zone type="America/Menominee">
- <exemplarCity>Menominee</exemplarCity>
- </zone>
- <zone type="America/Indiana/Vincennes">
- <exemplarCity>Vincennes, Indiana</exemplarCity>
- </zone>
- <zone type="America/Indiana/Petersburg">
- <exemplarCity>Petersburg, Indiana</exemplarCity>
- </zone>
- <zone type="America/Indiana/Tell_City">
- <exemplarCity>Tell City, Indiana</exemplarCity>
- </zone>
- <zone type="America/Indiana/Knox">
- <exemplarCity>Knox, Indiana</exemplarCity>
- </zone>
- <zone type="America/Indiana/Winamac">
- <exemplarCity>Winamac, Indiana</exemplarCity>
- </zone>
- <zone type="America/Indiana/Marengo">
- <exemplarCity>Marengo, Indiana</exemplarCity>
- </zone>
- <zone type="America/Indianapolis">
- <exemplarCity>Indianapolis</exemplarCity>
- </zone>
- <zone type="America/Louisville">
- <exemplarCity>Louisville</exemplarCity>
- </zone>
- <zone type="America/Indiana/Vevay">
- <exemplarCity>Vevay, Indiana</exemplarCity>
- </zone>
- <zone type="America/Kentucky/Monticello">
- <exemplarCity>Monticello, Kentucky</exemplarCity>
- </zone>
- <zone type="America/Detroit">
- <exemplarCity>Detroit</exemplarCity>
- </zone>
- <zone type="America/New_York">
- <exemplarCity>New York</exemplarCity>
- </zone>
- <zone type="America/Montevideo">
- <exemplarCity>Montevideo</exemplarCity>
- </zone>
- <zone type="Asia/Samarkand">
- <exemplarCity>Samarkand</exemplarCity>
- </zone>
- <zone type="Asia/Tashkent">
- <exemplarCity>Tasjkent</exemplarCity>
- </zone>
- <zone type="Europe/Vatican">
- <exemplarCity>Vatikanstaten</exemplarCity>
- </zone>
- <zone type="America/St_Vincent">
- <exemplarCity>St. Vincent</exemplarCity>
- </zone>
- <zone type="America/Caracas">
- <exemplarCity>Caracas</exemplarCity>
- </zone>
- <zone type="America/Tortola">
- <exemplarCity>Tortola</exemplarCity>
- </zone>
- <zone type="America/St_Thomas">
- <exemplarCity>St. Thomas</exemplarCity>
- </zone>
- <zone type="Asia/Saigon">
- <exemplarCity>Ho Chi Minh-byen</exemplarCity>
- </zone>
- <zone type="Pacific/Efate">
- <exemplarCity>Efate</exemplarCity>
- </zone>
- <zone type="Pacific/Wallis">
- <exemplarCity>Wallis</exemplarCity>
- </zone>
- <zone type="Pacific/Apia">
- <exemplarCity>Apia</exemplarCity>
- </zone>
- <zone type="Asia/Aden">
- <exemplarCity>Aden</exemplarCity>
- </zone>
- <zone type="Indian/Mayotte">
- <exemplarCity>Mayotte</exemplarCity>
- </zone>
- <zone type="Africa/Johannesburg">
- <exemplarCity>Johannesburg</exemplarCity>
- </zone>
- <zone type="Africa/Lusaka">
- <exemplarCity>Lusaka</exemplarCity>
- </zone>
- <zone type="Africa/Harare">
- <exemplarCity>Harare</exemplarCity>
- </zone>
- <metazone type="Acre">
- <long>
- <generic>Acre-tid</generic>
- <standard>Acre normaltid</standard>
- <daylight>Acre sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Afghanistan">
- <long>
- <standard>afghansk tid</standard>
- </long>
- </metazone>
- <metazone type="Africa_Central">
- <long>
- <standard>sentralafrikansk tid</standard>
- </long>
- </metazone>
- <metazone type="Africa_Eastern">
- <long>
- <standard>østafrikansk tid</standard>
- </long>
- </metazone>
- <metazone type="Africa_Southern">
- <long>
- <standard>sørafrikansk tid</standard>
- </long>
- </metazone>
- <metazone type="Africa_Western">
- <long>
- <generic>vestafrikansk tid</generic>
- <standard>vestafrikansk normaltid</standard>
- <daylight>vestafrikansk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Alaska">
- <long>
- <generic>alaskisk tid</generic>
- <standard>alaskisk normaltid</standard>
- <daylight>alaskisk sommertid</daylight>
- </long>
- <short>
- <generic draft="contributed">AKT</generic>
- <standard draft="contributed">AKST</standard>
- <daylight draft="contributed">AKDT</daylight>
- </short>
- </metazone>
- <metazone type="Almaty">
- <long>
- <generic draft="contributed">Almaty-tid</generic>
- <standard draft="contributed">Almaty, standardtid</standard>
- <daylight draft="contributed">Almaty, sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Amazon">
- <long>
- <generic>tidssone for Amazonas</generic>
- <standard>normaltid for Amazonas</standard>
- <daylight>sommertid for Amazonas</daylight>
- </long>
- </metazone>
- <metazone type="America_Central">
- <long>
- <generic>tidssone for det sentrale Nord-Amerika</generic>
- <standard>normaltid for det sentrale Nord-Amerika</standard>
- <daylight>sommertid for det sentrale Nord-Amerika</daylight>
- </long>
- <short>
- <generic draft="contributed">CT</generic>
- <standard draft="contributed">CST</standard>
- <daylight draft="contributed">CDT</daylight>
- </short>
- </metazone>
- <metazone type="America_Eastern">
- <long>
- <generic>tidssone for den nordamerikanske østkysten</generic>
- <standard>normaltid for den nordamerikanske østkysten</standard>
- <daylight>sommertid for den nordamerikanske østkysten</daylight>
- </long>
- <short>
- <generic draft="contributed">ET</generic>
- <standard draft="contributed">EST</standard>
- <daylight draft="contributed">EDT</daylight>
- </short>
- </metazone>
- <metazone type="America_Mountain">
- <long>
- <generic>tidssone for Rocky Mountains (USA)</generic>
- <standard>normaltid for Rocky Mountains (USA)</standard>
- <daylight>sommertid for Rocky Mountains (USA)</daylight>
- </long>
- <short>
- <generic draft="contributed">MT</generic>
- <standard draft="contributed">MST</standard>
- <daylight draft="contributed">MDT</daylight>
- </short>
- </metazone>
- <metazone type="America_Pacific">
- <long>
- <generic>tidssone for den nordamerikanske Stillehavskysten</generic>
- <standard>normaltid for den nordamerikanske Stillehavskysten</standard>
- <daylight>sommertid for den nordamerikanske Stillehavskysten</daylight>
- </long>
- <short>
- <generic draft="contributed">PT</generic>
- <standard draft="contributed">PST</standard>
- <daylight draft="contributed">PDT</daylight>
- </short>
- </metazone>
- <metazone type="Anadyr">
- <long>
- <generic draft="contributed">Russisk (Anadyr) tid</generic>
- <standard draft="contributed">Russisk (Anadyr) normaltid</standard>
- <daylight draft="contributed">Russisk (Anadyr) sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Apia">
- <long>
- <generic>tidssone for Apia</generic>
- <standard>normaltid for Apia</standard>
- <daylight>sommertid for Apia</daylight>
- </long>
- </metazone>
- <metazone type="Aqtau">
- <long>
- <generic draft="contributed">Aqtau-tid</generic>
- <standard draft="contributed">Aqtau, standardtid</standard>
- <daylight draft="contributed">Aqtau, sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Aqtobe">
- <long>
- <generic draft="contributed">Aqtobe-tid</generic>
- <standard draft="contributed">Aqtobe, standardtid</standard>
- <daylight draft="contributed">Aqtobe, sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Arabian">
- <long>
- <generic>arabisk tid</generic>
- <standard>arabisk standardtid</standard>
- <daylight>arabisk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Argentina">
- <long>
- <generic>argentinsk tid</generic>
- <standard>argentinsk normaltid</standard>
- <daylight>argentinsk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Argentina_Western">
- <long>
- <generic>vestargentinsk tid</generic>
- <standard>vestargentinsk normaltid</standard>
- <daylight>vestargentinsk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Armenia">
- <long>
- <generic>armensk tid</generic>
- <standard>armensk normaltid</standard>
- <daylight>armensk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Atlantic">
- <long>
- <generic>tidssone for den nordamerikanske atlanterhavskysten</generic>
- <standard>normaltid for den nordamerikanske atlanterhavskysten</standard>
- <daylight>sommertid for den nordamerikanske atlanterhavskysten</daylight>
- </long>
- <short>
- <generic draft="contributed">AT</generic>
- <standard draft="contributed">AST</standard>
- <daylight draft="contributed">ADT</daylight>
- </short>
- </metazone>
- <metazone type="Australia_Central">
- <long>
- <generic>sentralaustralsk tid</generic>
- <standard>sentralaustralsk normaltid</standard>
- <daylight>sentralaustralsk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Australia_CentralWestern">
- <long>
- <generic>vest-sentralaustralsk tid</generic>
- <standard>vest-sentralaustralsk normaltid</standard>
- <daylight>vest-sentralaustralsk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Australia_Eastern">
- <long>
- <generic>østaustralsk tid</generic>
- <standard>østaustralsk normaltid</standard>
- <daylight>østaustralsk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Australia_Western">
- <long>
- <generic>vestaustralsk tid</generic>
- <standard>vestaustralsk normaltid</standard>
- <daylight>vestaustralsk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Azerbaijan">
- <long>
- <generic>aserbajdsjansk tid</generic>
- <standard>aserbajdsjansk normaltid</standard>
- <daylight>aserbajdsjansk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Azores">
- <long>
- <generic>asorisk tid</generic>
- <standard>asorisk normaltid</standard>
- <daylight>asorisk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Bangladesh">
- <long>
- <generic>bangladeshisk tid</generic>
- <standard>bangladeshisk normaltid</standard>
- <daylight>bangladeshisk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Bhutan">
- <long>
- <standard>bhutansk tid</standard>
- </long>
- </metazone>
- <metazone type="Bolivia">
- <long>
- <standard>boliviansk tid</standard>
- </long>
- </metazone>
- <metazone type="Brasilia">
- <long>
- <generic>tidssone for Brasilia</generic>
- <standard>normaltid for Brasilia</standard>
- <daylight>sommertid for Brasilia</daylight>
- </long>
- </metazone>
- <metazone type="Brunei">
- <long>
- <standard>tidssone for Brunei Darussalam</standard>
- </long>
- </metazone>
- <metazone type="Cape_Verde">
- <long>
- <generic>kappverdisk tid</generic>
- <standard>kappverdisk normaltid</standard>
- <daylight>kappverdisk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Casey">
- <long>
- <standard draft="contributed">Casey-tid</standard>
- </long>
- </metazone>
- <metazone type="Chamorro">
- <long>
- <standard>tidssone for Chamorro</standard>
- </long>
- </metazone>
- <metazone type="Chatham">
- <long>
- <generic>tidssone for Chatham</generic>
- <standard>normaltid for Chatham</standard>
- <daylight>sommertid for Chatham</daylight>
- </long>
- </metazone>
- <metazone type="Chile">
- <long>
- <generic>chilensk tid</generic>
- <standard>chilensk normaltid</standard>
- <daylight>chilensk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="China">
- <long>
- <generic>kinesisk tid</generic>
- <standard>kinesisk normaltid</standard>
- <daylight>kinesisk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Choibalsan">
- <long>
- <generic>tidssone for Tsjojbalsan</generic>
- <standard>normaltid for Tsjojbalsan</standard>
- <daylight>sommertid for Tsjojbalsan</daylight>
- </long>
- </metazone>
- <metazone type="Christmas">
- <long>
- <standard>tidssone for Christmasøya</standard>
- </long>
- </metazone>
- <metazone type="Cocos">
- <long>
- <standard>tidssone for Kokosøyene</standard>
- </long>
- </metazone>
- <metazone type="Colombia">
- <long>
- <generic>colombiansk tid</generic>
- <standard>colombiansk normaltid</standard>
- <daylight>colombiansk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Cook">
- <long>
- <generic>tidssone for Cookøyene</generic>
- <standard>normaltid for Cookøyene</standard>
- <daylight>halv sommertid for Cookøyene</daylight>
- </long>
- </metazone>
- <metazone type="Cuba">
- <long>
- <generic>cubansk tid</generic>
- <standard>cubansk normaltid</standard>
- <daylight>cubansk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Davis">
- <long>
- <standard>tidssone for Davis</standard>
- </long>
- </metazone>
- <metazone type="DumontDUrville">
- <long>
- <standard>tidssone for Dumont d’Urville</standard>
- </long>
- </metazone>
- <metazone type="East_Timor">
- <long>
- <standard>østtimoresisk tid</standard>
- </long>
- </metazone>
- <metazone type="Easter">
- <long>
- <generic>tidssone for Påskeøya</generic>
- <standard>normaltid for Påskeøya</standard>
- <daylight>sommertid for Påskeøya</daylight>
- </long>
- </metazone>
- <metazone type="Ecuador">
- <long>
- <standard>ecuadoriansk tid</standard>
- </long>
- </metazone>
- <metazone type="Europe_Central">
- <long>
- <generic>sentraleuropeisk tid</generic>
- <standard>sentraleuropeisk normaltid</standard>
- <daylight>sentraleuropeisk sommertid</daylight>
- </long>
- <short>
- <generic>CET</generic>
- <standard>CET</standard>
- <daylight>CEST</daylight>
- </short>
- </metazone>
- <metazone type="Europe_Eastern">
- <long>
- <generic>østeuropeisk tid</generic>
- <standard>østeuropeisk normaltid</standard>
- <daylight>østeuropeisk sommertid</daylight>
- </long>
- <short>
- <generic>EET</generic>
- <standard>EET</standard>
- <daylight>EEST</daylight>
- </short>
- </metazone>
- <metazone type="Europe_Further_Eastern">
- <long>
- <standard>fjern-østeuropeisk tid</standard>
- </long>
- </metazone>
- <metazone type="Europe_Western">
- <long>
- <generic>vesteuropeisk tid</generic>
- <standard>vesteuropeisk normaltid</standard>
- <daylight>vesteuropeisk sommertid</daylight>
- </long>
- <short>
- <generic>WET</generic>
- <standard>WET</standard>
- <daylight>WEST</daylight>
- </short>
- </metazone>
- <metazone type="Falkland">
- <long>
- <generic>tidssone for Falklandsøyene</generic>
- <standard>normaltid for Falklandsøyene</standard>
- <daylight>sommertid for Falklandsøyene</daylight>
- </long>
- </metazone>
- <metazone type="Fiji">
- <long>
- <generic>fijiansk tid</generic>
- <standard>fijiansk normaltid</standard>
- <daylight>fijiansk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="French_Guiana">
- <long>
- <standard>tidssone for Fransk Guyana</standard>
- </long>
- </metazone>
- <metazone type="French_Southern">
- <long>
- <standard>tidssone for De franske sørterritorier</standard>
- </long>
- </metazone>
- <metazone type="Galapagos">
- <long>
- <standard>tidssone for Galápagosøyene</standard>
- </long>
- </metazone>
- <metazone type="Gambier">
- <long>
- <standard>tidssone for Gambier</standard>
- </long>
- </metazone>
- <metazone type="Georgia">
- <long>
- <generic>georgisk tid</generic>
- <standard>georgisk normaltid</standard>
- <daylight>georgisk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Gilbert_Islands">
- <long>
- <standard>tidssone for Gilbertøyene</standard>
- </long>
- </metazone>
- <metazone type="GMT">
- <long>
- <standard>Greenwich middeltid</standard>
- </long>
- <short>
- <standard>GMT</standard>
- </short>
- </metazone>
- <metazone type="Greenland_Eastern">
- <long>
- <generic>østgrønlandsk tid</generic>
- <standard>østgrønlandsk normaltid</standard>
- <daylight>østgrønlandsk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Greenland_Western">
- <long>
- <generic>vestgrønlandsk tid</generic>
- <standard>vestgrønlandsk normaltid</standard>
- <daylight>vestgrønlandsk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Guam">
- <long>
- <standard draft="contributed">Guam-tid</standard>
- </long>
- </metazone>
- <metazone type="Gulf">
- <long>
- <standard>tidssone for Persiabukta</standard>
- </long>
- </metazone>
- <metazone type="Guyana">
- <long>
- <standard>guyansk tid</standard>
- </long>
- </metazone>
- <metazone type="Hawaii_Aleutian">
- <long>
- <generic>tidssone for Hawaii og Aleutene</generic>
- <standard>normaltid for Hawaii og Aleutene</standard>
- <daylight>sommertid for Hawaii og Aleutene</daylight>
- </long>
- <short>
- <generic draft="contributed">HAT</generic>
- <standard draft="contributed">HAST</standard>
- <daylight draft="contributed">HADT</daylight>
- </short>
- </metazone>
- <metazone type="Hong_Kong">
- <long>
- <generic>tidssone for Hongkong</generic>
- <standard>normaltid for Hongkong</standard>
- <daylight>sommertid for Hongkong</daylight>
- </long>
- </metazone>
- <metazone type="Hovd">
- <long>
- <generic>tidssone for Khovd</generic>
- <standard>normaltid for Khovd</standard>
- <daylight>sommertid for Khovd</daylight>
- </long>
- </metazone>
- <metazone type="India">
- <long>
- <standard>indisk tid</standard>
- </long>
- </metazone>
- <metazone type="Indian_Ocean">
- <long>
- <standard>tidssone for Indiahavet</standard>
- </long>
- </metazone>
- <metazone type="Indochina">
- <long>
- <standard>indokinesisk tid</standard>
- </long>
- </metazone>
- <metazone type="Indonesia_Central">
- <long>
- <standard>sentralindonesisk tid</standard>
- </long>
- </metazone>
- <metazone type="Indonesia_Eastern">
- <long>
- <standard>østindonesisk tid</standard>
- </long>
- </metazone>
- <metazone type="Indonesia_Western">
- <long>
- <standard>vestindonesisk tid</standard>
- </long>
- </metazone>
- <metazone type="Iran">
- <long>
- <generic>iransk tid</generic>
- <standard>iransk normaltid</standard>
- <daylight>iransk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Irkutsk">
- <long>
- <generic>tidssone for Irkutsk</generic>
- <standard>normaltid for Irkutsk</standard>
- <daylight>sommertid for Irkutsk</daylight>
- </long>
- </metazone>
- <metazone type="Israel">
- <long>
- <generic>israelsk tid</generic>
- <standard>israelsk normaltid</standard>
- <daylight>israelsk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Japan">
- <long>
- <generic>japansk tid</generic>
- <standard>japansk normaltid</standard>
- <daylight>japansk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Kamchatka">
- <long>
- <generic draft="contributed">Russisk (Petropavlovsk-Kamtsjatskij) tid</generic>
- <standard draft="contributed">Russisk (Petropavlovsk-Kamtsjatskij) normaltid</standard>
- <daylight draft="contributed">Russisk (Petropavlovsk-Kamtsjatskij) sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Kazakhstan_Eastern">
- <long>
- <standard>østkasakhstansk tid</standard>
- </long>
- </metazone>
- <metazone type="Kazakhstan_Western">
- <long>
- <standard>vestkasakhstansk tid</standard>
- </long>
- </metazone>
- <metazone type="Korea">
- <long>
- <generic>koreansk tid</generic>
- <standard>koreansk normaltid</standard>
- <daylight>koreansk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Kosrae">
- <long>
- <standard>tidssone for Kosrae</standard>
- </long>
- </metazone>
- <metazone type="Krasnoyarsk">
- <long>
- <generic>tidssone for Krasnojarsk</generic>
- <standard>normaltid for Krasnojarsk</standard>
- <daylight>sommertid for Krasnojarsk</daylight>
- </long>
- </metazone>
- <metazone type="Kyrgystan">
- <long>
- <standard>kirgisisk tid</standard>
- </long>
- </metazone>
- <metazone type="Lanka">
- <long>
- <standard draft="contributed">Lanka-tid</standard>
- </long>
- </metazone>
- <metazone type="Line_Islands">
- <long>
- <standard>tidssone for Linjeøyene</standard>
- </long>
- </metazone>
- <metazone type="Lord_Howe">
- <long>
- <generic>tidssone for Lord Howe-øya</generic>
- <standard>normaltid for Lord Howe-øya</standard>
- <daylight>sommertid for Lord Howe-øya</daylight>
- </long>
- </metazone>
- <metazone type="Macau">
- <long>
- <generic draft="contributed">Macau-tid</generic>
- <standard draft="contributed">Macau, standardtid</standard>
- <daylight draft="contributed">Macau, sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Macquarie">
- <long>
- <standard>tidssone for Macquarieøya</standard>
- </long>
- </metazone>
- <metazone type="Magadan">
- <long>
- <generic>tidssone for Magadan</generic>
- <standard>normaltid for Magadan</standard>
- <daylight>sommertid for Magadan</daylight>
- </long>
- </metazone>
- <metazone type="Malaysia">
- <long>
- <standard>malaysisk tid</standard>
- </long>
- </metazone>
- <metazone type="Maldives">
- <long>
- <standard>maldivisk tid</standard>
- </long>
- </metazone>
- <metazone type="Marquesas">
- <long>
- <standard>tidssone for Marquesasøyene</standard>
- </long>
- </metazone>
- <metazone type="Marshall_Islands">
- <long>
- <standard>marshallesisk tid</standard>
- </long>
- </metazone>
- <metazone type="Mauritius">
- <long>
- <generic>mauritisk tid</generic>
- <standard>mauritisk normaltid</standard>
- <daylight>mauritisk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Mawson">
- <long>
- <standard>tidssone for Mawson</standard>
- </long>
- </metazone>
- <metazone type="Mexico_Northwest">
- <long>
- <generic>tidssone for nordvestlige Mexico</generic>
- <standard>normaltid for nordvestlige Mexico</standard>
- <daylight>sommertid for nordvestlige Mexico</daylight>
- </long>
- </metazone>
- <metazone type="Mexico_Pacific">
- <long>
- <generic>tidssone for den meksikanske Stillehavskysten</generic>
- <standard>normaltid for den meksikanske Stillehavskysten</standard>
- <daylight>sommertid for den meksikanske Stillehavskysten</daylight>
- </long>
- </metazone>
- <metazone type="Mongolia">
- <long>
- <generic>tidssone for Ulan Bator</generic>
- <standard>normaltid for Ulan Bator</standard>
- <daylight>sommertid for Ulan Bator</daylight>
- </long>
- </metazone>
- <metazone type="Moscow">
- <long>
- <generic>tidssone for Moskva</generic>
- <standard>normaltid for Moskva</standard>
- <daylight>sommertid for Moskva</daylight>
- </long>
- </metazone>
- <metazone type="Myanmar">
- <long>
- <standard>myanmarsk tid</standard>
- </long>
- </metazone>
- <metazone type="Nauru">
- <long>
- <standard>naurisk tid</standard>
- </long>
- </metazone>
- <metazone type="Nepal">
- <long>
- <standard>nepalsk tid</standard>
- </long>
- </metazone>
- <metazone type="New_Caledonia">
- <long>
- <generic>kaledonsk tid</generic>
- <standard>kaledonsk normaltid</standard>
- <daylight>kaledonsk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="New_Zealand">
- <long>
- <generic>newzealandsk tid</generic>
- <standard>newzealandsk normaltid</standard>
- <daylight>newzealandsk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Newfoundland">
- <long>
- <generic>tidssone for Newfoundland</generic>
- <standard>normaltid for Newfoundland</standard>
- <daylight>sommertid for Newfoundland</daylight>
- </long>
- </metazone>
- <metazone type="Niue">
- <long>
- <standard>tidssone for Niue</standard>
- </long>
- </metazone>
- <metazone type="Norfolk">
- <long>
- <generic>tidssone for Norfolkøya</generic>
- <standard>normaltid for Norfolkøya</standard>
- <daylight>sommertid for Norfolkøya</daylight>
- </long>
- </metazone>
- <metazone type="Noronha">
- <long>
- <generic>tidssone for Fernando de Noronha</generic>
- <standard>normaltid for Fernando de Noronha</standard>
- <daylight>sommertid for Fernando de Noronha</daylight>
- </long>
- </metazone>
- <metazone type="North_Mariana">
- <long>
- <standard draft="contributed">Nord-Marianene-tid</standard>
- </long>
- </metazone>
- <metazone type="Novosibirsk">
- <long>
- <generic>tidssone for Novosibirsk</generic>
- <standard>normaltid for Novosibirsk</standard>
- <daylight>sommertid for Novosibirsk</daylight>
- </long>
- </metazone>
- <metazone type="Omsk">
- <long>
- <generic>tidssone for Omsk</generic>
- <standard>normaltid for Omsk</standard>
- <daylight>sommertid for Omsk</daylight>
- </long>
- </metazone>
- <metazone type="Pakistan">
- <long>
- <generic>pakistansk tid</generic>
- <standard>pakistansk normaltid</standard>
- <daylight>pakistansk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Palau">
- <long>
- <standard>palauisk tid</standard>
- </long>
- </metazone>
- <metazone type="Papua_New_Guinea">
- <long>
- <standard>papuansk tid</standard>
- </long>
- </metazone>
- <metazone type="Paraguay">
- <long>
- <generic>paraguayansk tid</generic>
- <standard>paraguayansk normaltid</standard>
- <daylight>paraguayansk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Peru">
- <long>
- <generic>peruansk tid</generic>
- <standard>peruansk normaltid</standard>
- <daylight>peruansk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Philippines">
- <long>
- <generic>filippinsk tid</generic>
- <standard>filippinsk normaltid</standard>
- <daylight>filippinsk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Phoenix_Islands">
- <long>
- <standard>tidssone for Phoenixøyene</standard>
- </long>
- </metazone>
- <metazone type="Pierre_Miquelon">
- <long>
- <generic>tidssone for Saint-Pierre-et-Miquelon</generic>
- <standard>normaltid for Saint-Pierre-et-Miquelon</standard>
- <daylight>sommertid for Saint-Pierre-et-Miquelon</daylight>
- </long>
- </metazone>
- <metazone type="Pitcairn">
- <long>
- <standard>tidssone for Pitcairn</standard>
- </long>
- </metazone>
- <metazone type="Ponape">
- <long>
- <standard>tidssone for Pohnpei</standard>
- </long>
- </metazone>
- <metazone type="Pyongyang">
- <long>
- <standard>tidssone for Pyongyang</standard>
- </long>
- </metazone>
- <metazone type="Qyzylorda">
- <long>
- <generic draft="contributed">Qyzylorda-tid</generic>
- <standard draft="contributed">Qyzylorda, standardtid</standard>
- <daylight draft="contributed">Qyzylorda, sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Reunion">
- <long>
- <standard>tidssone for Réunion</standard>
- </long>
- </metazone>
- <metazone type="Rothera">
- <long>
- <standard>tidssone for Rothera</standard>
- </long>
- </metazone>
- <metazone type="Sakhalin">
- <long>
- <generic>tidssone for Sakhalin</generic>
- <standard>normaltid for Sakhalin</standard>
- <daylight>sommertid for Sakhalin</daylight>
- </long>
- </metazone>
- <metazone type="Samara">
- <long>
- <generic draft="contributed">Russisk (Samara) tid</generic>
- <standard draft="contributed">Russisk (Samara) normaltid</standard>
- <daylight draft="contributed">Russisk (Samara) sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Samoa">
- <long>
- <generic>samoansk tid</generic>
- <standard>samoansk normaltid</standard>
- <daylight>samoansk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Seychelles">
- <long>
- <standard>seychellisk tid</standard>
- </long>
- </metazone>
- <metazone type="Singapore">
- <long>
- <standard>singaporsk tid</standard>
- </long>
- </metazone>
- <metazone type="Solomon">
- <long>
- <standard>salomonsk tid</standard>
- </long>
- </metazone>
- <metazone type="South_Georgia">
- <long>
- <standard>tidssone for Sør-Georgia</standard>
- </long>
- </metazone>
- <metazone type="Suriname">
- <long>
- <standard>surinamsk tid</standard>
- </long>
- </metazone>
- <metazone type="Syowa">
- <long>
- <standard>tidssone for Syowa</standard>
- </long>
- </metazone>
- <metazone type="Tahiti">
- <long>
- <standard>tahitisk tid</standard>
- </long>
- </metazone>
- <metazone type="Taipei">
- <long>
- <generic>tidssone for Taipei</generic>
- <standard>normaltid for Taipei</standard>
- <daylight>sommertid for Taipei</daylight>
- </long>
- </metazone>
- <metazone type="Tajikistan">
- <long>
- <standard>tadsjikisk tid</standard>
- </long>
- </metazone>
- <metazone type="Tokelau">
- <long>
- <standard>tidssone for Tokelau</standard>
- </long>
- </metazone>
- <metazone type="Tonga">
- <long>
- <generic>tongansk tid</generic>
- <standard>tongansk normaltid</standard>
- <daylight>tongansk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Truk">
- <long>
- <standard>tidssone for Chuukøyene</standard>
- </long>
- </metazone>
- <metazone type="Turkmenistan">
- <long>
- <generic>turkmensk tid</generic>
- <standard>turkmensk normaltid</standard>
- <daylight>turkmensk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Tuvalu">
- <long>
- <standard>tuvalsk tid</standard>
- </long>
- </metazone>
- <metazone type="Uruguay">
- <long>
- <generic>uruguayansk tid</generic>
- <standard>uruguayansk normaltid</standard>
- <daylight>uruguayansk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Uzbekistan">
- <long>
- <generic>usbekisk tid</generic>
- <standard>usbekisk normaltid</standard>
- <daylight>usbekisk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Vanuatu">
- <long>
- <generic>vanuatisk tid</generic>
- <standard>vanuatisk normaltid</standard>
- <daylight>vanuatisk sommertid</daylight>
- </long>
- </metazone>
- <metazone type="Venezuela">
- <long>
- <standard>venezuelansk tid</standard>
- </long>
- </metazone>
- <metazone type="Vladivostok">
- <long>
- <generic>tidssone for Vladivostok</generic>
- <standard>normaltid for Vladivostok</standard>
- <daylight>sommertid for Vladivostok</daylight>
- </long>
- </metazone>
- <metazone type="Volgograd">
- <long>
- <generic>tidssone for Volgograd</generic>
- <standard>normaltid for Volgograd</standard>
- <daylight>sommertid for Volgograd</daylight>
- </long>
- </metazone>
- <metazone type="Vostok">
- <long>
- <standard>tidssone for Vostok</standard>
- </long>
- </metazone>
- <metazone type="Wake">
- <long>
- <standard>tidssone for Wake Island</standard>
- </long>
- </metazone>
- <metazone type="Wallis">
- <long>
- <standard>tidssone for Wallis- og Futunaøyene</standard>
- </long>
- </metazone>
- <metazone type="Yakutsk">
- <long>
- <generic>tidssone for Jakutsk</generic>
- <standard>normaltid for Jakutsk</standard>
- <daylight>sommertid for Jakutsk</daylight>
- </long>
- </metazone>
- <metazone type="Yekaterinburg">
- <long>
- <generic>tidssone for Jekaterinburg</generic>
- <standard>normaltid for Jekaterinburg</standard>
- <daylight>sommertid for Jekaterinburg</daylight>
- </long>
- </metazone>
- </timeZoneNames>
- </dates>
- <numbers>
- <defaultNumberingSystem draft="contributed">latn</defaultNumberingSystem>
- <otherNumberingSystems>
- <native draft="contributed">latn</native>
- </otherNumberingSystems>
- <minimumGroupingDigits draft="contributed">1</minimumGroupingDigits>
- <symbols numberSystem="arab">
- <decimal draft="contributed">٫</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">؛</list>
- <percentSign draft="contributed">٪</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">اس</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">؉</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- <timeSeparator draft="contributed">.</timeSeparator>
- </symbols>
- <symbols numberSystem="arabext">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">؛</list>
- <percentSign draft="contributed">٪</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">×۱۰^</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">؉</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- <timeSeparator draft="contributed">.</timeSeparator>
- </symbols>
- <symbols numberSystem="bali">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="beng">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="brah">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="cakm">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="cham">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="deva">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="fullwide">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="gujr">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="guru">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="hanidec">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="java">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="kali">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="khmr">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="knda">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="lana">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="lanatham">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="laoo">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="latn">
- <decimal>,</decimal>
- <group> </group>
- <list draft="contributed">;</list>
- <percentSign>%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign>−</minusSign>
- <approximatelySign>ca.</approximatelySign>
- <exponential>E</exponential>
- <superscriptingExponent>×</superscriptingExponent>
- <perMille>‰</perMille>
- <infinity>∞</infinity>
- <nan>NaN</nan>
- <timeSeparator>:</timeSeparator>
- <timeSeparator alt="variant">.</timeSeparator>
- </symbols>
- <symbols numberSystem="lepc">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="limb">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="mlym">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="mong">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="mtei">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="mymr">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="mymrshan">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="nkoo">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="olck">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="orya">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="osma">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="saur">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="shrd">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="sora">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="sund">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="takr">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="talu">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="tamldec">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="telu">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="thai">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="tibt">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <symbols numberSystem="vaii">
- <decimal draft="contributed">,</decimal>
- <group draft="contributed"> </group>
- <list draft="contributed">;</list>
- <percentSign draft="contributed">%</percentSign>
- <plusSign draft="contributed">+</plusSign>
- <minusSign draft="contributed">−</minusSign>
- <exponential draft="contributed">E</exponential>
- <superscriptingExponent draft="contributed">×</superscriptingExponent>
- <perMille draft="contributed">‰</perMille>
- <infinity draft="contributed">∞</infinity>
- <nan draft="contributed">NaN</nan>
- </symbols>
- <decimalFormats numberSystem="arab">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="arabext">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="bali">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="beng">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="brah">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="cakm">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="cham">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="deva">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="fullwide">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="gujr">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="guru">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="hanidec">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="java">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="kali">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="khmr">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="knda">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="lana">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="lanatham">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="laoo">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="latn">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- <decimalFormatLength type="long">
- <decimalFormat>
- <pattern type="1000" count="one">0 tusen</pattern>
- <pattern type="1000" count="other">0 tusen</pattern>
- <pattern type="10000" count="one">00 tusen</pattern>
- <pattern type="10000" count="other">00 tusen</pattern>
- <pattern type="100000" count="one">000 tusen</pattern>
- <pattern type="100000" count="other">000 tusen</pattern>
- <pattern type="1000000" count="one">0 million</pattern>
- <pattern type="1000000" count="other">0 millioner</pattern>
- <pattern type="10000000" count="one">00 millioner</pattern>
- <pattern type="10000000" count="other">00 millioner</pattern>
- <pattern type="100000000" count="one">000 millioner</pattern>
- <pattern type="100000000" count="other">000 millioner</pattern>
- <pattern type="1000000000" count="one">0 milliard</pattern>
- <pattern type="1000000000" count="other">0 milliarder</pattern>
- <pattern type="10000000000" count="one">00 milliarder</pattern>
- <pattern type="10000000000" count="other">00 milliarder</pattern>
- <pattern type="100000000000" count="one">000 milliarder</pattern>
- <pattern type="100000000000" count="other">000 milliarder</pattern>
- <pattern type="1000000000000" count="one">0 billion</pattern>
- <pattern type="1000000000000" count="other">0 billioner</pattern>
- <pattern type="10000000000000" count="one">00 billioner</pattern>
- <pattern type="10000000000000" count="other">00 billioner</pattern>
- <pattern type="100000000000000" count="one">000 billioner</pattern>
- <pattern type="100000000000000" count="other">000 billioner</pattern>
- </decimalFormat>
- </decimalFormatLength>
- <decimalFormatLength type="short">
- <decimalFormat>
- <pattern type="1000" count="one">0k</pattern>
- <pattern type="1000" count="other">0k</pattern>
- <pattern type="10000" count="one">00k</pattern>
- <pattern type="10000" count="other">00k</pattern>
- <pattern type="100000" count="one">000k</pattern>
- <pattern type="100000" count="other">000k</pattern>
- <pattern type="1000000" count="one">0 mill'.'</pattern>
- <pattern type="1000000" count="other">0 mill'.'</pattern>
- <pattern type="10000000" count="one">00 mill'.'</pattern>
- <pattern type="10000000" count="other">00 mill'.'</pattern>
- <pattern type="100000000" count="one">000 mill'.'</pattern>
- <pattern type="100000000" count="other">000 mill'.'</pattern>
- <pattern type="1000000000" count="one">0 mrd'.'</pattern>
- <pattern type="1000000000" count="other">0 mrd'.'</pattern>
- <pattern type="10000000000" count="one">00 mrd'.'</pattern>
- <pattern type="10000000000" count="other">00 mrd'.'</pattern>
- <pattern type="100000000000" count="one">000 mrd'.'</pattern>
- <pattern type="100000000000" count="other">000 mrd'.'</pattern>
- <pattern type="1000000000000" count="one">0 bill'.'</pattern>
- <pattern type="1000000000000" count="other">0 bill'.'</pattern>
- <pattern type="10000000000000" count="one">00 bill'.'</pattern>
- <pattern type="10000000000000" count="other">00 bill'.'</pattern>
- <pattern type="100000000000000" count="one">000 bill'.'</pattern>
- <pattern type="100000000000000" count="other">000 bill'.'</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="lepc">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="limb">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="mlym">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="mong">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="mtei">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="mymr">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="mymrshan">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="nkoo">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="olck">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="orya">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="osma">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="saur">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="shrd">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="sora">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="sund">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="takr">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="talu">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="tamldec">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="telu">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="thai">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="tibt">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <decimalFormats numberSystem="vaii">
- <decimalFormatLength>
- <decimalFormat>
- <pattern draft="contributed">#,##0.###</pattern>
- </decimalFormat>
- </decimalFormatLength>
- </decimalFormats>
- <scientificFormats numberSystem="arab">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="arabext">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="bali">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="beng">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="brah">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="cakm">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="cham">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="deva">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="fullwide">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="gujr">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="guru">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="hanidec">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="java">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="kali">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="khmr">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="knda">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="lana">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="lanatham">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="laoo">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="latn">
- <scientificFormatLength>
- <scientificFormat>
- <pattern>#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="lepc">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="limb">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="mlym">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="mong">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="mtei">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="mymr">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="mymrshan">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="nkoo">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="olck">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="orya">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="osma">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="saur">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="shrd">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="sora">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="sund">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="takr">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="talu">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="tamldec">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="telu">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="thai">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="tibt">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <scientificFormats numberSystem="vaii">
- <scientificFormatLength>
- <scientificFormat>
- <pattern draft="contributed">#E0</pattern>
- </scientificFormat>
- </scientificFormatLength>
- </scientificFormats>
- <percentFormats numberSystem="arab">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="arabext">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="bali">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="beng">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="brah">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="cakm">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="cham">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="deva">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="fullwide">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="gujr">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="guru">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="hanidec">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="java">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="kali">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="khmr">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="knda">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="lana">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="lanatham">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="laoo">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="latn">
- <percentFormatLength>
- <percentFormat>
- <pattern>#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="lepc">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="limb">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="mlym">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="mong">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="mtei">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="mymr">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="mymrshan">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="nkoo">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="olck">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="orya">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="osma">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="saur">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="shrd">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="sora">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="sund">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="takr">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="talu">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="tamldec">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="telu">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="thai">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="tibt">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <percentFormats numberSystem="vaii">
- <percentFormatLength>
- <percentFormat>
- <pattern draft="contributed">#,##0 %</pattern>
- </percentFormat>
- </percentFormatLength>
- </percentFormats>
- <currencyFormats numberSystem="arab">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- </currencyFormats>
- <currencyFormats numberSystem="arabext">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="bali">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="beng">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="brah">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="cakm">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="cham">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="deva">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="fullwide">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="gujr">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="guru">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="hanidec">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="java">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="kali">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="khmr">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="knda">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="lana">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="lanatham">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="laoo">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="latn">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern>¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern>¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <currencyFormatLength type="short">
- <currencyFormat type="standard">
- <pattern type="1000" count="one">¤ 0k</pattern>
- <pattern type="1000" count="other">¤ 0k</pattern>
- <pattern type="10000" count="one">¤ 00k</pattern>
- <pattern type="10000" count="other">¤ 00k</pattern>
- <pattern type="100000" count="one">¤ 000k</pattern>
- <pattern type="100000" count="other">¤ 000k</pattern>
- <pattern type="1000000" count="one">¤ 0 mill'.'</pattern>
- <pattern type="1000000" count="other">¤ 0 mill'.'</pattern>
- <pattern type="10000000" count="one">¤ 00 mill'.'</pattern>
- <pattern type="10000000" count="other">¤ 00 mill'.'</pattern>
- <pattern type="100000000" count="one">¤ 000 mill'.'</pattern>
- <pattern type="100000000" count="other">¤ 000 mill'.'</pattern>
- <pattern type="1000000000" count="one">¤ 0 mrd'.'</pattern>
- <pattern type="1000000000" count="other">¤ 0 mrd'.'</pattern>
- <pattern type="10000000000" count="one">¤ 00 mrd'.'</pattern>
- <pattern type="10000000000" count="other">¤ 00 mrd'.'</pattern>
- <pattern type="100000000000" count="one">¤ 000 mrd'.'</pattern>
- <pattern type="100000000000" count="other">¤ 000 mrd'.'</pattern>
- <pattern type="1000000000000" count="one">¤ 0 bill'.'</pattern>
- <pattern type="1000000000000" count="other">¤ 0 bill'.'</pattern>
- <pattern type="10000000000000" count="one">¤ 00 bill'.'</pattern>
- <pattern type="10000000000000" count="other">¤ 00 bill'.'</pattern>
- <pattern type="100000000000000" count="one">¤ 000 bill'.'</pattern>
- <pattern type="100000000000000" count="other">¤ 000 bill'.'</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one">{0} {1}</unitPattern>
- <unitPattern count="other">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="lepc">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="limb">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="mlym">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="mong">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="mtei">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="mymr">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="mymrshan">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="nkoo">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="olck">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="orya">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="osma">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="saur">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="shrd">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="sora">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="sund">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="takr">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="talu">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="tamldec">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="telu">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="thai">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="tibt">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencyFormats numberSystem="vaii">
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern draft="contributed">¤ #,##0.00</pattern>
- </currencyFormat>
- </currencyFormatLength>
- <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
- <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
- </currencyFormats>
- <currencies>
- <currency type="ADP">
- <displayName>andorranske pesetas</displayName>
- <displayName count="one">andorransk pesetas</displayName>
- <displayName count="other">andorranske pesetas</displayName>
- <symbol draft="contributed">ADP</symbol>
- </currency>
- <currency type="AED">
- <displayName>emiratarabiske dirham</displayName>
- <displayName count="one">emiratarabisk dirham</displayName>
- <displayName count="other">emiratarabiske dirham</displayName>
- <symbol draft="contributed">AED</symbol>
- </currency>
- <currency type="AFA">
- <displayName>afgansk afghani (1927–2002)</displayName>
- <displayName count="one">afghansk afghani (1927–2002)</displayName>
- <displayName count="other">afghanske afghani (1927–2002)</displayName>
- <symbol draft="contributed">AFA</symbol>
- </currency>
- <currency type="AFN">
- <displayName>afghanske afghani</displayName>
- <displayName count="one">afghansk afghani</displayName>
- <displayName count="other">afghanske afghani</displayName>
- <symbol draft="contributed">AFN</symbol>
- <symbol alt="narrow" draft="contributed">↑↑↑</symbol>
- </currency>
- <currency type="ALK">
- <displayName draft="contributed">albanske lek (1946–1965)</displayName>
- <displayName count="one" draft="contributed">albansk lek (1946–1965)</displayName>
- <displayName count="other" draft="contributed">albanske lek (1946–1965)</displayName>
- <symbol draft="contributed">ALK</symbol>
- </currency>
- <currency type="ALL">
- <displayName>albanske lek</displayName>
- <displayName count="one">albansk lek</displayName>
- <displayName count="other">albanske lek</displayName>
- <symbol draft="contributed">ALL</symbol>
- </currency>
- <currency type="AMD">
- <displayName>armenske dram</displayName>
- <displayName count="one">armensk dram</displayName>
- <displayName count="other">armenske dram</displayName>
- <symbol draft="contributed">AMD</symbol>
- <symbol alt="narrow" draft="contributed">↑↑↑</symbol>
- </currency>
- <currency type="ANG">
- <displayName>nederlandske antillegylden</displayName>
- <displayName count="one">nederlandsk antillegylden</displayName>
- <displayName count="other">nederlandske antillegylden</displayName>
- <symbol draft="contributed">ANG</symbol>
- </currency>
- <currency type="AOA">
- <displayName>angolanske kwanza</displayName>
- <displayName count="one">angolansk kwanza</displayName>
- <displayName count="other">angolanske kwanza</displayName>
- <symbol draft="contributed">AOA</symbol>
- <symbol alt="narrow" draft="contributed">Kz</symbol>
- </currency>
- <currency type="AOK">
- <displayName>angolanske kwanza (1977–1990)</displayName>
- <displayName count="one">angolansk kwanza (1977–1990)</displayName>
- <displayName count="other">angolanske kwanza (1977–1990)</displayName>
- <symbol draft="contributed">AOK</symbol>
- </currency>
- <currency type="AON">
- <displayName>angolanske nye kwanza (1990–2000)</displayName>
- <displayName count="one">angolansk ny kwanza</displayName>
- <displayName count="other">angolanske nye kwanza (1990–2000)</displayName>
- <symbol draft="contributed">AON</symbol>
- </currency>
- <currency type="AOR">
- <displayName>angolanske omjusterte kwanza (1995–1999)</displayName>
- <displayName count="one">angolansk kwanza reajustado (1995–1999)</displayName>
- <displayName count="other">angolanske omjusterte kwanza (1995–1999)</displayName>
- <symbol draft="contributed">AOR</symbol>
- </currency>
- <currency type="ARA">
- <displayName>argentinske australer</displayName>
- <displayName count="one">argentinsk austral</displayName>
- <displayName count="other">argentinske australer</displayName>
- <symbol draft="contributed">ARA</symbol>
- </currency>
- <currency type="ARL">
- <displayName draft="contributed">argentinske peso ley</displayName>
- <displayName count="one" draft="contributed">argentinsk peso ley</displayName>
- <displayName count="other" draft="contributed">argentinske peso ley</displayName>
- <symbol draft="contributed">ARL</symbol>
- </currency>
- <currency type="ARM">
- <displayName draft="contributed">argentinsk pesos (1881–1970)</displayName>
- <displayName count="one" draft="contributed">argentinsk pesos (1881–1970)</displayName>
- <displayName count="other" draft="contributed">argentinske pesos (1881–1970)</displayName>
- <symbol draft="contributed">ARM</symbol>
- </currency>
- <currency type="ARP">
- <displayName>argentinske pesos (1983–1985)</displayName>
- <displayName count="one">argentinsk pesos (1983–1985)</displayName>
- <displayName count="other">argentinske pesos (1983–1985)</displayName>
- <symbol draft="contributed">ARP</symbol>
- </currency>
- <currency type="ARS">
- <displayName>argentinske pesos</displayName>
- <displayName count="one">argentinsk peso</displayName>
- <displayName count="other">argentinske pesos</displayName>
- <symbol draft="contributed">ARS</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="ATS">
- <displayName>østerrikske shilling</displayName>
- <displayName count="one">østerriksk schilling</displayName>
- <displayName count="other">østerrikske schilling</displayName>
- <symbol draft="contributed">ATS</symbol>
- </currency>
- <currency type="AUD">
- <displayName>australske dollar</displayName>
- <displayName count="one">australsk dollar</displayName>
- <displayName count="other">australske dollar</displayName>
- <symbol>AUD</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="AWG">
- <displayName>arubiske floriner</displayName>
- <displayName count="one">arubisk florin</displayName>
- <displayName count="other">arubiske floriner</displayName>
- <symbol draft="contributed">AWG</symbol>
- </currency>
- <currency type="AZM">
- <displayName>aserbajdsjanske manat (1993–2006)</displayName>
- <displayName count="one">aserbajdsjansk manat (1993–2006)</displayName>
- <displayName count="other">aserbajdsjanske manat (1993–2006)</displayName>
- <symbol draft="contributed">AZM</symbol>
- </currency>
- <currency type="AZN">
- <displayName>aserbajdsjanske manat</displayName>
- <displayName count="one">aserbajdsjansk manat</displayName>
- <displayName count="other">aserbajdsjanske manat</displayName>
- <symbol draft="contributed">AZN</symbol>
- <symbol alt="narrow" draft="contributed">↑↑↑</symbol>
- </currency>
- <currency type="BAD">
- <displayName>bosnisk-hercegovinske dinarer (1992–1994)</displayName>
- <displayName count="one">bosnisk-hercegovinsk dinar (1992–1994)</displayName>
- <displayName count="other">bosnisk-hercegovinske dinarer (1992–1994)</displayName>
- <symbol draft="contributed">BAD</symbol>
- </currency>
- <currency type="BAM">
- <displayName>bosnisk-hercegovinske konvertible mark</displayName>
- <displayName count="one">bosnisk-hercegovinsk konvertibel mark</displayName>
- <displayName count="other">bosnisk-hercegovinske konvertible mark</displayName>
- <symbol draft="contributed">BAM</symbol>
- <symbol alt="narrow" draft="contributed">KM</symbol>
- </currency>
- <currency type="BAN">
- <displayName draft="contributed">nye bosnisk-hercegovinske dinarer (1994–1997)</displayName>
- <displayName count="one" draft="contributed">ny bosnisk-hercegovinsk dinar (1994–1997)</displayName>
- <displayName count="other" draft="contributed">nye bosnisk-hercegovinske dinarer (1994–1997)</displayName>
- <symbol draft="contributed">BAN</symbol>
- </currency>
- <currency type="BBD">
- <displayName>barbadiske dollar</displayName>
- <displayName count="one">barbadisk dollar</displayName>
- <displayName count="other">barbadiske dollar</displayName>
- <symbol draft="contributed">BBD</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="BDT">
- <displayName>bangladeshiske taka</displayName>
- <displayName count="one">bangladeshisk taka</displayName>
- <displayName count="other">bangladeshiske taka</displayName>
- <symbol draft="contributed">BDT</symbol>
- <symbol alt="narrow" draft="contributed">৳</symbol>
- </currency>
- <currency type="BEC">
- <displayName>belgiske franc (konvertible)</displayName>
- <displayName count="one">belgisk franc (konvertibel)</displayName>
- <displayName count="other">belgiske franc (konvertible)</displayName>
- <symbol draft="contributed">BEC</symbol>
- </currency>
- <currency type="BEF">
- <displayName>belgiske franc</displayName>
- <displayName count="one">belgisk franc</displayName>
- <displayName count="other">belgiske franc</displayName>
- <symbol draft="contributed">BEF</symbol>
- </currency>
- <currency type="BEL">
- <displayName>belgiske franc (finansielle)</displayName>
- <displayName count="one">belgisk franc (finansiell)</displayName>
- <displayName count="other">belgiske franc (finansielle)</displayName>
- <symbol draft="contributed">BEL</symbol>
- </currency>
- <currency type="BGL">
- <displayName>bulgarske lev (hard)</displayName>
- <displayName count="one">bulgarsk lev (hard)</displayName>
- <displayName count="other">bulgarske lev (hard)</displayName>
- <symbol draft="contributed">BGL</symbol>
- </currency>
- <currency type="BGM">
- <displayName draft="contributed">bulgarske lev (sosialist)</displayName>
- <displayName count="one" draft="contributed">bulgarsk lev (sosialist)</displayName>
- <displayName count="other" draft="contributed">bulgarske lev (sosialist)</displayName>
- <symbol draft="contributed">BGM</symbol>
- </currency>
- <currency type="BGN">
- <displayName>bulgarske lev</displayName>
- <displayName count="one">bulgarsk lev</displayName>
- <displayName count="other">bulgarske lev</displayName>
- <symbol draft="contributed">BGN</symbol>
- </currency>
- <currency type="BGO">
- <displayName draft="contributed">bulgarske lev (1879–1952)</displayName>
- <displayName count="one" draft="contributed">bulgarsk lev (1879–1952)</displayName>
- <displayName count="other" draft="contributed">bulgarske lev (1879–1952)</displayName>
- <symbol draft="contributed">BGO</symbol>
- </currency>
- <currency type="BHD">
- <displayName>bahrainske dinarer</displayName>
- <displayName count="one">bahrainsk dinar</displayName>
- <displayName count="other">bahrainske dinarer</displayName>
- <symbol draft="contributed">BHD</symbol>
- </currency>
- <currency type="BIF">
- <displayName>burundiske franc</displayName>
- <displayName count="one">burundisk franc</displayName>
- <displayName count="other">burundiske franc</displayName>
- <symbol draft="contributed">BIF</symbol>
- </currency>
- <currency type="BMD">
- <displayName>bermudiske dollar</displayName>
- <displayName count="one">bermudisk dollar</displayName>
- <displayName count="other">bermudiske dollar</displayName>
- <symbol draft="contributed">BMD</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="BND">
- <displayName>bruneiske dollar</displayName>
- <displayName count="one">bruneisk dollar</displayName>
- <displayName count="other">bruneiske dollar</displayName>
- <symbol draft="contributed">BND</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="BOB">
- <displayName>bolivianske boliviano</displayName>
- <displayName count="one">boliviansk boliviano</displayName>
- <displayName count="other">bolivianske boliviano</displayName>
- <symbol draft="contributed">BOB</symbol>
- <symbol alt="narrow" draft="contributed">Bs</symbol>
- </currency>
- <currency type="BOL">
- <displayName draft="contributed">bolivianske boliviano (1863–1963)</displayName>
- <displayName count="one" draft="contributed">boliviansk boliviano (1863–1963)</displayName>
- <displayName count="other" draft="contributed">bolivianske boliviano (1863–1963)</displayName>
- <symbol draft="contributed">BOL</symbol>
- </currency>
- <currency type="BOP">
- <displayName>bolivianske pesos</displayName>
- <displayName count="one">boliviansk pesos</displayName>
- <displayName count="other">bolivianske pesos</displayName>
- <symbol draft="contributed">BOP</symbol>
- </currency>
- <currency type="BOV">
- <displayName>bolivianske mvdol</displayName>
- <displayName count="one">bolivianske mvdol</displayName>
- <displayName count="other">bolivianske mvdol</displayName>
- <symbol draft="contributed">BOV</symbol>
- </currency>
- <currency type="BRB">
- <displayName>brasilianske cruzeiro novo (1967–1986)</displayName>
- <displayName count="one">brasiliansk cruzeiro novo (1967–1986)</displayName>
- <displayName count="other">brasilianske cruzeiro novo (1967–1986)</displayName>
- <symbol draft="contributed">BRB</symbol>
- </currency>
- <currency type="BRC">
- <displayName>brasilianske cruzados (1986–1989)</displayName>
- <displayName count="one">brasiliansk cruzado (1986–1989)</displayName>
- <displayName count="other">brasilianske cruzado (1986–1989)</displayName>
- <symbol draft="contributed">BRC</symbol>
- </currency>
- <currency type="BRE">
- <displayName>brasilianske cruzeiro (1990–1993)</displayName>
- <displayName count="one">brasiliansk cruzeiro (1990–1993)</displayName>
- <displayName count="other">brasilianske cruzeiro (1990–1993)</displayName>
- <symbol draft="contributed">BRE</symbol>
- </currency>
- <currency type="BRL">
- <displayName>brasilianske real</displayName>
- <displayName count="one">brasiliansk real</displayName>
- <displayName count="other">brasilianske real</displayName>
- <symbol>BRL</symbol>
- <symbol alt="narrow" draft="contributed">R$</symbol>
- </currency>
- <currency type="BRN">
- <displayName>brasilianske cruzado novo (1989–1990)</displayName>
- <displayName count="one">brasiliansk cruzado novo (1989–1990)</displayName>
- <displayName count="other">brasilianske cruzado novo (1989–1990)</displayName>
- <symbol draft="contributed">BRN</symbol>
- </currency>
- <currency type="BRR">
- <displayName>brasilianske cruzeiro (1993–1994)</displayName>
- <displayName count="one">brasiliansk cruzeiro (1993–1994)</displayName>
- <displayName count="other">brasilianske cruzeiro (1993–1994)</displayName>
- <symbol draft="contributed">BRR</symbol>
- </currency>
- <currency type="BRZ">
- <displayName draft="contributed">brasilianske cruzeiro (1942–1967)</displayName>
- <displayName count="one" draft="contributed">brasiliansk cruzeiro (1942–1967)</displayName>
- <displayName count="other" draft="contributed">brasilianske cruzeiro (1942–1967)</displayName>
- <symbol draft="contributed">BRZ</symbol>
- </currency>
- <currency type="BSD">
- <displayName>bahamanske dollar</displayName>
- <displayName count="one">bahamansk dollar</displayName>
- <displayName count="other">bahamanske dollar</displayName>
- <symbol draft="contributed">BSD</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="BTN">
- <displayName>bhutanske ngultrum</displayName>
- <displayName count="one">bhutansk ngultrum</displayName>
- <displayName count="other">bhutanske ngultrum</displayName>
- <symbol draft="contributed">BTN</symbol>
- </currency>
- <currency type="BUK">
- <displayName>burmesiske kyat</displayName>
- <displayName count="one">burmesisk kyat</displayName>
- <displayName count="other">burmesiske kyat</displayName>
- <symbol draft="contributed">BUK</symbol>
- </currency>
- <currency type="BWP">
- <displayName>botswanske pula</displayName>
- <displayName count="one">botswansk pula</displayName>
- <displayName count="other">botswanske pula</displayName>
- <symbol draft="contributed">BWP</symbol>
- <symbol alt="narrow" draft="contributed">P</symbol>
- </currency>
- <currency type="BYB">
- <displayName>hviterussiske nye rubler (1994–1999)</displayName>
- <displayName count="one">hviterussisk ny rubel (1994–1999)</displayName>
- <displayName count="other">hviterussiske nye rubler (1994–1999)</displayName>
- <symbol draft="contributed">BYB</symbol>
- </currency>
- <currency type="BYN">
- <displayName>nye hviterussiske rubler</displayName>
- <displayName count="one">ny hviterussisk rubel</displayName>
- <displayName count="other">nye hviterussiske rubler</displayName>
- <symbol draft="contributed">BYN</symbol>
- <symbol alt="narrow" draft="contributed">р.</symbol>
- </currency>
- <currency type="BYR">
- <displayName>hviterussiske rubler (2000–2016)</displayName>
- <displayName count="one">hviterussisk rubel (2000–2016)</displayName>
- <displayName count="other">hviterussiske rubler (2000–2016)</displayName>
- <symbol draft="contributed">BYR</symbol>
- </currency>
- <currency type="BZD">
- <displayName>beliziske dollar</displayName>
- <displayName count="one">belizisk dollar</displayName>
- <displayName count="other">beliziske dollar</displayName>
- <symbol draft="contributed">BZD</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="CAD">
- <displayName>kanadiske dollar</displayName>
- <displayName count="one">kanadisk dollar</displayName>
- <displayName count="other">kanadiske dollar</displayName>
- <symbol>CAD</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="CDF">
- <displayName>kongolesiske franc</displayName>
- <displayName count="one">kongolesisk franc</displayName>
- <displayName count="other">kongolesiske franc</displayName>
- <symbol draft="contributed">CDF</symbol>
- </currency>
- <currency type="CHE">
- <displayName>WIR euro</displayName>
- <symbol draft="contributed">CHE</symbol>
- </currency>
- <currency type="CHF">
- <displayName>sveitsiske franc</displayName>
- <displayName count="one">sveitsisk franc</displayName>
- <displayName count="other">sveitsiske franc</displayName>
- <symbol draft="contributed">CHF</symbol>
- </currency>
- <currency type="CHW">
- <displayName>WIR franc</displayName>
- <symbol draft="contributed">CHW</symbol>
- </currency>
- <currency type="CLE">
- <displayName draft="contributed">chilenske escudo</displayName>
- <displayName count="one" draft="contributed">chilensk escudo</displayName>
- <displayName count="other" draft="contributed">chilenske escudo</displayName>
- <symbol draft="contributed">CLE</symbol>
- </currency>
- <currency type="CLF">
- <displayName>chilenske unidades de fomento</displayName>
- <displayName count="one">chilensk unidades de fomento</displayName>
- <displayName count="other">chilenske unidades de fomento</displayName>
- <symbol draft="contributed">CLF</symbol>
- </currency>
- <currency type="CLP">
- <displayName>chilenske pesos</displayName>
- <displayName count="one">chilensk peso</displayName>
- <displayName count="other">chilenske pesos</displayName>
- <symbol draft="contributed">CLP</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="CNH">
- <displayName>kinesiske yuan (offshore)</displayName>
- <displayName count="one">kinesisk yuan (offshore)</displayName>
- <displayName count="other">kinesiske yuan (offshore)</displayName>
- <symbol draft="contributed">CNH</symbol>
- </currency>
- <currency type="CNX">
- <displayName draft="contributed">Kinas folkebank dollar</displayName>
- <displayName count="one" draft="contributed">Kinas folkebank dollar</displayName>
- <displayName count="other" draft="contributed">Kinas folkebank dollar</displayName>
- <symbol draft="contributed">CNX</symbol>
- </currency>
- <currency type="CNY">
- <displayName>kinesiske yuan</displayName>
- <displayName count="one">kinesisk yuan</displayName>
- <displayName count="other">kinesiske yuan</displayName>
- <symbol>CNY</symbol>
- <symbol alt="narrow" draft="contributed">¥</symbol>
- </currency>
- <currency type="COP">
- <displayName>colombianske pesos</displayName>
- <displayName count="one">colombiansk peso</displayName>
- <displayName count="other">colombianske pesos</displayName>
- <symbol draft="contributed">COP</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="COU">
- <displayName>colombianske unidad de valor real</displayName>
- <displayName count="one">colombiansk unidad de valor real</displayName>
- <displayName count="other">colombianske unidad de valor real</displayName>
- <symbol draft="contributed">COU</symbol>
- </currency>
- <currency type="CRC">
- <displayName>costaricanske colón</displayName>
- <displayName count="one">costaricansk colón</displayName>
- <displayName count="other">costaricanske colón</displayName>
- <symbol draft="contributed">CRC</symbol>
- <symbol alt="narrow" draft="contributed">₡</symbol>
- </currency>
- <currency type="CSD">
- <displayName>serbiske dinarer (2002–2006)</displayName>
- <displayName count="one">serbisk dinar (2002–2006)</displayName>
- <displayName count="other">serbiske dinarer (2002–2006)</displayName>
- <symbol draft="contributed">CSD</symbol>
- </currency>
- <currency type="CSK">
- <displayName>tsjekkoslovakiske koruna (hard)</displayName>
- <displayName count="one">tsjekkoslovakisk koruna (hard)</displayName>
- <displayName count="other">tsjekkoslovakiske koruna (hard)</displayName>
- <symbol draft="contributed">CSK</symbol>
- </currency>
- <currency type="CUC">
- <displayName>kubanske konvertible pesos</displayName>
- <displayName count="one">kubansk konvertibel peso</displayName>
- <displayName count="other">kubanske konvertible pesos</displayName>
- <symbol draft="contributed">CUC</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="CUP">
- <displayName>kubanske pesos</displayName>
- <displayName count="one">kubansk peso</displayName>
- <displayName count="other">kubanske pesos</displayName>
- <symbol draft="contributed">CUP</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="CVE">
- <displayName>kappverdiske escudos</displayName>
- <displayName count="one">kappverdisk escudo</displayName>
- <displayName count="other">kappverdiske escudos</displayName>
- <symbol draft="contributed">CVE</symbol>
- </currency>
- <currency type="CYP">
- <displayName>kypriotiske pund</displayName>
- <displayName count="one">kypriotisk pund</displayName>
- <displayName count="other">kypriotiske pund</displayName>
- <symbol draft="contributed">CYP</symbol>
- </currency>
- <currency type="CZK">
- <displayName>tsjekkiske koruna</displayName>
- <displayName count="one">tsjekkisk koruna</displayName>
- <displayName count="other">tsjekkiske koruna</displayName>
- <symbol draft="contributed">CZK</symbol>
- <symbol alt="narrow" draft="contributed">Kč</symbol>
- </currency>
- <currency type="DDM">
- <displayName>østtyske mark</displayName>
- <displayName count="one">østtysk mark</displayName>
- <displayName count="other">østtyske mark</displayName>
- <symbol draft="contributed">DDM</symbol>
- </currency>
- <currency type="DEM">
- <displayName>tyske mark</displayName>
- <displayName count="one">tysk mark</displayName>
- <displayName count="other">tyske mark</displayName>
- <symbol draft="contributed">DEM</symbol>
- </currency>
- <currency type="DJF">
- <displayName>djiboutiske franc</displayName>
- <displayName count="one">djiboutisk franc</displayName>
- <displayName count="other">djiboutiske franc</displayName>
- <symbol draft="contributed">DJF</symbol>
- </currency>
- <currency type="DKK">
- <displayName>danske kroner</displayName>
- <displayName count="one">dansk krone</displayName>
- <displayName count="other">danske kroner</displayName>
- <symbol draft="contributed">DKK</symbol>
- <symbol alt="narrow" draft="contributed">kr</symbol>
- </currency>
- <currency type="DOP">
- <displayName>dominikanske pesos</displayName>
- <displayName count="one">dominikansk peso</displayName>
- <displayName count="other">dominikanske pesos</displayName>
- <symbol draft="contributed">DOP</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="DZD">
- <displayName>algeriske dinarer</displayName>
- <displayName count="one">algerisk dinar</displayName>
- <displayName count="other">algeriske dinarer</displayName>
- <symbol draft="contributed">DZD</symbol>
- </currency>
- <currency type="ECS">
- <displayName>ecuadorianske sucre</displayName>
- <displayName count="one">ecuadoriansk sucre</displayName>
- <displayName count="other">ecuadorianske sucre</displayName>
- <symbol draft="contributed">ECS</symbol>
- </currency>
- <currency type="ECV">
- <displayName>ecuadorianske unidad de valor constante (UVC)</displayName>
- <displayName count="one">ecuadoriansk unidad de valor constante (UVC)</displayName>
- <displayName count="other">ecuadorianske unidad de valor constante (UVC)</displayName>
- <symbol draft="contributed">ECV</symbol>
- </currency>
- <currency type="EEK">
- <displayName>estiske kroon</displayName>
- <displayName count="one">estisk kroon</displayName>
- <displayName count="other">estiske kroner</displayName>
- <symbol draft="contributed">EEK</symbol>
- </currency>
- <currency type="EGP">
- <displayName>egyptiske pund</displayName>
- <displayName count="one">egyptisk pund</displayName>
- <displayName count="other">egyptiske pund</displayName>
- <symbol draft="contributed">EGP</symbol>
- <symbol alt="narrow" draft="contributed">E£</symbol>
- </currency>
- <currency type="ERN">
- <displayName>eritreiske nakfa</displayName>
- <displayName count="one">eritreisk nakfa</displayName>
- <displayName count="other">eritreiske nakfa</displayName>
- <symbol draft="contributed">ERN</symbol>
- </currency>
- <currency type="ESA">
- <displayName>spanske peseta (A–konto)</displayName>
- <displayName count="one">spansk peseta (A–konto)</displayName>
- <displayName count="other">spanske peseta (A–konto)</displayName>
- <symbol draft="contributed">ESA</symbol>
- </currency>
- <currency type="ESB">
- <displayName>spanske peseta (konvertibel konto)</displayName>
- <displayName count="one">spansk peseta (konvertibel konto)</displayName>
- <displayName count="other">spanske peseta (konvertibel konto)</displayName>
- <symbol draft="contributed">ESB</symbol>
- </currency>
- <currency type="ESP">
- <displayName>spanske peseta</displayName>
- <displayName count="one">spansk peseta</displayName>
- <displayName count="other">spanske peseta</displayName>
- <symbol draft="contributed">ESP</symbol>
- </currency>
- <currency type="ETB">
- <displayName>etiopiske birr</displayName>
- <displayName count="one">etiopisk birr</displayName>
- <displayName count="other">etiopiske birr</displayName>
- <symbol draft="contributed">ETB</symbol>
- </currency>
- <currency type="EUR">
- <displayName>euro</displayName>
- <displayName count="one">euro</displayName>
- <displayName count="other">euro</displayName>
- <symbol draft="contributed">€</symbol>
- <symbol alt="narrow" draft="contributed">€</symbol>
- </currency>
- <currency type="FIM">
- <displayName>finske mark</displayName>
- <displayName count="one">finsk mark</displayName>
- <displayName count="other">finske mark</displayName>
- <symbol draft="contributed">FIM</symbol>
- </currency>
- <currency type="FJD">
- <displayName>fijianske dollar</displayName>
- <displayName count="one">fijiansk dollar</displayName>
- <displayName count="other">fijianske dollar</displayName>
- <symbol draft="contributed">FJD</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="FKP">
- <displayName>falklandspund</displayName>
- <displayName count="one">falklandspund</displayName>
- <displayName count="other">falklandspund</displayName>
- <symbol draft="contributed">FKP</symbol>
- <symbol alt="narrow" draft="contributed">£</symbol>
- </currency>
- <currency type="FRF">
- <displayName>franske franc</displayName>
- <displayName count="one">fransk franc</displayName>
- <displayName count="other">franske franc</displayName>
- <symbol draft="contributed">FRF</symbol>
- </currency>
- <currency type="GBP">
- <displayName>britiske pund</displayName>
- <displayName count="one">britisk pund</displayName>
- <displayName count="other">britiske pund</displayName>
- <symbol draft="contributed">£</symbol>
- <symbol alt="narrow" draft="contributed">£</symbol>
- </currency>
- <currency type="GEK">
- <displayName>georgiske kupon larit</displayName>
- <displayName count="one">georgisk kupon larit</displayName>
- <displayName count="other">georgiske kupon larit</displayName>
- <symbol draft="contributed">GEK</symbol>
- </currency>
- <currency type="GEL">
- <displayName>georgiske lari</displayName>
- <displayName count="one">georgisk lari</displayName>
- <displayName count="other">georgiske lari</displayName>
- <symbol draft="contributed">GEL</symbol>
- <symbol alt="narrow" draft="contributed">₾</symbol>
- <symbol alt="variant" draft="contributed">₾</symbol>
- </currency>
- <currency type="GHC">
- <displayName>ghanesisk cedi (1979–2007)</displayName>
- <displayName count="one">ghanesisk cedi (1979–2007)</displayName>
- <displayName count="other">ghanesiske cedi (1979–2007)</displayName>
- <symbol draft="contributed">GHC</symbol>
- </currency>
- <currency type="GHS">
- <displayName>ghanesiske cedi</displayName>
- <displayName count="one">ghanesisk cedi</displayName>
- <displayName count="other">ghanesiske cedi</displayName>
- <symbol draft="contributed">GHS</symbol>
- <symbol alt="narrow" draft="contributed">↑↑↑</symbol>
- </currency>
- <currency type="GIP">
- <displayName>gibraltarske pund</displayName>
- <displayName count="one">gibraltarsk pund</displayName>
- <displayName count="other">gibraltarske pund</displayName>
- <symbol draft="contributed">GIP</symbol>
- <symbol alt="narrow" draft="contributed">£</symbol>
- </currency>
- <currency type="GMD">
- <displayName>gambiske dalasi</displayName>
- <displayName count="one">gambisk dalasi</displayName>
- <displayName count="other">gambiske dalasi</displayName>
- <symbol draft="contributed">GMD</symbol>
- </currency>
- <currency type="GNF">
- <displayName>guineanske franc</displayName>
- <displayName count="one">guineansk franc</displayName>
- <displayName count="other">guineanske franc</displayName>
- <symbol draft="contributed">GNF</symbol>
- <symbol alt="narrow" draft="contributed">FG</symbol>
- </currency>
- <currency type="GNS">
- <displayName>guineanske syli</displayName>
- <displayName count="one">guineansk syli</displayName>
- <displayName count="other">guineanske syli</displayName>
- <symbol draft="contributed">GNS</symbol>
- </currency>
- <currency type="GQE">
- <displayName>ekvatorialguineanske ekwele guineana</displayName>
- <displayName count="one">ekvatorialguineansk ekwele guineana</displayName>
- <displayName count="other">ekvatorialguineanske ekwele guineana</displayName>
- <symbol draft="contributed">GQE</symbol>
- </currency>
- <currency type="GRD">
- <displayName>greske drakmer</displayName>
- <displayName count="one">gresk drakme</displayName>
- <displayName count="other">greske drakmer</displayName>
- <symbol draft="contributed">GRD</symbol>
- </currency>
- <currency type="GTQ">
- <displayName>guatemalanske quetzal</displayName>
- <displayName count="one">guatemalansk quetzal</displayName>
- <displayName count="other">guatemalanske quetzal</displayName>
- <symbol draft="contributed">GTQ</symbol>
- <symbol alt="narrow" draft="contributed">Q</symbol>
- </currency>
- <currency type="GWE">
- <displayName>portugisiske guinea escudo</displayName>
- <displayName count="one">portugisisk guinea escudo</displayName>
- <displayName count="other">portugisiske guinea escudo</displayName>
- <symbol draft="contributed">GWE</symbol>
- </currency>
- <currency type="GWP">
- <displayName>Guinea-Bissau-pesos</displayName>
- <displayName count="one">Guinea-Bissau-pesos</displayName>
- <displayName count="other">Guinea-Bissau-pesos</displayName>
- <symbol draft="contributed">GWP</symbol>
- </currency>
- <currency type="GYD">
- <displayName>guyanske dollar</displayName>
- <displayName count="one">guyansk dollar</displayName>
- <displayName count="other">guyanske dollar</displayName>
- <symbol draft="contributed">GYD</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="HKD">
- <displayName>Hongkong-dollar</displayName>
- <displayName count="one">Hongkong-dollar</displayName>
- <displayName count="other">Hongkong-dollar</displayName>
- <symbol>HKD</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="HNL">
- <displayName>honduranske lempira</displayName>
- <displayName count="one">honduransk lempira</displayName>
- <displayName count="other">honduranske lempira</displayName>
- <symbol draft="contributed">HNL</symbol>
- <symbol alt="narrow" draft="contributed">L</symbol>
- </currency>
- <currency type="HRD">
- <displayName>kroatiske dinarer</displayName>
- <displayName count="one">kroatisk dinar</displayName>
- <displayName count="other">kroatiske dinarer</displayName>
- <symbol draft="contributed">HRD</symbol>
- </currency>
- <currency type="HRK">
- <displayName>kroatiske kuna</displayName>
- <displayName count="one">kroatisk kuna</displayName>
- <displayName count="other">kroatiske kuna</displayName>
- <symbol draft="contributed">HRK</symbol>
- <symbol alt="narrow" draft="contributed">kn</symbol>
- </currency>
- <currency type="HTG">
- <displayName>haitiske gourde</displayName>
- <displayName count="one">haitisk gourde</displayName>
- <displayName count="other">haitiske gourde</displayName>
- <symbol draft="contributed">HTG</symbol>
- </currency>
- <currency type="HUF">
- <displayName>ungarske forinter</displayName>
- <displayName count="one">ungarsk forint</displayName>
- <displayName count="other">ungarske forinter</displayName>
- <symbol draft="contributed">HUF</symbol>
- <symbol alt="narrow" draft="contributed">Ft</symbol>
- </currency>
- <currency type="IDR">
- <displayName>indonesiske rupier</displayName>
- <displayName count="one">indonesisk rupi</displayName>
- <displayName count="other">indonesiske rupier</displayName>
- <symbol draft="contributed">IDR</symbol>
- <symbol alt="narrow" draft="contributed">Rp</symbol>
- </currency>
- <currency type="IEP">
- <displayName>irske pund</displayName>
- <displayName count="one">irsk pund</displayName>
- <displayName count="other">irske pund</displayName>
- <symbol draft="contributed">IEP</symbol>
- </currency>
- <currency type="ILP">
- <displayName>israelske pund</displayName>
- <displayName count="one">israelsk pund</displayName>
- <displayName count="other">israelske pund</displayName>
- <symbol draft="contributed">ILP</symbol>
- </currency>
- <currency type="ILR">
- <displayName>israelske shekler (1980–1985)</displayName>
- <displayName count="one">israelsk shekel (1980–1985)</displayName>
- <displayName count="other">israelske shekler (1980–1985)</displayName>
- <symbol draft="contributed">ILR</symbol>
- </currency>
- <currency type="ILS">
- <displayName>nye israelske shekler</displayName>
- <displayName count="one">ny israelsk shekel</displayName>
- <displayName count="other">nye israelske shekler</displayName>
- <symbol>ILS</symbol>
- <symbol alt="narrow" draft="contributed">₪</symbol>
- </currency>
- <currency type="INR">
- <displayName>indiske rupier</displayName>
- <displayName count="one">indisk rupi</displayName>
- <displayName count="other">indiske rupier</displayName>
- <symbol>INR</symbol>
- <symbol alt="narrow" draft="contributed">₹</symbol>
- </currency>
- <currency type="IQD">
- <displayName>irakske dinarer</displayName>
- <displayName count="one">iraksk dinar</displayName>
- <displayName count="other">irakske dinarer</displayName>
- <symbol draft="contributed">IQD</symbol>
- </currency>
- <currency type="IRR">
- <displayName>iranske rialer</displayName>
- <displayName count="one">iransk rial</displayName>
- <displayName count="other">iranske rialer</displayName>
- <symbol draft="contributed">IRR</symbol>
- </currency>
- <currency type="ISJ">
- <displayName>islandske kroner (1918–1981)</displayName>
- <displayName count="one">islandsk krone (1918–1981)</displayName>
- <displayName count="other">islandske kroner (1918–1981)</displayName>
- </currency>
- <currency type="ISK">
- <displayName>islandske kroner</displayName>
- <displayName count="one">islandsk krone</displayName>
- <displayName count="other">islandske kroner</displayName>
- <symbol draft="contributed">ISK</symbol>
- <symbol alt="narrow" draft="contributed">kr</symbol>
- </currency>
- <currency type="ITL">
- <displayName>italienske lire</displayName>
- <displayName count="one">italiensk lire</displayName>
- <displayName count="other">italienske lire</displayName>
- <symbol draft="contributed">ITL</symbol>
- </currency>
- <currency type="JMD">
- <displayName>jamaikanske dollar</displayName>
- <displayName count="one">jamaikansk dollar</displayName>
- <displayName count="other">jamaikanske dollar</displayName>
- <symbol draft="contributed">JMD</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="JOD">
- <displayName>jordanske dinarer</displayName>
- <displayName count="one">jordansk dinar</displayName>
- <displayName count="other">jordanske dinarer</displayName>
- <symbol draft="contributed">JOD</symbol>
- </currency>
- <currency type="JPY">
- <displayName>japanske yen</displayName>
- <displayName count="one">japansk yen</displayName>
- <displayName count="other">japanske yen</displayName>
- <symbol>JPY</symbol>
- <symbol alt="narrow" draft="contributed">¥</symbol>
- </currency>
- <currency type="KES">
- <displayName>kenyanske shilling</displayName>
- <displayName count="one">kenyansk shilling</displayName>
- <displayName count="other">kenyanske shilling</displayName>
- <symbol draft="contributed">KES</symbol>
- </currency>
- <currency type="KGS">
- <displayName>kirgisiske som</displayName>
- <displayName count="one">kirgisisk som</displayName>
- <displayName count="other">kirgisiske som</displayName>
- <symbol draft="contributed">KGS</symbol>
- </currency>
- <currency type="KHR">
- <displayName>kambodsjanske riel</displayName>
- <displayName count="one">kambodsjansk riel</displayName>
- <displayName count="other">kambodsjanske riel</displayName>
- <symbol draft="contributed">KHR</symbol>
- <symbol alt="narrow" draft="contributed">៛</symbol>
- </currency>
- <currency type="KMF">
- <displayName>komoriske franc</displayName>
- <displayName count="one">komorisk franc</displayName>
- <displayName count="other">komoriske franc</displayName>
- <symbol draft="contributed">KMF</symbol>
- <symbol alt="narrow" draft="contributed">CF</symbol>
- </currency>
- <currency type="KPW">
- <displayName>nordkoreanske won</displayName>
- <displayName count="one">nordkoreansk won</displayName>
- <displayName count="other">nordkoreanske won</displayName>
- <symbol draft="contributed">KPW</symbol>
- <symbol alt="narrow" draft="contributed">₩</symbol>
- </currency>
- <currency type="KRH">
- <displayName draft="contributed">sørkoreanske hwan (1953–1962)</displayName>
- <displayName count="one" draft="contributed">sørkoreansk hwan (1953–1962)</displayName>
- <displayName count="other" draft="contributed">sørkoreanske hwan (1953–1962)</displayName>
- <symbol draft="contributed">KRH</symbol>
- </currency>
- <currency type="KRO">
- <displayName draft="contributed">sørkoreanske won (1945–1953)</displayName>
- <displayName count="one" draft="contributed">sørkoreansk won (1945–1953)</displayName>
- <displayName count="other" draft="contributed">sørkoreanske won (1945–1953)</displayName>
- <symbol draft="contributed">KRO</symbol>
- </currency>
- <currency type="KRW">
- <displayName>sørkoreanske won</displayName>
- <displayName count="one">sørkoreansk won</displayName>
- <displayName count="other">sørkoreanske won</displayName>
- <symbol>KRW</symbol>
- <symbol alt="narrow" draft="contributed">₩</symbol>
- </currency>
- <currency type="KWD">
- <displayName>kuwaitiske dinarer</displayName>
- <displayName count="one">kuwaitisk dinar</displayName>
- <displayName count="other">kuwaitiske dinarer</displayName>
- <symbol draft="contributed">KWD</symbol>
- </currency>
- <currency type="KYD">
- <displayName>caymanske dollar</displayName>
- <displayName count="one">caymansk dollar</displayName>
- <displayName count="other">caymanske dollar</displayName>
- <symbol draft="contributed">KYD</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="KZT">
- <displayName>kasakhstanske tenge</displayName>
- <displayName count="one">kasakhstansk tenge</displayName>
- <displayName count="other">kasakhstanske tenge</displayName>
- <symbol draft="contributed">KZT</symbol>
- <symbol alt="narrow" draft="contributed">₸</symbol>
- </currency>
- <currency type="LAK">
- <displayName>laotiske kip</displayName>
- <displayName count="one">laotisk kip</displayName>
- <displayName count="other">laotiske kip</displayName>
- <symbol draft="contributed">LAK</symbol>
- <symbol alt="narrow" draft="contributed">₭</symbol>
- </currency>
- <currency type="LBP">
- <displayName>libanesiske pund</displayName>
- <displayName count="one">libanesisk pund</displayName>
- <displayName count="other">libanesiske pund</displayName>
- <symbol draft="contributed">LBP</symbol>
- <symbol alt="narrow" draft="contributed">L£</symbol>
- </currency>
- <currency type="LKR">
- <displayName>srilankiske rupier</displayName>
- <displayName count="one">srilankisk rupi</displayName>
- <displayName count="other">srilankiske rupier</displayName>
- <symbol draft="contributed">LKR</symbol>
- <symbol alt="narrow" draft="contributed">Rs</symbol>
- </currency>
- <currency type="LRD">
- <displayName>liberiske dollar</displayName>
- <displayName count="one">liberisk dollar</displayName>
- <displayName count="other">liberiske dollar</displayName>
- <symbol draft="contributed">LRD</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="LSL">
- <displayName>lesothiske loti</displayName>
- <displayName count="one">lesothisk loti</displayName>
- <displayName count="other">lesothiske loti</displayName>
- <symbol draft="contributed">LSL</symbol>
- </currency>
- <currency type="LTL">
- <displayName>litauiske litas</displayName>
- <displayName count="one">litauisk lita</displayName>
- <displayName count="other">litauiske lita</displayName>
- <symbol draft="contributed">LTL</symbol>
- <symbol alt="narrow" draft="contributed">Lt</symbol>
- </currency>
- <currency type="LTT">
- <displayName>litauiske talonas</displayName>
- <displayName count="one">litauisk talonas</displayName>
- <displayName count="other">litauiske talonas</displayName>
- <symbol draft="contributed">LTT</symbol>
- </currency>
- <currency type="LUC">
- <displayName>luxemburgske konvertible franc</displayName>
- <displayName count="one">luxemburgsk konvertibel franc</displayName>
- <displayName count="other">luxemburgske konvertible franc</displayName>
- <symbol draft="contributed">LUC</symbol>
- </currency>
- <currency type="LUF">
- <displayName>luxemburgske franc</displayName>
- <displayName count="one">luxemburgsk franc</displayName>
- <displayName count="other">luxemburgske franc</displayName>
- <symbol draft="contributed">LUF</symbol>
- </currency>
- <currency type="LUL">
- <displayName>luxemburgske finansielle franc</displayName>
- <displayName count="one">luxemburgsk finansiell franc</displayName>
- <displayName count="other">luxemburgske finansielle franc</displayName>
- <symbol draft="contributed">LUL</symbol>
- </currency>
- <currency type="LVL">
- <displayName>latviske lats</displayName>
- <displayName count="one">latvisk lats</displayName>
- <displayName count="other">latviske lats</displayName>
- <symbol draft="contributed">LVL</symbol>
- <symbol alt="narrow" draft="contributed">Ls</symbol>
- </currency>
- <currency type="LVR">
- <displayName>latviske rubler</displayName>
- <displayName count="one">latvisk rubel</displayName>
- <displayName count="other">latviske rubler</displayName>
- <symbol draft="contributed">LVR</symbol>
- </currency>
- <currency type="LYD">
- <displayName>libyske dinarer</displayName>
- <displayName count="one">libysk dinar</displayName>
- <displayName count="other">libyske dinarer</displayName>
- <symbol draft="contributed">LYD</symbol>
- </currency>
- <currency type="MAD">
- <displayName>marokkanske dirham</displayName>
- <displayName count="one">marokkansk dirham</displayName>
- <displayName count="other">marokkanske dirham</displayName>
- <symbol draft="contributed">MAD</symbol>
- </currency>
- <currency type="MAF">
- <displayName>marokkanske franc</displayName>
- <displayName count="one">marokkansk franc</displayName>
- <displayName count="other">marokkanske franc</displayName>
- <symbol draft="contributed">MAF</symbol>
- </currency>
- <currency type="MCF">
- <displayName draft="contributed">monegaskiske franc</displayName>
- <displayName count="one">monegaskisk franc</displayName>
- <displayName count="other">monegaskiske franc</displayName>
- <symbol draft="contributed">MCF</symbol>
- </currency>
- <currency type="MDC">
- <displayName draft="contributed">moldovske cupon</displayName>
- <displayName count="one" draft="contributed">moldovsk cupon</displayName>
- <displayName count="other" draft="contributed">moldovske cupon</displayName>
- <symbol draft="contributed">MDC</symbol>
- </currency>
- <currency type="MDL">
- <displayName>moldovske leu</displayName>
- <displayName count="one">moldovsk leu</displayName>
- <displayName count="other">moldovske lei</displayName>
- <symbol draft="contributed">MDL</symbol>
- </currency>
- <currency type="MGA">
- <displayName>madagassiske ariary</displayName>
- <displayName count="one">madagassisk ariary</displayName>
- <displayName count="other">madagassiske ariary</displayName>
- <symbol draft="contributed">MGA</symbol>
- <symbol alt="narrow" draft="contributed">Ar</symbol>
- </currency>
- <currency type="MGF">
- <displayName>madagassiske franc</displayName>
- <displayName count="one">madagassisk franc</displayName>
- <displayName count="other">madagassiske franc</displayName>
- </currency>
- <currency type="MKD">
- <displayName>makedonske denarer</displayName>
- <displayName count="one">makedonsk denar</displayName>
- <displayName count="other">makedonske denarer</displayName>
- <symbol draft="contributed">MKD</symbol>
- </currency>
- <currency type="MKN">
- <displayName draft="contributed">makedonske denarer (1992–1993)</displayName>
- <displayName count="one" draft="contributed">makedonsk denar (1992–1993)</displayName>
- <displayName count="other" draft="contributed">makedonske denarer (1992–1993)</displayName>
- <symbol draft="contributed">MKN</symbol>
- </currency>
- <currency type="MLF">
- <displayName>maliske franc</displayName>
- <displayName count="one">malisk franc</displayName>
- <displayName count="other">maliske franc</displayName>
- <symbol draft="contributed">MLF</symbol>
- </currency>
- <currency type="MMK">
- <displayName>myanmarske kyat</displayName>
- <displayName count="one">myanmarsk kyat</displayName>
- <displayName count="other">myanmarske kyat</displayName>
- <symbol draft="contributed">MMK</symbol>
- <symbol alt="narrow" draft="contributed">K</symbol>
- </currency>
- <currency type="MNT">
- <displayName>mongolske tugrik</displayName>
- <displayName count="one">mongolsk tugrik</displayName>
- <displayName count="other">mongolske tugrik</displayName>
- <symbol draft="contributed">MNT</symbol>
- <symbol alt="narrow" draft="contributed">₮</symbol>
- </currency>
- <currency type="MOP">
- <displayName>makaoiske pataca</displayName>
- <displayName count="one">makaoisk pataca</displayName>
- <displayName count="other">makaoiske pataca</displayName>
- <symbol draft="contributed">MOP</symbol>
- </currency>
- <currency type="MRO">
- <displayName>mauritanske ouguiya (1973–2017)</displayName>
- <displayName count="one">mauritansk ouguiya (1973–2017)</displayName>
- <displayName count="other">mauritanske ouguiya (1973–2017)</displayName>
- <symbol draft="contributed">MRO</symbol>
- </currency>
- <currency type="MRU">
- <displayName>mauritanske ouguiya</displayName>
- <displayName count="one">mauritansk ouguiya</displayName>
- <displayName count="other">mauritanske ouguiya</displayName>
- <symbol draft="contributed">↑↑↑</symbol>
- </currency>
- <currency type="MTL">
- <displayName>maltesiske lira</displayName>
- <displayName count="one">maltesisk lira</displayName>
- <displayName count="other">maltesiske lira</displayName>
- <symbol draft="contributed">MTL</symbol>
- </currency>
- <currency type="MTP">
- <displayName>maltesiske pund</displayName>
- <displayName count="one">maltesisk pund</displayName>
- <displayName count="other">maltesiske pund</displayName>
- <symbol draft="contributed">MTP</symbol>
- </currency>
- <currency type="MUR">
- <displayName>mauritiske rupier</displayName>
- <displayName count="one">mauritisk rupi</displayName>
- <displayName count="other">mauritiske rupier</displayName>
- <symbol draft="contributed">MUR</symbol>
- <symbol alt="narrow" draft="contributed">Rs</symbol>
- </currency>
- <currency type="MVP">
- <displayName draft="contributed">maldiviske rupier</displayName>
- <displayName count="one" draft="contributed">maldivisk rupi</displayName>
- <displayName count="other" draft="contributed">maldiviske rupier</displayName>
- <symbol draft="contributed">MVP</symbol>
- </currency>
- <currency type="MVR">
- <displayName>maldiviske rufiyaa</displayName>
- <displayName count="one">maldivisk rufiyaa</displayName>
- <displayName count="other">maldiviske rufiyaa</displayName>
- <symbol draft="contributed">MVR</symbol>
- </currency>
- <currency type="MWK">
- <displayName>malawiske kwacha</displayName>
- <displayName count="one">malawisk kwacha</displayName>
- <displayName count="other">malawiske kwacha</displayName>
- <symbol draft="contributed">MWK</symbol>
- </currency>
- <currency type="MXN">
- <displayName>meksikanske pesos</displayName>
- <displayName count="one">meksikansk peso</displayName>
- <displayName count="other">meksikanske pesos</displayName>
- <symbol>MXN</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="MXP">
- <displayName>meksikanske sølvpesos (1861–1992)</displayName>
- <displayName count="one">meksikansk sølvpesos (1860–1992)</displayName>
- <displayName count="other">meksikanske sølvpesos (1860–1992)</displayName>
- <symbol draft="contributed">MXP</symbol>
- </currency>
- <currency type="MXV">
- <displayName>meksikanske unidad de inversion (UDI)</displayName>
- <displayName count="one">meksikansk unidad de inversion (UDI)</displayName>
- <displayName count="other">meksikanske unidad de inversion (UDI)</displayName>
- <symbol draft="contributed">MXV</symbol>
- </currency>
- <currency type="MYR">
- <displayName>malaysiske ringgit</displayName>
- <displayName count="one">malaysisk ringgit</displayName>
- <displayName count="other">malaysiske ringgit</displayName>
- <symbol draft="contributed">MYR</symbol>
- <symbol alt="narrow" draft="contributed">RM</symbol>
- </currency>
- <currency type="MZE">
- <displayName>mosambikiske escudo</displayName>
- <displayName count="one">mosambikisk escudo</displayName>
- <displayName count="other">mosambikiske escudo</displayName>
- <symbol draft="contributed">MZE</symbol>
- </currency>
- <currency type="MZM">
- <displayName>gamle mosambikiske metical</displayName>
- <displayName count="one">gammel mosambikisk metical</displayName>
- <displayName count="other">gamle mosambikiske metical</displayName>
- <symbol draft="contributed">MZM</symbol>
- </currency>
- <currency type="MZN">
- <displayName>mosambikiske metical</displayName>
- <displayName count="one">mosambikisk metical</displayName>
- <displayName count="other">mosambikiske metical</displayName>
- <symbol draft="contributed">MZN</symbol>
- </currency>
- <currency type="NAD">
- <displayName>namibiske dollar</displayName>
- <displayName count="one">namibisk dollar</displayName>
- <displayName count="other">namibiske dollar</displayName>
- <symbol draft="contributed">NAD</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="NGN">
- <displayName>nigerianske naira</displayName>
- <displayName count="one">nigeriansk naira</displayName>
- <displayName count="other">nigerianske naira</displayName>
- <symbol draft="contributed">NGN</symbol>
- <symbol alt="narrow" draft="contributed">₦</symbol>
- </currency>
- <currency type="NIC">
- <displayName>nicaraguanske cordoba (1988–1991)</displayName>
- <displayName count="one">nicaraguansk cordoba (1988–1991)</displayName>
- <displayName count="other">nicaraguanske cordoba (1988–1991)</displayName>
- <symbol draft="contributed">NIC</symbol>
- </currency>
- <currency type="NIO">
- <displayName>nicaraguanske córdoba</displayName>
- <displayName count="one">nicaraguansk córdoba</displayName>
- <displayName count="other">nicaraguanske córdoba</displayName>
- <symbol draft="contributed">NIO</symbol>
- <symbol alt="narrow" draft="contributed">C$</symbol>
- </currency>
- <currency type="NLG">
- <displayName>nederlandske gylden</displayName>
- <displayName count="one">nederlandsk gylden</displayName>
- <displayName count="other">nederlandske gylden</displayName>
- <symbol draft="contributed">NLG</symbol>
- </currency>
- <currency type="NOK">
- <displayName>norske kroner</displayName>
- <displayName count="one">norsk krone</displayName>
- <displayName count="other">norske kroner</displayName>
- <symbol>kr</symbol>
- <symbol alt="narrow" draft="contributed">kr</symbol>
- </currency>
- <currency type="NPR">
- <displayName>nepalske rupier</displayName>
- <displayName count="one">nepalsk rupi</displayName>
- <displayName count="other">nepalske rupier</displayName>
- <symbol draft="contributed">NPR</symbol>
- <symbol alt="narrow" draft="contributed">Rs</symbol>
- </currency>
- <currency type="NZD">
- <displayName>newzealandske dollar</displayName>
- <displayName count="one">newzealandsk dollar</displayName>
- <displayName count="other">newzealandske dollar</displayName>
- <symbol>NZD</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="OMR">
- <displayName>omanske rialer</displayName>
- <displayName count="one">omansk rial</displayName>
- <displayName count="other">omanske rialer</displayName>
- <symbol draft="contributed">OMR</symbol>
- </currency>
- <currency type="PAB">
- <displayName>panamanske balboa</displayName>
- <displayName count="one">panamansk balboa</displayName>
- <displayName count="other">panamanske balboa</displayName>
- <symbol draft="contributed">PAB</symbol>
- </currency>
- <currency type="PEI">
- <displayName>peruanske inti</displayName>
- <displayName count="one">peruansk inti</displayName>
- <displayName count="other">peruanske inti</displayName>
- <symbol draft="contributed">PEI</symbol>
- </currency>
- <currency type="PEN">
- <displayName>peruanske sol</displayName>
- <displayName count="one">peruansk sol</displayName>
- <displayName count="other">peruanske sol</displayName>
- <symbol draft="contributed">PEN</symbol>
- </currency>
- <currency type="PES">
- <displayName>peruanske sol (1863–1965)</displayName>
- <displayName count="one">peruansk sol (1863–1965)</displayName>
- <displayName count="other">peruanske sol (1863–1965)</displayName>
- <symbol draft="contributed">PES</symbol>
- </currency>
- <currency type="PGK">
- <displayName>papuanske kina</displayName>
- <displayName count="one">papuansk kina</displayName>
- <displayName count="other">papuanske kina</displayName>
- <symbol draft="contributed">PGK</symbol>
- </currency>
- <currency type="PHP">
- <displayName>filippinske pesos</displayName>
- <displayName count="one">filippinsk peso</displayName>
- <displayName count="other">filippinske pesos</displayName>
- <symbol draft="contributed">PHP</symbol>
- <symbol alt="narrow" draft="contributed">₱</symbol>
- </currency>
- <currency type="PKR">
- <displayName>pakistanske rupier</displayName>
- <displayName count="one">pakistansk rupi</displayName>
- <displayName count="other">pakistanske rupier</displayName>
- <symbol draft="contributed">PKR</symbol>
- <symbol alt="narrow" draft="contributed">Rs</symbol>
- </currency>
- <currency type="PLN">
- <displayName>polske zloty</displayName>
- <displayName count="one">polsk zloty</displayName>
- <displayName count="other">polske zloty</displayName>
- <symbol draft="contributed">PLN</symbol>
- <symbol alt="narrow" draft="contributed">zł</symbol>
- </currency>
- <currency type="PLZ">
- <displayName>polske zloty (1950–1995)</displayName>
- <displayName count="one">polsk zloty (1950–1995)</displayName>
- <displayName count="other">polske zloty (1950–1995)</displayName>
- <symbol draft="contributed">PLZ</symbol>
- </currency>
- <currency type="PTE">
- <displayName>portugisiske escudo</displayName>
- <displayName count="one">portugisisk escudo</displayName>
- <displayName count="other">portugisiske escudo</displayName>
- <symbol draft="contributed">PTE</symbol>
- </currency>
- <currency type="PYG">
- <displayName>paraguayanske guarani</displayName>
- <displayName count="one">paraguayansk guarani</displayName>
- <displayName count="other">paraguayanske guarani</displayName>
- <symbol draft="contributed">PYG</symbol>
- <symbol alt="narrow" draft="contributed">₲</symbol>
- </currency>
- <currency type="QAR">
- <displayName>qatarske rialer</displayName>
- <displayName count="one">qatarsk rial</displayName>
- <displayName count="other">qatarske rialer</displayName>
- <symbol draft="contributed">QAR</symbol>
- </currency>
- <currency type="RHD">
- <displayName>rhodesiske dollar</displayName>
- <displayName count="one">rhodesisk dollar</displayName>
- <displayName count="other">rhodesiske dollar</displayName>
- <symbol draft="contributed">RHD</symbol>
- </currency>
- <currency type="ROL">
- <displayName>rumenske leu (1952–2006)</displayName>
- <displayName count="one">rumensk leu (1952–2006)</displayName>
- <displayName count="other">rumenske leu (1952–2006)</displayName>
- <symbol draft="contributed">ROL</symbol>
- </currency>
- <currency type="RON">
- <displayName>rumenske leu</displayName>
- <displayName count="one">rumensk leu</displayName>
- <displayName count="other">rumenske lei</displayName>
- <symbol draft="contributed">RON</symbol>
- <symbol alt="narrow" draft="contributed">L</symbol>
- </currency>
- <currency type="RSD">
- <displayName>serbiske dinarer</displayName>
- <displayName count="one">serbisk dinar</displayName>
- <displayName count="other">serbiske dinarer</displayName>
- <symbol draft="contributed">RSD</symbol>
- </currency>
- <currency type="RUB">
- <displayName>russiske rubler</displayName>
- <displayName count="one">russisk rubel</displayName>
- <displayName count="other">russiske rubler</displayName>
- <symbol draft="contributed">RUB</symbol>
- <symbol alt="narrow" draft="contributed">₽</symbol>
- </currency>
- <currency type="RUR">
- <displayName>russiske rubler (1991–1998)</displayName>
- <displayName count="one">russisk rubel (1991–1998)</displayName>
- <displayName count="other">russiske rubler (1991–1998)</displayName>
- <symbol draft="contributed">RUR</symbol>
- </currency>
- <currency type="RWF">
- <displayName>rwandiske franc</displayName>
- <displayName count="one">rwandisk franc</displayName>
- <displayName count="other">rwandiske franc</displayName>
- <symbol draft="contributed">RWF</symbol>
- <symbol alt="narrow" draft="contributed">RF</symbol>
- </currency>
- <currency type="SAR">
- <displayName>saudiarabiske riyaler</displayName>
- <displayName count="one">saudiarabisk riyal</displayName>
- <displayName count="other">saudiarabiske riyaler</displayName>
- <symbol draft="contributed">SAR</symbol>
- </currency>
- <currency type="SBD">
- <displayName>salomonske dollar</displayName>
- <displayName count="one">salomonsk dollar</displayName>
- <displayName count="other">salomonske dollar</displayName>
- <symbol draft="contributed">SBD</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="SCR">
- <displayName>seychelliske rupier</displayName>
- <displayName count="one">seychellisk rupi</displayName>
- <displayName count="other">seychelliske rupier</displayName>
- <symbol draft="contributed">SCR</symbol>
- </currency>
- <currency type="SDD">
- <displayName>sudanesiske dinarer (1992–2007)</displayName>
- <displayName count="one">sudanesisk dinar (1992–2007)</displayName>
- <displayName count="other">sudanesiske dinarer (1992–2007)</displayName>
- <symbol draft="contributed">SDD</symbol>
- </currency>
- <currency type="SDG">
- <displayName>sudanske pund</displayName>
- <displayName count="one">sudansk pund</displayName>
- <displayName count="other">sudanske pund</displayName>
- <symbol draft="contributed">SDG</symbol>
- </currency>
- <currency type="SDP">
- <displayName>sudanesiske pund</displayName>
- <displayName count="one">sudansk pund (1957–1998)</displayName>
- <displayName count="other">sudanske pund (1957–1998)</displayName>
- <symbol draft="contributed">SDP</symbol>
- </currency>
- <currency type="SEK">
- <displayName>svenske kroner</displayName>
- <displayName count="one">svensk krone</displayName>
- <displayName count="other">svenske kroner</displayName>
- <symbol draft="contributed">SEK</symbol>
- <symbol alt="narrow" draft="contributed">kr</symbol>
- </currency>
- <currency type="SGD">
- <displayName>singaporske dollar</displayName>
- <displayName count="one">singaporsk dollar</displayName>
- <displayName count="other">singaporske dollar</displayName>
- <symbol draft="contributed">SGD</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="SHP">
- <displayName>sankthelenske pund</displayName>
- <displayName count="one">sankthelensk pund</displayName>
- <displayName count="other">sankthelenske pund</displayName>
- <symbol draft="contributed">SHP</symbol>
- <symbol alt="narrow" draft="contributed">£</symbol>
- </currency>
- <currency type="SIT">
- <displayName>slovenske tolar</displayName>
- <displayName count="one">slovensk tolar</displayName>
- <displayName count="other">slovenske tolar</displayName>
- <symbol draft="contributed">SIT</symbol>
- </currency>
- <currency type="SKK">
- <displayName>slovakiske koruna</displayName>
- <displayName count="one">slovakisk koruna</displayName>
- <displayName count="other">slovakiske koruna</displayName>
- <symbol draft="contributed">SKK</symbol>
- </currency>
- <currency type="SLL">
- <displayName>sierraleonske leone</displayName>
- <displayName count="one">sierraleonsk leone</displayName>
- <displayName count="other">sierraleonske leone</displayName>
- <symbol draft="contributed">SLL</symbol>
- </currency>
- <currency type="SOS">
- <displayName>somaliske shilling</displayName>
- <displayName count="one">somalisk shilling</displayName>
- <displayName count="other">somaliske shilling</displayName>
- <symbol draft="contributed">SOS</symbol>
- </currency>
- <currency type="SRD">
- <displayName>surinamske dollar</displayName>
- <displayName count="one">surinamsk dollar</displayName>
- <displayName count="other">surinamske dollar</displayName>
- <symbol draft="contributed">SRD</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="SRG">
- <displayName>surinamske gylden</displayName>
- <displayName count="one">surinamsk gylden</displayName>
- <displayName count="other">surinamske gylden</displayName>
- <symbol draft="contributed">SRG</symbol>
- </currency>
- <currency type="SSP">
- <displayName>sørsudanske pund</displayName>
- <displayName count="one">sørsudansk pund</displayName>
- <displayName count="other">sørsudanske pund</displayName>
- <symbol draft="contributed">SSP</symbol>
- <symbol alt="narrow" draft="contributed">£</symbol>
- </currency>
- <currency type="STD">
- <displayName>saotomesiske dobra (1977–2017)</displayName>
- <displayName count="one">saotomesisk dobra (1977–2017)</displayName>
- <displayName count="other">saotomesiske dobra (1977–2017)</displayName>
- <symbol draft="contributed">STD</symbol>
- </currency>
- <currency type="STN">
- <displayName>saotomesiske dobra</displayName>
- <displayName count="one">saotomesisk dobra</displayName>
- <displayName count="other">saotomesiske dobra</displayName>
- <symbol draft="contributed">STN</symbol>
- <symbol alt="narrow" draft="contributed">↑↑↑</symbol>
- </currency>
- <currency type="SUR">
- <displayName>sovjetiske rubler</displayName>
- <displayName count="one">sovjetisk rubel</displayName>
- <displayName count="other">sovjetiske rubler</displayName>
- <symbol draft="contributed">SUR</symbol>
- </currency>
- <currency type="SVC">
- <displayName>salvadoranske colon</displayName>
- <displayName count="one">salvadoransk colon</displayName>
- <displayName count="other">salvadoranske colon</displayName>
- <symbol draft="contributed">SVC</symbol>
- </currency>
- <currency type="SYP">
- <displayName>syriske pund</displayName>
- <displayName count="one">syrisk pund</displayName>
- <displayName count="other">syriske pund</displayName>
- <symbol draft="contributed">SYP</symbol>
- <symbol alt="narrow" draft="contributed">£</symbol>
- </currency>
- <currency type="SZL">
- <displayName>swazilandske lilangeni</displayName>
- <displayName count="one">swazilandsk lilangeni</displayName>
- <displayName count="other">swazilandske lilangeni</displayName>
- <symbol draft="contributed">SZL</symbol>
- </currency>
- <currency type="THB">
- <displayName>thailandske baht</displayName>
- <displayName count="one">thailandsk baht</displayName>
- <displayName count="other">thailandske baht</displayName>
- <symbol draft="contributed">THB</symbol>
- <symbol alt="narrow" draft="contributed">฿</symbol>
- </currency>
- <currency type="TJR">
- <displayName>tadsjikiske rubler</displayName>
- <displayName count="one">tadsjikisk rubel</displayName>
- <displayName count="other">tadsjikiske rubler</displayName>
- <symbol draft="contributed">TJR</symbol>
- </currency>
- <currency type="TJS">
- <displayName>tadsjikiske somoni</displayName>
- <displayName count="one">tadsjikisk somoni</displayName>
- <displayName count="other">tadsjikiske somoni</displayName>
- <symbol draft="contributed">TJS</symbol>
- </currency>
- <currency type="TMM">
- <displayName>turkmenske manat (1993–2009)</displayName>
- <displayName count="one">turkmensk manat (1993–2009)</displayName>
- <displayName count="other">turkmenske manat (1993–2009)</displayName>
- <symbol draft="contributed">TMM</symbol>
- </currency>
- <currency type="TMT">
- <displayName>turkmenske manat</displayName>
- <displayName count="one">turkmensk manat</displayName>
- <displayName count="other">turkmenske manat</displayName>
- <symbol draft="contributed">TMT</symbol>
- </currency>
- <currency type="TND">
- <displayName>tunisiske dinarer</displayName>
- <displayName count="one">tunisisk dinar</displayName>
- <displayName count="other">tunisiske dinarer</displayName>
- <symbol draft="contributed">TND</symbol>
- </currency>
- <currency type="TOP">
- <displayName>tonganske paʻanga</displayName>
- <displayName count="one">tongansk paʻanga</displayName>
- <displayName count="other">tonganske paʻanga</displayName>
- <symbol draft="contributed">TOP</symbol>
- <symbol alt="narrow" draft="contributed">T$</symbol>
- </currency>
- <currency type="TPE">
- <displayName>timoresiske escudo</displayName>
- <displayName count="one">timoresisk escudo</displayName>
- <displayName count="other">timoresiske escudo</displayName>
- <symbol draft="contributed">TPE</symbol>
- </currency>
- <currency type="TRL">
- <displayName>tyrkiske lire (1922–2005)</displayName>
- <displayName count="one">tyrkisk lire (1922–2005)</displayName>
- <displayName count="other">tyrkiske lire (1922–2005)</displayName>
- <symbol draft="contributed">TRL</symbol>
- </currency>
- <currency type="TRY">
- <displayName>tyrkiske lire</displayName>
- <displayName count="one">tyrkisk lire</displayName>
- <displayName count="other">tyrkiske lire</displayName>
- <symbol draft="contributed">TRY</symbol>
- <symbol alt="narrow" draft="contributed">₺</symbol>
- <symbol alt="variant" draft="contributed">TL</symbol>
- </currency>
- <currency type="TTD">
- <displayName>trinidadiske dollar</displayName>
- <displayName count="one">trinidadisk dollar</displayName>
- <displayName count="other">trinidadiske dollar</displayName>
- <symbol draft="contributed">TTD</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="TWD">
- <displayName>nye taiwanske dollar</displayName>
- <displayName count="one">ny taiwansk dollar</displayName>
- <displayName count="other">nye taiwanske dollar</displayName>
- <symbol>TWD</symbol>
- <symbol alt="narrow" draft="contributed">NT$</symbol>
- </currency>
- <currency type="TZS">
- <displayName>tanzanianske shilling</displayName>
- <displayName count="one">tanzaniansk shilling</displayName>
- <displayName count="other">tanzanianske shilling</displayName>
- <symbol draft="contributed">TZS</symbol>
- </currency>
- <currency type="UAH">
- <displayName>ukrainske hryvnia</displayName>
- <displayName count="one">ukrainsk hryvnia</displayName>
- <displayName count="other">ukrainske hryvnia</displayName>
- <symbol draft="contributed">UAH</symbol>
- <symbol alt="narrow" draft="contributed">₴</symbol>
- </currency>
- <currency type="UAK">
- <displayName>ukrainske karbovanetz</displayName>
- <displayName count="one">ukrainsk karbovanetz</displayName>
- <displayName count="other">ukrainske karbovanetz</displayName>
- <symbol draft="contributed">UAK</symbol>
- </currency>
- <currency type="UGS">
- <displayName>ugandiske shilling (1966–1987)</displayName>
- <displayName count="one">ugandisk shilling (1966–1987)</displayName>
- <displayName count="other">ugandiske shilling (1966–1987)</displayName>
- <symbol draft="contributed">UGS</symbol>
- </currency>
- <currency type="UGX">
- <displayName>ugandiske shilling</displayName>
- <displayName count="one">ugandisk shilling</displayName>
- <displayName count="other">ugandiske shilling</displayName>
- <symbol draft="contributed">UGX</symbol>
- </currency>
- <currency type="USD">
- <displayName>amerikanske dollar</displayName>
- <displayName count="one">amerikansk dollar</displayName>
- <displayName count="other">amerikanske dollar</displayName>
- <symbol>USD</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="USN">
- <displayName>amerikanske dollar (neste dag)</displayName>
- <displayName count="one">amerikansk dollar (neste dag)</displayName>
- <displayName count="other">amerikanske dollar (neste dag)</displayName>
- <symbol draft="contributed">USN</symbol>
- </currency>
- <currency type="USS">
- <displayName>amerikanske dollar (samme dag)</displayName>
- <displayName count="one">amerikansk dollar (samme dag)</displayName>
- <displayName count="other">amerikanske dollar (samme dag)</displayName>
- <symbol draft="contributed">USS</symbol>
- </currency>
- <currency type="UYI">
- <displayName draft="contributed">uruguyanske pesos (indekserte enheter)</displayName>
- <displayName count="one" draft="contributed">uruguyanske pesos (indekserte enheter)</displayName>
- <displayName count="other" draft="contributed">uruguyanske pesos (indekserte enheter)</displayName>
- <symbol draft="contributed">UYI</symbol>
- </currency>
- <currency type="UYP">
- <displayName>uruguayanske pesos (1975–1993)</displayName>
- <displayName count="one">uruguayansk peso (1975–1993)</displayName>
- <displayName count="other">uruguayanske pesos (1975–1993)</displayName>
- <symbol draft="contributed">UYP</symbol>
- </currency>
- <currency type="UYU">
- <displayName>uruguayanske pesos</displayName>
- <displayName count="one">uruguyansk peso</displayName>
- <displayName count="other">uruguayanske pesos</displayName>
- <symbol draft="contributed">UYU</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="UZS">
- <displayName>usbekiske som</displayName>
- <displayName count="one">usbekisk som</displayName>
- <displayName count="other">usbekiske som</displayName>
- <symbol draft="contributed">UZS</symbol>
- </currency>
- <currency type="VEB">
- <displayName>venezuelanske bolivar (1871–2008)</displayName>
- <displayName count="one">venezuelansk bolivar (1871–2008)</displayName>
- <displayName count="other">venezuelanske bolivar (1871–2008)</displayName>
- <symbol draft="contributed">VEB</symbol>
- </currency>
- <currency type="VEF">
- <displayName>venezuelanske bolivar (2008–2018)</displayName>
- <displayName count="one">venezuelansk bolivar (2008–2018)</displayName>
- <displayName count="other">venezuelanske bolivar (2008–2018)</displayName>
- <symbol draft="contributed">VEF</symbol>
- <symbol alt="narrow" draft="contributed">Bs</symbol>
- </currency>
- <currency type="VES">
- <displayName>venezuelanske bolivar</displayName>
- <displayName count="one">venezuelansk bolivar</displayName>
- <displayName count="other">venezuelanske bolivar</displayName>
- <symbol draft="contributed">VES</symbol>
- </currency>
- <currency type="VND">
- <displayName>vietnamesiske dong</displayName>
- <displayName count="one">vietnamesisk dong</displayName>
- <displayName count="other">vietnamesiske dong</displayName>
- <symbol>VND</symbol>
- <symbol alt="narrow" draft="contributed">₫</symbol>
- </currency>
- <currency type="VNN">
- <displayName draft="contributed">vietnamesiske dong (1978–1985)</displayName>
- <displayName count="one" draft="contributed">vietnamesisk dong (1978–1985)</displayName>
- <displayName count="other" draft="contributed">vietnamesiske dong (1978–1985)</displayName>
- <symbol draft="contributed">VNN</symbol>
- </currency>
- <currency type="VUV">
- <displayName>vanuatiske vatu</displayName>
- <displayName count="one">vanuatisk vatu</displayName>
- <displayName count="other">vanuatiske vatu</displayName>
- <symbol draft="contributed">VUV</symbol>
- </currency>
- <currency type="WST">
- <displayName>samoanske tala</displayName>
- <displayName count="one">samoansk tala</displayName>
- <displayName count="other">samoanske tala</displayName>
- <symbol draft="contributed">WST</symbol>
- </currency>
- <currency type="XAF">
- <displayName>sentralafrikanske CFA-franc</displayName>
- <displayName count="one">sentralafrikansk CFA-franc</displayName>
- <displayName count="other">sentralafrikanske CFA-franc</displayName>
- <symbol>XAF</symbol>
- </currency>
- <currency type="XAG">
- <displayName>sølv</displayName>
- <displayName count="one">unse sølv</displayName>
- <displayName count="other">unser sølv</displayName>
- <symbol draft="contributed">XAG</symbol>
- </currency>
- <currency type="XAU">
- <displayName>gull</displayName>
- <displayName count="one">unse gull</displayName>
- <displayName count="other">unser gull</displayName>
- <symbol draft="contributed">XAU</symbol>
- </currency>
- <currency type="XBA">
- <displayName>europeisk sammensatt enhet</displayName>
- <displayName count="one">europeisk sammensatt enhet</displayName>
- <displayName count="other">europeiske sammensatte enheter</displayName>
- <symbol draft="contributed">XBA</symbol>
- </currency>
- <currency type="XBB">
- <displayName>europeisk monetær enhet</displayName>
- <displayName count="one">europeisk monetær enhet</displayName>
- <displayName count="other">europeiske monetære enheter</displayName>
- <symbol draft="contributed">XBB</symbol>
- </currency>
- <currency type="XBC">
- <displayName>europeisk kontoenhet (XBC)</displayName>
- <displayName count="one">europeisk kontoenhet (XBC)</displayName>
- <displayName count="other">europeiske kontoenheter</displayName>
- <symbol draft="contributed">XBC</symbol>
- </currency>
- <currency type="XBD">
- <displayName>europeisk kontoenhet (XBD)</displayName>
- <displayName count="one">europeisk kontoenhet (XBD)</displayName>
- <displayName count="other">europeiske kontoenheter (XBD)</displayName>
- <symbol draft="contributed">XBD</symbol>
- </currency>
- <currency type="XCD">
- <displayName>østkaribiske dollar</displayName>
- <displayName count="one">østkaribisk dollar</displayName>
- <displayName count="other">østkaribiske dollar</displayName>
- <symbol>XCD</symbol>
- <symbol alt="narrow" draft="contributed">$</symbol>
- </currency>
- <currency type="XDR">
- <displayName>spesielle trekkrettigheter</displayName>
- <displayName count="one">spesiell trekkrettighet</displayName>
- <displayName count="other">spesielle trekkrettigheter</displayName>
- <symbol draft="contributed">XDR</symbol>
- </currency>
- <currency type="XEU">
- <displayName>europeisk valutaenhet</displayName>
- <displayName count="one">europeisk valutaenhet</displayName>
- <displayName count="other">europeiske valutaenheter</displayName>
- <symbol draft="contributed">XEU</symbol>
- </currency>
- <currency type="XFO">
- <displayName>franske gullfranc</displayName>
- <displayName count="one">fransk gullfranc</displayName>
- <displayName count="other">franske gullfranc</displayName>
- <symbol draft="contributed">XFO</symbol>
- </currency>
- <currency type="XFU">
- <displayName>franske UIC-franc</displayName>
- <displayName count="one">fransk UIC-franc</displayName>
- <displayName count="other">franske UIC-franc</displayName>
- <symbol draft="contributed">XFU</symbol>
- </currency>
- <currency type="XOF">
- <displayName>vestafrikanske CFA-franc</displayName>
- <displayName count="one">vestafrikansk CFA-franc</displayName>
- <displayName count="other">vestafrikanske CFA-franc</displayName>
- <symbol draft="contributed">CFA</symbol>
- </currency>
- <currency type="XPD">
- <displayName>palladium</displayName>
- <displayName count="one">unse palladium</displayName>
- <displayName count="other">unser palladium</displayName>
- <symbol draft="contributed">XPD</symbol>
- </currency>
- <currency type="XPF">
- <displayName>CFP-franc</displayName>
- <displayName count="one">CFP-franc</displayName>
- <displayName count="other">CFP-franc</displayName>
- <symbol>XPF</symbol>
- </currency>
- <currency type="XPT">
- <displayName>platina</displayName>
- <displayName count="one">unse platina</displayName>
- <displayName count="other">unser platina</displayName>
- <symbol draft="contributed">XPT</symbol>
- </currency>
- <currency type="XRE">
- <displayName>RINET-fond</displayName>
- <symbol draft="contributed">XRE</symbol>
- </currency>
- <currency type="XSU">
- <displayName draft="contributed">sucre</displayName>
- <displayName count="one" draft="contributed">sucre</displayName>
- <displayName count="other" draft="contributed">sucre</displayName>
- <symbol draft="contributed">XSU</symbol>
- </currency>
- <currency type="XTS">
- <displayName>testvalutakode</displayName>
- <displayName count="one">testvaluta</displayName>
- <displayName count="other">testvaluta</displayName>
- <symbol draft="contributed">XTS</symbol>
- </currency>
- <currency type="XUA">
- <displayName draft="contributed">ADB-kontoenhet</displayName>
- <displayName count="one" draft="contributed">ADB-kontoenhet</displayName>
- <displayName count="other" draft="contributed">ADB-kontoenheter</displayName>
- <symbol draft="contributed">XUA</symbol>
- </currency>
- <currency type="XXX">
- <displayName>ukjent valuta</displayName>
- <displayName count="one">(ukjent valuta)</displayName>
- <displayName count="other">(ukjent valuta)</displayName>
- <symbol draft="contributed">XXX</symbol>
- </currency>
- <currency type="YDD">
- <displayName>jemenittiske dinarer</displayName>
- <displayName count="one">jemenittisk dinar</displayName>
- <displayName count="other">jemenittiske dinarer</displayName>
- <symbol draft="contributed">YDD</symbol>
- </currency>
- <currency type="YER">
- <displayName>jemenittiske rialer</displayName>
- <displayName count="one">jemenittisk rial</displayName>
- <displayName count="other">jemenittiske rialer</displayName>
- <symbol draft="contributed">YER</symbol>
- </currency>
- <currency type="YUD">
- <displayName>jugoslaviske dinarer (hard)</displayName>
- <displayName count="one">jugoslavisk dinar (hard)</displayName>
- <displayName count="other">jugoslaviske dinarer (hard)</displayName>
- <symbol draft="contributed">YUD</symbol>
- </currency>
- <currency type="YUM">
- <displayName>jugoslaviske noviy-dinarer</displayName>
- <displayName count="one">jugoslavisk noviy-dinar</displayName>
- <displayName count="other">jugoslaviske noviy-dinarer</displayName>
- <symbol draft="contributed">YUM</symbol>
- </currency>
- <currency type="YUN">
- <displayName>jugoslaviske konvertible dinarer</displayName>
- <displayName count="one">jugoslavisk konvertibel dinar</displayName>
- <displayName count="other">jugoslaviske konvertible dinarer</displayName>
- <symbol draft="contributed">YUN</symbol>
- </currency>
- <currency type="YUR">
- <displayName draft="contributed">jugoslaviske reformerte dinarer (1992–1993)</displayName>
- <displayName count="one" draft="contributed">jugoslavisk reformert dinar (1992–1993)</displayName>
- <displayName count="other" draft="contributed">jugoslaviske reformerte dinarer (1992–1993)</displayName>
- <symbol draft="contributed">YUR</symbol>
- </currency>
- <currency type="ZAL">
- <displayName>sørafrikanske rand (finansielle)</displayName>
- <displayName count="one">sørafrikansk rand (finansiell)</displayName>
- <displayName count="other">sørafrikanske rand (finansielle)</displayName>
- <symbol draft="contributed">ZAL</symbol>
- </currency>
- <currency type="ZAR">
- <displayName>sørafrikanske rand</displayName>
- <displayName count="one">sørafrikansk rand</displayName>
- <displayName count="other">sørafrikanske rand</displayName>
- <symbol draft="contributed">ZAR</symbol>
- <symbol alt="narrow" draft="contributed">R</symbol>
- </currency>
- <currency type="ZMK">
- <displayName>zambiske kwacha (1968–2012)</displayName>
- <displayName count="one">zambisk kwacha (1968–2012)</displayName>
- <displayName count="other">zambiske kwacha (1968–2012)</displayName>
- <symbol draft="contributed">ZMK</symbol>
- </currency>
- <currency type="ZMW">
- <displayName>zambiske kwacha</displayName>
- <displayName count="one">zambisk kwacha</displayName>
- <displayName count="other">zambiske kwacha</displayName>
- <symbol draft="contributed">ZMW</symbol>
- <symbol alt="narrow" draft="contributed">ZK</symbol>
- </currency>
- <currency type="ZRN">
- <displayName>zairiske nye zaire</displayName>
- <displayName count="one">zairisk ny zaire</displayName>
- <displayName count="other">zairiske nye zaire</displayName>
- <symbol draft="contributed">ZRN</symbol>
- </currency>
- <currency type="ZRZ">
- <displayName>zairiske zaire</displayName>
- <displayName count="one">zairisk zaire</displayName>
- <displayName count="other">zairiske zaire</displayName>
- <symbol draft="contributed">ZRZ</symbol>
- </currency>
- <currency type="ZWD">
- <displayName>zimbabwiske dollar (1980–2008)</displayName>
- <displayName count="one">zimbabwisk dollar (1980–2008)</displayName>
- <displayName count="other">zimbabwiske dollar (1980–2008)</displayName>
- <symbol draft="contributed">ZWD</symbol>
- </currency>
- <currency type="ZWL">
- <displayName>zimbabwisk dollar (2009)</displayName>
- <displayName count="one">zimbabwisk dollar (2009)</displayName>
- <displayName count="other">zimbabwiske dollar (2009)</displayName>
- <symbol draft="contributed">ZWL</symbol>
- </currency>
- <currency type="ZWR">
- <displayName>zimbabwisk dollar (2008)</displayName>
- <displayName count="one">zimbabwisk dollar (2008)</displayName>
- <displayName count="other">zimbabwiske dollar (2008)</displayName>
- </currency>
- </currencies>
- <miscPatterns numberSystem="arab">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="arabext">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="bali">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="beng">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="brah">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="cakm">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="cham">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="deva">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="fullwide">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="gujr">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="guru">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="hanidec">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="java">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="kali">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="khmr">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="knda">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="lana">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="lanatham">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="laoo">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="latn">
- <pattern type="approximately">ca. {0}</pattern>
- <pattern type="atLeast">≥ {0}</pattern>
- <pattern type="atMost">≤ {0}</pattern>
- <pattern type="range">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="lepc">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="limb">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="mlym">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="mong">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="mtei">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="mymr">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="mymrshan">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="nkoo">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="olck">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="orya">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="osma">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="saur">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="shrd">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="sora">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="sund">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="takr">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="talu">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="tamldec">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="telu">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="thai">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="tibt">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <miscPatterns numberSystem="vaii">
- <pattern type="atLeast" draft="contributed">≥{0}</pattern>
- <pattern type="range" draft="contributed">{0}–{1}</pattern>
- </miscPatterns>
- <minimalPairs>
- <pluralMinimalPairs count="one">{0} dag</pluralMinimalPairs>
- <pluralMinimalPairs count="other">{0} dager</pluralMinimalPairs>
- <ordinalMinimalPairs ordinal="other">Ta {0}. sving til høyre.</ordinalMinimalPairs>
- <genderMinimalPairs gender="masculine">Min {0} den har tre kanter</genderMinimalPairs>
- <genderMinimalPairs gender="neuter">Mitt {0} det har tre kanter</genderMinimalPairs>
- </minimalPairs>
- </numbers>
- <units>
- <unitLength type="long">
- <compoundUnit type="10p-1">
- <unitPrefixPattern>desi{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p-2">
- <unitPrefixPattern>centi{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p-3">
- <unitPrefixPattern>milli{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p-6">
- <unitPrefixPattern>mikro{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p-9">
- <unitPrefixPattern>nano{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p-12">
- <unitPrefixPattern>piko{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p-15">
- <unitPrefixPattern>femto{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p-18">
- <unitPrefixPattern>atto{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p-21">
- <unitPrefixPattern>zepto{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p-24">
- <unitPrefixPattern>yokto{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p1">
- <unitPrefixPattern>deka{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p2">
- <unitPrefixPattern>hekto{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p3">
- <unitPrefixPattern>kilo{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p6">
- <unitPrefixPattern>mega{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p9">
- <unitPrefixPattern>giga{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p12">
- <unitPrefixPattern>tera{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p15">
- <unitPrefixPattern>peta{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p18">
- <unitPrefixPattern>exa{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p21">
- <unitPrefixPattern>zetta{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p24">
- <unitPrefixPattern>yotta{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="1024p1">
- <unitPrefixPattern>kibi{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="1024p2">
- <unitPrefixPattern>mebi{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="1024p3">
- <unitPrefixPattern>gibi{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="1024p4">
- <unitPrefixPattern>tebi{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="1024p5">
- <unitPrefixPattern>pebi{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="1024p6">
- <unitPrefixPattern>exbi{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="1024p7">
- <unitPrefixPattern>zebi{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="1024p8">
- <unitPrefixPattern>yobi{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="per">
- <compoundUnitPattern>{0} per {1}</compoundUnitPattern>
- </compoundUnit>
- <compoundUnit type="power2">
- <compoundUnitPattern1>kvadrat{0}</compoundUnitPattern1>
- <compoundUnitPattern1 count="one">kvadrat{0}</compoundUnitPattern1>
- <compoundUnitPattern1 count="one" gender="masculine">↑↑↑</compoundUnitPattern1>
- <compoundUnitPattern1 count="other">kvadrat{0}</compoundUnitPattern1>
- <compoundUnitPattern1 count="other" gender="masculine">↑↑↑</compoundUnitPattern1>
- </compoundUnit>
- <compoundUnit type="power3">
- <compoundUnitPattern1>kubikk{0}</compoundUnitPattern1>
- <compoundUnitPattern1 count="one">kubikk{0}</compoundUnitPattern1>
- <compoundUnitPattern1 count="one" gender="masculine">↑↑↑</compoundUnitPattern1>
- <compoundUnitPattern1 count="other">kubikk{0}</compoundUnitPattern1>
- <compoundUnitPattern1 count="other" gender="masculine">↑↑↑</compoundUnitPattern1>
- </compoundUnit>
- <compoundUnit type="times">
- <compoundUnitPattern>↑↑↑</compoundUnitPattern>
- </compoundUnit>
- <unit type="acceleration-g-force">
- <gender>masculine</gender>
- <displayName>g-kraft</displayName>
- <unitPattern count="one">{0} g-kraft</unitPattern>
- <unitPattern count="other">{0} g-kraft</unitPattern>
- </unit>
- <unit type="acceleration-meter-per-square-second">
- <gender>masculine</gender>
- <displayName>meter per sekund²</displayName>
- <unitPattern count="one">{0} meter per sekund²</unitPattern>
- <unitPattern count="other">{0} meter per sekund²</unitPattern>
- </unit>
- <unit type="angle-revolution">
- <displayName>omdreininger</displayName>
- <unitPattern count="one">{0} omdreining</unitPattern>
- <unitPattern count="other">{0} omdreininger</unitPattern>
- </unit>
- <unit type="angle-radian">
- <displayName>radianer</displayName>
- <unitPattern count="one">{0} radian</unitPattern>
- <unitPattern count="other">{0} radianer</unitPattern>
- </unit>
- <unit type="angle-degree">
- <displayName>grader</displayName>
- <unitPattern count="one">{0} grad</unitPattern>
- <unitPattern count="other">{0} grader</unitPattern>
- </unit>
- <unit type="angle-arc-minute">
- <displayName>bueminutter</displayName>
- <unitPattern count="one">{0} bueminutt</unitPattern>
- <unitPattern count="other">{0} bueminutter</unitPattern>
- </unit>
- <unit type="angle-arc-second">
- <displayName>buesekunder</displayName>
- <unitPattern count="one">{0} buesekund</unitPattern>
- <unitPattern count="other">{0} buesekunder</unitPattern>
- </unit>
- <unit type="area-square-kilometer">
- <gender>masculine</gender>
- <displayName>kvadratkilometer</displayName>
- <unitPattern count="one">{0} kvadratkilometer</unitPattern>
- <unitPattern count="other">{0} kvadratkilometer</unitPattern>
- <perUnitPattern>{0} per kvadratkilometer</perUnitPattern>
- </unit>
- <unit type="area-hectare">
- <gender>neuter</gender>
- <displayName>hektar</displayName>
- <unitPattern count="one">{0} hektar</unitPattern>
- <unitPattern count="other">{0} hektar</unitPattern>
- </unit>
- <unit type="area-square-meter">
- <displayName>kvadratmeter</displayName>
- <unitPattern count="one">{0} kvadratmeter</unitPattern>
- <unitPattern count="other">{0} kvadratmeter</unitPattern>
- <perUnitPattern>{0} per kvadratmeter</perUnitPattern>
- </unit>
- <unit type="area-square-centimeter">
- <gender>masculine</gender>
- <displayName>kvadratcentimeter</displayName>
- <unitPattern count="one">{0} kvadratcentimeter</unitPattern>
- <unitPattern count="other">{0} kvadratcentimeter</unitPattern>
- <perUnitPattern>{0} per kvadratcentimeter</perUnitPattern>
- </unit>
- <unit type="area-square-mile">
- <gender>masculine</gender>
- <displayName>engelske kvadratmil</displayName>
- <unitPattern count="one">{0} engelsk kvadratmil</unitPattern>
- <unitPattern count="other">{0} engelske kvadratmil</unitPattern>
- <perUnitPattern>{0} per engelsk kvadratmil</perUnitPattern>
- </unit>
- <unit type="area-acre">
- <gender>masculine</gender>
- <displayName>acre</displayName>
- <unitPattern count="one">{0} acre</unitPattern>
- <unitPattern count="other">{0} acre</unitPattern>
- </unit>
- <unit type="area-square-yard">
- <displayName>kvadratyard</displayName>
- <unitPattern count="one">{0} kvadratyard</unitPattern>
- <unitPattern count="other">{0} kvadratyard</unitPattern>
- </unit>
- <unit type="area-square-foot">
- <gender>masculine</gender>
- <displayName>kvadratfot</displayName>
- <unitPattern count="one">{0} kvadratfot</unitPattern>
- <unitPattern count="other">{0} kvadratfot</unitPattern>
- </unit>
- <unit type="area-square-inch">
- <displayName>kvadrattommer</displayName>
- <unitPattern count="one">{0} kvadrattomme</unitPattern>
- <unitPattern count="other">{0} kvadrattommer</unitPattern>
- <perUnitPattern>{0} per kvadrattomme</perUnitPattern>
- </unit>
- <unit type="area-dunam">
- <displayName>↑↑↑</displayName>
- <unitPattern count="one">↑↑↑</unitPattern>
- <unitPattern count="other">↑↑↑</unitPattern>
- </unit>
- <unit type="concentr-karat">
- <displayName>karat</displayName>
- <unitPattern count="one">{0} karat</unitPattern>
- <unitPattern count="other">{0} karat</unitPattern>
- </unit>
- <unit type="concentr-milligram-per-deciliter">
- <displayName>milligram per desiliter</displayName>
- <unitPattern count="one">{0} milligram per desiliter</unitPattern>
- <unitPattern count="other">{0} milligram per desiliter</unitPattern>
- </unit>
- <unit type="concentr-millimole-per-liter">
- <displayName>millimol per liter</displayName>
- <unitPattern count="one">{0} millimol per liter</unitPattern>
- <unitPattern count="other">{0} millimol per liter</unitPattern>
- </unit>
- <unit type="concentr-permillion">
- <displayName>deler per million</displayName>
- <unitPattern count="one">{0} del per million</unitPattern>
- <unitPattern count="other">{0} deler per million</unitPattern>
- </unit>
- <unit type="concentr-percent">
- <gender>masculine</gender>
- <displayName>prosent</displayName>
- <unitPattern count="one">{0} prosent</unitPattern>
- <unitPattern count="other">{0} prosent</unitPattern>
- </unit>
- <unit type="concentr-permille">
- <displayName>promille</displayName>
- <unitPattern count="one">{0} promille</unitPattern>
- <unitPattern count="other">{0} promille</unitPattern>
- </unit>
- <unit type="concentr-permyriad">
- <displayName>promyriade</displayName>
- <unitPattern count="one">{0} promyriade</unitPattern>
- <unitPattern count="other">{0} promyriade</unitPattern>
- </unit>
- <unit type="concentr-mole">
- <displayName>↑↑↑</displayName>
- <unitPattern count="one">↑↑↑</unitPattern>
- <unitPattern count="other">↑↑↑</unitPattern>
- </unit>
- <unit type="consumption-liter-per-kilometer">
- <displayName>liter per kilometer</displayName>
- <unitPattern count="one">{0} liter per kilometer</unitPattern>
- <unitPattern count="other">{0} liter per kilometer</unitPattern>
- </unit>
- <unit type="consumption-liter-per-100-kilometer">
- <gender>masculine</gender>
- <displayName>liter per 100 kilometer</displayName>
- <unitPattern count="one">{0} liter per 100 kilometer</unitPattern>
- <unitPattern count="other">{0} liter per 100 kilometer</unitPattern>
- </unit>
- <unit type="consumption-mile-per-gallon">
- <gender>masculine</gender>
- <displayName>engelske mil per gallon</displayName>
- <unitPattern count="one">{0} engelsk mil per gallon</unitPattern>
- <unitPattern count="other">{0} engelske mil per gallon</unitPattern>
- </unit>
- <unit type="consumption-mile-per-gallon-imperial">
- <gender>masculine</gender>
- <displayName>engelske mil per britiske gallon</displayName>
- <unitPattern count="one">{0} engelsk mil per britisk gallon</unitPattern>
- <unitPattern count="other">{0} engelske mil per britiske gallon</unitPattern>
- </unit>
- <unit type="digital-petabyte">
- <displayName>petabyte</displayName>
- <unitPattern count="one">{0} petabyte</unitPattern>
- <unitPattern count="other">{0} petabyte</unitPattern>
- </unit>
- <unit type="digital-terabyte">
- <displayName>terabyte</displayName>
- <unitPattern count="one">{0} terabyte</unitPattern>
- <unitPattern count="other">{0} terabyte</unitPattern>
- </unit>
- <unit type="digital-terabit">
- <displayName>terabit</displayName>
- <unitPattern count="one">{0} terabit</unitPattern>
- <unitPattern count="other">{0} terabit</unitPattern>
- </unit>
- <unit type="digital-gigabyte">
- <displayName>gigabyte</displayName>
- <unitPattern count="one">{0} gigabyte</unitPattern>
- <unitPattern count="other">{0} gigabyte</unitPattern>
- </unit>
- <unit type="digital-gigabit">
- <displayName>gigabit</displayName>
- <unitPattern count="one">{0} gigabit</unitPattern>
- <unitPattern count="other">{0} gigabit</unitPattern>
- </unit>
- <unit type="digital-megabyte">
- <displayName>megabyte</displayName>
- <unitPattern count="one">{0} megabyte</unitPattern>
- <unitPattern count="other">{0} megabyte</unitPattern>
- </unit>
- <unit type="digital-megabit">
- <displayName>megabit</displayName>
- <unitPattern count="one">{0} megabit</unitPattern>
- <unitPattern count="other">{0} megabit</unitPattern>
- </unit>
- <unit type="digital-kilobyte">
- <displayName>kilobyte</displayName>
- <unitPattern count="one">{0} kilobyte</unitPattern>
- <unitPattern count="other">{0} kilobyte</unitPattern>
- </unit>
- <unit type="digital-kilobit">
- <displayName>kilobit</displayName>
- <unitPattern count="one">{0} kilobit</unitPattern>
- <unitPattern count="other">{0} kilobit</unitPattern>
- </unit>
- <unit type="digital-byte">
- <displayName>byte</displayName>
- <unitPattern count="one">{0} byte</unitPattern>
- <unitPattern count="other">{0} byte</unitPattern>
- </unit>
- <unit type="digital-bit">
- <displayName>bit</displayName>
- <unitPattern count="one">{0} bit</unitPattern>
- <unitPattern count="other">{0} bit</unitPattern>
- </unit>
- <unit type="duration-century">
- <displayName>århundrer</displayName>
- <unitPattern count="one">{0} århundre</unitPattern>
- <unitPattern count="other">{0} århundrer</unitPattern>
- </unit>
- <unit type="duration-decade">
- <displayName>tiår</displayName>
- <unitPattern count="one">{0} tiår</unitPattern>
- <unitPattern count="other">{0} tiår</unitPattern>
- </unit>
- <unit type="duration-year">
- <gender>neuter</gender>
- <displayName>år</displayName>
- <unitPattern count="one">{0} år</unitPattern>
- <unitPattern count="other">{0} år</unitPattern>
- <perUnitPattern>{0} per år</perUnitPattern>
- </unit>
- <unit type="duration-month">
- <gender>masculine</gender>
- <displayName>måneder</displayName>
- <unitPattern count="one">{0} måned</unitPattern>
- <unitPattern count="other">{0} måneder</unitPattern>
- <perUnitPattern>{0} per måned</perUnitPattern>
- </unit>
- <unit type="duration-week">
- <gender>masculine</gender>
- <displayName>uker</displayName>
- <unitPattern count="one">{0} uke</unitPattern>
- <unitPattern count="other">{0} uker</unitPattern>
- <perUnitPattern>{0} per uke</perUnitPattern>
- </unit>
- <unit type="duration-day">
- <gender>neuter</gender>
- <displayName>døgn</displayName>
- <unitPattern count="one">{0} døgn</unitPattern>
- <unitPattern count="other">{0} døgn</unitPattern>
- <perUnitPattern>{0} per døgn</perUnitPattern>
- </unit>
- <unit type="duration-hour">
- <gender>masculine</gender>
- <displayName>timer</displayName>
- <unitPattern count="one">{0} time</unitPattern>
- <unitPattern count="other">{0} timer</unitPattern>
- <perUnitPattern>{0} per time</perUnitPattern>
- </unit>
- <unit type="duration-minute">
- <gender>neuter</gender>
- <displayName>minutter</displayName>
- <unitPattern count="one">{0} minutt</unitPattern>
- <unitPattern count="other">{0} minutter</unitPattern>
- <perUnitPattern>{0} per minutt</perUnitPattern>
- </unit>
- <unit type="duration-second">
- <gender>neuter</gender>
- <displayName>sekunder</displayName>
- <unitPattern count="one">{0} sekund</unitPattern>
- <unitPattern count="other">{0} sekunder</unitPattern>
- <perUnitPattern>{0} per sekund</perUnitPattern>
- </unit>
- <unit type="duration-millisecond">
- <displayName>millisekunder</displayName>
- <unitPattern count="one">{0} millisekund</unitPattern>
- <unitPattern count="other">{0} millisekunder</unitPattern>
- </unit>
- <unit type="duration-microsecond">
- <displayName>mikrosekunder</displayName>
- <unitPattern count="one">{0} mikrosekund</unitPattern>
- <unitPattern count="other">{0} mikrosekunder</unitPattern>
- </unit>
- <unit type="duration-nanosecond">
- <displayName>nanosekunder</displayName>
- <unitPattern count="one">{0} nanosekund</unitPattern>
- <unitPattern count="other">{0} nanosekunder</unitPattern>
- </unit>
- <unit type="electric-ampere">
- <displayName>ampere</displayName>
- <unitPattern count="one">{0} ampere</unitPattern>
- <unitPattern count="other">{0} ampere</unitPattern>
- </unit>
- <unit type="electric-milliampere">
- <displayName>milliampere</displayName>
- <unitPattern count="one">{0} milliampere</unitPattern>
- <unitPattern count="other">{0} milliampere</unitPattern>
- </unit>
- <unit type="electric-ohm">
- <displayName>ohm</displayName>
- <unitPattern count="one">{0} ohm</unitPattern>
- <unitPattern count="other">{0} ohm</unitPattern>
- </unit>
- <unit type="electric-volt">
- <displayName>volt</displayName>
- <unitPattern count="one">{0} volt</unitPattern>
- <unitPattern count="other">{0} volt</unitPattern>
- </unit>
- <unit type="energy-kilocalorie">
- <gender>masculine</gender>
- <displayName>kilokalorier</displayName>
- <unitPattern count="one">{0} kilokalori</unitPattern>
- <unitPattern count="other">{0} kilokalorier</unitPattern>
- </unit>
- <unit type="energy-calorie">
- <displayName>kalorier</displayName>
- <unitPattern count="one">{0} kalori</unitPattern>
- <unitPattern count="other">{0} kalorier</unitPattern>
- </unit>
- <unit type="energy-foodcalorie">
- <gender>masculine</gender>
- <displayName>kalorier</displayName>
- <unitPattern count="one">{0} kalori</unitPattern>
- <unitPattern count="other">{0} kalorier</unitPattern>
- </unit>
- <unit type="energy-kilojoule">
- <displayName>kilojoule</displayName>
- <unitPattern count="one">{0} kilojoule</unitPattern>
- <unitPattern count="other">{0} kilojoule</unitPattern>
- </unit>
- <unit type="energy-joule">
- <displayName>joule</displayName>
- <unitPattern count="one">{0} joule</unitPattern>
- <unitPattern count="other">{0} joule</unitPattern>
- </unit>
- <unit type="energy-kilowatt-hour">
- <displayName>kilowattimer</displayName>
- <unitPattern count="one">{0} kilowattime</unitPattern>
- <unitPattern count="other">{0} kilowattimer</unitPattern>
- </unit>
- <unit type="energy-electronvolt">
- <displayName>elektronvolt</displayName>
- <unitPattern count="one">{0} elektronvolt</unitPattern>
- <unitPattern count="other">{0} elektronvolt</unitPattern>
- </unit>
- <unit type="energy-british-thermal-unit">
- <displayName>British thermal unit</displayName>
- <unitPattern count="one">↑↑↑</unitPattern>
- <unitPattern count="other">↑↑↑</unitPattern>
- </unit>
- <unit type="energy-therm-us">
- <displayName>therm</displayName>
- <unitPattern count="one">{0} therm</unitPattern>
- <unitPattern count="other">{0} therm</unitPattern>
- </unit>
- <unit type="force-pound-force">
- <displayName>poundforce</displayName>
- <unitPattern count="one">{0} poundforce</unitPattern>
- <unitPattern count="other">{0} poundforce</unitPattern>
- </unit>
- <unit type="force-newton">
- <displayName>newton</displayName>
- <unitPattern count="one">{0} newton</unitPattern>
- <unitPattern count="other">{0} newton</unitPattern>
- </unit>
- <unit type="frequency-gigahertz">
- <displayName>gigahertz</displayName>
- <unitPattern count="one">{0} gigahertz</unitPattern>
- <unitPattern count="other">{0} gigahertz</unitPattern>
- </unit>
- <unit type="frequency-megahertz">
- <displayName>megahertz</displayName>
- <unitPattern count="one">{0} megahertz</unitPattern>
- <unitPattern count="other">{0} megahertz</unitPattern>
- </unit>
- <unit type="frequency-kilohertz">
- <displayName>kilohertz</displayName>
- <unitPattern count="one">{0} kilohertz</unitPattern>
- <unitPattern count="other">{0} kilohertz</unitPattern>
- </unit>
- <unit type="frequency-hertz">
- <displayName>hertz</displayName>
- <unitPattern count="one">{0} hertz</unitPattern>
- <unitPattern count="other">{0} hertz</unitPattern>
- </unit>
- <unit type="graphics-em">
- <displayName>gefirt</displayName>
- <unitPattern count="one">{0} gefirt</unitPattern>
- <unitPattern count="other">{0} gefirt</unitPattern>
- </unit>
- <unit type="graphics-pixel">
- <displayName>piksler</displayName>
- <unitPattern count="one">{0} piksel</unitPattern>
- <unitPattern count="other">{0} piksler</unitPattern>
- </unit>
- <unit type="graphics-megapixel">
- <displayName>megapiksler</displayName>
- <unitPattern count="one">{0} megapiksel</unitPattern>
- <unitPattern count="other">{0} megapiksler</unitPattern>
- </unit>
- <unit type="graphics-pixel-per-centimeter">
- <displayName>piksler per centimeter</displayName>
- <unitPattern count="one">{0} piksel per centimeter</unitPattern>
- <unitPattern count="other">{0} piksler per centimeter</unitPattern>
- </unit>
- <unit type="graphics-pixel-per-inch">
- <displayName>piksler per tomme</displayName>
- <unitPattern count="one">{0} piksel per tomme</unitPattern>
- <unitPattern count="other">{0} piksler per tomme</unitPattern>
- </unit>
- <unit type="graphics-dot-per-centimeter">
- <displayName>punkter per centimeter</displayName>
- <unitPattern count="one">{0} punkt per centimeter</unitPattern>
- <unitPattern count="other">{0} punkter per centimeter</unitPattern>
- </unit>
- <unit type="graphics-dot-per-inch">
- <displayName>punkter per tomme</displayName>
- <unitPattern count="one">{0} punkt per tomme</unitPattern>
- <unitPattern count="other">{0} punkter per tomme</unitPattern>
- </unit>
- <unit type="graphics-dot">
- <displayName>punkt</displayName>
- <unitPattern count="one">{0} punkt</unitPattern>
- <unitPattern count="other">{0} punkter</unitPattern>
- </unit>
- <unit type="length-earth-radius">
- <displayName>jordradius</displayName>
- <unitPattern count="one">{0} jordradius</unitPattern>
- <unitPattern count="other">{0} jordradier</unitPattern>
- </unit>
- <unit type="length-kilometer">
- <gender>masculine</gender>
- <displayName>kilometer</displayName>
- <unitPattern count="one">{0} kilometer</unitPattern>
- <unitPattern count="other">{0} kilometer</unitPattern>
- <perUnitPattern>{0} per kilometer</perUnitPattern>
- </unit>
- <unit type="length-meter">
- <gender>masculine</gender>
- <displayName>meter</displayName>
- <unitPattern count="one">{0} meter</unitPattern>
- <unitPattern count="other">{0} meter</unitPattern>
- <perUnitPattern>{0} per meter</perUnitPattern>
- </unit>
- <unit type="length-decimeter">
- <gender>masculine</gender>
- <displayName>desimeter</displayName>
- <unitPattern count="one">{0} desimeter</unitPattern>
- <unitPattern count="other">{0} desimeter</unitPattern>
- </unit>
- <unit type="length-centimeter">
- <gender>masculine</gender>
- <displayName>centimeter</displayName>
- <unitPattern count="one">{0} centimeter</unitPattern>
- <unitPattern count="other">{0} centimeter</unitPattern>
- <perUnitPattern>{0} per centimeter</perUnitPattern>
- </unit>
- <unit type="length-millimeter">
- <gender>masculine</gender>
- <displayName>millimeter</displayName>
- <unitPattern count="one">{0} millimeter</unitPattern>
- <unitPattern count="other">{0} millimeter</unitPattern>
- </unit>
- <unit type="length-micrometer">
- <displayName>mikrometer</displayName>
- <unitPattern count="one">{0} mikrometer</unitPattern>
- <unitPattern count="other">{0} mikrometer</unitPattern>
- </unit>
- <unit type="length-nanometer">
- <displayName>nanometer</displayName>
- <unitPattern count="one">{0} nanometer</unitPattern>
- <unitPattern count="other">{0} nanometer</unitPattern>
- </unit>
- <unit type="length-picometer">
- <gender>masculine</gender>
- <displayName>pikometer</displayName>
- <unitPattern count="one">{0} pikometer</unitPattern>
- <unitPattern count="other">{0} pikometer</unitPattern>
- </unit>
- <unit type="length-mile">
- <gender>masculine</gender>
- <displayName>engelske mil</displayName>
- <unitPattern count="one">{0} engelsk mil</unitPattern>
- <unitPattern count="other">{0} engelske mil</unitPattern>
- </unit>
- <unit type="length-yard">
- <gender>masculine</gender>
- <displayName>yard</displayName>
- <unitPattern count="one">{0} yard</unitPattern>
- <unitPattern count="other">{0} yard</unitPattern>
- </unit>
- <unit type="length-foot">
- <gender>masculine</gender>
- <displayName>fot</displayName>
- <unitPattern count="one">{0} fot</unitPattern>
- <unitPattern count="other">{0} fot</unitPattern>
- <perUnitPattern>{0} per fot</perUnitPattern>
- </unit>
- <unit type="length-inch">
- <gender>masculine</gender>
- <displayName>tommer</displayName>
- <unitPattern count="one">{0} tomme</unitPattern>
- <unitPattern count="other">{0} tommer</unitPattern>
- <perUnitPattern>{0} per tomme</perUnitPattern>
- </unit>
- <unit type="length-parsec">
- <gender>masculine</gender>
- <displayName>parsec</displayName>
- <unitPattern count="one">{0} parsec</unitPattern>
- <unitPattern count="other">{0} parsec</unitPattern>
- </unit>
- <unit type="length-light-year">
- <displayName>lysår</displayName>
- <unitPattern count="one">{0} lysår</unitPattern>
- <unitPattern count="other">{0} lysår</unitPattern>
- </unit>
- <unit type="length-astronomical-unit">
- <displayName>astronomiske enheter</displayName>
- <unitPattern count="one">{0} astronomisk enhet</unitPattern>
- <unitPattern count="other">{0} astronomiske enheter</unitPattern>
- </unit>
- <unit type="length-furlong">
- <displayName>furlong</displayName>
- <unitPattern count="one">{0} furlong</unitPattern>
- <unitPattern count="other">{0} furlong</unitPattern>
- </unit>
- <unit type="length-fathom">
- <displayName>favner</displayName>
- <unitPattern count="one">{0} favn</unitPattern>
- <unitPattern count="other">{0} favner</unitPattern>
- </unit>
- <unit type="length-nautical-mile">
- <displayName>nautiske mil</displayName>
- <unitPattern count="one">{0} nautisk mil</unitPattern>
- <unitPattern count="other">{0} nautiske mil</unitPattern>
- </unit>
- <unit type="length-mile-scandinavian">
- <gender>masculine</gender>
- <displayName>mil</displayName>
- <unitPattern count="one">{0} mil</unitPattern>
- <unitPattern count="other">{0} mil</unitPattern>
- </unit>
- <unit type="length-point">
- <displayName>typografiske punkter</displayName>
- <unitPattern count="one">{0} typografisk punkt</unitPattern>
- <unitPattern count="other">{0} typografiske punkter</unitPattern>
- </unit>
- <unit type="length-solar-radius">
- <gender>masculine</gender>
- <displayName>solradier</displayName>
- <unitPattern count="one">{0} solradius</unitPattern>
- <unitPattern count="other">{0} solradier</unitPattern>
- </unit>
- <unit type="light-lux">
- <displayName>lux</displayName>
- <unitPattern count="one">{0} lux</unitPattern>
- <unitPattern count="other">{0} lux</unitPattern>
- </unit>
- <unit type="light-candela">
- <displayName>candela</displayName>
- <unitPattern count="one">{0} candela</unitPattern>
- <unitPattern count="other">{0} candela</unitPattern>
- </unit>
- <unit type="light-lumen">
- <displayName>lumen</displayName>
- <unitPattern count="one">{0} lumen</unitPattern>
- <unitPattern count="other">{0} lumen</unitPattern>
- </unit>
- <unit type="light-solar-luminosity">
- <gender>masculine</gender>
- <displayName>solluminositet</displayName>
- <unitPattern count="one">↑↑↑</unitPattern>
- <unitPattern count="other">↑↑↑</unitPattern>
- </unit>
- <unit type="mass-metric-ton">
- <displayName>tonn</displayName>
- <unitPattern count="one">{0} tonn</unitPattern>
- <unitPattern count="other">{0} tonn</unitPattern>
- </unit>
- <unit type="mass-kilogram">
- <gender>neuter</gender>
- <displayName>kilogram</displayName>
- <unitPattern count="one">{0} kilogram</unitPattern>
- <unitPattern count="other">{0} kilogram</unitPattern>
- <perUnitPattern>{0} per kilogram</perUnitPattern>
- </unit>
- <unit type="mass-gram">
- <gender>neuter</gender>
- <displayName>gram</displayName>
- <unitPattern count="one">{0} gram</unitPattern>
- <unitPattern count="other">{0} gram</unitPattern>
- <perUnitPattern>{0} per gram</perUnitPattern>
- </unit>
- <unit type="mass-milligram">
- <gender>neuter</gender>
- <displayName>milligram</displayName>
- <unitPattern count="one">{0} milligram</unitPattern>
- <unitPattern count="other">{0} milligram</unitPattern>
- </unit>
- <unit type="mass-microgram">
- <displayName>mikrogram</displayName>
- <unitPattern count="one">{0} mikrogram</unitPattern>
- <unitPattern count="other">{0} mikrogram</unitPattern>
- </unit>
- <unit type="mass-ton">
- <displayName>amerikanske tonn</displayName>
- <unitPattern count="one">{0} amerikansk tonn</unitPattern>
- <unitPattern count="other">{0} amerikanske tonn</unitPattern>
- </unit>
- <unit type="mass-stone">
- <displayName>stone</displayName>
- <unitPattern count="one">{0} stone</unitPattern>
- <unitPattern count="other">{0} stone</unitPattern>
- </unit>
- <unit type="mass-pound">
- <gender>neuter</gender>
- <displayName>pund</displayName>
- <unitPattern count="one">{0} pund</unitPattern>
- <unitPattern count="other">{0} pund</unitPattern>
- <perUnitPattern>{0} per pund</perUnitPattern>
- </unit>
- <unit type="mass-ounce">
- <gender>masculine</gender>
- <displayName>unser</displayName>
- <unitPattern count="one">{0} unse</unitPattern>
- <unitPattern count="other">{0} unser</unitPattern>
- <perUnitPattern>{0} per unse</perUnitPattern>
- </unit>
- <unit type="mass-ounce-troy">
- <displayName>troy ounce</displayName>
- <unitPattern count="one">{0} troy ounce</unitPattern>
- <unitPattern count="other">{0} troy ounce</unitPattern>
- </unit>
- <unit type="mass-carat">
- <displayName>karat</displayName>
- <unitPattern count="one">{0} karat</unitPattern>
- <unitPattern count="other">{0} karat</unitPattern>
- </unit>
- <unit type="mass-dalton">
- <gender>masculine</gender>
- <displayName>dalton</displayName>
- <unitPattern count="one">{0} dalton</unitPattern>
- <unitPattern count="other">{0} dalton</unitPattern>
- </unit>
- <unit type="mass-earth-mass">
- <gender>masculine</gender>
- <displayName>jordmasser</displayName>
- <unitPattern count="one">{0} jordmasse</unitPattern>
- <unitPattern count="other">{0} jordmasser</unitPattern>
- </unit>
- <unit type="mass-solar-mass">
- <gender>masculine</gender>
- <displayName>solmasser</displayName>
- <unitPattern count="one">{0} solmasse</unitPattern>
- <unitPattern count="other">{0} solmasser</unitPattern>
- </unit>
- <unit type="mass-grain">
- <gender>neuter</gender>
- <displayName>↑↑↑</displayName>
- <unitPattern count="one">{0} grain</unitPattern>
- <unitPattern count="other">{0} grain</unitPattern>
- </unit>
- <unit type="power-gigawatt">
- <displayName>gigawatt</displayName>
- <unitPattern count="one">{0} gigawatt</unitPattern>
- <unitPattern count="other">{0} gigawatt</unitPattern>
- </unit>
- <unit type="power-megawatt">
- <displayName>megawatt</displayName>
- <unitPattern count="one">{0} megawatt</unitPattern>
- <unitPattern count="other">{0} megawatt</unitPattern>
- </unit>
- <unit type="power-kilowatt">
- <displayName>kilowatt</displayName>
- <unitPattern count="one">{0} kilowatt</unitPattern>
- <unitPattern count="other">{0} kilowatt</unitPattern>
- </unit>
- <unit type="power-watt">
- <displayName>watt</displayName>
- <unitPattern count="one">{0} watt</unitPattern>
- <unitPattern count="other">{0} watt</unitPattern>
- </unit>
- <unit type="power-milliwatt">
- <displayName>milliwatt</displayName>
- <unitPattern count="one">{0} milliwatt</unitPattern>
- <unitPattern count="other">{0} milliwatt</unitPattern>
- </unit>
- <unit type="power-horsepower">
- <displayName>hestekrefter</displayName>
- <unitPattern count="one">{0} hestekraft</unitPattern>
- <unitPattern count="other">{0} hestekrefter</unitPattern>
- </unit>
- <unit type="pressure-millimeter-ofhg">
- <displayName>millimeter kvikksølv</displayName>
- <unitPattern count="one">{0} millimeter kvikksølv</unitPattern>
- <unitPattern count="other">{0} millimeter kvikksølv</unitPattern>
- </unit>
- <unit type="pressure-pound-force-per-square-inch">
- <displayName>pund per kvadrattomme</displayName>
- <unitPattern count="one">{0} pund per kvadrattomme</unitPattern>
- <unitPattern count="other">{0} pund per kvadrattomme</unitPattern>
- </unit>
- <unit type="pressure-inch-ofhg">
- <displayName>tommer kvikksølv</displayName>
- <unitPattern count="one">{0} tomme kvikksølv</unitPattern>
- <unitPattern count="other">{0} tommer kvikksølv</unitPattern>
- </unit>
- <unit type="pressure-bar">
- <displayName>↑↑↑</displayName>
- <unitPattern count="one">↑↑↑</unitPattern>
- <unitPattern count="other">↑↑↑</unitPattern>
- </unit>
- <unit type="pressure-millibar">
- <displayName>millibar</displayName>
- <unitPattern count="one">{0} millibar</unitPattern>
- <unitPattern count="other">{0} millibar</unitPattern>
- </unit>
- <unit type="pressure-atmosphere">
- <displayName>atmosfærer</displayName>
- <unitPattern count="one">{0} atmosfære</unitPattern>
- <unitPattern count="other">{0} atmosfærer</unitPattern>
- </unit>
- <unit type="pressure-pascal">
- <displayName>pascal</displayName>
- <unitPattern count="one">{0} pascal</unitPattern>
- <unitPattern count="other">{0} pascal</unitPattern>
- </unit>
- <unit type="pressure-hectopascal">
- <displayName>hektopascal</displayName>
- <unitPattern count="one">{0} hektopascal</unitPattern>
- <unitPattern count="other">{0} hektopascal</unitPattern>
- </unit>
- <unit type="pressure-kilopascal">
- <gender>masculine</gender>
- <displayName>kilopascal</displayName>
- <unitPattern count="one">{0} kilopascal</unitPattern>
- <unitPattern count="other">{0} kilopascal</unitPattern>
- </unit>
- <unit type="pressure-megapascal">
- <displayName>megapascal</displayName>
- <unitPattern count="one">{0} megapascal</unitPattern>
- <unitPattern count="other">{0} megapascal</unitPattern>
- </unit>
- <unit type="speed-kilometer-per-hour">
- <gender>masculine</gender>
- <displayName>kilometer per time</displayName>
- <unitPattern count="one">{0} kilometer per time</unitPattern>
- <unitPattern count="other">{0} kilometer per time</unitPattern>
- </unit>
- <unit type="speed-meter-per-second">
- <gender>masculine</gender>
- <displayName>meter per sekund</displayName>
- <unitPattern count="one">{0} meter per sekund</unitPattern>
- <unitPattern count="other">{0} meter per sekund</unitPattern>
- </unit>
- <unit type="speed-mile-per-hour">
- <gender>masculine</gender>
- <displayName>engelske mil per time</displayName>
- <unitPattern count="one">{0} engelsk mil per time</unitPattern>
- <unitPattern count="other">{0} engelske mil per time</unitPattern>
- </unit>
- <unit type="speed-knot">
- <displayName>knop</displayName>
- <unitPattern count="one">{0} knop</unitPattern>
- <unitPattern count="other">{0} knop</unitPattern>
- </unit>
- <unit type="temperature-generic">
- <gender>masculine</gender>
- <displayName>grader</displayName>
- <unitPattern count="one">{0} grad</unitPattern>
- <unitPattern count="other">{0} grader</unitPattern>
- </unit>
- <unit type="temperature-celsius">
- <gender>masculine</gender>
- <displayName>grader celsius</displayName>
- <unitPattern count="one">{0} grad celsius</unitPattern>
- <unitPattern count="other">{0} grader celsius</unitPattern>
- </unit>
- <unit type="temperature-fahrenheit">
- <gender>masculine</gender>
- <displayName>grader fahrenheit</displayName>
- <unitPattern count="one">{0} grad fahrenheit</unitPattern>
- <unitPattern count="other">{0} grader fahrenheit</unitPattern>
- </unit>
- <unit type="temperature-kelvin">
- <gender>masculine</gender>
- <displayName>kelvin</displayName>
- <unitPattern count="one">{0} kelvin</unitPattern>
- <unitPattern count="other">{0} kelvin</unitPattern>
- </unit>
- <unit type="torque-pound-force-foot">
- <displayName>pound-foot</displayName>
- <unitPattern count="one">{0} pound-foot</unitPattern>
- <unitPattern count="other">{0} pound-foot</unitPattern>
- </unit>
- <unit type="torque-newton-meter">
- <displayName>newtonmeter</displayName>
- <unitPattern count="one">{0} Nm</unitPattern>
- <unitPattern count="other">{0} Nm</unitPattern>
- </unit>
- <unit type="volume-cubic-kilometer">
- <gender>masculine</gender>
- <displayName>kubikkilometer</displayName>
- <unitPattern count="one">{0} kubikkilometer</unitPattern>
- <unitPattern count="other">{0} kubikkilometer</unitPattern>
- </unit>
- <unit type="volume-cubic-meter">
- <gender>masculine</gender>
- <displayName>kubikkmeter</displayName>
- <unitPattern count="one">{0} kubikkmeter</unitPattern>
- <unitPattern count="other">{0} kubikkmeter</unitPattern>
- <perUnitPattern>{0} per kubikkmeter</perUnitPattern>
- </unit>
- <unit type="volume-cubic-centimeter">
- <gender>masculine</gender>
- <displayName>kubikkcentimeter</displayName>
- <unitPattern count="one">{0} kubikkcentimeter</unitPattern>
- <unitPattern count="other">{0} kubikkcentimeter</unitPattern>
- <perUnitPattern>{0} per kubikkcentimeter</perUnitPattern>
- </unit>
- <unit type="volume-cubic-mile">
- <gender>masculine</gender>
- <displayName>engelske kubikkmil</displayName>
- <unitPattern count="one">{0} engelsk kubikkmil</unitPattern>
- <unitPattern count="other">{0} engelske kubikkmil</unitPattern>
- </unit>
- <unit type="volume-cubic-yard">
- <displayName>kubikkyard</displayName>
- <unitPattern count="one">{0} kubikkyard</unitPattern>
- <unitPattern count="other">{0} kubikkyard</unitPattern>
- </unit>
- <unit type="volume-cubic-foot">
- <gender>masculine</gender>
- <displayName>kubikkfot</displayName>
- <unitPattern count="one">{0} kubikkfot</unitPattern>
- <unitPattern count="other">{0} kubikkfot</unitPattern>
- </unit>
- <unit type="volume-cubic-inch">
- <gender>masculine</gender>
- <displayName>kubikktommer</displayName>
- <unitPattern count="one">{0} kubikktomme</unitPattern>
- <unitPattern count="other">{0} kubikktommer</unitPattern>
- </unit>
- <unit type="volume-megaliter">
- <displayName>megaliter</displayName>
- <unitPattern count="one">{0} megaliter</unitPattern>
- <unitPattern count="other">{0} megaliter</unitPattern>
- </unit>
- <unit type="volume-hectoliter">
- <gender>masculine</gender>
- <displayName>hektoliter</displayName>
- <unitPattern count="one">{0} hektoliter</unitPattern>
- <unitPattern count="other">{0} hektoliter</unitPattern>
- </unit>
- <unit type="volume-liter">
- <gender>masculine</gender>
- <displayName>liter</displayName>
- <unitPattern count="one">{0} liter</unitPattern>
- <unitPattern count="other">{0} liter</unitPattern>
- <perUnitPattern>{0} per liter</perUnitPattern>
- </unit>
- <unit type="volume-deciliter">
- <gender>masculine</gender>
- <displayName>desiliter</displayName>
- <unitPattern count="one">{0} desiliter</unitPattern>
- <unitPattern count="other">{0} desiliter</unitPattern>
- </unit>
- <unit type="volume-centiliter">
- <gender>masculine</gender>
- <displayName>centiliter</displayName>
- <unitPattern count="one">{0} centiliter</unitPattern>
- <unitPattern count="other">{0} centiliter</unitPattern>
- </unit>
- <unit type="volume-milliliter">
- <gender>masculine</gender>
- <displayName>milliliter</displayName>
- <unitPattern count="one">{0} milliliter</unitPattern>
- <unitPattern count="other">{0} milliliter</unitPattern>
- </unit>
- <unit type="volume-pint-metric">
- <displayName>metriske pint</displayName>
- <unitPattern count="one">{0} metrisk pint</unitPattern>
- <unitPattern count="other">{0} metriske pint</unitPattern>
- </unit>
- <unit type="volume-cup-metric">
- <gender>masculine</gender>
- <displayName>metriske kopper</displayName>
- <unitPattern count="one">{0} metrisk kopp</unitPattern>
- <unitPattern count="other">{0} metriske kopper</unitPattern>
- </unit>
- <unit type="volume-acre-foot">
- <displayName>acre-fot</displayName>
- <unitPattern count="one">{0} acre-fot</unitPattern>
- <unitPattern count="other">{0} acre-fot</unitPattern>
- </unit>
- <unit type="volume-bushel">
- <displayName>bushel</displayName>
- <unitPattern count="one">{0} bushel</unitPattern>
- <unitPattern count="other">{0} bushels</unitPattern>
- </unit>
- <unit type="volume-gallon">
- <gender>masculine</gender>
- <displayName>gallon</displayName>
- <unitPattern count="one">{0} gallon</unitPattern>
- <unitPattern count="other">{0} gallon</unitPattern>
- <perUnitPattern>{0} per gallon</perUnitPattern>
- </unit>
- <unit type="volume-gallon-imperial">
- <gender>masculine</gender>
- <displayName>britiske gallon</displayName>
- <unitPattern count="one">{0} britisk gallon</unitPattern>
- <unitPattern count="other">{0} britiske gallon</unitPattern>
- <perUnitPattern>{0} per britisk gallon</perUnitPattern>
- </unit>
- <unit type="volume-quart">
- <gender>masculine</gender>
- <displayName>quart</displayName>
- <unitPattern count="one">{0} quart</unitPattern>
- <unitPattern count="other">{0} quart</unitPattern>
- </unit>
- <unit type="volume-pint">
- <gender>masculine</gender>
- <displayName>pint</displayName>
- <unitPattern count="one">{0} pint</unitPattern>
- <unitPattern count="other">{0} pint</unitPattern>
- </unit>
- <unit type="volume-cup">
- <gender>masculine</gender>
- <displayName>kopper</displayName>
- <unitPattern count="one">{0} kopp</unitPattern>
- <unitPattern count="other">{0} kopper</unitPattern>
- </unit>
- <unit type="volume-fluid-ounce">
- <gender>masculine</gender>
- <displayName>væskeunser</displayName>
- <unitPattern count="one">{0} væskeunse</unitPattern>
- <unitPattern count="other">{0} væskeunser</unitPattern>
- </unit>
- <unit type="volume-fluid-ounce-imperial">
- <gender>masculine</gender>
- <displayName>britiske væskeunser</displayName>
- <unitPattern count="one">{0} britisk væskeunse</unitPattern>
- <unitPattern count="other">{0} britiske væskeunser</unitPattern>
- </unit>
- <unit type="volume-tablespoon">
- <gender>masculine</gender>
- <displayName>spiseskjeer</displayName>
- <unitPattern count="one">{0} spiseskje</unitPattern>
- <unitPattern count="other">{0} spiseskjeer</unitPattern>
- </unit>
- <unit type="volume-teaspoon">
- <gender>masculine</gender>
- <displayName>teskjeer</displayName>
- <unitPattern count="one">{0} teskje</unitPattern>
- <unitPattern count="other">{0} teskjeer</unitPattern>
- </unit>
- <unit type="volume-barrel">
- <gender>neuter</gender>
- <displayName>fat</displayName>
- <unitPattern count="one">{0} fat</unitPattern>
- <unitPattern count="other">{0} fat</unitPattern>
- </unit>
- <unit type="volume-dessert-spoon">
- <gender>masculine</gender>
- <displayName>barneskje</displayName>
- <unitPattern count="one">{0} barneskje</unitPattern>
- <unitPattern count="other">{0} barneskjeer</unitPattern>
- </unit>
- <unit type="volume-dessert-spoon-imperial">
- <gender>masculine</gender>
- <displayName>britisk barneskje</displayName>
- <unitPattern count="one">{0} britisk barneskje</unitPattern>
- <unitPattern count="other">{0} britiske barneskjeer</unitPattern>
- </unit>
- <unit type="volume-drop">
- <gender>masculine</gender>
- <displayName>dråpe</displayName>
- <unitPattern count="one">{0} dråpe</unitPattern>
- <unitPattern count="other">{0} dråper</unitPattern>
- </unit>
- <unit type="volume-dram">
- <gender>masculine</gender>
- <displayName>dram</displayName>
- <unitPattern count="one">{0} dram</unitPattern>
- <unitPattern count="other">{0} dram</unitPattern>
- </unit>
- <unit type="volume-jigger">
- <gender>masculine</gender>
- <displayName>shot</displayName>
- <unitPattern count="one">{0} shot</unitPattern>
- <unitPattern count="other">{0} shot</unitPattern>
- </unit>
- <unit type="volume-pinch">
- <gender>masculine</gender>
- <displayName>klype</displayName>
- <unitPattern count="one">{0} klype</unitPattern>
- <unitPattern count="other">{0} klyper</unitPattern>
- </unit>
- <unit type="volume-quart-imperial">
- <gender>masculine</gender>
- <displayName>britisk quart</displayName>
- <unitPattern count="one">{0} britisk quart</unitPattern>
- <unitPattern count="other">{0} britiske quart</unitPattern>
- </unit>
- <coordinateUnit>
- <displayName>himmelretning</displayName>
- <coordinateUnitPattern type="east">{0} øst</coordinateUnitPattern>
- <coordinateUnitPattern type="north">{0} nord</coordinateUnitPattern>
- <coordinateUnitPattern type="south">{0} sør</coordinateUnitPattern>
- <coordinateUnitPattern type="west">{0} vest</coordinateUnitPattern>
- </coordinateUnit>
- </unitLength>
- <unitLength type="short">
- <compoundUnit type="10p-1">
- <unitPrefixPattern>d{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p-2">
- <unitPrefixPattern>c{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p-3">
- <unitPrefixPattern>m{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p-9">
- <unitPrefixPattern>n{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p-12">
- <unitPrefixPattern>p{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p-15">
- <unitPrefixPattern>f{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p-18">
- <unitPrefixPattern>a{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p-21">
- <unitPrefixPattern>z{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p-24">
- <unitPrefixPattern>y{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p1">
- <unitPrefixPattern>da{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p2">
- <unitPrefixPattern>h{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p3">
- <unitPrefixPattern>k{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p6">
- <unitPrefixPattern>M{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p9">
- <unitPrefixPattern>G{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p12">
- <unitPrefixPattern>T{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p15">
- <unitPrefixPattern>P{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p18">
- <unitPrefixPattern>E{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p21">
- <unitPrefixPattern>Z{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p24">
- <unitPrefixPattern>Y{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="1024p1">
- <unitPrefixPattern>Ki{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="1024p2">
- <unitPrefixPattern>↑↑↑</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="1024p3">
- <unitPrefixPattern>↑↑↑</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="1024p4">
- <unitPrefixPattern>↑↑↑</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="1024p5">
- <unitPrefixPattern>↑↑↑</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="1024p6">
- <unitPrefixPattern>↑↑↑</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="1024p7">
- <unitPrefixPattern>↑↑↑</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="1024p8">
- <unitPrefixPattern>↑↑↑</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="per">
- <compoundUnitPattern>{0}/{1}</compoundUnitPattern>
- </compoundUnit>
- <compoundUnit type="power2">
- <compoundUnitPattern1>{0}²</compoundUnitPattern1>
- <compoundUnitPattern1 count="one">↑↑↑</compoundUnitPattern1>
- <compoundUnitPattern1 count="other">↑↑↑</compoundUnitPattern1>
- </compoundUnit>
- <compoundUnit type="power3">
- <compoundUnitPattern1>{0}³</compoundUnitPattern1>
- <compoundUnitPattern1 count="one">↑↑↑</compoundUnitPattern1>
- <compoundUnitPattern1 count="other">↑↑↑</compoundUnitPattern1>
- </compoundUnit>
- <compoundUnit type="times">
- <compoundUnitPattern>↑↑↑</compoundUnitPattern>
- </compoundUnit>
- <unit type="acceleration-g-force">
- <displayName>g-kraft</displayName>
- <unitPattern count="one">{0} G</unitPattern>
- <unitPattern count="other">{0} G</unitPattern>
- </unit>
- <unit type="acceleration-meter-per-square-second">
- <displayName>meter/s²</displayName>
- <unitPattern count="one">{0} m/s²</unitPattern>
- <unitPattern count="other">{0} m/s²</unitPattern>
- </unit>
- <unit type="angle-revolution">
- <displayName>omdr.</displayName>
- <unitPattern count="one">{0} omdr.</unitPattern>
- <unitPattern count="other">{0} omdr.</unitPattern>
- </unit>
- <unit type="angle-radian">
- <displayName>radianer</displayName>
- <unitPattern count="one">{0} rad</unitPattern>
- <unitPattern count="other">{0} rad</unitPattern>
- </unit>
- <unit type="angle-degree">
- <displayName>grader</displayName>
- <unitPattern count="one">{0}°</unitPattern>
- <unitPattern count="other">{0}°</unitPattern>
- </unit>
- <unit type="angle-arc-minute">
- <displayName>bueminutter</displayName>
- <unitPattern count="one">{0}′</unitPattern>
- <unitPattern count="other">{0}′</unitPattern>
- </unit>
- <unit type="angle-arc-second">
- <displayName>buesek</displayName>
- <unitPattern count="one">{0}″</unitPattern>
- <unitPattern count="other">{0}″</unitPattern>
- </unit>
- <unit type="area-square-kilometer">
- <displayName>km²</displayName>
- <unitPattern count="one">{0} km²</unitPattern>
- <unitPattern count="other">{0} km²</unitPattern>
- <perUnitPattern>{0}/km²</perUnitPattern>
- </unit>
- <unit type="area-hectare">
- <displayName>hektar</displayName>
- <unitPattern count="one">{0} ha</unitPattern>
- <unitPattern count="other">{0} ha</unitPattern>
- </unit>
- <unit type="area-square-meter">
- <displayName>m²</displayName>
- <unitPattern count="one">{0} m²</unitPattern>
- <unitPattern count="other">{0} m²</unitPattern>
- <perUnitPattern>{0}/m²</perUnitPattern>
- </unit>
- <unit type="area-square-centimeter">
- <displayName>cm²</displayName>
- <unitPattern count="one">{0} cm²</unitPattern>
- <unitPattern count="other">{0} cm²</unitPattern>
- <perUnitPattern>{0}/cm²</perUnitPattern>
- </unit>
- <unit type="area-square-mile">
- <displayName>miles²</displayName>
- <unitPattern count="one">{0} mile²</unitPattern>
- <unitPattern count="other">{0} miles²</unitPattern>
- <perUnitPattern>{0}/mile²</perUnitPattern>
- </unit>
- <unit type="area-acre">
- <displayName>acre</displayName>
- <unitPattern count="one">{0} ac</unitPattern>
- <unitPattern count="other">{0} ac</unitPattern>
- </unit>
- <unit type="area-square-yard">
- <displayName>yd²</displayName>
- <unitPattern count="one">{0} yd²</unitPattern>
- <unitPattern count="other">{0} yd²</unitPattern>
- </unit>
- <unit type="area-square-foot">
- <displayName>kvadratfot</displayName>
- <unitPattern count="one">{0} fot²</unitPattern>
- <unitPattern count="other">{0} fot²</unitPattern>
- </unit>
- <unit type="area-square-inch">
- <displayName>tommer²</displayName>
- <unitPattern count="one">{0} tomme²</unitPattern>
- <unitPattern count="other">{0} tommer²</unitPattern>
- <perUnitPattern>{0}/tommer²</perUnitPattern>
- </unit>
- <unit type="area-dunam">
- <displayName>↑↑↑</displayName>
- <unitPattern count="one">↑↑↑</unitPattern>
- <unitPattern count="other">↑↑↑</unitPattern>
- </unit>
- <unit type="concentr-karat">
- <displayName>karat</displayName>
- <unitPattern count="one">{0} kt</unitPattern>
- <unitPattern count="other">{0} kt</unitPattern>
- </unit>
- <unit type="concentr-milligram-per-deciliter">
- <displayName>mg/dl</displayName>
- <unitPattern count="one">{0} mg/dl</unitPattern>
- <unitPattern count="other">{0} mg/dl</unitPattern>
- </unit>
- <unit type="concentr-millimole-per-liter">
- <displayName>mmol/liter</displayName>
- <unitPattern count="one">{0} mmol/l</unitPattern>
- <unitPattern count="other">{0} mmol/l</unitPattern>
- </unit>
- <unit type="concentr-permillion">
- <displayName>ppm</displayName>
- <unitPattern count="one">{0} ppm</unitPattern>
- <unitPattern count="other">{0} ppm</unitPattern>
- </unit>
- <unit type="concentr-percent">
- <displayName>prosent</displayName>
- <unitPattern count="one">{0} %</unitPattern>
- <unitPattern count="other">{0} %</unitPattern>
- </unit>
- <unit type="concentr-permille">
- <displayName>promille</displayName>
- <unitPattern count="one">{0} ‰</unitPattern>
- <unitPattern count="other">{0} ‰</unitPattern>
- </unit>
- <unit type="concentr-permyriad">
- <displayName>promyriade</displayName>
- <unitPattern count="one">{0} ‱</unitPattern>
- <unitPattern count="other">{0} ‱</unitPattern>
- </unit>
- <unit type="concentr-mole">
- <displayName>↑↑↑</displayName>
- <unitPattern count="one">↑↑↑</unitPattern>
- <unitPattern count="other">↑↑↑</unitPattern>
- </unit>
- <unit type="consumption-liter-per-kilometer">
- <displayName>liter/km</displayName>
- <unitPattern count="one">{0} l/km</unitPattern>
- <unitPattern count="other">{0} l/km</unitPattern>
- </unit>
- <unit type="consumption-liter-per-100-kilometer">
- <displayName>l/100 km</displayName>
- <unitPattern count="one">{0} l/100 km</unitPattern>
- <unitPattern count="other">{0} l/100 km</unitPattern>
- </unit>
- <unit type="consumption-mile-per-gallon">
- <displayName>miles/gal</displayName>
- <unitPattern count="one">{0} mpg</unitPattern>
- <unitPattern count="other">{0} mpg</unitPattern>
- </unit>
- <unit type="consumption-mile-per-gallon-imperial">
- <displayName>miles/brit. gal</displayName>
- <unitPattern count="one">{0} mpg brit.</unitPattern>
- <unitPattern count="other">{0} mpg brit.</unitPattern>
- </unit>
- <unit type="digital-petabyte">
- <displayName>PB</displayName>
- <unitPattern count="one">{0} PB</unitPattern>
- <unitPattern count="other">{0} PB</unitPattern>
- </unit>
- <unit type="digital-terabyte">
- <displayName>TB</displayName>
- <unitPattern count="one">{0} TB</unitPattern>
- <unitPattern count="other">{0} TB</unitPattern>
- </unit>
- <unit type="digital-terabit">
- <displayName>Tbit</displayName>
- <unitPattern count="one">{0} Tb</unitPattern>
- <unitPattern count="other">{0} Tb</unitPattern>
- </unit>
- <unit type="digital-gigabyte">
- <displayName>GB</displayName>
- <unitPattern count="one">{0} GB</unitPattern>
- <unitPattern count="other">{0} GB</unitPattern>
- </unit>
- <unit type="digital-gigabit">
- <displayName>Gbit</displayName>
- <unitPattern count="one">{0} Gb</unitPattern>
- <unitPattern count="other">{0} Gb</unitPattern>
- </unit>
- <unit type="digital-megabyte">
- <displayName>MB</displayName>
- <unitPattern count="one">{0} MB</unitPattern>
- <unitPattern count="other">{0} MB</unitPattern>
- </unit>
- <unit type="digital-megabit">
- <displayName>Mbit</displayName>
- <unitPattern count="one">{0} Mb</unitPattern>
- <unitPattern count="other">{0} Mb</unitPattern>
- </unit>
- <unit type="digital-kilobyte">
- <displayName>kB</displayName>
- <unitPattern count="one">{0} kB</unitPattern>
- <unitPattern count="other">{0} kB</unitPattern>
- </unit>
- <unit type="digital-kilobit">
- <displayName>kbit</displayName>
- <unitPattern count="one">{0} kb</unitPattern>
- <unitPattern count="other">{0} kb</unitPattern>
- </unit>
- <unit type="digital-byte">
- <displayName>byte</displayName>
- <unitPattern count="one">{0} B</unitPattern>
- <unitPattern count="other">{0} B</unitPattern>
- </unit>
- <unit type="digital-bit">
- <displayName>bit</displayName>
- <unitPattern count="one">{0} bit</unitPattern>
- <unitPattern count="other">{0} bit</unitPattern>
- </unit>
- <unit type="duration-century">
- <displayName>årh.</displayName>
- <unitPattern count="one">{0} årh.</unitPattern>
- <unitPattern count="other">{0} årh.</unitPattern>
- </unit>
- <unit type="duration-decade">
- <displayName>tiår</displayName>
- <unitPattern count="one">{0} tiår</unitPattern>
- <unitPattern count="other">{0} tiår</unitPattern>
- </unit>
- <unit type="duration-year">
- <displayName>år</displayName>
- <unitPattern count="one">{0} år</unitPattern>
- <unitPattern count="other">{0} år</unitPattern>
- <perUnitPattern>{0}/år</perUnitPattern>
- </unit>
- <unit type="duration-month">
- <displayName>måneder</displayName>
- <unitPattern count="one">{0} md.</unitPattern>
- <unitPattern count="other">{0} md.</unitPattern>
- <perUnitPattern>{0}/md.</perUnitPattern>
- </unit>
- <unit type="duration-week">
- <displayName>uker</displayName>
- <unitPattern count="one">{0} u</unitPattern>
- <unitPattern count="other">{0} u</unitPattern>
- <perUnitPattern>{0}/u</perUnitPattern>
- </unit>
- <unit type="duration-day">
- <displayName>døgn</displayName>
- <unitPattern count="one">{0} d</unitPattern>
- <unitPattern count="other">{0} d</unitPattern>
- <perUnitPattern>{0}/d</perUnitPattern>
- </unit>
- <unit type="duration-hour">
- <displayName>timer</displayName>
- <unitPattern count="one">{0} t</unitPattern>
- <unitPattern count="other">{0} t</unitPattern>
- <perUnitPattern>{0}/t</perUnitPattern>
- </unit>
- <unit type="duration-minute">
- <displayName>min</displayName>
- <unitPattern count="one">{0} min</unitPattern>
- <unitPattern count="other">{0} min</unitPattern>
- <perUnitPattern>{0}/min</perUnitPattern>
- </unit>
- <unit type="duration-second">
- <displayName>sek</displayName>
- <unitPattern count="one">{0} sek</unitPattern>
- <unitPattern count="other">{0} sek</unitPattern>
- <perUnitPattern>{0}/s</perUnitPattern>
- </unit>
- <unit type="duration-millisecond">
- <displayName>ms</displayName>
- <unitPattern count="one">{0} ms</unitPattern>
- <unitPattern count="other">{0} ms</unitPattern>
- </unit>
- <unit type="duration-microsecond">
- <displayName>μs</displayName>
- <unitPattern count="one">{0} μs</unitPattern>
- <unitPattern count="other">{0} μs</unitPattern>
- </unit>
- <unit type="duration-nanosecond">
- <displayName>ns</displayName>
- <unitPattern count="one">{0} ns</unitPattern>
- <unitPattern count="other">{0} ns</unitPattern>
- </unit>
- <unit type="electric-ampere">
- <displayName>ampere</displayName>
- <unitPattern count="one">{0} A</unitPattern>
- <unitPattern count="other">{0} A</unitPattern>
- </unit>
- <unit type="electric-milliampere">
- <displayName>milliampere</displayName>
- <unitPattern count="one">{0} mA</unitPattern>
- <unitPattern count="other">{0} mA</unitPattern>
- </unit>
- <unit type="electric-ohm">
- <displayName>ohm</displayName>
- <unitPattern count="one">{0} Ω</unitPattern>
- <unitPattern count="other">{0} Ω</unitPattern>
- </unit>
- <unit type="electric-volt">
- <displayName>volt</displayName>
- <unitPattern count="one">{0} V</unitPattern>
- <unitPattern count="other">{0} V</unitPattern>
- </unit>
- <unit type="energy-kilocalorie">
- <displayName>kcal</displayName>
- <unitPattern count="one">{0} kcal</unitPattern>
- <unitPattern count="other">{0} kcal</unitPattern>
- </unit>
- <unit type="energy-calorie">
- <displayName>cal</displayName>
- <unitPattern count="one">{0} cal</unitPattern>
- <unitPattern count="other">{0} cal</unitPattern>
- </unit>
- <unit type="energy-foodcalorie">
- <displayName>cal</displayName>
- <unitPattern count="one">{0} cal</unitPattern>
- <unitPattern count="other">{0} cal</unitPattern>
- </unit>
- <unit type="energy-kilojoule">
- <displayName>kilojoule</displayName>
- <unitPattern count="one">{0} kJ</unitPattern>
- <unitPattern count="other">{0} kJ</unitPattern>
- </unit>
- <unit type="energy-joule">
- <displayName>joule</displayName>
- <unitPattern count="one">{0} J</unitPattern>
- <unitPattern count="other">{0} J</unitPattern>
- </unit>
- <unit type="energy-kilowatt-hour">
- <displayName>kWh</displayName>
- <unitPattern count="one">{0} kWh</unitPattern>
- <unitPattern count="other">{0} kWh</unitPattern>
- </unit>
- <unit type="energy-electronvolt">
- <displayName>elektronvolt</displayName>
- <unitPattern count="one">{0} eV</unitPattern>
- <unitPattern count="other">{0} eV</unitPattern>
- </unit>
- <unit type="energy-british-thermal-unit">
- <displayName>↑↑↑</displayName>
- <unitPattern count="one">↑↑↑</unitPattern>
- <unitPattern count="other">↑↑↑</unitPattern>
- </unit>
- <unit type="energy-therm-us">
- <displayName>therm</displayName>
- <unitPattern count="one">{0} therm</unitPattern>
- <unitPattern count="other">{0} therm</unitPattern>
- </unit>
- <unit type="force-pound-force">
- <displayName>poundforce</displayName>
- <unitPattern count="one">{0} lbf</unitPattern>
- <unitPattern count="other">{0} lbf</unitPattern>
- </unit>
- <unit type="force-newton">
- <displayName>newton</displayName>
- <unitPattern count="one">↑↑↑</unitPattern>
- <unitPattern count="other">↑↑↑</unitPattern>
- </unit>
- <unit type="frequency-gigahertz">
- <displayName>GHz</displayName>
- <unitPattern count="one">{0} GHz</unitPattern>
- <unitPattern count="other">{0} GHz</unitPattern>
- </unit>
- <unit type="frequency-megahertz">
- <displayName>MHz</displayName>
- <unitPattern count="one">{0} MHz</unitPattern>
- <unitPattern count="other">{0} MHz</unitPattern>
- </unit>
- <unit type="frequency-kilohertz">
- <displayName>kHz</displayName>
- <unitPattern count="one">{0} kHz</unitPattern>
- <unitPattern count="other">{0} kHz</unitPattern>
- </unit>
- <unit type="frequency-hertz">
- <displayName>Hz</displayName>
- <unitPattern count="one">{0} Hz</unitPattern>
- <unitPattern count="other">{0} Hz</unitPattern>
- </unit>
- <unit type="graphics-em">
- <displayName>gefirt</displayName>
- <unitPattern count="one">{0} gefirt</unitPattern>
- <unitPattern count="other">{0} gefirt</unitPattern>
- </unit>
- <unit type="graphics-pixel">
- <displayName>piksler</displayName>
- <unitPattern count="one">↑↑↑</unitPattern>
- <unitPattern count="other">{0} px</unitPattern>
- </unit>
- <unit type="graphics-megapixel">
- <displayName>megapiksler</displayName>
- <unitPattern count="one">↑↑↑</unitPattern>
- <unitPattern count="other">{0} MP</unitPattern>
- </unit>
- <unit type="graphics-pixel-per-centimeter">
- <displayName>↑↑↑</displayName>
- <unitPattern count="one">↑↑↑</unitPattern>
- <unitPattern count="other">{0} ppcm</unitPattern>
- </unit>
- <unit type="graphics-pixel-per-inch">
- <displayName>ppi</displayName>
- <unitPattern count="one">↑↑↑</unitPattern>
- <unitPattern count="other">{0} ppi</unitPattern>
- </unit>
- <unit type="graphics-dot-per-centimeter">
- <displayName>dpcm</displayName>
- <unitPattern count="one">↑↑↑</unitPattern>
- <unitPattern count="other">↑↑↑</unitPattern>
- </unit>
- <unit type="graphics-dot-per-inch">
- <displayName>↑↑↑</displayName>
- <unitPattern count="one">↑↑↑</unitPattern>
- <unitPattern count="other">↑↑↑</unitPattern>
- </unit>
- <unit type="graphics-dot">
- <displayName>pkt</displayName>
- <unitPattern count="one">{0} pkt</unitPattern>
- <unitPattern count="other">{0} pkt</unitPattern>
- </unit>
- <unit type="length-earth-radius">
- <displayName>↑↑↑</displayName>
- <unitPattern count="one">↑↑↑</unitPattern>
- <unitPattern count="other">↑↑↑</unitPattern>
- </unit>
- <unit type="length-kilometer">
- <displayName>km</displayName>
- <unitPattern count="one">{0} km</unitPattern>
- <unitPattern count="other">{0} km</unitPattern>
- <perUnitPattern>{0}/km</perUnitPattern>
- </unit>
- <unit type="length-meter">
- <displayName>meter</displayName>
- <unitPattern count="one">{0} m</unitPattern>
- <unitPattern count="other">{0} m</unitPattern>
- <perUnitPattern>{0}/m</perUnitPattern>
- </unit>
- <unit type="length-decimeter">
- <displayName>dm</displayName>
- <unitPattern count="one">{0} dm</unitPattern>
- <unitPattern count="other">{0} dm</unitPattern>
- </unit>
- <unit type="length-centimeter">
- <displayName>cm</displayName>
- <unitPattern count="one">{0} cm</unitPattern>
- <unitPattern count="other">{0} cm</unitPattern>
- <perUnitPattern>{0}/cm</perUnitPattern>
- </unit>
- <unit type="length-millimeter">
- <displayName>mm</displayName>
- <unitPattern count="one">{0} mm</unitPattern>
- <unitPattern count="other">{0} mm</unitPattern>
- </unit>
- <unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
- </unit>
- <unit type="length-nanometer">
- <displayName>nm</displayName>
- <unitPattern count="one">{0} nm</unitPattern>
- <unitPattern count="other">{0} nm</unitPattern>
- </unit>
- <unit type="length-picometer">
- <displayName>pm</displayName>
- <unitPattern count="one">{0} pm</unitPattern>
- <unitPattern count="other">{0} pm</unitPattern>
- </unit>
- <unit type="length-mile">
- <displayName>miles</displayName>
- <unitPattern count="one">{0} mile</unitPattern>
- <unitPattern count="other">{0} miles</unitPattern>
- </unit>
- <unit type="length-yard">
- <displayName>yard</displayName>
- <unitPattern count="one">{0} yard</unitPattern>
- <unitPattern count="other">{0} yard</unitPattern>
- </unit>
- <unit type="length-foot">
- <displayName>fot</displayName>
- <unitPattern count="one">{0} fot</unitPattern>
- <unitPattern count="other">{0} fot</unitPattern>
- <perUnitPattern>{0}/fot</perUnitPattern>
- </unit>
- <unit type="length-inch">
- <displayName>tommer</displayName>
- <unitPattern count="one">{0} tomme</unitPattern>
- <unitPattern count="other">{0} tommer</unitPattern>
- <perUnitPattern>{0}/tomme</perUnitPattern>
- </unit>
- <unit type="length-parsec">
- <displayName>parsec</displayName>
- <unitPattern count="one">{0} pc</unitPattern>
- <unitPattern count="other">{0} pc</unitPattern>
- </unit>
- <unit type="length-light-year">
- <displayName>lysår</displayName>
- <unitPattern count="one">{0} ly</unitPattern>
- <unitPattern count="other">{0} ly</unitPattern>
- </unit>
- <unit type="length-astronomical-unit">
- <displayName>AU</displayName>
- <unitPattern count="one">{0} AU</unitPattern>
- <unitPattern count="other">{0} AU</unitPattern>
- </unit>
- <unit type="length-furlong">
- <displayName>furlong</displayName>
- <unitPattern count="one">{0} fur</unitPattern>
- <unitPattern count="other">{0} fur</unitPattern>
- </unit>
- <unit type="length-fathom">
- <displayName>favner</displayName>
- <unitPattern count="one">{0} fm</unitPattern>
- <unitPattern count="other">{0} fm</unitPattern>
- </unit>
- <unit type="length-nautical-mile">
- <displayName>nmi</displayName>
- <unitPattern count="one">{0} nmi</unitPattern>
- <unitPattern count="other">{0} nmi</unitPattern>
- </unit>
- <unit type="length-mile-scandinavian">
- <displayName>mil</displayName>
- <unitPattern count="one">{0} mil</unitPattern>
- <unitPattern count="other">{0} mil</unitPattern>
- </unit>
- <unit type="length-point">
- <displayName>punkter</displayName>
- <unitPattern count="one">{0} pt</unitPattern>
- <unitPattern count="other">{0} pt</unitPattern>
- </unit>
- <unit type="length-solar-radius">
- <displayName>solradius</displayName>
- <unitPattern count="one">↑↑↑</unitPattern>
- <unitPattern count="other">↑↑↑</unitPattern>
- </unit>
- <unit type="light-lux">
- <displayName>lux</displayName>
- <unitPattern count="one">{0} lx</unitPattern>
- <unitPattern count="other">{0} lx</unitPattern>
- </unit>
- <unit type="light-candela">
- <displayName>cd</displayName>
- <unitPattern count="one">{0} cd</unitPattern>
- <unitPattern count="other">{0} cd</unitPattern>
- </unit>
- <unit type="light-lumen">
- <displayName>lm</displayName>
- <unitPattern count="one">{0} lm</unitPattern>
- <unitPattern count="other">{0} lm</unitPattern>
- </unit>
- <unit type="light-solar-luminosity">
- <displayName>solluminositet</displayName>
- <unitPattern count="one">↑↑↑</unitPattern>
- <unitPattern count="other">↑↑↑</unitPattern>
- </unit>
- <unit type="mass-metric-ton">
- <displayName>tonn</displayName>
- <unitPattern count="one">{0} tonn</unitPattern>
- <unitPattern count="other">{0} tonn</unitPattern>
- </unit>
- <unit type="mass-kilogram">
- <displayName>kg</displayName>
- <unitPattern count="one">{0} kg</unitPattern>
- <unitPattern count="other">{0} kg</unitPattern>
- <perUnitPattern>{0}/kg</perUnitPattern>
- </unit>
- <unit type="mass-gram">
- <displayName>gram</displayName>
- <unitPattern count="one">{0} g</unitPattern>
- <unitPattern count="other">{0} g</unitPattern>
- <perUnitPattern>{0}/g</perUnitPattern>
- </unit>
- <unit type="mass-milligram">
- <displayName>mg</displayName>
- <unitPattern count="one">{0} mg</unitPattern>
- <unitPattern count="other">{0} mg</unitPattern>
- </unit>
- <unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
- </unit>
- <unit type="mass-ton">
- <displayName>am. tonn</displayName>
- <unitPattern count="one">{0} am. tonn</unitPattern>
- <unitPattern count="other">{0} am. tonn</unitPattern>
- </unit>
- <unit type="mass-stone">
- <displayName>stone</displayName>
- <unitPattern count="one">↑↑↑</unitPattern>
- <unitPattern count="other">↑↑↑</unitPattern>
- </unit>
- <unit type="mass-pound">
- <displayName>pund</displayName>
- <unitPattern count="one">{0} pund</unitPattern>
- <unitPattern count="other">{0} pund</unitPattern>
- <perUnitPattern>{0}/pund</perUnitPattern>
- </unit>
- <unit type="mass-ounce">
- <displayName>unser</displayName>
- <unitPattern count="one">{0} unse</unitPattern>
- <unitPattern count="other">{0} unser</unitPattern>
- <perUnitPattern>{0}/unse</perUnitPattern>
- </unit>
- <unit type="mass-ounce-troy">
- <displayName>oz tr</displayName>
- <unitPattern count="one">{0} oz tr</unitPattern>
- <unitPattern count="other">{0} oz tr</unitPattern>
- </unit>
- <unit type="mass-carat">
- <displayName>karat</displayName>
- <unitPattern count="one">{0} c</unitPattern>
- <unitPattern count="other">{0} c</unitPattern>
- </unit>
- <unit type="mass-dalton">
- <displayName>dalton</displayName>
- <unitPattern count="one">{0} Da</unitPattern>
- <unitPattern count="other">{0} Da</unitPattern>
- </unit>
- <unit type="mass-earth-mass">
- <displayName>jordmasser</displayName>
- <unitPattern count="one">{0} M⊕</unitPattern>
- <unitPattern count="other">{0} M⊕</unitPattern>
- </unit>
- <unit type="mass-solar-mass">
- <displayName>solmasser</displayName>
- <unitPattern count="one">{0} M☉</unitPattern>
- <unitPattern count="other">{0} M☉</unitPattern>
- </unit>
- <unit type="mass-grain">
- <displayName>↑↑↑</displayName>
- <unitPattern count="one">↑↑↑</unitPattern>
- <unitPattern count="other">↑↑↑</unitPattern>
- </unit>
- <unit type="power-gigawatt">
- <displayName>GW</displayName>
- <unitPattern count="one">{0} GW</unitPattern>
- <unitPattern count="other">{0} GW</unitPattern>
- </unit>
- <unit type="power-megawatt">
- <displayName>MW</displayName>
- <unitPattern count="one">{0} MW</unitPattern>
- <unitPattern count="other">{0} MW</unitPattern>
- </unit>
- <unit type="power-kilowatt">
- <displayName>kW</displayName>
- <unitPattern count="one">{0} kW</unitPattern>
- <unitPattern count="other">{0} kW</unitPattern>
- </unit>
- <unit type="power-watt">
- <displayName>watt</displayName>
- <unitPattern count="one">{0} W</unitPattern>
- <unitPattern count="other">{0} W</unitPattern>
- </unit>
- <unit type="power-milliwatt">
- <displayName>mW</displayName>
- <unitPattern count="one">{0} mW</unitPattern>
- <unitPattern count="other">{0} mW</unitPattern>
- </unit>
- <unit type="power-horsepower">
- <displayName>hk</displayName>
- <unitPattern count="one">{0} hk</unitPattern>
- <unitPattern count="other">{0} hk</unitPattern>
- </unit>
- <unit type="pressure-millimeter-ofhg">
- <displayName>mmHg</displayName>
- <unitPattern count="one">{0} mmHg</unitPattern>
- <unitPattern count="other">{0} mmHg</unitPattern>
- </unit>
- <unit type="pressure-pound-force-per-square-inch">
- <displayName>psi</displayName>
- <unitPattern count="one">{0} psi</unitPattern>
- <unitPattern count="other">{0} psi</unitPattern>
- </unit>
- <unit type="pressure-inch-ofhg">
- <displayName>inHg</displayName>
- <unitPattern count="one">{0} inHg</unitPattern>
- <unitPattern count="other">{0} inHg</unitPattern>
- </unit>
- <unit type="pressure-bar">
- <displayName>↑↑↑</displayName>
- <unitPattern count="one">↑↑↑</unitPattern>
- <unitPattern count="other">{0} bar</unitPattern>
- </unit>
- <unit type="pressure-millibar">
- <displayName>mbar</displayName>
- <unitPattern count="one">{0} mbar</unitPattern>
- <unitPattern count="other">{0} mbar</unitPattern>
- </unit>
- <unit type="pressure-atmosphere">
- <displayName>atm</displayName>
- <unitPattern count="one">{0} atm</unitPattern>
- <unitPattern count="other">{0} atm</unitPattern>
- </unit>
- <unit type="pressure-pascal">
- <displayName>↑↑↑</displayName>
- <unitPattern count="one">↑↑↑</unitPattern>
- <unitPattern count="other">{0} Pa</unitPattern>
- </unit>
- <unit type="pressure-hectopascal">
- <displayName>hPa</displayName>
- <unitPattern count="one">{0} hPa</unitPattern>
- <unitPattern count="other">{0} hPa</unitPattern>
- </unit>
- <unit type="pressure-kilopascal">
- <displayName>↑↑↑</displayName>
- <unitPattern count="one">↑↑↑</unitPattern>
- <unitPattern count="other">↑↑↑</unitPattern>
- </unit>
- <unit type="pressure-megapascal">
- <displayName>↑↑↑</displayName>
- <unitPattern count="one">↑↑↑</unitPattern>
- <unitPattern count="other">↑↑↑</unitPattern>
- </unit>
- <unit type="speed-kilometer-per-hour">
- <displayName>km/time</displayName>
- <unitPattern count="one">{0} km/t</unitPattern>
- <unitPattern count="other">{0} km/t</unitPattern>
- </unit>
- <unit type="speed-meter-per-second">
- <displayName>meter/s</displayName>
- <unitPattern count="one">{0} m/s</unitPattern>
- <unitPattern count="other">{0} m/s</unitPattern>
- </unit>
- <unit type="speed-mile-per-hour">
- <displayName>miles/t</displayName>
- <unitPattern count="one">{0} mile/t</unitPattern>
- <unitPattern count="other">{0} miles/t</unitPattern>
- </unit>
- <unit type="speed-knot">
- <displayName>kn</displayName>
- <unitPattern count="one">{0} kn</unitPattern>
- <unitPattern count="other">{0} kn</unitPattern>
- </unit>
- <unit type="temperature-generic">
- <displayName>°</displayName>
- <unitPattern count="one">{0}°</unitPattern>
- <unitPattern count="other">{0}°</unitPattern>
- </unit>
- <unit type="temperature-celsius">
- <displayName>°C</displayName>
- <unitPattern count="one">{0} °C</unitPattern>
- <unitPattern count="other">{0} °C</unitPattern>
- </unit>
- <unit type="temperature-fahrenheit">
- <displayName>°F</displayName>
- <unitPattern count="one">{0} °F</unitPattern>
- <unitPattern count="other">{0} °F</unitPattern>
- </unit>
- <unit type="temperature-kelvin">
- <displayName>K</displayName>
- <unitPattern count="one">{0} K</unitPattern>
- <unitPattern count="other">{0} K</unitPattern>
- </unit>
- <unit type="torque-pound-force-foot">
- <displayName>↑↑↑</displayName>
- <unitPattern count="one">↑↑↑</unitPattern>
- <unitPattern count="other">↑↑↑</unitPattern>
- </unit>
- <unit type="torque-newton-meter">
- <displayName>Nm</displayName>
- <unitPattern count="one">{0} Nm</unitPattern>
- <unitPattern count="other">{0} Nm</unitPattern>
- </unit>
- <unit type="volume-cubic-kilometer">
- <displayName>km³</displayName>
- <unitPattern count="one">{0} km³</unitPattern>
- <unitPattern count="other">{0} km³</unitPattern>
- </unit>
- <unit type="volume-cubic-meter">
- <displayName>m³</displayName>
- <unitPattern count="one">{0} m³</unitPattern>
- <unitPattern count="other">{0} m³</unitPattern>
- <perUnitPattern>{0}/m³</perUnitPattern>
- </unit>
- <unit type="volume-cubic-centimeter">
- <displayName>cm³</displayName>
- <unitPattern count="one">{0} cm³</unitPattern>
- <unitPattern count="other">{0} cm³</unitPattern>
- <perUnitPattern>{0}/cm³</perUnitPattern>
- </unit>
- <unit type="volume-cubic-mile">
- <displayName>miles³</displayName>
- <unitPattern count="one">{0} mile³</unitPattern>
- <unitPattern count="other">{0} miles³</unitPattern>
- </unit>
- <unit type="volume-cubic-yard">
- <displayName>yard³</displayName>
- <unitPattern count="one">{0} yard³</unitPattern>
- <unitPattern count="other">{0} yard³</unitPattern>
- </unit>
- <unit type="volume-cubic-foot">
- <displayName>fot³</displayName>
- <unitPattern count="one">{0} fot³</unitPattern>
- <unitPattern count="other">{0} fot³</unitPattern>
- </unit>
- <unit type="volume-cubic-inch">
- <displayName>tommer³</displayName>
- <unitPattern count="one">{0} tomme³</unitPattern>
- <unitPattern count="other">{0} tommer³</unitPattern>
- </unit>
- <unit type="volume-megaliter">
- <displayName>Ml</displayName>
- <unitPattern count="one">{0} Ml</unitPattern>
- <unitPattern count="other">{0} Ml</unitPattern>
- </unit>
- <unit type="volume-hectoliter">
- <displayName>hl</displayName>
- <unitPattern count="one">{0} hl</unitPattern>
- <unitPattern count="other">{0} hl</unitPattern>
- </unit>
- <unit type="volume-liter">
- <displayName>liter</displayName>
- <unitPattern count="one">{0} l</unitPattern>
- <unitPattern count="other">{0} l</unitPattern>
- <perUnitPattern>{0}/l</perUnitPattern>
- </unit>
- <unit type="volume-deciliter">
- <displayName>dl</displayName>
- <unitPattern count="one">{0} dl</unitPattern>
- <unitPattern count="other">{0} dl</unitPattern>
- </unit>
- <unit type="volume-centiliter">
- <displayName>cl</displayName>
- <unitPattern count="one">{0} cl</unitPattern>
- <unitPattern count="other">{0} cl</unitPattern>
- </unit>
- <unit type="volume-milliliter">
- <displayName>ml</displayName>
- <unitPattern count="one">{0} ml</unitPattern>
- <unitPattern count="other">{0} ml</unitPattern>
- </unit>
- <unit type="volume-pint-metric">
- <displayName>mpt</displayName>
- <unitPattern count="one">{0} mpt</unitPattern>
- <unitPattern count="other">{0} mpt</unitPattern>
- </unit>
- <unit type="volume-cup-metric">
- <displayName>m. kopper</displayName>
- <unitPattern count="one">{0} m. kopp</unitPattern>
- <unitPattern count="other">{0} m. kopper</unitPattern>
- </unit>
- <unit type="volume-acre-foot">
- <displayName>acre-fot</displayName>
- <unitPattern count="one">{0} ac-fot</unitPattern>
- <unitPattern count="other">{0} ac-fot</unitPattern>
- </unit>
- <unit type="volume-bushel">
- <displayName>bushel</displayName>
- <unitPattern count="one">{0} bu</unitPattern>
- <unitPattern count="other">{0} bu</unitPattern>
- </unit>
- <unit type="volume-gallon">
- <displayName>gal</displayName>
- <unitPattern count="one">{0} gal</unitPattern>
- <unitPattern count="other">{0} gal</unitPattern>
- <perUnitPattern>{0}/gal</perUnitPattern>
- </unit>
- <unit type="volume-gallon-imperial">
- <displayName>brit. gal</displayName>
- <unitPattern count="one">{0} brit. gal</unitPattern>
- <unitPattern count="other">{0} brit. gal</unitPattern>
- <perUnitPattern>{0}/brit. gal</perUnitPattern>
- </unit>
- <unit type="volume-quart">
- <displayName>qt</displayName>
- <unitPattern count="one">{0} qt</unitPattern>
- <unitPattern count="other">{0} qt</unitPattern>
- </unit>
- <unit type="volume-pint">
- <displayName>pint</displayName>
- <unitPattern count="one">{0} pt</unitPattern>
- <unitPattern count="other">{0} pt</unitPattern>
- </unit>
- <unit type="volume-cup">
- <displayName>kopper</displayName>
- <unitPattern count="one">{0} k</unitPattern>
- <unitPattern count="other">{0} k</unitPattern>
- </unit>
- <unit type="volume-fluid-ounce">
- <displayName>væskeunse</displayName>
- <unitPattern count="one">{0} fl oz</unitPattern>
- <unitPattern count="other">{0} fl oz</unitPattern>
- </unit>
- <unit type="volume-fluid-ounce-imperial">
- <displayName>imp. fl oz</displayName>
- <unitPattern count="one">{0} imp. fl oz</unitPattern>
- <unitPattern count="other">{0} imp. fl oz</unitPattern>
- </unit>
- <unit type="volume-tablespoon">
- <displayName>ss</displayName>
- <unitPattern count="one">{0} ss</unitPattern>
- <unitPattern count="other">{0} ss</unitPattern>
- </unit>
- <unit type="volume-teaspoon">
- <displayName>ts</displayName>
- <unitPattern count="one">{0} ts</unitPattern>
- <unitPattern count="other">{0} ts</unitPattern>
- </unit>
- <unit type="volume-barrel">
- <displayName>fat</displayName>
- <unitPattern count="one">{0} fat</unitPattern>
- <unitPattern count="other">{0} fat</unitPattern>
- </unit>
- <unit type="volume-dessert-spoon">
- <displayName>bs</displayName>
- <unitPattern count="one">{0} bs</unitPattern>
- <unitPattern count="other">{0} bs</unitPattern>
- </unit>
- <unit type="volume-dessert-spoon-imperial">
- <displayName>imp. bs</displayName>
- <unitPattern count="one">{0} imp. bs</unitPattern>
- <unitPattern count="other">{0} imp. bs</unitPattern>
- </unit>
- <unit type="volume-drop">
- <displayName>dråpe</displayName>
- <unitPattern count="one">{0} dråpe</unitPattern>
- <unitPattern count="other">{0} dråpe</unitPattern>
- </unit>
- <unit type="volume-dram">
- <displayName>dram fluid</displayName>
- <unitPattern count="one">{0} dram fl</unitPattern>
- <unitPattern count="other">{0} dram fl</unitPattern>
- </unit>
- <unit type="volume-jigger">
- <displayName>shot</displayName>
- <unitPattern count="one">{0} shot</unitPattern>
- <unitPattern count="other">{0} shot</unitPattern>
- </unit>
- <unit type="volume-pinch">
- <displayName>klype</displayName>
- <unitPattern count="one">{0} klype</unitPattern>
- <unitPattern count="other">{0} klype</unitPattern>
- </unit>
- <unit type="volume-quart-imperial">
- <displayName>imp. quart</displayName>
- <unitPattern count="one">{0} imp. quart</unitPattern>
- <unitPattern count="other">{0} imp. quart</unitPattern>
- </unit>
- <coordinateUnit>
- <displayName>retning</displayName>
- <coordinateUnitPattern type="east">{0} Ø</coordinateUnitPattern>
- <coordinateUnitPattern type="north">{0} N</coordinateUnitPattern>
- <coordinateUnitPattern type="south">{0} S</coordinateUnitPattern>
- <coordinateUnitPattern type="west">{0} V</coordinateUnitPattern>
- </coordinateUnit>
- </unitLength>
- <unitLength type="narrow">
- <compoundUnit type="10p-1">
- <unitPrefixPattern>d{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p-2">
- <unitPrefixPattern>c{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p-3">
- <unitPrefixPattern>m{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p-9">
- <unitPrefixPattern>n{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p-12">
- <unitPrefixPattern>p{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p-15">
- <unitPrefixPattern>f{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p-18">
- <unitPrefixPattern>a{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p-21">
- <unitPrefixPattern>z{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p-24">
- <unitPrefixPattern>y{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p1">
- <unitPrefixPattern>da{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p2">
- <unitPrefixPattern>h{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p3">
- <unitPrefixPattern>k{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p6">
- <unitPrefixPattern>M{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p9">
- <unitPrefixPattern>G{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p12">
- <unitPrefixPattern>T{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p15">
- <unitPrefixPattern>P{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p18">
- <unitPrefixPattern>E{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p21">
- <unitPrefixPattern>Z{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="10p24">
- <unitPrefixPattern>Y{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="1024p1">
- <unitPrefixPattern>Ki{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="1024p2">
- <unitPrefixPattern>Mi{0}</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="1024p3">
- <unitPrefixPattern>↑↑↑</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="1024p4">
- <unitPrefixPattern>↑↑↑</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="1024p5">
- <unitPrefixPattern>↑↑↑</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="1024p6">
- <unitPrefixPattern>↑↑↑</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="1024p7">
- <unitPrefixPattern>↑↑↑</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="1024p8">
- <unitPrefixPattern>↑↑↑</unitPrefixPattern>
- </compoundUnit>
- <compoundUnit type="per">
- <compoundUnitPattern>{0}/{1}</compoundUnitPattern>
- </compoundUnit>
- <compoundUnit type="power2">
- <compoundUnitPattern1>{0}²</compoundUnitPattern1>
- <compoundUnitPattern1 count="one">↑↑↑</compoundUnitPattern1>
- <compoundUnitPattern1 count="other">↑↑↑</compoundUnitPattern1>
- </compoundUnit>
- <compoundUnit type="power3">
- <compoundUnitPattern1>{0}³</compoundUnitPattern1>
- <compoundUnitPattern1 count="one">↑↑↑</compoundUnitPattern1>
- <compoundUnitPattern1 count="other">↑↑↑</compoundUnitPattern1>
- </compoundUnit>
- <compoundUnit type="times">
- <compoundUnitPattern>↑↑↑</compoundUnitPattern>
- </compoundUnit>
- <unit type="acceleration-g-force">
- <displayName draft="contributed">G</displayName>
- <unitPattern count="one">{0}G</unitPattern>
- <unitPattern count="other">{0}G</unitPattern>
- </unit>
- <unit type="acceleration-meter-per-square-second">
- <unitPattern count="one" draft="contributed">{0}m/s²</unitPattern>
- <unitPattern count="other" draft="contributed">{0}m/s²</unitPattern>
- </unit>
- <unit type="angle-radian">
- <displayName draft="unconfirmed">rad</displayName>
- <unitPattern count="one" draft="unconfirmed">{0}rad</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0}rad</unitPattern>
- </unit>
- <unit type="angle-degree">
- <displayName draft="unconfirmed">grader</displayName>
- <unitPattern count="one">{0}°</unitPattern>
- <unitPattern count="other">{0}°</unitPattern>
- </unit>
- <unit type="angle-arc-minute">
- <displayName draft="unconfirmed">buemin</displayName>
- <unitPattern count="one">{0}′</unitPattern>
- <unitPattern count="other">{0}′</unitPattern>
- </unit>
- <unit type="angle-arc-second">
- <displayName draft="unconfirmed">buesek</displayName>
- <unitPattern count="one">{0}″</unitPattern>
- <unitPattern count="other">{0}″</unitPattern>
- </unit>
- <unit type="area-square-kilometer">
- <displayName draft="unconfirmed">km²</displayName>
- <unitPattern count="one">{0}km²</unitPattern>
- <unitPattern count="other">{0}km²</unitPattern>
- <perUnitPattern draft="unconfirmed">{0}/km²</perUnitPattern>
- </unit>
- <unit type="area-hectare">
- <unitPattern count="one">{0}ha</unitPattern>
- <unitPattern count="other">{0}ha</unitPattern>
- </unit>
- <unit type="area-square-meter">
- <displayName draft="unconfirmed">m²</displayName>
- <unitPattern count="one">{0}m²</unitPattern>
- <unitPattern count="other">{0}m²</unitPattern>
- <perUnitPattern draft="unconfirmed">{0}/m²</perUnitPattern>
- </unit>
- <unit type="area-square-centimeter">
- <displayName draft="unconfirmed">cm²</displayName>
- <unitPattern count="one" draft="unconfirmed">{0}cm²</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0}cm²</unitPattern>
- <perUnitPattern draft="unconfirmed">{0}/cm²</perUnitPattern>
- </unit>
- <unit type="area-square-mile">
- <unitPattern count="one">{0} eng mil²</unitPattern>
- <unitPattern count="other">{0} eng mil²</unitPattern>
- </unit>
- <unit type="area-acre">
- <unitPattern count="one">{0} ac</unitPattern>
- <unitPattern count="other">{0} ac</unitPattern>
- </unit>
- <unit type="area-square-foot">
- <unitPattern count="one">{0}fot²</unitPattern>
- <unitPattern count="other">{0}fot²</unitPattern>
- </unit>
- <unit type="concentr-milligram-per-deciliter">
- <displayName draft="unconfirmed">mg/dL</displayName>
- <unitPattern count="one" draft="unconfirmed">{0} mg/dL</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0} mg/dL</unitPattern>
- </unit>
- <unit type="concentr-millimole-per-liter">
- <displayName draft="unconfirmed">mmol/L</displayName>
- <unitPattern count="one" draft="unconfirmed">{0}mmol/L</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0}mmol/L</unitPattern>
- </unit>
- <unit type="concentr-permillion">
- <displayName draft="unconfirmed">ppm</displayName>
- <unitPattern count="one" draft="unconfirmed">{0} ppm</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0} ppm</unitPattern>
- </unit>
- <unit type="concentr-percent">
- <displayName>%</displayName>
- <unitPattern count="one">{0} %</unitPattern>
- <unitPattern count="other">{0} %</unitPattern>
- </unit>
- <unit type="consumption-liter-per-kilometer">
- <displayName draft="unconfirmed">L/km</displayName>
- <unitPattern count="one" draft="unconfirmed">{0}L/km</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0}L/km</unitPattern>
- </unit>
- <unit type="consumption-liter-per-100-kilometer">
- <displayName>l/100km</displayName>
- <unitPattern count="one">{0} l/100km</unitPattern>
- <unitPattern count="other">{0} l/100km</unitPattern>
- </unit>
- <unit type="duration-century">
- <displayName>årh.</displayName>
- <unitPattern count="one">{0} årh.</unitPattern>
- <unitPattern count="other">{0} årh.</unitPattern>
- </unit>
- <unit type="duration-year">
- <displayName>år</displayName>
- <unitPattern count="one">{0}å</unitPattern>
- <unitPattern count="other">{0}å</unitPattern>
- <perUnitPattern>{0}/år</perUnitPattern>
- </unit>
- <unit type="duration-month">
- <displayName>måned</displayName>
- <unitPattern count="one">{0} m</unitPattern>
- <unitPattern count="other">{0} m</unitPattern>
- <perUnitPattern>{0}/m</perUnitPattern>
- </unit>
- <unit type="duration-week">
- <displayName>uke</displayName>
- <unitPattern count="one">{0}u</unitPattern>
- <unitPattern count="other">{0}u</unitPattern>
- <perUnitPattern>{0}/u</perUnitPattern>
- </unit>
- <unit type="duration-day">
- <displayName>døgn</displayName>
- <unitPattern count="one">{0}d</unitPattern>
- <unitPattern count="other">{0}d</unitPattern>
- <perUnitPattern>{0}/d</perUnitPattern>
- </unit>
- <unit type="duration-hour">
- <displayName>time</displayName>
- <unitPattern count="one">{0}t</unitPattern>
- <unitPattern count="other">{0}t</unitPattern>
- <perUnitPattern>{0}/t</perUnitPattern>
- </unit>
- <unit type="duration-minute">
- <displayName>min</displayName>
- <unitPattern count="one">{0}m</unitPattern>
- <unitPattern count="other">{0}m</unitPattern>
- <perUnitPattern>{0}/m</perUnitPattern>
- </unit>
- <unit type="duration-second">
- <displayName>sek</displayName>
- <unitPattern count="one">{0}s</unitPattern>
- <unitPattern count="other">{0}s</unitPattern>
- <perUnitPattern>{0}/s</perUnitPattern>
- </unit>
- <unit type="duration-millisecond">
- <displayName>ms</displayName>
- <unitPattern count="one">{0}ms</unitPattern>
- <unitPattern count="other">{0}ms</unitPattern>
- </unit>
- <unit type="duration-microsecond">
- <displayName>μs</displayName>
- <unitPattern count="one">{0}μs</unitPattern>
- <unitPattern count="other">{0}μs</unitPattern>
- </unit>
- <unit type="duration-nanosecond">
- <displayName>ns</displayName>
- <unitPattern count="one">{0}ns</unitPattern>
- <unitPattern count="other">{0}ns</unitPattern>
- </unit>
- <unit type="length-kilometer">
- <displayName>km</displayName>
- <unitPattern count="one">{0}km</unitPattern>
- <unitPattern count="other">{0}km</unitPattern>
- </unit>
- <unit type="length-meter">
- <displayName>m</displayName>
- <unitPattern count="one">{0}m</unitPattern>
- <unitPattern count="other">{0}m</unitPattern>
- </unit>
- <unit type="length-decimeter">
- <unitPattern count="one" draft="contributed">{0}dm</unitPattern>
- <unitPattern count="other" draft="contributed">{0}dm</unitPattern>
- </unit>
- <unit type="length-centimeter">
- <displayName>cm</displayName>
- <unitPattern count="one">{0}cm</unitPattern>
- <unitPattern count="other">{0}cm</unitPattern>
- </unit>
- <unit type="length-millimeter">
- <displayName>mm</displayName>
- <unitPattern count="one">{0}mm</unitPattern>
- <unitPattern count="other">{0}mm</unitPattern>
- </unit>
- <unit type="length-micrometer">
- <unitPattern count="one" draft="contributed">{0}µm</unitPattern>
- <unitPattern count="other" draft="contributed">{0}µm</unitPattern>
- </unit>
- <unit type="length-nanometer">
- <unitPattern count="one" draft="contributed">{0}nm</unitPattern>
- <unitPattern count="other" draft="contributed">{0}nm</unitPattern>
- </unit>
- <unit type="length-picometer">
- <unitPattern count="one">{0}pm</unitPattern>
- <unitPattern count="other">{0}pm</unitPattern>
- </unit>
- <unit type="length-mile">
- <displayName draft="contributed">mile</displayName>
- <unitPattern count="one">{0} eng mil</unitPattern>
- <unitPattern count="other">{0} eng mil</unitPattern>
- </unit>
- <unit type="length-yard">
- <unitPattern count="one">{0} yard</unitPattern>
- <unitPattern count="other">{0} yard</unitPattern>
- </unit>
- <unit type="length-foot">
- <displayName draft="contributed">fot</displayName>
- <unitPattern count="one" draft="contributed">{0} fot</unitPattern>
- <unitPattern count="other" draft="contributed">{0} fot</unitPattern>
- </unit>
- <unit type="length-inch">
- <displayName draft="contributed">to</displayName>
- <unitPattern count="one" draft="contributed">{0} tomme</unitPattern>
- <unitPattern count="other" draft="contributed">{0} tommer</unitPattern>
- <perUnitPattern draft="contributed">{0}to</perUnitPattern>
- </unit>
- <unit type="length-parsec">
- <unitPattern count="one" draft="contributed">{0}pc</unitPattern>
- <unitPattern count="other" draft="contributed">{0}pc</unitPattern>
- </unit>
- <unit type="length-light-year">
- <unitPattern count="one" draft="contributed">{0} lysår</unitPattern>
- <unitPattern count="other" draft="contributed">{0} lysår</unitPattern>
- </unit>
- <unit type="length-astronomical-unit">
- <unitPattern count="one" draft="contributed">{0}au</unitPattern>
- <unitPattern count="other" draft="contributed">{0}au</unitPattern>
- </unit>
- <unit type="length-nautical-mile">
- <unitPattern count="one" draft="contributed">{0}nmi</unitPattern>
- <unitPattern count="other" draft="contributed">{0}nmi</unitPattern>
- </unit>
- <unit type="length-mile-scandinavian">
- <displayName draft="contributed">mil</displayName>
- <unitPattern count="one" draft="contributed">{0}mil</unitPattern>
- <unitPattern count="other" draft="contributed">{0}mil</unitPattern>
- </unit>
- <unit type="length-point">
- <unitPattern count="one" draft="contributed">{0}pt</unitPattern>
- <unitPattern count="other" draft="contributed">{0}pt</unitPattern>
- </unit>
- <unit type="light-lux">
- <displayName draft="unconfirmed">lux</displayName>
- <unitPattern count="one" draft="unconfirmed">{0}lx</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0}lx</unitPattern>
- </unit>
- <unit type="mass-metric-ton">
- <unitPattern count="one" draft="contributed">{0}t</unitPattern>
- <unitPattern count="other" draft="contributed">{0}t</unitPattern>
- </unit>
- <unit type="mass-kilogram">
- <displayName>kg</displayName>
- <unitPattern count="one">{0}kg</unitPattern>
- <unitPattern count="other">{0}kg</unitPattern>
- </unit>
- <unit type="mass-gram">
- <displayName>gram</displayName>
- <unitPattern count="one">{0}g</unitPattern>
- <unitPattern count="other">{0}g</unitPattern>
- </unit>
- <unit type="mass-milligram">
- <unitPattern count="one" draft="contributed">{0}mg</unitPattern>
- <unitPattern count="other" draft="contributed">{0}mg</unitPattern>
- </unit>
- <unit type="mass-microgram">
- <unitPattern count="one" draft="contributed">{0}µg</unitPattern>
- <unitPattern count="other" draft="contributed">{0}µg</unitPattern>
- </unit>
- <unit type="mass-ton">
- <displayName draft="unconfirmed">eng. k. tonn</displayName>
- <unitPattern count="one" draft="unconfirmed">{0}en.k.ton</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0}en.k.ton</unitPattern>
- </unit>
- <unit type="mass-stone">
- <displayName draft="unconfirmed">eng. steiner</displayName>
- <unitPattern count="one" draft="unconfirmed">{0}en.stein</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0}en.stein</unitPattern>
- </unit>
- <unit type="mass-pound">
- <displayName draft="contributed">pund</displayName>
- <unitPattern count="one">{0} pund</unitPattern>
- <unitPattern count="other">{0} pund</unitPattern>
- <perUnitPattern draft="contributed">{0}/pund</perUnitPattern>
- </unit>
- <unit type="mass-ounce">
- <displayName draft="contributed">unse</displayName>
- <unitPattern count="one">{0} unse</unitPattern>
- <unitPattern count="other">{0} unser</unitPattern>
- <perUnitPattern draft="unconfirmed">{0}/unse</perUnitPattern>
- </unit>
- <unit type="mass-ounce-troy">
- <displayName draft="unconfirmed">troyunser</displayName>
- <unitPattern count="one" draft="unconfirmed">{0} tr.uns</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0} tr.uns</unitPattern>
- </unit>
- <unit type="mass-carat">
- <displayName draft="unconfirmed">karat</displayName>
- <unitPattern count="one" draft="unconfirmed">{0} karat</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0} karat</unitPattern>
- </unit>
- <unit type="power-kilowatt">
- <unitPattern count="one">{0}kW</unitPattern>
- <unitPattern count="other">{0}kW</unitPattern>
- </unit>
- <unit type="power-watt">
- <unitPattern count="one">{0}W</unitPattern>
- <unitPattern count="other">{0}W</unitPattern>
- </unit>
- <unit type="power-horsepower">
- <unitPattern count="one">{0}hk</unitPattern>
- <unitPattern count="other">{0}hk</unitPattern>
- </unit>
- <unit type="pressure-millimeter-ofhg">
- <unitPattern count="one" draft="contributed">{0}mmHg</unitPattern>
- <unitPattern count="other" draft="contributed">{0}mmHg</unitPattern>
- </unit>
- <unit type="pressure-pound-force-per-square-inch">
- <unitPattern count="one" draft="contributed">{0}psi</unitPattern>
- <unitPattern count="other" draft="contributed">{0}psi</unitPattern>
- </unit>
- <unit type="pressure-inch-ofhg">
- <unitPattern count="one">{0}ʹʹ Hg</unitPattern>
- <unitPattern count="other">{0}ʹʹ Hg</unitPattern>
- </unit>
- <unit type="pressure-millibar">
- <unitPattern count="one">{0}mbar</unitPattern>
- <unitPattern count="other">{0}mbar</unitPattern>
- </unit>
- <unit type="pressure-hectopascal">
- <unitPattern count="one">{0}hPa</unitPattern>
- <unitPattern count="other">{0}hPa</unitPattern>
- </unit>
- <unit type="speed-kilometer-per-hour">
- <displayName>km/t</displayName>
- <unitPattern count="one">{0}km/t</unitPattern>
- <unitPattern count="other">{0}km/t</unitPattern>
- </unit>
- <unit type="speed-meter-per-second">
- <unitPattern count="one">{0}m/s</unitPattern>
- <unitPattern count="other">{0}m/s</unitPattern>
- </unit>
- <unit type="speed-mile-per-hour">
- <displayName draft="contributed">mile/t</displayName>
- <unitPattern count="one">{0} eng mil/t</unitPattern>
- <unitPattern count="other">{0} eng mil/t</unitPattern>
- </unit>
- <unit type="speed-knot">
- <unitPattern count="one" draft="contributed">{0}kn</unitPattern>
- <unitPattern count="other" draft="contributed">{0}kn</unitPattern>
- </unit>
- <unit type="temperature-celsius">
- <displayName>°C</displayName>
- <unitPattern count="one">{0} °C</unitPattern>
- <unitPattern count="other">{0} °C</unitPattern>
- </unit>
- <unit type="temperature-fahrenheit">
- <unitPattern count="one">{0}°F</unitPattern>
- <unitPattern count="other">{0}°F</unitPattern>
- </unit>
- <unit type="temperature-kelvin">
- <unitPattern count="one" draft="contributed">{0}K</unitPattern>
- <unitPattern count="other" draft="contributed">{0}K</unitPattern>
- </unit>
- <unit type="volume-cubic-kilometer">
- <unitPattern count="one">{0}km³</unitPattern>
- <unitPattern count="other">{0}km³</unitPattern>
- </unit>
- <unit type="volume-cubic-meter">
- <unitPattern count="one" draft="unconfirmed">{0}m³</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0}m³</unitPattern>
- <perUnitPattern draft="unconfirmed">{0}/m³</perUnitPattern>
- </unit>
- <unit type="volume-cubic-centimeter">
- <unitPattern count="one" draft="unconfirmed">{0}cm³</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0}cm³</unitPattern>
- <perUnitPattern draft="unconfirmed">{0}/cm³</perUnitPattern>
- </unit>
- <unit type="volume-cubic-mile">
- <unitPattern count="one">{0} eng mil³</unitPattern>
- <unitPattern count="other">{0} eng mil³</unitPattern>
- </unit>
- <unit type="volume-cubic-foot">
- <unitPattern count="one" draft="unconfirmed">{0} fot³</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0} fot³</unitPattern>
- </unit>
- <unit type="volume-cubic-inch">
- <unitPattern count="one" draft="unconfirmed">{0} tom³</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0} tom³</unitPattern>
- </unit>
- <unit type="volume-megaliter">
- <unitPattern count="one" draft="unconfirmed">{0}ML</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0}ML</unitPattern>
- </unit>
- <unit type="volume-hectoliter">
- <unitPattern count="one" draft="unconfirmed">{0}hL</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0}hL</unitPattern>
- </unit>
- <unit type="volume-liter">
- <displayName>l</displayName>
- <unitPattern count="one">{0}l</unitPattern>
- <unitPattern count="other">{0}l</unitPattern>
- <perUnitPattern draft="unconfirmed">{0}/l</perUnitPattern>
- </unit>
- <unit type="volume-deciliter">
- <unitPattern count="one" draft="unconfirmed">{0}dL</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0}dL</unitPattern>
- </unit>
- <unit type="volume-centiliter">
- <unitPattern count="one" draft="unconfirmed">{0}cL</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0}cL</unitPattern>
- </unit>
- <unit type="volume-milliliter">
- <unitPattern count="one" draft="unconfirmed">{0}mL</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0}mL</unitPattern>
- </unit>
- <unit type="volume-tablespoon">
- <unitPattern count="one" draft="unconfirmed">{0} ss</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0} ss</unitPattern>
- </unit>
- <unit type="volume-teaspoon">
- <unitPattern count="one" draft="unconfirmed">{0} ts</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0} ts</unitPattern>
- </unit>
- <coordinateUnit>
- <displayName>retning</displayName>
- <coordinateUnitPattern type="east">{0}Ø</coordinateUnitPattern>
- <coordinateUnitPattern type="north">{0}N</coordinateUnitPattern>
- <coordinateUnitPattern type="south">{0}S</coordinateUnitPattern>
- <coordinateUnitPattern type="west">{0}V</coordinateUnitPattern>
- </coordinateUnit>
- </unitLength>
- <durationUnit type="hm">
- <durationUnitPattern>h:mm</durationUnitPattern>
- <durationUnitPattern alt="variant">h.mm</durationUnitPattern>
- </durationUnit>
- <durationUnit type="hms">
- <durationUnitPattern>h:mm:ss</durationUnitPattern>
- <durationUnitPattern alt="variant">h.mm.ss</durationUnitPattern>
- </durationUnit>
- <durationUnit type="ms">
- <durationUnitPattern>m:ss</durationUnitPattern>
- <durationUnitPattern alt="variant">m.ss</durationUnitPattern>
- </durationUnit>
- </units>
- <listPatterns>
- <listPattern>
- <listPatternPart type="start">{0}, {1}</listPatternPart>
- <listPatternPart type="middle">{0}, {1}</listPatternPart>
- <listPatternPart type="end">{0} og {1}</listPatternPart>
- <listPatternPart type="2">{0} og {1}</listPatternPart>
- </listPattern>
- <listPattern type="or">
- <listPatternPart type="start">{0}, {1}</listPatternPart>
- <listPatternPart type="middle">{0}, {1}</listPatternPart>
- <listPatternPart type="end">{0} eller {1}</listPatternPart>
- <listPatternPart type="2">{0} eller {1}</listPatternPart>
- </listPattern>
- <listPattern type="or-narrow">
- <listPatternPart type="start">↑↑↑</listPatternPart>
- <listPatternPart type="middle">↑↑↑</listPatternPart>
- <listPatternPart type="end">↑↑↑</listPatternPart>
- <listPatternPart type="2">↑↑↑</listPatternPart>
- </listPattern>
- <listPattern type="or-short">
- <listPatternPart type="start">↑↑↑</listPatternPart>
- <listPatternPart type="middle">↑↑↑</listPatternPart>
- <listPatternPart type="end">↑↑↑</listPatternPart>
- <listPatternPart type="2">↑↑↑</listPatternPart>
- </listPattern>
- <listPattern type="standard-narrow">
- <listPatternPart type="start">↑↑↑</listPatternPart>
- <listPatternPart type="middle">↑↑↑</listPatternPart>
- <listPatternPart type="end">↑↑↑</listPatternPart>
- <listPatternPart type="2">↑↑↑</listPatternPart>
- </listPattern>
- <listPattern type="standard-short">
- <listPatternPart type="start">↑↑↑</listPatternPart>
- <listPatternPart type="middle">↑↑↑</listPatternPart>
- <listPatternPart type="end">{0} og {1}</listPatternPart>
- <listPatternPart type="2">{0} og {1}</listPatternPart>
- </listPattern>
- <listPattern type="unit">
- <listPatternPart type="start">{0}, {1}</listPatternPart>
- <listPatternPart type="middle">{0}, {1}</listPatternPart>
- <listPatternPart type="end">{0} og {1}</listPatternPart>
- <listPatternPart type="2">{0} og {1}</listPatternPart>
- </listPattern>
- <listPattern type="unit-narrow">
- <listPatternPart type="start">{0}, {1}</listPatternPart>
- <listPatternPart type="middle">{0}, {1}</listPatternPart>
- <listPatternPart type="end">{0}, {1}</listPatternPart>
- <listPatternPart type="2">{0}, {1}</listPatternPart>
- </listPattern>
- <listPattern type="unit-short">
- <listPatternPart type="start">{0}, {1}</listPatternPart>
- <listPatternPart type="middle">{0}, {1}</listPatternPart>
- <listPatternPart type="end">{0}, {1}</listPatternPart>
- <listPatternPart type="2">{0}, {1}</listPatternPart>
- </listPattern>
- </listPatterns>
- <posix>
- <messages>
- <yesstr>ja</yesstr>
- <nostr>nei</nostr>
- </messages>
- </posix>
- <characterLabels>
- <characterLabelPattern type="all">{0} – alt</characterLabelPattern>
- <characterLabelPattern type="category-list">{0}: {1}</characterLabelPattern>
- <characterLabelPattern type="compatibility">{0} – kompatibilitet</characterLabelPattern>
- <characterLabelPattern type="enclosed">{0} – omsluttet</characterLabelPattern>
- <characterLabelPattern type="extended">{0} – utvidet</characterLabelPattern>
- <characterLabelPattern type="historic">{0} – historisk</characterLabelPattern>
- <characterLabelPattern type="miscellaneous">{0} – diverse</characterLabelPattern>
- <characterLabelPattern type="other">{0} – annet</characterLabelPattern>
- <characterLabelPattern type="scripts">skriftsystemer – {0}</characterLabelPattern>
- <characterLabelPattern type="strokes" count="one">{0} strek</characterLabelPattern>
- <characterLabelPattern type="strokes" count="other">{0} streker</characterLabelPattern>
- <characterLabelPattern type="subscript">senket {0}</characterLabelPattern>
- <characterLabelPattern type="superscript">hevet {0}</characterLabelPattern>
- <characterLabel type="activities">aktiviteter</characterLabel>
- <characterLabel type="african_scripts">afrikanske skriftsystemer</characterLabel>
- <characterLabel type="american_scripts">amerikanske skriftsystemer</characterLabel>
- <characterLabel type="animal">dyr</characterLabel>
- <characterLabel type="animals_nature">dyr og natur</characterLabel>
- <characterLabel type="arrows">piler</characterLabel>
- <characterLabel type="body">kropp</characterLabel>
- <characterLabel type="box_drawing">rutetegning</characterLabel>
- <characterLabel type="braille">punktskrift</characterLabel>
- <characterLabel type="building">bygning</characterLabel>
- <characterLabel type="bullets_stars">punkttegn/stjerner</characterLabel>
- <characterLabel type="consonantal_jamo">konsonantal jamo</characterLabel>
- <characterLabel type="currency_symbols">valutasymboler</characterLabel>
- <characterLabel type="dash_connector">tankestrek/bindetegn</characterLabel>
- <characterLabel type="digits">sifre</characterLabel>
- <characterLabel type="dingbats">dingbats</characterLabel>
- <characterLabel type="divination_symbols">spådomssymboler</characterLabel>
- <characterLabel type="downwards_arrows">piler som peker nedover</characterLabel>
- <characterLabel type="downwards_upwards_arrows">piler som peker nedover og oppover</characterLabel>
- <characterLabel type="east_asian_scripts">østasiatiske skriftsystemer</characterLabel>
- <characterLabel type="emoji">emoji</characterLabel>
- <characterLabel type="european_scripts">europeiske skriftsystemer</characterLabel>
- <characterLabel type="female">kvinnelig</characterLabel>
- <characterLabel type="flag">flagg</characterLabel>
- <characterLabel type="flags">flagg</characterLabel>
- <characterLabel type="food_drink">mat og drikke</characterLabel>
- <characterLabel type="format">format</characterLabel>
- <characterLabel type="format_whitespace">format og mellomrom</characterLabel>
- <characterLabel type="full_width_form_variant">fullbreddeformvarianter</characterLabel>
- <characterLabel type="geometric_shapes">geometriske figurer</characterLabel>
- <characterLabel type="half_width_form_variant">halvbreddeformvarianter</characterLabel>
- <characterLabel type="han_characters">han-tegn</characterLabel>
- <characterLabel type="han_radicals">han-radikaler</characterLabel>
- <characterLabel type="hanja">hanja</characterLabel>
- <characterLabel type="hanzi_simplified">hanzi (forenklet)</characterLabel>
- <characterLabel type="hanzi_traditional">hanzi (tradisjonell)</characterLabel>
- <characterLabel type="heart">hjerte</characterLabel>
- <characterLabel type="historic_scripts">historiske skriftsystemer</characterLabel>
- <characterLabel type="ideographic_desc_characters">ideografiske beskrivende tegn</characterLabel>
- <characterLabel type="japanese_kana">japansk kana</characterLabel>
- <characterLabel type="kanbun">kanbun</characterLabel>
- <characterLabel type="kanji">kanji</characterLabel>
- <characterLabel type="keycap">taster</characterLabel>
- <characterLabel type="leftwards_arrows">piler som peker til venstre</characterLabel>
- <characterLabel type="leftwards_rightwards_arrows">piler som peker til høyre og venstre</characterLabel>
- <characterLabel type="letterlike_symbols">bokstavlignende symboler</characterLabel>
- <characterLabel type="limited_use">begrenset bruk</characterLabel>
- <characterLabel type="male">mannlig</characterLabel>
- <characterLabel type="math_symbols">matematikksymboler</characterLabel>
- <characterLabel type="middle_eastern_scripts">skriftsystemer fra Midtøsten</characterLabel>
- <characterLabel type="miscellaneous">diverse</characterLabel>
- <characterLabel type="modern_scripts">moderne skriftsystemer</characterLabel>
- <characterLabel type="modifier">modifikator</characterLabel>
- <characterLabel type="musical_symbols">musikksymboler</characterLabel>
- <characterLabel type="nature">natur</characterLabel>
- <characterLabel type="nonspacing">uten bredde</characterLabel>
- <characterLabel type="numbers">tall</characterLabel>
- <characterLabel type="objects">objekter</characterLabel>
- <characterLabel type="other">annet</characterLabel>
- <characterLabel type="paired">par</characterLabel>
- <characterLabel type="person">mennesker</characterLabel>
- <characterLabel type="phonetic_alphabet">fonetisk alfabet</characterLabel>
- <characterLabel type="pictographs">piktogrammer</characterLabel>
- <characterLabel type="place">sted</characterLabel>
- <characterLabel type="plant">plante</characterLabel>
- <characterLabel type="punctuation">skilletegn</characterLabel>
- <characterLabel type="rightwards_arrows">piler som peker til høyre</characterLabel>
- <characterLabel type="sign_standard_symbols">tegn/standardsymboler</characterLabel>
- <characterLabel type="small_form_variant">varianter av små tegn</characterLabel>
- <characterLabel type="smiley">smilefjes</characterLabel>
- <characterLabel type="smileys_people">smilefjes og mennesker</characterLabel>
- <characterLabel type="south_asian_scripts">sørasiatiske skriftsystemer</characterLabel>
- <characterLabel type="southeast_asian_scripts">sørøstasiatiske skriftsystemer</characterLabel>
- <characterLabel type="spacing">med bredde</characterLabel>
- <characterLabel type="sport">sport</characterLabel>
- <characterLabel type="symbols">symboler</characterLabel>
- <characterLabel type="technical_symbols">tekniske symboler</characterLabel>
- <characterLabel type="tone_marks">tonemerker</characterLabel>
- <characterLabel type="travel">reise</characterLabel>
- <characterLabel type="travel_places">reise og steder</characterLabel>
- <characterLabel type="upwards_arrows">piler som peker oppover</characterLabel>
- <characterLabel type="variant_forms">varianter</characterLabel>
- <characterLabel type="vocalic_jamo">vokalisk jamo</characterLabel>
- <characterLabel type="weather">vær</characterLabel>
- <characterLabel type="western_asian_scripts">vestasiatiske skriftsymboler</characterLabel>
- <characterLabel type="whitespace">mellomrom</characterLabel>
- </characterLabels>
- <typographicNames>
- <axisName type="ital">kursiv</axisName>
- <axisName type="opsz">optisk størrelse</axisName>
- <axisName type="slnt">skråstilling</axisName>
- <axisName type="wdth">bredde</axisName>
- <axisName type="wght">tykkelse</axisName>
- <styleName type="ital" subtype="1">kursiv</styleName>
- <styleName type="opsz" subtype="8">bildetekst</styleName>
- <styleName type="opsz" subtype="12">tekst</styleName>
- <styleName type="opsz" subtype="18">tittel</styleName>
- <styleName type="opsz" subtype="72">visning</styleName>
- <styleName type="opsz" subtype="144">plakat</styleName>
- <styleName type="slnt" subtype="-12">skråstilt bakover</styleName>
- <styleName type="slnt" subtype="0">rett</styleName>
- <styleName type="slnt" subtype="12">skråstilt</styleName>
- <styleName type="slnt" subtype="24">ekstra skråstilt</styleName>
- <styleName type="wdth" subtype="50">ultrafortettet</styleName>
- <styleName type="wdth" subtype="50" alt="compressed">ultrakomprimert</styleName>
- <styleName type="wdth" subtype="50" alt="narrow">ultrasmal</styleName>
- <styleName type="wdth" subtype="62.5">ekstra fortettet</styleName>
- <styleName type="wdth" subtype="62.5" alt="compressed">ekstra komprimert</styleName>
- <styleName type="wdth" subtype="62.5" alt="narrow">ekstra smal</styleName>
- <styleName type="wdth" subtype="75">fortettet</styleName>
- <styleName type="wdth" subtype="75" alt="compressed">komprimert</styleName>
- <styleName type="wdth" subtype="75" alt="narrow">smal</styleName>
- <styleName type="wdth" subtype="87.5">semifortettet</styleName>
- <styleName type="wdth" subtype="87.5" alt="compressed">semikomprimert</styleName>
- <styleName type="wdth" subtype="87.5" alt="narrow">semismal</styleName>
- <styleName type="wdth" subtype="100">vanlig</styleName>
- <styleName type="wdth" subtype="112.5">semiutvidet</styleName>
- <styleName type="wdth" subtype="112.5" alt="extended">semiforlenget</styleName>
- <styleName type="wdth" subtype="112.5" alt="wide">semibred</styleName>
- <styleName type="wdth" subtype="125">utvidet</styleName>
- <styleName type="wdth" subtype="125" alt="extended">forlenget</styleName>
- <styleName type="wdth" subtype="125" alt="wide">bred</styleName>
- <styleName type="wdth" subtype="150">ekstra utvidet</styleName>
- <styleName type="wdth" subtype="150" alt="extended">ekstra forlenget</styleName>
- <styleName type="wdth" subtype="150" alt="wide">ekstra bred</styleName>
- <styleName type="wdth" subtype="200">ultrautvidet</styleName>
- <styleName type="wdth" subtype="200" alt="extended">ultraforlenget</styleName>
- <styleName type="wdth" subtype="200" alt="wide">ultrabred</styleName>
- <styleName type="wght" subtype="100">smal</styleName>
- <styleName type="wght" subtype="200">ekstra tynn</styleName>
- <styleName type="wght" subtype="200" alt="ultra">ultratynn</styleName>
- <styleName type="wght" subtype="300">tynn</styleName>
- <styleName type="wght" subtype="350">semitynn</styleName>
- <styleName type="wght" subtype="380">bok</styleName>
- <styleName type="wght" subtype="400">normal</styleName>
- <styleName type="wght" subtype="500">medium</styleName>
- <styleName type="wght" subtype="600">halvfet</styleName>
- <styleName type="wght" subtype="600" alt="demi">halvfet</styleName>
- <styleName type="wght" subtype="700">fet</styleName>
- <styleName type="wght" subtype="800">ekstra fet</styleName>
- <styleName type="wght" subtype="800" alt="ultra">ultrafet</styleName>
- <styleName type="wght" subtype="900">svart</styleName>
- <styleName type="wght" subtype="900" alt="heavy">tykk</styleName>
- <styleName type="wght" subtype="950">ekstra svart</styleName>
- <styleName type="wght" subtype="950" alt="ultrablack">ultrasvart</styleName>
- <styleName type="wght" subtype="950" alt="ultraheavy">ultratykk</styleName>
- <featureName type="afrc">vertikale brøker</featureName>
- <featureName type="cpsp">stor-bokstav-avstand</featureName>
- <featureName type="dlig">valgfrie ligaturer</featureName>
- <featureName type="frac">diagonale brøker</featureName>
- <featureName type="lnum">tall i moderne stil</featureName>
- <featureName type="onum">tall i gammel stil</featureName>
- <featureName type="ordn">ordenstall</featureName>
- <featureName type="pnum">proporsjonale tall</featureName>
- <featureName type="smcp">kapiteler</featureName>
- <featureName type="tnum">tabelltall</featureName>
- <featureName type="zero">null med skråstrek</featureName>
- </typographicNames>
</ldml>
diff --git a/common/main/nds.xml b/common/main/nds.xml
index 3e807d5..017d16e 100644
--- a/common/main/nds.xml
+++ b/common/main/nds.xml
@@ -353,7 +353,6 @@
<language type="ro" draft="unconfirmed">Rumäänsch</language>
<language type="ro_MD" draft="unconfirmed">Moldaawsch</language>
<language type="rom" draft="unconfirmed">Romani</language>
- <language type="root" draft="unconfirmed">Wortel</language>
<language type="ru" draft="unconfirmed">Russ’sch</language>
<language type="rup" draft="unconfirmed">Aromuunsch</language>
<language type="rw" draft="unconfirmed">Ruandsch</language>
diff --git a/common/main/ne.xml b/common/main/ne.xml
index 2281be1..1cb31d7 100644
--- a/common/main/ne.xml
+++ b/common/main/ne.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -467,7 +467,6 @@
<language type="ro">रोमानियाली</language>
<language type="ro_MD">मोल्डाभियाली</language>
<language type="rof">रोम्बो</language>
- <language type="root">रुट</language>
<language type="ru">रसियाली</language>
<language type="rup">अरोमानीयाली</language>
<language type="rw">किन्यारवान्डा</language>
@@ -2615,9 +2614,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>सान्टा ईसाबेल</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>होनोलुलु</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>समन्वित विश्व समय</standard>
@@ -2737,12 +2733,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>ब्रोकन हिल</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>क्युरी</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>मेल्बर्न</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>क्युरी</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>होभार्ट</exemplarCity>
</zone>
@@ -3775,6 +3771,9 @@
<zone type="America/Nome">
<exemplarCity>नोम</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>होनोलुलु</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>जोन्सटन</exemplarCity>
</zone>
@@ -6013,7 +6012,7 @@
<displayName>सीएफ्ए फ्रान्क बीसीइएओ</displayName>
<displayName count="one">सीएफ्ए फ्रान्क बीसीइएओ</displayName>
<displayName count="other">सीऐफ्ए फ्रान्क्स बीसीइएओ</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>सीएफ्पी फ्रान्क</displayName>
@@ -6262,7 +6261,7 @@
<unitPattern count="one">{0}कराट</unitPattern>
<unitPattern count="other">{0}कराट</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -7297,7 +7296,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -7643,9 +7642,9 @@
<unitPattern count="other">{0}मि.मि.</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -7767,9 +7766,9 @@
<unitPattern count="other">{0}मिलिग्राम</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>टन</displayName>
diff --git a/common/main/nl.xml b/common/main/nl.xml
index 1afe9cc..1b1950c 100644
--- a/common/main/nl.xml
+++ b/common/main/nl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -482,7 +482,6 @@
<language type="ro_MD">↑↑↑</language>
<language type="rof">Rombo</language>
<language type="rom">Romani</language>
- <language type="root">Root</language>
<language type="rtm">Rotumaans</language>
<language type="ru">Russisch</language>
<language type="rue">Roetheens</language>
@@ -8454,14 +8453,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <short>
- <generic draft="contributed">HST</generic>
- <standard draft="contributed">HST</standard>
- <daylight draft="contributed">HDT</daylight>
- </short>
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>gecoördineerde wereldtijd</standard>
@@ -8584,12 +8575,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -9622,6 +9613,14 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <short>
+ <generic draft="contributed">HST</generic>
+ <standard draft="contributed">HST</standard>
+ <daylight draft="contributed">HDT</daylight>
+ </short>
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -15684,7 +15683,7 @@
<displayName>CFA-franc BCEAO</displayName>
<displayName count="one">CFA-franc BCEAO</displayName>
<displayName count="other">CFA-franc BCEAO</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>Palladium</displayName>
@@ -16320,7 +16319,7 @@
<unitPattern count="one">{0} karaat</unitPattern>
<unitPattern count="other">{0} karaat</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>milligram per deciliter</displayName>
<unitPattern count="one">{0} milligram per deciliter</unitPattern>
<unitPattern count="other">{0} milligram per deciliter</unitPattern>
@@ -17420,7 +17419,7 @@
<unitPattern count="one">{0} K</unitPattern>
<unitPattern count="other">{0} K</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="other">{0} mg/dl</unitPattern>
@@ -17766,9 +17765,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -17890,9 +17889,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>ton</displayName>
@@ -18455,7 +18454,7 @@
<unitPattern count="one" draft="contributed">{0} K</unitPattern>
<unitPattern count="other" draft="contributed">{0} K</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName draft="contributed">mg/dl</displayName>
<unitPattern count="one" draft="contributed">{0} mg/dl</unitPattern>
<unitPattern count="other" draft="contributed">{0} mg/dl</unitPattern>
@@ -18791,9 +18790,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName draft="contributed">µm</displayName>
- <unitPattern count="one" draft="contributed">{0} µm</unitPattern>
- <unitPattern count="other" draft="contributed">{0} µm</unitPattern>
+ <displayName draft="contributed">μm</displayName>
+ <unitPattern count="one" draft="contributed">{0} μm</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName draft="contributed">nm</displayName>
@@ -18915,9 +18914,9 @@
<unitPattern count="other" draft="contributed">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName draft="contributed">µg</displayName>
- <unitPattern count="one" draft="contributed">{0} µg</unitPattern>
- <unitPattern count="other" draft="contributed">{0} µg</unitPattern>
+ <displayName draft="contributed">μg</displayName>
+ <unitPattern count="one" draft="contributed">{0} μg</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName draft="contributed">ton</displayName>
diff --git a/common/main/nn.xml b/common/main/nn.xml
index a73fa1a..e1f6b27 100644
--- a/common/main/nn.xml
+++ b/common/main/nn.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -399,7 +399,6 @@
<language type="ro_MD">moldavisk</language>
<language type="rof">rombo</language>
<language type="rom">romani</language>
- <language type="root">rot</language>
<language type="ru">russisk</language>
<language type="rup">arumensk</language>
<language type="rw">kinjarwanda</language>
@@ -2577,9 +2576,6 @@
<regionFormat type="daylight">sommartid – {0}</regionFormat>
<regionFormat type="standard">normaltid – {0}</regionFormat>
<fallbackFormat>{1} ({0})</fallbackFormat>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>koordinert universaltid</standard>
@@ -2699,12 +2695,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -3737,6 +3733,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -6413,7 +6412,7 @@
<displayName>vestafrikanske CFA-franc</displayName>
<displayName count="one">vestafrikansk CFA-franc</displayName>
<displayName count="other">vestafrikanske CFA-franc</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>palladium</displayName>
@@ -6506,12 +6505,6 @@
<displayName count="other" draft="unconfirmed">Zimbabwe-dollar (2009)</displayName>
</currency>
</currencies>
- <miscPatterns numberSystem="latn">
- <pattern type="approximately">ca. {0}</pattern>
- <pattern type="atLeast">≥{0}</pattern>
- <pattern type="atMost">↑↑↑</pattern>
- <pattern type="range">{0}‒{1}</pattern>
- </miscPatterns>
<minimalPairs>
<pluralMinimalPairs count="one">{0} dag</pluralMinimalPairs>
<pluralMinimalPairs count="other">{0} dagar</pluralMinimalPairs>
@@ -6713,7 +6706,7 @@
<unitPattern count="one">{0} karat</unitPattern>
<unitPattern count="other">{0} karat</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>milligram per desiliter</displayName>
<unitPattern count="one">{0} milligram per desiliter</unitPattern>
<unitPattern count="other">{0} milligram per desiliter</unitPattern>
@@ -7746,7 +7739,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="other">{0} mg/dl</unitPattern>
@@ -8092,9 +8085,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -8216,9 +8209,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>am. tonn</displayName>
@@ -8830,7 +8823,7 @@
<unitPattern count="other">{0}mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName draft="unconfirmed">µm</displayName>
+ <displayName draft="unconfirmed">μm</displayName>
</unit>
<unit type="length-nanometer">
<displayName draft="unconfirmed">nm</displayName>
diff --git a/common/main/no.xml b/common/main/no.xml
new file mode 100644
index 0000000..ef08748
--- /dev/null
+++ b/common/main/no.xml
@@ -0,0 +1,16832 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
+<!-- Copyright © 1991-2021 Unicode, Inc.
+For terms of use, see http://www.unicode.org/copyright.html
+Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
+CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
+
+Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ for derived annotations.
+-->
+<ldml>
+ <identity>
+ <version number="$Revision$"/>
+ <language type="no"/>
+ </identity>
+ <localeDisplayNames>
+ <localeDisplayPattern>
+ <localePattern>{0} ({1})</localePattern>
+ <localeSeparator>{0}, {1}</localeSeparator>
+ <localeKeyTypePattern>{0}: {1}</localeKeyTypePattern>
+ </localeDisplayPattern>
+ <languages>
+ <language type="aa">afar</language>
+ <language type="ab">abkhasisk</language>
+ <language type="ace">achinesisk</language>
+ <language type="ach">acoli</language>
+ <language type="ada">adangme</language>
+ <language type="ady">adygeisk</language>
+ <language type="ae">avestisk</language>
+ <language type="aeb">tunisisk-arabisk</language>
+ <language type="af">afrikaans</language>
+ <language type="afh">afrihili</language>
+ <language type="agq">aghem</language>
+ <language type="ain">ainu</language>
+ <language type="ak">akan</language>
+ <language type="akk">akkadisk</language>
+ <language type="akz">alabama</language>
+ <language type="ale">aleutisk</language>
+ <language type="aln">gegisk-albansk</language>
+ <language type="alt">søraltaisk</language>
+ <language type="am">amharisk</language>
+ <language type="an">aragonsk</language>
+ <language type="ang">gammelengelsk</language>
+ <language type="anp">angika</language>
+ <language type="ar">arabisk</language>
+ <language type="ar_001">moderne standardarabisk</language>
+ <language type="arc">arameisk</language>
+ <language type="arn">mapudungun</language>
+ <language type="aro">araona</language>
+ <language type="arp">arapaho</language>
+ <language type="arq">algerisk arabisk</language>
+ <language type="ars">najdi-arabisk</language>
+ <language type="ars" alt="menu">arabisk (najd)</language>
+ <language type="arw">arawak</language>
+ <language type="ary">marokkansk-arabisk</language>
+ <language type="arz">egyptisk arabisk</language>
+ <language type="as">assamesisk</language>
+ <language type="asa">asu</language>
+ <language type="ase">amerikansk tegnspråk</language>
+ <language type="ast">asturisk</language>
+ <language type="av">avarisk</language>
+ <language type="avk">kotava</language>
+ <language type="awa">avadhi</language>
+ <language type="ay">aymara</language>
+ <language type="az">aserbajdsjansk</language>
+ <language type="az" alt="short">azeri</language>
+ <language type="ba">basjkirsk</language>
+ <language type="bal">baluchi</language>
+ <language type="ban">balinesisk</language>
+ <language type="bar">bairisk</language>
+ <language type="bas">basaa</language>
+ <language type="bax">bamun</language>
+ <language type="bbc">batak toba</language>
+ <language type="bbj">ghomala</language>
+ <language type="be">hviterussisk</language>
+ <language type="bej">beja</language>
+ <language type="bem">bemba</language>
+ <language type="bew">betawi</language>
+ <language type="bez">bena</language>
+ <language type="bfd">bafut</language>
+ <language type="bfq">badaga</language>
+ <language type="bg">bulgarsk</language>
+ <language type="bgn">vestbalutsji</language>
+ <language type="bho">bhojpuri</language>
+ <language type="bi">bislama</language>
+ <language type="bik">bikol</language>
+ <language type="bin">bini</language>
+ <language type="bjn">banjar</language>
+ <language type="bkm">kom</language>
+ <language type="bla">siksika</language>
+ <language type="bm">bambara</language>
+ <language type="bn">bengali</language>
+ <language type="bo">tibetansk</language>
+ <language type="bpy">bishnupriya</language>
+ <language type="bqi">bakhtiari</language>
+ <language type="br">bretonsk</language>
+ <language type="bra">braj</language>
+ <language type="brh">brahui</language>
+ <language type="brx">bodo</language>
+ <language type="bs">bosnisk</language>
+ <language type="bss">akose</language>
+ <language type="bua">burjatisk</language>
+ <language type="bug">buginesisk</language>
+ <language type="bum">bulu</language>
+ <language type="byn">blin</language>
+ <language type="byv">medumba</language>
+ <language type="ca">katalansk</language>
+ <language type="cad">caddo</language>
+ <language type="car">karibisk</language>
+ <language type="cay">cayuga</language>
+ <language type="cch">atsam</language>
+ <language type="ccp">chakma</language>
+ <language type="ce">tsjetsjensk</language>
+ <language type="ceb">cebuansk</language>
+ <language type="cgg">kiga</language>
+ <language type="ch">chamorro</language>
+ <language type="chb">chibcha</language>
+ <language type="chg">tsjagatai</language>
+ <language type="chk">chuukesisk</language>
+ <language type="chm">mari</language>
+ <language type="chn">chinook</language>
+ <language type="cho">choctaw</language>
+ <language type="chp">chipewiansk</language>
+ <language type="chr">cherokesisk</language>
+ <language type="chy">cheyenne</language>
+ <language type="ckb">kurdisk (sorani)</language>
+ <language type="ckb" alt="menu">kurdisk (sentral)</language>
+ <language type="ckb" alt="variant">↑↑↑</language>
+ <language type="co">korsikansk</language>
+ <language type="cop">koptisk</language>
+ <language type="cps">kapiz</language>
+ <language type="cr">cree</language>
+ <language type="crh">krimtatarisk</language>
+ <language type="crs">seselwa</language>
+ <language type="cs">tsjekkisk</language>
+ <language type="csb">kasjubisk</language>
+ <language type="cu">kirkeslavisk</language>
+ <language type="cv">tsjuvasjisk</language>
+ <language type="cy">walisisk</language>
+ <language type="da">dansk</language>
+ <language type="dak">dakota</language>
+ <language type="dar">dargwa</language>
+ <language type="dav">taita</language>
+ <language type="de">tysk</language>
+ <language type="de_AT">↑↑↑</language>
+ <language type="de_CH">↑↑↑</language>
+ <language type="del">delaware</language>
+ <language type="den">slavey</language>
+ <language type="dgr">dogrib</language>
+ <language type="din">dinka</language>
+ <language type="dje">zarma</language>
+ <language type="doi">dogri</language>
+ <language type="dsb">lavsorbisk</language>
+ <language type="dtp">sentraldusun</language>
+ <language type="dua">duala</language>
+ <language type="dum">mellomnederlandsk</language>
+ <language type="dv">divehi</language>
+ <language type="dyo">jola-fonyi</language>
+ <language type="dyu">dyula</language>
+ <language type="dz">dzongkha</language>
+ <language type="dzg">dazaga</language>
+ <language type="ebu">kiembu</language>
+ <language type="ee">ewe</language>
+ <language type="efi">efik</language>
+ <language type="egl">emiliansk</language>
+ <language type="egy">gammelegyptisk</language>
+ <language type="eka">ekajuk</language>
+ <language type="el">gresk</language>
+ <language type="elx">elamittisk</language>
+ <language type="en">engelsk</language>
+ <language type="en_AU">↑↑↑</language>
+ <language type="en_CA">↑↑↑</language>
+ <language type="en_GB">↑↑↑</language>
+ <language type="en_GB" alt="short">↑↑↑</language>
+ <language type="en_US">↑↑↑</language>
+ <language type="en_US" alt="short">↑↑↑</language>
+ <language type="enm">mellomengelsk</language>
+ <language type="eo">esperanto</language>
+ <language type="es">spansk</language>
+ <language type="es_419">↑↑↑</language>
+ <language type="es_ES">↑↑↑</language>
+ <language type="es_MX">↑↑↑</language>
+ <language type="esu">sentralyupik</language>
+ <language type="et">estisk</language>
+ <language type="eu">baskisk</language>
+ <language type="ewo">ewondo</language>
+ <language type="ext">ekstremaduransk</language>
+ <language type="fa">persisk</language>
+ <language type="fa_AF">dari</language>
+ <language type="fan">fang</language>
+ <language type="fat">fanti</language>
+ <language type="ff">fulfulde</language>
+ <language type="fi">finsk</language>
+ <language type="fil">filipino</language>
+ <language type="fit">tornedalsfinsk</language>
+ <language type="fj">fijiansk</language>
+ <language type="fo">færøysk</language>
+ <language type="fon">fon</language>
+ <language type="fr">fransk</language>
+ <language type="fr_CA">↑↑↑</language>
+ <language type="fr_CH">↑↑↑</language>
+ <language type="frc">cajunfransk</language>
+ <language type="frm">mellomfransk</language>
+ <language type="fro">gammelfransk</language>
+ <language type="frp">arpitansk</language>
+ <language type="frr">nordfrisisk</language>
+ <language type="frs">østfrisisk</language>
+ <language type="fur">friuliansk</language>
+ <language type="fy">vestfrisisk</language>
+ <language type="ga">irsk</language>
+ <language type="gaa">ga</language>
+ <language type="gag">gagausisk</language>
+ <language type="gan">gan</language>
+ <language type="gay">gayo</language>
+ <language type="gba">gbaya</language>
+ <language type="gbz">zoroastrisk dari</language>
+ <language type="gd">skotsk-gælisk</language>
+ <language type="gez">geez</language>
+ <language type="gil">kiribatisk</language>
+ <language type="gl">galisisk</language>
+ <language type="glk">gileki</language>
+ <language type="gmh">mellomhøytysk</language>
+ <language type="gn">guarani</language>
+ <language type="goh">gammelhøytysk</language>
+ <language type="gom">goansk konkani</language>
+ <language type="gon">gondi</language>
+ <language type="gor">gorontalo</language>
+ <language type="got">gotisk</language>
+ <language type="grb">grebo</language>
+ <language type="grc">gammelgresk</language>
+ <language type="gsw">sveitsertysk</language>
+ <language type="gu">gujarati</language>
+ <language type="guc">wayuu</language>
+ <language type="gur">frafra</language>
+ <language type="guz">gusii</language>
+ <language type="gv">mansk</language>
+ <language type="gwi">gwichin</language>
+ <language type="ha">hausa</language>
+ <language type="hai">haida</language>
+ <language type="hak">hakka</language>
+ <language type="haw">hawaiisk</language>
+ <language type="he">hebraisk</language>
+ <language type="hi">hindi</language>
+ <language type="hif">fijiansk hindi</language>
+ <language type="hil">hiligaynon</language>
+ <language type="hit">hettittisk</language>
+ <language type="hmn">hmong</language>
+ <language type="ho">hiri motu</language>
+ <language type="hr">kroatisk</language>
+ <language type="hsb">høysorbisk</language>
+ <language type="hsn">xiang</language>
+ <language type="ht">haitisk</language>
+ <language type="hu">ungarsk</language>
+ <language type="hup">hupa</language>
+ <language type="hy">armensk</language>
+ <language type="hz">herero</language>
+ <language type="ia">interlingua</language>
+ <language type="iba">iban</language>
+ <language type="ibb">ibibio</language>
+ <language type="id">indonesisk</language>
+ <language type="ie">interlingue</language>
+ <language type="ig">ibo</language>
+ <language type="ii">sichuan-yi</language>
+ <language type="ik">inupiak</language>
+ <language type="ilo">iloko</language>
+ <language type="inh">ingusjisk</language>
+ <language type="io">ido</language>
+ <language type="is">islandsk</language>
+ <language type="it">italiensk</language>
+ <language type="iu">inuktitut</language>
+ <language type="izh">ingrisk</language>
+ <language type="ja">japansk</language>
+ <language type="jam">jamaicansk kreolengelsk</language>
+ <language type="jbo">lojban</language>
+ <language type="jgo">ngomba</language>
+ <language type="jmc">machame</language>
+ <language type="jpr">jødepersisk</language>
+ <language type="jrb">jødearabisk</language>
+ <language type="jut">jysk</language>
+ <language type="jv">javanesisk</language>
+ <language type="ka">georgisk</language>
+ <language type="kaa">karakalpakisk</language>
+ <language type="kab">kabylsk</language>
+ <language type="kac">kachin</language>
+ <language type="kaj">jju</language>
+ <language type="kam">kamba</language>
+ <language type="kaw">kawi</language>
+ <language type="kbd">kabardisk</language>
+ <language type="kbl">kanembu</language>
+ <language type="kcg">tyap</language>
+ <language type="kde">makonde</language>
+ <language type="kea">kappverdisk</language>
+ <language type="ken">kenyang</language>
+ <language type="kfo">koro</language>
+ <language type="kg">kikongo</language>
+ <language type="kgp">kaingang</language>
+ <language type="kha">khasi</language>
+ <language type="kho">khotanesisk</language>
+ <language type="khq">koyra chiini</language>
+ <language type="khw">khowar</language>
+ <language type="ki">kikuyu</language>
+ <language type="kiu">kirmancki</language>
+ <language type="kj">kuanyama</language>
+ <language type="kk">kasakhisk</language>
+ <language type="kkj">kako</language>
+ <language type="kl">grønlandsk</language>
+ <language type="kln">kalenjin</language>
+ <language type="km">khmer</language>
+ <language type="kmb">kimbundu</language>
+ <language type="kn">kannada</language>
+ <language type="ko">koreansk</language>
+ <language type="koi">komipermjakisk</language>
+ <language type="kok">konkani</language>
+ <language type="kos">kosraeansk</language>
+ <language type="kpe">kpelle</language>
+ <language type="kr">kanuri</language>
+ <language type="krc">karatsjajbalkarsk</language>
+ <language type="kri">krio</language>
+ <language type="krj">kinaray-a</language>
+ <language type="krl">karelsk</language>
+ <language type="kru">kurukh</language>
+ <language type="ks">kasjmiri</language>
+ <language type="ksb">shambala</language>
+ <language type="ksf">bafia</language>
+ <language type="ksh">kølnsk</language>
+ <language type="ku">kurdisk</language>
+ <language type="kum">kumykisk</language>
+ <language type="kut">kutenai</language>
+ <language type="kv">komi</language>
+ <language type="kw">kornisk</language>
+ <language type="ky">kirgisisk</language>
+ <language type="la">latin</language>
+ <language type="lad">ladinsk</language>
+ <language type="lag">langi</language>
+ <language type="lah">lahnda</language>
+ <language type="lam">lamba</language>
+ <language type="lb">luxemburgsk</language>
+ <language type="lez">lesgisk</language>
+ <language type="lfn">lingua franca nova</language>
+ <language type="lg">ganda</language>
+ <language type="li">limburgsk</language>
+ <language type="lij">ligurisk</language>
+ <language type="liv">livisk</language>
+ <language type="lkt">lakota</language>
+ <language type="lmo">lombardisk</language>
+ <language type="ln">lingala</language>
+ <language type="lo">laotisk</language>
+ <language type="lol">mongo</language>
+ <language type="lou">louisianakreolsk</language>
+ <language type="loz">lozi</language>
+ <language type="lrc">nord-luri</language>
+ <language type="lt">litauisk</language>
+ <language type="ltg">latgallisk</language>
+ <language type="lu">luba-katanga</language>
+ <language type="lua">luba-lulua</language>
+ <language type="lui">luiseno</language>
+ <language type="lun">lunda</language>
+ <language type="luo">luo</language>
+ <language type="lus">mizo</language>
+ <language type="luy">luhya</language>
+ <language type="lv">latvisk</language>
+ <language type="lzh">klassisk kinesisk</language>
+ <language type="lzz">lazisk</language>
+ <language type="mad">maduresisk</language>
+ <language type="maf">mafa</language>
+ <language type="mag">magahi</language>
+ <language type="mai">maithili</language>
+ <language type="mak">makasar</language>
+ <language type="man">mandingo</language>
+ <language type="mas">masai</language>
+ <language type="mde">maba</language>
+ <language type="mdf">moksja</language>
+ <language type="mdr">mandar</language>
+ <language type="men">mende</language>
+ <language type="mer">meru</language>
+ <language type="mfe">mauritisk-kreolsk</language>
+ <language type="mg">gassisk</language>
+ <language type="mga">mellomirsk</language>
+ <language type="mgh">makhuwa-meetto</language>
+ <language type="mgo">meta’</language>
+ <language type="mh">marshallesisk</language>
+ <language type="mi">maori</language>
+ <language type="mic">micmac</language>
+ <language type="min">minangkabau</language>
+ <language type="mk">makedonsk</language>
+ <language type="ml">malayalam</language>
+ <language type="mn">mongolsk</language>
+ <language type="mnc">mandsju</language>
+ <language type="mni">manipuri</language>
+ <language type="moh">mohawk</language>
+ <language type="mos">mossi</language>
+ <language type="mr">marathi</language>
+ <language type="mrj">vestmarisk</language>
+ <language type="ms">malayisk</language>
+ <language type="mt">maltesisk</language>
+ <language type="mua">mundang</language>
+ <language type="mul">flere språk</language>
+ <language type="mus">creek</language>
+ <language type="mwl">mirandesisk</language>
+ <language type="mwr">marwari</language>
+ <language type="mwv">mentawai</language>
+ <language type="my">burmesisk</language>
+ <language type="mye">myene</language>
+ <language type="myv">erzia</language>
+ <language type="mzn">mazandarani</language>
+ <language type="na">nauru</language>
+ <language type="nan">minnan</language>
+ <language type="nap">napolitansk</language>
+ <language type="naq">nama</language>
+ <language type="nb">norsk bokmål</language>
+ <language type="nd">nord-ndebele</language>
+ <language type="nds">nedertysk</language>
+ <language type="nds_NL">nedersaksisk</language>
+ <language type="ne">nepali</language>
+ <language type="new">newari</language>
+ <language type="ng">ndonga</language>
+ <language type="nia">nias</language>
+ <language type="niu">niueansk</language>
+ <language type="njo">ao naga</language>
+ <language type="nl">nederlandsk</language>
+ <language type="nl_BE">flamsk</language>
+ <language type="nmg">kwasio</language>
+ <language type="nn">norsk nynorsk</language>
+ <language type="nnh">ngiemboon</language>
+ <language type="no">norsk</language>
+ <language type="nog">nogaisk</language>
+ <language type="non">gammelnorsk</language>
+ <language type="nov">novial</language>
+ <language type="nqo">nʼko</language>
+ <language type="nr">sør-ndebele</language>
+ <language type="nso">nord-sotho</language>
+ <language type="nus">nuer</language>
+ <language type="nv">navajo</language>
+ <language type="nwc">klassisk newari</language>
+ <language type="ny">nyanja</language>
+ <language type="nym">nyamwezi</language>
+ <language type="nyn">nyankole</language>
+ <language type="nyo">nyoro</language>
+ <language type="nzi">nzima</language>
+ <language type="oc">oksitansk</language>
+ <language type="oj">ojibwa</language>
+ <language type="om">oromo</language>
+ <language type="or">odia</language>
+ <language type="os">ossetisk</language>
+ <language type="osa">osage</language>
+ <language type="ota">ottomansk tyrkisk</language>
+ <language type="pa">panjabi</language>
+ <language type="pag">pangasinan</language>
+ <language type="pal">pahlavi</language>
+ <language type="pam">pampanga</language>
+ <language type="pap">papiamento</language>
+ <language type="pau">palauisk</language>
+ <language type="pcd">pikardisk</language>
+ <language type="pcm">nigeriansk pidginspråk</language>
+ <language type="pdc">pennsylvaniatysk</language>
+ <language type="pdt">plautdietsch</language>
+ <language type="peo">gammelpersisk</language>
+ <language type="pfl">palatintysk</language>
+ <language type="phn">fønikisk</language>
+ <language type="pi">pali</language>
+ <language type="pl">polsk</language>
+ <language type="pms">piemontesisk</language>
+ <language type="pnt">pontisk</language>
+ <language type="pon">ponapisk</language>
+ <language type="prg">prøyssisk</language>
+ <language type="pro">gammelprovençalsk</language>
+ <language type="ps">pashto</language>
+ <language type="ps" alt="variant">pushto</language>
+ <language type="pt">portugisisk</language>
+ <language type="pt_BR">↑↑↑</language>
+ <language type="pt_PT">↑↑↑</language>
+ <language type="qu">quechua</language>
+ <language type="quc">k’iche’</language>
+ <language type="qug">kichwa (Chimborazo-høylandet)</language>
+ <language type="raj">rajasthani</language>
+ <language type="rap">rapanui</language>
+ <language type="rar">rarotongansk</language>
+ <language type="rgn">romagnolsk</language>
+ <language type="rif">riff</language>
+ <language type="rm">retoromansk</language>
+ <language type="rn">rundi</language>
+ <language type="ro">rumensk</language>
+ <language type="ro_MD">moldovsk</language>
+ <language type="rof">rombo</language>
+ <language type="rom">romani</language>
+ <language type="rtm">rotumansk</language>
+ <language type="ru">russisk</language>
+ <language type="rue">rusinsk</language>
+ <language type="rug">roviana</language>
+ <language type="rup">aromansk</language>
+ <language type="rw">kinyarwanda</language>
+ <language type="rwk">rwa</language>
+ <language type="sa">sanskrit</language>
+ <language type="sad">sandawe</language>
+ <language type="sah">sakha</language>
+ <language type="sam">samaritansk arameisk</language>
+ <language type="saq">samburu</language>
+ <language type="sas">sasak</language>
+ <language type="sat">santali</language>
+ <language type="saz">saurashtra</language>
+ <language type="sba">ngambay</language>
+ <language type="sbp">sangu</language>
+ <language type="sc">sardisk</language>
+ <language type="scn">siciliansk</language>
+ <language type="sco">skotsk</language>
+ <language type="sd">sindhi</language>
+ <language type="sdc">sassaresisk sardisk</language>
+ <language type="sdh">sørkurdisk</language>
+ <language type="se">nordsamisk</language>
+ <language type="see">seneca</language>
+ <language type="seh">sena</language>
+ <language type="sei">seri</language>
+ <language type="sel">selkupisk</language>
+ <language type="ses">koyraboro senni</language>
+ <language type="sg">sango</language>
+ <language type="sga">gammelirsk</language>
+ <language type="sgs">samogitisk</language>
+ <language type="sh">serbokroatisk</language>
+ <language type="shi">tachelhit</language>
+ <language type="shn">shan</language>
+ <language type="shu">tsjadisk arabisk</language>
+ <language type="si">singalesisk</language>
+ <language type="sid">sidamo</language>
+ <language type="sk">slovakisk</language>
+ <language type="sl">slovensk</language>
+ <language type="sli">lavschlesisk</language>
+ <language type="sly">selayar</language>
+ <language type="sm">samoansk</language>
+ <language type="sma">sørsamisk</language>
+ <language type="smj">lulesamisk</language>
+ <language type="smn">enaresamisk</language>
+ <language type="sms">skoltesamisk</language>
+ <language type="sn">shona</language>
+ <language type="snk">soninke</language>
+ <language type="so">somali</language>
+ <language type="sog">sogdisk</language>
+ <language type="sq">albansk</language>
+ <language type="sr">serbisk</language>
+ <language type="srn">sranan</language>
+ <language type="srr">serer</language>
+ <language type="ss">swati</language>
+ <language type="ssy">saho</language>
+ <language type="st">sør-sotho</language>
+ <language type="stq">saterfrisisk</language>
+ <language type="su">sundanesisk</language>
+ <language type="suk">sukuma</language>
+ <language type="sus">susu</language>
+ <language type="sux">sumerisk</language>
+ <language type="sv">svensk</language>
+ <language type="sw">swahili</language>
+ <language type="sw_CD">kongolesisk swahili</language>
+ <language type="swb">komorisk</language>
+ <language type="syc">klassisk syrisk</language>
+ <language type="syr">syriakisk</language>
+ <language type="szl">schlesisk</language>
+ <language type="ta">tamil</language>
+ <language type="tcy">tulu</language>
+ <language type="te">telugu</language>
+ <language type="tem">temne</language>
+ <language type="teo">teso</language>
+ <language type="ter">tereno</language>
+ <language type="tet">tetum</language>
+ <language type="tg">tadsjikisk</language>
+ <language type="th">thai</language>
+ <language type="ti">tigrinja</language>
+ <language type="tig">tigré</language>
+ <language type="tiv">tiv</language>
+ <language type="tk">turkmensk</language>
+ <language type="tkl">tokelauisk</language>
+ <language type="tkr">tsakhursk</language>
+ <language type="tl">tagalog</language>
+ <language type="tlh">klingon</language>
+ <language type="tli">tlingit</language>
+ <language type="tly">talysj</language>
+ <language type="tmh">tamasjek</language>
+ <language type="tn">setswana</language>
+ <language type="to">tongansk</language>
+ <language type="tog">nyasa-tongansk</language>
+ <language type="tpi">tok pisin</language>
+ <language type="tr">tyrkisk</language>
+ <language type="tru">turoyo</language>
+ <language type="trv">taroko</language>
+ <language type="ts">tsonga</language>
+ <language type="tsd">tsakonisk</language>
+ <language type="tsi">tsimshian</language>
+ <language type="tt">tatarisk</language>
+ <language type="ttt">muslimsk tat</language>
+ <language type="tum">tumbuka</language>
+ <language type="tvl">tuvalsk</language>
+ <language type="tw">twi</language>
+ <language type="twq">tasawaq</language>
+ <language type="ty">tahitisk</language>
+ <language type="tyv">tuvinsk</language>
+ <language type="tzm">sentralmarokkansk tamazight</language>
+ <language type="udm">udmurtisk</language>
+ <language type="ug">uigurisk</language>
+ <language type="uga">ugaritisk</language>
+ <language type="uk">ukrainsk</language>
+ <language type="umb">umbundu</language>
+ <language type="und">ukjent språk</language>
+ <language type="ur">urdu</language>
+ <language type="uz">usbekisk</language>
+ <language type="vai">vai</language>
+ <language type="ve">venda</language>
+ <language type="vec">venetiansk</language>
+ <language type="vep">vepsisk</language>
+ <language type="vi">vietnamesisk</language>
+ <language type="vls">vestflamsk</language>
+ <language type="vmf">Main-frankisk</language>
+ <language type="vo">volapyk</language>
+ <language type="vot">votisk</language>
+ <language type="vro">sørestisk</language>
+ <language type="vun">vunjo</language>
+ <language type="wa">vallonsk</language>
+ <language type="wae">walsertysk</language>
+ <language type="wal">wolaytta</language>
+ <language type="war">waray-waray</language>
+ <language type="was">washo</language>
+ <language type="wbp">warlpiri</language>
+ <language type="wo">wolof</language>
+ <language type="wuu">wu</language>
+ <language type="xal">kalmukkisk</language>
+ <language type="xh">xhosa</language>
+ <language type="xmf">mingrelsk</language>
+ <language type="xog">soga</language>
+ <language type="yao">yao</language>
+ <language type="yap">yapesisk</language>
+ <language type="yav">yangben</language>
+ <language type="ybb">yemba</language>
+ <language type="yi">jiddisk</language>
+ <language type="yo">joruba</language>
+ <language type="yrl">nheengatu</language>
+ <language type="yue">kantonesisk</language>
+ <language type="yue" alt="menu">↑↑↑</language>
+ <language type="za">zhuang</language>
+ <language type="zap">zapotekisk</language>
+ <language type="zbl">blissymboler</language>
+ <language type="zea">zeeuws</language>
+ <language type="zen">zenaga</language>
+ <language type="zgh">standard marrokansk tamazight</language>
+ <language type="zh">kinesisk</language>
+ <language type="zh" alt="menu">kinesisk, mandarin</language>
+ <language type="zh_Hans">forenklet kinesisk</language>
+ <language type="zh_Hans" alt="long">forenklet mandarinkinesisk</language>
+ <language type="zh_Hant">tradisjonell kinesisk</language>
+ <language type="zh_Hant" alt="long">tradisjonell mandarinkinesisk</language>
+ <language type="zu">zulu</language>
+ <language type="zun">zuni</language>
+ <language type="zxx">uten språklig innhold</language>
+ <language type="zza">zazaisk</language>
+ </languages>
+ <scripts>
+ <script type="Afak" draft="contributed">afaka</script>
+ <script type="Aghb" draft="contributed">kaukasus-albansk</script>
+ <script type="Ahom" draft="contributed">ahom</script>
+ <script type="Arab">arabisk</script>
+ <script type="Arab" alt="variant">persisk-arabisk</script>
+ <script type="Aran" draft="contributed">nastaliq</script>
+ <script type="Armi">arameisk</script>
+ <script type="Armn">armensk</script>
+ <script type="Avst">avestisk</script>
+ <script type="Bali">balinesisk</script>
+ <script type="Bamu" draft="contributed">bamum</script>
+ <script type="Bass" draft="contributed">bassa vah</script>
+ <script type="Batk">batak</script>
+ <script type="Beng">bengalsk</script>
+ <script type="Blis">blissymbol</script>
+ <script type="Bopo">bopomofo</script>
+ <script type="Brah">brahmi</script>
+ <script type="Brai">punktskrift</script>
+ <script type="Bugi">buginesisk</script>
+ <script type="Buhd">buhid</script>
+ <script type="Cakm">chakma</script>
+ <script type="Cans">felles kanadiske urspråksstavelser</script>
+ <script type="Cari">karisk</script>
+ <script type="Cham">cham</script>
+ <script type="Cher">cherokee</script>
+ <script type="Cirt">cirth</script>
+ <script type="Copt">koptisk</script>
+ <script type="Cprt">kypriotisk</script>
+ <script type="Cyrl">kyrillisk</script>
+ <script type="Cyrs">kirkeslavisk kyrillisk</script>
+ <script type="Deva">devanagari</script>
+ <script type="Dsrt">deseret</script>
+ <script type="Dupl" draft="contributed">duployan stenografi</script>
+ <script type="Egyd">egyptisk demotisk</script>
+ <script type="Egyh">egyptisk hieratisk</script>
+ <script type="Egyp">egyptiske hieroglyfer</script>
+ <script type="Elba" draft="contributed">elbasisk</script>
+ <script type="Ethi">etiopisk</script>
+ <script type="Geok">georgisk khutsuri</script>
+ <script type="Geor">georgisk</script>
+ <script type="Glag">glagolittisk</script>
+ <script type="Goth">gotisk</script>
+ <script type="Gran" draft="contributed">gammeltamilsk</script>
+ <script type="Grek">gresk</script>
+ <script type="Gujr">gujarati</script>
+ <script type="Guru">gurmukhi</script>
+ <script type="Hanb">han-kinesisk med bopomofo</script>
+ <script type="Hang">hangul</script>
+ <script type="Hani">han</script>
+ <script type="Hano">hanunoo</script>
+ <script type="Hans">forenklet</script>
+ <script type="Hans" alt="stand-alone">forenklet han</script>
+ <script type="Hant">tradisjonell</script>
+ <script type="Hant" alt="stand-alone">tradisjonell han</script>
+ <script type="Hatr" draft="contributed">hatransk armensk</script>
+ <script type="Hebr">hebraisk</script>
+ <script type="Hira">hiragana</script>
+ <script type="Hluw" draft="contributed">anatoliske hieroglyfer</script>
+ <script type="Hmng">pahawh hmong</script>
+ <script type="Hrkt">japanske stavelsesskrifter</script>
+ <script type="Hung">gammelungarsk</script>
+ <script type="Inds">indus</script>
+ <script type="Ital">gammelitalisk</script>
+ <script type="Jamo">jamo</script>
+ <script type="Java">javanesisk</script>
+ <script type="Jpan">japansk</script>
+ <script type="Jurc" draft="contributed">jurchen</script>
+ <script type="Kali">kayah li</script>
+ <script type="Kana">katakana</script>
+ <script type="Khar">kharoshthi</script>
+ <script type="Khmr">khmer</script>
+ <script type="Khoj" draft="contributed">khojki</script>
+ <script type="Knda">kannada</script>
+ <script type="Kore">koreansk</script>
+ <script type="Kpel" draft="contributed">kpelle</script>
+ <script type="Kthi">kaithisk</script>
+ <script type="Lana">lanna</script>
+ <script type="Laoo">laotisk</script>
+ <script type="Latf">frakturlatinsk</script>
+ <script type="Latg">gælisk latinsk</script>
+ <script type="Latn">latinsk</script>
+ <script type="Lepc">lepcha</script>
+ <script type="Limb">limbu</script>
+ <script type="Lina">lineær A</script>
+ <script type="Linb">lineær B</script>
+ <script type="Lisu" draft="contributed">fraser</script>
+ <script type="Loma" draft="contributed">loma</script>
+ <script type="Lyci">lykisk</script>
+ <script type="Lydi">lydisk</script>
+ <script type="Mahj" draft="contributed">mahajani</script>
+ <script type="Mand">mandaisk</script>
+ <script type="Mani">manikeisk</script>
+ <script type="Maya">maya-hieroglyfer</script>
+ <script type="Mend" draft="contributed">mende</script>
+ <script type="Merc" draft="contributed">meroitisk kursiv</script>
+ <script type="Mero">meroitisk</script>
+ <script type="Mlym">malayalam</script>
+ <script type="Modi" draft="contributed">modi</script>
+ <script type="Mong">mongolsk</script>
+ <script type="Moon">moon</script>
+ <script type="Mroo" draft="contributed">mro</script>
+ <script type="Mtei">meitei-mayek</script>
+ <script type="Mult" draft="contributed">multani</script>
+ <script type="Mymr">burmesisk</script>
+ <script type="Narb" draft="contributed">gammelnordarabisk</script>
+ <script type="Nbat" draft="contributed">nabataeansk</script>
+ <script type="Nkgb" draft="contributed">naxi geba</script>
+ <script type="Nkoo">n’ko</script>
+ <script type="Nshu" draft="contributed">nüshu</script>
+ <script type="Ogam">ogham</script>
+ <script type="Olck">ol-chiki</script>
+ <script type="Orkh">orkhon</script>
+ <script type="Orya">odia</script>
+ <script type="Osma">osmanya</script>
+ <script type="Palm" draft="contributed">palmyrensk</script>
+ <script type="Pauc" draft="contributed">pau cin hau</script>
+ <script type="Perm">gammelpermisk</script>
+ <script type="Phag">phags-pa</script>
+ <script type="Phli">inskripsjonspahlavi</script>
+ <script type="Phlp">psalter pahlavi</script>
+ <script type="Phlv">pahlavi</script>
+ <script type="Phnx">fønikisk</script>
+ <script type="Plrd">pollard-fonetisk</script>
+ <script type="Prti">inskripsjonsparthisk</script>
+ <script type="Qaag" draft="contributed">zawgyi</script>
+ <script type="Rjng">rejang</script>
+ <script type="Roro">rongorongo</script>
+ <script type="Runr">runer</script>
+ <script type="Samr">samaritansk</script>
+ <script type="Sara">sarati</script>
+ <script type="Sarb" draft="contributed">gammelsørarabisk</script>
+ <script type="Saur">saurashtra</script>
+ <script type="Sgnw">tegnskrift</script>
+ <script type="Shaw">shavisk</script>
+ <script type="Shrd" draft="contributed">sharada</script>
+ <script type="Sidd" draft="contributed">siddham</script>
+ <script type="Sind" draft="contributed">khudawadi</script>
+ <script type="Sinh">singalesisk</script>
+ <script type="Sora" draft="contributed">sora sompeng</script>
+ <script type="Sund">sundanesisk</script>
+ <script type="Sylo">syloti nagri</script>
+ <script type="Syrc">syrisk</script>
+ <script type="Syre">estrangelosyriakisk</script>
+ <script type="Syrj">vestlig syriakisk</script>
+ <script type="Syrn">østlig syriakisk</script>
+ <script type="Tagb">tagbanwa</script>
+ <script type="Takr" draft="contributed">takri</script>
+ <script type="Tale">tai le</script>
+ <script type="Talu">ny tai lue</script>
+ <script type="Taml">tamilsk</script>
+ <script type="Tang" draft="contributed">tangut</script>
+ <script type="Tavt">tai viet</script>
+ <script type="Telu">telugu</script>
+ <script type="Teng">tengwar</script>
+ <script type="Tfng">tifinagh</script>
+ <script type="Tglg">tagalog</script>
+ <script type="Thaa">taana</script>
+ <script type="Thai">thai</script>
+ <script type="Tibt">tibetansk</script>
+ <script type="Tirh" draft="contributed">tirhuta</script>
+ <script type="Ugar">ugaritisk</script>
+ <script type="Vaii">vai</script>
+ <script type="Visp">synlig tale</script>
+ <script type="Wara" draft="contributed">varang kshiti</script>
+ <script type="Wole" draft="contributed">woleai</script>
+ <script type="Xpeo">gammelpersisk</script>
+ <script type="Xsux">sumersk-akkadisk kileskrift</script>
+ <script type="Yiii">yi</script>
+ <script type="Zinh">nedarvet</script>
+ <script type="Zmth">matematisk notasjon</script>
+ <script type="Zsye">emoji</script>
+ <script type="Zsym">symboler</script>
+ <script type="Zxxx">språk uten skrift</script>
+ <script type="Zyyy">felles</script>
+ <script type="Zzzz">ukjent skrift</script>
+ </scripts>
+ <territories>
+ <territory type="001">verden</territory>
+ <territory type="002">Afrika</territory>
+ <territory type="003">Nord-Amerika</territory>
+ <territory type="005">Sør-Amerika</territory>
+ <territory type="009">Oseania</territory>
+ <territory type="011">Vest-Afrika</territory>
+ <territory type="013">Mellom-Amerika</territory>
+ <territory type="014">Øst-Afrika</territory>
+ <territory type="015">Nord-Afrika</territory>
+ <territory type="017">Sentral-Afrika</territory>
+ <territory type="018">Sørlige Afrika</territory>
+ <territory type="019">Amerika</territory>
+ <territory type="021">Nordlige Amerika</territory>
+ <territory type="029">Karibia</territory>
+ <territory type="030">Øst-Asia</territory>
+ <territory type="034">Sør-Asia</territory>
+ <territory type="035">Sørøst-Asia</territory>
+ <territory type="039">Sør-Europa</territory>
+ <territory type="053">Australasia</territory>
+ <territory type="054">Melanesia</territory>
+ <territory type="057">Mikronesia</territory>
+ <territory type="061">Polynesia</territory>
+ <territory type="142">Asia</territory>
+ <territory type="143">Sentral-Asia</territory>
+ <territory type="145">Vest-Asia</territory>
+ <territory type="150">Europa</territory>
+ <territory type="151">Øst-Europa</territory>
+ <territory type="154">Nord-Europa</territory>
+ <territory type="155">Vest-Europa</territory>
+ <territory type="202">Afrika sør for Sahara</territory>
+ <territory type="419">Latin-Amerika</territory>
+ <territory type="AC">Ascension</territory>
+ <territory type="AD">Andorra</territory>
+ <territory type="AE">De forente arabiske emirater</territory>
+ <territory type="AF">Afghanistan</territory>
+ <territory type="AG">Antigua og Barbuda</territory>
+ <territory type="AI">Anguilla</territory>
+ <territory type="AL">Albania</territory>
+ <territory type="AM">Armenia</territory>
+ <territory type="AO">Angola</territory>
+ <territory type="AQ">Antarktis</territory>
+ <territory type="AR">Argentina</territory>
+ <territory type="AS">Amerikansk Samoa</territory>
+ <territory type="AT">Østerrike</territory>
+ <territory type="AU">Australia</territory>
+ <territory type="AW">Aruba</territory>
+ <territory type="AX">Åland</territory>
+ <territory type="AZ">Aserbajdsjan</territory>
+ <territory type="BA">Bosnia-Hercegovina</territory>
+ <territory type="BB">Barbados</territory>
+ <territory type="BD">Bangladesh</territory>
+ <territory type="BE">Belgia</territory>
+ <territory type="BF">Burkina Faso</territory>
+ <territory type="BG">Bulgaria</territory>
+ <territory type="BH">Bahrain</territory>
+ <territory type="BI">Burundi</territory>
+ <territory type="BJ">Benin</territory>
+ <territory type="BL">Saint-Barthélemy</territory>
+ <territory type="BM">Bermuda</territory>
+ <territory type="BN">Brunei</territory>
+ <territory type="BO">Bolivia</territory>
+ <territory type="BQ">Karibisk Nederland</territory>
+ <territory type="BR">Brasil</territory>
+ <territory type="BS">Bahamas</territory>
+ <territory type="BT">Bhutan</territory>
+ <territory type="BV">Bouvetøya</territory>
+ <territory type="BW">Botswana</territory>
+ <territory type="BY">Hviterussland</territory>
+ <territory type="BZ">Belize</territory>
+ <territory type="CA">Canada</territory>
+ <territory type="CC">Kokosøyene</territory>
+ <territory type="CD">Kongo</territory>
+ <territory type="CD" alt="variant">Den demokratiske republikken Kongo</territory>
+ <territory type="CF">Den sentralafrikanske republikk</territory>
+ <territory type="CG">Kongo-Brazzaville</territory>
+ <territory type="CG" alt="variant">Republikken Kongo</territory>
+ <territory type="CH">Sveits</territory>
+ <territory type="CI">Elfenbenskysten</territory>
+ <territory type="CI" alt="variant">Elfenbenskysten</territory>
+ <territory type="CK">Cookøyene</territory>
+ <territory type="CL">Chile</territory>
+ <territory type="CM">Kamerun</territory>
+ <territory type="CN">Kina</territory>
+ <territory type="CO">Colombia</territory>
+ <territory type="CP">Clippertonøya</territory>
+ <territory type="CR">Costa Rica</territory>
+ <territory type="CU">Cuba</territory>
+ <territory type="CV">Kapp Verde</territory>
+ <territory type="CW">Curaçao</territory>
+ <territory type="CX">Christmasøya</territory>
+ <territory type="CY">Kypros</territory>
+ <territory type="CZ">Tsjekkia</territory>
+ <territory type="CZ" alt="variant">Den tsjekkiske republikk</territory>
+ <territory type="DE">Tyskland</territory>
+ <territory type="DG">Diego Garcia</territory>
+ <territory type="DJ">Djibouti</territory>
+ <territory type="DK">Danmark</territory>
+ <territory type="DM">Dominica</territory>
+ <territory type="DO">Den dominikanske republikk</territory>
+ <territory type="DZ">Algerie</territory>
+ <territory type="EA">Ceuta og Melilla</territory>
+ <territory type="EC">Ecuador</territory>
+ <territory type="EE">Estland</territory>
+ <territory type="EG">Egypt</territory>
+ <territory type="EH">Vest-Sahara</territory>
+ <territory type="ER">Eritrea</territory>
+ <territory type="ES">Spania</territory>
+ <territory type="ET">Etiopia</territory>
+ <territory type="EU">Den europeiske union</territory>
+ <territory type="EZ">eurosonen</territory>
+ <territory type="FI">Finland</territory>
+ <territory type="FJ">Fiji</territory>
+ <territory type="FK">Falklandsøyene</territory>
+ <territory type="FK" alt="variant">Falklandsøyene (Islas Malvinas)</territory>
+ <territory type="FM">Mikronesiaføderasjonen</territory>
+ <territory type="FO">Færøyene</territory>
+ <territory type="FR">Frankrike</territory>
+ <territory type="GA">Gabon</territory>
+ <territory type="GB">Storbritannia</territory>
+ <territory type="GB" alt="short">Storbritannia</territory>
+ <territory type="GD">Grenada</territory>
+ <territory type="GE">Georgia</territory>
+ <territory type="GF">Fransk Guyana</territory>
+ <territory type="GG">Guernsey</territory>
+ <territory type="GH">Ghana</territory>
+ <territory type="GI">Gibraltar</territory>
+ <territory type="GL">Grønland</territory>
+ <territory type="GM">Gambia</territory>
+ <territory type="GN">Guinea</territory>
+ <territory type="GP">Guadeloupe</territory>
+ <territory type="GQ">Ekvatorial-Guinea</territory>
+ <territory type="GR">Hellas</territory>
+ <territory type="GS">Sør-Georgia og Sør-Sandwichøyene</territory>
+ <territory type="GT">Guatemala</territory>
+ <territory type="GU">Guam</territory>
+ <territory type="GW">Guinea-Bissau</territory>
+ <territory type="GY">Guyana</territory>
+ <territory type="HK">Hongkong SAR Kina</territory>
+ <territory type="HK" alt="short">Hongkong</territory>
+ <territory type="HM">Heard- og McDonaldøyene</territory>
+ <territory type="HN">Honduras</territory>
+ <territory type="HR">Kroatia</territory>
+ <territory type="HT">Haiti</territory>
+ <territory type="HU">Ungarn</territory>
+ <territory type="IC">Kanariøyene</territory>
+ <territory type="ID">Indonesia</territory>
+ <territory type="IE">Irland</territory>
+ <territory type="IL">Israel</territory>
+ <territory type="IM">Man</territory>
+ <territory type="IN">India</territory>
+ <territory type="IO">Det britiske territoriet i Indiahavet</territory>
+ <territory type="IQ">Irak</territory>
+ <territory type="IR">Iran</territory>
+ <territory type="IS">Island</territory>
+ <territory type="IT">Italia</territory>
+ <territory type="JE">Jersey</territory>
+ <territory type="JM">Jamaica</territory>
+ <territory type="JO">Jordan</territory>
+ <territory type="JP">Japan</territory>
+ <territory type="KE">Kenya</territory>
+ <territory type="KG">Kirgisistan</territory>
+ <territory type="KH">Kambodsja</territory>
+ <territory type="KI">Kiribati</territory>
+ <territory type="KM">Komorene</territory>
+ <territory type="KN">Saint Kitts og Nevis</territory>
+ <territory type="KP">Nord-Korea</territory>
+ <territory type="KR">Sør-Korea</territory>
+ <territory type="KW">Kuwait</territory>
+ <territory type="KY">Caymanøyene</territory>
+ <territory type="KZ">Kasakhstan</territory>
+ <territory type="LA">Laos</territory>
+ <territory type="LB">Libanon</territory>
+ <territory type="LC">St. Lucia</territory>
+ <territory type="LI">Liechtenstein</territory>
+ <territory type="LK">Sri Lanka</territory>
+ <territory type="LR">Liberia</territory>
+ <territory type="LS">Lesotho</territory>
+ <territory type="LT">Litauen</territory>
+ <territory type="LU">Luxemburg</territory>
+ <territory type="LV">Latvia</territory>
+ <territory type="LY">Libya</territory>
+ <territory type="MA">Marokko</territory>
+ <territory type="MC">Monaco</territory>
+ <territory type="MD">Moldova</territory>
+ <territory type="ME">Montenegro</territory>
+ <territory type="MF">Saint-Martin</territory>
+ <territory type="MG">Madagaskar</territory>
+ <territory type="MH">Marshalløyene</territory>
+ <territory type="MK">Nord-Makedonia</territory>
+ <territory type="ML">Mali</territory>
+ <territory type="MM">Myanmar (Burma)</territory>
+ <territory type="MN">Mongolia</territory>
+ <territory type="MO">Macao SAR Kina</territory>
+ <territory type="MO" alt="short">Macao</territory>
+ <territory type="MP">Nord-Marianene</territory>
+ <territory type="MQ">Martinique</territory>
+ <territory type="MR">Mauritania</territory>
+ <territory type="MS">Montserrat</territory>
+ <territory type="MT">Malta</territory>
+ <territory type="MU">Mauritius</territory>
+ <territory type="MV">Maldivene</territory>
+ <territory type="MW">Malawi</territory>
+ <territory type="MX">Mexico</territory>
+ <territory type="MY">Malaysia</territory>
+ <territory type="MZ">Mosambik</territory>
+ <territory type="NA">Namibia</territory>
+ <territory type="NC">Ny-Caledonia</territory>
+ <territory type="NE">Niger</territory>
+ <territory type="NF">Norfolkøya</territory>
+ <territory type="NG">Nigeria</territory>
+ <territory type="NI">Nicaragua</territory>
+ <territory type="NL">Nederland</territory>
+ <territory type="NO">Norge</territory>
+ <territory type="NP">Nepal</territory>
+ <territory type="NR">Nauru</territory>
+ <territory type="NU">Niue</territory>
+ <territory type="NZ">New Zealand</territory>
+ <territory type="OM">Oman</territory>
+ <territory type="PA">Panama</territory>
+ <territory type="PE">Peru</territory>
+ <territory type="PF">Fransk Polynesia</territory>
+ <territory type="PG">Papua Ny-Guinea</territory>
+ <territory type="PH">Filippinene</territory>
+ <territory type="PK">Pakistan</territory>
+ <territory type="PL">Polen</territory>
+ <territory type="PM">Saint-Pierre-et-Miquelon</territory>
+ <territory type="PN">Pitcairnøyene</territory>
+ <territory type="PR">Puerto Rico</territory>
+ <territory type="PS">Det palestinske området</territory>
+ <territory type="PS" alt="short">Palestina</territory>
+ <territory type="PT">Portugal</territory>
+ <territory type="PW">Palau</territory>
+ <territory type="PY">Paraguay</territory>
+ <territory type="QA">Qatar</territory>
+ <territory type="QO">Ytre Oseania</territory>
+ <territory type="RE">Réunion</territory>
+ <territory type="RO">Romania</territory>
+ <territory type="RS">Serbia</territory>
+ <territory type="RU">Russland</territory>
+ <territory type="RW">Rwanda</territory>
+ <territory type="SA">Saudi-Arabia</territory>
+ <territory type="SB">Salomonøyene</territory>
+ <territory type="SC">Seychellene</territory>
+ <territory type="SD">Sudan</territory>
+ <territory type="SE">Sverige</territory>
+ <territory type="SG">Singapore</territory>
+ <territory type="SH">St. Helena</territory>
+ <territory type="SI">Slovenia</territory>
+ <territory type="SJ">Svalbard og Jan Mayen</territory>
+ <territory type="SK">Slovakia</territory>
+ <territory type="SL">Sierra Leone</territory>
+ <territory type="SM">San Marino</territory>
+ <territory type="SN">Senegal</territory>
+ <territory type="SO">Somalia</territory>
+ <territory type="SR">Surinam</territory>
+ <territory type="SS">Sør-Sudan</territory>
+ <territory type="ST">São Tomé og Príncipe</territory>
+ <territory type="SV">El Salvador</territory>
+ <territory type="SX">Sint Maarten</territory>
+ <territory type="SY">Syria</territory>
+ <territory type="SZ">Eswatini</territory>
+ <territory type="SZ" alt="variant">Swaziland</territory>
+ <territory type="TA">Tristan da Cunha</territory>
+ <territory type="TC">Turks- og Caicosøyene</territory>
+ <territory type="TD">Tsjad</territory>
+ <territory type="TF">De franske sørterritorier</territory>
+ <territory type="TG">Togo</territory>
+ <territory type="TH">Thailand</territory>
+ <territory type="TJ">Tadsjikistan</territory>
+ <territory type="TK">Tokelau</territory>
+ <territory type="TL">Øst-Timor</territory>
+ <territory type="TL" alt="variant">Timor-Leste</territory>
+ <territory type="TM">Turkmenistan</territory>
+ <territory type="TN">Tunisia</territory>
+ <territory type="TO">Tonga</territory>
+ <territory type="TR">Tyrkia</territory>
+ <territory type="TT">Trinidad og Tobago</territory>
+ <territory type="TV">Tuvalu</territory>
+ <territory type="TW">Taiwan</territory>
+ <territory type="TZ">Tanzania</territory>
+ <territory type="UA">Ukraina</territory>
+ <territory type="UG">Uganda</territory>
+ <territory type="UM">USAs ytre øyer</territory>
+ <territory type="UN">FN</territory>
+ <territory type="UN" alt="short">FN</territory>
+ <territory type="US">USA</territory>
+ <territory type="US" alt="short">USA</territory>
+ <territory type="UY">Uruguay</territory>
+ <territory type="UZ">Usbekistan</territory>
+ <territory type="VA">Vatikanstaten</territory>
+ <territory type="VC">St. Vincent og Grenadinene</territory>
+ <territory type="VE">Venezuela</territory>
+ <territory type="VG">De britiske jomfruøyene</territory>
+ <territory type="VI">De amerikanske jomfruøyene</territory>
+ <territory type="VN">Vietnam</territory>
+ <territory type="VU">Vanuatu</territory>
+ <territory type="WF">Wallis og Futuna</territory>
+ <territory type="WS">Samoa</territory>
+ <territory type="XA">pseudospråk – aksenter</territory>
+ <territory type="XB">pseudospråk – tekst begge veier</territory>
+ <territory type="XK">Kosovo</territory>
+ <territory type="YE">Jemen</territory>
+ <territory type="YT">Mayotte</territory>
+ <territory type="ZA">Sør-Afrika</territory>
+ <territory type="ZM">Zambia</territory>
+ <territory type="ZW">Zimbabwe</territory>
+ <territory type="ZZ">ukjent område</territory>
+ </territories>
+ <subdivisions>
+ <subdivision type="gbeng">England</subdivision>
+ <subdivision type="gbsct">Skottland</subdivision>
+ <subdivision type="gbwls">Wales</subdivision>
+ </subdivisions>
+ <variants>
+ <variant type="1901">tradisjonell tysk ortografi</variant>
+ <variant type="1994">standardisert resisk ortografi</variant>
+ <variant type="1996">tysk ortografi fra 1996</variant>
+ <variant type="1606NICT">nyere mellomfransk til 1606</variant>
+ <variant type="1694ACAD">eldre nyfransk</variant>
+ <variant type="1959ACAD" draft="contributed">akademisk</variant>
+ <variant type="ALALC97" draft="contributed">ALA-LC-romanisering, 1997-utgaven</variant>
+ <variant type="ALUKU">Aluku-dialekt</variant>
+ <variant type="AREVELA">øst-armensk</variant>
+ <variant type="AREVMDA">vest-armensk</variant>
+ <variant type="BAKU1926" draft="contributed">samlet tyrkisk-latinsk alfabet</variant>
+ <variant type="BALANKA" draft="contributed">balankadialekten av anii</variant>
+ <variant type="BARLA" draft="contributed">barlaventa-dialektgruppen av kappverdiansk</variant>
+ <variant type="BAUDDHA" draft="contributed">bauddha</variant>
+ <variant type="BISCAYAN" draft="contributed">biscayan</variant>
+ <variant type="BISKE">san giorgio- og biladialekt</variant>
+ <variant type="BOHORIC" draft="contributed">bohorisk alfabet</variant>
+ <variant type="BOONT">boontling</variant>
+ <variant type="DAJNKO" draft="contributed">dajnkoalfabet</variant>
+ <variant type="EKAVSK" draft="contributed">serbisk med ekavisk uttale</variant>
+ <variant type="EMODENG" draft="contributed">tidlig moderne engelsk</variant>
+ <variant type="FONIPA">det internasjonale fonetiske alfabet (IPA)</variant>
+ <variant type="FONUPA">det uraliske fonetiske alfabet (UPA)</variant>
+ <variant type="FONXSAMP" draft="contributed">fonxsamp</variant>
+ <variant type="HEPBURN" draft="contributed">Hepburn-romanisering</variant>
+ <variant type="HOGNORSK" draft="contributed">høgnorsk</variant>
+ <variant type="IJEKAVSK" draft="contributed">serbisk med ijekavisk uttale</variant>
+ <variant type="ITIHASA" draft="contributed">itihasa</variant>
+ <variant type="JAUER" draft="contributed">jauer</variant>
+ <variant type="JYUTPING" draft="contributed">jyutping</variant>
+ <variant type="KKCOR">felles ortografi</variant>
+ <variant type="KOCIEWIE" draft="contributed">kociewie</variant>
+ <variant type="KSCOR" draft="contributed">standard ortografi</variant>
+ <variant type="LAUKIKA" draft="contributed">laukika</variant>
+ <variant type="LIPAW" draft="contributed">resia med Lipovaz-dialekt</variant>
+ <variant type="METELKO" draft="contributed">Metelko-alfabet</variant>
+ <variant type="MONOTON">monotonisk rettskriving</variant>
+ <variant type="NDYUKA">ndyuka-dialekt</variant>
+ <variant type="NEDIS">natisonedialekt</variant>
+ <variant type="NJIVA">gniva- og njivadialekt</variant>
+ <variant type="NULIK" draft="contributed">moderne volapük</variant>
+ <variant type="OSOJS">oseacco- og osojanedialekt</variant>
+ <variant type="PAMAKA">Pamaka-dialekt</variant>
+ <variant type="PINYIN">pinyin</variant>
+ <variant type="POLYTON">polytonisk rettskriving</variant>
+ <variant type="POSIX">dataspråk</variant>
+ <variant type="REVISED">revidert ortografi</variant>
+ <variant type="RIGIK" draft="contributed">klassisk volapük</variant>
+ <variant type="ROZAJ">resisk dialekt</variant>
+ <variant type="SAAHO">saho</variant>
+ <variant type="SCOTLAND">skotsk standard engelsk</variant>
+ <variant type="SCOUSE">scouse dialekt</variant>
+ <variant type="SOLBA">stolvizza- og solbicadialekt</variant>
+ <variant type="SOTAV" draft="contributed">sotavento-dialektgruppen av kappverdiansk</variant>
+ <variant type="SURMIRAN" draft="contributed">surmiransk</variant>
+ <variant type="SURSILV" draft="contributed">sursilvan</variant>
+ <variant type="SUTSILV" draft="contributed">sutsilvan</variant>
+ <variant type="TARASK" draft="contributed">taraskievica-ortografi</variant>
+ <variant type="UCCOR" draft="contributed">harmonisert ortografi</variant>
+ <variant type="UCRCOR">harmonisert revidert ortografi</variant>
+ <variant type="ULSTER" draft="contributed">ulster</variant>
+ <variant type="UNIFON" draft="contributed">Unifon fonetisk alfabet</variant>
+ <variant type="VAIDIKA" draft="contributed">vaidika</variant>
+ <variant type="VALENCIA">valensiansk</variant>
+ <variant type="VALLADER" draft="contributed">vallader</variant>
+ <variant type="WADEGILE">Wade-Giles-romanisering</variant>
+ </variants>
+ <keys>
+ <key type="calendar">kalender</key>
+ <key type="cf">valutaformat</key>
+ <key type="colAlternate">Ignorer sortering etter symboler</key>
+ <key type="colBackwards">omvendt sortering etter aksent</key>
+ <key type="colCaseFirst">Organisering av store og små bokstaver</key>
+ <key type="colCaseLevel">Sortering av store og små bokstaver</key>
+ <key type="collation">sorteringsrekkefølge</key>
+ <key type="colNormalization">Normalisert sortering</key>
+ <key type="colNumeric">Numerisk sortering</key>
+ <key type="colStrength">Sorteringsstyrke</key>
+ <key type="currency">valuta</key>
+ <key type="hc">timesyklus (12 eller 24)</key>
+ <key type="lb">linjeskiftstil</key>
+ <key type="ms">målesystem</key>
+ <key type="numbers">tall</key>
+ <key type="timezone">tidssone</key>
+ <key type="va">språkvariant</key>
+ <key type="x">privat bruk</key>
+ </keys>
+ <types>
+ <type key="calendar" type="buddhist">buddhistisk kalender</type>
+ <type key="calendar" type="chinese">kinesisk kalender</type>
+ <type key="calendar" type="coptic">koptisk kalender</type>
+ <type key="calendar" type="dangi">dangisk kalender</type>
+ <type key="calendar" type="ethiopic">etiopisk kalender</type>
+ <type key="calendar" type="ethiopic-amete-alem">etiopisk amete-alem-kalender</type>
+ <type key="calendar" type="gregorian">gregoriansk kalender</type>
+ <type key="calendar" type="hebrew">hebraisk kalender</type>
+ <type key="calendar" type="indian">indisk nasjonalkalender</type>
+ <type key="calendar" type="islamic">islamsk kalender</type>
+ <type key="calendar" type="islamic-civil">islamsk kalender (tabell, sivil)</type>
+ <type key="calendar" type="islamic-rgsa">islamsk kalender (Saudi-Arabia, observasjon)</type>
+ <type key="calendar" type="islamic-tbla">islamsk kalender (tabell, astronomisk)</type>
+ <type key="calendar" type="islamic-umalqura" draft="contributed">islamsk kalender (Umm al-Qura)</type>
+ <type key="calendar" type="iso8601">ISO 8601-kalender</type>
+ <type key="calendar" type="japanese">japansk kalender</type>
+ <type key="calendar" type="persian">persisk kalender</type>
+ <type key="calendar" type="roc">minguo-kalender</type>
+ <type key="cf" type="account">valutaformat for regnskapsføring</type>
+ <type key="cf" type="standard">standard valutaformat</type>
+ <type key="colAlternate" type="non-ignorable" draft="contributed">sortér symboler</type>
+ <type key="colAlternate" type="shifted" draft="contributed">Ignorer symboler under sortering</type>
+ <type key="colBackwards" type="no" draft="contributed">sortér aksenttegn normalt</type>
+ <type key="colBackwards" type="yes" draft="contributed">sortér aksenttegn i motsatt rekkefølge</type>
+ <type key="colCaseFirst" type="lower" draft="contributed">Sortér små bokstaver først</type>
+ <type key="colCaseFirst" type="no" draft="contributed">Sortér store og små bokstaver i vanlig rekkefølge</type>
+ <type key="colCaseFirst" type="upper" draft="contributed">Sortér store bokstaver først</type>
+ <type key="colCaseLevel" type="no" draft="contributed">Sortér uavhengig av store og små bokstaver.</type>
+ <type key="colCaseLevel" type="yes" draft="contributed">Sortér med skille mellom små og store bokstaver</type>
+ <type key="collation" type="big5han">tradisjonell kinesisk sortering - Big 5</type>
+ <type key="collation" type="compat" draft="contributed">forrige sorteringsrekkefølge (for kompatibilitet)</type>
+ <type key="collation" type="dictionary">ordlistesortering</type>
+ <type key="collation" type="ducet">standard Unicode-sorteringsrekkefølge</type>
+ <type key="collation" type="emoji" draft="contributed">emoji-sorteringsrekkefølge</type>
+ <type key="collation" type="eor" draft="contributed">sorteringsrekkefølge for flerspråklige europeiske dokumenter</type>
+ <type key="collation" type="gb2312han">forenklet kinesisk sortering - GB2312</type>
+ <type key="collation" type="phonebook">telefonkatalogsortering</type>
+ <type key="collation" type="phonetic" draft="contributed">Fonetisk sorteringsrekkefølge</type>
+ <type key="collation" type="pinyin">pinyinsortering</type>
+ <type key="collation" type="reformed">reformert sortering</type>
+ <type key="collation" type="search">generelt søk</type>
+ <type key="collation" type="searchjl" draft="contributed">Søk etter første konsonant i hangul</type>
+ <type key="collation" type="standard">standard sorteringsrekkefølge</type>
+ <type key="collation" type="stroke">streksortering</type>
+ <type key="collation" type="traditional">tradisjonell sortering</type>
+ <type key="collation" type="unihan">radikal-strek-sortering</type>
+ <type key="collation" type="zhuyin" draft="contributed">zhuyin-sortering</type>
+ <type key="colNormalization" type="no" draft="contributed">Sortér uten normalisering</type>
+ <type key="colNormalization" type="yes" draft="contributed">Sortér Unicode normalisert</type>
+ <type key="colNumeric" type="no" draft="contributed">Sortér sifre individuelt</type>
+ <type key="colNumeric" type="yes" draft="contributed">Sortér sifre numerisk</type>
+ <type key="colStrength" type="identical" draft="contributed">Sortér alle</type>
+ <type key="colStrength" type="primary" draft="contributed">Sortér bare basisbokstaver</type>
+ <type key="colStrength" type="quaternary" draft="contributed">Sortér aksenttegn / små og store bokstaver / bredde / kana</type>
+ <type key="colStrength" type="secondary" draft="contributed">Sortér aksenttegn</type>
+ <type key="colStrength" type="tertiary" draft="contributed">Sortér aksenttegn / små og store bokstaver / bredde</type>
+ <type key="d0" type="fwidth">full bredde</type>
+ <type key="d0" type="hwidth">halv bredde</type>
+ <type key="d0" type="npinyin" draft="contributed">Numerisk</type>
+ <type key="hc" type="h11">12-timers system (0–11)</type>
+ <type key="hc" type="h12">12-timers system (1–12)</type>
+ <type key="hc" type="h23">24-timers system (0–23)</type>
+ <type key="hc" type="h24">24-timers system (1–24)</type>
+ <type key="lb" type="loose">løs linjeskiftstil</type>
+ <type key="lb" type="normal">normal linjeskiftstil</type>
+ <type key="lb" type="strict">streng linjeskiftstil</type>
+ <type key="m0" type="bgn">USBGN-translitterasjon</type>
+ <type key="m0" type="ungegn">UNGEGN-translitterasjon</type>
+ <type key="ms" type="metric">metrisk system</type>
+ <type key="ms" type="uksystem">britisk målesystem</type>
+ <type key="ms" type="ussystem">amerikansk målesystem</type>
+ <type key="numbers" type="arab">arabisk-indiske sifre</type>
+ <type key="numbers" type="arabext">utvidede arabisk-indiske sifre</type>
+ <type key="numbers" type="armn">armenske tall</type>
+ <type key="numbers" type="armnlow">små armenske tall</type>
+ <type key="numbers" type="bali" draft="contributed">baliske tall</type>
+ <type key="numbers" type="beng">bengalske sifre</type>
+ <type key="numbers" type="brah" draft="contributed">brahmiske tall</type>
+ <type key="numbers" type="cakm" draft="contributed">chakma-tall</type>
+ <type key="numbers" type="cham" draft="contributed">cham-tall</type>
+ <type key="numbers" type="deva">devanagari-sifre</type>
+ <type key="numbers" type="ethi">etiopiske tall</type>
+ <type key="numbers" type="finance" draft="contributed">Finansielle tall</type>
+ <type key="numbers" type="fullwide">sifre med full bredde</type>
+ <type key="numbers" type="geor">georgiske tall</type>
+ <type key="numbers" type="grek">greske tall</type>
+ <type key="numbers" type="greklow">små greske tall</type>
+ <type key="numbers" type="gujr">gujarati-sifre</type>
+ <type key="numbers" type="guru">gurmukhi-sifre</type>
+ <type key="numbers" type="hanidec">kinesiske desimaltall</type>
+ <type key="numbers" type="hans">forenklet kinesisk-tall</type>
+ <type key="numbers" type="hansfin">forenklet kinesisk-finanstall</type>
+ <type key="numbers" type="hant">tradisjonell kinesisk-tall</type>
+ <type key="numbers" type="hantfin">tradisjonell kinesisk-finanstall</type>
+ <type key="numbers" type="hebr">hebraiske tall</type>
+ <type key="numbers" type="java" draft="contributed">java-tall</type>
+ <type key="numbers" type="jpan">japanske tall</type>
+ <type key="numbers" type="jpanfin">japanske finanstall</type>
+ <type key="numbers" type="kali" draft="contributed">kayah li-tall</type>
+ <type key="numbers" type="khmr">khmer-sifre</type>
+ <type key="numbers" type="knda">kannada-sifre</type>
+ <type key="numbers" type="lana" draft="contributed">thai tham hora-tall</type>
+ <type key="numbers" type="lanatham" draft="contributed">tai tham tham-tall</type>
+ <type key="numbers" type="laoo">laotiske sifre</type>
+ <type key="numbers" type="latn">vestlige sifre</type>
+ <type key="numbers" type="lepc" draft="contributed">lepecha-tall</type>
+ <type key="numbers" type="limb" draft="contributed">limbu-tall</type>
+ <type key="numbers" type="mlym">malayalam-sifre</type>
+ <type key="numbers" type="mong">mongolske tall</type>
+ <type key="numbers" type="mtei" draft="contributed">meetei mayek-tall</type>
+ <type key="numbers" type="mymr">burmesiske sifre</type>
+ <type key="numbers" type="mymrshan" draft="contributed">myanmar shan-tall</type>
+ <type key="numbers" type="native" draft="contributed">Språkspesifikke sifre</type>
+ <type key="numbers" type="nkoo" draft="contributed">n’ko-tall</type>
+ <type key="numbers" type="olck" draft="contributed">ol chiki-tall</type>
+ <type key="numbers" type="orya">odia-sifre</type>
+ <type key="numbers" type="osma" draft="contributed">osmanya-tall</type>
+ <type key="numbers" type="roman">romertall</type>
+ <type key="numbers" type="romanlow">små romertall</type>
+ <type key="numbers" type="saur" draft="contributed">sarushatra-tall</type>
+ <type key="numbers" type="shrd" draft="contributed">sharada-tall</type>
+ <type key="numbers" type="sora" draft="contributed">sora sompeng-tall</type>
+ <type key="numbers" type="sund" draft="contributed">sundanese-tall</type>
+ <type key="numbers" type="takr" draft="contributed">takri-tall</type>
+ <type key="numbers" type="talu" draft="contributed">ny tai lue-tall</type>
+ <type key="numbers" type="taml">tamilske tall</type>
+ <type key="numbers" type="tamldec">tamilske sifre</type>
+ <type key="numbers" type="telu">telugu-sifre</type>
+ <type key="numbers" type="thai">thailandske sifre</type>
+ <type key="numbers" type="tibt">tibetanske sifre</type>
+ <type key="numbers" type="traditional" draft="contributed">Tradisjonelle tall</type>
+ <type key="numbers" type="vaii" draft="contributed">vai-sifre</type>
+ </types>
+ <measurementSystemNames>
+ <measurementSystemName type="metric">metrisk</measurementSystemName>
+ <measurementSystemName type="UK">engelsk</measurementSystemName>
+ <measurementSystemName type="US">amerikansk</measurementSystemName>
+ </measurementSystemNames>
+ <codePatterns>
+ <codePattern type="language">Språk: {0}</codePattern>
+ <codePattern type="script">Skrift: {0}</codePattern>
+ <codePattern type="territory">Område: {0}</codePattern>
+ </codePatterns>
+ </localeDisplayNames>
+ <contextTransforms>
+ <contextTransformUsage type="relative">
+ <contextTransform type="stand-alone">titlecase-firstword</contextTransform>
+ </contextTransformUsage>
+ <contextTransformUsage type="typographicNames">
+ <contextTransform type="stand-alone">titlecase-firstword</contextTransform>
+ <contextTransform type="uiListOrMenu">titlecase-firstword</contextTransform>
+ </contextTransformUsage>
+ </contextTransforms>
+ <characters>
+ <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 æ ø å]</exemplarCharacters>
+ <exemplarCharacters type="auxiliary">[á ǎ ã č ç đ è ê í ń ñ ŋ š ŧ ú ü ž ä ö]</exemplarCharacters>
+ <exemplarCharacters type="index">[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 Æ Ø Å]</exemplarCharacters>
+ <exemplarCharacters type="numbers">[ , % ‰ + − 0 1 2 3 4 5 6 7 8 9]</exemplarCharacters>
+ <exemplarCharacters type="punctuation">[\- ‑ – , ; \: ! ? . ' " « » ( ) \[ \] \{ \} § @ * / \\]</exemplarCharacters>
+ <ellipsis type="final">{0}…</ellipsis>
+ <ellipsis type="initial">…{0}</ellipsis>
+ <ellipsis type="medial">{0}…{1}</ellipsis>
+ <ellipsis type="word-final">{0} …</ellipsis>
+ <ellipsis type="word-initial">… {0}</ellipsis>
+ <ellipsis type="word-medial">{0} … {1}</ellipsis>
+ <moreInformation>?</moreInformation>
+ <parseLenients scope="date" level="lenient">
+ <parseLenient sample="-" draft="contributed">↑↑↑</parseLenient>
+ <parseLenient sample=":" draft="contributed">↑↑↑</parseLenient>
+ </parseLenients>
+ <parseLenients scope="general" level="lenient">
+ <parseLenient sample="." draft="contributed">↑↑↑</parseLenient>
+ <parseLenient sample="’" draft="contributed">↑↑↑</parseLenient>
+ <parseLenient sample="%" draft="contributed">↑↑↑</parseLenient>
+ <parseLenient sample="‰" draft="contributed">↑↑↑</parseLenient>
+ <parseLenient sample="$" draft="contributed">↑↑↑</parseLenient>
+ <parseLenient sample="£" draft="contributed">↑↑↑</parseLenient>
+ <parseLenient sample="¥" draft="contributed">↑↑↑</parseLenient>
+ <parseLenient sample="₩" draft="contributed">↑↑↑</parseLenient>
+ <parseLenient sample="₹" draft="contributed">↑↑↑</parseLenient>
+ </parseLenients>
+ <parseLenients scope="number" level="lenient">
+ <parseLenient sample="-" draft="contributed">↑↑↑</parseLenient>
+ <parseLenient sample="," draft="contributed">↑↑↑</parseLenient>
+ <parseLenient sample="+" draft="contributed">↑↑↑</parseLenient>
+ </parseLenients>
+ <parseLenients scope="number" level="stricter">
+ <parseLenient sample="," draft="contributed">↑↑↑</parseLenient>
+ <parseLenient sample="." draft="contributed">↑↑↑</parseLenient>
+ </parseLenients>
+ </characters>
+ <delimiters>
+ <quotationStart>«</quotationStart>
+ <quotationEnd>»</quotationEnd>
+ <alternateQuotationStart>‘</alternateQuotationStart>
+ <alternateQuotationEnd>’</alternateQuotationEnd>
+ </delimiters>
+ <dates>
+ <calendars>
+ <calendar type="buddhist">
+ <eras>
+ <eraNames>
+ <era type="0">BE</era>
+ </eraNames>
+ <eraAbbr>
+ <era type="0">BE</era>
+ </eraAbbr>
+ <eraNarrow>
+ <era type="0">BE</era>
+ </eraNarrow>
+ </eras>
+ <dateFormats>
+ <dateFormatLength type="full">
+ <dateFormat>
+ <pattern draft="contributed">EEEE d. MMMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="long">
+ <dateFormat>
+ <pattern draft="contributed">d. MMMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="medium">
+ <dateFormat>
+ <pattern draft="contributed">d. MMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="short">
+ <dateFormat>
+ <pattern draft="contributed">d.M.y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ </dateFormats>
+ <dateTimeFormats>
+ <dateTimeFormatLength type="full">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="long">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="medium">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="short">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <availableFormats>
+ <dateFormatItem id="d" draft="contributed">d.</dateFormatItem>
+ <dateFormatItem id="E" draft="contributed">ccc</dateFormatItem>
+ <dateFormatItem id="Ed" draft="contributed">E d.</dateFormatItem>
+ <dateFormatItem id="Gy" draft="contributed">y G</dateFormatItem>
+ <dateFormatItem id="GyMMM" draft="contributed">MMM y G</dateFormatItem>
+ <dateFormatItem id="GyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
+ <dateFormatItem id="GyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
+ <dateFormatItem id="M" draft="contributed">L.</dateFormatItem>
+ <dateFormatItem id="Md" draft="contributed">d.M.</dateFormatItem>
+ <dateFormatItem id="MEd" draft="contributed">E d.M</dateFormatItem>
+ <dateFormatItem id="MMdd" draft="contributed">d.M.</dateFormatItem>
+ <dateFormatItem id="MMM" draft="contributed">LLL</dateFormatItem>
+ <dateFormatItem id="MMMd" draft="contributed">d. MMM</dateFormatItem>
+ <dateFormatItem id="MMMEd" draft="contributed">E d. MMM</dateFormatItem>
+ <dateFormatItem id="MMMMd" draft="contributed">d. MMMM</dateFormatItem>
+ <dateFormatItem id="y" draft="contributed">y G</dateFormatItem>
+ <dateFormatItem id="yyyy" draft="contributed">y G</dateFormatItem>
+ <dateFormatItem id="yyyyM" draft="contributed">M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMd" draft="contributed">d.M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMEd" draft="contributed">E d.M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMM" draft="contributed">MM.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMM" draft="contributed">MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMM" draft="contributed">MMMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyQQQ" draft="contributed">QQQ y G</dateFormatItem>
+ <dateFormatItem id="yyyyQQQQ" draft="contributed">QQQQ y G</dateFormatItem>
+ </availableFormats>
+ <intervalFormats>
+ <intervalFormatFallback draft="contributed">{0}–{1}</intervalFormatFallback>
+ <intervalFormatItem id="d">
+ <greatestDifference id="d" draft="contributed">d.–d.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="h">
+ <greatestDifference id="a" draft="contributed">h a–h a</greatestDifference>
+ <greatestDifference id="h" draft="contributed">h–h a</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="H">
+ <greatestDifference id="H" draft="contributed">HH–HH</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="hv">
+ <greatestDifference id="a" draft="contributed">h a–h a v</greatestDifference>
+ <greatestDifference id="h" draft="contributed">h–h a v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Hv">
+ <greatestDifference id="H" draft="contributed">HH–HH v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="M">
+ <greatestDifference id="M" draft="contributed">M.–M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Md">
+ <greatestDifference id="d" draft="contributed">d.M.–d.M.</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d.M.–d.M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MEd">
+ <greatestDifference id="d" draft="contributed">E d.M.–E d.M.</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d.M.–E d.M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMM">
+ <greatestDifference id="M" draft="contributed">MMM–MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMMd">
+ <greatestDifference id="d" draft="contributed">d.–d. MMM</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d. MMM–d. MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMMEd">
+ <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="y">
+ <greatestDifference id="y" draft="contributed">y–y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yM">
+ <greatestDifference id="M" draft="contributed">M.y–M.y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">M.y–M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMd">
+ <greatestDifference id="d" draft="contributed">d.M.y–d.M.y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d.M.y–d.M.y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">d.M.y–d.M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMEd">
+ <greatestDifference id="d" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMM">
+ <greatestDifference id="M" draft="contributed">MMM–MMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">MMM y–MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMd">
+ <greatestDifference id="d" draft="contributed">d.–d. MMM y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d. MMM–d. MMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">d. MMM y–d. MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMEd">
+ <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">E d. MMM y–E d. MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMM">
+ <greatestDifference id="M" draft="contributed">MMMM–MMMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">MMMM y–MMMM y G</greatestDifference>
+ </intervalFormatItem>
+ </intervalFormats>
+ </dateTimeFormats>
+ </calendar>
+ <calendar type="chinese">
+ <months>
+ <monthContext type="format">
+ <monthWidth type="abbreviated">
+ <month type="1" draft="contributed">M01</month>
+ <month type="2" draft="contributed">M02</month>
+ <month type="3" draft="contributed">M03</month>
+ <month type="4" draft="contributed">M04</month>
+ <month type="5" draft="contributed">M05</month>
+ <month type="6" draft="contributed">M06</month>
+ <month type="7" draft="contributed">M07</month>
+ <month type="8" draft="contributed">M08</month>
+ <month type="9" draft="contributed">M09</month>
+ <month type="10" draft="contributed">M10</month>
+ <month type="11" draft="contributed">M11</month>
+ <month type="12" draft="contributed">M12</month>
+ </monthWidth>
+ <monthWidth type="narrow">
+ <month type="1" draft="contributed">1</month>
+ <month type="2" draft="contributed">2</month>
+ <month type="3" draft="contributed">3</month>
+ <month type="4" draft="contributed">4</month>
+ <month type="5" draft="contributed">5</month>
+ <month type="6" draft="contributed">6</month>
+ <month type="7" draft="contributed">7</month>
+ <month type="8" draft="contributed">8</month>
+ <month type="9" draft="contributed">9</month>
+ <month type="10" draft="contributed">10</month>
+ <month type="11" draft="contributed">11</month>
+ <month type="12" draft="contributed">12</month>
+ </monthWidth>
+ <monthWidth type="wide">
+ <month type="1" draft="contributed">M01</month>
+ <month type="2" draft="contributed">M02</month>
+ <month type="3" draft="contributed">M03</month>
+ <month type="4" draft="contributed">M04</month>
+ <month type="5" draft="contributed">M05</month>
+ <month type="6" draft="contributed">M06</month>
+ <month type="7" draft="contributed">M07</month>
+ <month type="8" draft="contributed">M08</month>
+ <month type="9" draft="contributed">M09</month>
+ <month type="10" draft="contributed">M10</month>
+ <month type="11" draft="contributed">M11</month>
+ <month type="12" draft="contributed">M12</month>
+ </monthWidth>
+ </monthContext>
+ <monthContext type="stand-alone">
+ <monthWidth type="abbreviated">
+ <month type="1" draft="contributed">M01</month>
+ <month type="2" draft="contributed">M02</month>
+ <month type="3" draft="contributed">M03</month>
+ <month type="4" draft="contributed">M04</month>
+ <month type="5" draft="contributed">M05</month>
+ <month type="6" draft="contributed">M06</month>
+ <month type="7" draft="contributed">M07</month>
+ <month type="8" draft="contributed">M08</month>
+ <month type="9" draft="contributed">M09</month>
+ <month type="10" draft="contributed">M10</month>
+ <month type="11" draft="contributed">M11</month>
+ <month type="12" draft="contributed">M12</month>
+ </monthWidth>
+ <monthWidth type="narrow">
+ <month type="1" draft="contributed">1</month>
+ <month type="2" draft="contributed">2</month>
+ <month type="3" draft="contributed">3</month>
+ <month type="4" draft="contributed">4</month>
+ <month type="5" draft="contributed">5</month>
+ <month type="6" draft="contributed">6</month>
+ <month type="7" draft="contributed">7</month>
+ <month type="8" draft="contributed">8</month>
+ <month type="9" draft="contributed">9</month>
+ <month type="10" draft="contributed">10</month>
+ <month type="11" draft="contributed">11</month>
+ <month type="12" draft="contributed">12</month>
+ </monthWidth>
+ <monthWidth type="wide">
+ <month type="1" draft="contributed">M01</month>
+ <month type="2" draft="contributed">M02</month>
+ <month type="3" draft="contributed">M03</month>
+ <month type="4" draft="contributed">M04</month>
+ <month type="5" draft="contributed">M05</month>
+ <month type="6" draft="contributed">M06</month>
+ <month type="7" draft="contributed">M07</month>
+ <month type="8" draft="contributed">M08</month>
+ <month type="9" draft="contributed">M09</month>
+ <month type="10" draft="contributed">M10</month>
+ <month type="11" draft="contributed">M11</month>
+ <month type="12" draft="contributed">M12</month>
+ </monthWidth>
+ </monthContext>
+ </months>
+ <monthPatterns>
+ <monthPatternContext type="format">
+ <monthPatternWidth type="abbreviated">
+ <monthPattern type="leap" draft="contributed">{0}bis</monthPattern>
+ </monthPatternWidth>
+ <monthPatternWidth type="narrow">
+ <monthPattern type="leap" draft="contributed">{0}b</monthPattern>
+ </monthPatternWidth>
+ <monthPatternWidth type="wide">
+ <monthPattern type="leap" draft="contributed">{0}bis</monthPattern>
+ </monthPatternWidth>
+ </monthPatternContext>
+ <monthPatternContext type="numeric">
+ <monthPatternWidth type="all">
+ <monthPattern type="leap" draft="contributed">{0}bis</monthPattern>
+ </monthPatternWidth>
+ </monthPatternContext>
+ <monthPatternContext type="stand-alone">
+ <monthPatternWidth type="abbreviated">
+ <monthPattern type="leap" draft="contributed">{0}bis</monthPattern>
+ </monthPatternWidth>
+ <monthPatternWidth type="narrow">
+ <monthPattern type="leap" draft="contributed">{0}b</monthPattern>
+ </monthPatternWidth>
+ <monthPatternWidth type="wide">
+ <monthPattern type="leap" draft="contributed">{0}bis</monthPattern>
+ </monthPatternWidth>
+ </monthPatternContext>
+ </monthPatterns>
+ <cyclicNameSets>
+ <cyclicNameSet type="dayParts">
+ <cyclicNameContext type="format">
+ <cyclicNameWidth type="abbreviated">
+ <cyclicName type="1" draft="contributed">zi</cyclicName>
+ <cyclicName type="2" draft="contributed">chou</cyclicName>
+ <cyclicName type="3" draft="contributed">yin</cyclicName>
+ <cyclicName type="4" draft="contributed">mao</cyclicName>
+ <cyclicName type="5" draft="contributed">chen</cyclicName>
+ <cyclicName type="6" draft="contributed">si</cyclicName>
+ <cyclicName type="7" draft="contributed">wu</cyclicName>
+ <cyclicName type="8" draft="contributed">wei</cyclicName>
+ <cyclicName type="9" draft="contributed">shen</cyclicName>
+ <cyclicName type="10" draft="contributed">you</cyclicName>
+ <cyclicName type="11" draft="contributed">xu</cyclicName>
+ <cyclicName type="12" draft="contributed">hai</cyclicName>
+ </cyclicNameWidth>
+ <cyclicNameWidth type="narrow">
+ <cyclicName type="1" draft="contributed">zi</cyclicName>
+ <cyclicName type="2" draft="contributed">chou</cyclicName>
+ <cyclicName type="3" draft="contributed">yin</cyclicName>
+ <cyclicName type="4" draft="contributed">mao</cyclicName>
+ <cyclicName type="5" draft="contributed">chen</cyclicName>
+ <cyclicName type="6" draft="contributed">si</cyclicName>
+ <cyclicName type="7" draft="contributed">wu</cyclicName>
+ <cyclicName type="8" draft="contributed">wei</cyclicName>
+ <cyclicName type="9" draft="contributed">shen</cyclicName>
+ <cyclicName type="10" draft="contributed">you</cyclicName>
+ <cyclicName type="11" draft="contributed">xu</cyclicName>
+ <cyclicName type="12" draft="contributed">hai</cyclicName>
+ </cyclicNameWidth>
+ <cyclicNameWidth type="wide">
+ <cyclicName type="1" draft="contributed">zi</cyclicName>
+ <cyclicName type="2" draft="contributed">chou</cyclicName>
+ <cyclicName type="3" draft="contributed">yin</cyclicName>
+ <cyclicName type="4" draft="contributed">mao</cyclicName>
+ <cyclicName type="5" draft="contributed">chen</cyclicName>
+ <cyclicName type="6" draft="contributed">si</cyclicName>
+ <cyclicName type="7" draft="contributed">wu</cyclicName>
+ <cyclicName type="8" draft="contributed">wei</cyclicName>
+ <cyclicName type="9" draft="contributed">shen</cyclicName>
+ <cyclicName type="10" draft="contributed">you</cyclicName>
+ <cyclicName type="11" draft="contributed">xu</cyclicName>
+ <cyclicName type="12" draft="contributed">hai</cyclicName>
+ </cyclicNameWidth>
+ </cyclicNameContext>
+ </cyclicNameSet>
+ <cyclicNameSet type="days">
+ <cyclicNameContext type="format">
+ <cyclicNameWidth type="abbreviated">
+ <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
+ <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
+ <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
+ <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
+ <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
+ <cyclicName type="6" draft="contributed">ji-si</cyclicName>
+ <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
+ <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
+ <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
+ <cyclicName type="10" draft="contributed">gui-you</cyclicName>
+ <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
+ <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
+ <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
+ <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
+ <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
+ <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
+ <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
+ <cyclicName type="18" draft="contributed">xin-si</cyclicName>
+ <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
+ <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
+ <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
+ <cyclicName type="22" draft="contributed">yi-you</cyclicName>
+ <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
+ <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
+ <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
+ <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
+ <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
+ <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
+ <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
+ <cyclicName type="30" draft="contributed">gui-si</cyclicName>
+ <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
+ <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
+ <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
+ <cyclicName type="34" draft="contributed">ding-you</cyclicName>
+ <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
+ <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
+ <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
+ <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
+ <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
+ <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
+ <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
+ <cyclicName type="42" draft="contributed">yi-si</cyclicName>
+ <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
+ <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
+ <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
+ <cyclicName type="46" draft="contributed">ji-you</cyclicName>
+ <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
+ <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
+ <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
+ <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
+ <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
+ <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
+ <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
+ <cyclicName type="54" draft="contributed">ding-si</cyclicName>
+ <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
+ <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
+ <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
+ <cyclicName type="58" draft="contributed">xin-you</cyclicName>
+ <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
+ <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
+ </cyclicNameWidth>
+ <cyclicNameWidth type="narrow">
+ <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
+ <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
+ <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
+ <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
+ <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
+ <cyclicName type="6" draft="contributed">ji-si</cyclicName>
+ <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
+ <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
+ <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
+ <cyclicName type="10" draft="contributed">gui-you</cyclicName>
+ <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
+ <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
+ <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
+ <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
+ <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
+ <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
+ <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
+ <cyclicName type="18" draft="contributed">xin-si</cyclicName>
+ <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
+ <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
+ <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
+ <cyclicName type="22" draft="contributed">yi-you</cyclicName>
+ <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
+ <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
+ <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
+ <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
+ <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
+ <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
+ <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
+ <cyclicName type="30" draft="contributed">gui-si</cyclicName>
+ <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
+ <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
+ <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
+ <cyclicName type="34" draft="contributed">ding-you</cyclicName>
+ <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
+ <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
+ <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
+ <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
+ <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
+ <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
+ <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
+ <cyclicName type="42" draft="contributed">yi-si</cyclicName>
+ <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
+ <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
+ <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
+ <cyclicName type="46" draft="contributed">ji-you</cyclicName>
+ <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
+ <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
+ <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
+ <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
+ <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
+ <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
+ <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
+ <cyclicName type="54" draft="contributed">ding-si</cyclicName>
+ <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
+ <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
+ <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
+ <cyclicName type="58" draft="contributed">xin-you</cyclicName>
+ <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
+ <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
+ </cyclicNameWidth>
+ <cyclicNameWidth type="wide">
+ <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
+ <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
+ <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
+ <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
+ <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
+ <cyclicName type="6" draft="contributed">ji-si</cyclicName>
+ <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
+ <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
+ <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
+ <cyclicName type="10" draft="contributed">gui-you</cyclicName>
+ <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
+ <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
+ <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
+ <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
+ <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
+ <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
+ <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
+ <cyclicName type="18" draft="contributed">xin-si</cyclicName>
+ <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
+ <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
+ <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
+ <cyclicName type="22" draft="contributed">yi-you</cyclicName>
+ <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
+ <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
+ <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
+ <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
+ <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
+ <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
+ <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
+ <cyclicName type="30" draft="contributed">gui-si</cyclicName>
+ <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
+ <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
+ <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
+ <cyclicName type="34" draft="contributed">ding-you</cyclicName>
+ <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
+ <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
+ <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
+ <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
+ <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
+ <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
+ <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
+ <cyclicName type="42" draft="contributed">yi-si</cyclicName>
+ <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
+ <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
+ <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
+ <cyclicName type="46" draft="contributed">ji-you</cyclicName>
+ <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
+ <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
+ <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
+ <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
+ <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
+ <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
+ <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
+ <cyclicName type="54" draft="contributed">ding-si</cyclicName>
+ <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
+ <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
+ <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
+ <cyclicName type="58" draft="contributed">xin-you</cyclicName>
+ <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
+ <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
+ </cyclicNameWidth>
+ </cyclicNameContext>
+ </cyclicNameSet>
+ <cyclicNameSet type="months">
+ <cyclicNameContext type="format">
+ <cyclicNameWidth type="abbreviated">
+ <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
+ <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
+ <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
+ <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
+ <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
+ <cyclicName type="6" draft="contributed">ji-si</cyclicName>
+ <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
+ <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
+ <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
+ <cyclicName type="10" draft="contributed">gui-you</cyclicName>
+ <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
+ <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
+ <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
+ <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
+ <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
+ <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
+ <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
+ <cyclicName type="18" draft="contributed">xin-si</cyclicName>
+ <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
+ <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
+ <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
+ <cyclicName type="22" draft="contributed">yi-you</cyclicName>
+ <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
+ <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
+ <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
+ <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
+ <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
+ <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
+ <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
+ <cyclicName type="30" draft="contributed">gui-si</cyclicName>
+ <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
+ <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
+ <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
+ <cyclicName type="34" draft="contributed">ding-you</cyclicName>
+ <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
+ <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
+ <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
+ <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
+ <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
+ <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
+ <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
+ <cyclicName type="42" draft="contributed">yi-si</cyclicName>
+ <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
+ <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
+ <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
+ <cyclicName type="46" draft="contributed">ji-you</cyclicName>
+ <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
+ <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
+ <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
+ <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
+ <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
+ <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
+ <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
+ <cyclicName type="54" draft="contributed">ding-si</cyclicName>
+ <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
+ <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
+ <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
+ <cyclicName type="58" draft="contributed">xin-you</cyclicName>
+ <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
+ <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
+ </cyclicNameWidth>
+ <cyclicNameWidth type="narrow">
+ <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
+ <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
+ <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
+ <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
+ <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
+ <cyclicName type="6" draft="contributed">ji-si</cyclicName>
+ <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
+ <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
+ <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
+ <cyclicName type="10" draft="contributed">gui-you</cyclicName>
+ <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
+ <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
+ <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
+ <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
+ <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
+ <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
+ <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
+ <cyclicName type="18" draft="contributed">xin-si</cyclicName>
+ <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
+ <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
+ <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
+ <cyclicName type="22" draft="contributed">yi-you</cyclicName>
+ <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
+ <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
+ <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
+ <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
+ <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
+ <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
+ <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
+ <cyclicName type="30" draft="contributed">gui-si</cyclicName>
+ <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
+ <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
+ <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
+ <cyclicName type="34" draft="contributed">ding-you</cyclicName>
+ <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
+ <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
+ <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
+ <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
+ <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
+ <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
+ <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
+ <cyclicName type="42" draft="contributed">yi-si</cyclicName>
+ <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
+ <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
+ <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
+ <cyclicName type="46" draft="contributed">ji-you</cyclicName>
+ <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
+ <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
+ <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
+ <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
+ <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
+ <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
+ <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
+ <cyclicName type="54" draft="contributed">ding-si</cyclicName>
+ <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
+ <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
+ <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
+ <cyclicName type="58" draft="contributed">xin-you</cyclicName>
+ <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
+ <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
+ </cyclicNameWidth>
+ <cyclicNameWidth type="wide">
+ <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
+ <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
+ <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
+ <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
+ <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
+ <cyclicName type="6" draft="contributed">ji-si</cyclicName>
+ <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
+ <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
+ <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
+ <cyclicName type="10" draft="contributed">gui-you</cyclicName>
+ <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
+ <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
+ <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
+ <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
+ <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
+ <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
+ <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
+ <cyclicName type="18" draft="contributed">xin-si</cyclicName>
+ <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
+ <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
+ <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
+ <cyclicName type="22" draft="contributed">yi-you</cyclicName>
+ <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
+ <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
+ <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
+ <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
+ <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
+ <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
+ <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
+ <cyclicName type="30" draft="contributed">gui-si</cyclicName>
+ <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
+ <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
+ <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
+ <cyclicName type="34" draft="contributed">ding-you</cyclicName>
+ <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
+ <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
+ <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
+ <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
+ <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
+ <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
+ <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
+ <cyclicName type="42" draft="contributed">yi-si</cyclicName>
+ <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
+ <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
+ <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
+ <cyclicName type="46" draft="contributed">ji-you</cyclicName>
+ <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
+ <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
+ <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
+ <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
+ <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
+ <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
+ <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
+ <cyclicName type="54" draft="contributed">ding-si</cyclicName>
+ <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
+ <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
+ <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
+ <cyclicName type="58" draft="contributed">xin-you</cyclicName>
+ <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
+ <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
+ </cyclicNameWidth>
+ </cyclicNameContext>
+ </cyclicNameSet>
+ <cyclicNameSet type="solarTerms">
+ <cyclicNameContext type="format">
+ <cyclicNameWidth type="abbreviated">
+ <cyclicName type="1" draft="contributed">vårstart</cyclicName>
+ <cyclicName type="2" draft="contributed">regnvann</cyclicName>
+ <cyclicName type="3" draft="contributed">insekter våkner</cyclicName>
+ <cyclicName type="4" draft="contributed">vårjevndøgn</cyclicName>
+ <cyclicName type="5" draft="contributed">lyst og klart</cyclicName>
+ <cyclicName type="6" draft="contributed">kornregn</cyclicName>
+ <cyclicName type="7" draft="contributed">sommerstart</cyclicName>
+ <cyclicName type="8" draft="contributed">tidl. korn</cyclicName>
+ <cyclicName type="9" draft="contributed">korn i aks</cyclicName>
+ <cyclicName type="10" draft="contributed">sommersolverv</cyclicName>
+ <cyclicName type="11" draft="contributed">liten varme</cyclicName>
+ <cyclicName type="12" draft="contributed">stor varme</cyclicName>
+ <cyclicName type="13" draft="contributed">høststart</cyclicName>
+ <cyclicName type="14" draft="contributed">varmeslutt</cyclicName>
+ <cyclicName type="15" draft="contributed">hvit dugg</cyclicName>
+ <cyclicName type="16" draft="contributed">høstjevndøgn</cyclicName>
+ <cyclicName type="17" draft="contributed">kalddugg</cyclicName>
+ <cyclicName type="18" draft="contributed">første frost</cyclicName>
+ <cyclicName type="19" draft="contributed">vinterstart</cyclicName>
+ <cyclicName type="20" draft="contributed">litt snø</cyclicName>
+ <cyclicName type="21" draft="contributed">mye snø</cyclicName>
+ <cyclicName type="22" draft="contributed">vintersolverv</cyclicName>
+ <cyclicName type="23" draft="contributed">liten kulde</cyclicName>
+ <cyclicName type="24" draft="contributed">stor kulde</cyclicName>
+ </cyclicNameWidth>
+ <cyclicNameWidth type="narrow">
+ <cyclicName type="1" draft="contributed">vårstart</cyclicName>
+ <cyclicName type="2" draft="contributed">regnvann</cyclicName>
+ <cyclicName type="3" draft="contributed">insekter våkner</cyclicName>
+ <cyclicName type="4" draft="contributed">vårjevndøgn</cyclicName>
+ <cyclicName type="5" draft="contributed">lyst og klart</cyclicName>
+ <cyclicName type="6" draft="contributed">kornregn</cyclicName>
+ <cyclicName type="7" draft="contributed">sommerstart</cyclicName>
+ <cyclicName type="8" draft="contributed">tidl. korn</cyclicName>
+ <cyclicName type="9" draft="contributed">korn i aks</cyclicName>
+ <cyclicName type="10" draft="contributed">sommersolverv</cyclicName>
+ <cyclicName type="11" draft="contributed">liten varme</cyclicName>
+ <cyclicName type="12" draft="contributed">stor varme</cyclicName>
+ <cyclicName type="13" draft="contributed">høststart</cyclicName>
+ <cyclicName type="14" draft="contributed">varmeslutt</cyclicName>
+ <cyclicName type="15" draft="contributed">hvit dugg</cyclicName>
+ <cyclicName type="16" draft="contributed">høstjevndøgn</cyclicName>
+ <cyclicName type="17" draft="contributed">kalddugg</cyclicName>
+ <cyclicName type="18" draft="contributed">første frost</cyclicName>
+ <cyclicName type="19" draft="contributed">vinterstart</cyclicName>
+ <cyclicName type="20" draft="contributed">litt snø</cyclicName>
+ <cyclicName type="21" draft="contributed">mye snø</cyclicName>
+ <cyclicName type="22" draft="contributed">vintersolverv</cyclicName>
+ <cyclicName type="23" draft="contributed">liten kulde</cyclicName>
+ <cyclicName type="24" draft="contributed">stor kulde</cyclicName>
+ </cyclicNameWidth>
+ <cyclicNameWidth type="wide">
+ <cyclicName type="1" draft="contributed">vårstart</cyclicName>
+ <cyclicName type="2" draft="contributed">regnvann</cyclicName>
+ <cyclicName type="3" draft="contributed">insekter våkner</cyclicName>
+ <cyclicName type="4" draft="contributed">vårjevndøgn</cyclicName>
+ <cyclicName type="5" draft="contributed">lyst og klart</cyclicName>
+ <cyclicName type="6" draft="contributed">kornregn</cyclicName>
+ <cyclicName type="7" draft="contributed">sommerstart</cyclicName>
+ <cyclicName type="8" draft="contributed">tidl. korn</cyclicName>
+ <cyclicName type="9" draft="contributed">korn i aks</cyclicName>
+ <cyclicName type="10" draft="contributed">sommersolverv</cyclicName>
+ <cyclicName type="11" draft="contributed">liten varme</cyclicName>
+ <cyclicName type="12" draft="contributed">stor varme</cyclicName>
+ <cyclicName type="13" draft="contributed">høststart</cyclicName>
+ <cyclicName type="14" draft="contributed">varmeslutt</cyclicName>
+ <cyclicName type="15" draft="contributed">hvit dugg</cyclicName>
+ <cyclicName type="16" draft="contributed">høstjevndøgn</cyclicName>
+ <cyclicName type="17" draft="contributed">kalddugg</cyclicName>
+ <cyclicName type="18" draft="contributed">første frost</cyclicName>
+ <cyclicName type="19" draft="contributed">vinterstart</cyclicName>
+ <cyclicName type="20" draft="contributed">litt snø</cyclicName>
+ <cyclicName type="21" draft="contributed">mye snø</cyclicName>
+ <cyclicName type="22" draft="contributed">vintersolverv</cyclicName>
+ <cyclicName type="23" draft="contributed">liten kulde</cyclicName>
+ <cyclicName type="24" draft="contributed">stor kulde</cyclicName>
+ </cyclicNameWidth>
+ </cyclicNameContext>
+ </cyclicNameSet>
+ <cyclicNameSet type="years">
+ <cyclicNameContext type="format">
+ <cyclicNameWidth type="abbreviated">
+ <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
+ <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
+ <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
+ <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
+ <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
+ <cyclicName type="6" draft="contributed">ji-si</cyclicName>
+ <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
+ <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
+ <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
+ <cyclicName type="10" draft="contributed">gui-you</cyclicName>
+ <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
+ <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
+ <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
+ <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
+ <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
+ <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
+ <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
+ <cyclicName type="18" draft="contributed">xin-si</cyclicName>
+ <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
+ <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
+ <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
+ <cyclicName type="22" draft="contributed">yi-you</cyclicName>
+ <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
+ <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
+ <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
+ <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
+ <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
+ <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
+ <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
+ <cyclicName type="30" draft="contributed">gui-si</cyclicName>
+ <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
+ <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
+ <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
+ <cyclicName type="34" draft="contributed">ding-you</cyclicName>
+ <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
+ <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
+ <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
+ <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
+ <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
+ <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
+ <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
+ <cyclicName type="42" draft="contributed">yi-si</cyclicName>
+ <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
+ <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
+ <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
+ <cyclicName type="46" draft="contributed">ji-you</cyclicName>
+ <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
+ <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
+ <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
+ <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
+ <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
+ <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
+ <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
+ <cyclicName type="54" draft="contributed">ding-si</cyclicName>
+ <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
+ <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
+ <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
+ <cyclicName type="58" draft="contributed">xin-you</cyclicName>
+ <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
+ <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
+ </cyclicNameWidth>
+ <cyclicNameWidth type="narrow">
+ <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
+ <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
+ <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
+ <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
+ <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
+ <cyclicName type="6" draft="contributed">ji-si</cyclicName>
+ <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
+ <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
+ <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
+ <cyclicName type="10" draft="contributed">gui-you</cyclicName>
+ <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
+ <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
+ <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
+ <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
+ <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
+ <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
+ <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
+ <cyclicName type="18" draft="contributed">xin-si</cyclicName>
+ <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
+ <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
+ <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
+ <cyclicName type="22" draft="contributed">yi-you</cyclicName>
+ <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
+ <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
+ <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
+ <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
+ <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
+ <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
+ <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
+ <cyclicName type="30" draft="contributed">gui-si</cyclicName>
+ <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
+ <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
+ <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
+ <cyclicName type="34" draft="contributed">ding-you</cyclicName>
+ <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
+ <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
+ <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
+ <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
+ <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
+ <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
+ <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
+ <cyclicName type="42" draft="contributed">yi-si</cyclicName>
+ <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
+ <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
+ <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
+ <cyclicName type="46" draft="contributed">ji-you</cyclicName>
+ <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
+ <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
+ <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
+ <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
+ <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
+ <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
+ <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
+ <cyclicName type="54" draft="contributed">ding-si</cyclicName>
+ <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
+ <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
+ <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
+ <cyclicName type="58" draft="contributed">xin-you</cyclicName>
+ <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
+ <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
+ </cyclicNameWidth>
+ <cyclicNameWidth type="wide">
+ <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
+ <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
+ <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
+ <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
+ <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
+ <cyclicName type="6" draft="contributed">ji-si</cyclicName>
+ <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
+ <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
+ <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
+ <cyclicName type="10" draft="contributed">gui-you</cyclicName>
+ <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
+ <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
+ <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
+ <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
+ <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
+ <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
+ <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
+ <cyclicName type="18" draft="contributed">xin-si</cyclicName>
+ <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
+ <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
+ <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
+ <cyclicName type="22" draft="contributed">yi-you</cyclicName>
+ <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
+ <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
+ <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
+ <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
+ <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
+ <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
+ <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
+ <cyclicName type="30" draft="contributed">gui-si</cyclicName>
+ <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
+ <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
+ <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
+ <cyclicName type="34" draft="contributed">ding-you</cyclicName>
+ <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
+ <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
+ <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
+ <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
+ <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
+ <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
+ <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
+ <cyclicName type="42" draft="contributed">yi-si</cyclicName>
+ <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
+ <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
+ <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
+ <cyclicName type="46" draft="contributed">ji-you</cyclicName>
+ <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
+ <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
+ <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
+ <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
+ <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
+ <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
+ <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
+ <cyclicName type="54" draft="contributed">ding-si</cyclicName>
+ <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
+ <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
+ <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
+ <cyclicName type="58" draft="contributed">xin-you</cyclicName>
+ <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
+ <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
+ </cyclicNameWidth>
+ </cyclicNameContext>
+ </cyclicNameSet>
+ <cyclicNameSet type="zodiacs">
+ <cyclicNameContext type="format">
+ <cyclicNameWidth type="abbreviated">
+ <cyclicName type="1" draft="contributed">zi</cyclicName>
+ <cyclicName type="2" draft="contributed">chou</cyclicName>
+ <cyclicName type="3" draft="contributed">yin</cyclicName>
+ <cyclicName type="4" draft="contributed">mao</cyclicName>
+ <cyclicName type="5" draft="contributed">chen</cyclicName>
+ <cyclicName type="6" draft="contributed">si</cyclicName>
+ <cyclicName type="7" draft="contributed">wu</cyclicName>
+ <cyclicName type="8" draft="contributed">wei</cyclicName>
+ <cyclicName type="9" draft="contributed">shen</cyclicName>
+ <cyclicName type="10" draft="contributed">you</cyclicName>
+ <cyclicName type="11" draft="contributed">xu</cyclicName>
+ <cyclicName type="12" draft="contributed">hai</cyclicName>
+ </cyclicNameWidth>
+ <cyclicNameWidth type="narrow">
+ <cyclicName type="1" draft="contributed">zi</cyclicName>
+ <cyclicName type="2" draft="contributed">chou</cyclicName>
+ <cyclicName type="3" draft="contributed">yin</cyclicName>
+ <cyclicName type="4" draft="contributed">mao</cyclicName>
+ <cyclicName type="5" draft="contributed">chen</cyclicName>
+ <cyclicName type="6" draft="contributed">si</cyclicName>
+ <cyclicName type="7" draft="contributed">wu</cyclicName>
+ <cyclicName type="8" draft="contributed">wei</cyclicName>
+ <cyclicName type="9" draft="contributed">shen</cyclicName>
+ <cyclicName type="10" draft="contributed">you</cyclicName>
+ <cyclicName type="11" draft="contributed">xu</cyclicName>
+ <cyclicName type="12" draft="contributed">hai</cyclicName>
+ </cyclicNameWidth>
+ <cyclicNameWidth type="wide">
+ <cyclicName type="1" draft="contributed">zi</cyclicName>
+ <cyclicName type="2" draft="contributed">chou</cyclicName>
+ <cyclicName type="3" draft="contributed">yin</cyclicName>
+ <cyclicName type="4" draft="contributed">mao</cyclicName>
+ <cyclicName type="5" draft="contributed">chen</cyclicName>
+ <cyclicName type="6" draft="contributed">si</cyclicName>
+ <cyclicName type="7" draft="contributed">wu</cyclicName>
+ <cyclicName type="8" draft="contributed">wei</cyclicName>
+ <cyclicName type="9" draft="contributed">shen</cyclicName>
+ <cyclicName type="10" draft="contributed">you</cyclicName>
+ <cyclicName type="11" draft="contributed">xu</cyclicName>
+ <cyclicName type="12" draft="contributed">hai</cyclicName>
+ </cyclicNameWidth>
+ </cyclicNameContext>
+ </cyclicNameSet>
+ </cyclicNameSets>
+ <dateFormats>
+ <dateFormatLength type="full">
+ <dateFormat>
+ <pattern draft="contributed">EEEE d. MMMM r(U)</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="long">
+ <dateFormat>
+ <pattern draft="contributed">d. MMMM r(U)</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="medium">
+ <dateFormat>
+ <pattern draft="contributed">d. MMM r</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="short">
+ <dateFormat>
+ <pattern draft="contributed">d.M.r</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ </dateFormats>
+ <dateTimeFormats>
+ <dateTimeFormatLength type="full">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="long">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="medium">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="short">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <availableFormats>
+ <dateFormatItem id="d" draft="contributed">d.</dateFormatItem>
+ <dateFormatItem id="E" draft="contributed">ccc</dateFormatItem>
+ <dateFormatItem id="Ed" draft="contributed">E d.</dateFormatItem>
+ <dateFormatItem id="Gy" draft="contributed">r(U)</dateFormatItem>
+ <dateFormatItem id="GyMMM" draft="contributed">MMM r(U)</dateFormatItem>
+ <dateFormatItem id="GyMMMd" draft="contributed">d. MMM r</dateFormatItem>
+ <dateFormatItem id="GyMMMEd" draft="contributed">E d. MMM r(U)</dateFormatItem>
+ <dateFormatItem id="h" draft="contributed">h a</dateFormatItem>
+ <dateFormatItem id="H" draft="contributed">HH</dateFormatItem>
+ <dateFormatItem id="M" draft="contributed">L.</dateFormatItem>
+ <dateFormatItem id="Md" draft="contributed">dd.MM</dateFormatItem>
+ <dateFormatItem id="MEd" draft="contributed">E dd.MM.</dateFormatItem>
+ <dateFormatItem id="MMM" draft="contributed">LLL</dateFormatItem>
+ <dateFormatItem id="MMMd" draft="contributed">d. MMM</dateFormatItem>
+ <dateFormatItem id="MMMEd" draft="contributed">E d. MMM</dateFormatItem>
+ <dateFormatItem id="MMMMd" draft="contributed">d. MMMM</dateFormatItem>
+ <dateFormatItem id="UM" draft="contributed">MM. U</dateFormatItem>
+ <dateFormatItem id="UMd" draft="contributed">d.MM. U</dateFormatItem>
+ <dateFormatItem id="UMMM" draft="contributed">MMM U</dateFormatItem>
+ <dateFormatItem id="UMMMd" draft="contributed">d. MMM U</dateFormatItem>
+ <dateFormatItem id="y" draft="contributed">r(U)</dateFormatItem>
+ <dateFormatItem id="yMd" draft="contributed">dd.MM.r</dateFormatItem>
+ <dateFormatItem id="yyyy" draft="contributed">r(U)</dateFormatItem>
+ <dateFormatItem id="yyyyM" draft="contributed">MM.r</dateFormatItem>
+ <dateFormatItem id="yyyyMd" draft="contributed">dd.MM.r</dateFormatItem>
+ <dateFormatItem id="yyyyMEd" draft="contributed">E dd.MM.r</dateFormatItem>
+ <dateFormatItem id="yyyyMMM" draft="contributed">MMM r(U)</dateFormatItem>
+ <dateFormatItem id="yyyyMMMd" draft="contributed">d. MMM r</dateFormatItem>
+ <dateFormatItem id="yyyyMMMEd" draft="contributed">E d. MMM r(U)</dateFormatItem>
+ <dateFormatItem id="yyyyMMMM" draft="contributed">MMMM r(U)</dateFormatItem>
+ <dateFormatItem id="yyyyQQQ" draft="contributed">QQQ r(U)</dateFormatItem>
+ <dateFormatItem id="yyyyQQQQ" draft="contributed">QQQQ r(U)</dateFormatItem>
+ </availableFormats>
+ <intervalFormats>
+ <intervalFormatFallback draft="contributed">{0}–{1}</intervalFormatFallback>
+ <intervalFormatItem id="d">
+ <greatestDifference id="d" draft="contributed">d.–d.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="h">
+ <greatestDifference id="a" draft="contributed">h a–h a</greatestDifference>
+ <greatestDifference id="h" draft="contributed">h–h a</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="H">
+ <greatestDifference id="H" draft="contributed">HH–HH</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="hm">
+ <greatestDifference id="a" draft="contributed">h:mm a–h:mm a</greatestDifference>
+ <greatestDifference id="h" draft="contributed">h:mm–h:mm a</greatestDifference>
+ <greatestDifference id="m" draft="contributed">h:mm–h:mm a</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Hm">
+ <greatestDifference id="H" draft="contributed">HH:mm–HH:mm</greatestDifference>
+ <greatestDifference id="m" draft="contributed">HH:mm–HH:mm</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="hmv">
+ <greatestDifference id="a" draft="contributed">h:mm a–h:mm a v</greatestDifference>
+ <greatestDifference id="h" draft="contributed">h:mm–h:mm a v</greatestDifference>
+ <greatestDifference id="m" draft="contributed">h:mm–h:mm a v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Hmv">
+ <greatestDifference id="H" draft="contributed">HH:mm–HH:mm v</greatestDifference>
+ <greatestDifference id="m" draft="contributed">HH:mm–HH:mm v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="hv">
+ <greatestDifference id="a" draft="contributed">h a–h a v</greatestDifference>
+ <greatestDifference id="h" draft="contributed">h–h a v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Hv">
+ <greatestDifference id="H" draft="contributed">HH–HH v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="M">
+ <greatestDifference id="M" draft="contributed">MM.–MM.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Md">
+ <greatestDifference id="d" draft="contributed">dd.MM.–dd.MM.</greatestDifference>
+ <greatestDifference id="M" draft="contributed">dd.MM.–dd.MM.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MEd">
+ <greatestDifference id="d" draft="contributed">dd.MM.E–dd.MM.E</greatestDifference>
+ <greatestDifference id="M" draft="contributed">dd.MM.E–dd.MM.E</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMM">
+ <greatestDifference id="M" draft="contributed">LLL–LLL</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMMd">
+ <greatestDifference id="d" draft="contributed">d.–d. MMM</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d. MMM–d. MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMMEd">
+ <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="y">
+ <greatestDifference id="y" draft="contributed">U–U</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yM">
+ <greatestDifference id="M" draft="contributed">MM.y–MM.y</greatestDifference>
+ <greatestDifference id="y" draft="contributed">MM.y–MM.y</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMd">
+ <greatestDifference id="d" draft="contributed">dd.MM.y–dd.MM.y</greatestDifference>
+ <greatestDifference id="M" draft="contributed">dd.MM.y–dd.MM.y</greatestDifference>
+ <greatestDifference id="y" draft="contributed">dd.MM.y–dd.MM.y</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMEd">
+ <greatestDifference id="d" draft="contributed">E dd.MM.y–E dd.MM.y</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E dd.MM.y–E dd.MM.y</greatestDifference>
+ <greatestDifference id="y" draft="contributed">E dd.MM.y–E dd.MM.y</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMM">
+ <greatestDifference id="M" draft="contributed">MMM–MMM U</greatestDifference>
+ <greatestDifference id="y" draft="contributed">MMM U–MMM U</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMd">
+ <greatestDifference id="d" draft="contributed">d.–d. U MMM</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d. MMM–d. MMM U</greatestDifference>
+ <greatestDifference id="y" draft="contributed">d. MMM U–d. MMM U</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMEd">
+ <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM U</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM U</greatestDifference>
+ <greatestDifference id="y" draft="contributed">E d. MMM U–E d. MMM U</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMM">
+ <greatestDifference id="M" draft="contributed">MMMM–MMMM U</greatestDifference>
+ <greatestDifference id="y" draft="contributed">MMMM U–MMMM U</greatestDifference>
+ </intervalFormatItem>
+ </intervalFormats>
+ </dateTimeFormats>
+ </calendar>
+ <calendar type="coptic">
+ <months>
+ <monthContext type="format">
+ <monthWidth type="abbreviated">
+ <month type="1">tout</month>
+ <month type="2">baba</month>
+ <month type="3">hator</month>
+ <month type="4">kiahk</month>
+ <month type="5">toba</month>
+ <month type="6">amshir</month>
+ <month type="7">baramhat</month>
+ <month type="8">baramouda</month>
+ <month type="9">bashans</month>
+ <month type="10">paona</month>
+ <month type="11">epep</month>
+ <month type="12">mesra</month>
+ <month type="13">nasie</month>
+ </monthWidth>
+ <monthWidth type="narrow">
+ <month type="1">1</month>
+ <month type="2">2</month>
+ <month type="3">3</month>
+ <month type="4">4</month>
+ <month type="5">5</month>
+ <month type="6">6</month>
+ <month type="7">7</month>
+ <month type="8">8</month>
+ <month type="9">9</month>
+ <month type="10">10</month>
+ <month type="11">11</month>
+ <month type="12">12</month>
+ <month type="13">13</month>
+ </monthWidth>
+ <monthWidth type="wide">
+ <month type="1">tout</month>
+ <month type="2">baba</month>
+ <month type="3">hator</month>
+ <month type="4">kiahk</month>
+ <month type="5">toba</month>
+ <month type="6">amshir</month>
+ <month type="7">baramhat</month>
+ <month type="8">baramouda</month>
+ <month type="9">bashans</month>
+ <month type="10">paona</month>
+ <month type="11">epep</month>
+ <month type="12">mesra</month>
+ <month type="13">nasie</month>
+ </monthWidth>
+ </monthContext>
+ <monthContext type="stand-alone">
+ <monthWidth type="abbreviated">
+ <month type="1">tout</month>
+ <month type="2">baba</month>
+ <month type="3">hator</month>
+ <month type="4">kiahk</month>
+ <month type="5">toba</month>
+ <month type="6">amshir</month>
+ <month type="7">baramhat</month>
+ <month type="8">baramouda</month>
+ <month type="9">bashans</month>
+ <month type="10">paona</month>
+ <month type="11">epep</month>
+ <month type="12">mesra</month>
+ <month type="13">nasie</month>
+ </monthWidth>
+ <monthWidth type="narrow">
+ <month type="1">1</month>
+ <month type="2">2</month>
+ <month type="3">3</month>
+ <month type="4">4</month>
+ <month type="5">5</month>
+ <month type="6">6</month>
+ <month type="7">7</month>
+ <month type="8">8</month>
+ <month type="9">9</month>
+ <month type="10">10</month>
+ <month type="11">11</month>
+ <month type="12">12</month>
+ <month type="13">13</month>
+ </monthWidth>
+ <monthWidth type="wide">
+ <month type="1">tout</month>
+ <month type="2">baba</month>
+ <month type="3">hator</month>
+ <month type="4">kiahk</month>
+ <month type="5">toba</month>
+ <month type="6">amshir</month>
+ <month type="7">baramhat</month>
+ <month type="8">baramouda</month>
+ <month type="9">bashans</month>
+ <month type="10">paona</month>
+ <month type="11">epep</month>
+ <month type="12">mesra</month>
+ <month type="13">nasie</month>
+ </monthWidth>
+ </monthContext>
+ </months>
+ <eras>
+ <eraNames>
+ <era type="0">0. tidsalder</era>
+ <era type="1">1. tidsalder</era>
+ </eraNames>
+ <eraAbbr>
+ <era type="0">0. t.a.</era>
+ <era type="1">1. t.a.</era>
+ </eraAbbr>
+ <eraNarrow>
+ <era type="0">TA0</era>
+ <era type="1">TA1</era>
+ </eraNarrow>
+ </eras>
+ <dateFormats>
+ <dateFormatLength type="full">
+ <dateFormat>
+ <pattern draft="contributed">EEEE d. MMMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="long">
+ <dateFormat>
+ <pattern draft="contributed">d. MMMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="medium">
+ <dateFormat>
+ <pattern draft="contributed">d. MMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="short">
+ <dateFormat>
+ <pattern draft="contributed">d.M.y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ </dateFormats>
+ <dateTimeFormats>
+ <dateTimeFormatLength type="full">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="long">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="medium">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="short">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <availableFormats>
+ <dateFormatItem id="d" draft="contributed">d.</dateFormatItem>
+ <dateFormatItem id="E" draft="contributed">ccc</dateFormatItem>
+ <dateFormatItem id="Ed" draft="contributed">E d.</dateFormatItem>
+ <dateFormatItem id="Gy" draft="contributed">y G</dateFormatItem>
+ <dateFormatItem id="GyMMM" draft="contributed">MMM y G</dateFormatItem>
+ <dateFormatItem id="GyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
+ <dateFormatItem id="GyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
+ <dateFormatItem id="M" draft="contributed">L.</dateFormatItem>
+ <dateFormatItem id="Md" draft="contributed">d.M.</dateFormatItem>
+ <dateFormatItem id="MEd" draft="contributed">E d.M</dateFormatItem>
+ <dateFormatItem id="MMdd" draft="contributed">d.M.</dateFormatItem>
+ <dateFormatItem id="MMM" draft="contributed">LLL</dateFormatItem>
+ <dateFormatItem id="MMMd" draft="contributed">d. MMM</dateFormatItem>
+ <dateFormatItem id="MMMEd" draft="contributed">E d. MMM</dateFormatItem>
+ <dateFormatItem id="MMMMd" draft="contributed">d. MMMM</dateFormatItem>
+ <dateFormatItem id="y" draft="contributed">y G</dateFormatItem>
+ <dateFormatItem id="yyyy" draft="contributed">y G</dateFormatItem>
+ <dateFormatItem id="yyyyM" draft="contributed">M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMd" draft="contributed">d.M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMEd" draft="contributed">E d.M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMM" draft="contributed">MM.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMM" draft="contributed">MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMM" draft="contributed">MMMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyQQQ" draft="contributed">QQQ y G</dateFormatItem>
+ <dateFormatItem id="yyyyQQQQ" draft="contributed">QQQQ y G</dateFormatItem>
+ </availableFormats>
+ <intervalFormats>
+ <intervalFormatFallback draft="contributed">{0}–{1}</intervalFormatFallback>
+ <intervalFormatItem id="d">
+ <greatestDifference id="d" draft="contributed">d.–d.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="h">
+ <greatestDifference id="a" draft="contributed">h a–h a</greatestDifference>
+ <greatestDifference id="h" draft="contributed">h–h a</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="H">
+ <greatestDifference id="H" draft="contributed">HH–HH</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="hv">
+ <greatestDifference id="a" draft="contributed">h a–h a v</greatestDifference>
+ <greatestDifference id="h" draft="contributed">h–h a v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Hv">
+ <greatestDifference id="H" draft="contributed">HH–HH v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="M">
+ <greatestDifference id="M" draft="contributed">M.–M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Md">
+ <greatestDifference id="d" draft="contributed">d.M.–d.M.</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d.M.–d.M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MEd">
+ <greatestDifference id="d" draft="contributed">E d.M.–E d.M.</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d.M.–E d.M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMM">
+ <greatestDifference id="M" draft="contributed">MMM–MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMMd">
+ <greatestDifference id="d" draft="contributed">d.–d. MMM</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d. MMM–d. MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMMEd">
+ <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="y">
+ <greatestDifference id="y" draft="contributed">y–y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yM">
+ <greatestDifference id="M" draft="contributed">M.y–M.y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">M.y–M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMd">
+ <greatestDifference id="d" draft="contributed">d.M.y–d.M.y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d.M.y–d.M.y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">d.M.y–d.M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMEd">
+ <greatestDifference id="d" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMM">
+ <greatestDifference id="M" draft="contributed">MMM–MMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">MMM y–MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMd">
+ <greatestDifference id="d" draft="contributed">d.–d. MMM y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d. MMM–d. MMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">d. MMM y–d. MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMEd">
+ <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">E d. MMM y–E d. MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMM">
+ <greatestDifference id="M" draft="contributed">MMMM–MMMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">MMMM y–MMMM y G</greatestDifference>
+ </intervalFormatItem>
+ </intervalFormats>
+ </dateTimeFormats>
+ </calendar>
+ <calendar type="dangi">
+ <months>
+ <monthContext type="format">
+ <monthWidth type="abbreviated">
+ <month type="1" draft="contributed">M01</month>
+ <month type="2" draft="contributed">M02</month>
+ <month type="3" draft="contributed">M03</month>
+ <month type="4" draft="contributed">M04</month>
+ <month type="5" draft="contributed">M05</month>
+ <month type="6" draft="contributed">M06</month>
+ <month type="7" draft="contributed">M07</month>
+ <month type="8" draft="contributed">M08</month>
+ <month type="9" draft="contributed">M09</month>
+ <month type="10" draft="contributed">M10</month>
+ <month type="11" draft="contributed">M11</month>
+ <month type="12" draft="contributed">M12</month>
+ </monthWidth>
+ <monthWidth type="narrow">
+ <month type="1" draft="contributed">1</month>
+ <month type="2" draft="contributed">2</month>
+ <month type="3" draft="contributed">3</month>
+ <month type="4" draft="contributed">4</month>
+ <month type="5" draft="contributed">5</month>
+ <month type="6" draft="contributed">6</month>
+ <month type="7" draft="contributed">7</month>
+ <month type="8" draft="contributed">8</month>
+ <month type="9" draft="contributed">9</month>
+ <month type="10" draft="contributed">10</month>
+ <month type="11" draft="contributed">11</month>
+ <month type="12" draft="contributed">12</month>
+ </monthWidth>
+ <monthWidth type="wide">
+ <month type="1" draft="contributed">M01</month>
+ <month type="2" draft="contributed">M02</month>
+ <month type="3" draft="contributed">M03</month>
+ <month type="4" draft="contributed">M04</month>
+ <month type="5" draft="contributed">M05</month>
+ <month type="6" draft="contributed">M06</month>
+ <month type="7" draft="contributed">M07</month>
+ <month type="8" draft="contributed">M08</month>
+ <month type="9" draft="contributed">M09</month>
+ <month type="10" draft="contributed">M10</month>
+ <month type="11" draft="contributed">M11</month>
+ <month type="12" draft="contributed">M12</month>
+ </monthWidth>
+ </monthContext>
+ <monthContext type="stand-alone">
+ <monthWidth type="abbreviated">
+ <month type="1" draft="contributed">M01</month>
+ <month type="2" draft="contributed">M02</month>
+ <month type="3" draft="contributed">M03</month>
+ <month type="4" draft="contributed">M04</month>
+ <month type="5" draft="contributed">M05</month>
+ <month type="6" draft="contributed">M06</month>
+ <month type="7" draft="contributed">M07</month>
+ <month type="8" draft="contributed">M08</month>
+ <month type="9" draft="contributed">M09</month>
+ <month type="10" draft="contributed">M10</month>
+ <month type="11" draft="contributed">M11</month>
+ <month type="12" draft="contributed">M12</month>
+ </monthWidth>
+ <monthWidth type="narrow">
+ <month type="1" draft="contributed">1</month>
+ <month type="2" draft="contributed">2</month>
+ <month type="3" draft="contributed">3</month>
+ <month type="4" draft="contributed">4</month>
+ <month type="5" draft="contributed">5</month>
+ <month type="6" draft="contributed">6</month>
+ <month type="7" draft="contributed">7</month>
+ <month type="8" draft="contributed">8</month>
+ <month type="9" draft="contributed">9</month>
+ <month type="10" draft="contributed">10</month>
+ <month type="11" draft="contributed">11</month>
+ <month type="12" draft="contributed">12</month>
+ </monthWidth>
+ <monthWidth type="wide">
+ <month type="1" draft="contributed">M01</month>
+ <month type="2" draft="contributed">M02</month>
+ <month type="3" draft="contributed">M03</month>
+ <month type="4" draft="contributed">M04</month>
+ <month type="5" draft="contributed">M05</month>
+ <month type="6" draft="contributed">M06</month>
+ <month type="7" draft="contributed">M07</month>
+ <month type="8" draft="contributed">M08</month>
+ <month type="9" draft="contributed">M09</month>
+ <month type="10" draft="contributed">M10</month>
+ <month type="11" draft="contributed">M11</month>
+ <month type="12" draft="contributed">M12</month>
+ </monthWidth>
+ </monthContext>
+ </months>
+ <monthPatterns>
+ <monthPatternContext type="format">
+ <monthPatternWidth type="abbreviated">
+ <monthPattern type="leap" draft="contributed">{0}bis</monthPattern>
+ </monthPatternWidth>
+ <monthPatternWidth type="narrow">
+ <monthPattern type="leap" draft="contributed">{0}b</monthPattern>
+ </monthPatternWidth>
+ <monthPatternWidth type="wide">
+ <monthPattern type="leap" draft="contributed">{0}bis</monthPattern>
+ </monthPatternWidth>
+ </monthPatternContext>
+ <monthPatternContext type="numeric">
+ <monthPatternWidth type="all">
+ <monthPattern type="leap" draft="contributed">{0}bis</monthPattern>
+ </monthPatternWidth>
+ </monthPatternContext>
+ <monthPatternContext type="stand-alone">
+ <monthPatternWidth type="abbreviated">
+ <monthPattern type="leap" draft="contributed">{0}bis</monthPattern>
+ </monthPatternWidth>
+ <monthPatternWidth type="narrow">
+ <monthPattern type="leap" draft="contributed">{0}b</monthPattern>
+ </monthPatternWidth>
+ <monthPatternWidth type="wide">
+ <monthPattern type="leap" draft="contributed">{0}bis</monthPattern>
+ </monthPatternWidth>
+ </monthPatternContext>
+ </monthPatterns>
+ <cyclicNameSets>
+ <cyclicNameSet type="dayParts">
+ <cyclicNameContext type="format">
+ <cyclicNameWidth type="abbreviated">
+ <cyclicName type="1" draft="contributed">zi</cyclicName>
+ <cyclicName type="2" draft="contributed">chou</cyclicName>
+ <cyclicName type="3" draft="contributed">yin</cyclicName>
+ <cyclicName type="4" draft="contributed">mao</cyclicName>
+ <cyclicName type="5" draft="contributed">chen</cyclicName>
+ <cyclicName type="6" draft="contributed">si</cyclicName>
+ <cyclicName type="7" draft="contributed">wu</cyclicName>
+ <cyclicName type="8" draft="contributed">wei</cyclicName>
+ <cyclicName type="9" draft="contributed">shen</cyclicName>
+ <cyclicName type="10" draft="contributed">you</cyclicName>
+ <cyclicName type="11" draft="contributed">xu</cyclicName>
+ <cyclicName type="12" draft="contributed">hai</cyclicName>
+ </cyclicNameWidth>
+ <cyclicNameWidth type="narrow">
+ <cyclicName type="1" draft="contributed">zi</cyclicName>
+ <cyclicName type="2" draft="contributed">chou</cyclicName>
+ <cyclicName type="3" draft="contributed">yin</cyclicName>
+ <cyclicName type="4" draft="contributed">mao</cyclicName>
+ <cyclicName type="5" draft="contributed">chen</cyclicName>
+ <cyclicName type="6" draft="contributed">si</cyclicName>
+ <cyclicName type="7" draft="contributed">wu</cyclicName>
+ <cyclicName type="8" draft="contributed">wei</cyclicName>
+ <cyclicName type="9" draft="contributed">shen</cyclicName>
+ <cyclicName type="10" draft="contributed">you</cyclicName>
+ <cyclicName type="11" draft="contributed">xu</cyclicName>
+ <cyclicName type="12" draft="contributed">hai</cyclicName>
+ </cyclicNameWidth>
+ <cyclicNameWidth type="wide">
+ <cyclicName type="1" draft="contributed">zi</cyclicName>
+ <cyclicName type="2" draft="contributed">chou</cyclicName>
+ <cyclicName type="3" draft="contributed">yin</cyclicName>
+ <cyclicName type="4" draft="contributed">mao</cyclicName>
+ <cyclicName type="5" draft="contributed">chen</cyclicName>
+ <cyclicName type="6" draft="contributed">si</cyclicName>
+ <cyclicName type="7" draft="contributed">wu</cyclicName>
+ <cyclicName type="8" draft="contributed">wei</cyclicName>
+ <cyclicName type="9" draft="contributed">shen</cyclicName>
+ <cyclicName type="10" draft="contributed">you</cyclicName>
+ <cyclicName type="11" draft="contributed">xu</cyclicName>
+ <cyclicName type="12" draft="contributed">hai</cyclicName>
+ </cyclicNameWidth>
+ </cyclicNameContext>
+ </cyclicNameSet>
+ <cyclicNameSet type="days">
+ <cyclicNameContext type="format">
+ <cyclicNameWidth type="abbreviated">
+ <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
+ <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
+ <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
+ <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
+ <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
+ <cyclicName type="6" draft="contributed">ji-si</cyclicName>
+ <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
+ <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
+ <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
+ <cyclicName type="10" draft="contributed">gui-you</cyclicName>
+ <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
+ <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
+ <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
+ <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
+ <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
+ <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
+ <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
+ <cyclicName type="18" draft="contributed">xin-si</cyclicName>
+ <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
+ <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
+ <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
+ <cyclicName type="22" draft="contributed">yi-you</cyclicName>
+ <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
+ <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
+ <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
+ <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
+ <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
+ <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
+ <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
+ <cyclicName type="30" draft="contributed">gui-si</cyclicName>
+ <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
+ <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
+ <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
+ <cyclicName type="34" draft="contributed">ding-you</cyclicName>
+ <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
+ <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
+ <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
+ <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
+ <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
+ <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
+ <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
+ <cyclicName type="42" draft="contributed">yi-si</cyclicName>
+ <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
+ <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
+ <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
+ <cyclicName type="46" draft="contributed">ji-you</cyclicName>
+ <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
+ <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
+ <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
+ <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
+ <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
+ <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
+ <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
+ <cyclicName type="54" draft="contributed">ding-si</cyclicName>
+ <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
+ <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
+ <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
+ <cyclicName type="58" draft="contributed">xin-you</cyclicName>
+ <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
+ <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
+ </cyclicNameWidth>
+ <cyclicNameWidth type="narrow">
+ <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
+ <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
+ <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
+ <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
+ <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
+ <cyclicName type="6" draft="contributed">ji-si</cyclicName>
+ <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
+ <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
+ <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
+ <cyclicName type="10" draft="contributed">gui-you</cyclicName>
+ <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
+ <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
+ <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
+ <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
+ <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
+ <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
+ <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
+ <cyclicName type="18" draft="contributed">xin-si</cyclicName>
+ <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
+ <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
+ <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
+ <cyclicName type="22" draft="contributed">yi-you</cyclicName>
+ <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
+ <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
+ <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
+ <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
+ <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
+ <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
+ <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
+ <cyclicName type="30" draft="contributed">gui-si</cyclicName>
+ <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
+ <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
+ <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
+ <cyclicName type="34" draft="contributed">ding-you</cyclicName>
+ <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
+ <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
+ <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
+ <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
+ <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
+ <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
+ <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
+ <cyclicName type="42" draft="contributed">yi-si</cyclicName>
+ <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
+ <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
+ <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
+ <cyclicName type="46" draft="contributed">ji-you</cyclicName>
+ <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
+ <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
+ <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
+ <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
+ <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
+ <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
+ <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
+ <cyclicName type="54" draft="contributed">ding-si</cyclicName>
+ <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
+ <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
+ <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
+ <cyclicName type="58" draft="contributed">xin-you</cyclicName>
+ <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
+ <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
+ </cyclicNameWidth>
+ <cyclicNameWidth type="wide">
+ <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
+ <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
+ <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
+ <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
+ <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
+ <cyclicName type="6" draft="contributed">ji-si</cyclicName>
+ <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
+ <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
+ <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
+ <cyclicName type="10" draft="contributed">gui-you</cyclicName>
+ <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
+ <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
+ <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
+ <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
+ <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
+ <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
+ <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
+ <cyclicName type="18" draft="contributed">xin-si</cyclicName>
+ <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
+ <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
+ <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
+ <cyclicName type="22" draft="contributed">yi-you</cyclicName>
+ <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
+ <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
+ <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
+ <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
+ <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
+ <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
+ <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
+ <cyclicName type="30" draft="contributed">gui-si</cyclicName>
+ <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
+ <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
+ <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
+ <cyclicName type="34" draft="contributed">ding-you</cyclicName>
+ <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
+ <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
+ <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
+ <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
+ <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
+ <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
+ <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
+ <cyclicName type="42" draft="contributed">yi-si</cyclicName>
+ <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
+ <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
+ <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
+ <cyclicName type="46" draft="contributed">ji-you</cyclicName>
+ <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
+ <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
+ <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
+ <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
+ <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
+ <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
+ <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
+ <cyclicName type="54" draft="contributed">ding-si</cyclicName>
+ <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
+ <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
+ <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
+ <cyclicName type="58" draft="contributed">xin-you</cyclicName>
+ <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
+ <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
+ </cyclicNameWidth>
+ </cyclicNameContext>
+ </cyclicNameSet>
+ <cyclicNameSet type="months">
+ <cyclicNameContext type="format">
+ <cyclicNameWidth type="abbreviated">
+ <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
+ <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
+ <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
+ <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
+ <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
+ <cyclicName type="6" draft="contributed">ji-si</cyclicName>
+ <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
+ <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
+ <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
+ <cyclicName type="10" draft="contributed">gui-you</cyclicName>
+ <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
+ <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
+ <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
+ <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
+ <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
+ <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
+ <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
+ <cyclicName type="18" draft="contributed">xin-si</cyclicName>
+ <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
+ <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
+ <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
+ <cyclicName type="22" draft="contributed">yi-you</cyclicName>
+ <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
+ <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
+ <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
+ <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
+ <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
+ <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
+ <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
+ <cyclicName type="30" draft="contributed">gui-si</cyclicName>
+ <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
+ <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
+ <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
+ <cyclicName type="34" draft="contributed">ding-you</cyclicName>
+ <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
+ <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
+ <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
+ <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
+ <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
+ <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
+ <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
+ <cyclicName type="42" draft="contributed">yi-si</cyclicName>
+ <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
+ <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
+ <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
+ <cyclicName type="46" draft="contributed">ji-you</cyclicName>
+ <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
+ <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
+ <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
+ <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
+ <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
+ <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
+ <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
+ <cyclicName type="54" draft="contributed">ding-si</cyclicName>
+ <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
+ <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
+ <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
+ <cyclicName type="58" draft="contributed">xin-you</cyclicName>
+ <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
+ <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
+ </cyclicNameWidth>
+ <cyclicNameWidth type="narrow">
+ <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
+ <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
+ <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
+ <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
+ <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
+ <cyclicName type="6" draft="contributed">ji-si</cyclicName>
+ <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
+ <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
+ <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
+ <cyclicName type="10" draft="contributed">gui-you</cyclicName>
+ <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
+ <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
+ <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
+ <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
+ <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
+ <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
+ <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
+ <cyclicName type="18" draft="contributed">xin-si</cyclicName>
+ <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
+ <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
+ <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
+ <cyclicName type="22" draft="contributed">yi-you</cyclicName>
+ <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
+ <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
+ <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
+ <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
+ <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
+ <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
+ <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
+ <cyclicName type="30" draft="contributed">gui-si</cyclicName>
+ <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
+ <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
+ <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
+ <cyclicName type="34" draft="contributed">ding-you</cyclicName>
+ <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
+ <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
+ <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
+ <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
+ <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
+ <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
+ <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
+ <cyclicName type="42" draft="contributed">yi-si</cyclicName>
+ <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
+ <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
+ <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
+ <cyclicName type="46" draft="contributed">ji-you</cyclicName>
+ <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
+ <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
+ <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
+ <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
+ <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
+ <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
+ <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
+ <cyclicName type="54" draft="contributed">ding-si</cyclicName>
+ <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
+ <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
+ <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
+ <cyclicName type="58" draft="contributed">xin-you</cyclicName>
+ <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
+ <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
+ </cyclicNameWidth>
+ <cyclicNameWidth type="wide">
+ <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
+ <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
+ <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
+ <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
+ <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
+ <cyclicName type="6" draft="contributed">ji-si</cyclicName>
+ <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
+ <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
+ <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
+ <cyclicName type="10" draft="contributed">gui-you</cyclicName>
+ <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
+ <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
+ <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
+ <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
+ <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
+ <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
+ <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
+ <cyclicName type="18" draft="contributed">xin-si</cyclicName>
+ <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
+ <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
+ <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
+ <cyclicName type="22" draft="contributed">yi-you</cyclicName>
+ <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
+ <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
+ <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
+ <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
+ <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
+ <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
+ <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
+ <cyclicName type="30" draft="contributed">gui-si</cyclicName>
+ <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
+ <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
+ <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
+ <cyclicName type="34" draft="contributed">ding-you</cyclicName>
+ <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
+ <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
+ <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
+ <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
+ <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
+ <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
+ <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
+ <cyclicName type="42" draft="contributed">yi-si</cyclicName>
+ <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
+ <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
+ <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
+ <cyclicName type="46" draft="contributed">ji-you</cyclicName>
+ <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
+ <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
+ <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
+ <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
+ <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
+ <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
+ <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
+ <cyclicName type="54" draft="contributed">ding-si</cyclicName>
+ <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
+ <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
+ <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
+ <cyclicName type="58" draft="contributed">xin-you</cyclicName>
+ <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
+ <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
+ </cyclicNameWidth>
+ </cyclicNameContext>
+ </cyclicNameSet>
+ <cyclicNameSet type="solarTerms">
+ <cyclicNameContext type="format">
+ <cyclicNameWidth type="abbreviated">
+ <cyclicName type="1" draft="contributed">vårstart</cyclicName>
+ <cyclicName type="2" draft="contributed">regnvann</cyclicName>
+ <cyclicName type="3" draft="contributed">insekter våkner</cyclicName>
+ <cyclicName type="4" draft="contributed">vårjevndøgn</cyclicName>
+ <cyclicName type="5" draft="contributed">lyst og klart</cyclicName>
+ <cyclicName type="6" draft="contributed">kornregn</cyclicName>
+ <cyclicName type="7" draft="contributed">sommerstart</cyclicName>
+ <cyclicName type="8" draft="contributed">tidl. korn</cyclicName>
+ <cyclicName type="9" draft="contributed">korn i aks</cyclicName>
+ <cyclicName type="10" draft="contributed">sommersolverv</cyclicName>
+ <cyclicName type="11" draft="contributed">liten varme</cyclicName>
+ <cyclicName type="12" draft="contributed">stor varme</cyclicName>
+ <cyclicName type="13" draft="contributed">høststart</cyclicName>
+ <cyclicName type="14" draft="contributed">varmeslutt</cyclicName>
+ <cyclicName type="15" draft="contributed">hvit dugg</cyclicName>
+ <cyclicName type="16" draft="contributed">høstjevndøgn</cyclicName>
+ <cyclicName type="17" draft="contributed">kalddugg</cyclicName>
+ <cyclicName type="18" draft="contributed">første frost</cyclicName>
+ <cyclicName type="19" draft="contributed">vinterstart</cyclicName>
+ <cyclicName type="20" draft="contributed">litt snø</cyclicName>
+ <cyclicName type="21" draft="contributed">mye snø</cyclicName>
+ <cyclicName type="22" draft="contributed">vintersolverv</cyclicName>
+ <cyclicName type="23" draft="contributed">liten kulde</cyclicName>
+ <cyclicName type="24" draft="contributed">stor kulde</cyclicName>
+ </cyclicNameWidth>
+ <cyclicNameWidth type="narrow">
+ <cyclicName type="1" draft="contributed">vårstart</cyclicName>
+ <cyclicName type="2" draft="contributed">regnvann</cyclicName>
+ <cyclicName type="3" draft="contributed">insekter våkner</cyclicName>
+ <cyclicName type="4" draft="contributed">vårjevndøgn</cyclicName>
+ <cyclicName type="5" draft="contributed">lyst og klart</cyclicName>
+ <cyclicName type="6" draft="contributed">kornregn</cyclicName>
+ <cyclicName type="7" draft="contributed">sommerstart</cyclicName>
+ <cyclicName type="8" draft="contributed">tidl. korn</cyclicName>
+ <cyclicName type="9" draft="contributed">korn i aks</cyclicName>
+ <cyclicName type="10" draft="contributed">sommersolverv</cyclicName>
+ <cyclicName type="11" draft="contributed">liten varme</cyclicName>
+ <cyclicName type="12" draft="contributed">stor varme</cyclicName>
+ <cyclicName type="13" draft="contributed">høststart</cyclicName>
+ <cyclicName type="14" draft="contributed">varmeslutt</cyclicName>
+ <cyclicName type="15" draft="contributed">hvit dugg</cyclicName>
+ <cyclicName type="16" draft="contributed">høstjevndøgn</cyclicName>
+ <cyclicName type="17" draft="contributed">kalddugg</cyclicName>
+ <cyclicName type="18" draft="contributed">første frost</cyclicName>
+ <cyclicName type="19" draft="contributed">vinterstart</cyclicName>
+ <cyclicName type="20" draft="contributed">litt snø</cyclicName>
+ <cyclicName type="21" draft="contributed">mye snø</cyclicName>
+ <cyclicName type="22" draft="contributed">vintersolverv</cyclicName>
+ <cyclicName type="23" draft="contributed">liten kulde</cyclicName>
+ <cyclicName type="24" draft="contributed">stor kulde</cyclicName>
+ </cyclicNameWidth>
+ <cyclicNameWidth type="wide">
+ <cyclicName type="1" draft="contributed">vårstart</cyclicName>
+ <cyclicName type="2" draft="contributed">regnvann</cyclicName>
+ <cyclicName type="3" draft="contributed">insekter våkner</cyclicName>
+ <cyclicName type="4" draft="contributed">vårjevndøgn</cyclicName>
+ <cyclicName type="5" draft="contributed">lyst og klart</cyclicName>
+ <cyclicName type="6" draft="contributed">kornregn</cyclicName>
+ <cyclicName type="7" draft="contributed">sommerstart</cyclicName>
+ <cyclicName type="8" draft="contributed">tidl. korn</cyclicName>
+ <cyclicName type="9" draft="contributed">korn i aks</cyclicName>
+ <cyclicName type="10" draft="contributed">sommersolverv</cyclicName>
+ <cyclicName type="11" draft="contributed">liten varme</cyclicName>
+ <cyclicName type="12" draft="contributed">stor varme</cyclicName>
+ <cyclicName type="13" draft="contributed">høststart</cyclicName>
+ <cyclicName type="14" draft="contributed">varmeslutt</cyclicName>
+ <cyclicName type="15" draft="contributed">hvit dugg</cyclicName>
+ <cyclicName type="16" draft="contributed">høstjevndøgn</cyclicName>
+ <cyclicName type="17" draft="contributed">kalddugg</cyclicName>
+ <cyclicName type="18" draft="contributed">første frost</cyclicName>
+ <cyclicName type="19" draft="contributed">vinterstart</cyclicName>
+ <cyclicName type="20" draft="contributed">litt snø</cyclicName>
+ <cyclicName type="21" draft="contributed">mye snø</cyclicName>
+ <cyclicName type="22" draft="contributed">vintersolverv</cyclicName>
+ <cyclicName type="23" draft="contributed">liten kulde</cyclicName>
+ <cyclicName type="24" draft="contributed">stor kulde</cyclicName>
+ </cyclicNameWidth>
+ </cyclicNameContext>
+ </cyclicNameSet>
+ <cyclicNameSet type="years">
+ <cyclicNameContext type="format">
+ <cyclicNameWidth type="abbreviated">
+ <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
+ <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
+ <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
+ <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
+ <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
+ <cyclicName type="6" draft="contributed">ji-si</cyclicName>
+ <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
+ <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
+ <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
+ <cyclicName type="10" draft="contributed">gui-you</cyclicName>
+ <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
+ <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
+ <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
+ <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
+ <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
+ <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
+ <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
+ <cyclicName type="18" draft="contributed">xin-si</cyclicName>
+ <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
+ <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
+ <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
+ <cyclicName type="22" draft="contributed">yi-you</cyclicName>
+ <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
+ <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
+ <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
+ <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
+ <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
+ <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
+ <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
+ <cyclicName type="30" draft="contributed">gui-si</cyclicName>
+ <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
+ <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
+ <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
+ <cyclicName type="34" draft="contributed">ding-you</cyclicName>
+ <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
+ <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
+ <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
+ <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
+ <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
+ <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
+ <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
+ <cyclicName type="42" draft="contributed">yi-si</cyclicName>
+ <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
+ <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
+ <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
+ <cyclicName type="46" draft="contributed">ji-you</cyclicName>
+ <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
+ <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
+ <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
+ <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
+ <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
+ <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
+ <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
+ <cyclicName type="54" draft="contributed">ding-si</cyclicName>
+ <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
+ <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
+ <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
+ <cyclicName type="58" draft="contributed">xin-you</cyclicName>
+ <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
+ <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
+ </cyclicNameWidth>
+ <cyclicNameWidth type="narrow">
+ <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
+ <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
+ <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
+ <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
+ <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
+ <cyclicName type="6" draft="contributed">ji-si</cyclicName>
+ <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
+ <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
+ <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
+ <cyclicName type="10" draft="contributed">gui-you</cyclicName>
+ <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
+ <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
+ <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
+ <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
+ <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
+ <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
+ <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
+ <cyclicName type="18" draft="contributed">xin-si</cyclicName>
+ <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
+ <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
+ <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
+ <cyclicName type="22" draft="contributed">yi-you</cyclicName>
+ <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
+ <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
+ <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
+ <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
+ <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
+ <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
+ <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
+ <cyclicName type="30" draft="contributed">gui-si</cyclicName>
+ <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
+ <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
+ <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
+ <cyclicName type="34" draft="contributed">ding-you</cyclicName>
+ <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
+ <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
+ <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
+ <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
+ <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
+ <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
+ <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
+ <cyclicName type="42" draft="contributed">yi-si</cyclicName>
+ <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
+ <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
+ <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
+ <cyclicName type="46" draft="contributed">ji-you</cyclicName>
+ <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
+ <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
+ <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
+ <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
+ <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
+ <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
+ <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
+ <cyclicName type="54" draft="contributed">ding-si</cyclicName>
+ <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
+ <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
+ <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
+ <cyclicName type="58" draft="contributed">xin-you</cyclicName>
+ <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
+ <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
+ </cyclicNameWidth>
+ <cyclicNameWidth type="wide">
+ <cyclicName type="1" draft="contributed">jia-zi</cyclicName>
+ <cyclicName type="2" draft="contributed">yi-chou</cyclicName>
+ <cyclicName type="3" draft="contributed">bing-yin</cyclicName>
+ <cyclicName type="4" draft="contributed">ding-mao</cyclicName>
+ <cyclicName type="5" draft="contributed">wu-chen</cyclicName>
+ <cyclicName type="6" draft="contributed">ji-si</cyclicName>
+ <cyclicName type="7" draft="contributed">geng-wu</cyclicName>
+ <cyclicName type="8" draft="contributed">xin-wei</cyclicName>
+ <cyclicName type="9" draft="contributed">ren-shen</cyclicName>
+ <cyclicName type="10" draft="contributed">gui-you</cyclicName>
+ <cyclicName type="11" draft="contributed">jia-xu</cyclicName>
+ <cyclicName type="12" draft="contributed">yi-hai</cyclicName>
+ <cyclicName type="13" draft="contributed">bing-zi</cyclicName>
+ <cyclicName type="14" draft="contributed">ding-chou</cyclicName>
+ <cyclicName type="15" draft="contributed">wu-yin</cyclicName>
+ <cyclicName type="16" draft="contributed">ji-mao</cyclicName>
+ <cyclicName type="17" draft="contributed">geng-chen</cyclicName>
+ <cyclicName type="18" draft="contributed">xin-si</cyclicName>
+ <cyclicName type="19" draft="contributed">ren-wu</cyclicName>
+ <cyclicName type="20" draft="contributed">gui-wei</cyclicName>
+ <cyclicName type="21" draft="contributed">jia-shen</cyclicName>
+ <cyclicName type="22" draft="contributed">yi-you</cyclicName>
+ <cyclicName type="23" draft="contributed">bing-xu</cyclicName>
+ <cyclicName type="24" draft="contributed">ding-hai</cyclicName>
+ <cyclicName type="25" draft="contributed">wu-zi</cyclicName>
+ <cyclicName type="26" draft="contributed">ji-chou</cyclicName>
+ <cyclicName type="27" draft="contributed">geng-yin</cyclicName>
+ <cyclicName type="28" draft="contributed">xin-mao</cyclicName>
+ <cyclicName type="29" draft="contributed">ren-chen</cyclicName>
+ <cyclicName type="30" draft="contributed">gui-si</cyclicName>
+ <cyclicName type="31" draft="contributed">jia-wu</cyclicName>
+ <cyclicName type="32" draft="contributed">yi-wei</cyclicName>
+ <cyclicName type="33" draft="contributed">bing-shen</cyclicName>
+ <cyclicName type="34" draft="contributed">ding-you</cyclicName>
+ <cyclicName type="35" draft="contributed">wu-xu</cyclicName>
+ <cyclicName type="36" draft="contributed">ji-hai</cyclicName>
+ <cyclicName type="37" draft="contributed">geng-zi</cyclicName>
+ <cyclicName type="38" draft="contributed">xin-chou</cyclicName>
+ <cyclicName type="39" draft="contributed">ren-yin</cyclicName>
+ <cyclicName type="40" draft="contributed">gui-mao</cyclicName>
+ <cyclicName type="41" draft="contributed">jia-chen</cyclicName>
+ <cyclicName type="42" draft="contributed">yi-si</cyclicName>
+ <cyclicName type="43" draft="contributed">bing-wu</cyclicName>
+ <cyclicName type="44" draft="contributed">ding-wei</cyclicName>
+ <cyclicName type="45" draft="contributed">wu-shen</cyclicName>
+ <cyclicName type="46" draft="contributed">ji-you</cyclicName>
+ <cyclicName type="47" draft="contributed">geng-xu</cyclicName>
+ <cyclicName type="48" draft="contributed">xin-hai</cyclicName>
+ <cyclicName type="49" draft="contributed">ren-zi</cyclicName>
+ <cyclicName type="50" draft="contributed">gui-chou</cyclicName>
+ <cyclicName type="51" draft="contributed">jia-yin</cyclicName>
+ <cyclicName type="52" draft="contributed">yi-mao</cyclicName>
+ <cyclicName type="53" draft="contributed">bing-chen</cyclicName>
+ <cyclicName type="54" draft="contributed">ding-si</cyclicName>
+ <cyclicName type="55" draft="contributed">wu-wu</cyclicName>
+ <cyclicName type="56" draft="contributed">ji-wei</cyclicName>
+ <cyclicName type="57" draft="contributed">geng-shen</cyclicName>
+ <cyclicName type="58" draft="contributed">xin-you</cyclicName>
+ <cyclicName type="59" draft="contributed">ren-xu</cyclicName>
+ <cyclicName type="60" draft="contributed">gui-hai</cyclicName>
+ </cyclicNameWidth>
+ </cyclicNameContext>
+ </cyclicNameSet>
+ <cyclicNameSet type="zodiacs">
+ <cyclicNameContext type="format">
+ <cyclicNameWidth type="abbreviated">
+ <cyclicName type="1" draft="contributed">zi</cyclicName>
+ <cyclicName type="2" draft="contributed">chou</cyclicName>
+ <cyclicName type="3" draft="contributed">yin</cyclicName>
+ <cyclicName type="4" draft="contributed">mao</cyclicName>
+ <cyclicName type="5" draft="contributed">chen</cyclicName>
+ <cyclicName type="6" draft="contributed">si</cyclicName>
+ <cyclicName type="7" draft="contributed">wu</cyclicName>
+ <cyclicName type="8" draft="contributed">wei</cyclicName>
+ <cyclicName type="9" draft="contributed">shen</cyclicName>
+ <cyclicName type="10" draft="contributed">you</cyclicName>
+ <cyclicName type="11" draft="contributed">xu</cyclicName>
+ <cyclicName type="12" draft="contributed">hai</cyclicName>
+ </cyclicNameWidth>
+ <cyclicNameWidth type="narrow">
+ <cyclicName type="1" draft="contributed">zi</cyclicName>
+ <cyclicName type="2" draft="contributed">chou</cyclicName>
+ <cyclicName type="3" draft="contributed">yin</cyclicName>
+ <cyclicName type="4" draft="contributed">mao</cyclicName>
+ <cyclicName type="5" draft="contributed">chen</cyclicName>
+ <cyclicName type="6" draft="contributed">si</cyclicName>
+ <cyclicName type="7" draft="contributed">wu</cyclicName>
+ <cyclicName type="8" draft="contributed">wei</cyclicName>
+ <cyclicName type="9" draft="contributed">shen</cyclicName>
+ <cyclicName type="10" draft="contributed">you</cyclicName>
+ <cyclicName type="11" draft="contributed">xu</cyclicName>
+ <cyclicName type="12" draft="contributed">hai</cyclicName>
+ </cyclicNameWidth>
+ <cyclicNameWidth type="wide">
+ <cyclicName type="1" draft="contributed">zi</cyclicName>
+ <cyclicName type="2" draft="contributed">chou</cyclicName>
+ <cyclicName type="3" draft="contributed">yin</cyclicName>
+ <cyclicName type="4" draft="contributed">mao</cyclicName>
+ <cyclicName type="5" draft="contributed">chen</cyclicName>
+ <cyclicName type="6" draft="contributed">si</cyclicName>
+ <cyclicName type="7" draft="contributed">wu</cyclicName>
+ <cyclicName type="8" draft="contributed">wei</cyclicName>
+ <cyclicName type="9" draft="contributed">shen</cyclicName>
+ <cyclicName type="10" draft="contributed">you</cyclicName>
+ <cyclicName type="11" draft="contributed">xu</cyclicName>
+ <cyclicName type="12" draft="contributed">hai</cyclicName>
+ </cyclicNameWidth>
+ </cyclicNameContext>
+ </cyclicNameSet>
+ </cyclicNameSets>
+ <dateFormats>
+ <dateFormatLength type="full">
+ <dateFormat>
+ <pattern draft="contributed">EEEE d. MMMM r(U)</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="long">
+ <dateFormat>
+ <pattern draft="contributed">d. MMMM r(U)</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="medium">
+ <dateFormat>
+ <pattern draft="contributed">d. MMM r</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="short">
+ <dateFormat>
+ <pattern draft="contributed">d.M.r</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ </dateFormats>
+ <dateTimeFormats>
+ <dateTimeFormatLength type="full">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="long">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="medium">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="short">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <availableFormats>
+ <dateFormatItem id="d" draft="contributed">d.</dateFormatItem>
+ <dateFormatItem id="E" draft="contributed">ccc</dateFormatItem>
+ <dateFormatItem id="Ed" draft="contributed">E d.</dateFormatItem>
+ <dateFormatItem id="Gy" draft="contributed">r(U)</dateFormatItem>
+ <dateFormatItem id="GyMMM" draft="contributed">MMM r(U)</dateFormatItem>
+ <dateFormatItem id="GyMMMd" draft="contributed">d. MMM r</dateFormatItem>
+ <dateFormatItem id="GyMMMEd" draft="contributed">E d. MMM r(U)</dateFormatItem>
+ <dateFormatItem id="M" draft="contributed">L.</dateFormatItem>
+ <dateFormatItem id="Md" draft="contributed">dd.MM</dateFormatItem>
+ <dateFormatItem id="MEd" draft="contributed">E dd.MM.</dateFormatItem>
+ <dateFormatItem id="MMM" draft="contributed">LLL</dateFormatItem>
+ <dateFormatItem id="MMMd" draft="contributed">d. MMM</dateFormatItem>
+ <dateFormatItem id="MMMEd" draft="contributed">E d. MMM</dateFormatItem>
+ <dateFormatItem id="MMMMd" draft="contributed">d. MMMM</dateFormatItem>
+ <dateFormatItem id="UM" draft="contributed">MM. U</dateFormatItem>
+ <dateFormatItem id="UMd" draft="contributed">d.MM. U</dateFormatItem>
+ <dateFormatItem id="UMMM" draft="contributed">MMM U</dateFormatItem>
+ <dateFormatItem id="UMMMd" draft="contributed">d. MMM U</dateFormatItem>
+ <dateFormatItem id="y" draft="contributed">r(U)</dateFormatItem>
+ <dateFormatItem id="yMd" draft="contributed">dd.MM.r</dateFormatItem>
+ <dateFormatItem id="yyyy" draft="contributed">r(U)</dateFormatItem>
+ <dateFormatItem id="yyyyM" draft="contributed">MM.r</dateFormatItem>
+ <dateFormatItem id="yyyyMd" draft="contributed">dd.MM.r</dateFormatItem>
+ <dateFormatItem id="yyyyMEd" draft="contributed">E dd.MM.r</dateFormatItem>
+ <dateFormatItem id="yyyyMMM" draft="contributed">MMM r(U)</dateFormatItem>
+ <dateFormatItem id="yyyyMMMd" draft="contributed">d. MMM r</dateFormatItem>
+ <dateFormatItem id="yyyyMMMEd" draft="contributed">E d. MMM r(U)</dateFormatItem>
+ <dateFormatItem id="yyyyMMMM" draft="contributed">MMMM r(U)</dateFormatItem>
+ <dateFormatItem id="yyyyQQQ" draft="contributed">QQQ r(U)</dateFormatItem>
+ <dateFormatItem id="yyyyQQQQ" draft="contributed">QQQQ r(U)</dateFormatItem>
+ </availableFormats>
+ <intervalFormats>
+ <intervalFormatFallback draft="contributed">{0}–{1}</intervalFormatFallback>
+ <intervalFormatItem id="d">
+ <greatestDifference id="d" draft="contributed">d.–d.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="h">
+ <greatestDifference id="a" draft="contributed">h a–h a</greatestDifference>
+ <greatestDifference id="h" draft="contributed">h–h a</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="H">
+ <greatestDifference id="H" draft="contributed">HH–HH</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="hv">
+ <greatestDifference id="a" draft="contributed">h a–h a v</greatestDifference>
+ <greatestDifference id="h" draft="contributed">h–h a v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Hv">
+ <greatestDifference id="H" draft="contributed">HH–HH v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="M">
+ <greatestDifference id="M" draft="contributed">MM.–MM.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Md">
+ <greatestDifference id="d" draft="contributed">dd.MM.–dd.MM.</greatestDifference>
+ <greatestDifference id="M" draft="contributed">dd.MM.–dd.MM.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MEd">
+ <greatestDifference id="d" draft="contributed">dd.MM.E–dd.MM.E</greatestDifference>
+ <greatestDifference id="M" draft="contributed">dd.MM.E–dd.MM.E</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMM">
+ <greatestDifference id="M" draft="contributed">LLL–LLL</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMMd">
+ <greatestDifference id="d" draft="contributed">d.–d. MMM</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d. MMM–d. MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMMEd">
+ <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="y">
+ <greatestDifference id="y" draft="contributed">U–U</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yM">
+ <greatestDifference id="M" draft="contributed">MM.y–MM.y</greatestDifference>
+ <greatestDifference id="y" draft="contributed">MM.y–MM.y</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMd">
+ <greatestDifference id="d" draft="contributed">dd.MM.y–dd.MM.y</greatestDifference>
+ <greatestDifference id="M" draft="contributed">dd.MM.y–dd.MM.y</greatestDifference>
+ <greatestDifference id="y" draft="contributed">dd.MM.y–dd.MM.y</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMEd">
+ <greatestDifference id="d" draft="contributed">E dd.MM.y–E dd.MM.y</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E dd.MM.y–E dd.MM.y</greatestDifference>
+ <greatestDifference id="y" draft="contributed">E dd.MM.y–E dd.MM.y</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMM">
+ <greatestDifference id="M" draft="contributed">MMM–MMM U</greatestDifference>
+ <greatestDifference id="y" draft="contributed">MMM U–MMM U</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMd">
+ <greatestDifference id="d" draft="contributed">d.–d. U MMM</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d. MMM–d. MMM U</greatestDifference>
+ <greatestDifference id="y" draft="contributed">d. MMM U–d. MMM U</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMEd">
+ <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM U</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM U</greatestDifference>
+ <greatestDifference id="y" draft="contributed">E d. MMM U–E d. MMM U</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMM">
+ <greatestDifference id="M" draft="contributed">MMMM–MMMM U</greatestDifference>
+ <greatestDifference id="y" draft="contributed">MMMM U–MMMM U</greatestDifference>
+ </intervalFormatItem>
+ </intervalFormats>
+ </dateTimeFormats>
+ </calendar>
+ <calendar type="ethiopic">
+ <months>
+ <monthContext type="format">
+ <monthWidth type="abbreviated">
+ <month type="1">meskerem</month>
+ <month type="2">tekemt</month>
+ <month type="3">hedar</month>
+ <month type="4">tahsas</month>
+ <month type="5">ter</month>
+ <month type="6">yekatit</month>
+ <month type="7">megabit</month>
+ <month type="8">miazia</month>
+ <month type="9">genbot</month>
+ <month type="10">sene</month>
+ <month type="11">hamle</month>
+ <month type="12">nehasse</month>
+ <month type="13">pagumen</month>
+ </monthWidth>
+ <monthWidth type="narrow">
+ <month type="1">1</month>
+ <month type="2">2</month>
+ <month type="3">3</month>
+ <month type="4">4</month>
+ <month type="5">5</month>
+ <month type="6">6</month>
+ <month type="7">7</month>
+ <month type="8">8</month>
+ <month type="9">9</month>
+ <month type="10">10</month>
+ <month type="11">11</month>
+ <month type="12">12</month>
+ <month type="13">13</month>
+ </monthWidth>
+ <monthWidth type="wide">
+ <month type="1">meskerem</month>
+ <month type="2">tekemt</month>
+ <month type="3">hedar</month>
+ <month type="4">tahsas</month>
+ <month type="5">ter</month>
+ <month type="6">yekatit</month>
+ <month type="7">megabit</month>
+ <month type="8">miazia</month>
+ <month type="9">genbot</month>
+ <month type="10">sene</month>
+ <month type="11">hamle</month>
+ <month type="12">nehasse</month>
+ <month type="13">pagumen</month>
+ </monthWidth>
+ </monthContext>
+ <monthContext type="stand-alone">
+ <monthWidth type="abbreviated">
+ <month type="1">meskerem</month>
+ <month type="2">tekemt</month>
+ <month type="3">hedar</month>
+ <month type="4">tahsas</month>
+ <month type="5">ter</month>
+ <month type="6">yekatit</month>
+ <month type="7">megabit</month>
+ <month type="8">miazia</month>
+ <month type="9">genbot</month>
+ <month type="10">sene</month>
+ <month type="11">hamle</month>
+ <month type="12">nehasse</month>
+ <month type="13">pagumen</month>
+ </monthWidth>
+ <monthWidth type="narrow">
+ <month type="1">1</month>
+ <month type="2">2</month>
+ <month type="3">3</month>
+ <month type="4">4</month>
+ <month type="5">5</month>
+ <month type="6">6</month>
+ <month type="7">7</month>
+ <month type="8">8</month>
+ <month type="9">9</month>
+ <month type="10">10</month>
+ <month type="11">11</month>
+ <month type="12">12</month>
+ <month type="13">13</month>
+ </monthWidth>
+ <monthWidth type="wide">
+ <month type="1">meskerem</month>
+ <month type="2">tekemt</month>
+ <month type="3">hedar</month>
+ <month type="4">tahsas</month>
+ <month type="5">ter</month>
+ <month type="6">yekatit</month>
+ <month type="7">megabit</month>
+ <month type="8">miazia</month>
+ <month type="9">genbot</month>
+ <month type="10">sene</month>
+ <month type="11">hamle</month>
+ <month type="12">nehasse</month>
+ <month type="13">pagumen</month>
+ </monthWidth>
+ </monthContext>
+ </months>
+ <eras>
+ <eraNames>
+ <era type="0">0. tidsalder</era>
+ <era type="1">1. tidsalder</era>
+ </eraNames>
+ <eraAbbr>
+ <era type="0">0. t.a.</era>
+ <era type="1">1. t.a.</era>
+ </eraAbbr>
+ <eraNarrow>
+ <era type="0">TA0</era>
+ <era type="1">TA1</era>
+ </eraNarrow>
+ </eras>
+ <dateFormats>
+ <dateFormatLength type="full">
+ <dateFormat>
+ <pattern draft="contributed">EEEE d. MMMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="long">
+ <dateFormat>
+ <pattern draft="contributed">d. MMMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="medium">
+ <dateFormat>
+ <pattern draft="contributed">d. MMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ </dateFormats>
+ <dateTimeFormats>
+ <dateTimeFormatLength type="full">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="long">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="medium">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="short">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <availableFormats>
+ <dateFormatItem id="d" draft="contributed">d.</dateFormatItem>
+ <dateFormatItem id="E" draft="contributed">ccc</dateFormatItem>
+ <dateFormatItem id="Ed" draft="contributed">E d.</dateFormatItem>
+ <dateFormatItem id="Gy" draft="contributed">y G</dateFormatItem>
+ <dateFormatItem id="GyMMM" draft="contributed">MMM y G</dateFormatItem>
+ <dateFormatItem id="GyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
+ <dateFormatItem id="GyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
+ <dateFormatItem id="M" draft="contributed">L.</dateFormatItem>
+ <dateFormatItem id="Md" draft="contributed">d.M.</dateFormatItem>
+ <dateFormatItem id="MEd" draft="contributed">E d.M</dateFormatItem>
+ <dateFormatItem id="MMdd" draft="contributed">d.M.</dateFormatItem>
+ <dateFormatItem id="MMM" draft="contributed">LLL</dateFormatItem>
+ <dateFormatItem id="MMMd" draft="contributed">d. MMM</dateFormatItem>
+ <dateFormatItem id="MMMEd" draft="contributed">E d. MMM</dateFormatItem>
+ <dateFormatItem id="MMMMd" draft="contributed">d. MMMM</dateFormatItem>
+ <dateFormatItem id="y" draft="contributed">y G</dateFormatItem>
+ <dateFormatItem id="yyyy" draft="contributed">y G</dateFormatItem>
+ <dateFormatItem id="yyyyM" draft="contributed">M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMd" draft="contributed">d.M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMEd" draft="contributed">E d.M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMM" draft="contributed">MM.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMM" draft="contributed">MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMM" draft="contributed">MMMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyQQQ" draft="contributed">QQQ y G</dateFormatItem>
+ <dateFormatItem id="yyyyQQQQ" draft="contributed">QQQQ y G</dateFormatItem>
+ </availableFormats>
+ <intervalFormats>
+ <intervalFormatFallback draft="contributed">{0}–{1}</intervalFormatFallback>
+ <intervalFormatItem id="d">
+ <greatestDifference id="d" draft="contributed">d.–d.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="h">
+ <greatestDifference id="a" draft="contributed">h a–h a</greatestDifference>
+ <greatestDifference id="h" draft="contributed">h–h a</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="H">
+ <greatestDifference id="H" draft="contributed">HH–HH</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="hv">
+ <greatestDifference id="a" draft="contributed">h a–h a v</greatestDifference>
+ <greatestDifference id="h" draft="contributed">h–h a v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Hv">
+ <greatestDifference id="H" draft="contributed">HH–HH v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="M">
+ <greatestDifference id="M" draft="contributed">M.–M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Md">
+ <greatestDifference id="d" draft="contributed">d.M.–d.M.</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d.M.–d.M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MEd">
+ <greatestDifference id="d" draft="contributed">E d.M.–E d.M.</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d.M.–E d.M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMM">
+ <greatestDifference id="M" draft="contributed">MMM–MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMMd">
+ <greatestDifference id="d" draft="contributed">d.–d. MMM</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d. MMM–d. MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMMEd">
+ <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="y">
+ <greatestDifference id="y" draft="contributed">y–y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yM">
+ <greatestDifference id="M" draft="contributed">M.y–M.y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">M.y–M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMd">
+ <greatestDifference id="d" draft="contributed">d.M.y–d.M.y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d.M.y–d.M.y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">d.M.y–d.M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMEd">
+ <greatestDifference id="d" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMM">
+ <greatestDifference id="M" draft="contributed">MMM–MMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">MMM y–MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMd">
+ <greatestDifference id="d" draft="contributed">d.–d. MMM y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d. MMM–d. MMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">d. MMM y–d. MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMEd">
+ <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">E d. MMM y–E d. MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMM">
+ <greatestDifference id="M" draft="contributed">MMMM–MMMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">MMMM y–MMMM y G</greatestDifference>
+ </intervalFormatItem>
+ </intervalFormats>
+ </dateTimeFormats>
+ </calendar>
+ <calendar type="ethiopic-amete-alem">
+ <eras>
+ <eraNames>
+ <era type="0" draft="contributed">0. tidsalder</era>
+ </eraNames>
+ <eraAbbr>
+ <era type="0" draft="contributed">0. t.a.</era>
+ </eraAbbr>
+ <eraNarrow>
+ <era type="0" draft="contributed">TA0</era>
+ </eraNarrow>
+ </eras>
+ </calendar>
+ <calendar type="generic">
+ <dateFormats>
+ <dateFormatLength type="full">
+ <dateFormat>
+ <pattern>EEEE d. MMMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="long">
+ <dateFormat>
+ <pattern>d. MMMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="medium">
+ <dateFormat>
+ <pattern>d. MMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="short">
+ <dateFormat>
+ <pattern>d.M.y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ </dateFormats>
+ <dateTimeFormats>
+ <dateTimeFormatLength type="full">
+ <dateTimeFormat>
+ <pattern>{1} 'kl'. {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="long">
+ <dateTimeFormat>
+ <pattern>{1} 'kl'. {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="medium">
+ <dateTimeFormat>
+ <pattern>{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="short">
+ <dateTimeFormat>
+ <pattern>{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <availableFormats>
+ <dateFormatItem id="Bh">h B</dateFormatItem>
+ <dateFormatItem id="Bhm">h:mm B</dateFormatItem>
+ <dateFormatItem id="Bhms">h:mm:ss B</dateFormatItem>
+ <dateFormatItem id="d">d.</dateFormatItem>
+ <dateFormatItem id="E">ccc</dateFormatItem>
+ <dateFormatItem id="EBhm">E h:mm B</dateFormatItem>
+ <dateFormatItem id="EBhms">E h:mm:ss B</dateFormatItem>
+ <dateFormatItem id="Ed">E d.</dateFormatItem>
+ <dateFormatItem id="Ehm">E h:mm a</dateFormatItem>
+ <dateFormatItem id="EHm">E HH:mm</dateFormatItem>
+ <dateFormatItem id="Ehms">E h:mm:ss a</dateFormatItem>
+ <dateFormatItem id="EHms">E HH:mm:ss</dateFormatItem>
+ <dateFormatItem id="Gy">y G</dateFormatItem>
+ <dateFormatItem id="GyMMM">MMM y G</dateFormatItem>
+ <dateFormatItem id="GyMMMd">d. MMM y G</dateFormatItem>
+ <dateFormatItem id="GyMMMEd">E d. MMM y G</dateFormatItem>
+ <dateFormatItem id="h">h a</dateFormatItem>
+ <dateFormatItem id="H">HH</dateFormatItem>
+ <dateFormatItem id="hm">h:mm a</dateFormatItem>
+ <dateFormatItem id="Hm">HH:mm</dateFormatItem>
+ <dateFormatItem id="hms">h:mm:ss a</dateFormatItem>
+ <dateFormatItem id="Hms">HH:mm:ss</dateFormatItem>
+ <dateFormatItem id="M">L.</dateFormatItem>
+ <dateFormatItem id="Md">d.M.</dateFormatItem>
+ <dateFormatItem id="MEd">E d.M</dateFormatItem>
+ <dateFormatItem id="MMdd">d.M.</dateFormatItem>
+ <dateFormatItem id="MMM">LLL</dateFormatItem>
+ <dateFormatItem id="MMMd">d. MMM</dateFormatItem>
+ <dateFormatItem id="MMMEd">E d. MMM</dateFormatItem>
+ <dateFormatItem id="MMMMd">d. MMMM</dateFormatItem>
+ <dateFormatItem id="ms">mm:ss</dateFormatItem>
+ <dateFormatItem id="y">y G</dateFormatItem>
+ <dateFormatItem id="yyyy">y G</dateFormatItem>
+ <dateFormatItem id="yyyyM">M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMd">d.M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMEd">E d.M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMM">MM.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMM">MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMd">d. MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMEd">E d. MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMM">MMMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyQQQ">QQQ y G</dateFormatItem>
+ <dateFormatItem id="yyyyQQQQ">QQQQ y G</dateFormatItem>
+ </availableFormats>
+ <intervalFormats>
+ <intervalFormatFallback>{0}–{1}</intervalFormatFallback>
+ <intervalFormatItem id="Bh">
+ <greatestDifference id="B">h B–h B</greatestDifference>
+ <greatestDifference id="h">↑↑↑</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Bhm">
+ <greatestDifference id="B">h:mm B–h:mm B</greatestDifference>
+ <greatestDifference id="h">↑↑↑</greatestDifference>
+ <greatestDifference id="m">↑↑↑</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="d">
+ <greatestDifference id="d">d.–d.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Gy">
+ <greatestDifference id="G">y G–y G</greatestDifference>
+ <greatestDifference id="y">y–y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="GyM">
+ <greatestDifference id="G">MM.y GGGGG–MM.y GGGGG</greatestDifference>
+ <greatestDifference id="M">MM.y–MM.y GGGGG</greatestDifference>
+ <greatestDifference id="y">MM.y–MM.y GGGGG</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="GyMd">
+ <greatestDifference id="d">dd.MM.y–dd.MM.y GGGGG</greatestDifference>
+ <greatestDifference id="G">dd.MM.y GGGGG–dd.MM.y GGGGG</greatestDifference>
+ <greatestDifference id="M">dd.MM.y–dd.MM.y GGGGG</greatestDifference>
+ <greatestDifference id="y">dd.MM.y–dd.MM.y GGGGG</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="GyMEd">
+ <greatestDifference id="d">E dd.MM.y–E dd.MM.y GGGGG</greatestDifference>
+ <greatestDifference id="G">E dd.MM.y GGGGG–E dd.MM.y GGGGG</greatestDifference>
+ <greatestDifference id="M">E dd.MM.y–E dd.MM.y GGGGG</greatestDifference>
+ <greatestDifference id="y">E dd.MM.y–E dd.MM.y GGGGG</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="GyMMM">
+ <greatestDifference id="G">MMM y G–MMM y G</greatestDifference>
+ <greatestDifference id="M">MMM–MMM y G</greatestDifference>
+ <greatestDifference id="y">MMM y–MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="GyMMMd">
+ <greatestDifference id="d">d.–d. MMM y G</greatestDifference>
+ <greatestDifference id="G">d. MMM y G–d. MMM y G</greatestDifference>
+ <greatestDifference id="M">d. MMM–d. MMM y G</greatestDifference>
+ <greatestDifference id="y">d. MMM y–d. MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="GyMMMEd">
+ <greatestDifference id="d">E d. MMM–E d. MMM y G</greatestDifference>
+ <greatestDifference id="G">E d. MMM y G–E d. MMM y G</greatestDifference>
+ <greatestDifference id="M">E d. MMM–E d. MMM y G</greatestDifference>
+ <greatestDifference id="y">E d. MMM y–E d. MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="h">
+ <greatestDifference id="a">h a – h a</greatestDifference>
+ <greatestDifference id="h" draft="contributed">h–h a</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="H">
+ <greatestDifference id="H" draft="contributed">HH–HH</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="hm">
+ <greatestDifference id="a">h:mm a – h:mm a</greatestDifference>
+ <greatestDifference id="h">h:mm–h:mm a</greatestDifference>
+ <greatestDifference id="m">h:mm–h:mm a</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Hm">
+ <greatestDifference id="H">HH:mm–HH:mm</greatestDifference>
+ <greatestDifference id="m">HH:mm–HH:mm</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="hmv">
+ <greatestDifference id="a">h:mm a – h:mm a v</greatestDifference>
+ <greatestDifference id="h">h:mm–h:mm a v</greatestDifference>
+ <greatestDifference id="m">h:mm–h:mm a v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Hmv">
+ <greatestDifference id="H">HH:mm–HH:mm v</greatestDifference>
+ <greatestDifference id="m">HH:mm–HH:mm v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="hv">
+ <greatestDifference id="a">h a – h a v</greatestDifference>
+ <greatestDifference id="h" draft="contributed">h–h a v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Hv">
+ <greatestDifference id="H" draft="contributed">HH–HH v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="M">
+ <greatestDifference id="M">M.–M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Md">
+ <greatestDifference id="d">d.M.–d.M.</greatestDifference>
+ <greatestDifference id="M">d.M.–d.M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MEd">
+ <greatestDifference id="d">E d.M.–E d.M.</greatestDifference>
+ <greatestDifference id="M">E d.M.–E d.M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMM">
+ <greatestDifference id="M">MMM–MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMMd">
+ <greatestDifference id="d">d.–d. MMM</greatestDifference>
+ <greatestDifference id="M">d. MMM–d. MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMMEd">
+ <greatestDifference id="d">E d. MMM–E d. MMM</greatestDifference>
+ <greatestDifference id="M">E d. MMM–E d. MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="y">
+ <greatestDifference id="y">y–y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yM">
+ <greatestDifference id="M">M.y–M.y G</greatestDifference>
+ <greatestDifference id="y">M.y–M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMd">
+ <greatestDifference id="d">d.M.y–d.M.y G</greatestDifference>
+ <greatestDifference id="M">d.M.y–d.M.y G</greatestDifference>
+ <greatestDifference id="y">d.M.y–d.M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMEd">
+ <greatestDifference id="d">E d.M.y–E d.M.y G</greatestDifference>
+ <greatestDifference id="M">E d.M.y–E d.M.y G</greatestDifference>
+ <greatestDifference id="y">E d.M.y–E d.M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMM">
+ <greatestDifference id="M">MMM–MMM y G</greatestDifference>
+ <greatestDifference id="y">MMM y–MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMd">
+ <greatestDifference id="d">d.–d. MMM y G</greatestDifference>
+ <greatestDifference id="M">d. MMM–d. MMM y G</greatestDifference>
+ <greatestDifference id="y">d. MMM y–d. MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMEd">
+ <greatestDifference id="d">E d. MMM–E d. MMM y G</greatestDifference>
+ <greatestDifference id="M">E d. MMM–E d. MMM y G</greatestDifference>
+ <greatestDifference id="y">E d. MMM y–E d. MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMM">
+ <greatestDifference id="M">MMMM–MMMM y G</greatestDifference>
+ <greatestDifference id="y">MMMM y–MMMM y G</greatestDifference>
+ </intervalFormatItem>
+ </intervalFormats>
+ </dateTimeFormats>
+ </calendar>
+ <calendar type="gregorian">
+ <months>
+ <monthContext type="format">
+ <monthWidth type="abbreviated">
+ <month type="1">jan.</month>
+ <month type="2">feb.</month>
+ <month type="3">mar.</month>
+ <month type="4">apr.</month>
+ <month type="5">mai</month>
+ <month type="6">jun.</month>
+ <month type="7">jul.</month>
+ <month type="8">aug.</month>
+ <month type="9">sep.</month>
+ <month type="10">okt.</month>
+ <month type="11">nov.</month>
+ <month type="12">des.</month>
+ </monthWidth>
+ <monthWidth type="narrow">
+ <month type="1">J</month>
+ <month type="2">F</month>
+ <month type="3">M</month>
+ <month type="4">A</month>
+ <month type="5">M</month>
+ <month type="6">J</month>
+ <month type="7">J</month>
+ <month type="8">A</month>
+ <month type="9">S</month>
+ <month type="10">O</month>
+ <month type="11">N</month>
+ <month type="12">D</month>
+ </monthWidth>
+ <monthWidth type="wide">
+ <month type="1">januar</month>
+ <month type="2">februar</month>
+ <month type="3">mars</month>
+ <month type="4">april</month>
+ <month type="5">mai</month>
+ <month type="6">juni</month>
+ <month type="7">juli</month>
+ <month type="8">august</month>
+ <month type="9">september</month>
+ <month type="10">oktober</month>
+ <month type="11">november</month>
+ <month type="12">desember</month>
+ </monthWidth>
+ </monthContext>
+ <monthContext type="stand-alone">
+ <monthWidth type="abbreviated">
+ <month type="1">jan</month>
+ <month type="2">feb</month>
+ <month type="3">mar</month>
+ <month type="4">apr</month>
+ <month type="5">mai</month>
+ <month type="6">jun</month>
+ <month type="7">jul</month>
+ <month type="8">aug</month>
+ <month type="9">sep</month>
+ <month type="10">okt</month>
+ <month type="11">nov</month>
+ <month type="12">des</month>
+ </monthWidth>
+ <monthWidth type="narrow">
+ <month type="1">J</month>
+ <month type="2">F</month>
+ <month type="3">M</month>
+ <month type="4">A</month>
+ <month type="5">M</month>
+ <month type="6">J</month>
+ <month type="7">J</month>
+ <month type="8">A</month>
+ <month type="9">S</month>
+ <month type="10">O</month>
+ <month type="11">N</month>
+ <month type="12">D</month>
+ </monthWidth>
+ <monthWidth type="wide">
+ <month type="1">januar</month>
+ <month type="2">februar</month>
+ <month type="3">mars</month>
+ <month type="4">april</month>
+ <month type="5">mai</month>
+ <month type="6">juni</month>
+ <month type="7">juli</month>
+ <month type="8">august</month>
+ <month type="9">september</month>
+ <month type="10">oktober</month>
+ <month type="11">november</month>
+ <month type="12">desember</month>
+ </monthWidth>
+ </monthContext>
+ </months>
+ <days>
+ <dayContext type="format">
+ <dayWidth type="abbreviated">
+ <day type="sun">søn.</day>
+ <day type="mon">man.</day>
+ <day type="tue">tir.</day>
+ <day type="wed">ons.</day>
+ <day type="thu">tor.</day>
+ <day type="fri">fre.</day>
+ <day type="sat">lør.</day>
+ </dayWidth>
+ <dayWidth type="narrow">
+ <day type="sun">↑↑↑</day>
+ <day type="mon">↑↑↑</day>
+ <day type="tue">↑↑↑</day>
+ <day type="wed">O</day>
+ <day type="thu">↑↑↑</day>
+ <day type="fri">↑↑↑</day>
+ <day type="sat">L</day>
+ </dayWidth>
+ <dayWidth type="short">
+ <day type="sun">sø.</day>
+ <day type="mon">ma.</day>
+ <day type="tue">ti.</day>
+ <day type="wed">on.</day>
+ <day type="thu">to.</day>
+ <day type="fri">fr.</day>
+ <day type="sat">lø.</day>
+ </dayWidth>
+ <dayWidth type="wide">
+ <day type="sun">søndag</day>
+ <day type="mon">mandag</day>
+ <day type="tue">tirsdag</day>
+ <day type="wed">onsdag</day>
+ <day type="thu">torsdag</day>
+ <day type="fri">fredag</day>
+ <day type="sat">lørdag</day>
+ </dayWidth>
+ </dayContext>
+ <dayContext type="stand-alone">
+ <dayWidth type="abbreviated">
+ <day type="sun">søn.</day>
+ <day type="mon">man.</day>
+ <day type="tue">tir.</day>
+ <day type="wed">ons.</day>
+ <day type="thu">tor.</day>
+ <day type="fri">fre.</day>
+ <day type="sat">lør.</day>
+ </dayWidth>
+ <dayWidth type="narrow">
+ <day type="sun">↑↑↑</day>
+ <day type="mon">↑↑↑</day>
+ <day type="tue">↑↑↑</day>
+ <day type="wed">O</day>
+ <day type="thu">↑↑↑</day>
+ <day type="fri">↑↑↑</day>
+ <day type="sat">L</day>
+ </dayWidth>
+ <dayWidth type="short">
+ <day type="sun">sø.</day>
+ <day type="mon">ma.</day>
+ <day type="tue">ti.</day>
+ <day type="wed">on.</day>
+ <day type="thu">to.</day>
+ <day type="fri">fr.</day>
+ <day type="sat">lø.</day>
+ </dayWidth>
+ <dayWidth type="wide">
+ <day type="sun">søndag</day>
+ <day type="mon">mandag</day>
+ <day type="tue">tirsdag</day>
+ <day type="wed">onsdag</day>
+ <day type="thu">torsdag</day>
+ <day type="fri">fredag</day>
+ <day type="sat">lørdag</day>
+ </dayWidth>
+ </dayContext>
+ </days>
+ <quarters>
+ <quarterContext type="format">
+ <quarterWidth type="abbreviated">
+ <quarter type="1">K1</quarter>
+ <quarter type="2">K2</quarter>
+ <quarter type="3">K3</quarter>
+ <quarter type="4">K4</quarter>
+ </quarterWidth>
+ <quarterWidth type="narrow">
+ <quarter type="1">1.</quarter>
+ <quarter type="2">2.</quarter>
+ <quarter type="3">3.</quarter>
+ <quarter type="4">4.</quarter>
+ </quarterWidth>
+ <quarterWidth type="wide">
+ <quarter type="1">1. kvartal</quarter>
+ <quarter type="2">2. kvartal</quarter>
+ <quarter type="3">3. kvartal</quarter>
+ <quarter type="4">4. kvartal</quarter>
+ </quarterWidth>
+ </quarterContext>
+ <quarterContext type="stand-alone">
+ <quarterWidth type="abbreviated">
+ <quarter type="1">K1</quarter>
+ <quarter type="2">K2</quarter>
+ <quarter type="3">K3</quarter>
+ <quarter type="4">K4</quarter>
+ </quarterWidth>
+ <quarterWidth type="narrow">
+ <quarter type="1">1.</quarter>
+ <quarter type="2">2.</quarter>
+ <quarter type="3">3.</quarter>
+ <quarter type="4">4.</quarter>
+ </quarterWidth>
+ <quarterWidth type="wide">
+ <quarter type="1">1. kvartal</quarter>
+ <quarter type="2">2. kvartal</quarter>
+ <quarter type="3">3. kvartal</quarter>
+ <quarter type="4">4. kvartal</quarter>
+ </quarterWidth>
+ </quarterContext>
+ </quarters>
+ <dayPeriods>
+ <dayPeriodContext type="format">
+ <dayPeriodWidth type="abbreviated">
+ <dayPeriod type="midnight">midn.</dayPeriod>
+ <dayPeriod type="am">a.m.</dayPeriod>
+ <dayPeriod type="pm">p.m.</dayPeriod>
+ <dayPeriod type="morning1">morg.</dayPeriod>
+ <dayPeriod type="morning2">form.</dayPeriod>
+ <dayPeriod type="afternoon1">etterm.</dayPeriod>
+ <dayPeriod type="evening1">kveld</dayPeriod>
+ <dayPeriod type="night1">natt</dayPeriod>
+ </dayPeriodWidth>
+ <dayPeriodWidth type="narrow">
+ <dayPeriod type="midnight">mn.</dayPeriod>
+ <dayPeriod type="am">a</dayPeriod>
+ <dayPeriod type="pm">p</dayPeriod>
+ <dayPeriod type="morning1">mg.</dayPeriod>
+ <dayPeriod type="morning2">fm.</dayPeriod>
+ <dayPeriod type="afternoon1">em.</dayPeriod>
+ <dayPeriod type="evening1">kv.</dayPeriod>
+ <dayPeriod type="night1">nt.</dayPeriod>
+ </dayPeriodWidth>
+ <dayPeriodWidth type="wide">
+ <dayPeriod type="midnight">midnatt</dayPeriod>
+ <dayPeriod type="am">a.m.</dayPeriod>
+ <dayPeriod type="pm">p.m.</dayPeriod>
+ <dayPeriod type="morning1">på morgenen</dayPeriod>
+ <dayPeriod type="morning2">på formiddagen</dayPeriod>
+ <dayPeriod type="afternoon1">på ettermiddagen</dayPeriod>
+ <dayPeriod type="evening1">på kvelden</dayPeriod>
+ <dayPeriod type="night1">på natten</dayPeriod>
+ </dayPeriodWidth>
+ </dayPeriodContext>
+ <dayPeriodContext type="stand-alone">
+ <dayPeriodWidth type="abbreviated">
+ <dayPeriod type="midnight">midn.</dayPeriod>
+ <dayPeriod type="am">a.m.</dayPeriod>
+ <dayPeriod type="pm">p.m.</dayPeriod>
+ <dayPeriod type="morning1">morg.</dayPeriod>
+ <dayPeriod type="morning2">form.</dayPeriod>
+ <dayPeriod type="afternoon1">etterm.</dayPeriod>
+ <dayPeriod type="evening1">kveld</dayPeriod>
+ <dayPeriod type="night1">natt</dayPeriod>
+ </dayPeriodWidth>
+ <dayPeriodWidth type="narrow">
+ <dayPeriod type="midnight">mn.</dayPeriod>
+ <dayPeriod type="am">a.m.</dayPeriod>
+ <dayPeriod type="pm">p.m.</dayPeriod>
+ <dayPeriod type="morning1">mg.</dayPeriod>
+ <dayPeriod type="morning2">fm.</dayPeriod>
+ <dayPeriod type="afternoon1">em.</dayPeriod>
+ <dayPeriod type="evening1">kv.</dayPeriod>
+ <dayPeriod type="night1">nt.</dayPeriod>
+ </dayPeriodWidth>
+ <dayPeriodWidth type="wide">
+ <dayPeriod type="midnight">midnatt</dayPeriod>
+ <dayPeriod type="am">a.m.</dayPeriod>
+ <dayPeriod type="pm">p.m.</dayPeriod>
+ <dayPeriod type="morning1">morgen</dayPeriod>
+ <dayPeriod type="morning2">formiddag</dayPeriod>
+ <dayPeriod type="afternoon1">ettermiddag</dayPeriod>
+ <dayPeriod type="evening1">kveld</dayPeriod>
+ <dayPeriod type="night1">natt</dayPeriod>
+ </dayPeriodWidth>
+ </dayPeriodContext>
+ </dayPeriods>
+ <eras>
+ <eraNames>
+ <era type="0">før Kristus</era>
+ <era type="0" alt="variant">før vår tidsregning</era>
+ <era type="1">etter Kristus</era>
+ <era type="1" alt="variant">etter vår tidsregning</era>
+ </eraNames>
+ <eraAbbr>
+ <era type="0">f.Kr.</era>
+ <era type="0" alt="variant">fvt.</era>
+ <era type="1">e.Kr.</era>
+ <era type="1" alt="variant">evt.</era>
+ </eraAbbr>
+ <eraNarrow>
+ <era type="0">f.Kr.</era>
+ <era type="0" alt="variant">fvt.</era>
+ <era type="1">e.Kr.</era>
+ <era type="1" alt="variant" draft="contributed">vt.</era>
+ </eraNarrow>
+ </eras>
+ <dateFormats>
+ <dateFormatLength type="full">
+ <dateFormat>
+ <pattern>EEEE d. MMMM y</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="long">
+ <dateFormat>
+ <pattern>d. MMMM y</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="medium">
+ <dateFormat>
+ <pattern>d. MMM y</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="short">
+ <dateFormat>
+ <pattern>dd.MM.y</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ </dateFormats>
+ <timeFormats>
+ <timeFormatLength type="full">
+ <timeFormat>
+ <pattern draft="contributed">HH:mm:ss zzzz</pattern>
+ <pattern alt="variant">HH.mm.ss zzzz</pattern>
+ </timeFormat>
+ </timeFormatLength>
+ <timeFormatLength type="long">
+ <timeFormat>
+ <pattern draft="contributed">HH:mm:ss z</pattern>
+ <pattern alt="variant">HH.mm.ss z</pattern>
+ </timeFormat>
+ </timeFormatLength>
+ <timeFormatLength type="medium">
+ <timeFormat>
+ <pattern draft="contributed">HH:mm:ss</pattern>
+ <pattern alt="variant">HH.mm.ss</pattern>
+ </timeFormat>
+ </timeFormatLength>
+ <timeFormatLength type="short">
+ <timeFormat>
+ <pattern draft="contributed">HH:mm</pattern>
+ <pattern alt="variant">HH.mm</pattern>
+ </timeFormat>
+ </timeFormatLength>
+ </timeFormats>
+ <dateTimeFormats>
+ <dateTimeFormatLength type="full">
+ <dateTimeFormat>
+ <pattern>{1} 'kl'. {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="long">
+ <dateTimeFormat>
+ <pattern>{1} 'kl'. {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="medium">
+ <dateTimeFormat>
+ <pattern>{1}, {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="short">
+ <dateTimeFormat>
+ <pattern>{1}, {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <availableFormats>
+ <dateFormatItem id="Bh">h B</dateFormatItem>
+ <dateFormatItem id="Bhm">h:mm B</dateFormatItem>
+ <dateFormatItem id="Bhms">h:mm:ss B</dateFormatItem>
+ <dateFormatItem id="d">d.</dateFormatItem>
+ <dateFormatItem id="E">ccc</dateFormatItem>
+ <dateFormatItem id="EBhm">E h:mm B</dateFormatItem>
+ <dateFormatItem id="EBhms">E h:mm:ss B</dateFormatItem>
+ <dateFormatItem id="Ed">E d.</dateFormatItem>
+ <dateFormatItem id="Ehm">E h:mm a</dateFormatItem>
+ <dateFormatItem id="EHm">E 'kl'. HH:mm</dateFormatItem>
+ <dateFormatItem id="Ehms">E h:mm:ss a</dateFormatItem>
+ <dateFormatItem id="EHms">E 'kl'. HH:mm:ss</dateFormatItem>
+ <dateFormatItem id="Gy">y G</dateFormatItem>
+ <dateFormatItem id="GyMMM">MMM y G</dateFormatItem>
+ <dateFormatItem id="GyMMMd">d. MMM y G</dateFormatItem>
+ <dateFormatItem id="GyMMMEd">E d. MMM y G</dateFormatItem>
+ <dateFormatItem id="h">h a</dateFormatItem>
+ <dateFormatItem id="H">HH</dateFormatItem>
+ <dateFormatItem id="hm">h:mm a</dateFormatItem>
+ <dateFormatItem id="Hm">HH:mm</dateFormatItem>
+ <dateFormatItem id="hms">h:mm:ss a</dateFormatItem>
+ <dateFormatItem id="Hms">HH:mm:ss</dateFormatItem>
+ <dateFormatItem id="hmsv">h:mm:ss a v</dateFormatItem>
+ <dateFormatItem id="Hmsv">HH:mm:ss v</dateFormatItem>
+ <dateFormatItem id="hmv">h:mm a v</dateFormatItem>
+ <dateFormatItem id="Hmv">HH:mm v</dateFormatItem>
+ <dateFormatItem id="M">L.</dateFormatItem>
+ <dateFormatItem id="Md">d.M.</dateFormatItem>
+ <dateFormatItem id="MEd">E d.M.</dateFormatItem>
+ <dateFormatItem id="MMdd">d.M.</dateFormatItem>
+ <dateFormatItem id="MMM">LLL</dateFormatItem>
+ <dateFormatItem id="MMMd">d. MMM</dateFormatItem>
+ <dateFormatItem id="MMMEd">E d. MMM</dateFormatItem>
+ <dateFormatItem id="MMMMd">d. MMMM</dateFormatItem>
+ <dateFormatItem id="MMMMW" count="one">W. 'uke' 'i' MMMM</dateFormatItem>
+ <dateFormatItem id="MMMMW" count="other">W. 'uke' 'i' MMMM</dateFormatItem>
+ <dateFormatItem id="ms">mm:ss</dateFormatItem>
+ <dateFormatItem id="y">y</dateFormatItem>
+ <dateFormatItem id="yM">M.y</dateFormatItem>
+ <dateFormatItem id="yMd">d.M.y</dateFormatItem>
+ <dateFormatItem id="yMEd">E d.M.y</dateFormatItem>
+ <dateFormatItem id="yMM">MM.y</dateFormatItem>
+ <dateFormatItem id="yMMM">MMM y</dateFormatItem>
+ <dateFormatItem id="yMMMd">d. MMM y</dateFormatItem>
+ <dateFormatItem id="yMMMEd">E d. MMM y</dateFormatItem>
+ <dateFormatItem id="yMMMM">MMMM y</dateFormatItem>
+ <dateFormatItem id="yQQQ">QQQ y</dateFormatItem>
+ <dateFormatItem id="yQQQQ">QQQQ y</dateFormatItem>
+ <dateFormatItem id="yw" count="one">'uke' w 'i' Y</dateFormatItem>
+ <dateFormatItem id="yw" count="other">'uke' w 'i' Y</dateFormatItem>
+ </availableFormats>
+ <appendItems>
+ <appendItem request="Timezone">{0} {1}</appendItem>
+ </appendItems>
+ <intervalFormats>
+ <intervalFormatFallback>{0}–{1}</intervalFormatFallback>
+ <intervalFormatItem id="Bh">
+ <greatestDifference id="B">h B–h B</greatestDifference>
+ <greatestDifference id="h">↑↑↑</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Bhm">
+ <greatestDifference id="B">h:mm B–h:mm B</greatestDifference>
+ <greatestDifference id="h">↑↑↑</greatestDifference>
+ <greatestDifference id="m">↑↑↑</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="d">
+ <greatestDifference id="d">d.–d.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Gy">
+ <greatestDifference id="G">y G–y G</greatestDifference>
+ <greatestDifference id="y">y–y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="GyM">
+ <greatestDifference id="G">MM.y GGGGG–MM.y GGGGG</greatestDifference>
+ <greatestDifference id="M">MM.y–MM.y GGGGG</greatestDifference>
+ <greatestDifference id="y">MM.y–MM.y GGGGG</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="GyMd">
+ <greatestDifference id="d">dd.MM.y–dd.MM.y GGGGG</greatestDifference>
+ <greatestDifference id="G">dd.MM.y GGGGG–dd.MM.y GGGGG</greatestDifference>
+ <greatestDifference id="M">dd.MM.y–dd.MM.y GGGGG</greatestDifference>
+ <greatestDifference id="y">dd.MM.y–dd.MM.y GGGGG</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="GyMEd">
+ <greatestDifference id="d">E dd.MM.y–E dd.MM.y GGGGG</greatestDifference>
+ <greatestDifference id="G">E dd.MM.y GGGGG–E dd.MM.y GGGGG</greatestDifference>
+ <greatestDifference id="M">E dd.MM.y–E dd.MM.y GGGGG</greatestDifference>
+ <greatestDifference id="y">E dd.MM.y–E dd.MM.y GGGGG</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="GyMMM">
+ <greatestDifference id="G">MMM y G–MMM y G</greatestDifference>
+ <greatestDifference id="M">MMM–MMM y G</greatestDifference>
+ <greatestDifference id="y">MMM y–MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="GyMMMd">
+ <greatestDifference id="d">d.–d. MMM y G</greatestDifference>
+ <greatestDifference id="G">d. MMM y G–d. MMM y G</greatestDifference>
+ <greatestDifference id="M">d. MMM–d. MMM y G</greatestDifference>
+ <greatestDifference id="y">d. MMM y–d. MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="GyMMMEd">
+ <greatestDifference id="d">E d. MMM–E d. MMM y G</greatestDifference>
+ <greatestDifference id="G">E d. MMM y G–E d. MMM y G</greatestDifference>
+ <greatestDifference id="M">E d. MMM–E d. MMM y G</greatestDifference>
+ <greatestDifference id="y">E d. MMM y–E d. MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="h">
+ <greatestDifference id="a">h a–h a</greatestDifference>
+ <greatestDifference id="h">h–h a</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="H">
+ <greatestDifference id="H">HH–HH</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="hm">
+ <greatestDifference id="a">h:mm a–h:mm a</greatestDifference>
+ <greatestDifference id="h">h:mm–h:mm a</greatestDifference>
+ <greatestDifference id="m">h:mm–h:mm a</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Hm">
+ <greatestDifference id="H">HH:mm–HH:mm</greatestDifference>
+ <greatestDifference id="m">HH:mm–HH:mm</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="hmv">
+ <greatestDifference id="a">h:mm a–h:mm a v</greatestDifference>
+ <greatestDifference id="h">h:mm–h:mm a v</greatestDifference>
+ <greatestDifference id="m">h:mm–h:mm a v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Hmv">
+ <greatestDifference id="H">HH:mm–HH:mm v</greatestDifference>
+ <greatestDifference id="m">HH:mm–HH:mm v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="hv">
+ <greatestDifference id="a">h a–h a v</greatestDifference>
+ <greatestDifference id="h">h–h a v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Hv">
+ <greatestDifference id="H">HH–HH v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="M">
+ <greatestDifference id="M">M.–M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Md">
+ <greatestDifference id="d">dd.MM.–dd.MM.</greatestDifference>
+ <greatestDifference id="M">dd.MM.–dd.MM.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MEd">
+ <greatestDifference id="d">E dd.MM.–E dd.MM.</greatestDifference>
+ <greatestDifference id="M">E dd.MM.–E dd.MM.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMM">
+ <greatestDifference id="M">MMM–MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMMd">
+ <greatestDifference id="d">d.–d. MMM</greatestDifference>
+ <greatestDifference id="M">d. MMM–d. MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMMEd">
+ <greatestDifference id="d">E d.–E d. MMM</greatestDifference>
+ <greatestDifference id="M">E d. MMM–E d. MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="y">
+ <greatestDifference id="y">y–y</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yM">
+ <greatestDifference id="M">MM.y–MM.y</greatestDifference>
+ <greatestDifference id="y">MM.y–MM.y</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMd">
+ <greatestDifference id="d">dd.MM.y–dd.MM.y</greatestDifference>
+ <greatestDifference id="M">dd.MM.y–dd.MM.y</greatestDifference>
+ <greatestDifference id="y">dd.MM.y–dd.MM.y</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMEd">
+ <greatestDifference id="d">E dd.MM.y–E dd.MM.y</greatestDifference>
+ <greatestDifference id="M">E dd.MM.y–E dd.MM.y</greatestDifference>
+ <greatestDifference id="y">E dd.MM.y–E dd.MM.y</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMM">
+ <greatestDifference id="M">MMM–MMM y</greatestDifference>
+ <greatestDifference id="y">MMM y–MMM y</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMd">
+ <greatestDifference id="d">d.–d. MMM y</greatestDifference>
+ <greatestDifference id="M">d. MMM–d. MMM y</greatestDifference>
+ <greatestDifference id="y">d. MMM y–d. MMM y</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMEd">
+ <greatestDifference id="d">E d.–E d. MMM y</greatestDifference>
+ <greatestDifference id="M">E d. MMM–E d. MMM y</greatestDifference>
+ <greatestDifference id="y">E d. MMM y–E d. MMM y</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMM">
+ <greatestDifference id="M">MMMM–MMMM y</greatestDifference>
+ <greatestDifference id="y">MMMM y–MMMM y</greatestDifference>
+ </intervalFormatItem>
+ </intervalFormats>
+ </dateTimeFormats>
+ </calendar>
+ <calendar type="hebrew">
+ <months>
+ <monthContext type="format">
+ <monthWidth type="abbreviated">
+ <month type="1">tishri</month>
+ <month type="2">heshvan</month>
+ <month type="3">kislev</month>
+ <month type="4">tevet</month>
+ <month type="5">shevat</month>
+ <month type="6">adar I</month>
+ <month type="7">adar</month>
+ <month type="7" yeartype="leap">adar II</month>
+ <month type="8">nisan</month>
+ <month type="9">iyar</month>
+ <month type="10">sivan</month>
+ <month type="11">tamuz</month>
+ <month type="12">av</month>
+ <month type="13">elul</month>
+ </monthWidth>
+ <monthWidth type="narrow">
+ <month type="1">1</month>
+ <month type="2">2</month>
+ <month type="3">3</month>
+ <month type="4">4</month>
+ <month type="5">5</month>
+ <month type="6">6</month>
+ <month type="7">7</month>
+ <month type="7" yeartype="leap">7</month>
+ <month type="8">8</month>
+ <month type="9">9</month>
+ <month type="10">10</month>
+ <month type="11">11</month>
+ <month type="12">12</month>
+ <month type="13">13</month>
+ </monthWidth>
+ <monthWidth type="wide">
+ <month type="1">tishri</month>
+ <month type="2">heshvan</month>
+ <month type="3">kislev</month>
+ <month type="4">tevet</month>
+ <month type="5">shevat</month>
+ <month type="6">adar I</month>
+ <month type="7">adar</month>
+ <month type="7" yeartype="leap">adar II</month>
+ <month type="8">nisan</month>
+ <month type="9">iyar</month>
+ <month type="10">sivan</month>
+ <month type="11">tamuz</month>
+ <month type="12">av</month>
+ <month type="13">elul</month>
+ </monthWidth>
+ </monthContext>
+ <monthContext type="stand-alone">
+ <monthWidth type="abbreviated">
+ <month type="1">tishri</month>
+ <month type="2">heshvan</month>
+ <month type="3">kislev</month>
+ <month type="4">tevet</month>
+ <month type="5">shevat</month>
+ <month type="6">adar I</month>
+ <month type="7">adar</month>
+ <month type="7" yeartype="leap">adar II</month>
+ <month type="8">nisan</month>
+ <month type="9">iyar</month>
+ <month type="10">sivan</month>
+ <month type="11">tamuz</month>
+ <month type="12">av</month>
+ <month type="13">elul</month>
+ </monthWidth>
+ <monthWidth type="narrow">
+ <month type="1">1</month>
+ <month type="2">2</month>
+ <month type="3">3</month>
+ <month type="4">4</month>
+ <month type="5">5</month>
+ <month type="6">6</month>
+ <month type="7">7</month>
+ <month type="7" yeartype="leap">7</month>
+ <month type="8">8</month>
+ <month type="9">9</month>
+ <month type="10">10</month>
+ <month type="11">11</month>
+ <month type="12">12</month>
+ <month type="13">13</month>
+ </monthWidth>
+ <monthWidth type="wide">
+ <month type="1">tishri</month>
+ <month type="2">heshvan</month>
+ <month type="3">kislev</month>
+ <month type="4">tevet</month>
+ <month type="5">shevat</month>
+ <month type="6">adar I</month>
+ <month type="7">adar</month>
+ <month type="7" yeartype="leap">adar II</month>
+ <month type="8">nisan</month>
+ <month type="9">iyar</month>
+ <month type="10">sivan</month>
+ <month type="11">tamuz</month>
+ <month type="12">av</month>
+ <month type="13">elul</month>
+ </monthWidth>
+ </monthContext>
+ </months>
+ <eras>
+ <eraNames>
+ <era type="0">AM</era>
+ </eraNames>
+ <eraAbbr>
+ <era type="0">AM</era>
+ </eraAbbr>
+ <eraNarrow>
+ <era type="0">AM</era>
+ </eraNarrow>
+ </eras>
+ <dateFormats>
+ <dateFormatLength type="full">
+ <dateFormat>
+ <pattern draft="contributed">EEEE d. MMMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="long">
+ <dateFormat>
+ <pattern draft="contributed">d. MMMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="medium">
+ <dateFormat>
+ <pattern draft="contributed">d. MMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="short">
+ <dateFormat>
+ <pattern draft="contributed">d.M.y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ </dateFormats>
+ <dateTimeFormats>
+ <dateTimeFormatLength type="full">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="long">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="medium">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="short">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <availableFormats>
+ <dateFormatItem id="d" draft="contributed">d.</dateFormatItem>
+ <dateFormatItem id="E" draft="contributed">ccc</dateFormatItem>
+ <dateFormatItem id="Ed" draft="contributed">E d.</dateFormatItem>
+ <dateFormatItem id="Gy" draft="contributed">y G</dateFormatItem>
+ <dateFormatItem id="GyMMM" draft="contributed">MMM y G</dateFormatItem>
+ <dateFormatItem id="GyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
+ <dateFormatItem id="GyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
+ <dateFormatItem id="M" draft="contributed">L.</dateFormatItem>
+ <dateFormatItem id="Md" draft="contributed">d.M.</dateFormatItem>
+ <dateFormatItem id="MEd" draft="contributed">E d.M</dateFormatItem>
+ <dateFormatItem id="MMdd" draft="contributed">d.M.</dateFormatItem>
+ <dateFormatItem id="MMM" draft="contributed">LLL</dateFormatItem>
+ <dateFormatItem id="MMMd" draft="contributed">d. MMM</dateFormatItem>
+ <dateFormatItem id="MMMEd" draft="contributed">E d. MMM</dateFormatItem>
+ <dateFormatItem id="MMMMd" draft="contributed">d. MMMM</dateFormatItem>
+ <dateFormatItem id="y" draft="contributed">y G</dateFormatItem>
+ <dateFormatItem id="yyyy" draft="contributed">y G</dateFormatItem>
+ <dateFormatItem id="yyyyM" draft="contributed">M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMd" draft="contributed">d.M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMEd" draft="contributed">E d.M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMM" draft="contributed">MM.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMM" draft="contributed">MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMM" draft="contributed">MMMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyQQQ" draft="contributed">QQQ y G</dateFormatItem>
+ <dateFormatItem id="yyyyQQQQ" draft="contributed">QQQQ y G</dateFormatItem>
+ </availableFormats>
+ <intervalFormats>
+ <intervalFormatFallback draft="contributed">{0}–{1}</intervalFormatFallback>
+ <intervalFormatItem id="d">
+ <greatestDifference id="d" draft="contributed">d.–d.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="h">
+ <greatestDifference id="a" draft="contributed">h a–h a</greatestDifference>
+ <greatestDifference id="h" draft="contributed">h–h a</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="H">
+ <greatestDifference id="H" draft="contributed">HH–HH</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="hv">
+ <greatestDifference id="a" draft="contributed">h a–h a v</greatestDifference>
+ <greatestDifference id="h" draft="contributed">h–h a v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Hv">
+ <greatestDifference id="H" draft="contributed">HH–HH v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="M">
+ <greatestDifference id="M" draft="contributed">M.–M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Md">
+ <greatestDifference id="d" draft="contributed">d.M.–d.M.</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d.M.–d.M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MEd">
+ <greatestDifference id="d" draft="contributed">E d.M.–E d.M.</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d.M.–E d.M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMM">
+ <greatestDifference id="M" draft="contributed">MMM–MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMMd">
+ <greatestDifference id="d" draft="contributed">d.–d. MMM</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d. MMM–d. MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMMEd">
+ <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="y">
+ <greatestDifference id="y" draft="contributed">y–y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yM">
+ <greatestDifference id="M" draft="contributed">M.y–M.y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">M.y–M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMd">
+ <greatestDifference id="d" draft="contributed">d.M.y–d.M.y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d.M.y–d.M.y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">d.M.y–d.M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMEd">
+ <greatestDifference id="d" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMM">
+ <greatestDifference id="M" draft="contributed">MMM–MMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">MMM y–MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMd">
+ <greatestDifference id="d" draft="contributed">d.–d. MMM y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d. MMM–d. MMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">d. MMM y–d. MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMEd">
+ <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">E d. MMM y–E d. MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMM">
+ <greatestDifference id="M" draft="contributed">MMMM–MMMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">MMMM y–MMMM y G</greatestDifference>
+ </intervalFormatItem>
+ </intervalFormats>
+ </dateTimeFormats>
+ </calendar>
+ <calendar type="indian">
+ <months>
+ <monthContext type="format">
+ <monthWidth type="abbreviated">
+ <month type="1">chaitra</month>
+ <month type="2">vaisakha</month>
+ <month type="3">jyaistha</month>
+ <month type="4">asadha</month>
+ <month type="5">sravana</month>
+ <month type="6">bhadra</month>
+ <month type="7">asvina</month>
+ <month type="8">kartika</month>
+ <month type="9">agrahayana</month>
+ <month type="10">pausa</month>
+ <month type="11">magha</month>
+ <month type="12">phalguna</month>
+ </monthWidth>
+ <monthWidth type="narrow">
+ <month type="1">1</month>
+ <month type="2">2</month>
+ <month type="3">3</month>
+ <month type="4">4</month>
+ <month type="5">5</month>
+ <month type="6">6</month>
+ <month type="7">7</month>
+ <month type="8">8</month>
+ <month type="9">9</month>
+ <month type="10">10</month>
+ <month type="11">11</month>
+ <month type="12">12</month>
+ </monthWidth>
+ <monthWidth type="wide">
+ <month type="1">chaitra</month>
+ <month type="2">vaisakha</month>
+ <month type="3">jyaistha</month>
+ <month type="4">asadha</month>
+ <month type="5">sravana</month>
+ <month type="6">bhadra</month>
+ <month type="7">asvina</month>
+ <month type="8">kartika</month>
+ <month type="9">agrahayana</month>
+ <month type="10">pausa</month>
+ <month type="11">magha</month>
+ <month type="12">phalguna</month>
+ </monthWidth>
+ </monthContext>
+ <monthContext type="stand-alone">
+ <monthWidth type="abbreviated">
+ <month type="1">chaitra</month>
+ <month type="2">vaisakha</month>
+ <month type="3">jyaistha</month>
+ <month type="4">asadha</month>
+ <month type="5">sravana</month>
+ <month type="6">bhadra</month>
+ <month type="7">asvina</month>
+ <month type="8">kartika</month>
+ <month type="9">agrahayana</month>
+ <month type="10">pausa</month>
+ <month type="11">magha</month>
+ <month type="12">phalguna</month>
+ </monthWidth>
+ <monthWidth type="narrow">
+ <month type="1">1</month>
+ <month type="2">2</month>
+ <month type="3">3</month>
+ <month type="4">4</month>
+ <month type="5">5</month>
+ <month type="6">6</month>
+ <month type="7">7</month>
+ <month type="8">8</month>
+ <month type="9">9</month>
+ <month type="10">10</month>
+ <month type="11">11</month>
+ <month type="12">12</month>
+ </monthWidth>
+ <monthWidth type="wide">
+ <month type="1">chaitra</month>
+ <month type="2">vaisakha</month>
+ <month type="3">jyaistha</month>
+ <month type="4">asadha</month>
+ <month type="5">sravana</month>
+ <month type="6">bhadra</month>
+ <month type="7">asvina</month>
+ <month type="8">kartika</month>
+ <month type="9">agrahayana</month>
+ <month type="10">pausa</month>
+ <month type="11">magha</month>
+ <month type="12">phalguna</month>
+ </monthWidth>
+ </monthContext>
+ </months>
+ <eras>
+ <eraNames>
+ <era type="0">saka</era>
+ </eraNames>
+ <eraAbbr>
+ <era type="0">saka</era>
+ </eraAbbr>
+ <eraNarrow>
+ <era type="0">saka</era>
+ </eraNarrow>
+ </eras>
+ <dateFormats>
+ <dateFormatLength type="full">
+ <dateFormat>
+ <pattern draft="contributed">EEEE d. MMMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="long">
+ <dateFormat>
+ <pattern draft="contributed">d. MMMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="medium">
+ <dateFormat>
+ <pattern draft="contributed">d. MMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="short">
+ <dateFormat>
+ <pattern draft="contributed">d.M.y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ </dateFormats>
+ <dateTimeFormats>
+ <dateTimeFormatLength type="full">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="long">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="medium">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="short">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <availableFormats>
+ <dateFormatItem id="d" draft="contributed">d.</dateFormatItem>
+ <dateFormatItem id="E" draft="contributed">ccc</dateFormatItem>
+ <dateFormatItem id="Ed" draft="contributed">E d.</dateFormatItem>
+ <dateFormatItem id="Gy" draft="contributed">y G</dateFormatItem>
+ <dateFormatItem id="GyMMM" draft="contributed">MMM y G</dateFormatItem>
+ <dateFormatItem id="GyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
+ <dateFormatItem id="GyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
+ <dateFormatItem id="M" draft="contributed">L.</dateFormatItem>
+ <dateFormatItem id="Md" draft="contributed">d.M.</dateFormatItem>
+ <dateFormatItem id="MEd" draft="contributed">E d.M</dateFormatItem>
+ <dateFormatItem id="MMdd" draft="contributed">d.M.</dateFormatItem>
+ <dateFormatItem id="MMM" draft="contributed">LLL</dateFormatItem>
+ <dateFormatItem id="MMMd" draft="contributed">d. MMM</dateFormatItem>
+ <dateFormatItem id="MMMEd" draft="contributed">E d. MMM</dateFormatItem>
+ <dateFormatItem id="MMMMd" draft="contributed">d. MMMM</dateFormatItem>
+ <dateFormatItem id="y" draft="contributed">y G</dateFormatItem>
+ <dateFormatItem id="yyyy" draft="contributed">y G</dateFormatItem>
+ <dateFormatItem id="yyyyM" draft="contributed">M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMd" draft="contributed">d.M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMEd" draft="contributed">E d.M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMM" draft="contributed">MM.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMM" draft="contributed">MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMM" draft="contributed">MMMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyQQQ" draft="contributed">QQQ y G</dateFormatItem>
+ <dateFormatItem id="yyyyQQQQ" draft="contributed">QQQQ y G</dateFormatItem>
+ </availableFormats>
+ <intervalFormats>
+ <intervalFormatFallback draft="contributed">{0}–{1}</intervalFormatFallback>
+ <intervalFormatItem id="d">
+ <greatestDifference id="d" draft="contributed">d.–d.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="h">
+ <greatestDifference id="a" draft="contributed">h a–h a</greatestDifference>
+ <greatestDifference id="h" draft="contributed">h–h a</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="H">
+ <greatestDifference id="H" draft="contributed">HH–HH</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="hv">
+ <greatestDifference id="a" draft="contributed">h a–h a v</greatestDifference>
+ <greatestDifference id="h" draft="contributed">h–h a v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Hv">
+ <greatestDifference id="H" draft="contributed">HH–HH v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="M">
+ <greatestDifference id="M" draft="contributed">M.–M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Md">
+ <greatestDifference id="d" draft="contributed">d.M.–d.M.</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d.M.–d.M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MEd">
+ <greatestDifference id="d" draft="contributed">E d.M.–E d.M.</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d.M.–E d.M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMM">
+ <greatestDifference id="M" draft="contributed">MMM–MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMMd">
+ <greatestDifference id="d" draft="contributed">d.–d. MMM</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d. MMM–d. MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMMEd">
+ <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="y">
+ <greatestDifference id="y" draft="contributed">y–y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yM">
+ <greatestDifference id="M" draft="contributed">M.y–M.y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">M.y–M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMd">
+ <greatestDifference id="d" draft="contributed">d.M.y–d.M.y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d.M.y–d.M.y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">d.M.y–d.M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMEd">
+ <greatestDifference id="d" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMM">
+ <greatestDifference id="M" draft="contributed">MMM–MMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">MMM y–MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMd">
+ <greatestDifference id="d" draft="contributed">d.–d. MMM y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d. MMM–d. MMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">d. MMM y–d. MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMEd">
+ <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">E d. MMM y–E d. MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMM">
+ <greatestDifference id="M" draft="contributed">MMMM–MMMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">MMMM y–MMMM y G</greatestDifference>
+ </intervalFormatItem>
+ </intervalFormats>
+ </dateTimeFormats>
+ </calendar>
+ <calendar type="islamic">
+ <months>
+ <monthContext type="format">
+ <monthWidth type="abbreviated">
+ <month type="1">muh.</month>
+ <month type="2">saf.</month>
+ <month type="3">rab. I</month>
+ <month type="4">rab. II</month>
+ <month type="5">jum. I</month>
+ <month type="6">jum. II</month>
+ <month type="7">raj.</month>
+ <month type="8">sha.</month>
+ <month type="9">ram.</month>
+ <month type="10">shaw.</month>
+ <month type="11">dhuʻl-q.</month>
+ <month type="12">dhuʻl-h.</month>
+ </monthWidth>
+ <monthWidth type="narrow">
+ <month type="1">1</month>
+ <month type="2">2</month>
+ <month type="3">3</month>
+ <month type="4">4</month>
+ <month type="5">5</month>
+ <month type="6">6</month>
+ <month type="7">7</month>
+ <month type="8">8</month>
+ <month type="9">9</month>
+ <month type="10">10</month>
+ <month type="11">11</month>
+ <month type="12">12</month>
+ </monthWidth>
+ <monthWidth type="wide">
+ <month type="1">muharram</month>
+ <month type="2">safar</month>
+ <month type="3">rabiʻ I</month>
+ <month type="4">rabiʻ II</month>
+ <month type="5">jumada I</month>
+ <month type="6">jumada II</month>
+ <month type="7">rajab</month>
+ <month type="8">shaʻban</month>
+ <month type="9">ramadan</month>
+ <month type="10">shawwal</month>
+ <month type="11">dhuʻl-qiʻdah</month>
+ <month type="12">dhuʻl-hijjah</month>
+ </monthWidth>
+ </monthContext>
+ <monthContext type="stand-alone">
+ <monthWidth type="abbreviated">
+ <month type="1">muh.</month>
+ <month type="2">saf.</month>
+ <month type="3">rab. I</month>
+ <month type="4">rab. II</month>
+ <month type="5">jum. I</month>
+ <month type="6">jum. II</month>
+ <month type="7">raj.</month>
+ <month type="8">sha.</month>
+ <month type="9">ram.</month>
+ <month type="10">shaw.</month>
+ <month type="11">dhuʻl-q.</month>
+ <month type="12">Dhuʻl-H.</month>
+ </monthWidth>
+ <monthWidth type="narrow">
+ <month type="1">1</month>
+ <month type="2">2</month>
+ <month type="3">3</month>
+ <month type="4">4</month>
+ <month type="5">5</month>
+ <month type="6">6</month>
+ <month type="7">7</month>
+ <month type="8">8</month>
+ <month type="9">9</month>
+ <month type="10">10</month>
+ <month type="11">11</month>
+ <month type="12">12</month>
+ </monthWidth>
+ <monthWidth type="wide">
+ <month type="1">muharram</month>
+ <month type="2">safar</month>
+ <month type="3">rabiʻ I</month>
+ <month type="4">rabiʻ II</month>
+ <month type="5">jumada I</month>
+ <month type="6">jumada II</month>
+ <month type="7">rajab</month>
+ <month type="8">shaʻban</month>
+ <month type="9">ramadan</month>
+ <month type="10">shawwal</month>
+ <month type="11">dhuʻl-qiʻdah</month>
+ <month type="12">dhuʻl-hijjah</month>
+ </monthWidth>
+ </monthContext>
+ </months>
+ <eras>
+ <eraNames>
+ <era type="0">AH</era>
+ </eraNames>
+ <eraAbbr>
+ <era type="0">AH</era>
+ </eraAbbr>
+ <eraNarrow>
+ <era type="0">AH</era>
+ </eraNarrow>
+ </eras>
+ <dateFormats>
+ <dateFormatLength type="full">
+ <dateFormat>
+ <pattern draft="contributed">EEEE d. MMMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="long">
+ <dateFormat>
+ <pattern draft="contributed">d. MMMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="medium">
+ <dateFormat>
+ <pattern draft="contributed">d. MMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="short">
+ <dateFormat>
+ <pattern draft="contributed">d.M.y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ </dateFormats>
+ <dateTimeFormats>
+ <dateTimeFormatLength type="full">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="long">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="medium">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="short">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <availableFormats>
+ <dateFormatItem id="d" draft="contributed">d.</dateFormatItem>
+ <dateFormatItem id="E" draft="contributed">ccc</dateFormatItem>
+ <dateFormatItem id="Ed" draft="contributed">E d.</dateFormatItem>
+ <dateFormatItem id="Gy" draft="contributed">y G</dateFormatItem>
+ <dateFormatItem id="GyMMM" draft="contributed">MMM y G</dateFormatItem>
+ <dateFormatItem id="GyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
+ <dateFormatItem id="GyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
+ <dateFormatItem id="M" draft="contributed">L.</dateFormatItem>
+ <dateFormatItem id="Md" draft="contributed">d.M.</dateFormatItem>
+ <dateFormatItem id="MEd" draft="contributed">E d.M</dateFormatItem>
+ <dateFormatItem id="MMdd" draft="contributed">d.M.</dateFormatItem>
+ <dateFormatItem id="MMM" draft="contributed">LLL</dateFormatItem>
+ <dateFormatItem id="MMMd" draft="contributed">d. MMM</dateFormatItem>
+ <dateFormatItem id="MMMEd" draft="contributed">E d. MMM</dateFormatItem>
+ <dateFormatItem id="MMMMd" draft="contributed">d. MMMM</dateFormatItem>
+ <dateFormatItem id="y" draft="contributed">y G</dateFormatItem>
+ <dateFormatItem id="yyyy" draft="contributed">y G</dateFormatItem>
+ <dateFormatItem id="yyyyM" draft="contributed">M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMd" draft="contributed">d.M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMEd" draft="contributed">E d.M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMM" draft="contributed">MM.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMM" draft="contributed">MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMM" draft="contributed">MMMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyQQQ" draft="contributed">QQQ y G</dateFormatItem>
+ <dateFormatItem id="yyyyQQQQ" draft="contributed">QQQQ y G</dateFormatItem>
+ </availableFormats>
+ <intervalFormats>
+ <intervalFormatFallback draft="contributed">{0}–{1}</intervalFormatFallback>
+ <intervalFormatItem id="d">
+ <greatestDifference id="d" draft="contributed">d.–d.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="h">
+ <greatestDifference id="a" draft="contributed">h a–h a</greatestDifference>
+ <greatestDifference id="h" draft="contributed">h–h a</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="H">
+ <greatestDifference id="H" draft="contributed">HH–HH</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="hv">
+ <greatestDifference id="a" draft="contributed">h a–h a v</greatestDifference>
+ <greatestDifference id="h" draft="contributed">h–h a v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Hv">
+ <greatestDifference id="H" draft="contributed">HH–HH v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="M">
+ <greatestDifference id="M" draft="contributed">M.–M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Md">
+ <greatestDifference id="d" draft="contributed">d.M.–d.M.</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d.M.–d.M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MEd">
+ <greatestDifference id="d" draft="contributed">E d.M.–E d.M.</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d.M.–E d.M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMM">
+ <greatestDifference id="M" draft="contributed">MMM–MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMMd">
+ <greatestDifference id="d" draft="contributed">d.–d. MMM</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d. MMM–d. MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMMEd">
+ <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="y">
+ <greatestDifference id="y" draft="contributed">y–y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yM">
+ <greatestDifference id="M" draft="contributed">M.y–M.y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">M.y–M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMd">
+ <greatestDifference id="d" draft="contributed">d.M.y–d.M.y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d.M.y–d.M.y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">d.M.y–d.M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMEd">
+ <greatestDifference id="d" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMM">
+ <greatestDifference id="M" draft="contributed">MMM–MMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">MMM y–MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMd">
+ <greatestDifference id="d" draft="contributed">d.–d. MMM y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d. MMM–d. MMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">d. MMM y–d. MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMEd">
+ <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">E d. MMM y–E d. MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMM">
+ <greatestDifference id="M" draft="contributed">MMMM–MMMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">MMMM y–MMMM y G</greatestDifference>
+ </intervalFormatItem>
+ </intervalFormats>
+ </dateTimeFormats>
+ </calendar>
+ <calendar type="japanese">
+ <eras>
+ <eraNames>
+ <era type="0" draft="contributed">Taika (645–650)</era>
+ <era type="1" draft="contributed">Hakuchi (650–671)</era>
+ <era type="2" draft="contributed">Hakuhō (672–686)</era>
+ <era type="3" draft="contributed">Shuchō (686–701)</era>
+ <era type="4" draft="contributed">Taihō (701–704)</era>
+ <era type="5" draft="contributed">Keiun (704–708)</era>
+ <era type="6" draft="contributed">Wadō (708–715)</era>
+ <era type="7" draft="contributed">Reiki (715–717)</era>
+ <era type="8" draft="contributed">Yōrō (717–724)</era>
+ <era type="9" draft="contributed">Jinki (724–729)</era>
+ <era type="10" draft="contributed">Tenpyō (729–749)</era>
+ <era type="11" draft="contributed">Tenpyō-kampō (749-749)</era>
+ <era type="12" draft="contributed">Tenpyō-shōhō (749-757)</era>
+ <era type="13" draft="contributed">Tenpyō-hōji (757-765)</era>
+ <era type="14" draft="contributed">Tenpyō-jingo (765-767)</era>
+ <era type="15" draft="contributed">Jingo-keiun (767-770)</era>
+ <era type="16" draft="contributed">Hōki (770–780)</era>
+ <era type="17" draft="contributed">Ten-ō (781-782)</era>
+ <era type="18" draft="contributed">Enryaku (782–806)</era>
+ <era type="19" draft="contributed">Daidō (806–810)</era>
+ <era type="20" draft="contributed">Kōnin (810–824)</era>
+ <era type="21" draft="contributed">Tenchō (824–834)</era>
+ <era type="22" draft="contributed">Jōwa (834–848)</era>
+ <era type="23" draft="contributed">Kajō (848–851)</era>
+ <era type="24" draft="contributed">Ninju (851–854)</era>
+ <era type="25" draft="contributed">Saikō (854–857)</era>
+ <era type="26" draft="contributed">Ten-an (857-859)</era>
+ <era type="27" draft="contributed">Jōgan (859–877)</era>
+ <era type="28" draft="contributed">Gangyō (877–885)</era>
+ <era type="29" draft="contributed">Ninna (885–889)</era>
+ <era type="30" draft="contributed">Kanpyō (889–898)</era>
+ <era type="31" draft="contributed">Shōtai (898–901)</era>
+ <era type="32" draft="contributed">Engi (901–923)</era>
+ <era type="33" draft="contributed">Enchō (923–931)</era>
+ <era type="34" draft="contributed">Jōhei (931–938)</era>
+ <era type="35" draft="contributed">Tengyō (938–947)</era>
+ <era type="36" draft="contributed">Tenryaku (947–957)</era>
+ <era type="37" draft="contributed">Tentoku (957–961)</era>
+ <era type="38" draft="contributed">Ōwa (961–964)</era>
+ <era type="39" draft="contributed">Kōhō (964–968)</era>
+ <era type="40" draft="contributed">Anna (968–970)</era>
+ <era type="41" draft="contributed">Tenroku (970–973)</era>
+ <era type="42" draft="contributed">Ten’en (973–976)</era>
+ <era type="43" draft="contributed">Jōgen (976–978)</era>
+ <era type="44" draft="contributed">Tengen (978–983)</era>
+ <era type="45" draft="contributed">Eikan (983–985)</era>
+ <era type="46" draft="contributed">Kanna (985–987)</era>
+ <era type="47" draft="contributed">Eien (987–989)</era>
+ <era type="48" draft="contributed">Eiso (989–990)</era>
+ <era type="49" draft="contributed">Shōryaku (990–995)</era>
+ <era type="50" draft="contributed">Chōtoku (995–999)</era>
+ <era type="51" draft="contributed">Chōhō (999–1004)</era>
+ <era type="52" draft="contributed">Kankō (1004–1012)</era>
+ <era type="53" draft="contributed">Chōwa (1012–1017)</era>
+ <era type="54" draft="contributed">Kannin (1017–1021)</era>
+ <era type="55" draft="contributed">Jian (1021–1024)</era>
+ <era type="56" draft="contributed">Manju (1024–1028)</era>
+ <era type="57" draft="contributed">Chōgen (1028–1037)</era>
+ <era type="58" draft="contributed">Chōryaku (1037–1040)</era>
+ <era type="59" draft="contributed">Chōkyū (1040–1044)</era>
+ <era type="60" draft="contributed">Kantoku (1044–1046)</era>
+ <era type="61" draft="contributed">Eishō (1046–1053)</era>
+ <era type="62" draft="contributed">Tengi (1053–1058)</era>
+ <era type="63" draft="contributed">Kōhei (1058–1065)</era>
+ <era type="64" draft="contributed">Jiryaku (1065–1069)</era>
+ <era type="65" draft="contributed">Enkyū (1069–1074)</era>
+ <era type="66" draft="contributed">Shōho (1074–1077)</era>
+ <era type="67" draft="contributed">Shōryaku (1077–1081)</era>
+ <era type="68" draft="contributed">Eihō (1081–1084)</era>
+ <era type="69" draft="contributed">Ōtoku (1084–1087)</era>
+ <era type="70" draft="contributed">Kanji (1087–1094)</era>
+ <era type="71" draft="contributed">Kahō (1094–1096)</era>
+ <era type="72" draft="contributed">Eichō (1096–1097)</era>
+ <era type="73" draft="contributed">Jōtoku (1097–1099)</era>
+ <era type="74" draft="contributed">Kōwa (1099–1104)</era>
+ <era type="75" draft="contributed">Chōji (1104–1106)</era>
+ <era type="76" draft="contributed">Kashō (1106–1108)</era>
+ <era type="77" draft="contributed">Tennin (1108–1110)</era>
+ <era type="78" draft="contributed">Ten-ei (1110-1113)</era>
+ <era type="79" draft="contributed">Eikyū (1113–1118)</era>
+ <era type="80" draft="contributed">Gen’ei (1118–1120)</era>
+ <era type="81" draft="contributed">Hōan (1120–1124)</era>
+ <era type="82" draft="contributed">Tenji (1124–1126)</era>
+ <era type="83" draft="contributed">Daiji (1126–1131)</era>
+ <era type="84" draft="contributed">Tenshō (1131–1132)</era>
+ <era type="85" draft="contributed">Chōshō (1132–1135)</era>
+ <era type="86" draft="contributed">Hōen (1135–1141)</era>
+ <era type="87" draft="contributed">Eiji (1141–1142)</era>
+ <era type="88" draft="contributed">Kōji (1142–1144)</era>
+ <era type="89" draft="contributed">Ten’yō (1144–1145)</era>
+ <era type="90" draft="contributed">Kyūan (1145–1151)</era>
+ <era type="91" draft="contributed">Ninpei (1151–1154)</era>
+ <era type="92" draft="contributed">Kyūju (1154–1156)</era>
+ <era type="93" draft="contributed">Hōgen (1156–1159)</era>
+ <era type="94" draft="contributed">Heiji (1159–1160)</era>
+ <era type="95" draft="contributed">Eiryaku (1160–1161)</era>
+ <era type="96" draft="contributed">Ōho (1161–1163)</era>
+ <era type="97" draft="contributed">Chōkan (1163–1165)</era>
+ <era type="98" draft="contributed">Eiman (1165–1166)</era>
+ <era type="99" draft="contributed">Nin’an (1166–1169)</era>
+ <era type="100" draft="contributed">Kaō (1169–1171)</era>
+ <era type="101" draft="contributed">Shōan (1171–1175)</era>
+ <era type="102" draft="contributed">Angen (1175–1177)</era>
+ <era type="103" draft="contributed">Jishō (1177–1181)</era>
+ <era type="104" draft="contributed">Yōwa (1181–1182)</era>
+ <era type="105" draft="contributed">Juei (1182–1184)</era>
+ <era type="106" draft="contributed">Genryaku (1184–1185)</era>
+ <era type="107" draft="contributed">Bunji (1185–1190)</era>
+ <era type="108" draft="contributed">Kenkyū (1190–1199)</era>
+ <era type="109" draft="contributed">Shōji (1199–1201)</era>
+ <era type="110" draft="contributed">Kennin (1201–1204)</era>
+ <era type="111" draft="contributed">Genkyū (1204–1206)</era>
+ <era type="112" draft="contributed">Ken’ei (1206–1207)</era>
+ <era type="113" draft="contributed">Jōgen (1207–1211)</era>
+ <era type="114" draft="contributed">Kenryaku (1211–1213)</era>
+ <era type="115" draft="contributed">Kenpō (1213–1219)</era>
+ <era type="116" draft="contributed">Jōkyū (1219–1222)</era>
+ <era type="117" draft="contributed">Jōō (1222–1224)</era>
+ <era type="118" draft="contributed">Gennin (1224–1225)</era>
+ <era type="119" draft="contributed">Karoku (1225–1227)</era>
+ <era type="120" draft="contributed">Antei (1227–1229)</era>
+ <era type="121" draft="contributed">Kanki (1229–1232)</era>
+ <era type="122" draft="contributed">Jōei (1232–1233)</era>
+ <era type="123" draft="contributed">Tenpuku (1233–1234)</era>
+ <era type="124" draft="contributed">Bunryaku (1234–1235)</era>
+ <era type="125" draft="contributed">Katei (1235–1238)</era>
+ <era type="126" draft="contributed">Ryakunin (1238–1239)</era>
+ <era type="127" draft="contributed">En’ō (1239–1240)</era>
+ <era type="128" draft="contributed">Ninji (1240–1243)</era>
+ <era type="129" draft="contributed">Kangen (1243–1247)</era>
+ <era type="130" draft="contributed">Hōji (1247–1249)</era>
+ <era type="131" draft="contributed">Kenchō (1249–1256)</era>
+ <era type="132" draft="contributed">Kōgen (1256–1257)</era>
+ <era type="133" draft="contributed">Shōka (1257–1259)</era>
+ <era type="134" draft="contributed">Shōgen (1259–1260)</era>
+ <era type="135" draft="contributed">Bun’ō (1260–1261)</era>
+ <era type="136" draft="contributed">Kōchō (1261–1264)</era>
+ <era type="137" draft="contributed">Bun’ei (1264–1275)</era>
+ <era type="138" draft="contributed">Kenji (1275–1278)</era>
+ <era type="139" draft="contributed">Kōan (1278–1288)</era>
+ <era type="140" draft="contributed">Shōō (1288–1293)</era>
+ <era type="141" draft="contributed">Einin (1293–1299)</era>
+ <era type="142" draft="contributed">Shōan (1299–1302)</era>
+ <era type="143" draft="contributed">Kengen (1302–1303)</era>
+ <era type="144" draft="contributed">Kagen (1303–1306)</era>
+ <era type="145" draft="contributed">Tokuji (1306–1308)</era>
+ <era type="146" draft="contributed">Enkyō (1308–1311)</era>
+ <era type="147" draft="contributed">Ōchō (1311–1312)</era>
+ <era type="148" draft="contributed">Shōwa (1312–1317)</era>
+ <era type="149" draft="contributed">Bunpō (1317–1319)</era>
+ <era type="150" draft="contributed">Genō (1319–1321)</era>
+ <era type="151" draft="contributed">Genkō (1321–1324)</era>
+ <era type="152" draft="contributed">Shōchū (1324–1326)</era>
+ <era type="153" draft="contributed">Karyaku (1326–1329)</era>
+ <era type="154" draft="contributed">Gentoku (1329–1331)</era>
+ <era type="155" draft="contributed">Genkō (1331–1334)</era>
+ <era type="156" draft="contributed">Kenmu (1334–1336)</era>
+ <era type="157" draft="contributed">Engen (1336–1340)</era>
+ <era type="158" draft="contributed">Kōkoku (1340–1346)</era>
+ <era type="159" draft="contributed">Shōhei (1346–1370)</era>
+ <era type="160" draft="contributed">Kentoku (1370–1372)</era>
+ <era type="161" draft="contributed">Bunchū (1372–1375)</era>
+ <era type="162" draft="contributed">Tenju (1375–1379)</era>
+ <era type="163" draft="contributed">Kōryaku (1379–1381)</era>
+ <era type="164" draft="contributed">Kōwa (1381–1384)</era>
+ <era type="165" draft="contributed">Genchū (1384–1392)</era>
+ <era type="166" draft="contributed">Meitoku (1384–1387)</era>
+ <era type="167" draft="contributed">Kakei (1387–1389)</era>
+ <era type="168" draft="contributed">Kōō (1389–1390)</era>
+ <era type="169" draft="contributed">Meitoku (1390–1394)</era>
+ <era type="170" draft="contributed">Ōei (1394–1428)</era>
+ <era type="171" draft="contributed">Shōchō (1428–1429)</era>
+ <era type="172" draft="contributed">Eikyō (1429–1441)</era>
+ <era type="173" draft="contributed">Kakitsu (1441–1444)</era>
+ <era type="174" draft="contributed">Bun’an (1444–1449)</era>
+ <era type="175" draft="contributed">Hōtoku (1449–1452)</era>
+ <era type="176" draft="contributed">Kyōtoku (1452–1455)</era>
+ <era type="177" draft="contributed">Kōshō (1455–1457)</era>
+ <era type="178" draft="contributed">Chōroku (1457–1460)</era>
+ <era type="179" draft="contributed">Kanshō (1460–1466)</era>
+ <era type="180" draft="contributed">Bunshō (1466–1467)</era>
+ <era type="181" draft="contributed">Ōnin (1467–1469)</era>
+ <era type="182" draft="contributed">Bunmei (1469–1487)</era>
+ <era type="183" draft="contributed">Chōkyō (1487–1489)</era>
+ <era type="184" draft="contributed">Entoku (1489–1492)</era>
+ <era type="185" draft="contributed">Meiō (1492–1501)</era>
+ <era type="186" draft="contributed">Bunki (1501–1504)</era>
+ <era type="187" draft="contributed">Eishō (1504–1521)</era>
+ <era type="188" draft="contributed">Taiei (1521–1528)</era>
+ <era type="189" draft="contributed">Kyōroku (1528–1532)</era>
+ <era type="190" draft="contributed">Tenbun (1532–1555)</era>
+ <era type="191" draft="contributed">Kōji (1555–1558)</era>
+ <era type="192" draft="contributed">Eiroku (1558–1570)</era>
+ <era type="193" draft="contributed">Genki (1570–1573)</era>
+ <era type="194" draft="contributed">Tenshō (1573–1592)</era>
+ <era type="195" draft="contributed">Bunroku (1592–1596)</era>
+ <era type="196" draft="contributed">Keichō (1596–1615)</era>
+ <era type="197" draft="contributed">Genna (1615–1624)</era>
+ <era type="198" draft="contributed">Kan’ei (1624–1644)</era>
+ <era type="199" draft="contributed">Shōho (1644–1648)</era>
+ <era type="200" draft="contributed">Keian (1648–1652)</era>
+ <era type="201" draft="contributed">Jōō (1652–1655)</era>
+ <era type="202" draft="contributed">Meireki (1655–1658)</era>
+ <era type="203" draft="contributed">Manji (1658–1661)</era>
+ <era type="204" draft="contributed">Kanbun (1661–1673)</era>
+ <era type="205" draft="contributed">Enpō (1673–1681)</era>
+ <era type="206" draft="contributed">Tenna (1681–1684)</era>
+ <era type="207" draft="contributed">Jōkyō (1684–1688)</era>
+ <era type="208" draft="contributed">Genroku (1688–1704)</era>
+ <era type="209" draft="contributed">Hōei (1704–1711)</era>
+ <era type="210" draft="contributed">Shōtoku (1711–1716)</era>
+ <era type="211" draft="contributed">Kyōhō (1716–1736)</era>
+ <era type="212" draft="contributed">Genbun (1736–1741)</era>
+ <era type="213" draft="contributed">Kanpō (1741–1744)</era>
+ <era type="214" draft="contributed">Enkyō (1744–1748)</era>
+ <era type="215" draft="contributed">Kan’en (1748–1751)</era>
+ <era type="216" draft="contributed">Hōreki (1751–1764)</era>
+ <era type="217" draft="contributed">Meiwa (1764–1772)</era>
+ <era type="218" draft="contributed">An’ei (1772–1781)</era>
+ <era type="219" draft="contributed">Tenmei (1781–1789)</era>
+ <era type="220" draft="contributed">Kansei (1789–1801)</era>
+ <era type="221" draft="contributed">Kyōwa (1801–1804)</era>
+ <era type="222" draft="contributed">Bunka (1804–1818)</era>
+ <era type="223" draft="contributed">Bunsei (1818–1830)</era>
+ <era type="224" draft="contributed">Tenpō (1830–1844)</era>
+ <era type="225" draft="contributed">Kōka (1844–1848)</era>
+ <era type="226" draft="contributed">Kaei (1848–1854)</era>
+ <era type="227" draft="contributed">Ansei (1854–1860)</era>
+ <era type="228" draft="contributed">Man’en (1860–1861)</era>
+ <era type="229" draft="contributed">Bunkyū (1861–1864)</era>
+ <era type="230" draft="contributed">Genji (1864–1865)</era>
+ <era type="231" draft="contributed">Keiō (1865–1868)</era>
+ <era type="232" draft="contributed">Meiji</era>
+ <era type="233" draft="contributed">Taishō</era>
+ <era type="234" draft="contributed">Shōwa</era>
+ <era type="235" draft="contributed">Heisei</era>
+ </eraNames>
+ <eraAbbr>
+ <era type="0" draft="contributed">Taika (645–650)</era>
+ <era type="1" draft="contributed">Hakuchi (650–671)</era>
+ <era type="2" draft="contributed">Hakuhō (672–686)</era>
+ <era type="3" draft="contributed">Shuchō (686–701)</era>
+ <era type="4" draft="contributed">Taihō (701–704)</era>
+ <era type="5" draft="contributed">Keiun (704–708)</era>
+ <era type="6" draft="contributed">Wadō (708–715)</era>
+ <era type="7" draft="contributed">Reiki (715–717)</era>
+ <era type="8" draft="contributed">Yōrō (717–724)</era>
+ <era type="9" draft="contributed">Jinki (724–729)</era>
+ <era type="10" draft="contributed">Tenpyō (729–749)</era>
+ <era type="11" draft="contributed">Tenpyō-kampō (749-749)</era>
+ <era type="12" draft="contributed">Tenpyō-shōhō (749-757)</era>
+ <era type="13" draft="contributed">Tenpyō-hōji (757-765)</era>
+ <era type="14" draft="contributed">Tenpyō-jingo (765-767)</era>
+ <era type="15" draft="contributed">Jingo-keiun (767-770)</era>
+ <era type="16" draft="contributed">Hōki (770–780)</era>
+ <era type="17" draft="contributed">Ten-ō (781-782)</era>
+ <era type="18" draft="contributed">Enryaku (782–806)</era>
+ <era type="19" draft="contributed">Daidō (806–810)</era>
+ <era type="20" draft="contributed">Kōnin (810–824)</era>
+ <era type="21" draft="contributed">Tenchō (824–834)</era>
+ <era type="22" draft="contributed">Jōwa (834–848)</era>
+ <era type="23" draft="contributed">Kajō (848–851)</era>
+ <era type="24" draft="contributed">Ninju (851–854)</era>
+ <era type="25" draft="contributed">Saikō (854–857)</era>
+ <era type="26" draft="contributed">Ten-an (857-859)</era>
+ <era type="27" draft="contributed">Jōgan (859–877)</era>
+ <era type="28" draft="contributed">Gangyō (877–885)</era>
+ <era type="29" draft="contributed">Ninna (885–889)</era>
+ <era type="30" draft="contributed">Kanpyō (889–898)</era>
+ <era type="31" draft="contributed">Shōtai (898–901)</era>
+ <era type="32" draft="contributed">Engi (901–923)</era>
+ <era type="33" draft="contributed">Enchō (923–931)</era>
+ <era type="34" draft="contributed">Jōhei (931–938)</era>
+ <era type="35" draft="contributed">Tengyō (938–947)</era>
+ <era type="36" draft="contributed">Tenryaku (947–957)</era>
+ <era type="37" draft="contributed">Tentoku (957–961)</era>
+ <era type="38" draft="contributed">Ōwa (961–964)</era>
+ <era type="39" draft="contributed">Kōhō (964–968)</era>
+ <era type="40" draft="contributed">Anna (968–970)</era>
+ <era type="41" draft="contributed">Tenroku (970–973)</era>
+ <era type="42" draft="contributed">Ten’en (973–976)</era>
+ <era type="43" draft="contributed">Jōgen (976–978)</era>
+ <era type="44" draft="contributed">Tengen (978–983)</era>
+ <era type="45" draft="contributed">Eikan (983–985)</era>
+ <era type="46" draft="contributed">Kanna (985–987)</era>
+ <era type="47" draft="contributed">Eien (987–989)</era>
+ <era type="48" draft="contributed">Eiso (989–990)</era>
+ <era type="49" draft="contributed">Shōryaku (990–995)</era>
+ <era type="50" draft="contributed">Chōtoku (995–999)</era>
+ <era type="51" draft="contributed">Chōhō (999–1004)</era>
+ <era type="52" draft="contributed">Kankō (1004–1012)</era>
+ <era type="53" draft="contributed">Chōwa (1012–1017)</era>
+ <era type="54" draft="contributed">Kannin (1017–1021)</era>
+ <era type="55" draft="contributed">Jian (1021–1024)</era>
+ <era type="56" draft="contributed">Manju (1024–1028)</era>
+ <era type="57" draft="contributed">Chōgen (1028–1037)</era>
+ <era type="58" draft="contributed">Chōryaku (1037–1040)</era>
+ <era type="59" draft="contributed">Chōkyū (1040–1044)</era>
+ <era type="60" draft="contributed">Kantoku (1044–1046)</era>
+ <era type="61" draft="contributed">Eishō (1046–1053)</era>
+ <era type="62" draft="contributed">Tengi (1053–1058)</era>
+ <era type="63" draft="contributed">Kōhei (1058–1065)</era>
+ <era type="64" draft="contributed">Jiryaku (1065–1069)</era>
+ <era type="65" draft="contributed">Enkyū (1069–1074)</era>
+ <era type="66" draft="contributed">Shōho (1074–1077)</era>
+ <era type="67" draft="contributed">Shōryaku (1077–1081)</era>
+ <era type="68" draft="contributed">Eihō (1081–1084)</era>
+ <era type="69" draft="contributed">Ōtoku (1084–1087)</era>
+ <era type="70" draft="contributed">Kanji (1087–1094)</era>
+ <era type="71" draft="contributed">Kahō (1094–1096)</era>
+ <era type="72" draft="contributed">Eichō (1096–1097)</era>
+ <era type="73" draft="contributed">Jōtoku (1097–1099)</era>
+ <era type="74" draft="contributed">Kōwa (1099–1104)</era>
+ <era type="75" draft="contributed">Chōji (1104–1106)</era>
+ <era type="76" draft="contributed">Kashō (1106–1108)</era>
+ <era type="77" draft="contributed">Tennin (1108–1110)</era>
+ <era type="78" draft="contributed">Ten-ei (1110-1113)</era>
+ <era type="79" draft="contributed">Eikyū (1113–1118)</era>
+ <era type="80" draft="contributed">Gen’ei (1118–1120)</era>
+ <era type="81" draft="contributed">Hōan (1120–1124)</era>
+ <era type="82" draft="contributed">Tenji (1124–1126)</era>
+ <era type="83" draft="contributed">Daiji (1126–1131)</era>
+ <era type="84" draft="contributed">Tenshō (1131–1132)</era>
+ <era type="85" draft="contributed">Chōshō (1132–1135)</era>
+ <era type="86" draft="contributed">Hōen (1135–1141)</era>
+ <era type="87" draft="contributed">Eiji (1141–1142)</era>
+ <era type="88" draft="contributed">Kōji (1142–1144)</era>
+ <era type="89" draft="contributed">Ten’yō (1144–1145)</era>
+ <era type="90" draft="contributed">Kyūan (1145–1151)</era>
+ <era type="91" draft="contributed">Ninpei (1151–1154)</era>
+ <era type="92" draft="contributed">Kyūju (1154–1156)</era>
+ <era type="93" draft="contributed">Hōgen (1156–1159)</era>
+ <era type="94" draft="contributed">Heiji (1159–1160)</era>
+ <era type="95" draft="contributed">Eiryaku (1160–1161)</era>
+ <era type="96" draft="contributed">Ōho (1161–1163)</era>
+ <era type="97" draft="contributed">Chōkan (1163–1165)</era>
+ <era type="98" draft="contributed">Eiman (1165–1166)</era>
+ <era type="99" draft="contributed">Nin’an (1166–1169)</era>
+ <era type="100" draft="contributed">Kaō (1169–1171)</era>
+ <era type="101" draft="contributed">Shōan (1171–1175)</era>
+ <era type="102" draft="contributed">Angen (1175–1177)</era>
+ <era type="103" draft="contributed">Jishō (1177–1181)</era>
+ <era type="104" draft="contributed">Yōwa (1181–1182)</era>
+ <era type="105" draft="contributed">Juei (1182–1184)</era>
+ <era type="106" draft="contributed">Genryaku (1184–1185)</era>
+ <era type="107" draft="contributed">Bunji (1185–1190)</era>
+ <era type="108" draft="contributed">Kenkyū (1190–1199)</era>
+ <era type="109" draft="contributed">Shōji (1199–1201)</era>
+ <era type="110" draft="contributed">Kennin (1201–1204)</era>
+ <era type="111" draft="contributed">Genkyū (1204–1206)</era>
+ <era type="112" draft="contributed">Ken’ei (1206–1207)</era>
+ <era type="113" draft="contributed">Jōgen (1207–1211)</era>
+ <era type="114" draft="contributed">Kenryaku (1211–1213)</era>
+ <era type="115" draft="contributed">Kenpō (1213–1219)</era>
+ <era type="116" draft="contributed">Jōkyū (1219–1222)</era>
+ <era type="117" draft="contributed">Jōō (1222–1224)</era>
+ <era type="118" draft="contributed">Gennin (1224–1225)</era>
+ <era type="119" draft="contributed">Karoku (1225–1227)</era>
+ <era type="120" draft="contributed">Antei (1227–1229)</era>
+ <era type="121" draft="contributed">Kanki (1229–1232)</era>
+ <era type="122" draft="contributed">Jōei (1232–1233)</era>
+ <era type="123" draft="contributed">Tenpuku (1233–1234)</era>
+ <era type="124" draft="contributed">Bunryaku (1234–1235)</era>
+ <era type="125" draft="contributed">Katei (1235–1238)</era>
+ <era type="126" draft="contributed">Ryakunin (1238–1239)</era>
+ <era type="127" draft="contributed">En’ō (1239–1240)</era>
+ <era type="128" draft="contributed">Ninji (1240–1243)</era>
+ <era type="129" draft="contributed">Kangen (1243–1247)</era>
+ <era type="130" draft="contributed">Hōji (1247–1249)</era>
+ <era type="131" draft="contributed">Kenchō (1249–1256)</era>
+ <era type="132" draft="contributed">Kōgen (1256–1257)</era>
+ <era type="133" draft="contributed">Shōka (1257–1259)</era>
+ <era type="134" draft="contributed">Shōgen (1259–1260)</era>
+ <era type="135" draft="contributed">Bun’ō (1260–1261)</era>
+ <era type="136" draft="contributed">Kōchō (1261–1264)</era>
+ <era type="137" draft="contributed">Bun’ei (1264–1275)</era>
+ <era type="138" draft="contributed">Kenji (1275–1278)</era>
+ <era type="139" draft="contributed">Kōan (1278–1288)</era>
+ <era type="140" draft="contributed">Shōō (1288–1293)</era>
+ <era type="141" draft="contributed">Einin (1293–1299)</era>
+ <era type="142" draft="contributed">Shōan (1299–1302)</era>
+ <era type="143" draft="contributed">Kengen (1302–1303)</era>
+ <era type="144" draft="contributed">Kagen (1303–1306)</era>
+ <era type="145" draft="contributed">Tokuji (1306–1308)</era>
+ <era type="146" draft="contributed">Enkyō (1308–1311)</era>
+ <era type="147" draft="contributed">Ōchō (1311–1312)</era>
+ <era type="148" draft="contributed">Shōwa (1312–1317)</era>
+ <era type="149" draft="contributed">Bunpō (1317–1319)</era>
+ <era type="150" draft="contributed">Genō (1319–1321)</era>
+ <era type="151" draft="contributed">Genkō (1321–1324)</era>
+ <era type="152" draft="contributed">Shōchū (1324–1326)</era>
+ <era type="153" draft="contributed">Karyaku (1326–1329)</era>
+ <era type="154" draft="contributed">Gentoku (1329–1331)</era>
+ <era type="155" draft="contributed">Genkō (1331–1334)</era>
+ <era type="156" draft="contributed">Kenmu (1334–1336)</era>
+ <era type="157" draft="contributed">Engen (1336–1340)</era>
+ <era type="158" draft="contributed">Kōkoku (1340–1346)</era>
+ <era type="159" draft="contributed">Shōhei (1346–1370)</era>
+ <era type="160" draft="contributed">Kentoku (1370–1372)</era>
+ <era type="161" draft="contributed">Bunchū (1372–1375)</era>
+ <era type="162" draft="contributed">Tenju (1375–1379)</era>
+ <era type="163" draft="contributed">Kōryaku (1379–1381)</era>
+ <era type="164" draft="contributed">Kōwa (1381–1384)</era>
+ <era type="165" draft="contributed">Genchū (1384–1392)</era>
+ <era type="166" draft="contributed">Meitoku (1384–1387)</era>
+ <era type="167" draft="contributed">Kakei (1387–1389)</era>
+ <era type="168" draft="contributed">Kōō (1389–1390)</era>
+ <era type="169" draft="contributed">Meitoku (1390–1394)</era>
+ <era type="170" draft="contributed">Ōei (1394–1428)</era>
+ <era type="171" draft="contributed">Shōchō (1428–1429)</era>
+ <era type="172" draft="contributed">Eikyō (1429–1441)</era>
+ <era type="173" draft="contributed">Kakitsu (1441–1444)</era>
+ <era type="174" draft="contributed">Bun’an (1444–1449)</era>
+ <era type="175" draft="contributed">Hōtoku (1449–1452)</era>
+ <era type="176" draft="contributed">Kyōtoku (1452–1455)</era>
+ <era type="177" draft="contributed">Kōshō (1455–1457)</era>
+ <era type="178" draft="contributed">Chōroku (1457–1460)</era>
+ <era type="179" draft="contributed">Kanshō (1460–1466)</era>
+ <era type="180" draft="contributed">Bunshō (1466–1467)</era>
+ <era type="181" draft="contributed">Ōnin (1467–1469)</era>
+ <era type="182" draft="contributed">Bunmei (1469–1487)</era>
+ <era type="183" draft="contributed">Chōkyō (1487–1489)</era>
+ <era type="184" draft="contributed">Entoku (1489–1492)</era>
+ <era type="185" draft="contributed">Meiō (1492–1501)</era>
+ <era type="186" draft="contributed">Bunki (1501–1504)</era>
+ <era type="187" draft="contributed">Eishō (1504–1521)</era>
+ <era type="188" draft="contributed">Taiei (1521–1528)</era>
+ <era type="189" draft="contributed">Kyōroku (1528–1532)</era>
+ <era type="190" draft="contributed">Tenbun (1532–1555)</era>
+ <era type="191" draft="contributed">Kōji (1555–1558)</era>
+ <era type="192" draft="contributed">Eiroku (1558–1570)</era>
+ <era type="193" draft="contributed">Genki (1570–1573)</era>
+ <era type="194" draft="contributed">Tenshō (1573–1592)</era>
+ <era type="195" draft="contributed">Bunroku (1592–1596)</era>
+ <era type="196" draft="contributed">Keichō (1596–1615)</era>
+ <era type="197" draft="contributed">Genna (1615–1624)</era>
+ <era type="198" draft="contributed">Kan’ei (1624–1644)</era>
+ <era type="199" draft="contributed">Shōho (1644–1648)</era>
+ <era type="200" draft="contributed">Keian (1648–1652)</era>
+ <era type="201" draft="contributed">Jōō (1652–1655)</era>
+ <era type="202" draft="contributed">Meireki (1655–1658)</era>
+ <era type="203" draft="contributed">Manji (1658–1661)</era>
+ <era type="204" draft="contributed">Kanbun (1661–1673)</era>
+ <era type="205" draft="contributed">Enpō (1673–1681)</era>
+ <era type="206" draft="contributed">Tenna (1681–1684)</era>
+ <era type="207" draft="contributed">Jōkyō (1684–1688)</era>
+ <era type="208" draft="contributed">Genroku (1688–1704)</era>
+ <era type="209" draft="contributed">Hōei (1704–1711)</era>
+ <era type="210" draft="contributed">Shōtoku (1711–1716)</era>
+ <era type="211" draft="contributed">Kyōhō (1716–1736)</era>
+ <era type="212" draft="contributed">Genbun (1736–1741)</era>
+ <era type="213" draft="contributed">Kanpō (1741–1744)</era>
+ <era type="214" draft="contributed">Enkyō (1744–1748)</era>
+ <era type="215" draft="contributed">Kan’en (1748–1751)</era>
+ <era type="216" draft="contributed">Hōreki (1751–1764)</era>
+ <era type="217" draft="contributed">Meiwa (1764–1772)</era>
+ <era type="218" draft="contributed">An’ei (1772–1781)</era>
+ <era type="219" draft="contributed">Tenmei (1781–1789)</era>
+ <era type="220" draft="contributed">Kansei (1789–1801)</era>
+ <era type="221" draft="contributed">Kyōwa (1801–1804)</era>
+ <era type="222" draft="contributed">Bunka (1804–1818)</era>
+ <era type="223" draft="contributed">Bunsei (1818–1830)</era>
+ <era type="224" draft="contributed">Tenpō (1830–1844)</era>
+ <era type="225" draft="contributed">Kōka (1844–1848)</era>
+ <era type="226" draft="contributed">Kaei (1848–1854)</era>
+ <era type="227" draft="contributed">Ansei (1854–1860)</era>
+ <era type="228" draft="contributed">Man’en (1860–1861)</era>
+ <era type="229" draft="contributed">Bunkyū (1861–1864)</era>
+ <era type="230" draft="contributed">Genji (1864–1865)</era>
+ <era type="231" draft="contributed">Keiō (1865–1868)</era>
+ <era type="232" draft="contributed">Meiji</era>
+ <era type="233" draft="contributed">Taishō</era>
+ <era type="234" draft="contributed">Shōwa</era>
+ <era type="235" draft="contributed">Heisei</era>
+ </eraAbbr>
+ <eraNarrow>
+ <era type="232" draft="contributed">M</era>
+ <era type="233" draft="contributed">T</era>
+ <era type="234" draft="contributed">S</era>
+ <era type="235" draft="contributed">H</era>
+ </eraNarrow>
+ </eras>
+ <dateFormats>
+ <dateFormatLength type="full">
+ <dateFormat>
+ <pattern>EEEE d. MMMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="long">
+ <dateFormat>
+ <pattern>d. MMMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="medium">
+ <dateFormat>
+ <pattern>d. MMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="short">
+ <dateFormat>
+ <pattern>d.M y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ </dateFormats>
+ <dateTimeFormats>
+ <dateTimeFormatLength type="full">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="long">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="medium">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="short">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <availableFormats>
+ <dateFormatItem id="d" draft="contributed">d.</dateFormatItem>
+ <dateFormatItem id="E" draft="contributed">ccc</dateFormatItem>
+ <dateFormatItem id="Ed" draft="contributed">E d.</dateFormatItem>
+ <dateFormatItem id="Gy" draft="contributed">y G</dateFormatItem>
+ <dateFormatItem id="GyMMM" draft="contributed">MMM y G</dateFormatItem>
+ <dateFormatItem id="GyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
+ <dateFormatItem id="GyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
+ <dateFormatItem id="M" draft="contributed">L.</dateFormatItem>
+ <dateFormatItem id="Md" draft="contributed">d.M.</dateFormatItem>
+ <dateFormatItem id="MEd" draft="contributed">E d.M</dateFormatItem>
+ <dateFormatItem id="MMdd" draft="contributed">d.M.</dateFormatItem>
+ <dateFormatItem id="MMM" draft="contributed">LLL</dateFormatItem>
+ <dateFormatItem id="MMMd" draft="contributed">d. MMM</dateFormatItem>
+ <dateFormatItem id="MMMEd" draft="contributed">E d. MMM</dateFormatItem>
+ <dateFormatItem id="MMMMd" draft="contributed">d. MMMM</dateFormatItem>
+ <dateFormatItem id="y" draft="contributed">y G</dateFormatItem>
+ <dateFormatItem id="yyyy" draft="contributed">y G</dateFormatItem>
+ <dateFormatItem id="yyyyM" draft="contributed">M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMd" draft="contributed">d.M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMEd" draft="contributed">E d.M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMM" draft="contributed">MM.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMM" draft="contributed">MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMM" draft="contributed">MMMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyQQQ" draft="contributed">QQQ y G</dateFormatItem>
+ <dateFormatItem id="yyyyQQQQ" draft="contributed">QQQQ y G</dateFormatItem>
+ </availableFormats>
+ <intervalFormats>
+ <intervalFormatFallback draft="contributed">{0}–{1}</intervalFormatFallback>
+ <intervalFormatItem id="d">
+ <greatestDifference id="d" draft="contributed">d.–d.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="h">
+ <greatestDifference id="a" draft="contributed">h a–h a</greatestDifference>
+ <greatestDifference id="h" draft="contributed">h–h a</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="H">
+ <greatestDifference id="H" draft="contributed">HH–HH</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="hv">
+ <greatestDifference id="a" draft="contributed">h a–h a v</greatestDifference>
+ <greatestDifference id="h" draft="contributed">h–h a v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Hv">
+ <greatestDifference id="H" draft="contributed">HH–HH v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="M">
+ <greatestDifference id="M" draft="contributed">M.–M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Md">
+ <greatestDifference id="d" draft="contributed">d.M.–d.M.</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d.M.–d.M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MEd">
+ <greatestDifference id="d" draft="contributed">E d.M.–E d.M.</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d.M.–E d.M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMM">
+ <greatestDifference id="M" draft="contributed">MMM–MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMMd">
+ <greatestDifference id="d" draft="contributed">d.–d. MMM</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d. MMM–d. MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMMEd">
+ <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="y">
+ <greatestDifference id="y" draft="contributed">y–y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yM">
+ <greatestDifference id="M" draft="contributed">M.y–M.y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">M.y–M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMd">
+ <greatestDifference id="d" draft="contributed">d.M.y–d.M.y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d.M.y–d.M.y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">d.M.y–d.M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMEd">
+ <greatestDifference id="d" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMM">
+ <greatestDifference id="M" draft="contributed">MMM–MMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">MMM y–MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMd">
+ <greatestDifference id="d" draft="contributed">d.–d. MMM y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d. MMM–d. MMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">d. MMM y–d. MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMEd">
+ <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">E d. MMM y–E d. MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMM">
+ <greatestDifference id="M" draft="contributed">MMMM–MMMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">MMMM y–MMMM y G</greatestDifference>
+ </intervalFormatItem>
+ </intervalFormats>
+ </dateTimeFormats>
+ </calendar>
+ <calendar type="persian">
+ <months>
+ <monthContext type="format">
+ <monthWidth type="abbreviated">
+ <month type="1">farvardin</month>
+ <month type="2">ordibehesht</month>
+ <month type="3">khordad</month>
+ <month type="4">tir</month>
+ <month type="5">mordad</month>
+ <month type="6">shahrivar</month>
+ <month type="7">mehr</month>
+ <month type="8">aban</month>
+ <month type="9">azar</month>
+ <month type="10">dey</month>
+ <month type="11">bahman</month>
+ <month type="12">esfand</month>
+ </monthWidth>
+ <monthWidth type="narrow">
+ <month type="1">1</month>
+ <month type="2">2</month>
+ <month type="3">3</month>
+ <month type="4">4</month>
+ <month type="5">5</month>
+ <month type="6">6</month>
+ <month type="7">7</month>
+ <month type="8">8</month>
+ <month type="9">9</month>
+ <month type="10">10</month>
+ <month type="11">11</month>
+ <month type="12">12</month>
+ </monthWidth>
+ <monthWidth type="wide">
+ <month type="1">farvardin</month>
+ <month type="2">ordibehesht</month>
+ <month type="3">khordad</month>
+ <month type="4">tir</month>
+ <month type="5">mordad</month>
+ <month type="6">shahrivar</month>
+ <month type="7">mehr</month>
+ <month type="8">aban</month>
+ <month type="9">azar</month>
+ <month type="10">dey</month>
+ <month type="11">bahman</month>
+ <month type="12">esfand</month>
+ </monthWidth>
+ </monthContext>
+ <monthContext type="stand-alone">
+ <monthWidth type="abbreviated">
+ <month type="1">farvardin</month>
+ <month type="2">ordibehesht</month>
+ <month type="3">khordad</month>
+ <month type="4">tir</month>
+ <month type="5">mordad</month>
+ <month type="6">shahrivar</month>
+ <month type="7">mehr</month>
+ <month type="8">aban</month>
+ <month type="9">azar</month>
+ <month type="10">dey</month>
+ <month type="11">bahman</month>
+ <month type="12">esfand</month>
+ </monthWidth>
+ <monthWidth type="narrow">
+ <month type="1">1</month>
+ <month type="2">2</month>
+ <month type="3">3</month>
+ <month type="4">4</month>
+ <month type="5">5</month>
+ <month type="6">6</month>
+ <month type="7">7</month>
+ <month type="8">8</month>
+ <month type="9">9</month>
+ <month type="10">10</month>
+ <month type="11">11</month>
+ <month type="12">12</month>
+ </monthWidth>
+ <monthWidth type="wide">
+ <month type="1">farvardin</month>
+ <month type="2">ordibehesht</month>
+ <month type="3">khordad</month>
+ <month type="4">tir</month>
+ <month type="5">mordad</month>
+ <month type="6">shahrivar</month>
+ <month type="7">mehr</month>
+ <month type="8">aban</month>
+ <month type="9">azar</month>
+ <month type="10">dey</month>
+ <month type="11">bahman</month>
+ <month type="12">esfand</month>
+ </monthWidth>
+ </monthContext>
+ </months>
+ <eras>
+ <eraNames>
+ <era type="0">AP</era>
+ </eraNames>
+ <eraAbbr>
+ <era type="0">AP</era>
+ </eraAbbr>
+ <eraNarrow>
+ <era type="0">AP</era>
+ </eraNarrow>
+ </eras>
+ <dateFormats>
+ <dateFormatLength type="full">
+ <dateFormat>
+ <pattern draft="contributed">EEEE d. MMMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="long">
+ <dateFormat>
+ <pattern draft="contributed">d. MMMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="medium">
+ <dateFormat>
+ <pattern draft="contributed">d. MMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="short">
+ <dateFormat>
+ <pattern draft="contributed">d.M.y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ </dateFormats>
+ <dateTimeFormats>
+ <dateTimeFormatLength type="full">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="long">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="medium">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="short">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <availableFormats>
+ <dateFormatItem id="d" draft="contributed">d.</dateFormatItem>
+ <dateFormatItem id="E" draft="contributed">ccc</dateFormatItem>
+ <dateFormatItem id="Ed" draft="contributed">E d.</dateFormatItem>
+ <dateFormatItem id="Gy" draft="contributed">y G</dateFormatItem>
+ <dateFormatItem id="GyMMM" draft="contributed">MMM y G</dateFormatItem>
+ <dateFormatItem id="GyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
+ <dateFormatItem id="GyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
+ <dateFormatItem id="M" draft="contributed">L.</dateFormatItem>
+ <dateFormatItem id="Md" draft="contributed">d.M.</dateFormatItem>
+ <dateFormatItem id="MEd" draft="contributed">E d.M</dateFormatItem>
+ <dateFormatItem id="MMdd" draft="contributed">d.M.</dateFormatItem>
+ <dateFormatItem id="MMM" draft="contributed">LLL</dateFormatItem>
+ <dateFormatItem id="MMMd" draft="contributed">d. MMM</dateFormatItem>
+ <dateFormatItem id="MMMEd" draft="contributed">E d. MMM</dateFormatItem>
+ <dateFormatItem id="MMMMd" draft="contributed">d. MMMM</dateFormatItem>
+ <dateFormatItem id="y" draft="contributed">y G</dateFormatItem>
+ <dateFormatItem id="yyyy" draft="contributed">y G</dateFormatItem>
+ <dateFormatItem id="yyyyM" draft="contributed">M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMd" draft="contributed">d.M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMEd" draft="contributed">E d.M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMM" draft="contributed">MM.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMM" draft="contributed">MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMM" draft="contributed">MMMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyQQQ" draft="contributed">QQQ y G</dateFormatItem>
+ <dateFormatItem id="yyyyQQQQ" draft="contributed">QQQQ y G</dateFormatItem>
+ </availableFormats>
+ <intervalFormats>
+ <intervalFormatFallback draft="contributed">{0}–{1}</intervalFormatFallback>
+ <intervalFormatItem id="d">
+ <greatestDifference id="d" draft="contributed">d.–d.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="h">
+ <greatestDifference id="a" draft="contributed">h a–h a</greatestDifference>
+ <greatestDifference id="h" draft="contributed">h–h a</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="H">
+ <greatestDifference id="H" draft="contributed">HH–HH</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="hv">
+ <greatestDifference id="a" draft="contributed">h a–h a v</greatestDifference>
+ <greatestDifference id="h" draft="contributed">h–h a v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Hv">
+ <greatestDifference id="H" draft="contributed">HH–HH v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="M">
+ <greatestDifference id="M" draft="contributed">M.–M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Md">
+ <greatestDifference id="d" draft="contributed">d.M.–d.M.</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d.M.–d.M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MEd">
+ <greatestDifference id="d" draft="contributed">E d.M.–E d.M.</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d.M.–E d.M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMM">
+ <greatestDifference id="M" draft="contributed">MMM–MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMMd">
+ <greatestDifference id="d" draft="contributed">d.–d. MMM</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d. MMM–d. MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMMEd">
+ <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="y">
+ <greatestDifference id="y" draft="contributed">y–y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yM">
+ <greatestDifference id="M" draft="contributed">M.y–M.y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">M.y–M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMd">
+ <greatestDifference id="d" draft="contributed">d.M.y–d.M.y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d.M.y–d.M.y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">d.M.y–d.M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMEd">
+ <greatestDifference id="d" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMM">
+ <greatestDifference id="M" draft="contributed">MMM–MMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">MMM y–MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMd">
+ <greatestDifference id="d" draft="contributed">d.–d. MMM y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d. MMM–d. MMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">d. MMM y–d. MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMEd">
+ <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">E d. MMM y–E d. MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMM">
+ <greatestDifference id="M" draft="contributed">MMMM–MMMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">MMMM y–MMMM y G</greatestDifference>
+ </intervalFormatItem>
+ </intervalFormats>
+ </dateTimeFormats>
+ </calendar>
+ <calendar type="roc">
+ <eras>
+ <eraNames>
+ <era type="0" draft="contributed">Før R.O.C.</era>
+ <era type="1">Minguo</era>
+ </eraNames>
+ <eraAbbr>
+ <era type="0">Før ROC</era>
+ <era type="1">Minguo</era>
+ </eraAbbr>
+ <eraNarrow>
+ <era type="1">Minguo</era>
+ </eraNarrow>
+ </eras>
+ <dateFormats>
+ <dateFormatLength type="full">
+ <dateFormat>
+ <pattern draft="contributed">EEEE d. MMMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="long">
+ <dateFormat>
+ <pattern draft="contributed">d. MMMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="medium">
+ <dateFormat>
+ <pattern draft="contributed">d. MMM y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="short">
+ <dateFormat>
+ <pattern draft="contributed">d.M.y G</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ </dateFormats>
+ <dateTimeFormats>
+ <dateTimeFormatLength type="full">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="long">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="medium">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type="short">
+ <dateTimeFormat>
+ <pattern draft="contributed">{1} {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <availableFormats>
+ <dateFormatItem id="d" draft="contributed">d.</dateFormatItem>
+ <dateFormatItem id="E" draft="contributed">ccc</dateFormatItem>
+ <dateFormatItem id="Ed" draft="contributed">E d.</dateFormatItem>
+ <dateFormatItem id="Gy" draft="contributed">y G</dateFormatItem>
+ <dateFormatItem id="GyMMM" draft="contributed">MMM y G</dateFormatItem>
+ <dateFormatItem id="GyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
+ <dateFormatItem id="GyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
+ <dateFormatItem id="M" draft="contributed">L.</dateFormatItem>
+ <dateFormatItem id="Md" draft="contributed">d.M.</dateFormatItem>
+ <dateFormatItem id="MEd" draft="contributed">E d.M</dateFormatItem>
+ <dateFormatItem id="MMdd" draft="contributed">d.M.</dateFormatItem>
+ <dateFormatItem id="MMM" draft="contributed">LLL</dateFormatItem>
+ <dateFormatItem id="MMMd" draft="contributed">d. MMM</dateFormatItem>
+ <dateFormatItem id="MMMEd" draft="contributed">E d. MMM</dateFormatItem>
+ <dateFormatItem id="MMMMd" draft="contributed">d. MMMM</dateFormatItem>
+ <dateFormatItem id="y" draft="contributed">y G</dateFormatItem>
+ <dateFormatItem id="yyyy" draft="contributed">y G</dateFormatItem>
+ <dateFormatItem id="yyyyM" draft="contributed">M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMd" draft="contributed">d.M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMEd" draft="contributed">E d.M.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMM" draft="contributed">MM.y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMM" draft="contributed">MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMd" draft="contributed">d. MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMEd" draft="contributed">E d. MMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyMMMM" draft="contributed">MMMM y G</dateFormatItem>
+ <dateFormatItem id="yyyyQQQ" draft="contributed">QQQ y G</dateFormatItem>
+ <dateFormatItem id="yyyyQQQQ" draft="contributed">QQQQ y G</dateFormatItem>
+ </availableFormats>
+ <intervalFormats>
+ <intervalFormatFallback draft="contributed">{0}–{1}</intervalFormatFallback>
+ <intervalFormatItem id="d">
+ <greatestDifference id="d" draft="contributed">d.–d.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="h">
+ <greatestDifference id="a" draft="contributed">h a–h a</greatestDifference>
+ <greatestDifference id="h" draft="contributed">h–h a</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="H">
+ <greatestDifference id="H" draft="contributed">HH–HH</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="hv">
+ <greatestDifference id="a" draft="contributed">h a–h a v</greatestDifference>
+ <greatestDifference id="h" draft="contributed">h–h a v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Hv">
+ <greatestDifference id="H" draft="contributed">HH–HH v</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="M">
+ <greatestDifference id="M" draft="contributed">M.–M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="Md">
+ <greatestDifference id="d" draft="contributed">d.M.–d.M.</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d.M.–d.M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MEd">
+ <greatestDifference id="d" draft="contributed">E d.M.–E d.M.</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d.M.–E d.M.</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMM">
+ <greatestDifference id="M" draft="contributed">MMM–MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMMd">
+ <greatestDifference id="d" draft="contributed">d.–d. MMM</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d. MMM–d. MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="MMMEd">
+ <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="y">
+ <greatestDifference id="y" draft="contributed">y–y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yM">
+ <greatestDifference id="M" draft="contributed">M.y–M.y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">M.y–M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMd">
+ <greatestDifference id="d" draft="contributed">d.M.y–d.M.y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d.M.y–d.M.y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">d.M.y–d.M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMEd">
+ <greatestDifference id="d" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">E d.M.y–E d.M.y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMM">
+ <greatestDifference id="M" draft="contributed">MMM–MMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">MMM y–MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMd">
+ <greatestDifference id="d" draft="contributed">d.–d. MMM y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">d. MMM–d. MMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">d. MMM y–d. MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMEd">
+ <greatestDifference id="d" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
+ <greatestDifference id="M" draft="contributed">E d. MMM–E d. MMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">E d. MMM y–E d. MMM y G</greatestDifference>
+ </intervalFormatItem>
+ <intervalFormatItem id="yMMMM">
+ <greatestDifference id="M" draft="contributed">MMMM–MMMM y G</greatestDifference>
+ <greatestDifference id="y" draft="contributed">MMMM y–MMMM y G</greatestDifference>
+ </intervalFormatItem>
+ </intervalFormats>
+ </dateTimeFormats>
+ </calendar>
+ </calendars>
+ <fields>
+ <field type="era">
+ <displayName>tidsalder</displayName>
+ </field>
+ <field type="era-short">
+ <displayName>tidsalder</displayName>
+ </field>
+ <field type="era-narrow">
+ <displayName>tidsalder</displayName>
+ </field>
+ <field type="year">
+ <displayName>år</displayName>
+ <relative type="-1">i fjor</relative>
+ <relative type="0">i år</relative>
+ <relative type="1">neste år</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} år</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} år</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} år siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} år siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="year-short">
+ <displayName>år</displayName>
+ <relative type="-1">i fjor</relative>
+ <relative type="0">i år</relative>
+ <relative type="1">neste år</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} år</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} år</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} år siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} år siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="year-narrow">
+ <displayName>år</displayName>
+ <relative type="-1">i fjor</relative>
+ <relative type="0">i år</relative>
+ <relative type="1">neste år</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">+{0} år</relativeTimePattern>
+ <relativeTimePattern count="other">+{0} år</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">–{0} år</relativeTimePattern>
+ <relativeTimePattern count="other">–{0} år</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="quarter">
+ <displayName>kvartal</displayName>
+ <relative type="-1">forrige kvartal</relative>
+ <relative type="0">dette kvartalet</relative>
+ <relative type="1">neste kvartal</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} kvartal</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} kvartaler</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} kvartal siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} kvartaler siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="quarter-short">
+ <displayName>kv.</displayName>
+ <relative type="-1">forrige kv.</relative>
+ <relative type="0">dette kv.</relative>
+ <relative type="1">neste kv.</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} kv.</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} kv.</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} kv. siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} kv. siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="quarter-narrow">
+ <displayName>kv.</displayName>
+ <relative type="-1">forrige kv.</relative>
+ <relative type="0">dette kv.</relative>
+ <relative type="1">neste kv.</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">+{0} kv.</relativeTimePattern>
+ <relativeTimePattern count="other">+{0} kv.</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">–{0} kv.</relativeTimePattern>
+ <relativeTimePattern count="other">–{0} kv.</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="month">
+ <displayName>måned</displayName>
+ <relative type="-1">forrige måned</relative>
+ <relative type="0">denne måneden</relative>
+ <relative type="1">neste måned</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} måned</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} måneder</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} måned siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} måneder siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="month-short">
+ <displayName>mnd.</displayName>
+ <relative type="-1">forrige md.</relative>
+ <relative type="0">denne md.</relative>
+ <relative type="1">neste md.</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} md.</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} md.</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} md. siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} md. siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="month-narrow">
+ <displayName>md.</displayName>
+ <relative type="-1">forrige md.</relative>
+ <relative type="0">denne md.</relative>
+ <relative type="1">neste md.</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">+{0} md.</relativeTimePattern>
+ <relativeTimePattern count="other">+{0} md.</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">-{0} md.</relativeTimePattern>
+ <relativeTimePattern count="other">-{0} md.</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="week">
+ <displayName>uke</displayName>
+ <relative type="-1">forrige uke</relative>
+ <relative type="0">denne uken</relative>
+ <relative type="1">neste uke</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} uke</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} uker</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} uke siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} uker siden</relativeTimePattern>
+ </relativeTime>
+ <relativePeriod>uken som inneholder {0}</relativePeriod>
+ </field>
+ <field type="week-short">
+ <displayName>uke</displayName>
+ <relative type="-1">forrige uke</relative>
+ <relative type="0">denne uken</relative>
+ <relative type="1">neste uke</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} u.</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} u.</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} u. siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} u. siden</relativeTimePattern>
+ </relativeTime>
+ <relativePeriod>uken med {0}</relativePeriod>
+ </field>
+ <field type="week-narrow">
+ <displayName>u.</displayName>
+ <relative type="-1">forrige uke</relative>
+ <relative type="0">denne uken</relative>
+ <relative type="1">neste uke</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">+{0} u.</relativeTimePattern>
+ <relativeTimePattern count="other">+{0} u.</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">-{0} u.</relativeTimePattern>
+ <relativeTimePattern count="other">-{0} u.</relativeTimePattern>
+ </relativeTime>
+ <relativePeriod>u. {0}</relativePeriod>
+ </field>
+ <field type="weekOfMonth">
+ <displayName>uke i måneden</displayName>
+ </field>
+ <field type="weekOfMonth-short">
+ <displayName>uke i mnd.</displayName>
+ </field>
+ <field type="weekOfMonth-narrow">
+ <displayName>uke i md.</displayName>
+ </field>
+ <field type="day">
+ <displayName>dag</displayName>
+ <relative type="-2">i forgårs</relative>
+ <relative type="-1">i går</relative>
+ <relative type="0">i dag</relative>
+ <relative type="1">i morgen</relative>
+ <relative type="2">i overmorgen</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} døgn</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} døgn</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} døgn siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} døgn siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="day-short">
+ <displayName>dag</displayName>
+ <relative type="-2">i forgårs</relative>
+ <relative type="-1">i går</relative>
+ <relative type="0">i dag</relative>
+ <relative type="1">i morgen</relative>
+ <relative type="2">i overmorgen</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} d.</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} d.</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} d. siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} d. siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="day-narrow">
+ <displayName>d.</displayName>
+ <relative type="-2" draft="contributed">-2 d.</relative>
+ <relative type="-1">i går</relative>
+ <relative type="0">i dag</relative>
+ <relative type="1">i morgen</relative>
+ <relative type="2" draft="contributed">+2 d.</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">+{0} d.</relativeTimePattern>
+ <relativeTimePattern count="other">+{0} d.</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">-{0} d.</relativeTimePattern>
+ <relativeTimePattern count="other">-{0} d.</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="dayOfYear">
+ <displayName>dag i året</displayName>
+ </field>
+ <field type="dayOfYear-short">
+ <displayName>dag i året</displayName>
+ </field>
+ <field type="dayOfYear-narrow">
+ <displayName>d. i året</displayName>
+ </field>
+ <field type="weekday">
+ <displayName>ukedag</displayName>
+ </field>
+ <field type="weekday-short">
+ <displayName>ukedag</displayName>
+ </field>
+ <field type="weekday-narrow">
+ <displayName>uked.</displayName>
+ </field>
+ <field type="weekdayOfMonth">
+ <displayName>ukedag i måneden</displayName>
+ </field>
+ <field type="weekdayOfMonth-short">
+ <displayName>uked. i mnd.</displayName>
+ </field>
+ <field type="weekdayOfMonth-narrow">
+ <displayName>uked. i md.</displayName>
+ </field>
+ <field type="sun">
+ <relative type="-1">forrige søndag</relative>
+ <relative type="0">søndag</relative>
+ <relative type="1">neste søndag</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} søndag</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} søndager</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} søndag siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} søndager siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="sun-short">
+ <relative type="-1">sist søn.</relative>
+ <relative type="0">denne søn.</relative>
+ <relative type="1">neste søn.</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} søn.</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} søn.</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} søn. siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} søn. siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="sun-narrow">
+ <relative type="-1">sist sø.</relative>
+ <relative type="0">denne sø.</relative>
+ <relative type="1">neste sø.</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} sø.</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} sø.</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} sø. siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} sø. siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="mon">
+ <relative type="-1">forrige mandag</relative>
+ <relative type="0">mandag</relative>
+ <relative type="1">neste mandag</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} mandag</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} mandager</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} mandag siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} mandager siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="mon-short">
+ <relative type="-1">sist man.</relative>
+ <relative type="0">denne man.</relative>
+ <relative type="1">neste man.</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} man.</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} man.</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} man. siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} man. siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="mon-narrow">
+ <relative type="-1">sist ma.</relative>
+ <relative type="0">denne ma.</relative>
+ <relative type="1">neste ma.</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} ma.</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} ma.</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} ma. siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} ma. siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="tue">
+ <relative type="-1">forrige tirsdag</relative>
+ <relative type="0">tirsdag</relative>
+ <relative type="1">neste tirsdag</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} tirsdag</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} tirsdager</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} tirsdag siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} tirsdager siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="tue-short">
+ <relative type="-1">sist tir.</relative>
+ <relative type="0">denne tir.</relative>
+ <relative type="1">neste tir.</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} tir.</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} tir.</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} tir. siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} tir. siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="tue-narrow">
+ <relative type="-1">sist ti.</relative>
+ <relative type="0">denne ti.</relative>
+ <relative type="1">neste ti.</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} ti.</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} ti.</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} ti. siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} ti. siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="wed">
+ <relative type="-1">forrige onsdag</relative>
+ <relative type="0">onsdag</relative>
+ <relative type="1">neste onsdag</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} onsdag</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} onsdager</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} onsdag siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} onsdager siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="wed-short">
+ <relative type="-1">sist ons.</relative>
+ <relative type="0">denne ons.</relative>
+ <relative type="1">neste ons.</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} ons.</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} ons.</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} ons. siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} ons. siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="wed-narrow">
+ <relative type="-1">sist on.</relative>
+ <relative type="0">denne on.</relative>
+ <relative type="1">neste on.</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} on.</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} on.</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} on. siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} on. siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="thu">
+ <relative type="-1">forrige torsdag</relative>
+ <relative type="0">torsdag</relative>
+ <relative type="1">neste torsdag</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} torsdag</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} torsdager</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} torsdag siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} torsdager siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="thu-short">
+ <relative type="-1">sist tor.</relative>
+ <relative type="0">denne tor.</relative>
+ <relative type="1">neste tor.</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} tor.</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} tor.</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} tor. siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} tor. siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="thu-narrow">
+ <relative type="-1">sist to.</relative>
+ <relative type="0">denne to.</relative>
+ <relative type="1">neste to.</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} to.</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} to.</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} to. siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} to. siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="fri">
+ <relative type="-1">forrige fredag</relative>
+ <relative type="0">fredag</relative>
+ <relative type="1">neste fredag</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} fredag</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} fredager</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} fredag siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} fredager siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="fri-short">
+ <relative type="-1">sist fre.</relative>
+ <relative type="0">denne fre.</relative>
+ <relative type="1">neste fre.</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} fre.</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} fre.</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} fre. siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} fre. siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="fri-narrow">
+ <relative type="-1">sist fr.</relative>
+ <relative type="0">denne fr.</relative>
+ <relative type="1">neste fr.</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} fr.</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} fr.</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} fr. siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} fr. siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="sat">
+ <relative type="-1">forrige lørdag</relative>
+ <relative type="0">lørdag</relative>
+ <relative type="1">neste lørdag</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} lørdag</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} lørdager</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} lørdag siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} lørdager siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="sat-short">
+ <relative type="-1">sist lør.</relative>
+ <relative type="0">denne lør.</relative>
+ <relative type="1">neste lør.</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} lør.</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} lør.</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} lør. siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} lør. siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="sat-narrow">
+ <relative type="-1">sist lø.</relative>
+ <relative type="0">denne lø.</relative>
+ <relative type="1">neste lø.</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} lø.</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} lø.</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} lø. siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} lø. siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="dayperiod-short">
+ <displayName>am/pm</displayName>
+ </field>
+ <field type="dayperiod">
+ <displayName>a.m./p.m.</displayName>
+ </field>
+ <field type="dayperiod-narrow">
+ <displayName>am/pm</displayName>
+ </field>
+ <field type="hour">
+ <displayName>time</displayName>
+ <relative type="0">denne timen</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} time</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} timer</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} time siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} timer siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="hour-short">
+ <displayName>t</displayName>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} t</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} t</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} t siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} t siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="hour-narrow">
+ <displayName>t</displayName>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">+{0} t</relativeTimePattern>
+ <relativeTimePattern count="other">+{0} t</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">-{0} t</relativeTimePattern>
+ <relativeTimePattern count="other">-{0} t</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="minute">
+ <displayName>minutt</displayName>
+ <relative type="0">dette minuttet</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} minutt</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} minutter</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} minutt siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} minutter siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="minute-short">
+ <displayName>min</displayName>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} min</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} min</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} min siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} min siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="minute-narrow">
+ <displayName>m</displayName>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">+{0} min</relativeTimePattern>
+ <relativeTimePattern count="other">+{0} min</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">-{0} min</relativeTimePattern>
+ <relativeTimePattern count="other">-{0} min</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="second">
+ <displayName>sekund</displayName>
+ <relative type="0">nå</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} sekund</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} sekunder</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} sekund siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} sekunder siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="second-short">
+ <displayName>sek</displayName>
+ <relative type="0" draft="contributed">nå</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">om {0} sek</relativeTimePattern>
+ <relativeTimePattern count="other">om {0} sek</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">for {0} sek siden</relativeTimePattern>
+ <relativeTimePattern count="other">for {0} sek siden</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="second-narrow">
+ <displayName>s</displayName>
+ <relative type="0" draft="contributed">nå</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">+{0} s</relativeTimePattern>
+ <relativeTimePattern count="other">+{0} s</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">-{0} s</relativeTimePattern>
+ <relativeTimePattern count="other">-{0} s</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="zone">
+ <displayName>tidssone</displayName>
+ </field>
+ <field type="zone-short">
+ <displayName>tidssone</displayName>
+ </field>
+ <field type="zone-narrow">
+ <displayName>tidssone</displayName>
+ </field>
+ </fields>
+ <timeZoneNames>
+ <hourFormat>+HH:mm;-HH:mm</hourFormat>
+ <gmtFormat>GMT{0}</gmtFormat>
+ <gmtZeroFormat>GMT</gmtZeroFormat>
+ <regionFormat>tidssone for {0}</regionFormat>
+ <regionFormat type="daylight">sommertid – {0}</regionFormat>
+ <regionFormat type="standard">normaltid – {0}</regionFormat>
+ <fallbackFormat>{1} ({0})</fallbackFormat>
+ <zone type="America/Santa_Isabel">
+ <exemplarCity>Santa Isabel</exemplarCity>
+ </zone>
+ <zone type="Etc/UTC">
+ <long>
+ <standard>koordinert universaltid</standard>
+ </long>
+ </zone>
+ <zone type="Etc/Unknown">
+ <exemplarCity>ukjent by</exemplarCity>
+ </zone>
+ <zone type="Europe/Andorra">
+ <exemplarCity>Andorra</exemplarCity>
+ </zone>
+ <zone type="Asia/Dubai">
+ <exemplarCity>Dubai</exemplarCity>
+ </zone>
+ <zone type="Asia/Kabul">
+ <exemplarCity>Kabul</exemplarCity>
+ </zone>
+ <zone type="America/Antigua">
+ <exemplarCity>Antigua</exemplarCity>
+ </zone>
+ <zone type="America/Anguilla">
+ <exemplarCity>Anguilla</exemplarCity>
+ </zone>
+ <zone type="Europe/Tirane">
+ <exemplarCity>Tirana</exemplarCity>
+ </zone>
+ <zone type="Asia/Yerevan">
+ <exemplarCity>Jerevan</exemplarCity>
+ </zone>
+ <zone type="Africa/Luanda">
+ <exemplarCity>Luanda</exemplarCity>
+ </zone>
+ <zone type="Antarctica/Rothera">
+ <exemplarCity>Rothera</exemplarCity>
+ </zone>
+ <zone type="Antarctica/Palmer">
+ <exemplarCity>Palmer</exemplarCity>
+ </zone>
+ <zone type="Antarctica/Troll">
+ <exemplarCity>Troll</exemplarCity>
+ </zone>
+ <zone type="Antarctica/Syowa">
+ <exemplarCity>Syowa</exemplarCity>
+ </zone>
+ <zone type="Antarctica/Mawson">
+ <exemplarCity>Mawson</exemplarCity>
+ </zone>
+ <zone type="Antarctica/Davis">
+ <exemplarCity>Davis</exemplarCity>
+ </zone>
+ <zone type="Antarctica/Vostok">
+ <exemplarCity>Vostok</exemplarCity>
+ </zone>
+ <zone type="Antarctica/Casey">
+ <exemplarCity>Casey</exemplarCity>
+ </zone>
+ <zone type="Antarctica/DumontDUrville">
+ <exemplarCity>Dumont d’Urville</exemplarCity>
+ </zone>
+ <zone type="Antarctica/McMurdo">
+ <exemplarCity>McMurdo</exemplarCity>
+ </zone>
+ <zone type="America/Argentina/Rio_Gallegos">
+ <exemplarCity>Rio Gallegos</exemplarCity>
+ </zone>
+ <zone type="America/Mendoza">
+ <exemplarCity>Mendoza</exemplarCity>
+ </zone>
+ <zone type="America/Argentina/San_Juan">
+ <exemplarCity>San Juan</exemplarCity>
+ </zone>
+ <zone type="America/Argentina/Ushuaia">
+ <exemplarCity>Ushuaia</exemplarCity>
+ </zone>
+ <zone type="America/Argentina/La_Rioja">
+ <exemplarCity>La Rioja</exemplarCity>
+ </zone>
+ <zone type="America/Argentina/San_Luis">
+ <exemplarCity>San Luis</exemplarCity>
+ </zone>
+ <zone type="America/Catamarca">
+ <exemplarCity>Catamarca</exemplarCity>
+ </zone>
+ <zone type="America/Argentina/Salta">
+ <exemplarCity>Salta</exemplarCity>
+ </zone>
+ <zone type="America/Jujuy">
+ <exemplarCity>Jujuy</exemplarCity>
+ </zone>
+ <zone type="America/Argentina/Tucuman">
+ <exemplarCity>Tucumán</exemplarCity>
+ </zone>
+ <zone type="America/Cordoba">
+ <exemplarCity>Córdoba</exemplarCity>
+ </zone>
+ <zone type="America/Buenos_Aires">
+ <exemplarCity>Buenos Aires</exemplarCity>
+ </zone>
+ <zone type="Pacific/Pago_Pago">
+ <exemplarCity>Pago Pago</exemplarCity>
+ </zone>
+ <zone type="Europe/Vienna">
+ <exemplarCity>Wien</exemplarCity>
+ </zone>
+ <zone type="Australia/Perth">
+ <exemplarCity>Perth</exemplarCity>
+ </zone>
+ <zone type="Australia/Eucla">
+ <exemplarCity>Eucla</exemplarCity>
+ </zone>
+ <zone type="Australia/Darwin">
+ <exemplarCity>Darwin</exemplarCity>
+ </zone>
+ <zone type="Australia/Adelaide">
+ <exemplarCity>Adelaide</exemplarCity>
+ </zone>
+ <zone type="Australia/Broken_Hill">
+ <exemplarCity>Broken Hill</exemplarCity>
+ </zone>
+ <zone type="Australia/Melbourne">
+ <exemplarCity>Melbourne</exemplarCity>
+ </zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
+ <zone type="Australia/Hobart">
+ <exemplarCity>Hobart</exemplarCity>
+ </zone>
+ <zone type="Australia/Lindeman">
+ <exemplarCity>Lindeman</exemplarCity>
+ </zone>
+ <zone type="Australia/Sydney">
+ <exemplarCity>Sydney</exemplarCity>
+ </zone>
+ <zone type="Australia/Brisbane">
+ <exemplarCity>Brisbane</exemplarCity>
+ </zone>
+ <zone type="Antarctica/Macquarie">
+ <exemplarCity>Macquarie</exemplarCity>
+ </zone>
+ <zone type="Australia/Lord_Howe">
+ <exemplarCity>Lord Howe</exemplarCity>
+ </zone>
+ <zone type="America/Aruba">
+ <exemplarCity>Aruba</exemplarCity>
+ </zone>
+ <zone type="Europe/Mariehamn">
+ <exemplarCity>Mariehamn</exemplarCity>
+ </zone>
+ <zone type="Asia/Baku">
+ <exemplarCity>Baku</exemplarCity>
+ </zone>
+ <zone type="Europe/Sarajevo">
+ <exemplarCity>Sarajevo</exemplarCity>
+ </zone>
+ <zone type="America/Barbados">
+ <exemplarCity>Barbados</exemplarCity>
+ </zone>
+ <zone type="Asia/Dhaka">
+ <exemplarCity>Dhaka</exemplarCity>
+ </zone>
+ <zone type="Europe/Brussels">
+ <exemplarCity>Brussel</exemplarCity>
+ </zone>
+ <zone type="Africa/Ouagadougou">
+ <exemplarCity>Ouagadougou</exemplarCity>
+ </zone>
+ <zone type="Europe/Sofia">
+ <exemplarCity>Sofia</exemplarCity>
+ </zone>
+ <zone type="Asia/Bahrain">
+ <exemplarCity>Bahrain</exemplarCity>
+ </zone>
+ <zone type="Africa/Bujumbura">
+ <exemplarCity>Bujumbura</exemplarCity>
+ </zone>
+ <zone type="Africa/Porto-Novo">
+ <exemplarCity>Porto-Novo</exemplarCity>
+ </zone>
+ <zone type="America/St_Barthelemy">
+ <exemplarCity>Saint-Barthélemy</exemplarCity>
+ </zone>
+ <zone type="Atlantic/Bermuda">
+ <exemplarCity>Bermuda</exemplarCity>
+ </zone>
+ <zone type="Asia/Brunei">
+ <exemplarCity>Brunei</exemplarCity>
+ </zone>
+ <zone type="America/La_Paz">
+ <exemplarCity>La Paz</exemplarCity>
+ </zone>
+ <zone type="America/Kralendijk">
+ <exemplarCity>Kralendijk</exemplarCity>
+ </zone>
+ <zone type="America/Eirunepe">
+ <exemplarCity>Eirunepe</exemplarCity>
+ </zone>
+ <zone type="America/Rio_Branco">
+ <exemplarCity>Rio Branco</exemplarCity>
+ </zone>
+ <zone type="America/Porto_Velho">
+ <exemplarCity>Porto Velho</exemplarCity>
+ </zone>
+ <zone type="America/Boa_Vista">
+ <exemplarCity>Boa Vista</exemplarCity>
+ </zone>
+ <zone type="America/Manaus">
+ <exemplarCity>Manaus</exemplarCity>
+ </zone>
+ <zone type="America/Cuiaba">
+ <exemplarCity>Cuiabá</exemplarCity>
+ </zone>
+ <zone type="America/Santarem">
+ <exemplarCity>Santarém</exemplarCity>
+ </zone>
+ <zone type="America/Campo_Grande">
+ <exemplarCity>Campo Grande</exemplarCity>
+ </zone>
+ <zone type="America/Belem">
+ <exemplarCity>Belém</exemplarCity>
+ </zone>
+ <zone type="America/Araguaina">
+ <exemplarCity>Araguaína</exemplarCity>
+ </zone>
+ <zone type="America/Sao_Paulo">
+ <exemplarCity>São Paulo</exemplarCity>
+ </zone>
+ <zone type="America/Bahia">
+ <exemplarCity>Bahia</exemplarCity>
+ </zone>
+ <zone type="America/Fortaleza">
+ <exemplarCity>Fortaleza</exemplarCity>
+ </zone>
+ <zone type="America/Maceio">
+ <exemplarCity>Maceió</exemplarCity>
+ </zone>
+ <zone type="America/Recife">
+ <exemplarCity>Recife</exemplarCity>
+ </zone>
+ <zone type="America/Noronha">
+ <exemplarCity>Noronha</exemplarCity>
+ </zone>
+ <zone type="America/Nassau">
+ <exemplarCity>Nassau</exemplarCity>
+ </zone>
+ <zone type="Asia/Thimphu">
+ <exemplarCity>Thimpu</exemplarCity>
+ </zone>
+ <zone type="Africa/Gaborone">
+ <exemplarCity>Gaborone</exemplarCity>
+ </zone>
+ <zone type="Europe/Minsk">
+ <exemplarCity>Minsk</exemplarCity>
+ </zone>
+ <zone type="America/Belize">
+ <exemplarCity>Belize</exemplarCity>
+ </zone>
+ <zone type="America/Dawson">
+ <exemplarCity>Dawson</exemplarCity>
+ </zone>
+ <zone type="America/Whitehorse">
+ <exemplarCity>Whitehorse</exemplarCity>
+ </zone>
+ <zone type="America/Inuvik">
+ <exemplarCity>Inuvik</exemplarCity>
+ </zone>
+ <zone type="America/Vancouver">
+ <exemplarCity>Vancouver</exemplarCity>
+ </zone>
+ <zone type="America/Fort_Nelson">
+ <exemplarCity>Fort Nelson</exemplarCity>
+ </zone>
+ <zone type="America/Dawson_Creek">
+ <exemplarCity>Dawson Creek</exemplarCity>
+ </zone>
+ <zone type="America/Creston">
+ <exemplarCity>Creston</exemplarCity>
+ </zone>
+ <zone type="America/Yellowknife">
+ <exemplarCity>Yellowknife</exemplarCity>
+ </zone>
+ <zone type="America/Edmonton">
+ <exemplarCity>Edmonton</exemplarCity>
+ </zone>
+ <zone type="America/Swift_Current">
+ <exemplarCity>Swift Current</exemplarCity>
+ </zone>
+ <zone type="America/Cambridge_Bay">
+ <exemplarCity>Cambridge Bay</exemplarCity>
+ </zone>
+ <zone type="America/Regina">
+ <exemplarCity>Regina</exemplarCity>
+ </zone>
+ <zone type="America/Winnipeg">
+ <exemplarCity>Winnipeg</exemplarCity>
+ </zone>
+ <zone type="America/Resolute">
+ <exemplarCity>Resolute</exemplarCity>
+ </zone>
+ <zone type="America/Rainy_River">
+ <exemplarCity>Rainy River</exemplarCity>
+ </zone>
+ <zone type="America/Rankin_Inlet">
+ <exemplarCity>Rankin Inlet</exemplarCity>
+ </zone>
+ <zone type="America/Coral_Harbour">
+ <exemplarCity>Atikokan</exemplarCity>
+ </zone>
+ <zone type="America/Thunder_Bay">
+ <exemplarCity>Thunder Bay</exemplarCity>
+ </zone>
+ <zone type="America/Nipigon">
+ <exemplarCity>Nipigon</exemplarCity>
+ </zone>
+ <zone type="America/Toronto">
+ <exemplarCity>Toronto</exemplarCity>
+ </zone>
+ <zone type="America/Iqaluit">
+ <exemplarCity>Iqaluit</exemplarCity>
+ </zone>
+ <zone type="America/Pangnirtung">
+ <exemplarCity>Pangnirtung</exemplarCity>
+ </zone>
+ <zone type="America/Moncton">
+ <exemplarCity>Moncton</exemplarCity>
+ </zone>
+ <zone type="America/Halifax">
+ <exemplarCity>Halifax</exemplarCity>
+ </zone>
+ <zone type="America/Goose_Bay">
+ <exemplarCity>Goose Bay</exemplarCity>
+ </zone>
+ <zone type="America/Glace_Bay">
+ <exemplarCity>Glace Bay</exemplarCity>
+ </zone>
+ <zone type="America/Blanc-Sablon">
+ <exemplarCity>Blanc-Sablon</exemplarCity>
+ </zone>
+ <zone type="America/St_Johns">
+ <exemplarCity>St. John’s</exemplarCity>
+ </zone>
+ <zone type="Indian/Cocos">
+ <exemplarCity>Kokosøyene</exemplarCity>
+ </zone>
+ <zone type="Africa/Kinshasa">
+ <exemplarCity>Kinshasa</exemplarCity>
+ </zone>
+ <zone type="Africa/Lubumbashi">
+ <exemplarCity>Lubumbashi</exemplarCity>
+ </zone>
+ <zone type="Africa/Bangui">
+ <exemplarCity>Bangui</exemplarCity>
+ </zone>
+ <zone type="Africa/Brazzaville">
+ <exemplarCity>Brazzaville</exemplarCity>
+ </zone>
+ <zone type="Europe/Zurich">
+ <exemplarCity>Zürich</exemplarCity>
+ </zone>
+ <zone type="Africa/Abidjan">
+ <exemplarCity>Abidjan</exemplarCity>
+ </zone>
+ <zone type="Pacific/Rarotonga">
+ <exemplarCity>Rarotonga</exemplarCity>
+ </zone>
+ <zone type="Pacific/Easter">
+ <exemplarCity>Påskeøya</exemplarCity>
+ </zone>
+ <zone type="America/Punta_Arenas">
+ <exemplarCity>Punta Arenas</exemplarCity>
+ </zone>
+ <zone type="America/Santiago">
+ <exemplarCity>Santiago</exemplarCity>
+ </zone>
+ <zone type="Africa/Douala">
+ <exemplarCity>Douala</exemplarCity>
+ </zone>
+ <zone type="Asia/Urumqi">
+ <exemplarCity>Ürümqi</exemplarCity>
+ </zone>
+ <zone type="Asia/Shanghai">
+ <exemplarCity>Shanghai</exemplarCity>
+ </zone>
+ <zone type="America/Bogota">
+ <exemplarCity>Bogotá</exemplarCity>
+ </zone>
+ <zone type="America/Costa_Rica">
+ <exemplarCity>Costa Rica</exemplarCity>
+ </zone>
+ <zone type="America/Havana">
+ <exemplarCity>Havana</exemplarCity>
+ </zone>
+ <zone type="Atlantic/Cape_Verde">
+ <exemplarCity>Kapp Verde</exemplarCity>
+ </zone>
+ <zone type="America/Curacao">
+ <exemplarCity>Curaçao</exemplarCity>
+ </zone>
+ <zone type="Indian/Christmas">
+ <exemplarCity>Christmasøya</exemplarCity>
+ </zone>
+ <zone type="Asia/Nicosia">
+ <exemplarCity>Nikosia</exemplarCity>
+ </zone>
+ <zone type="Asia/Famagusta">
+ <exemplarCity>Famagusta</exemplarCity>
+ </zone>
+ <zone type="Europe/Prague">
+ <exemplarCity>Praha</exemplarCity>
+ </zone>
+ <zone type="Europe/Busingen">
+ <exemplarCity>Büsingen</exemplarCity>
+ </zone>
+ <zone type="Europe/Berlin">
+ <exemplarCity>Berlin</exemplarCity>
+ </zone>
+ <zone type="Africa/Djibouti">
+ <exemplarCity>Djibouti</exemplarCity>
+ </zone>
+ <zone type="Europe/Copenhagen">
+ <exemplarCity>København</exemplarCity>
+ </zone>
+ <zone type="America/Dominica">
+ <exemplarCity>Dominica</exemplarCity>
+ </zone>
+ <zone type="America/Santo_Domingo">
+ <exemplarCity>Santo Domingo</exemplarCity>
+ </zone>
+ <zone type="Africa/Algiers">
+ <exemplarCity>Alger</exemplarCity>
+ </zone>
+ <zone type="Pacific/Galapagos">
+ <exemplarCity>Galápagosøyene</exemplarCity>
+ </zone>
+ <zone type="America/Guayaquil">
+ <exemplarCity>Guayaquil</exemplarCity>
+ </zone>
+ <zone type="Europe/Tallinn">
+ <exemplarCity>Tallinn</exemplarCity>
+ </zone>
+ <zone type="Africa/Cairo">
+ <exemplarCity>Kairo</exemplarCity>
+ </zone>
+ <zone type="Africa/El_Aaiun">
+ <exemplarCity>El Aaiún</exemplarCity>
+ </zone>
+ <zone type="Africa/Asmera">
+ <exemplarCity>Asmara</exemplarCity>
+ </zone>
+ <zone type="Atlantic/Canary">
+ <exemplarCity>Kanariøyene</exemplarCity>
+ </zone>
+ <zone type="Africa/Ceuta">
+ <exemplarCity>Ceuta</exemplarCity>
+ </zone>
+ <zone type="Europe/Madrid">
+ <exemplarCity>Madrid</exemplarCity>
+ </zone>
+ <zone type="Africa/Addis_Ababa">
+ <exemplarCity>Addis Abeba</exemplarCity>
+ </zone>
+ <zone type="Europe/Helsinki">
+ <exemplarCity>Helsingfors</exemplarCity>
+ </zone>
+ <zone type="Pacific/Fiji">
+ <exemplarCity>Fiji</exemplarCity>
+ </zone>
+ <zone type="Atlantic/Stanley">
+ <exemplarCity>Stanley</exemplarCity>
+ </zone>
+ <zone type="Pacific/Truk">
+ <exemplarCity>Chuuk</exemplarCity>
+ </zone>
+ <zone type="Pacific/Ponape">
+ <exemplarCity>Pohnpei</exemplarCity>
+ </zone>
+ <zone type="Pacific/Kosrae">
+ <exemplarCity>Kosrae</exemplarCity>
+ </zone>
+ <zone type="Atlantic/Faeroe">
+ <exemplarCity>Færøyene</exemplarCity>
+ </zone>
+ <zone type="Europe/Paris">
+ <exemplarCity>Paris</exemplarCity>
+ </zone>
+ <zone type="Africa/Libreville">
+ <exemplarCity>Libreville</exemplarCity>
+ </zone>
+ <zone type="Europe/London">
+ <long>
+ <daylight>britisk sommertid</daylight>
+ </long>
+ <exemplarCity>London</exemplarCity>
+ </zone>
+ <zone type="America/Grenada">
+ <exemplarCity>Grenada</exemplarCity>
+ </zone>
+ <zone type="Asia/Tbilisi">
+ <exemplarCity>Tbilisi</exemplarCity>
+ </zone>
+ <zone type="America/Cayenne">
+ <exemplarCity>Cayenne</exemplarCity>
+ </zone>
+ <zone type="Europe/Guernsey">
+ <exemplarCity>Guernsey</exemplarCity>
+ </zone>
+ <zone type="Africa/Accra">
+ <exemplarCity>Accra</exemplarCity>
+ </zone>
+ <zone type="Europe/Gibraltar">
+ <exemplarCity>Gibraltar</exemplarCity>
+ </zone>
+ <zone type="America/Thule">
+ <exemplarCity>Thule</exemplarCity>
+ </zone>
+ <zone type="America/Godthab">
+ <exemplarCity>Nuuk</exemplarCity>
+ </zone>
+ <zone type="America/Scoresbysund">
+ <exemplarCity>Ittoqqortoormiit</exemplarCity>
+ </zone>
+ <zone type="America/Danmarkshavn">
+ <exemplarCity>Danmarkshavn</exemplarCity>
+ </zone>
+ <zone type="Africa/Banjul">
+ <exemplarCity>Banjul</exemplarCity>
+ </zone>
+ <zone type="Africa/Conakry">
+ <exemplarCity>Conakry</exemplarCity>
+ </zone>
+ <zone type="America/Guadeloupe">
+ <exemplarCity>Guadeloupe</exemplarCity>
+ </zone>
+ <zone type="Africa/Malabo">
+ <exemplarCity>Malabo</exemplarCity>
+ </zone>
+ <zone type="Europe/Athens">
+ <exemplarCity>Athen</exemplarCity>
+ </zone>
+ <zone type="Atlantic/South_Georgia">
+ <exemplarCity>Sør-Georgia</exemplarCity>
+ </zone>
+ <zone type="America/Guatemala">
+ <exemplarCity>Guatemala</exemplarCity>
+ </zone>
+ <zone type="Pacific/Guam">
+ <exemplarCity>Guam</exemplarCity>
+ </zone>
+ <zone type="Africa/Bissau">
+ <exemplarCity>Bissau</exemplarCity>
+ </zone>
+ <zone type="America/Guyana">
+ <exemplarCity>Guyana</exemplarCity>
+ </zone>
+ <zone type="Asia/Hong_Kong">
+ <exemplarCity>Hongkong</exemplarCity>
+ </zone>
+ <zone type="America/Tegucigalpa">
+ <exemplarCity>Tegucigalpa</exemplarCity>
+ </zone>
+ <zone type="Europe/Zagreb">
+ <exemplarCity>Zagreb</exemplarCity>
+ </zone>
+ <zone type="America/Port-au-Prince">
+ <exemplarCity>Port-au-Prince</exemplarCity>
+ </zone>
+ <zone type="Europe/Budapest">
+ <exemplarCity>Budapest</exemplarCity>
+ </zone>
+ <zone type="Asia/Jakarta">
+ <exemplarCity>Jakarta</exemplarCity>
+ </zone>
+ <zone type="Asia/Pontianak">
+ <exemplarCity>Pontianak</exemplarCity>
+ </zone>
+ <zone type="Asia/Makassar">
+ <exemplarCity>Makassar</exemplarCity>
+ </zone>
+ <zone type="Asia/Jayapura">
+ <exemplarCity>Jajapura</exemplarCity>
+ </zone>
+ <zone type="Europe/Dublin">
+ <long>
+ <daylight>irsk sommertid</daylight>
+ </long>
+ <exemplarCity>Dublin</exemplarCity>
+ </zone>
+ <zone type="Asia/Jerusalem">
+ <exemplarCity>Jerusalem</exemplarCity>
+ </zone>
+ <zone type="Europe/Isle_of_Man">
+ <exemplarCity>Man</exemplarCity>
+ </zone>
+ <zone type="Asia/Calcutta">
+ <exemplarCity>Kolkata</exemplarCity>
+ </zone>
+ <zone type="Indian/Chagos">
+ <exemplarCity>Chagos</exemplarCity>
+ </zone>
+ <zone type="Asia/Baghdad">
+ <exemplarCity>Bagdad</exemplarCity>
+ </zone>
+ <zone type="Asia/Tehran">
+ <exemplarCity>Teheran</exemplarCity>
+ </zone>
+ <zone type="Atlantic/Reykjavik">
+ <exemplarCity>Reykjavík</exemplarCity>
+ </zone>
+ <zone type="Europe/Rome">
+ <exemplarCity>Roma</exemplarCity>
+ </zone>
+ <zone type="Europe/Jersey">
+ <exemplarCity>Jersey</exemplarCity>
+ </zone>
+ <zone type="America/Jamaica">
+ <exemplarCity>Jamaica</exemplarCity>
+ </zone>
+ <zone type="Asia/Amman">
+ <exemplarCity>Amman</exemplarCity>
+ </zone>
+ <zone type="Asia/Tokyo">
+ <exemplarCity>Tokyo</exemplarCity>
+ </zone>
+ <zone type="Africa/Nairobi">
+ <exemplarCity>Nairobi</exemplarCity>
+ </zone>
+ <zone type="Asia/Bishkek">
+ <exemplarCity>Bisjkek</exemplarCity>
+ </zone>
+ <zone type="Asia/Phnom_Penh">
+ <exemplarCity>Phnom Penh</exemplarCity>
+ </zone>
+ <zone type="Pacific/Enderbury">
+ <exemplarCity>Enderbury</exemplarCity>
+ </zone>
+ <zone type="Pacific/Kiritimati">
+ <exemplarCity>Kiritimati</exemplarCity>
+ </zone>
+ <zone type="Pacific/Tarawa">
+ <exemplarCity>Tarawa</exemplarCity>
+ </zone>
+ <zone type="Indian/Comoro">
+ <exemplarCity>Komorene</exemplarCity>
+ </zone>
+ <zone type="America/St_Kitts">
+ <exemplarCity>St. Kitts</exemplarCity>
+ </zone>
+ <zone type="Asia/Pyongyang">
+ <exemplarCity>Pyongyang</exemplarCity>
+ </zone>
+ <zone type="Asia/Seoul">
+ <exemplarCity>Seoul</exemplarCity>
+ </zone>
+ <zone type="Asia/Kuwait">
+ <exemplarCity>Kuwait</exemplarCity>
+ </zone>
+ <zone type="America/Cayman">
+ <exemplarCity>Caymanøyene</exemplarCity>
+ </zone>
+ <zone type="Asia/Aqtau">
+ <exemplarCity>Aktau</exemplarCity>
+ </zone>
+ <zone type="Asia/Oral">
+ <exemplarCity>Oral</exemplarCity>
+ </zone>
+ <zone type="Asia/Atyrau">
+ <exemplarCity>Atyrau</exemplarCity>
+ </zone>
+ <zone type="Asia/Aqtobe">
+ <exemplarCity>Aqtöbe</exemplarCity>
+ </zone>
+ <zone type="Asia/Qostanay">
+ <exemplarCity>Kostanaj</exemplarCity>
+ </zone>
+ <zone type="Asia/Qyzylorda">
+ <exemplarCity>Kyzylorda</exemplarCity>
+ </zone>
+ <zone type="Asia/Almaty">
+ <exemplarCity>Almaty</exemplarCity>
+ </zone>
+ <zone type="Asia/Vientiane">
+ <exemplarCity>Vientiane</exemplarCity>
+ </zone>
+ <zone type="Asia/Beirut">
+ <exemplarCity>Beirut</exemplarCity>
+ </zone>
+ <zone type="America/St_Lucia">
+ <exemplarCity>St. Lucia</exemplarCity>
+ </zone>
+ <zone type="Europe/Vaduz">
+ <exemplarCity>Vaduz</exemplarCity>
+ </zone>
+ <zone type="Asia/Colombo">
+ <exemplarCity>Colombo</exemplarCity>
+ </zone>
+ <zone type="Africa/Monrovia">
+ <exemplarCity>Monrovia</exemplarCity>
+ </zone>
+ <zone type="Africa/Maseru">
+ <exemplarCity>Maseru</exemplarCity>
+ </zone>
+ <zone type="Europe/Vilnius">
+ <exemplarCity>Vilnius</exemplarCity>
+ </zone>
+ <zone type="Europe/Luxembourg">
+ <exemplarCity>Luxemburg</exemplarCity>
+ </zone>
+ <zone type="Europe/Riga">
+ <exemplarCity>Riga</exemplarCity>
+ </zone>
+ <zone type="Africa/Tripoli">
+ <exemplarCity>Tripoli</exemplarCity>
+ </zone>
+ <zone type="Africa/Casablanca">
+ <exemplarCity>Casablanca</exemplarCity>
+ </zone>
+ <zone type="Europe/Monaco">
+ <exemplarCity>Monaco</exemplarCity>
+ </zone>
+ <zone type="Europe/Chisinau">
+ <exemplarCity>Chișinău</exemplarCity>
+ </zone>
+ <zone type="Europe/Podgorica">
+ <exemplarCity>Podgorica</exemplarCity>
+ </zone>
+ <zone type="America/Marigot">
+ <exemplarCity>Marigot</exemplarCity>
+ </zone>
+ <zone type="Indian/Antananarivo">
+ <exemplarCity>Antananarivo</exemplarCity>
+ </zone>
+ <zone type="Pacific/Kwajalein">
+ <exemplarCity>Kwajalein</exemplarCity>
+ </zone>
+ <zone type="Pacific/Majuro">
+ <exemplarCity>Majuro</exemplarCity>
+ </zone>
+ <zone type="Europe/Skopje">
+ <exemplarCity>Skopje</exemplarCity>
+ </zone>
+ <zone type="Africa/Bamako">
+ <exemplarCity>Bamako</exemplarCity>
+ </zone>
+ <zone type="Asia/Rangoon">
+ <exemplarCity>Yangon</exemplarCity>
+ </zone>
+ <zone type="Asia/Hovd">
+ <exemplarCity>Hovd</exemplarCity>
+ </zone>
+ <zone type="Asia/Ulaanbaatar">
+ <exemplarCity>Ulan Bator</exemplarCity>
+ </zone>
+ <zone type="Asia/Choibalsan">
+ <exemplarCity>Choybalsan</exemplarCity>
+ </zone>
+ <zone type="Asia/Macau">
+ <exemplarCity>Macao</exemplarCity>
+ </zone>
+ <zone type="Pacific/Saipan">
+ <exemplarCity>Saipan</exemplarCity>
+ </zone>
+ <zone type="America/Martinique">
+ <exemplarCity>Martinique</exemplarCity>
+ </zone>
+ <zone type="Africa/Nouakchott">
+ <exemplarCity>Nouakchott</exemplarCity>
+ </zone>
+ <zone type="America/Montserrat">
+ <exemplarCity>Montserrat</exemplarCity>
+ </zone>
+ <zone type="Europe/Malta">
+ <exemplarCity>Malta</exemplarCity>
+ </zone>
+ <zone type="Indian/Mauritius">
+ <exemplarCity>Mauritius</exemplarCity>
+ </zone>
+ <zone type="Indian/Maldives">
+ <exemplarCity>Maldivene</exemplarCity>
+ </zone>
+ <zone type="Africa/Blantyre">
+ <exemplarCity>Blantyre</exemplarCity>
+ </zone>
+ <zone type="America/Tijuana">
+ <exemplarCity>Tijuana</exemplarCity>
+ </zone>
+ <zone type="America/Hermosillo">
+ <exemplarCity>Hermosillo</exemplarCity>
+ </zone>
+ <zone type="America/Mazatlan">
+ <exemplarCity>Mazatlan</exemplarCity>
+ </zone>
+ <zone type="America/Chihuahua">
+ <exemplarCity>Chihuahua</exemplarCity>
+ </zone>
+ <zone type="America/Bahia_Banderas">
+ <exemplarCity>Bahía Banderas</exemplarCity>
+ </zone>
+ <zone type="America/Ojinaga">
+ <exemplarCity>Ojinaga</exemplarCity>
+ </zone>
+ <zone type="America/Monterrey">
+ <exemplarCity>Monterrey</exemplarCity>
+ </zone>
+ <zone type="America/Mexico_City">
+ <exemplarCity>Mexico by</exemplarCity>
+ </zone>
+ <zone type="America/Matamoros">
+ <exemplarCity>Matamoros</exemplarCity>
+ </zone>
+ <zone type="America/Merida">
+ <exemplarCity>Mérida</exemplarCity>
+ </zone>
+ <zone type="America/Cancun">
+ <exemplarCity>Cancún</exemplarCity>
+ </zone>
+ <zone type="Asia/Kuala_Lumpur">
+ <exemplarCity>Kuala Lumpur</exemplarCity>
+ </zone>
+ <zone type="Asia/Kuching">
+ <exemplarCity>Kuching</exemplarCity>
+ </zone>
+ <zone type="Africa/Maputo">
+ <exemplarCity>Maputo</exemplarCity>
+ </zone>
+ <zone type="Africa/Windhoek">
+ <exemplarCity>Windhoek</exemplarCity>
+ </zone>
+ <zone type="Pacific/Noumea">
+ <exemplarCity>Nouméa</exemplarCity>
+ </zone>
+ <zone type="Africa/Niamey">
+ <exemplarCity>Niamey</exemplarCity>
+ </zone>
+ <zone type="Pacific/Norfolk">
+ <exemplarCity>Norfolkøya</exemplarCity>
+ </zone>
+ <zone type="Africa/Lagos">
+ <exemplarCity>Lagos</exemplarCity>
+ </zone>
+ <zone type="America/Managua">
+ <exemplarCity>Managua</exemplarCity>
+ </zone>
+ <zone type="Europe/Amsterdam">
+ <exemplarCity>Amsterdam</exemplarCity>
+ </zone>
+ <zone type="Europe/Oslo">
+ <exemplarCity>Oslo</exemplarCity>
+ </zone>
+ <zone type="Asia/Katmandu">
+ <exemplarCity>Katmandu</exemplarCity>
+ </zone>
+ <zone type="Pacific/Nauru">
+ <exemplarCity>Nauru</exemplarCity>
+ </zone>
+ <zone type="Pacific/Niue">
+ <exemplarCity>Niue</exemplarCity>
+ </zone>
+ <zone type="Pacific/Chatham">
+ <exemplarCity>Chatham</exemplarCity>
+ </zone>
+ <zone type="Pacific/Auckland">
+ <exemplarCity>Auckland</exemplarCity>
+ </zone>
+ <zone type="Asia/Muscat">
+ <exemplarCity>Muskat</exemplarCity>
+ </zone>
+ <zone type="America/Panama">
+ <exemplarCity>Panama</exemplarCity>
+ </zone>
+ <zone type="America/Lima">
+ <exemplarCity>Lima</exemplarCity>
+ </zone>
+ <zone type="Pacific/Tahiti">
+ <exemplarCity>Tahiti</exemplarCity>
+ </zone>
+ <zone type="Pacific/Marquesas">
+ <exemplarCity>Marquesas</exemplarCity>
+ </zone>
+ <zone type="Pacific/Gambier">
+ <exemplarCity>Gambier</exemplarCity>
+ </zone>
+ <zone type="Pacific/Port_Moresby">
+ <exemplarCity>Port Moresby</exemplarCity>
+ </zone>
+ <zone type="Pacific/Bougainville">
+ <exemplarCity>Bougainville</exemplarCity>
+ </zone>
+ <zone type="Asia/Manila">
+ <exemplarCity>Manila</exemplarCity>
+ </zone>
+ <zone type="Asia/Karachi">
+ <exemplarCity>Karachi</exemplarCity>
+ </zone>
+ <zone type="Europe/Warsaw">
+ <exemplarCity>Warszawa</exemplarCity>
+ </zone>
+ <zone type="America/Miquelon">
+ <exemplarCity>Miquelon</exemplarCity>
+ </zone>
+ <zone type="Pacific/Pitcairn">
+ <exemplarCity>Pitcairn</exemplarCity>
+ </zone>
+ <zone type="America/Puerto_Rico">
+ <exemplarCity>Puerto Rico</exemplarCity>
+ </zone>
+ <zone type="Asia/Gaza">
+ <exemplarCity>Gaza</exemplarCity>
+ </zone>
+ <zone type="Asia/Hebron">
+ <exemplarCity>Hebron</exemplarCity>
+ </zone>
+ <zone type="Atlantic/Azores">
+ <exemplarCity>Asorene</exemplarCity>
+ </zone>
+ <zone type="Atlantic/Madeira">
+ <exemplarCity>Madeira</exemplarCity>
+ </zone>
+ <zone type="Europe/Lisbon">
+ <exemplarCity>Lisboa</exemplarCity>
+ </zone>
+ <zone type="Pacific/Palau">
+ <exemplarCity>Palau</exemplarCity>
+ </zone>
+ <zone type="America/Asuncion">
+ <exemplarCity>Asunción</exemplarCity>
+ </zone>
+ <zone type="Asia/Qatar">
+ <exemplarCity>Qatar</exemplarCity>
+ </zone>
+ <zone type="Indian/Reunion">
+ <exemplarCity>Réunion</exemplarCity>
+ </zone>
+ <zone type="Europe/Bucharest">
+ <exemplarCity>București</exemplarCity>
+ </zone>
+ <zone type="Europe/Belgrade">
+ <exemplarCity>Beograd</exemplarCity>
+ </zone>
+ <zone type="Europe/Kaliningrad">
+ <exemplarCity>Kaliningrad</exemplarCity>
+ </zone>
+ <zone type="Europe/Moscow">
+ <exemplarCity>Moskva</exemplarCity>
+ </zone>
+ <zone type="Europe/Volgograd">
+ <exemplarCity>Volgograd</exemplarCity>
+ </zone>
+ <zone type="Europe/Saratov">
+ <exemplarCity>Saratov</exemplarCity>
+ </zone>
+ <zone type="Europe/Astrakhan">
+ <exemplarCity>Astrakhan</exemplarCity>
+ </zone>
+ <zone type="Europe/Ulyanovsk">
+ <exemplarCity>Uljanovsk</exemplarCity>
+ </zone>
+ <zone type="Europe/Kirov">
+ <exemplarCity>Kirov</exemplarCity>
+ </zone>
+ <zone type="Europe/Samara">
+ <exemplarCity>Samara</exemplarCity>
+ </zone>
+ <zone type="Asia/Yekaterinburg">
+ <exemplarCity>Jekaterinburg</exemplarCity>
+ </zone>
+ <zone type="Asia/Omsk">
+ <exemplarCity>Omsk</exemplarCity>
+ </zone>
+ <zone type="Asia/Novosibirsk">
+ <exemplarCity>Novosibirsk</exemplarCity>
+ </zone>
+ <zone type="Asia/Barnaul">
+ <exemplarCity>Barnaul</exemplarCity>
+ </zone>
+ <zone type="Asia/Tomsk">
+ <exemplarCity>Tomsk</exemplarCity>
+ </zone>
+ <zone type="Asia/Novokuznetsk">
+ <exemplarCity>Novokuznetsk</exemplarCity>
+ </zone>
+ <zone type="Asia/Krasnoyarsk">
+ <exemplarCity>Krasnojarsk</exemplarCity>
+ </zone>
+ <zone type="Asia/Irkutsk">
+ <exemplarCity>Irkutsk</exemplarCity>
+ </zone>
+ <zone type="Asia/Chita">
+ <exemplarCity>Tsjita</exemplarCity>
+ </zone>
+ <zone type="Asia/Yakutsk">
+ <exemplarCity>Jakutsk</exemplarCity>
+ </zone>
+ <zone type="Asia/Vladivostok">
+ <exemplarCity>Vladivostok</exemplarCity>
+ </zone>
+ <zone type="Asia/Khandyga">
+ <exemplarCity>Khandyga</exemplarCity>
+ </zone>
+ <zone type="Asia/Sakhalin">
+ <exemplarCity>Sakhalin</exemplarCity>
+ </zone>
+ <zone type="Asia/Ust-Nera">
+ <exemplarCity>Ust-Nera</exemplarCity>
+ </zone>
+ <zone type="Asia/Magadan">
+ <exemplarCity>Magadan</exemplarCity>
+ </zone>
+ <zone type="Asia/Srednekolymsk">
+ <exemplarCity>Srednekolymsk</exemplarCity>
+ </zone>
+ <zone type="Asia/Kamchatka">
+ <exemplarCity>Kamtsjatka</exemplarCity>
+ </zone>
+ <zone type="Asia/Anadyr">
+ <exemplarCity>Anadyr</exemplarCity>
+ </zone>
+ <zone type="Africa/Kigali">
+ <exemplarCity>Kigali</exemplarCity>
+ </zone>
+ <zone type="Asia/Riyadh">
+ <exemplarCity>Riyadh</exemplarCity>
+ </zone>
+ <zone type="Pacific/Guadalcanal">
+ <exemplarCity>Guadalcanal</exemplarCity>
+ </zone>
+ <zone type="Indian/Mahe">
+ <exemplarCity>Mahé</exemplarCity>
+ </zone>
+ <zone type="Africa/Khartoum">
+ <exemplarCity>Khartoum</exemplarCity>
+ </zone>
+ <zone type="Europe/Stockholm">
+ <exemplarCity>Stockholm</exemplarCity>
+ </zone>
+ <zone type="Asia/Singapore">
+ <exemplarCity>Singapore</exemplarCity>
+ </zone>
+ <zone type="Atlantic/St_Helena">
+ <exemplarCity>St. Helena</exemplarCity>
+ </zone>
+ <zone type="Europe/Ljubljana">
+ <exemplarCity>Ljubljana</exemplarCity>
+ </zone>
+ <zone type="Arctic/Longyearbyen">
+ <exemplarCity>Longyearbyen</exemplarCity>
+ </zone>
+ <zone type="Europe/Bratislava">
+ <exemplarCity>Bratislava</exemplarCity>
+ </zone>
+ <zone type="Africa/Freetown">
+ <exemplarCity>Freetown</exemplarCity>
+ </zone>
+ <zone type="Europe/San_Marino">
+ <exemplarCity>San Marino</exemplarCity>
+ </zone>
+ <zone type="Africa/Dakar">
+ <exemplarCity>Dakar</exemplarCity>
+ </zone>
+ <zone type="Africa/Mogadishu">
+ <exemplarCity>Mogadishu</exemplarCity>
+ </zone>
+ <zone type="America/Paramaribo">
+ <exemplarCity>Paramaribo</exemplarCity>
+ </zone>
+ <zone type="Africa/Juba">
+ <exemplarCity>Juba</exemplarCity>
+ </zone>
+ <zone type="Africa/Sao_Tome">
+ <exemplarCity>São Tomé</exemplarCity>
+ </zone>
+ <zone type="America/El_Salvador">
+ <exemplarCity>El Salvador</exemplarCity>
+ </zone>
+ <zone type="America/Lower_Princes">
+ <exemplarCity>Lower Prince’s Quarter</exemplarCity>
+ </zone>
+ <zone type="Asia/Damascus">
+ <exemplarCity>Damaskus</exemplarCity>
+ </zone>
+ <zone type="Africa/Mbabane">
+ <exemplarCity>Mbabane</exemplarCity>
+ </zone>
+ <zone type="America/Grand_Turk">
+ <exemplarCity>Grand Turk</exemplarCity>
+ </zone>
+ <zone type="Africa/Ndjamena">
+ <exemplarCity>Ndjamena</exemplarCity>
+ </zone>
+ <zone type="Indian/Kerguelen">
+ <exemplarCity>Kerguelen</exemplarCity>
+ </zone>
+ <zone type="Africa/Lome">
+ <exemplarCity>Lomé</exemplarCity>
+ </zone>
+ <zone type="Asia/Bangkok">
+ <exemplarCity>Bangkok</exemplarCity>
+ </zone>
+ <zone type="Asia/Dushanbe">
+ <exemplarCity>Dusjanbe</exemplarCity>
+ </zone>
+ <zone type="Pacific/Fakaofo">
+ <exemplarCity>Fakaofo</exemplarCity>
+ </zone>
+ <zone type="Asia/Dili">
+ <exemplarCity>Dili</exemplarCity>
+ </zone>
+ <zone type="Asia/Ashgabat">
+ <exemplarCity>Asjkhabad</exemplarCity>
+ </zone>
+ <zone type="Africa/Tunis">
+ <exemplarCity>Tunis</exemplarCity>
+ </zone>
+ <zone type="Pacific/Tongatapu">
+ <exemplarCity>Tongatapu</exemplarCity>
+ </zone>
+ <zone type="Europe/Istanbul">
+ <exemplarCity>Istanbul</exemplarCity>
+ </zone>
+ <zone type="America/Port_of_Spain">
+ <exemplarCity>Port of Spain</exemplarCity>
+ </zone>
+ <zone type="Pacific/Funafuti">
+ <exemplarCity>Funafuti</exemplarCity>
+ </zone>
+ <zone type="Asia/Taipei">
+ <exemplarCity>Taipei</exemplarCity>
+ </zone>
+ <zone type="Africa/Dar_es_Salaam">
+ <exemplarCity>Dar-es-Salaam</exemplarCity>
+ </zone>
+ <zone type="Europe/Uzhgorod">
+ <exemplarCity>Uzjhorod</exemplarCity>
+ </zone>
+ <zone type="Europe/Kiev">
+ <exemplarCity>Kiev</exemplarCity>
+ </zone>
+ <zone type="Europe/Simferopol">
+ <exemplarCity>Simferopol</exemplarCity>
+ </zone>
+ <zone type="Europe/Zaporozhye">
+ <exemplarCity>Zaporizjzja</exemplarCity>
+ </zone>
+ <zone type="Africa/Kampala">
+ <exemplarCity>Kampala</exemplarCity>
+ </zone>
+ <zone type="Pacific/Midway">
+ <exemplarCity>Midway</exemplarCity>
+ </zone>
+ <zone type="Pacific/Wake">
+ <exemplarCity>Wake</exemplarCity>
+ </zone>
+ <zone type="America/Adak">
+ <exemplarCity>Adak</exemplarCity>
+ </zone>
+ <zone type="America/Nome">
+ <exemplarCity>Nome</exemplarCity>
+ </zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
+ <zone type="Pacific/Johnston">
+ <exemplarCity>Johnston</exemplarCity>
+ </zone>
+ <zone type="America/Anchorage">
+ <exemplarCity>Anchorage</exemplarCity>
+ </zone>
+ <zone type="America/Yakutat">
+ <exemplarCity>Yakutat</exemplarCity>
+ </zone>
+ <zone type="America/Sitka">
+ <exemplarCity>Sitka</exemplarCity>
+ </zone>
+ <zone type="America/Juneau">
+ <exemplarCity>Juneau</exemplarCity>
+ </zone>
+ <zone type="America/Metlakatla">
+ <exemplarCity>Metlakatla</exemplarCity>
+ </zone>
+ <zone type="America/Los_Angeles">
+ <exemplarCity>Los Angeles</exemplarCity>
+ </zone>
+ <zone type="America/Boise">
+ <exemplarCity>Boise</exemplarCity>
+ </zone>
+ <zone type="America/Phoenix">
+ <exemplarCity>Phoenix</exemplarCity>
+ </zone>
+ <zone type="America/Denver">
+ <exemplarCity>Denver</exemplarCity>
+ </zone>
+ <zone type="America/North_Dakota/Beulah">
+ <exemplarCity>Beulah, Nord-Dakota</exemplarCity>
+ </zone>
+ <zone type="America/North_Dakota/New_Salem">
+ <exemplarCity>New Salem, Nord-Dakota</exemplarCity>
+ </zone>
+ <zone type="America/North_Dakota/Center">
+ <exemplarCity>Center, Nord-Dakota</exemplarCity>
+ </zone>
+ <zone type="America/Chicago">
+ <exemplarCity>Chicago</exemplarCity>
+ </zone>
+ <zone type="America/Menominee">
+ <exemplarCity>Menominee</exemplarCity>
+ </zone>
+ <zone type="America/Indiana/Vincennes">
+ <exemplarCity>Vincennes, Indiana</exemplarCity>
+ </zone>
+ <zone type="America/Indiana/Petersburg">
+ <exemplarCity>Petersburg, Indiana</exemplarCity>
+ </zone>
+ <zone type="America/Indiana/Tell_City">
+ <exemplarCity>Tell City, Indiana</exemplarCity>
+ </zone>
+ <zone type="America/Indiana/Knox">
+ <exemplarCity>Knox, Indiana</exemplarCity>
+ </zone>
+ <zone type="America/Indiana/Winamac">
+ <exemplarCity>Winamac, Indiana</exemplarCity>
+ </zone>
+ <zone type="America/Indiana/Marengo">
+ <exemplarCity>Marengo, Indiana</exemplarCity>
+ </zone>
+ <zone type="America/Indianapolis">
+ <exemplarCity>Indianapolis</exemplarCity>
+ </zone>
+ <zone type="America/Louisville">
+ <exemplarCity>Louisville</exemplarCity>
+ </zone>
+ <zone type="America/Indiana/Vevay">
+ <exemplarCity>Vevay, Indiana</exemplarCity>
+ </zone>
+ <zone type="America/Kentucky/Monticello">
+ <exemplarCity>Monticello, Kentucky</exemplarCity>
+ </zone>
+ <zone type="America/Detroit">
+ <exemplarCity>Detroit</exemplarCity>
+ </zone>
+ <zone type="America/New_York">
+ <exemplarCity>New York</exemplarCity>
+ </zone>
+ <zone type="America/Montevideo">
+ <exemplarCity>Montevideo</exemplarCity>
+ </zone>
+ <zone type="Asia/Samarkand">
+ <exemplarCity>Samarkand</exemplarCity>
+ </zone>
+ <zone type="Asia/Tashkent">
+ <exemplarCity>Tasjkent</exemplarCity>
+ </zone>
+ <zone type="Europe/Vatican">
+ <exemplarCity>Vatikanstaten</exemplarCity>
+ </zone>
+ <zone type="America/St_Vincent">
+ <exemplarCity>St. Vincent</exemplarCity>
+ </zone>
+ <zone type="America/Caracas">
+ <exemplarCity>Caracas</exemplarCity>
+ </zone>
+ <zone type="America/Tortola">
+ <exemplarCity>Tortola</exemplarCity>
+ </zone>
+ <zone type="America/St_Thomas">
+ <exemplarCity>St. Thomas</exemplarCity>
+ </zone>
+ <zone type="Asia/Saigon">
+ <exemplarCity>Ho Chi Minh-byen</exemplarCity>
+ </zone>
+ <zone type="Pacific/Efate">
+ <exemplarCity>Efate</exemplarCity>
+ </zone>
+ <zone type="Pacific/Wallis">
+ <exemplarCity>Wallis</exemplarCity>
+ </zone>
+ <zone type="Pacific/Apia">
+ <exemplarCity>Apia</exemplarCity>
+ </zone>
+ <zone type="Asia/Aden">
+ <exemplarCity>Aden</exemplarCity>
+ </zone>
+ <zone type="Indian/Mayotte">
+ <exemplarCity>Mayotte</exemplarCity>
+ </zone>
+ <zone type="Africa/Johannesburg">
+ <exemplarCity>Johannesburg</exemplarCity>
+ </zone>
+ <zone type="Africa/Lusaka">
+ <exemplarCity>Lusaka</exemplarCity>
+ </zone>
+ <zone type="Africa/Harare">
+ <exemplarCity>Harare</exemplarCity>
+ </zone>
+ <metazone type="Acre">
+ <long>
+ <generic>Acre-tid</generic>
+ <standard>Acre normaltid</standard>
+ <daylight>Acre sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Afghanistan">
+ <long>
+ <standard>afghansk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Africa_Central">
+ <long>
+ <standard>sentralafrikansk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Africa_Eastern">
+ <long>
+ <standard>østafrikansk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Africa_Southern">
+ <long>
+ <standard>sørafrikansk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Africa_Western">
+ <long>
+ <generic>vestafrikansk tid</generic>
+ <standard>vestafrikansk normaltid</standard>
+ <daylight>vestafrikansk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Alaska">
+ <long>
+ <generic>alaskisk tid</generic>
+ <standard>alaskisk normaltid</standard>
+ <daylight>alaskisk sommertid</daylight>
+ </long>
+ <short>
+ <generic draft="contributed">AKT</generic>
+ <standard draft="contributed">AKST</standard>
+ <daylight draft="contributed">AKDT</daylight>
+ </short>
+ </metazone>
+ <metazone type="Almaty">
+ <long>
+ <generic draft="contributed">Almaty-tid</generic>
+ <standard draft="contributed">Almaty, standardtid</standard>
+ <daylight draft="contributed">Almaty, sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Amazon">
+ <long>
+ <generic>tidssone for Amazonas</generic>
+ <standard>normaltid for Amazonas</standard>
+ <daylight>sommertid for Amazonas</daylight>
+ </long>
+ </metazone>
+ <metazone type="America_Central">
+ <long>
+ <generic>tidssone for det sentrale Nord-Amerika</generic>
+ <standard>normaltid for det sentrale Nord-Amerika</standard>
+ <daylight>sommertid for det sentrale Nord-Amerika</daylight>
+ </long>
+ <short>
+ <generic draft="contributed">CT</generic>
+ <standard draft="contributed">CST</standard>
+ <daylight draft="contributed">CDT</daylight>
+ </short>
+ </metazone>
+ <metazone type="America_Eastern">
+ <long>
+ <generic>tidssone for den nordamerikanske østkysten</generic>
+ <standard>normaltid for den nordamerikanske østkysten</standard>
+ <daylight>sommertid for den nordamerikanske østkysten</daylight>
+ </long>
+ <short>
+ <generic draft="contributed">ET</generic>
+ <standard draft="contributed">EST</standard>
+ <daylight draft="contributed">EDT</daylight>
+ </short>
+ </metazone>
+ <metazone type="America_Mountain">
+ <long>
+ <generic>tidssone for Rocky Mountains (USA)</generic>
+ <standard>normaltid for Rocky Mountains (USA)</standard>
+ <daylight>sommertid for Rocky Mountains (USA)</daylight>
+ </long>
+ <short>
+ <generic draft="contributed">MT</generic>
+ <standard draft="contributed">MST</standard>
+ <daylight draft="contributed">MDT</daylight>
+ </short>
+ </metazone>
+ <metazone type="America_Pacific">
+ <long>
+ <generic>tidssone for den nordamerikanske Stillehavskysten</generic>
+ <standard>normaltid for den nordamerikanske Stillehavskysten</standard>
+ <daylight>sommertid for den nordamerikanske Stillehavskysten</daylight>
+ </long>
+ <short>
+ <generic draft="contributed">PT</generic>
+ <standard draft="contributed">PST</standard>
+ <daylight draft="contributed">PDT</daylight>
+ </short>
+ </metazone>
+ <metazone type="Anadyr">
+ <long>
+ <generic draft="contributed">Russisk (Anadyr) tid</generic>
+ <standard draft="contributed">Russisk (Anadyr) normaltid</standard>
+ <daylight draft="contributed">Russisk (Anadyr) sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Apia">
+ <long>
+ <generic>tidssone for Apia</generic>
+ <standard>normaltid for Apia</standard>
+ <daylight>sommertid for Apia</daylight>
+ </long>
+ </metazone>
+ <metazone type="Aqtau">
+ <long>
+ <generic draft="contributed">Aqtau-tid</generic>
+ <standard draft="contributed">Aqtau, standardtid</standard>
+ <daylight draft="contributed">Aqtau, sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Aqtobe">
+ <long>
+ <generic draft="contributed">Aqtobe-tid</generic>
+ <standard draft="contributed">Aqtobe, standardtid</standard>
+ <daylight draft="contributed">Aqtobe, sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Arabian">
+ <long>
+ <generic>arabisk tid</generic>
+ <standard>arabisk standardtid</standard>
+ <daylight>arabisk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Argentina">
+ <long>
+ <generic>argentinsk tid</generic>
+ <standard>argentinsk normaltid</standard>
+ <daylight>argentinsk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Argentina_Western">
+ <long>
+ <generic>vestargentinsk tid</generic>
+ <standard>vestargentinsk normaltid</standard>
+ <daylight>vestargentinsk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Armenia">
+ <long>
+ <generic>armensk tid</generic>
+ <standard>armensk normaltid</standard>
+ <daylight>armensk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Atlantic">
+ <long>
+ <generic>tidssone for den nordamerikanske atlanterhavskysten</generic>
+ <standard>normaltid for den nordamerikanske atlanterhavskysten</standard>
+ <daylight>sommertid for den nordamerikanske atlanterhavskysten</daylight>
+ </long>
+ <short>
+ <generic draft="contributed">AT</generic>
+ <standard draft="contributed">AST</standard>
+ <daylight draft="contributed">ADT</daylight>
+ </short>
+ </metazone>
+ <metazone type="Australia_Central">
+ <long>
+ <generic>sentralaustralsk tid</generic>
+ <standard>sentralaustralsk normaltid</standard>
+ <daylight>sentralaustralsk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Australia_CentralWestern">
+ <long>
+ <generic>vest-sentralaustralsk tid</generic>
+ <standard>vest-sentralaustralsk normaltid</standard>
+ <daylight>vest-sentralaustralsk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Australia_Eastern">
+ <long>
+ <generic>østaustralsk tid</generic>
+ <standard>østaustralsk normaltid</standard>
+ <daylight>østaustralsk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Australia_Western">
+ <long>
+ <generic>vestaustralsk tid</generic>
+ <standard>vestaustralsk normaltid</standard>
+ <daylight>vestaustralsk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Azerbaijan">
+ <long>
+ <generic>aserbajdsjansk tid</generic>
+ <standard>aserbajdsjansk normaltid</standard>
+ <daylight>aserbajdsjansk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Azores">
+ <long>
+ <generic>asorisk tid</generic>
+ <standard>asorisk normaltid</standard>
+ <daylight>asorisk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Bangladesh">
+ <long>
+ <generic>bangladeshisk tid</generic>
+ <standard>bangladeshisk normaltid</standard>
+ <daylight>bangladeshisk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Bhutan">
+ <long>
+ <standard>bhutansk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Bolivia">
+ <long>
+ <standard>boliviansk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Brasilia">
+ <long>
+ <generic>tidssone for Brasilia</generic>
+ <standard>normaltid for Brasilia</standard>
+ <daylight>sommertid for Brasilia</daylight>
+ </long>
+ </metazone>
+ <metazone type="Brunei">
+ <long>
+ <standard>tidssone for Brunei Darussalam</standard>
+ </long>
+ </metazone>
+ <metazone type="Cape_Verde">
+ <long>
+ <generic>kappverdisk tid</generic>
+ <standard>kappverdisk normaltid</standard>
+ <daylight>kappverdisk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Casey">
+ <long>
+ <standard draft="contributed">Casey-tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Chamorro">
+ <long>
+ <standard>tidssone for Chamorro</standard>
+ </long>
+ </metazone>
+ <metazone type="Chatham">
+ <long>
+ <generic>tidssone for Chatham</generic>
+ <standard>normaltid for Chatham</standard>
+ <daylight>sommertid for Chatham</daylight>
+ </long>
+ </metazone>
+ <metazone type="Chile">
+ <long>
+ <generic>chilensk tid</generic>
+ <standard>chilensk normaltid</standard>
+ <daylight>chilensk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="China">
+ <long>
+ <generic>kinesisk tid</generic>
+ <standard>kinesisk normaltid</standard>
+ <daylight>kinesisk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Choibalsan">
+ <long>
+ <generic>tidssone for Tsjojbalsan</generic>
+ <standard>normaltid for Tsjojbalsan</standard>
+ <daylight>sommertid for Tsjojbalsan</daylight>
+ </long>
+ </metazone>
+ <metazone type="Christmas">
+ <long>
+ <standard>tidssone for Christmasøya</standard>
+ </long>
+ </metazone>
+ <metazone type="Cocos">
+ <long>
+ <standard>tidssone for Kokosøyene</standard>
+ </long>
+ </metazone>
+ <metazone type="Colombia">
+ <long>
+ <generic>colombiansk tid</generic>
+ <standard>colombiansk normaltid</standard>
+ <daylight>colombiansk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Cook">
+ <long>
+ <generic>tidssone for Cookøyene</generic>
+ <standard>normaltid for Cookøyene</standard>
+ <daylight>halv sommertid for Cookøyene</daylight>
+ </long>
+ </metazone>
+ <metazone type="Cuba">
+ <long>
+ <generic>cubansk tid</generic>
+ <standard>cubansk normaltid</standard>
+ <daylight>cubansk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Davis">
+ <long>
+ <standard>tidssone for Davis</standard>
+ </long>
+ </metazone>
+ <metazone type="DumontDUrville">
+ <long>
+ <standard>tidssone for Dumont d’Urville</standard>
+ </long>
+ </metazone>
+ <metazone type="East_Timor">
+ <long>
+ <standard>østtimoresisk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Easter">
+ <long>
+ <generic>tidssone for Påskeøya</generic>
+ <standard>normaltid for Påskeøya</standard>
+ <daylight>sommertid for Påskeøya</daylight>
+ </long>
+ </metazone>
+ <metazone type="Ecuador">
+ <long>
+ <standard>ecuadoriansk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Europe_Central">
+ <long>
+ <generic>sentraleuropeisk tid</generic>
+ <standard>sentraleuropeisk normaltid</standard>
+ <daylight>sentraleuropeisk sommertid</daylight>
+ </long>
+ <short>
+ <generic>CET</generic>
+ <standard>CET</standard>
+ <daylight>CEST</daylight>
+ </short>
+ </metazone>
+ <metazone type="Europe_Eastern">
+ <long>
+ <generic>østeuropeisk tid</generic>
+ <standard>østeuropeisk normaltid</standard>
+ <daylight>østeuropeisk sommertid</daylight>
+ </long>
+ <short>
+ <generic>EET</generic>
+ <standard>EET</standard>
+ <daylight>EEST</daylight>
+ </short>
+ </metazone>
+ <metazone type="Europe_Further_Eastern">
+ <long>
+ <standard>fjern-østeuropeisk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Europe_Western">
+ <long>
+ <generic>vesteuropeisk tid</generic>
+ <standard>vesteuropeisk normaltid</standard>
+ <daylight>vesteuropeisk sommertid</daylight>
+ </long>
+ <short>
+ <generic>WET</generic>
+ <standard>WET</standard>
+ <daylight>WEST</daylight>
+ </short>
+ </metazone>
+ <metazone type="Falkland">
+ <long>
+ <generic>tidssone for Falklandsøyene</generic>
+ <standard>normaltid for Falklandsøyene</standard>
+ <daylight>sommertid for Falklandsøyene</daylight>
+ </long>
+ </metazone>
+ <metazone type="Fiji">
+ <long>
+ <generic>fijiansk tid</generic>
+ <standard>fijiansk normaltid</standard>
+ <daylight>fijiansk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="French_Guiana">
+ <long>
+ <standard>tidssone for Fransk Guyana</standard>
+ </long>
+ </metazone>
+ <metazone type="French_Southern">
+ <long>
+ <standard>tidssone for De franske sørterritorier</standard>
+ </long>
+ </metazone>
+ <metazone type="Galapagos">
+ <long>
+ <standard>tidssone for Galápagosøyene</standard>
+ </long>
+ </metazone>
+ <metazone type="Gambier">
+ <long>
+ <standard>tidssone for Gambier</standard>
+ </long>
+ </metazone>
+ <metazone type="Georgia">
+ <long>
+ <generic>georgisk tid</generic>
+ <standard>georgisk normaltid</standard>
+ <daylight>georgisk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Gilbert_Islands">
+ <long>
+ <standard>tidssone for Gilbertøyene</standard>
+ </long>
+ </metazone>
+ <metazone type="GMT">
+ <long>
+ <standard>Greenwich middeltid</standard>
+ </long>
+ <short>
+ <standard>GMT</standard>
+ </short>
+ </metazone>
+ <metazone type="Greenland_Eastern">
+ <long>
+ <generic>østgrønlandsk tid</generic>
+ <standard>østgrønlandsk normaltid</standard>
+ <daylight>østgrønlandsk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Greenland_Western">
+ <long>
+ <generic>vestgrønlandsk tid</generic>
+ <standard>vestgrønlandsk normaltid</standard>
+ <daylight>vestgrønlandsk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Guam">
+ <long>
+ <standard draft="contributed">Guam-tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Gulf">
+ <long>
+ <standard>tidssone for Persiabukta</standard>
+ </long>
+ </metazone>
+ <metazone type="Guyana">
+ <long>
+ <standard>guyansk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Hawaii_Aleutian">
+ <long>
+ <generic>tidssone for Hawaii og Aleutene</generic>
+ <standard>normaltid for Hawaii og Aleutene</standard>
+ <daylight>sommertid for Hawaii og Aleutene</daylight>
+ </long>
+ <short>
+ <generic draft="contributed">HAT</generic>
+ <standard draft="contributed">HAST</standard>
+ <daylight draft="contributed">HADT</daylight>
+ </short>
+ </metazone>
+ <metazone type="Hong_Kong">
+ <long>
+ <generic>tidssone for Hongkong</generic>
+ <standard>normaltid for Hongkong</standard>
+ <daylight>sommertid for Hongkong</daylight>
+ </long>
+ </metazone>
+ <metazone type="Hovd">
+ <long>
+ <generic>tidssone for Khovd</generic>
+ <standard>normaltid for Khovd</standard>
+ <daylight>sommertid for Khovd</daylight>
+ </long>
+ </metazone>
+ <metazone type="India">
+ <long>
+ <standard>indisk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Indian_Ocean">
+ <long>
+ <standard>tidssone for Indiahavet</standard>
+ </long>
+ </metazone>
+ <metazone type="Indochina">
+ <long>
+ <standard>indokinesisk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Indonesia_Central">
+ <long>
+ <standard>sentralindonesisk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Indonesia_Eastern">
+ <long>
+ <standard>østindonesisk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Indonesia_Western">
+ <long>
+ <standard>vestindonesisk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Iran">
+ <long>
+ <generic>iransk tid</generic>
+ <standard>iransk normaltid</standard>
+ <daylight>iransk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Irkutsk">
+ <long>
+ <generic>tidssone for Irkutsk</generic>
+ <standard>normaltid for Irkutsk</standard>
+ <daylight>sommertid for Irkutsk</daylight>
+ </long>
+ </metazone>
+ <metazone type="Israel">
+ <long>
+ <generic>israelsk tid</generic>
+ <standard>israelsk normaltid</standard>
+ <daylight>israelsk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Japan">
+ <long>
+ <generic>japansk tid</generic>
+ <standard>japansk normaltid</standard>
+ <daylight>japansk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Kamchatka">
+ <long>
+ <generic draft="contributed">Russisk (Petropavlovsk-Kamtsjatskij) tid</generic>
+ <standard draft="contributed">Russisk (Petropavlovsk-Kamtsjatskij) normaltid</standard>
+ <daylight draft="contributed">Russisk (Petropavlovsk-Kamtsjatskij) sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Kazakhstan_Eastern">
+ <long>
+ <standard>østkasakhstansk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Kazakhstan_Western">
+ <long>
+ <standard>vestkasakhstansk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Korea">
+ <long>
+ <generic>koreansk tid</generic>
+ <standard>koreansk normaltid</standard>
+ <daylight>koreansk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Kosrae">
+ <long>
+ <standard>tidssone for Kosrae</standard>
+ </long>
+ </metazone>
+ <metazone type="Krasnoyarsk">
+ <long>
+ <generic>tidssone for Krasnojarsk</generic>
+ <standard>normaltid for Krasnojarsk</standard>
+ <daylight>sommertid for Krasnojarsk</daylight>
+ </long>
+ </metazone>
+ <metazone type="Kyrgystan">
+ <long>
+ <standard>kirgisisk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Lanka">
+ <long>
+ <standard draft="contributed">Lanka-tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Line_Islands">
+ <long>
+ <standard>tidssone for Linjeøyene</standard>
+ </long>
+ </metazone>
+ <metazone type="Lord_Howe">
+ <long>
+ <generic>tidssone for Lord Howe-øya</generic>
+ <standard>normaltid for Lord Howe-øya</standard>
+ <daylight>sommertid for Lord Howe-øya</daylight>
+ </long>
+ </metazone>
+ <metazone type="Macau">
+ <long>
+ <generic draft="contributed">Macau-tid</generic>
+ <standard draft="contributed">Macau, standardtid</standard>
+ <daylight draft="contributed">Macau, sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Macquarie">
+ <long>
+ <standard>tidssone for Macquarieøya</standard>
+ </long>
+ </metazone>
+ <metazone type="Magadan">
+ <long>
+ <generic>tidssone for Magadan</generic>
+ <standard>normaltid for Magadan</standard>
+ <daylight>sommertid for Magadan</daylight>
+ </long>
+ </metazone>
+ <metazone type="Malaysia">
+ <long>
+ <standard>malaysisk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Maldives">
+ <long>
+ <standard>maldivisk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Marquesas">
+ <long>
+ <standard>tidssone for Marquesasøyene</standard>
+ </long>
+ </metazone>
+ <metazone type="Marshall_Islands">
+ <long>
+ <standard>marshallesisk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Mauritius">
+ <long>
+ <generic>mauritisk tid</generic>
+ <standard>mauritisk normaltid</standard>
+ <daylight>mauritisk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Mawson">
+ <long>
+ <standard>tidssone for Mawson</standard>
+ </long>
+ </metazone>
+ <metazone type="Mexico_Northwest">
+ <long>
+ <generic>tidssone for nordvestlige Mexico</generic>
+ <standard>normaltid for nordvestlige Mexico</standard>
+ <daylight>sommertid for nordvestlige Mexico</daylight>
+ </long>
+ </metazone>
+ <metazone type="Mexico_Pacific">
+ <long>
+ <generic>tidssone for den meksikanske Stillehavskysten</generic>
+ <standard>normaltid for den meksikanske Stillehavskysten</standard>
+ <daylight>sommertid for den meksikanske Stillehavskysten</daylight>
+ </long>
+ </metazone>
+ <metazone type="Mongolia">
+ <long>
+ <generic>tidssone for Ulan Bator</generic>
+ <standard>normaltid for Ulan Bator</standard>
+ <daylight>sommertid for Ulan Bator</daylight>
+ </long>
+ </metazone>
+ <metazone type="Moscow">
+ <long>
+ <generic>tidssone for Moskva</generic>
+ <standard>normaltid for Moskva</standard>
+ <daylight>sommertid for Moskva</daylight>
+ </long>
+ </metazone>
+ <metazone type="Myanmar">
+ <long>
+ <standard>myanmarsk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Nauru">
+ <long>
+ <standard>naurisk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Nepal">
+ <long>
+ <standard>nepalsk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="New_Caledonia">
+ <long>
+ <generic>kaledonsk tid</generic>
+ <standard>kaledonsk normaltid</standard>
+ <daylight>kaledonsk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="New_Zealand">
+ <long>
+ <generic>newzealandsk tid</generic>
+ <standard>newzealandsk normaltid</standard>
+ <daylight>newzealandsk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Newfoundland">
+ <long>
+ <generic>tidssone for Newfoundland</generic>
+ <standard>normaltid for Newfoundland</standard>
+ <daylight>sommertid for Newfoundland</daylight>
+ </long>
+ </metazone>
+ <metazone type="Niue">
+ <long>
+ <standard>tidssone for Niue</standard>
+ </long>
+ </metazone>
+ <metazone type="Norfolk">
+ <long>
+ <generic>tidssone for Norfolkøya</generic>
+ <standard>normaltid for Norfolkøya</standard>
+ <daylight>sommertid for Norfolkøya</daylight>
+ </long>
+ </metazone>
+ <metazone type="Noronha">
+ <long>
+ <generic>tidssone for Fernando de Noronha</generic>
+ <standard>normaltid for Fernando de Noronha</standard>
+ <daylight>sommertid for Fernando de Noronha</daylight>
+ </long>
+ </metazone>
+ <metazone type="North_Mariana">
+ <long>
+ <standard draft="contributed">Nord-Marianene-tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Novosibirsk">
+ <long>
+ <generic>tidssone for Novosibirsk</generic>
+ <standard>normaltid for Novosibirsk</standard>
+ <daylight>sommertid for Novosibirsk</daylight>
+ </long>
+ </metazone>
+ <metazone type="Omsk">
+ <long>
+ <generic>tidssone for Omsk</generic>
+ <standard>normaltid for Omsk</standard>
+ <daylight>sommertid for Omsk</daylight>
+ </long>
+ </metazone>
+ <metazone type="Pakistan">
+ <long>
+ <generic>pakistansk tid</generic>
+ <standard>pakistansk normaltid</standard>
+ <daylight>pakistansk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Palau">
+ <long>
+ <standard>palauisk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Papua_New_Guinea">
+ <long>
+ <standard>papuansk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Paraguay">
+ <long>
+ <generic>paraguayansk tid</generic>
+ <standard>paraguayansk normaltid</standard>
+ <daylight>paraguayansk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Peru">
+ <long>
+ <generic>peruansk tid</generic>
+ <standard>peruansk normaltid</standard>
+ <daylight>peruansk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Philippines">
+ <long>
+ <generic>filippinsk tid</generic>
+ <standard>filippinsk normaltid</standard>
+ <daylight>filippinsk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Phoenix_Islands">
+ <long>
+ <standard>tidssone for Phoenixøyene</standard>
+ </long>
+ </metazone>
+ <metazone type="Pierre_Miquelon">
+ <long>
+ <generic>tidssone for Saint-Pierre-et-Miquelon</generic>
+ <standard>normaltid for Saint-Pierre-et-Miquelon</standard>
+ <daylight>sommertid for Saint-Pierre-et-Miquelon</daylight>
+ </long>
+ </metazone>
+ <metazone type="Pitcairn">
+ <long>
+ <standard>tidssone for Pitcairn</standard>
+ </long>
+ </metazone>
+ <metazone type="Ponape">
+ <long>
+ <standard>tidssone for Pohnpei</standard>
+ </long>
+ </metazone>
+ <metazone type="Pyongyang">
+ <long>
+ <standard>tidssone for Pyongyang</standard>
+ </long>
+ </metazone>
+ <metazone type="Qyzylorda">
+ <long>
+ <generic draft="contributed">Qyzylorda-tid</generic>
+ <standard draft="contributed">Qyzylorda, standardtid</standard>
+ <daylight draft="contributed">Qyzylorda, sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Reunion">
+ <long>
+ <standard>tidssone for Réunion</standard>
+ </long>
+ </metazone>
+ <metazone type="Rothera">
+ <long>
+ <standard>tidssone for Rothera</standard>
+ </long>
+ </metazone>
+ <metazone type="Sakhalin">
+ <long>
+ <generic>tidssone for Sakhalin</generic>
+ <standard>normaltid for Sakhalin</standard>
+ <daylight>sommertid for Sakhalin</daylight>
+ </long>
+ </metazone>
+ <metazone type="Samara">
+ <long>
+ <generic draft="contributed">Russisk (Samara) tid</generic>
+ <standard draft="contributed">Russisk (Samara) normaltid</standard>
+ <daylight draft="contributed">Russisk (Samara) sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Samoa">
+ <long>
+ <generic>samoansk tid</generic>
+ <standard>samoansk normaltid</standard>
+ <daylight>samoansk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Seychelles">
+ <long>
+ <standard>seychellisk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Singapore">
+ <long>
+ <standard>singaporsk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Solomon">
+ <long>
+ <standard>salomonsk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="South_Georgia">
+ <long>
+ <standard>tidssone for Sør-Georgia</standard>
+ </long>
+ </metazone>
+ <metazone type="Suriname">
+ <long>
+ <standard>surinamsk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Syowa">
+ <long>
+ <standard>tidssone for Syowa</standard>
+ </long>
+ </metazone>
+ <metazone type="Tahiti">
+ <long>
+ <standard>tahitisk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Taipei">
+ <long>
+ <generic>tidssone for Taipei</generic>
+ <standard>normaltid for Taipei</standard>
+ <daylight>sommertid for Taipei</daylight>
+ </long>
+ </metazone>
+ <metazone type="Tajikistan">
+ <long>
+ <standard>tadsjikisk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Tokelau">
+ <long>
+ <standard>tidssone for Tokelau</standard>
+ </long>
+ </metazone>
+ <metazone type="Tonga">
+ <long>
+ <generic>tongansk tid</generic>
+ <standard>tongansk normaltid</standard>
+ <daylight>tongansk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Truk">
+ <long>
+ <standard>tidssone for Chuukøyene</standard>
+ </long>
+ </metazone>
+ <metazone type="Turkmenistan">
+ <long>
+ <generic>turkmensk tid</generic>
+ <standard>turkmensk normaltid</standard>
+ <daylight>turkmensk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Tuvalu">
+ <long>
+ <standard>tuvalsk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Uruguay">
+ <long>
+ <generic>uruguayansk tid</generic>
+ <standard>uruguayansk normaltid</standard>
+ <daylight>uruguayansk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Uzbekistan">
+ <long>
+ <generic>usbekisk tid</generic>
+ <standard>usbekisk normaltid</standard>
+ <daylight>usbekisk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Vanuatu">
+ <long>
+ <generic>vanuatisk tid</generic>
+ <standard>vanuatisk normaltid</standard>
+ <daylight>vanuatisk sommertid</daylight>
+ </long>
+ </metazone>
+ <metazone type="Venezuela">
+ <long>
+ <standard>venezuelansk tid</standard>
+ </long>
+ </metazone>
+ <metazone type="Vladivostok">
+ <long>
+ <generic>tidssone for Vladivostok</generic>
+ <standard>normaltid for Vladivostok</standard>
+ <daylight>sommertid for Vladivostok</daylight>
+ </long>
+ </metazone>
+ <metazone type="Volgograd">
+ <long>
+ <generic>tidssone for Volgograd</generic>
+ <standard>normaltid for Volgograd</standard>
+ <daylight>sommertid for Volgograd</daylight>
+ </long>
+ </metazone>
+ <metazone type="Vostok">
+ <long>
+ <standard>tidssone for Vostok</standard>
+ </long>
+ </metazone>
+ <metazone type="Wake">
+ <long>
+ <standard>tidssone for Wake Island</standard>
+ </long>
+ </metazone>
+ <metazone type="Wallis">
+ <long>
+ <standard>tidssone for Wallis- og Futunaøyene</standard>
+ </long>
+ </metazone>
+ <metazone type="Yakutsk">
+ <long>
+ <generic>tidssone for Jakutsk</generic>
+ <standard>normaltid for Jakutsk</standard>
+ <daylight>sommertid for Jakutsk</daylight>
+ </long>
+ </metazone>
+ <metazone type="Yekaterinburg">
+ <long>
+ <generic>tidssone for Jekaterinburg</generic>
+ <standard>normaltid for Jekaterinburg</standard>
+ <daylight>sommertid for Jekaterinburg</daylight>
+ </long>
+ </metazone>
+ </timeZoneNames>
+ </dates>
+ <numbers>
+ <defaultNumberingSystem draft="contributed">latn</defaultNumberingSystem>
+ <otherNumberingSystems>
+ <native draft="contributed">latn</native>
+ </otherNumberingSystems>
+ <minimumGroupingDigits draft="contributed">1</minimumGroupingDigits>
+ <symbols numberSystem="arab">
+ <decimal draft="contributed">٫</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">؛</list>
+ <percentSign draft="contributed">٪</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">اس</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">؉</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ <timeSeparator draft="contributed">.</timeSeparator>
+ </symbols>
+ <symbols numberSystem="arabext">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">؛</list>
+ <percentSign draft="contributed">٪</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">×۱۰^</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">؉</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ <timeSeparator draft="contributed">.</timeSeparator>
+ </symbols>
+ <symbols numberSystem="bali">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="beng">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="brah">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="cakm">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="cham">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="deva">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="fullwide">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="gujr">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="guru">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="hanidec">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="java">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="kali">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="khmr">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="knda">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="lana">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="lanatham">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="laoo">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="latn">
+ <decimal>,</decimal>
+ <group> </group>
+ <list draft="contributed">;</list>
+ <percentSign>%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign>−</minusSign>
+ <approximatelySign>ca.</approximatelySign>
+ <exponential>E</exponential>
+ <superscriptingExponent>×</superscriptingExponent>
+ <perMille>‰</perMille>
+ <infinity>∞</infinity>
+ <nan>NaN</nan>
+ <timeSeparator>:</timeSeparator>
+ <timeSeparator alt="variant">.</timeSeparator>
+ </symbols>
+ <symbols numberSystem="lepc">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="limb">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="mlym">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="mong">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="mtei">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="mymr">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="mymrshan">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="nkoo">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="olck">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="orya">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="osma">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="saur">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="shrd">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="sora">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="sund">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="takr">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="talu">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="tamldec">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="telu">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="thai">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="tibt">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <symbols numberSystem="vaii">
+ <decimal draft="contributed">,</decimal>
+ <group draft="contributed"> </group>
+ <list draft="contributed">;</list>
+ <percentSign draft="contributed">%</percentSign>
+ <plusSign draft="contributed">+</plusSign>
+ <minusSign draft="contributed">−</minusSign>
+ <exponential draft="contributed">E</exponential>
+ <superscriptingExponent draft="contributed">×</superscriptingExponent>
+ <perMille draft="contributed">‰</perMille>
+ <infinity draft="contributed">∞</infinity>
+ <nan draft="contributed">NaN</nan>
+ </symbols>
+ <decimalFormats numberSystem="arab">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="arabext">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="bali">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="beng">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="brah">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="cakm">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="cham">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="deva">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="fullwide">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="gujr">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="guru">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="hanidec">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="java">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="kali">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="khmr">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="knda">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="lana">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="lanatham">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="laoo">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="latn">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ <decimalFormatLength type="long">
+ <decimalFormat>
+ <pattern type="1000" count="one">0 tusen</pattern>
+ <pattern type="1000" count="other">0 tusen</pattern>
+ <pattern type="10000" count="one">00 tusen</pattern>
+ <pattern type="10000" count="other">00 tusen</pattern>
+ <pattern type="100000" count="one">000 tusen</pattern>
+ <pattern type="100000" count="other">000 tusen</pattern>
+ <pattern type="1000000" count="one">0 million</pattern>
+ <pattern type="1000000" count="other">0 millioner</pattern>
+ <pattern type="10000000" count="one">00 millioner</pattern>
+ <pattern type="10000000" count="other">00 millioner</pattern>
+ <pattern type="100000000" count="one">000 millioner</pattern>
+ <pattern type="100000000" count="other">000 millioner</pattern>
+ <pattern type="1000000000" count="one">0 milliard</pattern>
+ <pattern type="1000000000" count="other">0 milliarder</pattern>
+ <pattern type="10000000000" count="one">00 milliarder</pattern>
+ <pattern type="10000000000" count="other">00 milliarder</pattern>
+ <pattern type="100000000000" count="one">000 milliarder</pattern>
+ <pattern type="100000000000" count="other">000 milliarder</pattern>
+ <pattern type="1000000000000" count="one">0 billion</pattern>
+ <pattern type="1000000000000" count="other">0 billioner</pattern>
+ <pattern type="10000000000000" count="one">00 billioner</pattern>
+ <pattern type="10000000000000" count="other">00 billioner</pattern>
+ <pattern type="100000000000000" count="one">000 billioner</pattern>
+ <pattern type="100000000000000" count="other">000 billioner</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ <decimalFormatLength type="short">
+ <decimalFormat>
+ <pattern type="1000" count="one">0k</pattern>
+ <pattern type="1000" count="other">0k</pattern>
+ <pattern type="10000" count="one">00k</pattern>
+ <pattern type="10000" count="other">00k</pattern>
+ <pattern type="100000" count="one">000k</pattern>
+ <pattern type="100000" count="other">000k</pattern>
+ <pattern type="1000000" count="one">0 mill'.'</pattern>
+ <pattern type="1000000" count="other">0 mill'.'</pattern>
+ <pattern type="10000000" count="one">00 mill'.'</pattern>
+ <pattern type="10000000" count="other">00 mill'.'</pattern>
+ <pattern type="100000000" count="one">000 mill'.'</pattern>
+ <pattern type="100000000" count="other">000 mill'.'</pattern>
+ <pattern type="1000000000" count="one">0 mrd'.'</pattern>
+ <pattern type="1000000000" count="other">0 mrd'.'</pattern>
+ <pattern type="10000000000" count="one">00 mrd'.'</pattern>
+ <pattern type="10000000000" count="other">00 mrd'.'</pattern>
+ <pattern type="100000000000" count="one">000 mrd'.'</pattern>
+ <pattern type="100000000000" count="other">000 mrd'.'</pattern>
+ <pattern type="1000000000000" count="one">0 bill'.'</pattern>
+ <pattern type="1000000000000" count="other">0 bill'.'</pattern>
+ <pattern type="10000000000000" count="one">00 bill'.'</pattern>
+ <pattern type="10000000000000" count="other">00 bill'.'</pattern>
+ <pattern type="100000000000000" count="one">000 bill'.'</pattern>
+ <pattern type="100000000000000" count="other">000 bill'.'</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="lepc">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="limb">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="mlym">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="mong">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="mtei">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="mymr">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="mymrshan">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="nkoo">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="olck">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="orya">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="osma">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="saur">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="shrd">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="sora">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="sund">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="takr">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="talu">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="tamldec">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="telu">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="thai">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="tibt">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <decimalFormats numberSystem="vaii">
+ <decimalFormatLength>
+ <decimalFormat>
+ <pattern draft="contributed">#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+ </decimalFormats>
+ <scientificFormats numberSystem="arab">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="arabext">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="bali">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="beng">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="brah">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="cakm">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="cham">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="deva">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="fullwide">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="gujr">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="guru">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="hanidec">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="java">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="kali">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="khmr">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="knda">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="lana">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="lanatham">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="laoo">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="latn">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern>#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="lepc">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="limb">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="mlym">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="mong">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="mtei">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="mymr">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="mymrshan">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="nkoo">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="olck">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="orya">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="osma">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="saur">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="shrd">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="sora">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="sund">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="takr">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="talu">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="tamldec">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="telu">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="thai">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="tibt">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <scientificFormats numberSystem="vaii">
+ <scientificFormatLength>
+ <scientificFormat>
+ <pattern draft="contributed">#E0</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ </scientificFormats>
+ <percentFormats numberSystem="arab">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="arabext">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="bali">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="beng">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="brah">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="cakm">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="cham">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="deva">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="fullwide">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="gujr">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="guru">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="hanidec">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="java">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="kali">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="khmr">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="knda">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="lana">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="lanatham">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="laoo">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="latn">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern>#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="lepc">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="limb">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="mlym">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="mong">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="mtei">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="mymr">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="mymrshan">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="nkoo">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="olck">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="orya">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="osma">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="saur">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="shrd">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="sora">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="sund">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="takr">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="talu">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="tamldec">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="telu">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="thai">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="tibt">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <percentFormats numberSystem="vaii">
+ <percentFormatLength>
+ <percentFormat>
+ <pattern draft="contributed">#,##0 %</pattern>
+ </percentFormat>
+ </percentFormatLength>
+ </percentFormats>
+ <currencyFormats numberSystem="arab">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ </currencyFormats>
+ <currencyFormats numberSystem="arabext">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="bali">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="beng">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="brah">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="cakm">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="cham">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="deva">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="fullwide">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="gujr">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="guru">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="hanidec">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="java">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="kali">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="khmr">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="knda">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="lana">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="lanatham">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="laoo">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="latn">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern>¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern>¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <currencyFormatLength type="short">
+ <currencyFormat type="standard">
+ <pattern type="1000" count="one">¤ 0k</pattern>
+ <pattern type="1000" count="other">¤ 0k</pattern>
+ <pattern type="10000" count="one">¤ 00k</pattern>
+ <pattern type="10000" count="other">¤ 00k</pattern>
+ <pattern type="100000" count="one">¤ 000k</pattern>
+ <pattern type="100000" count="other">¤ 000k</pattern>
+ <pattern type="1000000" count="one">¤ 0 mill'.'</pattern>
+ <pattern type="1000000" count="other">¤ 0 mill'.'</pattern>
+ <pattern type="10000000" count="one">¤ 00 mill'.'</pattern>
+ <pattern type="10000000" count="other">¤ 00 mill'.'</pattern>
+ <pattern type="100000000" count="one">¤ 000 mill'.'</pattern>
+ <pattern type="100000000" count="other">¤ 000 mill'.'</pattern>
+ <pattern type="1000000000" count="one">¤ 0 mrd'.'</pattern>
+ <pattern type="1000000000" count="other">¤ 0 mrd'.'</pattern>
+ <pattern type="10000000000" count="one">¤ 00 mrd'.'</pattern>
+ <pattern type="10000000000" count="other">¤ 00 mrd'.'</pattern>
+ <pattern type="100000000000" count="one">¤ 000 mrd'.'</pattern>
+ <pattern type="100000000000" count="other">¤ 000 mrd'.'</pattern>
+ <pattern type="1000000000000" count="one">¤ 0 bill'.'</pattern>
+ <pattern type="1000000000000" count="other">¤ 0 bill'.'</pattern>
+ <pattern type="10000000000000" count="one">¤ 00 bill'.'</pattern>
+ <pattern type="10000000000000" count="other">¤ 00 bill'.'</pattern>
+ <pattern type="100000000000000" count="one">¤ 000 bill'.'</pattern>
+ <pattern type="100000000000000" count="other">¤ 000 bill'.'</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one">{0} {1}</unitPattern>
+ <unitPattern count="other">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="lepc">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="limb">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="mlym">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="mong">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="mtei">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="mymr">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="mymrshan">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="nkoo">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="olck">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="orya">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="osma">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="saur">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="shrd">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="sora">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="sund">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="takr">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="talu">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="tamldec">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="telu">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="thai">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="tibt">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencyFormats numberSystem="vaii">
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern draft="contributed">¤ #,##0.00</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ <unitPattern count="one" draft="contributed">{0} {1}</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} {1}</unitPattern>
+ </currencyFormats>
+ <currencies>
+ <currency type="ADP">
+ <displayName>andorranske pesetas</displayName>
+ <displayName count="one">andorransk pesetas</displayName>
+ <displayName count="other">andorranske pesetas</displayName>
+ <symbol draft="contributed">ADP</symbol>
+ </currency>
+ <currency type="AED">
+ <displayName>emiratarabiske dirham</displayName>
+ <displayName count="one">emiratarabisk dirham</displayName>
+ <displayName count="other">emiratarabiske dirham</displayName>
+ <symbol draft="contributed">AED</symbol>
+ </currency>
+ <currency type="AFA">
+ <displayName>afgansk afghani (1927–2002)</displayName>
+ <displayName count="one">afghansk afghani (1927–2002)</displayName>
+ <displayName count="other">afghanske afghani (1927–2002)</displayName>
+ <symbol draft="contributed">AFA</symbol>
+ </currency>
+ <currency type="AFN">
+ <displayName>afghanske afghani</displayName>
+ <displayName count="one">afghansk afghani</displayName>
+ <displayName count="other">afghanske afghani</displayName>
+ <symbol draft="contributed">AFN</symbol>
+ <symbol alt="narrow" draft="contributed">↑↑↑</symbol>
+ </currency>
+ <currency type="ALK">
+ <displayName draft="contributed">albanske lek (1946–1965)</displayName>
+ <displayName count="one" draft="contributed">albansk lek (1946–1965)</displayName>
+ <displayName count="other" draft="contributed">albanske lek (1946–1965)</displayName>
+ <symbol draft="contributed">ALK</symbol>
+ </currency>
+ <currency type="ALL">
+ <displayName>albanske lek</displayName>
+ <displayName count="one">albansk lek</displayName>
+ <displayName count="other">albanske lek</displayName>
+ <symbol draft="contributed">ALL</symbol>
+ </currency>
+ <currency type="AMD">
+ <displayName>armenske dram</displayName>
+ <displayName count="one">armensk dram</displayName>
+ <displayName count="other">armenske dram</displayName>
+ <symbol draft="contributed">AMD</symbol>
+ <symbol alt="narrow" draft="contributed">↑↑↑</symbol>
+ </currency>
+ <currency type="ANG">
+ <displayName>nederlandske antillegylden</displayName>
+ <displayName count="one">nederlandsk antillegylden</displayName>
+ <displayName count="other">nederlandske antillegylden</displayName>
+ <symbol draft="contributed">ANG</symbol>
+ </currency>
+ <currency type="AOA">
+ <displayName>angolanske kwanza</displayName>
+ <displayName count="one">angolansk kwanza</displayName>
+ <displayName count="other">angolanske kwanza</displayName>
+ <symbol draft="contributed">AOA</symbol>
+ <symbol alt="narrow" draft="contributed">Kz</symbol>
+ </currency>
+ <currency type="AOK">
+ <displayName>angolanske kwanza (1977–1990)</displayName>
+ <displayName count="one">angolansk kwanza (1977–1990)</displayName>
+ <displayName count="other">angolanske kwanza (1977–1990)</displayName>
+ <symbol draft="contributed">AOK</symbol>
+ </currency>
+ <currency type="AON">
+ <displayName>angolanske nye kwanza (1990–2000)</displayName>
+ <displayName count="one">angolansk ny kwanza</displayName>
+ <displayName count="other">angolanske nye kwanza (1990–2000)</displayName>
+ <symbol draft="contributed">AON</symbol>
+ </currency>
+ <currency type="AOR">
+ <displayName>angolanske omjusterte kwanza (1995–1999)</displayName>
+ <displayName count="one">angolansk kwanza reajustado (1995–1999)</displayName>
+ <displayName count="other">angolanske omjusterte kwanza (1995–1999)</displayName>
+ <symbol draft="contributed">AOR</symbol>
+ </currency>
+ <currency type="ARA">
+ <displayName>argentinske australer</displayName>
+ <displayName count="one">argentinsk austral</displayName>
+ <displayName count="other">argentinske australer</displayName>
+ <symbol draft="contributed">ARA</symbol>
+ </currency>
+ <currency type="ARL">
+ <displayName draft="contributed">argentinske peso ley</displayName>
+ <displayName count="one" draft="contributed">argentinsk peso ley</displayName>
+ <displayName count="other" draft="contributed">argentinske peso ley</displayName>
+ <symbol draft="contributed">ARL</symbol>
+ </currency>
+ <currency type="ARM">
+ <displayName draft="contributed">argentinsk pesos (1881–1970)</displayName>
+ <displayName count="one" draft="contributed">argentinsk pesos (1881–1970)</displayName>
+ <displayName count="other" draft="contributed">argentinske pesos (1881–1970)</displayName>
+ <symbol draft="contributed">ARM</symbol>
+ </currency>
+ <currency type="ARP">
+ <displayName>argentinske pesos (1983–1985)</displayName>
+ <displayName count="one">argentinsk pesos (1983–1985)</displayName>
+ <displayName count="other">argentinske pesos (1983–1985)</displayName>
+ <symbol draft="contributed">ARP</symbol>
+ </currency>
+ <currency type="ARS">
+ <displayName>argentinske pesos</displayName>
+ <displayName count="one">argentinsk peso</displayName>
+ <displayName count="other">argentinske pesos</displayName>
+ <symbol draft="contributed">ARS</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="ATS">
+ <displayName>østerrikske shilling</displayName>
+ <displayName count="one">østerriksk schilling</displayName>
+ <displayName count="other">østerrikske schilling</displayName>
+ <symbol draft="contributed">ATS</symbol>
+ </currency>
+ <currency type="AUD">
+ <displayName>australske dollar</displayName>
+ <displayName count="one">australsk dollar</displayName>
+ <displayName count="other">australske dollar</displayName>
+ <symbol>AUD</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="AWG">
+ <displayName>arubiske floriner</displayName>
+ <displayName count="one">arubisk florin</displayName>
+ <displayName count="other">arubiske floriner</displayName>
+ <symbol draft="contributed">AWG</symbol>
+ </currency>
+ <currency type="AZM">
+ <displayName>aserbajdsjanske manat (1993–2006)</displayName>
+ <displayName count="one">aserbajdsjansk manat (1993–2006)</displayName>
+ <displayName count="other">aserbajdsjanske manat (1993–2006)</displayName>
+ <symbol draft="contributed">AZM</symbol>
+ </currency>
+ <currency type="AZN">
+ <displayName>aserbajdsjanske manat</displayName>
+ <displayName count="one">aserbajdsjansk manat</displayName>
+ <displayName count="other">aserbajdsjanske manat</displayName>
+ <symbol draft="contributed">AZN</symbol>
+ <symbol alt="narrow" draft="contributed">↑↑↑</symbol>
+ </currency>
+ <currency type="BAD">
+ <displayName>bosnisk-hercegovinske dinarer (1992–1994)</displayName>
+ <displayName count="one">bosnisk-hercegovinsk dinar (1992–1994)</displayName>
+ <displayName count="other">bosnisk-hercegovinske dinarer (1992–1994)</displayName>
+ <symbol draft="contributed">BAD</symbol>
+ </currency>
+ <currency type="BAM">
+ <displayName>bosnisk-hercegovinske konvertible mark</displayName>
+ <displayName count="one">bosnisk-hercegovinsk konvertibel mark</displayName>
+ <displayName count="other">bosnisk-hercegovinske konvertible mark</displayName>
+ <symbol draft="contributed">BAM</symbol>
+ <symbol alt="narrow" draft="contributed">KM</symbol>
+ </currency>
+ <currency type="BAN">
+ <displayName draft="contributed">nye bosnisk-hercegovinske dinarer (1994–1997)</displayName>
+ <displayName count="one" draft="contributed">ny bosnisk-hercegovinsk dinar (1994–1997)</displayName>
+ <displayName count="other" draft="contributed">nye bosnisk-hercegovinske dinarer (1994–1997)</displayName>
+ <symbol draft="contributed">BAN</symbol>
+ </currency>
+ <currency type="BBD">
+ <displayName>barbadiske dollar</displayName>
+ <displayName count="one">barbadisk dollar</displayName>
+ <displayName count="other">barbadiske dollar</displayName>
+ <symbol draft="contributed">BBD</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="BDT">
+ <displayName>bangladeshiske taka</displayName>
+ <displayName count="one">bangladeshisk taka</displayName>
+ <displayName count="other">bangladeshiske taka</displayName>
+ <symbol draft="contributed">BDT</symbol>
+ <symbol alt="narrow" draft="contributed">৳</symbol>
+ </currency>
+ <currency type="BEC">
+ <displayName>belgiske franc (konvertible)</displayName>
+ <displayName count="one">belgisk franc (konvertibel)</displayName>
+ <displayName count="other">belgiske franc (konvertible)</displayName>
+ <symbol draft="contributed">BEC</symbol>
+ </currency>
+ <currency type="BEF">
+ <displayName>belgiske franc</displayName>
+ <displayName count="one">belgisk franc</displayName>
+ <displayName count="other">belgiske franc</displayName>
+ <symbol draft="contributed">BEF</symbol>
+ </currency>
+ <currency type="BEL">
+ <displayName>belgiske franc (finansielle)</displayName>
+ <displayName count="one">belgisk franc (finansiell)</displayName>
+ <displayName count="other">belgiske franc (finansielle)</displayName>
+ <symbol draft="contributed">BEL</symbol>
+ </currency>
+ <currency type="BGL">
+ <displayName>bulgarske lev (hard)</displayName>
+ <displayName count="one">bulgarsk lev (hard)</displayName>
+ <displayName count="other">bulgarske lev (hard)</displayName>
+ <symbol draft="contributed">BGL</symbol>
+ </currency>
+ <currency type="BGM">
+ <displayName draft="contributed">bulgarske lev (sosialist)</displayName>
+ <displayName count="one" draft="contributed">bulgarsk lev (sosialist)</displayName>
+ <displayName count="other" draft="contributed">bulgarske lev (sosialist)</displayName>
+ <symbol draft="contributed">BGM</symbol>
+ </currency>
+ <currency type="BGN">
+ <displayName>bulgarske lev</displayName>
+ <displayName count="one">bulgarsk lev</displayName>
+ <displayName count="other">bulgarske lev</displayName>
+ <symbol draft="contributed">BGN</symbol>
+ </currency>
+ <currency type="BGO">
+ <displayName draft="contributed">bulgarske lev (1879–1952)</displayName>
+ <displayName count="one" draft="contributed">bulgarsk lev (1879–1952)</displayName>
+ <displayName count="other" draft="contributed">bulgarske lev (1879–1952)</displayName>
+ <symbol draft="contributed">BGO</symbol>
+ </currency>
+ <currency type="BHD">
+ <displayName>bahrainske dinarer</displayName>
+ <displayName count="one">bahrainsk dinar</displayName>
+ <displayName count="other">bahrainske dinarer</displayName>
+ <symbol draft="contributed">BHD</symbol>
+ </currency>
+ <currency type="BIF">
+ <displayName>burundiske franc</displayName>
+ <displayName count="one">burundisk franc</displayName>
+ <displayName count="other">burundiske franc</displayName>
+ <symbol draft="contributed">BIF</symbol>
+ </currency>
+ <currency type="BMD">
+ <displayName>bermudiske dollar</displayName>
+ <displayName count="one">bermudisk dollar</displayName>
+ <displayName count="other">bermudiske dollar</displayName>
+ <symbol draft="contributed">BMD</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="BND">
+ <displayName>bruneiske dollar</displayName>
+ <displayName count="one">bruneisk dollar</displayName>
+ <displayName count="other">bruneiske dollar</displayName>
+ <symbol draft="contributed">BND</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="BOB">
+ <displayName>bolivianske boliviano</displayName>
+ <displayName count="one">boliviansk boliviano</displayName>
+ <displayName count="other">bolivianske boliviano</displayName>
+ <symbol draft="contributed">BOB</symbol>
+ <symbol alt="narrow" draft="contributed">Bs</symbol>
+ </currency>
+ <currency type="BOL">
+ <displayName draft="contributed">bolivianske boliviano (1863–1963)</displayName>
+ <displayName count="one" draft="contributed">boliviansk boliviano (1863–1963)</displayName>
+ <displayName count="other" draft="contributed">bolivianske boliviano (1863–1963)</displayName>
+ <symbol draft="contributed">BOL</symbol>
+ </currency>
+ <currency type="BOP">
+ <displayName>bolivianske pesos</displayName>
+ <displayName count="one">boliviansk pesos</displayName>
+ <displayName count="other">bolivianske pesos</displayName>
+ <symbol draft="contributed">BOP</symbol>
+ </currency>
+ <currency type="BOV">
+ <displayName>bolivianske mvdol</displayName>
+ <displayName count="one">bolivianske mvdol</displayName>
+ <displayName count="other">bolivianske mvdol</displayName>
+ <symbol draft="contributed">BOV</symbol>
+ </currency>
+ <currency type="BRB">
+ <displayName>brasilianske cruzeiro novo (1967–1986)</displayName>
+ <displayName count="one">brasiliansk cruzeiro novo (1967–1986)</displayName>
+ <displayName count="other">brasilianske cruzeiro novo (1967–1986)</displayName>
+ <symbol draft="contributed">BRB</symbol>
+ </currency>
+ <currency type="BRC">
+ <displayName>brasilianske cruzados (1986–1989)</displayName>
+ <displayName count="one">brasiliansk cruzado (1986–1989)</displayName>
+ <displayName count="other">brasilianske cruzado (1986–1989)</displayName>
+ <symbol draft="contributed">BRC</symbol>
+ </currency>
+ <currency type="BRE">
+ <displayName>brasilianske cruzeiro (1990–1993)</displayName>
+ <displayName count="one">brasiliansk cruzeiro (1990–1993)</displayName>
+ <displayName count="other">brasilianske cruzeiro (1990–1993)</displayName>
+ <symbol draft="contributed">BRE</symbol>
+ </currency>
+ <currency type="BRL">
+ <displayName>brasilianske real</displayName>
+ <displayName count="one">brasiliansk real</displayName>
+ <displayName count="other">brasilianske real</displayName>
+ <symbol>BRL</symbol>
+ <symbol alt="narrow" draft="contributed">R$</symbol>
+ </currency>
+ <currency type="BRN">
+ <displayName>brasilianske cruzado novo (1989–1990)</displayName>
+ <displayName count="one">brasiliansk cruzado novo (1989–1990)</displayName>
+ <displayName count="other">brasilianske cruzado novo (1989–1990)</displayName>
+ <symbol draft="contributed">BRN</symbol>
+ </currency>
+ <currency type="BRR">
+ <displayName>brasilianske cruzeiro (1993–1994)</displayName>
+ <displayName count="one">brasiliansk cruzeiro (1993–1994)</displayName>
+ <displayName count="other">brasilianske cruzeiro (1993–1994)</displayName>
+ <symbol draft="contributed">BRR</symbol>
+ </currency>
+ <currency type="BRZ">
+ <displayName draft="contributed">brasilianske cruzeiro (1942–1967)</displayName>
+ <displayName count="one" draft="contributed">brasiliansk cruzeiro (1942–1967)</displayName>
+ <displayName count="other" draft="contributed">brasilianske cruzeiro (1942–1967)</displayName>
+ <symbol draft="contributed">BRZ</symbol>
+ </currency>
+ <currency type="BSD">
+ <displayName>bahamanske dollar</displayName>
+ <displayName count="one">bahamansk dollar</displayName>
+ <displayName count="other">bahamanske dollar</displayName>
+ <symbol draft="contributed">BSD</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="BTN">
+ <displayName>bhutanske ngultrum</displayName>
+ <displayName count="one">bhutansk ngultrum</displayName>
+ <displayName count="other">bhutanske ngultrum</displayName>
+ <symbol draft="contributed">BTN</symbol>
+ </currency>
+ <currency type="BUK">
+ <displayName>burmesiske kyat</displayName>
+ <displayName count="one">burmesisk kyat</displayName>
+ <displayName count="other">burmesiske kyat</displayName>
+ <symbol draft="contributed">BUK</symbol>
+ </currency>
+ <currency type="BWP">
+ <displayName>botswanske pula</displayName>
+ <displayName count="one">botswansk pula</displayName>
+ <displayName count="other">botswanske pula</displayName>
+ <symbol draft="contributed">BWP</symbol>
+ <symbol alt="narrow" draft="contributed">P</symbol>
+ </currency>
+ <currency type="BYB">
+ <displayName>hviterussiske nye rubler (1994–1999)</displayName>
+ <displayName count="one">hviterussisk ny rubel (1994–1999)</displayName>
+ <displayName count="other">hviterussiske nye rubler (1994–1999)</displayName>
+ <symbol draft="contributed">BYB</symbol>
+ </currency>
+ <currency type="BYN">
+ <displayName>nye hviterussiske rubler</displayName>
+ <displayName count="one">ny hviterussisk rubel</displayName>
+ <displayName count="other">nye hviterussiske rubler</displayName>
+ <symbol draft="contributed">BYN</symbol>
+ <symbol alt="narrow" draft="contributed">р.</symbol>
+ </currency>
+ <currency type="BYR">
+ <displayName>hviterussiske rubler (2000–2016)</displayName>
+ <displayName count="one">hviterussisk rubel (2000–2016)</displayName>
+ <displayName count="other">hviterussiske rubler (2000–2016)</displayName>
+ <symbol draft="contributed">BYR</symbol>
+ </currency>
+ <currency type="BZD">
+ <displayName>beliziske dollar</displayName>
+ <displayName count="one">belizisk dollar</displayName>
+ <displayName count="other">beliziske dollar</displayName>
+ <symbol draft="contributed">BZD</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="CAD">
+ <displayName>kanadiske dollar</displayName>
+ <displayName count="one">kanadisk dollar</displayName>
+ <displayName count="other">kanadiske dollar</displayName>
+ <symbol>CAD</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="CDF">
+ <displayName>kongolesiske franc</displayName>
+ <displayName count="one">kongolesisk franc</displayName>
+ <displayName count="other">kongolesiske franc</displayName>
+ <symbol draft="contributed">CDF</symbol>
+ </currency>
+ <currency type="CHE">
+ <displayName>WIR euro</displayName>
+ <symbol draft="contributed">CHE</symbol>
+ </currency>
+ <currency type="CHF">
+ <displayName>sveitsiske franc</displayName>
+ <displayName count="one">sveitsisk franc</displayName>
+ <displayName count="other">sveitsiske franc</displayName>
+ <symbol draft="contributed">CHF</symbol>
+ </currency>
+ <currency type="CHW">
+ <displayName>WIR franc</displayName>
+ <symbol draft="contributed">CHW</symbol>
+ </currency>
+ <currency type="CLE">
+ <displayName draft="contributed">chilenske escudo</displayName>
+ <displayName count="one" draft="contributed">chilensk escudo</displayName>
+ <displayName count="other" draft="contributed">chilenske escudo</displayName>
+ <symbol draft="contributed">CLE</symbol>
+ </currency>
+ <currency type="CLF">
+ <displayName>chilenske unidades de fomento</displayName>
+ <displayName count="one">chilensk unidades de fomento</displayName>
+ <displayName count="other">chilenske unidades de fomento</displayName>
+ <symbol draft="contributed">CLF</symbol>
+ </currency>
+ <currency type="CLP">
+ <displayName>chilenske pesos</displayName>
+ <displayName count="one">chilensk peso</displayName>
+ <displayName count="other">chilenske pesos</displayName>
+ <symbol draft="contributed">CLP</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="CNH">
+ <displayName>kinesiske yuan (offshore)</displayName>
+ <displayName count="one">kinesisk yuan (offshore)</displayName>
+ <displayName count="other">kinesiske yuan (offshore)</displayName>
+ <symbol draft="contributed">CNH</symbol>
+ </currency>
+ <currency type="CNX">
+ <displayName draft="contributed">Kinas folkebank dollar</displayName>
+ <displayName count="one" draft="contributed">Kinas folkebank dollar</displayName>
+ <displayName count="other" draft="contributed">Kinas folkebank dollar</displayName>
+ <symbol draft="contributed">CNX</symbol>
+ </currency>
+ <currency type="CNY">
+ <displayName>kinesiske yuan</displayName>
+ <displayName count="one">kinesisk yuan</displayName>
+ <displayName count="other">kinesiske yuan</displayName>
+ <symbol>CNY</symbol>
+ <symbol alt="narrow" draft="contributed">¥</symbol>
+ </currency>
+ <currency type="COP">
+ <displayName>colombianske pesos</displayName>
+ <displayName count="one">colombiansk peso</displayName>
+ <displayName count="other">colombianske pesos</displayName>
+ <symbol draft="contributed">COP</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="COU">
+ <displayName>colombianske unidad de valor real</displayName>
+ <displayName count="one">colombiansk unidad de valor real</displayName>
+ <displayName count="other">colombianske unidad de valor real</displayName>
+ <symbol draft="contributed">COU</symbol>
+ </currency>
+ <currency type="CRC">
+ <displayName>costaricanske colón</displayName>
+ <displayName count="one">costaricansk colón</displayName>
+ <displayName count="other">costaricanske colón</displayName>
+ <symbol draft="contributed">CRC</symbol>
+ <symbol alt="narrow" draft="contributed">₡</symbol>
+ </currency>
+ <currency type="CSD">
+ <displayName>serbiske dinarer (2002–2006)</displayName>
+ <displayName count="one">serbisk dinar (2002–2006)</displayName>
+ <displayName count="other">serbiske dinarer (2002–2006)</displayName>
+ <symbol draft="contributed">CSD</symbol>
+ </currency>
+ <currency type="CSK">
+ <displayName>tsjekkoslovakiske koruna (hard)</displayName>
+ <displayName count="one">tsjekkoslovakisk koruna (hard)</displayName>
+ <displayName count="other">tsjekkoslovakiske koruna (hard)</displayName>
+ <symbol draft="contributed">CSK</symbol>
+ </currency>
+ <currency type="CUC">
+ <displayName>kubanske konvertible pesos</displayName>
+ <displayName count="one">kubansk konvertibel peso</displayName>
+ <displayName count="other">kubanske konvertible pesos</displayName>
+ <symbol draft="contributed">CUC</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="CUP">
+ <displayName>kubanske pesos</displayName>
+ <displayName count="one">kubansk peso</displayName>
+ <displayName count="other">kubanske pesos</displayName>
+ <symbol draft="contributed">CUP</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="CVE">
+ <displayName>kappverdiske escudos</displayName>
+ <displayName count="one">kappverdisk escudo</displayName>
+ <displayName count="other">kappverdiske escudos</displayName>
+ <symbol draft="contributed">CVE</symbol>
+ </currency>
+ <currency type="CYP">
+ <displayName>kypriotiske pund</displayName>
+ <displayName count="one">kypriotisk pund</displayName>
+ <displayName count="other">kypriotiske pund</displayName>
+ <symbol draft="contributed">CYP</symbol>
+ </currency>
+ <currency type="CZK">
+ <displayName>tsjekkiske koruna</displayName>
+ <displayName count="one">tsjekkisk koruna</displayName>
+ <displayName count="other">tsjekkiske koruna</displayName>
+ <symbol draft="contributed">CZK</symbol>
+ <symbol alt="narrow" draft="contributed">Kč</symbol>
+ </currency>
+ <currency type="DDM">
+ <displayName>østtyske mark</displayName>
+ <displayName count="one">østtysk mark</displayName>
+ <displayName count="other">østtyske mark</displayName>
+ <symbol draft="contributed">DDM</symbol>
+ </currency>
+ <currency type="DEM">
+ <displayName>tyske mark</displayName>
+ <displayName count="one">tysk mark</displayName>
+ <displayName count="other">tyske mark</displayName>
+ <symbol draft="contributed">DEM</symbol>
+ </currency>
+ <currency type="DJF">
+ <displayName>djiboutiske franc</displayName>
+ <displayName count="one">djiboutisk franc</displayName>
+ <displayName count="other">djiboutiske franc</displayName>
+ <symbol draft="contributed">DJF</symbol>
+ </currency>
+ <currency type="DKK">
+ <displayName>danske kroner</displayName>
+ <displayName count="one">dansk krone</displayName>
+ <displayName count="other">danske kroner</displayName>
+ <symbol draft="contributed">DKK</symbol>
+ <symbol alt="narrow" draft="contributed">kr</symbol>
+ </currency>
+ <currency type="DOP">
+ <displayName>dominikanske pesos</displayName>
+ <displayName count="one">dominikansk peso</displayName>
+ <displayName count="other">dominikanske pesos</displayName>
+ <symbol draft="contributed">DOP</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="DZD">
+ <displayName>algeriske dinarer</displayName>
+ <displayName count="one">algerisk dinar</displayName>
+ <displayName count="other">algeriske dinarer</displayName>
+ <symbol draft="contributed">DZD</symbol>
+ </currency>
+ <currency type="ECS">
+ <displayName>ecuadorianske sucre</displayName>
+ <displayName count="one">ecuadoriansk sucre</displayName>
+ <displayName count="other">ecuadorianske sucre</displayName>
+ <symbol draft="contributed">ECS</symbol>
+ </currency>
+ <currency type="ECV">
+ <displayName>ecuadorianske unidad de valor constante (UVC)</displayName>
+ <displayName count="one">ecuadoriansk unidad de valor constante (UVC)</displayName>
+ <displayName count="other">ecuadorianske unidad de valor constante (UVC)</displayName>
+ <symbol draft="contributed">ECV</symbol>
+ </currency>
+ <currency type="EEK">
+ <displayName>estiske kroon</displayName>
+ <displayName count="one">estisk kroon</displayName>
+ <displayName count="other">estiske kroner</displayName>
+ <symbol draft="contributed">EEK</symbol>
+ </currency>
+ <currency type="EGP">
+ <displayName>egyptiske pund</displayName>
+ <displayName count="one">egyptisk pund</displayName>
+ <displayName count="other">egyptiske pund</displayName>
+ <symbol draft="contributed">EGP</symbol>
+ <symbol alt="narrow" draft="contributed">E£</symbol>
+ </currency>
+ <currency type="ERN">
+ <displayName>eritreiske nakfa</displayName>
+ <displayName count="one">eritreisk nakfa</displayName>
+ <displayName count="other">eritreiske nakfa</displayName>
+ <symbol draft="contributed">ERN</symbol>
+ </currency>
+ <currency type="ESA">
+ <displayName>spanske peseta (A–konto)</displayName>
+ <displayName count="one">spansk peseta (A–konto)</displayName>
+ <displayName count="other">spanske peseta (A–konto)</displayName>
+ <symbol draft="contributed">ESA</symbol>
+ </currency>
+ <currency type="ESB">
+ <displayName>spanske peseta (konvertibel konto)</displayName>
+ <displayName count="one">spansk peseta (konvertibel konto)</displayName>
+ <displayName count="other">spanske peseta (konvertibel konto)</displayName>
+ <symbol draft="contributed">ESB</symbol>
+ </currency>
+ <currency type="ESP">
+ <displayName>spanske peseta</displayName>
+ <displayName count="one">spansk peseta</displayName>
+ <displayName count="other">spanske peseta</displayName>
+ <symbol draft="contributed">ESP</symbol>
+ </currency>
+ <currency type="ETB">
+ <displayName>etiopiske birr</displayName>
+ <displayName count="one">etiopisk birr</displayName>
+ <displayName count="other">etiopiske birr</displayName>
+ <symbol draft="contributed">ETB</symbol>
+ </currency>
+ <currency type="EUR">
+ <displayName>euro</displayName>
+ <displayName count="one">euro</displayName>
+ <displayName count="other">euro</displayName>
+ <symbol draft="contributed">€</symbol>
+ <symbol alt="narrow" draft="contributed">€</symbol>
+ </currency>
+ <currency type="FIM">
+ <displayName>finske mark</displayName>
+ <displayName count="one">finsk mark</displayName>
+ <displayName count="other">finske mark</displayName>
+ <symbol draft="contributed">FIM</symbol>
+ </currency>
+ <currency type="FJD">
+ <displayName>fijianske dollar</displayName>
+ <displayName count="one">fijiansk dollar</displayName>
+ <displayName count="other">fijianske dollar</displayName>
+ <symbol draft="contributed">FJD</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="FKP">
+ <displayName>falklandspund</displayName>
+ <displayName count="one">falklandspund</displayName>
+ <displayName count="other">falklandspund</displayName>
+ <symbol draft="contributed">FKP</symbol>
+ <symbol alt="narrow" draft="contributed">£</symbol>
+ </currency>
+ <currency type="FRF">
+ <displayName>franske franc</displayName>
+ <displayName count="one">fransk franc</displayName>
+ <displayName count="other">franske franc</displayName>
+ <symbol draft="contributed">FRF</symbol>
+ </currency>
+ <currency type="GBP">
+ <displayName>britiske pund</displayName>
+ <displayName count="one">britisk pund</displayName>
+ <displayName count="other">britiske pund</displayName>
+ <symbol draft="contributed">£</symbol>
+ <symbol alt="narrow" draft="contributed">£</symbol>
+ </currency>
+ <currency type="GEK">
+ <displayName>georgiske kupon larit</displayName>
+ <displayName count="one">georgisk kupon larit</displayName>
+ <displayName count="other">georgiske kupon larit</displayName>
+ <symbol draft="contributed">GEK</symbol>
+ </currency>
+ <currency type="GEL">
+ <displayName>georgiske lari</displayName>
+ <displayName count="one">georgisk lari</displayName>
+ <displayName count="other">georgiske lari</displayName>
+ <symbol draft="contributed">GEL</symbol>
+ <symbol alt="narrow" draft="contributed">₾</symbol>
+ <symbol alt="variant" draft="contributed">₾</symbol>
+ </currency>
+ <currency type="GHC">
+ <displayName>ghanesisk cedi (1979–2007)</displayName>
+ <displayName count="one">ghanesisk cedi (1979–2007)</displayName>
+ <displayName count="other">ghanesiske cedi (1979–2007)</displayName>
+ <symbol draft="contributed">GHC</symbol>
+ </currency>
+ <currency type="GHS">
+ <displayName>ghanesiske cedi</displayName>
+ <displayName count="one">ghanesisk cedi</displayName>
+ <displayName count="other">ghanesiske cedi</displayName>
+ <symbol draft="contributed">GHS</symbol>
+ <symbol alt="narrow" draft="contributed">↑↑↑</symbol>
+ </currency>
+ <currency type="GIP">
+ <displayName>gibraltarske pund</displayName>
+ <displayName count="one">gibraltarsk pund</displayName>
+ <displayName count="other">gibraltarske pund</displayName>
+ <symbol draft="contributed">GIP</symbol>
+ <symbol alt="narrow" draft="contributed">£</symbol>
+ </currency>
+ <currency type="GMD">
+ <displayName>gambiske dalasi</displayName>
+ <displayName count="one">gambisk dalasi</displayName>
+ <displayName count="other">gambiske dalasi</displayName>
+ <symbol draft="contributed">GMD</symbol>
+ </currency>
+ <currency type="GNF">
+ <displayName>guineanske franc</displayName>
+ <displayName count="one">guineansk franc</displayName>
+ <displayName count="other">guineanske franc</displayName>
+ <symbol draft="contributed">GNF</symbol>
+ <symbol alt="narrow" draft="contributed">FG</symbol>
+ </currency>
+ <currency type="GNS">
+ <displayName>guineanske syli</displayName>
+ <displayName count="one">guineansk syli</displayName>
+ <displayName count="other">guineanske syli</displayName>
+ <symbol draft="contributed">GNS</symbol>
+ </currency>
+ <currency type="GQE">
+ <displayName>ekvatorialguineanske ekwele guineana</displayName>
+ <displayName count="one">ekvatorialguineansk ekwele guineana</displayName>
+ <displayName count="other">ekvatorialguineanske ekwele guineana</displayName>
+ <symbol draft="contributed">GQE</symbol>
+ </currency>
+ <currency type="GRD">
+ <displayName>greske drakmer</displayName>
+ <displayName count="one">gresk drakme</displayName>
+ <displayName count="other">greske drakmer</displayName>
+ <symbol draft="contributed">GRD</symbol>
+ </currency>
+ <currency type="GTQ">
+ <displayName>guatemalanske quetzal</displayName>
+ <displayName count="one">guatemalansk quetzal</displayName>
+ <displayName count="other">guatemalanske quetzal</displayName>
+ <symbol draft="contributed">GTQ</symbol>
+ <symbol alt="narrow" draft="contributed">Q</symbol>
+ </currency>
+ <currency type="GWE">
+ <displayName>portugisiske guinea escudo</displayName>
+ <displayName count="one">portugisisk guinea escudo</displayName>
+ <displayName count="other">portugisiske guinea escudo</displayName>
+ <symbol draft="contributed">GWE</symbol>
+ </currency>
+ <currency type="GWP">
+ <displayName>Guinea-Bissau-pesos</displayName>
+ <displayName count="one">Guinea-Bissau-pesos</displayName>
+ <displayName count="other">Guinea-Bissau-pesos</displayName>
+ <symbol draft="contributed">GWP</symbol>
+ </currency>
+ <currency type="GYD">
+ <displayName>guyanske dollar</displayName>
+ <displayName count="one">guyansk dollar</displayName>
+ <displayName count="other">guyanske dollar</displayName>
+ <symbol draft="contributed">GYD</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="HKD">
+ <displayName>Hongkong-dollar</displayName>
+ <displayName count="one">Hongkong-dollar</displayName>
+ <displayName count="other">Hongkong-dollar</displayName>
+ <symbol>HKD</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="HNL">
+ <displayName>honduranske lempira</displayName>
+ <displayName count="one">honduransk lempira</displayName>
+ <displayName count="other">honduranske lempira</displayName>
+ <symbol draft="contributed">HNL</symbol>
+ <symbol alt="narrow" draft="contributed">L</symbol>
+ </currency>
+ <currency type="HRD">
+ <displayName>kroatiske dinarer</displayName>
+ <displayName count="one">kroatisk dinar</displayName>
+ <displayName count="other">kroatiske dinarer</displayName>
+ <symbol draft="contributed">HRD</symbol>
+ </currency>
+ <currency type="HRK">
+ <displayName>kroatiske kuna</displayName>
+ <displayName count="one">kroatisk kuna</displayName>
+ <displayName count="other">kroatiske kuna</displayName>
+ <symbol draft="contributed">HRK</symbol>
+ <symbol alt="narrow" draft="contributed">kn</symbol>
+ </currency>
+ <currency type="HTG">
+ <displayName>haitiske gourde</displayName>
+ <displayName count="one">haitisk gourde</displayName>
+ <displayName count="other">haitiske gourde</displayName>
+ <symbol draft="contributed">HTG</symbol>
+ </currency>
+ <currency type="HUF">
+ <displayName>ungarske forinter</displayName>
+ <displayName count="one">ungarsk forint</displayName>
+ <displayName count="other">ungarske forinter</displayName>
+ <symbol draft="contributed">HUF</symbol>
+ <symbol alt="narrow" draft="contributed">Ft</symbol>
+ </currency>
+ <currency type="IDR">
+ <displayName>indonesiske rupier</displayName>
+ <displayName count="one">indonesisk rupi</displayName>
+ <displayName count="other">indonesiske rupier</displayName>
+ <symbol draft="contributed">IDR</symbol>
+ <symbol alt="narrow" draft="contributed">Rp</symbol>
+ </currency>
+ <currency type="IEP">
+ <displayName>irske pund</displayName>
+ <displayName count="one">irsk pund</displayName>
+ <displayName count="other">irske pund</displayName>
+ <symbol draft="contributed">IEP</symbol>
+ </currency>
+ <currency type="ILP">
+ <displayName>israelske pund</displayName>
+ <displayName count="one">israelsk pund</displayName>
+ <displayName count="other">israelske pund</displayName>
+ <symbol draft="contributed">ILP</symbol>
+ </currency>
+ <currency type="ILR">
+ <displayName>israelske shekler (1980–1985)</displayName>
+ <displayName count="one">israelsk shekel (1980–1985)</displayName>
+ <displayName count="other">israelske shekler (1980–1985)</displayName>
+ <symbol draft="contributed">ILR</symbol>
+ </currency>
+ <currency type="ILS">
+ <displayName>nye israelske shekler</displayName>
+ <displayName count="one">ny israelsk shekel</displayName>
+ <displayName count="other">nye israelske shekler</displayName>
+ <symbol>ILS</symbol>
+ <symbol alt="narrow" draft="contributed">₪</symbol>
+ </currency>
+ <currency type="INR">
+ <displayName>indiske rupier</displayName>
+ <displayName count="one">indisk rupi</displayName>
+ <displayName count="other">indiske rupier</displayName>
+ <symbol>INR</symbol>
+ <symbol alt="narrow" draft="contributed">₹</symbol>
+ </currency>
+ <currency type="IQD">
+ <displayName>irakske dinarer</displayName>
+ <displayName count="one">iraksk dinar</displayName>
+ <displayName count="other">irakske dinarer</displayName>
+ <symbol draft="contributed">IQD</symbol>
+ </currency>
+ <currency type="IRR">
+ <displayName>iranske rialer</displayName>
+ <displayName count="one">iransk rial</displayName>
+ <displayName count="other">iranske rialer</displayName>
+ <symbol draft="contributed">IRR</symbol>
+ </currency>
+ <currency type="ISJ">
+ <displayName>islandske kroner (1918–1981)</displayName>
+ <displayName count="one">islandsk krone (1918–1981)</displayName>
+ <displayName count="other">islandske kroner (1918–1981)</displayName>
+ </currency>
+ <currency type="ISK">
+ <displayName>islandske kroner</displayName>
+ <displayName count="one">islandsk krone</displayName>
+ <displayName count="other">islandske kroner</displayName>
+ <symbol draft="contributed">ISK</symbol>
+ <symbol alt="narrow" draft="contributed">kr</symbol>
+ </currency>
+ <currency type="ITL">
+ <displayName>italienske lire</displayName>
+ <displayName count="one">italiensk lire</displayName>
+ <displayName count="other">italienske lire</displayName>
+ <symbol draft="contributed">ITL</symbol>
+ </currency>
+ <currency type="JMD">
+ <displayName>jamaikanske dollar</displayName>
+ <displayName count="one">jamaikansk dollar</displayName>
+ <displayName count="other">jamaikanske dollar</displayName>
+ <symbol draft="contributed">JMD</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="JOD">
+ <displayName>jordanske dinarer</displayName>
+ <displayName count="one">jordansk dinar</displayName>
+ <displayName count="other">jordanske dinarer</displayName>
+ <symbol draft="contributed">JOD</symbol>
+ </currency>
+ <currency type="JPY">
+ <displayName>japanske yen</displayName>
+ <displayName count="one">japansk yen</displayName>
+ <displayName count="other">japanske yen</displayName>
+ <symbol>JPY</symbol>
+ <symbol alt="narrow" draft="contributed">¥</symbol>
+ </currency>
+ <currency type="KES">
+ <displayName>kenyanske shilling</displayName>
+ <displayName count="one">kenyansk shilling</displayName>
+ <displayName count="other">kenyanske shilling</displayName>
+ <symbol draft="contributed">KES</symbol>
+ </currency>
+ <currency type="KGS">
+ <displayName>kirgisiske som</displayName>
+ <displayName count="one">kirgisisk som</displayName>
+ <displayName count="other">kirgisiske som</displayName>
+ <symbol draft="contributed">KGS</symbol>
+ </currency>
+ <currency type="KHR">
+ <displayName>kambodsjanske riel</displayName>
+ <displayName count="one">kambodsjansk riel</displayName>
+ <displayName count="other">kambodsjanske riel</displayName>
+ <symbol draft="contributed">KHR</symbol>
+ <symbol alt="narrow" draft="contributed">៛</symbol>
+ </currency>
+ <currency type="KMF">
+ <displayName>komoriske franc</displayName>
+ <displayName count="one">komorisk franc</displayName>
+ <displayName count="other">komoriske franc</displayName>
+ <symbol draft="contributed">KMF</symbol>
+ <symbol alt="narrow" draft="contributed">CF</symbol>
+ </currency>
+ <currency type="KPW">
+ <displayName>nordkoreanske won</displayName>
+ <displayName count="one">nordkoreansk won</displayName>
+ <displayName count="other">nordkoreanske won</displayName>
+ <symbol draft="contributed">KPW</symbol>
+ <symbol alt="narrow" draft="contributed">₩</symbol>
+ </currency>
+ <currency type="KRH">
+ <displayName draft="contributed">sørkoreanske hwan (1953–1962)</displayName>
+ <displayName count="one" draft="contributed">sørkoreansk hwan (1953–1962)</displayName>
+ <displayName count="other" draft="contributed">sørkoreanske hwan (1953–1962)</displayName>
+ <symbol draft="contributed">KRH</symbol>
+ </currency>
+ <currency type="KRO">
+ <displayName draft="contributed">sørkoreanske won (1945–1953)</displayName>
+ <displayName count="one" draft="contributed">sørkoreansk won (1945–1953)</displayName>
+ <displayName count="other" draft="contributed">sørkoreanske won (1945–1953)</displayName>
+ <symbol draft="contributed">KRO</symbol>
+ </currency>
+ <currency type="KRW">
+ <displayName>sørkoreanske won</displayName>
+ <displayName count="one">sørkoreansk won</displayName>
+ <displayName count="other">sørkoreanske won</displayName>
+ <symbol>KRW</symbol>
+ <symbol alt="narrow" draft="contributed">₩</symbol>
+ </currency>
+ <currency type="KWD">
+ <displayName>kuwaitiske dinarer</displayName>
+ <displayName count="one">kuwaitisk dinar</displayName>
+ <displayName count="other">kuwaitiske dinarer</displayName>
+ <symbol draft="contributed">KWD</symbol>
+ </currency>
+ <currency type="KYD">
+ <displayName>caymanske dollar</displayName>
+ <displayName count="one">caymansk dollar</displayName>
+ <displayName count="other">caymanske dollar</displayName>
+ <symbol draft="contributed">KYD</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="KZT">
+ <displayName>kasakhstanske tenge</displayName>
+ <displayName count="one">kasakhstansk tenge</displayName>
+ <displayName count="other">kasakhstanske tenge</displayName>
+ <symbol draft="contributed">KZT</symbol>
+ <symbol alt="narrow" draft="contributed">₸</symbol>
+ </currency>
+ <currency type="LAK">
+ <displayName>laotiske kip</displayName>
+ <displayName count="one">laotisk kip</displayName>
+ <displayName count="other">laotiske kip</displayName>
+ <symbol draft="contributed">LAK</symbol>
+ <symbol alt="narrow" draft="contributed">₭</symbol>
+ </currency>
+ <currency type="LBP">
+ <displayName>libanesiske pund</displayName>
+ <displayName count="one">libanesisk pund</displayName>
+ <displayName count="other">libanesiske pund</displayName>
+ <symbol draft="contributed">LBP</symbol>
+ <symbol alt="narrow" draft="contributed">L£</symbol>
+ </currency>
+ <currency type="LKR">
+ <displayName>srilankiske rupier</displayName>
+ <displayName count="one">srilankisk rupi</displayName>
+ <displayName count="other">srilankiske rupier</displayName>
+ <symbol draft="contributed">LKR</symbol>
+ <symbol alt="narrow" draft="contributed">Rs</symbol>
+ </currency>
+ <currency type="LRD">
+ <displayName>liberiske dollar</displayName>
+ <displayName count="one">liberisk dollar</displayName>
+ <displayName count="other">liberiske dollar</displayName>
+ <symbol draft="contributed">LRD</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="LSL">
+ <displayName>lesothiske loti</displayName>
+ <displayName count="one">lesothisk loti</displayName>
+ <displayName count="other">lesothiske loti</displayName>
+ <symbol draft="contributed">LSL</symbol>
+ </currency>
+ <currency type="LTL">
+ <displayName>litauiske litas</displayName>
+ <displayName count="one">litauisk lita</displayName>
+ <displayName count="other">litauiske lita</displayName>
+ <symbol draft="contributed">LTL</symbol>
+ <symbol alt="narrow" draft="contributed">Lt</symbol>
+ </currency>
+ <currency type="LTT">
+ <displayName>litauiske talonas</displayName>
+ <displayName count="one">litauisk talonas</displayName>
+ <displayName count="other">litauiske talonas</displayName>
+ <symbol draft="contributed">LTT</symbol>
+ </currency>
+ <currency type="LUC">
+ <displayName>luxemburgske konvertible franc</displayName>
+ <displayName count="one">luxemburgsk konvertibel franc</displayName>
+ <displayName count="other">luxemburgske konvertible franc</displayName>
+ <symbol draft="contributed">LUC</symbol>
+ </currency>
+ <currency type="LUF">
+ <displayName>luxemburgske franc</displayName>
+ <displayName count="one">luxemburgsk franc</displayName>
+ <displayName count="other">luxemburgske franc</displayName>
+ <symbol draft="contributed">LUF</symbol>
+ </currency>
+ <currency type="LUL">
+ <displayName>luxemburgske finansielle franc</displayName>
+ <displayName count="one">luxemburgsk finansiell franc</displayName>
+ <displayName count="other">luxemburgske finansielle franc</displayName>
+ <symbol draft="contributed">LUL</symbol>
+ </currency>
+ <currency type="LVL">
+ <displayName>latviske lats</displayName>
+ <displayName count="one">latvisk lats</displayName>
+ <displayName count="other">latviske lats</displayName>
+ <symbol draft="contributed">LVL</symbol>
+ <symbol alt="narrow" draft="contributed">Ls</symbol>
+ </currency>
+ <currency type="LVR">
+ <displayName>latviske rubler</displayName>
+ <displayName count="one">latvisk rubel</displayName>
+ <displayName count="other">latviske rubler</displayName>
+ <symbol draft="contributed">LVR</symbol>
+ </currency>
+ <currency type="LYD">
+ <displayName>libyske dinarer</displayName>
+ <displayName count="one">libysk dinar</displayName>
+ <displayName count="other">libyske dinarer</displayName>
+ <symbol draft="contributed">LYD</symbol>
+ </currency>
+ <currency type="MAD">
+ <displayName>marokkanske dirham</displayName>
+ <displayName count="one">marokkansk dirham</displayName>
+ <displayName count="other">marokkanske dirham</displayName>
+ <symbol draft="contributed">MAD</symbol>
+ </currency>
+ <currency type="MAF">
+ <displayName>marokkanske franc</displayName>
+ <displayName count="one">marokkansk franc</displayName>
+ <displayName count="other">marokkanske franc</displayName>
+ <symbol draft="contributed">MAF</symbol>
+ </currency>
+ <currency type="MCF">
+ <displayName draft="contributed">monegaskiske franc</displayName>
+ <displayName count="one">monegaskisk franc</displayName>
+ <displayName count="other">monegaskiske franc</displayName>
+ <symbol draft="contributed">MCF</symbol>
+ </currency>
+ <currency type="MDC">
+ <displayName draft="contributed">moldovske cupon</displayName>
+ <displayName count="one" draft="contributed">moldovsk cupon</displayName>
+ <displayName count="other" draft="contributed">moldovske cupon</displayName>
+ <symbol draft="contributed">MDC</symbol>
+ </currency>
+ <currency type="MDL">
+ <displayName>moldovske leu</displayName>
+ <displayName count="one">moldovsk leu</displayName>
+ <displayName count="other">moldovske lei</displayName>
+ <symbol draft="contributed">MDL</symbol>
+ </currency>
+ <currency type="MGA">
+ <displayName>madagassiske ariary</displayName>
+ <displayName count="one">madagassisk ariary</displayName>
+ <displayName count="other">madagassiske ariary</displayName>
+ <symbol draft="contributed">MGA</symbol>
+ <symbol alt="narrow" draft="contributed">Ar</symbol>
+ </currency>
+ <currency type="MGF">
+ <displayName>madagassiske franc</displayName>
+ <displayName count="one">madagassisk franc</displayName>
+ <displayName count="other">madagassiske franc</displayName>
+ </currency>
+ <currency type="MKD">
+ <displayName>makedonske denarer</displayName>
+ <displayName count="one">makedonsk denar</displayName>
+ <displayName count="other">makedonske denarer</displayName>
+ <symbol draft="contributed">MKD</symbol>
+ </currency>
+ <currency type="MKN">
+ <displayName draft="contributed">makedonske denarer (1992–1993)</displayName>
+ <displayName count="one" draft="contributed">makedonsk denar (1992–1993)</displayName>
+ <displayName count="other" draft="contributed">makedonske denarer (1992–1993)</displayName>
+ <symbol draft="contributed">MKN</symbol>
+ </currency>
+ <currency type="MLF">
+ <displayName>maliske franc</displayName>
+ <displayName count="one">malisk franc</displayName>
+ <displayName count="other">maliske franc</displayName>
+ <symbol draft="contributed">MLF</symbol>
+ </currency>
+ <currency type="MMK">
+ <displayName>myanmarske kyat</displayName>
+ <displayName count="one">myanmarsk kyat</displayName>
+ <displayName count="other">myanmarske kyat</displayName>
+ <symbol draft="contributed">MMK</symbol>
+ <symbol alt="narrow" draft="contributed">K</symbol>
+ </currency>
+ <currency type="MNT">
+ <displayName>mongolske tugrik</displayName>
+ <displayName count="one">mongolsk tugrik</displayName>
+ <displayName count="other">mongolske tugrik</displayName>
+ <symbol draft="contributed">MNT</symbol>
+ <symbol alt="narrow" draft="contributed">₮</symbol>
+ </currency>
+ <currency type="MOP">
+ <displayName>makaoiske pataca</displayName>
+ <displayName count="one">makaoisk pataca</displayName>
+ <displayName count="other">makaoiske pataca</displayName>
+ <symbol draft="contributed">MOP</symbol>
+ </currency>
+ <currency type="MRO">
+ <displayName>mauritanske ouguiya (1973–2017)</displayName>
+ <displayName count="one">mauritansk ouguiya (1973–2017)</displayName>
+ <displayName count="other">mauritanske ouguiya (1973–2017)</displayName>
+ <symbol draft="contributed">MRO</symbol>
+ </currency>
+ <currency type="MRU">
+ <displayName>mauritanske ouguiya</displayName>
+ <displayName count="one">mauritansk ouguiya</displayName>
+ <displayName count="other">mauritanske ouguiya</displayName>
+ <symbol draft="contributed">↑↑↑</symbol>
+ </currency>
+ <currency type="MTL">
+ <displayName>maltesiske lira</displayName>
+ <displayName count="one">maltesisk lira</displayName>
+ <displayName count="other">maltesiske lira</displayName>
+ <symbol draft="contributed">MTL</symbol>
+ </currency>
+ <currency type="MTP">
+ <displayName>maltesiske pund</displayName>
+ <displayName count="one">maltesisk pund</displayName>
+ <displayName count="other">maltesiske pund</displayName>
+ <symbol draft="contributed">MTP</symbol>
+ </currency>
+ <currency type="MUR">
+ <displayName>mauritiske rupier</displayName>
+ <displayName count="one">mauritisk rupi</displayName>
+ <displayName count="other">mauritiske rupier</displayName>
+ <symbol draft="contributed">MUR</symbol>
+ <symbol alt="narrow" draft="contributed">Rs</symbol>
+ </currency>
+ <currency type="MVP">
+ <displayName draft="contributed">maldiviske rupier</displayName>
+ <displayName count="one" draft="contributed">maldivisk rupi</displayName>
+ <displayName count="other" draft="contributed">maldiviske rupier</displayName>
+ <symbol draft="contributed">MVP</symbol>
+ </currency>
+ <currency type="MVR">
+ <displayName>maldiviske rufiyaa</displayName>
+ <displayName count="one">maldivisk rufiyaa</displayName>
+ <displayName count="other">maldiviske rufiyaa</displayName>
+ <symbol draft="contributed">MVR</symbol>
+ </currency>
+ <currency type="MWK">
+ <displayName>malawiske kwacha</displayName>
+ <displayName count="one">malawisk kwacha</displayName>
+ <displayName count="other">malawiske kwacha</displayName>
+ <symbol draft="contributed">MWK</symbol>
+ </currency>
+ <currency type="MXN">
+ <displayName>meksikanske pesos</displayName>
+ <displayName count="one">meksikansk peso</displayName>
+ <displayName count="other">meksikanske pesos</displayName>
+ <symbol>MXN</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="MXP">
+ <displayName>meksikanske sølvpesos (1861–1992)</displayName>
+ <displayName count="one">meksikansk sølvpesos (1860–1992)</displayName>
+ <displayName count="other">meksikanske sølvpesos (1860–1992)</displayName>
+ <symbol draft="contributed">MXP</symbol>
+ </currency>
+ <currency type="MXV">
+ <displayName>meksikanske unidad de inversion (UDI)</displayName>
+ <displayName count="one">meksikansk unidad de inversion (UDI)</displayName>
+ <displayName count="other">meksikanske unidad de inversion (UDI)</displayName>
+ <symbol draft="contributed">MXV</symbol>
+ </currency>
+ <currency type="MYR">
+ <displayName>malaysiske ringgit</displayName>
+ <displayName count="one">malaysisk ringgit</displayName>
+ <displayName count="other">malaysiske ringgit</displayName>
+ <symbol draft="contributed">MYR</symbol>
+ <symbol alt="narrow" draft="contributed">RM</symbol>
+ </currency>
+ <currency type="MZE">
+ <displayName>mosambikiske escudo</displayName>
+ <displayName count="one">mosambikisk escudo</displayName>
+ <displayName count="other">mosambikiske escudo</displayName>
+ <symbol draft="contributed">MZE</symbol>
+ </currency>
+ <currency type="MZM">
+ <displayName>gamle mosambikiske metical</displayName>
+ <displayName count="one">gammel mosambikisk metical</displayName>
+ <displayName count="other">gamle mosambikiske metical</displayName>
+ <symbol draft="contributed">MZM</symbol>
+ </currency>
+ <currency type="MZN">
+ <displayName>mosambikiske metical</displayName>
+ <displayName count="one">mosambikisk metical</displayName>
+ <displayName count="other">mosambikiske metical</displayName>
+ <symbol draft="contributed">MZN</symbol>
+ </currency>
+ <currency type="NAD">
+ <displayName>namibiske dollar</displayName>
+ <displayName count="one">namibisk dollar</displayName>
+ <displayName count="other">namibiske dollar</displayName>
+ <symbol draft="contributed">NAD</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="NGN">
+ <displayName>nigerianske naira</displayName>
+ <displayName count="one">nigeriansk naira</displayName>
+ <displayName count="other">nigerianske naira</displayName>
+ <symbol draft="contributed">NGN</symbol>
+ <symbol alt="narrow" draft="contributed">₦</symbol>
+ </currency>
+ <currency type="NIC">
+ <displayName>nicaraguanske cordoba (1988–1991)</displayName>
+ <displayName count="one">nicaraguansk cordoba (1988–1991)</displayName>
+ <displayName count="other">nicaraguanske cordoba (1988–1991)</displayName>
+ <symbol draft="contributed">NIC</symbol>
+ </currency>
+ <currency type="NIO">
+ <displayName>nicaraguanske córdoba</displayName>
+ <displayName count="one">nicaraguansk córdoba</displayName>
+ <displayName count="other">nicaraguanske córdoba</displayName>
+ <symbol draft="contributed">NIO</symbol>
+ <symbol alt="narrow" draft="contributed">C$</symbol>
+ </currency>
+ <currency type="NLG">
+ <displayName>nederlandske gylden</displayName>
+ <displayName count="one">nederlandsk gylden</displayName>
+ <displayName count="other">nederlandske gylden</displayName>
+ <symbol draft="contributed">NLG</symbol>
+ </currency>
+ <currency type="NOK">
+ <displayName>norske kroner</displayName>
+ <displayName count="one">norsk krone</displayName>
+ <displayName count="other">norske kroner</displayName>
+ <symbol>kr</symbol>
+ <symbol alt="narrow" draft="contributed">kr</symbol>
+ </currency>
+ <currency type="NPR">
+ <displayName>nepalske rupier</displayName>
+ <displayName count="one">nepalsk rupi</displayName>
+ <displayName count="other">nepalske rupier</displayName>
+ <symbol draft="contributed">NPR</symbol>
+ <symbol alt="narrow" draft="contributed">Rs</symbol>
+ </currency>
+ <currency type="NZD">
+ <displayName>newzealandske dollar</displayName>
+ <displayName count="one">newzealandsk dollar</displayName>
+ <displayName count="other">newzealandske dollar</displayName>
+ <symbol>NZD</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="OMR">
+ <displayName>omanske rialer</displayName>
+ <displayName count="one">omansk rial</displayName>
+ <displayName count="other">omanske rialer</displayName>
+ <symbol draft="contributed">OMR</symbol>
+ </currency>
+ <currency type="PAB">
+ <displayName>panamanske balboa</displayName>
+ <displayName count="one">panamansk balboa</displayName>
+ <displayName count="other">panamanske balboa</displayName>
+ <symbol draft="contributed">PAB</symbol>
+ </currency>
+ <currency type="PEI">
+ <displayName>peruanske inti</displayName>
+ <displayName count="one">peruansk inti</displayName>
+ <displayName count="other">peruanske inti</displayName>
+ <symbol draft="contributed">PEI</symbol>
+ </currency>
+ <currency type="PEN">
+ <displayName>peruanske sol</displayName>
+ <displayName count="one">peruansk sol</displayName>
+ <displayName count="other">peruanske sol</displayName>
+ <symbol draft="contributed">PEN</symbol>
+ </currency>
+ <currency type="PES">
+ <displayName>peruanske sol (1863–1965)</displayName>
+ <displayName count="one">peruansk sol (1863–1965)</displayName>
+ <displayName count="other">peruanske sol (1863–1965)</displayName>
+ <symbol draft="contributed">PES</symbol>
+ </currency>
+ <currency type="PGK">
+ <displayName>papuanske kina</displayName>
+ <displayName count="one">papuansk kina</displayName>
+ <displayName count="other">papuanske kina</displayName>
+ <symbol draft="contributed">PGK</symbol>
+ </currency>
+ <currency type="PHP">
+ <displayName>filippinske pesos</displayName>
+ <displayName count="one">filippinsk peso</displayName>
+ <displayName count="other">filippinske pesos</displayName>
+ <symbol draft="contributed">PHP</symbol>
+ <symbol alt="narrow" draft="contributed">₱</symbol>
+ </currency>
+ <currency type="PKR">
+ <displayName>pakistanske rupier</displayName>
+ <displayName count="one">pakistansk rupi</displayName>
+ <displayName count="other">pakistanske rupier</displayName>
+ <symbol draft="contributed">PKR</symbol>
+ <symbol alt="narrow" draft="contributed">Rs</symbol>
+ </currency>
+ <currency type="PLN">
+ <displayName>polske zloty</displayName>
+ <displayName count="one">polsk zloty</displayName>
+ <displayName count="other">polske zloty</displayName>
+ <symbol draft="contributed">PLN</symbol>
+ <symbol alt="narrow" draft="contributed">zł</symbol>
+ </currency>
+ <currency type="PLZ">
+ <displayName>polske zloty (1950–1995)</displayName>
+ <displayName count="one">polsk zloty (1950–1995)</displayName>
+ <displayName count="other">polske zloty (1950–1995)</displayName>
+ <symbol draft="contributed">PLZ</symbol>
+ </currency>
+ <currency type="PTE">
+ <displayName>portugisiske escudo</displayName>
+ <displayName count="one">portugisisk escudo</displayName>
+ <displayName count="other">portugisiske escudo</displayName>
+ <symbol draft="contributed">PTE</symbol>
+ </currency>
+ <currency type="PYG">
+ <displayName>paraguayanske guarani</displayName>
+ <displayName count="one">paraguayansk guarani</displayName>
+ <displayName count="other">paraguayanske guarani</displayName>
+ <symbol draft="contributed">PYG</symbol>
+ <symbol alt="narrow" draft="contributed">₲</symbol>
+ </currency>
+ <currency type="QAR">
+ <displayName>qatarske rialer</displayName>
+ <displayName count="one">qatarsk rial</displayName>
+ <displayName count="other">qatarske rialer</displayName>
+ <symbol draft="contributed">QAR</symbol>
+ </currency>
+ <currency type="RHD">
+ <displayName>rhodesiske dollar</displayName>
+ <displayName count="one">rhodesisk dollar</displayName>
+ <displayName count="other">rhodesiske dollar</displayName>
+ <symbol draft="contributed">RHD</symbol>
+ </currency>
+ <currency type="ROL">
+ <displayName>rumenske leu (1952–2006)</displayName>
+ <displayName count="one">rumensk leu (1952–2006)</displayName>
+ <displayName count="other">rumenske leu (1952–2006)</displayName>
+ <symbol draft="contributed">ROL</symbol>
+ </currency>
+ <currency type="RON">
+ <displayName>rumenske leu</displayName>
+ <displayName count="one">rumensk leu</displayName>
+ <displayName count="other">rumenske lei</displayName>
+ <symbol draft="contributed">RON</symbol>
+ <symbol alt="narrow" draft="contributed">L</symbol>
+ </currency>
+ <currency type="RSD">
+ <displayName>serbiske dinarer</displayName>
+ <displayName count="one">serbisk dinar</displayName>
+ <displayName count="other">serbiske dinarer</displayName>
+ <symbol draft="contributed">RSD</symbol>
+ </currency>
+ <currency type="RUB">
+ <displayName>russiske rubler</displayName>
+ <displayName count="one">russisk rubel</displayName>
+ <displayName count="other">russiske rubler</displayName>
+ <symbol draft="contributed">RUB</symbol>
+ <symbol alt="narrow" draft="contributed">₽</symbol>
+ </currency>
+ <currency type="RUR">
+ <displayName>russiske rubler (1991–1998)</displayName>
+ <displayName count="one">russisk rubel (1991–1998)</displayName>
+ <displayName count="other">russiske rubler (1991–1998)</displayName>
+ <symbol draft="contributed">RUR</symbol>
+ </currency>
+ <currency type="RWF">
+ <displayName>rwandiske franc</displayName>
+ <displayName count="one">rwandisk franc</displayName>
+ <displayName count="other">rwandiske franc</displayName>
+ <symbol draft="contributed">RWF</symbol>
+ <symbol alt="narrow" draft="contributed">RF</symbol>
+ </currency>
+ <currency type="SAR">
+ <displayName>saudiarabiske riyaler</displayName>
+ <displayName count="one">saudiarabisk riyal</displayName>
+ <displayName count="other">saudiarabiske riyaler</displayName>
+ <symbol draft="contributed">SAR</symbol>
+ </currency>
+ <currency type="SBD">
+ <displayName>salomonske dollar</displayName>
+ <displayName count="one">salomonsk dollar</displayName>
+ <displayName count="other">salomonske dollar</displayName>
+ <symbol draft="contributed">SBD</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="SCR">
+ <displayName>seychelliske rupier</displayName>
+ <displayName count="one">seychellisk rupi</displayName>
+ <displayName count="other">seychelliske rupier</displayName>
+ <symbol draft="contributed">SCR</symbol>
+ </currency>
+ <currency type="SDD">
+ <displayName>sudanesiske dinarer (1992–2007)</displayName>
+ <displayName count="one">sudanesisk dinar (1992–2007)</displayName>
+ <displayName count="other">sudanesiske dinarer (1992–2007)</displayName>
+ <symbol draft="contributed">SDD</symbol>
+ </currency>
+ <currency type="SDG">
+ <displayName>sudanske pund</displayName>
+ <displayName count="one">sudansk pund</displayName>
+ <displayName count="other">sudanske pund</displayName>
+ <symbol draft="contributed">SDG</symbol>
+ </currency>
+ <currency type="SDP">
+ <displayName>sudanesiske pund</displayName>
+ <displayName count="one">sudansk pund (1957–1998)</displayName>
+ <displayName count="other">sudanske pund (1957–1998)</displayName>
+ <symbol draft="contributed">SDP</symbol>
+ </currency>
+ <currency type="SEK">
+ <displayName>svenske kroner</displayName>
+ <displayName count="one">svensk krone</displayName>
+ <displayName count="other">svenske kroner</displayName>
+ <symbol draft="contributed">SEK</symbol>
+ <symbol alt="narrow" draft="contributed">kr</symbol>
+ </currency>
+ <currency type="SGD">
+ <displayName>singaporske dollar</displayName>
+ <displayName count="one">singaporsk dollar</displayName>
+ <displayName count="other">singaporske dollar</displayName>
+ <symbol draft="contributed">SGD</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="SHP">
+ <displayName>sankthelenske pund</displayName>
+ <displayName count="one">sankthelensk pund</displayName>
+ <displayName count="other">sankthelenske pund</displayName>
+ <symbol draft="contributed">SHP</symbol>
+ <symbol alt="narrow" draft="contributed">£</symbol>
+ </currency>
+ <currency type="SIT">
+ <displayName>slovenske tolar</displayName>
+ <displayName count="one">slovensk tolar</displayName>
+ <displayName count="other">slovenske tolar</displayName>
+ <symbol draft="contributed">SIT</symbol>
+ </currency>
+ <currency type="SKK">
+ <displayName>slovakiske koruna</displayName>
+ <displayName count="one">slovakisk koruna</displayName>
+ <displayName count="other">slovakiske koruna</displayName>
+ <symbol draft="contributed">SKK</symbol>
+ </currency>
+ <currency type="SLL">
+ <displayName>sierraleonske leone</displayName>
+ <displayName count="one">sierraleonsk leone</displayName>
+ <displayName count="other">sierraleonske leone</displayName>
+ <symbol draft="contributed">SLL</symbol>
+ </currency>
+ <currency type="SOS">
+ <displayName>somaliske shilling</displayName>
+ <displayName count="one">somalisk shilling</displayName>
+ <displayName count="other">somaliske shilling</displayName>
+ <symbol draft="contributed">SOS</symbol>
+ </currency>
+ <currency type="SRD">
+ <displayName>surinamske dollar</displayName>
+ <displayName count="one">surinamsk dollar</displayName>
+ <displayName count="other">surinamske dollar</displayName>
+ <symbol draft="contributed">SRD</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="SRG">
+ <displayName>surinamske gylden</displayName>
+ <displayName count="one">surinamsk gylden</displayName>
+ <displayName count="other">surinamske gylden</displayName>
+ <symbol draft="contributed">SRG</symbol>
+ </currency>
+ <currency type="SSP">
+ <displayName>sørsudanske pund</displayName>
+ <displayName count="one">sørsudansk pund</displayName>
+ <displayName count="other">sørsudanske pund</displayName>
+ <symbol draft="contributed">SSP</symbol>
+ <symbol alt="narrow" draft="contributed">£</symbol>
+ </currency>
+ <currency type="STD">
+ <displayName>saotomesiske dobra (1977–2017)</displayName>
+ <displayName count="one">saotomesisk dobra (1977–2017)</displayName>
+ <displayName count="other">saotomesiske dobra (1977–2017)</displayName>
+ <symbol draft="contributed">STD</symbol>
+ </currency>
+ <currency type="STN">
+ <displayName>saotomesiske dobra</displayName>
+ <displayName count="one">saotomesisk dobra</displayName>
+ <displayName count="other">saotomesiske dobra</displayName>
+ <symbol draft="contributed">STN</symbol>
+ <symbol alt="narrow" draft="contributed">↑↑↑</symbol>
+ </currency>
+ <currency type="SUR">
+ <displayName>sovjetiske rubler</displayName>
+ <displayName count="one">sovjetisk rubel</displayName>
+ <displayName count="other">sovjetiske rubler</displayName>
+ <symbol draft="contributed">SUR</symbol>
+ </currency>
+ <currency type="SVC">
+ <displayName>salvadoranske colon</displayName>
+ <displayName count="one">salvadoransk colon</displayName>
+ <displayName count="other">salvadoranske colon</displayName>
+ <symbol draft="contributed">SVC</symbol>
+ </currency>
+ <currency type="SYP">
+ <displayName>syriske pund</displayName>
+ <displayName count="one">syrisk pund</displayName>
+ <displayName count="other">syriske pund</displayName>
+ <symbol draft="contributed">SYP</symbol>
+ <symbol alt="narrow" draft="contributed">£</symbol>
+ </currency>
+ <currency type="SZL">
+ <displayName>swazilandske lilangeni</displayName>
+ <displayName count="one">swazilandsk lilangeni</displayName>
+ <displayName count="other">swazilandske lilangeni</displayName>
+ <symbol draft="contributed">SZL</symbol>
+ </currency>
+ <currency type="THB">
+ <displayName>thailandske baht</displayName>
+ <displayName count="one">thailandsk baht</displayName>
+ <displayName count="other">thailandske baht</displayName>
+ <symbol draft="contributed">THB</symbol>
+ <symbol alt="narrow" draft="contributed">฿</symbol>
+ </currency>
+ <currency type="TJR">
+ <displayName>tadsjikiske rubler</displayName>
+ <displayName count="one">tadsjikisk rubel</displayName>
+ <displayName count="other">tadsjikiske rubler</displayName>
+ <symbol draft="contributed">TJR</symbol>
+ </currency>
+ <currency type="TJS">
+ <displayName>tadsjikiske somoni</displayName>
+ <displayName count="one">tadsjikisk somoni</displayName>
+ <displayName count="other">tadsjikiske somoni</displayName>
+ <symbol draft="contributed">TJS</symbol>
+ </currency>
+ <currency type="TMM">
+ <displayName>turkmenske manat (1993–2009)</displayName>
+ <displayName count="one">turkmensk manat (1993–2009)</displayName>
+ <displayName count="other">turkmenske manat (1993–2009)</displayName>
+ <symbol draft="contributed">TMM</symbol>
+ </currency>
+ <currency type="TMT">
+ <displayName>turkmenske manat</displayName>
+ <displayName count="one">turkmensk manat</displayName>
+ <displayName count="other">turkmenske manat</displayName>
+ <symbol draft="contributed">TMT</symbol>
+ </currency>
+ <currency type="TND">
+ <displayName>tunisiske dinarer</displayName>
+ <displayName count="one">tunisisk dinar</displayName>
+ <displayName count="other">tunisiske dinarer</displayName>
+ <symbol draft="contributed">TND</symbol>
+ </currency>
+ <currency type="TOP">
+ <displayName>tonganske paʻanga</displayName>
+ <displayName count="one">tongansk paʻanga</displayName>
+ <displayName count="other">tonganske paʻanga</displayName>
+ <symbol draft="contributed">TOP</symbol>
+ <symbol alt="narrow" draft="contributed">T$</symbol>
+ </currency>
+ <currency type="TPE">
+ <displayName>timoresiske escudo</displayName>
+ <displayName count="one">timoresisk escudo</displayName>
+ <displayName count="other">timoresiske escudo</displayName>
+ <symbol draft="contributed">TPE</symbol>
+ </currency>
+ <currency type="TRL">
+ <displayName>tyrkiske lire (1922–2005)</displayName>
+ <displayName count="one">tyrkisk lire (1922–2005)</displayName>
+ <displayName count="other">tyrkiske lire (1922–2005)</displayName>
+ <symbol draft="contributed">TRL</symbol>
+ </currency>
+ <currency type="TRY">
+ <displayName>tyrkiske lire</displayName>
+ <displayName count="one">tyrkisk lire</displayName>
+ <displayName count="other">tyrkiske lire</displayName>
+ <symbol draft="contributed">TRY</symbol>
+ <symbol alt="narrow" draft="contributed">₺</symbol>
+ <symbol alt="variant" draft="contributed">TL</symbol>
+ </currency>
+ <currency type="TTD">
+ <displayName>trinidadiske dollar</displayName>
+ <displayName count="one">trinidadisk dollar</displayName>
+ <displayName count="other">trinidadiske dollar</displayName>
+ <symbol draft="contributed">TTD</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="TWD">
+ <displayName>nye taiwanske dollar</displayName>
+ <displayName count="one">ny taiwansk dollar</displayName>
+ <displayName count="other">nye taiwanske dollar</displayName>
+ <symbol>TWD</symbol>
+ <symbol alt="narrow" draft="contributed">NT$</symbol>
+ </currency>
+ <currency type="TZS">
+ <displayName>tanzanianske shilling</displayName>
+ <displayName count="one">tanzaniansk shilling</displayName>
+ <displayName count="other">tanzanianske shilling</displayName>
+ <symbol draft="contributed">TZS</symbol>
+ </currency>
+ <currency type="UAH">
+ <displayName>ukrainske hryvnia</displayName>
+ <displayName count="one">ukrainsk hryvnia</displayName>
+ <displayName count="other">ukrainske hryvnia</displayName>
+ <symbol draft="contributed">UAH</symbol>
+ <symbol alt="narrow" draft="contributed">₴</symbol>
+ </currency>
+ <currency type="UAK">
+ <displayName>ukrainske karbovanetz</displayName>
+ <displayName count="one">ukrainsk karbovanetz</displayName>
+ <displayName count="other">ukrainske karbovanetz</displayName>
+ <symbol draft="contributed">UAK</symbol>
+ </currency>
+ <currency type="UGS">
+ <displayName>ugandiske shilling (1966–1987)</displayName>
+ <displayName count="one">ugandisk shilling (1966–1987)</displayName>
+ <displayName count="other">ugandiske shilling (1966–1987)</displayName>
+ <symbol draft="contributed">UGS</symbol>
+ </currency>
+ <currency type="UGX">
+ <displayName>ugandiske shilling</displayName>
+ <displayName count="one">ugandisk shilling</displayName>
+ <displayName count="other">ugandiske shilling</displayName>
+ <symbol draft="contributed">UGX</symbol>
+ </currency>
+ <currency type="USD">
+ <displayName>amerikanske dollar</displayName>
+ <displayName count="one">amerikansk dollar</displayName>
+ <displayName count="other">amerikanske dollar</displayName>
+ <symbol>USD</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="USN">
+ <displayName>amerikanske dollar (neste dag)</displayName>
+ <displayName count="one">amerikansk dollar (neste dag)</displayName>
+ <displayName count="other">amerikanske dollar (neste dag)</displayName>
+ <symbol draft="contributed">USN</symbol>
+ </currency>
+ <currency type="USS">
+ <displayName>amerikanske dollar (samme dag)</displayName>
+ <displayName count="one">amerikansk dollar (samme dag)</displayName>
+ <displayName count="other">amerikanske dollar (samme dag)</displayName>
+ <symbol draft="contributed">USS</symbol>
+ </currency>
+ <currency type="UYI">
+ <displayName draft="contributed">uruguyanske pesos (indekserte enheter)</displayName>
+ <displayName count="one" draft="contributed">uruguyanske pesos (indekserte enheter)</displayName>
+ <displayName count="other" draft="contributed">uruguyanske pesos (indekserte enheter)</displayName>
+ <symbol draft="contributed">UYI</symbol>
+ </currency>
+ <currency type="UYP">
+ <displayName>uruguayanske pesos (1975–1993)</displayName>
+ <displayName count="one">uruguayansk peso (1975–1993)</displayName>
+ <displayName count="other">uruguayanske pesos (1975–1993)</displayName>
+ <symbol draft="contributed">UYP</symbol>
+ </currency>
+ <currency type="UYU">
+ <displayName>uruguayanske pesos</displayName>
+ <displayName count="one">uruguyansk peso</displayName>
+ <displayName count="other">uruguayanske pesos</displayName>
+ <symbol draft="contributed">UYU</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="UZS">
+ <displayName>usbekiske som</displayName>
+ <displayName count="one">usbekisk som</displayName>
+ <displayName count="other">usbekiske som</displayName>
+ <symbol draft="contributed">UZS</symbol>
+ </currency>
+ <currency type="VEB">
+ <displayName>venezuelanske bolivar (1871–2008)</displayName>
+ <displayName count="one">venezuelansk bolivar (1871–2008)</displayName>
+ <displayName count="other">venezuelanske bolivar (1871–2008)</displayName>
+ <symbol draft="contributed">VEB</symbol>
+ </currency>
+ <currency type="VEF">
+ <displayName>venezuelanske bolivar (2008–2018)</displayName>
+ <displayName count="one">venezuelansk bolivar (2008–2018)</displayName>
+ <displayName count="other">venezuelanske bolivar (2008–2018)</displayName>
+ <symbol draft="contributed">VEF</symbol>
+ <symbol alt="narrow" draft="contributed">Bs</symbol>
+ </currency>
+ <currency type="VES">
+ <displayName>venezuelanske bolivar</displayName>
+ <displayName count="one">venezuelansk bolivar</displayName>
+ <displayName count="other">venezuelanske bolivar</displayName>
+ <symbol draft="contributed">VES</symbol>
+ </currency>
+ <currency type="VND">
+ <displayName>vietnamesiske dong</displayName>
+ <displayName count="one">vietnamesisk dong</displayName>
+ <displayName count="other">vietnamesiske dong</displayName>
+ <symbol>VND</symbol>
+ <symbol alt="narrow" draft="contributed">₫</symbol>
+ </currency>
+ <currency type="VNN">
+ <displayName draft="contributed">vietnamesiske dong (1978–1985)</displayName>
+ <displayName count="one" draft="contributed">vietnamesisk dong (1978–1985)</displayName>
+ <displayName count="other" draft="contributed">vietnamesiske dong (1978–1985)</displayName>
+ <symbol draft="contributed">VNN</symbol>
+ </currency>
+ <currency type="VUV">
+ <displayName>vanuatiske vatu</displayName>
+ <displayName count="one">vanuatisk vatu</displayName>
+ <displayName count="other">vanuatiske vatu</displayName>
+ <symbol draft="contributed">VUV</symbol>
+ </currency>
+ <currency type="WST">
+ <displayName>samoanske tala</displayName>
+ <displayName count="one">samoansk tala</displayName>
+ <displayName count="other">samoanske tala</displayName>
+ <symbol draft="contributed">WST</symbol>
+ </currency>
+ <currency type="XAF">
+ <displayName>sentralafrikanske CFA-franc</displayName>
+ <displayName count="one">sentralafrikansk CFA-franc</displayName>
+ <displayName count="other">sentralafrikanske CFA-franc</displayName>
+ <symbol>XAF</symbol>
+ </currency>
+ <currency type="XAG">
+ <displayName>sølv</displayName>
+ <displayName count="one">unse sølv</displayName>
+ <displayName count="other">unser sølv</displayName>
+ <symbol draft="contributed">XAG</symbol>
+ </currency>
+ <currency type="XAU">
+ <displayName>gull</displayName>
+ <displayName count="one">unse gull</displayName>
+ <displayName count="other">unser gull</displayName>
+ <symbol draft="contributed">XAU</symbol>
+ </currency>
+ <currency type="XBA">
+ <displayName>europeisk sammensatt enhet</displayName>
+ <displayName count="one">europeisk sammensatt enhet</displayName>
+ <displayName count="other">europeiske sammensatte enheter</displayName>
+ <symbol draft="contributed">XBA</symbol>
+ </currency>
+ <currency type="XBB">
+ <displayName>europeisk monetær enhet</displayName>
+ <displayName count="one">europeisk monetær enhet</displayName>
+ <displayName count="other">europeiske monetære enheter</displayName>
+ <symbol draft="contributed">XBB</symbol>
+ </currency>
+ <currency type="XBC">
+ <displayName>europeisk kontoenhet (XBC)</displayName>
+ <displayName count="one">europeisk kontoenhet (XBC)</displayName>
+ <displayName count="other">europeiske kontoenheter</displayName>
+ <symbol draft="contributed">XBC</symbol>
+ </currency>
+ <currency type="XBD">
+ <displayName>europeisk kontoenhet (XBD)</displayName>
+ <displayName count="one">europeisk kontoenhet (XBD)</displayName>
+ <displayName count="other">europeiske kontoenheter (XBD)</displayName>
+ <symbol draft="contributed">XBD</symbol>
+ </currency>
+ <currency type="XCD">
+ <displayName>østkaribiske dollar</displayName>
+ <displayName count="one">østkaribisk dollar</displayName>
+ <displayName count="other">østkaribiske dollar</displayName>
+ <symbol>XCD</symbol>
+ <symbol alt="narrow" draft="contributed">$</symbol>
+ </currency>
+ <currency type="XDR">
+ <displayName>spesielle trekkrettigheter</displayName>
+ <displayName count="one">spesiell trekkrettighet</displayName>
+ <displayName count="other">spesielle trekkrettigheter</displayName>
+ <symbol draft="contributed">XDR</symbol>
+ </currency>
+ <currency type="XEU">
+ <displayName>europeisk valutaenhet</displayName>
+ <displayName count="one">europeisk valutaenhet</displayName>
+ <displayName count="other">europeiske valutaenheter</displayName>
+ <symbol draft="contributed">XEU</symbol>
+ </currency>
+ <currency type="XFO">
+ <displayName>franske gullfranc</displayName>
+ <displayName count="one">fransk gullfranc</displayName>
+ <displayName count="other">franske gullfranc</displayName>
+ <symbol draft="contributed">XFO</symbol>
+ </currency>
+ <currency type="XFU">
+ <displayName>franske UIC-franc</displayName>
+ <displayName count="one">fransk UIC-franc</displayName>
+ <displayName count="other">franske UIC-franc</displayName>
+ <symbol draft="contributed">XFU</symbol>
+ </currency>
+ <currency type="XOF">
+ <displayName>vestafrikanske CFA-franc</displayName>
+ <displayName count="one">vestafrikansk CFA-franc</displayName>
+ <displayName count="other">vestafrikanske CFA-franc</displayName>
+ <symbol draft="contributed">F CFA</symbol>
+ </currency>
+ <currency type="XPD">
+ <displayName>palladium</displayName>
+ <displayName count="one">unse palladium</displayName>
+ <displayName count="other">unser palladium</displayName>
+ <symbol draft="contributed">XPD</symbol>
+ </currency>
+ <currency type="XPF">
+ <displayName>CFP-franc</displayName>
+ <displayName count="one">CFP-franc</displayName>
+ <displayName count="other">CFP-franc</displayName>
+ <symbol>XPF</symbol>
+ </currency>
+ <currency type="XPT">
+ <displayName>platina</displayName>
+ <displayName count="one">unse platina</displayName>
+ <displayName count="other">unser platina</displayName>
+ <symbol draft="contributed">XPT</symbol>
+ </currency>
+ <currency type="XRE">
+ <displayName>RINET-fond</displayName>
+ <symbol draft="contributed">XRE</symbol>
+ </currency>
+ <currency type="XSU">
+ <displayName draft="contributed">sucre</displayName>
+ <displayName count="one" draft="contributed">sucre</displayName>
+ <displayName count="other" draft="contributed">sucre</displayName>
+ <symbol draft="contributed">XSU</symbol>
+ </currency>
+ <currency type="XTS">
+ <displayName>testvalutakode</displayName>
+ <displayName count="one">testvaluta</displayName>
+ <displayName count="other">testvaluta</displayName>
+ <symbol draft="contributed">XTS</symbol>
+ </currency>
+ <currency type="XUA">
+ <displayName draft="contributed">ADB-kontoenhet</displayName>
+ <displayName count="one" draft="contributed">ADB-kontoenhet</displayName>
+ <displayName count="other" draft="contributed">ADB-kontoenheter</displayName>
+ <symbol draft="contributed">XUA</symbol>
+ </currency>
+ <currency type="XXX">
+ <displayName>ukjent valuta</displayName>
+ <displayName count="one">(ukjent valuta)</displayName>
+ <displayName count="other">(ukjent valuta)</displayName>
+ <symbol draft="contributed">XXX</symbol>
+ </currency>
+ <currency type="YDD">
+ <displayName>jemenittiske dinarer</displayName>
+ <displayName count="one">jemenittisk dinar</displayName>
+ <displayName count="other">jemenittiske dinarer</displayName>
+ <symbol draft="contributed">YDD</symbol>
+ </currency>
+ <currency type="YER">
+ <displayName>jemenittiske rialer</displayName>
+ <displayName count="one">jemenittisk rial</displayName>
+ <displayName count="other">jemenittiske rialer</displayName>
+ <symbol draft="contributed">YER</symbol>
+ </currency>
+ <currency type="YUD">
+ <displayName>jugoslaviske dinarer (hard)</displayName>
+ <displayName count="one">jugoslavisk dinar (hard)</displayName>
+ <displayName count="other">jugoslaviske dinarer (hard)</displayName>
+ <symbol draft="contributed">YUD</symbol>
+ </currency>
+ <currency type="YUM">
+ <displayName>jugoslaviske noviy-dinarer</displayName>
+ <displayName count="one">jugoslavisk noviy-dinar</displayName>
+ <displayName count="other">jugoslaviske noviy-dinarer</displayName>
+ <symbol draft="contributed">YUM</symbol>
+ </currency>
+ <currency type="YUN">
+ <displayName>jugoslaviske konvertible dinarer</displayName>
+ <displayName count="one">jugoslavisk konvertibel dinar</displayName>
+ <displayName count="other">jugoslaviske konvertible dinarer</displayName>
+ <symbol draft="contributed">YUN</symbol>
+ </currency>
+ <currency type="YUR">
+ <displayName draft="contributed">jugoslaviske reformerte dinarer (1992–1993)</displayName>
+ <displayName count="one" draft="contributed">jugoslavisk reformert dinar (1992–1993)</displayName>
+ <displayName count="other" draft="contributed">jugoslaviske reformerte dinarer (1992–1993)</displayName>
+ <symbol draft="contributed">YUR</symbol>
+ </currency>
+ <currency type="ZAL">
+ <displayName>sørafrikanske rand (finansielle)</displayName>
+ <displayName count="one">sørafrikansk rand (finansiell)</displayName>
+ <displayName count="other">sørafrikanske rand (finansielle)</displayName>
+ <symbol draft="contributed">ZAL</symbol>
+ </currency>
+ <currency type="ZAR">
+ <displayName>sørafrikanske rand</displayName>
+ <displayName count="one">sørafrikansk rand</displayName>
+ <displayName count="other">sørafrikanske rand</displayName>
+ <symbol draft="contributed">ZAR</symbol>
+ <symbol alt="narrow" draft="contributed">R</symbol>
+ </currency>
+ <currency type="ZMK">
+ <displayName>zambiske kwacha (1968–2012)</displayName>
+ <displayName count="one">zambisk kwacha (1968–2012)</displayName>
+ <displayName count="other">zambiske kwacha (1968–2012)</displayName>
+ <symbol draft="contributed">ZMK</symbol>
+ </currency>
+ <currency type="ZMW">
+ <displayName>zambiske kwacha</displayName>
+ <displayName count="one">zambisk kwacha</displayName>
+ <displayName count="other">zambiske kwacha</displayName>
+ <symbol draft="contributed">ZMW</symbol>
+ <symbol alt="narrow" draft="contributed">ZK</symbol>
+ </currency>
+ <currency type="ZRN">
+ <displayName>zairiske nye zaire</displayName>
+ <displayName count="one">zairisk ny zaire</displayName>
+ <displayName count="other">zairiske nye zaire</displayName>
+ <symbol draft="contributed">ZRN</symbol>
+ </currency>
+ <currency type="ZRZ">
+ <displayName>zairiske zaire</displayName>
+ <displayName count="one">zairisk zaire</displayName>
+ <displayName count="other">zairiske zaire</displayName>
+ <symbol draft="contributed">ZRZ</symbol>
+ </currency>
+ <currency type="ZWD">
+ <displayName>zimbabwiske dollar (1980–2008)</displayName>
+ <displayName count="one">zimbabwisk dollar (1980–2008)</displayName>
+ <displayName count="other">zimbabwiske dollar (1980–2008)</displayName>
+ <symbol draft="contributed">ZWD</symbol>
+ </currency>
+ <currency type="ZWL">
+ <displayName>zimbabwisk dollar (2009)</displayName>
+ <displayName count="one">zimbabwisk dollar (2009)</displayName>
+ <displayName count="other">zimbabwiske dollar (2009)</displayName>
+ <symbol draft="contributed">ZWL</symbol>
+ </currency>
+ <currency type="ZWR">
+ <displayName>zimbabwisk dollar (2008)</displayName>
+ <displayName count="one">zimbabwisk dollar (2008)</displayName>
+ <displayName count="other">zimbabwiske dollar (2008)</displayName>
+ </currency>
+ </currencies>
+ <miscPatterns numberSystem="arab">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="arabext">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="bali">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="beng">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="brah">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="cakm">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="cham">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="deva">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="fullwide">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="gujr">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="guru">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="hanidec">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="java">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="kali">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="khmr">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="knda">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="lana">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="lanatham">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="laoo">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="latn">
+ <pattern type="approximately">ca. {0}</pattern>
+ <pattern type="atLeast">≥ {0}</pattern>
+ <pattern type="atMost">≤ {0}</pattern>
+ <pattern type="range">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="lepc">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="limb">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="mlym">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="mong">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="mtei">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="mymr">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="mymrshan">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="nkoo">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="olck">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="orya">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="osma">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="saur">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="shrd">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="sora">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="sund">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="takr">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="talu">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="tamldec">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="telu">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="thai">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="tibt">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <miscPatterns numberSystem="vaii">
+ <pattern type="atLeast" draft="contributed">≥{0}</pattern>
+ <pattern type="range" draft="contributed">{0}–{1}</pattern>
+ </miscPatterns>
+ <minimalPairs>
+ <pluralMinimalPairs count="one">{0} dag</pluralMinimalPairs>
+ <pluralMinimalPairs count="other">{0} dager</pluralMinimalPairs>
+ <ordinalMinimalPairs ordinal="other">Ta {0}. sving til høyre.</ordinalMinimalPairs>
+ <genderMinimalPairs gender="masculine">Min {0} den har tre kanter</genderMinimalPairs>
+ <genderMinimalPairs gender="neuter">Mitt {0} det har tre kanter</genderMinimalPairs>
+ </minimalPairs>
+ </numbers>
+ <units>
+ <unitLength type="long">
+ <compoundUnit type="10p-1">
+ <unitPrefixPattern>desi{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p-2">
+ <unitPrefixPattern>centi{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p-3">
+ <unitPrefixPattern>milli{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p-6">
+ <unitPrefixPattern>mikro{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p-9">
+ <unitPrefixPattern>nano{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p-12">
+ <unitPrefixPattern>piko{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p-15">
+ <unitPrefixPattern>femto{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p-18">
+ <unitPrefixPattern>atto{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p-21">
+ <unitPrefixPattern>zepto{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p-24">
+ <unitPrefixPattern>yokto{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p1">
+ <unitPrefixPattern>deka{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p2">
+ <unitPrefixPattern>hekto{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p3">
+ <unitPrefixPattern>kilo{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p6">
+ <unitPrefixPattern>mega{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p9">
+ <unitPrefixPattern>giga{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p12">
+ <unitPrefixPattern>tera{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p15">
+ <unitPrefixPattern>peta{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p18">
+ <unitPrefixPattern>exa{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p21">
+ <unitPrefixPattern>zetta{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p24">
+ <unitPrefixPattern>yotta{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="1024p1">
+ <unitPrefixPattern>kibi{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="1024p2">
+ <unitPrefixPattern>mebi{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="1024p3">
+ <unitPrefixPattern>gibi{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="1024p4">
+ <unitPrefixPattern>tebi{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="1024p5">
+ <unitPrefixPattern>pebi{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="1024p6">
+ <unitPrefixPattern>exbi{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="1024p7">
+ <unitPrefixPattern>zebi{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="1024p8">
+ <unitPrefixPattern>yobi{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="per">
+ <compoundUnitPattern>{0} per {1}</compoundUnitPattern>
+ </compoundUnit>
+ <compoundUnit type="power2">
+ <compoundUnitPattern1>kvadrat{0}</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one">kvadrat{0}</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one" gender="masculine">↑↑↑</compoundUnitPattern1>
+ <compoundUnitPattern1 count="other">kvadrat{0}</compoundUnitPattern1>
+ <compoundUnitPattern1 count="other" gender="masculine">↑↑↑</compoundUnitPattern1>
+ </compoundUnit>
+ <compoundUnit type="power3">
+ <compoundUnitPattern1>kubikk{0}</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one">kubikk{0}</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one" gender="masculine">↑↑↑</compoundUnitPattern1>
+ <compoundUnitPattern1 count="other">kubikk{0}</compoundUnitPattern1>
+ <compoundUnitPattern1 count="other" gender="masculine">↑↑↑</compoundUnitPattern1>
+ </compoundUnit>
+ <compoundUnit type="times">
+ <compoundUnitPattern>↑↑↑</compoundUnitPattern>
+ </compoundUnit>
+ <unit type="acceleration-g-force">
+ <gender>masculine</gender>
+ <displayName>g-kraft</displayName>
+ <unitPattern count="one">{0} g-kraft</unitPattern>
+ <unitPattern count="other">{0} g-kraft</unitPattern>
+ </unit>
+ <unit type="acceleration-meter-per-square-second">
+ <gender>masculine</gender>
+ <displayName>meter per sekund²</displayName>
+ <unitPattern count="one">{0} meter per sekund²</unitPattern>
+ <unitPattern count="other">{0} meter per sekund²</unitPattern>
+ </unit>
+ <unit type="angle-revolution">
+ <displayName>omdreininger</displayName>
+ <unitPattern count="one">{0} omdreining</unitPattern>
+ <unitPattern count="other">{0} omdreininger</unitPattern>
+ </unit>
+ <unit type="angle-radian">
+ <displayName>radianer</displayName>
+ <unitPattern count="one">{0} radian</unitPattern>
+ <unitPattern count="other">{0} radianer</unitPattern>
+ </unit>
+ <unit type="angle-degree">
+ <displayName>grader</displayName>
+ <unitPattern count="one">{0} grad</unitPattern>
+ <unitPattern count="other">{0} grader</unitPattern>
+ </unit>
+ <unit type="angle-arc-minute">
+ <displayName>bueminutter</displayName>
+ <unitPattern count="one">{0} bueminutt</unitPattern>
+ <unitPattern count="other">{0} bueminutter</unitPattern>
+ </unit>
+ <unit type="angle-arc-second">
+ <displayName>buesekunder</displayName>
+ <unitPattern count="one">{0} buesekund</unitPattern>
+ <unitPattern count="other">{0} buesekunder</unitPattern>
+ </unit>
+ <unit type="area-square-kilometer">
+ <gender>masculine</gender>
+ <displayName>kvadratkilometer</displayName>
+ <unitPattern count="one">{0} kvadratkilometer</unitPattern>
+ <unitPattern count="other">{0} kvadratkilometer</unitPattern>
+ <perUnitPattern>{0} per kvadratkilometer</perUnitPattern>
+ </unit>
+ <unit type="area-hectare">
+ <gender>neuter</gender>
+ <displayName>hektar</displayName>
+ <unitPattern count="one">{0} hektar</unitPattern>
+ <unitPattern count="other">{0} hektar</unitPattern>
+ </unit>
+ <unit type="area-square-meter">
+ <displayName>kvadratmeter</displayName>
+ <unitPattern count="one">{0} kvadratmeter</unitPattern>
+ <unitPattern count="other">{0} kvadratmeter</unitPattern>
+ <perUnitPattern>{0} per kvadratmeter</perUnitPattern>
+ </unit>
+ <unit type="area-square-centimeter">
+ <gender>masculine</gender>
+ <displayName>kvadratcentimeter</displayName>
+ <unitPattern count="one">{0} kvadratcentimeter</unitPattern>
+ <unitPattern count="other">{0} kvadratcentimeter</unitPattern>
+ <perUnitPattern>{0} per kvadratcentimeter</perUnitPattern>
+ </unit>
+ <unit type="area-square-mile">
+ <gender>masculine</gender>
+ <displayName>engelske kvadratmil</displayName>
+ <unitPattern count="one">{0} engelsk kvadratmil</unitPattern>
+ <unitPattern count="other">{0} engelske kvadratmil</unitPattern>
+ <perUnitPattern>{0} per engelsk kvadratmil</perUnitPattern>
+ </unit>
+ <unit type="area-acre">
+ <gender>masculine</gender>
+ <displayName>acre</displayName>
+ <unitPattern count="one">{0} acre</unitPattern>
+ <unitPattern count="other">{0} acre</unitPattern>
+ </unit>
+ <unit type="area-square-yard">
+ <displayName>kvadratyard</displayName>
+ <unitPattern count="one">{0} kvadratyard</unitPattern>
+ <unitPattern count="other">{0} kvadratyard</unitPattern>
+ </unit>
+ <unit type="area-square-foot">
+ <gender>masculine</gender>
+ <displayName>kvadratfot</displayName>
+ <unitPattern count="one">{0} kvadratfot</unitPattern>
+ <unitPattern count="other">{0} kvadratfot</unitPattern>
+ </unit>
+ <unit type="area-square-inch">
+ <displayName>kvadrattommer</displayName>
+ <unitPattern count="one">{0} kvadrattomme</unitPattern>
+ <unitPattern count="other">{0} kvadrattommer</unitPattern>
+ <perUnitPattern>{0} per kvadrattomme</perUnitPattern>
+ </unit>
+ <unit type="area-dunam">
+ <displayName>↑↑↑</displayName>
+ <unitPattern count="one">↑↑↑</unitPattern>
+ <unitPattern count="other">↑↑↑</unitPattern>
+ </unit>
+ <unit type="concentr-karat">
+ <displayName>karat</displayName>
+ <unitPattern count="one">{0} karat</unitPattern>
+ <unitPattern count="other">{0} karat</unitPattern>
+ </unit>
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
+ <displayName>milligram per desiliter</displayName>
+ <unitPattern count="one">{0} milligram per desiliter</unitPattern>
+ <unitPattern count="other">{0} milligram per desiliter</unitPattern>
+ </unit>
+ <unit type="concentr-millimole-per-liter">
+ <displayName>millimol per liter</displayName>
+ <unitPattern count="one">{0} millimol per liter</unitPattern>
+ <unitPattern count="other">{0} millimol per liter</unitPattern>
+ </unit>
+ <unit type="concentr-permillion">
+ <displayName>deler per million</displayName>
+ <unitPattern count="one">{0} del per million</unitPattern>
+ <unitPattern count="other">{0} deler per million</unitPattern>
+ </unit>
+ <unit type="concentr-percent">
+ <gender>masculine</gender>
+ <displayName>prosent</displayName>
+ <unitPattern count="one">{0} prosent</unitPattern>
+ <unitPattern count="other">{0} prosent</unitPattern>
+ </unit>
+ <unit type="concentr-permille">
+ <displayName>promille</displayName>
+ <unitPattern count="one">{0} promille</unitPattern>
+ <unitPattern count="other">{0} promille</unitPattern>
+ </unit>
+ <unit type="concentr-permyriad">
+ <displayName>promyriade</displayName>
+ <unitPattern count="one">{0} promyriade</unitPattern>
+ <unitPattern count="other">{0} promyriade</unitPattern>
+ </unit>
+ <unit type="concentr-mole">
+ <displayName>↑↑↑</displayName>
+ <unitPattern count="one">↑↑↑</unitPattern>
+ <unitPattern count="other">↑↑↑</unitPattern>
+ </unit>
+ <unit type="consumption-liter-per-kilometer">
+ <displayName>liter per kilometer</displayName>
+ <unitPattern count="one">{0} liter per kilometer</unitPattern>
+ <unitPattern count="other">{0} liter per kilometer</unitPattern>
+ </unit>
+ <unit type="consumption-liter-per-100-kilometer">
+ <gender>masculine</gender>
+ <displayName>liter per 100 kilometer</displayName>
+ <unitPattern count="one">{0} liter per 100 kilometer</unitPattern>
+ <unitPattern count="other">{0} liter per 100 kilometer</unitPattern>
+ </unit>
+ <unit type="consumption-mile-per-gallon">
+ <gender>masculine</gender>
+ <displayName>engelske mil per gallon</displayName>
+ <unitPattern count="one">{0} engelsk mil per gallon</unitPattern>
+ <unitPattern count="other">{0} engelske mil per gallon</unitPattern>
+ </unit>
+ <unit type="consumption-mile-per-gallon-imperial">
+ <gender>masculine</gender>
+ <displayName>engelske mil per britiske gallon</displayName>
+ <unitPattern count="one">{0} engelsk mil per britisk gallon</unitPattern>
+ <unitPattern count="other">{0} engelske mil per britiske gallon</unitPattern>
+ </unit>
+ <unit type="digital-petabyte">
+ <displayName>petabyte</displayName>
+ <unitPattern count="one">{0} petabyte</unitPattern>
+ <unitPattern count="other">{0} petabyte</unitPattern>
+ </unit>
+ <unit type="digital-terabyte">
+ <displayName>terabyte</displayName>
+ <unitPattern count="one">{0} terabyte</unitPattern>
+ <unitPattern count="other">{0} terabyte</unitPattern>
+ </unit>
+ <unit type="digital-terabit">
+ <displayName>terabit</displayName>
+ <unitPattern count="one">{0} terabit</unitPattern>
+ <unitPattern count="other">{0} terabit</unitPattern>
+ </unit>
+ <unit type="digital-gigabyte">
+ <displayName>gigabyte</displayName>
+ <unitPattern count="one">{0} gigabyte</unitPattern>
+ <unitPattern count="other">{0} gigabyte</unitPattern>
+ </unit>
+ <unit type="digital-gigabit">
+ <displayName>gigabit</displayName>
+ <unitPattern count="one">{0} gigabit</unitPattern>
+ <unitPattern count="other">{0} gigabit</unitPattern>
+ </unit>
+ <unit type="digital-megabyte">
+ <displayName>megabyte</displayName>
+ <unitPattern count="one">{0} megabyte</unitPattern>
+ <unitPattern count="other">{0} megabyte</unitPattern>
+ </unit>
+ <unit type="digital-megabit">
+ <displayName>megabit</displayName>
+ <unitPattern count="one">{0} megabit</unitPattern>
+ <unitPattern count="other">{0} megabit</unitPattern>
+ </unit>
+ <unit type="digital-kilobyte">
+ <displayName>kilobyte</displayName>
+ <unitPattern count="one">{0} kilobyte</unitPattern>
+ <unitPattern count="other">{0} kilobyte</unitPattern>
+ </unit>
+ <unit type="digital-kilobit">
+ <displayName>kilobit</displayName>
+ <unitPattern count="one">{0} kilobit</unitPattern>
+ <unitPattern count="other">{0} kilobit</unitPattern>
+ </unit>
+ <unit type="digital-byte">
+ <displayName>byte</displayName>
+ <unitPattern count="one">{0} byte</unitPattern>
+ <unitPattern count="other">{0} byte</unitPattern>
+ </unit>
+ <unit type="digital-bit">
+ <displayName>bit</displayName>
+ <unitPattern count="one">{0} bit</unitPattern>
+ <unitPattern count="other">{0} bit</unitPattern>
+ </unit>
+ <unit type="duration-century">
+ <displayName>århundrer</displayName>
+ <unitPattern count="one">{0} århundre</unitPattern>
+ <unitPattern count="other">{0} århundrer</unitPattern>
+ </unit>
+ <unit type="duration-decade">
+ <displayName>tiår</displayName>
+ <unitPattern count="one">{0} tiår</unitPattern>
+ <unitPattern count="other">{0} tiår</unitPattern>
+ </unit>
+ <unit type="duration-year">
+ <gender>neuter</gender>
+ <displayName>år</displayName>
+ <unitPattern count="one">{0} år</unitPattern>
+ <unitPattern count="other">{0} år</unitPattern>
+ <perUnitPattern>{0} per år</perUnitPattern>
+ </unit>
+ <unit type="duration-month">
+ <gender>masculine</gender>
+ <displayName>måneder</displayName>
+ <unitPattern count="one">{0} måned</unitPattern>
+ <unitPattern count="other">{0} måneder</unitPattern>
+ <perUnitPattern>{0} per måned</perUnitPattern>
+ </unit>
+ <unit type="duration-week">
+ <gender>masculine</gender>
+ <displayName>uker</displayName>
+ <unitPattern count="one">{0} uke</unitPattern>
+ <unitPattern count="other">{0} uker</unitPattern>
+ <perUnitPattern>{0} per uke</perUnitPattern>
+ </unit>
+ <unit type="duration-day">
+ <gender>neuter</gender>
+ <displayName>døgn</displayName>
+ <unitPattern count="one">{0} døgn</unitPattern>
+ <unitPattern count="other">{0} døgn</unitPattern>
+ <perUnitPattern>{0} per døgn</perUnitPattern>
+ </unit>
+ <unit type="duration-hour">
+ <gender>masculine</gender>
+ <displayName>timer</displayName>
+ <unitPattern count="one">{0} time</unitPattern>
+ <unitPattern count="other">{0} timer</unitPattern>
+ <perUnitPattern>{0} per time</perUnitPattern>
+ </unit>
+ <unit type="duration-minute">
+ <gender>neuter</gender>
+ <displayName>minutter</displayName>
+ <unitPattern count="one">{0} minutt</unitPattern>
+ <unitPattern count="other">{0} minutter</unitPattern>
+ <perUnitPattern>{0} per minutt</perUnitPattern>
+ </unit>
+ <unit type="duration-second">
+ <gender>neuter</gender>
+ <displayName>sekunder</displayName>
+ <unitPattern count="one">{0} sekund</unitPattern>
+ <unitPattern count="other">{0} sekunder</unitPattern>
+ <perUnitPattern>{0} per sekund</perUnitPattern>
+ </unit>
+ <unit type="duration-millisecond">
+ <displayName>millisekunder</displayName>
+ <unitPattern count="one">{0} millisekund</unitPattern>
+ <unitPattern count="other">{0} millisekunder</unitPattern>
+ </unit>
+ <unit type="duration-microsecond">
+ <displayName>mikrosekunder</displayName>
+ <unitPattern count="one">{0} mikrosekund</unitPattern>
+ <unitPattern count="other">{0} mikrosekunder</unitPattern>
+ </unit>
+ <unit type="duration-nanosecond">
+ <displayName>nanosekunder</displayName>
+ <unitPattern count="one">{0} nanosekund</unitPattern>
+ <unitPattern count="other">{0} nanosekunder</unitPattern>
+ </unit>
+ <unit type="electric-ampere">
+ <displayName>ampere</displayName>
+ <unitPattern count="one">{0} ampere</unitPattern>
+ <unitPattern count="other">{0} ampere</unitPattern>
+ </unit>
+ <unit type="electric-milliampere">
+ <displayName>milliampere</displayName>
+ <unitPattern count="one">{0} milliampere</unitPattern>
+ <unitPattern count="other">{0} milliampere</unitPattern>
+ </unit>
+ <unit type="electric-ohm">
+ <displayName>ohm</displayName>
+ <unitPattern count="one">{0} ohm</unitPattern>
+ <unitPattern count="other">{0} ohm</unitPattern>
+ </unit>
+ <unit type="electric-volt">
+ <displayName>volt</displayName>
+ <unitPattern count="one">{0} volt</unitPattern>
+ <unitPattern count="other">{0} volt</unitPattern>
+ </unit>
+ <unit type="energy-kilocalorie">
+ <gender>masculine</gender>
+ <displayName>kilokalorier</displayName>
+ <unitPattern count="one">{0} kilokalori</unitPattern>
+ <unitPattern count="other">{0} kilokalorier</unitPattern>
+ </unit>
+ <unit type="energy-calorie">
+ <displayName>kalorier</displayName>
+ <unitPattern count="one">{0} kalori</unitPattern>
+ <unitPattern count="other">{0} kalorier</unitPattern>
+ </unit>
+ <unit type="energy-foodcalorie">
+ <gender>masculine</gender>
+ <displayName>kalorier</displayName>
+ <unitPattern count="one">{0} kalori</unitPattern>
+ <unitPattern count="other">{0} kalorier</unitPattern>
+ </unit>
+ <unit type="energy-kilojoule">
+ <displayName>kilojoule</displayName>
+ <unitPattern count="one">{0} kilojoule</unitPattern>
+ <unitPattern count="other">{0} kilojoule</unitPattern>
+ </unit>
+ <unit type="energy-joule">
+ <displayName>joule</displayName>
+ <unitPattern count="one">{0} joule</unitPattern>
+ <unitPattern count="other">{0} joule</unitPattern>
+ </unit>
+ <unit type="energy-kilowatt-hour">
+ <displayName>kilowattimer</displayName>
+ <unitPattern count="one">{0} kilowattime</unitPattern>
+ <unitPattern count="other">{0} kilowattimer</unitPattern>
+ </unit>
+ <unit type="energy-electronvolt">
+ <displayName>elektronvolt</displayName>
+ <unitPattern count="one">{0} elektronvolt</unitPattern>
+ <unitPattern count="other">{0} elektronvolt</unitPattern>
+ </unit>
+ <unit type="energy-british-thermal-unit">
+ <displayName>British thermal unit</displayName>
+ <unitPattern count="one">↑↑↑</unitPattern>
+ <unitPattern count="other">↑↑↑</unitPattern>
+ </unit>
+ <unit type="energy-therm-us">
+ <displayName>therm</displayName>
+ <unitPattern count="one">{0} therm</unitPattern>
+ <unitPattern count="other">{0} therm</unitPattern>
+ </unit>
+ <unit type="force-pound-force">
+ <displayName>poundforce</displayName>
+ <unitPattern count="one">{0} poundforce</unitPattern>
+ <unitPattern count="other">{0} poundforce</unitPattern>
+ </unit>
+ <unit type="force-newton">
+ <displayName>newton</displayName>
+ <unitPattern count="one">{0} newton</unitPattern>
+ <unitPattern count="other">{0} newton</unitPattern>
+ </unit>
+ <unit type="frequency-gigahertz">
+ <displayName>gigahertz</displayName>
+ <unitPattern count="one">{0} gigahertz</unitPattern>
+ <unitPattern count="other">{0} gigahertz</unitPattern>
+ </unit>
+ <unit type="frequency-megahertz">
+ <displayName>megahertz</displayName>
+ <unitPattern count="one">{0} megahertz</unitPattern>
+ <unitPattern count="other">{0} megahertz</unitPattern>
+ </unit>
+ <unit type="frequency-kilohertz">
+ <displayName>kilohertz</displayName>
+ <unitPattern count="one">{0} kilohertz</unitPattern>
+ <unitPattern count="other">{0} kilohertz</unitPattern>
+ </unit>
+ <unit type="frequency-hertz">
+ <displayName>hertz</displayName>
+ <unitPattern count="one">{0} hertz</unitPattern>
+ <unitPattern count="other">{0} hertz</unitPattern>
+ </unit>
+ <unit type="graphics-em">
+ <displayName>gefirt</displayName>
+ <unitPattern count="one">{0} gefirt</unitPattern>
+ <unitPattern count="other">{0} gefirt</unitPattern>
+ </unit>
+ <unit type="graphics-pixel">
+ <displayName>piksler</displayName>
+ <unitPattern count="one">{0} piksel</unitPattern>
+ <unitPattern count="other">{0} piksler</unitPattern>
+ </unit>
+ <unit type="graphics-megapixel">
+ <displayName>megapiksler</displayName>
+ <unitPattern count="one">{0} megapiksel</unitPattern>
+ <unitPattern count="other">{0} megapiksler</unitPattern>
+ </unit>
+ <unit type="graphics-pixel-per-centimeter">
+ <displayName>piksler per centimeter</displayName>
+ <unitPattern count="one">{0} piksel per centimeter</unitPattern>
+ <unitPattern count="other">{0} piksler per centimeter</unitPattern>
+ </unit>
+ <unit type="graphics-pixel-per-inch">
+ <displayName>piksler per tomme</displayName>
+ <unitPattern count="one">{0} piksel per tomme</unitPattern>
+ <unitPattern count="other">{0} piksler per tomme</unitPattern>
+ </unit>
+ <unit type="graphics-dot-per-centimeter">
+ <displayName>punkter per centimeter</displayName>
+ <unitPattern count="one">{0} punkt per centimeter</unitPattern>
+ <unitPattern count="other">{0} punkter per centimeter</unitPattern>
+ </unit>
+ <unit type="graphics-dot-per-inch">
+ <displayName>punkter per tomme</displayName>
+ <unitPattern count="one">{0} punkt per tomme</unitPattern>
+ <unitPattern count="other">{0} punkter per tomme</unitPattern>
+ </unit>
+ <unit type="graphics-dot">
+ <displayName>punkt</displayName>
+ <unitPattern count="one">{0} punkt</unitPattern>
+ <unitPattern count="other">{0} punkter</unitPattern>
+ </unit>
+ <unit type="length-earth-radius">
+ <displayName>jordradius</displayName>
+ <unitPattern count="one">{0} jordradius</unitPattern>
+ <unitPattern count="other">{0} jordradier</unitPattern>
+ </unit>
+ <unit type="length-kilometer">
+ <gender>masculine</gender>
+ <displayName>kilometer</displayName>
+ <unitPattern count="one">{0} kilometer</unitPattern>
+ <unitPattern count="other">{0} kilometer</unitPattern>
+ <perUnitPattern>{0} per kilometer</perUnitPattern>
+ </unit>
+ <unit type="length-meter">
+ <gender>masculine</gender>
+ <displayName>meter</displayName>
+ <unitPattern count="one">{0} meter</unitPattern>
+ <unitPattern count="other">{0} meter</unitPattern>
+ <perUnitPattern>{0} per meter</perUnitPattern>
+ </unit>
+ <unit type="length-decimeter">
+ <gender>masculine</gender>
+ <displayName>desimeter</displayName>
+ <unitPattern count="one">{0} desimeter</unitPattern>
+ <unitPattern count="other">{0} desimeter</unitPattern>
+ </unit>
+ <unit type="length-centimeter">
+ <gender>masculine</gender>
+ <displayName>centimeter</displayName>
+ <unitPattern count="one">{0} centimeter</unitPattern>
+ <unitPattern count="other">{0} centimeter</unitPattern>
+ <perUnitPattern>{0} per centimeter</perUnitPattern>
+ </unit>
+ <unit type="length-millimeter">
+ <gender>masculine</gender>
+ <displayName>millimeter</displayName>
+ <unitPattern count="one">{0} millimeter</unitPattern>
+ <unitPattern count="other">{0} millimeter</unitPattern>
+ </unit>
+ <unit type="length-micrometer">
+ <displayName>mikrometer</displayName>
+ <unitPattern count="one">{0} mikrometer</unitPattern>
+ <unitPattern count="other">{0} mikrometer</unitPattern>
+ </unit>
+ <unit type="length-nanometer">
+ <displayName>nanometer</displayName>
+ <unitPattern count="one">{0} nanometer</unitPattern>
+ <unitPattern count="other">{0} nanometer</unitPattern>
+ </unit>
+ <unit type="length-picometer">
+ <gender>masculine</gender>
+ <displayName>pikometer</displayName>
+ <unitPattern count="one">{0} pikometer</unitPattern>
+ <unitPattern count="other">{0} pikometer</unitPattern>
+ </unit>
+ <unit type="length-mile">
+ <gender>masculine</gender>
+ <displayName>engelske mil</displayName>
+ <unitPattern count="one">{0} engelsk mil</unitPattern>
+ <unitPattern count="other">{0} engelske mil</unitPattern>
+ </unit>
+ <unit type="length-yard">
+ <gender>masculine</gender>
+ <displayName>yard</displayName>
+ <unitPattern count="one">{0} yard</unitPattern>
+ <unitPattern count="other">{0} yard</unitPattern>
+ </unit>
+ <unit type="length-foot">
+ <gender>masculine</gender>
+ <displayName>fot</displayName>
+ <unitPattern count="one">{0} fot</unitPattern>
+ <unitPattern count="other">{0} fot</unitPattern>
+ <perUnitPattern>{0} per fot</perUnitPattern>
+ </unit>
+ <unit type="length-inch">
+ <gender>masculine</gender>
+ <displayName>tommer</displayName>
+ <unitPattern count="one">{0} tomme</unitPattern>
+ <unitPattern count="other">{0} tommer</unitPattern>
+ <perUnitPattern>{0} per tomme</perUnitPattern>
+ </unit>
+ <unit type="length-parsec">
+ <gender>masculine</gender>
+ <displayName>parsec</displayName>
+ <unitPattern count="one">{0} parsec</unitPattern>
+ <unitPattern count="other">{0} parsec</unitPattern>
+ </unit>
+ <unit type="length-light-year">
+ <displayName>lysår</displayName>
+ <unitPattern count="one">{0} lysår</unitPattern>
+ <unitPattern count="other">{0} lysår</unitPattern>
+ </unit>
+ <unit type="length-astronomical-unit">
+ <displayName>astronomiske enheter</displayName>
+ <unitPattern count="one">{0} astronomisk enhet</unitPattern>
+ <unitPattern count="other">{0} astronomiske enheter</unitPattern>
+ </unit>
+ <unit type="length-furlong">
+ <displayName>furlong</displayName>
+ <unitPattern count="one">{0} furlong</unitPattern>
+ <unitPattern count="other">{0} furlong</unitPattern>
+ </unit>
+ <unit type="length-fathom">
+ <displayName>favner</displayName>
+ <unitPattern count="one">{0} favn</unitPattern>
+ <unitPattern count="other">{0} favner</unitPattern>
+ </unit>
+ <unit type="length-nautical-mile">
+ <displayName>nautiske mil</displayName>
+ <unitPattern count="one">{0} nautisk mil</unitPattern>
+ <unitPattern count="other">{0} nautiske mil</unitPattern>
+ </unit>
+ <unit type="length-mile-scandinavian">
+ <gender>masculine</gender>
+ <displayName>mil</displayName>
+ <unitPattern count="one">{0} mil</unitPattern>
+ <unitPattern count="other">{0} mil</unitPattern>
+ </unit>
+ <unit type="length-point">
+ <displayName>typografiske punkter</displayName>
+ <unitPattern count="one">{0} typografisk punkt</unitPattern>
+ <unitPattern count="other">{0} typografiske punkter</unitPattern>
+ </unit>
+ <unit type="length-solar-radius">
+ <gender>masculine</gender>
+ <displayName>solradier</displayName>
+ <unitPattern count="one">{0} solradius</unitPattern>
+ <unitPattern count="other">{0} solradier</unitPattern>
+ </unit>
+ <unit type="light-lux">
+ <displayName>lux</displayName>
+ <unitPattern count="one">{0} lux</unitPattern>
+ <unitPattern count="other">{0} lux</unitPattern>
+ </unit>
+ <unit type="light-candela">
+ <displayName>candela</displayName>
+ <unitPattern count="one">{0} candela</unitPattern>
+ <unitPattern count="other">{0} candela</unitPattern>
+ </unit>
+ <unit type="light-lumen">
+ <displayName>lumen</displayName>
+ <unitPattern count="one">{0} lumen</unitPattern>
+ <unitPattern count="other">{0} lumen</unitPattern>
+ </unit>
+ <unit type="light-solar-luminosity">
+ <gender>masculine</gender>
+ <displayName>solluminositet</displayName>
+ <unitPattern count="one">↑↑↑</unitPattern>
+ <unitPattern count="other">↑↑↑</unitPattern>
+ </unit>
+ <unit type="mass-metric-ton">
+ <displayName>tonn</displayName>
+ <unitPattern count="one">{0} tonn</unitPattern>
+ <unitPattern count="other">{0} tonn</unitPattern>
+ </unit>
+ <unit type="mass-kilogram">
+ <gender>neuter</gender>
+ <displayName>kilogram</displayName>
+ <unitPattern count="one">{0} kilogram</unitPattern>
+ <unitPattern count="other">{0} kilogram</unitPattern>
+ <perUnitPattern>{0} per kilogram</perUnitPattern>
+ </unit>
+ <unit type="mass-gram">
+ <gender>neuter</gender>
+ <displayName>gram</displayName>
+ <unitPattern count="one">{0} gram</unitPattern>
+ <unitPattern count="other">{0} gram</unitPattern>
+ <perUnitPattern>{0} per gram</perUnitPattern>
+ </unit>
+ <unit type="mass-milligram">
+ <gender>neuter</gender>
+ <displayName>milligram</displayName>
+ <unitPattern count="one">{0} milligram</unitPattern>
+ <unitPattern count="other">{0} milligram</unitPattern>
+ </unit>
+ <unit type="mass-microgram">
+ <displayName>mikrogram</displayName>
+ <unitPattern count="one">{0} mikrogram</unitPattern>
+ <unitPattern count="other">{0} mikrogram</unitPattern>
+ </unit>
+ <unit type="mass-ton">
+ <displayName>amerikanske tonn</displayName>
+ <unitPattern count="one">{0} amerikansk tonn</unitPattern>
+ <unitPattern count="other">{0} amerikanske tonn</unitPattern>
+ </unit>
+ <unit type="mass-stone">
+ <displayName>stone</displayName>
+ <unitPattern count="one">{0} stone</unitPattern>
+ <unitPattern count="other">{0} stone</unitPattern>
+ </unit>
+ <unit type="mass-pound">
+ <gender>neuter</gender>
+ <displayName>pund</displayName>
+ <unitPattern count="one">{0} pund</unitPattern>
+ <unitPattern count="other">{0} pund</unitPattern>
+ <perUnitPattern>{0} per pund</perUnitPattern>
+ </unit>
+ <unit type="mass-ounce">
+ <gender>masculine</gender>
+ <displayName>unser</displayName>
+ <unitPattern count="one">{0} unse</unitPattern>
+ <unitPattern count="other">{0} unser</unitPattern>
+ <perUnitPattern>{0} per unse</perUnitPattern>
+ </unit>
+ <unit type="mass-ounce-troy">
+ <displayName>troy ounce</displayName>
+ <unitPattern count="one">{0} troy ounce</unitPattern>
+ <unitPattern count="other">{0} troy ounce</unitPattern>
+ </unit>
+ <unit type="mass-carat">
+ <displayName>karat</displayName>
+ <unitPattern count="one">{0} karat</unitPattern>
+ <unitPattern count="other">{0} karat</unitPattern>
+ </unit>
+ <unit type="mass-dalton">
+ <gender>masculine</gender>
+ <displayName>dalton</displayName>
+ <unitPattern count="one">{0} dalton</unitPattern>
+ <unitPattern count="other">{0} dalton</unitPattern>
+ </unit>
+ <unit type="mass-earth-mass">
+ <gender>masculine</gender>
+ <displayName>jordmasser</displayName>
+ <unitPattern count="one">{0} jordmasse</unitPattern>
+ <unitPattern count="other">{0} jordmasser</unitPattern>
+ </unit>
+ <unit type="mass-solar-mass">
+ <gender>masculine</gender>
+ <displayName>solmasser</displayName>
+ <unitPattern count="one">{0} solmasse</unitPattern>
+ <unitPattern count="other">{0} solmasser</unitPattern>
+ </unit>
+ <unit type="mass-grain">
+ <gender>neuter</gender>
+ <displayName>↑↑↑</displayName>
+ <unitPattern count="one">{0} grain</unitPattern>
+ <unitPattern count="other">{0} grain</unitPattern>
+ </unit>
+ <unit type="power-gigawatt">
+ <displayName>gigawatt</displayName>
+ <unitPattern count="one">{0} gigawatt</unitPattern>
+ <unitPattern count="other">{0} gigawatt</unitPattern>
+ </unit>
+ <unit type="power-megawatt">
+ <displayName>megawatt</displayName>
+ <unitPattern count="one">{0} megawatt</unitPattern>
+ <unitPattern count="other">{0} megawatt</unitPattern>
+ </unit>
+ <unit type="power-kilowatt">
+ <displayName>kilowatt</displayName>
+ <unitPattern count="one">{0} kilowatt</unitPattern>
+ <unitPattern count="other">{0} kilowatt</unitPattern>
+ </unit>
+ <unit type="power-watt">
+ <displayName>watt</displayName>
+ <unitPattern count="one">{0} watt</unitPattern>
+ <unitPattern count="other">{0} watt</unitPattern>
+ </unit>
+ <unit type="power-milliwatt">
+ <displayName>milliwatt</displayName>
+ <unitPattern count="one">{0} milliwatt</unitPattern>
+ <unitPattern count="other">{0} milliwatt</unitPattern>
+ </unit>
+ <unit type="power-horsepower">
+ <displayName>hestekrefter</displayName>
+ <unitPattern count="one">{0} hestekraft</unitPattern>
+ <unitPattern count="other">{0} hestekrefter</unitPattern>
+ </unit>
+ <unit type="pressure-millimeter-ofhg">
+ <displayName>millimeter kvikksølv</displayName>
+ <unitPattern count="one">{0} millimeter kvikksølv</unitPattern>
+ <unitPattern count="other">{0} millimeter kvikksølv</unitPattern>
+ </unit>
+ <unit type="pressure-pound-force-per-square-inch">
+ <displayName>pund per kvadrattomme</displayName>
+ <unitPattern count="one">{0} pund per kvadrattomme</unitPattern>
+ <unitPattern count="other">{0} pund per kvadrattomme</unitPattern>
+ </unit>
+ <unit type="pressure-inch-ofhg">
+ <displayName>tommer kvikksølv</displayName>
+ <unitPattern count="one">{0} tomme kvikksølv</unitPattern>
+ <unitPattern count="other">{0} tommer kvikksølv</unitPattern>
+ </unit>
+ <unit type="pressure-bar">
+ <displayName>↑↑↑</displayName>
+ <unitPattern count="one">↑↑↑</unitPattern>
+ <unitPattern count="other">↑↑↑</unitPattern>
+ </unit>
+ <unit type="pressure-millibar">
+ <displayName>millibar</displayName>
+ <unitPattern count="one">{0} millibar</unitPattern>
+ <unitPattern count="other">{0} millibar</unitPattern>
+ </unit>
+ <unit type="pressure-atmosphere">
+ <displayName>atmosfærer</displayName>
+ <unitPattern count="one">{0} atmosfære</unitPattern>
+ <unitPattern count="other">{0} atmosfærer</unitPattern>
+ </unit>
+ <unit type="pressure-pascal">
+ <displayName>pascal</displayName>
+ <unitPattern count="one">{0} pascal</unitPattern>
+ <unitPattern count="other">{0} pascal</unitPattern>
+ </unit>
+ <unit type="pressure-hectopascal">
+ <displayName>hektopascal</displayName>
+ <unitPattern count="one">{0} hektopascal</unitPattern>
+ <unitPattern count="other">{0} hektopascal</unitPattern>
+ </unit>
+ <unit type="pressure-kilopascal">
+ <gender>masculine</gender>
+ <displayName>kilopascal</displayName>
+ <unitPattern count="one">{0} kilopascal</unitPattern>
+ <unitPattern count="other">{0} kilopascal</unitPattern>
+ </unit>
+ <unit type="pressure-megapascal">
+ <displayName>megapascal</displayName>
+ <unitPattern count="one">{0} megapascal</unitPattern>
+ <unitPattern count="other">{0} megapascal</unitPattern>
+ </unit>
+ <unit type="speed-kilometer-per-hour">
+ <gender>masculine</gender>
+ <displayName>kilometer per time</displayName>
+ <unitPattern count="one">{0} kilometer per time</unitPattern>
+ <unitPattern count="other">{0} kilometer per time</unitPattern>
+ </unit>
+ <unit type="speed-meter-per-second">
+ <gender>masculine</gender>
+ <displayName>meter per sekund</displayName>
+ <unitPattern count="one">{0} meter per sekund</unitPattern>
+ <unitPattern count="other">{0} meter per sekund</unitPattern>
+ </unit>
+ <unit type="speed-mile-per-hour">
+ <gender>masculine</gender>
+ <displayName>engelske mil per time</displayName>
+ <unitPattern count="one">{0} engelsk mil per time</unitPattern>
+ <unitPattern count="other">{0} engelske mil per time</unitPattern>
+ </unit>
+ <unit type="speed-knot">
+ <displayName>knop</displayName>
+ <unitPattern count="one">{0} knop</unitPattern>
+ <unitPattern count="other">{0} knop</unitPattern>
+ </unit>
+ <unit type="temperature-generic">
+ <gender>masculine</gender>
+ <displayName>grader</displayName>
+ <unitPattern count="one">{0} grad</unitPattern>
+ <unitPattern count="other">{0} grader</unitPattern>
+ </unit>
+ <unit type="temperature-celsius">
+ <gender>masculine</gender>
+ <displayName>grader celsius</displayName>
+ <unitPattern count="one">{0} grad celsius</unitPattern>
+ <unitPattern count="other">{0} grader celsius</unitPattern>
+ </unit>
+ <unit type="temperature-fahrenheit">
+ <gender>masculine</gender>
+ <displayName>grader fahrenheit</displayName>
+ <unitPattern count="one">{0} grad fahrenheit</unitPattern>
+ <unitPattern count="other">{0} grader fahrenheit</unitPattern>
+ </unit>
+ <unit type="temperature-kelvin">
+ <gender>masculine</gender>
+ <displayName>kelvin</displayName>
+ <unitPattern count="one">{0} kelvin</unitPattern>
+ <unitPattern count="other">{0} kelvin</unitPattern>
+ </unit>
+ <unit type="torque-pound-force-foot">
+ <displayName>pound-foot</displayName>
+ <unitPattern count="one">{0} pound-foot</unitPattern>
+ <unitPattern count="other">{0} pound-foot</unitPattern>
+ </unit>
+ <unit type="torque-newton-meter">
+ <displayName>newtonmeter</displayName>
+ <unitPattern count="one">{0} Nm</unitPattern>
+ <unitPattern count="other">{0} Nm</unitPattern>
+ </unit>
+ <unit type="volume-cubic-kilometer">
+ <gender>masculine</gender>
+ <displayName>kubikkilometer</displayName>
+ <unitPattern count="one">{0} kubikkilometer</unitPattern>
+ <unitPattern count="other">{0} kubikkilometer</unitPattern>
+ </unit>
+ <unit type="volume-cubic-meter">
+ <gender>masculine</gender>
+ <displayName>kubikkmeter</displayName>
+ <unitPattern count="one">{0} kubikkmeter</unitPattern>
+ <unitPattern count="other">{0} kubikkmeter</unitPattern>
+ <perUnitPattern>{0} per kubikkmeter</perUnitPattern>
+ </unit>
+ <unit type="volume-cubic-centimeter">
+ <gender>masculine</gender>
+ <displayName>kubikkcentimeter</displayName>
+ <unitPattern count="one">{0} kubikkcentimeter</unitPattern>
+ <unitPattern count="other">{0} kubikkcentimeter</unitPattern>
+ <perUnitPattern>{0} per kubikkcentimeter</perUnitPattern>
+ </unit>
+ <unit type="volume-cubic-mile">
+ <gender>masculine</gender>
+ <displayName>engelske kubikkmil</displayName>
+ <unitPattern count="one">{0} engelsk kubikkmil</unitPattern>
+ <unitPattern count="other">{0} engelske kubikkmil</unitPattern>
+ </unit>
+ <unit type="volume-cubic-yard">
+ <displayName>kubikkyard</displayName>
+ <unitPattern count="one">{0} kubikkyard</unitPattern>
+ <unitPattern count="other">{0} kubikkyard</unitPattern>
+ </unit>
+ <unit type="volume-cubic-foot">
+ <gender>masculine</gender>
+ <displayName>kubikkfot</displayName>
+ <unitPattern count="one">{0} kubikkfot</unitPattern>
+ <unitPattern count="other">{0} kubikkfot</unitPattern>
+ </unit>
+ <unit type="volume-cubic-inch">
+ <gender>masculine</gender>
+ <displayName>kubikktommer</displayName>
+ <unitPattern count="one">{0} kubikktomme</unitPattern>
+ <unitPattern count="other">{0} kubikktommer</unitPattern>
+ </unit>
+ <unit type="volume-megaliter">
+ <displayName>megaliter</displayName>
+ <unitPattern count="one">{0} megaliter</unitPattern>
+ <unitPattern count="other">{0} megaliter</unitPattern>
+ </unit>
+ <unit type="volume-hectoliter">
+ <gender>masculine</gender>
+ <displayName>hektoliter</displayName>
+ <unitPattern count="one">{0} hektoliter</unitPattern>
+ <unitPattern count="other">{0} hektoliter</unitPattern>
+ </unit>
+ <unit type="volume-liter">
+ <gender>masculine</gender>
+ <displayName>liter</displayName>
+ <unitPattern count="one">{0} liter</unitPattern>
+ <unitPattern count="other">{0} liter</unitPattern>
+ <perUnitPattern>{0} per liter</perUnitPattern>
+ </unit>
+ <unit type="volume-deciliter">
+ <gender>masculine</gender>
+ <displayName>desiliter</displayName>
+ <unitPattern count="one">{0} desiliter</unitPattern>
+ <unitPattern count="other">{0} desiliter</unitPattern>
+ </unit>
+ <unit type="volume-centiliter">
+ <gender>masculine</gender>
+ <displayName>centiliter</displayName>
+ <unitPattern count="one">{0} centiliter</unitPattern>
+ <unitPattern count="other">{0} centiliter</unitPattern>
+ </unit>
+ <unit type="volume-milliliter">
+ <gender>masculine</gender>
+ <displayName>milliliter</displayName>
+ <unitPattern count="one">{0} milliliter</unitPattern>
+ <unitPattern count="other">{0} milliliter</unitPattern>
+ </unit>
+ <unit type="volume-pint-metric">
+ <displayName>metriske pint</displayName>
+ <unitPattern count="one">{0} metrisk pint</unitPattern>
+ <unitPattern count="other">{0} metriske pint</unitPattern>
+ </unit>
+ <unit type="volume-cup-metric">
+ <gender>masculine</gender>
+ <displayName>metriske kopper</displayName>
+ <unitPattern count="one">{0} metrisk kopp</unitPattern>
+ <unitPattern count="other">{0} metriske kopper</unitPattern>
+ </unit>
+ <unit type="volume-acre-foot">
+ <displayName>acre-fot</displayName>
+ <unitPattern count="one">{0} acre-fot</unitPattern>
+ <unitPattern count="other">{0} acre-fot</unitPattern>
+ </unit>
+ <unit type="volume-bushel">
+ <displayName>bushel</displayName>
+ <unitPattern count="one">{0} bushel</unitPattern>
+ <unitPattern count="other">{0} bushels</unitPattern>
+ </unit>
+ <unit type="volume-gallon">
+ <gender>masculine</gender>
+ <displayName>gallon</displayName>
+ <unitPattern count="one">{0} gallon</unitPattern>
+ <unitPattern count="other">{0} gallon</unitPattern>
+ <perUnitPattern>{0} per gallon</perUnitPattern>
+ </unit>
+ <unit type="volume-gallon-imperial">
+ <gender>masculine</gender>
+ <displayName>britiske gallon</displayName>
+ <unitPattern count="one">{0} britisk gallon</unitPattern>
+ <unitPattern count="other">{0} britiske gallon</unitPattern>
+ <perUnitPattern>{0} per britisk gallon</perUnitPattern>
+ </unit>
+ <unit type="volume-quart">
+ <gender>masculine</gender>
+ <displayName>quart</displayName>
+ <unitPattern count="one">{0} quart</unitPattern>
+ <unitPattern count="other">{0} quart</unitPattern>
+ </unit>
+ <unit type="volume-pint">
+ <gender>masculine</gender>
+ <displayName>pint</displayName>
+ <unitPattern count="one">{0} pint</unitPattern>
+ <unitPattern count="other">{0} pint</unitPattern>
+ </unit>
+ <unit type="volume-cup">
+ <gender>masculine</gender>
+ <displayName>kopper</displayName>
+ <unitPattern count="one">{0} kopp</unitPattern>
+ <unitPattern count="other">{0} kopper</unitPattern>
+ </unit>
+ <unit type="volume-fluid-ounce">
+ <gender>masculine</gender>
+ <displayName>væskeunser</displayName>
+ <unitPattern count="one">{0} væskeunse</unitPattern>
+ <unitPattern count="other">{0} væskeunser</unitPattern>
+ </unit>
+ <unit type="volume-fluid-ounce-imperial">
+ <gender>masculine</gender>
+ <displayName>britiske væskeunser</displayName>
+ <unitPattern count="one">{0} britisk væskeunse</unitPattern>
+ <unitPattern count="other">{0} britiske væskeunser</unitPattern>
+ </unit>
+ <unit type="volume-tablespoon">
+ <gender>masculine</gender>
+ <displayName>spiseskjeer</displayName>
+ <unitPattern count="one">{0} spiseskje</unitPattern>
+ <unitPattern count="other">{0} spiseskjeer</unitPattern>
+ </unit>
+ <unit type="volume-teaspoon">
+ <gender>masculine</gender>
+ <displayName>teskjeer</displayName>
+ <unitPattern count="one">{0} teskje</unitPattern>
+ <unitPattern count="other">{0} teskjeer</unitPattern>
+ </unit>
+ <unit type="volume-barrel">
+ <gender>neuter</gender>
+ <displayName>fat</displayName>
+ <unitPattern count="one">{0} fat</unitPattern>
+ <unitPattern count="other">{0} fat</unitPattern>
+ </unit>
+ <unit type="volume-dessert-spoon">
+ <gender>masculine</gender>
+ <displayName>barneskje</displayName>
+ <unitPattern count="one">{0} barneskje</unitPattern>
+ <unitPattern count="other">{0} barneskjeer</unitPattern>
+ </unit>
+ <unit type="volume-dessert-spoon-imperial">
+ <gender>masculine</gender>
+ <displayName>britisk barneskje</displayName>
+ <unitPattern count="one">{0} britisk barneskje</unitPattern>
+ <unitPattern count="other">{0} britiske barneskjeer</unitPattern>
+ </unit>
+ <unit type="volume-drop">
+ <gender>masculine</gender>
+ <displayName>dråpe</displayName>
+ <unitPattern count="one">{0} dråpe</unitPattern>
+ <unitPattern count="other">{0} dråper</unitPattern>
+ </unit>
+ <unit type="volume-dram">
+ <gender>masculine</gender>
+ <displayName>dram</displayName>
+ <unitPattern count="one">{0} dram</unitPattern>
+ <unitPattern count="other">{0} dram</unitPattern>
+ </unit>
+ <unit type="volume-jigger">
+ <gender>masculine</gender>
+ <displayName>shot</displayName>
+ <unitPattern count="one">{0} shot</unitPattern>
+ <unitPattern count="other">{0} shot</unitPattern>
+ </unit>
+ <unit type="volume-pinch">
+ <gender>masculine</gender>
+ <displayName>klype</displayName>
+ <unitPattern count="one">{0} klype</unitPattern>
+ <unitPattern count="other">{0} klyper</unitPattern>
+ </unit>
+ <unit type="volume-quart-imperial">
+ <gender>masculine</gender>
+ <displayName>britisk quart</displayName>
+ <unitPattern count="one">{0} britisk quart</unitPattern>
+ <unitPattern count="other">{0} britiske quart</unitPattern>
+ </unit>
+ <coordinateUnit>
+ <displayName>himmelretning</displayName>
+ <coordinateUnitPattern type="east">{0} øst</coordinateUnitPattern>
+ <coordinateUnitPattern type="north">{0} nord</coordinateUnitPattern>
+ <coordinateUnitPattern type="south">{0} sør</coordinateUnitPattern>
+ <coordinateUnitPattern type="west">{0} vest</coordinateUnitPattern>
+ </coordinateUnit>
+ </unitLength>
+ <unitLength type="short">
+ <compoundUnit type="10p-1">
+ <unitPrefixPattern>d{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p-2">
+ <unitPrefixPattern>c{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p-3">
+ <unitPrefixPattern>m{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p-6">
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p-9">
+ <unitPrefixPattern>n{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p-12">
+ <unitPrefixPattern>p{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p-15">
+ <unitPrefixPattern>f{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p-18">
+ <unitPrefixPattern>a{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p-21">
+ <unitPrefixPattern>z{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p-24">
+ <unitPrefixPattern>y{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p1">
+ <unitPrefixPattern>da{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p2">
+ <unitPrefixPattern>h{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p3">
+ <unitPrefixPattern>k{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p6">
+ <unitPrefixPattern>M{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p9">
+ <unitPrefixPattern>G{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p12">
+ <unitPrefixPattern>T{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p15">
+ <unitPrefixPattern>P{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p18">
+ <unitPrefixPattern>E{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p21">
+ <unitPrefixPattern>Z{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p24">
+ <unitPrefixPattern>Y{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="1024p1">
+ <unitPrefixPattern>Ki{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="1024p2">
+ <unitPrefixPattern>↑↑↑</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="1024p3">
+ <unitPrefixPattern>↑↑↑</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="1024p4">
+ <unitPrefixPattern>↑↑↑</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="1024p5">
+ <unitPrefixPattern>↑↑↑</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="1024p6">
+ <unitPrefixPattern>↑↑↑</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="1024p7">
+ <unitPrefixPattern>↑↑↑</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="1024p8">
+ <unitPrefixPattern>↑↑↑</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="per">
+ <compoundUnitPattern>{0}/{1}</compoundUnitPattern>
+ </compoundUnit>
+ <compoundUnit type="power2">
+ <compoundUnitPattern1>{0}²</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one">↑↑↑</compoundUnitPattern1>
+ <compoundUnitPattern1 count="other">↑↑↑</compoundUnitPattern1>
+ </compoundUnit>
+ <compoundUnit type="power3">
+ <compoundUnitPattern1>{0}³</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one">↑↑↑</compoundUnitPattern1>
+ <compoundUnitPattern1 count="other">↑↑↑</compoundUnitPattern1>
+ </compoundUnit>
+ <compoundUnit type="times">
+ <compoundUnitPattern>↑↑↑</compoundUnitPattern>
+ </compoundUnit>
+ <unit type="acceleration-g-force">
+ <displayName>g-kraft</displayName>
+ <unitPattern count="one">{0} G</unitPattern>
+ <unitPattern count="other">{0} G</unitPattern>
+ </unit>
+ <unit type="acceleration-meter-per-square-second">
+ <displayName>meter/s²</displayName>
+ <unitPattern count="one">{0} m/s²</unitPattern>
+ <unitPattern count="other">{0} m/s²</unitPattern>
+ </unit>
+ <unit type="angle-revolution">
+ <displayName>omdr.</displayName>
+ <unitPattern count="one">{0} omdr.</unitPattern>
+ <unitPattern count="other">{0} omdr.</unitPattern>
+ </unit>
+ <unit type="angle-radian">
+ <displayName>radianer</displayName>
+ <unitPattern count="one">{0} rad</unitPattern>
+ <unitPattern count="other">{0} rad</unitPattern>
+ </unit>
+ <unit type="angle-degree">
+ <displayName>grader</displayName>
+ <unitPattern count="one">{0}°</unitPattern>
+ <unitPattern count="other">{0}°</unitPattern>
+ </unit>
+ <unit type="angle-arc-minute">
+ <displayName>bueminutter</displayName>
+ <unitPattern count="one">{0}′</unitPattern>
+ <unitPattern count="other">{0}′</unitPattern>
+ </unit>
+ <unit type="angle-arc-second">
+ <displayName>buesek</displayName>
+ <unitPattern count="one">{0}″</unitPattern>
+ <unitPattern count="other">{0}″</unitPattern>
+ </unit>
+ <unit type="area-square-kilometer">
+ <displayName>km²</displayName>
+ <unitPattern count="one">{0} km²</unitPattern>
+ <unitPattern count="other">{0} km²</unitPattern>
+ <perUnitPattern>{0}/km²</perUnitPattern>
+ </unit>
+ <unit type="area-hectare">
+ <displayName>hektar</displayName>
+ <unitPattern count="one">{0} ha</unitPattern>
+ <unitPattern count="other">{0} ha</unitPattern>
+ </unit>
+ <unit type="area-square-meter">
+ <displayName>m²</displayName>
+ <unitPattern count="one">{0} m²</unitPattern>
+ <unitPattern count="other">{0} m²</unitPattern>
+ <perUnitPattern>{0}/m²</perUnitPattern>
+ </unit>
+ <unit type="area-square-centimeter">
+ <displayName>cm²</displayName>
+ <unitPattern count="one">{0} cm²</unitPattern>
+ <unitPattern count="other">{0} cm²</unitPattern>
+ <perUnitPattern>{0}/cm²</perUnitPattern>
+ </unit>
+ <unit type="area-square-mile">
+ <displayName>miles²</displayName>
+ <unitPattern count="one">{0} mile²</unitPattern>
+ <unitPattern count="other">{0} miles²</unitPattern>
+ <perUnitPattern>{0}/mile²</perUnitPattern>
+ </unit>
+ <unit type="area-acre">
+ <displayName>acre</displayName>
+ <unitPattern count="one">{0} ac</unitPattern>
+ <unitPattern count="other">{0} ac</unitPattern>
+ </unit>
+ <unit type="area-square-yard">
+ <displayName>yd²</displayName>
+ <unitPattern count="one">{0} yd²</unitPattern>
+ <unitPattern count="other">{0} yd²</unitPattern>
+ </unit>
+ <unit type="area-square-foot">
+ <displayName>kvadratfot</displayName>
+ <unitPattern count="one">{0} fot²</unitPattern>
+ <unitPattern count="other">{0} fot²</unitPattern>
+ </unit>
+ <unit type="area-square-inch">
+ <displayName>tommer²</displayName>
+ <unitPattern count="one">{0} tomme²</unitPattern>
+ <unitPattern count="other">{0} tommer²</unitPattern>
+ <perUnitPattern>{0}/tommer²</perUnitPattern>
+ </unit>
+ <unit type="area-dunam">
+ <displayName>↑↑↑</displayName>
+ <unitPattern count="one">↑↑↑</unitPattern>
+ <unitPattern count="other">↑↑↑</unitPattern>
+ </unit>
+ <unit type="concentr-karat">
+ <displayName>karat</displayName>
+ <unitPattern count="one">{0} kt</unitPattern>
+ <unitPattern count="other">{0} kt</unitPattern>
+ </unit>
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
+ <displayName>mg/dl</displayName>
+ <unitPattern count="one">{0} mg/dl</unitPattern>
+ <unitPattern count="other">{0} mg/dl</unitPattern>
+ </unit>
+ <unit type="concentr-millimole-per-liter">
+ <displayName>mmol/liter</displayName>
+ <unitPattern count="one">{0} mmol/l</unitPattern>
+ <unitPattern count="other">{0} mmol/l</unitPattern>
+ </unit>
+ <unit type="concentr-permillion">
+ <displayName>ppm</displayName>
+ <unitPattern count="one">{0} ppm</unitPattern>
+ <unitPattern count="other">{0} ppm</unitPattern>
+ </unit>
+ <unit type="concentr-percent">
+ <displayName>prosent</displayName>
+ <unitPattern count="one">{0} %</unitPattern>
+ <unitPattern count="other">{0} %</unitPattern>
+ </unit>
+ <unit type="concentr-permille">
+ <displayName>promille</displayName>
+ <unitPattern count="one">{0} ‰</unitPattern>
+ <unitPattern count="other">{0} ‰</unitPattern>
+ </unit>
+ <unit type="concentr-permyriad">
+ <displayName>promyriade</displayName>
+ <unitPattern count="one">{0} ‱</unitPattern>
+ <unitPattern count="other">{0} ‱</unitPattern>
+ </unit>
+ <unit type="concentr-mole">
+ <displayName>↑↑↑</displayName>
+ <unitPattern count="one">↑↑↑</unitPattern>
+ <unitPattern count="other">↑↑↑</unitPattern>
+ </unit>
+ <unit type="consumption-liter-per-kilometer">
+ <displayName>liter/km</displayName>
+ <unitPattern count="one">{0} l/km</unitPattern>
+ <unitPattern count="other">{0} l/km</unitPattern>
+ </unit>
+ <unit type="consumption-liter-per-100-kilometer">
+ <displayName>l/100 km</displayName>
+ <unitPattern count="one">{0} l/100 km</unitPattern>
+ <unitPattern count="other">{0} l/100 km</unitPattern>
+ </unit>
+ <unit type="consumption-mile-per-gallon">
+ <displayName>miles/gal</displayName>
+ <unitPattern count="one">{0} mpg</unitPattern>
+ <unitPattern count="other">{0} mpg</unitPattern>
+ </unit>
+ <unit type="consumption-mile-per-gallon-imperial">
+ <displayName>miles/brit. gal</displayName>
+ <unitPattern count="one">{0} mpg brit.</unitPattern>
+ <unitPattern count="other">{0} mpg brit.</unitPattern>
+ </unit>
+ <unit type="digital-petabyte">
+ <displayName>PB</displayName>
+ <unitPattern count="one">{0} PB</unitPattern>
+ <unitPattern count="other">{0} PB</unitPattern>
+ </unit>
+ <unit type="digital-terabyte">
+ <displayName>TB</displayName>
+ <unitPattern count="one">{0} TB</unitPattern>
+ <unitPattern count="other">{0} TB</unitPattern>
+ </unit>
+ <unit type="digital-terabit">
+ <displayName>Tbit</displayName>
+ <unitPattern count="one">{0} Tb</unitPattern>
+ <unitPattern count="other">{0} Tb</unitPattern>
+ </unit>
+ <unit type="digital-gigabyte">
+ <displayName>GB</displayName>
+ <unitPattern count="one">{0} GB</unitPattern>
+ <unitPattern count="other">{0} GB</unitPattern>
+ </unit>
+ <unit type="digital-gigabit">
+ <displayName>Gbit</displayName>
+ <unitPattern count="one">{0} Gb</unitPattern>
+ <unitPattern count="other">{0} Gb</unitPattern>
+ </unit>
+ <unit type="digital-megabyte">
+ <displayName>MB</displayName>
+ <unitPattern count="one">{0} MB</unitPattern>
+ <unitPattern count="other">{0} MB</unitPattern>
+ </unit>
+ <unit type="digital-megabit">
+ <displayName>Mbit</displayName>
+ <unitPattern count="one">{0} Mb</unitPattern>
+ <unitPattern count="other">{0} Mb</unitPattern>
+ </unit>
+ <unit type="digital-kilobyte">
+ <displayName>kB</displayName>
+ <unitPattern count="one">{0} kB</unitPattern>
+ <unitPattern count="other">{0} kB</unitPattern>
+ </unit>
+ <unit type="digital-kilobit">
+ <displayName>kbit</displayName>
+ <unitPattern count="one">{0} kb</unitPattern>
+ <unitPattern count="other">{0} kb</unitPattern>
+ </unit>
+ <unit type="digital-byte">
+ <displayName>byte</displayName>
+ <unitPattern count="one">{0} B</unitPattern>
+ <unitPattern count="other">{0} B</unitPattern>
+ </unit>
+ <unit type="digital-bit">
+ <displayName>bit</displayName>
+ <unitPattern count="one">{0} bit</unitPattern>
+ <unitPattern count="other">{0} bit</unitPattern>
+ </unit>
+ <unit type="duration-century">
+ <displayName>årh.</displayName>
+ <unitPattern count="one">{0} årh.</unitPattern>
+ <unitPattern count="other">{0} årh.</unitPattern>
+ </unit>
+ <unit type="duration-decade">
+ <displayName>tiår</displayName>
+ <unitPattern count="one">{0} tiår</unitPattern>
+ <unitPattern count="other">{0} tiår</unitPattern>
+ </unit>
+ <unit type="duration-year">
+ <displayName>år</displayName>
+ <unitPattern count="one">{0} år</unitPattern>
+ <unitPattern count="other">{0} år</unitPattern>
+ <perUnitPattern>{0}/år</perUnitPattern>
+ </unit>
+ <unit type="duration-month">
+ <displayName>måneder</displayName>
+ <unitPattern count="one">{0} md.</unitPattern>
+ <unitPattern count="other">{0} md.</unitPattern>
+ <perUnitPattern>{0}/md.</perUnitPattern>
+ </unit>
+ <unit type="duration-week">
+ <displayName>uker</displayName>
+ <unitPattern count="one">{0} u</unitPattern>
+ <unitPattern count="other">{0} u</unitPattern>
+ <perUnitPattern>{0}/u</perUnitPattern>
+ </unit>
+ <unit type="duration-day">
+ <displayName>døgn</displayName>
+ <unitPattern count="one">{0} d</unitPattern>
+ <unitPattern count="other">{0} d</unitPattern>
+ <perUnitPattern>{0}/d</perUnitPattern>
+ </unit>
+ <unit type="duration-hour">
+ <displayName>timer</displayName>
+ <unitPattern count="one">{0} t</unitPattern>
+ <unitPattern count="other">{0} t</unitPattern>
+ <perUnitPattern>{0}/t</perUnitPattern>
+ </unit>
+ <unit type="duration-minute">
+ <displayName>min</displayName>
+ <unitPattern count="one">{0} min</unitPattern>
+ <unitPattern count="other">{0} min</unitPattern>
+ <perUnitPattern>{0}/min</perUnitPattern>
+ </unit>
+ <unit type="duration-second">
+ <displayName>sek</displayName>
+ <unitPattern count="one">{0} sek</unitPattern>
+ <unitPattern count="other">{0} sek</unitPattern>
+ <perUnitPattern>{0}/s</perUnitPattern>
+ </unit>
+ <unit type="duration-millisecond">
+ <displayName>ms</displayName>
+ <unitPattern count="one">{0} ms</unitPattern>
+ <unitPattern count="other">{0} ms</unitPattern>
+ </unit>
+ <unit type="duration-microsecond">
+ <displayName>μs</displayName>
+ <unitPattern count="one">{0} μs</unitPattern>
+ <unitPattern count="other">{0} μs</unitPattern>
+ </unit>
+ <unit type="duration-nanosecond">
+ <displayName>ns</displayName>
+ <unitPattern count="one">{0} ns</unitPattern>
+ <unitPattern count="other">{0} ns</unitPattern>
+ </unit>
+ <unit type="electric-ampere">
+ <displayName>ampere</displayName>
+ <unitPattern count="one">{0} A</unitPattern>
+ <unitPattern count="other">{0} A</unitPattern>
+ </unit>
+ <unit type="electric-milliampere">
+ <displayName>milliampere</displayName>
+ <unitPattern count="one">{0} mA</unitPattern>
+ <unitPattern count="other">{0} mA</unitPattern>
+ </unit>
+ <unit type="electric-ohm">
+ <displayName>ohm</displayName>
+ <unitPattern count="one">{0} Ω</unitPattern>
+ <unitPattern count="other">{0} Ω</unitPattern>
+ </unit>
+ <unit type="electric-volt">
+ <displayName>volt</displayName>
+ <unitPattern count="one">{0} V</unitPattern>
+ <unitPattern count="other">{0} V</unitPattern>
+ </unit>
+ <unit type="energy-kilocalorie">
+ <displayName>kcal</displayName>
+ <unitPattern count="one">{0} kcal</unitPattern>
+ <unitPattern count="other">{0} kcal</unitPattern>
+ </unit>
+ <unit type="energy-calorie">
+ <displayName>cal</displayName>
+ <unitPattern count="one">{0} cal</unitPattern>
+ <unitPattern count="other">{0} cal</unitPattern>
+ </unit>
+ <unit type="energy-foodcalorie">
+ <displayName>cal</displayName>
+ <unitPattern count="one">{0} cal</unitPattern>
+ <unitPattern count="other">{0} cal</unitPattern>
+ </unit>
+ <unit type="energy-kilojoule">
+ <displayName>kilojoule</displayName>
+ <unitPattern count="one">{0} kJ</unitPattern>
+ <unitPattern count="other">{0} kJ</unitPattern>
+ </unit>
+ <unit type="energy-joule">
+ <displayName>joule</displayName>
+ <unitPattern count="one">{0} J</unitPattern>
+ <unitPattern count="other">{0} J</unitPattern>
+ </unit>
+ <unit type="energy-kilowatt-hour">
+ <displayName>kWh</displayName>
+ <unitPattern count="one">{0} kWh</unitPattern>
+ <unitPattern count="other">{0} kWh</unitPattern>
+ </unit>
+ <unit type="energy-electronvolt">
+ <displayName>elektronvolt</displayName>
+ <unitPattern count="one">{0} eV</unitPattern>
+ <unitPattern count="other">{0} eV</unitPattern>
+ </unit>
+ <unit type="energy-british-thermal-unit">
+ <displayName>↑↑↑</displayName>
+ <unitPattern count="one">↑↑↑</unitPattern>
+ <unitPattern count="other">↑↑↑</unitPattern>
+ </unit>
+ <unit type="energy-therm-us">
+ <displayName>therm</displayName>
+ <unitPattern count="one">{0} therm</unitPattern>
+ <unitPattern count="other">{0} therm</unitPattern>
+ </unit>
+ <unit type="force-pound-force">
+ <displayName>poundforce</displayName>
+ <unitPattern count="one">{0} lbf</unitPattern>
+ <unitPattern count="other">{0} lbf</unitPattern>
+ </unit>
+ <unit type="force-newton">
+ <displayName>newton</displayName>
+ <unitPattern count="one">↑↑↑</unitPattern>
+ <unitPattern count="other">↑↑↑</unitPattern>
+ </unit>
+ <unit type="frequency-gigahertz">
+ <displayName>GHz</displayName>
+ <unitPattern count="one">{0} GHz</unitPattern>
+ <unitPattern count="other">{0} GHz</unitPattern>
+ </unit>
+ <unit type="frequency-megahertz">
+ <displayName>MHz</displayName>
+ <unitPattern count="one">{0} MHz</unitPattern>
+ <unitPattern count="other">{0} MHz</unitPattern>
+ </unit>
+ <unit type="frequency-kilohertz">
+ <displayName>kHz</displayName>
+ <unitPattern count="one">{0} kHz</unitPattern>
+ <unitPattern count="other">{0} kHz</unitPattern>
+ </unit>
+ <unit type="frequency-hertz">
+ <displayName>Hz</displayName>
+ <unitPattern count="one">{0} Hz</unitPattern>
+ <unitPattern count="other">{0} Hz</unitPattern>
+ </unit>
+ <unit type="graphics-em">
+ <displayName>gefirt</displayName>
+ <unitPattern count="one">{0} gefirt</unitPattern>
+ <unitPattern count="other">{0} gefirt</unitPattern>
+ </unit>
+ <unit type="graphics-pixel">
+ <displayName>piksler</displayName>
+ <unitPattern count="one">↑↑↑</unitPattern>
+ <unitPattern count="other">{0} px</unitPattern>
+ </unit>
+ <unit type="graphics-megapixel">
+ <displayName>megapiksler</displayName>
+ <unitPattern count="one">↑↑↑</unitPattern>
+ <unitPattern count="other">{0} MP</unitPattern>
+ </unit>
+ <unit type="graphics-pixel-per-centimeter">
+ <displayName>↑↑↑</displayName>
+ <unitPattern count="one">↑↑↑</unitPattern>
+ <unitPattern count="other">{0} ppcm</unitPattern>
+ </unit>
+ <unit type="graphics-pixel-per-inch">
+ <displayName>ppi</displayName>
+ <unitPattern count="one">↑↑↑</unitPattern>
+ <unitPattern count="other">{0} ppi</unitPattern>
+ </unit>
+ <unit type="graphics-dot-per-centimeter">
+ <displayName>dpcm</displayName>
+ <unitPattern count="one">↑↑↑</unitPattern>
+ <unitPattern count="other">↑↑↑</unitPattern>
+ </unit>
+ <unit type="graphics-dot-per-inch">
+ <displayName>↑↑↑</displayName>
+ <unitPattern count="one">↑↑↑</unitPattern>
+ <unitPattern count="other">↑↑↑</unitPattern>
+ </unit>
+ <unit type="graphics-dot">
+ <displayName>pkt</displayName>
+ <unitPattern count="one">{0} pkt</unitPattern>
+ <unitPattern count="other">{0} pkt</unitPattern>
+ </unit>
+ <unit type="length-earth-radius">
+ <displayName>↑↑↑</displayName>
+ <unitPattern count="one">↑↑↑</unitPattern>
+ <unitPattern count="other">↑↑↑</unitPattern>
+ </unit>
+ <unit type="length-kilometer">
+ <displayName>km</displayName>
+ <unitPattern count="one">{0} km</unitPattern>
+ <unitPattern count="other">{0} km</unitPattern>
+ <perUnitPattern>{0}/km</perUnitPattern>
+ </unit>
+ <unit type="length-meter">
+ <displayName>meter</displayName>
+ <unitPattern count="one">{0} m</unitPattern>
+ <unitPattern count="other">{0} m</unitPattern>
+ <perUnitPattern>{0}/m</perUnitPattern>
+ </unit>
+ <unit type="length-decimeter">
+ <displayName>dm</displayName>
+ <unitPattern count="one">{0} dm</unitPattern>
+ <unitPattern count="other">{0} dm</unitPattern>
+ </unit>
+ <unit type="length-centimeter">
+ <displayName>cm</displayName>
+ <unitPattern count="one">{0} cm</unitPattern>
+ <unitPattern count="other">{0} cm</unitPattern>
+ <perUnitPattern>{0}/cm</perUnitPattern>
+ </unit>
+ <unit type="length-millimeter">
+ <displayName>mm</displayName>
+ <unitPattern count="one">{0} mm</unitPattern>
+ <unitPattern count="other">{0} mm</unitPattern>
+ </unit>
+ <unit type="length-micrometer">
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
+ </unit>
+ <unit type="length-nanometer">
+ <displayName>nm</displayName>
+ <unitPattern count="one">{0} nm</unitPattern>
+ <unitPattern count="other">{0} nm</unitPattern>
+ </unit>
+ <unit type="length-picometer">
+ <displayName>pm</displayName>
+ <unitPattern count="one">{0} pm</unitPattern>
+ <unitPattern count="other">{0} pm</unitPattern>
+ </unit>
+ <unit type="length-mile">
+ <displayName>miles</displayName>
+ <unitPattern count="one">{0} mile</unitPattern>
+ <unitPattern count="other">{0} miles</unitPattern>
+ </unit>
+ <unit type="length-yard">
+ <displayName>yard</displayName>
+ <unitPattern count="one">{0} yard</unitPattern>
+ <unitPattern count="other">{0} yard</unitPattern>
+ </unit>
+ <unit type="length-foot">
+ <displayName>fot</displayName>
+ <unitPattern count="one">{0} fot</unitPattern>
+ <unitPattern count="other">{0} fot</unitPattern>
+ <perUnitPattern>{0}/fot</perUnitPattern>
+ </unit>
+ <unit type="length-inch">
+ <displayName>tommer</displayName>
+ <unitPattern count="one">{0} tomme</unitPattern>
+ <unitPattern count="other">{0} tommer</unitPattern>
+ <perUnitPattern>{0}/tomme</perUnitPattern>
+ </unit>
+ <unit type="length-parsec">
+ <displayName>parsec</displayName>
+ <unitPattern count="one">{0} pc</unitPattern>
+ <unitPattern count="other">{0} pc</unitPattern>
+ </unit>
+ <unit type="length-light-year">
+ <displayName>lysår</displayName>
+ <unitPattern count="one">{0} ly</unitPattern>
+ <unitPattern count="other">{0} ly</unitPattern>
+ </unit>
+ <unit type="length-astronomical-unit">
+ <displayName>AU</displayName>
+ <unitPattern count="one">{0} AU</unitPattern>
+ <unitPattern count="other">{0} AU</unitPattern>
+ </unit>
+ <unit type="length-furlong">
+ <displayName>furlong</displayName>
+ <unitPattern count="one">{0} fur</unitPattern>
+ <unitPattern count="other">{0} fur</unitPattern>
+ </unit>
+ <unit type="length-fathom">
+ <displayName>favner</displayName>
+ <unitPattern count="one">{0} fm</unitPattern>
+ <unitPattern count="other">{0} fm</unitPattern>
+ </unit>
+ <unit type="length-nautical-mile">
+ <displayName>nmi</displayName>
+ <unitPattern count="one">{0} nmi</unitPattern>
+ <unitPattern count="other">{0} nmi</unitPattern>
+ </unit>
+ <unit type="length-mile-scandinavian">
+ <displayName>mil</displayName>
+ <unitPattern count="one">{0} mil</unitPattern>
+ <unitPattern count="other">{0} mil</unitPattern>
+ </unit>
+ <unit type="length-point">
+ <displayName>punkter</displayName>
+ <unitPattern count="one">{0} pt</unitPattern>
+ <unitPattern count="other">{0} pt</unitPattern>
+ </unit>
+ <unit type="length-solar-radius">
+ <displayName>solradius</displayName>
+ <unitPattern count="one">↑↑↑</unitPattern>
+ <unitPattern count="other">↑↑↑</unitPattern>
+ </unit>
+ <unit type="light-lux">
+ <displayName>lux</displayName>
+ <unitPattern count="one">{0} lx</unitPattern>
+ <unitPattern count="other">{0} lx</unitPattern>
+ </unit>
+ <unit type="light-candela">
+ <displayName>cd</displayName>
+ <unitPattern count="one">{0} cd</unitPattern>
+ <unitPattern count="other">{0} cd</unitPattern>
+ </unit>
+ <unit type="light-lumen">
+ <displayName>lm</displayName>
+ <unitPattern count="one">{0} lm</unitPattern>
+ <unitPattern count="other">{0} lm</unitPattern>
+ </unit>
+ <unit type="light-solar-luminosity">
+ <displayName>solluminositet</displayName>
+ <unitPattern count="one">↑↑↑</unitPattern>
+ <unitPattern count="other">↑↑↑</unitPattern>
+ </unit>
+ <unit type="mass-metric-ton">
+ <displayName>tonn</displayName>
+ <unitPattern count="one">{0} tonn</unitPattern>
+ <unitPattern count="other">{0} tonn</unitPattern>
+ </unit>
+ <unit type="mass-kilogram">
+ <displayName>kg</displayName>
+ <unitPattern count="one">{0} kg</unitPattern>
+ <unitPattern count="other">{0} kg</unitPattern>
+ <perUnitPattern>{0}/kg</perUnitPattern>
+ </unit>
+ <unit type="mass-gram">
+ <displayName>gram</displayName>
+ <unitPattern count="one">{0} g</unitPattern>
+ <unitPattern count="other">{0} g</unitPattern>
+ <perUnitPattern>{0}/g</perUnitPattern>
+ </unit>
+ <unit type="mass-milligram">
+ <displayName>mg</displayName>
+ <unitPattern count="one">{0} mg</unitPattern>
+ <unitPattern count="other">{0} mg</unitPattern>
+ </unit>
+ <unit type="mass-microgram">
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
+ </unit>
+ <unit type="mass-ton">
+ <displayName>am. tonn</displayName>
+ <unitPattern count="one">{0} am. tonn</unitPattern>
+ <unitPattern count="other">{0} am. tonn</unitPattern>
+ </unit>
+ <unit type="mass-stone">
+ <displayName>stone</displayName>
+ <unitPattern count="one">↑↑↑</unitPattern>
+ <unitPattern count="other">↑↑↑</unitPattern>
+ </unit>
+ <unit type="mass-pound">
+ <displayName>pund</displayName>
+ <unitPattern count="one">{0} pund</unitPattern>
+ <unitPattern count="other">{0} pund</unitPattern>
+ <perUnitPattern>{0}/pund</perUnitPattern>
+ </unit>
+ <unit type="mass-ounce">
+ <displayName>unser</displayName>
+ <unitPattern count="one">{0} unse</unitPattern>
+ <unitPattern count="other">{0} unser</unitPattern>
+ <perUnitPattern>{0}/unse</perUnitPattern>
+ </unit>
+ <unit type="mass-ounce-troy">
+ <displayName>oz tr</displayName>
+ <unitPattern count="one">{0} oz tr</unitPattern>
+ <unitPattern count="other">{0} oz tr</unitPattern>
+ </unit>
+ <unit type="mass-carat">
+ <displayName>karat</displayName>
+ <unitPattern count="one">{0} c</unitPattern>
+ <unitPattern count="other">{0} c</unitPattern>
+ </unit>
+ <unit type="mass-dalton">
+ <displayName>dalton</displayName>
+ <unitPattern count="one">{0} Da</unitPattern>
+ <unitPattern count="other">{0} Da</unitPattern>
+ </unit>
+ <unit type="mass-earth-mass">
+ <displayName>jordmasser</displayName>
+ <unitPattern count="one">{0} M⊕</unitPattern>
+ <unitPattern count="other">{0} M⊕</unitPattern>
+ </unit>
+ <unit type="mass-solar-mass">
+ <displayName>solmasser</displayName>
+ <unitPattern count="one">{0} M☉</unitPattern>
+ <unitPattern count="other">{0} M☉</unitPattern>
+ </unit>
+ <unit type="mass-grain">
+ <displayName>↑↑↑</displayName>
+ <unitPattern count="one">↑↑↑</unitPattern>
+ <unitPattern count="other">↑↑↑</unitPattern>
+ </unit>
+ <unit type="power-gigawatt">
+ <displayName>GW</displayName>
+ <unitPattern count="one">{0} GW</unitPattern>
+ <unitPattern count="other">{0} GW</unitPattern>
+ </unit>
+ <unit type="power-megawatt">
+ <displayName>MW</displayName>
+ <unitPattern count="one">{0} MW</unitPattern>
+ <unitPattern count="other">{0} MW</unitPattern>
+ </unit>
+ <unit type="power-kilowatt">
+ <displayName>kW</displayName>
+ <unitPattern count="one">{0} kW</unitPattern>
+ <unitPattern count="other">{0} kW</unitPattern>
+ </unit>
+ <unit type="power-watt">
+ <displayName>watt</displayName>
+ <unitPattern count="one">{0} W</unitPattern>
+ <unitPattern count="other">{0} W</unitPattern>
+ </unit>
+ <unit type="power-milliwatt">
+ <displayName>mW</displayName>
+ <unitPattern count="one">{0} mW</unitPattern>
+ <unitPattern count="other">{0} mW</unitPattern>
+ </unit>
+ <unit type="power-horsepower">
+ <displayName>hk</displayName>
+ <unitPattern count="one">{0} hk</unitPattern>
+ <unitPattern count="other">{0} hk</unitPattern>
+ </unit>
+ <unit type="pressure-millimeter-ofhg">
+ <displayName>mmHg</displayName>
+ <unitPattern count="one">{0} mmHg</unitPattern>
+ <unitPattern count="other">{0} mmHg</unitPattern>
+ </unit>
+ <unit type="pressure-pound-force-per-square-inch">
+ <displayName>psi</displayName>
+ <unitPattern count="one">{0} psi</unitPattern>
+ <unitPattern count="other">{0} psi</unitPattern>
+ </unit>
+ <unit type="pressure-inch-ofhg">
+ <displayName>inHg</displayName>
+ <unitPattern count="one">{0} inHg</unitPattern>
+ <unitPattern count="other">{0} inHg</unitPattern>
+ </unit>
+ <unit type="pressure-bar">
+ <displayName>↑↑↑</displayName>
+ <unitPattern count="one">↑↑↑</unitPattern>
+ <unitPattern count="other">{0} bar</unitPattern>
+ </unit>
+ <unit type="pressure-millibar">
+ <displayName>mbar</displayName>
+ <unitPattern count="one">{0} mbar</unitPattern>
+ <unitPattern count="other">{0} mbar</unitPattern>
+ </unit>
+ <unit type="pressure-atmosphere">
+ <displayName>atm</displayName>
+ <unitPattern count="one">{0} atm</unitPattern>
+ <unitPattern count="other">{0} atm</unitPattern>
+ </unit>
+ <unit type="pressure-pascal">
+ <displayName>↑↑↑</displayName>
+ <unitPattern count="one">↑↑↑</unitPattern>
+ <unitPattern count="other">{0} Pa</unitPattern>
+ </unit>
+ <unit type="pressure-hectopascal">
+ <displayName>hPa</displayName>
+ <unitPattern count="one">{0} hPa</unitPattern>
+ <unitPattern count="other">{0} hPa</unitPattern>
+ </unit>
+ <unit type="pressure-kilopascal">
+ <displayName>↑↑↑</displayName>
+ <unitPattern count="one">↑↑↑</unitPattern>
+ <unitPattern count="other">↑↑↑</unitPattern>
+ </unit>
+ <unit type="pressure-megapascal">
+ <displayName>↑↑↑</displayName>
+ <unitPattern count="one">↑↑↑</unitPattern>
+ <unitPattern count="other">↑↑↑</unitPattern>
+ </unit>
+ <unit type="speed-kilometer-per-hour">
+ <displayName>km/time</displayName>
+ <unitPattern count="one">{0} km/t</unitPattern>
+ <unitPattern count="other">{0} km/t</unitPattern>
+ </unit>
+ <unit type="speed-meter-per-second">
+ <displayName>meter/s</displayName>
+ <unitPattern count="one">{0} m/s</unitPattern>
+ <unitPattern count="other">{0} m/s</unitPattern>
+ </unit>
+ <unit type="speed-mile-per-hour">
+ <displayName>miles/t</displayName>
+ <unitPattern count="one">{0} mile/t</unitPattern>
+ <unitPattern count="other">{0} miles/t</unitPattern>
+ </unit>
+ <unit type="speed-knot">
+ <displayName>kn</displayName>
+ <unitPattern count="one">{0} kn</unitPattern>
+ <unitPattern count="other">{0} kn</unitPattern>
+ </unit>
+ <unit type="temperature-generic">
+ <displayName>°</displayName>
+ <unitPattern count="one">{0}°</unitPattern>
+ <unitPattern count="other">{0}°</unitPattern>
+ </unit>
+ <unit type="temperature-celsius">
+ <displayName>°C</displayName>
+ <unitPattern count="one">{0} °C</unitPattern>
+ <unitPattern count="other">{0} °C</unitPattern>
+ </unit>
+ <unit type="temperature-fahrenheit">
+ <displayName>°F</displayName>
+ <unitPattern count="one">{0} °F</unitPattern>
+ <unitPattern count="other">{0} °F</unitPattern>
+ </unit>
+ <unit type="temperature-kelvin">
+ <displayName>K</displayName>
+ <unitPattern count="one">{0} K</unitPattern>
+ <unitPattern count="other">{0} K</unitPattern>
+ </unit>
+ <unit type="torque-pound-force-foot">
+ <displayName>↑↑↑</displayName>
+ <unitPattern count="one">↑↑↑</unitPattern>
+ <unitPattern count="other">↑↑↑</unitPattern>
+ </unit>
+ <unit type="torque-newton-meter">
+ <displayName>Nm</displayName>
+ <unitPattern count="one">{0} Nm</unitPattern>
+ <unitPattern count="other">{0} Nm</unitPattern>
+ </unit>
+ <unit type="volume-cubic-kilometer">
+ <displayName>km³</displayName>
+ <unitPattern count="one">{0} km³</unitPattern>
+ <unitPattern count="other">{0} km³</unitPattern>
+ </unit>
+ <unit type="volume-cubic-meter">
+ <displayName>m³</displayName>
+ <unitPattern count="one">{0} m³</unitPattern>
+ <unitPattern count="other">{0} m³</unitPattern>
+ <perUnitPattern>{0}/m³</perUnitPattern>
+ </unit>
+ <unit type="volume-cubic-centimeter">
+ <displayName>cm³</displayName>
+ <unitPattern count="one">{0} cm³</unitPattern>
+ <unitPattern count="other">{0} cm³</unitPattern>
+ <perUnitPattern>{0}/cm³</perUnitPattern>
+ </unit>
+ <unit type="volume-cubic-mile">
+ <displayName>miles³</displayName>
+ <unitPattern count="one">{0} mile³</unitPattern>
+ <unitPattern count="other">{0} miles³</unitPattern>
+ </unit>
+ <unit type="volume-cubic-yard">
+ <displayName>yard³</displayName>
+ <unitPattern count="one">{0} yard³</unitPattern>
+ <unitPattern count="other">{0} yard³</unitPattern>
+ </unit>
+ <unit type="volume-cubic-foot">
+ <displayName>fot³</displayName>
+ <unitPattern count="one">{0} fot³</unitPattern>
+ <unitPattern count="other">{0} fot³</unitPattern>
+ </unit>
+ <unit type="volume-cubic-inch">
+ <displayName>tommer³</displayName>
+ <unitPattern count="one">{0} tomme³</unitPattern>
+ <unitPattern count="other">{0} tommer³</unitPattern>
+ </unit>
+ <unit type="volume-megaliter">
+ <displayName>Ml</displayName>
+ <unitPattern count="one">{0} Ml</unitPattern>
+ <unitPattern count="other">{0} Ml</unitPattern>
+ </unit>
+ <unit type="volume-hectoliter">
+ <displayName>hl</displayName>
+ <unitPattern count="one">{0} hl</unitPattern>
+ <unitPattern count="other">{0} hl</unitPattern>
+ </unit>
+ <unit type="volume-liter">
+ <displayName>liter</displayName>
+ <unitPattern count="one">{0} l</unitPattern>
+ <unitPattern count="other">{0} l</unitPattern>
+ <perUnitPattern>{0}/l</perUnitPattern>
+ </unit>
+ <unit type="volume-deciliter">
+ <displayName>dl</displayName>
+ <unitPattern count="one">{0} dl</unitPattern>
+ <unitPattern count="other">{0} dl</unitPattern>
+ </unit>
+ <unit type="volume-centiliter">
+ <displayName>cl</displayName>
+ <unitPattern count="one">{0} cl</unitPattern>
+ <unitPattern count="other">{0} cl</unitPattern>
+ </unit>
+ <unit type="volume-milliliter">
+ <displayName>ml</displayName>
+ <unitPattern count="one">{0} ml</unitPattern>
+ <unitPattern count="other">{0} ml</unitPattern>
+ </unit>
+ <unit type="volume-pint-metric">
+ <displayName>mpt</displayName>
+ <unitPattern count="one">{0} mpt</unitPattern>
+ <unitPattern count="other">{0} mpt</unitPattern>
+ </unit>
+ <unit type="volume-cup-metric">
+ <displayName>m. kopper</displayName>
+ <unitPattern count="one">{0} m. kopp</unitPattern>
+ <unitPattern count="other">{0} m. kopper</unitPattern>
+ </unit>
+ <unit type="volume-acre-foot">
+ <displayName>acre-fot</displayName>
+ <unitPattern count="one">{0} ac-fot</unitPattern>
+ <unitPattern count="other">{0} ac-fot</unitPattern>
+ </unit>
+ <unit type="volume-bushel">
+ <displayName>bushel</displayName>
+ <unitPattern count="one">{0} bu</unitPattern>
+ <unitPattern count="other">{0} bu</unitPattern>
+ </unit>
+ <unit type="volume-gallon">
+ <displayName>gal</displayName>
+ <unitPattern count="one">{0} gal</unitPattern>
+ <unitPattern count="other">{0} gal</unitPattern>
+ <perUnitPattern>{0}/gal</perUnitPattern>
+ </unit>
+ <unit type="volume-gallon-imperial">
+ <displayName>brit. gal</displayName>
+ <unitPattern count="one">{0} brit. gal</unitPattern>
+ <unitPattern count="other">{0} brit. gal</unitPattern>
+ <perUnitPattern>{0}/brit. gal</perUnitPattern>
+ </unit>
+ <unit type="volume-quart">
+ <displayName>qt</displayName>
+ <unitPattern count="one">{0} qt</unitPattern>
+ <unitPattern count="other">{0} qt</unitPattern>
+ </unit>
+ <unit type="volume-pint">
+ <displayName>pint</displayName>
+ <unitPattern count="one">{0} pt</unitPattern>
+ <unitPattern count="other">{0} pt</unitPattern>
+ </unit>
+ <unit type="volume-cup">
+ <displayName>kopper</displayName>
+ <unitPattern count="one">{0} k</unitPattern>
+ <unitPattern count="other">{0} k</unitPattern>
+ </unit>
+ <unit type="volume-fluid-ounce">
+ <displayName>væskeunse</displayName>
+ <unitPattern count="one">{0} fl oz</unitPattern>
+ <unitPattern count="other">{0} fl oz</unitPattern>
+ </unit>
+ <unit type="volume-fluid-ounce-imperial">
+ <displayName>imp. fl oz</displayName>
+ <unitPattern count="one">{0} imp. fl oz</unitPattern>
+ <unitPattern count="other">{0} imp. fl oz</unitPattern>
+ </unit>
+ <unit type="volume-tablespoon">
+ <displayName>ss</displayName>
+ <unitPattern count="one">{0} ss</unitPattern>
+ <unitPattern count="other">{0} ss</unitPattern>
+ </unit>
+ <unit type="volume-teaspoon">
+ <displayName>ts</displayName>
+ <unitPattern count="one">{0} ts</unitPattern>
+ <unitPattern count="other">{0} ts</unitPattern>
+ </unit>
+ <unit type="volume-barrel">
+ <displayName>fat</displayName>
+ <unitPattern count="one">{0} fat</unitPattern>
+ <unitPattern count="other">{0} fat</unitPattern>
+ </unit>
+ <unit type="volume-dessert-spoon">
+ <displayName>bs</displayName>
+ <unitPattern count="one">{0} bs</unitPattern>
+ <unitPattern count="other">{0} bs</unitPattern>
+ </unit>
+ <unit type="volume-dessert-spoon-imperial">
+ <displayName>imp. bs</displayName>
+ <unitPattern count="one">{0} imp. bs</unitPattern>
+ <unitPattern count="other">{0} imp. bs</unitPattern>
+ </unit>
+ <unit type="volume-drop">
+ <displayName>dråpe</displayName>
+ <unitPattern count="one">{0} dråpe</unitPattern>
+ <unitPattern count="other">{0} dråpe</unitPattern>
+ </unit>
+ <unit type="volume-dram">
+ <displayName>dram fluid</displayName>
+ <unitPattern count="one">{0} dram fl</unitPattern>
+ <unitPattern count="other">{0} dram fl</unitPattern>
+ </unit>
+ <unit type="volume-jigger">
+ <displayName>shot</displayName>
+ <unitPattern count="one">{0} shot</unitPattern>
+ <unitPattern count="other">{0} shot</unitPattern>
+ </unit>
+ <unit type="volume-pinch">
+ <displayName>klype</displayName>
+ <unitPattern count="one">{0} klype</unitPattern>
+ <unitPattern count="other">{0} klype</unitPattern>
+ </unit>
+ <unit type="volume-quart-imperial">
+ <displayName>imp. quart</displayName>
+ <unitPattern count="one">{0} imp. quart</unitPattern>
+ <unitPattern count="other">{0} imp. quart</unitPattern>
+ </unit>
+ <coordinateUnit>
+ <displayName>retning</displayName>
+ <coordinateUnitPattern type="east">{0} Ø</coordinateUnitPattern>
+ <coordinateUnitPattern type="north">{0} N</coordinateUnitPattern>
+ <coordinateUnitPattern type="south">{0} S</coordinateUnitPattern>
+ <coordinateUnitPattern type="west">{0} V</coordinateUnitPattern>
+ </coordinateUnit>
+ </unitLength>
+ <unitLength type="narrow">
+ <compoundUnit type="10p-1">
+ <unitPrefixPattern>d{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p-2">
+ <unitPrefixPattern>c{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p-3">
+ <unitPrefixPattern>m{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p-6">
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p-9">
+ <unitPrefixPattern>n{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p-12">
+ <unitPrefixPattern>p{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p-15">
+ <unitPrefixPattern>f{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p-18">
+ <unitPrefixPattern>a{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p-21">
+ <unitPrefixPattern>z{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p-24">
+ <unitPrefixPattern>y{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p1">
+ <unitPrefixPattern>da{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p2">
+ <unitPrefixPattern>h{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p3">
+ <unitPrefixPattern>k{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p6">
+ <unitPrefixPattern>M{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p9">
+ <unitPrefixPattern>G{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p12">
+ <unitPrefixPattern>T{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p15">
+ <unitPrefixPattern>P{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p18">
+ <unitPrefixPattern>E{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p21">
+ <unitPrefixPattern>Z{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="10p24">
+ <unitPrefixPattern>Y{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="1024p1">
+ <unitPrefixPattern>Ki{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="1024p2">
+ <unitPrefixPattern>Mi{0}</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="1024p3">
+ <unitPrefixPattern>↑↑↑</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="1024p4">
+ <unitPrefixPattern>↑↑↑</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="1024p5">
+ <unitPrefixPattern>↑↑↑</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="1024p6">
+ <unitPrefixPattern>↑↑↑</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="1024p7">
+ <unitPrefixPattern>↑↑↑</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="1024p8">
+ <unitPrefixPattern>↑↑↑</unitPrefixPattern>
+ </compoundUnit>
+ <compoundUnit type="per">
+ <compoundUnitPattern>{0}/{1}</compoundUnitPattern>
+ </compoundUnit>
+ <compoundUnit type="power2">
+ <compoundUnitPattern1>{0}²</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one">↑↑↑</compoundUnitPattern1>
+ <compoundUnitPattern1 count="other">↑↑↑</compoundUnitPattern1>
+ </compoundUnit>
+ <compoundUnit type="power3">
+ <compoundUnitPattern1>{0}³</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one">↑↑↑</compoundUnitPattern1>
+ <compoundUnitPattern1 count="other">↑↑↑</compoundUnitPattern1>
+ </compoundUnit>
+ <compoundUnit type="times">
+ <compoundUnitPattern>↑↑↑</compoundUnitPattern>
+ </compoundUnit>
+ <unit type="acceleration-g-force">
+ <displayName draft="contributed">G</displayName>
+ <unitPattern count="one">{0}G</unitPattern>
+ <unitPattern count="other">{0}G</unitPattern>
+ </unit>
+ <unit type="acceleration-meter-per-square-second">
+ <unitPattern count="one" draft="contributed">{0}m/s²</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}m/s²</unitPattern>
+ </unit>
+ <unit type="angle-radian">
+ <displayName draft="unconfirmed">rad</displayName>
+ <unitPattern count="one" draft="unconfirmed">{0}rad</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0}rad</unitPattern>
+ </unit>
+ <unit type="angle-degree">
+ <displayName draft="unconfirmed">grader</displayName>
+ <unitPattern count="one">{0}°</unitPattern>
+ <unitPattern count="other">{0}°</unitPattern>
+ </unit>
+ <unit type="angle-arc-minute">
+ <displayName draft="unconfirmed">buemin</displayName>
+ <unitPattern count="one">{0}′</unitPattern>
+ <unitPattern count="other">{0}′</unitPattern>
+ </unit>
+ <unit type="angle-arc-second">
+ <displayName draft="unconfirmed">buesek</displayName>
+ <unitPattern count="one">{0}″</unitPattern>
+ <unitPattern count="other">{0}″</unitPattern>
+ </unit>
+ <unit type="area-square-kilometer">
+ <displayName draft="unconfirmed">km²</displayName>
+ <unitPattern count="one">{0}km²</unitPattern>
+ <unitPattern count="other">{0}km²</unitPattern>
+ <perUnitPattern draft="unconfirmed">{0}/km²</perUnitPattern>
+ </unit>
+ <unit type="area-hectare">
+ <unitPattern count="one">{0}ha</unitPattern>
+ <unitPattern count="other">{0}ha</unitPattern>
+ </unit>
+ <unit type="area-square-meter">
+ <displayName draft="unconfirmed">m²</displayName>
+ <unitPattern count="one">{0}m²</unitPattern>
+ <unitPattern count="other">{0}m²</unitPattern>
+ <perUnitPattern draft="unconfirmed">{0}/m²</perUnitPattern>
+ </unit>
+ <unit type="area-square-centimeter">
+ <displayName draft="unconfirmed">cm²</displayName>
+ <unitPattern count="one" draft="unconfirmed">{0}cm²</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0}cm²</unitPattern>
+ <perUnitPattern draft="unconfirmed">{0}/cm²</perUnitPattern>
+ </unit>
+ <unit type="area-square-mile">
+ <unitPattern count="one">{0} eng mil²</unitPattern>
+ <unitPattern count="other">{0} eng mil²</unitPattern>
+ </unit>
+ <unit type="area-acre">
+ <unitPattern count="one">{0} ac</unitPattern>
+ <unitPattern count="other">{0} ac</unitPattern>
+ </unit>
+ <unit type="area-square-foot">
+ <unitPattern count="one">{0}fot²</unitPattern>
+ <unitPattern count="other">{0}fot²</unitPattern>
+ </unit>
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
+ <displayName draft="unconfirmed">mg/dL</displayName>
+ <unitPattern count="one" draft="unconfirmed">{0} mg/dL</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0} mg/dL</unitPattern>
+ </unit>
+ <unit type="concentr-millimole-per-liter">
+ <displayName draft="unconfirmed">mmol/L</displayName>
+ <unitPattern count="one" draft="unconfirmed">{0}mmol/L</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0}mmol/L</unitPattern>
+ </unit>
+ <unit type="concentr-permillion">
+ <displayName draft="unconfirmed">ppm</displayName>
+ <unitPattern count="one" draft="unconfirmed">{0} ppm</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0} ppm</unitPattern>
+ </unit>
+ <unit type="concentr-percent">
+ <displayName>%</displayName>
+ <unitPattern count="one">{0} %</unitPattern>
+ <unitPattern count="other">{0} %</unitPattern>
+ </unit>
+ <unit type="consumption-liter-per-kilometer">
+ <displayName draft="unconfirmed">L/km</displayName>
+ <unitPattern count="one" draft="unconfirmed">{0}L/km</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0}L/km</unitPattern>
+ </unit>
+ <unit type="consumption-liter-per-100-kilometer">
+ <displayName>l/100km</displayName>
+ <unitPattern count="one">{0} l/100km</unitPattern>
+ <unitPattern count="other">{0} l/100km</unitPattern>
+ </unit>
+ <unit type="duration-century">
+ <displayName>årh.</displayName>
+ <unitPattern count="one">{0} årh.</unitPattern>
+ <unitPattern count="other">{0} årh.</unitPattern>
+ </unit>
+ <unit type="duration-year">
+ <displayName>år</displayName>
+ <unitPattern count="one">{0}å</unitPattern>
+ <unitPattern count="other">{0}å</unitPattern>
+ <perUnitPattern>{0}/år</perUnitPattern>
+ </unit>
+ <unit type="duration-month">
+ <displayName>måned</displayName>
+ <unitPattern count="one">{0} m</unitPattern>
+ <unitPattern count="other">{0} m</unitPattern>
+ <perUnitPattern>{0}/m</perUnitPattern>
+ </unit>
+ <unit type="duration-week">
+ <displayName>uke</displayName>
+ <unitPattern count="one">{0}u</unitPattern>
+ <unitPattern count="other">{0}u</unitPattern>
+ <perUnitPattern>{0}/u</perUnitPattern>
+ </unit>
+ <unit type="duration-day">
+ <displayName>døgn</displayName>
+ <unitPattern count="one">{0}d</unitPattern>
+ <unitPattern count="other">{0}d</unitPattern>
+ <perUnitPattern>{0}/d</perUnitPattern>
+ </unit>
+ <unit type="duration-hour">
+ <displayName>time</displayName>
+ <unitPattern count="one">{0}t</unitPattern>
+ <unitPattern count="other">{0}t</unitPattern>
+ <perUnitPattern>{0}/t</perUnitPattern>
+ </unit>
+ <unit type="duration-minute">
+ <displayName>min</displayName>
+ <unitPattern count="one">{0}m</unitPattern>
+ <unitPattern count="other">{0}m</unitPattern>
+ <perUnitPattern>{0}/m</perUnitPattern>
+ </unit>
+ <unit type="duration-second">
+ <displayName>sek</displayName>
+ <unitPattern count="one">{0}s</unitPattern>
+ <unitPattern count="other">{0}s</unitPattern>
+ <perUnitPattern>{0}/s</perUnitPattern>
+ </unit>
+ <unit type="duration-millisecond">
+ <displayName>ms</displayName>
+ <unitPattern count="one">{0}ms</unitPattern>
+ <unitPattern count="other">{0}ms</unitPattern>
+ </unit>
+ <unit type="duration-microsecond">
+ <displayName>μs</displayName>
+ <unitPattern count="one">{0}μs</unitPattern>
+ <unitPattern count="other">{0}μs</unitPattern>
+ </unit>
+ <unit type="duration-nanosecond">
+ <displayName>ns</displayName>
+ <unitPattern count="one">{0}ns</unitPattern>
+ <unitPattern count="other">{0}ns</unitPattern>
+ </unit>
+ <unit type="length-kilometer">
+ <displayName>km</displayName>
+ <unitPattern count="one">{0}km</unitPattern>
+ <unitPattern count="other">{0}km</unitPattern>
+ </unit>
+ <unit type="length-meter">
+ <displayName>m</displayName>
+ <unitPattern count="one">{0}m</unitPattern>
+ <unitPattern count="other">{0}m</unitPattern>
+ </unit>
+ <unit type="length-decimeter">
+ <unitPattern count="one" draft="contributed">{0}dm</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}dm</unitPattern>
+ </unit>
+ <unit type="length-centimeter">
+ <displayName>cm</displayName>
+ <unitPattern count="one">{0}cm</unitPattern>
+ <unitPattern count="other">{0}cm</unitPattern>
+ </unit>
+ <unit type="length-millimeter">
+ <displayName>mm</displayName>
+ <unitPattern count="one">{0}mm</unitPattern>
+ <unitPattern count="other">{0}mm</unitPattern>
+ </unit>
+ <unit type="length-micrometer">
+ <unitPattern count="one" draft="contributed">{0}μm</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}μm</unitPattern>
+ </unit>
+ <unit type="length-nanometer">
+ <unitPattern count="one" draft="contributed">{0}nm</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}nm</unitPattern>
+ </unit>
+ <unit type="length-picometer">
+ <unitPattern count="one">{0}pm</unitPattern>
+ <unitPattern count="other">{0}pm</unitPattern>
+ </unit>
+ <unit type="length-mile">
+ <displayName draft="contributed">mile</displayName>
+ <unitPattern count="one">{0} eng mil</unitPattern>
+ <unitPattern count="other">{0} eng mil</unitPattern>
+ </unit>
+ <unit type="length-yard">
+ <unitPattern count="one">{0} yard</unitPattern>
+ <unitPattern count="other">{0} yard</unitPattern>
+ </unit>
+ <unit type="length-foot">
+ <displayName draft="contributed">fot</displayName>
+ <unitPattern count="one" draft="contributed">{0} fot</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} fot</unitPattern>
+ </unit>
+ <unit type="length-inch">
+ <displayName draft="contributed">to</displayName>
+ <unitPattern count="one" draft="contributed">{0} tomme</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} tommer</unitPattern>
+ <perUnitPattern draft="contributed">{0}to</perUnitPattern>
+ </unit>
+ <unit type="length-parsec">
+ <unitPattern count="one" draft="contributed">{0}pc</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}pc</unitPattern>
+ </unit>
+ <unit type="length-light-year">
+ <unitPattern count="one" draft="contributed">{0} lysår</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} lysår</unitPattern>
+ </unit>
+ <unit type="length-astronomical-unit">
+ <unitPattern count="one" draft="contributed">{0}au</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}au</unitPattern>
+ </unit>
+ <unit type="length-nautical-mile">
+ <unitPattern count="one" draft="contributed">{0}nmi</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}nmi</unitPattern>
+ </unit>
+ <unit type="length-mile-scandinavian">
+ <displayName draft="contributed">mil</displayName>
+ <unitPattern count="one" draft="contributed">{0}mil</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}mil</unitPattern>
+ </unit>
+ <unit type="length-point">
+ <unitPattern count="one" draft="contributed">{0}pt</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}pt</unitPattern>
+ </unit>
+ <unit type="light-lux">
+ <displayName draft="unconfirmed">lux</displayName>
+ <unitPattern count="one" draft="unconfirmed">{0}lx</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0}lx</unitPattern>
+ </unit>
+ <unit type="mass-metric-ton">
+ <unitPattern count="one" draft="contributed">{0}t</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}t</unitPattern>
+ </unit>
+ <unit type="mass-kilogram">
+ <displayName>kg</displayName>
+ <unitPattern count="one">{0}kg</unitPattern>
+ <unitPattern count="other">{0}kg</unitPattern>
+ </unit>
+ <unit type="mass-gram">
+ <displayName>gram</displayName>
+ <unitPattern count="one">{0}g</unitPattern>
+ <unitPattern count="other">{0}g</unitPattern>
+ </unit>
+ <unit type="mass-milligram">
+ <unitPattern count="one" draft="contributed">{0}mg</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}mg</unitPattern>
+ </unit>
+ <unit type="mass-microgram">
+ <unitPattern count="one" draft="contributed">{0}μg</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}μg</unitPattern>
+ </unit>
+ <unit type="mass-ton">
+ <displayName draft="unconfirmed">eng. k. tonn</displayName>
+ <unitPattern count="one" draft="unconfirmed">{0}en.k.ton</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0}en.k.ton</unitPattern>
+ </unit>
+ <unit type="mass-stone">
+ <displayName draft="unconfirmed">eng. steiner</displayName>
+ <unitPattern count="one" draft="unconfirmed">{0}en.stein</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0}en.stein</unitPattern>
+ </unit>
+ <unit type="mass-pound">
+ <displayName draft="contributed">pund</displayName>
+ <unitPattern count="one">{0} pund</unitPattern>
+ <unitPattern count="other">{0} pund</unitPattern>
+ <perUnitPattern draft="contributed">{0}/pund</perUnitPattern>
+ </unit>
+ <unit type="mass-ounce">
+ <displayName draft="contributed">unse</displayName>
+ <unitPattern count="one">{0} unse</unitPattern>
+ <unitPattern count="other">{0} unser</unitPattern>
+ <perUnitPattern draft="unconfirmed">{0}/unse</perUnitPattern>
+ </unit>
+ <unit type="mass-ounce-troy">
+ <displayName draft="unconfirmed">troyunser</displayName>
+ <unitPattern count="one" draft="unconfirmed">{0} tr.uns</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0} tr.uns</unitPattern>
+ </unit>
+ <unit type="mass-carat">
+ <displayName draft="unconfirmed">karat</displayName>
+ <unitPattern count="one" draft="unconfirmed">{0} karat</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0} karat</unitPattern>
+ </unit>
+ <unit type="power-kilowatt">
+ <unitPattern count="one">{0}kW</unitPattern>
+ <unitPattern count="other">{0}kW</unitPattern>
+ </unit>
+ <unit type="power-watt">
+ <unitPattern count="one">{0}W</unitPattern>
+ <unitPattern count="other">{0}W</unitPattern>
+ </unit>
+ <unit type="power-horsepower">
+ <unitPattern count="one">{0}hk</unitPattern>
+ <unitPattern count="other">{0}hk</unitPattern>
+ </unit>
+ <unit type="pressure-millimeter-ofhg">
+ <unitPattern count="one" draft="contributed">{0}mmHg</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}mmHg</unitPattern>
+ </unit>
+ <unit type="pressure-pound-force-per-square-inch">
+ <unitPattern count="one" draft="contributed">{0}psi</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}psi</unitPattern>
+ </unit>
+ <unit type="pressure-inch-ofhg">
+ <unitPattern count="one">{0}ʹʹ Hg</unitPattern>
+ <unitPattern count="other">{0}ʹʹ Hg</unitPattern>
+ </unit>
+ <unit type="pressure-millibar">
+ <unitPattern count="one">{0}mbar</unitPattern>
+ <unitPattern count="other">{0}mbar</unitPattern>
+ </unit>
+ <unit type="pressure-hectopascal">
+ <unitPattern count="one">{0}hPa</unitPattern>
+ <unitPattern count="other">{0}hPa</unitPattern>
+ </unit>
+ <unit type="speed-kilometer-per-hour">
+ <displayName>km/t</displayName>
+ <unitPattern count="one">{0}km/t</unitPattern>
+ <unitPattern count="other">{0}km/t</unitPattern>
+ </unit>
+ <unit type="speed-meter-per-second">
+ <unitPattern count="one">{0}m/s</unitPattern>
+ <unitPattern count="other">{0}m/s</unitPattern>
+ </unit>
+ <unit type="speed-mile-per-hour">
+ <displayName draft="contributed">mile/t</displayName>
+ <unitPattern count="one">{0} eng mil/t</unitPattern>
+ <unitPattern count="other">{0} eng mil/t</unitPattern>
+ </unit>
+ <unit type="speed-knot">
+ <unitPattern count="one" draft="contributed">{0}kn</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}kn</unitPattern>
+ </unit>
+ <unit type="temperature-celsius">
+ <displayName>°C</displayName>
+ <unitPattern count="one">{0} °C</unitPattern>
+ <unitPattern count="other">{0} °C</unitPattern>
+ </unit>
+ <unit type="temperature-fahrenheit">
+ <unitPattern count="one">{0}°F</unitPattern>
+ <unitPattern count="other">{0}°F</unitPattern>
+ </unit>
+ <unit type="temperature-kelvin">
+ <unitPattern count="one" draft="contributed">{0}K</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}K</unitPattern>
+ </unit>
+ <unit type="volume-cubic-kilometer">
+ <unitPattern count="one">{0}km³</unitPattern>
+ <unitPattern count="other">{0}km³</unitPattern>
+ </unit>
+ <unit type="volume-cubic-meter">
+ <unitPattern count="one" draft="unconfirmed">{0}m³</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0}m³</unitPattern>
+ <perUnitPattern draft="unconfirmed">{0}/m³</perUnitPattern>
+ </unit>
+ <unit type="volume-cubic-centimeter">
+ <unitPattern count="one" draft="unconfirmed">{0}cm³</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0}cm³</unitPattern>
+ <perUnitPattern draft="unconfirmed">{0}/cm³</perUnitPattern>
+ </unit>
+ <unit type="volume-cubic-mile">
+ <unitPattern count="one">{0} eng mil³</unitPattern>
+ <unitPattern count="other">{0} eng mil³</unitPattern>
+ </unit>
+ <unit type="volume-cubic-foot">
+ <unitPattern count="one" draft="unconfirmed">{0} fot³</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0} fot³</unitPattern>
+ </unit>
+ <unit type="volume-cubic-inch">
+ <unitPattern count="one" draft="unconfirmed">{0} tom³</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0} tom³</unitPattern>
+ </unit>
+ <unit type="volume-megaliter">
+ <unitPattern count="one" draft="unconfirmed">{0}ML</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0}ML</unitPattern>
+ </unit>
+ <unit type="volume-hectoliter">
+ <unitPattern count="one" draft="unconfirmed">{0}hL</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0}hL</unitPattern>
+ </unit>
+ <unit type="volume-liter">
+ <displayName>l</displayName>
+ <unitPattern count="one">{0}l</unitPattern>
+ <unitPattern count="other">{0}l</unitPattern>
+ <perUnitPattern draft="unconfirmed">{0}/l</perUnitPattern>
+ </unit>
+ <unit type="volume-deciliter">
+ <unitPattern count="one" draft="unconfirmed">{0}dL</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0}dL</unitPattern>
+ </unit>
+ <unit type="volume-centiliter">
+ <unitPattern count="one" draft="unconfirmed">{0}cL</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0}cL</unitPattern>
+ </unit>
+ <unit type="volume-milliliter">
+ <unitPattern count="one" draft="unconfirmed">{0}mL</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0}mL</unitPattern>
+ </unit>
+ <unit type="volume-tablespoon">
+ <unitPattern count="one" draft="unconfirmed">{0} ss</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0} ss</unitPattern>
+ </unit>
+ <unit type="volume-teaspoon">
+ <unitPattern count="one" draft="unconfirmed">{0} ts</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0} ts</unitPattern>
+ </unit>
+ <coordinateUnit>
+ <displayName>retning</displayName>
+ <coordinateUnitPattern type="east">{0}Ø</coordinateUnitPattern>
+ <coordinateUnitPattern type="north">{0}N</coordinateUnitPattern>
+ <coordinateUnitPattern type="south">{0}S</coordinateUnitPattern>
+ <coordinateUnitPattern type="west">{0}V</coordinateUnitPattern>
+ </coordinateUnit>
+ </unitLength>
+ <durationUnit type="hm">
+ <durationUnitPattern>h:mm</durationUnitPattern>
+ <durationUnitPattern alt="variant">h.mm</durationUnitPattern>
+ </durationUnit>
+ <durationUnit type="hms">
+ <durationUnitPattern>h:mm:ss</durationUnitPattern>
+ <durationUnitPattern alt="variant">h.mm.ss</durationUnitPattern>
+ </durationUnit>
+ <durationUnit type="ms">
+ <durationUnitPattern>m:ss</durationUnitPattern>
+ <durationUnitPattern alt="variant">m.ss</durationUnitPattern>
+ </durationUnit>
+ </units>
+ <listPatterns>
+ <listPattern>
+ <listPatternPart type="start">{0}, {1}</listPatternPart>
+ <listPatternPart type="middle">{0}, {1}</listPatternPart>
+ <listPatternPart type="end">{0} og {1}</listPatternPart>
+ <listPatternPart type="2">{0} og {1}</listPatternPart>
+ </listPattern>
+ <listPattern type="or">
+ <listPatternPart type="start">{0}, {1}</listPatternPart>
+ <listPatternPart type="middle">{0}, {1}</listPatternPart>
+ <listPatternPart type="end">{0} eller {1}</listPatternPart>
+ <listPatternPart type="2">{0} eller {1}</listPatternPart>
+ </listPattern>
+ <listPattern type="or-narrow">
+ <listPatternPart type="start">↑↑↑</listPatternPart>
+ <listPatternPart type="middle">↑↑↑</listPatternPart>
+ <listPatternPart type="end">↑↑↑</listPatternPart>
+ <listPatternPart type="2">↑↑↑</listPatternPart>
+ </listPattern>
+ <listPattern type="or-short">
+ <listPatternPart type="start">↑↑↑</listPatternPart>
+ <listPatternPart type="middle">↑↑↑</listPatternPart>
+ <listPatternPart type="end">↑↑↑</listPatternPart>
+ <listPatternPart type="2">↑↑↑</listPatternPart>
+ </listPattern>
+ <listPattern type="standard-narrow">
+ <listPatternPart type="start">↑↑↑</listPatternPart>
+ <listPatternPart type="middle">↑↑↑</listPatternPart>
+ <listPatternPart type="end">↑↑↑</listPatternPart>
+ <listPatternPart type="2">↑↑↑</listPatternPart>
+ </listPattern>
+ <listPattern type="standard-short">
+ <listPatternPart type="start">↑↑↑</listPatternPart>
+ <listPatternPart type="middle">↑↑↑</listPatternPart>
+ <listPatternPart type="end">{0} og {1}</listPatternPart>
+ <listPatternPart type="2">{0} og {1}</listPatternPart>
+ </listPattern>
+ <listPattern type="unit">
+ <listPatternPart type="start">{0}, {1}</listPatternPart>
+ <listPatternPart type="middle">{0}, {1}</listPatternPart>
+ <listPatternPart type="end">{0} og {1}</listPatternPart>
+ <listPatternPart type="2">{0} og {1}</listPatternPart>
+ </listPattern>
+ <listPattern type="unit-narrow">
+ <listPatternPart type="start">{0}, {1}</listPatternPart>
+ <listPatternPart type="middle">{0}, {1}</listPatternPart>
+ <listPatternPart type="end">{0}, {1}</listPatternPart>
+ <listPatternPart type="2">{0}, {1}</listPatternPart>
+ </listPattern>
+ <listPattern type="unit-short">
+ <listPatternPart type="start">{0}, {1}</listPatternPart>
+ <listPatternPart type="middle">{0}, {1}</listPatternPart>
+ <listPatternPart type="end">{0}, {1}</listPatternPart>
+ <listPatternPart type="2">{0}, {1}</listPatternPart>
+ </listPattern>
+ </listPatterns>
+ <posix>
+ <messages>
+ <yesstr>ja</yesstr>
+ <nostr>nei</nostr>
+ </messages>
+ </posix>
+ <characterLabels>
+ <characterLabelPattern type="all">{0} – alt</characterLabelPattern>
+ <characterLabelPattern type="category-list">{0}: {1}</characterLabelPattern>
+ <characterLabelPattern type="compatibility">{0} – kompatibilitet</characterLabelPattern>
+ <characterLabelPattern type="enclosed">{0} – omsluttet</characterLabelPattern>
+ <characterLabelPattern type="extended">{0} – utvidet</characterLabelPattern>
+ <characterLabelPattern type="historic">{0} – historisk</characterLabelPattern>
+ <characterLabelPattern type="miscellaneous">{0} – diverse</characterLabelPattern>
+ <characterLabelPattern type="other">{0} – annet</characterLabelPattern>
+ <characterLabelPattern type="scripts">skriftsystemer – {0}</characterLabelPattern>
+ <characterLabelPattern type="strokes" count="one">{0} strek</characterLabelPattern>
+ <characterLabelPattern type="strokes" count="other">{0} streker</characterLabelPattern>
+ <characterLabelPattern type="subscript">senket {0}</characterLabelPattern>
+ <characterLabelPattern type="superscript">hevet {0}</characterLabelPattern>
+ <characterLabel type="activities">aktiviteter</characterLabel>
+ <characterLabel type="african_scripts">afrikanske skriftsystemer</characterLabel>
+ <characterLabel type="american_scripts">amerikanske skriftsystemer</characterLabel>
+ <characterLabel type="animal">dyr</characterLabel>
+ <characterLabel type="animals_nature">dyr og natur</characterLabel>
+ <characterLabel type="arrows">piler</characterLabel>
+ <characterLabel type="body">kropp</characterLabel>
+ <characterLabel type="box_drawing">rutetegning</characterLabel>
+ <characterLabel type="braille">punktskrift</characterLabel>
+ <characterLabel type="building">bygning</characterLabel>
+ <characterLabel type="bullets_stars">punkttegn/stjerner</characterLabel>
+ <characterLabel type="consonantal_jamo">konsonantal jamo</characterLabel>
+ <characterLabel type="currency_symbols">valutasymboler</characterLabel>
+ <characterLabel type="dash_connector">tankestrek/bindetegn</characterLabel>
+ <characterLabel type="digits">sifre</characterLabel>
+ <characterLabel type="dingbats">dingbats</characterLabel>
+ <characterLabel type="divination_symbols">spådomssymboler</characterLabel>
+ <characterLabel type="downwards_arrows">piler som peker nedover</characterLabel>
+ <characterLabel type="downwards_upwards_arrows">piler som peker nedover og oppover</characterLabel>
+ <characterLabel type="east_asian_scripts">østasiatiske skriftsystemer</characterLabel>
+ <characterLabel type="emoji">emoji</characterLabel>
+ <characterLabel type="european_scripts">europeiske skriftsystemer</characterLabel>
+ <characterLabel type="female">kvinnelig</characterLabel>
+ <characterLabel type="flag">flagg</characterLabel>
+ <characterLabel type="flags">flagg</characterLabel>
+ <characterLabel type="food_drink">mat og drikke</characterLabel>
+ <characterLabel type="format">format</characterLabel>
+ <characterLabel type="format_whitespace">format og mellomrom</characterLabel>
+ <characterLabel type="full_width_form_variant">fullbreddeformvarianter</characterLabel>
+ <characterLabel type="geometric_shapes">geometriske figurer</characterLabel>
+ <characterLabel type="half_width_form_variant">halvbreddeformvarianter</characterLabel>
+ <characterLabel type="han_characters">han-tegn</characterLabel>
+ <characterLabel type="han_radicals">han-radikaler</characterLabel>
+ <characterLabel type="hanja">hanja</characterLabel>
+ <characterLabel type="hanzi_simplified">hanzi (forenklet)</characterLabel>
+ <characterLabel type="hanzi_traditional">hanzi (tradisjonell)</characterLabel>
+ <characterLabel type="heart">hjerte</characterLabel>
+ <characterLabel type="historic_scripts">historiske skriftsystemer</characterLabel>
+ <characterLabel type="ideographic_desc_characters">ideografiske beskrivende tegn</characterLabel>
+ <characterLabel type="japanese_kana">japansk kana</characterLabel>
+ <characterLabel type="kanbun">kanbun</characterLabel>
+ <characterLabel type="kanji">kanji</characterLabel>
+ <characterLabel type="keycap">taster</characterLabel>
+ <characterLabel type="leftwards_arrows">piler som peker til venstre</characterLabel>
+ <characterLabel type="leftwards_rightwards_arrows">piler som peker til høyre og venstre</characterLabel>
+ <characterLabel type="letterlike_symbols">bokstavlignende symboler</characterLabel>
+ <characterLabel type="limited_use">begrenset bruk</characterLabel>
+ <characterLabel type="male">mannlig</characterLabel>
+ <characterLabel type="math_symbols">matematikksymboler</characterLabel>
+ <characterLabel type="middle_eastern_scripts">skriftsystemer fra Midtøsten</characterLabel>
+ <characterLabel type="miscellaneous">diverse</characterLabel>
+ <characterLabel type="modern_scripts">moderne skriftsystemer</characterLabel>
+ <characterLabel type="modifier">modifikator</characterLabel>
+ <characterLabel type="musical_symbols">musikksymboler</characterLabel>
+ <characterLabel type="nature">natur</characterLabel>
+ <characterLabel type="nonspacing">uten bredde</characterLabel>
+ <characterLabel type="numbers">tall</characterLabel>
+ <characterLabel type="objects">objekter</characterLabel>
+ <characterLabel type="other">annet</characterLabel>
+ <characterLabel type="paired">par</characterLabel>
+ <characterLabel type="person">mennesker</characterLabel>
+ <characterLabel type="phonetic_alphabet">fonetisk alfabet</characterLabel>
+ <characterLabel type="pictographs">piktogrammer</characterLabel>
+ <characterLabel type="place">sted</characterLabel>
+ <characterLabel type="plant">plante</characterLabel>
+ <characterLabel type="punctuation">skilletegn</characterLabel>
+ <characterLabel type="rightwards_arrows">piler som peker til høyre</characterLabel>
+ <characterLabel type="sign_standard_symbols">tegn/standardsymboler</characterLabel>
+ <characterLabel type="small_form_variant">varianter av små tegn</characterLabel>
+ <characterLabel type="smiley">smilefjes</characterLabel>
+ <characterLabel type="smileys_people">smilefjes og mennesker</characterLabel>
+ <characterLabel type="south_asian_scripts">sørasiatiske skriftsystemer</characterLabel>
+ <characterLabel type="southeast_asian_scripts">sørøstasiatiske skriftsystemer</characterLabel>
+ <characterLabel type="spacing">med bredde</characterLabel>
+ <characterLabel type="sport">sport</characterLabel>
+ <characterLabel type="symbols">symboler</characterLabel>
+ <characterLabel type="technical_symbols">tekniske symboler</characterLabel>
+ <characterLabel type="tone_marks">tonemerker</characterLabel>
+ <characterLabel type="travel">reise</characterLabel>
+ <characterLabel type="travel_places">reise og steder</characterLabel>
+ <characterLabel type="upwards_arrows">piler som peker oppover</characterLabel>
+ <characterLabel type="variant_forms">varianter</characterLabel>
+ <characterLabel type="vocalic_jamo">vokalisk jamo</characterLabel>
+ <characterLabel type="weather">vær</characterLabel>
+ <characterLabel type="western_asian_scripts">vestasiatiske skriftsymboler</characterLabel>
+ <characterLabel type="whitespace">mellomrom</characterLabel>
+ </characterLabels>
+ <typographicNames>
+ <axisName type="ital">kursiv</axisName>
+ <axisName type="opsz">optisk størrelse</axisName>
+ <axisName type="slnt">skråstilling</axisName>
+ <axisName type="wdth">bredde</axisName>
+ <axisName type="wght">tykkelse</axisName>
+ <styleName type="ital" subtype="1">kursiv</styleName>
+ <styleName type="opsz" subtype="8">bildetekst</styleName>
+ <styleName type="opsz" subtype="12">tekst</styleName>
+ <styleName type="opsz" subtype="18">tittel</styleName>
+ <styleName type="opsz" subtype="72">visning</styleName>
+ <styleName type="opsz" subtype="144">plakat</styleName>
+ <styleName type="slnt" subtype="-12">skråstilt bakover</styleName>
+ <styleName type="slnt" subtype="0">rett</styleName>
+ <styleName type="slnt" subtype="12">skråstilt</styleName>
+ <styleName type="slnt" subtype="24">ekstra skråstilt</styleName>
+ <styleName type="wdth" subtype="50">ultrafortettet</styleName>
+ <styleName type="wdth" subtype="50" alt="compressed">ultrakomprimert</styleName>
+ <styleName type="wdth" subtype="50" alt="narrow">ultrasmal</styleName>
+ <styleName type="wdth" subtype="62.5">ekstra fortettet</styleName>
+ <styleName type="wdth" subtype="62.5" alt="compressed">ekstra komprimert</styleName>
+ <styleName type="wdth" subtype="62.5" alt="narrow">ekstra smal</styleName>
+ <styleName type="wdth" subtype="75">fortettet</styleName>
+ <styleName type="wdth" subtype="75" alt="compressed">komprimert</styleName>
+ <styleName type="wdth" subtype="75" alt="narrow">smal</styleName>
+ <styleName type="wdth" subtype="87.5">semifortettet</styleName>
+ <styleName type="wdth" subtype="87.5" alt="compressed">semikomprimert</styleName>
+ <styleName type="wdth" subtype="87.5" alt="narrow">semismal</styleName>
+ <styleName type="wdth" subtype="100">vanlig</styleName>
+ <styleName type="wdth" subtype="112.5">semiutvidet</styleName>
+ <styleName type="wdth" subtype="112.5" alt="extended">semiforlenget</styleName>
+ <styleName type="wdth" subtype="112.5" alt="wide">semibred</styleName>
+ <styleName type="wdth" subtype="125">utvidet</styleName>
+ <styleName type="wdth" subtype="125" alt="extended">forlenget</styleName>
+ <styleName type="wdth" subtype="125" alt="wide">bred</styleName>
+ <styleName type="wdth" subtype="150">ekstra utvidet</styleName>
+ <styleName type="wdth" subtype="150" alt="extended">ekstra forlenget</styleName>
+ <styleName type="wdth" subtype="150" alt="wide">ekstra bred</styleName>
+ <styleName type="wdth" subtype="200">ultrautvidet</styleName>
+ <styleName type="wdth" subtype="200" alt="extended">ultraforlenget</styleName>
+ <styleName type="wdth" subtype="200" alt="wide">ultrabred</styleName>
+ <styleName type="wght" subtype="100">smal</styleName>
+ <styleName type="wght" subtype="200">ekstra tynn</styleName>
+ <styleName type="wght" subtype="200" alt="ultra">ultratynn</styleName>
+ <styleName type="wght" subtype="300">tynn</styleName>
+ <styleName type="wght" subtype="350">semitynn</styleName>
+ <styleName type="wght" subtype="380">bok</styleName>
+ <styleName type="wght" subtype="400">normal</styleName>
+ <styleName type="wght" subtype="500">medium</styleName>
+ <styleName type="wght" subtype="600">halvfet</styleName>
+ <styleName type="wght" subtype="600" alt="demi">halvfet</styleName>
+ <styleName type="wght" subtype="700">fet</styleName>
+ <styleName type="wght" subtype="800">ekstra fet</styleName>
+ <styleName type="wght" subtype="800" alt="ultra">ultrafet</styleName>
+ <styleName type="wght" subtype="900">svart</styleName>
+ <styleName type="wght" subtype="900" alt="heavy">tykk</styleName>
+ <styleName type="wght" subtype="950">ekstra svart</styleName>
+ <styleName type="wght" subtype="950" alt="ultrablack">ultrasvart</styleName>
+ <styleName type="wght" subtype="950" alt="ultraheavy">ultratykk</styleName>
+ <featureName type="afrc">vertikale brøker</featureName>
+ <featureName type="cpsp">stor-bokstav-avstand</featureName>
+ <featureName type="dlig">valgfrie ligaturer</featureName>
+ <featureName type="frac">diagonale brøker</featureName>
+ <featureName type="lnum">tall i moderne stil</featureName>
+ <featureName type="onum">tall i gammel stil</featureName>
+ <featureName type="ordn">ordenstall</featureName>
+ <featureName type="pnum">proporsjonale tall</featureName>
+ <featureName type="smcp">kapiteler</featureName>
+ <featureName type="tnum">tabelltall</featureName>
+ <featureName type="zero">null med skråstrek</featureName>
+ </typographicNames>
+</ldml>
diff --git a/common/main/or.xml b/common/main/or.xml
index e97c937..220ccba 100644
--- a/common/main/or.xml
+++ b/common/main/or.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -397,7 +397,6 @@
<language type="ro_MD">ମୋଲଡୋଭିଆନ୍</language>
<language type="rof">ରୋମ୍ବୋ</language>
<language type="rom">ରୋମାନି</language>
- <language type="root">ରୋଟ୍</language>
<language type="ru">ରୁଷିୟ</language>
<language type="rup">ଆରୋମାନିଆନ୍</language>
<language type="rw">କିନ୍ୟାରୱାଣ୍ଡା</language>
@@ -2509,9 +2508,6 @@
<regionFormat type="daylight">{0} ଦିବାଲୋକ ସମୟ</regionFormat>
<regionFormat type="standard">{0} ମାନାଙ୍କ ସମୟ</regionFormat>
<fallbackFormat>{1} ({0})</fallbackFormat>
- <zone type="Pacific/Honolulu">
- <exemplarCity>ହୋନୋଲୁଲୁ</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>ସମନ୍ୱିତ ସାର୍ବଜନୀନ ସମୟ</standard>
@@ -2631,12 +2627,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>ବ୍ରୋକେନ୍ ହିଲ୍</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>କ୍ୟୁରୀ</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>ମେଲବୋର୍ଣ୍ଣ</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>କ୍ୟୁରୀ</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>ହୋବାର୍ଟ୍</exemplarCity>
</zone>
@@ -3669,6 +3665,9 @@
<zone type="America/Nome">
<exemplarCity>ନୋମେ</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>ହୋନୋଲୁଲୁ</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>ଜନଷ୍ଟନ୍</exemplarCity>
</zone>
@@ -5960,7 +5959,7 @@
<displayName>ପଶ୍ଚିମ ଆଫ୍ରିକିୟ CFA ଫ୍ରାଙ୍କ୍</displayName>
<displayName count="one">ପଶ୍ଚିମ ଆଫ୍ରିକିୟ CFA ଫ୍ରାଙ୍କ୍</displayName>
<displayName count="other">ପଶ୍ଚିମ ଆଫ୍ରିକିୟ CFA ଫ୍ରାଙ୍କ୍</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>CFP ଫ୍ରାଙ୍କ୍</displayName>
@@ -6203,7 +6202,7 @@
<unitPattern count="one">{0} କ୍ୟାରେଟ୍</unitPattern>
<unitPattern count="other">{0} କ୍ୟାରେଟ୍</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>ମିଲିଗ୍ରାମ୍ ପ୍ରତି ଡେସିଲିଟର୍</displayName>
<unitPattern count="one">{0} ମିଲିଗ୍ରାମ୍ ପ୍ରତି ଡେସିଲିଟର୍</unitPattern>
<unitPattern count="other">{0} ମିଲିଗ୍ରାମ୍ ପ୍ରତି ଡେସିଲିଟର୍</unitPattern>
@@ -7218,7 +7217,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>ମିଗ୍ରା/ଡେଲି</displayName>
<unitPattern count="one">{0} ମିଗ୍ରା/ଡେଲି</unitPattern>
<unitPattern count="other">{0} ମିଗ୍ରା/ଡେଲି</unitPattern>
@@ -7564,9 +7563,9 @@
<unitPattern count="other">{0} ମିମି</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µମିଟର୍</displayName>
- <unitPattern count="one">{0} µମି</unitPattern>
- <unitPattern count="other">{0} µମି</unitPattern>
+ <displayName>μମିଟର୍</displayName>
+ <unitPattern count="one">{0} μମି</unitPattern>
+ <unitPattern count="other">{0} μମି</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>ନାମି</displayName>
@@ -7688,9 +7687,9 @@
<unitPattern count="other">{0} ମିଗ୍ରା</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>ଟନ୍</displayName>
diff --git a/common/main/pa.xml b/common/main/pa.xml
index 48f035b..5e54530 100644
--- a/common/main/pa.xml
+++ b/common/main/pa.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -331,7 +331,6 @@
<language type="ro">ਰੋਮਾਨੀਆਈ</language>
<language type="ro_MD">ਮੋਲਡਾਵੀਆਈ</language>
<language type="rof">ਰੋਮਬੋ</language>
- <language type="root">ਰੂਟ</language>
<language type="ru">ਰੂਸੀ</language>
<language type="rup">ਅਰੋਮੀਨੀਆਈ</language>
<language type="rw">ਕਿਨਿਆਰਵਾਂਡਾ</language>
@@ -3126,9 +3125,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>ਸੈਂਟਾ ਇਸਾਬੇਲ</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>ਹੋਨੋਲੁਲੂ</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>ਕੋਔਰਡੀਨੇਟੇਡ ਵਿਆਪਕ ਵੇਲਾ</standard>
@@ -3248,12 +3244,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>ਬ੍ਰੋਕਨ ਹਿਲ</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>ਕਰੀ</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>ਮੈਲਬੋਰਨ</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>ਕਰੀ</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>ਹੋਬਾਰਟ</exemplarCity>
</zone>
@@ -4286,6 +4282,9 @@
<zone type="America/Nome">
<exemplarCity>ਨੋਮ</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>ਹੋਨੋਲੁਲੂ</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>ਜੋਨਸਟਨ</exemplarCity>
</zone>
@@ -6776,7 +6775,7 @@
<displayName>ਪੱਛਮੀ ਅਫ਼ਰੀਕੀ (CFA) ਫ੍ਰੈਂਕ</displayName>
<displayName count="one">ਪੱਛਮੀ ਅਫ਼ਰੀਕੀ (CFA) ਫ੍ਰੈਂਕ</displayName>
<displayName count="other">ਪੱਛਮੀ ਅਫ਼ਰੀਕੀ (CFA) ਫ੍ਰੈਂਕ</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>ਫ੍ਰੈਂਕ (CFP)</displayName>
@@ -7020,7 +7019,7 @@
<unitPattern count="one">{0} ਕੇਰਟ</unitPattern>
<unitPattern count="other">{0} ਕੇਰਟ</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>ਮਿਲੀਗ੍ਰਾਮ ਪ੍ਰਤੀ ਡੈਸੀਲਿਟਰ</displayName>
<unitPattern count="one">{0} ਮਿਲੀਗ੍ਰਾਮ ਪ੍ਰਤੀ ਡੈਸੀਲਿਟਰ</unitPattern>
<unitPattern count="other">{0} ਮਿਲੀਗ੍ਰਾਮ ਪ੍ਰਤੀ ਡੈਸੀਲਿਟਰ</unitPattern>
@@ -8055,7 +8054,7 @@
<unitPattern count="one">{0} ਕੇਰਟ</unitPattern>
<unitPattern count="other">{0} ਕੇਰਟ</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>ਮਿ.ਗ੍ਰਾ./ਡੈ.ਲਿ.</displayName>
<unitPattern count="one">{0}ਮਿਗ੍ਰਾ/ਡੈ.ਲਿ</unitPattern>
<unitPattern count="other">{0}ਮਿਗ੍ਰਾ/ਡੈ.ਲਿ</unitPattern>
@@ -8402,8 +8401,8 @@
</unit>
<unit type="length-micrometer">
<displayName>ਮਾਈਕਰੋਮੀਟਰ</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>ਨੈ.ਮੀ.</displayName>
@@ -8525,9 +8524,9 @@
<unitPattern count="other">{0} ਮਿ.ਗ੍ਰਾ.</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>ਅਮਰੀਕੀ ਟਨ</displayName>
@@ -9254,8 +9253,8 @@
</unit>
<unit type="length-micrometer">
<displayName draft="contributed">ਮਾਇਕ੍ਰੋ. ਮੀ.</displayName>
- <unitPattern count="one" draft="contributed">{0} µm</unitPattern>
- <unitPattern count="other" draft="contributed">{0} µm</unitPattern>
+ <unitPattern count="one" draft="contributed">{0} μm</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName draft="contributed">ਨੈ.ਮੀ.</displayName>
diff --git a/common/main/pcm.xml b/common/main/pcm.xml
index 1113dff..d8e9f59 100644
--- a/common/main/pcm.xml
+++ b/common/main/pcm.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -2245,12 +2245,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Brókún Hil</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Kọ́ri</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Mẹ́lbọn</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Kọ́ri</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hóbat</exemplarCity>
</zone>
@@ -5436,7 +5436,7 @@
<displayName>Wẹ́st Afríká Sẹ́fa Frank</displayName>
<displayName count="one">Wẹ́st Afríká Sẹ́fa frank</displayName>
<displayName count="other">Wẹ́st Afríká Sẹ́fa franks</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>Frẹ́nch Poliníshiá Frank</displayName>
@@ -5679,7 +5679,7 @@
<unitPattern count="one">{0} Karat</unitPattern>
<unitPattern count="other">{0} Karat</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>Mílígram-dẹm Fọ Ẹ́vrí Dẹsílíta</displayName>
<unitPattern count="one">{0} Mílígram Fọ Ẹ́vrí Dẹsílíta</unitPattern>
<unitPattern count="other">{0} Mílígram Fọ Ẹ́vrí Dẹsílíta</unitPattern>
@@ -6529,7 +6529,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>n{0}</unitPrefixPattern>
@@ -6714,7 +6714,7 @@
<unitPattern count="one">{0} kar</unitPattern>
<unitPattern count="other">{0} kar</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -7060,9 +7060,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µmíta</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μmíta</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -7184,9 +7184,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>Tọns</displayName>
@@ -7564,7 +7564,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>n{0}</unitPrefixPattern>
diff --git a/common/main/pl.xml b/common/main/pl.xml
index 018849a..32a8871 100644
--- a/common/main/pl.xml
+++ b/common/main/pl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -481,7 +481,6 @@
<language type="ro_MD">mołdawski</language>
<language type="rof">rombo</language>
<language type="rom">cygański</language>
- <language type="root">język rdzenny</language>
<language type="rtm">rotumański</language>
<language type="ru">rosyjski</language>
<language type="rue">rusiński</language>
@@ -3533,9 +3532,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>uniwersalny czas koordynowany</standard>
@@ -3655,12 +3651,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -4693,6 +4689,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -8437,7 +8436,7 @@
<unitPattern count="many">{0} karatów</unitPattern>
<unitPattern count="other">{0} karata</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>miligramy na decylitr</displayName>
<unitPattern count="one">{0} miligram na decylitr</unitPattern>
<unitPattern count="few">{0} miligramy na decylitr</unitPattern>
@@ -11461,7 +11460,7 @@
<unitPattern count="many">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="few">{0} mg/dl</unitPattern>
diff --git a/common/main/ps.xml b/common/main/ps.xml
index 05e4a63..803a295 100644
--- a/common/main/ps.xml
+++ b/common/main/ps.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -311,7 +311,6 @@
<language type="ro">رومانیایی</language>
<language type="ro_MD">مولداویایی</language>
<language type="rof">رومبو</language>
- <language type="root">روټ</language>
<language type="ru">روسي</language>
<language type="rup">اروماني</language>
<language type="rw">کینیارونډا</language>
@@ -2644,9 +2643,6 @@
<regionFormat type="daylight">{0} رڼا ورځ وخت</regionFormat>
<regionFormat type="standard">{0} معیاری وخت</regionFormat>
<fallbackFormat>{1} ({0})</fallbackFormat>
- <zone type="Pacific/Honolulu">
- <exemplarCity>هینولولو</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>همغږى نړیوال وخت</standard>
@@ -2766,12 +2762,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>بروکن هل</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>کرري</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>میلبورن</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>کرري</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>هوبارټ</exemplarCity>
</zone>
@@ -3804,6 +3800,9 @@
<zone type="America/Nome">
<exemplarCity>نوم</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>هینولولو</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>جانسټن</exemplarCity>
</zone>
@@ -6240,7 +6239,7 @@
<unitPattern count="one">{0} قيراط</unitPattern>
<unitPattern count="other">{0} قيراط</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>ملي ګرام في ډيسي ليټر</displayName>
<unitPattern count="one">{0} ملي ګرام في ډيسي ليټر</unitPattern>
<unitPattern count="other">{0} ملي ګرام في ډيسي ليټر</unitPattern>
@@ -7088,7 +7087,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>n{0}</unitPrefixPattern>
@@ -7273,7 +7272,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -7619,9 +7618,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µmeters</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μmeters</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -7743,9 +7742,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>ټنز</displayName>
@@ -8123,7 +8122,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>n{0}</unitPrefixPattern>
diff --git a/common/main/pt.xml b/common/main/pt.xml
index 14d099d..a37c9fb 100644
--- a/common/main/pt.xml
+++ b/common/main/pt.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -423,7 +423,6 @@
<language type="ro_MD">moldávio</language>
<language type="rof">rombo</language>
<language type="rom">romani</language>
- <language type="root">raiz</language>
<language type="ru">russo</language>
<language type="rup">aromeno</language>
<language type="rw">quiniaruanda</language>
@@ -2903,9 +2902,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Horário Universal Coordenado</standard>
@@ -3025,12 +3021,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -4063,6 +4059,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -6952,7 +6951,7 @@
<displayName>Franco CFA de BCEAO</displayName>
<displayName count="one">Franco CFA de BCEAO</displayName>
<displayName count="other">Francos CFA de BCEAO</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>Paládio</displayName>
@@ -7288,7 +7287,7 @@
<unitPattern count="one">{0} kilate</unitPattern>
<unitPattern count="other">{0} kilates</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>miligramas por decilitro</displayName>
<unitPattern count="one">{0} miligrama por decilitro</unitPattern>
<unitPattern count="other">{0} miligramas por decilitro</unitPattern>
@@ -8389,7 +8388,7 @@
<unitPattern count="one">{0} k</unitPattern>
<unitPattern count="other">{0} k</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="other">{0} mg/dl</unitPattern>
diff --git a/common/main/pt_PT.xml b/common/main/pt_PT.xml
index 37f4a9b..342cae1 100644
--- a/common/main/pt_PT.xml
+++ b/common/main/pt_PT.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -422,7 +422,6 @@
<language type="ro_MD">moldávio</language>
<language type="rof">rombo</language>
<language type="rom">↑↑↑</language>
- <language type="root">↑↑↑</language>
<language type="ru">russo</language>
<language type="rup">↑↑↑</language>
<language type="rw">quiniaruanda</language>
@@ -2841,9 +2840,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Hora Coordenada Universal</standard>
@@ -2963,12 +2959,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -4001,6 +3997,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -6362,7 +6361,7 @@
<displayName>franco CFA (BCEAO)</displayName>
<displayName count="one">franco CFA (BCEAO)</displayName>
<displayName count="other">francos CFA (BCEAO)</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>franco CFP</displayName>
@@ -6639,7 +6638,7 @@
<unitPattern count="one">{0} quilate</unitPattern>
<unitPattern count="other">{0} quilates</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
@@ -7740,7 +7739,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
@@ -8086,9 +8085,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -8210,9 +8209,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>↑↑↑</displayName>
diff --git a/common/main/qu.xml b/common/main/qu.xml
index 811826b..ef87bbf 100644
--- a/common/main/qu.xml
+++ b/common/main/qu.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -2060,9 +2060,6 @@
<regionFormat type="daylight">{0} (+1)</regionFormat>
<regionFormat type="standard">{0} (+0)</regionFormat>
<fallbackFormat>{1} ({0})</fallbackFormat>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Tiqsimuyuntin Tupachisqa Hora</standard>
@@ -2182,12 +2179,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -3220,6 +3217,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -5404,7 +5404,7 @@
<displayName>↑↑↑</displayName>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
@@ -6255,7 +6255,7 @@
<displayName>↑↑↑</displayName>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
diff --git a/common/main/rm.xml b/common/main/rm.xml
index abc879d..20cb798 100644
--- a/common/main/rm.xml
+++ b/common/main/rm.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -4206,7 +4206,7 @@
<displayName>franc CFA da l’Africa dal Vest</displayName>
<displayName count="one">franc CFA da l’Africa dal Vest</displayName>
<displayName count="other">francs CFA da l’Africa dal Vest</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName draft="contributed">palladi</displayName>
diff --git a/common/main/ro.xml b/common/main/ro.xml
index 021af00..d238e33 100644
--- a/common/main/ro.xml
+++ b/common/main/ro.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -421,7 +421,6 @@
<language type="ro">română</language>
<language type="rof">rombo</language>
<language type="rom">romani</language>
- <language type="root" draft="contributed">rădăcină</language>
<language type="ru">rusă</language>
<language type="rup">aromână</language>
<language type="rw">kinyarwanda</language>
@@ -3656,9 +3655,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Timpul universal coordonat</standard>
@@ -3778,12 +3774,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -4816,6 +4812,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -7656,7 +7655,7 @@
<displayName count="one">franc CFA BCEAO</displayName>
<displayName count="few">franci CFA BCEAO</displayName>
<displayName count="other">franci CFA BCEAO</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>paladiu</displayName>
@@ -7984,7 +7983,7 @@
<unitPattern count="few">{0} karate</unitPattern>
<unitPattern count="other">{0} de karate</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>miligrame pe decilitru</displayName>
<unitPattern count="one">{0} miligram pe decilitru</unitPattern>
<unitPattern count="few">{0} miligrame pe decilitru</unitPattern>
@@ -8996,7 +8995,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>n{0}</unitPrefixPattern>
@@ -9086,7 +9085,7 @@
<compoundUnitPattern1 count="other">↑↑↑</compoundUnitPattern1>
</compoundUnit>
<compoundUnit type="times">
- <compoundUnitPattern>{0}{1}</compoundUnitPattern>
+ <compoundUnitPattern>{0} {1}</compoundUnitPattern>
</compoundUnit>
<unit type="acceleration-g-force">
<displayName>forță g</displayName>
@@ -9201,7 +9200,7 @@
<unitPattern count="few">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="few">{0} mg/dl</unitPattern>
@@ -9614,10 +9613,10 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="few">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="few">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -9762,10 +9761,10 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="few">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="few">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>t.s.</displayName>
@@ -10213,7 +10212,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>n{0}</unitPrefixPattern>
@@ -10303,7 +10302,7 @@
<compoundUnitPattern1 count="other">↑↑↑</compoundUnitPattern1>
</compoundUnit>
<compoundUnit type="times">
- <compoundUnitPattern>{0}{1}</compoundUnitPattern>
+ <compoundUnitPattern>{0} {1}</compoundUnitPattern>
</compoundUnit>
<unit type="acceleration-g-force">
<unitPattern count="one" draft="contributed">{0} G</unitPattern>
@@ -10480,10 +10479,10 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName draft="contributed">µm</displayName>
- <unitPattern count="one" draft="contributed">{0} µm</unitPattern>
- <unitPattern count="few" draft="contributed">{0} µm</unitPattern>
- <unitPattern count="other" draft="contributed">{0} µm</unitPattern>
+ <displayName draft="contributed">μm</displayName>
+ <unitPattern count="one" draft="contributed">{0} μm</unitPattern>
+ <unitPattern count="few" draft="contributed">{0} μm</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName draft="contributed">nm</displayName>
@@ -10586,10 +10585,10 @@
<unitPattern count="other" draft="contributed">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName draft="contributed">µg</displayName>
- <unitPattern count="one" draft="contributed">{0} µg</unitPattern>
- <unitPattern count="few" draft="contributed">{0} µg</unitPattern>
- <unitPattern count="other" draft="contributed">{0} µg</unitPattern>
+ <displayName draft="contributed">μg</displayName>
+ <unitPattern count="one" draft="contributed">{0} μg</unitPattern>
+ <unitPattern count="few" draft="contributed">{0} μg</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName draft="contributed">t.s.</displayName>
diff --git a/common/main/root.xml b/common/main/root.xml
index 4475585..8edb1fe 100644
--- a/common/main/root.xml
+++ b/common/main/root.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -3996,6 +3996,7 @@
<symbol alt="narrow">$</symbol>
</currency>
<currency type="PHP">
+ <symbol>₱</symbol>
<symbol alt="narrow">₱</symbol>
</currency>
<currency type="PKR">
@@ -4085,7 +4086,7 @@
<symbol alt="narrow">$</symbol>
</currency>
<currency type="XOF">
- <symbol>CFA</symbol>
+ <symbol>F CFA</symbol>
</currency>
<currency type="XPF">
<symbol>CFPF</symbol>
@@ -4261,7 +4262,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>n{0}</unitPrefixPattern>
@@ -4426,7 +4427,7 @@
<displayName>kt</displayName>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="other">{0} mg/dL</unitPattern>
</unit>
@@ -4574,8 +4575,8 @@
<unitPattern count="other">{0} ms</unitPattern>
</unit>
<unit type="duration-microsecond">
- <displayName>µs</displayName>
- <unitPattern count="other">{0} µs</unitPattern>
+ <displayName>μs</displayName>
+ <unitPattern count="other">{0} μs</unitPattern>
</unit>
<unit type="duration-nanosecond">
<displayName>ns</displayName>
@@ -4606,8 +4607,7 @@
<unitPattern count="other">{0} cal</unitPattern>
</unit>
<unit type="energy-foodcalorie">
- <displayName>Cal</displayName>
- <unitPattern count="other">{0} Cal</unitPattern>
+ <alias source="locale" path="../unit[@type='energy-kilocalorie']"/>
</unit>
<unit type="energy-kilojoule">
<displayName>kJ</displayName>
@@ -4678,16 +4678,13 @@
<unitPattern count="other">{0} ppi</unitPattern>
</unit>
<unit type="graphics-dot-per-centimeter">
- <displayName>dpcm</displayName>
- <unitPattern count="other">{0} dpcm</unitPattern>
+ <alias source="locale" path="../unit[@type='graphics-pixel-per-centimeter']"/>
</unit>
<unit type="graphics-dot-per-inch">
- <displayName>dpi</displayName>
- <unitPattern count="other">{0} dpi</unitPattern>
+ <alias source="locale" path="../unit[@type='graphics-pixel-per-inch']"/>
</unit>
<unit type="graphics-dot">
- <displayName>dot</displayName>
- <unitPattern count="other">{0} dot</unitPattern>
+ <alias source="locale" path="../unit[@type='graphics-pixel']"/>
</unit>
<unit type="length-earth-radius">
<displayName>R⊕</displayName>
@@ -4717,8 +4714,8 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -4817,8 +4814,8 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tn</displayName>
diff --git a/common/main/ru.xml b/common/main/ru.xml
index dc0dd59..7d25919 100644
--- a/common/main/ru.xml
+++ b/common/main/ru.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -422,7 +422,6 @@
<language type="ro_MD">молдавский</language>
<language type="rof">ромбо</language>
<language type="rom">цыганский</language>
- <language type="root">праязык</language>
<language type="ru">русский</language>
<language type="rup">арумынский</language>
<language type="rw">киньяруанда</language>
@@ -4038,9 +4037,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Санта-Изабел</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Гонолулу</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Всемирное координированное время</standard>
@@ -4160,12 +4156,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Брокен-Хилл</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Керри</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Мельбурн</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Керри</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Хобарт</exemplarCity>
</zone>
@@ -5198,6 +5194,9 @@
<zone type="America/Nome">
<exemplarCity>Ном</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Гонолулу</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Джонстон</exemplarCity>
</zone>
@@ -8193,7 +8192,7 @@
<displayName count="few">франка КФА ВСЕАО</displayName>
<displayName count="many">франков КФА ВСЕАО</displayName>
<displayName count="other">франка КФА ВСЕАО</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>Палладий</displayName>
@@ -8872,7 +8871,7 @@
<unitPattern count="many">{0} карат</unitPattern>
<unitPattern count="other">{0} карата</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>миллиграммы на децилитр</displayName>
<unitPattern count="one">{0} миллиграмм на децилитр</unitPattern>
<unitPattern count="few">{0} миллиграмма на децилитр</unitPattern>
@@ -12267,7 +12266,7 @@
<unitPattern count="many">{0} кар</unitPattern>
<unitPattern count="other">{0} кар</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>мг/дл</displayName>
<unitPattern count="one">{0} мг/дл</unitPattern>
<unitPattern count="few">{0} мг/дл</unitPattern>
diff --git a/common/main/sd.xml b/common/main/sd.xml
index cbac2d2..b35aa46 100644
--- a/common/main/sd.xml
+++ b/common/main/sd.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -311,7 +311,6 @@
<language type="ro">روماني</language>
<language type="ro_MD">مالديوي</language>
<language type="rof">رومبو</language>
- <language type="root">روٽ</language>
<language type="ru">روسي</language>
<language type="rup">ارومينين</language>
<language type="rw">ڪنيار وانڊا</language>
@@ -2612,9 +2611,6 @@
<regionFormat type="daylight">{0} ڏينهن جو وقت</regionFormat>
<regionFormat type="standard">{0} معياري وقت</regionFormat>
<fallbackFormat>{1} ({0})</fallbackFormat>
- <zone type="Pacific/Honolulu">
- <exemplarCity>هونو لولو</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>گڏيل دنياوي وقت</standard>
@@ -2737,12 +2733,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>بروڪن هل</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>ڪري</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>ميلبورن</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>ڪري</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>هوبارٽ</exemplarCity>
</zone>
@@ -3775,6 +3771,9 @@
<zone type="America/Nome">
<exemplarCity>نوم</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>هونو لولو</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>جانسٹن</exemplarCity>
</zone>
@@ -5949,7 +5948,7 @@
<displayName>اولهه آفريڪا فرينڪ</displayName>
<displayName count="one">اولهه آفريڪا فرينڪ</displayName>
<displayName count="other">اولهه آفريڪا فرينڪ</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>CFP فرينڪ</displayName>
@@ -6192,7 +6191,7 @@
<unitPattern count="one">{0} قيراط</unitPattern>
<unitPattern count="other">{0} قيراط</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>ملي گرامز في ڊيسي ليٽر</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} ملي گرامز في ڊيسي ليٽر</unitPattern>
@@ -7042,7 +7041,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>n{0}</unitPrefixPattern>
@@ -7227,7 +7226,7 @@
<unitPattern count="one">{0} قيراط</unitPattern>
<unitPattern count="other">{0} قيراط</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>ملي گرامز في ڊيسي ليٽر</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -7698,8 +7697,8 @@
</unit>
<unit type="mass-microgram">
<displayName>↑↑↑</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>ٽن</displayName>
@@ -8077,7 +8076,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>n{0}</unitPrefixPattern>
diff --git a/common/main/sd_Deva.xml b/common/main/sd_Deva.xml
index 0133236..be7ab64 100644
--- a/common/main/sd_Deva.xml
+++ b/common/main/sd_Deva.xml
@@ -319,7 +319,7 @@
<quarter type="1">1</quarter>
<quarter type="2">2</quarter>
<quarter type="3">3</quarter>
- <quarter type="4">1</quarter>
+ <quarter type="4">4</quarter>
</quarterWidth>
<quarterWidth type="wide">
<quarter type="1">पहिरों पाड़ो</quarter>
diff --git a/common/main/se.xml b/common/main/se.xml
index b34ba4d..a315df0 100644
--- a/common/main/se.xml
+++ b/common/main/se.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -1913,10 +1913,10 @@
<unitPattern count="other" draft="contributed">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName draft="unconfirmed">µm</displayName>
- <unitPattern count="one" draft="unconfirmed">{0} µm</unitPattern>
- <unitPattern count="two" draft="unconfirmed">{0} µm</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0} µm</unitPattern>
+ <displayName draft="unconfirmed">μm</displayName>
+ <unitPattern count="one" draft="unconfirmed">{0} μm</unitPattern>
+ <unitPattern count="two" draft="unconfirmed">{0} μm</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName draft="unconfirmed">nm</displayName>
@@ -1994,9 +1994,9 @@
<unitPattern count="other" draft="unconfirmed">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <unitPattern count="one" draft="unconfirmed">{0} µg</unitPattern>
- <unitPattern count="two" draft="unconfirmed">{0} µg</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0} µg</unitPattern>
+ <unitPattern count="one" draft="unconfirmed">{0} μg</unitPattern>
+ <unitPattern count="two" draft="unconfirmed">{0} μg</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName draft="unconfirmed">eangas tonna à 907kg</displayName>
@@ -2308,10 +2308,10 @@
<unitPattern count="other" draft="contributed">{0}mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName draft="unconfirmed">µm</displayName>
- <unitPattern count="one" draft="unconfirmed">{0}µm</unitPattern>
- <unitPattern count="two" draft="unconfirmed">{0}µm</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0}µm</unitPattern>
+ <displayName draft="unconfirmed">μm</displayName>
+ <unitPattern count="one" draft="unconfirmed">{0}μm</unitPattern>
+ <unitPattern count="two" draft="unconfirmed">{0}μm</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0}μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName draft="unconfirmed">nm</displayName>
@@ -2373,9 +2373,9 @@
<unitPattern count="other" draft="unconfirmed">{0}mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <unitPattern count="one" draft="unconfirmed">{0}µg</unitPattern>
- <unitPattern count="two" draft="unconfirmed">{0}µg</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0}µg</unitPattern>
+ <unitPattern count="one" draft="unconfirmed">{0}μg</unitPattern>
+ <unitPattern count="two" draft="unconfirmed">{0}μg</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0}μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName draft="unconfirmed">eangas tonna</displayName>
diff --git a/common/main/si.xml b/common/main/si.xml
index 5fec634..f9a76a7 100644
--- a/common/main/si.xml
+++ b/common/main/si.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -322,7 +322,6 @@
<language type="ro">රොමේනියානු</language>
<language type="ro_MD">මොල්ඩවිආනු</language>
<language type="rof">රෝම්බෝ</language>
- <language type="root">රූට්</language>
<language type="ru">රුසියානු</language>
<language type="rup">ඇරොමානියානු</language>
<language type="rw">කින්යර්වන්ඩා</language>
@@ -2389,9 +2388,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>සැන්ටා ඉසබෙල්</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>හොනොලුලු</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>සමකක්ෂ සාර්ව වේලාව</standard>
@@ -2511,12 +2507,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>බ්රෝකන් හිල්</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>කුරී</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>මෙල්බෝර්න්</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>කුරී</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>හෝබාර්ට්</exemplarCity>
</zone>
@@ -3549,6 +3545,9 @@
<zone type="America/Nome">
<exemplarCity>නෝම්</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>හොනොලුලු</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>ජොන්ස්ටන්</exemplarCity>
</zone>
@@ -5989,7 +5988,7 @@
<unitPattern count="one">ක්රාත් {0}</unitPattern>
<unitPattern count="other">ක්රාත් {0}</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>ඩෙසිලීටරයකට මිලිග්රෑම්</displayName>
<unitPattern count="one">ඩෙසිලීටරයකට මිලිග්රෑම් {0}</unitPattern>
<unitPattern count="other">ඩෙසිලීටරයකට මිලිග්රෑම් {0}</unitPattern>
@@ -6839,7 +6838,7 @@
<unitPrefixPattern>මි{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>නැ{0}</unitPrefixPattern>
@@ -7024,7 +7023,7 @@
<unitPattern count="one">ක්රාත් {0}</unitPattern>
<unitPattern count="other">ක්රාත් {0}</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>මිග්රෑ/ඩෙලි</displayName>
<unitPattern count="one">{0} මිග්රෑ/ඩෙලි</unitPattern>
<unitPattern count="other">{0} මිග්රෑ/ඩෙලි</unitPattern>
@@ -7874,7 +7873,7 @@
<unitPrefixPattern>මි{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>නැ{0}</unitPrefixPattern>
diff --git a/common/main/sk.xml b/common/main/sk.xml
index 44d1da1..741b24b 100644
--- a/common/main/sk.xml
+++ b/common/main/sk.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -417,7 +417,6 @@
<language type="ro_MD">moldavčina</language>
<language type="rof">rombo</language>
<language type="rom">rómčina</language>
- <language type="root">koreň</language>
<language type="ru">ruština</language>
<language type="rup">arumunčina</language>
<language type="rw">rwandčina</language>
@@ -2773,10 +2772,10 @@
<displayName>deň týždňa v mesiaci</displayName>
</field>
<field type="weekdayOfMonth-short">
- <displayName>d. týž. v mes.</displayName>
+ <displayName>d. týž. v mes.</displayName>
</field>
<field type="weekdayOfMonth-narrow">
- <displayName>d. týž. v mes.</displayName>
+ <displayName>d. týž. v mes.</displayName>
</field>
<field type="sun">
<relative type="-1">minulú nedeľu</relative>
@@ -3303,14 +3302,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <short>
- <generic draft="contributed">HST</generic>
- <standard draft="contributed">HST</standard>
- <daylight draft="contributed">HDT</daylight>
- </short>
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>koordinovaný svetový čas</standard>
@@ -3433,12 +3424,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -4471,6 +4462,14 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <short>
+ <generic draft="contributed">HST</generic>
+ <standard draft="contributed">HST</standard>
+ <daylight draft="contributed">HDT</daylight>
+ </short>
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -8120,7 +8119,7 @@
<displayName count="few">západoafrické franky</displayName>
<displayName count="many">západoafrického franku</displayName>
<displayName count="other">západoafrických frankov</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName draft="contributed">paládium</displayName>
@@ -8560,7 +8559,7 @@
<unitPattern count="many">{0} karátu</unitPattern>
<unitPattern count="other">{0} karátov</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>miligramy na deciliter</displayName>
<unitPattern count="one">{0} miligram na deciliter</unitPattern>
<unitPattern count="few">{0} miligramy na deciliter</unitPattern>
@@ -9959,7 +9958,7 @@
<unitPattern count="many">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="few">{0} mg/dl</unitPattern>
@@ -10439,11 +10438,11 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="few">{0} µm</unitPattern>
- <unitPattern count="many">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="few">{0} μm</unitPattern>
+ <unitPattern count="many">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -10611,11 +10610,11 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="few">{0} µg</unitPattern>
- <unitPattern count="many">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="few">{0} μg</unitPattern>
+ <unitPattern count="many">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>to</displayName>
@@ -11486,11 +11485,11 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="few">{0} µm</unitPattern>
- <unitPattern count="many">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="few">{0} μm</unitPattern>
+ <unitPattern count="many">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -11615,11 +11614,11 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName draft="contributed">µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="few">{0} µg</unitPattern>
- <unitPattern count="many">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName draft="contributed">μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="few">{0} μg</unitPattern>
+ <unitPattern count="many">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName draft="contributed">to</displayName>
diff --git a/common/main/sl.xml b/common/main/sl.xml
index 03d9009..afb1d7b 100644
--- a/common/main/sl.xml
+++ b/common/main/sl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -403,7 +403,6 @@
<language type="ro_MD">moldavščina</language>
<language type="rof">rombo</language>
<language type="rom">romščina</language>
- <language type="root">rootščina</language>
<language type="ru">ruščina</language>
<language type="rup">aromunščina</language>
<language type="rw">ruandščina</language>
@@ -2922,9 +2921,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>univerzalni koordinirani čas</standard>
@@ -3044,12 +3040,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -4082,6 +4078,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -7008,7 +7007,7 @@
<displayName count="two">zahodnoafriška franka CFA</displayName>
<displayName count="few">zahodnoafriški franki CFA</displayName>
<displayName count="other">zahodnoafriških frankov CFA</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>paladij</displayName>
@@ -7340,7 +7339,7 @@
<unitPattern count="few">{0} karati</unitPattern>
<unitPattern count="other">{0} karatov</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>miligrami na deciliter</displayName>
<unitPattern count="one">{0} miligram na deciliter</unitPattern>
<unitPattern count="two">{0} miligrama na deciliter</unitPattern>
@@ -8739,7 +8738,7 @@
<unitPattern count="few">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="two">{0} mg/dl</unitPattern>
@@ -9219,11 +9218,11 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="two">{0} µm</unitPattern>
- <unitPattern count="few">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="two">{0} μm</unitPattern>
+ <unitPattern count="few">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -9391,11 +9390,11 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="two">{0} µg</unitPattern>
- <unitPattern count="few">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="two">{0} μg</unitPattern>
+ <unitPattern count="few">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>sh tn</displayName>
@@ -9913,7 +9912,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>n{0}</unitPrefixPattern>
diff --git a/common/main/smn.xml b/common/main/smn.xml
index d54ffca..499af93 100644
--- a/common/main/smn.xml
+++ b/common/main/smn.xml
@@ -309,7 +309,6 @@
<language type="ro">romaniakielâ</language>
<language type="rof">rombo</language>
<language type="rom">roomaankielâ</language>
- <language type="root">ruotâs</language>
<language type="ru">ruošâkielâ</language>
<language type="rup">aromaniakielâ</language>
<language type="rw">ruandakielâ</language>
diff --git a/common/main/so.xml b/common/main/so.xml
index 9e84c60..f663136 100644
--- a/common/main/so.xml
+++ b/common/main/so.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -207,7 +207,6 @@
<language type="ro">Romanka</language>
<language type="ro_MD">↑↑↑</language>
<language type="rof">Rombo</language>
- <language type="root">Xidid</language>
<language type="ru">Ruush</language>
<language type="rw">Ruwaandha</language>
<language type="rwk">Raawa</language>
@@ -6725,12 +6724,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Boroken Hil</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Kuriy</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melboon</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Kuriy</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hubaart</exemplarCity>
</zone>
@@ -12679,7 +12678,7 @@
<unitPattern count="one">{0} karaat</unitPattern>
<unitPattern count="other">{0} karaat</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>miligaraam disilitirkiiba</displayName>
<unitPattern count="one">{0} miligaraam disilitirkiiba</unitPattern>
<unitPattern count="other">{0} miligaraam disilitirkiiba</unitPattern>
@@ -13714,7 +13713,7 @@
<unitPattern count="one">{0} kr</unitPattern>
<unitPattern count="other">{0} kr</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
@@ -14060,7 +14059,7 @@
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µmitir</displayName>
+ <displayName>μmitir</displayName>
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
@@ -14749,7 +14748,7 @@
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
diff --git a/common/main/sq.xml b/common/main/sq.xml
index c7b4769..5a94b85 100644
--- a/common/main/sq.xml
+++ b/common/main/sq.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -319,7 +319,6 @@
<language type="ro">rumanisht</language>
<language type="ro_MD">moldavisht</language>
<language type="rof">romboisht</language>
- <language type="root">rutisht</language>
<language type="ru">rusisht</language>
<language type="rup">vllahisht</language>
<language type="rw">kiniaruandisht</language>
@@ -2400,9 +2399,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa-Izabela</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Ora universale e koordinuar</standard>
@@ -2522,12 +2518,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Brokën-Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Kuri</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melburn</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Kuri</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -3560,6 +3556,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Xhonston</exemplarCity>
</zone>
@@ -5831,7 +5830,7 @@
<displayName>Franga e Bregut të Fildishtë</displayName>
<displayName count="one">frangë e Bregut të Fildishtë</displayName>
<displayName count="other">franga të Bregut të Fildishtë</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>Franga franceze e Polinezisë</displayName>
@@ -6076,7 +6075,7 @@
<unitPattern count="one">{0} karat</unitPattern>
<unitPattern count="other">{0} karatë</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>miligramë për decilitër</displayName>
<unitPattern count="one">{0} miligram për decilitër</unitPattern>
<unitPattern count="other">{0} miligramë për decilitër</unitPattern>
@@ -7111,7 +7110,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -7457,9 +7456,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -7581,9 +7580,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tn</displayName>
diff --git a/common/main/sr.xml b/common/main/sr.xml
index afa7b50..49f0af1 100644
--- a/common/main/sr.xml
+++ b/common/main/sr.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -406,7 +406,6 @@
<language type="ro_MD">молдавски</language>
<language type="rof">ромбо</language>
<language type="rom">ромски</language>
- <language type="root">рут</language>
<language type="ru">руски</language>
<language type="rup">цинцарски</language>
<language type="rw">кињаруанда</language>
@@ -3226,9 +3225,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Санта Изабел</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Хонолулу</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Координисано универзално време</standard>
@@ -3348,12 +3344,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Брокен Хил</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Кари</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Мелбурн</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Кари</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Хобарт</exemplarCity>
</zone>
@@ -4386,6 +4382,9 @@
<zone type="America/Nome">
<exemplarCity>Ном</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Хонолулу</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Џонстон</exemplarCity>
</zone>
@@ -7593,7 +7592,7 @@
<displayName count="one">ЦФА франак БЦЕАО</displayName>
<displayName count="few">ЦФА франка БЦЕАО</displayName>
<displayName count="other">ЦФА франака БЦЕАО</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>Паладијум</displayName>
@@ -7958,7 +7957,7 @@
<unitPattern count="few">{0} карата</unitPattern>
<unitPattern count="other">{0} карата</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>милиграми по децилитру</displayName>
<unitPattern count="one">{0} милиграм по децилитру</unitPattern>
<unitPattern count="few">{0} милиграма по децилитру</unitPattern>
@@ -9175,7 +9174,7 @@
<unitPattern count="few">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="few">{0} mg/dL</unitPattern>
@@ -9588,10 +9587,10 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="few">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="few">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -9736,10 +9735,10 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="few">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="few">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tn</displayName>
diff --git a/common/main/sr_Cyrl_BA.xml b/common/main/sr_Cyrl_BA.xml
index 4d90def..24b0929 100644
--- a/common/main/sr_Cyrl_BA.xml
+++ b/common/main/sr_Cyrl_BA.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -2534,9 +2534,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity draft="contributed">↑↑↑</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity draft="contributed">↑↑↑</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard draft="contributed">Координисано универзално вријеме</standard>
@@ -2656,10 +2653,10 @@
<zone type="Australia/Broken_Hill">
<exemplarCity draft="contributed">↑↑↑</exemplarCity>
</zone>
- <zone type="Australia/Currie">
+ <zone type="Australia/Melbourne">
<exemplarCity draft="contributed">↑↑↑</exemplarCity>
</zone>
- <zone type="Australia/Melbourne">
+ <zone type="Australia/Currie">
<exemplarCity draft="contributed">↑↑↑</exemplarCity>
</zone>
<zone type="Australia/Hobart">
@@ -3694,6 +3691,9 @@
<zone type="America/Nome">
<exemplarCity draft="contributed">↑↑↑</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity draft="contributed">↑↑↑</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity draft="contributed">↑↑↑</exemplarCity>
</zone>
@@ -6302,7 +6302,7 @@
<unitPattern count="few" draft="contributed">↑↑↑</unitPattern>
<unitPattern count="other" draft="contributed">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName draft="contributed">↑↑↑</displayName>
<unitPattern count="one" draft="contributed">↑↑↑</unitPattern>
<unitPattern count="few" draft="contributed">↑↑↑</unitPattern>
@@ -7517,7 +7517,7 @@
<unitPattern count="few" draft="contributed">↑↑↑</unitPattern>
<unitPattern count="other" draft="contributed">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName draft="contributed">↑↑↑</displayName>
<unitPattern count="one" draft="contributed">↑↑↑</unitPattern>
<unitPattern count="few" draft="contributed">↑↑↑</unitPattern>
diff --git a/common/main/sr_Latn.xml b/common/main/sr_Latn.xml
index 8bd6beb..1defefc 100644
--- a/common/main/sr_Latn.xml
+++ b/common/main/sr_Latn.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -396,7 +396,6 @@
<language type="ro_MD">moldavski</language>
<language type="rof">rombo</language>
<language type="rom">romski</language>
- <language type="root">rut</language>
<language type="ru">ruski</language>
<language type="rup">cincarski</language>
<language type="rw">kinjaruanda</language>
@@ -3106,9 +3105,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Izabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Koordinisano univerzalno vreme</standard>
@@ -3228,12 +3224,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hil</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Kari</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melburn</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Kari</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -4266,6 +4262,9 @@
<zone type="America/Nome">
<exemplarCity>Nom</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Džonston</exemplarCity>
</zone>
@@ -7468,7 +7467,7 @@
<displayName count="one">CFA franak BCEAO</displayName>
<displayName count="few">CFA franka BCEAO</displayName>
<displayName count="other">CFA franaka BCEAO</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>Paladijum</displayName>
@@ -7833,7 +7832,7 @@
<unitPattern count="few">{0} karata</unitPattern>
<unitPattern count="other">{0} karata</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>miligrami po decilitru</displayName>
<unitPattern count="one">{0} miligram po decilitru</unitPattern>
<unitPattern count="few">{0} miligrama po decilitru</unitPattern>
@@ -8900,7 +8899,7 @@
<unitPattern count="few">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="few">{0} mg/dL</unitPattern>
@@ -9272,10 +9271,10 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="few">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="few">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -9335,15 +9334,12 @@
</unit>
<unit type="length-furlong">
<displayName>furlonzi</displayName>
- <unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="few">{0} fur</unitPattern>
- <unitPattern count="other">↑↑↑</unitPattern>
</unit>
<unit type="length-fathom">
<displayName>hv</displayName>
<unitPattern count="one">{0} fth</unitPattern>
<unitPattern count="few">{0} fth</unitPattern>
- <unitPattern count="other">↑↑↑</unitPattern>
</unit>
<unit type="length-nautical-mile">
<displayName>nmi</displayName>
@@ -9396,10 +9392,10 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="few">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="few">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tn</displayName>
@@ -9916,18 +9912,6 @@
<unitPattern count="few" draft="contributed">{0} sg</unitPattern>
<unitPattern count="other" draft="contributed">{0} sg</unitPattern>
</unit>
- <unit type="length-furlong">
- <displayName>furlonzi</displayName>
- <unitPattern count="one">↑↑↑</unitPattern>
- <unitPattern count="few">{0} fur</unitPattern>
- <unitPattern count="other">↑↑↑</unitPattern>
- </unit>
- <unit type="length-fathom">
- <displayName>hv</displayName>
- <unitPattern count="one">{0} fth</unitPattern>
- <unitPattern count="few">{0} fth</unitPattern>
- <unitPattern count="other">↑↑↑</unitPattern>
- </unit>
<unit type="mass-kilogram">
<displayName>kg</displayName>
<unitPattern count="one">{0} kg</unitPattern>
diff --git a/common/main/sv.xml b/common/main/sv.xml
index 00487ef..90a14ab 100644
--- a/common/main/sv.xml
+++ b/common/main/sv.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -482,7 +482,6 @@
<language type="ro_MD">moldaviska</language>
<language type="rof">rombo</language>
<language type="rom">romani</language>
- <language type="root">rot</language>
<language type="rtm">rotumänska</language>
<language type="ru">ryska</language>
<language type="rue">rusyn</language>
@@ -4329,14 +4328,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <short>
- <generic draft="contributed">Honolulutid</generic>
- <standard draft="contributed">Honolulunormaltid</standard>
- <daylight draft="contributed">Honolulusommartid</daylight>
- </short>
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>koordinerad universell tid</standard>
@@ -4459,12 +4450,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -5497,6 +5488,14 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <short>
+ <generic draft="contributed">Honolulutid</generic>
+ <standard draft="contributed">Honolulunormaltid</standard>
+ <daylight draft="contributed">Honolulusommartid</daylight>
+ </short>
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnstonatollen</exemplarCity>
</zone>
@@ -8574,7 +8573,7 @@
<displayName>västafrikansk franc</displayName>
<displayName count="one">västafrikansk franc</displayName>
<displayName count="other">västafrikanska franc</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>palladium</displayName>
@@ -8941,7 +8940,7 @@
<unitPattern count="one">{0} karat</unitPattern>
<unitPattern count="other">{0} karat</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>milligram per deciliter</displayName>
<unitPattern count="one">{0} milligram per deciliter</unitPattern>
<unitPattern count="other">{0} milligram per deciliter</unitPattern>
@@ -9858,7 +9857,7 @@
<unitPrefixPattern>↑↑↑</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>↑↑↑</unitPrefixPattern>
@@ -10043,7 +10042,7 @@
<unitPattern count="one">{0} kar</unitPattern>
<unitPattern count="other">{0} kar</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="other">{0} mg/dl</unitPattern>
@@ -10893,7 +10892,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>↑↑↑</unitPrefixPattern>
@@ -11078,7 +11077,7 @@
<unitPattern count="one" draft="contributed">{0} krt</unitPattern>
<unitPattern count="other" draft="contributed">{0} krt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName draft="contributed">mg/dL</displayName>
<unitPattern count="one" draft="contributed">{0}mg/dL</unitPattern>
<unitPattern count="other" draft="contributed">{0}mg/dL</unitPattern>
diff --git a/common/main/sw.xml b/common/main/sw.xml
index 2917fca..36c3620 100644
--- a/common/main/sw.xml
+++ b/common/main/sw.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -351,7 +351,6 @@
<language type="ro">Kiromania</language>
<language type="ro_MD">Kimoldova cha Romania</language>
<language type="rof">Kirombo</language>
- <language type="root">Kiroot</language>
<language type="ru">Kirusi</language>
<language type="rup">Kiaromania</language>
<language type="rw">Kinyarwanda</language>
@@ -2473,9 +2472,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Mfumo wa kuratibu saa ulimwenguni</standard>
@@ -2595,12 +2591,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -3633,6 +3629,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -5865,7 +5864,7 @@
<displayName>Faranga ya Afrika Magharibi CFA</displayName>
<displayName count="one">faranga ya Afrika Magharibi CFA</displayName>
<displayName count="other">faranga za Afrika Magharibi CFA</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>Faranga ya CFP</displayName>
@@ -6114,7 +6113,7 @@
<unitPattern count="one">karati {0}</unitPattern>
<unitPattern count="other">karati {0}</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>miligramu kwa kila desilita</displayName>
<unitPattern count="one">miligramu kwa kila desilita</unitPattern>
<unitPattern count="other">miligramu {0} kwa kila desilita</unitPattern>
@@ -7149,7 +7148,7 @@
<unitPattern count="one">karati {0}</unitPattern>
<unitPattern count="other">karati {0}</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
diff --git a/common/main/sw_KE.xml b/common/main/sw_KE.xml
index 1b9b078..e563c58 100644
--- a/common/main/sw_KE.xml
+++ b/common/main/sw_KE.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -347,7 +347,6 @@
<language type="ro">↑↑↑</language>
<language type="ro_MD">Kimoldova cha Romania</language>
<language type="rof">↑↑↑</language>
- <language type="root">Kiroot</language>
<language type="ru">↑↑↑</language>
<language type="rup">↑↑↑</language>
<language type="rw">↑↑↑</language>
@@ -2391,9 +2390,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>↑↑↑</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Saa ya Ulimwenguni</standard>
@@ -2513,10 +2509,10 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
- <zone type="Australia/Currie">
+ <zone type="Australia/Melbourne">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
- <zone type="Australia/Melbourne">
+ <zone type="Australia/Currie">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
<zone type="Australia/Hobart">
@@ -3551,6 +3547,9 @@
<zone type="America/Nome">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>↑↑↑</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
@@ -5844,7 +5843,7 @@
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
@@ -6705,7 +6704,7 @@
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="one">↑↑↑</unitPattern>
<unitPattern count="other">↑↑↑</unitPattern>
diff --git a/common/main/ta.xml b/common/main/ta.xml
index 496e8d8..0058698 100644
--- a/common/main/ta.xml
+++ b/common/main/ta.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -414,7 +414,6 @@
<language type="ro_MD">மோல்டாவியன்</language>
<language type="rof">ரோம்போ</language>
<language type="rom">ரோமானி</language>
- <language type="root">ரூட்</language>
<language type="ru">ரஷியன்</language>
<language type="rup">அரோமானியன்</language>
<language type="rw">கின்யாருவான்டா</language>
@@ -3291,9 +3290,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>சான்டா இசபெல்</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>ஹோனோலூலூ</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>ஒருங்கிணைந்த சர்வதேச நேரம்</standard>
@@ -3413,12 +3409,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>புரோக்கன் ஹில்</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>கியூரி</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>மெல்போர்ன்</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>கியூரி</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>ஹோபர்ட்</exemplarCity>
</zone>
@@ -4451,6 +4447,9 @@
<zone type="America/Nome">
<exemplarCity>நோம்</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>ஹோனோலூலூ</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>ஜோன்ஸ்டன்</exemplarCity>
</zone>
@@ -6769,7 +6768,7 @@
<displayName>மேற்கு ஆப்பிரிக்க CFA ஃப்ராங்க்</displayName>
<displayName count="one">மேற்கு ஆப்பிரிக்க CFA ஃப்ராங்க்</displayName>
<displayName count="other">மேற்கு ஆப்பிரிக்க CFA ஃப்ராங்க்குகள்</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>ஃப்ராங்க் (CFP)</displayName>
@@ -7015,7 +7014,7 @@
<unitPattern count="one">{0} காரட்</unitPattern>
<unitPattern count="other">{0} காரட்கள்</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>மில்லிகிராம்கள்/டெசிலிட்டர்</displayName>
<unitPattern count="one">{0} மில்லிகிராம்/டெசிலிட்டர்</unitPattern>
<unitPattern count="other">{0} மில்லிகிராம்கள்/டெசிலிட்டர்</unitPattern>
@@ -8050,7 +8049,7 @@
<unitPattern count="one">{0} கார.</unitPattern>
<unitPattern count="other">{0} கார.</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>மி.கி./டெ.லி.</displayName>
<unitPattern count="one">{0} மி.கி./டெ.லி.</unitPattern>
<unitPattern count="other">{0} மி.கி./டெ.லி.</unitPattern>
@@ -8396,9 +8395,9 @@
<unitPattern count="other">{0} மி.மீ.</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µமீ.</displayName>
- <unitPattern count="one">{0} µமீ.</unitPattern>
- <unitPattern count="other">{0} µமீ.</unitPattern>
+ <displayName>μமீ.</displayName>
+ <unitPattern count="one">{0} μமீ.</unitPattern>
+ <unitPattern count="other">{0} μமீ.</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>நா.மீ.</displayName>
@@ -8520,9 +8519,9 @@
<unitPattern count="other">{0} மி.கி.</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µகி</displayName>
- <unitPattern count="one">{0} µகி</unitPattern>
- <unitPattern count="other">{0} µகி</unitPattern>
+ <displayName>μகி</displayName>
+ <unitPattern count="one">{0} μகி</unitPattern>
+ <unitPattern count="other">{0} μகி</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>டன்</displayName>
diff --git a/common/main/te.xml b/common/main/te.xml
index 29673a2..6245f5b 100644
--- a/common/main/te.xml
+++ b/common/main/te.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -412,7 +412,6 @@
<language type="ro_MD">మొల్డావియన్</language>
<language type="rof">రోంబో</language>
<language type="rom">రోమానీ</language>
- <language type="root">రూట్</language>
<language type="ru">రష్యన్</language>
<language type="rup">ఆరోమేనియన్</language>
<language type="rw">కిన్యర్వాండా</language>
@@ -3327,9 +3326,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>శాంటా ఇసబెల్</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>హోనోలులు</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>సమన్వయ సార్వజనీన సమయం</standard>
@@ -3449,12 +3445,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>బ్రోకెన్ హిల్</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>కర్రీ</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>మెల్బోర్న్</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>కర్రీ</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>హోబర్ట్</exemplarCity>
</zone>
@@ -4487,6 +4483,9 @@
<zone type="America/Nome">
<exemplarCity>నోమ్</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>హోనోలులు</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>జాన్సటన్</exemplarCity>
</zone>
@@ -6816,7 +6815,7 @@
<displayName>పశ్చిమ ఆఫ్రికన్ సిఏఫ్ఏ ఫ్రాంక్</displayName>
<displayName count="one">పశ్చిమ ఆఫ్రికన్ సిఏఫ్ఏ ఫ్రాంక్</displayName>
<displayName count="other">పశ్చిమ ఆఫ్రికన్ సిఏఫ్ఏ ఫ్రాంక్లు</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>సిఎఫ్పి ఫ్రాంక్</displayName>
@@ -7065,7 +7064,7 @@
<unitPattern count="one">{0} కేరట్</unitPattern>
<unitPattern count="other">{0} కేరట్లు</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>మిల్లీగ్రాములు/డెసిలీటర్</displayName>
<unitPattern count="one">{0} మిల్లీగ్రాము/డెసిలీటర్</unitPattern>
<unitPattern count="other">{0} మిల్లీగ్రాములు/డెసిలీటర్</unitPattern>
@@ -8100,7 +8099,7 @@
<unitPattern count="one">{0} కేర.</unitPattern>
<unitPattern count="other">{0} కేర.</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>మి.గ్రా./డె.లీ.</displayName>
<unitPattern count="one">{0} మి.గ్రా./డె.లీ.</unitPattern>
<unitPattern count="other">{0} మి.గ్రా./డె.లీ.</unitPattern>
diff --git a/common/main/th.xml b/common/main/th.xml
index 20dbb59..14aab19 100644
--- a/common/main/th.xml
+++ b/common/main/th.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -481,7 +481,6 @@
<language type="ro_MD">มอลโดวา</language>
<language type="rof">รอมโบ</language>
<language type="rom">โรมานี</language>
- <language type="root">รูท</language>
<language type="rtm" draft="contributed">โรทูมัน</language>
<language type="ru">รัสเซีย</language>
<language type="rue" draft="contributed">รูซิน</language>
@@ -4503,9 +4502,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>ซานตาอิซาเบล</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>โฮโนลูลู</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>เวลาสากลเชิงพิกัด</standard>
@@ -4625,12 +4621,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>โบรกเคนฮิลล์</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>คูร์รี</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>เมลเบิร์น</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>คูร์รี</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>โฮบาร์ต</exemplarCity>
</zone>
@@ -5663,6 +5659,9 @@
<zone type="America/Nome">
<exemplarCity>นอม</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>โฮโนลูลู</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>จอห์นสตัน</exemplarCity>
</zone>
@@ -8216,7 +8215,7 @@
<currency type="XOF">
<displayName>ฟรังก์เซฟาธนาคารกลางรัฐแอฟริกาตะวันตก</displayName>
<displayName count="other">ฟรังก์เซฟาธนาคารกลางรัฐแอฟริกาตะวันตก</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>พัลเลเดียม</displayName>
@@ -8504,7 +8503,7 @@
<displayName>กะรัต</displayName>
<unitPattern count="other">{0} กะรัต</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>มิลลิกรัมต่อเดซิลิตร</displayName>
<unitPattern count="other">{0} มิลลิกรัมต่อเดซิลิตร</unitPattern>
</unit>
@@ -9357,7 +9356,7 @@
<displayName>กะรัต</displayName>
<unitPattern count="other">{0} กะรัต</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>มก./ดล.</displayName>
<unitPattern count="other">{0} มก./ดล.</unitPattern>
</unit>
diff --git a/common/main/ti.xml b/common/main/ti.xml
index 03f08b3..bbf9cef 100644
--- a/common/main/ti.xml
+++ b/common/main/ti.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -1966,9 +1966,6 @@
<regionFormat type="daylight">{0} (+1)</regionFormat>
<regionFormat type="standard">{0} (+0)</regionFormat>
<fallbackFormat>{1} ({0})</fallbackFormat>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Coordinated Universal Time</standard>
@@ -2088,12 +2085,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -3126,6 +3123,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
diff --git a/common/main/tk.xml b/common/main/tk.xml
index 5c03ae6..386d637 100644
--- a/common/main/tk.xml
+++ b/common/main/tk.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -309,7 +309,6 @@
<language type="ro">rumyn dili</language>
<language type="ro_MD">moldaw dili</language>
<language type="rof">rombo dili</language>
- <language type="root">kök</language>
<language type="ru">rus dili</language>
<language type="rup">arumyn dili</language>
<language type="rw">kinýaruanda dili</language>
@@ -2331,9 +2330,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa-Izabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Gonolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Utgaşdyrylýan ähliumumy wagt</standard>
@@ -2453,12 +2449,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken-Hil</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Kerri</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melburn</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Kerri</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -3491,6 +3487,9 @@
<zone type="America/Nome">
<exemplarCity>Nom</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Gonolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Jonston</exemplarCity>
</zone>
@@ -5669,7 +5668,7 @@
<displayName>KFA BCEAO franky</displayName>
<displayName count="one">KFA BCEAO franky</displayName>
<displayName count="other">KFA BCEAO franky</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>Fransuz ýuwaş umman franky</displayName>
@@ -5910,7 +5909,7 @@
<unitPattern count="one">{0} karat</unitPattern>
<unitPattern count="other">{0} karat</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>milligram/desilitr</displayName>
<unitPattern count="one">{0} milligram/desilitr</unitPattern>
<unitPattern count="other">{0} milligram/desilitr</unitPattern>
@@ -6945,7 +6944,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -7291,9 +7290,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -7415,9 +7414,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tonna</displayName>
diff --git a/common/main/to.xml b/common/main/to.xml
index e3a1adf..1d46438 100644
--- a/common/main/to.xml
+++ b/common/main/to.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -475,7 +475,6 @@
<language type="ro_MD">lea fakamolitāvia</language>
<language type="rof">lea fakalomipō</language>
<language type="rom">lea fakalomani</language>
- <language type="root">lea fakaʻilonga-tefito</language>
<language type="rtm">lea fakalotuma</language>
<language type="ru">lea fakalūsia</language>
<language type="rue">lea fakalusini</language>
@@ -3267,14 +3266,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <short>
- <generic draft="unconfirmed">HTT</generic>
- <standard draft="unconfirmed">HTT</standard>
- <daylight draft="unconfirmed">HTL</daylight>
- </short>
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>taimi fakaemāmani</standard>
@@ -3397,12 +3388,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melipoane</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -4435,6 +4426,14 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <short>
+ <generic draft="unconfirmed">HTT</generic>
+ <standard draft="unconfirmed">HTT</standard>
+ <daylight draft="unconfirmed">HTL</daylight>
+ </short>
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Sionesitoni</exemplarCity>
</zone>
@@ -8072,7 +8071,7 @@
<displayName>kalati</displayName>
<unitPattern count="other">kalati ʻe {0}</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>milikalami he tesilita</displayName>
<unitPattern count="other">milikalami ʻe {0} he tesilita</unitPattern>
</unit>
@@ -8923,7 +8922,7 @@
<displayName>kt</displayName>
<unitPattern count="other">kt ʻe {0}</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mk/tl</displayName>
<unitPattern count="other">mk ʻe {0}/tl</unitPattern>
</unit>
@@ -9202,8 +9201,8 @@
<unitPattern count="other">mm ʻe {0}</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="other">µm ʻe {0}</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="other">μm ʻe {0}</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -9774,7 +9773,7 @@
<displayName>kt</displayName>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName draft="unconfirmed">mk/tl</displayName>
<unitPattern count="other" draft="unconfirmed">{0} mk/tl</unitPattern>
</unit>
@@ -10053,8 +10052,8 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
diff --git a/common/main/tr.xml b/common/main/tr.xml
index 7eae011..66232c7 100644
--- a/common/main/tr.xml
+++ b/common/main/tr.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -482,7 +482,6 @@
<language type="ro_MD">Moldovaca</language>
<language type="rof">Rombo</language>
<language type="rom">Romanca</language>
- <language type="root">Köken</language>
<language type="rtm">Rotuman</language>
<language type="ru">Rusça</language>
<language type="rue">Rusince</language>
@@ -3394,9 +3393,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Eş Güdümlü Evrensel Zaman</standard>
@@ -3516,12 +3512,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -4554,6 +4550,9 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -7484,7 +7483,7 @@
<displayName>Batı Afrika CFA Frangı</displayName>
<displayName count="one">Batı Afrika CFA frangı</displayName>
<displayName count="other">Batı Afrika CFA frangı</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>Paladyum</displayName>
@@ -7813,7 +7812,7 @@
<unitPattern count="one">{0} ayar</unitPattern>
<unitPattern count="other">{0} ayar</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>miligram/desilitre</displayName>
<unitPattern count="one">{0} miligram/desilitre</unitPattern>
<unitPattern count="other">{0} miligram/desilitre</unitPattern>
@@ -8848,7 +8847,7 @@
<unitPattern count="one">{0} ayar</unitPattern>
<unitPattern count="other">{0} ayar</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="other">{0} mg/dl</unitPattern>
@@ -9195,8 +9194,8 @@
</unit>
<unit type="length-micrometer">
<displayName>mikron</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -9318,9 +9317,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>Amerikan tonu</displayName>
@@ -9872,7 +9871,7 @@
<unitPattern count="one" draft="contributed">{0} ayar</unitPattern>
<unitPattern count="other" draft="contributed">{0} ayar</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName draft="contributed">mg/dL</displayName>
<unitPattern count="one" draft="contributed">{0} mg/dL</unitPattern>
<unitPattern count="other" draft="contributed">{0} mg/dL</unitPattern>
@@ -10114,8 +10113,8 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <unitPattern count="one" draft="contributed">{0} µm</unitPattern>
- <unitPattern count="other" draft="contributed">{0} µm</unitPattern>
+ <unitPattern count="one" draft="contributed">{0} μm</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName draft="contributed">nm</displayName>
@@ -10215,9 +10214,9 @@
<unitPattern count="other" draft="contributed">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName draft="contributed">µg</displayName>
- <unitPattern count="one" draft="contributed">{0} µg</unitPattern>
- <unitPattern count="other" draft="contributed">{0} µg</unitPattern>
+ <displayName draft="contributed">μg</displayName>
+ <unitPattern count="one" draft="contributed">{0} μg</unitPattern>
+ <unitPattern count="other" draft="contributed">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName draft="contributed">Amerikan tonu</displayName>
diff --git a/common/main/ug.xml b/common/main/ug.xml
index 9ff3285..ab183a4 100644
--- a/common/main/ug.xml
+++ b/common/main/ug.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -395,7 +395,6 @@
<language type="ro">رومىنچە</language>
<language type="rof" draft="contributed">رومبوچە</language>
<language type="rom" draft="contributed">سىگانچە</language>
- <language type="root" draft="contributed">غول تىل</language>
<language type="ru">رۇسچە</language>
<language type="rup" draft="contributed">ئارومانچە</language>
<language type="rw">كېنىيەرىۋانداچە</language>
@@ -4731,7 +4730,7 @@
<pattern type="range">{0}–{1}</pattern>
</miscPatterns>
<minimalPairs>
- <pluralMinimalPairs count="one">{0} كىتاب</pluralMinimalPairs>
+ <pluralMinimalPairs count="one">{0} كىتاب</pluralMinimalPairs>
<pluralMinimalPairs count="other">{0} بېلىق كۆردۈم ۋە ئۇنى يەۋەتتىم.</pluralMinimalPairs>
</minimalPairs>
</numbers>
diff --git a/common/main/uk.xml b/common/main/uk.xml
index 6649841..a6d8775 100644
--- a/common/main/uk.xml
+++ b/common/main/uk.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -435,7 +435,6 @@
<language type="ro_MD">молдавська</language>
<language type="rof">ромбо</language>
<language type="rom">циганська</language>
- <language type="root">коренева</language>
<language type="ru">російська</language>
<language type="rup">арумунська</language>
<language type="rw">кіньяруанда</language>
@@ -3754,9 +3753,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Санта-Ісабель</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Гонолулу</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>за всесвітнім координованим часом</standard>
@@ -3876,12 +3872,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Брокен-Хілл</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Каррі</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Мельбурн</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Каррі</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Гобарт</exemplarCity>
</zone>
@@ -4914,6 +4910,9 @@
<zone type="America/Nome">
<exemplarCity>Ном</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Гонолулу</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Джонстон</exemplarCity>
</zone>
@@ -7923,7 +7922,7 @@
<displayName count="few">західноафриканські франки</displayName>
<displayName count="many">західноафриканських франків</displayName>
<displayName count="other">західноафриканського франка</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName draft="contributed">паладій</displayName>
@@ -8279,7 +8278,7 @@
<unitPattern count="many">{0} каратів</unitPattern>
<unitPattern count="other">{0} карата</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>міліграми на децилітр</displayName>
<unitPattern count="one">{0} міліграм на децилітр</unitPattern>
<unitPattern count="few">{0} міліграми на децилітр</unitPattern>
@@ -9678,7 +9677,7 @@
<unitPattern count="many">{0} кар.</unitPattern>
<unitPattern count="other">{0} кар.</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>мг/дл</displayName>
<unitPattern count="one">{0} мг/дл</unitPattern>
<unitPattern count="few">{0} мг/дл</unitPattern>
diff --git a/common/main/ur.xml b/common/main/ur.xml
index 5cea6d0..a110bf5 100644
--- a/common/main/ur.xml
+++ b/common/main/ur.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -324,7 +324,6 @@
<language type="ro">رومینین</language>
<language type="ro_MD">مالدووا</language>
<language type="rof">رومبو</language>
- <language type="root">روٹ</language>
<language type="ru">روسی</language>
<language type="rup">ارومانی</language>
<language type="rw">کینیاروانڈا</language>
@@ -3021,9 +3020,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>سانتا ایزابیل</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>ہونولولو</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>کوآرڈینیٹڈ یونیورسل ٹائم</standard>
@@ -3143,12 +3139,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>بروکن ہِل</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>کیوری</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>ملبورن</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>کیوری</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>ہوبارٹ</exemplarCity>
</zone>
@@ -4181,6 +4177,9 @@
<zone type="America/Nome">
<exemplarCity>نوم</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>ہونولولو</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>جانسٹن</exemplarCity>
</zone>
@@ -6457,7 +6456,7 @@
<displayName>مغربی افریقی [CFA] فرانک</displayName>
<displayName count="one">مغربی افریقی [CFA] فرانک</displayName>
<displayName count="other">مغربی افریقی [CFA] فرانک</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>CFP فرانک</displayName>
@@ -6703,7 +6702,7 @@
<unitPattern count="one">{0} قیراط</unitPattern>
<unitPattern count="other">{0} قیراط</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>ملی گرام فی ڈیسی لیٹر</displayName>
<unitPattern count="one">{0} ملی گرام فی ڈیسی لیٹر</unitPattern>
<unitPattern count="other">{0} ملی گرام فی ڈیسی لیٹر</unitPattern>
@@ -7738,7 +7737,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -8084,9 +8083,9 @@
<unitPattern count="other">{0} ملیمیٹر</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -8208,9 +8207,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>ٹن</displayName>
diff --git a/common/main/uz.xml b/common/main/uz.xml
index 939972b..1270210 100644
--- a/common/main/uz.xml
+++ b/common/main/uz.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -318,7 +318,6 @@
<language type="ro">rumincha</language>
<language type="ro_MD">moldovan</language>
<language type="rof">rombo</language>
- <language type="root">tub aholi tili</language>
<language type="ru">ruscha</language>
<language type="rup">arumin</language>
<language type="rw">kinyaruanda</language>
@@ -2479,9 +2478,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa-Izabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>Gonolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Koordinatali universal vaqt</standard>
@@ -2601,12 +2597,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken-Xill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Kerri</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melburn</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Kerri</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Xobart</exemplarCity>
</zone>
@@ -3639,6 +3635,9 @@
<zone type="America/Nome">
<exemplarCity>Nom</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>Gonolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Jonston</exemplarCity>
</zone>
@@ -5872,7 +5871,7 @@
<displayName>G‘arbiy Afrika CFA franki</displayName>
<displayName count="one">G‘arbiy Afrika CFA franki</displayName>
<displayName count="other">G‘arbiy Afrika CFA franki</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>Fransuz Polineziyasi franki</displayName>
@@ -6115,7 +6114,7 @@
<unitPattern count="one">{0} karat</unitPattern>
<unitPattern count="other">{0} karat</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>milligramm/detsilitr</displayName>
<unitPattern count="one">{0} milligramm/detsilitr</unitPattern>
<unitPattern count="other">{0} milligramm/detsilitr</unitPattern>
@@ -6965,7 +6964,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>n{0}</unitPrefixPattern>
@@ -7150,7 +7149,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -7496,9 +7495,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µmetr</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μmetr</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -7620,9 +7619,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>amer. t</displayName>
@@ -8000,7 +7999,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>n{0}</unitPrefixPattern>
diff --git a/common/main/uz_Cyrl.xml b/common/main/uz_Cyrl.xml
index 60be9e6..6668719 100644
--- a/common/main/uz_Cyrl.xml
+++ b/common/main/uz_Cyrl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -2948,7 +2948,7 @@
<symbol>EC$</symbol>
</currency>
<currency type="XOF">
- <symbol>CFA</symbol>
+ <symbol>F CFA</symbol>
</currency>
<currency type="XPF">
<symbol>CFPF</symbol>
diff --git a/common/main/vi.xml b/common/main/vi.xml
index d732491..555d18d 100644
--- a/common/main/vi.xml
+++ b/common/main/vi.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -451,7 +451,6 @@
<language type="ro_MD">Tiếng Moldova</language>
<language type="rof">Tiếng Rombo</language>
<language type="rom">Tiếng Romany</language>
- <language type="root">Tiếng Root</language>
<language type="ru">Tiếng Nga</language>
<language type="rup">Tiếng Aromania</language>
<language type="rw">Tiếng Kinyarwanda</language>
@@ -5168,14 +5167,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <short>
- <generic draft="contributed">Giờ HST</generic>
- <standard draft="contributed">HST</standard>
- <daylight draft="contributed">HDT</daylight>
- </short>
- <exemplarCity>Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>Giờ Phối hợp Quốc tế</standard>
@@ -5298,12 +5289,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -6336,6 +6327,14 @@
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <short>
+ <generic draft="contributed">Giờ HST</generic>
+ <standard draft="contributed">HST</standard>
+ <daylight draft="contributed">HDT</daylight>
+ </short>
+ <exemplarCity>Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -9129,7 +9128,7 @@
<displayName>karat</displayName>
<unitPattern count="other">{0} karat</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
@@ -9982,7 +9981,7 @@
<displayName>↑↑↑</displayName>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
@@ -10361,7 +10360,7 @@
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
+ <displayName>μg</displayName>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
<unit type="mass-ton">
diff --git a/common/main/wo.xml b/common/main/wo.xml
index b5ec4b0..9537eb9 100644
--- a/common/main/wo.xml
+++ b/common/main/wo.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -1928,7 +1928,7 @@
<currency type="XOF">
<displayName>Franc CFA bu Afrik Sowwu-jant</displayName>
<displayName count="other">Franc CFA yu Afrik Sowwu-jant</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XXX">
<displayName>Xaalis buñ Xamul</displayName>
diff --git a/common/main/yo.xml b/common/main/yo.xml
index b50800f..5eb21b8 100644
--- a/common/main/yo.xml
+++ b/common/main/yo.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -74,7 +74,7 @@
<language type="en_US" alt="short">Èdè Gẹ̀ẹ́sì (US)</language>
<language type="eo">Èdè Esperanto</language>
<language type="es">Èdè Sípáníìṣì</language>
- <language type="es_419">Èdè Sípáníìṣì (orílẹ̀-èdè Látìn-Amẹ́ríkà) ( Èdè Sípáníìshì (Látìn-Amẹ́ríkà)</language>
+ <language type="es_419">Èdè Sípáníìṣì (orílẹ̀-èdè Látìn-Amẹ́ríkà)</language>
<language type="es_ES">Èdè Sípáníìṣì (orílẹ̀-èdè Yúróòpù)</language>
<language type="es_MX">Èdè Sípáníìṣì (orílẹ̀-èdè Mẹ́síkò)</language>
<language type="et">Èdè Estonia</language>
@@ -716,7 +716,7 @@
</codePatterns>
</localeDisplayNames>
<characters>
- <exemplarCharacters>[a á à b d e é è ẹ {ẹ\u0301} {ẹ\u0300} f g {gb} h i í ì j k l m n ń o ó ò ọ {ọ\u0301} {ọ\u0300} p r s ṣ t u ú ù w y]</exemplarCharacters>
+ <exemplarCharacters>[a á à b d e é è ẹ {ẹ\u0301} {ẹ\u0300} f g {gb} h i í ì j k l m ḿ {m\u0300} n ń ǹ o ó ò ọ {ọ\u0301} {ọ\u0300} p r s ṣ t u ú ù w y]</exemplarCharacters>
<exemplarCharacters type="auxiliary">[c q v x z]</exemplarCharacters>
<exemplarCharacters type="index">[A B D E F G H I J K L M N O P R S T U W Y]</exemplarCharacters>
<exemplarCharacters type="numbers" draft="contributed">↑↑↑</exemplarCharacters>
@@ -2006,10 +2006,10 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
- <zone type="Australia/Currie">
+ <zone type="Australia/Melbourne">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
- <zone type="Australia/Melbourne">
+ <zone type="Australia/Currie">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
<zone type="Australia/Hobart">
@@ -5240,7 +5240,7 @@
<displayName>↑↑↑</displayName>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
@@ -6077,7 +6077,7 @@
<displayName>↑↑↑</displayName>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
diff --git a/common/main/yo_BJ.xml b/common/main/yo_BJ.xml
index 3a0bdab..668b174 100644
--- a/common/main/yo_BJ.xml
+++ b/common/main/yo_BJ.xml
@@ -70,7 +70,7 @@
<language type="en_US" alt="short">Èdè Gɛ̀ɛ́sì (US)</language>
<language type="eo">Èdè Esperanto</language>
<language type="es">Èdè Sípáníìshì</language>
- <language type="es_419">Èdè Sípáníìshì (orílɛ̀-èdè Látìn-Amɛ́ríkà) ( Èdè Sípáníìshì (Látìn-Amɛ́ríkà)</language>
+ <language type="es_419">Èdè Sípáníìshì (orílɛ̀-èdè Látìn-Amɛ́ríkà)</language>
<language type="es_ES">Èdè Sípáníìshì (orílɛ̀-èdè Yúróòpù)</language>
<language type="es_MX">Èdè Sípáníìshì (orílɛ̀-èdè Mɛ́síkò)</language>
<language type="et">Èdè Estonia</language>
diff --git a/common/main/yue.xml b/common/main/yue.xml
index 5b25f0e..7072de4 100644
--- a/common/main/yue.xml
+++ b/common/main/yue.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -474,7 +474,6 @@
<language type="ro_MD">摩爾多瓦文</language>
<language type="rof">蘭博文</language>
<language type="rom">吉普賽文</language>
- <language type="root">根語言</language>
<language type="rtm">羅圖馬島文</language>
<language type="ru">俄文</language>
<language type="rue">盧森尼亞文</language>
@@ -4483,9 +4482,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>聖伊薩貝爾</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>檀香山</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>協調世界時間</standard>
@@ -4605,12 +4601,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>布羅肯希爾</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>克黎</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>墨爾本</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>克黎</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>荷巴特</exemplarCity>
</zone>
@@ -5643,6 +5639,9 @@
<zone type="America/Nome">
<exemplarCity>諾姆</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>檀香山</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>強斯頓</exemplarCity>
</zone>
@@ -8371,7 +8370,7 @@
<currency type="XOF">
<displayName>法郎 (CFA–BCEAO)</displayName>
<displayName count="other">法郎 (CFA–BCEAO)</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName draft="contributed">帕拉狄昂</displayName>
@@ -8679,7 +8678,7 @@
<displayName>克拉</displayName>
<unitPattern count="other">{0} 克拉</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>毫克/公合</displayName>
<unitPattern count="other">{0} 毫克/公合</unitPattern>
</unit>
@@ -9532,7 +9531,7 @@
<displayName>克拉</displayName>
<unitPattern count="other">{0} 克拉</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>毫克/公合</displayName>
<unitPattern count="other">{0} 毫克/公合</unitPattern>
</unit>
@@ -10500,7 +10499,7 @@
<unitPattern count="other">{0} 毫米</unitPattern>
</unit>
<unit type="length-micrometer">
- <unitPattern count="other" draft="contributed">{0}µm</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}μm</unitPattern>
</unit>
<unit type="length-nanometer">
<unitPattern count="other" draft="contributed">{0}nm</unitPattern>
@@ -10558,7 +10557,7 @@
<unitPattern count="other" draft="contributed">{0}mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <unitPattern count="other" draft="contributed">{0}µg</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}μg</unitPattern>
</unit>
<unit type="mass-ton">
<unitPattern count="other" draft="contributed">{0}tn</unitPattern>
diff --git a/common/main/yue_Hans.xml b/common/main/yue_Hans.xml
index e577b65..ffc9923 100644
--- a/common/main/yue_Hans.xml
+++ b/common/main/yue_Hans.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -461,7 +461,6 @@
<language type="ro_MD">摩尔多瓦文</language>
<language type="rof">兰博文</language>
<language type="rom">吉普赛文</language>
- <language type="root">根语言</language>
<language type="rtm">罗图马岛文</language>
<language type="ru">俄文</language>
<language type="rue">卢森尼亚文</language>
@@ -4422,9 +4421,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>圣伊萨贝尔</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>檀香山</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>协调世界时间</standard>
@@ -4544,12 +4540,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>布罗肯希尔</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>克黎</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>墨尔本</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>克黎</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>荷巴特</exemplarCity>
</zone>
@@ -5582,6 +5578,9 @@
<zone type="America/Nome">
<exemplarCity>诺姆</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>檀香山</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>强斯顿</exemplarCity>
</zone>
@@ -8308,7 +8307,7 @@
<currency type="XOF">
<displayName>法郎 (CFA–BCEAO)</displayName>
<displayName count="other">法郎 (CFA–BCEAO)</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName draft="contributed">帕拉狄昂</displayName>
@@ -8613,7 +8612,7 @@
<displayName>克拉</displayName>
<unitPattern count="other">{0} 克拉</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>毫克/公合</displayName>
<unitPattern count="other">{0} 毫克/公合</unitPattern>
</unit>
@@ -9463,7 +9462,7 @@
<displayName>克拉</displayName>
<unitPattern count="other">{0} 克拉</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>毫克/公合</displayName>
<unitPattern count="other">{0} 毫克/公合</unitPattern>
</unit>
@@ -10428,7 +10427,7 @@
<unitPattern count="other">{0} 公厘</unitPattern>
</unit>
<unit type="length-micrometer">
- <unitPattern count="other" draft="contributed">{0}µm</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}μm</unitPattern>
</unit>
<unit type="length-nanometer">
<unitPattern count="other" draft="contributed">{0}nm</unitPattern>
@@ -10486,7 +10485,7 @@
<unitPattern count="other" draft="contributed">{0}mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <unitPattern count="other" draft="contributed">{0}µg</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}μg</unitPattern>
</unit>
<unit type="mass-ton">
<unitPattern count="other" draft="contributed">{0}tn</unitPattern>
diff --git a/common/main/zh.xml b/common/main/zh.xml
index 7495055..6620296 100644
--- a/common/main/zh.xml
+++ b/common/main/zh.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -423,7 +423,6 @@
<language type="ro_MD">摩尔多瓦语</language>
<language type="rof">兰博语</language>
<language type="rom">吉普赛语</language>
- <language type="root">根语言</language>
<language type="ru">俄语</language>
<language type="rup">阿罗马尼亚语</language>
<language type="rw">卢旺达语</language>
@@ -5809,9 +5808,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>圣伊萨贝尔</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>檀香山</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>协调世界时</standard>
@@ -5934,12 +5930,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>布罗肯希尔</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>库利</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>墨尔本</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>库利</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>霍巴特</exemplarCity>
</zone>
@@ -6972,6 +6968,9 @@
<zone type="America/Nome">
<exemplarCity>诺姆</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>檀香山</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>约翰斯顿</exemplarCity>
</zone>
@@ -10196,7 +10195,7 @@
<currency type="XOF">
<displayName>西非法郎</displayName>
<displayName count="other">西非法郎</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName>钯</displayName>
@@ -10666,7 +10665,7 @@
<displayName>克拉</displayName>
<unitPattern count="other">{0}克拉</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>毫克/分升</displayName>
<unitPattern count="other">每分升{0}毫克</unitPattern>
</unit>
@@ -11519,7 +11518,7 @@
<displayName>↑↑↑</displayName>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
@@ -12372,7 +12371,7 @@
<displayName draft="contributed">↑↑↑</displayName>
<unitPattern count="other" draft="contributed">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName draft="contributed">↑↑↑</displayName>
<unitPattern count="other" draft="contributed">↑↑↑</unitPattern>
</unit>
diff --git a/common/main/zh_Hant.xml b/common/main/zh_Hant.xml
index 8b96f83..3153cab 100644
--- a/common/main/zh_Hant.xml
+++ b/common/main/zh_Hant.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -482,7 +482,6 @@
<language type="ro_MD">摩爾多瓦文</language>
<language type="rof">蘭博文</language>
<language type="rom">吉普賽文</language>
- <language type="root">根語言</language>
<language type="rtm">羅圖馬島文</language>
<language type="ru">俄文</language>
<language type="rue">盧森尼亞文</language>
@@ -7864,9 +7863,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>聖伊薩貝爾</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>檀香山</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>世界標準時間</standard>
@@ -7989,12 +7985,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>布羅肯希爾</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>克黎</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>墨爾本</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>克黎</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>荷巴特</exemplarCity>
</zone>
@@ -9027,6 +9023,9 @@
<zone type="America/Nome">
<exemplarCity>諾姆</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>檀香山</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>強斯頓</exemplarCity>
</zone>
@@ -13693,7 +13692,7 @@
<currency type="XOF">
<displayName>法郎 (CFA–BCEAO)</displayName>
<displayName count="other">法郎 (CFA–BCEAO)</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPD">
<displayName draft="contributed">帕拉狄昂</displayName>
@@ -14167,7 +14166,7 @@
<displayName>克拉</displayName>
<unitPattern count="other">{0} 克拉</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>每分升毫克</displayName>
<unitPattern count="other">每分升 {0} 毫克</unitPattern>
</unit>
@@ -15020,7 +15019,7 @@
<displayName>克拉</displayName>
<unitPattern count="other">{0} 克拉</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>毫克/分升</displayName>
<unitPattern count="other">{0} 毫克/分升</unitPattern>
</unit>
@@ -15864,7 +15863,7 @@
<displayName draft="contributed">克拉</displayName>
<unitPattern count="other" draft="contributed">{0}kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName draft="contributed">毫克/分升</displayName>
<unitPattern count="other" draft="contributed">{0}mg/dL</unitPattern>
</unit>
@@ -16068,7 +16067,7 @@
</unit>
<unit type="length-micrometer">
<displayName draft="contributed">微米</displayName>
- <unitPattern count="other" draft="contributed">{0}µm</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName draft="contributed">奈米</displayName>
@@ -16149,7 +16148,7 @@
</unit>
<unit type="mass-microgram">
<displayName draft="contributed">微克</displayName>
- <unitPattern count="other" draft="contributed">{0}µg</unitPattern>
+ <unitPattern count="other" draft="contributed">{0}μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName draft="contributed">英噸</displayName>
diff --git a/common/main/zh_Hant_HK.xml b/common/main/zh_Hant_HK.xml
index c3e98e8..095f5ae 100644
--- a/common/main/zh_Hant_HK.xml
+++ b/common/main/zh_Hant_HK.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -483,7 +483,6 @@
<language type="ro_MD">摩爾多瓦羅馬尼亞文</language>
<language type="rof">↑↑↑</language>
<language type="rom">↑↑↑</language>
- <language type="root">↑↑↑</language>
<language type="rtm">↑↑↑</language>
<language type="ru">↑↑↑</language>
<language type="rue">↑↑↑</language>
@@ -7918,9 +7917,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>↑↑↑</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>↑↑↑</standard>
@@ -8043,12 +8039,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>卡里</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>卡里</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>荷伯特</exemplarCity>
</zone>
@@ -9081,6 +9077,9 @@
<zone type="America/Nome">
<exemplarCity>↑↑↑</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>↑↑↑</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>約翰斯頓環礁</exemplarCity>
</zone>
@@ -12645,7 +12644,7 @@
<displayName>↑↑↑</displayName>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
@@ -13498,7 +13497,7 @@
<displayName>↑↑↑</displayName>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
@@ -14350,7 +14349,7 @@
<displayName>↑↑↑</displayName>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>↑↑↑</displayName>
<unitPattern count="other">↑↑↑</unitPattern>
</unit>
diff --git a/common/main/zu.xml b/common/main/zu.xml
index 750d176..bbc48ad 100644
--- a/common/main/zu.xml
+++ b/common/main/zu.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -329,7 +329,6 @@
<language type="ro">isi-Romanian</language>
<language type="ro_MD">isi-Moldavian</language>
<language type="rof">isi-Rombo</language>
- <language type="root">isi-Root</language>
<language type="ru">isi-Russian</language>
<language type="rup">isi-Aromanian</language>
<language type="rw">isi-Kinyarwanda</language>
@@ -2995,9 +2994,6 @@
<zone type="America/Santa_Isabel">
<exemplarCity>i-Santa Isabel</exemplarCity>
</zone>
- <zone type="Pacific/Honolulu">
- <exemplarCity>i-Honolulu</exemplarCity>
- </zone>
<zone type="Etc/UTC">
<long>
<standard>isikhathi somhlaba esididiyelwe</standard>
@@ -3117,12 +3113,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity>i-Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity>i-Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity>i-Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity>i-Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity>i-Hobart</exemplarCity>
</zone>
@@ -4155,6 +4151,9 @@
<zone type="America/Nome">
<exemplarCity>i-Nome</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>i-Honolulu</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>i-Johnston</exemplarCity>
</zone>
@@ -6440,7 +6439,7 @@
<displayName>i-West African CFA Franc</displayName>
<displayName count="one">i-West African CFA Franc</displayName>
<displayName count="other">i-West African CFA francs</displayName>
- <symbol draft="contributed">CFA</symbol>
+ <symbol draft="contributed">F CFA</symbol>
</currency>
<currency type="XPF">
<displayName>i-CFP Franc</displayName>
@@ -6690,7 +6689,7 @@
<unitPattern count="one">{0} i-karat</unitPattern>
<unitPattern count="other">{0} ama-karats</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -7036,9 +7035,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -7158,9 +7157,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tn</displayName>
@@ -7537,7 +7536,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>n{0}</unitPrefixPattern>
@@ -7722,7 +7721,7 @@
<unitPattern count="one">{0} kt</unitPattern>
<unitPattern count="other">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -8068,9 +8067,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -8192,9 +8191,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tn</displayName>
@@ -8572,7 +8571,7 @@
<unitPrefixPattern>m{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
- <unitPrefixPattern>µ{0}</unitPrefixPattern>
+ <unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>n{0}</unitPrefixPattern>
diff --git a/common/properties/scriptMetadata.txt b/common/properties/scriptMetadata.txt
index 4aa109e..422b607 100644
--- a/common/properties/scriptMetadata.txt
+++ b/common/properties/scriptMetadata.txt
@@ -1,8 +1,7 @@
# ScriptMetadata.txt
-# Copyright © 1991-2020 Unicode, Inc.
-# For terms of use, see http://www.unicode.org/copyright.html
-# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
+# Copyright © 1991-2016 Unicode, Inc.
+# CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
+# For terms of use, see http://www.unicode.org/copyright.html
#
# This file provides general information about scripts that may be useful to implementations processing text.
# The information is the best currently available, and may change between versions of CLDR.
@@ -113,10 +112,10 @@
Cari; 33; 102A0; TR; 1; EXCLUSION; NO; NO; NO; NO; NO
Cham; 33; AA00; VN; 1; LIMITED_USE; NO; NO; YES; NO; NO
Cher; 33; 13C4; US; 2; LIMITED_USE; NO; NO; NO; NO; YES
-Chrs; 33; 10FBF; UZ; 1; EXCLUSION; YES; NO; YES; NO; NO # provisional data for future Unicode 13.0 script
+Chrs; 33; 10FBF; UZ; 1; EXCLUSION; YES; NO; YES; NO; NO
Copt; 33; 03E2; EG; 1; EXCLUSION; NO; NO; MIN; NO; YES
Cprt; 33; 10800; CY; 1; EXCLUSION; YES; NO; NO; NO; NO
-Diak; 33; 1190C; MV; 1; EXCLUSION; NO; NO; YES; YES; NO # provisional data for future Unicode 13.0 script
+Diak; 33; 1190C; MV; 1; EXCLUSION; NO; NO; YES; YES; NO
Dogr; 33; 1180B; IN; 1; EXCLUSION; NO; NO; YES; NO; NO
Dsrt; 33; 10414; US; 1; EXCLUSION; NO; NO; NO; NO; YES
Dupl; 33; 1BC20; FR; 1; EXCLUSION; NO; NO; NO; YES; NO
@@ -139,7 +138,7 @@
Kali; 33; A90A; MM; 1; LIMITED_USE; NO; NO; MIN; NO; NO
Khar; 33; 10A00; PK; 1; EXCLUSION; YES; NO; YES; NO; NO
Khoj; 33; 11208; IN; 1; EXCLUSION; NO; NO; NO; NO; NO
-Kits; 33; 18C65; CN; 2; EXCLUSION; NO; YES; NO; YES; NO # provisional data for future Unicode 13.0 script
+Kits; 33; 18C65; CN; 2; EXCLUSION; NO; YES; NO; YES; NO
Kthi; 33; 11083; IN; 1; EXCLUSION; NO; NO; MIN; NO; NO
Lana; 33; 1A20; TH; 1; LIMITED_USE; NO; YES; YES; NO; NO
Lepc; 33; 1C00; IN; 1; LIMITED_USE; NO; NO; YES; NO; NO
@@ -216,7 +215,7 @@
Wcho; 33; 1E2E1; IN; 1; LIMITED_USE; NO; NO; NO; NO; NO
Xpeo; 33; 103A0; IR; 1; EXCLUSION; NO; NO; NO; NO; NO
Xsux; 33; 12000; IQ; 3; EXCLUSION; NO; NO; NO; YES; NO
-Yezi; 33; 10E88; GE; 1; EXCLUSION; YES; NO; NO; NO; NO # provisional data for future Unicode 13.0 script
+Yezi; 33; 10E88; GE; 1; EXCLUSION; YES; NO; NO; NO; NO
Yiii; 33; A288; CN; 3; LIMITED_USE; NO; YES; NO; YES; NO
Zanb; 33; 11A0B; MN; 1; EXCLUSION; NO; NO; YES; NO; NO
diff --git a/common/rbnf/de.xml b/common/rbnf/de.xml
index 63a8947..64f6658 100644
--- a/common/rbnf/de.xml
+++ b/common/rbnf/de.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!--
-Copyright © 1991-2013 Unicode, Inc.
+Copyright © 1991-2021 Unicode, Inc.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
For terms of use, see http://www.unicode.org/copyright.html
-->
@@ -16,8 +16,8 @@
<rbnfrule value="-x">minus →→;</rbnfrule>
<rbnfrule value="x.x">=0.0=;</rbnfrule>
<rbnfrule value="0">=%spellout-numbering=;</rbnfrule>
- <rbnfrule value="1100" radix="100">←%spellout-cardinal-masculine←hundert[→→];</rbnfrule>
- <rbnfrule value="10000">=%spellout-numbering=;</rbnfrule>
+ <rbnfrule value="1100" radix="100">←←hundert[→→];</rbnfrule>
+ <rbnfrule value="2000">=%spellout-numbering=;</rbnfrule>
</ruleset>
<ruleset type="spellout-numbering">
<rbnfrule value="-x">minus →→;</rbnfrule>
@@ -59,6 +59,14 @@
<rbnfrule value="2000000000000000">←%spellout-cardinal-feminine← Billiarden[ →→];</rbnfrule>
<rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
</ruleset>
+ <!--
+ Here is what the inflection table looks like for this language, and how they map to the various rule names.
+ case masculine feminine neuter
+ nominative ein (cardinal-masculine) eine (cardinal-feminine) ein (cardinal-neuter)
+ genitive eines (cardinal-s) einer (cardinal-r) eines (cardinal-s)
+ dative einem (cardinal-m) einer (cardinal-r) einem (cardinal-m)
+ accusative einen (cardinal-n) eine (cardinal-feminine) ein (cardinal-neuter)
+ -->
<ruleset type="spellout-cardinal-neuter">
<rbnfrule value="0">=%spellout-cardinal-masculine=;</rbnfrule>
</ruleset>
@@ -152,6 +160,24 @@
<rbnfrule value="2000000000000000">←%spellout-cardinal-feminine← Billiarden[ →→];</rbnfrule>
<rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
</ruleset>
+ <ruleset type="spellout-cardinal-m">
+ <rbnfrule value="-x">minus →→;</rbnfrule>
+ <rbnfrule value="x.x">←← Komma →→;</rbnfrule>
+ <rbnfrule value="0">null;</rbnfrule>
+ <rbnfrule value="1">einem;</rbnfrule>
+ <rbnfrule value="2">=%spellout-numbering=;</rbnfrule>
+ <rbnfrule value="100">←%spellout-cardinal-masculine←hundert[→→];</rbnfrule>
+ <rbnfrule value="1000">←%spellout-cardinal-masculine←tausend[→→];</rbnfrule>
+ <rbnfrule value="1000000">eine Million[ →→];</rbnfrule>
+ <rbnfrule value="2000000">←%spellout-cardinal-feminine← Millionen[ →→];</rbnfrule>
+ <rbnfrule value="1000000000">eine Milliarde[ →→];</rbnfrule>
+ <rbnfrule value="2000000000">←%spellout-cardinal-feminine← Milliarden[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000">eine Billion[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000">←%spellout-cardinal-feminine← Billionen[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000">eine Billiarde[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000000">←%spellout-cardinal-feminine← Billiarden[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
+ </ruleset>
<ruleset type="ste" access="private">
<rbnfrule value="0">ste;</rbnfrule>
<rbnfrule value="1">=%spellout-ordinal=;</rbnfrule>
@@ -201,6 +227,11 @@
<rbnfrule value="x.x">=#,##0.#=;</rbnfrule>
<rbnfrule value="0">=%spellout-ordinal=s;</rbnfrule>
</ruleset>
+ <ruleset type="spellout-ordinal-m">
+ <rbnfrule value="-x">minus →→;</rbnfrule>
+ <rbnfrule value="x.x">=#,##0.#=;</rbnfrule>
+ <rbnfrule value="0">=%spellout-ordinal=m;</rbnfrule>
+ </ruleset>
</rulesetGrouping>
</rbnf>
</ldml>
diff --git a/common/rbnf/de_CH.xml b/common/rbnf/de_CH.xml
index 12f4c72..5d2b502 100644
--- a/common/rbnf/de_CH.xml
+++ b/common/rbnf/de_CH.xml
@@ -1,207 +1,238 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
-For terms of use, see http://www.unicode.org/copyright.html
-Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
+<!--
+Copyright © 1991-2021 Unicode, Inc.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
+For terms of use, see http://www.unicode.org/copyright.html
-->
<ldml>
- <identity>
- <version number="$Revision$"/>
- <language type="de"/>
- <territory type="CH"/>
- </identity>
- <rbnf>
- <rulesetGrouping type="SpelloutRules">
- <ruleset type="spellout-numbering-year">
- <rbnfrule value="-x">minus →→;</rbnfrule>
- <rbnfrule value="x.x">=0.0=;</rbnfrule>
- <rbnfrule value="0">=%spellout-numbering=;</rbnfrule>
- <rbnfrule value="1100" radix="100">←%spellout-cardinal-masculine←hundert[→→];</rbnfrule>
- <rbnfrule value="10000">=%spellout-numbering=;</rbnfrule>
- </ruleset>
- <ruleset type="spellout-numbering">
- <rbnfrule value="-x">minus →→;</rbnfrule>
- <rbnfrule value="x.x">←← Komma →→;</rbnfrule>
- <rbnfrule value="0">null;</rbnfrule>
- <rbnfrule value="1">eins;</rbnfrule>
- <rbnfrule value="2">zwei;</rbnfrule>
- <rbnfrule value="3">drei;</rbnfrule>
- <rbnfrule value="4">vier;</rbnfrule>
- <rbnfrule value="5">fünf;</rbnfrule>
- <rbnfrule value="6">sechs;</rbnfrule>
- <rbnfrule value="7">sieben;</rbnfrule>
- <rbnfrule value="8">acht;</rbnfrule>
- <rbnfrule value="9">neun;</rbnfrule>
- <rbnfrule value="10">zehn;</rbnfrule>
- <rbnfrule value="11">elf;</rbnfrule>
- <rbnfrule value="12">zwölf;</rbnfrule>
- <rbnfrule value="13">→→zehn;</rbnfrule>
- <rbnfrule value="16">sechzehn;</rbnfrule>
- <rbnfrule value="17">siebzehn;</rbnfrule>
- <rbnfrule value="18">→→zehn;</rbnfrule>
- <rbnfrule value="20">[→%spellout-cardinal-masculine→und]zwanzig;</rbnfrule>
- <rbnfrule value="30">[→%spellout-cardinal-masculine→und]dreissig;</rbnfrule>
- <rbnfrule value="40">[→%spellout-cardinal-masculine→und]vierzig;</rbnfrule>
- <rbnfrule value="50">[→%spellout-cardinal-masculine→und]fünfzig;</rbnfrule>
- <rbnfrule value="60">[→%spellout-cardinal-masculine→und]sechzig;</rbnfrule>
- <rbnfrule value="70">[→%spellout-cardinal-masculine→und]siebzig;</rbnfrule>
- <rbnfrule value="80">[→%spellout-cardinal-masculine→und]achtzig;</rbnfrule>
- <rbnfrule value="90">[→%spellout-cardinal-masculine→und]neunzig;</rbnfrule>
- <rbnfrule value="100">←%spellout-cardinal-masculine←hundert[→→];</rbnfrule>
- <rbnfrule value="1000">←%spellout-cardinal-masculine←tausend[→→];</rbnfrule>
- <rbnfrule value="1000000">eine Million[ →→];</rbnfrule>
- <rbnfrule value="2000000">←%spellout-cardinal-feminine← Millionen[ →→];</rbnfrule>
- <rbnfrule value="1000000000">eine Milliarde[ →→];</rbnfrule>
- <rbnfrule value="2000000000">←%spellout-cardinal-feminine← Milliarden[ →→];</rbnfrule>
- <rbnfrule value="1000000000000">eine Billion[ →→];</rbnfrule>
- <rbnfrule value="2000000000000">←%spellout-cardinal-feminine← Billionen[ →→];</rbnfrule>
- <rbnfrule value="1000000000000000">eine Billiarde[ →→];</rbnfrule>
- <rbnfrule value="2000000000000000">←%spellout-cardinal-feminine← Billiarden[ →→];</rbnfrule>
- <rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
- </ruleset>
- <ruleset type="spellout-cardinal-neuter">
- <rbnfrule value="0">=%spellout-cardinal-masculine=;</rbnfrule>
- </ruleset>
- <ruleset type="spellout-cardinal-masculine">
- <rbnfrule value="-x">minus →→;</rbnfrule>
- <rbnfrule value="x.x">←← Komma →→;</rbnfrule>
- <rbnfrule value="0">null;</rbnfrule>
- <rbnfrule value="1">ein;</rbnfrule>
- <rbnfrule value="2">=%spellout-numbering=;</rbnfrule>
- <rbnfrule value="100">←%spellout-cardinal-masculine←hundert[→→];</rbnfrule>
- <rbnfrule value="1000">←%spellout-cardinal-masculine←tausend[→→];</rbnfrule>
- <rbnfrule value="1000000">eine Million[ →→];</rbnfrule>
- <rbnfrule value="2000000">←%spellout-cardinal-feminine← Millionen[ →→];</rbnfrule>
- <rbnfrule value="1000000000">eine Milliarde[ →→];</rbnfrule>
- <rbnfrule value="2000000000">←%spellout-cardinal-feminine← Milliarden[ →→];</rbnfrule>
- <rbnfrule value="1000000000000">eine Billion[ →→];</rbnfrule>
- <rbnfrule value="2000000000000">←%spellout-cardinal-feminine← Billionen[ →→];</rbnfrule>
- <rbnfrule value="1000000000000000">eine Billiarde[ →→];</rbnfrule>
- <rbnfrule value="2000000000000000">←%spellout-cardinal-feminine← Billiarden[ →→];</rbnfrule>
- <rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
- </ruleset>
- <ruleset type="spellout-cardinal-feminine">
- <rbnfrule value="-x">minus →→;</rbnfrule>
- <rbnfrule value="x.x">←← Komma →→;</rbnfrule>
- <rbnfrule value="0">null;</rbnfrule>
- <rbnfrule value="1">eine;</rbnfrule>
- <rbnfrule value="2">=%spellout-numbering=;</rbnfrule>
- <rbnfrule value="100">←%spellout-cardinal-masculine←hundert[→→];</rbnfrule>
- <rbnfrule value="1000">←%spellout-cardinal-masculine←tausend[→→];</rbnfrule>
- <rbnfrule value="1000000">eine Million[ →→];</rbnfrule>
- <rbnfrule value="2000000">←%spellout-cardinal-feminine← Millionen[ →→];</rbnfrule>
- <rbnfrule value="1000000000">eine Milliarde[ →→];</rbnfrule>
- <rbnfrule value="2000000000">←%spellout-cardinal-feminine← Milliarden[ →→];</rbnfrule>
- <rbnfrule value="1000000000000">eine Billion[ →→];</rbnfrule>
- <rbnfrule value="2000000000000">←%spellout-cardinal-feminine← Billionen[ →→];</rbnfrule>
- <rbnfrule value="1000000000000000">eine Billiarde[ →→];</rbnfrule>
- <rbnfrule value="2000000000000000">←%spellout-cardinal-feminine← Billiarden[ →→];</rbnfrule>
- <rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
- </ruleset>
- <ruleset type="spellout-cardinal-n">
- <rbnfrule value="-x">minus →→;</rbnfrule>
- <rbnfrule value="x.x">←← Komma →→;</rbnfrule>
- <rbnfrule value="0">null;</rbnfrule>
- <rbnfrule value="1">einen;</rbnfrule>
- <rbnfrule value="2">=%spellout-numbering=;</rbnfrule>
- <rbnfrule value="100">←%spellout-cardinal-masculine←hundert[→→];</rbnfrule>
- <rbnfrule value="1000">←%spellout-cardinal-masculine←tausend[→→];</rbnfrule>
- <rbnfrule value="1000000">eine Million[ →→];</rbnfrule>
- <rbnfrule value="2000000">←%spellout-cardinal-feminine← Millionen[ →→];</rbnfrule>
- <rbnfrule value="1000000000">eine Milliarde[ →→];</rbnfrule>
- <rbnfrule value="2000000000">←%spellout-cardinal-feminine← Milliarden[ →→];</rbnfrule>
- <rbnfrule value="1000000000000">eine Billion[ →→];</rbnfrule>
- <rbnfrule value="2000000000000">←%spellout-cardinal-feminine← Billionen[ →→];</rbnfrule>
- <rbnfrule value="1000000000000000">eine Billiarde[ →→];</rbnfrule>
- <rbnfrule value="2000000000000000">←%spellout-cardinal-feminine← Billiarden[ →→];</rbnfrule>
- <rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
- </ruleset>
- <ruleset type="spellout-cardinal-r">
- <rbnfrule value="-x">minus →→;</rbnfrule>
- <rbnfrule value="x.x">←← Komma →→;</rbnfrule>
- <rbnfrule value="0">null;</rbnfrule>
- <rbnfrule value="1">einer;</rbnfrule>
- <rbnfrule value="2">=%spellout-numbering=;</rbnfrule>
- <rbnfrule value="100">←%spellout-cardinal-masculine←hundert[→→];</rbnfrule>
- <rbnfrule value="1000">←%spellout-cardinal-masculine←tausend[→→];</rbnfrule>
- <rbnfrule value="1000000">eine Million[ →→];</rbnfrule>
- <rbnfrule value="2000000">←%spellout-cardinal-feminine← Millionen[ →→];</rbnfrule>
- <rbnfrule value="1000000000">eine Milliarde[ →→];</rbnfrule>
- <rbnfrule value="2000000000">←%spellout-cardinal-feminine← Milliarden[ →→];</rbnfrule>
- <rbnfrule value="1000000000000">eine Billion[ →→];</rbnfrule>
- <rbnfrule value="2000000000000">←%spellout-cardinal-feminine← Billionen[ →→];</rbnfrule>
- <rbnfrule value="1000000000000000">eine Billiarde[ →→];</rbnfrule>
- <rbnfrule value="2000000000000000">←%spellout-cardinal-feminine← Billiarden[ →→];</rbnfrule>
- <rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
- </ruleset>
- <ruleset type="spellout-cardinal-s">
- <rbnfrule value="-x">minus →→;</rbnfrule>
- <rbnfrule value="x.x">←← Komma →→;</rbnfrule>
- <rbnfrule value="0">null;</rbnfrule>
- <rbnfrule value="1">eines;</rbnfrule>
- <rbnfrule value="2">=%spellout-numbering=;</rbnfrule>
- <rbnfrule value="100">←%spellout-cardinal-masculine←hundert[→→];</rbnfrule>
- <rbnfrule value="1000">←%spellout-cardinal-masculine←tausend[→→];</rbnfrule>
- <rbnfrule value="1000000">eine Million[ →→];</rbnfrule>
- <rbnfrule value="2000000">←%spellout-cardinal-feminine← Millionen[ →→];</rbnfrule>
- <rbnfrule value="1000000000">eine Milliarde[ →→];</rbnfrule>
- <rbnfrule value="2000000000">←%spellout-cardinal-feminine← Milliarden[ →→];</rbnfrule>
- <rbnfrule value="1000000000000">eine Billion[ →→];</rbnfrule>
- <rbnfrule value="2000000000000">←%spellout-cardinal-feminine← Billionen[ →→];</rbnfrule>
- <rbnfrule value="1000000000000000">eine Billiarde[ →→];</rbnfrule>
- <rbnfrule value="2000000000000000">←%spellout-cardinal-feminine← Billiarden[ →→];</rbnfrule>
- <rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
- </ruleset>
- <ruleset type="ste" access="private">
- <rbnfrule value="0">ste;</rbnfrule>
- <rbnfrule value="1">=%spellout-ordinal=;</rbnfrule>
- </ruleset>
- <ruleset type="ste2" access="private">
- <rbnfrule value="0">ste;</rbnfrule>
- <rbnfrule value="1">' =%spellout-ordinal=;</rbnfrule>
- </ruleset>
- <ruleset type="spellout-ordinal">
- <rbnfrule value="-x">minus →→;</rbnfrule>
- <rbnfrule value="x.x">=#,##0.#=;</rbnfrule>
- <rbnfrule value="0">nullte;</rbnfrule>
- <rbnfrule value="1">erste;</rbnfrule>
- <rbnfrule value="2">zweite;</rbnfrule>
- <rbnfrule value="3">dritte;</rbnfrule>
- <rbnfrule value="4">vierte;</rbnfrule>
- <rbnfrule value="5">fünfte;</rbnfrule>
- <rbnfrule value="6">sechste;</rbnfrule>
- <rbnfrule value="7">siebte;</rbnfrule>
- <rbnfrule value="8">achte;</rbnfrule>
- <rbnfrule value="9">=%spellout-numbering=te;</rbnfrule>
- <rbnfrule value="20">=%spellout-numbering=ste;</rbnfrule>
- <rbnfrule value="100">←%spellout-cardinal-masculine←hundert→%%ste→;</rbnfrule>
- <rbnfrule value="1000">←%spellout-cardinal-masculine←tausend→%%ste→;</rbnfrule>
- <rbnfrule value="1000000">eine Million→%%ste2→;</rbnfrule>
- <rbnfrule value="2000000">←%spellout-cardinal-feminine← Millionen→%%ste2→;</rbnfrule>
- <rbnfrule value="1000000000">eine Milliarde→%%ste2→;</rbnfrule>
- <rbnfrule value="2000000000">←%spellout-cardinal-feminine← Milliarden→%%ste2→;</rbnfrule>
- <rbnfrule value="1000000000000">eine Billion→%%ste→;</rbnfrule>
- <rbnfrule value="2000000000000">←%spellout-cardinal-feminine← Billionen→%%ste2→;</rbnfrule>
- <rbnfrule value="1000000000000000">eine Billiarde→%%ste2→;</rbnfrule>
- <rbnfrule value="2000000000000000">←%spellout-cardinal-feminine← Billiarden→%%ste2→;</rbnfrule>
- <rbnfrule value="1000000000000000000">=#,##0=.;</rbnfrule>
- </ruleset>
- <ruleset type="spellout-ordinal-n">
- <rbnfrule value="-x">minus →→;</rbnfrule>
- <rbnfrule value="x.x">=#,##0.#=;</rbnfrule>
- <rbnfrule value="0">=%spellout-ordinal=n;</rbnfrule>
- </ruleset>
- <ruleset type="spellout-ordinal-r">
- <rbnfrule value="-x">minus →→;</rbnfrule>
- <rbnfrule value="x.x">=#,##0.#=;</rbnfrule>
- <rbnfrule value="0">=%spellout-ordinal=r;</rbnfrule>
- </ruleset>
- <ruleset type="spellout-ordinal-s">
- <rbnfrule value="-x">minus →→;</rbnfrule>
- <rbnfrule value="x.x">=#,##0.#=;</rbnfrule>
- <rbnfrule value="0">=%spellout-ordinal=s;</rbnfrule>
- </ruleset>
- </rulesetGrouping>
- </rbnf>
+ <identity>
+ <version number="$Revision$"/>
+ <language type="de"/>
+ <territory type="CH"/>
+ </identity>
+ <rbnf>
+ <rulesetGrouping type="SpelloutRules">
+ <ruleset type="spellout-numbering-year">
+ <rbnfrule value="-x">minus →→;</rbnfrule>
+ <rbnfrule value="x.x">=0.0=;</rbnfrule>
+ <rbnfrule value="0">=%spellout-numbering=;</rbnfrule>
+ <rbnfrule value="1100" radix="100">←←hundert[→→];</rbnfrule>
+ <rbnfrule value="2000">=%spellout-numbering=;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-numbering">
+ <rbnfrule value="-x">minus →→;</rbnfrule>
+ <rbnfrule value="x.x">←← Komma →→;</rbnfrule>
+ <rbnfrule value="0">null;</rbnfrule>
+ <rbnfrule value="1">eins;</rbnfrule>
+ <rbnfrule value="2">zwei;</rbnfrule>
+ <rbnfrule value="3">drei;</rbnfrule>
+ <rbnfrule value="4">vier;</rbnfrule>
+ <rbnfrule value="5">fünf;</rbnfrule>
+ <rbnfrule value="6">sechs;</rbnfrule>
+ <rbnfrule value="7">sieben;</rbnfrule>
+ <rbnfrule value="8">acht;</rbnfrule>
+ <rbnfrule value="9">neun;</rbnfrule>
+ <rbnfrule value="10">zehn;</rbnfrule>
+ <rbnfrule value="11">elf;</rbnfrule>
+ <rbnfrule value="12">zwölf;</rbnfrule>
+ <rbnfrule value="13">→→zehn;</rbnfrule>
+ <rbnfrule value="16">sechzehn;</rbnfrule>
+ <rbnfrule value="17">siebzehn;</rbnfrule>
+ <rbnfrule value="18">→→zehn;</rbnfrule>
+ <rbnfrule value="20">[→%spellout-cardinal-masculine→und]zwanzig;</rbnfrule>
+ <rbnfrule value="30">[→%spellout-cardinal-masculine→und]dreissig;</rbnfrule>
+ <rbnfrule value="40">[→%spellout-cardinal-masculine→und]vierzig;</rbnfrule>
+ <rbnfrule value="50">[→%spellout-cardinal-masculine→und]fünfzig;</rbnfrule>
+ <rbnfrule value="60">[→%spellout-cardinal-masculine→und]sechzig;</rbnfrule>
+ <rbnfrule value="70">[→%spellout-cardinal-masculine→und]siebzig;</rbnfrule>
+ <rbnfrule value="80">[→%spellout-cardinal-masculine→und]achtzig;</rbnfrule>
+ <rbnfrule value="90">[→%spellout-cardinal-masculine→und]neunzig;</rbnfrule>
+ <rbnfrule value="100">←%spellout-cardinal-masculine←hundert[→→];</rbnfrule>
+ <rbnfrule value="1000">←%spellout-cardinal-masculine←tausend[→→];</rbnfrule>
+ <rbnfrule value="1000000">eine Million[ →→];</rbnfrule>
+ <rbnfrule value="2000000">←%spellout-cardinal-feminine← Millionen[ →→];</rbnfrule>
+ <rbnfrule value="1000000000">eine Milliarde[ →→];</rbnfrule>
+ <rbnfrule value="2000000000">←%spellout-cardinal-feminine← Milliarden[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000">eine Billion[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000">←%spellout-cardinal-feminine← Billionen[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000">eine Billiarde[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000000">←%spellout-cardinal-feminine← Billiarden[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
+ </ruleset>
+ <!--
+ Here is what the inflection table looks like for this language, and how they map to the various rule names.
+ case masculine feminine neuter
+ nominative ein (cardinal-masculine) eine (cardinal-feminine) ein (cardinal-neuter)
+ genitive eines (cardinal-s) einer (cardinal-r) eines (cardinal-s)
+ dative einem (cardinal-m) einer (cardinal-r) einem (cardinal-m)
+ accusative einen (cardinal-n) eine (cardinal-feminine) ein (cardinal-neuter)
+ -->
+ <ruleset type="spellout-cardinal-neuter">
+ <rbnfrule value="0">=%spellout-cardinal-masculine=;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-cardinal-masculine">
+ <rbnfrule value="-x">minus →→;</rbnfrule>
+ <rbnfrule value="x.x">←← Komma →→;</rbnfrule>
+ <rbnfrule value="0">null;</rbnfrule>
+ <rbnfrule value="1">ein;</rbnfrule>
+ <rbnfrule value="2">=%spellout-numbering=;</rbnfrule>
+ <rbnfrule value="100">←%spellout-cardinal-masculine←hundert[→→];</rbnfrule>
+ <rbnfrule value="1000">←%spellout-cardinal-masculine←tausend[→→];</rbnfrule>
+ <rbnfrule value="1000000">eine Million[ →→];</rbnfrule>
+ <rbnfrule value="2000000">←%spellout-cardinal-feminine← Millionen[ →→];</rbnfrule>
+ <rbnfrule value="1000000000">eine Milliarde[ →→];</rbnfrule>
+ <rbnfrule value="2000000000">←%spellout-cardinal-feminine← Milliarden[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000">eine Billion[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000">←%spellout-cardinal-feminine← Billionen[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000">eine Billiarde[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000000">←%spellout-cardinal-feminine← Billiarden[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-cardinal-feminine">
+ <rbnfrule value="-x">minus →→;</rbnfrule>
+ <rbnfrule value="x.x">←← Komma →→;</rbnfrule>
+ <rbnfrule value="0">null;</rbnfrule>
+ <rbnfrule value="1">eine;</rbnfrule>
+ <rbnfrule value="2">=%spellout-numbering=;</rbnfrule>
+ <rbnfrule value="100">←%spellout-cardinal-masculine←hundert[→→];</rbnfrule>
+ <rbnfrule value="1000">←%spellout-cardinal-masculine←tausend[→→];</rbnfrule>
+ <rbnfrule value="1000000">eine Million[ →→];</rbnfrule>
+ <rbnfrule value="2000000">←%spellout-cardinal-feminine← Millionen[ →→];</rbnfrule>
+ <rbnfrule value="1000000000">eine Milliarde[ →→];</rbnfrule>
+ <rbnfrule value="2000000000">←%spellout-cardinal-feminine← Milliarden[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000">eine Billion[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000">←%spellout-cardinal-feminine← Billionen[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000">eine Billiarde[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000000">←%spellout-cardinal-feminine← Billiarden[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-cardinal-n">
+ <rbnfrule value="-x">minus →→;</rbnfrule>
+ <rbnfrule value="x.x">←← Komma →→;</rbnfrule>
+ <rbnfrule value="0">null;</rbnfrule>
+ <rbnfrule value="1">einen;</rbnfrule>
+ <rbnfrule value="2">=%spellout-numbering=;</rbnfrule>
+ <rbnfrule value="100">←%spellout-cardinal-masculine←hundert[→→];</rbnfrule>
+ <rbnfrule value="1000">←%spellout-cardinal-masculine←tausend[→→];</rbnfrule>
+ <rbnfrule value="1000000">eine Million[ →→];</rbnfrule>
+ <rbnfrule value="2000000">←%spellout-cardinal-feminine← Millionen[ →→];</rbnfrule>
+ <rbnfrule value="1000000000">eine Milliarde[ →→];</rbnfrule>
+ <rbnfrule value="2000000000">←%spellout-cardinal-feminine← Milliarden[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000">eine Billion[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000">←%spellout-cardinal-feminine← Billionen[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000">eine Billiarde[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000000">←%spellout-cardinal-feminine← Billiarden[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-cardinal-r">
+ <rbnfrule value="-x">minus →→;</rbnfrule>
+ <rbnfrule value="x.x">←← Komma →→;</rbnfrule>
+ <rbnfrule value="0">null;</rbnfrule>
+ <rbnfrule value="1">einer;</rbnfrule>
+ <rbnfrule value="2">=%spellout-numbering=;</rbnfrule>
+ <rbnfrule value="100">←%spellout-cardinal-masculine←hundert[→→];</rbnfrule>
+ <rbnfrule value="1000">←%spellout-cardinal-masculine←tausend[→→];</rbnfrule>
+ <rbnfrule value="1000000">eine Million[ →→];</rbnfrule>
+ <rbnfrule value="2000000">←%spellout-cardinal-feminine← Millionen[ →→];</rbnfrule>
+ <rbnfrule value="1000000000">eine Milliarde[ →→];</rbnfrule>
+ <rbnfrule value="2000000000">←%spellout-cardinal-feminine← Milliarden[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000">eine Billion[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000">←%spellout-cardinal-feminine← Billionen[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000">eine Billiarde[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000000">←%spellout-cardinal-feminine← Billiarden[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-cardinal-s">
+ <rbnfrule value="-x">minus →→;</rbnfrule>
+ <rbnfrule value="x.x">←← Komma →→;</rbnfrule>
+ <rbnfrule value="0">null;</rbnfrule>
+ <rbnfrule value="1">eines;</rbnfrule>
+ <rbnfrule value="2">=%spellout-numbering=;</rbnfrule>
+ <rbnfrule value="100">←%spellout-cardinal-masculine←hundert[→→];</rbnfrule>
+ <rbnfrule value="1000">←%spellout-cardinal-masculine←tausend[→→];</rbnfrule>
+ <rbnfrule value="1000000">eine Million[ →→];</rbnfrule>
+ <rbnfrule value="2000000">←%spellout-cardinal-feminine← Millionen[ →→];</rbnfrule>
+ <rbnfrule value="1000000000">eine Milliarde[ →→];</rbnfrule>
+ <rbnfrule value="2000000000">←%spellout-cardinal-feminine← Milliarden[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000">eine Billion[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000">←%spellout-cardinal-feminine← Billionen[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000">eine Billiarde[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000000">←%spellout-cardinal-feminine← Billiarden[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-cardinal-m">
+ <rbnfrule value="-x">minus →→;</rbnfrule>
+ <rbnfrule value="x.x">←← Komma →→;</rbnfrule>
+ <rbnfrule value="0">null;</rbnfrule>
+ <rbnfrule value="1">einem;</rbnfrule>
+ <rbnfrule value="2">=%spellout-numbering=;</rbnfrule>
+ <rbnfrule value="100">←%spellout-cardinal-masculine←hundert[→→];</rbnfrule>
+ <rbnfrule value="1000">←%spellout-cardinal-masculine←tausend[→→];</rbnfrule>
+ <rbnfrule value="1000000">eine Million[ →→];</rbnfrule>
+ <rbnfrule value="2000000">←%spellout-cardinal-feminine← Millionen[ →→];</rbnfrule>
+ <rbnfrule value="1000000000">eine Milliarde[ →→];</rbnfrule>
+ <rbnfrule value="2000000000">←%spellout-cardinal-feminine← Milliarden[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000">eine Billion[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000">←%spellout-cardinal-feminine← Billionen[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000">eine Billiarde[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000000">←%spellout-cardinal-feminine← Billiarden[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
+ </ruleset>
+ <ruleset type="ste" access="private">
+ <rbnfrule value="0">ste;</rbnfrule>
+ <rbnfrule value="1">=%spellout-ordinal=;</rbnfrule>
+ </ruleset>
+ <ruleset type="ste2" access="private">
+ <rbnfrule value="0">ste;</rbnfrule>
+ <rbnfrule value="1">' =%spellout-ordinal=;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-ordinal">
+ <rbnfrule value="-x">minus →→;</rbnfrule>
+ <rbnfrule value="x.x">=#,##0.#=;</rbnfrule>
+ <rbnfrule value="0">nullte;</rbnfrule>
+ <rbnfrule value="1">erste;</rbnfrule>
+ <rbnfrule value="2">zweite;</rbnfrule>
+ <rbnfrule value="3">dritte;</rbnfrule>
+ <rbnfrule value="4">vierte;</rbnfrule>
+ <rbnfrule value="5">fünfte;</rbnfrule>
+ <rbnfrule value="6">sechste;</rbnfrule>
+ <rbnfrule value="7">siebte;</rbnfrule>
+ <rbnfrule value="8">achte;</rbnfrule>
+ <rbnfrule value="9">=%spellout-numbering=te;</rbnfrule>
+ <rbnfrule value="20">=%spellout-numbering=ste;</rbnfrule>
+ <rbnfrule value="100">←%spellout-cardinal-masculine←hundert→%%ste→;</rbnfrule>
+ <rbnfrule value="1000">←%spellout-cardinal-masculine←tausend→%%ste→;</rbnfrule>
+ <rbnfrule value="1000000">eine Million→%%ste2→;</rbnfrule>
+ <rbnfrule value="2000000">←%spellout-cardinal-feminine← Millionen→%%ste2→;</rbnfrule>
+ <rbnfrule value="1000000000">eine Milliarde→%%ste2→;</rbnfrule>
+ <rbnfrule value="2000000000">←%spellout-cardinal-feminine← Milliarden→%%ste2→;</rbnfrule>
+ <rbnfrule value="1000000000000">eine Billion→%%ste→;</rbnfrule>
+ <rbnfrule value="2000000000000">←%spellout-cardinal-feminine← Billionen→%%ste2→;</rbnfrule>
+ <rbnfrule value="1000000000000000">eine Billiarde→%%ste2→;</rbnfrule>
+ <rbnfrule value="2000000000000000">←%spellout-cardinal-feminine← Billiarden→%%ste2→;</rbnfrule>
+ <rbnfrule value="1000000000000000000">=#,##0=.;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-ordinal-n">
+ <rbnfrule value="-x">minus →→;</rbnfrule>
+ <rbnfrule value="x.x">=#,##0.#=;</rbnfrule>
+ <rbnfrule value="0">=%spellout-ordinal=n;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-ordinal-r">
+ <rbnfrule value="-x">minus →→;</rbnfrule>
+ <rbnfrule value="x.x">=#,##0.#=;</rbnfrule>
+ <rbnfrule value="0">=%spellout-ordinal=r;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-ordinal-s">
+ <rbnfrule value="-x">minus →→;</rbnfrule>
+ <rbnfrule value="x.x">=#,##0.#=;</rbnfrule>
+ <rbnfrule value="0">=%spellout-ordinal=s;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-ordinal-m">
+ <rbnfrule value="-x">minus →→;</rbnfrule>
+ <rbnfrule value="x.x">=#,##0.#=;</rbnfrule>
+ <rbnfrule value="0">=%spellout-ordinal=m;</rbnfrule>
+ </ruleset>
+ </rulesetGrouping>
+ </rbnf>
</ldml>
diff --git a/common/rbnf/fi.xml b/common/rbnf/fi.xml
index 712d8cf..dce5e42 100644
--- a/common/rbnf/fi.xml
+++ b/common/rbnf/fi.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!--
-Copyright © 1991-2013 Unicode, Inc.
+Copyright © 1991-2021 Unicode, Inc.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
For terms of use, see http://www.unicode.org/copyright.html
-->
@@ -328,6 +328,31 @@
<rbnfrule value="2000000000000">←← biljoonalle[ →→];</rbnfrule>
<rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
</ruleset>
+ <ruleset type="spellout-cardinal-plural">
+ <rbnfrule value="-x">miinus →→;</rbnfrule>
+ <rbnfrule value="x.x">←← pilkku →→;</rbnfrule>
+ <rbnfrule value="0">nollat;</rbnfrule>
+ <rbnfrule value="1">yhdet;</rbnfrule>
+ <rbnfrule value="2">kahdet;</rbnfrule>
+ <rbnfrule value="3">kolmet;</rbnfrule>
+ <rbnfrule value="4">neljät;</rbnfrule>
+ <rbnfrule value="5">viidet;</rbnfrule>
+ <rbnfrule value="6">kuudet;</rbnfrule>
+ <rbnfrule value="7">seitsemät;</rbnfrule>
+ <rbnfrule value="8">kahdeksat;</rbnfrule>
+ <rbnfrule value="9">yhdeksät;</rbnfrule>
+ <rbnfrule value="10">kymmenet;</rbnfrule>
+ <rbnfrule value="11">→→toista;</rbnfrule>
+ <rbnfrule value="20">←←-kymmenet[→→];</rbnfrule>
+ <rbnfrule value="100">sadat[→→];</rbnfrule>
+ <rbnfrule value="200">←←-sadat[→→];</rbnfrule>
+ <rbnfrule value="1000">tuhannet[→→];</rbnfrule>
+ <rbnfrule value="2000">←←tuhannet[→→];</rbnfrule>
+ <rbnfrule value="1000000">←← miljoonat[ →→];</rbnfrule>
+ <rbnfrule value="1000000000">←← miljardit[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000">←← biljoonat[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
+ </ruleset>
<ruleset type="spellout-cardinal-genitive-plural">
<rbnfrule value="-x">miinus →→;</rbnfrule>
<rbnfrule value="x.x">←← pilkku →→;</rbnfrule>
@@ -993,6 +1018,41 @@
<rbnfrule value="2000000000000">←%%spellout-ordinal-allative-larger←biljoonannelle[ →→];</rbnfrule>
<rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
</ruleset>
+ <ruleset type="spellout-ordinal-plural-larger" access="private">
+ <rbnfrule value="0">;</rbnfrule>
+ <rbnfrule value="2">kahdennet;</rbnfrule>
+ <rbnfrule value="3">=%spellout-ordinal-plural=;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-ordinal-plural">
+ <rbnfrule value="-x">miinus →→;</rbnfrule>
+ <rbnfrule value="x.x">=#,##0.#=;</rbnfrule>
+ <rbnfrule value="0">nollannet;</rbnfrule>
+ <rbnfrule value="1">ensimmäiset;</rbnfrule>
+ <rbnfrule value="2">toiset;</rbnfrule>
+ <rbnfrule value="3">kolmannet;</rbnfrule>
+ <rbnfrule value="4">neljännet;</rbnfrule>
+ <rbnfrule value="5">viidennet;</rbnfrule>
+ <rbnfrule value="6">kuudennet;</rbnfrule>
+ <rbnfrule value="7">seitsemännet;</rbnfrule>
+ <rbnfrule value="8">kahdeksannet;</rbnfrule>
+ <rbnfrule value="9">yhdeksännet;</rbnfrule>
+ <rbnfrule value="10">kymmenennet;</rbnfrule>
+ <rbnfrule value="11">yhdennettoista;</rbnfrule>
+ <rbnfrule value="12">kahdennettoista;</rbnfrule>
+ <rbnfrule value="13">→→toista;</rbnfrule>
+ <rbnfrule value="20">←%%spellout-ordinal-plural-larger←kymmenennet[→→];</rbnfrule>
+ <rbnfrule value="100">sadannet[→→];</rbnfrule>
+ <rbnfrule value="200">←%%spellout-ordinal-plural-larger←sadannet[→→];</rbnfrule>
+ <rbnfrule value="1000">tuhannennet[→→];</rbnfrule>
+ <rbnfrule value="2000">←%%spellout-ordinal-plural-larger←tuhannennet[→→];</rbnfrule>
+ <rbnfrule value="1000000">miljoonannet[→→];</rbnfrule>
+ <rbnfrule value="2000000">←%%spellout-ordinal-plural-larger←miljoonannet[→→];</rbnfrule>
+ <rbnfrule value="1000000000">miljardinnet[→→];</rbnfrule>
+ <rbnfrule value="2000000000">←%%spellout-ordinal-plural-larger←miljardinnet[→→];</rbnfrule>
+ <rbnfrule value="1000000000000">biljoonannet[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000">←%%spellout-ordinal-plural-larger←biljoonannet[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
+ </ruleset>
<ruleset type="spellout-ordinal-genitive-plural-larger" access="private">
<rbnfrule value="0">;</rbnfrule>
<rbnfrule value="2">kahdensien;</rbnfrule>
diff --git a/common/rbnf/fr.xml b/common/rbnf/fr.xml
index f2be1b3..7a75ddb 100644
--- a/common/rbnf/fr.xml
+++ b/common/rbnf/fr.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!--
-Copyright © 1991-2013 Unicode, Inc.
+Copyright © 1991-2021 Unicode, Inc.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
For terms of use, see http://www.unicode.org/copyright.html
-->
@@ -20,7 +20,7 @@
<rbnfrule value="x.x">=0.0=;</rbnfrule>
<rbnfrule value="0">=%spellout-numbering=;</rbnfrule>
<rbnfrule value="1100" radix="100">←%spellout-cardinal-masculine←-cent→%%cents-m→;</rbnfrule>
- <rbnfrule value="10000">=%spellout-numbering=;</rbnfrule>
+ <rbnfrule value="2000">=%spellout-numbering=;</rbnfrule>
</ruleset>
<ruleset type="spellout-numbering">
<rbnfrule value="0">=%spellout-cardinal-masculine=;</rbnfrule>
diff --git a/common/rbnf/fr_BE.xml b/common/rbnf/fr_BE.xml
index 5bb77c8..ab5f06b 100644
--- a/common/rbnf/fr_BE.xml
+++ b/common/rbnf/fr_BE.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!--
-Copyright © 1991-2013 Unicode, Inc.
+Copyright © 1991-2021 Unicode, Inc.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
For terms of use, see http://www.unicode.org/copyright.html
-->
@@ -21,7 +21,7 @@
<rbnfrule value="x.x">=0.0=;</rbnfrule>
<rbnfrule value="0">=%spellout-numbering=;</rbnfrule>
<rbnfrule value="1100" radix="100">←%spellout-cardinal-masculine←-cent→%%cents-m→;</rbnfrule>
- <rbnfrule value="10000">=%spellout-numbering=;</rbnfrule>
+ <rbnfrule value="2000">=%spellout-numbering=;</rbnfrule>
</ruleset>
<ruleset type="spellout-numbering">
<rbnfrule value="0">=%spellout-cardinal-masculine=;</rbnfrule>
diff --git a/common/rbnf/fr_CH.xml b/common/rbnf/fr_CH.xml
index a072ec5..583925d 100644
--- a/common/rbnf/fr_CH.xml
+++ b/common/rbnf/fr_CH.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!--
-Copyright © 1991-2013 Unicode, Inc.
+Copyright © 1991-2021 Unicode, Inc.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
For terms of use, see http://www.unicode.org/copyright.html
-->
@@ -21,7 +21,7 @@
<rbnfrule value="x.x">=0.0=;</rbnfrule>
<rbnfrule value="0">=%spellout-numbering=;</rbnfrule>
<rbnfrule value="1100" radix="100">←%spellout-cardinal-masculine←-cent→%%cents-m→;</rbnfrule>
- <rbnfrule value="10000">=%spellout-numbering=;</rbnfrule>
+ <rbnfrule value="2000">=%spellout-numbering=;</rbnfrule>
</ruleset>
<ruleset type="spellout-numbering">
<rbnfrule value="0">=%spellout-cardinal-masculine=;</rbnfrule>
diff --git a/common/rbnf/it.xml b/common/rbnf/it.xml
index dd88fea..c129b5a 100644
--- a/common/rbnf/it.xml
+++ b/common/rbnf/it.xml
@@ -157,7 +157,7 @@
</ruleset>
<ruleset type="msc-with-i-nofinal" access="private">
<rbnfrule value="0">=%%msc-with-i=;</rbnfrule>
- <rbnfrule value="3">atre;</rbnfrule>
+ <rbnfrule value="3">itre;</rbnfrule>
<rbnfrule value="4">=%%msc-with-i=;</rbnfrule>
</ruleset>
<ruleset type="msc-with-a-nofinal" access="private">
diff --git a/common/rbnf/nb.xml b/common/rbnf/nb.xml
index 343e847..b8b02f9 100644
--- a/common/rbnf/nb.xml
+++ b/common/rbnf/nb.xml
@@ -1,347 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!--
-Copyright © 1991-2013 Unicode, Inc.
-CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
+<!-- Copyright © 1991-2020 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
+Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
+CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
-->
<ldml>
<identity>
<version number="$Revision$"/>
<language type="nb"/>
</identity>
- <rbnf>
- <rulesetGrouping type="SpelloutRules">
- <ruleset type="spellout-numbering-year">
- <rbnfrule value="-x">minus →→;</rbnfrule>
- <rbnfrule value="x.x">=0.0=;</rbnfrule>
- <rbnfrule value="0">=%spellout-numbering=;</rbnfrule>
- <rbnfrule value="1100" radix="100">←←hundre[ og →→];</rbnfrule>
- <rbnfrule value="10000">=%spellout-numbering=;</rbnfrule>
- </ruleset>
- <ruleset type="spellout-numbering">
- <rbnfrule value="0">=%%spellout-cardinal-reale=;</rbnfrule>
- </ruleset>
- <ruleset type="spellout-cardinal-masculine">
- <rbnfrule value="0">=%%spellout-cardinal-reale=;</rbnfrule>
- </ruleset>
- <ruleset type="spellout-cardinal-feminine">
- <rbnfrule value="-x">minus →→;</rbnfrule>
- <rbnfrule value="x.x">←← komma →→;</rbnfrule>
- <rbnfrule value="0">null;</rbnfrule>
- <rbnfrule value="1">ei;</rbnfrule>
- <rbnfrule value="2">=%%spellout-cardinal-reale=;</rbnfrule>
- <rbnfrule value="100">hundre[ og →→];</rbnfrule>
- <rbnfrule value="200">←%spellout-cardinal-neuter← hundre[ og →→];</rbnfrule>
- <rbnfrule value="1000">tusen[ →%%and-small-f→];</rbnfrule>
- <rbnfrule value="2000">←%spellout-cardinal-neuter← tusen[ →%%and-small-f→];</rbnfrule>
- <rbnfrule value="1000000">én million[ →→];</rbnfrule>
- <rbnfrule value="2000000">←%%spellout-cardinal-reale← millioner[ →→];</rbnfrule>
- <rbnfrule value="1000000000">én milliard[ →→];</rbnfrule>
- <rbnfrule value="2000000000">←%%spellout-cardinal-reale← milliarder[ →→];</rbnfrule>
- <rbnfrule value="1000000000000">én billion[ →→];</rbnfrule>
- <rbnfrule value="2000000000000">←%%spellout-cardinal-reale← billioner[ →→];</rbnfrule>
- <rbnfrule value="1000000000000000">én billiard[ →→];</rbnfrule>
- <rbnfrule value="2000000000000000">←%%spellout-cardinal-reale← billiarder[ →→];</rbnfrule>
- <rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
- </ruleset>
- <ruleset type="and-small-f" access="private">
- <rbnfrule value="0">og =%spellout-cardinal-feminine=;</rbnfrule>
- <rbnfrule value="100">=%spellout-cardinal-feminine=;</rbnfrule>
- </ruleset>
- <ruleset type="spellout-cardinal-neuter">
- <rbnfrule value="-x">minus →→;</rbnfrule>
- <rbnfrule value="x.x">←← komma →→;</rbnfrule>
- <rbnfrule value="0">null;</rbnfrule>
- <rbnfrule value="1">ett;</rbnfrule>
- <rbnfrule value="2">=%%spellout-cardinal-reale=;</rbnfrule>
- <rbnfrule value="20">tjue[→→];</rbnfrule>
- <rbnfrule value="30">tretti[→→];</rbnfrule>
- <rbnfrule value="40">førti[→→];</rbnfrule>
- <rbnfrule value="50">femti[→→];</rbnfrule>
- <rbnfrule value="60">seksti[→→];</rbnfrule>
- <rbnfrule value="70">sytti[→→];</rbnfrule>
- <rbnfrule value="80">åtti[→→];</rbnfrule>
- <rbnfrule value="90">nitti[→→];</rbnfrule>
- <rbnfrule value="100">hundre[ og →→];</rbnfrule>
- <rbnfrule value="200">←%spellout-cardinal-neuter← hundre[ og →→];</rbnfrule>
- <rbnfrule value="1000">tusen[ →%%and-small-n→];</rbnfrule>
- <rbnfrule value="2000">←%spellout-cardinal-neuter← tusen[ →%%and-small-n→];</rbnfrule>
- <rbnfrule value="1000000">én million[ →→];</rbnfrule>
- <rbnfrule value="2000000">←%%spellout-cardinal-reale← millioner[ →→];</rbnfrule>
- <rbnfrule value="1000000000">én milliard[ →→];</rbnfrule>
- <rbnfrule value="2000000000">←%%spellout-cardinal-reale← milliarder[ →→];</rbnfrule>
- <rbnfrule value="1000000000000">én billion[ →→];</rbnfrule>
- <rbnfrule value="2000000000000">←%%spellout-cardinal-reale← billioner[ →→];</rbnfrule>
- <rbnfrule value="1000000000000000">én billiard[ →→];</rbnfrule>
- <rbnfrule value="2000000000000000">←%%spellout-cardinal-reale← billiarder[ →→];</rbnfrule>
- <rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
- </ruleset>
- <ruleset type="and-small-n" access="private">
- <rbnfrule value="0">og =%spellout-cardinal-neuter=;</rbnfrule>
- <rbnfrule value="100">=%spellout-cardinal-neuter=;</rbnfrule>
- </ruleset>
- <ruleset type="spellout-cardinal-reale" access="private">
- <rbnfrule value="-x">minus →→;</rbnfrule>
- <rbnfrule value="x.x">←← komma →→;</rbnfrule>
- <rbnfrule value="0">null;</rbnfrule>
- <rbnfrule value="1">én;</rbnfrule>
- <rbnfrule value="2">to;</rbnfrule>
- <rbnfrule value="3">tre;</rbnfrule>
- <rbnfrule value="4">fire;</rbnfrule>
- <rbnfrule value="5">fem;</rbnfrule>
- <rbnfrule value="6">seks;</rbnfrule>
- <rbnfrule value="7">sju;</rbnfrule>
- <rbnfrule value="8">åtte;</rbnfrule>
- <rbnfrule value="9">ni;</rbnfrule>
- <rbnfrule value="10">ti;</rbnfrule>
- <rbnfrule value="11">elleve;</rbnfrule>
- <rbnfrule value="12">tolv;</rbnfrule>
- <rbnfrule value="13">tretten;</rbnfrule>
- <rbnfrule value="14">fjorten;</rbnfrule>
- <rbnfrule value="15">femten;</rbnfrule>
- <rbnfrule value="16">seksten;</rbnfrule>
- <rbnfrule value="17">sytten;</rbnfrule>
- <rbnfrule value="18">atten;</rbnfrule>
- <rbnfrule value="19">nitten;</rbnfrule>
- <rbnfrule value="20">tjue[→→];</rbnfrule>
- <rbnfrule value="30">tretti[→→];</rbnfrule>
- <rbnfrule value="40">førti[→→];</rbnfrule>
- <rbnfrule value="50">femti[→→];</rbnfrule>
- <rbnfrule value="60">seksti[→→];</rbnfrule>
- <rbnfrule value="70">sytti[→→];</rbnfrule>
- <rbnfrule value="80">åtti[→→];</rbnfrule>
- <rbnfrule value="90">nitti[→→];</rbnfrule>
- <rbnfrule value="100">hundre[ og →→];</rbnfrule>
- <rbnfrule value="200">←%spellout-cardinal-neuter← hundre[ og →→];</rbnfrule>
- <rbnfrule value="1000">tusen[ →%%and-small→];</rbnfrule>
- <rbnfrule value="2000">←%spellout-cardinal-neuter← tusen[ →%%and-small→];</rbnfrule>
- <rbnfrule value="1000000">én million[ →→];</rbnfrule>
- <rbnfrule value="2000000">←← millioner[ →→];</rbnfrule>
- <rbnfrule value="1000000000">én milliard[ →→];</rbnfrule>
- <rbnfrule value="2000000000">←← milliarder[ →→];</rbnfrule>
- <rbnfrule value="1000000000000">én billion[ →→];</rbnfrule>
- <rbnfrule value="2000000000000">←← billioner[ →→];</rbnfrule>
- <rbnfrule value="1000000000000000">én billiard[ →→];</rbnfrule>
- <rbnfrule value="2000000000000000">←← billiarder[ →→];</rbnfrule>
- <rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
- </ruleset>
- <ruleset type="and-small" access="private">
- <rbnfrule value="0">og =%%spellout-cardinal-reale=;</rbnfrule>
- <rbnfrule value="100">=%%spellout-cardinal-reale=;</rbnfrule>
- </ruleset>
- <ruleset type="spellout-ordinal-masculine">
- <rbnfrule value="-x">minus →→;</rbnfrule>
- <rbnfrule value="x.x">=#,##0.#=;</rbnfrule>
- <rbnfrule value="0">nullte;</rbnfrule>
- <rbnfrule value="1">første;</rbnfrule>
- <rbnfrule value="2">andre;</rbnfrule>
- <rbnfrule value="3">tredje;</rbnfrule>
- <rbnfrule value="4">fjerde;</rbnfrule>
- <rbnfrule value="5">femte;</rbnfrule>
- <rbnfrule value="6">sjette;</rbnfrule>
- <rbnfrule value="7">sjuende;</rbnfrule>
- <rbnfrule value="8">åttende;</rbnfrule>
- <rbnfrule value="9">niende;</rbnfrule>
- <rbnfrule value="10">tiende;</rbnfrule>
- <rbnfrule value="11">ellevte;</rbnfrule>
- <rbnfrule value="12">tolvte;</rbnfrule>
- <rbnfrule value="13">=%spellout-cardinal-neuter=de;</rbnfrule>
- <rbnfrule value="20">tjue→%%ord-masc-nde→;</rbnfrule>
- <rbnfrule value="30">tretti→%%ord-masc-nde→;</rbnfrule>
- <rbnfrule value="40">førti→%%ord-masc-nde→;</rbnfrule>
- <rbnfrule value="50">femti→%%ord-masc-nde→;</rbnfrule>
- <rbnfrule value="60">seksti→%%ord-masc-nde→;</rbnfrule>
- <rbnfrule value="70">sytti→%%ord-masc-nde→;</rbnfrule>
- <rbnfrule value="80">åtti→%%ord-masc-nde→;</rbnfrule>
- <rbnfrule value="90">nitti→%%ord-masc-nde→;</rbnfrule>
- <rbnfrule value="100">←%spellout-numbering←hundre→%%ord-masc-de→;</rbnfrule>
- <rbnfrule value="1000">←%spellout-numbering←tusen→%%ord-masc-de→;</rbnfrule>
- <rbnfrule value="1000000">én million→%%ord-masc-te→;</rbnfrule>
- <rbnfrule value="2000000">←%%spellout-cardinal-reale← million→%%ord-masc-teer→;</rbnfrule>
- <rbnfrule value="1000000000">én milliard→%%ord-masc-te→;</rbnfrule>
- <rbnfrule value="2000000000">←%%spellout-cardinal-reale← milliard→%%ord-masc-teer→;</rbnfrule>
- <rbnfrule value="1000000000000">én billion→%%ord-masc-te→;</rbnfrule>
- <rbnfrule value="2000000000000">←%%spellout-cardinal-reale← billion→%%ord-masc-teer→;</rbnfrule>
- <rbnfrule value="1000000000000000">én billiard→%%ord-masc-te→;</rbnfrule>
- <rbnfrule value="2000000000000000">←%%spellout-cardinal-reale← billiard→%%ord-masc-teer→;</rbnfrule>
- <rbnfrule value="1000000000000000000">=#,##0=.;</rbnfrule>
- </ruleset>
- <ruleset type="ord-masc-nde" access="private">
- <rbnfrule value="0">ende;</rbnfrule>
- <rbnfrule value="1">=%spellout-ordinal-masculine=;</rbnfrule>
- </ruleset>
- <ruleset type="ord-masc-de" access="private">
- <rbnfrule value="0">de;</rbnfrule>
- <rbnfrule value="1">' =%spellout-ordinal-masculine=;</rbnfrule>
- </ruleset>
- <ruleset type="ord-masc-te" access="private">
- <rbnfrule value="0">te;</rbnfrule>
- <rbnfrule value="1">' =%spellout-ordinal-masculine=;</rbnfrule>
- </ruleset>
- <ruleset type="ord-masc-teer" access="private">
- <rbnfrule value="0">te;</rbnfrule>
- <rbnfrule value="1">er =%spellout-ordinal-masculine=;</rbnfrule>
- </ruleset>
- <ruleset type="spellout-ordinal-neuter">
- <rbnfrule value="-x">minus →→;</rbnfrule>
- <rbnfrule value="x.x">=#,##0.#=;</rbnfrule>
- <rbnfrule value="0">nullte;</rbnfrule>
- <rbnfrule value="1">første;</rbnfrule>
- <rbnfrule value="2">andre;</rbnfrule>
- <rbnfrule value="3">tredje;</rbnfrule>
- <rbnfrule value="4">fjerde;</rbnfrule>
- <rbnfrule value="5">femte;</rbnfrule>
- <rbnfrule value="6">sjette;</rbnfrule>
- <rbnfrule value="7">sjuende;</rbnfrule>
- <rbnfrule value="8">åttende;</rbnfrule>
- <rbnfrule value="9">niende;</rbnfrule>
- <rbnfrule value="10">tiende;</rbnfrule>
- <rbnfrule value="11">ellevte;</rbnfrule>
- <rbnfrule value="12">tolvte;</rbnfrule>
- <rbnfrule value="13">=%spellout-cardinal-neuter=de;</rbnfrule>
- <rbnfrule value="20">tjue→%%ord-neut-nde→;</rbnfrule>
- <rbnfrule value="30">tretti→%%ord-neut-nde→;</rbnfrule>
- <rbnfrule value="40">førti→%%ord-neut-nde→;</rbnfrule>
- <rbnfrule value="50">femti→%%ord-neut-nde→;</rbnfrule>
- <rbnfrule value="60">seksti→%%ord-neut-nde→;</rbnfrule>
- <rbnfrule value="70">sytti→%%ord-neut-nde→;</rbnfrule>
- <rbnfrule value="80">åtti→%%ord-neut-nde→;</rbnfrule>
- <rbnfrule value="90">nitti→%%ord-neut-nde→;</rbnfrule>
- <rbnfrule value="100">←%spellout-numbering←hundre→%%ord-neut-de→;</rbnfrule>
- <rbnfrule value="1000">←%spellout-numbering←tusen→%%ord-neut-de→;</rbnfrule>
- <rbnfrule value="1000000">én million→%%ord-neut-te→;</rbnfrule>
- <rbnfrule value="2000000">←%%spellout-cardinal-reale← million→%%ord-neut-teer→;</rbnfrule>
- <rbnfrule value="1000000000">én milliard→%%ord-neut-te→;</rbnfrule>
- <rbnfrule value="2000000000">←%%spellout-cardinal-reale← milliard→%%ord-neut-teer→;</rbnfrule>
- <rbnfrule value="1000000000000">én billion→%%ord-neut-te→;</rbnfrule>
- <rbnfrule value="2000000000000">←%%spellout-cardinal-reale← billion→%%ord-neut-teer→;</rbnfrule>
- <rbnfrule value="1000000000000000">én billiard→%%ord-neut-te→;</rbnfrule>
- <rbnfrule value="2000000000000000">←%%spellout-cardinal-reale← billiard→%%ord-neut-teer→;</rbnfrule>
- <rbnfrule value="1000000000000000000">=#,##0=.;</rbnfrule>
- </ruleset>
- <ruleset type="ord-neut-nde" access="private">
- <rbnfrule value="0">ende;</rbnfrule>
- <rbnfrule value="1">=%spellout-ordinal-neuter=;</rbnfrule>
- </ruleset>
- <ruleset type="ord-neut-de" access="private">
- <rbnfrule value="0">de;</rbnfrule>
- <rbnfrule value="1">' =%spellout-ordinal-neuter=;</rbnfrule>
- </ruleset>
- <ruleset type="ord-neut-te" access="private">
- <rbnfrule value="0">te;</rbnfrule>
- <rbnfrule value="1">' =%spellout-ordinal-neuter=;</rbnfrule>
- </ruleset>
- <ruleset type="ord-neut-teer" access="private">
- <rbnfrule value="0">te;</rbnfrule>
- <rbnfrule value="1">er =%spellout-ordinal-neuter=;</rbnfrule>
- </ruleset>
- <ruleset type="spellout-ordinal-feminine">
- <rbnfrule value="-x">minus →→;</rbnfrule>
- <rbnfrule value="x.x">=#,##0.#=;</rbnfrule>
- <rbnfrule value="0">nullte;</rbnfrule>
- <rbnfrule value="1">første;</rbnfrule>
- <rbnfrule value="2">andre;</rbnfrule>
- <rbnfrule value="3">tredje;</rbnfrule>
- <rbnfrule value="4">fjerde;</rbnfrule>
- <rbnfrule value="5">femte;</rbnfrule>
- <rbnfrule value="6">sjette;</rbnfrule>
- <rbnfrule value="7">sjuende;</rbnfrule>
- <rbnfrule value="8">åttende;</rbnfrule>
- <rbnfrule value="9">niende;</rbnfrule>
- <rbnfrule value="10">tiende;</rbnfrule>
- <rbnfrule value="11">ellevte;</rbnfrule>
- <rbnfrule value="12">tolvte;</rbnfrule>
- <rbnfrule value="13">=%spellout-cardinal-neuter=de;</rbnfrule>
- <rbnfrule value="20">tjue→%%ord-fem-nde→;</rbnfrule>
- <rbnfrule value="30">tretti→%%ord-fem-nde→;</rbnfrule>
- <rbnfrule value="40">førti→%%ord-fem-nde→;</rbnfrule>
- <rbnfrule value="50">femti→%%ord-fem-nde→;</rbnfrule>
- <rbnfrule value="60">seksti→%%ord-fem-nde→;</rbnfrule>
- <rbnfrule value="70">sytti→%%ord-fem-nde→;</rbnfrule>
- <rbnfrule value="80">åtti→%%ord-fem-nde→;</rbnfrule>
- <rbnfrule value="90">nitti→%%ord-fem-nde→;</rbnfrule>
- <rbnfrule value="100">←%spellout-numbering←hundre→%%ord-fem-de→;</rbnfrule>
- <rbnfrule value="1000">←%spellout-numbering←tusen→%%ord-fem-de→;</rbnfrule>
- <rbnfrule value="1000000">én million→%%ord-fem-te→;</rbnfrule>
- <rbnfrule value="2000000">←%%spellout-cardinal-reale← million→%%ord-fem-teer→;</rbnfrule>
- <rbnfrule value="1000000000">én milliard→%%ord-fem-te→;</rbnfrule>
- <rbnfrule value="2000000000">←%%spellout-cardinal-reale← milliard→%%ord-fem-teer→;</rbnfrule>
- <rbnfrule value="1000000000000">én billion→%%ord-fem-te→;</rbnfrule>
- <rbnfrule value="2000000000000">←%%spellout-cardinal-reale← billion→%%ord-fem-teer→;</rbnfrule>
- <rbnfrule value="1000000000000000">én billiard→%%ord-fem-te→;</rbnfrule>
- <rbnfrule value="2000000000000000">←%%spellout-cardinal-reale← billiard→%%ord-fem-teer→;</rbnfrule>
- <rbnfrule value="1000000000000000000">=#,##0=.;</rbnfrule>
- </ruleset>
- <ruleset type="ord-fem-nde" access="private">
- <rbnfrule value="0">ende;</rbnfrule>
- <rbnfrule value="1">=%spellout-ordinal-feminine=;</rbnfrule>
- </ruleset>
- <ruleset type="ord-fem-de" access="private">
- <rbnfrule value="0">de;</rbnfrule>
- <rbnfrule value="1">' =%spellout-ordinal-feminine=;</rbnfrule>
- </ruleset>
- <ruleset type="ord-fem-te" access="private">
- <rbnfrule value="0">te;</rbnfrule>
- <rbnfrule value="1">' =%spellout-ordinal-feminine=;</rbnfrule>
- </ruleset>
- <ruleset type="ord-fem-teer" access="private">
- <rbnfrule value="0">te;</rbnfrule>
- <rbnfrule value="1">er =%spellout-ordinal-feminine=;</rbnfrule>
- </ruleset>
- <ruleset type="spellout-ordinal-plural">
- <rbnfrule value="-x">minus →→;</rbnfrule>
- <rbnfrule value="x.x">=#,##0.#=;</rbnfrule>
- <rbnfrule value="0">nullte;</rbnfrule>
- <rbnfrule value="1">første;</rbnfrule>
- <rbnfrule value="2">andre;</rbnfrule>
- <rbnfrule value="3">tredje;</rbnfrule>
- <rbnfrule value="4">fjerde;</rbnfrule>
- <rbnfrule value="5">femte;</rbnfrule>
- <rbnfrule value="6">sjette;</rbnfrule>
- <rbnfrule value="7">sjuende;</rbnfrule>
- <rbnfrule value="8">åttende;</rbnfrule>
- <rbnfrule value="9">niende;</rbnfrule>
- <rbnfrule value="10">tiende;</rbnfrule>
- <rbnfrule value="11">ellevte;</rbnfrule>
- <rbnfrule value="12">tolvte;</rbnfrule>
- <rbnfrule value="13">=%spellout-cardinal-neuter=de;</rbnfrule>
- <rbnfrule value="20">tjue→%%ord-plural-nde→;</rbnfrule>
- <rbnfrule value="30">tretti→%%ord-plural-nde→;</rbnfrule>
- <rbnfrule value="40">førti→%%ord-plural-nde→;</rbnfrule>
- <rbnfrule value="50">femti→%%ord-plural-nde→;</rbnfrule>
- <rbnfrule value="60">seksti→%%ord-plural-nde→;</rbnfrule>
- <rbnfrule value="70">sytti→%%ord-plural-nde→;</rbnfrule>
- <rbnfrule value="80">åtti→%%ord-plural-nde→;</rbnfrule>
- <rbnfrule value="90">nitti→%%ord-plural-nde→;</rbnfrule>
- <rbnfrule value="100">←%spellout-numbering←hundre→%%ord-plural-de→;</rbnfrule>
- <rbnfrule value="1000">←%spellout-numbering←tusen→%%ord-plural-de→;</rbnfrule>
- <rbnfrule value="1000000">én million→%%ord-plural-te→;</rbnfrule>
- <rbnfrule value="2000000">←%%spellout-cardinal-reale← million→%%ord-plural-teer→;</rbnfrule>
- <rbnfrule value="1000000000">én milliard→%%ord-plural-te→;</rbnfrule>
- <rbnfrule value="2000000000">←%%spellout-cardinal-reale← milliard→%%ord-plural-teer→;</rbnfrule>
- <rbnfrule value="1000000000000">én billion→%%ord-plural-te→;</rbnfrule>
- <rbnfrule value="2000000000000">←%%spellout-cardinal-reale← billion→%%ord-plural-teer→;</rbnfrule>
- <rbnfrule value="1000000000000000">én billiard→%%ord-plural-te→;</rbnfrule>
- <rbnfrule value="2000000000000000">←%%spellout-cardinal-reale← billiard→%%ord-plural-teer→;</rbnfrule>
- <rbnfrule value="1000000000000000000">=#,##0=.;</rbnfrule>
- </ruleset>
- <ruleset type="ord-plural-nde" access="private">
- <rbnfrule value="0">ende;</rbnfrule>
- <rbnfrule value="1">=%spellout-ordinal-plural=;</rbnfrule>
- </ruleset>
- <ruleset type="ord-plural-de" access="private">
- <rbnfrule value="0">de;</rbnfrule>
- <rbnfrule value="1">' =%spellout-ordinal-plural=;</rbnfrule>
- </ruleset>
- <ruleset type="ord-plural-te" access="private">
- <rbnfrule value="0">te;</rbnfrule>
- <rbnfrule value="1">' =%spellout-ordinal-plural=;</rbnfrule>
- </ruleset>
- <ruleset type="ord-plural-teer" access="private">
- <rbnfrule value="0">te;</rbnfrule>
- <rbnfrule value="1">er =%spellout-ordinal-plural=;</rbnfrule>
- </ruleset>
- </rulesetGrouping>
- </rbnf>
</ldml>
diff --git a/common/rbnf/ne.xml b/common/rbnf/ne.xml
new file mode 100644
index 0000000..017caf0
--- /dev/null
+++ b/common/rbnf/ne.xml
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
+<!--
+Copyright 2021 Unicode, Inc.
+CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
+For terms of use, see http://www.unicode.org/copyright.html
+-->
+<ldml>
+ <identity>
+ <version number="$Revision$"/>
+ <language type="ne"/>
+ </identity>
+ <rbnf>
+ <rulesetGrouping type="SpelloutRules">
+ <ruleset type="spellout-numbering-year">
+ <rbnfrule value="-x">ऋणात्मक →→;</rbnfrule>
+ <rbnfrule value="x.x">=#,##,##0.#=;</rbnfrule>
+ <rbnfrule value="0">=%spellout-numbering=;</rbnfrule>
+ <rbnfrule value="1000" radix="100">←← सय[ →→];</rbnfrule>
+ <rbnfrule value="10000">=%spellout-numbering=;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-numbering">
+ <rbnfrule value="-x">ऋणात्मक →→;</rbnfrule>
+ <rbnfrule value="x.x">←← दशमलव →→;</rbnfrule>
+ <rbnfrule value="Inf">अनन्त;</rbnfrule>
+ <rbnfrule value="0">शुन्य;</rbnfrule>
+ <rbnfrule value="1">एक;</rbnfrule>
+ <rbnfrule value="2">दुई;</rbnfrule>
+ <rbnfrule value="3">तिन;</rbnfrule>
+ <rbnfrule value="4">चार;</rbnfrule>
+ <rbnfrule value="5">पाँच;</rbnfrule>
+ <rbnfrule value="6">छ;</rbnfrule>
+ <rbnfrule value="7">सात;</rbnfrule>
+ <rbnfrule value="8">आठ;</rbnfrule>
+ <rbnfrule value="9">नौ;</rbnfrule>
+ <rbnfrule value="10">दस;</rbnfrule>
+ <rbnfrule value="11">एघार;</rbnfrule>
+ <rbnfrule value="12">बाह्र;</rbnfrule>
+ <rbnfrule value="13">तेह्र;</rbnfrule>
+ <rbnfrule value="14">चौध;</rbnfrule>
+ <rbnfrule value="15">पन्ध्र;</rbnfrule>
+ <rbnfrule value="16">सोह्र;</rbnfrule>
+ <rbnfrule value="17">सत्र;</rbnfrule>
+ <rbnfrule value="18">अठार;</rbnfrule>
+ <rbnfrule value="19">उन्नाइस;</rbnfrule>
+ <rbnfrule value="20">बिस;</rbnfrule>
+ <rbnfrule value="21">एक्काइस;</rbnfrule>
+ <rbnfrule value="22">बाइस;</rbnfrule>
+ <rbnfrule value="23">तेइस;</rbnfrule>
+ <rbnfrule value="24">चौबिस;</rbnfrule>
+ <rbnfrule value="25">पच्चिस;</rbnfrule>
+ <rbnfrule value="26">छब्बिस;</rbnfrule>
+ <rbnfrule value="27">सत्ताइस;</rbnfrule>
+ <rbnfrule value="28">अट्ठाइस;</rbnfrule>
+ <rbnfrule value="29">उनन्तिस;</rbnfrule>
+ <rbnfrule value="30">तिस;</rbnfrule>
+ <rbnfrule value="31">एकतिस;</rbnfrule>
+ <rbnfrule value="32">बत्तिस;</rbnfrule>
+ <rbnfrule value="33">तेत्तिस;</rbnfrule>
+ <rbnfrule value="34">चौँतिस;</rbnfrule>
+ <rbnfrule value="35">पैँतिस;</rbnfrule>
+ <rbnfrule value="36">छत्तिस;</rbnfrule>
+ <rbnfrule value="37">सैँतिस;</rbnfrule>
+ <rbnfrule value="38">अठतिस;</rbnfrule>
+ <rbnfrule value="39">उनन्चालिस;</rbnfrule>
+ <rbnfrule value="40">चालिस;</rbnfrule>
+ <rbnfrule value="41">एकचालिस;</rbnfrule>
+ <rbnfrule value="42">बयालिस;</rbnfrule>
+ <rbnfrule value="43">त्रिचालिस;</rbnfrule>
+ <rbnfrule value="44">चवालिस;</rbnfrule>
+ <rbnfrule value="45">पैँतालिस;</rbnfrule>
+ <rbnfrule value="46">छयालिस;</rbnfrule>
+ <rbnfrule value="47">सतचालिस;</rbnfrule>
+ <rbnfrule value="48">अठचालिस;</rbnfrule>
+ <rbnfrule value="49">उनन्चास;</rbnfrule>
+ <rbnfrule value="50">पचास;</rbnfrule>
+ <rbnfrule value="51">एकाउन्न;</rbnfrule>
+ <rbnfrule value="52">बाउन्न;</rbnfrule>
+ <rbnfrule value="53">त्रिपन्न;</rbnfrule>
+ <rbnfrule value="54">चवन्न;</rbnfrule>
+ <rbnfrule value="55">पचपन्न;</rbnfrule>
+ <rbnfrule value="56">छपन्न;</rbnfrule>
+ <rbnfrule value="57">सन्ताउन्न;</rbnfrule>
+ <rbnfrule value="58">अन्ठाउन्न;</rbnfrule>
+ <rbnfrule value="59">उनन्साठी;</rbnfrule>
+ <rbnfrule value="60">साठी;</rbnfrule>
+ <rbnfrule value="61">एकसट्ठी;</rbnfrule>
+ <rbnfrule value="62">बयसट्ठी;</rbnfrule>
+ <rbnfrule value="63">त्रिसट्ठी;</rbnfrule>
+ <rbnfrule value="64">चौसट्ठी;</rbnfrule>
+ <rbnfrule value="65">पैँसट्ठी;</rbnfrule>
+ <rbnfrule value="66">छयसट्ठी;</rbnfrule>
+ <rbnfrule value="67">सतसट्ठी;</rbnfrule>
+ <rbnfrule value="68">अठसट्ठी;</rbnfrule>
+ <rbnfrule value="69">उनन्सत्तरी;</rbnfrule>
+ <rbnfrule value="70">सत्तरी;</rbnfrule>
+ <rbnfrule value="71">एकहत्तर;</rbnfrule>
+ <rbnfrule value="72">बहत्तर;</rbnfrule>
+ <rbnfrule value="73">त्रिहत्तर;</rbnfrule>
+ <rbnfrule value="74">चौहत्तर;</rbnfrule>
+ <rbnfrule value="75">पचहत्तर;</rbnfrule>
+ <rbnfrule value="76">छयहत्तर;</rbnfrule>
+ <rbnfrule value="77">सतहत्तर;</rbnfrule>
+ <rbnfrule value="78">अठहत्तर;</rbnfrule>
+ <rbnfrule value="79">उनासी;</rbnfrule>
+ <rbnfrule value="80">असी;</rbnfrule>
+ <rbnfrule value="81">एकासी;</rbnfrule>
+ <rbnfrule value="82">बयासी;</rbnfrule>
+ <rbnfrule value="83">त्रियासी;</rbnfrule>
+ <rbnfrule value="84">चौरासी;</rbnfrule>
+ <rbnfrule value="85">पचासी;</rbnfrule>
+ <rbnfrule value="86">छयासी;</rbnfrule>
+ <rbnfrule value="87">सतासी;</rbnfrule>
+ <rbnfrule value="88">अठासी;</rbnfrule>
+ <rbnfrule value="89">उनान्नब्बे;</rbnfrule>
+ <rbnfrule value="90">नब्बे;</rbnfrule>
+ <rbnfrule value="91">एकानब्बे;</rbnfrule>
+ <rbnfrule value="92">बयानब्बे;</rbnfrule>
+ <rbnfrule value="93">त्रियानब्बे;</rbnfrule>
+ <rbnfrule value="94">चौरानब्बे;</rbnfrule>
+ <rbnfrule value="95">पन्चानब्बे;</rbnfrule>
+ <rbnfrule value="96">छयानब्बे;</rbnfrule>
+ <rbnfrule value="97">सन्तानब्बे;</rbnfrule>
+ <rbnfrule value="98">अन्ठानब्बे;</rbnfrule>
+ <rbnfrule value="99">उनान्सय;</rbnfrule>
+ <rbnfrule value="100">←← सय[ →→];</rbnfrule>
+ <rbnfrule value="1000">←← हजार[ →→];</rbnfrule>
+ <rbnfrule value="100000">←← लाख[ →→];</rbnfrule>
+ <rbnfrule value="10000000">←← करोड[ →→];</rbnfrule>
+ <rbnfrule value="1000000000">←← अरब[ →→];</rbnfrule>
+ <rbnfrule value="100000000000">←← खरब[ →→];</rbnfrule>
+ <rbnfrule value="10000000000000">←← शंख[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000">=#,##,##0=;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-cardinal">
+ <rbnfrule value="0">=%spellout-numbering=;</rbnfrule>
+ </ruleset>
+ <ruleset type="consonant-suffix" access="private">
+ <rbnfrule value="0">ौँ;</rbnfrule>
+ <rbnfrule value="1">' =%spellout-numbering=ौँ;</rbnfrule>
+ <rbnfrule value="2">' दुयौँ;</rbnfrule>
+ <rbnfrule value="3">' =%spellout-numbering=ौँ;</rbnfrule>
+ <rbnfrule value="5">' =%spellout-ordinal-masculine=;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-ordinal-masculine">
+ <rbnfrule value="-x">ऋणात्मक →→;</rbnfrule>
+ <rbnfrule value="x.x">=#,##,##0.#=;</rbnfrule>
+ <rbnfrule value="0">शुन्यौँ;</rbnfrule>
+ <rbnfrule value="1">पहिलो;</rbnfrule>
+ <rbnfrule value="2">दोस्रो;</rbnfrule>
+ <rbnfrule value="3">तेस्रो;</rbnfrule>
+ <rbnfrule value="4">चौथो;</rbnfrule>
+ <rbnfrule value="5">पाँचौँ;</rbnfrule>
+ <rbnfrule value="6">छैटौँ;</rbnfrule>
+ <rbnfrule value="7">सातौँ;</rbnfrule>
+ <rbnfrule value="8">आठौँ;</rbnfrule>
+ <rbnfrule value="9">नवौँ;</rbnfrule>
+ <rbnfrule value="10">दशौँ;</rbnfrule>
+ <rbnfrule value="11">एघारौँ;</rbnfrule>
+ <rbnfrule value="12">बाह्रौँ;</rbnfrule>
+ <rbnfrule value="13">=%spellout-numbering=ौँ;</rbnfrule>
+ <rbnfrule value="60">=%spellout-numbering=औँ;</rbnfrule>
+ <rbnfrule value="71">=%spellout-numbering=ौँ;</rbnfrule>
+ <rbnfrule value="80">=%spellout-numbering=औँ;</rbnfrule>
+ <rbnfrule value="99">=%spellout-numbering=ौँ;</rbnfrule>
+ <rbnfrule value="100">←%spellout-numbering← सय→%%consonant-suffix→;</rbnfrule>
+ <rbnfrule value="1000">←%spellout-numbering← हजार→%%consonant-suffix→;</rbnfrule>
+ <rbnfrule value="100000">←%spellout-numbering← लाख→%%consonant-suffix→;</rbnfrule>
+ <rbnfrule value="10000000">←%spellout-numbering← करोड→%%consonant-suffix→;</rbnfrule>
+ <rbnfrule value="1000000000">←%spellout-numbering← अरब→%%consonant-suffix→;</rbnfrule>
+ <rbnfrule value="100000000000">←%spellout-numbering← खरब→%%consonant-suffix→;</rbnfrule>
+ <rbnfrule value="10000000000000">←%spellout-numbering← शंख→%%consonant-suffix→;</rbnfrule>
+ <rbnfrule value="1000000000000000">=#,##,##0=.;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-ordinal-feminine">
+ <rbnfrule value="-x">ऋणात्मक →→;</rbnfrule>
+ <rbnfrule value="x.x">=#,##,##0.#=;</rbnfrule>
+ <rbnfrule value="0">शुन्यौँ;</rbnfrule>
+ <rbnfrule value="1">पहिली;</rbnfrule>
+ <rbnfrule value="2">दोस्री;</rbnfrule>
+ <rbnfrule value="3">तेस्री;</rbnfrule>
+ <rbnfrule value="4">चौथी;</rbnfrule>
+ <rbnfrule value="5">पाँचवी;</rbnfrule>
+ <rbnfrule value="6">=%spellout-ordinal-masculine=;</rbnfrule>
+ </ruleset>
+ </rulesetGrouping>
+ </rbnf>
+</ldml>
diff --git a/common/rbnf/no.xml b/common/rbnf/no.xml
new file mode 100644
index 0000000..88979f0
--- /dev/null
+++ b/common/rbnf/no.xml
@@ -0,0 +1,347 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
+<!--
+Copyright © 1991-2013 Unicode, Inc.
+CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
+For terms of use, see http://www.unicode.org/copyright.html
+-->
+<ldml>
+ <identity>
+ <version number="$Revision$"/>
+ <language type="no"/>
+ </identity>
+ <rbnf>
+ <rulesetGrouping type="SpelloutRules">
+ <ruleset type="spellout-numbering-year">
+ <rbnfrule value="-x">minus →→;</rbnfrule>
+ <rbnfrule value="x.x">=0.0=;</rbnfrule>
+ <rbnfrule value="0">=%spellout-numbering=;</rbnfrule>
+ <rbnfrule value="1100" radix="100">←←hundre[ og →→];</rbnfrule>
+ <rbnfrule value="10000">=%spellout-numbering=;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-numbering">
+ <rbnfrule value="0">=%%spellout-cardinal-reale=;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-cardinal-masculine">
+ <rbnfrule value="0">=%%spellout-cardinal-reale=;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-cardinal-feminine">
+ <rbnfrule value="-x">minus →→;</rbnfrule>
+ <rbnfrule value="x.x">←← komma →→;</rbnfrule>
+ <rbnfrule value="0">null;</rbnfrule>
+ <rbnfrule value="1">ei;</rbnfrule>
+ <rbnfrule value="2">=%%spellout-cardinal-reale=;</rbnfrule>
+ <rbnfrule value="100">hundre[ og →→];</rbnfrule>
+ <rbnfrule value="200">←%spellout-cardinal-neuter← hundre[ og →→];</rbnfrule>
+ <rbnfrule value="1000">tusen[ →%%and-small-f→];</rbnfrule>
+ <rbnfrule value="2000">←%spellout-cardinal-neuter← tusen[ →%%and-small-f→];</rbnfrule>
+ <rbnfrule value="1000000">én million[ →→];</rbnfrule>
+ <rbnfrule value="2000000">←%%spellout-cardinal-reale← millioner[ →→];</rbnfrule>
+ <rbnfrule value="1000000000">én milliard[ →→];</rbnfrule>
+ <rbnfrule value="2000000000">←%%spellout-cardinal-reale← milliarder[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000">én billion[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000">←%%spellout-cardinal-reale← billioner[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000">én billiard[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000000">←%%spellout-cardinal-reale← billiarder[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
+ </ruleset>
+ <ruleset type="and-small-f" access="private">
+ <rbnfrule value="0">og =%spellout-cardinal-feminine=;</rbnfrule>
+ <rbnfrule value="100">=%spellout-cardinal-feminine=;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-cardinal-neuter">
+ <rbnfrule value="-x">minus →→;</rbnfrule>
+ <rbnfrule value="x.x">←← komma →→;</rbnfrule>
+ <rbnfrule value="0">null;</rbnfrule>
+ <rbnfrule value="1">ett;</rbnfrule>
+ <rbnfrule value="2">=%%spellout-cardinal-reale=;</rbnfrule>
+ <rbnfrule value="20">tjue[→→];</rbnfrule>
+ <rbnfrule value="30">tretti[→→];</rbnfrule>
+ <rbnfrule value="40">førti[→→];</rbnfrule>
+ <rbnfrule value="50">femti[→→];</rbnfrule>
+ <rbnfrule value="60">seksti[→→];</rbnfrule>
+ <rbnfrule value="70">sytti[→→];</rbnfrule>
+ <rbnfrule value="80">åtti[→→];</rbnfrule>
+ <rbnfrule value="90">nitti[→→];</rbnfrule>
+ <rbnfrule value="100">hundre[ og →→];</rbnfrule>
+ <rbnfrule value="200">←%spellout-cardinal-neuter← hundre[ og →→];</rbnfrule>
+ <rbnfrule value="1000">tusen[ →%%and-small-n→];</rbnfrule>
+ <rbnfrule value="2000">←%spellout-cardinal-neuter← tusen[ →%%and-small-n→];</rbnfrule>
+ <rbnfrule value="1000000">én million[ →→];</rbnfrule>
+ <rbnfrule value="2000000">←%%spellout-cardinal-reale← millioner[ →→];</rbnfrule>
+ <rbnfrule value="1000000000">én milliard[ →→];</rbnfrule>
+ <rbnfrule value="2000000000">←%%spellout-cardinal-reale← milliarder[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000">én billion[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000">←%%spellout-cardinal-reale← billioner[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000">én billiard[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000000">←%%spellout-cardinal-reale← billiarder[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
+ </ruleset>
+ <ruleset type="and-small-n" access="private">
+ <rbnfrule value="0">og =%spellout-cardinal-neuter=;</rbnfrule>
+ <rbnfrule value="100">=%spellout-cardinal-neuter=;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-cardinal-reale" access="private">
+ <rbnfrule value="-x">minus →→;</rbnfrule>
+ <rbnfrule value="x.x">←← komma →→;</rbnfrule>
+ <rbnfrule value="0">null;</rbnfrule>
+ <rbnfrule value="1">én;</rbnfrule>
+ <rbnfrule value="2">to;</rbnfrule>
+ <rbnfrule value="3">tre;</rbnfrule>
+ <rbnfrule value="4">fire;</rbnfrule>
+ <rbnfrule value="5">fem;</rbnfrule>
+ <rbnfrule value="6">seks;</rbnfrule>
+ <rbnfrule value="7">sju;</rbnfrule>
+ <rbnfrule value="8">åtte;</rbnfrule>
+ <rbnfrule value="9">ni;</rbnfrule>
+ <rbnfrule value="10">ti;</rbnfrule>
+ <rbnfrule value="11">elleve;</rbnfrule>
+ <rbnfrule value="12">tolv;</rbnfrule>
+ <rbnfrule value="13">tretten;</rbnfrule>
+ <rbnfrule value="14">fjorten;</rbnfrule>
+ <rbnfrule value="15">femten;</rbnfrule>
+ <rbnfrule value="16">seksten;</rbnfrule>
+ <rbnfrule value="17">sytten;</rbnfrule>
+ <rbnfrule value="18">atten;</rbnfrule>
+ <rbnfrule value="19">nitten;</rbnfrule>
+ <rbnfrule value="20">tjue[→→];</rbnfrule>
+ <rbnfrule value="30">tretti[→→];</rbnfrule>
+ <rbnfrule value="40">førti[→→];</rbnfrule>
+ <rbnfrule value="50">femti[→→];</rbnfrule>
+ <rbnfrule value="60">seksti[→→];</rbnfrule>
+ <rbnfrule value="70">sytti[→→];</rbnfrule>
+ <rbnfrule value="80">åtti[→→];</rbnfrule>
+ <rbnfrule value="90">nitti[→→];</rbnfrule>
+ <rbnfrule value="100">hundre[ og →→];</rbnfrule>
+ <rbnfrule value="200">←%spellout-cardinal-neuter← hundre[ og →→];</rbnfrule>
+ <rbnfrule value="1000">tusen[ →%%and-small→];</rbnfrule>
+ <rbnfrule value="2000">←%spellout-cardinal-neuter← tusen[ →%%and-small→];</rbnfrule>
+ <rbnfrule value="1000000">én million[ →→];</rbnfrule>
+ <rbnfrule value="2000000">←← millioner[ →→];</rbnfrule>
+ <rbnfrule value="1000000000">én milliard[ →→];</rbnfrule>
+ <rbnfrule value="2000000000">←← milliarder[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000">én billion[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000">←← billioner[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000">én billiard[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000000">←← billiarder[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
+ </ruleset>
+ <ruleset type="and-small" access="private">
+ <rbnfrule value="0">og =%%spellout-cardinal-reale=;</rbnfrule>
+ <rbnfrule value="100">=%%spellout-cardinal-reale=;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-ordinal-masculine">
+ <rbnfrule value="-x">minus →→;</rbnfrule>
+ <rbnfrule value="x.x">=#,##0.#=;</rbnfrule>
+ <rbnfrule value="0">nullte;</rbnfrule>
+ <rbnfrule value="1">første;</rbnfrule>
+ <rbnfrule value="2">andre;</rbnfrule>
+ <rbnfrule value="3">tredje;</rbnfrule>
+ <rbnfrule value="4">fjerde;</rbnfrule>
+ <rbnfrule value="5">femte;</rbnfrule>
+ <rbnfrule value="6">sjette;</rbnfrule>
+ <rbnfrule value="7">sjuende;</rbnfrule>
+ <rbnfrule value="8">åttende;</rbnfrule>
+ <rbnfrule value="9">niende;</rbnfrule>
+ <rbnfrule value="10">tiende;</rbnfrule>
+ <rbnfrule value="11">ellevte;</rbnfrule>
+ <rbnfrule value="12">tolvte;</rbnfrule>
+ <rbnfrule value="13">=%spellout-cardinal-neuter=de;</rbnfrule>
+ <rbnfrule value="20">tjue→%%ord-masc-nde→;</rbnfrule>
+ <rbnfrule value="30">tretti→%%ord-masc-nde→;</rbnfrule>
+ <rbnfrule value="40">førti→%%ord-masc-nde→;</rbnfrule>
+ <rbnfrule value="50">femti→%%ord-masc-nde→;</rbnfrule>
+ <rbnfrule value="60">seksti→%%ord-masc-nde→;</rbnfrule>
+ <rbnfrule value="70">sytti→%%ord-masc-nde→;</rbnfrule>
+ <rbnfrule value="80">åtti→%%ord-masc-nde→;</rbnfrule>
+ <rbnfrule value="90">nitti→%%ord-masc-nde→;</rbnfrule>
+ <rbnfrule value="100">←%spellout-numbering←hundre→%%ord-masc-de→;</rbnfrule>
+ <rbnfrule value="1000">←%spellout-numbering←tusen→%%ord-masc-de→;</rbnfrule>
+ <rbnfrule value="1000000">én million→%%ord-masc-te→;</rbnfrule>
+ <rbnfrule value="2000000">←%%spellout-cardinal-reale← million→%%ord-masc-teer→;</rbnfrule>
+ <rbnfrule value="1000000000">én milliard→%%ord-masc-te→;</rbnfrule>
+ <rbnfrule value="2000000000">←%%spellout-cardinal-reale← milliard→%%ord-masc-teer→;</rbnfrule>
+ <rbnfrule value="1000000000000">én billion→%%ord-masc-te→;</rbnfrule>
+ <rbnfrule value="2000000000000">←%%spellout-cardinal-reale← billion→%%ord-masc-teer→;</rbnfrule>
+ <rbnfrule value="1000000000000000">én billiard→%%ord-masc-te→;</rbnfrule>
+ <rbnfrule value="2000000000000000">←%%spellout-cardinal-reale← billiard→%%ord-masc-teer→;</rbnfrule>
+ <rbnfrule value="1000000000000000000">=#,##0=.;</rbnfrule>
+ </ruleset>
+ <ruleset type="ord-masc-nde" access="private">
+ <rbnfrule value="0">ende;</rbnfrule>
+ <rbnfrule value="1">=%spellout-ordinal-masculine=;</rbnfrule>
+ </ruleset>
+ <ruleset type="ord-masc-de" access="private">
+ <rbnfrule value="0">de;</rbnfrule>
+ <rbnfrule value="1">' =%spellout-ordinal-masculine=;</rbnfrule>
+ </ruleset>
+ <ruleset type="ord-masc-te" access="private">
+ <rbnfrule value="0">te;</rbnfrule>
+ <rbnfrule value="1">' =%spellout-ordinal-masculine=;</rbnfrule>
+ </ruleset>
+ <ruleset type="ord-masc-teer" access="private">
+ <rbnfrule value="0">te;</rbnfrule>
+ <rbnfrule value="1">er =%spellout-ordinal-masculine=;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-ordinal-neuter">
+ <rbnfrule value="-x">minus →→;</rbnfrule>
+ <rbnfrule value="x.x">=#,##0.#=;</rbnfrule>
+ <rbnfrule value="0">nullte;</rbnfrule>
+ <rbnfrule value="1">første;</rbnfrule>
+ <rbnfrule value="2">andre;</rbnfrule>
+ <rbnfrule value="3">tredje;</rbnfrule>
+ <rbnfrule value="4">fjerde;</rbnfrule>
+ <rbnfrule value="5">femte;</rbnfrule>
+ <rbnfrule value="6">sjette;</rbnfrule>
+ <rbnfrule value="7">sjuende;</rbnfrule>
+ <rbnfrule value="8">åttende;</rbnfrule>
+ <rbnfrule value="9">niende;</rbnfrule>
+ <rbnfrule value="10">tiende;</rbnfrule>
+ <rbnfrule value="11">ellevte;</rbnfrule>
+ <rbnfrule value="12">tolvte;</rbnfrule>
+ <rbnfrule value="13">=%spellout-cardinal-neuter=de;</rbnfrule>
+ <rbnfrule value="20">tjue→%%ord-neut-nde→;</rbnfrule>
+ <rbnfrule value="30">tretti→%%ord-neut-nde→;</rbnfrule>
+ <rbnfrule value="40">førti→%%ord-neut-nde→;</rbnfrule>
+ <rbnfrule value="50">femti→%%ord-neut-nde→;</rbnfrule>
+ <rbnfrule value="60">seksti→%%ord-neut-nde→;</rbnfrule>
+ <rbnfrule value="70">sytti→%%ord-neut-nde→;</rbnfrule>
+ <rbnfrule value="80">åtti→%%ord-neut-nde→;</rbnfrule>
+ <rbnfrule value="90">nitti→%%ord-neut-nde→;</rbnfrule>
+ <rbnfrule value="100">←%spellout-numbering←hundre→%%ord-neut-de→;</rbnfrule>
+ <rbnfrule value="1000">←%spellout-numbering←tusen→%%ord-neut-de→;</rbnfrule>
+ <rbnfrule value="1000000">én million→%%ord-neut-te→;</rbnfrule>
+ <rbnfrule value="2000000">←%%spellout-cardinal-reale← million→%%ord-neut-teer→;</rbnfrule>
+ <rbnfrule value="1000000000">én milliard→%%ord-neut-te→;</rbnfrule>
+ <rbnfrule value="2000000000">←%%spellout-cardinal-reale← milliard→%%ord-neut-teer→;</rbnfrule>
+ <rbnfrule value="1000000000000">én billion→%%ord-neut-te→;</rbnfrule>
+ <rbnfrule value="2000000000000">←%%spellout-cardinal-reale← billion→%%ord-neut-teer→;</rbnfrule>
+ <rbnfrule value="1000000000000000">én billiard→%%ord-neut-te→;</rbnfrule>
+ <rbnfrule value="2000000000000000">←%%spellout-cardinal-reale← billiard→%%ord-neut-teer→;</rbnfrule>
+ <rbnfrule value="1000000000000000000">=#,##0=.;</rbnfrule>
+ </ruleset>
+ <ruleset type="ord-neut-nde" access="private">
+ <rbnfrule value="0">ende;</rbnfrule>
+ <rbnfrule value="1">=%spellout-ordinal-neuter=;</rbnfrule>
+ </ruleset>
+ <ruleset type="ord-neut-de" access="private">
+ <rbnfrule value="0">de;</rbnfrule>
+ <rbnfrule value="1">' =%spellout-ordinal-neuter=;</rbnfrule>
+ </ruleset>
+ <ruleset type="ord-neut-te" access="private">
+ <rbnfrule value="0">te;</rbnfrule>
+ <rbnfrule value="1">' =%spellout-ordinal-neuter=;</rbnfrule>
+ </ruleset>
+ <ruleset type="ord-neut-teer" access="private">
+ <rbnfrule value="0">te;</rbnfrule>
+ <rbnfrule value="1">er =%spellout-ordinal-neuter=;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-ordinal-feminine">
+ <rbnfrule value="-x">minus →→;</rbnfrule>
+ <rbnfrule value="x.x">=#,##0.#=;</rbnfrule>
+ <rbnfrule value="0">nullte;</rbnfrule>
+ <rbnfrule value="1">første;</rbnfrule>
+ <rbnfrule value="2">andre;</rbnfrule>
+ <rbnfrule value="3">tredje;</rbnfrule>
+ <rbnfrule value="4">fjerde;</rbnfrule>
+ <rbnfrule value="5">femte;</rbnfrule>
+ <rbnfrule value="6">sjette;</rbnfrule>
+ <rbnfrule value="7">sjuende;</rbnfrule>
+ <rbnfrule value="8">åttende;</rbnfrule>
+ <rbnfrule value="9">niende;</rbnfrule>
+ <rbnfrule value="10">tiende;</rbnfrule>
+ <rbnfrule value="11">ellevte;</rbnfrule>
+ <rbnfrule value="12">tolvte;</rbnfrule>
+ <rbnfrule value="13">=%spellout-cardinal-neuter=de;</rbnfrule>
+ <rbnfrule value="20">tjue→%%ord-fem-nde→;</rbnfrule>
+ <rbnfrule value="30">tretti→%%ord-fem-nde→;</rbnfrule>
+ <rbnfrule value="40">førti→%%ord-fem-nde→;</rbnfrule>
+ <rbnfrule value="50">femti→%%ord-fem-nde→;</rbnfrule>
+ <rbnfrule value="60">seksti→%%ord-fem-nde→;</rbnfrule>
+ <rbnfrule value="70">sytti→%%ord-fem-nde→;</rbnfrule>
+ <rbnfrule value="80">åtti→%%ord-fem-nde→;</rbnfrule>
+ <rbnfrule value="90">nitti→%%ord-fem-nde→;</rbnfrule>
+ <rbnfrule value="100">←%spellout-numbering←hundre→%%ord-fem-de→;</rbnfrule>
+ <rbnfrule value="1000">←%spellout-numbering←tusen→%%ord-fem-de→;</rbnfrule>
+ <rbnfrule value="1000000">én million→%%ord-fem-te→;</rbnfrule>
+ <rbnfrule value="2000000">←%%spellout-cardinal-reale← million→%%ord-fem-teer→;</rbnfrule>
+ <rbnfrule value="1000000000">én milliard→%%ord-fem-te→;</rbnfrule>
+ <rbnfrule value="2000000000">←%%spellout-cardinal-reale← milliard→%%ord-fem-teer→;</rbnfrule>
+ <rbnfrule value="1000000000000">én billion→%%ord-fem-te→;</rbnfrule>
+ <rbnfrule value="2000000000000">←%%spellout-cardinal-reale← billion→%%ord-fem-teer→;</rbnfrule>
+ <rbnfrule value="1000000000000000">én billiard→%%ord-fem-te→;</rbnfrule>
+ <rbnfrule value="2000000000000000">←%%spellout-cardinal-reale← billiard→%%ord-fem-teer→;</rbnfrule>
+ <rbnfrule value="1000000000000000000">=#,##0=.;</rbnfrule>
+ </ruleset>
+ <ruleset type="ord-fem-nde" access="private">
+ <rbnfrule value="0">ende;</rbnfrule>
+ <rbnfrule value="1">=%spellout-ordinal-feminine=;</rbnfrule>
+ </ruleset>
+ <ruleset type="ord-fem-de" access="private">
+ <rbnfrule value="0">de;</rbnfrule>
+ <rbnfrule value="1">' =%spellout-ordinal-feminine=;</rbnfrule>
+ </ruleset>
+ <ruleset type="ord-fem-te" access="private">
+ <rbnfrule value="0">te;</rbnfrule>
+ <rbnfrule value="1">' =%spellout-ordinal-feminine=;</rbnfrule>
+ </ruleset>
+ <ruleset type="ord-fem-teer" access="private">
+ <rbnfrule value="0">te;</rbnfrule>
+ <rbnfrule value="1">er =%spellout-ordinal-feminine=;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-ordinal-plural">
+ <rbnfrule value="-x">minus →→;</rbnfrule>
+ <rbnfrule value="x.x">=#,##0.#=;</rbnfrule>
+ <rbnfrule value="0">nullte;</rbnfrule>
+ <rbnfrule value="1">første;</rbnfrule>
+ <rbnfrule value="2">andre;</rbnfrule>
+ <rbnfrule value="3">tredje;</rbnfrule>
+ <rbnfrule value="4">fjerde;</rbnfrule>
+ <rbnfrule value="5">femte;</rbnfrule>
+ <rbnfrule value="6">sjette;</rbnfrule>
+ <rbnfrule value="7">sjuende;</rbnfrule>
+ <rbnfrule value="8">åttende;</rbnfrule>
+ <rbnfrule value="9">niende;</rbnfrule>
+ <rbnfrule value="10">tiende;</rbnfrule>
+ <rbnfrule value="11">ellevte;</rbnfrule>
+ <rbnfrule value="12">tolvte;</rbnfrule>
+ <rbnfrule value="13">=%spellout-cardinal-neuter=de;</rbnfrule>
+ <rbnfrule value="20">tjue→%%ord-plural-nde→;</rbnfrule>
+ <rbnfrule value="30">tretti→%%ord-plural-nde→;</rbnfrule>
+ <rbnfrule value="40">førti→%%ord-plural-nde→;</rbnfrule>
+ <rbnfrule value="50">femti→%%ord-plural-nde→;</rbnfrule>
+ <rbnfrule value="60">seksti→%%ord-plural-nde→;</rbnfrule>
+ <rbnfrule value="70">sytti→%%ord-plural-nde→;</rbnfrule>
+ <rbnfrule value="80">åtti→%%ord-plural-nde→;</rbnfrule>
+ <rbnfrule value="90">nitti→%%ord-plural-nde→;</rbnfrule>
+ <rbnfrule value="100">←%spellout-numbering←hundre→%%ord-plural-de→;</rbnfrule>
+ <rbnfrule value="1000">←%spellout-numbering←tusen→%%ord-plural-de→;</rbnfrule>
+ <rbnfrule value="1000000">én million→%%ord-plural-te→;</rbnfrule>
+ <rbnfrule value="2000000">←%%spellout-cardinal-reale← million→%%ord-plural-teer→;</rbnfrule>
+ <rbnfrule value="1000000000">én milliard→%%ord-plural-te→;</rbnfrule>
+ <rbnfrule value="2000000000">←%%spellout-cardinal-reale← milliard→%%ord-plural-teer→;</rbnfrule>
+ <rbnfrule value="1000000000000">én billion→%%ord-plural-te→;</rbnfrule>
+ <rbnfrule value="2000000000000">←%%spellout-cardinal-reale← billion→%%ord-plural-teer→;</rbnfrule>
+ <rbnfrule value="1000000000000000">én billiard→%%ord-plural-te→;</rbnfrule>
+ <rbnfrule value="2000000000000000">←%%spellout-cardinal-reale← billiard→%%ord-plural-teer→;</rbnfrule>
+ <rbnfrule value="1000000000000000000">=#,##0=.;</rbnfrule>
+ </ruleset>
+ <ruleset type="ord-plural-nde" access="private">
+ <rbnfrule value="0">ende;</rbnfrule>
+ <rbnfrule value="1">=%spellout-ordinal-plural=;</rbnfrule>
+ </ruleset>
+ <ruleset type="ord-plural-de" access="private">
+ <rbnfrule value="0">de;</rbnfrule>
+ <rbnfrule value="1">' =%spellout-ordinal-plural=;</rbnfrule>
+ </ruleset>
+ <ruleset type="ord-plural-te" access="private">
+ <rbnfrule value="0">te;</rbnfrule>
+ <rbnfrule value="1">' =%spellout-ordinal-plural=;</rbnfrule>
+ </ruleset>
+ <ruleset type="ord-plural-teer" access="private">
+ <rbnfrule value="0">te;</rbnfrule>
+ <rbnfrule value="1">er =%spellout-ordinal-plural=;</rbnfrule>
+ </ruleset>
+ </rulesetGrouping>
+ </rbnf>
+</ldml>
diff --git a/common/rbnf/pt.xml b/common/rbnf/pt.xml
index e81ae9b..97f4eaa 100644
--- a/common/rbnf/pt.xml
+++ b/common/rbnf/pt.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!--
-Copyright © 1991-2013 Unicode, Inc.
+Copyright © 1991-2021 Unicode, Inc.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
For terms of use, see http://www.unicode.org/copyright.html
-->
@@ -22,6 +22,14 @@
<ruleset type="spellout-numbering">
<rbnfrule value="0">=%spellout-cardinal-masculine=;</rbnfrule>
</ruleset>
+ <ruleset type="optional-e" access="private">
+ <rbnfrule value="0">' e ;</rbnfrule>
+ <rbnfrule value="1">' ;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-cardinal-masculine-with-e" access="private">
+ <rbnfrule value="0">' e =%spellout-cardinal-masculine=;</rbnfrule>
+ <rbnfrule value="100">→%%optional-e→=%spellout-cardinal-masculine=;</rbnfrule>
+ </ruleset>
<ruleset type="spellout-cardinal-masculine">
<rbnfrule value="-x">menos →→;</rbnfrule>
<rbnfrule value="x.x">←← vírgula →→;</rbnfrule>
@@ -63,18 +71,18 @@
<rbnfrule value="700">setecentos[ e →→];</rbnfrule>
<rbnfrule value="800">oitocentos[ e →→];</rbnfrule>
<rbnfrule value="900">novecentos[ e →→];</rbnfrule>
- <rbnfrule value="1000">mil[ e →→];</rbnfrule>
- <rbnfrule value="2000">←← mil[ e →→];</rbnfrule>
- <rbnfrule value="1000000">um milhão[ e →→];</rbnfrule>
- <rbnfrule value="2000000">←← milhões[ e →→];</rbnfrule>
- <rbnfrule value="1000000000">um bilhão[ e →→];</rbnfrule>
- <rbnfrule value="2000000000">←← bilhões[ e →→];</rbnfrule>
- <rbnfrule value="1000000000000">um trilhão[ e →→];</rbnfrule>
- <rbnfrule value="2000000000000">←← trilhões[ e →→];</rbnfrule>
- <rbnfrule value="1000000000000000">um quatrilhão[ e →→];</rbnfrule>
- <rbnfrule value="2000000000000000">←← quatrilhões[ e →→];</rbnfrule>
+ <rbnfrule value="1000">mil[→%%spellout-cardinal-masculine-with-e→];</rbnfrule>
+ <rbnfrule value="2000">←← mil[→%%spellout-cardinal-masculine-with-e→];</rbnfrule>
+ <rbnfrule value="1000000">←← $(cardinal,one{milhão}other{milhões})$[→%%spellout-cardinal-masculine-with-e→];</rbnfrule>
+ <rbnfrule value="1000000000">←← $(cardinal,one{bilhão}other{bilhões})$[→%%spellout-cardinal-masculine-with-e→];</rbnfrule>
+ <rbnfrule value="1000000000000">←← $(cardinal,one{trilhão}other{trilhões})$[→%%spellout-cardinal-masculine-with-e→];</rbnfrule>
+ <rbnfrule value="1000000000000000">←← $(cardinal,one{quatrilhão}other{quatrilhões})$[→%%spellout-cardinal-masculine-with-e→];</rbnfrule>
<rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
</ruleset>
+ <ruleset type="spellout-cardinal-feminine-with-e" access="private">
+ <rbnfrule value="0">' e =%spellout-cardinal-feminine=;</rbnfrule>
+ <rbnfrule value="100">→%%optional-e→=%spellout-cardinal-feminine=;</rbnfrule>
+ </ruleset>
<ruleset type="spellout-cardinal-feminine">
<rbnfrule value="-x">menos →→;</rbnfrule>
<rbnfrule value="x.x">←← vírgula →→;</rbnfrule>
@@ -100,16 +108,12 @@
<rbnfrule value="700">setecentas[ e →→];</rbnfrule>
<rbnfrule value="800">oitocentas[ e →→];</rbnfrule>
<rbnfrule value="900">novecentas[ e →→];</rbnfrule>
- <rbnfrule value="1000">mil[ e →→];</rbnfrule>
- <rbnfrule value="2000">←← mil[ e →→];</rbnfrule>
- <rbnfrule value="1000000">um milhão[ e →→];</rbnfrule>
- <rbnfrule value="2000000">←%spellout-cardinal-masculine← milhões[ e →→];</rbnfrule>
- <rbnfrule value="1000000000">um bilhão[ e →→];</rbnfrule>
- <rbnfrule value="2000000000">←%spellout-cardinal-masculine← bilhões[ e →→];</rbnfrule>
- <rbnfrule value="1000000000000">um trilhão[ e →→];</rbnfrule>
- <rbnfrule value="2000000000000">←%spellout-cardinal-masculine← trilhões[ e →→];</rbnfrule>
- <rbnfrule value="1000000000000000">um quatrilhão[ e →→];</rbnfrule>
- <rbnfrule value="2000000000000000">←%spellout-cardinal-masculine← quatrilhões[ e →→];</rbnfrule>
+ <rbnfrule value="1000">mil[→%%spellout-cardinal-feminine-with-e→];</rbnfrule>
+ <rbnfrule value="2000">←← mil[→%%spellout-cardinal-feminine-with-e→];</rbnfrule>
+ <rbnfrule value="1000000">←%spellout-cardinal-masculine← $(cardinal,one{milhão}other{milhões})$[→%%spellout-cardinal-feminine-with-e→];</rbnfrule>
+ <rbnfrule value="1000000000">←%spellout-cardinal-masculine← $(cardinal,one{bilhão}other{bilhões})$[→%%spellout-cardinal-feminine-with-e→];</rbnfrule>
+ <rbnfrule value="1000000000000">←%spellout-cardinal-masculine← $(cardinal,one{trilhão}other{trilhões})$[→%%spellout-cardinal-feminine-with-e→];</rbnfrule>
+ <rbnfrule value="1000000000000000">←%spellout-cardinal-masculine← $(cardinal,one{quatrilhão}other{quatrilhões})$[→%%spellout-cardinal-feminine-with-e→];</rbnfrule>
<rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
</ruleset>
<ruleset type="spellout-ordinal-masculine">
@@ -144,15 +148,11 @@
<rbnfrule value="800">octingentésimo[ →→];</rbnfrule>
<rbnfrule value="900">noningentésimo[ →→];</rbnfrule>
<rbnfrule value="1000">milésimo[ →→];</rbnfrule>
- <rbnfrule value="2000">←%spellout-cardinal-masculine← milésimo[ →→];</rbnfrule>
- <rbnfrule value="1000000">um milionésimo[ →→];</rbnfrule>
- <rbnfrule value="2000000">←%spellout-cardinal-masculine← milionésimo[ →→];</rbnfrule>
- <rbnfrule value="1000000000">um bilionésimo[ →→];</rbnfrule>
- <rbnfrule value="2000000000">←%spellout-cardinal-masculine← bilionésimo[ →→];</rbnfrule>
- <rbnfrule value="1000000000000">um trilionésimo[ →→];</rbnfrule>
- <rbnfrule value="2000000000000">←%spellout-cardinal-masculine← trilionésima[ →→];</rbnfrule>
- <rbnfrule value="1000000000000000">um quadrilionésimo[ →→];</rbnfrule>
- <rbnfrule value="2000000000000000">←%spellout-cardinal-masculine← quadrilionésimo[ →→];</rbnfrule>
+ <rbnfrule value="2000">←%spellout-cardinal-masculine← milésimo[ →→];</rbnfrule>
+ <rbnfrule value="1000000">←%spellout-cardinal-masculine← milionésimo[ →→];</rbnfrule>
+ <rbnfrule value="1000000000">←%spellout-cardinal-masculine← bilionésimo[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000">←%spellout-cardinal-masculine← trilionésima[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000">←%spellout-cardinal-masculine← quadrilionésimo[ →→];</rbnfrule>
<rbnfrule value="1000000000000000000">=#,##0=º;</rbnfrule>
</ruleset>
<ruleset type="spellout-ordinal-feminine">
@@ -187,15 +187,11 @@
<rbnfrule value="800">octingentésima[ →→];</rbnfrule>
<rbnfrule value="900">noningentésima[ →→];</rbnfrule>
<rbnfrule value="1000">milésima[ →→];</rbnfrule>
- <rbnfrule value="2000">←%spellout-cardinal-feminine← milésima[ →→];</rbnfrule>
- <rbnfrule value="1000000">uma milionésima[ →→];</rbnfrule>
- <rbnfrule value="2000000">←%spellout-cardinal-feminine← milionésima[ →→];</rbnfrule>
- <rbnfrule value="1000000000">uma bilionésima[ →→];</rbnfrule>
- <rbnfrule value="2000000000">←%spellout-cardinal-feminine← bilionésima[ →→];</rbnfrule>
- <rbnfrule value="1000000000000">uma trilionésima[ →→];</rbnfrule>
- <rbnfrule value="2000000000000">←%spellout-cardinal-feminine← trilionésima[ →→];</rbnfrule>
- <rbnfrule value="1000000000000000">uma quadrilionésima[ →→];</rbnfrule>
- <rbnfrule value="2000000000000000">←%spellout-cardinal-feminine← quadrilionésima[ →→];</rbnfrule>
+ <rbnfrule value="2000">←%spellout-cardinal-feminine← milésima[ →→];</rbnfrule>
+ <rbnfrule value="1000000">←%spellout-cardinal-feminine← milionésima[ →→];</rbnfrule>
+ <rbnfrule value="1000000000">←%spellout-cardinal-feminine← bilionésima[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000">←%spellout-cardinal-feminine← trilionésima[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000">←%spellout-cardinal-feminine← quadrilionésima[ →→];</rbnfrule>
<rbnfrule value="1000000000000000000">=#,##0=ª;</rbnfrule>
</ruleset>
</rulesetGrouping>
diff --git a/common/rbnf/pt_PT.xml b/common/rbnf/pt_PT.xml
index 1e452e6..5c2c2b6 100644
--- a/common/rbnf/pt_PT.xml
+++ b/common/rbnf/pt_PT.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!--
-Copyright © 1991-2013 Unicode, Inc.
+Copyright © 1991-2021 Unicode, Inc.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
For terms of use, see http://www.unicode.org/copyright.html
-->
@@ -23,6 +23,14 @@
<ruleset type="spellout-numbering">
<rbnfrule value="0">=%spellout-cardinal-masculine=;</rbnfrule>
</ruleset>
+ <ruleset type="optional-e" access="private">
+ <rbnfrule value="0">' e ;</rbnfrule>
+ <rbnfrule value="1">' ;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-cardinal-masculine-with-e" access="private">
+ <rbnfrule value="0">' e =%spellout-cardinal-masculine=;</rbnfrule>
+ <rbnfrule value="100">→%%optional-e→=%spellout-cardinal-masculine=;</rbnfrule>
+ </ruleset>
<ruleset type="spellout-cardinal-masculine">
<rbnfrule value="-x">menos →→;</rbnfrule>
<rbnfrule value="x.x">←← vírgula →→;</rbnfrule>
@@ -64,18 +72,18 @@
<rbnfrule value="700">setecentos[ e →→];</rbnfrule>
<rbnfrule value="800">oitocentos[ e →→];</rbnfrule>
<rbnfrule value="900">novecentos[ e →→];</rbnfrule>
- <rbnfrule value="1000">mil[ e →→];</rbnfrule>
- <rbnfrule value="2000">←← mil[ e →→];</rbnfrule>
- <rbnfrule value="1000000">um milhão[ e →→];</rbnfrule>
- <rbnfrule value="2000000">←← milhões[ e →→];</rbnfrule>
- <rbnfrule value="1000000000">um bilião[ e →→];</rbnfrule>
- <rbnfrule value="2000000000">←← biliões[ e →→];</rbnfrule>
- <rbnfrule value="1000000000000">um trilião[ e →→];</rbnfrule>
- <rbnfrule value="2000000000000">←← triliões[ e →→];</rbnfrule>
- <rbnfrule value="1000000000000000">um quatrilião[ e →→];</rbnfrule>
- <rbnfrule value="2000000000000000">←← quatriliões[ e →→];</rbnfrule>
+ <rbnfrule value="1000">mil[→%%spellout-cardinal-masculine-with-e→];</rbnfrule>
+ <rbnfrule value="2000">←← mil[→%%spellout-cardinal-masculine-with-e→];</rbnfrule>
+ <rbnfrule value="1000000">←← $(cardinal,one{milhão}other{milhões})$[→%%spellout-cardinal-masculine-with-e→];</rbnfrule>
+ <rbnfrule value="1000000000">←← mil milhões[→%%spellout-cardinal-masculine-with-e→];</rbnfrule>
+ <rbnfrule value="1000000000000">←← $(cardinal,one{bilião}other{biliões})$[→%%spellout-cardinal-masculine-with-e→];</rbnfrule>
+ <rbnfrule value="1000000000000000">←← mil biliões[→%%spellout-cardinal-masculine-with-e→];</rbnfrule>
<rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
</ruleset>
+ <ruleset type="spellout-cardinal-feminine-with-e" access="private">
+ <rbnfrule value="0">' e =%spellout-cardinal-feminine=;</rbnfrule>
+ <rbnfrule value="100">→%%optional-e→=%spellout-cardinal-feminine=;</rbnfrule>
+ </ruleset>
<ruleset type="spellout-cardinal-feminine">
<rbnfrule value="-x">menos →→;</rbnfrule>
<rbnfrule value="x.x">←← vírgula →→;</rbnfrule>
@@ -101,16 +109,12 @@
<rbnfrule value="700">setecentas[ e →→];</rbnfrule>
<rbnfrule value="800">oitocentas[ e →→];</rbnfrule>
<rbnfrule value="900">novecentas[ e →→];</rbnfrule>
- <rbnfrule value="1000">mil[ e →→];</rbnfrule>
- <rbnfrule value="2000">←← mil[ e →→];</rbnfrule>
- <rbnfrule value="1000000">um milhão[ e →→];</rbnfrule>
- <rbnfrule value="2000000">←%spellout-cardinal-masculine← milhões[ e →→];</rbnfrule>
- <rbnfrule value="1000000000">um bilião[ e →→];</rbnfrule>
- <rbnfrule value="2000000000">←%spellout-cardinal-masculine← biliões[ e →→];</rbnfrule>
- <rbnfrule value="1000000000000">um trilião[ e →→];</rbnfrule>
- <rbnfrule value="2000000000000">←%spellout-cardinal-masculine← triliões[ e →→];</rbnfrule>
- <rbnfrule value="1000000000000000">um quatrilião[ e →→];</rbnfrule>
- <rbnfrule value="2000000000000000">←%spellout-cardinal-masculine← quatriliões[ e →→];</rbnfrule>
+ <rbnfrule value="1000">mil[→%%spellout-cardinal-feminine-with-e→];</rbnfrule>
+ <rbnfrule value="2000">←← mil[→%%spellout-cardinal-feminine-with-e→];</rbnfrule>
+ <rbnfrule value="1000000">←%spellout-cardinal-masculine← $(cardinal,one{milhão}other{milhões})$[→%%spellout-cardinal-feminine-with-e→];</rbnfrule>
+ <rbnfrule value="1000000000">←%spellout-cardinal-masculine← mil milhões[→%%spellout-cardinal-feminine-with-e→];</rbnfrule>
+ <rbnfrule value="1000000000000">←%spellout-cardinal-masculine← $(cardinal,one{bilião}other{biliões})$[→%%spellout-cardinal-feminine-with-e→];</rbnfrule>
+ <rbnfrule value="1000000000000000">←%spellout-cardinal-masculine← mil biliões[→%%spellout-cardinal-feminine-with-e→];</rbnfrule>
<rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
</ruleset>
<ruleset type="spellout-ordinal-masculine">
@@ -145,15 +149,11 @@
<rbnfrule value="800">octingentésimo[ →→];</rbnfrule>
<rbnfrule value="900">noningentésimo[ →→];</rbnfrule>
<rbnfrule value="1000">milésimo[ →→];</rbnfrule>
- <rbnfrule value="2000">←%spellout-cardinal-masculine← milésimo[ →→];</rbnfrule>
- <rbnfrule value="1000000">um milionésimo[ →→];</rbnfrule>
- <rbnfrule value="2000000">←%spellout-cardinal-masculine← milionésimo[ →→];</rbnfrule>
- <rbnfrule value="1000000000">um bilionésimo[ →→];</rbnfrule>
- <rbnfrule value="2000000000">←%spellout-cardinal-masculine← bilionésimo[ →→];</rbnfrule>
- <rbnfrule value="1000000000000">um trilionésimo[ →→];</rbnfrule>
- <rbnfrule value="2000000000000">←%spellout-cardinal-masculine← trilionésima[ →→];</rbnfrule>
- <rbnfrule value="1000000000000000">um quadrilionésimo[ →→];</rbnfrule>
- <rbnfrule value="2000000000000000">←%spellout-cardinal-masculine← quadrilionésimo[ →→];</rbnfrule>
+ <rbnfrule value="2000">←%spellout-cardinal-masculine← milésimo[ →→];</rbnfrule>
+ <rbnfrule value="1000000">←%spellout-cardinal-masculine← milionésimo[ →→];</rbnfrule>
+ <rbnfrule value="1000000000">←%spellout-cardinal-masculine← mil milionésimo[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000">←%spellout-cardinal-masculine← bilionésimo[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000">←%spellout-cardinal-masculine← mil bilionésimo[ →→];</rbnfrule>
<rbnfrule value="1000000000000000000">=#,##0=º;</rbnfrule>
</ruleset>
<ruleset type="spellout-ordinal-feminine">
@@ -188,15 +188,11 @@
<rbnfrule value="800">octingentésima[ →→];</rbnfrule>
<rbnfrule value="900">noningentésima[ →→];</rbnfrule>
<rbnfrule value="1000">milésima[ →→];</rbnfrule>
- <rbnfrule value="2000">←%spellout-cardinal-feminine← milésima[ →→];</rbnfrule>
- <rbnfrule value="1000000">uma milionésima[ →→];</rbnfrule>
- <rbnfrule value="2000000">←%spellout-cardinal-feminine← milionésima[ →→];</rbnfrule>
- <rbnfrule value="1000000000">uma bilionésima[ →→];</rbnfrule>
- <rbnfrule value="2000000000">←%spellout-cardinal-feminine← bilionésima[ →→];</rbnfrule>
- <rbnfrule value="1000000000000">uma trilionésima[ →→];</rbnfrule>
- <rbnfrule value="2000000000000">←%spellout-cardinal-feminine← trilionésima[ →→];</rbnfrule>
- <rbnfrule value="1000000000000000">uma quadrilionésima[ →→];</rbnfrule>
- <rbnfrule value="2000000000000000">←%spellout-cardinal-feminine← quadrilionésima[ →→];</rbnfrule>
+ <rbnfrule value="2000">←%spellout-cardinal-feminine← milésima[ →→];</rbnfrule>
+ <rbnfrule value="1000000">←%spellout-cardinal-feminine← milionésima[ →→];</rbnfrule>
+ <rbnfrule value="1000000000">←%spellout-cardinal-feminine← mil milionésima[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000">←%spellout-cardinal-feminine← bilionésima[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000">←%spellout-cardinal-feminine← mil bilionésima[ →→];</rbnfrule>
<rbnfrule value="1000000000000000000">=#,##0=ª;</rbnfrule>
</ruleset>
</rulesetGrouping>
diff --git a/common/rbnf/root.xml b/common/rbnf/root.xml
index 37b514f..8c87eed 100644
--- a/common/rbnf/root.xml
+++ b/common/rbnf/root.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!--
-Copyright © 1991-2014 Unicode, Inc.
+Copyright © 1991-2021 Unicode, Inc.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
For terms of use, see http://www.unicode.org/copyright.html
-->
@@ -484,12 +484,12 @@
<rbnfrule value="61">ס״→%hebrew-item→;</rbnfrule>
<rbnfrule value="70">״ע;</rbnfrule>
<rbnfrule value="71">ע״→%hebrew-item→;</rbnfrule>
- <rbnfrule value="80">״פ;</rbnfrule>
+ <rbnfrule value="80">״ף;</rbnfrule>
<rbnfrule value="81">פ״→%hebrew-item→;</rbnfrule>
<rbnfrule value="90">״צ;</rbnfrule>
<rbnfrule value="91">צ״→%hebrew-item→;</rbnfrule>
</ruleset>
- <ruleset type="hebrew-item">
+ <ruleset type="hebrew-item-hundreds" access="private">
<rbnfrule value="-x">−→→;</rbnfrule>
<rbnfrule value="x.x">=#,##0.00=;</rbnfrule>
<rbnfrule value="0">״;</rbnfrule>
@@ -512,7 +512,8 @@
<rbnfrule value="50">נ[→→];</rbnfrule>
<rbnfrule value="60">ס[→→];</rbnfrule>
<rbnfrule value="70">ע[→→];</rbnfrule>
- <rbnfrule value="80">פ[→→];</rbnfrule>
+ <rbnfrule value="80">ף;</rbnfrule>
+ <rbnfrule value="81">פ[→→];</rbnfrule>
<rbnfrule value="90">צ[→→];</rbnfrule>
<rbnfrule value="100">ק[→→];</rbnfrule>
<rbnfrule value="200">ר[→→];</rbnfrule>
@@ -546,6 +547,33 @@
<rbnfrule value="2000" radix="100">תתתתת[→→];</rbnfrule>
<rbnfrule value="2100">=#,##0=;</rbnfrule>
</ruleset>
+ <ruleset type="hebrew-item">
+ <rbnfrule value="-x">−→→;</rbnfrule>
+ <rbnfrule value="x.x">=#,##0.00=;</rbnfrule>
+ <rbnfrule value="0">״;</rbnfrule>
+ <rbnfrule value="1">א;</rbnfrule>
+ <rbnfrule value="2">ב;</rbnfrule>
+ <rbnfrule value="3">ג;</rbnfrule>
+ <rbnfrule value="4">ד;</rbnfrule>
+ <rbnfrule value="5">ה;</rbnfrule>
+ <rbnfrule value="6">ו;</rbnfrule>
+ <rbnfrule value="7">ז;</rbnfrule>
+ <rbnfrule value="8">ח;</rbnfrule>
+ <rbnfrule value="9">ט;</rbnfrule>
+ <rbnfrule value="10">י[→→];</rbnfrule>
+ <rbnfrule value="15">טו;</rbnfrule>
+ <rbnfrule value="16">טז;</rbnfrule>
+ <rbnfrule value="17">י→→;</rbnfrule>
+ <rbnfrule value="20">כ[→→];</rbnfrule>
+ <rbnfrule value="30">ל[→→];</rbnfrule>
+ <rbnfrule value="40">מ[→→];</rbnfrule>
+ <rbnfrule value="50">נ[→→];</rbnfrule>
+ <rbnfrule value="60">ס[→→];</rbnfrule>
+ <rbnfrule value="70">ע[→→];</rbnfrule>
+ <rbnfrule value="80">פ[→→];</rbnfrule>
+ <rbnfrule value="90">צ[→→];</rbnfrule>
+ <rbnfrule value="100">=%%hebrew-item-hundreds=;</rbnfrule>
+ </ruleset>
<ruleset type="roman-lower">
<rbnfrule value="-x">−→→;</rbnfrule>
<rbnfrule value="x.x">=#,##0.00=;</rbnfrule>
diff --git a/common/subdivisions/en.xml b/common/subdivisions/en.xml
index 524f9aa..fac3ff8 100644
--- a/common/subdivisions/en.xml
+++ b/common/subdivisions/en.xml
@@ -5574,7 +5574,7 @@
<subdivision type="zafs">Free State</subdivision>
<subdivision type="zagp">Gauteng</subdivision>
<subdivision type="zagt">Gauteng</subdivision>
- <subdivision type="zakzn">Kwazulu-Natal</subdivision>
+ <subdivision type="zakzn">KwaZulu-Natal</subdivision>
<subdivision type="zalp">Limpopo</subdivision>
<subdivision type="zamp">Mpumalanga</subdivision>
<subdivision type="zanc">Northern Cape</subdivision>
diff --git a/common/subdivisions/nb.xml b/common/subdivisions/nb.xml
index ab7a8c6..22e308d 100644
--- a/common/subdivisions/nb.xml
+++ b/common/subdivisions/nb.xml
@@ -10,4430 +10,4 @@
<version number="$Revision$"/>
<language type="nb"/>
</identity>
- <localeDisplayNames>
- <subdivisions>
- <subdivision type="ad02" draft="contributed">Canillo</subdivision>
- <subdivision type="ad03" draft="contributed">Encamp</subdivision>
- <subdivision type="ad04" draft="contributed">La Massana</subdivision>
- <subdivision type="ad05" draft="contributed">Ordino</subdivision>
- <subdivision type="ad06" draft="contributed">Sant Julià de Lòria</subdivision>
- <subdivision type="ad08" draft="contributed">Escaldes-Engordany</subdivision>
- <subdivision type="aeaj" draft="contributed">Emiratet Ajman</subdivision>
- <subdivision type="aeaz" draft="contributed">Emiratet Abu Dhabi</subdivision>
- <subdivision type="aedu" draft="contributed">Emiratet Dubai</subdivision>
- <subdivision type="aefu" draft="contributed">Emiratet Fujairah</subdivision>
- <subdivision type="aerk" draft="contributed">Emiratet Ras al-Khaimah</subdivision>
- <subdivision type="aesh" draft="contributed">Emiratet Sharjah</subdivision>
- <subdivision type="aeuq" draft="contributed">Emiratet Umm al-Qaiwain</subdivision>
- <subdivision type="afbal" draft="contributed">Balkh</subdivision>
- <subdivision type="afbam" draft="contributed">Bamiyan</subdivision>
- <subdivision type="afbdg" draft="contributed">Badghis</subdivision>
- <subdivision type="afbds" draft="contributed">Badakhshan</subdivision>
- <subdivision type="afbgl" draft="contributed">Baghlan</subdivision>
- <subdivision type="afday" draft="contributed">Daikondi</subdivision>
- <subdivision type="affra" draft="contributed">Farah</subdivision>
- <subdivision type="affyb" draft="contributed">Faryab</subdivision>
- <subdivision type="afgha" draft="contributed">Ghazni</subdivision>
- <subdivision type="afgho" draft="contributed">Ghowr</subdivision>
- <subdivision type="afhel" draft="contributed">Helmand</subdivision>
- <subdivision type="afher" draft="contributed">Herat</subdivision>
- <subdivision type="afjow" draft="contributed">Jowzjan</subdivision>
- <subdivision type="afkab" draft="contributed">Kabul</subdivision>
- <subdivision type="afkan" draft="contributed">Kandahar</subdivision>
- <subdivision type="afkap" draft="contributed">Kapisa</subdivision>
- <subdivision type="afkdz" draft="contributed">Kunduz</subdivision>
- <subdivision type="afkho" draft="contributed">Khost</subdivision>
- <subdivision type="afknr" draft="contributed">Konar</subdivision>
- <subdivision type="aflag" draft="contributed">Laghman</subdivision>
- <subdivision type="aflog" draft="contributed">Lowgar</subdivision>
- <subdivision type="afnan" draft="contributed">Nangarhar</subdivision>
- <subdivision type="afnim" draft="contributed">Nimruz</subdivision>
- <subdivision type="afnur" draft="contributed">Nuristān</subdivision>
- <subdivision type="afpan" draft="contributed">Panjshir</subdivision>
- <subdivision type="afpar" draft="contributed">Parvan</subdivision>
- <subdivision type="afpia" draft="contributed">Paktia</subdivision>
- <subdivision type="afpka" draft="contributed">Paktika</subdivision>
- <subdivision type="afsam" draft="contributed">Samangan</subdivision>
- <subdivision type="afsar" draft="contributed">Sar-e Pol</subdivision>
- <subdivision type="aftak" draft="contributed">Takhar</subdivision>
- <subdivision type="afuru" draft="contributed">Uruzgan</subdivision>
- <subdivision type="afwar" draft="contributed">Vardak</subdivision>
- <subdivision type="afzab" draft="contributed">Zabol</subdivision>
- <subdivision type="ag03" draft="contributed">Saint George prestegjeld</subdivision>
- <subdivision type="ag04" draft="contributed">Saint John prestegjeld</subdivision>
- <subdivision type="ag05" draft="contributed">Saint Mary prestegjeld</subdivision>
- <subdivision type="ag06" draft="contributed">Saint Paul prestegjeld</subdivision>
- <subdivision type="ag07" draft="contributed">Saint Peter prestegjeld</subdivision>
- <subdivision type="ag08" draft="contributed">Saint Philip prestegjeld</subdivision>
- <subdivision type="ag10" draft="contributed">Barbuda</subdivision>
- <subdivision type="ag11" draft="contributed">Redonda</subdivision>
- <subdivision type="al01" draft="contributed">Berat</subdivision>
- <subdivision type="al02" draft="contributed">Durrës</subdivision>
- <subdivision type="al03" draft="contributed">Elbasan</subdivision>
- <subdivision type="al04" draft="contributed">Fier</subdivision>
- <subdivision type="al05" draft="contributed">Gjirokastër</subdivision>
- <subdivision type="al06" draft="contributed">Korçë</subdivision>
- <subdivision type="al07" draft="contributed">Kukës</subdivision>
- <subdivision type="al08" draft="contributed">Lezhë</subdivision>
- <subdivision type="al09" draft="contributed">Dibër</subdivision>
- <subdivision type="al10" draft="contributed">Shkodër</subdivision>
- <subdivision type="al11" draft="contributed">Tiranë</subdivision>
- <subdivision type="al12" draft="contributed">Vlorë</subdivision>
- <subdivision type="amag" draft="contributed">Aragatsotn</subdivision>
- <subdivision type="amar" draft="contributed">Ararat</subdivision>
- <subdivision type="amav" draft="contributed">Armavir</subdivision>
- <subdivision type="amer" draft="contributed">Jerevan</subdivision>
- <subdivision type="amgr" draft="contributed">Gegharkunik</subdivision>
- <subdivision type="amkt" draft="contributed">Kotajk</subdivision>
- <subdivision type="amlo" draft="contributed">Lori</subdivision>
- <subdivision type="amsh" draft="contributed">Sjirak</subdivision>
- <subdivision type="amsu" draft="contributed">Syunik</subdivision>
- <subdivision type="amtv" draft="contributed">Tavusj</subdivision>
- <subdivision type="amvd" draft="contributed">Vajots Dzor</subdivision>
- <subdivision type="aobgo" draft="contributed">Bengo</subdivision>
- <subdivision type="aobgu" draft="contributed">Benguela</subdivision>
- <subdivision type="aobie" draft="contributed">Bié</subdivision>
- <subdivision type="aocab" draft="contributed">Cabinda</subdivision>
- <subdivision type="aoccu" draft="contributed">Cuando Cubango</subdivision>
- <subdivision type="aocnn" draft="contributed">Cunene</subdivision>
- <subdivision type="aocno" draft="contributed">Cuanza Norte</subdivision>
- <subdivision type="aocus" draft="contributed">Cuanza Sul</subdivision>
- <subdivision type="aohua" draft="contributed">Huambo</subdivision>
- <subdivision type="aohui" draft="contributed">Huíla</subdivision>
- <subdivision type="aolno" draft="contributed">Lunda Norte</subdivision>
- <subdivision type="aolsu" draft="contributed">Lunda Sul</subdivision>
- <subdivision type="aolua" draft="contributed">Luanda</subdivision>
- <subdivision type="aomal" draft="contributed">Malanje</subdivision>
- <subdivision type="aomox" draft="contributed">Moxico</subdivision>
- <subdivision type="aonam" draft="contributed">Namibe</subdivision>
- <subdivision type="aouig" draft="contributed">Uíge</subdivision>
- <subdivision type="aozai" draft="contributed">Zaire</subdivision>
- <subdivision type="ara" draft="contributed">Salta</subdivision>
- <subdivision type="arb" draft="contributed">Buenos Aires</subdivision>
- <subdivision type="arc" draft="contributed">Buenos Aires²</subdivision>
- <subdivision type="ard" draft="contributed">San Luis</subdivision>
- <subdivision type="are" draft="contributed">Entre Ríos</subdivision>
- <subdivision type="arf" draft="contributed">La Rioja</subdivision>
- <subdivision type="arg" draft="contributed">Santiago del Estero</subdivision>
- <subdivision type="arh" draft="contributed">Chaco</subdivision>
- <subdivision type="arj" draft="contributed">San Juan</subdivision>
- <subdivision type="ark" draft="contributed">Catamarca</subdivision>
- <subdivision type="arl" draft="contributed">La Pampa</subdivision>
- <subdivision type="arm" draft="contributed">Mendoza</subdivision>
- <subdivision type="arn" draft="contributed">Misiones</subdivision>
- <subdivision type="arp" draft="contributed">Formosa</subdivision>
- <subdivision type="arq" draft="contributed">Neuquén</subdivision>
- <subdivision type="arr" draft="contributed">Río Negro</subdivision>
- <subdivision type="ars" draft="contributed">Santa Fe</subdivision>
- <subdivision type="art" draft="contributed">Tucumán</subdivision>
- <subdivision type="aru" draft="contributed">Chubut</subdivision>
- <subdivision type="arv" draft="contributed">Tierra del Fuego, Antártida e Islas del Atlántico Sur</subdivision>
- <subdivision type="arw" draft="contributed">Corrientes</subdivision>
- <subdivision type="arx" draft="contributed">Córdoba</subdivision>
- <subdivision type="ary" draft="contributed">Jujuy</subdivision>
- <subdivision type="arz" draft="contributed">Santa Cruz</subdivision>
- <subdivision type="at1" draft="contributed">Burgenland</subdivision>
- <subdivision type="at2" draft="contributed">Kärnten</subdivision>
- <subdivision type="at3" draft="contributed">Niederösterreich</subdivision>
- <subdivision type="at4" draft="contributed">Oberösterreich</subdivision>
- <subdivision type="at5" draft="contributed">Salzburg</subdivision>
- <subdivision type="at6" draft="contributed">Steiermark</subdivision>
- <subdivision type="at7" draft="contributed">Tirol</subdivision>
- <subdivision type="at8" draft="contributed">Vorarlberg</subdivision>
- <subdivision type="at9" draft="contributed">Wien</subdivision>
- <subdivision type="auact" draft="contributed">Australian Capital Territory</subdivision>
- <subdivision type="aunsw" draft="contributed">New South Wales</subdivision>
- <subdivision type="aunt" draft="contributed">Nordterritoriet</subdivision>
- <subdivision type="auqld" draft="contributed">Queensland</subdivision>
- <subdivision type="ausa" draft="contributed">Sør-Australia</subdivision>
- <subdivision type="autas" draft="contributed">Tasmania</subdivision>
- <subdivision type="auvic" draft="contributed">Victoria</subdivision>
- <subdivision type="auwa" draft="contributed">Vest-Australia</subdivision>
- <subdivision type="azabs" draft="contributed">Abşeron</subdivision>
- <subdivision type="azaga" draft="contributed">Ağstafa</subdivision>
- <subdivision type="azagc" draft="contributed">Aghjabadi distrikt</subdivision>
- <subdivision type="azagm" draft="contributed">Ağdam</subdivision>
- <subdivision type="azags" draft="contributed">Ağdaş</subdivision>
- <subdivision type="azagu" draft="contributed">Ağsu</subdivision>
- <subdivision type="azast" draft="contributed">Astara</subdivision>
- <subdivision type="azba" draft="contributed">Baku</subdivision>
- <subdivision type="azbab" draft="contributed">Babək</subdivision>
- <subdivision type="azbal" draft="contributed">Balakən</subdivision>
- <subdivision type="azbar" draft="contributed">Bərdə</subdivision>
- <subdivision type="azbey" draft="contributed">Beyləqan</subdivision>
- <subdivision type="azbil" draft="contributed">Biləsuvar</subdivision>
- <subdivision type="azcab" draft="contributed">Cəbrayıl</subdivision>
- <subdivision type="azcal" draft="contributed">Cəlilabab</subdivision>
- <subdivision type="azcul" draft="contributed">Culfa</subdivision>
- <subdivision type="azdas" draft="contributed">Daşkəsən</subdivision>
- <subdivision type="azfuz" draft="contributed">Füzuli</subdivision>
- <subdivision type="azga" draft="contributed">Gandsja</subdivision>
- <subdivision type="azgad" draft="contributed">Gədəbəy</subdivision>
- <subdivision type="azgor" draft="contributed">Goranboy</subdivision>
- <subdivision type="azgoy" draft="contributed">Göyçay</subdivision>
- <subdivision type="azgyg" draft="contributed">Göygöl</subdivision>
- <subdivision type="azhac" draft="contributed">Hacıqabul</subdivision>
- <subdivision type="azimi" draft="contributed">İmişli (distrikt)</subdivision>
- <subdivision type="azism" draft="contributed">İsmayıllı (distrikt)</subdivision>
- <subdivision type="azkal" draft="contributed">Kəlbəcər</subdivision>
- <subdivision type="azkan" draft="contributed">Kəngərli</subdivision>
- <subdivision type="azkur" draft="contributed">Kürdəmir</subdivision>
- <subdivision type="azla" draft="contributed">Lənkəran</subdivision>
- <subdivision type="azlac" draft="contributed">Laçın</subdivision>
- <subdivision type="azlan" draft="contributed">Lənkəran²</subdivision>
- <subdivision type="azler" draft="contributed">Lerik</subdivision>
- <subdivision type="azmas" draft="contributed">Masallı</subdivision>
- <subdivision type="azmi" draft="contributed">Mingachevir</subdivision>
- <subdivision type="aznef" draft="contributed">Neftçala</subdivision>
- <subdivision type="aznv" draft="contributed">Nachitjevan</subdivision>
- <subdivision type="aznx" draft="contributed">Nakhitsjevan</subdivision>
- <subdivision type="azogu" draft="contributed">Oğuz</subdivision>
- <subdivision type="azord" draft="contributed">Ordubad</subdivision>
- <subdivision type="azqab" draft="contributed">Qəbələ</subdivision>
- <subdivision type="azqax" draft="contributed">Qax</subdivision>
- <subdivision type="azqaz" draft="contributed">Qazax</subdivision>
- <subdivision type="azqba" draft="contributed">Quba</subdivision>
- <subdivision type="azqbi" draft="contributed">Qubadlı</subdivision>
- <subdivision type="azqob" draft="contributed">Qobustan</subdivision>
- <subdivision type="azqus" draft="contributed">Qusar</subdivision>
- <subdivision type="azsa" draft="contributed">Şəki</subdivision>
- <subdivision type="azsab" draft="contributed">Sabirabad</subdivision>
- <subdivision type="azsad" draft="contributed">Sədərək</subdivision>
- <subdivision type="azsah" draft="contributed">Şahbuz (distrikt)</subdivision>
- <subdivision type="azsak" draft="contributed">Şəki²</subdivision>
- <subdivision type="azsal" draft="contributed">Salyan</subdivision>
- <subdivision type="azsar" draft="contributed">Şərur (distrikt)</subdivision>
- <subdivision type="azsat" draft="contributed">Saatlı</subdivision>
- <subdivision type="azsbn" draft="contributed">Şabran</subdivision>
- <subdivision type="azsiy" draft="contributed">Siyəzən</subdivision>
- <subdivision type="azskr" draft="contributed">Şəmkir</subdivision>
- <subdivision type="azsm" draft="contributed">Sumqayit</subdivision>
- <subdivision type="azsmi" draft="contributed">Şamaxı</subdivision>
- <subdivision type="azsmx" draft="contributed">Samux</subdivision>
- <subdivision type="azsus" draft="contributed">Şuşa</subdivision>
- <subdivision type="aztar" draft="contributed">Tərtər</subdivision>
- <subdivision type="aztov" draft="contributed">Tovuz</subdivision>
- <subdivision type="azuca" draft="contributed">Ucar</subdivision>
- <subdivision type="azxa" draft="contributed">Stepanakert</subdivision>
- <subdivision type="azxac" draft="contributed">Xaçmaz</subdivision>
- <subdivision type="azxci" draft="contributed">Xocalı</subdivision>
- <subdivision type="azxiz" draft="contributed">Xızı</subdivision>
- <subdivision type="azxvd" draft="contributed">Xocavənd</subdivision>
- <subdivision type="azyar" draft="contributed">Yardımlı</subdivision>
- <subdivision type="azyev" draft="contributed">Yevlax</subdivision>
- <subdivision type="azzan" draft="contributed">Zəngilan (distrikt)</subdivision>
- <subdivision type="azzaq" draft="contributed">Zaqatala (distrikt)</subdivision>
- <subdivision type="azzar" draft="contributed">Zərdab (distrikt)</subdivision>
- <subdivision type="babih" draft="contributed">Føderasjonen av Bosnia og Hercegovina</subdivision>
- <subdivision type="babrc" draft="contributed">Brčko-distriktet</subdivision>
- <subdivision type="basrp" draft="contributed">Republika Srpska</subdivision>
- <subdivision type="bb01" draft="contributed">Christ Church prestegjeld</subdivision>
- <subdivision type="bb02" draft="contributed">Saint Andrew prestegjeld</subdivision>
- <subdivision type="bb03" draft="contributed">Saint George prestegjeld</subdivision>
- <subdivision type="bb04" draft="contributed">Saint James prestegjeld</subdivision>
- <subdivision type="bb05" draft="contributed">Saint John</subdivision>
- <subdivision type="bb06" draft="contributed">Saint Joseph prestegjeld</subdivision>
- <subdivision type="bb07" draft="contributed">Saint Lucy prestegjeld</subdivision>
- <subdivision type="bb08" draft="contributed">Saint Michael prestegjeld</subdivision>
- <subdivision type="bb09" draft="contributed">Saint Peter prestegjeld</subdivision>
- <subdivision type="bb10" draft="contributed">Saint Philip</subdivision>
- <subdivision type="bb11" draft="contributed">Saint Thomas prestegjeld</subdivision>
- <subdivision type="bd06" draft="contributed">Barisal distrikt</subdivision>
- <subdivision type="bd21" draft="contributed">Jamalpur</subdivision>
- <subdivision type="bd54" draft="contributed">Rajshahi distrikt</subdivision>
- <subdivision type="bd55" draft="contributed">Ramgpur Distrikt</subdivision>
- <subdivision type="bd60" draft="contributed">Sylhet distrikt</subdivision>
- <subdivision type="bda" draft="contributed">Barisal</subdivision>
- <subdivision type="bdb" draft="contributed">Chittagong</subdivision>
- <subdivision type="bdc" draft="contributed">Dhaka</subdivision>
- <subdivision type="bdd" draft="contributed">Khulna</subdivision>
- <subdivision type="bde" draft="contributed">Rajshahi</subdivision>
- <subdivision type="bdf" draft="contributed">Rangpur</subdivision>
- <subdivision type="bdg" draft="contributed">Sylhet</subdivision>
- <subdivision type="bebru" draft="contributed">Brussel</subdivision>
- <subdivision type="bevan" draft="contributed">Antwerpen</subdivision>
- <subdivision type="bevbr" draft="contributed">Flamsk Brabant</subdivision>
- <subdivision type="bevlg" draft="contributed">Flandern</subdivision>
- <subdivision type="bevli" draft="contributed">Limburg</subdivision>
- <subdivision type="bevov" draft="contributed">Øst-Flandern</subdivision>
- <subdivision type="bevwv" draft="contributed">Vest-Flandern</subdivision>
- <subdivision type="bewal" draft="contributed">Vallonia</subdivision>
- <subdivision type="bewbr" draft="contributed">Vallonsk Brabant</subdivision>
- <subdivision type="bewht" draft="contributed">Hainaut</subdivision>
- <subdivision type="bewlg" draft="contributed">Liège</subdivision>
- <subdivision type="bewlx" draft="contributed">Luxembourg</subdivision>
- <subdivision type="bewna" draft="contributed">Namur</subdivision>
- <subdivision type="bf01" draft="contributed">Boucle du Mouhoun</subdivision>
- <subdivision type="bf02" draft="contributed">Cascades</subdivision>
- <subdivision type="bf03" draft="contributed">Centre</subdivision>
- <subdivision type="bf04" draft="contributed">Centre-Est</subdivision>
- <subdivision type="bf05" draft="contributed">Centre-Nord</subdivision>
- <subdivision type="bf06" draft="contributed">Centre-Ouest</subdivision>
- <subdivision type="bf07" draft="contributed">Centre-Sud</subdivision>
- <subdivision type="bf08" draft="contributed">Est</subdivision>
- <subdivision type="bf09" draft="contributed">Hauts-Bassins</subdivision>
- <subdivision type="bf10" draft="contributed">Nord</subdivision>
- <subdivision type="bf11" draft="contributed">Plateau-Central</subdivision>
- <subdivision type="bf12" draft="contributed">Sahel</subdivision>
- <subdivision type="bf13" draft="contributed">Sud-Ouest</subdivision>
- <subdivision type="bfbal" draft="contributed">Balé</subdivision>
- <subdivision type="bfbam" draft="contributed">Bam</subdivision>
- <subdivision type="bfban" draft="contributed">Banwa</subdivision>
- <subdivision type="bfbaz" draft="contributed">Bazèga</subdivision>
- <subdivision type="bfbgr" draft="contributed">Bougouriba</subdivision>
- <subdivision type="bfblg" draft="contributed">Boulgou</subdivision>
- <subdivision type="bfblk" draft="contributed">Boulkiemdé</subdivision>
- <subdivision type="bfcom" draft="contributed">Comoé</subdivision>
- <subdivision type="bfgan" draft="contributed">Ganzourgou</subdivision>
- <subdivision type="bfgna" draft="contributed">Gnagna</subdivision>
- <subdivision type="bfgou" draft="contributed">Gourma</subdivision>
- <subdivision type="bfhou" draft="contributed">Houet</subdivision>
- <subdivision type="bfiob" draft="contributed">Ioba</subdivision>
- <subdivision type="bfkad" draft="contributed">Kadiogo</subdivision>
- <subdivision type="bfken" draft="contributed">Kénédougou</subdivision>
- <subdivision type="bfkmd" draft="contributed">Komondjari</subdivision>
- <subdivision type="bfkmp" draft="contributed">Kompienga</subdivision>
- <subdivision type="bfkop" draft="contributed">Koulpélogo</subdivision>
- <subdivision type="bfkos" draft="contributed">Kossi</subdivision>
- <subdivision type="bfkot" draft="contributed">Kouritenga</subdivision>
- <subdivision type="bfkow" draft="contributed">Kourwéogo</subdivision>
- <subdivision type="bfler" draft="contributed">Léraba</subdivision>
- <subdivision type="bflor" draft="contributed">Loroum</subdivision>
- <subdivision type="bfmou" draft="contributed">Mouhoun</subdivision>
- <subdivision type="bfnam" draft="contributed">Namentenga</subdivision>
- <subdivision type="bfnao" draft="contributed">Nahouri</subdivision>
- <subdivision type="bfnay" draft="contributed">Nayala</subdivision>
- <subdivision type="bfnou" draft="contributed">Noumbiel</subdivision>
- <subdivision type="bfoub" draft="contributed">Oubritenga</subdivision>
- <subdivision type="bfoud" draft="contributed">Oudalan</subdivision>
- <subdivision type="bfpas" draft="contributed">Passoré</subdivision>
- <subdivision type="bfpon" draft="contributed">Poni</subdivision>
- <subdivision type="bfsen" draft="contributed">Séno</subdivision>
- <subdivision type="bfsis" draft="contributed">Sissili</subdivision>
- <subdivision type="bfsmt" draft="contributed">Sanmatenga</subdivision>
- <subdivision type="bfsng" draft="contributed">Sanguié</subdivision>
- <subdivision type="bfsom" draft="contributed">Soum</subdivision>
- <subdivision type="bfsor" draft="contributed">Sourou</subdivision>
- <subdivision type="bftap" draft="contributed">Tapoa</subdivision>
- <subdivision type="bftui" draft="contributed">Tuy</subdivision>
- <subdivision type="bfyag" draft="contributed">Yagha</subdivision>
- <subdivision type="bfyat" draft="contributed">Yatenga</subdivision>
- <subdivision type="bfzir" draft="contributed">Ziro</subdivision>
- <subdivision type="bfzon" draft="contributed">Zondoma</subdivision>
- <subdivision type="bfzou" draft="contributed">Zoundwéogo</subdivision>
- <subdivision type="bg01" draft="contributed">Blagoevgrad oblast</subdivision>
- <subdivision type="bg02" draft="contributed">Burgas oblast</subdivision>
- <subdivision type="bg03" draft="contributed">Varna oblast</subdivision>
- <subdivision type="bg04" draft="contributed">Veliko Tarnovo oblast</subdivision>
- <subdivision type="bg05" draft="contributed">Vidin oblast</subdivision>
- <subdivision type="bg06" draft="contributed">Vratsa oblast</subdivision>
- <subdivision type="bg07" draft="contributed">Gabrovo oblast</subdivision>
- <subdivision type="bg08" draft="contributed">Dobritsj oblast</subdivision>
- <subdivision type="bg09" draft="contributed">Kardzhali provins</subdivision>
- <subdivision type="bg10" draft="contributed">Kyustendil provins</subdivision>
- <subdivision type="bg11" draft="contributed">Lovetsj oblast</subdivision>
- <subdivision type="bg12" draft="contributed">Montana oblast</subdivision>
- <subdivision type="bg13" draft="contributed">Pazardzhik provins</subdivision>
- <subdivision type="bg14" draft="contributed">Pernik oblast</subdivision>
- <subdivision type="bg15" draft="contributed">Pleven oblast</subdivision>
- <subdivision type="bg16" draft="contributed">Plovdiv oblast</subdivision>
- <subdivision type="bg17" draft="contributed">Razgrad oblast</subdivision>
- <subdivision type="bg18" draft="contributed">Ruse oblast</subdivision>
- <subdivision type="bg19" draft="contributed">Silistra oblast</subdivision>
- <subdivision type="bg20" draft="contributed">Sliven oblast</subdivision>
- <subdivision type="bg21" draft="contributed">Smoljan oblast</subdivision>
- <subdivision type="bg23" draft="contributed">Sofia provins</subdivision>
- <subdivision type="bg24" draft="contributed">Stara Zagora oblast</subdivision>
- <subdivision type="bg25" draft="contributed">Targovishte provins</subdivision>
- <subdivision type="bg26" draft="contributed">Haskovo oblast</subdivision>
- <subdivision type="bg27" draft="contributed">Sjumen oblast</subdivision>
- <subdivision type="bg28" draft="contributed">Jambol oblast</subdivision>
- <subdivision type="bh13" draft="contributed">Hovedstadsguvernementet</subdivision>
- <subdivision type="bh14" draft="contributed">Sørlige guvernement</subdivision>
- <subdivision type="bh15" draft="contributed">Muharraq guvernement</subdivision>
- <subdivision type="bh17" draft="contributed">Nordlige guvernement</subdivision>
- <subdivision type="bibb" draft="contributed">Bubanza</subdivision>
- <subdivision type="bibl" draft="contributed">Bujumbura Rural</subdivision>
- <subdivision type="bibm" draft="contributed">Bujumbura Mairie</subdivision>
- <subdivision type="bibr" draft="contributed">Bururi</subdivision>
- <subdivision type="bica" draft="contributed">Cankuzo</subdivision>
- <subdivision type="bici" draft="contributed">Cibitoke</subdivision>
- <subdivision type="bigi" draft="contributed">Gitega</subdivision>
- <subdivision type="biki" draft="contributed">Kirundo</subdivision>
- <subdivision type="bikr" draft="contributed">Karuzi</subdivision>
- <subdivision type="biky" draft="contributed">Kayanza</subdivision>
- <subdivision type="bima" draft="contributed">Makamba</subdivision>
- <subdivision type="bimu" draft="contributed">Muramvya</subdivision>
- <subdivision type="bimw" draft="contributed">Mwaro</subdivision>
- <subdivision type="bimy" draft="contributed">Muyinga</subdivision>
- <subdivision type="bing" draft="contributed">Ngozi</subdivision>
- <subdivision type="birt" draft="contributed">Rutana</subdivision>
- <subdivision type="biry" draft="contributed">Ruyigi</subdivision>
- <subdivision type="bjak" draft="contributed">Atakora</subdivision>
- <subdivision type="bjal" draft="contributed">Alibori</subdivision>
- <subdivision type="bjaq" draft="contributed">Atlantique</subdivision>
- <subdivision type="bjbo" draft="contributed">Borgou</subdivision>
- <subdivision type="bjco" draft="contributed">Collines</subdivision>
- <subdivision type="bjdo" draft="contributed">Donga</subdivision>
- <subdivision type="bjko" draft="contributed">Kouffo</subdivision>
- <subdivision type="bjli" draft="contributed">Littoral</subdivision>
- <subdivision type="bjmo" draft="contributed">Mono</subdivision>
- <subdivision type="bjou" draft="contributed">Ouémé</subdivision>
- <subdivision type="bjpl" draft="contributed">Plateau</subdivision>
- <subdivision type="bjzo" draft="contributed">Zou</subdivision>
- <subdivision type="bnbe" draft="contributed">Belait distrikt</subdivision>
- <subdivision type="bnbm" draft="contributed">Brunei-Muara distrik</subdivision>
- <subdivision type="bnte" draft="contributed">Temburong distrikt</subdivision>
- <subdivision type="bntu" draft="contributed">Tutong</subdivision>
- <subdivision type="bob" draft="contributed">Beni</subdivision>
- <subdivision type="boc" draft="contributed">Cochabamba</subdivision>
- <subdivision type="boh" draft="contributed">Chuquisaca</subdivision>
- <subdivision type="bol" draft="contributed">La Paz</subdivision>
- <subdivision type="bon" draft="contributed">Pando</subdivision>
- <subdivision type="boo" draft="contributed">Oruro</subdivision>
- <subdivision type="bop" draft="contributed">Potosí</subdivision>
- <subdivision type="bos" draft="contributed">Santa Cruz</subdivision>
- <subdivision type="bot" draft="contributed">Tarija</subdivision>
- <subdivision type="bqbo" draft="contributed">Bonaire</subdivision>
- <subdivision type="bqsa" draft="contributed">Saba</subdivision>
- <subdivision type="bqse" draft="contributed">Sint Eustatius</subdivision>
- <subdivision type="brac" draft="contributed">Acre</subdivision>
- <subdivision type="bral" draft="contributed">Alagoas</subdivision>
- <subdivision type="bram" draft="contributed">Amazonas</subdivision>
- <subdivision type="brap" draft="contributed">Amapá</subdivision>
- <subdivision type="brba" draft="contributed">Bahia</subdivision>
- <subdivision type="brce" draft="contributed">Ceará</subdivision>
- <subdivision type="brdf" draft="contributed">Distrito Federal</subdivision>
- <subdivision type="bres" draft="contributed">Espírito Santo</subdivision>
- <subdivision type="brgo" draft="contributed">Goiás</subdivision>
- <subdivision type="brma" draft="contributed">Maranhão</subdivision>
- <subdivision type="brmg" draft="contributed">Minas Gerais</subdivision>
- <subdivision type="brms" draft="contributed">Mato Grosso do Sul</subdivision>
- <subdivision type="brmt" draft="contributed">Mato Grosso</subdivision>
- <subdivision type="brpa" draft="contributed">Pará</subdivision>
- <subdivision type="brpb" draft="contributed">Paraíba</subdivision>
- <subdivision type="brpe" draft="contributed">Pernambuco</subdivision>
- <subdivision type="brpi" draft="contributed">Piauí</subdivision>
- <subdivision type="brpr" draft="contributed">Paraná</subdivision>
- <subdivision type="brrj" draft="contributed">Rio de Janeiro</subdivision>
- <subdivision type="brrn" draft="contributed">Rio Grande do Norte</subdivision>
- <subdivision type="brro" draft="contributed">Rondônia</subdivision>
- <subdivision type="brrr" draft="contributed">Roraima</subdivision>
- <subdivision type="brrs" draft="contributed">Rio Grande do Sul</subdivision>
- <subdivision type="brsc" draft="contributed">Santa Catarina</subdivision>
- <subdivision type="brse" draft="contributed">Sergipe</subdivision>
- <subdivision type="brsp" draft="contributed">São Paulo</subdivision>
- <subdivision type="brto" draft="contributed">Tocantins</subdivision>
- <subdivision type="bsak" draft="contributed">Acklins</subdivision>
- <subdivision type="bsbi" draft="contributed">Bimini</subdivision>
- <subdivision type="bsbp" draft="contributed">Black Point</subdivision>
- <subdivision type="bsby" draft="contributed">Berry Islands</subdivision>
- <subdivision type="bsce" draft="contributed">Central Eleuthera</subdivision>
- <subdivision type="bsci" draft="contributed">Cat Island (Bahamas)</subdivision>
- <subdivision type="bsck" draft="contributed">Crooked øy</subdivision>
- <subdivision type="bsco" draft="contributed">Central Abaco</subdivision>
- <subdivision type="bscs" draft="contributed">Central Andros</subdivision>
- <subdivision type="bseg" draft="contributed">Øst Grand Bahama</subdivision>
- <subdivision type="bsex" draft="contributed">Exuma</subdivision>
- <subdivision type="bsfp" draft="contributed">Freeport</subdivision>
- <subdivision type="bsgc" draft="contributed">Grand Cay</subdivision>
- <subdivision type="bshi" draft="contributed">Harbour Island</subdivision>
- <subdivision type="bsht" draft="contributed">Hope Town</subdivision>
- <subdivision type="bsin" draft="contributed">Inagua</subdivision>
- <subdivision type="bsli" draft="contributed">Long Island</subdivision>
- <subdivision type="bsmc" draft="contributed">Mangrove Cay</subdivision>
- <subdivision type="bsmg" draft="contributed">Mayaguana</subdivision>
- <subdivision type="bsmi" draft="contributed">Moores øya</subdivision>
- <subdivision type="bsne" draft="contributed">Nord Eleuthera</subdivision>
- <subdivision type="bsno" draft="contributed">Nord Abaco</subdivision>
- <subdivision type="bsns" draft="contributed">Nord Andros</subdivision>
- <subdivision type="bsrc" draft="contributed">Rum Cay</subdivision>
- <subdivision type="bsri" draft="contributed">Ragged øy</subdivision>
- <subdivision type="bssa" draft="contributed">Sør Andros</subdivision>
- <subdivision type="bsse" draft="contributed">Sør Eleuthera</subdivision>
- <subdivision type="bsso" draft="contributed">Sør Abaco</subdivision>
- <subdivision type="bsss" draft="contributed">San Salvador</subdivision>
- <subdivision type="bssw" draft="contributed">Spansk wells</subdivision>
- <subdivision type="bswg" draft="contributed">West Grand Bahama</subdivision>
- <subdivision type="bt11" draft="contributed">Paro</subdivision>
- <subdivision type="bt12" draft="contributed">Chukha</subdivision>
- <subdivision type="bt13" draft="contributed">Haa</subdivision>
- <subdivision type="bt14" draft="contributed">Samtse</subdivision>
- <subdivision type="bt15" draft="contributed">Thimphu distrikt</subdivision>
- <subdivision type="bt21" draft="contributed">Tsirang</subdivision>
- <subdivision type="bt22" draft="contributed">Dagana</subdivision>
- <subdivision type="bt23" draft="contributed">Punakha</subdivision>
- <subdivision type="bt24" draft="contributed">Wangdue Phodrang</subdivision>
- <subdivision type="bt31" draft="contributed">Sarpang</subdivision>
- <subdivision type="bt32" draft="contributed">Trongsa</subdivision>
- <subdivision type="bt33" draft="contributed">Bumthang</subdivision>
- <subdivision type="bt34" draft="contributed">Zhemgang</subdivision>
- <subdivision type="bt41" draft="contributed">Trashigang</subdivision>
- <subdivision type="bt42" draft="contributed">Mongar</subdivision>
- <subdivision type="bt43" draft="contributed">Pemagatshel</subdivision>
- <subdivision type="bt44" draft="contributed">Lhuntse</subdivision>
- <subdivision type="bt45" draft="contributed">Samdrup Jongkhar</subdivision>
- <subdivision type="btga" draft="contributed">Gasa</subdivision>
- <subdivision type="btty" draft="contributed">Trashiyangtse</subdivision>
- <subdivision type="bwce" draft="contributed">Central</subdivision>
- <subdivision type="bwch" draft="contributed">Chobe</subdivision>
- <subdivision type="bwfr" draft="contributed">Francistown</subdivision>
- <subdivision type="bwga" draft="contributed">Gaborone</subdivision>
- <subdivision type="bwgh" draft="contributed">Ghanzi</subdivision>
- <subdivision type="bwjw" draft="contributed">Jwaneng</subdivision>
- <subdivision type="bwkg" draft="contributed">Kgalagadi</subdivision>
- <subdivision type="bwkl" draft="contributed">Kgatleng</subdivision>
- <subdivision type="bwkw" draft="contributed">Kweneng</subdivision>
- <subdivision type="bwlo" draft="contributed">Lobatse</subdivision>
- <subdivision type="bwne" draft="contributed">North-East</subdivision>
- <subdivision type="bwnw" draft="contributed">North-West</subdivision>
- <subdivision type="bwse" draft="contributed">South-East</subdivision>
- <subdivision type="bwso" draft="contributed">Southern</subdivision>
- <subdivision type="bwsp" draft="contributed">Selebi-Phikwe</subdivision>
- <subdivision type="bwst" draft="contributed">Sowa</subdivision>
- <subdivision type="bybr" draft="contributed">Brest</subdivision>
- <subdivision type="byhm" draft="contributed">Minsk</subdivision>
- <subdivision type="byho" draft="contributed">Homjel</subdivision>
- <subdivision type="byhr" draft="contributed">Hrodna</subdivision>
- <subdivision type="byma" draft="contributed">Mahiljow</subdivision>
- <subdivision type="bymi" draft="contributed">Minsk²</subdivision>
- <subdivision type="byvi" draft="contributed">Vitebsk</subdivision>
- <subdivision type="bzbz" draft="contributed">Belize</subdivision>
- <subdivision type="bzcy" draft="contributed">Cayo</subdivision>
- <subdivision type="bzczl" draft="contributed">Corozal</subdivision>
- <subdivision type="bzow" draft="contributed">Orange Walk</subdivision>
- <subdivision type="bzsc" draft="contributed">Stann Creek</subdivision>
- <subdivision type="bztol" draft="contributed">Toledo</subdivision>
- <subdivision type="caab" draft="contributed">Alberta</subdivision>
- <subdivision type="cabc" draft="contributed">Britisk Columbia</subdivision>
- <subdivision type="camb" draft="contributed">Manitoba</subdivision>
- <subdivision type="canb" draft="contributed">New Brunswick</subdivision>
- <subdivision type="canl" draft="contributed">Newfoundland og Labrador</subdivision>
- <subdivision type="cans" draft="contributed">Nova Scotia</subdivision>
- <subdivision type="cant" draft="contributed">Nordvestterritoriene</subdivision>
- <subdivision type="canu" draft="contributed">Nunavut</subdivision>
- <subdivision type="caon" draft="contributed">Ontario</subdivision>
- <subdivision type="cape" draft="contributed">Prince Edward Island</subdivision>
- <subdivision type="caqc" draft="contributed">Québec</subdivision>
- <subdivision type="cask" draft="contributed">Saskatchewan</subdivision>
- <subdivision type="cayt" draft="contributed">Yukon</subdivision>
- <subdivision type="cdbc" draft="contributed">Bas-Congo</subdivision>
- <subdivision type="cdbu" draft="contributed">Bas-Uele</subdivision>
- <subdivision type="cdeq" draft="contributed">Équateur (provins)</subdivision>
- <subdivision type="cdhk" draft="contributed">Haut-Katanga</subdivision>
- <subdivision type="cdhl" draft="contributed">Haut-Lomami</subdivision>
- <subdivision type="cdhu" draft="contributed">Haut-Uele</subdivision>
- <subdivision type="cdkc" draft="contributed">Lulua</subdivision>
- <subdivision type="cdke" draft="contributed">Kasaï-Oriental</subdivision>
- <subdivision type="cdkg" draft="contributed">Kwango</subdivision>
- <subdivision type="cdkl" draft="contributed">Kwilu</subdivision>
- <subdivision type="cdkn" draft="contributed">Kinshasa</subdivision>
- <subdivision type="cdks" draft="contributed">Kasaï</subdivision>
- <subdivision type="cdlo" draft="contributed">Lomami</subdivision>
- <subdivision type="cdlu" draft="contributed">Lualaba (provins)</subdivision>
- <subdivision type="cdma" draft="contributed">Maniema</subdivision>
- <subdivision type="cdmn" draft="contributed">Mai-Ndombe</subdivision>
- <subdivision type="cdmo" draft="contributed">Mongala</subdivision>
- <subdivision type="cdnk" draft="contributed">Nord-Kivu</subdivision>
- <subdivision type="cdnu" draft="contributed">Nord-Ubangi</subdivision>
- <subdivision type="cdsa" draft="contributed">Sankuru</subdivision>
- <subdivision type="cdsk" draft="contributed">Sud-Kivu</subdivision>
- <subdivision type="cdsu" draft="contributed">Sud-Ubangi</subdivision>
- <subdivision type="cdta" draft="contributed">Tanganyika</subdivision>
- <subdivision type="cdto" draft="contributed">Tshopo</subdivision>
- <subdivision type="cdtu" draft="contributed">Tshuapa</subdivision>
- <subdivision type="cfac" draft="contributed">Ouham</subdivision>
- <subdivision type="cfbb" draft="contributed">Bamingui-Bangoran</subdivision>
- <subdivision type="cfbgf" draft="contributed">Bangui</subdivision>
- <subdivision type="cfbk" draft="contributed">Basse-Kotto</subdivision>
- <subdivision type="cfhk" draft="contributed">Haute-Kotto</subdivision>
- <subdivision type="cfhm" draft="contributed">Haut-Mbomou</subdivision>
- <subdivision type="cfhs" draft="contributed">Mambéré-Kadéï</subdivision>
- <subdivision type="cfkb" draft="contributed">Nana-Grébizi</subdivision>
- <subdivision type="cfkg" draft="contributed">Kémo</subdivision>
- <subdivision type="cflb" draft="contributed">Lobaye</subdivision>
- <subdivision type="cfmb" draft="contributed">Mbomou</subdivision>
- <subdivision type="cfmp" draft="contributed">Ombella-M’Poko</subdivision>
- <subdivision type="cfnm" draft="contributed">Nana-Mambéré</subdivision>
- <subdivision type="cfop" draft="contributed">Ouham-Pendé</subdivision>
- <subdivision type="cfse" draft="contributed">Sangha-Mbaéré</subdivision>
- <subdivision type="cfuk" draft="contributed">Ouaka</subdivision>
- <subdivision type="cfvk" draft="contributed">Vakaga</subdivision>
- <subdivision type="cg2" draft="contributed">Lékoumou</subdivision>
- <subdivision type="cg5" draft="contributed">Kouilou</subdivision>
- <subdivision type="cg7" draft="contributed">Likouala</subdivision>
- <subdivision type="cg8" draft="contributed">Cuvette</subdivision>
- <subdivision type="cg9" draft="contributed">Niari</subdivision>
- <subdivision type="cg11" draft="contributed">Bouenza</subdivision>
- <subdivision type="cg12" draft="contributed">Pool</subdivision>
- <subdivision type="cg13" draft="contributed">Sangha</subdivision>
- <subdivision type="cg14" draft="contributed">Plateaux</subdivision>
- <subdivision type="cg15" draft="contributed">Cuvette-Ouest</subdivision>
- <subdivision type="cgbzv" draft="contributed">Brazzaville</subdivision>
- <subdivision type="chag" draft="contributed">Aargau</subdivision>
- <subdivision type="chai" draft="contributed">Appenzell Innerrhoden</subdivision>
- <subdivision type="char" draft="contributed">Appenzell Ausserrhoden</subdivision>
- <subdivision type="chbe" draft="contributed">Bern</subdivision>
- <subdivision type="chbl" draft="contributed">Basel-Landschaft</subdivision>
- <subdivision type="chbs" draft="contributed">Basel-Stadt</subdivision>
- <subdivision type="chfr" draft="contributed">Fribourg</subdivision>
- <subdivision type="chge" draft="contributed">Genève</subdivision>
- <subdivision type="chgl" draft="contributed">Glarus</subdivision>
- <subdivision type="chgr" draft="contributed">Graubünden</subdivision>
- <subdivision type="chju" draft="contributed">Jura</subdivision>
- <subdivision type="chlu" draft="contributed">Luzern</subdivision>
- <subdivision type="chne" draft="contributed">Neuchâtel</subdivision>
- <subdivision type="chnw" draft="contributed">Nidwalden</subdivision>
- <subdivision type="chow" draft="contributed">Obwalden</subdivision>
- <subdivision type="chsg" draft="contributed">Sankt Gallen</subdivision>
- <subdivision type="chsh" draft="contributed">Schaffhausen</subdivision>
- <subdivision type="chso" draft="contributed">Solothurn</subdivision>
- <subdivision type="chsz" draft="contributed">Schwyz</subdivision>
- <subdivision type="chtg" draft="contributed">Thurgau</subdivision>
- <subdivision type="chti" draft="contributed">Ticino</subdivision>
- <subdivision type="chur" draft="contributed">Uri</subdivision>
- <subdivision type="chvd" draft="contributed">Vaud</subdivision>
- <subdivision type="chvs" draft="contributed">Wallis</subdivision>
- <subdivision type="chzg" draft="contributed">Zug</subdivision>
- <subdivision type="chzh" draft="contributed">Zürich</subdivision>
- <subdivision type="ciab" draft="contributed">Abidjan</subdivision>
- <subdivision type="cibs" draft="contributed">Bas-Sassandra distrikt</subdivision>
- <subdivision type="cidn" draft="contributed">Denguele distrikt</subdivision>
- <subdivision type="cisv" draft="contributed">Savanes distrikt</subdivision>
- <subdivision type="civb" draft="contributed">Vallee du Dandama distrikt</subdivision>
- <subdivision type="ciym" draft="contributed">Yamoussoukro</subdivision>
- <subdivision type="cizz" draft="contributed">Zanzan</subdivision>
- <subdivision type="clai" draft="contributed">Aisén</subdivision>
- <subdivision type="clan" draft="contributed">Antofagasta</subdivision>
- <subdivision type="clap" draft="contributed">Arica y Parinacota</subdivision>
- <subdivision type="clar" draft="contributed">Araucanía</subdivision>
- <subdivision type="clat" draft="contributed">Atacama</subdivision>
- <subdivision type="clbi" draft="contributed">Biobío</subdivision>
- <subdivision type="clco" draft="contributed">Coquimbo</subdivision>
- <subdivision type="clli" draft="contributed">O’Higgins</subdivision>
- <subdivision type="clll" draft="contributed">Los Lagos</subdivision>
- <subdivision type="cllr" draft="contributed">Los Ríos</subdivision>
- <subdivision type="clma" draft="contributed">Magallanes y de la Antártica Chilena</subdivision>
- <subdivision type="clml" draft="contributed">Maule</subdivision>
- <subdivision type="clnb" draft="contributed">Ñuble</subdivision>
- <subdivision type="clrm" draft="contributed">Región Metropolitana de Santiago</subdivision>
- <subdivision type="clta" draft="contributed">Tarapacá</subdivision>
- <subdivision type="clvs" draft="contributed">Valparaíso</subdivision>
- <subdivision type="cmad" draft="contributed">Adamawa</subdivision>
- <subdivision type="cmce" draft="contributed">Centre</subdivision>
- <subdivision type="cmen" draft="contributed">Extrême-Nord</subdivision>
- <subdivision type="cmes" draft="contributed">Est</subdivision>
- <subdivision type="cmlt" draft="contributed">Littoral</subdivision>
- <subdivision type="cmno" draft="contributed">Nord</subdivision>
- <subdivision type="cmnw" draft="contributed">Nord-Ouest</subdivision>
- <subdivision type="cmou" draft="contributed">Ouest</subdivision>
- <subdivision type="cmsu" draft="contributed">Sud</subdivision>
- <subdivision type="cmsw" draft="contributed">Sud-Ouest</subdivision>
- <subdivision type="cnah" draft="contributed">Anhui</subdivision>
- <subdivision type="cnbj" draft="contributed">Beijing</subdivision>
- <subdivision type="cncq" draft="contributed">Chongqing</subdivision>
- <subdivision type="cnfj" draft="contributed">Fujian</subdivision>
- <subdivision type="cngd" draft="contributed">Guangdong</subdivision>
- <subdivision type="cngs" draft="contributed">Gansu</subdivision>
- <subdivision type="cngx" draft="contributed">Guangxi</subdivision>
- <subdivision type="cngz" draft="contributed">Guizhou</subdivision>
- <subdivision type="cnha" draft="contributed">Henan</subdivision>
- <subdivision type="cnhb" draft="contributed">Hubei</subdivision>
- <subdivision type="cnhe" draft="contributed">Hebei</subdivision>
- <subdivision type="cnhi" draft="contributed">Hainan</subdivision>
- <subdivision type="cnhk" draft="contributed">Hongkong</subdivision>
- <subdivision type="cnhl" draft="contributed">Heilongjiang</subdivision>
- <subdivision type="cnhn" draft="contributed">Hunan</subdivision>
- <subdivision type="cnjl" draft="contributed">Jilin</subdivision>
- <subdivision type="cnjs" draft="contributed">Jiangsu</subdivision>
- <subdivision type="cnjx" draft="contributed">Jiangxi</subdivision>
- <subdivision type="cnln" draft="contributed">Liaoning</subdivision>
- <subdivision type="cnmo" draft="contributed">Macao</subdivision>
- <subdivision type="cnnm" draft="contributed">Indre Mongolia</subdivision>
- <subdivision type="cnnx" draft="contributed">Ningxia</subdivision>
- <subdivision type="cnqh" draft="contributed">Qinghai</subdivision>
- <subdivision type="cnsc" draft="contributed">Sichuan</subdivision>
- <subdivision type="cnsd" draft="contributed">Shandong</subdivision>
- <subdivision type="cnsh" draft="contributed">Shanghai</subdivision>
- <subdivision type="cnsn" draft="contributed">Shaanxi</subdivision>
- <subdivision type="cnsx" draft="contributed">Shanxi</subdivision>
- <subdivision type="cntj" draft="contributed">Tianjin</subdivision>
- <subdivision type="cnxj" draft="contributed">Xinjiang</subdivision>
- <subdivision type="cnxz" draft="contributed">Tibet</subdivision>
- <subdivision type="cnyn" draft="contributed">Yunnan</subdivision>
- <subdivision type="cnzj" draft="contributed">Zhejiang</subdivision>
- <subdivision type="coama" draft="contributed">Amazonas</subdivision>
- <subdivision type="coant" draft="contributed">Antioquia</subdivision>
- <subdivision type="coara" draft="contributed">Arauca</subdivision>
- <subdivision type="coatl" draft="contributed">Atlántico</subdivision>
- <subdivision type="cobol" draft="contributed">Bolívar</subdivision>
- <subdivision type="coboy" draft="contributed">Boyacá</subdivision>
- <subdivision type="cocal" draft="contributed">Caldas</subdivision>
- <subdivision type="cocaq" draft="contributed">Caquetá</subdivision>
- <subdivision type="cocas" draft="contributed">Casanare</subdivision>
- <subdivision type="cocau" draft="contributed">Cauca</subdivision>
- <subdivision type="coces" draft="contributed">Cesar</subdivision>
- <subdivision type="cocho" draft="contributed">Chocó</subdivision>
- <subdivision type="cocor" draft="contributed">Córdoba</subdivision>
- <subdivision type="cocun" draft="contributed">Cundinamarca</subdivision>
- <subdivision type="codc" draft="contributed">Bogotá</subdivision>
- <subdivision type="cogua" draft="contributed">Guainía</subdivision>
- <subdivision type="coguv" draft="contributed">Guaviare</subdivision>
- <subdivision type="cohui" draft="contributed">Huila</subdivision>
- <subdivision type="colag" draft="contributed">La Guajira</subdivision>
- <subdivision type="comag" draft="contributed">Magdalena</subdivision>
- <subdivision type="comet" draft="contributed">Meta</subdivision>
- <subdivision type="conar" draft="contributed">Nariño</subdivision>
- <subdivision type="consa" draft="contributed">Norte de Santander</subdivision>
- <subdivision type="coput" draft="contributed">Putumayo</subdivision>
- <subdivision type="coqui" draft="contributed">Quindío</subdivision>
- <subdivision type="coris" draft="contributed">Risaralda</subdivision>
- <subdivision type="cosan" draft="contributed">Santander</subdivision>
- <subdivision type="cosap" draft="contributed">San Andrés y Providencia</subdivision>
- <subdivision type="cosuc" draft="contributed">Sucre</subdivision>
- <subdivision type="cotol" draft="contributed">Tolima</subdivision>
- <subdivision type="covac" draft="contributed">Valle del Cauca</subdivision>
- <subdivision type="covau" draft="contributed">Vaupés</subdivision>
- <subdivision type="covid" draft="contributed">Vichada</subdivision>
- <subdivision type="cra" draft="contributed">Alajuela</subdivision>
- <subdivision type="crc" draft="contributed">Cartago</subdivision>
- <subdivision type="crg" draft="contributed">Guanacaste</subdivision>
- <subdivision type="crh" draft="contributed">Heredia</subdivision>
- <subdivision type="crl" draft="contributed">Limón</subdivision>
- <subdivision type="crp" draft="contributed">Puntarenas</subdivision>
- <subdivision type="crsj" draft="contributed">San José</subdivision>
- <subdivision type="cu01" draft="contributed">Pinar del Rio</subdivision>
- <subdivision type="cu04" draft="contributed">Matanzas</subdivision>
- <subdivision type="cu05" draft="contributed">Villa Clara Provinsen</subdivision>
- <subdivision type="cu06" draft="contributed">Cienfuegos</subdivision>
- <subdivision type="cu07" draft="contributed">Sancti Spíritus</subdivision>
- <subdivision type="cu08" draft="contributed">Ciego de Avila</subdivision>
- <subdivision type="cu09" draft="contributed">Camagüey</subdivision>
- <subdivision type="cu10" draft="contributed">Las Tunas</subdivision>
- <subdivision type="cu11" draft="contributed">Holguín</subdivision>
- <subdivision type="cu12" draft="contributed">Granma</subdivision>
- <subdivision type="cu13" draft="contributed">Santiago de Cuba</subdivision>
- <subdivision type="cu14" draft="contributed">Guantánamo</subdivision>
- <subdivision type="cu15" draft="contributed">Artemisa provins</subdivision>
- <subdivision type="cu16" draft="contributed">Mayabeque provins</subdivision>
- <subdivision type="cu99" draft="contributed">Isla de la Juventud</subdivision>
- <subdivision type="cvb" draft="contributed">Barlavento</subdivision>
- <subdivision type="cvbr" draft="contributed">Brava</subdivision>
- <subdivision type="cvbv" draft="contributed">Boa Vista</subdivision>
- <subdivision type="cvca" draft="contributed">Santa Catarina</subdivision>
- <subdivision type="cvcf" draft="contributed">Santa Catarina do Fogo</subdivision>
- <subdivision type="cvcr" draft="contributed">Santa Cruz</subdivision>
- <subdivision type="cvmo" draft="contributed">Mosteiros</subdivision>
- <subdivision type="cvpa" draft="contributed">Paúl</subdivision>
- <subdivision type="cvpn" draft="contributed">Porto Novo</subdivision>
- <subdivision type="cvpr" draft="contributed">Praia</subdivision>
- <subdivision type="cvrb" draft="contributed">Ribeira Brava</subdivision>
- <subdivision type="cvrg" draft="contributed">Ribeira Grande</subdivision>
- <subdivision type="cvrs" draft="contributed">Ribeira Grande de Santiago</subdivision>
- <subdivision type="cvs" draft="contributed">Sotavento</subdivision>
- <subdivision type="cvsd" draft="contributed">São Domingos</subdivision>
- <subdivision type="cvsf" draft="contributed">São Filipe</subdivision>
- <subdivision type="cvsl" draft="contributed">Sal</subdivision>
- <subdivision type="cvsm" draft="contributed">São Miguel</subdivision>
- <subdivision type="cvso" draft="contributed">São Lourenço dos Órgãos</subdivision>
- <subdivision type="cvss" draft="contributed">São Salvador do Mundo</subdivision>
- <subdivision type="cvsv" draft="contributed">São Vicente</subdivision>
- <subdivision type="cvta" draft="contributed">Tarrafal</subdivision>
- <subdivision type="cvts" draft="contributed">Tarrafal de São Nicolau</subdivision>
- <subdivision type="cy01" draft="contributed">Nikosia</subdivision>
- <subdivision type="cy02" draft="contributed">Limassol</subdivision>
- <subdivision type="cy03" draft="contributed">Larnaka</subdivision>
- <subdivision type="cy04" draft="contributed">Famagusta</subdivision>
- <subdivision type="cy05" draft="contributed">Pafos</subdivision>
- <subdivision type="cy06" draft="contributed">Kyrenia</subdivision>
- <subdivision type="cz10" draft="contributed">Praha</subdivision>
- <subdivision type="cz20" draft="contributed">Sentralbøhmen region</subdivision>
- <subdivision type="cz31" draft="contributed">Sydbøhmen region</subdivision>
- <subdivision type="cz32" draft="contributed">Plzeň region</subdivision>
- <subdivision type="cz41" draft="contributed">Karlovy Vary region</subdivision>
- <subdivision type="cz42" draft="contributed">Ústí nad Labem region</subdivision>
- <subdivision type="cz51" draft="contributed">Liberec</subdivision>
- <subdivision type="cz52" draft="contributed">Hradec Králové</subdivision>
- <subdivision type="cz53" draft="contributed">Pardubice region</subdivision>
- <subdivision type="cz63" draft="contributed">Vysočina region</subdivision>
- <subdivision type="cz64" draft="contributed">Sydmähriske region</subdivision>
- <subdivision type="cz71" draft="contributed">Olomouc region</subdivision>
- <subdivision type="cz72" draft="contributed">Zlín</subdivision>
- <subdivision type="cz80" draft="contributed">Mähren-Schlesien region</subdivision>
- <subdivision type="cz311" draft="contributed">České Budějovice</subdivision>
- <subdivision type="cz312" draft="contributed">Český Krumlov</subdivision>
- <subdivision type="cz313" draft="contributed">Jindřichův Hradec</subdivision>
- <subdivision type="cz314" draft="contributed">Písek</subdivision>
- <subdivision type="cz315" draft="contributed">Prachatice</subdivision>
- <subdivision type="cz316" draft="contributed">Strakonice</subdivision>
- <subdivision type="cz317" draft="contributed">Tábor</subdivision>
- <subdivision type="cz514" draft="contributed">Semily</subdivision>
- <subdivision type="cz525" draft="contributed">Trutnov</subdivision>
- <subdivision type="cz534" draft="contributed">Ústí nad Orlicí</subdivision>
- <subdivision type="cz631" draft="contributed">Havlíčkův Brod</subdivision>
- <subdivision type="cz632" draft="contributed">Jihlava</subdivision>
- <subdivision type="cz633" draft="contributed">Pelhřimov</subdivision>
- <subdivision type="cz634" draft="contributed">Třebíč</subdivision>
- <subdivision type="cz635" draft="contributed">Žďár nad Sázavou</subdivision>
- <subdivision type="debb" draft="contributed">Brandenburg</subdivision>
- <subdivision type="debe" draft="contributed">Berlin</subdivision>
- <subdivision type="debw" draft="contributed">Baden-Württemberg</subdivision>
- <subdivision type="deby" draft="contributed">Bayern</subdivision>
- <subdivision type="dehb" draft="contributed">Bremen</subdivision>
- <subdivision type="dehe" draft="contributed">Hessen</subdivision>
- <subdivision type="dehh" draft="contributed">Hamburg</subdivision>
- <subdivision type="demv" draft="contributed">Mecklenburg-Vorpommern</subdivision>
- <subdivision type="deni" draft="contributed">Niedersachsen</subdivision>
- <subdivision type="denw" draft="contributed">Nordrhein-Westfalen</subdivision>
- <subdivision type="derp" draft="contributed">Rheinland-Pfalz</subdivision>
- <subdivision type="desh" draft="contributed">Schleswig-Holstein</subdivision>
- <subdivision type="desl" draft="contributed">Saarland</subdivision>
- <subdivision type="desn" draft="contributed">Sachsen</subdivision>
- <subdivision type="dest" draft="contributed">Sachsen-Anhalt</subdivision>
- <subdivision type="deth" draft="contributed">Thüringen</subdivision>
- <subdivision type="djar" draft="contributed">Arta</subdivision>
- <subdivision type="djas" draft="contributed">Ali Sabieh</subdivision>
- <subdivision type="djdi" draft="contributed">Dikhil</subdivision>
- <subdivision type="djdj" draft="contributed">Djibouti</subdivision>
- <subdivision type="djob" draft="contributed">Obock</subdivision>
- <subdivision type="djta" draft="contributed">Tadjourah</subdivision>
- <subdivision type="dk81" draft="contributed">Region Nordjylland</subdivision>
- <subdivision type="dk82" draft="contributed">Region Midtjylland</subdivision>
- <subdivision type="dk83" draft="contributed">Region Syddanmark</subdivision>
- <subdivision type="dk84" draft="contributed">Region Hovedstaden</subdivision>
- <subdivision type="dk85" draft="contributed">Region Sjælland</subdivision>
- <subdivision type="dm02" draft="contributed">Saint Andrew prestegjeld</subdivision>
- <subdivision type="dm03" draft="contributed">Saint David prestegjeld</subdivision>
- <subdivision type="dm04" draft="contributed">Saint George prestegjeld</subdivision>
- <subdivision type="dm05" draft="contributed">Saint John prestegjeld</subdivision>
- <subdivision type="dm06" draft="contributed">Saint Joseph prestegjeld</subdivision>
- <subdivision type="dm07" draft="contributed">Saint Luke prestegjeld</subdivision>
- <subdivision type="dm08" draft="contributed">Saint Mark prestegjeld</subdivision>
- <subdivision type="dm09" draft="contributed">Saint Patrick prestegjeld</subdivision>
- <subdivision type="dm10" draft="contributed">Saint Paul prestegjeld</subdivision>
- <subdivision type="dm11" draft="contributed">Saint Peter prestegjeld</subdivision>
- <subdivision type="do02" draft="contributed">Azua provins</subdivision>
- <subdivision type="do03" draft="contributed">Baoruco provins</subdivision>
- <subdivision type="do04" draft="contributed">Barahona provins</subdivision>
- <subdivision type="do06" draft="contributed">Duarte kommune</subdivision>
- <subdivision type="do07" draft="contributed">Elias Pina provins</subdivision>
- <subdivision type="do08" draft="contributed">El Seibo provins</subdivision>
- <subdivision type="do09" draft="contributed">Espaillat provins</subdivision>
- <subdivision type="do10" draft="contributed">Independencia provins</subdivision>
- <subdivision type="do11" draft="contributed">La Altagracia provins</subdivision>
- <subdivision type="do12" draft="contributed">La Romana provins</subdivision>
- <subdivision type="do13" draft="contributed">La Vega provins</subdivision>
- <subdivision type="do14" draft="contributed">Maria Trinidad Sanchez Provins</subdivision>
- <subdivision type="do15" draft="contributed">Monte Cristi provins</subdivision>
- <subdivision type="do16" draft="contributed">Pedernales Provins</subdivision>
- <subdivision type="do17" draft="contributed">Peravia provins</subdivision>
- <subdivision type="do18" draft="contributed">Puerto Plata provins</subdivision>
- <subdivision type="do19" draft="contributed">Hermanas Mirabal provins</subdivision>
- <subdivision type="do20" draft="contributed">Samana provins</subdivision>
- <subdivision type="do21" draft="contributed">San Cristobal provins</subdivision>
- <subdivision type="do22" draft="contributed">San Juan</subdivision>
- <subdivision type="do23" draft="contributed">San Pedro de Macoris</subdivision>
- <subdivision type="do24" draft="contributed">Sanchez Ramirez provins</subdivision>
- <subdivision type="do25" draft="contributed">Santiago provins</subdivision>
- <subdivision type="do26" draft="contributed">Santiago Rodriguez provins</subdivision>
- <subdivision type="do27" draft="contributed">Valverde</subdivision>
- <subdivision type="do28" draft="contributed">Monsenor Nouel provins</subdivision>
- <subdivision type="do29" draft="contributed">Monte Plata Provins</subdivision>
- <subdivision type="do30" draft="contributed">Hato Mayor Provins</subdivision>
- <subdivision type="do31" draft="contributed">San jose provins</subdivision>
- <subdivision type="do32" draft="contributed">Santo Domingo provins</subdivision>
- <subdivision type="dz01" draft="contributed">Adrar</subdivision>
- <subdivision type="dz02" draft="contributed">Chlef</subdivision>
- <subdivision type="dz03" draft="contributed">Laghouat</subdivision>
- <subdivision type="dz04" draft="contributed">Oum el-Bouaghi</subdivision>
- <subdivision type="dz05" draft="contributed">Batna</subdivision>
- <subdivision type="dz06" draft="contributed">Béjaïa</subdivision>
- <subdivision type="dz07" draft="contributed">Biskra</subdivision>
- <subdivision type="dz08" draft="contributed">Béchar</subdivision>
- <subdivision type="dz09" draft="contributed">Blida</subdivision>
- <subdivision type="dz10" draft="contributed">Bouira</subdivision>
- <subdivision type="dz11" draft="contributed">Tamanrasset</subdivision>
- <subdivision type="dz12" draft="contributed">Tébessa</subdivision>
- <subdivision type="dz13" draft="contributed">Tlemcen</subdivision>
- <subdivision type="dz14" draft="contributed">Tiaret</subdivision>
- <subdivision type="dz15" draft="contributed">Tizi Ouzou</subdivision>
- <subdivision type="dz16" draft="contributed">Alger</subdivision>
- <subdivision type="dz17" draft="contributed">Djelfa</subdivision>
- <subdivision type="dz18" draft="contributed">Jijel</subdivision>
- <subdivision type="dz19" draft="contributed">Sétif</subdivision>
- <subdivision type="dz20" draft="contributed">Saida</subdivision>
- <subdivision type="dz21" draft="contributed">Skikda</subdivision>
- <subdivision type="dz22" draft="contributed">Sidi bel Abbès</subdivision>
- <subdivision type="dz23" draft="contributed">Annaba</subdivision>
- <subdivision type="dz24" draft="contributed">Guelma</subdivision>
- <subdivision type="dz25" draft="contributed">Constantine</subdivision>
- <subdivision type="dz26" draft="contributed">Medea</subdivision>
- <subdivision type="dz27" draft="contributed">Mostaganem</subdivision>
- <subdivision type="dz28" draft="contributed">M’Sila</subdivision>
- <subdivision type="dz29" draft="contributed">Muaskar</subdivision>
- <subdivision type="dz30" draft="contributed">Ouargla</subdivision>
- <subdivision type="dz31" draft="contributed">Oran</subdivision>
- <subdivision type="dz32" draft="contributed">El Bayadh</subdivision>
- <subdivision type="dz33" draft="contributed">Illizi</subdivision>
- <subdivision type="dz34" draft="contributed">Bordj Bou Arréridj</subdivision>
- <subdivision type="dz35" draft="contributed">Boumerdès</subdivision>
- <subdivision type="dz36" draft="contributed">El Tarf</subdivision>
- <subdivision type="dz37" draft="contributed">Tindouf</subdivision>
- <subdivision type="dz38" draft="contributed">Tissemsilt</subdivision>
- <subdivision type="dz39" draft="contributed">El Oued</subdivision>
- <subdivision type="dz40" draft="contributed">Khenchela</subdivision>
- <subdivision type="dz41" draft="contributed">Souk Ahras</subdivision>
- <subdivision type="dz42" draft="contributed">Tipaza</subdivision>
- <subdivision type="dz43" draft="contributed">Mila</subdivision>
- <subdivision type="dz44" draft="contributed">Aïn Defla</subdivision>
- <subdivision type="dz45" draft="contributed">Naama</subdivision>
- <subdivision type="dz46" draft="contributed">Aïn Témouchent</subdivision>
- <subdivision type="dz47" draft="contributed">Ghardaïa</subdivision>
- <subdivision type="dz48" draft="contributed">Relizane</subdivision>
- <subdivision type="eca" draft="contributed">Azuay</subdivision>
- <subdivision type="ecb" draft="contributed">Bolívar</subdivision>
- <subdivision type="ecc" draft="contributed">Carchi</subdivision>
- <subdivision type="ecd" draft="contributed">Orellana</subdivision>
- <subdivision type="ece" draft="contributed">Esmeraldas</subdivision>
- <subdivision type="ecf" draft="contributed">Cañar</subdivision>
- <subdivision type="ecg" draft="contributed">Guayas</subdivision>
- <subdivision type="ech" draft="contributed">Chimborazo</subdivision>
- <subdivision type="eci" draft="contributed">Imbabura</subdivision>
- <subdivision type="ecl" draft="contributed">Loja</subdivision>
- <subdivision type="ecm" draft="contributed">Manabí</subdivision>
- <subdivision type="ecn" draft="contributed">Napo</subdivision>
- <subdivision type="eco" draft="contributed">El Oro</subdivision>
- <subdivision type="ecp" draft="contributed">Pichincha</subdivision>
- <subdivision type="ecr" draft="contributed">Los Ríos</subdivision>
- <subdivision type="ecs" draft="contributed">Morona Santiago</subdivision>
- <subdivision type="ecsd" draft="contributed">Santo Domingo de las Tsachilas provins</subdivision>
- <subdivision type="ecse" draft="contributed">Santa Elena provins</subdivision>
- <subdivision type="ect" draft="contributed">Tungurahua</subdivision>
- <subdivision type="ecu" draft="contributed">Sucumbíos</subdivision>
- <subdivision type="ecw" draft="contributed">Galapagos provins</subdivision>
- <subdivision type="ecx" draft="contributed">Cotopaxi</subdivision>
- <subdivision type="ecy" draft="contributed">Pastaza</subdivision>
- <subdivision type="ecz" draft="contributed">Zamora Chinchipe</subdivision>
- <subdivision type="ee37" draft="contributed">Harju</subdivision>
- <subdivision type="ee39" draft="contributed">Hiiu</subdivision>
- <subdivision type="ee44" draft="contributed">Ida-Viru</subdivision>
- <subdivision type="ee49" draft="contributed">Jõgeva</subdivision>
- <subdivision type="ee51" draft="contributed">Järva</subdivision>
- <subdivision type="ee57" draft="contributed">Lääne</subdivision>
- <subdivision type="ee59" draft="contributed">Lääne-Viru</subdivision>
- <subdivision type="ee65" draft="contributed">Põlva</subdivision>
- <subdivision type="ee67" draft="contributed">Pärnu</subdivision>
- <subdivision type="ee70" draft="contributed">Rapla</subdivision>
- <subdivision type="ee74" draft="contributed">Saare</subdivision>
- <subdivision type="ee78" draft="contributed">Tartu</subdivision>
- <subdivision type="ee82" draft="contributed">Valga</subdivision>
- <subdivision type="ee84" draft="contributed">Viljandi</subdivision>
- <subdivision type="ee86" draft="contributed">Võru</subdivision>
- <subdivision type="egalx" draft="contributed">Guvernementet Al Iskandariyah</subdivision>
- <subdivision type="egasn" draft="contributed">Aswan</subdivision>
- <subdivision type="egast" draft="contributed">Guvernementet Asyut</subdivision>
- <subdivision type="egba" draft="contributed">Guvernementet Al-Bahr al-Ahmar</subdivision>
- <subdivision type="egbh" draft="contributed">Guvernementet Al Buhayrah</subdivision>
- <subdivision type="egbns" draft="contributed">Guvernementet Bani Suwayf</subdivision>
- <subdivision type="egc" draft="contributed">Guvernementet Al Qahirah</subdivision>
- <subdivision type="egdk" draft="contributed">Ad Daqahliyah</subdivision>
- <subdivision type="egdt" draft="contributed">Guvernementet Dumyat</subdivision>
- <subdivision type="egfym" draft="contributed">Guvernementet Al Fayyum</subdivision>
- <subdivision type="eggh" draft="contributed">Guvernementet Al Gharbiyah</subdivision>
- <subdivision type="eggz" draft="contributed">Guvernementet Al Jizah</subdivision>
- <subdivision type="egis" draft="contributed">Guvernementet Al Isma’iliyah</subdivision>
- <subdivision type="egjs" draft="contributed">Guvernementet Janub Sina’</subdivision>
- <subdivision type="egkb" draft="contributed">Al Qalyubiyah</subdivision>
- <subdivision type="egkfs" draft="contributed">Kafr ash Shaykh</subdivision>
- <subdivision type="egkn" draft="contributed">Guvernementet Qina</subdivision>
- <subdivision type="eglx" draft="contributed">Guvernementet Luxor</subdivision>
- <subdivision type="egmn" draft="contributed">Guvernementet Al Minya</subdivision>
- <subdivision type="egmnf" draft="contributed">Guvernementet Al Minufiyah</subdivision>
- <subdivision type="egmt" draft="contributed">Guvernementet Matruh</subdivision>
- <subdivision type="egpts" draft="contributed">Bur Sa’id</subdivision>
- <subdivision type="egshg" draft="contributed">Suhaj</subdivision>
- <subdivision type="egshr" draft="contributed">Ash Sharqiyah</subdivision>
- <subdivision type="egsin" draft="contributed">Guvernementet Shamal Sina’</subdivision>
- <subdivision type="egsuz" draft="contributed">As Suways</subdivision>
- <subdivision type="egwad" draft="contributed">Guvernementet Al Wadi al Jadid</subdivision>
- <subdivision type="eran" draft="contributed">Anseba</subdivision>
- <subdivision type="erdk" draft="contributed">Debubawi Keyih Bahri</subdivision>
- <subdivision type="erdu" draft="contributed">Debub</subdivision>
- <subdivision type="ergb" draft="contributed">Gash-Barka</subdivision>
- <subdivision type="erma" draft="contributed">Maekel</subdivision>
- <subdivision type="ersk" draft="contributed">Semenawi Keyih Bahri</subdivision>
- <subdivision type="esa" draft="contributed">Alicante</subdivision>
- <subdivision type="esab" draft="contributed">Albacete</subdivision>
- <subdivision type="esal" draft="contributed">Almería</subdivision>
- <subdivision type="esan" draft="contributed">Andalucía</subdivision>
- <subdivision type="esar" draft="contributed">Aragon</subdivision>
- <subdivision type="esas" draft="contributed">Asturias</subdivision>
- <subdivision type="esav" draft="contributed">Ávila</subdivision>
- <subdivision type="esb" draft="contributed">Barcelona</subdivision>
- <subdivision type="esba" draft="contributed">Badajoz</subdivision>
- <subdivision type="esbi" draft="contributed">Bizkaia</subdivision>
- <subdivision type="esbu" draft="contributed">Burgos</subdivision>
- <subdivision type="esc" draft="contributed">A Coruña</subdivision>
- <subdivision type="esca" draft="contributed">Cádiz</subdivision>
- <subdivision type="escb" draft="contributed">Cantabria</subdivision>
- <subdivision type="escc" draft="contributed">Cáceres</subdivision>
- <subdivision type="esce" draft="contributed">Ceuta</subdivision>
- <subdivision type="escl" draft="contributed">Castilla y León</subdivision>
- <subdivision type="escm" draft="contributed">Castilla-La Mancha</subdivision>
- <subdivision type="esco" draft="contributed">Córdoba</subdivision>
- <subdivision type="escr" draft="contributed">Ciudad Real</subdivision>
- <subdivision type="escs" draft="contributed">Castellón</subdivision>
- <subdivision type="esct" draft="contributed">Catalonia</subdivision>
- <subdivision type="escu" draft="contributed">Cuenca</subdivision>
- <subdivision type="esex" draft="contributed">Extremadura</subdivision>
- <subdivision type="esga" draft="contributed">Galicia</subdivision>
- <subdivision type="esgc" draft="contributed">Las Palmas</subdivision>
- <subdivision type="esgi" draft="contributed">Girona</subdivision>
- <subdivision type="esgr" draft="contributed">Granada</subdivision>
- <subdivision type="esgu" draft="contributed">Guadalajara</subdivision>
- <subdivision type="esh" draft="contributed">Huelva</subdivision>
- <subdivision type="eshu" draft="contributed">Huesca</subdivision>
- <subdivision type="esib" draft="contributed">Balearene</subdivision>
- <subdivision type="esj" draft="contributed">Jaén</subdivision>
- <subdivision type="esl" draft="contributed">Lleida</subdivision>
- <subdivision type="esle" draft="contributed">León</subdivision>
- <subdivision type="eslo" draft="contributed">La Rioja</subdivision>
- <subdivision type="eslu" draft="contributed">Lugo</subdivision>
- <subdivision type="esma" draft="contributed">Málaga</subdivision>
- <subdivision type="esmc" draft="contributed">Murcia</subdivision>
- <subdivision type="esmd" draft="contributed">Madrid</subdivision>
- <subdivision type="esml" draft="contributed">Melilla</subdivision>
- <subdivision type="esna" draft="contributed">Navarra²</subdivision>
- <subdivision type="esnc" draft="contributed">Navarra</subdivision>
- <subdivision type="esor" draft="contributed">Ourense</subdivision>
- <subdivision type="esp" draft="contributed">Palencia</subdivision>
- <subdivision type="espm" draft="contributed">Balearene²</subdivision>
- <subdivision type="espo" draft="contributed">Pontevedra</subdivision>
- <subdivision type="espv" draft="contributed">Baskerland</subdivision>
- <subdivision type="esri" draft="contributed">La Rioja²</subdivision>
- <subdivision type="ess" draft="contributed">Cantabria²</subdivision>
- <subdivision type="essa" draft="contributed">Salamanca</subdivision>
- <subdivision type="esse" draft="contributed">Sevilla</subdivision>
- <subdivision type="essg" draft="contributed">Segovia</subdivision>
- <subdivision type="esso" draft="contributed">Soria</subdivision>
- <subdivision type="esss" draft="contributed">Gipuzkoa</subdivision>
- <subdivision type="est" draft="contributed">Tarragona</subdivision>
- <subdivision type="este" draft="contributed">Teruel</subdivision>
- <subdivision type="estf" draft="contributed">Santa Cruz de Tenerife</subdivision>
- <subdivision type="esto" draft="contributed">Toledo</subdivision>
- <subdivision type="esv" draft="contributed">Valencia</subdivision>
- <subdivision type="esva" draft="contributed">Valladolid</subdivision>
- <subdivision type="esvc" draft="contributed">Valencia²</subdivision>
- <subdivision type="esvi" draft="contributed">Álava</subdivision>
- <subdivision type="esz" draft="contributed">Zaragoza</subdivision>
- <subdivision type="esza" draft="contributed">Zamora</subdivision>
- <subdivision type="etaa" draft="contributed">Addis Abeba</subdivision>
- <subdivision type="etaf" draft="contributed">Afar</subdivision>
- <subdivision type="etam" draft="contributed">Amhara</subdivision>
- <subdivision type="etbe" draft="contributed">Benishangul-Gumuz</subdivision>
- <subdivision type="etdd" draft="contributed">Dire Dawa</subdivision>
- <subdivision type="etga" draft="contributed">Gambela</subdivision>
- <subdivision type="etha" draft="contributed">Harar</subdivision>
- <subdivision type="etor" draft="contributed">Oromia</subdivision>
- <subdivision type="etsn" draft="contributed">Region for sørlige nasjoner, nasjonaliteter og folk</subdivision>
- <subdivision type="etso" draft="contributed">Somali</subdivision>
- <subdivision type="etti" draft="contributed">Tigray</subdivision>
- <subdivision type="fi02" draft="contributed">Södra Karelen</subdivision>
- <subdivision type="fi03" draft="contributed">Södra Österbotten</subdivision>
- <subdivision type="fi04" draft="contributed">Södra Savolax</subdivision>
- <subdivision type="fi05" draft="contributed">Kajanaland</subdivision>
- <subdivision type="fi06" draft="contributed">Egentliga Tavastland</subdivision>
- <subdivision type="fi07" draft="contributed">Mellersta Österbotten</subdivision>
- <subdivision type="fi08" draft="contributed">Mellersta Finland</subdivision>
- <subdivision type="fi09" draft="contributed">Kymmenedalen</subdivision>
- <subdivision type="fi10" draft="contributed">Lappland</subdivision>
- <subdivision type="fi11" draft="contributed">Birkaland</subdivision>
- <subdivision type="fi12" draft="contributed">Österbotten</subdivision>
- <subdivision type="fi13" draft="contributed">Norra Karelen</subdivision>
- <subdivision type="fi14" draft="contributed">Norra Österbotten</subdivision>
- <subdivision type="fi15" draft="contributed">Norra Savolax</subdivision>
- <subdivision type="fi16" draft="contributed">Päijänne-Tavastland</subdivision>
- <subdivision type="fi17" draft="contributed">Satakunta</subdivision>
- <subdivision type="fi18" draft="contributed">Nyland</subdivision>
- <subdivision type="fi19" draft="contributed">Egentliga Finland</subdivision>
- <subdivision type="fj01" draft="contributed">Ba Province</subdivision>
- <subdivision type="fj02" draft="contributed">Bua Province</subdivision>
- <subdivision type="fj03" draft="contributed">Cakaudrove Province</subdivision>
- <subdivision type="fj04" draft="contributed">Kadavu Province</subdivision>
- <subdivision type="fj05" draft="contributed">Lau Province</subdivision>
- <subdivision type="fj06" draft="contributed">Lomaiviti Province</subdivision>
- <subdivision type="fj07" draft="contributed">Macuata Province</subdivision>
- <subdivision type="fj08" draft="contributed">Nadroga-Navosa Province</subdivision>
- <subdivision type="fj09" draft="contributed">Naitasiri Province</subdivision>
- <subdivision type="fj10" draft="contributed">Namosi Province</subdivision>
- <subdivision type="fj11" draft="contributed">Ra Province</subdivision>
- <subdivision type="fj12" draft="contributed">Rewa Province</subdivision>
- <subdivision type="fj13" draft="contributed">Serua Province</subdivision>
- <subdivision type="fj14" draft="contributed">Tailevu Province</subdivision>
- <subdivision type="fjc" draft="contributed">Central</subdivision>
- <subdivision type="fje" draft="contributed">Eastern</subdivision>
- <subdivision type="fjn" draft="contributed">Northern</subdivision>
- <subdivision type="fjr" draft="contributed">Rotuma</subdivision>
- <subdivision type="fjw" draft="contributed">Western</subdivision>
- <subdivision type="fmksa" draft="contributed">Kosrae</subdivision>
- <subdivision type="fmpni" draft="contributed">Pohnpei state</subdivision>
- <subdivision type="fmtrk" draft="contributed">Chuuk</subdivision>
- <subdivision type="fr01" draft="contributed">Ain</subdivision>
- <subdivision type="fr02" draft="contributed">Aisne</subdivision>
- <subdivision type="fr2a" draft="contributed">Corse-du-Sud</subdivision>
- <subdivision type="fr2b" draft="contributed">Haute-Corse</subdivision>
- <subdivision type="fr03" draft="contributed">Allier</subdivision>
- <subdivision type="fr04" draft="contributed">Alpes-de-Haute-Provence</subdivision>
- <subdivision type="fr05" draft="contributed">Hautes-Alpes</subdivision>
- <subdivision type="fr06" draft="contributed">Alpes-Maritimes</subdivision>
- <subdivision type="fr07" draft="contributed">Ardèche</subdivision>
- <subdivision type="fr08" draft="contributed">Ardennes</subdivision>
- <subdivision type="fr09" draft="contributed">Ariège</subdivision>
- <subdivision type="fr10" draft="contributed">Aube</subdivision>
- <subdivision type="fr11" draft="contributed">Aude</subdivision>
- <subdivision type="fr12" draft="contributed">Aveyron</subdivision>
- <subdivision type="fr13" draft="contributed">Bouches-du-Rhône</subdivision>
- <subdivision type="fr14" draft="contributed">Calvados</subdivision>
- <subdivision type="fr15" draft="contributed">Cantal</subdivision>
- <subdivision type="fr16" draft="contributed">Charente</subdivision>
- <subdivision type="fr17" draft="contributed">Charente-Maritime</subdivision>
- <subdivision type="fr18" draft="contributed">Cher</subdivision>
- <subdivision type="fr19" draft="contributed">Corrèze</subdivision>
- <subdivision type="fr21" draft="contributed">Côte-d’Or</subdivision>
- <subdivision type="fr22" draft="contributed">Côtes-d’Armor</subdivision>
- <subdivision type="fr23" draft="contributed">Creuse</subdivision>
- <subdivision type="fr24" draft="contributed">Dordogne</subdivision>
- <subdivision type="fr25" draft="contributed">Doubs</subdivision>
- <subdivision type="fr26" draft="contributed">Drôme</subdivision>
- <subdivision type="fr27" draft="contributed">Eure</subdivision>
- <subdivision type="fr28" draft="contributed">Eure-et-Loir</subdivision>
- <subdivision type="fr29" draft="contributed">Finistère</subdivision>
- <subdivision type="fr30" draft="contributed">Gard</subdivision>
- <subdivision type="fr31" draft="contributed">Haute-Garonne</subdivision>
- <subdivision type="fr32" draft="contributed">Gers</subdivision>
- <subdivision type="fr33" draft="contributed">Gironde</subdivision>
- <subdivision type="fr34" draft="contributed">Hérault</subdivision>
- <subdivision type="fr35" draft="contributed">Ille-et-Vilaine</subdivision>
- <subdivision type="fr36" draft="contributed">Indre</subdivision>
- <subdivision type="fr37" draft="contributed">Indre-et-Loire</subdivision>
- <subdivision type="fr38" draft="contributed">Isère</subdivision>
- <subdivision type="fr39" draft="contributed">Jura</subdivision>
- <subdivision type="fr40" draft="contributed">Landes</subdivision>
- <subdivision type="fr41" draft="contributed">Loir-et-Cher</subdivision>
- <subdivision type="fr42" draft="contributed">Loire</subdivision>
- <subdivision type="fr43" draft="contributed">Haute-Loire</subdivision>
- <subdivision type="fr44" draft="contributed">Loire-Atlantique</subdivision>
- <subdivision type="fr45" draft="contributed">Loiret</subdivision>
- <subdivision type="fr46" draft="contributed">Lot</subdivision>
- <subdivision type="fr47" draft="contributed">Lot-et-Garonne</subdivision>
- <subdivision type="fr48" draft="contributed">Lozère</subdivision>
- <subdivision type="fr49" draft="contributed">Maine-et-Loire</subdivision>
- <subdivision type="fr50" draft="contributed">Manche</subdivision>
- <subdivision type="fr51" draft="contributed">Marne</subdivision>
- <subdivision type="fr52" draft="contributed">Haute-Marne</subdivision>
- <subdivision type="fr53" draft="contributed">Mayenne</subdivision>
- <subdivision type="fr54" draft="contributed">Meurthe-et-Moselle</subdivision>
- <subdivision type="fr55" draft="contributed">Meuse</subdivision>
- <subdivision type="fr56" draft="contributed">Morbihan</subdivision>
- <subdivision type="fr57" draft="contributed">Moselle</subdivision>
- <subdivision type="fr58" draft="contributed">Nièvre</subdivision>
- <subdivision type="fr59" draft="contributed">Nord</subdivision>
- <subdivision type="fr60" draft="contributed">Oise</subdivision>
- <subdivision type="fr61" draft="contributed">Orne</subdivision>
- <subdivision type="fr62" draft="contributed">Pas-de-Calais</subdivision>
- <subdivision type="fr63" draft="contributed">Puy-de-Dôme</subdivision>
- <subdivision type="fr64" draft="contributed">Pyrénées-Atlantiques</subdivision>
- <subdivision type="fr65" draft="contributed">Hautes-Pyrénées</subdivision>
- <subdivision type="fr66" draft="contributed">Pyrénées-Orientales</subdivision>
- <subdivision type="fr67" draft="contributed">Bas-Rhin</subdivision>
- <subdivision type="fr68" draft="contributed">Haut-Rhin</subdivision>
- <subdivision type="fr69" draft="contributed">Rhône</subdivision>
- <subdivision type="fr70" draft="contributed">Haute-Saône</subdivision>
- <subdivision type="fr71" draft="contributed">Saône-et-Loire</subdivision>
- <subdivision type="fr72" draft="contributed">Sarthe</subdivision>
- <subdivision type="fr73" draft="contributed">Savoie</subdivision>
- <subdivision type="fr74" draft="contributed">Haute-Savoie</subdivision>
- <subdivision type="fr75" draft="contributed">Paris</subdivision>
- <subdivision type="fr76" draft="contributed">Seine-Maritime</subdivision>
- <subdivision type="fr77" draft="contributed">Seine-et-Marne</subdivision>
- <subdivision type="fr78" draft="contributed">Yvelines</subdivision>
- <subdivision type="fr79" draft="contributed">Deux-Sèvres</subdivision>
- <subdivision type="fr80" draft="contributed">Somme</subdivision>
- <subdivision type="fr81" draft="contributed">Tarn</subdivision>
- <subdivision type="fr82" draft="contributed">Tarn-et-Garonne</subdivision>
- <subdivision type="fr83" draft="contributed">Var</subdivision>
- <subdivision type="fr84" draft="contributed">Vaucluse</subdivision>
- <subdivision type="fr85" draft="contributed">Vendée</subdivision>
- <subdivision type="fr86" draft="contributed">Vienne</subdivision>
- <subdivision type="fr87" draft="contributed">Haute-Vienne</subdivision>
- <subdivision type="fr88" draft="contributed">Vosges</subdivision>
- <subdivision type="fr89" draft="contributed">Yonne</subdivision>
- <subdivision type="fr90" draft="contributed">Territoire de Belfort</subdivision>
- <subdivision type="fr91" draft="contributed">Essonne</subdivision>
- <subdivision type="fr92" draft="contributed">Hauts-de-Seine</subdivision>
- <subdivision type="fr93" draft="contributed">Seine-Saint-Denis</subdivision>
- <subdivision type="fr94" draft="contributed">Val-de-Marne</subdivision>
- <subdivision type="fr95" draft="contributed">Val-d’Oise</subdivision>
- <subdivision type="frara" draft="contributed">Auvergne-Rhône-Alpes</subdivision>
- <subdivision type="frbfc" draft="contributed">Bourgogne-Franche-Comté</subdivision>
- <subdivision type="frbre" draft="contributed">Bretagne</subdivision>
- <subdivision type="frcor" draft="contributed">Korsika</subdivision>
- <subdivision type="frcvl" draft="contributed">Centre</subdivision>
- <subdivision type="frges" draft="contributed">Grand Est</subdivision>
- <subdivision type="frhdf" draft="contributed">Hauts-de-France</subdivision>
- <subdivision type="fridf" draft="contributed">Île-de-France</subdivision>
- <subdivision type="frnaq" draft="contributed">Nouvelle-Aquitaine</subdivision>
- <subdivision type="frocc" draft="contributed">Occitanie</subdivision>
- <subdivision type="frpac" draft="contributed">Provence-Alpes-Côte d’Azur</subdivision>
- <subdivision type="frpdl" draft="contributed">Pays de la Loire</subdivision>
- <subdivision type="ga1" draft="contributed">Estuaire</subdivision>
- <subdivision type="ga2" draft="contributed">Haut-Ogooué</subdivision>
- <subdivision type="ga3" draft="contributed">Moyen-Ogooué</subdivision>
- <subdivision type="ga4" draft="contributed">Ngounié</subdivision>
- <subdivision type="ga5" draft="contributed">Nyanga</subdivision>
- <subdivision type="ga6" draft="contributed">Ogooué-Ivindo</subdivision>
- <subdivision type="ga7" draft="contributed">Ogooué-Lolo</subdivision>
- <subdivision type="ga8" draft="contributed">Ogooué-Maritime</subdivision>
- <subdivision type="ga9" draft="contributed">Woleu-Ntem</subdivision>
- <subdivision type="gbabd" draft="contributed">Aberdeenshire</subdivision>
- <subdivision type="gbabe" draft="contributed">Aberdeen</subdivision>
- <subdivision type="gbagb" draft="contributed">Argyll and Bute</subdivision>
- <subdivision type="gbagy" draft="contributed">Anglesey</subdivision>
- <subdivision type="gbans" draft="contributed">Angus</subdivision>
- <subdivision type="gbbas" draft="contributed">Bath and North East Somerset</subdivision>
- <subdivision type="gbbbd" draft="contributed">Blackburn with Darwen</subdivision>
- <subdivision type="gbbdf" draft="contributed">Bedford (distrikt)</subdivision>
- <subdivision type="gbbdg" draft="contributed">Barking and Dagenham</subdivision>
- <subdivision type="gbben" draft="contributed">Brent</subdivision>
- <subdivision type="gbbex" draft="contributed">Bexley</subdivision>
- <subdivision type="gbbge" draft="contributed">Bridgend</subdivision>
- <subdivision type="gbbgw" draft="contributed">Blaenau Gwent</subdivision>
- <subdivision type="gbbir" draft="contributed">Birmingham</subdivision>
- <subdivision type="gbbkm" draft="contributed">Buckinghamshire</subdivision>
- <subdivision type="gbbmh" draft="contributed">Bournemouth</subdivision>
- <subdivision type="gbbne" draft="contributed">Barnet</subdivision>
- <subdivision type="gbbnh" draft="contributed">Brighton and Hove</subdivision>
- <subdivision type="gbbns" draft="contributed">Barnsley</subdivision>
- <subdivision type="gbbol" draft="contributed">Bolton</subdivision>
- <subdivision type="gbbpl" draft="contributed">Blackpool</subdivision>
- <subdivision type="gbbrc" draft="contributed">Bracknell Forest</subdivision>
- <subdivision type="gbbrd" draft="contributed">City of Bradford</subdivision>
- <subdivision type="gbbry" draft="contributed">Bromley</subdivision>
- <subdivision type="gbbst" draft="contributed">Bristol</subdivision>
- <subdivision type="gbbur" draft="contributed">Bury</subdivision>
- <subdivision type="gbcam" draft="contributed">Cambridgeshire</subdivision>
- <subdivision type="gbcay" draft="contributed">Caerphilly</subdivision>
- <subdivision type="gbcgn" draft="contributed">Ceredigion</subdivision>
- <subdivision type="gbcld" draft="contributed">Calderdale</subdivision>
- <subdivision type="gbclk" draft="contributed">Clackmannanshire</subdivision>
- <subdivision type="gbcma" draft="contributed">Cumbria</subdivision>
- <subdivision type="gbcmd" draft="contributed">Camden</subdivision>
- <subdivision type="gbcmn" draft="contributed">Carmarthenshire</subdivision>
- <subdivision type="gbcon" draft="contributed">Cornwall</subdivision>
- <subdivision type="gbcov" draft="contributed">Coventry</subdivision>
- <subdivision type="gbcrf" draft="contributed">Cardiff</subdivision>
- <subdivision type="gbcry" draft="contributed">Croydon</subdivision>
- <subdivision type="gbcwy" draft="contributed">Conwy</subdivision>
- <subdivision type="gbdal" draft="contributed">Darlington</subdivision>
- <subdivision type="gbdby" draft="contributed">Derbyshire</subdivision>
- <subdivision type="gbden" draft="contributed">Denbighshire</subdivision>
- <subdivision type="gbder" draft="contributed">Derby</subdivision>
- <subdivision type="gbdev" draft="contributed">Devon</subdivision>
- <subdivision type="gbdgy" draft="contributed">Dumfries and Galloway</subdivision>
- <subdivision type="gbdnc" draft="contributed">Doncaster (distrikt)</subdivision>
- <subdivision type="gbdnd" draft="contributed">Dundee</subdivision>
- <subdivision type="gbdor" draft="contributed">Dorset</subdivision>
- <subdivision type="gbdud" draft="contributed">Dudley</subdivision>
- <subdivision type="gbdur" draft="contributed">Durham</subdivision>
- <subdivision type="gbeal" draft="contributed">Ealing</subdivision>
- <subdivision type="gbeaw" draft="contributed">England og Wales</subdivision>
- <subdivision type="gbeay" draft="contributed">East Ayrshire</subdivision>
- <subdivision type="gbedh" draft="contributed">Edinburgh</subdivision>
- <subdivision type="gbedu" draft="contributed">East Dunbartonshire</subdivision>
- <subdivision type="gbeln" draft="contributed">East Lothian</subdivision>
- <subdivision type="gbels" draft="contributed">Ytre Hebridene</subdivision>
- <subdivision type="gbenf" draft="contributed">Enfield</subdivision>
- <subdivision type="gberw" draft="contributed">East Renfrewshire</subdivision>
- <subdivision type="gbery" draft="contributed">East Riding of Yorkshire</subdivision>
- <subdivision type="gbess" draft="contributed">Essex</subdivision>
- <subdivision type="gbesx" draft="contributed">East Sussex</subdivision>
- <subdivision type="gbfal" draft="contributed">Falkirk</subdivision>
- <subdivision type="gbfif" draft="contributed">Fife</subdivision>
- <subdivision type="gbfln" draft="contributed">Flintshire</subdivision>
- <subdivision type="gbgat" draft="contributed">Gateshead</subdivision>
- <subdivision type="gbgbn" draft="contributed">Storbritannia</subdivision>
- <subdivision type="gbglg" draft="contributed">Glasgow</subdivision>
- <subdivision type="gbgls" draft="contributed">Gloucestershire</subdivision>
- <subdivision type="gbgre" draft="contributed">Greenwich</subdivision>
- <subdivision type="gbgwn" draft="contributed">Gwynedd</subdivision>
- <subdivision type="gbhal" draft="contributed">Halton</subdivision>
- <subdivision type="gbham" draft="contributed">Hampshire</subdivision>
- <subdivision type="gbhav" draft="contributed">Havering</subdivision>
- <subdivision type="gbhck" draft="contributed">Hackney</subdivision>
- <subdivision type="gbhef" draft="contributed">Herefordshire</subdivision>
- <subdivision type="gbhil" draft="contributed">Hillingdon</subdivision>
- <subdivision type="gbhld" draft="contributed">Highland</subdivision>
- <subdivision type="gbhmf" draft="contributed">Hammersmith and Fulham</subdivision>
- <subdivision type="gbhns" draft="contributed">Hounslow</subdivision>
- <subdivision type="gbhrt" draft="contributed">Hertfordshire</subdivision>
- <subdivision type="gbhrw" draft="contributed">Harrow</subdivision>
- <subdivision type="gbhry" draft="contributed">Haringey</subdivision>
- <subdivision type="gbios" draft="contributed">Scillyøyene</subdivision>
- <subdivision type="gbiow" draft="contributed">Wight</subdivision>
- <subdivision type="gbisl" draft="contributed">Islington</subdivision>
- <subdivision type="gbivc" draft="contributed">Inverclyde</subdivision>
- <subdivision type="gbkec" draft="contributed">Kensington and Chelsea</subdivision>
- <subdivision type="gbken" draft="contributed">Kent</subdivision>
- <subdivision type="gbkhl" draft="contributed">Kingston upon Hull</subdivision>
- <subdivision type="gbkir" draft="contributed">Kirklees</subdivision>
- <subdivision type="gbktt" draft="contributed">Kingston upon Thames</subdivision>
- <subdivision type="gbkwl" draft="contributed">Knowsley</subdivision>
- <subdivision type="gblan" draft="contributed">Lancashire</subdivision>
- <subdivision type="gblbh" draft="contributed">Lambeth</subdivision>
- <subdivision type="gblce" draft="contributed">Leicester</subdivision>
- <subdivision type="gblds" draft="contributed">City of Leeds</subdivision>
- <subdivision type="gblec" draft="contributed">Leicestershire</subdivision>
- <subdivision type="gblew" draft="contributed">Lewisham</subdivision>
- <subdivision type="gblin" draft="contributed">Lincolnshire</subdivision>
- <subdivision type="gbliv" draft="contributed">Liverpool</subdivision>
- <subdivision type="gblnd" draft="contributed">City of London</subdivision>
- <subdivision type="gblut" draft="contributed">Luton</subdivision>
- <subdivision type="gbman" draft="contributed">Manchester</subdivision>
- <subdivision type="gbmdb" draft="contributed">Middlesbrough</subdivision>
- <subdivision type="gbmdw" draft="contributed">Medway</subdivision>
- <subdivision type="gbmik" draft="contributed">Milton Keynes</subdivision>
- <subdivision type="gbmln" draft="contributed">Midlothian</subdivision>
- <subdivision type="gbmon" draft="contributed">Monmouthshire</subdivision>
- <subdivision type="gbmrt" draft="contributed">Merton</subdivision>
- <subdivision type="gbmry" draft="contributed">Moray</subdivision>
- <subdivision type="gbnay" draft="contributed">North Ayrshire</subdivision>
- <subdivision type="gbnbl" draft="contributed">Northumberland</subdivision>
- <subdivision type="gbnel" draft="contributed">North East Lincolnshire</subdivision>
- <subdivision type="gbnet" draft="contributed">Newcastle upon Tyne</subdivision>
- <subdivision type="gbnfk" draft="contributed">Norfolk</subdivision>
- <subdivision type="gbngm" draft="contributed">Nottingham</subdivision>
- <subdivision type="gbnir" draft="contributed">Nord-Irland</subdivision>
- <subdivision type="gbnlk" draft="contributed">North Lanarkshire</subdivision>
- <subdivision type="gbnln" draft="contributed">North Lincolnshire</subdivision>
- <subdivision type="gbnsm" draft="contributed">North Somerset</subdivision>
- <subdivision type="gbnth" draft="contributed">Northamptonshire</subdivision>
- <subdivision type="gbntl" draft="contributed">Neath Port Talbot</subdivision>
- <subdivision type="gbntt" draft="contributed">Nottinghamshire</subdivision>
- <subdivision type="gbnty" draft="contributed">North Tyneside</subdivision>
- <subdivision type="gbnwm" draft="contributed">Newham</subdivision>
- <subdivision type="gbnyk" draft="contributed">North Yorkshire</subdivision>
- <subdivision type="gbold" draft="contributed">Oldham</subdivision>
- <subdivision type="gbork" draft="contributed">Orknøyene</subdivision>
- <subdivision type="gboxf" draft="contributed">Oxfordshire</subdivision>
- <subdivision type="gbpem" draft="contributed">Pembrokeshire</subdivision>
- <subdivision type="gbpkn" draft="contributed">Perth and Kinross</subdivision>
- <subdivision type="gbply" draft="contributed">Plymouth</subdivision>
- <subdivision type="gbpol" draft="contributed">Poole</subdivision>
- <subdivision type="gbpor" draft="contributed">Portsmouth</subdivision>
- <subdivision type="gbpow" draft="contributed">Powys</subdivision>
- <subdivision type="gbpte" draft="contributed">Peterborough</subdivision>
- <subdivision type="gbrcc" draft="contributed">Redcar and Cleveland</subdivision>
- <subdivision type="gbrch" draft="contributed">Rochdale</subdivision>
- <subdivision type="gbrct" draft="contributed">Rhondda Cynon Taf</subdivision>
- <subdivision type="gbrdb" draft="contributed">Redbridge</subdivision>
- <subdivision type="gbrdg" draft="contributed">Reading</subdivision>
- <subdivision type="gbrfw" draft="contributed">Renfrewshire</subdivision>
- <subdivision type="gbric" draft="contributed">Richmond upon Thames</subdivision>
- <subdivision type="gbrot" draft="contributed">Rotherham</subdivision>
- <subdivision type="gbrut" draft="contributed">Rutland</subdivision>
- <subdivision type="gbsaw" draft="contributed">Sandwell</subdivision>
- <subdivision type="gbsay" draft="contributed">South Ayrshire</subdivision>
- <subdivision type="gbscb" draft="contributed">Scottish Borders</subdivision>
- <subdivision type="gbsfk" draft="contributed">Suffolk</subdivision>
- <subdivision type="gbsft" draft="contributed">Sefton</subdivision>
- <subdivision type="gbsgc" draft="contributed">South Gloucestershire</subdivision>
- <subdivision type="gbshf" draft="contributed">Sheffield</subdivision>
- <subdivision type="gbshn" draft="contributed">St. Helens</subdivision>
- <subdivision type="gbshr" draft="contributed">Shropshire</subdivision>
- <subdivision type="gbskp" draft="contributed">Stockport</subdivision>
- <subdivision type="gbslf" draft="contributed">City of Salford</subdivision>
- <subdivision type="gbslg" draft="contributed">Slough</subdivision>
- <subdivision type="gbslk" draft="contributed">South Lanarkshire</subdivision>
- <subdivision type="gbsnd" draft="contributed">City of Sunderland</subdivision>
- <subdivision type="gbsol" draft="contributed">Solihull (distrikt)</subdivision>
- <subdivision type="gbsom" draft="contributed">Somerset</subdivision>
- <subdivision type="gbsos" draft="contributed">Southend-on-Sea</subdivision>
- <subdivision type="gbsry" draft="contributed">Surrey</subdivision>
- <subdivision type="gbste" draft="contributed">Stoke-on-Trent</subdivision>
- <subdivision type="gbstg" draft="contributed">Stirling</subdivision>
- <subdivision type="gbsth" draft="contributed">Southampton</subdivision>
- <subdivision type="gbstn" draft="contributed">Sutton</subdivision>
- <subdivision type="gbsts" draft="contributed">Staffordshire</subdivision>
- <subdivision type="gbstt" draft="contributed">Stockton-on-Tees (distrikt)</subdivision>
- <subdivision type="gbsty" draft="contributed">South Tyneside</subdivision>
- <subdivision type="gbswa" draft="contributed">Swansea</subdivision>
- <subdivision type="gbswd" draft="contributed">Swindon</subdivision>
- <subdivision type="gbswk" draft="contributed">Southwark</subdivision>
- <subdivision type="gbtam" draft="contributed">Tameside</subdivision>
- <subdivision type="gbtfw" draft="contributed">Telford and Wrekin</subdivision>
- <subdivision type="gbthr" draft="contributed">Thurrock</subdivision>
- <subdivision type="gbtob" draft="contributed">Torbay</subdivision>
- <subdivision type="gbtof" draft="contributed">Torfaen</subdivision>
- <subdivision type="gbtrf" draft="contributed">Trafford</subdivision>
- <subdivision type="gbtwh" draft="contributed">Tower Hamlets</subdivision>
- <subdivision type="gbukm" draft="contributed">Storbritannia²</subdivision>
- <subdivision type="gbvgl" draft="contributed">Vale of Glamorgan</subdivision>
- <subdivision type="gbwar" draft="contributed">Warwickshire</subdivision>
- <subdivision type="gbwbk" draft="contributed">West Berkshire</subdivision>
- <subdivision type="gbwdu" draft="contributed">West Dunbartonshire</subdivision>
- <subdivision type="gbwft" draft="contributed">Waltham Forest</subdivision>
- <subdivision type="gbwgn" draft="contributed">Wigan</subdivision>
- <subdivision type="gbwil" draft="contributed">Wiltshire</subdivision>
- <subdivision type="gbwkf" draft="contributed">City of Wakefield</subdivision>
- <subdivision type="gbwll" draft="contributed">Walsall</subdivision>
- <subdivision type="gbwln" draft="contributed">West Lothian</subdivision>
- <subdivision type="gbwlv" draft="contributed">Wolverhampton</subdivision>
- <subdivision type="gbwnd" draft="contributed">Wandsworth</subdivision>
- <subdivision type="gbwnm" draft="contributed">Windsor and Maidenhead</subdivision>
- <subdivision type="gbwok" draft="contributed">Wokingham</subdivision>
- <subdivision type="gbwor" draft="contributed">Worcestershire</subdivision>
- <subdivision type="gbwrl" draft="contributed">Wirral</subdivision>
- <subdivision type="gbwrt" draft="contributed">Warrington</subdivision>
- <subdivision type="gbwrx" draft="contributed">Wrexham</subdivision>
- <subdivision type="gbwsm" draft="contributed">City of Westminster</subdivision>
- <subdivision type="gbwsx" draft="contributed">West Sussex</subdivision>
- <subdivision type="gbyor" draft="contributed">York</subdivision>
- <subdivision type="gbzet" draft="contributed">Shetland</subdivision>
- <subdivision type="gd01" draft="contributed">Saint Andrew prestegjeld</subdivision>
- <subdivision type="gd02" draft="contributed">Saint David prestegjeld</subdivision>
- <subdivision type="gd03" draft="contributed">Saint George prestegjeld</subdivision>
- <subdivision type="gd04" draft="contributed">Saint John prestegjeld</subdivision>
- <subdivision type="gd05" draft="contributed">Saint Mark Parish</subdivision>
- <subdivision type="gd06" draft="contributed">Saint Patrick</subdivision>
- <subdivision type="gd10" draft="contributed">Carriacou og Petite Martinique</subdivision>
- <subdivision type="geab" draft="contributed">Abkhasia</subdivision>
- <subdivision type="geaj" draft="contributed">Adsjaria</subdivision>
- <subdivision type="gegu" draft="contributed">Guria</subdivision>
- <subdivision type="geim" draft="contributed">Imereti</subdivision>
- <subdivision type="geka" draft="contributed">Kakheti</subdivision>
- <subdivision type="gekk" draft="contributed">Kvemo Kartli</subdivision>
- <subdivision type="gemm" draft="contributed">Mtskheta-Mtianeti</subdivision>
- <subdivision type="gerl" draft="contributed">Racha-Lechkhumi og Kvemo Svaneti</subdivision>
- <subdivision type="gesj" draft="contributed">Samtskhe-Javakheti</subdivision>
- <subdivision type="gesk" draft="contributed">Shida Kartli</subdivision>
- <subdivision type="gesz" draft="contributed">Samegrelo-Zemo Svaneti</subdivision>
- <subdivision type="getb" draft="contributed">Tbilisi</subdivision>
- <subdivision type="ghaa" draft="contributed">Greater Accra</subdivision>
- <subdivision type="ghah" draft="contributed">Ashanti</subdivision>
- <subdivision type="ghba" draft="contributed">Brong-Ahafo</subdivision>
- <subdivision type="ghcp" draft="contributed">Central</subdivision>
- <subdivision type="ghep" draft="contributed">Eastern</subdivision>
- <subdivision type="ghnp" draft="contributed">Northern</subdivision>
- <subdivision type="ghtv" draft="contributed">Volta</subdivision>
- <subdivision type="ghue" draft="contributed">Upper East</subdivision>
- <subdivision type="ghuw" draft="contributed">Upper West</subdivision>
- <subdivision type="ghwp" draft="contributed">Western</subdivision>
- <subdivision type="glku" draft="contributed">Kujalleq</subdivision>
- <subdivision type="glqa" draft="contributed">Qaasuitsoq</subdivision>
- <subdivision type="glqe" draft="contributed">Qeqqata</subdivision>
- <subdivision type="glsm" draft="contributed">Sermersooq</subdivision>
- <subdivision type="gmb" draft="contributed">Banjul</subdivision>
- <subdivision type="gml" draft="contributed">Lower River</subdivision>
- <subdivision type="gmm" draft="contributed">Central River</subdivision>
- <subdivision type="gmn" draft="contributed">North Bank</subdivision>
- <subdivision type="gmu" draft="contributed">Upper River</subdivision>
- <subdivision type="gmw" draft="contributed">West Coast</subdivision>
- <subdivision type="gnb" draft="contributed">Boké</subdivision>
- <subdivision type="gnbe" draft="contributed">Beyla</subdivision>
- <subdivision type="gnbf" draft="contributed">Boffa</subdivision>
- <subdivision type="gnbk" draft="contributed">Boké²</subdivision>
- <subdivision type="gnc" draft="contributed">Conakry</subdivision>
- <subdivision type="gnco" draft="contributed">Coyah</subdivision>
- <subdivision type="gnd" draft="contributed">Kindia</subdivision>
- <subdivision type="gndb" draft="contributed">Dabola</subdivision>
- <subdivision type="gndi" draft="contributed">Dinguiraye</subdivision>
- <subdivision type="gndl" draft="contributed">Dalaba</subdivision>
- <subdivision type="gndu" draft="contributed">Dubréka</subdivision>
- <subdivision type="gnf" draft="contributed">Faranah</subdivision>
- <subdivision type="gnfa" draft="contributed">Faranah²</subdivision>
- <subdivision type="gnfo" draft="contributed">Forécariah</subdivision>
- <subdivision type="gnfr" draft="contributed">Fria</subdivision>
- <subdivision type="gnga" draft="contributed">Gaoual</subdivision>
- <subdivision type="gngu" draft="contributed">Guéckédou</subdivision>
- <subdivision type="gnk" draft="contributed">Kankan</subdivision>
- <subdivision type="gnka" draft="contributed">Kankan²</subdivision>
- <subdivision type="gnkb" draft="contributed">Koubia</subdivision>
- <subdivision type="gnkd" draft="contributed">Kindia²</subdivision>
- <subdivision type="gnke" draft="contributed">Kérouané</subdivision>
- <subdivision type="gnkn" draft="contributed">Koundara</subdivision>
- <subdivision type="gnko" draft="contributed">Kouroussa</subdivision>
- <subdivision type="gnks" draft="contributed">Kissidougou</subdivision>
- <subdivision type="gnl" draft="contributed">Labé</subdivision>
- <subdivision type="gnla" draft="contributed">Labé²</subdivision>
- <subdivision type="gnle" draft="contributed">Lélouma</subdivision>
- <subdivision type="gnlo" draft="contributed">Lola</subdivision>
- <subdivision type="gnm" draft="contributed">Mamou</subdivision>
- <subdivision type="gnmc" draft="contributed">Macenta</subdivision>
- <subdivision type="gnmd" draft="contributed">Mandiana</subdivision>
- <subdivision type="gnml" draft="contributed">Mali</subdivision>
- <subdivision type="gnmm" draft="contributed">Mamou²</subdivision>
- <subdivision type="gnn" draft="contributed">Nzérékoré</subdivision>
- <subdivision type="gnnz" draft="contributed">Nzérékoré²</subdivision>
- <subdivision type="gnpi" draft="contributed">Pita</subdivision>
- <subdivision type="gnsi" draft="contributed">Siguiri</subdivision>
- <subdivision type="gnte" draft="contributed">Télimélé</subdivision>
- <subdivision type="gnto" draft="contributed">Tougué</subdivision>
- <subdivision type="gnyo" draft="contributed">Yomou</subdivision>
- <subdivision type="gqan" draft="contributed">Annobón</subdivision>
- <subdivision type="gqbn" draft="contributed">Bioko Norte</subdivision>
- <subdivision type="gqbs" draft="contributed">Bioko Sur</subdivision>
- <subdivision type="gqc" draft="contributed">Río Muni</subdivision>
- <subdivision type="gqcs" draft="contributed">Centro Sur</subdivision>
- <subdivision type="gqkn" draft="contributed">Kié-Ntem</subdivision>
- <subdivision type="gqli" draft="contributed">Litoral</subdivision>
- <subdivision type="gqwn" draft="contributed">Wele-Nzás</subdivision>
- <subdivision type="gr69" draft="contributed">Athos</subdivision>
- <subdivision type="gra" draft="contributed">Øst-Makedonia og Thrakia</subdivision>
- <subdivision type="grb" draft="contributed">Sentral-Makedonia</subdivision>
- <subdivision type="grc" draft="contributed">Vest-Makedonia</subdivision>
- <subdivision type="grd" draft="contributed">Epirus</subdivision>
- <subdivision type="gre" draft="contributed">Thessalia</subdivision>
- <subdivision type="grf" draft="contributed">De joniske øyer</subdivision>
- <subdivision type="grg" draft="contributed">Vest-Hellas</subdivision>
- <subdivision type="grh" draft="contributed">Sentral-Hellas</subdivision>
- <subdivision type="gri" draft="contributed">Attica region</subdivision>
- <subdivision type="grj" draft="contributed">Peloponnes</subdivision>
- <subdivision type="grk" draft="contributed">Nordlige egeiske øyer</subdivision>
- <subdivision type="grl" draft="contributed">Sørlige egeiske øyer</subdivision>
- <subdivision type="gtav" draft="contributed">Alta Verapaz</subdivision>
- <subdivision type="gtbv" draft="contributed">Baja Verapaz</subdivision>
- <subdivision type="gtcm" draft="contributed">Chimaltenango</subdivision>
- <subdivision type="gtcq" draft="contributed">Chiquimula</subdivision>
- <subdivision type="gtes" draft="contributed">Escuintla</subdivision>
- <subdivision type="gtgu" draft="contributed">Guatemala</subdivision>
- <subdivision type="gthu" draft="contributed">Huehuetenango</subdivision>
- <subdivision type="gtiz" draft="contributed">Izabal</subdivision>
- <subdivision type="gtja" draft="contributed">Jalapa</subdivision>
- <subdivision type="gtju" draft="contributed">Jutiapa</subdivision>
- <subdivision type="gtpe" draft="contributed">Petén</subdivision>
- <subdivision type="gtpr" draft="contributed">El Progreso</subdivision>
- <subdivision type="gtqc" draft="contributed">Quiché</subdivision>
- <subdivision type="gtqz" draft="contributed">Quetzaltenango</subdivision>
- <subdivision type="gtre" draft="contributed">Retalhuleu</subdivision>
- <subdivision type="gtsa" draft="contributed">Sacatepéquez</subdivision>
- <subdivision type="gtsm" draft="contributed">San Marcos (departement)</subdivision>
- <subdivision type="gtso" draft="contributed">Sololá</subdivision>
- <subdivision type="gtsr" draft="contributed">Santa Rosa (departement)</subdivision>
- <subdivision type="gtsu" draft="contributed">Suchitepéquez</subdivision>
- <subdivision type="gtto" draft="contributed">Totonicapán (departement)</subdivision>
- <subdivision type="gtza" draft="contributed">Zacapa</subdivision>
- <subdivision type="gwba" draft="contributed">Bafatá</subdivision>
- <subdivision type="gwbl" draft="contributed">Bolama</subdivision>
- <subdivision type="gwbm" draft="contributed">Biombo</subdivision>
- <subdivision type="gwbs" draft="contributed">Bissau</subdivision>
- <subdivision type="gwca" draft="contributed">Cacheu</subdivision>
- <subdivision type="gwga" draft="contributed">Gabú</subdivision>
- <subdivision type="gwoi" draft="contributed">Oio</subdivision>
- <subdivision type="gwqu" draft="contributed">Quinara</subdivision>
- <subdivision type="gwto" draft="contributed">Tombali</subdivision>
- <subdivision type="gyba" draft="contributed">Barima-Waini</subdivision>
- <subdivision type="gycu" draft="contributed">Cuyuni-Mazaruni</subdivision>
- <subdivision type="gyde" draft="contributed">Demerara-Mahaica</subdivision>
- <subdivision type="gyeb" draft="contributed">East Berbice-Corentyne</subdivision>
- <subdivision type="gyes" draft="contributed">Essequibo Islands-West Demerara</subdivision>
- <subdivision type="gyma" draft="contributed">Mahaica-Berbice</subdivision>
- <subdivision type="gypm" draft="contributed">Pomeroon-Supenaam</subdivision>
- <subdivision type="gypt" draft="contributed">Potaro-Siparuni</subdivision>
- <subdivision type="gyud" draft="contributed">Upper Demerara-Berbice</subdivision>
- <subdivision type="gyut" draft="contributed">Upper Takutu-Upper Essequibo</subdivision>
- <subdivision type="hnat" draft="contributed">Atlantida department</subdivision>
- <subdivision type="hnch" draft="contributed">Choluteca</subdivision>
- <subdivision type="hncl" draft="contributed">Colon department</subdivision>
- <subdivision type="hncp" draft="contributed">Copan department</subdivision>
- <subdivision type="hncr" draft="contributed">Cortes</subdivision>
- <subdivision type="hnep" draft="contributed">El Paraiso</subdivision>
- <subdivision type="hnfm" draft="contributed">Franciso Morazan department</subdivision>
- <subdivision type="hngd" draft="contributed">Gracias a Dios</subdivision>
- <subdivision type="hnib" draft="contributed">Bay Islands department</subdivision>
- <subdivision type="hnin" draft="contributed">Intibuca department</subdivision>
- <subdivision type="hnle" draft="contributed">Lampira department</subdivision>
- <subdivision type="hnlp" draft="contributed">La Paz department</subdivision>
- <subdivision type="hnoc" draft="contributed">Ocotepeque department</subdivision>
- <subdivision type="hnol" draft="contributed">Olancho department</subdivision>
- <subdivision type="hnsb" draft="contributed">Santa Barbara Department</subdivision>
- <subdivision type="hnva" draft="contributed">Valle</subdivision>
- <subdivision type="hnyo" draft="contributed">Yoro department</subdivision>
- <subdivision type="hr01" draft="contributed">Zagreb</subdivision>
- <subdivision type="hr02" draft="contributed">Krapina-Zagorje</subdivision>
- <subdivision type="hr03" draft="contributed">Sisak-Moslavina</subdivision>
- <subdivision type="hr04" draft="contributed">Karlovac</subdivision>
- <subdivision type="hr05" draft="contributed">Varaždin</subdivision>
- <subdivision type="hr06" draft="contributed">Koprivnica-Križevci</subdivision>
- <subdivision type="hr07" draft="contributed">Bjelovar-Bilogora</subdivision>
- <subdivision type="hr08" draft="contributed">Primorje-Gorski Kotar</subdivision>
- <subdivision type="hr09" draft="contributed">Lika-Senj</subdivision>
- <subdivision type="hr10" draft="contributed">Virovitica-Podravina</subdivision>
- <subdivision type="hr11" draft="contributed">Požega-Slavonia</subdivision>
- <subdivision type="hr12" draft="contributed">Brod-Posavina</subdivision>
- <subdivision type="hr13" draft="contributed">Zadar</subdivision>
- <subdivision type="hr14" draft="contributed">Osijek-Baranja</subdivision>
- <subdivision type="hr15" draft="contributed">Šibenik-Knin</subdivision>
- <subdivision type="hr16" draft="contributed">Vukovar-Syrmia</subdivision>
- <subdivision type="hr17" draft="contributed">Split-Dalmatia</subdivision>
- <subdivision type="hr18" draft="contributed">Istria</subdivision>
- <subdivision type="hr19" draft="contributed">Dubrovnik-Neretva</subdivision>
- <subdivision type="hr20" draft="contributed">Međimurje</subdivision>
- <subdivision type="hr21" draft="contributed">Zagreb²</subdivision>
- <subdivision type="htar" draft="contributed">Artibonite</subdivision>
- <subdivision type="htce" draft="contributed">Centre</subdivision>
- <subdivision type="htga" draft="contributed">Grand’Anse</subdivision>
- <subdivision type="htnd" draft="contributed">Nord</subdivision>
- <subdivision type="htne" draft="contributed">Nord-Est</subdivision>
- <subdivision type="htni" draft="contributed">Nippes</subdivision>
- <subdivision type="htno" draft="contributed">Nord-Ouest</subdivision>
- <subdivision type="htou" draft="contributed">Ouest</subdivision>
- <subdivision type="htsd" draft="contributed">Sud</subdivision>
- <subdivision type="htse" draft="contributed">Sud-Est</subdivision>
- <subdivision type="hubc" draft="contributed">Békéscsaba</subdivision>
- <subdivision type="hube" draft="contributed">Bekes Fylke</subdivision>
- <subdivision type="hubk" draft="contributed">Bacs-Kiskun Fylke</subdivision>
- <subdivision type="hubu" draft="contributed">Budapest</subdivision>
- <subdivision type="hubz" draft="contributed">Borsod Abauj Zemplen Fylke</subdivision>
- <subdivision type="hucs" draft="contributed">Csongrád (fylke)</subdivision>
- <subdivision type="hude" draft="contributed">Debrecen</subdivision>
- <subdivision type="hueg" draft="contributed">Eger</subdivision>
- <subdivision type="hufe" draft="contributed">Fejer fylke</subdivision>
- <subdivision type="hugs" draft="contributed">Gyor Moson Sopron Fylke</subdivision>
- <subdivision type="hugy" draft="contributed">Győr</subdivision>
- <subdivision type="huhb" draft="contributed">Hajdu-Bihar Fylke</subdivision>
- <subdivision type="huhe" draft="contributed">Heves Fylke</subdivision>
- <subdivision type="huhv" draft="contributed">Hódmezővásárhely</subdivision>
- <subdivision type="hujn" draft="contributed">Jasz Nagykun Szolnok fylke</subdivision>
- <subdivision type="huke" draft="contributed">Komarom-Esztergom fylke</subdivision>
- <subdivision type="hukm" draft="contributed">Kecskemet</subdivision>
- <subdivision type="hukv" draft="contributed">Kaposvár</subdivision>
- <subdivision type="humi" draft="contributed">Miskolc</subdivision>
- <subdivision type="hunk" draft="contributed">Nagykanizsa</subdivision>
- <subdivision type="huno" draft="contributed">Nógrád</subdivision>
- <subdivision type="huny" draft="contributed">Nyíregyháza</subdivision>
- <subdivision type="hupe" draft="contributed">Pest</subdivision>
- <subdivision type="hups" draft="contributed">Pécs</subdivision>
- <subdivision type="husd" draft="contributed">Szeged</subdivision>
- <subdivision type="husf" draft="contributed">Székesfehérvár</subdivision>
- <subdivision type="hush" draft="contributed">Szombathely</subdivision>
- <subdivision type="husk" draft="contributed">Szolnok</subdivision>
- <subdivision type="husn" draft="contributed">Sopron</subdivision>
- <subdivision type="huso" draft="contributed">Saomogy fylke</subdivision>
- <subdivision type="huss" draft="contributed">Szekszárd</subdivision>
- <subdivision type="hust" draft="contributed">Salgótarján</subdivision>
- <subdivision type="husz" draft="contributed">Szaboles Szatmar Bereg fylke</subdivision>
- <subdivision type="hutb" draft="contributed">Tatabanya</subdivision>
- <subdivision type="huto" draft="contributed">Tolna Fylke</subdivision>
- <subdivision type="huva" draft="contributed">Vas Fylke</subdivision>
- <subdivision type="huve" draft="contributed">Veszprém</subdivision>
- <subdivision type="huvm" draft="contributed">Veszprém²</subdivision>
- <subdivision type="huza" draft="contributed">Zala Fylke</subdivision>
- <subdivision type="huze" draft="contributed">Zalaegerszeg</subdivision>
- <subdivision type="idac" draft="contributed">Aceh</subdivision>
- <subdivision type="idba" draft="contributed">Bali</subdivision>
- <subdivision type="idbb" draft="contributed">Bangka-Belitung</subdivision>
- <subdivision type="idbe" draft="contributed">Bengkulu</subdivision>
- <subdivision type="idbt" draft="contributed">Banten</subdivision>
- <subdivision type="idgo" draft="contributed">Gorontalo</subdivision>
- <subdivision type="idja" draft="contributed">Jambi</subdivision>
- <subdivision type="idjb" draft="contributed">Jawa Barat</subdivision>
- <subdivision type="idji" draft="contributed">Jawa Timur</subdivision>
- <subdivision type="idjk" draft="contributed">Jakarta</subdivision>
- <subdivision type="idjt" draft="contributed">Jawa Tengah</subdivision>
- <subdivision type="idjw" draft="contributed">Java</subdivision>
- <subdivision type="idka" draft="contributed">Kalimantan</subdivision>
- <subdivision type="idkb" draft="contributed">Kalimantan Barat</subdivision>
- <subdivision type="idki" draft="contributed">Kalimantan Timur</subdivision>
- <subdivision type="idkr" draft="contributed">Kepulauan Riau</subdivision>
- <subdivision type="idks" draft="contributed">Kalimantan Selatan</subdivision>
- <subdivision type="idkt" draft="contributed">Kalimantan Tengah</subdivision>
- <subdivision type="idla" draft="contributed">Lampung</subdivision>
- <subdivision type="idma" draft="contributed">Maluku Kommune</subdivision>
- <subdivision type="idml" draft="contributed">Molukkene</subdivision>
- <subdivision type="idmu" draft="contributed">Nord Maluku provins</subdivision>
- <subdivision type="idnb" draft="contributed">West Nusa Tenggara</subdivision>
- <subdivision type="idnt" draft="contributed">Nusa Tenggara Timur</subdivision>
- <subdivision type="idnu" draft="contributed">De små Sundaøyer</subdivision>
- <subdivision type="idpa" draft="contributed">Papua</subdivision>
- <subdivision type="idpb" draft="contributed">Papua Barat</subdivision>
- <subdivision type="idpp" draft="contributed">Vest-Papua</subdivision>
- <subdivision type="idri" draft="contributed">Riau</subdivision>
- <subdivision type="idsa" draft="contributed">Nord Sulawesi provins</subdivision>
- <subdivision type="idsb" draft="contributed">Sumatera Barat</subdivision>
- <subdivision type="idsg" draft="contributed">South East Sulawesi Provins</subdivision>
- <subdivision type="idsl" draft="contributed">Sulawesi</subdivision>
- <subdivision type="idsm" draft="contributed">Sumatra</subdivision>
- <subdivision type="idsn" draft="contributed">Sør Sulawesi</subdivision>
- <subdivision type="idsr" draft="contributed">West Sulawesi</subdivision>
- <subdivision type="idss" draft="contributed">Sumatera Selatan</subdivision>
- <subdivision type="idst" draft="contributed">Sentral Sulaweisi provins</subdivision>
- <subdivision type="idsu" draft="contributed">Sumatera Utara</subdivision>
- <subdivision type="idyo" draft="contributed">Yogyakarta</subdivision>
- <subdivision type="iec" draft="contributed">Connacht</subdivision>
- <subdivision type="iece" draft="contributed">Clare</subdivision>
- <subdivision type="iecn" draft="contributed">Cavan</subdivision>
- <subdivision type="ieco" draft="contributed">Cork</subdivision>
- <subdivision type="iecw" draft="contributed">Carlow</subdivision>
- <subdivision type="ied" draft="contributed">Dublin</subdivision>
- <subdivision type="iedl" draft="contributed">Donegal</subdivision>
- <subdivision type="ieg" draft="contributed">Galway</subdivision>
- <subdivision type="ieke" draft="contributed">Kildare</subdivision>
- <subdivision type="iekk" draft="contributed">Kilkenny</subdivision>
- <subdivision type="ieky" draft="contributed">Kerry</subdivision>
- <subdivision type="iel" draft="contributed">Leinster</subdivision>
- <subdivision type="ield" draft="contributed">Longford</subdivision>
- <subdivision type="ielh" draft="contributed">Louth</subdivision>
- <subdivision type="ielk" draft="contributed">Limerick</subdivision>
- <subdivision type="ielm" draft="contributed">Leitrim</subdivision>
- <subdivision type="iels" draft="contributed">Laois</subdivision>
- <subdivision type="iem" draft="contributed">Munster</subdivision>
- <subdivision type="iemh" draft="contributed">Meath</subdivision>
- <subdivision type="iemn" draft="contributed">Monaghan</subdivision>
- <subdivision type="iemo" draft="contributed">Mayo</subdivision>
- <subdivision type="ieoy" draft="contributed">Offaly</subdivision>
- <subdivision type="iern" draft="contributed">Roscommon</subdivision>
- <subdivision type="ieso" draft="contributed">Sligo</subdivision>
- <subdivision type="ieta" draft="contributed">Tipperary</subdivision>
- <subdivision type="ieu" draft="contributed">Ulster</subdivision>
- <subdivision type="iewd" draft="contributed">Waterford</subdivision>
- <subdivision type="iewh" draft="contributed">Westmeath</subdivision>
- <subdivision type="ieww" draft="contributed">Wicklow</subdivision>
- <subdivision type="iewx" draft="contributed">Wexford</subdivision>
- <subdivision type="ild" draft="contributed">Sørdistriktet</subdivision>
- <subdivision type="ilha" draft="contributed">Haifa-distriktet</subdivision>
- <subdivision type="iljm" draft="contributed">Jerusalem-distriktet</subdivision>
- <subdivision type="ilm" draft="contributed">Sentraldistriktet</subdivision>
- <subdivision type="ilta" draft="contributed">Tel Aviv-distriktet</subdivision>
- <subdivision type="ilz" draft="contributed">Norddistriktet</subdivision>
- <subdivision type="inan" draft="contributed">Andamanene og Nikobarene</subdivision>
- <subdivision type="inap" draft="contributed">Andhra Pradesh</subdivision>
- <subdivision type="inar" draft="contributed">Arunachal Pradesh</subdivision>
- <subdivision type="inas" draft="contributed">Assam</subdivision>
- <subdivision type="inbr" draft="contributed">Bihar</subdivision>
- <subdivision type="inch" draft="contributed">Chandigarh</subdivision>
- <subdivision type="inct" draft="contributed">Chhattisgarh</subdivision>
- <subdivision type="indd" draft="contributed">Daman og Diu</subdivision>
- <subdivision type="indl" draft="contributed">Delhi</subdivision>
- <subdivision type="indn" draft="contributed">Dadra og Nagar Haveli</subdivision>
- <subdivision type="inga" draft="contributed">Goa</subdivision>
- <subdivision type="ingj" draft="contributed">Gujarat</subdivision>
- <subdivision type="inhp" draft="contributed">Himachal Pradesh</subdivision>
- <subdivision type="inhr" draft="contributed">Haryana</subdivision>
- <subdivision type="injh" draft="contributed">Jharkhand</subdivision>
- <subdivision type="injk" draft="contributed">Jammu og Kashmir</subdivision>
- <subdivision type="inka" draft="contributed">Karnataka</subdivision>
- <subdivision type="inkl" draft="contributed">Kerala</subdivision>
- <subdivision type="inld" draft="contributed">Lakkadivene</subdivision>
- <subdivision type="inmh" draft="contributed">Maharashtra</subdivision>
- <subdivision type="inml" draft="contributed">Meghalaya</subdivision>
- <subdivision type="inmn" draft="contributed">Manipur</subdivision>
- <subdivision type="inmp" draft="contributed">Madhya Pradesh</subdivision>
- <subdivision type="inmz" draft="contributed">Mizoram</subdivision>
- <subdivision type="innl" draft="contributed">Nagaland</subdivision>
- <subdivision type="inor" draft="contributed">Odisha</subdivision>
- <subdivision type="inpb" draft="contributed">Punjab</subdivision>
- <subdivision type="inpy" draft="contributed">Puducherry</subdivision>
- <subdivision type="inrj" draft="contributed">Rajasthan</subdivision>
- <subdivision type="insk" draft="contributed">Sikkim</subdivision>
- <subdivision type="intg" draft="contributed">Telangana</subdivision>
- <subdivision type="intn" draft="contributed">Tamil Nadu</subdivision>
- <subdivision type="intr" draft="contributed">Tripura</subdivision>
- <subdivision type="inup" draft="contributed">Uttar Pradesh</subdivision>
- <subdivision type="inut" draft="contributed">Uttarakhand</subdivision>
- <subdivision type="inwb" draft="contributed">Vest-Bengal</subdivision>
- <subdivision type="iqan" draft="contributed">Anbar</subdivision>
- <subdivision type="iqar" draft="contributed">Arbil</subdivision>
- <subdivision type="iqba" draft="contributed">Basra</subdivision>
- <subdivision type="iqbb" draft="contributed">Babil</subdivision>
- <subdivision type="iqbg" draft="contributed">Bagdad</subdivision>
- <subdivision type="iqda" draft="contributed">Dahuk</subdivision>
- <subdivision type="iqdi" draft="contributed">Diyala</subdivision>
- <subdivision type="iqdq" draft="contributed">Dhi Qar</subdivision>
- <subdivision type="iqka" draft="contributed">Karbala</subdivision>
- <subdivision type="iqki" draft="contributed">Kirkuk</subdivision>
- <subdivision type="iqma" draft="contributed">Maysan</subdivision>
- <subdivision type="iqmu" draft="contributed">Muthanna</subdivision>
- <subdivision type="iqna" draft="contributed">Najaf</subdivision>
- <subdivision type="iqni" draft="contributed">Ninawa</subdivision>
- <subdivision type="iqqa" draft="contributed">Al-Qadisiyya</subdivision>
- <subdivision type="iqsd" draft="contributed">Salah ad Din</subdivision>
- <subdivision type="iqsu" draft="contributed">Suleimania</subdivision>
- <subdivision type="iqwa" draft="contributed">Wasit</subdivision>
- <subdivision type="ir01" draft="contributed">Øst-Aserbajdsjan</subdivision>
- <subdivision type="ir02" draft="contributed">Vest-Aserbajdsjan</subdivision>
- <subdivision type="ir03" draft="contributed">Ardabil</subdivision>
- <subdivision type="ir04" draft="contributed">Isfahan (provins)</subdivision>
- <subdivision type="ir05" draft="contributed">Ilam</subdivision>
- <subdivision type="ir06" draft="contributed">Bushehr</subdivision>
- <subdivision type="ir07" draft="contributed">Teheran</subdivision>
- <subdivision type="ir08" draft="contributed">Chahar Mahaal og Bakhtiari</subdivision>
- <subdivision type="ir10" draft="contributed">Khuzestan</subdivision>
- <subdivision type="ir11" draft="contributed">Zanjan</subdivision>
- <subdivision type="ir12" draft="contributed">Semnan</subdivision>
- <subdivision type="ir13" draft="contributed">Sistan og Balutsjistan</subdivision>
- <subdivision type="ir14" draft="contributed">Fars</subdivision>
- <subdivision type="ir15" draft="contributed">Kermān</subdivision>
- <subdivision type="ir16" draft="contributed">Kurdistan</subdivision>
- <subdivision type="ir17" draft="contributed">Kermanshah</subdivision>
- <subdivision type="ir18" draft="contributed">Kohkiluyeh og Buyer Ahmad</subdivision>
- <subdivision type="ir19" draft="contributed">Gilan</subdivision>
- <subdivision type="ir20" draft="contributed">Luristan</subdivision>
- <subdivision type="ir21" draft="contributed">Mazandaran</subdivision>
- <subdivision type="ir22" draft="contributed">Markazi</subdivision>
- <subdivision type="ir23" draft="contributed">Hormozgan</subdivision>
- <subdivision type="ir24" draft="contributed">Hamadan</subdivision>
- <subdivision type="ir25" draft="contributed">Yazd</subdivision>
- <subdivision type="ir26" draft="contributed">Qom</subdivision>
- <subdivision type="ir27" draft="contributed">Golestan</subdivision>
- <subdivision type="ir28" draft="contributed">Qazvin (provins)</subdivision>
- <subdivision type="ir29" draft="contributed">Sør-Khorasan</subdivision>
- <subdivision type="ir30" draft="contributed">Razavi-Khorasan</subdivision>
- <subdivision type="ir31" draft="contributed">Nord-Khorasan</subdivision>
- <subdivision type="ir32" draft="contributed">Alborz Kommune</subdivision>
- <subdivision type="is1" draft="contributed">Höfuðborgarsvæðið</subdivision>
- <subdivision type="is2" draft="contributed">Suðurnes</subdivision>
- <subdivision type="is3" draft="contributed">Vesturland</subdivision>
- <subdivision type="is4" draft="contributed">Vestfirðir</subdivision>
- <subdivision type="is5" draft="contributed">Norðurland vestra</subdivision>
- <subdivision type="is6" draft="contributed">Norðurland eystra</subdivision>
- <subdivision type="is7" draft="contributed">Austurland</subdivision>
- <subdivision type="is8" draft="contributed">Suðurland</subdivision>
- <subdivision type="it21" draft="contributed">Piemonte</subdivision>
- <subdivision type="it23" draft="contributed">Aostadalen</subdivision>
- <subdivision type="it25" draft="contributed">Lombardia</subdivision>
- <subdivision type="it32" draft="contributed">Trentino-Alto Adige</subdivision>
- <subdivision type="it34" draft="contributed">Veneto</subdivision>
- <subdivision type="it36" draft="contributed">Friuli-Venezia Giulia</subdivision>
- <subdivision type="it42" draft="contributed">Liguria</subdivision>
- <subdivision type="it45" draft="contributed">Emilia-Romagna</subdivision>
- <subdivision type="it52" draft="contributed">Toscana</subdivision>
- <subdivision type="it55" draft="contributed">Umbria</subdivision>
- <subdivision type="it57" draft="contributed">Marche</subdivision>
- <subdivision type="it62" draft="contributed">Latium</subdivision>
- <subdivision type="it65" draft="contributed">Abruzzo</subdivision>
- <subdivision type="it67" draft="contributed">Molise</subdivision>
- <subdivision type="it72" draft="contributed">Campania</subdivision>
- <subdivision type="it75" draft="contributed">Puglia</subdivision>
- <subdivision type="it77" draft="contributed">Basilicata</subdivision>
- <subdivision type="it78" draft="contributed">Calabria</subdivision>
- <subdivision type="it82" draft="contributed">Sicilia</subdivision>
- <subdivision type="it88" draft="contributed">Sardinia</subdivision>
- <subdivision type="itag" draft="contributed">Provinsen Agrigento</subdivision>
- <subdivision type="ital" draft="contributed">Provinsen Alessandria</subdivision>
- <subdivision type="itan" draft="contributed">Provinsen Ancona</subdivision>
- <subdivision type="itao" draft="contributed">Aosta</subdivision>
- <subdivision type="itap" draft="contributed">Provinsen Ascoli Piceno</subdivision>
- <subdivision type="itaq" draft="contributed">Provinsen L’Aquila</subdivision>
- <subdivision type="itar" draft="contributed">Arezzo</subdivision>
- <subdivision type="itat" draft="contributed">Provinsen Asti</subdivision>
- <subdivision type="itav" draft="contributed">Provinsen Avellino</subdivision>
- <subdivision type="itba" draft="contributed">Provinsen Bari</subdivision>
- <subdivision type="itbg" draft="contributed">Provinsen Bergamo</subdivision>
- <subdivision type="itbi" draft="contributed">Provinsen Biella</subdivision>
- <subdivision type="itbl" draft="contributed">Provinsen Belluno</subdivision>
- <subdivision type="itbn" draft="contributed">Provinsen Benevento</subdivision>
- <subdivision type="itbo" draft="contributed">Provinsen Bologna</subdivision>
- <subdivision type="itbr" draft="contributed">Provinsen Brindisi</subdivision>
- <subdivision type="itbs" draft="contributed">Provinsen Brescia</subdivision>
- <subdivision type="itbt" draft="contributed">Provinsen Barletta-Andria-Trani</subdivision>
- <subdivision type="itbz" draft="contributed">Sør-Tirol</subdivision>
- <subdivision type="itca" draft="contributed">Provinsen Cagliari</subdivision>
- <subdivision type="itcb" draft="contributed">Provinsen Campobasso</subdivision>
- <subdivision type="itce" draft="contributed">Provinsen Caserta</subdivision>
- <subdivision type="itch" draft="contributed">Provinsen Chieti</subdivision>
- <subdivision type="itci" draft="contributed">Provinsen Carbonia-Iglesias</subdivision>
- <subdivision type="itcl" draft="contributed">Provinsen Caltanissetta</subdivision>
- <subdivision type="itcn" draft="contributed">Provinsen Cuneo</subdivision>
- <subdivision type="itco" draft="contributed">Provinsen Como</subdivision>
- <subdivision type="itcr" draft="contributed">Provinsen Cremona</subdivision>
- <subdivision type="itcs" draft="contributed">Provinsen Cosenza</subdivision>
- <subdivision type="itct" draft="contributed">Provinsen Catania</subdivision>
- <subdivision type="itcz" draft="contributed">Provinsen Catanzaro</subdivision>
- <subdivision type="iten" draft="contributed">Provinsen Enna</subdivision>
- <subdivision type="itfc" draft="contributed">Provinsen Forlì-Cesena</subdivision>
- <subdivision type="itfe" draft="contributed">Provinsen Ferrara</subdivision>
- <subdivision type="itfg" draft="contributed">Provinsen Foggia</subdivision>
- <subdivision type="itfi" draft="contributed">Firenze</subdivision>
- <subdivision type="itfm" draft="contributed">Provinsen Fermo</subdivision>
- <subdivision type="itfr" draft="contributed">Provinsen Frosinone</subdivision>
- <subdivision type="itge" draft="contributed">Genoa kommune</subdivision>
- <subdivision type="itgo" draft="contributed">Provinsen Gorizia</subdivision>
- <subdivision type="itgr" draft="contributed">Grosseto</subdivision>
- <subdivision type="itim" draft="contributed">Provinsen Imperia</subdivision>
- <subdivision type="itis" draft="contributed">Provinsen Isernia</subdivision>
- <subdivision type="itkr" draft="contributed">Provinsen Crotone</subdivision>
- <subdivision type="itlc" draft="contributed">Provinsen Lecco</subdivision>
- <subdivision type="itle" draft="contributed">Provinsen Lecce</subdivision>
- <subdivision type="itli" draft="contributed">Livorno</subdivision>
- <subdivision type="itlo" draft="contributed">Provinsen Lodi</subdivision>
- <subdivision type="itlt" draft="contributed">Provinsen Latina</subdivision>
- <subdivision type="itlu" draft="contributed">Lucca</subdivision>
- <subdivision type="itmb" draft="contributed">Provinsen Monza og Brianza</subdivision>
- <subdivision type="itmc" draft="contributed">Provinsen Macerata</subdivision>
- <subdivision type="itme" draft="contributed">Provinsen Messina</subdivision>
- <subdivision type="itmi" draft="contributed">Provinsen Milano</subdivision>
- <subdivision type="itmn" draft="contributed">Provinsen Mantova</subdivision>
- <subdivision type="itmo" draft="contributed">Provinsen Modena</subdivision>
- <subdivision type="itms" draft="contributed">Massa-Carrara</subdivision>
- <subdivision type="itmt" draft="contributed">Provinsen Matera</subdivision>
- <subdivision type="itna" draft="contributed">Provinsen Napoli</subdivision>
- <subdivision type="itno" draft="contributed">Provinsen Novara</subdivision>
- <subdivision type="itnu" draft="contributed">Provinsen Nuoro</subdivision>
- <subdivision type="itog" draft="contributed">Provinsen Ogliastra</subdivision>
- <subdivision type="itor" draft="contributed">Provinsen Oristano</subdivision>
- <subdivision type="itot" draft="contributed">Provinsen Olbia-Tempio</subdivision>
- <subdivision type="itpa" draft="contributed">Provinsen Palermo</subdivision>
- <subdivision type="itpc" draft="contributed">Provinsen Piacenza</subdivision>
- <subdivision type="itpd" draft="contributed">Provinsen Padova</subdivision>
- <subdivision type="itpe" draft="contributed">Provinsen Pescara</subdivision>
- <subdivision type="itpg" draft="contributed">Provinsen Perugia</subdivision>
- <subdivision type="itpi" draft="contributed">Pisa</subdivision>
- <subdivision type="itpn" draft="contributed">Provinsen Pordenone</subdivision>
- <subdivision type="itpo" draft="contributed">Prato</subdivision>
- <subdivision type="itpr" draft="contributed">Provinsen Parma</subdivision>
- <subdivision type="itpt" draft="contributed">Pistoia</subdivision>
- <subdivision type="itpu" draft="contributed">Provinsen Pesaro og Urbino</subdivision>
- <subdivision type="itpv" draft="contributed">Provinsen Pavia</subdivision>
- <subdivision type="itpz" draft="contributed">Provinsen Potenza</subdivision>
- <subdivision type="itra" draft="contributed">Provinsen Ravenna</subdivision>
- <subdivision type="itrc" draft="contributed">Provinsen Reggio Calabria</subdivision>
- <subdivision type="itre" draft="contributed">Provinsen Reggio Emilia</subdivision>
- <subdivision type="itrg" draft="contributed">Provinsen Ragusa</subdivision>
- <subdivision type="itri" draft="contributed">Provinsen Rieti</subdivision>
- <subdivision type="itrm" draft="contributed">Provinsen Roma</subdivision>
- <subdivision type="itrn" draft="contributed">Provinsen Rimini</subdivision>
- <subdivision type="itro" draft="contributed">Provinsen Rovigo</subdivision>
- <subdivision type="itsa" draft="contributed">Provinsen Salerno</subdivision>
- <subdivision type="itsi" draft="contributed">Siena</subdivision>
- <subdivision type="itso" draft="contributed">Provinsen Sondrio</subdivision>
- <subdivision type="itsp" draft="contributed">Provinsen La Spezia</subdivision>
- <subdivision type="itsr" draft="contributed">Provinsen Siracusa</subdivision>
- <subdivision type="itss" draft="contributed">Provinsen Sassari</subdivision>
- <subdivision type="itsv" draft="contributed">Provinsen Savona</subdivision>
- <subdivision type="itta" draft="contributed">Provinsen Taranto</subdivision>
- <subdivision type="itte" draft="contributed">Provinsen Teramo</subdivision>
- <subdivision type="ittn" draft="contributed">Trentino</subdivision>
- <subdivision type="itto" draft="contributed">Provinsen Torino</subdivision>
- <subdivision type="ittp" draft="contributed">Provinsen Trapani</subdivision>
- <subdivision type="ittr" draft="contributed">Provinsen Terni</subdivision>
- <subdivision type="itts" draft="contributed">Provinsen Trieste</subdivision>
- <subdivision type="ittv" draft="contributed">Provinsen Treviso</subdivision>
- <subdivision type="itud" draft="contributed">Provinsen Udine</subdivision>
- <subdivision type="itva" draft="contributed">Provinsen Varese</subdivision>
- <subdivision type="itvb" draft="contributed">Provinsen Verbano Cusio Ossola</subdivision>
- <subdivision type="itvc" draft="contributed">Provinsen Vercelli</subdivision>
- <subdivision type="itve" draft="contributed">Provinsen Venezia</subdivision>
- <subdivision type="itvi" draft="contributed">Provinsen Vicenza</subdivision>
- <subdivision type="itvr" draft="contributed">Provinsen Verona</subdivision>
- <subdivision type="itvs" draft="contributed">Provinsen Medio Campidano</subdivision>
- <subdivision type="itvt" draft="contributed">Provinsen Viterbo</subdivision>
- <subdivision type="itvv" draft="contributed">Provinsen Vibo Valentia</subdivision>
- <subdivision type="jm01" draft="contributed">Kingston prestegjeld</subdivision>
- <subdivision type="jm02" draft="contributed">Saint Andrew prestegjeld (Jamaica)</subdivision>
- <subdivision type="jm03" draft="contributed">Saint Thomas prestegjeld</subdivision>
- <subdivision type="jm04" draft="contributed">Portland prestegjeld</subdivision>
- <subdivision type="jm05" draft="contributed">Saint Mary prestegjeld</subdivision>
- <subdivision type="jm06" draft="contributed">Saint Ann prestegjeld</subdivision>
- <subdivision type="jm07" draft="contributed">Trelawny prestegjeld</subdivision>
- <subdivision type="jm08" draft="contributed">Saint James prestegjeld</subdivision>
- <subdivision type="jm09" draft="contributed">Hanover prestegjeld</subdivision>
- <subdivision type="jm10" draft="contributed">Westmoreland prestegjeld</subdivision>
- <subdivision type="jm11" draft="contributed">Saint Elizabeth prestegjeld</subdivision>
- <subdivision type="jm12" draft="contributed">Manchester prestegjeld</subdivision>
- <subdivision type="jm13" draft="contributed">Clarendon prestegjeld</subdivision>
- <subdivision type="jm14" draft="contributed">Saint Catherine prestegjeld</subdivision>
- <subdivision type="joaj" draft="contributed">Ailoun</subdivision>
- <subdivision type="joam" draft="contributed">Amman Governorate</subdivision>
- <subdivision type="joaq" draft="contributed">Aqaba Givernorate</subdivision>
- <subdivision type="joat" draft="contributed">Tafilah Governorate</subdivision>
- <subdivision type="joaz" draft="contributed">Zarqa</subdivision>
- <subdivision type="joba" draft="contributed">Balqa</subdivision>
- <subdivision type="joir" draft="contributed">Irbid</subdivision>
- <subdivision type="joja" draft="contributed">Jerash</subdivision>
- <subdivision type="joka" draft="contributed">Karak Governorate</subdivision>
- <subdivision type="joma" draft="contributed">Magraq</subdivision>
- <subdivision type="jomd" draft="contributed">Madaba Governorate</subdivision>
- <subdivision type="jomn" draft="contributed">Maan Governorate</subdivision>
- <subdivision type="jp01" draft="contributed">Hokkaido</subdivision>
- <subdivision type="jp02" draft="contributed">Aomori</subdivision>
- <subdivision type="jp03" draft="contributed">Iwate</subdivision>
- <subdivision type="jp04" draft="contributed">Miyagi</subdivision>
- <subdivision type="jp05" draft="contributed">Akita</subdivision>
- <subdivision type="jp06" draft="contributed">Yamagata</subdivision>
- <subdivision type="jp07" draft="contributed">Fukushima</subdivision>
- <subdivision type="jp08" draft="contributed">Ibaraki</subdivision>
- <subdivision type="jp09" draft="contributed">Tochigi</subdivision>
- <subdivision type="jp10" draft="contributed">Gunma</subdivision>
- <subdivision type="jp11" draft="contributed">Saitama</subdivision>
- <subdivision type="jp12" draft="contributed">Chiba</subdivision>
- <subdivision type="jp13" draft="contributed">Tokyo</subdivision>
- <subdivision type="jp14" draft="contributed">Kanagawa</subdivision>
- <subdivision type="jp15" draft="contributed">Niigata</subdivision>
- <subdivision type="jp16" draft="contributed">Toyama</subdivision>
- <subdivision type="jp17" draft="contributed">Ishikawa</subdivision>
- <subdivision type="jp18" draft="contributed">Fukui</subdivision>
- <subdivision type="jp19" draft="contributed">Yamanashi</subdivision>
- <subdivision type="jp20" draft="contributed">Nagano</subdivision>
- <subdivision type="jp21" draft="contributed">Gifu</subdivision>
- <subdivision type="jp22" draft="contributed">Shizuoka</subdivision>
- <subdivision type="jp23" draft="contributed">Aichi</subdivision>
- <subdivision type="jp24" draft="contributed">Mie</subdivision>
- <subdivision type="jp25" draft="contributed">Shiga</subdivision>
- <subdivision type="jp26" draft="contributed">Kyoto</subdivision>
- <subdivision type="jp27" draft="contributed">Osaka</subdivision>
- <subdivision type="jp28" draft="contributed">Hyōgo</subdivision>
- <subdivision type="jp29" draft="contributed">Nara</subdivision>
- <subdivision type="jp30" draft="contributed">Wakayama</subdivision>
- <subdivision type="jp31" draft="contributed">Tottori</subdivision>
- <subdivision type="jp32" draft="contributed">Shimane</subdivision>
- <subdivision type="jp33" draft="contributed">Okayama</subdivision>
- <subdivision type="jp34" draft="contributed">Hiroshima</subdivision>
- <subdivision type="jp35" draft="contributed">Yamaguchi</subdivision>
- <subdivision type="jp36" draft="contributed">Tokushima</subdivision>
- <subdivision type="jp37" draft="contributed">Kagawa</subdivision>
- <subdivision type="jp38" draft="contributed">Ehime</subdivision>
- <subdivision type="jp39" draft="contributed">Kōchi</subdivision>
- <subdivision type="jp40" draft="contributed">Fukuoka</subdivision>
- <subdivision type="jp41" draft="contributed">Saga</subdivision>
- <subdivision type="jp42" draft="contributed">Nagasaki</subdivision>
- <subdivision type="jp43" draft="contributed">Kumamoto</subdivision>
- <subdivision type="jp44" draft="contributed">Ōita</subdivision>
- <subdivision type="jp45" draft="contributed">Miyazaki</subdivision>
- <subdivision type="jp46" draft="contributed">Kagoshima</subdivision>
- <subdivision type="jp47" draft="contributed">Okinawa</subdivision>
- <subdivision type="ke01" draft="contributed">Baringo fylke</subdivision>
- <subdivision type="ke02" draft="contributed">Bomet (distrikt)</subdivision>
- <subdivision type="ke03" draft="contributed">Bungoma fylke</subdivision>
- <subdivision type="ke04" draft="contributed">Busia fylke</subdivision>
- <subdivision type="ke05" draft="contributed">Elgeyo-Marakwet fylke</subdivision>
- <subdivision type="ke06" draft="contributed">Embu fylke</subdivision>
- <subdivision type="ke07" draft="contributed">Garissa (distrikt)</subdivision>
- <subdivision type="ke08" draft="contributed">Homa Bay fylke</subdivision>
- <subdivision type="ke09" draft="contributed">Isiolo fylke</subdivision>
- <subdivision type="ke10" draft="contributed">Kajiado fylke</subdivision>
- <subdivision type="ke11" draft="contributed">Kakamega fylke</subdivision>
- <subdivision type="ke12" draft="contributed">Kericho fylke</subdivision>
- <subdivision type="ke13" draft="contributed">Kiambu fylke</subdivision>
- <subdivision type="ke14" draft="contributed">Kilifi fylke</subdivision>
- <subdivision type="ke15" draft="contributed">Kirinyaga fylke</subdivision>
- <subdivision type="ke16" draft="contributed">Kisii (distrikt)</subdivision>
- <subdivision type="ke17" draft="contributed">Kisumu fylke</subdivision>
- <subdivision type="ke18" draft="contributed">Kitui fylke</subdivision>
- <subdivision type="ke19" draft="contributed">Kwale fylke</subdivision>
- <subdivision type="ke20" draft="contributed">Laikipia fylke</subdivision>
- <subdivision type="ke21" draft="contributed">Lamu fylke</subdivision>
- <subdivision type="ke22" draft="contributed">Machakos fylke</subdivision>
- <subdivision type="ke23" draft="contributed">Makueni fylke</subdivision>
- <subdivision type="ke24" draft="contributed">Mandera fylke</subdivision>
- <subdivision type="ke25" draft="contributed">Marsabit fylke</subdivision>
- <subdivision type="ke26" draft="contributed">Meru fylke</subdivision>
- <subdivision type="ke27" draft="contributed">Migori fylke</subdivision>
- <subdivision type="ke28" draft="contributed">Mombasa fylke</subdivision>
- <subdivision type="ke30" draft="contributed">Nairobi fylke</subdivision>
- <subdivision type="ke31" draft="contributed">Nakuru fylke</subdivision>
- <subdivision type="ke32" draft="contributed">Nandi fylke</subdivision>
- <subdivision type="ke33" draft="contributed">Narok fylke</subdivision>
- <subdivision type="ke34" draft="contributed">Nyamira fylke</subdivision>
- <subdivision type="ke35" draft="contributed">Nyandarua fylke</subdivision>
- <subdivision type="ke36" draft="contributed">Nyeri fylke</subdivision>
- <subdivision type="ke37" draft="contributed">Samburu fylke</subdivision>
- <subdivision type="ke38" draft="contributed">Siaya fylke</subdivision>
- <subdivision type="ke39" draft="contributed">Taita-Taveta fylke</subdivision>
- <subdivision type="ke40" draft="contributed">Tana River fylke</subdivision>
- <subdivision type="ke41" draft="contributed">Tharaka-Nithi fylke</subdivision>
- <subdivision type="ke42" draft="contributed">Trans-Nzoia fylke</subdivision>
- <subdivision type="ke43" draft="contributed">Turkana</subdivision>
- <subdivision type="ke44" draft="contributed">Uasin Gishu fylke</subdivision>
- <subdivision type="ke45" draft="contributed">Vihiga fylke</subdivision>
- <subdivision type="ke46" draft="contributed">Wajir fylke</subdivision>
- <subdivision type="ke47" draft="contributed">West Pokot</subdivision>
- <subdivision type="kgb" draft="contributed">Batken region</subdivision>
- <subdivision type="kgc" draft="contributed">Tjuj</subdivision>
- <subdivision type="kggb" draft="contributed">Bisjkek</subdivision>
- <subdivision type="kggo" draft="contributed">Osj</subdivision>
- <subdivision type="kgj" draft="contributed">Jalal-Abad region</subdivision>
- <subdivision type="kgn" draft="contributed">Naryn</subdivision>
- <subdivision type="kgo" draft="contributed">Osh region</subdivision>
- <subdivision type="kgt" draft="contributed">Talas region</subdivision>
- <subdivision type="kgy" draft="contributed">Ysyk-Köl</subdivision>
- <subdivision type="kh1" draft="contributed">Banteay Meancheay</subdivision>
- <subdivision type="kh2" draft="contributed">Battambang (provins)</subdivision>
- <subdivision type="kh3" draft="contributed">Kampong Cham</subdivision>
- <subdivision type="kh4" draft="contributed">Kampong Chhnang</subdivision>
- <subdivision type="kh5" draft="contributed">Kampong Spoe</subdivision>
- <subdivision type="kh6" draft="contributed">Kampong Thom</subdivision>
- <subdivision type="kh7" draft="contributed">Kampot</subdivision>
- <subdivision type="kh8" draft="contributed">Kandal</subdivision>
- <subdivision type="kh9" draft="contributed">Koh Kong</subdivision>
- <subdivision type="kh10" draft="contributed">Kratie</subdivision>
- <subdivision type="kh11" draft="contributed">Mondulkiri</subdivision>
- <subdivision type="kh12" draft="contributed">Phnom Penh</subdivision>
- <subdivision type="kh13" draft="contributed">Preah Vihear</subdivision>
- <subdivision type="kh14" draft="contributed">Prey Veng</subdivision>
- <subdivision type="kh15" draft="contributed">Pursat</subdivision>
- <subdivision type="kh16" draft="contributed">Ratanakiri</subdivision>
- <subdivision type="kh17" draft="contributed">Siem Reap</subdivision>
- <subdivision type="kh18" draft="contributed">Sihanoukville</subdivision>
- <subdivision type="kh19" draft="contributed">Stung Treng (provins)</subdivision>
- <subdivision type="kh20" draft="contributed">Svay Rieng (provins)</subdivision>
- <subdivision type="kh21" draft="contributed">Takeo</subdivision>
- <subdivision type="kh22" draft="contributed">Oddar Meancheay</subdivision>
- <subdivision type="kh23" draft="contributed">Kep</subdivision>
- <subdivision type="kh24" draft="contributed">Pailin</subdivision>
- <subdivision type="kig" draft="contributed">Gilbertøyene</subdivision>
- <subdivision type="kil" draft="contributed">Linjeøyene</subdivision>
- <subdivision type="kip" draft="contributed">Phoenixøyene</subdivision>
- <subdivision type="kma" draft="contributed">Anjouan</subdivision>
- <subdivision type="kmg" draft="contributed">Grande Comore</subdivision>
- <subdivision type="kmm" draft="contributed">Mohéli</subdivision>
- <subdivision type="kn01" draft="contributed">Christ Church Nichola Town prestegjeld</subdivision>
- <subdivision type="kn02" draft="contributed">Saint Anne Sandy Point prestegjeld</subdivision>
- <subdivision type="kn03" draft="contributed">Saint George Basseterre prestegjeld</subdivision>
- <subdivision type="kn04" draft="contributed">Saint George Gingerland prestegjeld</subdivision>
- <subdivision type="kn05" draft="contributed">Saint James Windward prestegjeld</subdivision>
- <subdivision type="kn06" draft="contributed">Saint John Capisterre prestegjeld</subdivision>
- <subdivision type="kn07" draft="contributed">Saint John Figtree prestegjeld</subdivision>
- <subdivision type="kn08" draft="contributed">Saint Mary Cayon prestegjeld</subdivision>
- <subdivision type="kn09" draft="contributed">Saint Paul Capisterre prestegjeld</subdivision>
- <subdivision type="kn10" draft="contributed">Saint Paul Charlestown prestegjeld</subdivision>
- <subdivision type="kn11" draft="contributed">Saint Peter Basseterre prestegjeld</subdivision>
- <subdivision type="kn12" draft="contributed">Saint Thomas Lowland prestegjeld</subdivision>
- <subdivision type="kn13" draft="contributed">Saint Thomas Middle Island prestegjeld</subdivision>
- <subdivision type="kn15" draft="contributed">Trinity Palmetto Point prestegjeld</subdivision>
- <subdivision type="knk" draft="contributed">Saint Kitts</subdivision>
- <subdivision type="knn" draft="contributed">Nevis</subdivision>
- <subdivision type="kp01" draft="contributed">Pyongyang</subdivision>
- <subdivision type="kp02" draft="contributed">Sør-Pyongan</subdivision>
- <subdivision type="kp03" draft="contributed">Nord-Pyongan</subdivision>
- <subdivision type="kp04" draft="contributed">Chagang</subdivision>
- <subdivision type="kp05" draft="contributed">Sør-Hwanghae</subdivision>
- <subdivision type="kp06" draft="contributed">Nord-Hwanghae</subdivision>
- <subdivision type="kp07" draft="contributed">Kangwon</subdivision>
- <subdivision type="kp08" draft="contributed">Sør-Hamgyong</subdivision>
- <subdivision type="kp09" draft="contributed">Nord-Hamgyong</subdivision>
- <subdivision type="kp10" draft="contributed">Ryanggang</subdivision>
- <subdivision type="kp13" draft="contributed">Rason</subdivision>
- <subdivision type="kp14" draft="contributed">Nampo</subdivision>
- <subdivision type="kr11" draft="contributed">Seoul</subdivision>
- <subdivision type="kr26" draft="contributed">Busan</subdivision>
- <subdivision type="kr27" draft="contributed">Daegu</subdivision>
- <subdivision type="kr28" draft="contributed">Incheon</subdivision>
- <subdivision type="kr29" draft="contributed">Gwangju</subdivision>
- <subdivision type="kr30" draft="contributed">Daejeon</subdivision>
- <subdivision type="kr31" draft="contributed">Ulsan</subdivision>
- <subdivision type="kr41" draft="contributed">Gyeonggi</subdivision>
- <subdivision type="kr42" draft="contributed">Gangwon</subdivision>
- <subdivision type="kr43" draft="contributed">Nord-Chungcheong</subdivision>
- <subdivision type="kr44" draft="contributed">Sør-Chungcheong</subdivision>
- <subdivision type="kr45" draft="contributed">Nord-Jeolla</subdivision>
- <subdivision type="kr46" draft="contributed">Sør-Jeolla</subdivision>
- <subdivision type="kr47" draft="contributed">Nord-Gyeongsang</subdivision>
- <subdivision type="kr48" draft="contributed">Sør-Gyeongsang</subdivision>
- <subdivision type="kr49" draft="contributed">Jeju</subdivision>
- <subdivision type="kr50" draft="contributed">Sejong by</subdivision>
- <subdivision type="kwah" draft="contributed">Al Ahmadi Governorate</subdivision>
- <subdivision type="kwfa" draft="contributed">Al Farwaniyah</subdivision>
- <subdivision type="kwha" draft="contributed">Hawalli</subdivision>
- <subdivision type="kwku" draft="contributed">Al Asimah</subdivision>
- <subdivision type="kwmu" draft="contributed">Mubarak Al-Kabeer</subdivision>
- <subdivision type="kzakm" draft="contributed">Akmola region</subdivision>
- <subdivision type="kzakt" draft="contributed">Aqtöbe</subdivision>
- <subdivision type="kzala" draft="contributed">Almaty</subdivision>
- <subdivision type="kzalm" draft="contributed">Almaty region</subdivision>
- <subdivision type="kzast" draft="contributed">Astana</subdivision>
- <subdivision type="kzaty" draft="contributed">Atyrau oblast</subdivision>
- <subdivision type="kzbay" draft="contributed">Bajkonur</subdivision>
- <subdivision type="kzkar" draft="contributed">Karagandy region</subdivision>
- <subdivision type="kzkus" draft="contributed">Kostanay region</subdivision>
- <subdivision type="kzkzy" draft="contributed">Qızılorda</subdivision>
- <subdivision type="kzman" draft="contributed">Mangystau oblast</subdivision>
- <subdivision type="kzpav" draft="contributed">Pavlodar provins</subdivision>
- <subdivision type="kzsev" draft="contributed">Nord Kazakhstan provins</subdivision>
- <subdivision type="kzvos" draft="contributed">Vest Kazakhstan region</subdivision>
- <subdivision type="kzyuz" draft="contributed">Sør Kazakhstan region</subdivision>
- <subdivision type="kzzap" draft="contributed">Vest-Kasakhstan oblast</subdivision>
- <subdivision type="laat" draft="contributed">Attapeu</subdivision>
- <subdivision type="labk" draft="contributed">Bokeo</subdivision>
- <subdivision type="labl" draft="contributed">Bolikhamsai</subdivision>
- <subdivision type="lach" draft="contributed">Champasack</subdivision>
- <subdivision type="laho" draft="contributed">Hua Phan</subdivision>
- <subdivision type="lakh" draft="contributed">Khammuan</subdivision>
- <subdivision type="lalm" draft="contributed">Luang Namtha</subdivision>
- <subdivision type="lalp" draft="contributed">Luang Prabang</subdivision>
- <subdivision type="laou" draft="contributed">Udomxai</subdivision>
- <subdivision type="laph" draft="contributed">Phongsali</subdivision>
- <subdivision type="lasl" draft="contributed">Saravane</subdivision>
- <subdivision type="lasv" draft="contributed">Savannakhet</subdivision>
- <subdivision type="lavi" draft="contributed">Vientiane</subdivision>
- <subdivision type="laxa" draft="contributed">Sainyabuli</subdivision>
- <subdivision type="laxe" draft="contributed">Sekong</subdivision>
- <subdivision type="laxi" draft="contributed">Xieng Khouang</subdivision>
- <subdivision type="lbas" draft="contributed">Nord-Libanon</subdivision>
- <subdivision type="lbba" draft="contributed">Beirut governementet</subdivision>
- <subdivision type="lbbi" draft="contributed">Guvernementet Bekaa</subdivision>
- <subdivision type="lbjl" draft="contributed">Libanonfjellene</subdivision>
- <subdivision type="lbna" draft="contributed">Guvernementet Nabatiye</subdivision>
- <subdivision type="lc01" draft="contributed">Anse la Raye Quarter</subdivision>
- <subdivision type="lc05" draft="contributed">Dennery</subdivision>
- <subdivision type="lc06" draft="contributed">Gros-islet</subdivision>
- <subdivision type="lc07" draft="contributed">Laborie</subdivision>
- <subdivision type="lc08" draft="contributed">Micoud Quarter</subdivision>
- <subdivision type="lc11" draft="contributed">Vieux Fort Quarter</subdivision>
- <subdivision type="lc12" draft="contributed">Kanariene</subdivision>
- <subdivision type="li01" draft="contributed">Balzers</subdivision>
- <subdivision type="li02" draft="contributed">Eschen</subdivision>
- <subdivision type="li03" draft="contributed">Gamprin</subdivision>
- <subdivision type="li04" draft="contributed">Mauren</subdivision>
- <subdivision type="li05" draft="contributed">Planken</subdivision>
- <subdivision type="li06" draft="contributed">Ruggell</subdivision>
- <subdivision type="li07" draft="contributed">Schaan</subdivision>
- <subdivision type="li08" draft="contributed">Schellenberg</subdivision>
- <subdivision type="li09" draft="contributed">Triesen</subdivision>
- <subdivision type="li10" draft="contributed">Triesenberg</subdivision>
- <subdivision type="li11" draft="contributed">Vaduz</subdivision>
- <subdivision type="lk11" draft="contributed">Colombo</subdivision>
- <subdivision type="lk12" draft="contributed">Gampaha distrikt</subdivision>
- <subdivision type="lk13" draft="contributed">Kalutara</subdivision>
- <subdivision type="lk22" draft="contributed">Matale distrikt</subdivision>
- <subdivision type="lk23" draft="contributed">Nuware Eliya Distrikt</subdivision>
- <subdivision type="lk31" draft="contributed">Galle</subdivision>
- <subdivision type="lk32" draft="contributed">Matara</subdivision>
- <subdivision type="lk33" draft="contributed">Hambantota</subdivision>
- <subdivision type="lk41" draft="contributed">Jaffna</subdivision>
- <subdivision type="lk42" draft="contributed">Kilinochchi</subdivision>
- <subdivision type="lk43" draft="contributed">Mannar distrikt</subdivision>
- <subdivision type="lk45" draft="contributed">Mullaittivu</subdivision>
- <subdivision type="lk51" draft="contributed">Batticaloa (distrikt)</subdivision>
- <subdivision type="lk52" draft="contributed">Ampara</subdivision>
- <subdivision type="lk53" draft="contributed">Trincomalee</subdivision>
- <subdivision type="lk61" draft="contributed">Kurunegala distrikt</subdivision>
- <subdivision type="lk62" draft="contributed">Puttalam distrikt</subdivision>
- <subdivision type="lk72" draft="contributed">Polinnaruwa distrikt</subdivision>
- <subdivision type="lk81" draft="contributed">Badulla distrikt</subdivision>
- <subdivision type="lk91" draft="contributed">Ratnapura distrikt</subdivision>
- <subdivision type="lk92" draft="contributed">Kegalle distrikt</subdivision>
- <subdivision type="lrbg" draft="contributed">Bong</subdivision>
- <subdivision type="lrbm" draft="contributed">Bomi</subdivision>
- <subdivision type="lrcm" draft="contributed">Grand Cape Mount</subdivision>
- <subdivision type="lrgb" draft="contributed">Grand Bassa</subdivision>
- <subdivision type="lrgg" draft="contributed">Grand Gedeh</subdivision>
- <subdivision type="lrgk" draft="contributed">Grand Kru</subdivision>
- <subdivision type="lrgp" draft="contributed">Gbarpolu</subdivision>
- <subdivision type="lrlo" draft="contributed">Lofa</subdivision>
- <subdivision type="lrmg" draft="contributed">Margibi</subdivision>
- <subdivision type="lrmo" draft="contributed">Montserrado</subdivision>
- <subdivision type="lrmy" draft="contributed">Maryland</subdivision>
- <subdivision type="lrni" draft="contributed">Nimba</subdivision>
- <subdivision type="lrrg" draft="contributed">River Gee</subdivision>
- <subdivision type="lrri" draft="contributed">Rivercess</subdivision>
- <subdivision type="lrsi" draft="contributed">Sinoe</subdivision>
- <subdivision type="lsa" draft="contributed">Maseru</subdivision>
- <subdivision type="lsb" draft="contributed">Butha-Buthe</subdivision>
- <subdivision type="lsc" draft="contributed">Leribe</subdivision>
- <subdivision type="lsd" draft="contributed">Berea</subdivision>
- <subdivision type="lse" draft="contributed">Mafeteng</subdivision>
- <subdivision type="lsf" draft="contributed">Mohale’s Hoek</subdivision>
- <subdivision type="lsg" draft="contributed">Quthing</subdivision>
- <subdivision type="lsh" draft="contributed">Qacha’s Nek</subdivision>
- <subdivision type="lsj" draft="contributed">Mokhotlong</subdivision>
- <subdivision type="lsk" draft="contributed">Thaba-Tseka</subdivision>
- <subdivision type="lt03" draft="contributed">Alytus landkommune</subdivision>
- <subdivision type="lt08" draft="contributed">Elektrėnai kommune</subdivision>
- <subdivision type="lt21" draft="contributed">Klaipeda landkommune</subdivision>
- <subdivision type="lt22" draft="contributed">Kretinga kommune</subdivision>
- <subdivision type="lt24" draft="contributed">Lazdijai kommune</subdivision>
- <subdivision type="lt28" draft="contributed">Neringa kommune</subdivision>
- <subdivision type="lt37" draft="contributed">Radviliškis storkommune</subdivision>
- <subdivision type="lt42" draft="contributed">Šalčininkai kommune</subdivision>
- <subdivision type="lt47" draft="contributed">Širvintos kommune</subdivision>
- <subdivision type="lt49" draft="contributed">Švenčionys kommune</subdivision>
- <subdivision type="lt58" draft="contributed">Vilnius landkommune</subdivision>
- <subdivision type="ltal" draft="contributed">Alytus fylke</subdivision>
- <subdivision type="ltkl" draft="contributed">Klaipėda fylke</subdivision>
- <subdivision type="ltku" draft="contributed">Kaunas fylke</subdivision>
- <subdivision type="ltmr" draft="contributed">Marijampolė fylke</subdivision>
- <subdivision type="ltpn" draft="contributed">Panevėžys fylke</subdivision>
- <subdivision type="ltsa" draft="contributed">Šiauliai fylke</subdivision>
- <subdivision type="ltta" draft="contributed">Tauragė fylke</subdivision>
- <subdivision type="ltte" draft="contributed">Telšiai fylke</subdivision>
- <subdivision type="ltut" draft="contributed">Utena fylke</subdivision>
- <subdivision type="ltvl" draft="contributed">Vilnius fylke</subdivision>
- <subdivision type="luca" draft="contributed">Capellen</subdivision>
- <subdivision type="lucl" draft="contributed">Clervaux</subdivision>
- <subdivision type="ludi" draft="contributed">Diekirch</subdivision>
- <subdivision type="luec" draft="contributed">Echternach</subdivision>
- <subdivision type="lues" draft="contributed">Esch-sur-Alzette</subdivision>
- <subdivision type="lugr" draft="contributed">Grevenmacher</subdivision>
- <subdivision type="lulu" draft="contributed">Luxembourg</subdivision>
- <subdivision type="lume" draft="contributed">Mersch</subdivision>
- <subdivision type="lurd" draft="contributed">Redingen</subdivision>
- <subdivision type="lurm" draft="contributed">Remich</subdivision>
- <subdivision type="luvd" draft="contributed">Vianden</subdivision>
- <subdivision type="luwi" draft="contributed">Wiltz</subdivision>
- <subdivision type="lv001" draft="contributed">Aglona kommune</subdivision>
- <subdivision type="lv002" draft="contributed">Aizkraukle Kommune</subdivision>
- <subdivision type="lv003" draft="contributed">Aizpute kommune</subdivision>
- <subdivision type="lv004" draft="contributed">Akniste kommune</subdivision>
- <subdivision type="lv005" draft="contributed">Aloja kommune</subdivision>
- <subdivision type="lv006" draft="contributed">Alsunga kommune</subdivision>
- <subdivision type="lv007" draft="contributed">Aluksne kommune</subdivision>
- <subdivision type="lv008" draft="contributed">Amata kommune</subdivision>
- <subdivision type="lv009" draft="contributed">Ape kommune</subdivision>
- <subdivision type="lv010" draft="contributed">Auce kommune</subdivision>
- <subdivision type="lv011" draft="contributed">Adazi kommune</subdivision>
- <subdivision type="lv012" draft="contributed">Babite kommune</subdivision>
- <subdivision type="lv013" draft="contributed">Baldone kommune</subdivision>
- <subdivision type="lv014" draft="contributed">Baltinava kommune</subdivision>
- <subdivision type="lv015" draft="contributed">Balvi kommune</subdivision>
- <subdivision type="lv016" draft="contributed">Bauska kommune</subdivision>
- <subdivision type="lv017" draft="contributed">Beverina kommune</subdivision>
- <subdivision type="lv018" draft="contributed">Broceni kommune</subdivision>
- <subdivision type="lv019" draft="contributed">Burtnieki kommune</subdivision>
- <subdivision type="lv020" draft="contributed">Carnikava Kommune</subdivision>
- <subdivision type="lv021" draft="contributed">Cesvaine Kommune</subdivision>
- <subdivision type="lv022" draft="contributed">Cesis Kommune</subdivision>
- <subdivision type="lv023" draft="contributed">Cibla kommune</subdivision>
- <subdivision type="lv024" draft="contributed">Dagda kommune</subdivision>
- <subdivision type="lv025" draft="contributed">Daugavpils Kommune</subdivision>
- <subdivision type="lv026" draft="contributed">Dobele Kommune</subdivision>
- <subdivision type="lv027" draft="contributed">Dundaga kommune</subdivision>
- <subdivision type="lv028" draft="contributed">Durbe kommune</subdivision>
- <subdivision type="lv029" draft="contributed">Engure kommune</subdivision>
- <subdivision type="lv030" draft="contributed">Ergli kommune</subdivision>
- <subdivision type="lv031" draft="contributed">Garkalne kommune</subdivision>
- <subdivision type="lv032" draft="contributed">Grobina Kommune</subdivision>
- <subdivision type="lv033" draft="contributed">Gulbene Kommune</subdivision>
- <subdivision type="lv034" draft="contributed">Iecava kommune</subdivision>
- <subdivision type="lv035" draft="contributed">Ikskile kommune</subdivision>
- <subdivision type="lv036" draft="contributed">Ilukste kommune</subdivision>
- <subdivision type="lv037" draft="contributed">Incukalns kommune</subdivision>
- <subdivision type="lv038" draft="contributed">Jaunjelgava kommune</subdivision>
- <subdivision type="lv039" draft="contributed">Jaunpiebalga kommune</subdivision>
- <subdivision type="lv040" draft="contributed">Jaunpils kommune</subdivision>
- <subdivision type="lv041" draft="contributed">Jelgava kommune</subdivision>
- <subdivision type="lv042" draft="contributed">Jekabpils kommune</subdivision>
- <subdivision type="lv043" draft="contributed">Kandava kommune</subdivision>
- <subdivision type="lv044" draft="contributed">Karsava kommune</subdivision>
- <subdivision type="lv045" draft="contributed">Koceni kommune</subdivision>
- <subdivision type="lv046" draft="contributed">Koknese Kommune</subdivision>
- <subdivision type="lv047" draft="contributed">Kraslava kommune</subdivision>
- <subdivision type="lv048" draft="contributed">Krimulda kommune</subdivision>
- <subdivision type="lv049" draft="contributed">Krustpils kommune</subdivision>
- <subdivision type="lv050" draft="contributed">Kuldiga kommune</subdivision>
- <subdivision type="lv051" draft="contributed">Kegums kommune</subdivision>
- <subdivision type="lv052" draft="contributed">Kekava kommune</subdivision>
- <subdivision type="lv053" draft="contributed">Lielvarde kommune</subdivision>
- <subdivision type="lv054" draft="contributed">Limbazi kommune</subdivision>
- <subdivision type="lv055" draft="contributed">Ligatne kommune</subdivision>
- <subdivision type="lv056" draft="contributed">Livani kommune</subdivision>
- <subdivision type="lv057" draft="contributed">Lubana kommune</subdivision>
- <subdivision type="lv058" draft="contributed">Ludza kommune</subdivision>
- <subdivision type="lv059" draft="contributed">Madona kommune</subdivision>
- <subdivision type="lv060" draft="contributed">Mazsalaca kommune</subdivision>
- <subdivision type="lv061" draft="contributed">Malpils kommune</subdivision>
- <subdivision type="lv062" draft="contributed">Marupe kommune</subdivision>
- <subdivision type="lv063" draft="contributed">Mersrags kommune</subdivision>
- <subdivision type="lv064" draft="contributed">Naukseni kommune</subdivision>
- <subdivision type="lv065" draft="contributed">Nereta kommune</subdivision>
- <subdivision type="lv066" draft="contributed">Nica kommune</subdivision>
- <subdivision type="lv067" draft="contributed">Ogre Kommune</subdivision>
- <subdivision type="lv068" draft="contributed">Olaine kommune</subdivision>
- <subdivision type="lv069" draft="contributed">Ozolnieki Kommune</subdivision>
- <subdivision type="lv070" draft="contributed">Pargauja Kommune</subdivision>
- <subdivision type="lv071" draft="contributed">Pavilosta kommune</subdivision>
- <subdivision type="lv072" draft="contributed">Plavinas kommune</subdivision>
- <subdivision type="lv073" draft="contributed">Preili kommune</subdivision>
- <subdivision type="lv074" draft="contributed">Priekule kommune</subdivision>
- <subdivision type="lv075" draft="contributed">Priekuli kommune</subdivision>
- <subdivision type="lv076" draft="contributed">Rauna kommune</subdivision>
- <subdivision type="lv077" draft="contributed">Rezekne kommune</subdivision>
- <subdivision type="lv078" draft="contributed">Riebini kommune</subdivision>
- <subdivision type="lv079" draft="contributed">Roja Kommune</subdivision>
- <subdivision type="lv080" draft="contributed">Ropazi kommune</subdivision>
- <subdivision type="lv081" draft="contributed">Rucava kommune</subdivision>
- <subdivision type="lv082" draft="contributed">Rugaju novads</subdivision>
- <subdivision type="lv083" draft="contributed">Rundale kommune</subdivision>
- <subdivision type="lv084" draft="contributed">Rujiena kommune</subdivision>
- <subdivision type="lv085" draft="contributed">Sala kommune, Latvia</subdivision>
- <subdivision type="lv086" draft="contributed">Salacgriva Kommune</subdivision>
- <subdivision type="lv087" draft="contributed">Salaspils Kommune</subdivision>
- <subdivision type="lv088" draft="contributed">Saldus kommune</subdivision>
- <subdivision type="lv089" draft="contributed">Saulkrasi kommune</subdivision>
- <subdivision type="lv090" draft="contributed">Sejas kommune</subdivision>
- <subdivision type="lv091" draft="contributed">Sigulda Kommune</subdivision>
- <subdivision type="lv092" draft="contributed">Skriveri kommune</subdivision>
- <subdivision type="lv093" draft="contributed">Skrunda Kommune</subdivision>
- <subdivision type="lv094" draft="contributed">Smiltene kommune</subdivision>
- <subdivision type="lv095" draft="contributed">Stopini kommune</subdivision>
- <subdivision type="lv096" draft="contributed">Strenci kommune</subdivision>
- <subdivision type="lv097" draft="contributed">Talsi kommune</subdivision>
- <subdivision type="lv098" draft="contributed">Tervete kommune</subdivision>
- <subdivision type="lv099" draft="contributed">Tukums kommune</subdivision>
- <subdivision type="lv100" draft="contributed">Vainode Kommune</subdivision>
- <subdivision type="lv101" draft="contributed">Valka kommune</subdivision>
- <subdivision type="lv102" draft="contributed">Varaklani kommune</subdivision>
- <subdivision type="lv103" draft="contributed">Varkava kommune</subdivision>
- <subdivision type="lv104" draft="contributed">Vecpiebalga Kommune</subdivision>
- <subdivision type="lv105" draft="contributed">Vecumnieki kommune</subdivision>
- <subdivision type="lv106" draft="contributed">Ventspils kommune</subdivision>
- <subdivision type="lv107" draft="contributed">Viesite Kommune</subdivision>
- <subdivision type="lv108" draft="contributed">Vilaka kommune</subdivision>
- <subdivision type="lv109" draft="contributed">Vilani Kommune</subdivision>
- <subdivision type="lv110" draft="contributed">Zilupes kommune</subdivision>
- <subdivision type="lvdgv" draft="contributed">Daugavpils</subdivision>
- <subdivision type="lvjel" draft="contributed">Jelgava</subdivision>
- <subdivision type="lvjkb" draft="contributed">Jēkabpils</subdivision>
- <subdivision type="lvjur" draft="contributed">Jūrmala</subdivision>
- <subdivision type="lvlpx" draft="contributed">Liepāja</subdivision>
- <subdivision type="lvrez" draft="contributed">Rēzekne</subdivision>
- <subdivision type="lvrix" draft="contributed">Riga</subdivision>
- <subdivision type="lvven" draft="contributed">Ventspils</subdivision>
- <subdivision type="lvvmr" draft="contributed">Valmiera</subdivision>
- <subdivision type="lyba" draft="contributed">Benghazi</subdivision>
- <subdivision type="lybu" draft="contributed">Al Butnan</subdivision>
- <subdivision type="lydr" draft="contributed">Darnah</subdivision>
- <subdivision type="lygt" draft="contributed">Ghat</subdivision>
- <subdivision type="lyja" draft="contributed">Al Jabal al Akhdar</subdivision>
- <subdivision type="lyji" draft="contributed">Al Jfara</subdivision>
- <subdivision type="lyju" draft="contributed">Al Jufrah</subdivision>
- <subdivision type="lykf" draft="contributed">Al Kufrah</subdivision>
- <subdivision type="lymb" draft="contributed">Al Murgub</subdivision>
- <subdivision type="lymi" draft="contributed">Misrata distrikt</subdivision>
- <subdivision type="lymj" draft="contributed">Al Marj</subdivision>
- <subdivision type="lymq" draft="contributed">Murzuq distrikt</subdivision>
- <subdivision type="lynl" draft="contributed">Nalut</subdivision>
- <subdivision type="lynq" draft="contributed">An Nuqat al Khams</subdivision>
- <subdivision type="lysb" draft="contributed">Sabha</subdivision>
- <subdivision type="lysr" draft="contributed">Surt</subdivision>
- <subdivision type="lywa" draft="contributed">Al Wahat</subdivision>
- <subdivision type="lywd" draft="contributed">Wadi Al Hayaa</subdivision>
- <subdivision type="lyws" draft="contributed">Wadi al Shatii distrikt</subdivision>
- <subdivision type="lyza" draft="contributed">Az Zawiyah</subdivision>
- <subdivision type="ma01" draft="contributed">Tanger-Tétouan</subdivision>
- <subdivision type="ma02" draft="contributed">Gharb Chrarda Beni Hssen</subdivision>
- <subdivision type="ma03" draft="contributed">Taza-Al Hoceima-Taounate</subdivision>
- <subdivision type="ma04" draft="contributed">Oriental</subdivision>
- <subdivision type="ma05" draft="contributed">Fes-Boulemane</subdivision>
- <subdivision type="ma06" draft="contributed">Meknes Tafilalet</subdivision>
- <subdivision type="ma07" draft="contributed">Rabat Sale Zemmer Zaer</subdivision>
- <subdivision type="ma08" draft="contributed">Grand Casablanca</subdivision>
- <subdivision type="ma09" draft="contributed">Chaouia-Ouardigha</subdivision>
- <subdivision type="ma10" draft="contributed">Doukkala-Abda</subdivision>
- <subdivision type="ma11" draft="contributed">Marrakech-Tensift-El Haouz</subdivision>
- <subdivision type="ma12" draft="contributed">Tadla-Azilal</subdivision>
- <subdivision type="ma13" draft="contributed">Souss-Massa-Drâa</subdivision>
- <subdivision type="ma14" draft="contributed">Guelmim es Semara</subdivision>
- <subdivision type="ma15" draft="contributed">Laayoune Boujdoor-Sakia El Harma</subdivision>
- <subdivision type="maagd" draft="contributed">Agadir</subdivision>
- <subdivision type="macas" draft="contributed">Casablanca</subdivision>
- <subdivision type="mafes" draft="contributed">Fès</subdivision>
- <subdivision type="mague" draft="contributed">Guelmim Kommune</subdivision>
- <subdivision type="mamek" draft="contributed">Meknes</subdivision>
- <subdivision type="mammd" draft="contributed">Marrakech</subdivision>
- <subdivision type="mammn" draft="contributed">Marrakech²</subdivision>
- <subdivision type="mamoh" draft="contributed">Mohammedia</subdivision>
- <subdivision type="maoud" draft="contributed">Oued ed-Dahab provins</subdivision>
- <subdivision type="maouj" draft="contributed">Oujda</subdivision>
- <subdivision type="marab" draft="contributed">Rabat</subdivision>
- <subdivision type="masal" draft="contributed">Sale</subdivision>
- <subdivision type="maskh" draft="contributed">Témara</subdivision>
- <subdivision type="masyb" draft="contributed">Marrakech³</subdivision>
- <subdivision type="matng" draft="contributed">Tanger</subdivision>
- <subdivision type="mcfo" draft="contributed">Fontvieille</subdivision>
- <subdivision type="mcmc" draft="contributed">Monte Carlo</subdivision>
- <subdivision type="mdan" draft="contributed">Anenii Noi</subdivision>
- <subdivision type="mdba" draft="contributed">Bălți</subdivision>
- <subdivision type="mdbd" draft="contributed">Bender</subdivision>
- <subdivision type="mdbr" draft="contributed">Briceni</subdivision>
- <subdivision type="mdbs" draft="contributed">Basarabeasca</subdivision>
- <subdivision type="mdca" draft="contributed">Cahul</subdivision>
- <subdivision type="mdcl" draft="contributed">Călărași</subdivision>
- <subdivision type="mdcm" draft="contributed">Cimișlia</subdivision>
- <subdivision type="mdcr" draft="contributed">Criuleni</subdivision>
- <subdivision type="mdcs" draft="contributed">Căușeni</subdivision>
- <subdivision type="mdct" draft="contributed">Cantemir</subdivision>
- <subdivision type="mdcu" draft="contributed">Chișinău</subdivision>
- <subdivision type="mddo" draft="contributed">Dondușeni</subdivision>
- <subdivision type="mddr" draft="contributed">Drochia</subdivision>
- <subdivision type="mddu" draft="contributed">Dubășari</subdivision>
- <subdivision type="mded" draft="contributed">Edineț</subdivision>
- <subdivision type="mdfa" draft="contributed">Fălești</subdivision>
- <subdivision type="mdfl" draft="contributed">Florești</subdivision>
- <subdivision type="mdga" draft="contributed">Gagaus</subdivision>
- <subdivision type="mdgl" draft="contributed">Glodeni</subdivision>
- <subdivision type="mdhi" draft="contributed">Hîncești</subdivision>
- <subdivision type="mdia" draft="contributed">Ialoveni</subdivision>
- <subdivision type="mdle" draft="contributed">Leova</subdivision>
- <subdivision type="mdni" draft="contributed">Nisporeni</subdivision>
- <subdivision type="mdoc" draft="contributed">Ocnița</subdivision>
- <subdivision type="mdor" draft="contributed">Orhei</subdivision>
- <subdivision type="mdre" draft="contributed">Rezina</subdivision>
- <subdivision type="mdri" draft="contributed">Rîșcani</subdivision>
- <subdivision type="mdsd" draft="contributed">Șoldănești</subdivision>
- <subdivision type="mdsi" draft="contributed">Sîngerei</subdivision>
- <subdivision type="mdso" draft="contributed">Soroca</subdivision>
- <subdivision type="mdst" draft="contributed">Strășeni</subdivision>
- <subdivision type="mdsv" draft="contributed">Ștefan Vodă</subdivision>
- <subdivision type="mdta" draft="contributed">Taraclia</subdivision>
- <subdivision type="mdte" draft="contributed">Telenești</subdivision>
- <subdivision type="mdun" draft="contributed">Ungheni</subdivision>
- <subdivision type="me01" draft="contributed">Andrijevica Kommune</subdivision>
- <subdivision type="me02" draft="contributed">Bar kommune</subdivision>
- <subdivision type="me03" draft="contributed">Berane kommune</subdivision>
- <subdivision type="me04" draft="contributed">Bijelo Polje kommune</subdivision>
- <subdivision type="me05" draft="contributed">Budva Kommune</subdivision>
- <subdivision type="me06" draft="contributed">Cetinje Kommune</subdivision>
- <subdivision type="me07" draft="contributed">Danilovgrad Kommune</subdivision>
- <subdivision type="me08" draft="contributed">Herceg Novi kommune</subdivision>
- <subdivision type="me09" draft="contributed">Kolasin kommune</subdivision>
- <subdivision type="me11" draft="contributed">Mojkovac kommune</subdivision>
- <subdivision type="me12" draft="contributed">Niksic kommune</subdivision>
- <subdivision type="me13" draft="contributed">Plav Kommune</subdivision>
- <subdivision type="me14" draft="contributed">Pljevlja Kommune</subdivision>
- <subdivision type="me15" draft="contributed">Pluzine Kommune</subdivision>
- <subdivision type="me18" draft="contributed">Savnik Kommune</subdivision>
- <subdivision type="me20" draft="contributed">Ulcinj kommune</subdivision>
- <subdivision type="me21" draft="contributed">Zabljak kommune</subdivision>
- <subdivision type="mga" draft="contributed">Toamasina</subdivision>
- <subdivision type="mgd" draft="contributed">Antsiranana</subdivision>
- <subdivision type="mgf" draft="contributed">Fianarantsoa</subdivision>
- <subdivision type="mgm" draft="contributed">Mahajanga</subdivision>
- <subdivision type="mgt" draft="contributed">Antananarivo</subdivision>
- <subdivision type="mgu" draft="contributed">Toliara</subdivision>
- <subdivision type="mhall" draft="contributed">Ailinglaplap</subdivision>
- <subdivision type="mheni" draft="contributed">Enewetakatollen</subdivision>
- <subdivision type="mhkwa" draft="contributed">Kwajalein</subdivision>
- <subdivision type="mhl" draft="contributed">Ralik-kjeden</subdivision>
- <subdivision type="mhmaj" draft="contributed">Majuro</subdivision>
- <subdivision type="mhron" draft="contributed">Rongelap</subdivision>
- <subdivision type="mht" draft="contributed">Ratak Chain</subdivision>
- <subdivision type="mk02" draft="contributed">Aracinovo Kommune</subdivision>
- <subdivision type="mk03" draft="contributed">Berovo kommune</subdivision>
- <subdivision type="mk04" draft="contributed">Bitcola kommune</subdivision>
- <subdivision type="mk05" draft="contributed">Bogdanci Kommune</subdivision>
- <subdivision type="mk06" draft="contributed">Bogovinje kommune</subdivision>
- <subdivision type="mk07" draft="contributed">Bosiovo kommune</subdivision>
- <subdivision type="mk08" draft="contributed">Brvenica Kommune</subdivision>
- <subdivision type="mk11" draft="contributed">Vasilevo kommune</subdivision>
- <subdivision type="mk14" draft="contributed">Vinica Kommune</subdivision>
- <subdivision type="mk19" draft="contributed">Gostivar kommune</subdivision>
- <subdivision type="mk20" draft="contributed">Gradsko kommune</subdivision>
- <subdivision type="mk21" draft="contributed">Debar kommune</subdivision>
- <subdivision type="mk22" draft="contributed">Debarca kommune</subdivision>
- <subdivision type="mk23" draft="contributed">Delcevo Kommune</subdivision>
- <subdivision type="mk27" draft="contributed">Dolneni Kommune</subdivision>
- <subdivision type="mk30" draft="contributed">Zelino kommune</subdivision>
- <subdivision type="mk32" draft="contributed">Zelenikovo kommune</subdivision>
- <subdivision type="mk33" draft="contributed">Zrnovci kommune</subdivision>
- <subdivision type="mk34" draft="contributed">Ilinden Kommune</subdivision>
- <subdivision type="mk35" draft="contributed">Jegunovce kommune</subdivision>
- <subdivision type="mk36" draft="contributed">Kavadarci kommune</subdivision>
- <subdivision type="mk37" draft="contributed">Karbinci</subdivision>
- <subdivision type="mk40" draft="contributed">Kicevo kommune</subdivision>
- <subdivision type="mk41" draft="contributed">Konce Kommune</subdivision>
- <subdivision type="mk42" draft="contributed">Kocani kommune</subdivision>
- <subdivision type="mk43" draft="contributed">Kratovo kommune</subdivision>
- <subdivision type="mk44" draft="contributed">Kriva Palanka kommune</subdivision>
- <subdivision type="mk45" draft="contributed">Krivogasjtani kommune</subdivision>
- <subdivision type="mk46" draft="contributed">Kursevo Kommune</subdivision>
- <subdivision type="mk47" draft="contributed">Kumanovo kommune</subdivision>
- <subdivision type="mk48" draft="contributed">Lipkovo kommune</subdivision>
- <subdivision type="mk49" draft="contributed">Lozovo kommune</subdivision>
- <subdivision type="mk50" draft="contributed">Mavrovo og Rostusa kommune</subdivision>
- <subdivision type="mk51" draft="contributed">Makedonska Kamencia kommune</subdivision>
- <subdivision type="mk52" draft="contributed">Makedoniske Brod kommune</subdivision>
- <subdivision type="mk54" draft="contributed">Negotino kommune</subdivision>
- <subdivision type="mk56" draft="contributed">Novo Selo kommune</subdivision>
- <subdivision type="mk58" draft="contributed">Ohrid Kommune</subdivision>
- <subdivision type="mk60" draft="contributed">Pehcevo kommune</subdivision>
- <subdivision type="mk61" draft="contributed">Plasnica Kommune</subdivision>
- <subdivision type="mk62" draft="contributed">Prilep kommune</subdivision>
- <subdivision type="mk63" draft="contributed">Probistip kommune</subdivision>
- <subdivision type="mk64" draft="contributed">Radovis kommune</subdivision>
- <subdivision type="mk65" draft="contributed">Rankovce kommune</subdivision>
- <subdivision type="mk66" draft="contributed">Resen kommune</subdivision>
- <subdivision type="mk69" draft="contributed">Sveti Nikole kommune</subdivision>
- <subdivision type="mk70" draft="contributed">Sopiste kommune</subdivision>
- <subdivision type="mk72" draft="contributed">Struga kommune</subdivision>
- <subdivision type="mk73" draft="contributed">Stumica kommune</subdivision>
- <subdivision type="mk74" draft="contributed">Studenicani Kommune</subdivision>
- <subdivision type="mk75" draft="contributed">Tearce Kommune</subdivision>
- <subdivision type="mk76" draft="contributed">Tetovo kommune</subdivision>
- <subdivision type="mk78" draft="contributed">Centar Zupa kommune</subdivision>
- <subdivision type="mk80" draft="contributed">Caska Kommune</subdivision>
- <subdivision type="mk81" draft="contributed">Cesinoco-Oblesevo Kommune</subdivision>
- <subdivision type="mk82" draft="contributed">Cucer-Sandevo kommune</subdivision>
- <subdivision type="mk83" draft="contributed">Strip kommune</subdivision>
- <subdivision type="mk85" draft="contributed">Stor-Skopje</subdivision>
- <subdivision type="ml1" draft="contributed">Kayes</subdivision>
- <subdivision type="ml2" draft="contributed">Koulikoro</subdivision>
- <subdivision type="ml3" draft="contributed">Sikasso</subdivision>
- <subdivision type="ml4" draft="contributed">Ségou</subdivision>
- <subdivision type="ml5" draft="contributed">Mopti</subdivision>
- <subdivision type="ml6" draft="contributed">Timbuktu</subdivision>
- <subdivision type="ml7" draft="contributed">Gao</subdivision>
- <subdivision type="ml8" draft="contributed">Kidal</subdivision>
- <subdivision type="mlbko" draft="contributed">Bamako</subdivision>
- <subdivision type="mm01" draft="contributed">Sagaing</subdivision>
- <subdivision type="mm02" draft="contributed">Bago</subdivision>
- <subdivision type="mm03" draft="contributed">Magway</subdivision>
- <subdivision type="mm04" draft="contributed">Mandalay</subdivision>
- <subdivision type="mm05" draft="contributed">Tanintharyi</subdivision>
- <subdivision type="mm06" draft="contributed">Yangon</subdivision>
- <subdivision type="mm07" draft="contributed">Ayeyarwady</subdivision>
- <subdivision type="mm11" draft="contributed">Kachin</subdivision>
- <subdivision type="mm12" draft="contributed">Kayah</subdivision>
- <subdivision type="mm13" draft="contributed">Karen</subdivision>
- <subdivision type="mm14" draft="contributed">Chin</subdivision>
- <subdivision type="mm15" draft="contributed">Mon</subdivision>
- <subdivision type="mm16" draft="contributed">Rakhine</subdivision>
- <subdivision type="mm17" draft="contributed">Shan</subdivision>
- <subdivision type="mn1" draft="contributed">Ulan Bator</subdivision>
- <subdivision type="mn035" draft="contributed">Orkhon</subdivision>
- <subdivision type="mn037" draft="contributed">Darkhan-Uul</subdivision>
- <subdivision type="mn039" draft="contributed">Khentij</subdivision>
- <subdivision type="mn041" draft="contributed">Khövsgöl</subdivision>
- <subdivision type="mn043" draft="contributed">Khovd</subdivision>
- <subdivision type="mn046" draft="contributed">Uvs</subdivision>
- <subdivision type="mn047" draft="contributed">Töv</subdivision>
- <subdivision type="mn049" draft="contributed">Selenge</subdivision>
- <subdivision type="mn051" draft="contributed">Sükhbaatar</subdivision>
- <subdivision type="mn053" draft="contributed">Ömnögov</subdivision>
- <subdivision type="mn055" draft="contributed">Övörkhangaj</subdivision>
- <subdivision type="mn057" draft="contributed">Zavkhan</subdivision>
- <subdivision type="mn059" draft="contributed">Dundgov</subdivision>
- <subdivision type="mn061" draft="contributed">Dornod</subdivision>
- <subdivision type="mn063" draft="contributed">Dornogov</subdivision>
- <subdivision type="mn064" draft="contributed">Gov-Sümber</subdivision>
- <subdivision type="mn065" draft="contributed">Gov-Altaj</subdivision>
- <subdivision type="mn067" draft="contributed">Bulgan</subdivision>
- <subdivision type="mn069" draft="contributed">Bajankhongor</subdivision>
- <subdivision type="mn071" draft="contributed">Bajan-Ölgij</subdivision>
- <subdivision type="mn073" draft="contributed">Arkhangaj</subdivision>
- <subdivision type="mr01" draft="contributed">Hodh Ech Chargui</subdivision>
- <subdivision type="mr02" draft="contributed">Hodh El Gharbi</subdivision>
- <subdivision type="mr03" draft="contributed">Assaba</subdivision>
- <subdivision type="mr04" draft="contributed">Gorgol</subdivision>
- <subdivision type="mr05" draft="contributed">Brakna</subdivision>
- <subdivision type="mr06" draft="contributed">Trarza</subdivision>
- <subdivision type="mr07" draft="contributed">Adrar</subdivision>
- <subdivision type="mr08" draft="contributed">Dakhlet Nouadhibou</subdivision>
- <subdivision type="mr09" draft="contributed">Tagant</subdivision>
- <subdivision type="mr10" draft="contributed">Guidimaka</subdivision>
- <subdivision type="mr11" draft="contributed">Tiris Zemmour</subdivision>
- <subdivision type="mr12" draft="contributed">Inchiri</subdivision>
- <subdivision type="mt01" draft="contributed">Attard</subdivision>
- <subdivision type="mt02" draft="contributed">Balzan</subdivision>
- <subdivision type="mt03" draft="contributed">Birgu</subdivision>
- <subdivision type="mt04" draft="contributed">Birkirkara</subdivision>
- <subdivision type="mt05" draft="contributed">Bizebbuga</subdivision>
- <subdivision type="mt06" draft="contributed">Cospicua</subdivision>
- <subdivision type="mt07" draft="contributed">Dingli</subdivision>
- <subdivision type="mt08" draft="contributed">Fgura</subdivision>
- <subdivision type="mt09" draft="contributed">Floriana</subdivision>
- <subdivision type="mt10" draft="contributed">Fontana</subdivision>
- <subdivision type="mt11" draft="contributed">Gudja</subdivision>
- <subdivision type="mt12" draft="contributed">Gżira</subdivision>
- <subdivision type="mt13" draft="contributed">Ghajnsielem</subdivision>
- <subdivision type="mt14" draft="contributed">Gharb</subdivision>
- <subdivision type="mt15" draft="contributed">Gharghur</subdivision>
- <subdivision type="mt16" draft="contributed">Ghasri</subdivision>
- <subdivision type="mt17" draft="contributed">Ghazaq</subdivision>
- <subdivision type="mt18" draft="contributed">Gzira</subdivision>
- <subdivision type="mt19" draft="contributed">Iklin</subdivision>
- <subdivision type="mt20" draft="contributed">Senglea</subdivision>
- <subdivision type="mt21" draft="contributed">Kalkara</subdivision>
- <subdivision type="mt22" draft="contributed">Kercem</subdivision>
- <subdivision type="mt23" draft="contributed">Kirkop</subdivision>
- <subdivision type="mt24" draft="contributed">Lija</subdivision>
- <subdivision type="mt25" draft="contributed">Luqa</subdivision>
- <subdivision type="mt26" draft="contributed">Marsa</subdivision>
- <subdivision type="mt27" draft="contributed">Marsakala</subdivision>
- <subdivision type="mt28" draft="contributed">Marsaxlokk</subdivision>
- <subdivision type="mt29" draft="contributed">Mdina</subdivision>
- <subdivision type="mt30" draft="contributed">Mellieħa</subdivision>
- <subdivision type="mt31" draft="contributed">Mgarr</subdivision>
- <subdivision type="mt32" draft="contributed">Mosta</subdivision>
- <subdivision type="mt33" draft="contributed">Mqabba</subdivision>
- <subdivision type="mt34" draft="contributed">Msida</subdivision>
- <subdivision type="mt35" draft="contributed">Mtarfa</subdivision>
- <subdivision type="mt36" draft="contributed">Munxar</subdivision>
- <subdivision type="mt37" draft="contributed">Nadur</subdivision>
- <subdivision type="mt38" draft="contributed">Naxxar</subdivision>
- <subdivision type="mt39" draft="contributed">Paola</subdivision>
- <subdivision type="mt40" draft="contributed">Pembroke</subdivision>
- <subdivision type="mt42" draft="contributed">Qala</subdivision>
- <subdivision type="mt43" draft="contributed">Qormi</subdivision>
- <subdivision type="mt44" draft="contributed">Qrendi</subdivision>
- <subdivision type="mt45" draft="contributed">Victoria</subdivision>
- <subdivision type="mt46" draft="contributed">Rabat</subdivision>
- <subdivision type="mt47" draft="contributed">Safi</subdivision>
- <subdivision type="mt48" draft="contributed">St. Julians</subdivision>
- <subdivision type="mt49" draft="contributed">San Gwann</subdivision>
- <subdivision type="mt50" draft="contributed">San Lawrenz</subdivision>
- <subdivision type="mt51" draft="contributed">St.Pauls Bay</subdivision>
- <subdivision type="mt52" draft="contributed">Sannat</subdivision>
- <subdivision type="mt53" draft="contributed">Saint Lucia</subdivision>
- <subdivision type="mt54" draft="contributed">Santa Venera</subdivision>
- <subdivision type="mt55" draft="contributed">Siggiewi</subdivision>
- <subdivision type="mt56" draft="contributed">Sliema</subdivision>
- <subdivision type="mt57" draft="contributed">Sweiqi</subdivision>
- <subdivision type="mt58" draft="contributed">Ta Xbiex</subdivision>
- <subdivision type="mt59" draft="contributed">Tarxien</subdivision>
- <subdivision type="mt60" draft="contributed">Valletta</subdivision>
- <subdivision type="mt61" draft="contributed">Xaghra</subdivision>
- <subdivision type="mt62" draft="contributed">Xewkija</subdivision>
- <subdivision type="mt63" draft="contributed">Xgħajra</subdivision>
- <subdivision type="mt64" draft="contributed">Żabbar</subdivision>
- <subdivision type="mt66" draft="contributed">Zebbug</subdivision>
- <subdivision type="mt67" draft="contributed">Iz-Zejtun</subdivision>
- <subdivision type="mt68" draft="contributed">Zurrieq</subdivision>
- <subdivision type="muag" draft="contributed">Agalegaøyene</subdivision>
- <subdivision type="mubl" draft="contributed">Black River</subdivision>
- <subdivision type="mubr" draft="contributed">Beau Bassin-Rosehill</subdivision>
- <subdivision type="mucc" draft="contributed">Cargados Carajos</subdivision>
- <subdivision type="mufl" draft="contributed">Flacq</subdivision>
- <subdivision type="mugp" draft="contributed">Grand Port</subdivision>
- <subdivision type="mumo" draft="contributed">Moka</subdivision>
- <subdivision type="mupa" draft="contributed">Pamplemousses</subdivision>
- <subdivision type="mupl" draft="contributed">Port Louis</subdivision>
- <subdivision type="mupu" draft="contributed">Port Louis²</subdivision>
- <subdivision type="mupw" draft="contributed">Plaines Wilhems</subdivision>
- <subdivision type="muro" draft="contributed">Rodrigues</subdivision>
- <subdivision type="murr" draft="contributed">Rivière du Rempart</subdivision>
- <subdivision type="musa" draft="contributed">Savanne</subdivision>
- <subdivision type="muvp" draft="contributed">Vacoas-Phoenix</subdivision>
- <subdivision type="mv00" draft="contributed">Alif Dhaal Atoll</subdivision>
- <subdivision type="mv02" draft="contributed">Alif Alif Atoll</subdivision>
- <subdivision type="mv03" draft="contributed">Lhaviyani Atoll</subdivision>
- <subdivision type="mv04" draft="contributed">Vaavu Atoll</subdivision>
- <subdivision type="mv05" draft="contributed">Laamu Atoll</subdivision>
- <subdivision type="mv07" draft="contributed">Haa Alif Atoll</subdivision>
- <subdivision type="mv12" draft="contributed">Meemu Atoll</subdivision>
- <subdivision type="mv13" draft="contributed">Raa Atoll</subdivision>
- <subdivision type="mv14" draft="contributed">Faafu Atoll</subdivision>
- <subdivision type="mv17" draft="contributed">Dhaalu Atoll</subdivision>
- <subdivision type="mv20" draft="contributed">Baa Atoll</subdivision>
- <subdivision type="mv23" draft="contributed">Haa Dhaalu Atoll</subdivision>
- <subdivision type="mv24" draft="contributed">Shaviyani Atoll</subdivision>
- <subdivision type="mv25" draft="contributed">Noonu Atoll</subdivision>
- <subdivision type="mv26" draft="contributed">Kaafu Atoll</subdivision>
- <subdivision type="mv27" draft="contributed">Gaafu Alif Atoll</subdivision>
- <subdivision type="mv28" draft="contributed">Gaafu Dhaaky Atoll</subdivision>
- <subdivision type="mv29" draft="contributed">Gnaviyani Atoll</subdivision>
- <subdivision type="mvmle" draft="contributed">Malé</subdivision>
- <subdivision type="mwba" draft="contributed">Balaka</subdivision>
- <subdivision type="mwbl" draft="contributed">Blantyre</subdivision>
- <subdivision type="mwc" draft="contributed">Central</subdivision>
- <subdivision type="mwck" draft="contributed">Chikwawa</subdivision>
- <subdivision type="mwcr" draft="contributed">Chiradzulu</subdivision>
- <subdivision type="mwct" draft="contributed">Chitipa</subdivision>
- <subdivision type="mwde" draft="contributed">Dedza</subdivision>
- <subdivision type="mwdo" draft="contributed">Dowa</subdivision>
- <subdivision type="mwkr" draft="contributed">Karonga</subdivision>
- <subdivision type="mwks" draft="contributed">Kasungu</subdivision>
- <subdivision type="mwli" draft="contributed">Lilongwe</subdivision>
- <subdivision type="mwlk" draft="contributed">Likoma</subdivision>
- <subdivision type="mwmc" draft="contributed">Mchinji</subdivision>
- <subdivision type="mwmg" draft="contributed">Mangochi</subdivision>
- <subdivision type="mwmh" draft="contributed">Machinga</subdivision>
- <subdivision type="mwmu" draft="contributed">Mulanje</subdivision>
- <subdivision type="mwmw" draft="contributed">Mwanza</subdivision>
- <subdivision type="mwmz" draft="contributed">Mzimba</subdivision>
- <subdivision type="mwn" draft="contributed">Northern</subdivision>
- <subdivision type="mwnb" draft="contributed">Nkhata Bay</subdivision>
- <subdivision type="mwne" draft="contributed">Neno</subdivision>
- <subdivision type="mwni" draft="contributed">Ntchisi</subdivision>
- <subdivision type="mwnk" draft="contributed">Nkhotakota</subdivision>
- <subdivision type="mwns" draft="contributed">Nsanje</subdivision>
- <subdivision type="mwnu" draft="contributed">Ntcheu</subdivision>
- <subdivision type="mwph" draft="contributed">Phalombe</subdivision>
- <subdivision type="mwru" draft="contributed">Rumphi</subdivision>
- <subdivision type="mws" draft="contributed">Southern</subdivision>
- <subdivision type="mwsa" draft="contributed">Salima</subdivision>
- <subdivision type="mwth" draft="contributed">Thyolo</subdivision>
- <subdivision type="mwzo" draft="contributed">Zomba</subdivision>
- <subdivision type="mxagu" draft="contributed">Aguascalientes</subdivision>
- <subdivision type="mxbcn" draft="contributed">Baja California</subdivision>
- <subdivision type="mxbcs" draft="contributed">Baja California Sur</subdivision>
- <subdivision type="mxcam" draft="contributed">Campeche</subdivision>
- <subdivision type="mxchh" draft="contributed">Chihuahua</subdivision>
- <subdivision type="mxchp" draft="contributed">Chiapas</subdivision>
- <subdivision type="mxcmx" draft="contributed">Mexico by</subdivision>
- <subdivision type="mxcoa" draft="contributed">Coahuila</subdivision>
- <subdivision type="mxcol" draft="contributed">Colima</subdivision>
- <subdivision type="mxdur" draft="contributed">Durango</subdivision>
- <subdivision type="mxgro" draft="contributed">Guerrero</subdivision>
- <subdivision type="mxgua" draft="contributed">Guanajuato</subdivision>
- <subdivision type="mxhid" draft="contributed">Hidalgo</subdivision>
- <subdivision type="mxjal" draft="contributed">Jalisco</subdivision>
- <subdivision type="mxmex" draft="contributed">México</subdivision>
- <subdivision type="mxmic" draft="contributed">Michoacán</subdivision>
- <subdivision type="mxmor" draft="contributed">Morelos</subdivision>
- <subdivision type="mxnay" draft="contributed">Nayarit</subdivision>
- <subdivision type="mxnle" draft="contributed">Nuevo León</subdivision>
- <subdivision type="mxoax" draft="contributed">Oaxaca</subdivision>
- <subdivision type="mxpue" draft="contributed">Puebla</subdivision>
- <subdivision type="mxque" draft="contributed">Querétaro</subdivision>
- <subdivision type="mxroo" draft="contributed">Quintana Roo</subdivision>
- <subdivision type="mxsin" draft="contributed">Sinaloa</subdivision>
- <subdivision type="mxslp" draft="contributed">San Luis Potosí</subdivision>
- <subdivision type="mxson" draft="contributed">Sonora</subdivision>
- <subdivision type="mxtab" draft="contributed">Tabasco</subdivision>
- <subdivision type="mxtam" draft="contributed">Tamaulipas</subdivision>
- <subdivision type="mxtla" draft="contributed">Tlaxcala</subdivision>
- <subdivision type="mxver" draft="contributed">Veracruz</subdivision>
- <subdivision type="mxyuc" draft="contributed">Yucatán</subdivision>
- <subdivision type="mxzac" draft="contributed">Zacatecas</subdivision>
- <subdivision type="my01" draft="contributed">Johor</subdivision>
- <subdivision type="my02" draft="contributed">Kedah</subdivision>
- <subdivision type="my03" draft="contributed">Kelantan</subdivision>
- <subdivision type="my04" draft="contributed">Malakka</subdivision>
- <subdivision type="my05" draft="contributed">Negeri Sembilan</subdivision>
- <subdivision type="my06" draft="contributed">Pahang</subdivision>
- <subdivision type="my07" draft="contributed">Penang</subdivision>
- <subdivision type="my08" draft="contributed">Perak</subdivision>
- <subdivision type="my09" draft="contributed">Perlis</subdivision>
- <subdivision type="my10" draft="contributed">Selangor</subdivision>
- <subdivision type="my11" draft="contributed">Terengganu</subdivision>
- <subdivision type="my12" draft="contributed">Sabah</subdivision>
- <subdivision type="my13" draft="contributed">Sarawak</subdivision>
- <subdivision type="my14" draft="contributed">Kuala Lumpur</subdivision>
- <subdivision type="my15" draft="contributed">Labuan</subdivision>
- <subdivision type="my16" draft="contributed">Putrajaya</subdivision>
- <subdivision type="mza" draft="contributed">Niassa</subdivision>
- <subdivision type="mzb" draft="contributed">Manica</subdivision>
- <subdivision type="mzg" draft="contributed">Gaza</subdivision>
- <subdivision type="mzi" draft="contributed">Inhambane</subdivision>
- <subdivision type="mzl" draft="contributed">Maputo</subdivision>
- <subdivision type="mzmpm" draft="contributed">Maputo²</subdivision>
- <subdivision type="mzn" draft="contributed">Nampula</subdivision>
- <subdivision type="mzp" draft="contributed">Cabo Delgado</subdivision>
- <subdivision type="mzq" draft="contributed">Zambezia</subdivision>
- <subdivision type="mzs" draft="contributed">Sofala</subdivision>
- <subdivision type="mzt" draft="contributed">Tete</subdivision>
- <subdivision type="naca" draft="contributed">Caprivi</subdivision>
- <subdivision type="naer" draft="contributed">Erongo</subdivision>
- <subdivision type="naha" draft="contributed">Hardap</subdivision>
- <subdivision type="naka" draft="contributed">Karas</subdivision>
- <subdivision type="nakh" draft="contributed">Khomas</subdivision>
- <subdivision type="naku" draft="contributed">Kunene</subdivision>
- <subdivision type="naod" draft="contributed">Otjozondjupa</subdivision>
- <subdivision type="naoh" draft="contributed">Omaheke</subdivision>
- <subdivision type="naon" draft="contributed">Oshana</subdivision>
- <subdivision type="naos" draft="contributed">Omusati</subdivision>
- <subdivision type="naot" draft="contributed">Oshikoto</subdivision>
- <subdivision type="naow" draft="contributed">Ohangwena</subdivision>
- <subdivision type="ne1" draft="contributed">Agadez (region)</subdivision>
- <subdivision type="ne2" draft="contributed">Diffa</subdivision>
- <subdivision type="ne3" draft="contributed">Dosso</subdivision>
- <subdivision type="ne4" draft="contributed">Maradi</subdivision>
- <subdivision type="ne5" draft="contributed">Tahoua</subdivision>
- <subdivision type="ne6" draft="contributed">Tillabéri</subdivision>
- <subdivision type="ne7" draft="contributed">Zinder</subdivision>
- <subdivision type="ne8" draft="contributed">Niamey</subdivision>
- <subdivision type="ngab" draft="contributed">Abia</subdivision>
- <subdivision type="ngad" draft="contributed">Adamawa</subdivision>
- <subdivision type="ngak" draft="contributed">Akwa Ibom</subdivision>
- <subdivision type="ngan" draft="contributed">Anambra</subdivision>
- <subdivision type="ngba" draft="contributed">Bauchi</subdivision>
- <subdivision type="ngbe" draft="contributed">Benue</subdivision>
- <subdivision type="ngbo" draft="contributed">Borno</subdivision>
- <subdivision type="ngby" draft="contributed">Bayelsa</subdivision>
- <subdivision type="ngcr" draft="contributed">Cross River</subdivision>
- <subdivision type="ngde" draft="contributed">Delta</subdivision>
- <subdivision type="ngeb" draft="contributed">Ebonyi</subdivision>
- <subdivision type="nged" draft="contributed">Edo</subdivision>
- <subdivision type="ngek" draft="contributed">Ekiti</subdivision>
- <subdivision type="ngen" draft="contributed">Enugu</subdivision>
- <subdivision type="ngfc" draft="contributed">Federal Capital Territory</subdivision>
- <subdivision type="nggo" draft="contributed">Gombe</subdivision>
- <subdivision type="ngim" draft="contributed">Imo</subdivision>
- <subdivision type="ngji" draft="contributed">Jigawa</subdivision>
- <subdivision type="ngkd" draft="contributed">Kaduna (delstat)</subdivision>
- <subdivision type="ngke" draft="contributed">Kebbi</subdivision>
- <subdivision type="ngkn" draft="contributed">Kano</subdivision>
- <subdivision type="ngko" draft="contributed">Kogi</subdivision>
- <subdivision type="ngkt" draft="contributed">Katsina</subdivision>
- <subdivision type="ngkw" draft="contributed">Kwara</subdivision>
- <subdivision type="ngla" draft="contributed">Lagos</subdivision>
- <subdivision type="ngna" draft="contributed">Nasarawa</subdivision>
- <subdivision type="ngni" draft="contributed">Niger</subdivision>
- <subdivision type="ngog" draft="contributed">Ogun</subdivision>
- <subdivision type="ngon" draft="contributed">Ondo</subdivision>
- <subdivision type="ngos" draft="contributed">Osun</subdivision>
- <subdivision type="ngoy" draft="contributed">Oyo</subdivision>
- <subdivision type="ngpl" draft="contributed">Plateau</subdivision>
- <subdivision type="ngri" draft="contributed">Rivers</subdivision>
- <subdivision type="ngso" draft="contributed">Sokoto</subdivision>
- <subdivision type="ngta" draft="contributed">Taraba</subdivision>
- <subdivision type="ngyo" draft="contributed">Yobe</subdivision>
- <subdivision type="ngza" draft="contributed">Zamfara</subdivision>
- <subdivision type="nian" draft="contributed">Región Autónoma del Atlántico Norte</subdivision>
- <subdivision type="nias" draft="contributed">Región Autónoma del Atlántico Sur</subdivision>
- <subdivision type="nibo" draft="contributed">Boaco</subdivision>
- <subdivision type="nica" draft="contributed">Carazo</subdivision>
- <subdivision type="nici" draft="contributed">Chinandega</subdivision>
- <subdivision type="nico" draft="contributed">Chontales</subdivision>
- <subdivision type="nies" draft="contributed">Estelí</subdivision>
- <subdivision type="nigr" draft="contributed">Granada</subdivision>
- <subdivision type="niji" draft="contributed">Jinotega</subdivision>
- <subdivision type="nile" draft="contributed">León</subdivision>
- <subdivision type="nimd" draft="contributed">Madriz</subdivision>
- <subdivision type="nimn" draft="contributed">Managua</subdivision>
- <subdivision type="nims" draft="contributed">Masaya</subdivision>
- <subdivision type="nimt" draft="contributed">Matagalpa</subdivision>
- <subdivision type="nins" draft="contributed">Nueva Segovia</subdivision>
- <subdivision type="niri" draft="contributed">Rivas</subdivision>
- <subdivision type="nisj" draft="contributed">Río San Juan</subdivision>
- <subdivision type="nlbq1" draft="contributed">Bonaire</subdivision>
- <subdivision type="nlbq2" draft="contributed">Saba</subdivision>
- <subdivision type="nlbq3" draft="contributed">Sint Eustatius</subdivision>
- <subdivision type="nldr" draft="contributed">Drenthe</subdivision>
- <subdivision type="nlfl" draft="contributed">Flevoland</subdivision>
- <subdivision type="nlfr" draft="contributed">Friesland</subdivision>
- <subdivision type="nlge" draft="contributed">Gelderland</subdivision>
- <subdivision type="nlgr" draft="contributed">Groningen</subdivision>
- <subdivision type="nlli" draft="contributed">Limburg</subdivision>
- <subdivision type="nlnb" draft="contributed">Noord-Brabant</subdivision>
- <subdivision type="nlnh" draft="contributed">Noord-Holland</subdivision>
- <subdivision type="nlov" draft="contributed">Overijssel</subdivision>
- <subdivision type="nlut" draft="contributed">Utrecht</subdivision>
- <subdivision type="nlze" draft="contributed">Zeeland</subdivision>
- <subdivision type="nlzh" draft="contributed">Zuid-Holland</subdivision>
- <subdivision type="no01" draft="contributed">Østfold</subdivision>
- <subdivision type="no02" draft="contributed">Akershus</subdivision>
- <subdivision type="no03" draft="contributed">Oslo</subdivision>
- <subdivision type="no04" draft="contributed">Hedmark</subdivision>
- <subdivision type="no05" draft="contributed">Oppland</subdivision>
- <subdivision type="no06" draft="contributed">Buskerud</subdivision>
- <subdivision type="no07" draft="contributed">Vestfold</subdivision>
- <subdivision type="no08" draft="contributed">Telemark</subdivision>
- <subdivision type="no09" draft="contributed">Aust-Agder</subdivision>
- <subdivision type="no10" draft="contributed">Vest-Agder</subdivision>
- <subdivision type="no11" draft="contributed">Rogaland</subdivision>
- <subdivision type="no12" draft="contributed">Hordaland</subdivision>
- <subdivision type="no14" draft="contributed">Sogn og Fjordane</subdivision>
- <subdivision type="no15" draft="contributed">Møre og Romsdal</subdivision>
- <subdivision type="no16" draft="contributed">Sør-Trøndelag</subdivision>
- <subdivision type="no17" draft="contributed">Nord-Trøndelag</subdivision>
- <subdivision type="no18" draft="contributed">Nordland</subdivision>
- <subdivision type="no19" draft="contributed">Troms</subdivision>
- <subdivision type="no20" draft="contributed">Finnmark</subdivision>
- <subdivision type="no21" draft="contributed">Svalbard</subdivision>
- <subdivision type="no22" draft="contributed">Jan Mayen</subdivision>
- <subdivision type="npba" draft="contributed">Bagmati Sone</subdivision>
- <subdivision type="npbh" draft="contributed">Bheri sone</subdivision>
- <subdivision type="npdh" draft="contributed">Dhaulagiri sone</subdivision>
- <subdivision type="npga" draft="contributed">Gandaki sone</subdivision>
- <subdivision type="npja" draft="contributed">Janakpur sone</subdivision>
- <subdivision type="npka" draft="contributed">Karnali sone</subdivision>
- <subdivision type="npma" draft="contributed">Mahakali Sone</subdivision>
- <subdivision type="npme" draft="contributed">Mechi</subdivision>
- <subdivision type="npna" draft="contributed">Narayani Sone</subdivision>
- <subdivision type="npra" draft="contributed">Rapti sone</subdivision>
- <subdivision type="npsa" draft="contributed">Sagarmatha Sone</subdivision>
- <subdivision type="npse" draft="contributed">Seti</subdivision>
- <subdivision type="nr01" draft="contributed">Aiwo</subdivision>
- <subdivision type="nr02" draft="contributed">Anabar</subdivision>
- <subdivision type="nr03" draft="contributed">Anetan</subdivision>
- <subdivision type="nr04" draft="contributed">Anibare</subdivision>
- <subdivision type="nr05" draft="contributed">Baiti</subdivision>
- <subdivision type="nr06" draft="contributed">Boe</subdivision>
- <subdivision type="nr07" draft="contributed">Buada</subdivision>
- <subdivision type="nr08" draft="contributed">Denigomodu</subdivision>
- <subdivision type="nr09" draft="contributed">Ewa</subdivision>
- <subdivision type="nr10" draft="contributed">Ijuw</subdivision>
- <subdivision type="nr11" draft="contributed">Meneng</subdivision>
- <subdivision type="nr12" draft="contributed">Nibok</subdivision>
- <subdivision type="nr13" draft="contributed">Uaboe</subdivision>
- <subdivision type="nr14" draft="contributed">Yaren</subdivision>
- <subdivision type="nzauk" draft="contributed">Auckland</subdivision>
- <subdivision type="nzbop" draft="contributed">Bay of Plenty</subdivision>
- <subdivision type="nzcan" draft="contributed">Canterbury</subdivision>
- <subdivision type="nzcit" draft="contributed">Chathamøyene</subdivision>
- <subdivision type="nzgis" draft="contributed">Gisborne</subdivision>
- <subdivision type="nzhkb" draft="contributed">Hawke’s Bay</subdivision>
- <subdivision type="nzmbh" draft="contributed">Marlborough</subdivision>
- <subdivision type="nzmwt" draft="contributed">Manawatu-Wanganui</subdivision>
- <subdivision type="nzntl" draft="contributed">Northland</subdivision>
- <subdivision type="nzota" draft="contributed">Otago</subdivision>
- <subdivision type="nzstl" draft="contributed">Southland</subdivision>
- <subdivision type="nztas" draft="contributed">Tasman</subdivision>
- <subdivision type="nztki" draft="contributed">Taranaki</subdivision>
- <subdivision type="nzwgn" draft="contributed">Wellington</subdivision>
- <subdivision type="nzwko" draft="contributed">Waikato</subdivision>
- <subdivision type="nzwtc" draft="contributed">West Coast</subdivision>
- <subdivision type="ombj" draft="contributed">Sør-Al Batinah</subdivision>
- <subdivision type="ombs" draft="contributed">Nord-Al Batinah</subdivision>
- <subdivision type="ombu" draft="contributed">Al Buraimi</subdivision>
- <subdivision type="omda" draft="contributed">Ad Dakhiliyah</subdivision>
- <subdivision type="omma" draft="contributed">Muskat</subdivision>
- <subdivision type="ommu" draft="contributed">Musandam</subdivision>
- <subdivision type="omsj" draft="contributed">Sør-Ash Sharqiyah</subdivision>
- <subdivision type="omss" draft="contributed">Nord-Ash Sharqiyah</subdivision>
- <subdivision type="omwu" draft="contributed">Al Wusta</subdivision>
- <subdivision type="omza" draft="contributed">Ad Dhahirah</subdivision>
- <subdivision type="omzu" draft="contributed">Dhofar</subdivision>
- <subdivision type="pa1" draft="contributed">Bocas del Toro</subdivision>
- <subdivision type="pa2" draft="contributed">Cocle provins</subdivision>
- <subdivision type="pa3" draft="contributed">Colon provins</subdivision>
- <subdivision type="pa4" draft="contributed">Chiriqui Prrvins</subdivision>
- <subdivision type="pa5" draft="contributed">Darien provins</subdivision>
- <subdivision type="pa6" draft="contributed">Herrera Kommune</subdivision>
- <subdivision type="pa7" draft="contributed">Los Santos Provins</subdivision>
- <subdivision type="pa8" draft="contributed">Panamá</subdivision>
- <subdivision type="pa9" draft="contributed">Veraguas provins</subdivision>
- <subdivision type="paem" draft="contributed">Embera Wounaan Comarca</subdivision>
- <subdivision type="paky" draft="contributed">Kuna Yala</subdivision>
- <subdivision type="panb" draft="contributed">Ngobe-Bugle Comarca</subdivision>
- <subdivision type="peama" draft="contributed">Amazonas</subdivision>
- <subdivision type="peanc" draft="contributed">Ancash</subdivision>
- <subdivision type="peapu" draft="contributed">Apurímac</subdivision>
- <subdivision type="peare" draft="contributed">Arequipa</subdivision>
- <subdivision type="peaya" draft="contributed">Ayacucho</subdivision>
- <subdivision type="pecaj" draft="contributed">Cajamarca</subdivision>
- <subdivision type="pecal" draft="contributed">Callao</subdivision>
- <subdivision type="pecus" draft="contributed">Cusco</subdivision>
- <subdivision type="pehuc" draft="contributed">Huánuco</subdivision>
- <subdivision type="pehuv" draft="contributed">Huancavelica</subdivision>
- <subdivision type="peica" draft="contributed">Ica</subdivision>
- <subdivision type="pejun" draft="contributed">Junín</subdivision>
- <subdivision type="pelal" draft="contributed">La Libertad</subdivision>
- <subdivision type="pelam" draft="contributed">Lambayeque</subdivision>
- <subdivision type="pelim" draft="contributed">Lima</subdivision>
- <subdivision type="pelma" draft="contributed">Lima provins</subdivision>
- <subdivision type="pelor" draft="contributed">Loreto</subdivision>
- <subdivision type="pemdd" draft="contributed">Madre de Dios</subdivision>
- <subdivision type="pemoq" draft="contributed">Moquegua</subdivision>
- <subdivision type="pepas" draft="contributed">Pasco</subdivision>
- <subdivision type="pepiu" draft="contributed">Piura</subdivision>
- <subdivision type="pepun" draft="contributed">Puno</subdivision>
- <subdivision type="pesam" draft="contributed">San Martín</subdivision>
- <subdivision type="petac" draft="contributed">Tacna</subdivision>
- <subdivision type="petum" draft="contributed">Tumbes</subdivision>
- <subdivision type="peuca" draft="contributed">Ucayali</subdivision>
- <subdivision type="pgcpk" draft="contributed">Simbu provins</subdivision>
- <subdivision type="pgcpm" draft="contributed">Central</subdivision>
- <subdivision type="pgebr" draft="contributed">Øst Ny Britland</subdivision>
- <subdivision type="pgehg" draft="contributed">Øst høylands provins</subdivision>
- <subdivision type="pgepw" draft="contributed">Enga provins</subdivision>
- <subdivision type="pgesw" draft="contributed">East Sepik</subdivision>
- <subdivision type="pggpk" draft="contributed">Gulf</subdivision>
- <subdivision type="pgmba" draft="contributed">Milne Bay</subdivision>
- <subdivision type="pgmpl" draft="contributed">Morobe provins</subdivision>
- <subdivision type="pgmpm" draft="contributed">Madang provins</subdivision>
- <subdivision type="pgmrl" draft="contributed">Manus provins</subdivision>
- <subdivision type="pgncd" draft="contributed">Port Moresby</subdivision>
- <subdivision type="pgnik" draft="contributed">Ny Irland provins</subdivision>
- <subdivision type="pgnpp" draft="contributed">Oro</subdivision>
- <subdivision type="pgnsb" draft="contributed">Bougainville</subdivision>
- <subdivision type="pgsan" draft="contributed">Sandaun provins</subdivision>
- <subdivision type="pgshm" draft="contributed">Sør høylands provins</subdivision>
- <subdivision type="pgwbk" draft="contributed">Vest Nye Britiske provins</subdivision>
- <subdivision type="pgwhm" draft="contributed">Vest Høyland provins</subdivision>
- <subdivision type="ph00" draft="contributed">Metro Manila</subdivision>
- <subdivision type="ph01" draft="contributed">Ilocos Region</subdivision>
- <subdivision type="ph02" draft="contributed">Cagayan Valley</subdivision>
- <subdivision type="ph03" draft="contributed">Central Luzon</subdivision>
- <subdivision type="ph05" draft="contributed">Bicol Region</subdivision>
- <subdivision type="ph06" draft="contributed">Western Visayas</subdivision>
- <subdivision type="ph09" draft="contributed">Zamboangahalvøya</subdivision>
- <subdivision type="ph10" draft="contributed">Northern Mindanao</subdivision>
- <subdivision type="ph13" draft="contributed">Caraga</subdivision>
- <subdivision type="ph14" draft="contributed">Autonomous Region in Muslim Mindanao</subdivision>
- <subdivision type="ph15" draft="contributed">Cordillera Administrative Region</subdivision>
- <subdivision type="ph40" draft="contributed">Calabarzon</subdivision>
- <subdivision type="ph41" draft="contributed">MIMAROPA</subdivision>
- <subdivision type="phabr" draft="contributed">Abra</subdivision>
- <subdivision type="phagn" draft="contributed">Agusan del Norte</subdivision>
- <subdivision type="phags" draft="contributed">Agusan del Sur</subdivision>
- <subdivision type="phakl" draft="contributed">Aklan</subdivision>
- <subdivision type="phalb" draft="contributed">Albay</subdivision>
- <subdivision type="phant" draft="contributed">Antique</subdivision>
- <subdivision type="phapa" draft="contributed">Apayao</subdivision>
- <subdivision type="phaur" draft="contributed">Aurora</subdivision>
- <subdivision type="phban" draft="contributed">Bataan</subdivision>
- <subdivision type="phbas" draft="contributed">Basilan</subdivision>
- <subdivision type="phben" draft="contributed">Benguet</subdivision>
- <subdivision type="phbil" draft="contributed">Biliran</subdivision>
- <subdivision type="phboh" draft="contributed">Bohol</subdivision>
- <subdivision type="phbtg" draft="contributed">Batangas</subdivision>
- <subdivision type="phbtn" draft="contributed">Batanes</subdivision>
- <subdivision type="phbuk" draft="contributed">Bukidnon</subdivision>
- <subdivision type="phbul" draft="contributed">Bulacan</subdivision>
- <subdivision type="phcag" draft="contributed">Cagayan</subdivision>
- <subdivision type="phcam" draft="contributed">Camiguin</subdivision>
- <subdivision type="phcan" draft="contributed">Camarines Norte</subdivision>
- <subdivision type="phcap" draft="contributed">Capiz</subdivision>
- <subdivision type="phcas" draft="contributed">Camarines Sur</subdivision>
- <subdivision type="phcat" draft="contributed">Catanduanes</subdivision>
- <subdivision type="phcav" draft="contributed">Cavite</subdivision>
- <subdivision type="phceb" draft="contributed">Cebu</subdivision>
- <subdivision type="phcom" draft="contributed">Compostela Valley</subdivision>
- <subdivision type="phdao" draft="contributed">Davao Oriental</subdivision>
- <subdivision type="phdas" draft="contributed">Davao del Sur</subdivision>
- <subdivision type="phdav" draft="contributed">Davao del Norte</subdivision>
- <subdivision type="phdin" draft="contributed">Dinagat Islands</subdivision>
- <subdivision type="pheas" draft="contributed">Eastern Samar</subdivision>
- <subdivision type="phgui" draft="contributed">Guimaras</subdivision>
- <subdivision type="phifu" draft="contributed">Ifugao</subdivision>
- <subdivision type="phili" draft="contributed">Iloilo</subdivision>
- <subdivision type="philn" draft="contributed">Ilocos Norte</subdivision>
- <subdivision type="phils" draft="contributed">Ilocos Sur</subdivision>
- <subdivision type="phisa" draft="contributed">Isabela</subdivision>
- <subdivision type="phkal" draft="contributed">Kalinga</subdivision>
- <subdivision type="phlag" draft="contributed">Laguna</subdivision>
- <subdivision type="phlan" draft="contributed">Lanao del Norte</subdivision>
- <subdivision type="phlas" draft="contributed">Lanao del Sur</subdivision>
- <subdivision type="phley" draft="contributed">Leyte</subdivision>
- <subdivision type="phlun" draft="contributed">La Union</subdivision>
- <subdivision type="phmad" draft="contributed">Marinduque</subdivision>
- <subdivision type="phmag" draft="contributed">Maguindanao</subdivision>
- <subdivision type="phmas" draft="contributed">Masbate</subdivision>
- <subdivision type="phmdc" draft="contributed">Occidental Mindoro</subdivision>
- <subdivision type="phmdr" draft="contributed">Oriental Mindoro</subdivision>
- <subdivision type="phmou" draft="contributed">Bergsprovinsen</subdivision>
- <subdivision type="phmsc" draft="contributed">Misamis Occidental</subdivision>
- <subdivision type="phmsr" draft="contributed">Misamis Oriental</subdivision>
- <subdivision type="phnco" draft="contributed">Cotabato</subdivision>
- <subdivision type="phnec" draft="contributed">Negros Occidental</subdivision>
- <subdivision type="phner" draft="contributed">Negros Oriental</subdivision>
- <subdivision type="phnsa" draft="contributed">Northern Samar</subdivision>
- <subdivision type="phnue" draft="contributed">Nueva Ecija</subdivision>
- <subdivision type="phnuv" draft="contributed">Nueva Vizcaya</subdivision>
- <subdivision type="phpam" draft="contributed">Pampanga</subdivision>
- <subdivision type="phpan" draft="contributed">Pangasinan</subdivision>
- <subdivision type="phplw" draft="contributed">Palawan</subdivision>
- <subdivision type="phque" draft="contributed">Quezon</subdivision>
- <subdivision type="phqui" draft="contributed">Quirino</subdivision>
- <subdivision type="phriz" draft="contributed">Rizal</subdivision>
- <subdivision type="phrom" draft="contributed">Romblon</subdivision>
- <subdivision type="phsar" draft="contributed">Sarangani</subdivision>
- <subdivision type="phsco" draft="contributed">South Cotabato</subdivision>
- <subdivision type="phsig" draft="contributed">Siquijor</subdivision>
- <subdivision type="phsle" draft="contributed">Southern Leyte</subdivision>
- <subdivision type="phslu" draft="contributed">Sulu</subdivision>
- <subdivision type="phsor" draft="contributed">Sorsogon</subdivision>
- <subdivision type="phsuk" draft="contributed">Sultan Kudarat</subdivision>
- <subdivision type="phsun" draft="contributed">Surigao del Norte</subdivision>
- <subdivision type="phsur" draft="contributed">Surigao del Sur</subdivision>
- <subdivision type="phtar" draft="contributed">Tarlac</subdivision>
- <subdivision type="phtaw" draft="contributed">Tawi-Tawi</subdivision>
- <subdivision type="phwsa" draft="contributed">Samar</subdivision>
- <subdivision type="phzan" draft="contributed">Zamboanga del Norte</subdivision>
- <subdivision type="phzas" draft="contributed">Zamboanga del Sur</subdivision>
- <subdivision type="phzmb" draft="contributed">Zambales</subdivision>
- <subdivision type="phzsi" draft="contributed">Zamboanga Sibugay</subdivision>
- <subdivision type="pkba" draft="contributed">Balutsjistan</subdivision>
- <subdivision type="pkgb" draft="contributed">Gilgit-Baltistan</subdivision>
- <subdivision type="pkis" draft="contributed">Islamabad hovedstadsterritorium</subdivision>
- <subdivision type="pkjk" draft="contributed">Azad Kashmir</subdivision>
- <subdivision type="pkkp" draft="contributed">Khyber Pakhtunkhwa</subdivision>
- <subdivision type="pkpb" draft="contributed">Punjab</subdivision>
- <subdivision type="pksd" draft="contributed">Sind</subdivision>
- <subdivision type="pkta" draft="contributed">Pakistans føderalt administrerte stammeområder</subdivision>
- <subdivision type="pl02" draft="contributed">Nederschlesiske voivodskap</subdivision>
- <subdivision type="pl04" draft="contributed">Kujaviskpommerske voivodskap</subdivision>
- <subdivision type="pl06" draft="contributed">Lublin voivodskap</subdivision>
- <subdivision type="pl08" draft="contributed">Lubusz voivodskap</subdivision>
- <subdivision type="pl10" draft="contributed">Łódź voivodskap</subdivision>
- <subdivision type="pl12" draft="contributed">Lillepolske voivodskap</subdivision>
- <subdivision type="pl14" draft="contributed">Masoviske voivodskap</subdivision>
- <subdivision type="pl16" draft="contributed">Opole voivodskap</subdivision>
- <subdivision type="pl18" draft="contributed">Subkarpatiske voivodskap</subdivision>
- <subdivision type="pl20" draft="contributed">Podlasie voivodskap</subdivision>
- <subdivision type="pl22" draft="contributed">Pommerske voivodskap</subdivision>
- <subdivision type="pl24" draft="contributed">Schlesiske voivodskap</subdivision>
- <subdivision type="pl26" draft="contributed">Helligkorsvoivodskapet</subdivision>
- <subdivision type="pl28" draft="contributed">Ermlandskmasuriske voivodskap</subdivision>
- <subdivision type="pl30" draft="contributed">Storpolske voivodskap</subdivision>
- <subdivision type="pl32" draft="contributed">Vestpommerske voivodskap</subdivision>
- <subdivision type="psbth" draft="contributed">Bethlehem Governorate</subdivision>
- <subdivision type="pshbn" draft="contributed">Herbron Governorate</subdivision>
- <subdivision type="psnbs" draft="contributed">Nablus Governorate</subdivision>
- <subdivision type="psngz" draft="contributed">Nord Gaza Governorate</subdivision>
- <subdivision type="psqqa" draft="contributed">Qalqilya</subdivision>
- <subdivision type="psrbh" draft="contributed">Ramallah og al-Bireh</subdivision>
- <subdivision type="psslt" draft="contributed">Salfit Governorate</subdivision>
- <subdivision type="pstkm" draft="contributed">Tulkarm</subdivision>
- <subdivision type="pt01" draft="contributed">Aveiro</subdivision>
- <subdivision type="pt02" draft="contributed">Beja</subdivision>
- <subdivision type="pt03" draft="contributed">Braga</subdivision>
- <subdivision type="pt04" draft="contributed">Bragança</subdivision>
- <subdivision type="pt05" draft="contributed">Castelo Branco</subdivision>
- <subdivision type="pt06" draft="contributed">Coimbra</subdivision>
- <subdivision type="pt07" draft="contributed">Évora</subdivision>
- <subdivision type="pt08" draft="contributed">Faro</subdivision>
- <subdivision type="pt09" draft="contributed">Guarda</subdivision>
- <subdivision type="pt10" draft="contributed">Leiria</subdivision>
- <subdivision type="pt11" draft="contributed">Lisboa</subdivision>
- <subdivision type="pt12" draft="contributed">Portalegre</subdivision>
- <subdivision type="pt13" draft="contributed">Porto</subdivision>
- <subdivision type="pt14" draft="contributed">Santarém</subdivision>
- <subdivision type="pt15" draft="contributed">Setúbal</subdivision>
- <subdivision type="pt16" draft="contributed">Viana do Castelo</subdivision>
- <subdivision type="pt17" draft="contributed">Vila Real</subdivision>
- <subdivision type="pt18" draft="contributed">Viseu</subdivision>
- <subdivision type="pt20" draft="contributed">Asorene</subdivision>
- <subdivision type="pt30" draft="contributed">Madeira</subdivision>
- <subdivision type="pw002" draft="contributed">Aimeliik</subdivision>
- <subdivision type="pw004" draft="contributed">Airai</subdivision>
- <subdivision type="pw010" draft="contributed">Angaur</subdivision>
- <subdivision type="pw050" draft="contributed">Hatohobei</subdivision>
- <subdivision type="pw100" draft="contributed">Kayangel</subdivision>
- <subdivision type="pw150" draft="contributed">Koror</subdivision>
- <subdivision type="pw212" draft="contributed">Melekeok</subdivision>
- <subdivision type="pw214" draft="contributed">Ngaraard</subdivision>
- <subdivision type="pw218" draft="contributed">Ngarchelong</subdivision>
- <subdivision type="pw222" draft="contributed">Ngardmau</subdivision>
- <subdivision type="pw224" draft="contributed">Ngatpang</subdivision>
- <subdivision type="pw226" draft="contributed">Ngchesar</subdivision>
- <subdivision type="pw227" draft="contributed">Ngeremlengui</subdivision>
- <subdivision type="pw228" draft="contributed">Ngiwal</subdivision>
- <subdivision type="pw350" draft="contributed">Peleliu</subdivision>
- <subdivision type="pw370" draft="contributed">Sonsoral</subdivision>
- <subdivision type="py2" draft="contributed">San Pedro</subdivision>
- <subdivision type="py3" draft="contributed">Cordillera</subdivision>
- <subdivision type="py4" draft="contributed">Guaira</subdivision>
- <subdivision type="py5" draft="contributed">Caaguazu</subdivision>
- <subdivision type="py6" draft="contributed">Caazapa</subdivision>
- <subdivision type="py7" draft="contributed">Itapua</subdivision>
- <subdivision type="py8" draft="contributed">Misiones</subdivision>
- <subdivision type="py10" draft="contributed">Alto Parana</subdivision>
- <subdivision type="py11" draft="contributed">Sentral</subdivision>
- <subdivision type="py12" draft="contributed">Neembucu</subdivision>
- <subdivision type="py13" draft="contributed">Amambay</subdivision>
- <subdivision type="py14" draft="contributed">Canindeyu</subdivision>
- <subdivision type="py15" draft="contributed">Presidente Hayes</subdivision>
- <subdivision type="py16" draft="contributed">Alto Paraguai</subdivision>
- <subdivision type="py19" draft="contributed">XVI Boqueron</subdivision>
- <subdivision type="pyasu" draft="contributed">Asunción</subdivision>
- <subdivision type="qada" draft="contributed">Doha</subdivision>
- <subdivision type="qakh" draft="contributed">Al Khor</subdivision>
- <subdivision type="qams" draft="contributed">Ash Shamal</subdivision>
- <subdivision type="qara" draft="contributed">Al Rayyan kommune</subdivision>
- <subdivision type="qaus" draft="contributed">Umm Salal Kommune</subdivision>
- <subdivision type="qawa" draft="contributed">Al Wakrah</subdivision>
- <subdivision type="qaza" draft="contributed">Al Daayen</subdivision>
- <subdivision type="roab" draft="contributed">Alba</subdivision>
- <subdivision type="roag" draft="contributed">Argeș</subdivision>
- <subdivision type="roar" draft="contributed">Arad</subdivision>
- <subdivision type="rob" draft="contributed">București</subdivision>
- <subdivision type="robc" draft="contributed">Bacău</subdivision>
- <subdivision type="robh" draft="contributed">Bihor</subdivision>
- <subdivision type="robn" draft="contributed">Bistrița-Năsăud</subdivision>
- <subdivision type="robr" draft="contributed">Brăila</subdivision>
- <subdivision type="robt" draft="contributed">Botoșani</subdivision>
- <subdivision type="robv" draft="contributed">Brașov</subdivision>
- <subdivision type="robz" draft="contributed">Buzău</subdivision>
- <subdivision type="rocj" draft="contributed">Cluj</subdivision>
- <subdivision type="rocl" draft="contributed">Călărași</subdivision>
- <subdivision type="rocs" draft="contributed">Caraș-Severin</subdivision>
- <subdivision type="roct" draft="contributed">Constanța</subdivision>
- <subdivision type="rocv" draft="contributed">Covasna</subdivision>
- <subdivision type="rodb" draft="contributed">Dâmbovița</subdivision>
- <subdivision type="rodj" draft="contributed">Dolj</subdivision>
- <subdivision type="rogj" draft="contributed">Gorj</subdivision>
- <subdivision type="rogl" draft="contributed">Galați</subdivision>
- <subdivision type="rogr" draft="contributed">Giurgiu</subdivision>
- <subdivision type="rohd" draft="contributed">Hunedoara</subdivision>
- <subdivision type="rohr" draft="contributed">Harghita</subdivision>
- <subdivision type="roif" draft="contributed">Ilfov</subdivision>
- <subdivision type="roil" draft="contributed">Ialomiţa</subdivision>
- <subdivision type="rois" draft="contributed">Iași</subdivision>
- <subdivision type="romh" draft="contributed">Mehedinți</subdivision>
- <subdivision type="romm" draft="contributed">Maramureș</subdivision>
- <subdivision type="roms" draft="contributed">Mureș</subdivision>
- <subdivision type="ront" draft="contributed">Neamț</subdivision>
- <subdivision type="root" draft="contributed">Olt</subdivision>
- <subdivision type="roph" draft="contributed">Prahova</subdivision>
- <subdivision type="rosb" draft="contributed">Sibiu</subdivision>
- <subdivision type="rosj" draft="contributed">Sălaj</subdivision>
- <subdivision type="rosm" draft="contributed">Satu Mare</subdivision>
- <subdivision type="rosv" draft="contributed">Suceava</subdivision>
- <subdivision type="rotl" draft="contributed">Tulcea</subdivision>
- <subdivision type="rotm" draft="contributed">Timiș</subdivision>
- <subdivision type="rotr" draft="contributed">Teleorman</subdivision>
- <subdivision type="rovl" draft="contributed">Vâlcea</subdivision>
- <subdivision type="rovn" draft="contributed">Vrancea</subdivision>
- <subdivision type="rovs" draft="contributed">Vaslui</subdivision>
- <subdivision type="rs00" draft="contributed">Beograd</subdivision>
- <subdivision type="rs01" draft="contributed">Nord Backa distrikt</subdivision>
- <subdivision type="rs02" draft="contributed">Sentral Banat distrikt</subdivision>
- <subdivision type="rs03" draft="contributed">Nord Banat distrikt</subdivision>
- <subdivision type="rs04" draft="contributed">Sør Banat distrikt</subdivision>
- <subdivision type="rs05" draft="contributed">Vest Backa Distrikt</subdivision>
- <subdivision type="rs06" draft="contributed">Sør Backa</subdivision>
- <subdivision type="rs07" draft="contributed">Srem Distrikt</subdivision>
- <subdivision type="rs08" draft="contributed">Macva distrikt</subdivision>
- <subdivision type="rs09" draft="contributed">Kolubare distrikt</subdivision>
- <subdivision type="rs10" draft="contributed">Podunavlje distrikt</subdivision>
- <subdivision type="rs11" draft="contributed">Branicevo distrikt</subdivision>
- <subdivision type="rs12" draft="contributed">Sumadija distrikt</subdivision>
- <subdivision type="rs13" draft="contributed">Pomoravlje distrikt</subdivision>
- <subdivision type="rs14" draft="contributed">Bor distrikt</subdivision>
- <subdivision type="rs15" draft="contributed">Zajecar distrikt</subdivision>
- <subdivision type="rs16" draft="contributed">Zlatibor distrikt</subdivision>
- <subdivision type="rs17" draft="contributed">Moravica distrikt</subdivision>
- <subdivision type="rs18" draft="contributed">Raska distrikt</subdivision>
- <subdivision type="rs19" draft="contributed">Rasina distrikt</subdivision>
- <subdivision type="rs20" draft="contributed">Nisava Distrikt</subdivision>
- <subdivision type="rs21" draft="contributed">Toplica distrikt</subdivision>
- <subdivision type="rs22" draft="contributed">Pirot distrikt</subdivision>
- <subdivision type="rs23" draft="contributed">Jablanica distrikt</subdivision>
- <subdivision type="rs24" draft="contributed">Pcinja distrikt</subdivision>
- <subdivision type="rsvo" draft="contributed">Vojvodina</subdivision>
- <subdivision type="ruad" draft="contributed">Adygia</subdivision>
- <subdivision type="rual" draft="contributed">Altaj</subdivision>
- <subdivision type="rualt" draft="contributed">Altaj²</subdivision>
- <subdivision type="ruamu" draft="contributed">Amur</subdivision>
- <subdivision type="ruark" draft="contributed">Arkhangelsk</subdivision>
- <subdivision type="ruast" draft="contributed">Astrakhan</subdivision>
- <subdivision type="ruba" draft="contributed">Basjkortostan</subdivision>
- <subdivision type="rubel" draft="contributed">Belgorod</subdivision>
- <subdivision type="rubry" draft="contributed">Brjansk</subdivision>
- <subdivision type="rubu" draft="contributed">Burjatia</subdivision>
- <subdivision type="ruce" draft="contributed">Tsjetsjenia</subdivision>
- <subdivision type="ruche" draft="contributed">Tsjeljabinsk</subdivision>
- <subdivision type="ruchu" draft="contributed">Tsjukotka</subdivision>
- <subdivision type="rucu" draft="contributed">Tsjuvasjia</subdivision>
- <subdivision type="ruda" draft="contributed">Dagestan</subdivision>
- <subdivision type="ruin" draft="contributed">Ingusjetia</subdivision>
- <subdivision type="ruirk" draft="contributed">Irkutsk</subdivision>
- <subdivision type="ruiva" draft="contributed">Ivanovo</subdivision>
- <subdivision type="rukam" draft="contributed">Kamtsjatka</subdivision>
- <subdivision type="rukb" draft="contributed">Kabardino-Balkaria</subdivision>
- <subdivision type="rukc" draft="contributed">Karatsjajevo-Tsjerkessia</subdivision>
- <subdivision type="rukda" draft="contributed">Krasnodar</subdivision>
- <subdivision type="rukem" draft="contributed">Kemerovo</subdivision>
- <subdivision type="rukgd" draft="contributed">Kaliningrad</subdivision>
- <subdivision type="rukgn" draft="contributed">Kurgan</subdivision>
- <subdivision type="rukha" draft="contributed">Khabarovsk</subdivision>
- <subdivision type="rukhm" draft="contributed">Khanty-Mansia</subdivision>
- <subdivision type="rukir" draft="contributed">Kirov</subdivision>
- <subdivision type="rukk" draft="contributed">Khakasia</subdivision>
- <subdivision type="rukl" draft="contributed">Kalmykia</subdivision>
- <subdivision type="ruklu" draft="contributed">Kaluga</subdivision>
- <subdivision type="ruko" draft="contributed">Komi</subdivision>
- <subdivision type="rukos" draft="contributed">Kostroma</subdivision>
- <subdivision type="rukr" draft="contributed">Karelia</subdivision>
- <subdivision type="rukrs" draft="contributed">Kursk</subdivision>
- <subdivision type="rukya" draft="contributed">Krasnojarsk</subdivision>
- <subdivision type="rulen" draft="contributed">Leningrad</subdivision>
- <subdivision type="rulip" draft="contributed">Lipetsk</subdivision>
- <subdivision type="rumag" draft="contributed">Magadan</subdivision>
- <subdivision type="rume" draft="contributed">Mari El</subdivision>
- <subdivision type="rumo" draft="contributed">Mordovia</subdivision>
- <subdivision type="rumos" draft="contributed">Moskva</subdivision>
- <subdivision type="rumow" draft="contributed">Moskva²</subdivision>
- <subdivision type="rumur" draft="contributed">Murmansk</subdivision>
- <subdivision type="runen" draft="contributed">Nenetsk</subdivision>
- <subdivision type="rungr" draft="contributed">Novgorod</subdivision>
- <subdivision type="runiz" draft="contributed">Nizjnij Novgorod</subdivision>
- <subdivision type="runvs" draft="contributed">Novosibirsk</subdivision>
- <subdivision type="ruoms" draft="contributed">Omsk</subdivision>
- <subdivision type="ruore" draft="contributed">Orenburg</subdivision>
- <subdivision type="ruorl" draft="contributed">Orjol</subdivision>
- <subdivision type="ruper" draft="contributed">Perm</subdivision>
- <subdivision type="rupnz" draft="contributed">Penza</subdivision>
- <subdivision type="rupri" draft="contributed">Primorskij</subdivision>
- <subdivision type="rupsk" draft="contributed">Pskov</subdivision>
- <subdivision type="ruros" draft="contributed">Rostov</subdivision>
- <subdivision type="rurya" draft="contributed">Rjazan</subdivision>
- <subdivision type="rusa" draft="contributed">Sakha</subdivision>
- <subdivision type="rusak" draft="contributed">Sakhalin</subdivision>
- <subdivision type="rusam" draft="contributed">Samara</subdivision>
- <subdivision type="rusar" draft="contributed">Saratov</subdivision>
- <subdivision type="ruse" draft="contributed">Nord-Ossetia</subdivision>
- <subdivision type="rusmo" draft="contributed">Smolensk</subdivision>
- <subdivision type="ruspe" draft="contributed">St. Petersburg</subdivision>
- <subdivision type="rusta" draft="contributed">Stavropol</subdivision>
- <subdivision type="rusve" draft="contributed">Sverdlovsk</subdivision>
- <subdivision type="ruta" draft="contributed">Tatarstan</subdivision>
- <subdivision type="rutam" draft="contributed">Tambov</subdivision>
- <subdivision type="rutom" draft="contributed">Tomsk</subdivision>
- <subdivision type="rutul" draft="contributed">Tula</subdivision>
- <subdivision type="rutve" draft="contributed">Tver</subdivision>
- <subdivision type="ruty" draft="contributed">Tuva</subdivision>
- <subdivision type="rutyu" draft="contributed">Tjumen</subdivision>
- <subdivision type="ruud" draft="contributed">Udmurtia</subdivision>
- <subdivision type="ruuly" draft="contributed">Uljanovsk</subdivision>
- <subdivision type="ruvgg" draft="contributed">Volgograd</subdivision>
- <subdivision type="ruvla" draft="contributed">Vladimir</subdivision>
- <subdivision type="ruvlg" draft="contributed">Vologda</subdivision>
- <subdivision type="ruvor" draft="contributed">Voronezj</subdivision>
- <subdivision type="ruyan" draft="contributed">Jamalo-Nenetsk</subdivision>
- <subdivision type="ruyar" draft="contributed">Jaroslavl</subdivision>
- <subdivision type="ruyev" draft="contributed">Den jødiske autonome oblast</subdivision>
- <subdivision type="ruzab" draft="contributed">Zabajkalskij</subdivision>
- <subdivision type="rw01" draft="contributed">Kigali</subdivision>
- <subdivision type="rw02" draft="contributed">Vest provins</subdivision>
- <subdivision type="rw03" draft="contributed">Nord provins</subdivision>
- <subdivision type="rw04" draft="contributed">Vestlig provins</subdivision>
- <subdivision type="rw05" draft="contributed">sør provins</subdivision>
- <subdivision type="sa01" draft="contributed">Ar Riyad (provins)</subdivision>
- <subdivision type="sa02" draft="contributed">Mekka</subdivision>
- <subdivision type="sa03" draft="contributed">Medina</subdivision>
- <subdivision type="sa04" draft="contributed">Ash Sharqiyah</subdivision>
- <subdivision type="sa05" draft="contributed">Al Qasim (provins)</subdivision>
- <subdivision type="sa06" draft="contributed">Ha’il</subdivision>
- <subdivision type="sa07" draft="contributed">Tabuk (provins)</subdivision>
- <subdivision type="sa08" draft="contributed">Al Hudud ash Shamaliyah</subdivision>
- <subdivision type="sa09" draft="contributed">Jizan</subdivision>
- <subdivision type="sa10" draft="contributed">Najran</subdivision>
- <subdivision type="sa11" draft="contributed">al-Bāḥa</subdivision>
- <subdivision type="sa12" draft="contributed">Al Jawf (provins)</subdivision>
- <subdivision type="sa14" draft="contributed">Asir</subdivision>
- <subdivision type="sbce" draft="contributed">Sentral provins</subdivision>
- <subdivision type="sbch" draft="contributed">Chosieul provins</subdivision>
- <subdivision type="sbct" draft="contributed">Honiara</subdivision>
- <subdivision type="sbgu" draft="contributed">Guadalcanal provins</subdivision>
- <subdivision type="sbis" draft="contributed">Isabel provins</subdivision>
- <subdivision type="sbml" draft="contributed">Malaita provins</subdivision>
- <subdivision type="sbrb" draft="contributed">Rennell and Bellona provins</subdivision>
- <subdivision type="sbte" draft="contributed">Temotu-provinsen</subdivision>
- <subdivision type="sbwe" draft="contributed">Vest provinsen</subdivision>
- <subdivision type="sc01" draft="contributed">Anse aux Pins</subdivision>
- <subdivision type="sc02" draft="contributed">Anse Boileau</subdivision>
- <subdivision type="sc03" draft="contributed">Anse Etoile</subdivision>
- <subdivision type="sc04" draft="contributed">Au Cap</subdivision>
- <subdivision type="sc05" draft="contributed">Anse Royale</subdivision>
- <subdivision type="sc06" draft="contributed">Baie Lazare</subdivision>
- <subdivision type="sc07" draft="contributed">Baie Sainte Anne</subdivision>
- <subdivision type="sc08" draft="contributed">Beau Vallon</subdivision>
- <subdivision type="sc09" draft="contributed">Bel Air</subdivision>
- <subdivision type="sc10" draft="contributed">Bel Ombre</subdivision>
- <subdivision type="sc11" draft="contributed">Cascade</subdivision>
- <subdivision type="sc12" draft="contributed">Glacis</subdivision>
- <subdivision type="sc14" draft="contributed">Grand Anse Praslin</subdivision>
- <subdivision type="sc16" draft="contributed">English River</subdivision>
- <subdivision type="sc17" draft="contributed">Mont Buxton</subdivision>
- <subdivision type="sc18" draft="contributed">Mont Fleuri</subdivision>
- <subdivision type="sc19" draft="contributed">Plaisance</subdivision>
- <subdivision type="sc20" draft="contributed">Pointe La Rue</subdivision>
- <subdivision type="sc21" draft="contributed">Port Glaud</subdivision>
- <subdivision type="sc22" draft="contributed">Saint Louis</subdivision>
- <subdivision type="sc23" draft="contributed">Takamaka</subdivision>
- <subdivision type="sc24" draft="contributed">Les Mamelles</subdivision>
- <subdivision type="sc25" draft="contributed">Roche Caiman</subdivision>
- <subdivision type="sddc" draft="contributed">Darfur senter</subdivision>
- <subdivision type="sdde" draft="contributed">Vest Darfur</subdivision>
- <subdivision type="sddn" draft="contributed">Nord-Darfur</subdivision>
- <subdivision type="sdds" draft="contributed">Sør Darfur</subdivision>
- <subdivision type="sddw" draft="contributed">Vest Dafur</subdivision>
- <subdivision type="sdgd" draft="contributed">Al-Qadarif</subdivision>
- <subdivision type="sdgz" draft="contributed">Al Jazirah</subdivision>
- <subdivision type="sdka" draft="contributed">Kassala</subdivision>
- <subdivision type="sdkh" draft="contributed">Khartoum</subdivision>
- <subdivision type="sdkn" draft="contributed">Nord Kurdufan</subdivision>
- <subdivision type="sdks" draft="contributed">Sør Kordofan</subdivision>
- <subdivision type="sdnb" draft="contributed">An-Nil al-Azraq</subdivision>
- <subdivision type="sdno" draft="contributed">Nord</subdivision>
- <subdivision type="sdnr" draft="contributed">Nil elven</subdivision>
- <subdivision type="sdnw" draft="contributed">Hvite nil</subdivision>
- <subdivision type="sdrs" draft="contributed">Rød sjøen</subdivision>
- <subdivision type="sdsi" draft="contributed">Sennar</subdivision>
- <subdivision type="seab" draft="contributed">Stockholms län</subdivision>
- <subdivision type="seac" draft="contributed">Västerbottens län</subdivision>
- <subdivision type="sebd" draft="contributed">Norrbottens län</subdivision>
- <subdivision type="sec" draft="contributed">Uppsala län</subdivision>
- <subdivision type="sed" draft="contributed">Södermanlands län</subdivision>
- <subdivision type="see" draft="contributed">Östergötlands län</subdivision>
- <subdivision type="sef" draft="contributed">Jönköpings län</subdivision>
- <subdivision type="seg" draft="contributed">Kronobergs län</subdivision>
- <subdivision type="seh" draft="contributed">Kalmar län</subdivision>
- <subdivision type="sei" draft="contributed">Gotlands län</subdivision>
- <subdivision type="sek" draft="contributed">Blekinge län</subdivision>
- <subdivision type="sem" draft="contributed">Skåne län</subdivision>
- <subdivision type="sen" draft="contributed">Hallands län</subdivision>
- <subdivision type="seo" draft="contributed">Västra Götalands län</subdivision>
- <subdivision type="ses" draft="contributed">Värmlands län</subdivision>
- <subdivision type="set" draft="contributed">Örebro län</subdivision>
- <subdivision type="seu" draft="contributed">Västmanlands län</subdivision>
- <subdivision type="sew" draft="contributed">Dalarnas län</subdivision>
- <subdivision type="sex" draft="contributed">Gävleborgs län</subdivision>
- <subdivision type="sey" draft="contributed">Västernorrlands län</subdivision>
- <subdivision type="sez" draft="contributed">Jämtlands län</subdivision>
- <subdivision type="shac" draft="contributed">Ascension</subdivision>
- <subdivision type="shhl" draft="contributed">St. Helena</subdivision>
- <subdivision type="si001" draft="contributed">Ajdovscina kommune</subdivision>
- <subdivision type="si002" draft="contributed">Beltinci kommune</subdivision>
- <subdivision type="si003" draft="contributed">Bled kommune</subdivision>
- <subdivision type="si004" draft="contributed">Bohinj Kommune</subdivision>
- <subdivision type="si005" draft="contributed">Borovnica kommune</subdivision>
- <subdivision type="si006" draft="contributed">Bovec kommune</subdivision>
- <subdivision type="si007" draft="contributed">Brda kommune</subdivision>
- <subdivision type="si008" draft="contributed">Brezovica Kommune</subdivision>
- <subdivision type="si009" draft="contributed">Brezice kommune</subdivision>
- <subdivision type="si010" draft="contributed">Tišina</subdivision>
- <subdivision type="si011" draft="contributed">Celje Hovedstad</subdivision>
- <subdivision type="si012" draft="contributed">Cerklje na Gorenjskem</subdivision>
- <subdivision type="si013" draft="contributed">Cerknica kommune</subdivision>
- <subdivision type="si014" draft="contributed">Cerko kommune</subdivision>
- <subdivision type="si015" draft="contributed">Crensovci kommune</subdivision>
- <subdivision type="si016" draft="contributed">Črna na Koroškem</subdivision>
- <subdivision type="si017" draft="contributed">Cronmelj kommune</subdivision>
- <subdivision type="si018" draft="contributed">Destrnik kommune</subdivision>
- <subdivision type="si019" draft="contributed">Divaca Kommune</subdivision>
- <subdivision type="si020" draft="contributed">Dobrepolje kommune</subdivision>
- <subdivision type="si021" draft="contributed">Dobrova-Polhow Gradec Kommune</subdivision>
- <subdivision type="si022" draft="contributed">Dol pri Ljubljani kommune</subdivision>
- <subdivision type="si024" draft="contributed">Dornava kommune</subdivision>
- <subdivision type="si025" draft="contributed">Dravograd kommune</subdivision>
- <subdivision type="si026" draft="contributed">Duplek Kommune</subdivision>
- <subdivision type="si027" draft="contributed">Gorenja Vas-Poljane kommune</subdivision>
- <subdivision type="si028" draft="contributed">Gorisnica kommune</subdivision>
- <subdivision type="si030" draft="contributed">Gornij Grand kommune</subdivision>
- <subdivision type="si031" draft="contributed">Gornji kommune</subdivision>
- <subdivision type="si032" draft="contributed">Grosuplje kommune</subdivision>
- <subdivision type="si033" draft="contributed">Salovci</subdivision>
- <subdivision type="si034" draft="contributed">Hrastnik Kommune</subdivision>
- <subdivision type="si035" draft="contributed">Hrpelje Kozina Kommune</subdivision>
- <subdivision type="si037" draft="contributed">Ig Kommune</subdivision>
- <subdivision type="si039" draft="contributed">Ivancna Gorica Kommune</subdivision>
- <subdivision type="si040" draft="contributed">Izola</subdivision>
- <subdivision type="si041" draft="contributed">Jesenice</subdivision>
- <subdivision type="si042" draft="contributed">Jursinci kommune</subdivision>
- <subdivision type="si043" draft="contributed">Kamnik kommune</subdivision>
- <subdivision type="si044" draft="contributed">Kanal ob Soci</subdivision>
- <subdivision type="si045" draft="contributed">Kidricevo Kommune</subdivision>
- <subdivision type="si046" draft="contributed">Kobarid</subdivision>
- <subdivision type="si047" draft="contributed">Kobilje</subdivision>
- <subdivision type="si048" draft="contributed">Kocevje kommune</subdivision>
- <subdivision type="si049" draft="contributed">Komen Kommune</subdivision>
- <subdivision type="si051" draft="contributed">Kozje Kommune</subdivision>
- <subdivision type="si052" draft="contributed">Kranj City kommune</subdivision>
- <subdivision type="si053" draft="contributed">Kranjska Gora</subdivision>
- <subdivision type="si054" draft="contributed">Krsko kommune</subdivision>
- <subdivision type="si055" draft="contributed">Kungoto Kommune</subdivision>
- <subdivision type="si056" draft="contributed">Kuzma kommune</subdivision>
- <subdivision type="si057" draft="contributed">Lasko kommune</subdivision>
- <subdivision type="si058" draft="contributed">Lenart Kommune</subdivision>
- <subdivision type="si059" draft="contributed">Lendava</subdivision>
- <subdivision type="si060" draft="contributed">Litija kommune</subdivision>
- <subdivision type="si062" draft="contributed">Ljubno kommune</subdivision>
- <subdivision type="si064" draft="contributed">Logatec</subdivision>
- <subdivision type="si065" draft="contributed">Loska Dolina Kommune</subdivision>
- <subdivision type="si066" draft="contributed">Loski Potok Kommune</subdivision>
- <subdivision type="si067" draft="contributed">Luca kommune</subdivision>
- <subdivision type="si068" draft="contributed">Lukovica Kommune</subdivision>
- <subdivision type="si069" draft="contributed">Majsperk kommune</subdivision>
- <subdivision type="si070" draft="contributed">Maribor City kommune</subdivision>
- <subdivision type="si071" draft="contributed">Medvode Kommune</subdivision>
- <subdivision type="si072" draft="contributed">Menges Kommune</subdivision>
- <subdivision type="si073" draft="contributed">Metlika</subdivision>
- <subdivision type="si075" draft="contributed">Miren-kostanjevica kommune</subdivision>
- <subdivision type="si076" draft="contributed">Mislinja</subdivision>
- <subdivision type="si077" draft="contributed">Moravce kommune</subdivision>
- <subdivision type="si078" draft="contributed">MOravske Toplice kommune</subdivision>
- <subdivision type="si079" draft="contributed">Mozirje kommune</subdivision>
- <subdivision type="si080" draft="contributed">Murska Sobota City kommune</subdivision>
- <subdivision type="si081" draft="contributed">Muta kommune</subdivision>
- <subdivision type="si082" draft="contributed">Naklo kommune</subdivision>
- <subdivision type="si083" draft="contributed">Nazarje kommune</subdivision>
- <subdivision type="si084" draft="contributed">Nova Gorica</subdivision>
- <subdivision type="si085" draft="contributed">City kommune av Novo</subdivision>
- <subdivision type="si086" draft="contributed">Odranci</subdivision>
- <subdivision type="si087" draft="contributed">Ormoz</subdivision>
- <subdivision type="si089" draft="contributed">Pesnica kommune</subdivision>
- <subdivision type="si090" draft="contributed">Piran</subdivision>
- <subdivision type="si091" draft="contributed">Pivka kommune</subdivision>
- <subdivision type="si092" draft="contributed">Podcetrtek Kommune</subdivision>
- <subdivision type="si093" draft="contributed">Podvelka Kommune</subdivision>
- <subdivision type="si094" draft="contributed">Postojna kommune</subdivision>
- <subdivision type="si095" draft="contributed">Preddvor kommune</subdivision>
- <subdivision type="si096" draft="contributed">Ptuj</subdivision>
- <subdivision type="si098" draft="contributed">Race-Farm Kommune</subdivision>
- <subdivision type="si099" draft="contributed">Radece</subdivision>
- <subdivision type="si101" draft="contributed">Radlje ob Dravi kommune</subdivision>
- <subdivision type="si102" draft="contributed">Radovljica</subdivision>
- <subdivision type="si103" draft="contributed">Ravne na Koroskem</subdivision>
- <subdivision type="si104" draft="contributed">Ribnica Kommune</subdivision>
- <subdivision type="si105" draft="contributed">Rogasovci Kommune</subdivision>
- <subdivision type="si106" draft="contributed">Rogaska Slatina</subdivision>
- <subdivision type="si107" draft="contributed">Rogatec kommune</subdivision>
- <subdivision type="si108" draft="contributed">Ruse Kommune</subdivision>
- <subdivision type="si109" draft="contributed">Semic kommune</subdivision>
- <subdivision type="si110" draft="contributed">Sevnica kommune</subdivision>
- <subdivision type="si111" draft="contributed">Sezana Kommune</subdivision>
- <subdivision type="si112" draft="contributed">Slovenj Gradec City kommune</subdivision>
- <subdivision type="si113" draft="contributed">Slovenska Bistrica</subdivision>
- <subdivision type="si114" draft="contributed">Slovenske Konjice</subdivision>
- <subdivision type="si115" draft="contributed">Starse Kommune</subdivision>
- <subdivision type="si116" draft="contributed">Sveti Jurij Kommune</subdivision>
- <subdivision type="si117" draft="contributed">Sencur kommune</subdivision>
- <subdivision type="si118" draft="contributed">Sentilj Kommune</subdivision>
- <subdivision type="si119" draft="contributed">Sentjernej kommune</subdivision>
- <subdivision type="si120" draft="contributed">Sentjur Kommune</subdivision>
- <subdivision type="si121" draft="contributed">Skocjan kommune</subdivision>
- <subdivision type="si122" draft="contributed">Skofja Loka kommune</subdivision>
- <subdivision type="si123" draft="contributed">Skofljica kommune</subdivision>
- <subdivision type="si124" draft="contributed">Smarje pri Jelsah kommune</subdivision>
- <subdivision type="si125" draft="contributed">Smartno ob Paki Kommune</subdivision>
- <subdivision type="si126" draft="contributed">Sostanj kommune</subdivision>
- <subdivision type="si127" draft="contributed">Store kommune</subdivision>
- <subdivision type="si128" draft="contributed">Tolmin kommune</subdivision>
- <subdivision type="si129" draft="contributed">Trbovlje</subdivision>
- <subdivision type="si130" draft="contributed">Trebnje kommune</subdivision>
- <subdivision type="si131" draft="contributed">Trzic kommune</subdivision>
- <subdivision type="si134" draft="contributed">Velike Lasce kommune</subdivision>
- <subdivision type="si136" draft="contributed">Vipava kommune</subdivision>
- <subdivision type="si137" draft="contributed">Vitanje</subdivision>
- <subdivision type="si138" draft="contributed">Vodice</subdivision>
- <subdivision type="si139" draft="contributed">Vojnik kommune</subdivision>
- <subdivision type="si140" draft="contributed">Vrhnika kommune</subdivision>
- <subdivision type="si141" draft="contributed">Vuzenica Kommune</subdivision>
- <subdivision type="si143" draft="contributed">Zavrc kommune</subdivision>
- <subdivision type="si144" draft="contributed">Zrece kommune</subdivision>
- <subdivision type="si146" draft="contributed">Zelezniki Kommune</subdivision>
- <subdivision type="si148" draft="contributed">Benedikt</subdivision>
- <subdivision type="si149" draft="contributed">Bistrica ob Sotli kommune</subdivision>
- <subdivision type="si150" draft="contributed">Bloke kommune</subdivision>
- <subdivision type="si151" draft="contributed">Braslovce Kommune</subdivision>
- <subdivision type="si152" draft="contributed">Cankova kommune</subdivision>
- <subdivision type="si153" draft="contributed">Cerkvenjak kommune</subdivision>
- <subdivision type="si154" draft="contributed">Dobje</subdivision>
- <subdivision type="si155" draft="contributed">Dobrna kommune</subdivision>
- <subdivision type="si156" draft="contributed">Dobronak kommune</subdivision>
- <subdivision type="si157" draft="contributed">Dolenjske Toplice kommune</subdivision>
- <subdivision type="si158" draft="contributed">Grad Kommune</subdivision>
- <subdivision type="si159" draft="contributed">Hajdina Kommune</subdivision>
- <subdivision type="si160" draft="contributed">Hoce-Slivnica kommune</subdivision>
- <subdivision type="si161" draft="contributed">Hodos kommune</subdivision>
- <subdivision type="si162" draft="contributed">Horjul Kommune</subdivision>
- <subdivision type="si163" draft="contributed">Jezersko kommune</subdivision>
- <subdivision type="si164" draft="contributed">Komenda Kommune</subdivision>
- <subdivision type="si165" draft="contributed">Kostel kommune</subdivision>
- <subdivision type="si166" draft="contributed">Krizevci kommune</subdivision>
- <subdivision type="si168" draft="contributed">Markovci kommune</subdivision>
- <subdivision type="si170" draft="contributed">Mirna Pec Kommune</subdivision>
- <subdivision type="si171" draft="contributed">Oplotnica kommune</subdivision>
- <subdivision type="si172" draft="contributed">Podlehnik kommune</subdivision>
- <subdivision type="si173" draft="contributed">Polzela kommune</subdivision>
- <subdivision type="si174" draft="contributed">Prebold Kommune</subdivision>
- <subdivision type="si175" draft="contributed">Prevalje kommune</subdivision>
- <subdivision type="si176" draft="contributed">Razkrizje Kommune</subdivision>
- <subdivision type="si177" draft="contributed">Ribnica na Pohorju kommune</subdivision>
- <subdivision type="si178" draft="contributed">Selnica ob Dravi kommune</subdivision>
- <subdivision type="si179" draft="contributed">Sodrazica kommune</subdivision>
- <subdivision type="si181" draft="contributed">Sveta Ana kommune</subdivision>
- <subdivision type="si182" draft="contributed">Sveti Andraz v Slovenskih Goricah kommune</subdivision>
- <subdivision type="si183" draft="contributed">Senoeter Vrtojba kommune</subdivision>
- <subdivision type="si184" draft="contributed">Tabor kommune</subdivision>
- <subdivision type="si185" draft="contributed">Trnovska Vas kommune</subdivision>
- <subdivision type="si186" draft="contributed">Trzin</subdivision>
- <subdivision type="si187" draft="contributed">Velika Polana kommune</subdivision>
- <subdivision type="si188" draft="contributed">Verzej kommune</subdivision>
- <subdivision type="si189" draft="contributed">Vransko</subdivision>
- <subdivision type="si190" draft="contributed">Zalec kommune</subdivision>
- <subdivision type="si191" draft="contributed">Zetale kommune</subdivision>
- <subdivision type="si192" draft="contributed">Zirovnica kommune</subdivision>
- <subdivision type="si193" draft="contributed">Zuzenberk</subdivision>
- <subdivision type="si194" draft="contributed">Smartno pri Litjii</subdivision>
- <subdivision type="si213" draft="contributed">Ankaran</subdivision>
- <subdivision type="skbc" draft="contributed">Banská Bystrica</subdivision>
- <subdivision type="skbl" draft="contributed">Bratislava</subdivision>
- <subdivision type="skki" draft="contributed">Košice</subdivision>
- <subdivision type="skni" draft="contributed">Nitra</subdivision>
- <subdivision type="skpv" draft="contributed">Prešov</subdivision>
- <subdivision type="skta" draft="contributed">Trnava</subdivision>
- <subdivision type="sktc" draft="contributed">Trenčín</subdivision>
- <subdivision type="skzi" draft="contributed">Žilina</subdivision>
- <subdivision type="sle" draft="contributed">Eastern</subdivision>
- <subdivision type="sln" draft="contributed">Northern</subdivision>
- <subdivision type="sls" draft="contributed">Southern</subdivision>
- <subdivision type="slw" draft="contributed">Western</subdivision>
- <subdivision type="sm01" draft="contributed">Acquaviva</subdivision>
- <subdivision type="sm02" draft="contributed">Chiesanuova</subdivision>
- <subdivision type="sm03" draft="contributed">Domagnano</subdivision>
- <subdivision type="sm04" draft="contributed">Faetano</subdivision>
- <subdivision type="sm05" draft="contributed">Fiorentino</subdivision>
- <subdivision type="sm06" draft="contributed">Borgo Maggiore</subdivision>
- <subdivision type="sm07" draft="contributed">San Marino</subdivision>
- <subdivision type="sm08" draft="contributed">Montegiardino</subdivision>
- <subdivision type="sm09" draft="contributed">Serravalle</subdivision>
- <subdivision type="sndb" draft="contributed">Diourbel</subdivision>
- <subdivision type="sndk" draft="contributed">Dakar</subdivision>
- <subdivision type="snfk" draft="contributed">Fatick</subdivision>
- <subdivision type="snka" draft="contributed">Kaffrine</subdivision>
- <subdivision type="snkd" draft="contributed">Kolda</subdivision>
- <subdivision type="snke" draft="contributed">Kédougou</subdivision>
- <subdivision type="snkl" draft="contributed">Kaolack</subdivision>
- <subdivision type="snlg" draft="contributed">Louga</subdivision>
- <subdivision type="snmt" draft="contributed">Matam</subdivision>
- <subdivision type="snse" draft="contributed">Sédhiou</subdivision>
- <subdivision type="snsl" draft="contributed">Saint-Louis</subdivision>
- <subdivision type="sntc" draft="contributed">Rambacounda region</subdivision>
- <subdivision type="snth" draft="contributed">Thiès</subdivision>
- <subdivision type="snzg" draft="contributed">Ziguinchor</subdivision>
- <subdivision type="sobk" draft="contributed">Bakool</subdivision>
- <subdivision type="sobn" draft="contributed">Banaadir</subdivision>
- <subdivision type="sobr" draft="contributed">Bari</subdivision>
- <subdivision type="soby" draft="contributed">Bay</subdivision>
- <subdivision type="soga" draft="contributed">Galguduud</subdivision>
- <subdivision type="soge" draft="contributed">Gedo</subdivision>
- <subdivision type="sohi" draft="contributed">Hiiraan</subdivision>
- <subdivision type="sojd" draft="contributed">Jubbada Dhexe</subdivision>
- <subdivision type="sojh" draft="contributed">Nedre Juba</subdivision>
- <subdivision type="somu" draft="contributed">Mudug</subdivision>
- <subdivision type="sonu" draft="contributed">Nugal</subdivision>
- <subdivision type="sosd" draft="contributed">Shabeellaha Dhexe</subdivision>
- <subdivision type="sosh" draft="contributed">Nedre Shebelle</subdivision>
- <subdivision type="soso" draft="contributed">Sool</subdivision>
- <subdivision type="sowo" draft="contributed">Woqooyi Galbeed</subdivision>
- <subdivision type="srbr" draft="contributed">Brokopondo</subdivision>
- <subdivision type="srcm" draft="contributed">Commewijne</subdivision>
- <subdivision type="srcr" draft="contributed">Coronie</subdivision>
- <subdivision type="srma" draft="contributed">Marowijne</subdivision>
- <subdivision type="srni" draft="contributed">Nickerie</subdivision>
- <subdivision type="srpm" draft="contributed">Paramaribo</subdivision>
- <subdivision type="srpr" draft="contributed">Para</subdivision>
- <subdivision type="srsa" draft="contributed">Saramacca</subdivision>
- <subdivision type="srsi" draft="contributed">Sipaliwini</subdivision>
- <subdivision type="srwa" draft="contributed">Wanica</subdivision>
- <subdivision type="ssbn" draft="contributed">Northern Bahr el Ghazal</subdivision>
- <subdivision type="ssbw" draft="contributed">Western Bahr el Ghazal</subdivision>
- <subdivision type="ssec" draft="contributed">Central Equatoria</subdivision>
- <subdivision type="ssee" draft="contributed">Øst-Ekvatoria</subdivision>
- <subdivision type="ssew" draft="contributed">Western Equatoria</subdivision>
- <subdivision type="ssjg" draft="contributed">Jonglei</subdivision>
- <subdivision type="sslk" draft="contributed">Lakes</subdivision>
- <subdivision type="ssnu" draft="contributed">Upper Nile</subdivision>
- <subdivision type="ssuy" draft="contributed">Unity</subdivision>
- <subdivision type="sswr" draft="contributed">Warrap</subdivision>
- <subdivision type="stp" draft="contributed">Príncipe</subdivision>
- <subdivision type="sts" draft="contributed">São Tomé</subdivision>
- <subdivision type="svah" draft="contributed">Ahuachapán</subdivision>
- <subdivision type="svca" draft="contributed">Cabañas</subdivision>
- <subdivision type="svcu" draft="contributed">Cuscatlan</subdivision>
- <subdivision type="svli" draft="contributed">La Libertad department</subdivision>
- <subdivision type="svmo" draft="contributed">Morazan department</subdivision>
- <subdivision type="svpa" draft="contributed">La Paz department</subdivision>
- <subdivision type="svsa" draft="contributed">Santa Ana department</subdivision>
- <subdivision type="svsm" draft="contributed">San Miguel department</subdivision>
- <subdivision type="svso" draft="contributed">Sonsonate department</subdivision>
- <subdivision type="svss" draft="contributed">San Salvador</subdivision>
- <subdivision type="svsv" draft="contributed">San Vincente department</subdivision>
- <subdivision type="svus" draft="contributed">Usulutan department</subdivision>
- <subdivision type="sydi" draft="contributed">Damaskus</subdivision>
- <subdivision type="sydy" draft="contributed">Dayr az-Zawr</subdivision>
- <subdivision type="syha" draft="contributed">Al-Hasakah</subdivision>
- <subdivision type="syhi" draft="contributed">Homs</subdivision>
- <subdivision type="syhl" draft="contributed">Aleppo</subdivision>
- <subdivision type="syhm" draft="contributed">Guvernementet Hama</subdivision>
- <subdivision type="syid" draft="contributed">Idlib</subdivision>
- <subdivision type="syla" draft="contributed">Latakia</subdivision>
- <subdivision type="syqu" draft="contributed">Al-Qunaytirah</subdivision>
- <subdivision type="syra" draft="contributed">Ar-Raqqah</subdivision>
- <subdivision type="syrd" draft="contributed">Rif Dimashq</subdivision>
- <subdivision type="sysu" draft="contributed">as-Suwayda</subdivision>
- <subdivision type="syta" draft="contributed">Tartus</subdivision>
- <subdivision type="szhh" draft="contributed">Hhohho</subdivision>
- <subdivision type="szlu" draft="contributed">Lubombo</subdivision>
- <subdivision type="szma" draft="contributed">Manzini</subdivision>
- <subdivision type="szsh" draft="contributed">Shiselweni</subdivision>
- <subdivision type="tdba" draft="contributed">Batha</subdivision>
- <subdivision type="tdbg" draft="contributed">Bahr el Gazel region</subdivision>
- <subdivision type="tdbo" draft="contributed">Borkou Region</subdivision>
- <subdivision type="tdcb" draft="contributed">Chari-Baguirmi</subdivision>
- <subdivision type="tdgr" draft="contributed">Guéra</subdivision>
- <subdivision type="tdhl" draft="contributed">Hadjer-Lamis</subdivision>
- <subdivision type="tdka" draft="contributed">Kanem</subdivision>
- <subdivision type="tdlc" draft="contributed">Lac</subdivision>
- <subdivision type="tdlo" draft="contributed">Logone Occidental</subdivision>
- <subdivision type="tdlr" draft="contributed">Logone Oriental</subdivision>
- <subdivision type="tdma" draft="contributed">Mandoul</subdivision>
- <subdivision type="tdmc" draft="contributed">Moyen-Chari</subdivision>
- <subdivision type="tdme" draft="contributed">Mayo-Kebbi Est</subdivision>
- <subdivision type="tdmo" draft="contributed">Mayo-Kebbi Ouest</subdivision>
- <subdivision type="tdnd" draft="contributed">N’Djamena</subdivision>
- <subdivision type="tdod" draft="contributed">Ouaddaï</subdivision>
- <subdivision type="tdsa" draft="contributed">Salamat</subdivision>
- <subdivision type="tdsi" draft="contributed">Sila region</subdivision>
- <subdivision type="tdta" draft="contributed">Tandjilé</subdivision>
- <subdivision type="tdti" draft="contributed">Tibesti Region</subdivision>
- <subdivision type="tdwf" draft="contributed">Wadi Fira</subdivision>
- <subdivision type="tgc" draft="contributed">Centrale</subdivision>
- <subdivision type="tgk" draft="contributed">Kara</subdivision>
- <subdivision type="tgm" draft="contributed">Maritime</subdivision>
- <subdivision type="tgp" draft="contributed">Plateaux</subdivision>
- <subdivision type="tgs" draft="contributed">Savanes</subdivision>
- <subdivision type="th10" draft="contributed">Bangkok</subdivision>
- <subdivision type="th11" draft="contributed">Samut Prakan</subdivision>
- <subdivision type="th12" draft="contributed">Nonthaburi</subdivision>
- <subdivision type="th13" draft="contributed">Pathum Thani</subdivision>
- <subdivision type="th14" draft="contributed">Ayutthaya</subdivision>
- <subdivision type="th15" draft="contributed">Ang Thong</subdivision>
- <subdivision type="th16" draft="contributed">Lop Buri</subdivision>
- <subdivision type="th17" draft="contributed">Sing Buri</subdivision>
- <subdivision type="th18" draft="contributed">Chainat</subdivision>
- <subdivision type="th19" draft="contributed">Saraburi</subdivision>
- <subdivision type="th20" draft="contributed">Chonburi</subdivision>
- <subdivision type="th21" draft="contributed">Rayong</subdivision>
- <subdivision type="th22" draft="contributed">Chanthaburi</subdivision>
- <subdivision type="th23" draft="contributed">Trat</subdivision>
- <subdivision type="th24" draft="contributed">Chachoengsao</subdivision>
- <subdivision type="th25" draft="contributed">Prachinburi</subdivision>
- <subdivision type="th26" draft="contributed">Nakhon Nayok</subdivision>
- <subdivision type="th27" draft="contributed">Sa Kaeo</subdivision>
- <subdivision type="th30" draft="contributed">Nakhon Ratchasima</subdivision>
- <subdivision type="th31" draft="contributed">Buriram</subdivision>
- <subdivision type="th32" draft="contributed">Surin</subdivision>
- <subdivision type="th33" draft="contributed">Sisaket</subdivision>
- <subdivision type="th34" draft="contributed">Ubon Ratchathani</subdivision>
- <subdivision type="th35" draft="contributed">Yasothon</subdivision>
- <subdivision type="th36" draft="contributed">Chaiyaphum</subdivision>
- <subdivision type="th37" draft="contributed">Amnat Charoen</subdivision>
- <subdivision type="th38" draft="contributed">Bungkan</subdivision>
- <subdivision type="th39" draft="contributed">Nongbua Lamphu</subdivision>
- <subdivision type="th40" draft="contributed">Khon Kaen</subdivision>
- <subdivision type="th41" draft="contributed">Udon Thani</subdivision>
- <subdivision type="th42" draft="contributed">Loei</subdivision>
- <subdivision type="th43" draft="contributed">Nong Khai</subdivision>
- <subdivision type="th44" draft="contributed">Maha Sarakham</subdivision>
- <subdivision type="th45" draft="contributed">Roi Et</subdivision>
- <subdivision type="th46" draft="contributed">Kalasin</subdivision>
- <subdivision type="th47" draft="contributed">Sakon Nakhon</subdivision>
- <subdivision type="th48" draft="contributed">Nakhon Phanom</subdivision>
- <subdivision type="th49" draft="contributed">Mukdahan</subdivision>
- <subdivision type="th50" draft="contributed">Chiang Mai</subdivision>
- <subdivision type="th51" draft="contributed">Lamphun</subdivision>
- <subdivision type="th52" draft="contributed">Lampang</subdivision>
- <subdivision type="th53" draft="contributed">Uttaradit</subdivision>
- <subdivision type="th54" draft="contributed">Phrae</subdivision>
- <subdivision type="th55" draft="contributed">Nan</subdivision>
- <subdivision type="th56" draft="contributed">Phayao</subdivision>
- <subdivision type="th57" draft="contributed">Chiang Rai</subdivision>
- <subdivision type="th58" draft="contributed">Mae Hong Son</subdivision>
- <subdivision type="th60" draft="contributed">Nakhon Sawan</subdivision>
- <subdivision type="th61" draft="contributed">Uthai Thani</subdivision>
- <subdivision type="th62" draft="contributed">Kamphaeng Phet</subdivision>
- <subdivision type="th63" draft="contributed">Tak</subdivision>
- <subdivision type="th64" draft="contributed">Sukhothai</subdivision>
- <subdivision type="th65" draft="contributed">Phitsanulok</subdivision>
- <subdivision type="th66" draft="contributed">Phichit</subdivision>
- <subdivision type="th67" draft="contributed">Phetchabun</subdivision>
- <subdivision type="th70" draft="contributed">Ratchaburi</subdivision>
- <subdivision type="th71" draft="contributed">Kanchanaburi</subdivision>
- <subdivision type="th72" draft="contributed">Suphan Buri</subdivision>
- <subdivision type="th73" draft="contributed">Nakhon Pathom</subdivision>
- <subdivision type="th74" draft="contributed">Samut Sakhon</subdivision>
- <subdivision type="th75" draft="contributed">Samut Songkhram</subdivision>
- <subdivision type="th76" draft="contributed">Phetchaburi</subdivision>
- <subdivision type="th77" draft="contributed">Prachuap Khiri Khan</subdivision>
- <subdivision type="th80" draft="contributed">Nakhon Si Thammarat</subdivision>
- <subdivision type="th81" draft="contributed">Krabi</subdivision>
- <subdivision type="th82" draft="contributed">Phang Nga</subdivision>
- <subdivision type="th83" draft="contributed">Phuket</subdivision>
- <subdivision type="th84" draft="contributed">Surat Thani</subdivision>
- <subdivision type="th85" draft="contributed">Ranong</subdivision>
- <subdivision type="th86" draft="contributed">Chumphon</subdivision>
- <subdivision type="th90" draft="contributed">Songkhla</subdivision>
- <subdivision type="th91" draft="contributed">Satun</subdivision>
- <subdivision type="th92" draft="contributed">Trang</subdivision>
- <subdivision type="th93" draft="contributed">Phattalung</subdivision>
- <subdivision type="th94" draft="contributed">Pattani</subdivision>
- <subdivision type="th95" draft="contributed">Yala</subdivision>
- <subdivision type="th96" draft="contributed">Narathiwat</subdivision>
- <subdivision type="ths" draft="contributed">Pattaya</subdivision>
- <subdivision type="tjdu" draft="contributed">Dusjanbe</subdivision>
- <subdivision type="tjgb" draft="contributed">Kuhistoni Badakhshon autonome provins</subdivision>
- <subdivision type="tjkt" draft="contributed">Khatlon</subdivision>
- <subdivision type="tjra" draft="contributed">Rebublican Subordination distrikt</subdivision>
- <subdivision type="tjsu" draft="contributed">Sughd</subdivision>
- <subdivision type="tlal" draft="contributed">Aileu</subdivision>
- <subdivision type="tlan" draft="contributed">Ainaro</subdivision>
- <subdivision type="tlba" draft="contributed">Baucau</subdivision>
- <subdivision type="tlbo" draft="contributed">Bobonaro</subdivision>
- <subdivision type="tlco" draft="contributed">Cova Lima</subdivision>
- <subdivision type="tldi" draft="contributed">Dili</subdivision>
- <subdivision type="tler" draft="contributed">Ermera</subdivision>
- <subdivision type="tlla" draft="contributed">Lautém</subdivision>
- <subdivision type="tlli" draft="contributed">Liquiçá</subdivision>
- <subdivision type="tlmf" draft="contributed">Manufahi</subdivision>
- <subdivision type="tlmt" draft="contributed">Manatuto</subdivision>
- <subdivision type="tloe" draft="contributed">Oecusse</subdivision>
- <subdivision type="tlvi" draft="contributed">Viqueque</subdivision>
- <subdivision type="tma" draft="contributed">Ahal provins</subdivision>
- <subdivision type="tmb" draft="contributed">Belkan provins</subdivision>
- <subdivision type="tmm" draft="contributed">Mary provins</subdivision>
- <subdivision type="tms" draft="contributed">Asjkhabad</subdivision>
- <subdivision type="tn11" draft="contributed">Tunis</subdivision>
- <subdivision type="tn12" draft="contributed">Ariana</subdivision>
- <subdivision type="tn13" draft="contributed">Ben Arous</subdivision>
- <subdivision type="tn14" draft="contributed">Manouba</subdivision>
- <subdivision type="tn21" draft="contributed">Nabeul</subdivision>
- <subdivision type="tn22" draft="contributed">Zaghouan (guvernement)</subdivision>
- <subdivision type="tn23" draft="contributed">Bizerte</subdivision>
- <subdivision type="tn31" draft="contributed">Béja</subdivision>
- <subdivision type="tn32" draft="contributed">Jendouba</subdivision>
- <subdivision type="tn33" draft="contributed">Kef</subdivision>
- <subdivision type="tn34" draft="contributed">Siliana</subdivision>
- <subdivision type="tn41" draft="contributed">Kairouan</subdivision>
- <subdivision type="tn42" draft="contributed">Kasserine</subdivision>
- <subdivision type="tn43" draft="contributed">Sidi Bouzid</subdivision>
- <subdivision type="tn51" draft="contributed">Sousse</subdivision>
- <subdivision type="tn52" draft="contributed">Monastir</subdivision>
- <subdivision type="tn53" draft="contributed">Mahdia</subdivision>
- <subdivision type="tn61" draft="contributed">Sfax</subdivision>
- <subdivision type="tn71" draft="contributed">Gafsa</subdivision>
- <subdivision type="tn72" draft="contributed">Tozeur</subdivision>
- <subdivision type="tn73" draft="contributed">Kebili</subdivision>
- <subdivision type="tn81" draft="contributed">Gabès</subdivision>
- <subdivision type="tn82" draft="contributed">Medenine</subdivision>
- <subdivision type="tn83" draft="contributed">Tataouine</subdivision>
- <subdivision type="to02" draft="contributed">Ha’apai</subdivision>
- <subdivision type="to03" draft="contributed">Niuas</subdivision>
- <subdivision type="to04" draft="contributed">Tongatapu</subdivision>
- <subdivision type="to05" draft="contributed">Vava’u</subdivision>
- <subdivision type="tr01" draft="contributed">Adana</subdivision>
- <subdivision type="tr02" draft="contributed">Adıyaman</subdivision>
- <subdivision type="tr03" draft="contributed">Afyonkarahisar</subdivision>
- <subdivision type="tr04" draft="contributed">Ağrı</subdivision>
- <subdivision type="tr05" draft="contributed">Amasya</subdivision>
- <subdivision type="tr06" draft="contributed">Ankara</subdivision>
- <subdivision type="tr07" draft="contributed">Antalya</subdivision>
- <subdivision type="tr08" draft="contributed">Artvin</subdivision>
- <subdivision type="tr09" draft="contributed">Aydın</subdivision>
- <subdivision type="tr10" draft="contributed">Balıkesir</subdivision>
- <subdivision type="tr11" draft="contributed">Bilecik</subdivision>
- <subdivision type="tr12" draft="contributed">Bingöl</subdivision>
- <subdivision type="tr13" draft="contributed">Bitlis</subdivision>
- <subdivision type="tr14" draft="contributed">Bolu</subdivision>
- <subdivision type="tr15" draft="contributed">Burdur</subdivision>
- <subdivision type="tr16" draft="contributed">Bursa</subdivision>
- <subdivision type="tr17" draft="contributed">Çanakkale</subdivision>
- <subdivision type="tr18" draft="contributed">Çankırı</subdivision>
- <subdivision type="tr19" draft="contributed">Çorum</subdivision>
- <subdivision type="tr20" draft="contributed">Denizli</subdivision>
- <subdivision type="tr21" draft="contributed">Diyarbakır</subdivision>
- <subdivision type="tr22" draft="contributed">Edirne</subdivision>
- <subdivision type="tr23" draft="contributed">Elazığ</subdivision>
- <subdivision type="tr24" draft="contributed">Erzincan</subdivision>
- <subdivision type="tr25" draft="contributed">Erzurum</subdivision>
- <subdivision type="tr26" draft="contributed">Eskişehir</subdivision>
- <subdivision type="tr27" draft="contributed">Gaziantep</subdivision>
- <subdivision type="tr28" draft="contributed">Giresun</subdivision>
- <subdivision type="tr29" draft="contributed">Gümüşhane</subdivision>
- <subdivision type="tr30" draft="contributed">Hakkâri</subdivision>
- <subdivision type="tr31" draft="contributed">Hatay</subdivision>
- <subdivision type="tr32" draft="contributed">Isparta</subdivision>
- <subdivision type="tr33" draft="contributed">Mersin</subdivision>
- <subdivision type="tr34" draft="contributed">İstanbul</subdivision>
- <subdivision type="tr35" draft="contributed">İzmir</subdivision>
- <subdivision type="tr36" draft="contributed">Kars</subdivision>
- <subdivision type="tr37" draft="contributed">Kastamonu</subdivision>
- <subdivision type="tr38" draft="contributed">Kayseri</subdivision>
- <subdivision type="tr39" draft="contributed">Kırklareli</subdivision>
- <subdivision type="tr40" draft="contributed">Kırşehir</subdivision>
- <subdivision type="tr41" draft="contributed">Kocaeli</subdivision>
- <subdivision type="tr42" draft="contributed">Konya</subdivision>
- <subdivision type="tr43" draft="contributed">Kütahya</subdivision>
- <subdivision type="tr44" draft="contributed">Malatya</subdivision>
- <subdivision type="tr45" draft="contributed">Manisa</subdivision>
- <subdivision type="tr46" draft="contributed">Kahramanmaraş</subdivision>
- <subdivision type="tr47" draft="contributed">Mardin</subdivision>
- <subdivision type="tr48" draft="contributed">Muğla</subdivision>
- <subdivision type="tr49" draft="contributed">Muş</subdivision>
- <subdivision type="tr50" draft="contributed">Nevşehir</subdivision>
- <subdivision type="tr51" draft="contributed">Niğde</subdivision>
- <subdivision type="tr52" draft="contributed">Ordu</subdivision>
- <subdivision type="tr53" draft="contributed">Rize</subdivision>
- <subdivision type="tr54" draft="contributed">Sakarya</subdivision>
- <subdivision type="tr55" draft="contributed">Samsun</subdivision>
- <subdivision type="tr56" draft="contributed">Siirt</subdivision>
- <subdivision type="tr57" draft="contributed">Sinop</subdivision>
- <subdivision type="tr58" draft="contributed">Sivas</subdivision>
- <subdivision type="tr59" draft="contributed">Tekirdağ</subdivision>
- <subdivision type="tr60" draft="contributed">Tokat</subdivision>
- <subdivision type="tr61" draft="contributed">Trabzon</subdivision>
- <subdivision type="tr62" draft="contributed">Tunceli</subdivision>
- <subdivision type="tr63" draft="contributed">Şanlıurfa</subdivision>
- <subdivision type="tr64" draft="contributed">Uşak</subdivision>
- <subdivision type="tr65" draft="contributed">Van</subdivision>
- <subdivision type="tr66" draft="contributed">Yozgat</subdivision>
- <subdivision type="tr67" draft="contributed">Zonguldak</subdivision>
- <subdivision type="tr68" draft="contributed">Aksaray</subdivision>
- <subdivision type="tr69" draft="contributed">Bayburt</subdivision>
- <subdivision type="tr70" draft="contributed">Karaman</subdivision>
- <subdivision type="tr71" draft="contributed">Kırıkkale</subdivision>
- <subdivision type="tr72" draft="contributed">Batman</subdivision>
- <subdivision type="tr73" draft="contributed">Şırnak</subdivision>
- <subdivision type="tr74" draft="contributed">Bartın</subdivision>
- <subdivision type="tr75" draft="contributed">Ardahan</subdivision>
- <subdivision type="tr76" draft="contributed">Iğdır</subdivision>
- <subdivision type="tr77" draft="contributed">Yalova</subdivision>
- <subdivision type="tr78" draft="contributed">Karabük</subdivision>
- <subdivision type="tr79" draft="contributed">Kilis</subdivision>
- <subdivision type="tr80" draft="contributed">Osmaniye</subdivision>
- <subdivision type="tr81" draft="contributed">Düzce</subdivision>
- <subdivision type="ttari" draft="contributed">Arima</subdivision>
- <subdivision type="ttcha" draft="contributed">Chaguanas</subdivision>
- <subdivision type="ttctt" draft="contributed">Couva Tabaquite Talparo</subdivision>
- <subdivision type="ttdmn" draft="contributed">Diego Martin</subdivision>
- <subdivision type="ttmrc" draft="contributed">Rio Claro-Mayaro</subdivision>
- <subdivision type="ttped" draft="contributed">Penal Debe</subdivision>
- <subdivision type="ttpos" draft="contributed">Port of Spain</subdivision>
- <subdivision type="ttprt" draft="contributed">Princes Tiwn Regional Corpoation</subdivision>
- <subdivision type="ttptf" draft="contributed">Point Fortin</subdivision>
- <subdivision type="ttsfo" draft="contributed">San Fernando</subdivision>
- <subdivision type="ttsge" draft="contributed">Sangre Grande regional</subdivision>
- <subdivision type="ttsip" draft="contributed">Siparia</subdivision>
- <subdivision type="ttsjl" draft="contributed">San Juan-Laventille region</subdivision>
- <subdivision type="tttob" draft="contributed">Tobago</subdivision>
- <subdivision type="tttup" draft="contributed">Tunapuna Piarco</subdivision>
- <subdivision type="tvfun" draft="contributed">Funafuti</subdivision>
- <subdivision type="tvnit" draft="contributed">Niutao</subdivision>
- <subdivision type="tvnkf" draft="contributed">Nukufetau</subdivision>
- <subdivision type="tvnkl" draft="contributed">Nukulaelae</subdivision>
- <subdivision type="tvnma" draft="contributed">Nanumea</subdivision>
- <subdivision type="tvnmg" draft="contributed">Nanumanga</subdivision>
- <subdivision type="tvnui" draft="contributed">Nui</subdivision>
- <subdivision type="tvvai" draft="contributed">Vaitupu</subdivision>
- <subdivision type="twcha" draft="contributed">Changhua Fylke</subdivision>
- <subdivision type="twcyi" draft="contributed">Chiayi Fylke</subdivision>
- <subdivision type="twcyq" draft="contributed">Chiayi</subdivision>
- <subdivision type="twhsq" draft="contributed">Hsinchu Fylke</subdivision>
- <subdivision type="twhsz" draft="contributed">Hsinchu</subdivision>
- <subdivision type="twhua" draft="contributed">Hualien Fylke</subdivision>
- <subdivision type="twila" draft="contributed">Yilan Fylke</subdivision>
- <subdivision type="twkee" draft="contributed">Chilung</subdivision>
- <subdivision type="twkhh" draft="contributed">Kaohsiung</subdivision>
- <subdivision type="twkin" draft="contributed">Kinmen</subdivision>
- <subdivision type="twmia" draft="contributed">Miaoli Fylke</subdivision>
- <subdivision type="twnan" draft="contributed">Nantou fylk</subdivision>
- <subdivision type="twpif" draft="contributed">Pingtung fylke</subdivision>
- <subdivision type="twtao" draft="contributed">Toayuan By</subdivision>
- <subdivision type="twtnn" draft="contributed">Tainan</subdivision>
- <subdivision type="twtpe" draft="contributed">Taipei</subdivision>
- <subdivision type="twttt" draft="contributed">Taitung Fylke</subdivision>
- <subdivision type="twtxg" draft="contributed">Taichung</subdivision>
- <subdivision type="twyun" draft="contributed">Yunlin County</subdivision>
- <subdivision type="tz01" draft="contributed">Arusha</subdivision>
- <subdivision type="tz02" draft="contributed">Dar-es-Salaam</subdivision>
- <subdivision type="tz03" draft="contributed">Dodoma</subdivision>
- <subdivision type="tz04" draft="contributed">Iringa</subdivision>
- <subdivision type="tz05" draft="contributed">Kagera</subdivision>
- <subdivision type="tz06" draft="contributed">Pemba Kaskazini</subdivision>
- <subdivision type="tz07" draft="contributed">Unguja Kaskazini</subdivision>
- <subdivision type="tz08" draft="contributed">Kigoma</subdivision>
- <subdivision type="tz09" draft="contributed">Kilimanjaro</subdivision>
- <subdivision type="tz10" draft="contributed">Pemba Kusini</subdivision>
- <subdivision type="tz11" draft="contributed">Unguja Kusini</subdivision>
- <subdivision type="tz12" draft="contributed">Lindi</subdivision>
- <subdivision type="tz13" draft="contributed">Mara</subdivision>
- <subdivision type="tz14" draft="contributed">Mbeya</subdivision>
- <subdivision type="tz15" draft="contributed">Unguja Mjini Magharibi</subdivision>
- <subdivision type="tz16" draft="contributed">Morogoro</subdivision>
- <subdivision type="tz17" draft="contributed">Mtwara</subdivision>
- <subdivision type="tz18" draft="contributed">Mwanza</subdivision>
- <subdivision type="tz19" draft="contributed">Pwani</subdivision>
- <subdivision type="tz20" draft="contributed">Rukwa</subdivision>
- <subdivision type="tz21" draft="contributed">Ruvuma</subdivision>
- <subdivision type="tz22" draft="contributed">Shinyanga</subdivision>
- <subdivision type="tz23" draft="contributed">Singida</subdivision>
- <subdivision type="tz24" draft="contributed">Tabora</subdivision>
- <subdivision type="tz25" draft="contributed">Tanga</subdivision>
- <subdivision type="tz26" draft="contributed">Manyara</subdivision>
- <subdivision type="tz27" draft="contributed">Geita</subdivision>
- <subdivision type="tz28" draft="contributed">Katavi</subdivision>
- <subdivision type="tz29" draft="contributed">Njombe</subdivision>
- <subdivision type="tz30" draft="contributed">Simiyu</subdivision>
- <subdivision type="ua05" draft="contributed">Vinnytsia oblast</subdivision>
- <subdivision type="ua07" draft="contributed">Volyn oblast</subdivision>
- <subdivision type="ua09" draft="contributed">Luhansk oblast</subdivision>
- <subdivision type="ua12" draft="contributed">Dnipropetrovsk oblast</subdivision>
- <subdivision type="ua14" draft="contributed">Donetsk oblast</subdivision>
- <subdivision type="ua18" draft="contributed">Zjytomyr oblast</subdivision>
- <subdivision type="ua21" draft="contributed">Zakarpattja oblast</subdivision>
- <subdivision type="ua23" draft="contributed">Zaporizjzja oblast</subdivision>
- <subdivision type="ua26" draft="contributed">Ivano-Frankivsk oblast</subdivision>
- <subdivision type="ua30" draft="contributed">Kiev</subdivision>
- <subdivision type="ua32" draft="contributed">Kiev oblast</subdivision>
- <subdivision type="ua35" draft="contributed">Kirovohrad oblast</subdivision>
- <subdivision type="ua40" draft="contributed">Sevastopol</subdivision>
- <subdivision type="ua43" draft="contributed">Den autonome republikken Krim</subdivision>
- <subdivision type="ua46" draft="contributed">Lviv oblast</subdivision>
- <subdivision type="ua48" draft="contributed">Mykolajiv oblast</subdivision>
- <subdivision type="ua51" draft="contributed">Odessa oblast</subdivision>
- <subdivision type="ua53" draft="contributed">Poltava oblast</subdivision>
- <subdivision type="ua56" draft="contributed">Rivne oblast</subdivision>
- <subdivision type="ua59" draft="contributed">Sumy oblast</subdivision>
- <subdivision type="ua61" draft="contributed">Ternopil oblast</subdivision>
- <subdivision type="ua63" draft="contributed">Kharkiv oblast</subdivision>
- <subdivision type="ua65" draft="contributed">Kherson oblast</subdivision>
- <subdivision type="ua68" draft="contributed">Khmelnytskyj oblast</subdivision>
- <subdivision type="ua71" draft="contributed">Tsjerkasy oblast</subdivision>
- <subdivision type="ua74" draft="contributed">Tsjernihiv oblast</subdivision>
- <subdivision type="ua77" draft="contributed">Tsjernivtsi oblast</subdivision>
- <subdivision type="ug101" draft="contributed">Kalangala</subdivision>
- <subdivision type="ug102" draft="contributed">Kampala</subdivision>
- <subdivision type="ug103" draft="contributed">Kiboga</subdivision>
- <subdivision type="ug104" draft="contributed">Luweero</subdivision>
- <subdivision type="ug105" draft="contributed">Masaka</subdivision>
- <subdivision type="ug106" draft="contributed">Mpigi</subdivision>
- <subdivision type="ug107" draft="contributed">Mubende</subdivision>
- <subdivision type="ug108" draft="contributed">Mukono</subdivision>
- <subdivision type="ug109" draft="contributed">Nakasongola</subdivision>
- <subdivision type="ug110" draft="contributed">Rakai</subdivision>
- <subdivision type="ug111" draft="contributed">Sembabule</subdivision>
- <subdivision type="ug112" draft="contributed">Kayunga</subdivision>
- <subdivision type="ug113" draft="contributed">Wakiso</subdivision>
- <subdivision type="ug114" draft="contributed">Lyantonde</subdivision>
- <subdivision type="ug115" draft="contributed">Mityana</subdivision>
- <subdivision type="ug116" draft="contributed">Lyantonde²</subdivision>
- <subdivision type="ug117" draft="contributed">Buikwe</subdivision>
- <subdivision type="ug118" draft="contributed">Bukomansimbi</subdivision>
- <subdivision type="ug119" draft="contributed">Butambala</subdivision>
- <subdivision type="ug120" draft="contributed">Buvuma</subdivision>
- <subdivision type="ug121" draft="contributed">Gomba</subdivision>
- <subdivision type="ug122" draft="contributed">Kalungu</subdivision>
- <subdivision type="ug123" draft="contributed">Kyankwanzi</subdivision>
- <subdivision type="ug124" draft="contributed">Lwengo</subdivision>
- <subdivision type="ug201" draft="contributed">Bugiri</subdivision>
- <subdivision type="ug202" draft="contributed">Busia</subdivision>
- <subdivision type="ug203" draft="contributed">Iganga</subdivision>
- <subdivision type="ug204" draft="contributed">Jinja</subdivision>
- <subdivision type="ug205" draft="contributed">Kamuli</subdivision>
- <subdivision type="ug206" draft="contributed">Kapchorwa</subdivision>
- <subdivision type="ug207" draft="contributed">Katakwi</subdivision>
- <subdivision type="ug208" draft="contributed">Kumi</subdivision>
- <subdivision type="ug209" draft="contributed">Mbale</subdivision>
- <subdivision type="ug210" draft="contributed">Pallisa</subdivision>
- <subdivision type="ug211" draft="contributed">Soroti</subdivision>
- <subdivision type="ug212" draft="contributed">Tororo</subdivision>
- <subdivision type="ug213" draft="contributed">Kaberamaido</subdivision>
- <subdivision type="ug214" draft="contributed">Mayuge</subdivision>
- <subdivision type="ug215" draft="contributed">Sironko</subdivision>
- <subdivision type="ug216" draft="contributed">Amuria</subdivision>
- <subdivision type="ug217" draft="contributed">Budaka</subdivision>
- <subdivision type="ug218" draft="contributed">Bududa</subdivision>
- <subdivision type="ug219" draft="contributed">Butaleja</subdivision>
- <subdivision type="ug220" draft="contributed">Kaliro</subdivision>
- <subdivision type="ug221" draft="contributed">Manafwa</subdivision>
- <subdivision type="ug222" draft="contributed">Kaliro²</subdivision>
- <subdivision type="ug223" draft="contributed">Manafwa²</subdivision>
- <subdivision type="ug224" draft="contributed">Bukedea</subdivision>
- <subdivision type="ug225" draft="contributed">Bulambuli</subdivision>
- <subdivision type="ug226" draft="contributed">Buyende</subdivision>
- <subdivision type="ug227" draft="contributed">Kibuku</subdivision>
- <subdivision type="ug228" draft="contributed">Kween</subdivision>
- <subdivision type="ug229" draft="contributed">Luuka</subdivision>
- <subdivision type="ug230" draft="contributed">Namayingo</subdivision>
- <subdivision type="ug231" draft="contributed">Ngora</subdivision>
- <subdivision type="ug232" draft="contributed">Serere</subdivision>
- <subdivision type="ug301" draft="contributed">Adjumani</subdivision>
- <subdivision type="ug302" draft="contributed">Apac</subdivision>
- <subdivision type="ug303" draft="contributed">Arua</subdivision>
- <subdivision type="ug304" draft="contributed">Gulu</subdivision>
- <subdivision type="ug305" draft="contributed">Kitgum</subdivision>
- <subdivision type="ug306" draft="contributed">Kotido</subdivision>
- <subdivision type="ug307" draft="contributed">Lira</subdivision>
- <subdivision type="ug308" draft="contributed">Moroto</subdivision>
- <subdivision type="ug309" draft="contributed">Moyo</subdivision>
- <subdivision type="ug310" draft="contributed">Nebbi</subdivision>
- <subdivision type="ug311" draft="contributed">Nakapiripirit</subdivision>
- <subdivision type="ug312" draft="contributed">Pader</subdivision>
- <subdivision type="ug313" draft="contributed">Yumbe</subdivision>
- <subdivision type="ug314" draft="contributed">Abim</subdivision>
- <subdivision type="ug315" draft="contributed">Amolatar</subdivision>
- <subdivision type="ug316" draft="contributed">Amuru</subdivision>
- <subdivision type="ug317" draft="contributed">Abim²</subdivision>
- <subdivision type="ug318" draft="contributed">Dokolo</subdivision>
- <subdivision type="ug319" draft="contributed">Amuru²</subdivision>
- <subdivision type="ug320" draft="contributed">Maracha</subdivision>
- <subdivision type="ug321" draft="contributed">Oyam</subdivision>
- <subdivision type="ug322" draft="contributed">Agago</subdivision>
- <subdivision type="ug323" draft="contributed">Alebtong</subdivision>
- <subdivision type="ug324" draft="contributed">Amudat</subdivision>
- <subdivision type="ug325" draft="contributed">Kole</subdivision>
- <subdivision type="ug326" draft="contributed">Lamwo</subdivision>
- <subdivision type="ug327" draft="contributed">Napak</subdivision>
- <subdivision type="ug328" draft="contributed">Nwoya</subdivision>
- <subdivision type="ug329" draft="contributed">Otuke</subdivision>
- <subdivision type="ug330" draft="contributed">Zombo</subdivision>
- <subdivision type="ug401" draft="contributed">Bundibugyo</subdivision>
- <subdivision type="ug402" draft="contributed">Bushenyi</subdivision>
- <subdivision type="ug403" draft="contributed">Hoima</subdivision>
- <subdivision type="ug404" draft="contributed">Kabale</subdivision>
- <subdivision type="ug405" draft="contributed">Kabarole</subdivision>
- <subdivision type="ug406" draft="contributed">Kasese</subdivision>
- <subdivision type="ug407" draft="contributed">Kibaale</subdivision>
- <subdivision type="ug408" draft="contributed">Kisoro</subdivision>
- <subdivision type="ug409" draft="contributed">Masindi</subdivision>
- <subdivision type="ug410" draft="contributed">Mbarara</subdivision>
- <subdivision type="ug411" draft="contributed">Ntungamo</subdivision>
- <subdivision type="ug412" draft="contributed">Rukungiri</subdivision>
- <subdivision type="ug413" draft="contributed">Kamwenge</subdivision>
- <subdivision type="ug414" draft="contributed">Kanungu</subdivision>
- <subdivision type="ug415" draft="contributed">Kyenjojo</subdivision>
- <subdivision type="ug416" draft="contributed">Ibanda</subdivision>
- <subdivision type="ug417" draft="contributed">Isingiro</subdivision>
- <subdivision type="ug418" draft="contributed">Isingiro²</subdivision>
- <subdivision type="ug419" draft="contributed">Kiruhura</subdivision>
- <subdivision type="ug420" draft="contributed">Buhweju</subdivision>
- <subdivision type="ug421" draft="contributed">Kiryandongo</subdivision>
- <subdivision type="ug422" draft="contributed">Kyegegwa</subdivision>
- <subdivision type="ug423" draft="contributed">Mitooma</subdivision>
- <subdivision type="ug424" draft="contributed">Ntoroko</subdivision>
- <subdivision type="ug425" draft="contributed">Rubirizi</subdivision>
- <subdivision type="ug426" draft="contributed">Sheema</subdivision>
- <subdivision type="ugc" draft="contributed">Central</subdivision>
- <subdivision type="uge" draft="contributed">Eastern</subdivision>
- <subdivision type="ugn" draft="contributed">Northern</subdivision>
- <subdivision type="ugw" draft="contributed">Western</subdivision>
- <subdivision type="um67" draft="contributed">Johnston Atoll</subdivision>
- <subdivision type="um71" draft="contributed">Midwayøyene</subdivision>
- <subdivision type="um76" draft="contributed">Navassaøya</subdivision>
- <subdivision type="um79" draft="contributed">Wake Island</subdivision>
- <subdivision type="um81" draft="contributed">Bakerøya</subdivision>
- <subdivision type="um84" draft="contributed">Howlandøya</subdivision>
- <subdivision type="um86" draft="contributed">Jarvisøya</subdivision>
- <subdivision type="um89" draft="contributed">Kingman Reef</subdivision>
- <subdivision type="um95" draft="contributed">Palmyra Atoll</subdivision>
- <subdivision type="usak" draft="contributed">Alaska</subdivision>
- <subdivision type="usal" draft="contributed">Alabama</subdivision>
- <subdivision type="usar" draft="contributed">Arkansas</subdivision>
- <subdivision type="usaz" draft="contributed">Arizona</subdivision>
- <subdivision type="usca" draft="contributed">California</subdivision>
- <subdivision type="usco" draft="contributed">Colorado</subdivision>
- <subdivision type="usct" draft="contributed">Connecticut</subdivision>
- <subdivision type="usdc" draft="contributed">Washington D.C.</subdivision>
- <subdivision type="usde" draft="contributed">Delaware</subdivision>
- <subdivision type="usfl" draft="contributed">Florida</subdivision>
- <subdivision type="usga" draft="contributed">Georgia</subdivision>
- <subdivision type="ushi" draft="contributed">Hawaii</subdivision>
- <subdivision type="usia" draft="contributed">Iowa</subdivision>
- <subdivision type="usid" draft="contributed">Idaho</subdivision>
- <subdivision type="usil" draft="contributed">Illinois</subdivision>
- <subdivision type="usin" draft="contributed">Indiana</subdivision>
- <subdivision type="usks" draft="contributed">Kansas</subdivision>
- <subdivision type="usky" draft="contributed">Kentucky</subdivision>
- <subdivision type="usla" draft="contributed">Louisiana</subdivision>
- <subdivision type="usma" draft="contributed">Massachusetts</subdivision>
- <subdivision type="usmd" draft="contributed">Maryland</subdivision>
- <subdivision type="usme" draft="contributed">Maine</subdivision>
- <subdivision type="usmi" draft="contributed">Michigan</subdivision>
- <subdivision type="usmn" draft="contributed">Minnesota</subdivision>
- <subdivision type="usmo" draft="contributed">Missouri</subdivision>
- <subdivision type="usms" draft="contributed">Mississippi</subdivision>
- <subdivision type="usmt" draft="contributed">Montana</subdivision>
- <subdivision type="usnc" draft="contributed">Nord-Carolina</subdivision>
- <subdivision type="usnd" draft="contributed">Nord-Dakota</subdivision>
- <subdivision type="usne" draft="contributed">Nebraska</subdivision>
- <subdivision type="usnh" draft="contributed">New Hampshire</subdivision>
- <subdivision type="usnj" draft="contributed">New Jersey</subdivision>
- <subdivision type="usnm" draft="contributed">New Mexico</subdivision>
- <subdivision type="usnv" draft="contributed">Nevada</subdivision>
- <subdivision type="usny" draft="contributed">New York</subdivision>
- <subdivision type="usoh" draft="contributed">Ohio</subdivision>
- <subdivision type="usok" draft="contributed">Oklahoma</subdivision>
- <subdivision type="usor" draft="contributed">Oregon</subdivision>
- <subdivision type="uspa" draft="contributed">Pennsylvania</subdivision>
- <subdivision type="usri" draft="contributed">Rhode Island</subdivision>
- <subdivision type="ussc" draft="contributed">Sør-Carolina</subdivision>
- <subdivision type="ussd" draft="contributed">Sør-Dakota</subdivision>
- <subdivision type="ustn" draft="contributed">Tennessee</subdivision>
- <subdivision type="ustx" draft="contributed">Texas</subdivision>
- <subdivision type="usut" draft="contributed">Utah</subdivision>
- <subdivision type="usva" draft="contributed">Virginia</subdivision>
- <subdivision type="usvt" draft="contributed">Vermont</subdivision>
- <subdivision type="uswa" draft="contributed">Washington</subdivision>
- <subdivision type="uswi" draft="contributed">Wisconsin</subdivision>
- <subdivision type="uswv" draft="contributed">Vest-Virginia</subdivision>
- <subdivision type="uswy" draft="contributed">Wyoming</subdivision>
- <subdivision type="uyar" draft="contributed">Artigas</subdivision>
- <subdivision type="uyca" draft="contributed">Canelones</subdivision>
- <subdivision type="uycl" draft="contributed">Cerro Largo</subdivision>
- <subdivision type="uyco" draft="contributed">Colonia (departement)</subdivision>
- <subdivision type="uydu" draft="contributed">Durazno</subdivision>
- <subdivision type="uyfd" draft="contributed">Florida</subdivision>
- <subdivision type="uyfs" draft="contributed">Flores</subdivision>
- <subdivision type="uyla" draft="contributed">Lavalleja</subdivision>
- <subdivision type="uyma" draft="contributed">Maldonado</subdivision>
- <subdivision type="uymo" draft="contributed">Montevideo</subdivision>
- <subdivision type="uypa" draft="contributed">Paysandú</subdivision>
- <subdivision type="uyrn" draft="contributed">Río Negro</subdivision>
- <subdivision type="uyro" draft="contributed">Rocha</subdivision>
- <subdivision type="uyrv" draft="contributed">Rivera</subdivision>
- <subdivision type="uysa" draft="contributed">Salto</subdivision>
- <subdivision type="uysj" draft="contributed">San José</subdivision>
- <subdivision type="uyso" draft="contributed">Soriano</subdivision>
- <subdivision type="uyta" draft="contributed">Tacuarembó</subdivision>
- <subdivision type="uytt" draft="contributed">Treinta y Tres</subdivision>
- <subdivision type="uzan" draft="contributed">Andijan region</subdivision>
- <subdivision type="uzbu" draft="contributed">Bukhara region</subdivision>
- <subdivision type="uzfa" draft="contributed">Fergana region</subdivision>
- <subdivision type="uzji" draft="contributed">Jizzakh region</subdivision>
- <subdivision type="uzng" draft="contributed">Namangan region</subdivision>
- <subdivision type="uznw" draft="contributed">Navoiy region</subdivision>
- <subdivision type="uzqa" draft="contributed">Qashqadryo region</subdivision>
- <subdivision type="uzqr" draft="contributed">Karakalpakstan</subdivision>
- <subdivision type="uzsa" draft="contributed">Samarqand region</subdivision>
- <subdivision type="uzsi" draft="contributed">Sirdarya region</subdivision>
- <subdivision type="uzsu" draft="contributed">Surxondaryo region</subdivision>
- <subdivision type="uztk" draft="contributed">Tasjkent</subdivision>
- <subdivision type="uzto" draft="contributed">Tashkent region</subdivision>
- <subdivision type="uzxo" draft="contributed">Xorazm region</subdivision>
- <subdivision type="vc01" draft="contributed">Charlotte prestegjeld</subdivision>
- <subdivision type="vc02" draft="contributed">Saint Andrew prestegjeld</subdivision>
- <subdivision type="vc03" draft="contributed">Saint David prestegjeld</subdivision>
- <subdivision type="vc04" draft="contributed">Saint George prestegjeld</subdivision>
- <subdivision type="vc05" draft="contributed">Saint Patrick prestegjeld</subdivision>
- <subdivision type="vc06" draft="contributed">Grenadines prestegjeld</subdivision>
- <subdivision type="vea" draft="contributed">Hovedstad</subdivision>
- <subdivision type="veb" draft="contributed">Anzoátegui</subdivision>
- <subdivision type="vec" draft="contributed">Apure</subdivision>
- <subdivision type="ved" draft="contributed">Aragua</subdivision>
- <subdivision type="vee" draft="contributed">Barinas</subdivision>
- <subdivision type="vef" draft="contributed">Bolívar</subdivision>
- <subdivision type="veg" draft="contributed">Carabobo</subdivision>
- <subdivision type="veh" draft="contributed">Cojedes</subdivision>
- <subdivision type="vei" draft="contributed">Falcón</subdivision>
- <subdivision type="vej" draft="contributed">Guárico</subdivision>
- <subdivision type="vek" draft="contributed">Lara</subdivision>
- <subdivision type="vel" draft="contributed">Mérida</subdivision>
- <subdivision type="vem" draft="contributed">Miranda</subdivision>
- <subdivision type="ven" draft="contributed">Monagas</subdivision>
- <subdivision type="veo" draft="contributed">Nueva Esparta</subdivision>
- <subdivision type="vep" draft="contributed">Portuguesa</subdivision>
- <subdivision type="ver" draft="contributed">Sucre</subdivision>
- <subdivision type="ves" draft="contributed">Táchira</subdivision>
- <subdivision type="vet" draft="contributed">Trujillo</subdivision>
- <subdivision type="veu" draft="contributed">Yaracuy</subdivision>
- <subdivision type="vev" draft="contributed">Zulia</subdivision>
- <subdivision type="vew" draft="contributed">Føderal avhengighet av Venezuela</subdivision>
- <subdivision type="vex" draft="contributed">Vargas</subdivision>
- <subdivision type="vey" draft="contributed">Delta Amacuro</subdivision>
- <subdivision type="vez" draft="contributed">Amazonas</subdivision>
- <subdivision type="vn01" draft="contributed">La Chau</subdivision>
- <subdivision type="vn02" draft="contributed">Lao Cai</subdivision>
- <subdivision type="vn03" draft="contributed">Ha Giang</subdivision>
- <subdivision type="vn04" draft="contributed">Cao Bang</subdivision>
- <subdivision type="vn05" draft="contributed">Son La</subdivision>
- <subdivision type="vn06" draft="contributed">Yen Bai</subdivision>
- <subdivision type="vn07" draft="contributed">Tuyenn Quang</subdivision>
- <subdivision type="vn09" draft="contributed">Lang Son</subdivision>
- <subdivision type="vn13" draft="contributed">Quang Ninh</subdivision>
- <subdivision type="vn14" draft="contributed">Hoa Binh</subdivision>
- <subdivision type="vn18" draft="contributed">Ninh Bình</subdivision>
- <subdivision type="vn20" draft="contributed">Thái Bình</subdivision>
- <subdivision type="vn21" draft="contributed">Thanh Hoa</subdivision>
- <subdivision type="vn22" draft="contributed">Nghe An</subdivision>
- <subdivision type="vn23" draft="contributed">Ha Tinh</subdivision>
- <subdivision type="vn24" draft="contributed">Quang Binh</subdivision>
- <subdivision type="vn25" draft="contributed">Quang Tri</subdivision>
- <subdivision type="vn26" draft="contributed">Thua Thien-Hue</subdivision>
- <subdivision type="vn27" draft="contributed">Quang Nam</subdivision>
- <subdivision type="vn28" draft="contributed">Kon Tum (provins)</subdivision>
- <subdivision type="vn29" draft="contributed">Quang Ngai</subdivision>
- <subdivision type="vn30" draft="contributed">Gia Lai</subdivision>
- <subdivision type="vn31" draft="contributed">Binh Dinh</subdivision>
- <subdivision type="vn32" draft="contributed">Phu Yen</subdivision>
- <subdivision type="vn33" draft="contributed">Dak Lak</subdivision>
- <subdivision type="vn34" draft="contributed">Khanh Hoa</subdivision>
- <subdivision type="vn35" draft="contributed">Lam Dong</subdivision>
- <subdivision type="vn36" draft="contributed">Ninh Thuận</subdivision>
- <subdivision type="vn37" draft="contributed">Tay Ninh</subdivision>
- <subdivision type="vn40" draft="contributed">Binh Thuan</subdivision>
- <subdivision type="vn41" draft="contributed">Long An</subdivision>
- <subdivision type="vn43" draft="contributed">Ba Ria Vung Tau</subdivision>
- <subdivision type="vn44" draft="contributed">An Giang</subdivision>
- <subdivision type="vn45" draft="contributed">Dong Thap provins</subdivision>
- <subdivision type="vn46" draft="contributed">Tein Giang</subdivision>
- <subdivision type="vn47" draft="contributed">Kien Giang</subdivision>
- <subdivision type="vn49" draft="contributed">Ving Long</subdivision>
- <subdivision type="vn50" draft="contributed">Ben Tre</subdivision>
- <subdivision type="vn51" draft="contributed">Tra Vinh</subdivision>
- <subdivision type="vn52" draft="contributed">Soc Trang</subdivision>
- <subdivision type="vn54" draft="contributed">Bac Giang</subdivision>
- <subdivision type="vn55" draft="contributed">Bac Lieu</subdivision>
- <subdivision type="vn56" draft="contributed">Bac Ninh</subdivision>
- <subdivision type="vn57" draft="contributed">Binh Duong</subdivision>
- <subdivision type="vn58" draft="contributed">Binh Phuroc</subdivision>
- <subdivision type="vn59" draft="contributed">Ca Mau</subdivision>
- <subdivision type="vn61" draft="contributed">Hai Doung</subdivision>
- <subdivision type="vn63" draft="contributed">Ha Nam</subdivision>
- <subdivision type="vn67" draft="contributed">Nam Dinh</subdivision>
- <subdivision type="vn68" draft="contributed">Phu Tho</subdivision>
- <subdivision type="vn69" draft="contributed">Thai Nguyen</subdivision>
- <subdivision type="vn70" draft="contributed">Vinh Phuc</subdivision>
- <subdivision type="vn71" draft="contributed">Dien Bien</subdivision>
- <subdivision type="vn72" draft="contributed">Dak Nong</subdivision>
- <subdivision type="vn73" draft="contributed">Hau Giang</subdivision>
- <subdivision type="vnct" draft="contributed">Can Tho</subdivision>
- <subdivision type="vndn" draft="contributed">Da Nang</subdivision>
- <subdivision type="vnhn" draft="contributed">Hanoi</subdivision>
- <subdivision type="vnhp" draft="contributed">Haiphong</subdivision>
- <subdivision type="vnsg" draft="contributed">Ho Chi Minh-byen</subdivision>
- <subdivision type="vumap" draft="contributed">Malampa</subdivision>
- <subdivision type="vupam" draft="contributed">Penama</subdivision>
- <subdivision type="vusam" draft="contributed">Sanma</subdivision>
- <subdivision type="vusee" draft="contributed">Shefa</subdivision>
- <subdivision type="vutae" draft="contributed">Tafea</subdivision>
- <subdivision type="vutob" draft="contributed">Torba</subdivision>
- <subdivision type="wfal" draft="contributed">Alo</subdivision>
- <subdivision type="wfsg" draft="contributed">Sigave</subdivision>
- <subdivision type="wfuv" draft="contributed">Uvea</subdivision>
- <subdivision type="wsaa" draft="contributed">A’ana</subdivision>
- <subdivision type="wsal" draft="contributed">Aiga-i-le-Tai</subdivision>
- <subdivision type="wsat" draft="contributed">Atua</subdivision>
- <subdivision type="wsfa" draft="contributed">Fa’asaleleaga</subdivision>
- <subdivision type="wsge" draft="contributed">Gaga’emauga</subdivision>
- <subdivision type="wsgi" draft="contributed">Gaga’ifomauga</subdivision>
- <subdivision type="wspa" draft="contributed">Palauli</subdivision>
- <subdivision type="wssa" draft="contributed">Satupa’itea</subdivision>
- <subdivision type="wstu" draft="contributed">Tuamasaga</subdivision>
- <subdivision type="wsvf" draft="contributed">Va’a-o-Fonoti</subdivision>
- <subdivision type="wsvs" draft="contributed">Vaisigano</subdivision>
- <subdivision type="yeab" draft="contributed">Abyan</subdivision>
- <subdivision type="yeba" draft="contributed">Al Bayda’</subdivision>
- <subdivision type="yeda" draft="contributed">Ad Dali’</subdivision>
- <subdivision type="yedh" draft="contributed">Dhamar</subdivision>
- <subdivision type="yehd" draft="contributed">Guvernementet Hadhramaut</subdivision>
- <subdivision type="yehj" draft="contributed">Hajjah</subdivision>
- <subdivision type="yehu" draft="contributed">Al Huaydah</subdivision>
- <subdivision type="yeib" draft="contributed">Ibb</subdivision>
- <subdivision type="yeja" draft="contributed">Al Jawf</subdivision>
- <subdivision type="yela" draft="contributed">Lahij</subdivision>
- <subdivision type="yema" draft="contributed">Ma’rib</subdivision>
- <subdivision type="yemr" draft="contributed">Al-Mahrah</subdivision>
- <subdivision type="yemw" draft="contributed">Al Mahwit</subdivision>
- <subdivision type="yera" draft="contributed">Raymah</subdivision>
- <subdivision type="yesa" draft="contributed">Sanaá</subdivision>
- <subdivision type="yesd" draft="contributed">Sa’dah</subdivision>
- <subdivision type="yesh" draft="contributed">Shabwah</subdivision>
- <subdivision type="yesn" draft="contributed">Sanaá²</subdivision>
- <subdivision type="yeta" draft="contributed">Ta’izz</subdivision>
- <subdivision type="zaec" draft="contributed">Eastern Cape</subdivision>
- <subdivision type="zafs" draft="contributed">Free State</subdivision>
- <subdivision type="zagt" draft="contributed">Gauteng</subdivision>
- <subdivision type="zalp" draft="contributed">Limpopo</subdivision>
- <subdivision type="zamp" draft="contributed">Mpumalanga</subdivision>
- <subdivision type="zanc" draft="contributed">Northern Cape</subdivision>
- <subdivision type="zanl" draft="contributed">KwaZulu-Natal</subdivision>
- <subdivision type="zanw" draft="contributed">North West</subdivision>
- <subdivision type="zawc" draft="contributed">Western Cape</subdivision>
- <subdivision type="zm01" draft="contributed">Western</subdivision>
- <subdivision type="zm02" draft="contributed">Central</subdivision>
- <subdivision type="zm03" draft="contributed">Eastern</subdivision>
- <subdivision type="zm04" draft="contributed">Luapula</subdivision>
- <subdivision type="zm05" draft="contributed">Northern</subdivision>
- <subdivision type="zm06" draft="contributed">North-Western</subdivision>
- <subdivision type="zm07" draft="contributed">Southern</subdivision>
- <subdivision type="zm08" draft="contributed">Copperbelt</subdivision>
- <subdivision type="zm09" draft="contributed">Lusaka</subdivision>
- <subdivision type="zm10" draft="contributed">Muchinga</subdivision>
- <subdivision type="zwha" draft="contributed">Harare Province</subdivision>
- <subdivision type="zwma" draft="contributed">Manicaland</subdivision>
- <subdivision type="zwmc" draft="contributed">Mashonaland Central</subdivision>
- <subdivision type="zwme" draft="contributed">Mashonaland East</subdivision>
- <subdivision type="zwmi" draft="contributed">Midlands</subdivision>
- <subdivision type="zwmn" draft="contributed">Matabeleland North</subdivision>
- <subdivision type="zwms" draft="contributed">Matabeleland South</subdivision>
- <subdivision type="zwmv" draft="contributed">Masvingo</subdivision>
- <subdivision type="zwmw" draft="contributed">Mashonaland West</subdivision>
- </subdivisions>
- </localeDisplayNames>
</ldml>
diff --git a/common/subdivisions/no.xml b/common/subdivisions/no.xml
new file mode 100644
index 0000000..2dc0e8b
--- /dev/null
+++ b/common/subdivisions/no.xml
@@ -0,0 +1,4439 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
+<!-- Copyright © 1991-2020 Unicode, Inc.
+For terms of use, see http://www.unicode.org/copyright.html
+Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
+CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
+-->
+<ldml>
+ <identity>
+ <version number="$Revision$"/>
+ <language type="no"/>
+ </identity>
+ <localeDisplayNames>
+ <subdivisions>
+ <subdivision type="ad02" draft="contributed">Canillo</subdivision>
+ <subdivision type="ad03" draft="contributed">Encamp</subdivision>
+ <subdivision type="ad04" draft="contributed">La Massana</subdivision>
+ <subdivision type="ad05" draft="contributed">Ordino</subdivision>
+ <subdivision type="ad06" draft="contributed">Sant Julià de Lòria</subdivision>
+ <subdivision type="ad08" draft="contributed">Escaldes-Engordany</subdivision>
+ <subdivision type="aeaj" draft="contributed">Emiratet Ajman</subdivision>
+ <subdivision type="aeaz" draft="contributed">Emiratet Abu Dhabi</subdivision>
+ <subdivision type="aedu" draft="contributed">Emiratet Dubai</subdivision>
+ <subdivision type="aefu" draft="contributed">Emiratet Fujairah</subdivision>
+ <subdivision type="aerk" draft="contributed">Emiratet Ras al-Khaimah</subdivision>
+ <subdivision type="aesh" draft="contributed">Emiratet Sharjah</subdivision>
+ <subdivision type="aeuq" draft="contributed">Emiratet Umm al-Qaiwain</subdivision>
+ <subdivision type="afbal" draft="contributed">Balkh</subdivision>
+ <subdivision type="afbam" draft="contributed">Bamiyan</subdivision>
+ <subdivision type="afbdg" draft="contributed">Badghis</subdivision>
+ <subdivision type="afbds" draft="contributed">Badakhshan</subdivision>
+ <subdivision type="afbgl" draft="contributed">Baghlan</subdivision>
+ <subdivision type="afday" draft="contributed">Daikondi</subdivision>
+ <subdivision type="affra" draft="contributed">Farah</subdivision>
+ <subdivision type="affyb" draft="contributed">Faryab</subdivision>
+ <subdivision type="afgha" draft="contributed">Ghazni</subdivision>
+ <subdivision type="afgho" draft="contributed">Ghowr</subdivision>
+ <subdivision type="afhel" draft="contributed">Helmand</subdivision>
+ <subdivision type="afher" draft="contributed">Herat</subdivision>
+ <subdivision type="afjow" draft="contributed">Jowzjan</subdivision>
+ <subdivision type="afkab" draft="contributed">Kabul</subdivision>
+ <subdivision type="afkan" draft="contributed">Kandahar</subdivision>
+ <subdivision type="afkap" draft="contributed">Kapisa</subdivision>
+ <subdivision type="afkdz" draft="contributed">Kunduz</subdivision>
+ <subdivision type="afkho" draft="contributed">Khost</subdivision>
+ <subdivision type="afknr" draft="contributed">Konar</subdivision>
+ <subdivision type="aflag" draft="contributed">Laghman</subdivision>
+ <subdivision type="aflog" draft="contributed">Lowgar</subdivision>
+ <subdivision type="afnan" draft="contributed">Nangarhar</subdivision>
+ <subdivision type="afnim" draft="contributed">Nimruz</subdivision>
+ <subdivision type="afnur" draft="contributed">Nuristān</subdivision>
+ <subdivision type="afpan" draft="contributed">Panjshir</subdivision>
+ <subdivision type="afpar" draft="contributed">Parvan</subdivision>
+ <subdivision type="afpia" draft="contributed">Paktia</subdivision>
+ <subdivision type="afpka" draft="contributed">Paktika</subdivision>
+ <subdivision type="afsam" draft="contributed">Samangan</subdivision>
+ <subdivision type="afsar" draft="contributed">Sar-e Pol</subdivision>
+ <subdivision type="aftak" draft="contributed">Takhar</subdivision>
+ <subdivision type="afuru" draft="contributed">Uruzgan</subdivision>
+ <subdivision type="afwar" draft="contributed">Vardak</subdivision>
+ <subdivision type="afzab" draft="contributed">Zabol</subdivision>
+ <subdivision type="ag03" draft="contributed">Saint George prestegjeld</subdivision>
+ <subdivision type="ag04" draft="contributed">Saint John prestegjeld</subdivision>
+ <subdivision type="ag05" draft="contributed">Saint Mary prestegjeld</subdivision>
+ <subdivision type="ag06" draft="contributed">Saint Paul prestegjeld</subdivision>
+ <subdivision type="ag07" draft="contributed">Saint Peter prestegjeld</subdivision>
+ <subdivision type="ag08" draft="contributed">Saint Philip prestegjeld</subdivision>
+ <subdivision type="ag10" draft="contributed">Barbuda</subdivision>
+ <subdivision type="ag11" draft="contributed">Redonda</subdivision>
+ <subdivision type="al01" draft="contributed">Berat</subdivision>
+ <subdivision type="al02" draft="contributed">Durrës</subdivision>
+ <subdivision type="al03" draft="contributed">Elbasan</subdivision>
+ <subdivision type="al04" draft="contributed">Fier</subdivision>
+ <subdivision type="al05" draft="contributed">Gjirokastër</subdivision>
+ <subdivision type="al06" draft="contributed">Korçë</subdivision>
+ <subdivision type="al07" draft="contributed">Kukës</subdivision>
+ <subdivision type="al08" draft="contributed">Lezhë</subdivision>
+ <subdivision type="al09" draft="contributed">Dibër</subdivision>
+ <subdivision type="al10" draft="contributed">Shkodër</subdivision>
+ <subdivision type="al11" draft="contributed">Tiranë</subdivision>
+ <subdivision type="al12" draft="contributed">Vlorë</subdivision>
+ <subdivision type="amag" draft="contributed">Aragatsotn</subdivision>
+ <subdivision type="amar" draft="contributed">Ararat</subdivision>
+ <subdivision type="amav" draft="contributed">Armavir</subdivision>
+ <subdivision type="amer" draft="contributed">Jerevan</subdivision>
+ <subdivision type="amgr" draft="contributed">Gegharkunik</subdivision>
+ <subdivision type="amkt" draft="contributed">Kotajk</subdivision>
+ <subdivision type="amlo" draft="contributed">Lori</subdivision>
+ <subdivision type="amsh" draft="contributed">Sjirak</subdivision>
+ <subdivision type="amsu" draft="contributed">Syunik</subdivision>
+ <subdivision type="amtv" draft="contributed">Tavusj</subdivision>
+ <subdivision type="amvd" draft="contributed">Vajots Dzor</subdivision>
+ <subdivision type="aobgo" draft="contributed">Bengo</subdivision>
+ <subdivision type="aobgu" draft="contributed">Benguela</subdivision>
+ <subdivision type="aobie" draft="contributed">Bié</subdivision>
+ <subdivision type="aocab" draft="contributed">Cabinda</subdivision>
+ <subdivision type="aoccu" draft="contributed">Cuando Cubango</subdivision>
+ <subdivision type="aocnn" draft="contributed">Cunene</subdivision>
+ <subdivision type="aocno" draft="contributed">Cuanza Norte</subdivision>
+ <subdivision type="aocus" draft="contributed">Cuanza Sul</subdivision>
+ <subdivision type="aohua" draft="contributed">Huambo</subdivision>
+ <subdivision type="aohui" draft="contributed">Huíla</subdivision>
+ <subdivision type="aolno" draft="contributed">Lunda Norte</subdivision>
+ <subdivision type="aolsu" draft="contributed">Lunda Sul</subdivision>
+ <subdivision type="aolua" draft="contributed">Luanda</subdivision>
+ <subdivision type="aomal" draft="contributed">Malanje</subdivision>
+ <subdivision type="aomox" draft="contributed">Moxico</subdivision>
+ <subdivision type="aonam" draft="contributed">Namibe</subdivision>
+ <subdivision type="aouig" draft="contributed">Uíge</subdivision>
+ <subdivision type="aozai" draft="contributed">Zaire</subdivision>
+ <subdivision type="ara" draft="contributed">Salta</subdivision>
+ <subdivision type="arb" draft="contributed">Buenos Aires</subdivision>
+ <subdivision type="arc" draft="contributed">Buenos Aires²</subdivision>
+ <subdivision type="ard" draft="contributed">San Luis</subdivision>
+ <subdivision type="are" draft="contributed">Entre Ríos</subdivision>
+ <subdivision type="arf" draft="contributed">La Rioja</subdivision>
+ <subdivision type="arg" draft="contributed">Santiago del Estero</subdivision>
+ <subdivision type="arh" draft="contributed">Chaco</subdivision>
+ <subdivision type="arj" draft="contributed">San Juan</subdivision>
+ <subdivision type="ark" draft="contributed">Catamarca</subdivision>
+ <subdivision type="arl" draft="contributed">La Pampa</subdivision>
+ <subdivision type="arm" draft="contributed">Mendoza</subdivision>
+ <subdivision type="arn" draft="contributed">Misiones</subdivision>
+ <subdivision type="arp" draft="contributed">Formosa</subdivision>
+ <subdivision type="arq" draft="contributed">Neuquén</subdivision>
+ <subdivision type="arr" draft="contributed">Río Negro</subdivision>
+ <subdivision type="ars" draft="contributed">Santa Fe</subdivision>
+ <subdivision type="art" draft="contributed">Tucumán</subdivision>
+ <subdivision type="aru" draft="contributed">Chubut</subdivision>
+ <subdivision type="arv" draft="contributed">Tierra del Fuego, Antártida e Islas del Atlántico Sur</subdivision>
+ <subdivision type="arw" draft="contributed">Corrientes</subdivision>
+ <subdivision type="arx" draft="contributed">Córdoba</subdivision>
+ <subdivision type="ary" draft="contributed">Jujuy</subdivision>
+ <subdivision type="arz" draft="contributed">Santa Cruz</subdivision>
+ <subdivision type="at1" draft="contributed">Burgenland</subdivision>
+ <subdivision type="at2" draft="contributed">Kärnten</subdivision>
+ <subdivision type="at3" draft="contributed">Niederösterreich</subdivision>
+ <subdivision type="at4" draft="contributed">Oberösterreich</subdivision>
+ <subdivision type="at5" draft="contributed">Salzburg</subdivision>
+ <subdivision type="at6" draft="contributed">Steiermark</subdivision>
+ <subdivision type="at7" draft="contributed">Tirol</subdivision>
+ <subdivision type="at8" draft="contributed">Vorarlberg</subdivision>
+ <subdivision type="at9" draft="contributed">Wien</subdivision>
+ <subdivision type="auact" draft="contributed">Australian Capital Territory</subdivision>
+ <subdivision type="aunsw" draft="contributed">New South Wales</subdivision>
+ <subdivision type="aunt" draft="contributed">Nordterritoriet</subdivision>
+ <subdivision type="auqld" draft="contributed">Queensland</subdivision>
+ <subdivision type="ausa" draft="contributed">Sør-Australia</subdivision>
+ <subdivision type="autas" draft="contributed">Tasmania</subdivision>
+ <subdivision type="auvic" draft="contributed">Victoria</subdivision>
+ <subdivision type="auwa" draft="contributed">Vest-Australia</subdivision>
+ <subdivision type="azabs" draft="contributed">Abşeron</subdivision>
+ <subdivision type="azaga" draft="contributed">Ağstafa</subdivision>
+ <subdivision type="azagc" draft="contributed">Aghjabadi distrikt</subdivision>
+ <subdivision type="azagm" draft="contributed">Ağdam</subdivision>
+ <subdivision type="azags" draft="contributed">Ağdaş</subdivision>
+ <subdivision type="azagu" draft="contributed">Ağsu</subdivision>
+ <subdivision type="azast" draft="contributed">Astara</subdivision>
+ <subdivision type="azba" draft="contributed">Baku</subdivision>
+ <subdivision type="azbab" draft="contributed">Babək</subdivision>
+ <subdivision type="azbal" draft="contributed">Balakən</subdivision>
+ <subdivision type="azbar" draft="contributed">Bərdə</subdivision>
+ <subdivision type="azbey" draft="contributed">Beyləqan</subdivision>
+ <subdivision type="azbil" draft="contributed">Biləsuvar</subdivision>
+ <subdivision type="azcab" draft="contributed">Cəbrayıl</subdivision>
+ <subdivision type="azcal" draft="contributed">Cəlilabab</subdivision>
+ <subdivision type="azcul" draft="contributed">Culfa</subdivision>
+ <subdivision type="azdas" draft="contributed">Daşkəsən</subdivision>
+ <subdivision type="azfuz" draft="contributed">Füzuli</subdivision>
+ <subdivision type="azga" draft="contributed">Gandsja</subdivision>
+ <subdivision type="azgad" draft="contributed">Gədəbəy</subdivision>
+ <subdivision type="azgor" draft="contributed">Goranboy</subdivision>
+ <subdivision type="azgoy" draft="contributed">Göyçay</subdivision>
+ <subdivision type="azgyg" draft="contributed">Göygöl</subdivision>
+ <subdivision type="azhac" draft="contributed">Hacıqabul</subdivision>
+ <subdivision type="azimi" draft="contributed">İmişli (distrikt)</subdivision>
+ <subdivision type="azism" draft="contributed">İsmayıllı (distrikt)</subdivision>
+ <subdivision type="azkal" draft="contributed">Kəlbəcər</subdivision>
+ <subdivision type="azkan" draft="contributed">Kəngərli</subdivision>
+ <subdivision type="azkur" draft="contributed">Kürdəmir</subdivision>
+ <subdivision type="azla" draft="contributed">Lənkəran</subdivision>
+ <subdivision type="azlac" draft="contributed">Laçın</subdivision>
+ <subdivision type="azlan" draft="contributed">Lənkəran²</subdivision>
+ <subdivision type="azler" draft="contributed">Lerik</subdivision>
+ <subdivision type="azmas" draft="contributed">Masallı</subdivision>
+ <subdivision type="azmi" draft="contributed">Mingachevir</subdivision>
+ <subdivision type="aznef" draft="contributed">Neftçala</subdivision>
+ <subdivision type="aznv" draft="contributed">Nachitjevan</subdivision>
+ <subdivision type="aznx" draft="contributed">Nakhitsjevan</subdivision>
+ <subdivision type="azogu" draft="contributed">Oğuz</subdivision>
+ <subdivision type="azord" draft="contributed">Ordubad</subdivision>
+ <subdivision type="azqab" draft="contributed">Qəbələ</subdivision>
+ <subdivision type="azqax" draft="contributed">Qax</subdivision>
+ <subdivision type="azqaz" draft="contributed">Qazax</subdivision>
+ <subdivision type="azqba" draft="contributed">Quba</subdivision>
+ <subdivision type="azqbi" draft="contributed">Qubadlı</subdivision>
+ <subdivision type="azqob" draft="contributed">Qobustan</subdivision>
+ <subdivision type="azqus" draft="contributed">Qusar</subdivision>
+ <subdivision type="azsa" draft="contributed">Şəki</subdivision>
+ <subdivision type="azsab" draft="contributed">Sabirabad</subdivision>
+ <subdivision type="azsad" draft="contributed">Sədərək</subdivision>
+ <subdivision type="azsah" draft="contributed">Şahbuz (distrikt)</subdivision>
+ <subdivision type="azsak" draft="contributed">Şəki²</subdivision>
+ <subdivision type="azsal" draft="contributed">Salyan</subdivision>
+ <subdivision type="azsar" draft="contributed">Şərur (distrikt)</subdivision>
+ <subdivision type="azsat" draft="contributed">Saatlı</subdivision>
+ <subdivision type="azsbn" draft="contributed">Şabran</subdivision>
+ <subdivision type="azsiy" draft="contributed">Siyəzən</subdivision>
+ <subdivision type="azskr" draft="contributed">Şəmkir</subdivision>
+ <subdivision type="azsm" draft="contributed">Sumqayit</subdivision>
+ <subdivision type="azsmi" draft="contributed">Şamaxı</subdivision>
+ <subdivision type="azsmx" draft="contributed">Samux</subdivision>
+ <subdivision type="azsus" draft="contributed">Şuşa</subdivision>
+ <subdivision type="aztar" draft="contributed">Tərtər</subdivision>
+ <subdivision type="aztov" draft="contributed">Tovuz</subdivision>
+ <subdivision type="azuca" draft="contributed">Ucar</subdivision>
+ <subdivision type="azxa" draft="contributed">Stepanakert</subdivision>
+ <subdivision type="azxac" draft="contributed">Xaçmaz</subdivision>
+ <subdivision type="azxci" draft="contributed">Xocalı</subdivision>
+ <subdivision type="azxiz" draft="contributed">Xızı</subdivision>
+ <subdivision type="azxvd" draft="contributed">Xocavənd</subdivision>
+ <subdivision type="azyar" draft="contributed">Yardımlı</subdivision>
+ <subdivision type="azyev" draft="contributed">Yevlax</subdivision>
+ <subdivision type="azzan" draft="contributed">Zəngilan (distrikt)</subdivision>
+ <subdivision type="azzaq" draft="contributed">Zaqatala (distrikt)</subdivision>
+ <subdivision type="azzar" draft="contributed">Zərdab (distrikt)</subdivision>
+ <subdivision type="babih" draft="contributed">Føderasjonen av Bosnia og Hercegovina</subdivision>
+ <subdivision type="babrc" draft="contributed">Brčko-distriktet</subdivision>
+ <subdivision type="basrp" draft="contributed">Republika Srpska</subdivision>
+ <subdivision type="bb01" draft="contributed">Christ Church prestegjeld</subdivision>
+ <subdivision type="bb02" draft="contributed">Saint Andrew prestegjeld</subdivision>
+ <subdivision type="bb03" draft="contributed">Saint George prestegjeld</subdivision>
+ <subdivision type="bb04" draft="contributed">Saint James prestegjeld</subdivision>
+ <subdivision type="bb05" draft="contributed">Saint John</subdivision>
+ <subdivision type="bb06" draft="contributed">Saint Joseph prestegjeld</subdivision>
+ <subdivision type="bb07" draft="contributed">Saint Lucy prestegjeld</subdivision>
+ <subdivision type="bb08" draft="contributed">Saint Michael prestegjeld</subdivision>
+ <subdivision type="bb09" draft="contributed">Saint Peter prestegjeld</subdivision>
+ <subdivision type="bb10" draft="contributed">Saint Philip</subdivision>
+ <subdivision type="bb11" draft="contributed">Saint Thomas prestegjeld</subdivision>
+ <subdivision type="bd06" draft="contributed">Barisal distrikt</subdivision>
+ <subdivision type="bd21" draft="contributed">Jamalpur</subdivision>
+ <subdivision type="bd54" draft="contributed">Rajshahi distrikt</subdivision>
+ <subdivision type="bd55" draft="contributed">Ramgpur Distrikt</subdivision>
+ <subdivision type="bd60" draft="contributed">Sylhet distrikt</subdivision>
+ <subdivision type="bda" draft="contributed">Barisal</subdivision>
+ <subdivision type="bdb" draft="contributed">Chittagong</subdivision>
+ <subdivision type="bdc" draft="contributed">Dhaka</subdivision>
+ <subdivision type="bdd" draft="contributed">Khulna</subdivision>
+ <subdivision type="bde" draft="contributed">Rajshahi</subdivision>
+ <subdivision type="bdf" draft="contributed">Rangpur</subdivision>
+ <subdivision type="bdg" draft="contributed">Sylhet</subdivision>
+ <subdivision type="bebru" draft="contributed">Brussel</subdivision>
+ <subdivision type="bevan" draft="contributed">Antwerpen</subdivision>
+ <subdivision type="bevbr" draft="contributed">Flamsk Brabant</subdivision>
+ <subdivision type="bevlg" draft="contributed">Flandern</subdivision>
+ <subdivision type="bevli" draft="contributed">Limburg</subdivision>
+ <subdivision type="bevov" draft="contributed">Øst-Flandern</subdivision>
+ <subdivision type="bevwv" draft="contributed">Vest-Flandern</subdivision>
+ <subdivision type="bewal" draft="contributed">Vallonia</subdivision>
+ <subdivision type="bewbr" draft="contributed">Vallonsk Brabant</subdivision>
+ <subdivision type="bewht" draft="contributed">Hainaut</subdivision>
+ <subdivision type="bewlg" draft="contributed">Liège</subdivision>
+ <subdivision type="bewlx" draft="contributed">Luxembourg</subdivision>
+ <subdivision type="bewna" draft="contributed">Namur</subdivision>
+ <subdivision type="bf01" draft="contributed">Boucle du Mouhoun</subdivision>
+ <subdivision type="bf02" draft="contributed">Cascades</subdivision>
+ <subdivision type="bf03" draft="contributed">Centre</subdivision>
+ <subdivision type="bf04" draft="contributed">Centre-Est</subdivision>
+ <subdivision type="bf05" draft="contributed">Centre-Nord</subdivision>
+ <subdivision type="bf06" draft="contributed">Centre-Ouest</subdivision>
+ <subdivision type="bf07" draft="contributed">Centre-Sud</subdivision>
+ <subdivision type="bf08" draft="contributed">Est</subdivision>
+ <subdivision type="bf09" draft="contributed">Hauts-Bassins</subdivision>
+ <subdivision type="bf10" draft="contributed">Nord</subdivision>
+ <subdivision type="bf11" draft="contributed">Plateau-Central</subdivision>
+ <subdivision type="bf12" draft="contributed">Sahel</subdivision>
+ <subdivision type="bf13" draft="contributed">Sud-Ouest</subdivision>
+ <subdivision type="bfbal" draft="contributed">Balé</subdivision>
+ <subdivision type="bfbam" draft="contributed">Bam</subdivision>
+ <subdivision type="bfban" draft="contributed">Banwa</subdivision>
+ <subdivision type="bfbaz" draft="contributed">Bazèga</subdivision>
+ <subdivision type="bfbgr" draft="contributed">Bougouriba</subdivision>
+ <subdivision type="bfblg" draft="contributed">Boulgou</subdivision>
+ <subdivision type="bfblk" draft="contributed">Boulkiemdé</subdivision>
+ <subdivision type="bfcom" draft="contributed">Comoé</subdivision>
+ <subdivision type="bfgan" draft="contributed">Ganzourgou</subdivision>
+ <subdivision type="bfgna" draft="contributed">Gnagna</subdivision>
+ <subdivision type="bfgou" draft="contributed">Gourma</subdivision>
+ <subdivision type="bfhou" draft="contributed">Houet</subdivision>
+ <subdivision type="bfiob" draft="contributed">Ioba</subdivision>
+ <subdivision type="bfkad" draft="contributed">Kadiogo</subdivision>
+ <subdivision type="bfken" draft="contributed">Kénédougou</subdivision>
+ <subdivision type="bfkmd" draft="contributed">Komondjari</subdivision>
+ <subdivision type="bfkmp" draft="contributed">Kompienga</subdivision>
+ <subdivision type="bfkop" draft="contributed">Koulpélogo</subdivision>
+ <subdivision type="bfkos" draft="contributed">Kossi</subdivision>
+ <subdivision type="bfkot" draft="contributed">Kouritenga</subdivision>
+ <subdivision type="bfkow" draft="contributed">Kourwéogo</subdivision>
+ <subdivision type="bfler" draft="contributed">Léraba</subdivision>
+ <subdivision type="bflor" draft="contributed">Loroum</subdivision>
+ <subdivision type="bfmou" draft="contributed">Mouhoun</subdivision>
+ <subdivision type="bfnam" draft="contributed">Namentenga</subdivision>
+ <subdivision type="bfnao" draft="contributed">Nahouri</subdivision>
+ <subdivision type="bfnay" draft="contributed">Nayala</subdivision>
+ <subdivision type="bfnou" draft="contributed">Noumbiel</subdivision>
+ <subdivision type="bfoub" draft="contributed">Oubritenga</subdivision>
+ <subdivision type="bfoud" draft="contributed">Oudalan</subdivision>
+ <subdivision type="bfpas" draft="contributed">Passoré</subdivision>
+ <subdivision type="bfpon" draft="contributed">Poni</subdivision>
+ <subdivision type="bfsen" draft="contributed">Séno</subdivision>
+ <subdivision type="bfsis" draft="contributed">Sissili</subdivision>
+ <subdivision type="bfsmt" draft="contributed">Sanmatenga</subdivision>
+ <subdivision type="bfsng" draft="contributed">Sanguié</subdivision>
+ <subdivision type="bfsom" draft="contributed">Soum</subdivision>
+ <subdivision type="bfsor" draft="contributed">Sourou</subdivision>
+ <subdivision type="bftap" draft="contributed">Tapoa</subdivision>
+ <subdivision type="bftui" draft="contributed">Tuy</subdivision>
+ <subdivision type="bfyag" draft="contributed">Yagha</subdivision>
+ <subdivision type="bfyat" draft="contributed">Yatenga</subdivision>
+ <subdivision type="bfzir" draft="contributed">Ziro</subdivision>
+ <subdivision type="bfzon" draft="contributed">Zondoma</subdivision>
+ <subdivision type="bfzou" draft="contributed">Zoundwéogo</subdivision>
+ <subdivision type="bg01" draft="contributed">Blagoevgrad oblast</subdivision>
+ <subdivision type="bg02" draft="contributed">Burgas oblast</subdivision>
+ <subdivision type="bg03" draft="contributed">Varna oblast</subdivision>
+ <subdivision type="bg04" draft="contributed">Veliko Tarnovo oblast</subdivision>
+ <subdivision type="bg05" draft="contributed">Vidin oblast</subdivision>
+ <subdivision type="bg06" draft="contributed">Vratsa oblast</subdivision>
+ <subdivision type="bg07" draft="contributed">Gabrovo oblast</subdivision>
+ <subdivision type="bg08" draft="contributed">Dobritsj oblast</subdivision>
+ <subdivision type="bg09" draft="contributed">Kardzhali provins</subdivision>
+ <subdivision type="bg10" draft="contributed">Kyustendil provins</subdivision>
+ <subdivision type="bg11" draft="contributed">Lovetsj oblast</subdivision>
+ <subdivision type="bg12" draft="contributed">Montana oblast</subdivision>
+ <subdivision type="bg13" draft="contributed">Pazardzhik provins</subdivision>
+ <subdivision type="bg14" draft="contributed">Pernik oblast</subdivision>
+ <subdivision type="bg15" draft="contributed">Pleven oblast</subdivision>
+ <subdivision type="bg16" draft="contributed">Plovdiv oblast</subdivision>
+ <subdivision type="bg17" draft="contributed">Razgrad oblast</subdivision>
+ <subdivision type="bg18" draft="contributed">Ruse oblast</subdivision>
+ <subdivision type="bg19" draft="contributed">Silistra oblast</subdivision>
+ <subdivision type="bg20" draft="contributed">Sliven oblast</subdivision>
+ <subdivision type="bg21" draft="contributed">Smoljan oblast</subdivision>
+ <subdivision type="bg23" draft="contributed">Sofia provins</subdivision>
+ <subdivision type="bg24" draft="contributed">Stara Zagora oblast</subdivision>
+ <subdivision type="bg25" draft="contributed">Targovishte provins</subdivision>
+ <subdivision type="bg26" draft="contributed">Haskovo oblast</subdivision>
+ <subdivision type="bg27" draft="contributed">Sjumen oblast</subdivision>
+ <subdivision type="bg28" draft="contributed">Jambol oblast</subdivision>
+ <subdivision type="bh13" draft="contributed">Hovedstadsguvernementet</subdivision>
+ <subdivision type="bh14" draft="contributed">Sørlige guvernement</subdivision>
+ <subdivision type="bh15" draft="contributed">Muharraq guvernement</subdivision>
+ <subdivision type="bh17" draft="contributed">Nordlige guvernement</subdivision>
+ <subdivision type="bibb" draft="contributed">Bubanza</subdivision>
+ <subdivision type="bibl" draft="contributed">Bujumbura Rural</subdivision>
+ <subdivision type="bibm" draft="contributed">Bujumbura Mairie</subdivision>
+ <subdivision type="bibr" draft="contributed">Bururi</subdivision>
+ <subdivision type="bica" draft="contributed">Cankuzo</subdivision>
+ <subdivision type="bici" draft="contributed">Cibitoke</subdivision>
+ <subdivision type="bigi" draft="contributed">Gitega</subdivision>
+ <subdivision type="biki" draft="contributed">Kirundo</subdivision>
+ <subdivision type="bikr" draft="contributed">Karuzi</subdivision>
+ <subdivision type="biky" draft="contributed">Kayanza</subdivision>
+ <subdivision type="bima" draft="contributed">Makamba</subdivision>
+ <subdivision type="bimu" draft="contributed">Muramvya</subdivision>
+ <subdivision type="bimw" draft="contributed">Mwaro</subdivision>
+ <subdivision type="bimy" draft="contributed">Muyinga</subdivision>
+ <subdivision type="bing" draft="contributed">Ngozi</subdivision>
+ <subdivision type="birt" draft="contributed">Rutana</subdivision>
+ <subdivision type="biry" draft="contributed">Ruyigi</subdivision>
+ <subdivision type="bjak" draft="contributed">Atakora</subdivision>
+ <subdivision type="bjal" draft="contributed">Alibori</subdivision>
+ <subdivision type="bjaq" draft="contributed">Atlantique</subdivision>
+ <subdivision type="bjbo" draft="contributed">Borgou</subdivision>
+ <subdivision type="bjco" draft="contributed">Collines</subdivision>
+ <subdivision type="bjdo" draft="contributed">Donga</subdivision>
+ <subdivision type="bjko" draft="contributed">Kouffo</subdivision>
+ <subdivision type="bjli" draft="contributed">Littoral</subdivision>
+ <subdivision type="bjmo" draft="contributed">Mono</subdivision>
+ <subdivision type="bjou" draft="contributed">Ouémé</subdivision>
+ <subdivision type="bjpl" draft="contributed">Plateau</subdivision>
+ <subdivision type="bjzo" draft="contributed">Zou</subdivision>
+ <subdivision type="bnbe" draft="contributed">Belait distrikt</subdivision>
+ <subdivision type="bnbm" draft="contributed">Brunei-Muara distrik</subdivision>
+ <subdivision type="bnte" draft="contributed">Temburong distrikt</subdivision>
+ <subdivision type="bntu" draft="contributed">Tutong</subdivision>
+ <subdivision type="bob" draft="contributed">Beni</subdivision>
+ <subdivision type="boc" draft="contributed">Cochabamba</subdivision>
+ <subdivision type="boh" draft="contributed">Chuquisaca</subdivision>
+ <subdivision type="bol" draft="contributed">La Paz</subdivision>
+ <subdivision type="bon" draft="contributed">Pando</subdivision>
+ <subdivision type="boo" draft="contributed">Oruro</subdivision>
+ <subdivision type="bop" draft="contributed">Potosí</subdivision>
+ <subdivision type="bos" draft="contributed">Santa Cruz</subdivision>
+ <subdivision type="bot" draft="contributed">Tarija</subdivision>
+ <subdivision type="bqbo" draft="contributed">Bonaire</subdivision>
+ <subdivision type="bqsa" draft="contributed">Saba</subdivision>
+ <subdivision type="bqse" draft="contributed">Sint Eustatius</subdivision>
+ <subdivision type="brac" draft="contributed">Acre</subdivision>
+ <subdivision type="bral" draft="contributed">Alagoas</subdivision>
+ <subdivision type="bram" draft="contributed">Amazonas</subdivision>
+ <subdivision type="brap" draft="contributed">Amapá</subdivision>
+ <subdivision type="brba" draft="contributed">Bahia</subdivision>
+ <subdivision type="brce" draft="contributed">Ceará</subdivision>
+ <subdivision type="brdf" draft="contributed">Distrito Federal</subdivision>
+ <subdivision type="bres" draft="contributed">Espírito Santo</subdivision>
+ <subdivision type="brgo" draft="contributed">Goiás</subdivision>
+ <subdivision type="brma" draft="contributed">Maranhão</subdivision>
+ <subdivision type="brmg" draft="contributed">Minas Gerais</subdivision>
+ <subdivision type="brms" draft="contributed">Mato Grosso do Sul</subdivision>
+ <subdivision type="brmt" draft="contributed">Mato Grosso</subdivision>
+ <subdivision type="brpa" draft="contributed">Pará</subdivision>
+ <subdivision type="brpb" draft="contributed">Paraíba</subdivision>
+ <subdivision type="brpe" draft="contributed">Pernambuco</subdivision>
+ <subdivision type="brpi" draft="contributed">Piauí</subdivision>
+ <subdivision type="brpr" draft="contributed">Paraná</subdivision>
+ <subdivision type="brrj" draft="contributed">Rio de Janeiro</subdivision>
+ <subdivision type="brrn" draft="contributed">Rio Grande do Norte</subdivision>
+ <subdivision type="brro" draft="contributed">Rondônia</subdivision>
+ <subdivision type="brrr" draft="contributed">Roraima</subdivision>
+ <subdivision type="brrs" draft="contributed">Rio Grande do Sul</subdivision>
+ <subdivision type="brsc" draft="contributed">Santa Catarina</subdivision>
+ <subdivision type="brse" draft="contributed">Sergipe</subdivision>
+ <subdivision type="brsp" draft="contributed">São Paulo</subdivision>
+ <subdivision type="brto" draft="contributed">Tocantins</subdivision>
+ <subdivision type="bsak" draft="contributed">Acklins</subdivision>
+ <subdivision type="bsbi" draft="contributed">Bimini</subdivision>
+ <subdivision type="bsbp" draft="contributed">Black Point</subdivision>
+ <subdivision type="bsby" draft="contributed">Berry Islands</subdivision>
+ <subdivision type="bsce" draft="contributed">Central Eleuthera</subdivision>
+ <subdivision type="bsci" draft="contributed">Cat Island (Bahamas)</subdivision>
+ <subdivision type="bsck" draft="contributed">Crooked øy</subdivision>
+ <subdivision type="bsco" draft="contributed">Central Abaco</subdivision>
+ <subdivision type="bscs" draft="contributed">Central Andros</subdivision>
+ <subdivision type="bseg" draft="contributed">Øst Grand Bahama</subdivision>
+ <subdivision type="bsex" draft="contributed">Exuma</subdivision>
+ <subdivision type="bsfp" draft="contributed">Freeport</subdivision>
+ <subdivision type="bsgc" draft="contributed">Grand Cay</subdivision>
+ <subdivision type="bshi" draft="contributed">Harbour Island</subdivision>
+ <subdivision type="bsht" draft="contributed">Hope Town</subdivision>
+ <subdivision type="bsin" draft="contributed">Inagua</subdivision>
+ <subdivision type="bsli" draft="contributed">Long Island</subdivision>
+ <subdivision type="bsmc" draft="contributed">Mangrove Cay</subdivision>
+ <subdivision type="bsmg" draft="contributed">Mayaguana</subdivision>
+ <subdivision type="bsmi" draft="contributed">Moores øya</subdivision>
+ <subdivision type="bsne" draft="contributed">Nord Eleuthera</subdivision>
+ <subdivision type="bsno" draft="contributed">Nord Abaco</subdivision>
+ <subdivision type="bsns" draft="contributed">Nord Andros</subdivision>
+ <subdivision type="bsrc" draft="contributed">Rum Cay</subdivision>
+ <subdivision type="bsri" draft="contributed">Ragged øy</subdivision>
+ <subdivision type="bssa" draft="contributed">Sør Andros</subdivision>
+ <subdivision type="bsse" draft="contributed">Sør Eleuthera</subdivision>
+ <subdivision type="bsso" draft="contributed">Sør Abaco</subdivision>
+ <subdivision type="bsss" draft="contributed">San Salvador</subdivision>
+ <subdivision type="bssw" draft="contributed">Spansk wells</subdivision>
+ <subdivision type="bswg" draft="contributed">West Grand Bahama</subdivision>
+ <subdivision type="bt11" draft="contributed">Paro</subdivision>
+ <subdivision type="bt12" draft="contributed">Chukha</subdivision>
+ <subdivision type="bt13" draft="contributed">Haa</subdivision>
+ <subdivision type="bt14" draft="contributed">Samtse</subdivision>
+ <subdivision type="bt15" draft="contributed">Thimphu distrikt</subdivision>
+ <subdivision type="bt21" draft="contributed">Tsirang</subdivision>
+ <subdivision type="bt22" draft="contributed">Dagana</subdivision>
+ <subdivision type="bt23" draft="contributed">Punakha</subdivision>
+ <subdivision type="bt24" draft="contributed">Wangdue Phodrang</subdivision>
+ <subdivision type="bt31" draft="contributed">Sarpang</subdivision>
+ <subdivision type="bt32" draft="contributed">Trongsa</subdivision>
+ <subdivision type="bt33" draft="contributed">Bumthang</subdivision>
+ <subdivision type="bt34" draft="contributed">Zhemgang</subdivision>
+ <subdivision type="bt41" draft="contributed">Trashigang</subdivision>
+ <subdivision type="bt42" draft="contributed">Mongar</subdivision>
+ <subdivision type="bt43" draft="contributed">Pemagatshel</subdivision>
+ <subdivision type="bt44" draft="contributed">Lhuntse</subdivision>
+ <subdivision type="bt45" draft="contributed">Samdrup Jongkhar</subdivision>
+ <subdivision type="btga" draft="contributed">Gasa</subdivision>
+ <subdivision type="btty" draft="contributed">Trashiyangtse</subdivision>
+ <subdivision type="bwce" draft="contributed">Central</subdivision>
+ <subdivision type="bwch" draft="contributed">Chobe</subdivision>
+ <subdivision type="bwfr" draft="contributed">Francistown</subdivision>
+ <subdivision type="bwga" draft="contributed">Gaborone</subdivision>
+ <subdivision type="bwgh" draft="contributed">Ghanzi</subdivision>
+ <subdivision type="bwjw" draft="contributed">Jwaneng</subdivision>
+ <subdivision type="bwkg" draft="contributed">Kgalagadi</subdivision>
+ <subdivision type="bwkl" draft="contributed">Kgatleng</subdivision>
+ <subdivision type="bwkw" draft="contributed">Kweneng</subdivision>
+ <subdivision type="bwlo" draft="contributed">Lobatse</subdivision>
+ <subdivision type="bwne" draft="contributed">North-East</subdivision>
+ <subdivision type="bwnw" draft="contributed">North-West</subdivision>
+ <subdivision type="bwse" draft="contributed">South-East</subdivision>
+ <subdivision type="bwso" draft="contributed">Southern</subdivision>
+ <subdivision type="bwsp" draft="contributed">Selebi-Phikwe</subdivision>
+ <subdivision type="bwst" draft="contributed">Sowa</subdivision>
+ <subdivision type="bybr" draft="contributed">Brest</subdivision>
+ <subdivision type="byhm" draft="contributed">Minsk</subdivision>
+ <subdivision type="byho" draft="contributed">Homjel</subdivision>
+ <subdivision type="byhr" draft="contributed">Hrodna</subdivision>
+ <subdivision type="byma" draft="contributed">Mahiljow</subdivision>
+ <subdivision type="bymi" draft="contributed">Minsk²</subdivision>
+ <subdivision type="byvi" draft="contributed">Vitebsk</subdivision>
+ <subdivision type="bzbz" draft="contributed">Belize</subdivision>
+ <subdivision type="bzcy" draft="contributed">Cayo</subdivision>
+ <subdivision type="bzczl" draft="contributed">Corozal</subdivision>
+ <subdivision type="bzow" draft="contributed">Orange Walk</subdivision>
+ <subdivision type="bzsc" draft="contributed">Stann Creek</subdivision>
+ <subdivision type="bztol" draft="contributed">Toledo</subdivision>
+ <subdivision type="caab" draft="contributed">Alberta</subdivision>
+ <subdivision type="cabc" draft="contributed">Britisk Columbia</subdivision>
+ <subdivision type="camb" draft="contributed">Manitoba</subdivision>
+ <subdivision type="canb" draft="contributed">New Brunswick</subdivision>
+ <subdivision type="canl" draft="contributed">Newfoundland og Labrador</subdivision>
+ <subdivision type="cans" draft="contributed">Nova Scotia</subdivision>
+ <subdivision type="cant" draft="contributed">Nordvestterritoriene</subdivision>
+ <subdivision type="canu" draft="contributed">Nunavut</subdivision>
+ <subdivision type="caon" draft="contributed">Ontario</subdivision>
+ <subdivision type="cape" draft="contributed">Prince Edward Island</subdivision>
+ <subdivision type="caqc" draft="contributed">Québec</subdivision>
+ <subdivision type="cask" draft="contributed">Saskatchewan</subdivision>
+ <subdivision type="cayt" draft="contributed">Yukon</subdivision>
+ <subdivision type="cdbc" draft="contributed">Bas-Congo</subdivision>
+ <subdivision type="cdbu" draft="contributed">Bas-Uele</subdivision>
+ <subdivision type="cdeq" draft="contributed">Équateur (provins)</subdivision>
+ <subdivision type="cdhk" draft="contributed">Haut-Katanga</subdivision>
+ <subdivision type="cdhl" draft="contributed">Haut-Lomami</subdivision>
+ <subdivision type="cdhu" draft="contributed">Haut-Uele</subdivision>
+ <subdivision type="cdkc" draft="contributed">Lulua</subdivision>
+ <subdivision type="cdke" draft="contributed">Kasaï-Oriental</subdivision>
+ <subdivision type="cdkg" draft="contributed">Kwango</subdivision>
+ <subdivision type="cdkl" draft="contributed">Kwilu</subdivision>
+ <subdivision type="cdkn" draft="contributed">Kinshasa</subdivision>
+ <subdivision type="cdks" draft="contributed">Kasaï</subdivision>
+ <subdivision type="cdlo" draft="contributed">Lomami</subdivision>
+ <subdivision type="cdlu" draft="contributed">Lualaba (provins)</subdivision>
+ <subdivision type="cdma" draft="contributed">Maniema</subdivision>
+ <subdivision type="cdmn" draft="contributed">Mai-Ndombe</subdivision>
+ <subdivision type="cdmo" draft="contributed">Mongala</subdivision>
+ <subdivision type="cdnk" draft="contributed">Nord-Kivu</subdivision>
+ <subdivision type="cdnu" draft="contributed">Nord-Ubangi</subdivision>
+ <subdivision type="cdsa" draft="contributed">Sankuru</subdivision>
+ <subdivision type="cdsk" draft="contributed">Sud-Kivu</subdivision>
+ <subdivision type="cdsu" draft="contributed">Sud-Ubangi</subdivision>
+ <subdivision type="cdta" draft="contributed">Tanganyika</subdivision>
+ <subdivision type="cdto" draft="contributed">Tshopo</subdivision>
+ <subdivision type="cdtu" draft="contributed">Tshuapa</subdivision>
+ <subdivision type="cfac" draft="contributed">Ouham</subdivision>
+ <subdivision type="cfbb" draft="contributed">Bamingui-Bangoran</subdivision>
+ <subdivision type="cfbgf" draft="contributed">Bangui</subdivision>
+ <subdivision type="cfbk" draft="contributed">Basse-Kotto</subdivision>
+ <subdivision type="cfhk" draft="contributed">Haute-Kotto</subdivision>
+ <subdivision type="cfhm" draft="contributed">Haut-Mbomou</subdivision>
+ <subdivision type="cfhs" draft="contributed">Mambéré-Kadéï</subdivision>
+ <subdivision type="cfkb" draft="contributed">Nana-Grébizi</subdivision>
+ <subdivision type="cfkg" draft="contributed">Kémo</subdivision>
+ <subdivision type="cflb" draft="contributed">Lobaye</subdivision>
+ <subdivision type="cfmb" draft="contributed">Mbomou</subdivision>
+ <subdivision type="cfmp" draft="contributed">Ombella-M’Poko</subdivision>
+ <subdivision type="cfnm" draft="contributed">Nana-Mambéré</subdivision>
+ <subdivision type="cfop" draft="contributed">Ouham-Pendé</subdivision>
+ <subdivision type="cfse" draft="contributed">Sangha-Mbaéré</subdivision>
+ <subdivision type="cfuk" draft="contributed">Ouaka</subdivision>
+ <subdivision type="cfvk" draft="contributed">Vakaga</subdivision>
+ <subdivision type="cg2" draft="contributed">Lékoumou</subdivision>
+ <subdivision type="cg5" draft="contributed">Kouilou</subdivision>
+ <subdivision type="cg7" draft="contributed">Likouala</subdivision>
+ <subdivision type="cg8" draft="contributed">Cuvette</subdivision>
+ <subdivision type="cg9" draft="contributed">Niari</subdivision>
+ <subdivision type="cg11" draft="contributed">Bouenza</subdivision>
+ <subdivision type="cg12" draft="contributed">Pool</subdivision>
+ <subdivision type="cg13" draft="contributed">Sangha</subdivision>
+ <subdivision type="cg14" draft="contributed">Plateaux</subdivision>
+ <subdivision type="cg15" draft="contributed">Cuvette-Ouest</subdivision>
+ <subdivision type="cgbzv" draft="contributed">Brazzaville</subdivision>
+ <subdivision type="chag" draft="contributed">Aargau</subdivision>
+ <subdivision type="chai" draft="contributed">Appenzell Innerrhoden</subdivision>
+ <subdivision type="char" draft="contributed">Appenzell Ausserrhoden</subdivision>
+ <subdivision type="chbe" draft="contributed">Bern</subdivision>
+ <subdivision type="chbl" draft="contributed">Basel-Landschaft</subdivision>
+ <subdivision type="chbs" draft="contributed">Basel-Stadt</subdivision>
+ <subdivision type="chfr" draft="contributed">Fribourg</subdivision>
+ <subdivision type="chge" draft="contributed">Genève</subdivision>
+ <subdivision type="chgl" draft="contributed">Glarus</subdivision>
+ <subdivision type="chgr" draft="contributed">Graubünden</subdivision>
+ <subdivision type="chju" draft="contributed">Jura</subdivision>
+ <subdivision type="chlu" draft="contributed">Luzern</subdivision>
+ <subdivision type="chne" draft="contributed">Neuchâtel</subdivision>
+ <subdivision type="chnw" draft="contributed">Nidwalden</subdivision>
+ <subdivision type="chow" draft="contributed">Obwalden</subdivision>
+ <subdivision type="chsg" draft="contributed">Sankt Gallen</subdivision>
+ <subdivision type="chsh" draft="contributed">Schaffhausen</subdivision>
+ <subdivision type="chso" draft="contributed">Solothurn</subdivision>
+ <subdivision type="chsz" draft="contributed">Schwyz</subdivision>
+ <subdivision type="chtg" draft="contributed">Thurgau</subdivision>
+ <subdivision type="chti" draft="contributed">Ticino</subdivision>
+ <subdivision type="chur" draft="contributed">Uri</subdivision>
+ <subdivision type="chvd" draft="contributed">Vaud</subdivision>
+ <subdivision type="chvs" draft="contributed">Wallis</subdivision>
+ <subdivision type="chzg" draft="contributed">Zug</subdivision>
+ <subdivision type="chzh" draft="contributed">Zürich</subdivision>
+ <subdivision type="ciab" draft="contributed">Abidjan</subdivision>
+ <subdivision type="cibs" draft="contributed">Bas-Sassandra distrikt</subdivision>
+ <subdivision type="cidn" draft="contributed">Denguele distrikt</subdivision>
+ <subdivision type="cisv" draft="contributed">Savanes distrikt</subdivision>
+ <subdivision type="civb" draft="contributed">Vallee du Dandama distrikt</subdivision>
+ <subdivision type="ciym" draft="contributed">Yamoussoukro</subdivision>
+ <subdivision type="cizz" draft="contributed">Zanzan</subdivision>
+ <subdivision type="clai" draft="contributed">Aisén</subdivision>
+ <subdivision type="clan" draft="contributed">Antofagasta</subdivision>
+ <subdivision type="clap" draft="contributed">Arica y Parinacota</subdivision>
+ <subdivision type="clar" draft="contributed">Araucanía</subdivision>
+ <subdivision type="clat" draft="contributed">Atacama</subdivision>
+ <subdivision type="clbi" draft="contributed">Biobío</subdivision>
+ <subdivision type="clco" draft="contributed">Coquimbo</subdivision>
+ <subdivision type="clli" draft="contributed">O’Higgins</subdivision>
+ <subdivision type="clll" draft="contributed">Los Lagos</subdivision>
+ <subdivision type="cllr" draft="contributed">Los Ríos</subdivision>
+ <subdivision type="clma" draft="contributed">Magallanes y de la Antártica Chilena</subdivision>
+ <subdivision type="clml" draft="contributed">Maule</subdivision>
+ <subdivision type="clnb" draft="contributed">Ñuble</subdivision>
+ <subdivision type="clrm" draft="contributed">Región Metropolitana de Santiago</subdivision>
+ <subdivision type="clta" draft="contributed">Tarapacá</subdivision>
+ <subdivision type="clvs" draft="contributed">Valparaíso</subdivision>
+ <subdivision type="cmad" draft="contributed">Adamawa</subdivision>
+ <subdivision type="cmce" draft="contributed">Centre</subdivision>
+ <subdivision type="cmen" draft="contributed">Extrême-Nord</subdivision>
+ <subdivision type="cmes" draft="contributed">Est</subdivision>
+ <subdivision type="cmlt" draft="contributed">Littoral</subdivision>
+ <subdivision type="cmno" draft="contributed">Nord</subdivision>
+ <subdivision type="cmnw" draft="contributed">Nord-Ouest</subdivision>
+ <subdivision type="cmou" draft="contributed">Ouest</subdivision>
+ <subdivision type="cmsu" draft="contributed">Sud</subdivision>
+ <subdivision type="cmsw" draft="contributed">Sud-Ouest</subdivision>
+ <subdivision type="cnah" draft="contributed">Anhui</subdivision>
+ <subdivision type="cnbj" draft="contributed">Beijing</subdivision>
+ <subdivision type="cncq" draft="contributed">Chongqing</subdivision>
+ <subdivision type="cnfj" draft="contributed">Fujian</subdivision>
+ <subdivision type="cngd" draft="contributed">Guangdong</subdivision>
+ <subdivision type="cngs" draft="contributed">Gansu</subdivision>
+ <subdivision type="cngx" draft="contributed">Guangxi</subdivision>
+ <subdivision type="cngz" draft="contributed">Guizhou</subdivision>
+ <subdivision type="cnha" draft="contributed">Henan</subdivision>
+ <subdivision type="cnhb" draft="contributed">Hubei</subdivision>
+ <subdivision type="cnhe" draft="contributed">Hebei</subdivision>
+ <subdivision type="cnhi" draft="contributed">Hainan</subdivision>
+ <subdivision type="cnhk" draft="contributed">Hongkong</subdivision>
+ <subdivision type="cnhl" draft="contributed">Heilongjiang</subdivision>
+ <subdivision type="cnhn" draft="contributed">Hunan</subdivision>
+ <subdivision type="cnjl" draft="contributed">Jilin</subdivision>
+ <subdivision type="cnjs" draft="contributed">Jiangsu</subdivision>
+ <subdivision type="cnjx" draft="contributed">Jiangxi</subdivision>
+ <subdivision type="cnln" draft="contributed">Liaoning</subdivision>
+ <subdivision type="cnmo" draft="contributed">Macao</subdivision>
+ <subdivision type="cnnm" draft="contributed">Indre Mongolia</subdivision>
+ <subdivision type="cnnx" draft="contributed">Ningxia</subdivision>
+ <subdivision type="cnqh" draft="contributed">Qinghai</subdivision>
+ <subdivision type="cnsc" draft="contributed">Sichuan</subdivision>
+ <subdivision type="cnsd" draft="contributed">Shandong</subdivision>
+ <subdivision type="cnsh" draft="contributed">Shanghai</subdivision>
+ <subdivision type="cnsn" draft="contributed">Shaanxi</subdivision>
+ <subdivision type="cnsx" draft="contributed">Shanxi</subdivision>
+ <subdivision type="cntj" draft="contributed">Tianjin</subdivision>
+ <subdivision type="cnxj" draft="contributed">Xinjiang</subdivision>
+ <subdivision type="cnxz" draft="contributed">Tibet</subdivision>
+ <subdivision type="cnyn" draft="contributed">Yunnan</subdivision>
+ <subdivision type="cnzj" draft="contributed">Zhejiang</subdivision>
+ <subdivision type="coama" draft="contributed">Amazonas</subdivision>
+ <subdivision type="coant" draft="contributed">Antioquia</subdivision>
+ <subdivision type="coara" draft="contributed">Arauca</subdivision>
+ <subdivision type="coatl" draft="contributed">Atlántico</subdivision>
+ <subdivision type="cobol" draft="contributed">Bolívar</subdivision>
+ <subdivision type="coboy" draft="contributed">Boyacá</subdivision>
+ <subdivision type="cocal" draft="contributed">Caldas</subdivision>
+ <subdivision type="cocaq" draft="contributed">Caquetá</subdivision>
+ <subdivision type="cocas" draft="contributed">Casanare</subdivision>
+ <subdivision type="cocau" draft="contributed">Cauca</subdivision>
+ <subdivision type="coces" draft="contributed">Cesar</subdivision>
+ <subdivision type="cocho" draft="contributed">Chocó</subdivision>
+ <subdivision type="cocor" draft="contributed">Córdoba</subdivision>
+ <subdivision type="cocun" draft="contributed">Cundinamarca</subdivision>
+ <subdivision type="codc" draft="contributed">Bogotá</subdivision>
+ <subdivision type="cogua" draft="contributed">Guainía</subdivision>
+ <subdivision type="coguv" draft="contributed">Guaviare</subdivision>
+ <subdivision type="cohui" draft="contributed">Huila</subdivision>
+ <subdivision type="colag" draft="contributed">La Guajira</subdivision>
+ <subdivision type="comag" draft="contributed">Magdalena</subdivision>
+ <subdivision type="comet" draft="contributed">Meta</subdivision>
+ <subdivision type="conar" draft="contributed">Nariño</subdivision>
+ <subdivision type="consa" draft="contributed">Norte de Santander</subdivision>
+ <subdivision type="coput" draft="contributed">Putumayo</subdivision>
+ <subdivision type="coqui" draft="contributed">Quindío</subdivision>
+ <subdivision type="coris" draft="contributed">Risaralda</subdivision>
+ <subdivision type="cosan" draft="contributed">Santander</subdivision>
+ <subdivision type="cosap" draft="contributed">San Andrés y Providencia</subdivision>
+ <subdivision type="cosuc" draft="contributed">Sucre</subdivision>
+ <subdivision type="cotol" draft="contributed">Tolima</subdivision>
+ <subdivision type="covac" draft="contributed">Valle del Cauca</subdivision>
+ <subdivision type="covau" draft="contributed">Vaupés</subdivision>
+ <subdivision type="covid" draft="contributed">Vichada</subdivision>
+ <subdivision type="cra" draft="contributed">Alajuela</subdivision>
+ <subdivision type="crc" draft="contributed">Cartago</subdivision>
+ <subdivision type="crg" draft="contributed">Guanacaste</subdivision>
+ <subdivision type="crh" draft="contributed">Heredia</subdivision>
+ <subdivision type="crl" draft="contributed">Limón</subdivision>
+ <subdivision type="crp" draft="contributed">Puntarenas</subdivision>
+ <subdivision type="crsj" draft="contributed">San José</subdivision>
+ <subdivision type="cu01" draft="contributed">Pinar del Rio</subdivision>
+ <subdivision type="cu04" draft="contributed">Matanzas</subdivision>
+ <subdivision type="cu05" draft="contributed">Villa Clara Provinsen</subdivision>
+ <subdivision type="cu06" draft="contributed">Cienfuegos</subdivision>
+ <subdivision type="cu07" draft="contributed">Sancti Spíritus</subdivision>
+ <subdivision type="cu08" draft="contributed">Ciego de Avila</subdivision>
+ <subdivision type="cu09" draft="contributed">Camagüey</subdivision>
+ <subdivision type="cu10" draft="contributed">Las Tunas</subdivision>
+ <subdivision type="cu11" draft="contributed">Holguín</subdivision>
+ <subdivision type="cu12" draft="contributed">Granma</subdivision>
+ <subdivision type="cu13" draft="contributed">Santiago de Cuba</subdivision>
+ <subdivision type="cu14" draft="contributed">Guantánamo</subdivision>
+ <subdivision type="cu15" draft="contributed">Artemisa provins</subdivision>
+ <subdivision type="cu16" draft="contributed">Mayabeque provins</subdivision>
+ <subdivision type="cu99" draft="contributed">Isla de la Juventud</subdivision>
+ <subdivision type="cvb" draft="contributed">Barlavento</subdivision>
+ <subdivision type="cvbr" draft="contributed">Brava</subdivision>
+ <subdivision type="cvbv" draft="contributed">Boa Vista</subdivision>
+ <subdivision type="cvca" draft="contributed">Santa Catarina</subdivision>
+ <subdivision type="cvcf" draft="contributed">Santa Catarina do Fogo</subdivision>
+ <subdivision type="cvcr" draft="contributed">Santa Cruz</subdivision>
+ <subdivision type="cvmo" draft="contributed">Mosteiros</subdivision>
+ <subdivision type="cvpa" draft="contributed">Paúl</subdivision>
+ <subdivision type="cvpn" draft="contributed">Porto Novo</subdivision>
+ <subdivision type="cvpr" draft="contributed">Praia</subdivision>
+ <subdivision type="cvrb" draft="contributed">Ribeira Brava</subdivision>
+ <subdivision type="cvrg" draft="contributed">Ribeira Grande</subdivision>
+ <subdivision type="cvrs" draft="contributed">Ribeira Grande de Santiago</subdivision>
+ <subdivision type="cvs" draft="contributed">Sotavento</subdivision>
+ <subdivision type="cvsd" draft="contributed">São Domingos</subdivision>
+ <subdivision type="cvsf" draft="contributed">São Filipe</subdivision>
+ <subdivision type="cvsl" draft="contributed">Sal</subdivision>
+ <subdivision type="cvsm" draft="contributed">São Miguel</subdivision>
+ <subdivision type="cvso" draft="contributed">São Lourenço dos Órgãos</subdivision>
+ <subdivision type="cvss" draft="contributed">São Salvador do Mundo</subdivision>
+ <subdivision type="cvsv" draft="contributed">São Vicente</subdivision>
+ <subdivision type="cvta" draft="contributed">Tarrafal</subdivision>
+ <subdivision type="cvts" draft="contributed">Tarrafal de São Nicolau</subdivision>
+ <subdivision type="cy01" draft="contributed">Nikosia</subdivision>
+ <subdivision type="cy02" draft="contributed">Limassol</subdivision>
+ <subdivision type="cy03" draft="contributed">Larnaka</subdivision>
+ <subdivision type="cy04" draft="contributed">Famagusta</subdivision>
+ <subdivision type="cy05" draft="contributed">Pafos</subdivision>
+ <subdivision type="cy06" draft="contributed">Kyrenia</subdivision>
+ <subdivision type="cz10" draft="contributed">Praha</subdivision>
+ <subdivision type="cz20" draft="contributed">Sentralbøhmen region</subdivision>
+ <subdivision type="cz31" draft="contributed">Sydbøhmen region</subdivision>
+ <subdivision type="cz32" draft="contributed">Plzeň region</subdivision>
+ <subdivision type="cz41" draft="contributed">Karlovy Vary region</subdivision>
+ <subdivision type="cz42" draft="contributed">Ústí nad Labem region</subdivision>
+ <subdivision type="cz51" draft="contributed">Liberec</subdivision>
+ <subdivision type="cz52" draft="contributed">Hradec Králové</subdivision>
+ <subdivision type="cz53" draft="contributed">Pardubice region</subdivision>
+ <subdivision type="cz63" draft="contributed">Vysočina region</subdivision>
+ <subdivision type="cz64" draft="contributed">Sydmähriske region</subdivision>
+ <subdivision type="cz71" draft="contributed">Olomouc region</subdivision>
+ <subdivision type="cz72" draft="contributed">Zlín</subdivision>
+ <subdivision type="cz80" draft="contributed">Mähren-Schlesien region</subdivision>
+ <subdivision type="cz311" draft="contributed">České Budějovice</subdivision>
+ <subdivision type="cz312" draft="contributed">Český Krumlov</subdivision>
+ <subdivision type="cz313" draft="contributed">Jindřichův Hradec</subdivision>
+ <subdivision type="cz314" draft="contributed">Písek</subdivision>
+ <subdivision type="cz315" draft="contributed">Prachatice</subdivision>
+ <subdivision type="cz316" draft="contributed">Strakonice</subdivision>
+ <subdivision type="cz317" draft="contributed">Tábor</subdivision>
+ <subdivision type="cz514" draft="contributed">Semily</subdivision>
+ <subdivision type="cz525" draft="contributed">Trutnov</subdivision>
+ <subdivision type="cz534" draft="contributed">Ústí nad Orlicí</subdivision>
+ <subdivision type="cz631" draft="contributed">Havlíčkův Brod</subdivision>
+ <subdivision type="cz632" draft="contributed">Jihlava</subdivision>
+ <subdivision type="cz633" draft="contributed">Pelhřimov</subdivision>
+ <subdivision type="cz634" draft="contributed">Třebíč</subdivision>
+ <subdivision type="cz635" draft="contributed">Žďár nad Sázavou</subdivision>
+ <subdivision type="debb" draft="contributed">Brandenburg</subdivision>
+ <subdivision type="debe" draft="contributed">Berlin</subdivision>
+ <subdivision type="debw" draft="contributed">Baden-Württemberg</subdivision>
+ <subdivision type="deby" draft="contributed">Bayern</subdivision>
+ <subdivision type="dehb" draft="contributed">Bremen</subdivision>
+ <subdivision type="dehe" draft="contributed">Hessen</subdivision>
+ <subdivision type="dehh" draft="contributed">Hamburg</subdivision>
+ <subdivision type="demv" draft="contributed">Mecklenburg-Vorpommern</subdivision>
+ <subdivision type="deni" draft="contributed">Niedersachsen</subdivision>
+ <subdivision type="denw" draft="contributed">Nordrhein-Westfalen</subdivision>
+ <subdivision type="derp" draft="contributed">Rheinland-Pfalz</subdivision>
+ <subdivision type="desh" draft="contributed">Schleswig-Holstein</subdivision>
+ <subdivision type="desl" draft="contributed">Saarland</subdivision>
+ <subdivision type="desn" draft="contributed">Sachsen</subdivision>
+ <subdivision type="dest" draft="contributed">Sachsen-Anhalt</subdivision>
+ <subdivision type="deth" draft="contributed">Thüringen</subdivision>
+ <subdivision type="djar" draft="contributed">Arta</subdivision>
+ <subdivision type="djas" draft="contributed">Ali Sabieh</subdivision>
+ <subdivision type="djdi" draft="contributed">Dikhil</subdivision>
+ <subdivision type="djdj" draft="contributed">Djibouti</subdivision>
+ <subdivision type="djob" draft="contributed">Obock</subdivision>
+ <subdivision type="djta" draft="contributed">Tadjourah</subdivision>
+ <subdivision type="dk81" draft="contributed">Region Nordjylland</subdivision>
+ <subdivision type="dk82" draft="contributed">Region Midtjylland</subdivision>
+ <subdivision type="dk83" draft="contributed">Region Syddanmark</subdivision>
+ <subdivision type="dk84" draft="contributed">Region Hovedstaden</subdivision>
+ <subdivision type="dk85" draft="contributed">Region Sjælland</subdivision>
+ <subdivision type="dm02" draft="contributed">Saint Andrew prestegjeld</subdivision>
+ <subdivision type="dm03" draft="contributed">Saint David prestegjeld</subdivision>
+ <subdivision type="dm04" draft="contributed">Saint George prestegjeld</subdivision>
+ <subdivision type="dm05" draft="contributed">Saint John prestegjeld</subdivision>
+ <subdivision type="dm06" draft="contributed">Saint Joseph prestegjeld</subdivision>
+ <subdivision type="dm07" draft="contributed">Saint Luke prestegjeld</subdivision>
+ <subdivision type="dm08" draft="contributed">Saint Mark prestegjeld</subdivision>
+ <subdivision type="dm09" draft="contributed">Saint Patrick prestegjeld</subdivision>
+ <subdivision type="dm10" draft="contributed">Saint Paul prestegjeld</subdivision>
+ <subdivision type="dm11" draft="contributed">Saint Peter prestegjeld</subdivision>
+ <subdivision type="do02" draft="contributed">Azua provins</subdivision>
+ <subdivision type="do03" draft="contributed">Baoruco provins</subdivision>
+ <subdivision type="do04" draft="contributed">Barahona provins</subdivision>
+ <subdivision type="do06" draft="contributed">Duarte kommune</subdivision>
+ <subdivision type="do07" draft="contributed">Elias Pina provins</subdivision>
+ <subdivision type="do08" draft="contributed">El Seibo provins</subdivision>
+ <subdivision type="do09" draft="contributed">Espaillat provins</subdivision>
+ <subdivision type="do10" draft="contributed">Independencia provins</subdivision>
+ <subdivision type="do11" draft="contributed">La Altagracia provins</subdivision>
+ <subdivision type="do12" draft="contributed">La Romana provins</subdivision>
+ <subdivision type="do13" draft="contributed">La Vega provins</subdivision>
+ <subdivision type="do14" draft="contributed">Maria Trinidad Sanchez Provins</subdivision>
+ <subdivision type="do15" draft="contributed">Monte Cristi provins</subdivision>
+ <subdivision type="do16" draft="contributed">Pedernales Provins</subdivision>
+ <subdivision type="do17" draft="contributed">Peravia provins</subdivision>
+ <subdivision type="do18" draft="contributed">Puerto Plata provins</subdivision>
+ <subdivision type="do19" draft="contributed">Hermanas Mirabal provins</subdivision>
+ <subdivision type="do20" draft="contributed">Samana provins</subdivision>
+ <subdivision type="do21" draft="contributed">San Cristobal provins</subdivision>
+ <subdivision type="do22" draft="contributed">San Juan</subdivision>
+ <subdivision type="do23" draft="contributed">San Pedro de Macoris</subdivision>
+ <subdivision type="do24" draft="contributed">Sanchez Ramirez provins</subdivision>
+ <subdivision type="do25" draft="contributed">Santiago provins</subdivision>
+ <subdivision type="do26" draft="contributed">Santiago Rodriguez provins</subdivision>
+ <subdivision type="do27" draft="contributed">Valverde</subdivision>
+ <subdivision type="do28" draft="contributed">Monsenor Nouel provins</subdivision>
+ <subdivision type="do29" draft="contributed">Monte Plata Provins</subdivision>
+ <subdivision type="do30" draft="contributed">Hato Mayor Provins</subdivision>
+ <subdivision type="do31" draft="contributed">San jose provins</subdivision>
+ <subdivision type="do32" draft="contributed">Santo Domingo provins</subdivision>
+ <subdivision type="dz01" draft="contributed">Adrar</subdivision>
+ <subdivision type="dz02" draft="contributed">Chlef</subdivision>
+ <subdivision type="dz03" draft="contributed">Laghouat</subdivision>
+ <subdivision type="dz04" draft="contributed">Oum el-Bouaghi</subdivision>
+ <subdivision type="dz05" draft="contributed">Batna</subdivision>
+ <subdivision type="dz06" draft="contributed">Béjaïa</subdivision>
+ <subdivision type="dz07" draft="contributed">Biskra</subdivision>
+ <subdivision type="dz08" draft="contributed">Béchar</subdivision>
+ <subdivision type="dz09" draft="contributed">Blida</subdivision>
+ <subdivision type="dz10" draft="contributed">Bouira</subdivision>
+ <subdivision type="dz11" draft="contributed">Tamanrasset</subdivision>
+ <subdivision type="dz12" draft="contributed">Tébessa</subdivision>
+ <subdivision type="dz13" draft="contributed">Tlemcen</subdivision>
+ <subdivision type="dz14" draft="contributed">Tiaret</subdivision>
+ <subdivision type="dz15" draft="contributed">Tizi Ouzou</subdivision>
+ <subdivision type="dz16" draft="contributed">Alger</subdivision>
+ <subdivision type="dz17" draft="contributed">Djelfa</subdivision>
+ <subdivision type="dz18" draft="contributed">Jijel</subdivision>
+ <subdivision type="dz19" draft="contributed">Sétif</subdivision>
+ <subdivision type="dz20" draft="contributed">Saida</subdivision>
+ <subdivision type="dz21" draft="contributed">Skikda</subdivision>
+ <subdivision type="dz22" draft="contributed">Sidi bel Abbès</subdivision>
+ <subdivision type="dz23" draft="contributed">Annaba</subdivision>
+ <subdivision type="dz24" draft="contributed">Guelma</subdivision>
+ <subdivision type="dz25" draft="contributed">Constantine</subdivision>
+ <subdivision type="dz26" draft="contributed">Medea</subdivision>
+ <subdivision type="dz27" draft="contributed">Mostaganem</subdivision>
+ <subdivision type="dz28" draft="contributed">M’Sila</subdivision>
+ <subdivision type="dz29" draft="contributed">Muaskar</subdivision>
+ <subdivision type="dz30" draft="contributed">Ouargla</subdivision>
+ <subdivision type="dz31" draft="contributed">Oran</subdivision>
+ <subdivision type="dz32" draft="contributed">El Bayadh</subdivision>
+ <subdivision type="dz33" draft="contributed">Illizi</subdivision>
+ <subdivision type="dz34" draft="contributed">Bordj Bou Arréridj</subdivision>
+ <subdivision type="dz35" draft="contributed">Boumerdès</subdivision>
+ <subdivision type="dz36" draft="contributed">El Tarf</subdivision>
+ <subdivision type="dz37" draft="contributed">Tindouf</subdivision>
+ <subdivision type="dz38" draft="contributed">Tissemsilt</subdivision>
+ <subdivision type="dz39" draft="contributed">El Oued</subdivision>
+ <subdivision type="dz40" draft="contributed">Khenchela</subdivision>
+ <subdivision type="dz41" draft="contributed">Souk Ahras</subdivision>
+ <subdivision type="dz42" draft="contributed">Tipaza</subdivision>
+ <subdivision type="dz43" draft="contributed">Mila</subdivision>
+ <subdivision type="dz44" draft="contributed">Aïn Defla</subdivision>
+ <subdivision type="dz45" draft="contributed">Naama</subdivision>
+ <subdivision type="dz46" draft="contributed">Aïn Témouchent</subdivision>
+ <subdivision type="dz47" draft="contributed">Ghardaïa</subdivision>
+ <subdivision type="dz48" draft="contributed">Relizane</subdivision>
+ <subdivision type="eca" draft="contributed">Azuay</subdivision>
+ <subdivision type="ecb" draft="contributed">Bolívar</subdivision>
+ <subdivision type="ecc" draft="contributed">Carchi</subdivision>
+ <subdivision type="ecd" draft="contributed">Orellana</subdivision>
+ <subdivision type="ece" draft="contributed">Esmeraldas</subdivision>
+ <subdivision type="ecf" draft="contributed">Cañar</subdivision>
+ <subdivision type="ecg" draft="contributed">Guayas</subdivision>
+ <subdivision type="ech" draft="contributed">Chimborazo</subdivision>
+ <subdivision type="eci" draft="contributed">Imbabura</subdivision>
+ <subdivision type="ecl" draft="contributed">Loja</subdivision>
+ <subdivision type="ecm" draft="contributed">Manabí</subdivision>
+ <subdivision type="ecn" draft="contributed">Napo</subdivision>
+ <subdivision type="eco" draft="contributed">El Oro</subdivision>
+ <subdivision type="ecp" draft="contributed">Pichincha</subdivision>
+ <subdivision type="ecr" draft="contributed">Los Ríos</subdivision>
+ <subdivision type="ecs" draft="contributed">Morona Santiago</subdivision>
+ <subdivision type="ecsd" draft="contributed">Santo Domingo de las Tsachilas provins</subdivision>
+ <subdivision type="ecse" draft="contributed">Santa Elena provins</subdivision>
+ <subdivision type="ect" draft="contributed">Tungurahua</subdivision>
+ <subdivision type="ecu" draft="contributed">Sucumbíos</subdivision>
+ <subdivision type="ecw" draft="contributed">Galapagos provins</subdivision>
+ <subdivision type="ecx" draft="contributed">Cotopaxi</subdivision>
+ <subdivision type="ecy" draft="contributed">Pastaza</subdivision>
+ <subdivision type="ecz" draft="contributed">Zamora Chinchipe</subdivision>
+ <subdivision type="ee37" draft="contributed">Harju</subdivision>
+ <subdivision type="ee39" draft="contributed">Hiiu</subdivision>
+ <subdivision type="ee44" draft="contributed">Ida-Viru</subdivision>
+ <subdivision type="ee49" draft="contributed">Jõgeva</subdivision>
+ <subdivision type="ee51" draft="contributed">Järva</subdivision>
+ <subdivision type="ee57" draft="contributed">Lääne</subdivision>
+ <subdivision type="ee59" draft="contributed">Lääne-Viru</subdivision>
+ <subdivision type="ee65" draft="contributed">Põlva</subdivision>
+ <subdivision type="ee67" draft="contributed">Pärnu</subdivision>
+ <subdivision type="ee70" draft="contributed">Rapla</subdivision>
+ <subdivision type="ee74" draft="contributed">Saare</subdivision>
+ <subdivision type="ee78" draft="contributed">Tartu</subdivision>
+ <subdivision type="ee82" draft="contributed">Valga</subdivision>
+ <subdivision type="ee84" draft="contributed">Viljandi</subdivision>
+ <subdivision type="ee86" draft="contributed">Võru</subdivision>
+ <subdivision type="egalx" draft="contributed">Guvernementet Al Iskandariyah</subdivision>
+ <subdivision type="egasn" draft="contributed">Aswan</subdivision>
+ <subdivision type="egast" draft="contributed">Guvernementet Asyut</subdivision>
+ <subdivision type="egba" draft="contributed">Guvernementet Al-Bahr al-Ahmar</subdivision>
+ <subdivision type="egbh" draft="contributed">Guvernementet Al Buhayrah</subdivision>
+ <subdivision type="egbns" draft="contributed">Guvernementet Bani Suwayf</subdivision>
+ <subdivision type="egc" draft="contributed">Guvernementet Al Qahirah</subdivision>
+ <subdivision type="egdk" draft="contributed">Ad Daqahliyah</subdivision>
+ <subdivision type="egdt" draft="contributed">Guvernementet Dumyat</subdivision>
+ <subdivision type="egfym" draft="contributed">Guvernementet Al Fayyum</subdivision>
+ <subdivision type="eggh" draft="contributed">Guvernementet Al Gharbiyah</subdivision>
+ <subdivision type="eggz" draft="contributed">Guvernementet Al Jizah</subdivision>
+ <subdivision type="egis" draft="contributed">Guvernementet Al Isma’iliyah</subdivision>
+ <subdivision type="egjs" draft="contributed">Guvernementet Janub Sina’</subdivision>
+ <subdivision type="egkb" draft="contributed">Al Qalyubiyah</subdivision>
+ <subdivision type="egkfs" draft="contributed">Kafr ash Shaykh</subdivision>
+ <subdivision type="egkn" draft="contributed">Guvernementet Qina</subdivision>
+ <subdivision type="eglx" draft="contributed">Guvernementet Luxor</subdivision>
+ <subdivision type="egmn" draft="contributed">Guvernementet Al Minya</subdivision>
+ <subdivision type="egmnf" draft="contributed">Guvernementet Al Minufiyah</subdivision>
+ <subdivision type="egmt" draft="contributed">Guvernementet Matruh</subdivision>
+ <subdivision type="egpts" draft="contributed">Bur Sa’id</subdivision>
+ <subdivision type="egshg" draft="contributed">Suhaj</subdivision>
+ <subdivision type="egshr" draft="contributed">Ash Sharqiyah</subdivision>
+ <subdivision type="egsin" draft="contributed">Guvernementet Shamal Sina’</subdivision>
+ <subdivision type="egsuz" draft="contributed">As Suways</subdivision>
+ <subdivision type="egwad" draft="contributed">Guvernementet Al Wadi al Jadid</subdivision>
+ <subdivision type="eran" draft="contributed">Anseba</subdivision>
+ <subdivision type="erdk" draft="contributed">Debubawi Keyih Bahri</subdivision>
+ <subdivision type="erdu" draft="contributed">Debub</subdivision>
+ <subdivision type="ergb" draft="contributed">Gash-Barka</subdivision>
+ <subdivision type="erma" draft="contributed">Maekel</subdivision>
+ <subdivision type="ersk" draft="contributed">Semenawi Keyih Bahri</subdivision>
+ <subdivision type="esa" draft="contributed">Alicante</subdivision>
+ <subdivision type="esab" draft="contributed">Albacete</subdivision>
+ <subdivision type="esal" draft="contributed">Almería</subdivision>
+ <subdivision type="esan" draft="contributed">Andalucía</subdivision>
+ <subdivision type="esar" draft="contributed">Aragon</subdivision>
+ <subdivision type="esas" draft="contributed">Asturias</subdivision>
+ <subdivision type="esav" draft="contributed">Ávila</subdivision>
+ <subdivision type="esb" draft="contributed">Barcelona</subdivision>
+ <subdivision type="esba" draft="contributed">Badajoz</subdivision>
+ <subdivision type="esbi" draft="contributed">Bizkaia</subdivision>
+ <subdivision type="esbu" draft="contributed">Burgos</subdivision>
+ <subdivision type="esc" draft="contributed">A Coruña</subdivision>
+ <subdivision type="esca" draft="contributed">Cádiz</subdivision>
+ <subdivision type="escb" draft="contributed">Cantabria</subdivision>
+ <subdivision type="escc" draft="contributed">Cáceres</subdivision>
+ <subdivision type="esce" draft="contributed">Ceuta</subdivision>
+ <subdivision type="escl" draft="contributed">Castilla y León</subdivision>
+ <subdivision type="escm" draft="contributed">Castilla-La Mancha</subdivision>
+ <subdivision type="esco" draft="contributed">Córdoba</subdivision>
+ <subdivision type="escr" draft="contributed">Ciudad Real</subdivision>
+ <subdivision type="escs" draft="contributed">Castellón</subdivision>
+ <subdivision type="esct" draft="contributed">Catalonia</subdivision>
+ <subdivision type="escu" draft="contributed">Cuenca</subdivision>
+ <subdivision type="esex" draft="contributed">Extremadura</subdivision>
+ <subdivision type="esga" draft="contributed">Galicia</subdivision>
+ <subdivision type="esgc" draft="contributed">Las Palmas</subdivision>
+ <subdivision type="esgi" draft="contributed">Girona</subdivision>
+ <subdivision type="esgr" draft="contributed">Granada</subdivision>
+ <subdivision type="esgu" draft="contributed">Guadalajara</subdivision>
+ <subdivision type="esh" draft="contributed">Huelva</subdivision>
+ <subdivision type="eshu" draft="contributed">Huesca</subdivision>
+ <subdivision type="esib" draft="contributed">Balearene</subdivision>
+ <subdivision type="esj" draft="contributed">Jaén</subdivision>
+ <subdivision type="esl" draft="contributed">Lleida</subdivision>
+ <subdivision type="esle" draft="contributed">León</subdivision>
+ <subdivision type="eslo" draft="contributed">La Rioja</subdivision>
+ <subdivision type="eslu" draft="contributed">Lugo</subdivision>
+ <subdivision type="esma" draft="contributed">Málaga</subdivision>
+ <subdivision type="esmc" draft="contributed">Murcia</subdivision>
+ <subdivision type="esmd" draft="contributed">Madrid</subdivision>
+ <subdivision type="esml" draft="contributed">Melilla</subdivision>
+ <subdivision type="esna" draft="contributed">Navarra²</subdivision>
+ <subdivision type="esnc" draft="contributed">Navarra</subdivision>
+ <subdivision type="esor" draft="contributed">Ourense</subdivision>
+ <subdivision type="esp" draft="contributed">Palencia</subdivision>
+ <subdivision type="espm" draft="contributed">Balearene²</subdivision>
+ <subdivision type="espo" draft="contributed">Pontevedra</subdivision>
+ <subdivision type="espv" draft="contributed">Baskerland</subdivision>
+ <subdivision type="esri" draft="contributed">La Rioja²</subdivision>
+ <subdivision type="ess" draft="contributed">Cantabria²</subdivision>
+ <subdivision type="essa" draft="contributed">Salamanca</subdivision>
+ <subdivision type="esse" draft="contributed">Sevilla</subdivision>
+ <subdivision type="essg" draft="contributed">Segovia</subdivision>
+ <subdivision type="esso" draft="contributed">Soria</subdivision>
+ <subdivision type="esss" draft="contributed">Gipuzkoa</subdivision>
+ <subdivision type="est" draft="contributed">Tarragona</subdivision>
+ <subdivision type="este" draft="contributed">Teruel</subdivision>
+ <subdivision type="estf" draft="contributed">Santa Cruz de Tenerife</subdivision>
+ <subdivision type="esto" draft="contributed">Toledo</subdivision>
+ <subdivision type="esv" draft="contributed">Valencia</subdivision>
+ <subdivision type="esva" draft="contributed">Valladolid</subdivision>
+ <subdivision type="esvc" draft="contributed">Valencia²</subdivision>
+ <subdivision type="esvi" draft="contributed">Álava</subdivision>
+ <subdivision type="esz" draft="contributed">Zaragoza</subdivision>
+ <subdivision type="esza" draft="contributed">Zamora</subdivision>
+ <subdivision type="etaa" draft="contributed">Addis Abeba</subdivision>
+ <subdivision type="etaf" draft="contributed">Afar</subdivision>
+ <subdivision type="etam" draft="contributed">Amhara</subdivision>
+ <subdivision type="etbe" draft="contributed">Benishangul-Gumuz</subdivision>
+ <subdivision type="etdd" draft="contributed">Dire Dawa</subdivision>
+ <subdivision type="etga" draft="contributed">Gambela</subdivision>
+ <subdivision type="etha" draft="contributed">Harar</subdivision>
+ <subdivision type="etor" draft="contributed">Oromia</subdivision>
+ <subdivision type="etsn" draft="contributed">Region for sørlige nasjoner, nasjonaliteter og folk</subdivision>
+ <subdivision type="etso" draft="contributed">Somali</subdivision>
+ <subdivision type="etti" draft="contributed">Tigray</subdivision>
+ <subdivision type="fi02" draft="contributed">Södra Karelen</subdivision>
+ <subdivision type="fi03" draft="contributed">Södra Österbotten</subdivision>
+ <subdivision type="fi04" draft="contributed">Södra Savolax</subdivision>
+ <subdivision type="fi05" draft="contributed">Kajanaland</subdivision>
+ <subdivision type="fi06" draft="contributed">Egentliga Tavastland</subdivision>
+ <subdivision type="fi07" draft="contributed">Mellersta Österbotten</subdivision>
+ <subdivision type="fi08" draft="contributed">Mellersta Finland</subdivision>
+ <subdivision type="fi09" draft="contributed">Kymmenedalen</subdivision>
+ <subdivision type="fi10" draft="contributed">Lappland</subdivision>
+ <subdivision type="fi11" draft="contributed">Birkaland</subdivision>
+ <subdivision type="fi12" draft="contributed">Österbotten</subdivision>
+ <subdivision type="fi13" draft="contributed">Norra Karelen</subdivision>
+ <subdivision type="fi14" draft="contributed">Norra Österbotten</subdivision>
+ <subdivision type="fi15" draft="contributed">Norra Savolax</subdivision>
+ <subdivision type="fi16" draft="contributed">Päijänne-Tavastland</subdivision>
+ <subdivision type="fi17" draft="contributed">Satakunta</subdivision>
+ <subdivision type="fi18" draft="contributed">Nyland</subdivision>
+ <subdivision type="fi19" draft="contributed">Egentliga Finland</subdivision>
+ <subdivision type="fj01" draft="contributed">Ba Province</subdivision>
+ <subdivision type="fj02" draft="contributed">Bua Province</subdivision>
+ <subdivision type="fj03" draft="contributed">Cakaudrove Province</subdivision>
+ <subdivision type="fj04" draft="contributed">Kadavu Province</subdivision>
+ <subdivision type="fj05" draft="contributed">Lau Province</subdivision>
+ <subdivision type="fj06" draft="contributed">Lomaiviti Province</subdivision>
+ <subdivision type="fj07" draft="contributed">Macuata Province</subdivision>
+ <subdivision type="fj08" draft="contributed">Nadroga-Navosa Province</subdivision>
+ <subdivision type="fj09" draft="contributed">Naitasiri Province</subdivision>
+ <subdivision type="fj10" draft="contributed">Namosi Province</subdivision>
+ <subdivision type="fj11" draft="contributed">Ra Province</subdivision>
+ <subdivision type="fj12" draft="contributed">Rewa Province</subdivision>
+ <subdivision type="fj13" draft="contributed">Serua Province</subdivision>
+ <subdivision type="fj14" draft="contributed">Tailevu Province</subdivision>
+ <subdivision type="fjc" draft="contributed">Central</subdivision>
+ <subdivision type="fje" draft="contributed">Eastern</subdivision>
+ <subdivision type="fjn" draft="contributed">Northern</subdivision>
+ <subdivision type="fjr" draft="contributed">Rotuma</subdivision>
+ <subdivision type="fjw" draft="contributed">Western</subdivision>
+ <subdivision type="fmksa" draft="contributed">Kosrae</subdivision>
+ <subdivision type="fmpni" draft="contributed">Pohnpei state</subdivision>
+ <subdivision type="fmtrk" draft="contributed">Chuuk</subdivision>
+ <subdivision type="fr01" draft="contributed">Ain</subdivision>
+ <subdivision type="fr02" draft="contributed">Aisne</subdivision>
+ <subdivision type="fr2a" draft="contributed">Corse-du-Sud</subdivision>
+ <subdivision type="fr2b" draft="contributed">Haute-Corse</subdivision>
+ <subdivision type="fr03" draft="contributed">Allier</subdivision>
+ <subdivision type="fr04" draft="contributed">Alpes-de-Haute-Provence</subdivision>
+ <subdivision type="fr05" draft="contributed">Hautes-Alpes</subdivision>
+ <subdivision type="fr06" draft="contributed">Alpes-Maritimes</subdivision>
+ <subdivision type="fr07" draft="contributed">Ardèche</subdivision>
+ <subdivision type="fr08" draft="contributed">Ardennes</subdivision>
+ <subdivision type="fr09" draft="contributed">Ariège</subdivision>
+ <subdivision type="fr10" draft="contributed">Aube</subdivision>
+ <subdivision type="fr11" draft="contributed">Aude</subdivision>
+ <subdivision type="fr12" draft="contributed">Aveyron</subdivision>
+ <subdivision type="fr13" draft="contributed">Bouches-du-Rhône</subdivision>
+ <subdivision type="fr14" draft="contributed">Calvados</subdivision>
+ <subdivision type="fr15" draft="contributed">Cantal</subdivision>
+ <subdivision type="fr16" draft="contributed">Charente</subdivision>
+ <subdivision type="fr17" draft="contributed">Charente-Maritime</subdivision>
+ <subdivision type="fr18" draft="contributed">Cher</subdivision>
+ <subdivision type="fr19" draft="contributed">Corrèze</subdivision>
+ <subdivision type="fr21" draft="contributed">Côte-d’Or</subdivision>
+ <subdivision type="fr22" draft="contributed">Côtes-d’Armor</subdivision>
+ <subdivision type="fr23" draft="contributed">Creuse</subdivision>
+ <subdivision type="fr24" draft="contributed">Dordogne</subdivision>
+ <subdivision type="fr25" draft="contributed">Doubs</subdivision>
+ <subdivision type="fr26" draft="contributed">Drôme</subdivision>
+ <subdivision type="fr27" draft="contributed">Eure</subdivision>
+ <subdivision type="fr28" draft="contributed">Eure-et-Loir</subdivision>
+ <subdivision type="fr29" draft="contributed">Finistère</subdivision>
+ <subdivision type="fr30" draft="contributed">Gard</subdivision>
+ <subdivision type="fr31" draft="contributed">Haute-Garonne</subdivision>
+ <subdivision type="fr32" draft="contributed">Gers</subdivision>
+ <subdivision type="fr33" draft="contributed">Gironde</subdivision>
+ <subdivision type="fr34" draft="contributed">Hérault</subdivision>
+ <subdivision type="fr35" draft="contributed">Ille-et-Vilaine</subdivision>
+ <subdivision type="fr36" draft="contributed">Indre</subdivision>
+ <subdivision type="fr37" draft="contributed">Indre-et-Loire</subdivision>
+ <subdivision type="fr38" draft="contributed">Isère</subdivision>
+ <subdivision type="fr39" draft="contributed">Jura</subdivision>
+ <subdivision type="fr40" draft="contributed">Landes</subdivision>
+ <subdivision type="fr41" draft="contributed">Loir-et-Cher</subdivision>
+ <subdivision type="fr42" draft="contributed">Loire</subdivision>
+ <subdivision type="fr43" draft="contributed">Haute-Loire</subdivision>
+ <subdivision type="fr44" draft="contributed">Loire-Atlantique</subdivision>
+ <subdivision type="fr45" draft="contributed">Loiret</subdivision>
+ <subdivision type="fr46" draft="contributed">Lot</subdivision>
+ <subdivision type="fr47" draft="contributed">Lot-et-Garonne</subdivision>
+ <subdivision type="fr48" draft="contributed">Lozère</subdivision>
+ <subdivision type="fr49" draft="contributed">Maine-et-Loire</subdivision>
+ <subdivision type="fr50" draft="contributed">Manche</subdivision>
+ <subdivision type="fr51" draft="contributed">Marne</subdivision>
+ <subdivision type="fr52" draft="contributed">Haute-Marne</subdivision>
+ <subdivision type="fr53" draft="contributed">Mayenne</subdivision>
+ <subdivision type="fr54" draft="contributed">Meurthe-et-Moselle</subdivision>
+ <subdivision type="fr55" draft="contributed">Meuse</subdivision>
+ <subdivision type="fr56" draft="contributed">Morbihan</subdivision>
+ <subdivision type="fr57" draft="contributed">Moselle</subdivision>
+ <subdivision type="fr58" draft="contributed">Nièvre</subdivision>
+ <subdivision type="fr59" draft="contributed">Nord</subdivision>
+ <subdivision type="fr60" draft="contributed">Oise</subdivision>
+ <subdivision type="fr61" draft="contributed">Orne</subdivision>
+ <subdivision type="fr62" draft="contributed">Pas-de-Calais</subdivision>
+ <subdivision type="fr63" draft="contributed">Puy-de-Dôme</subdivision>
+ <subdivision type="fr64" draft="contributed">Pyrénées-Atlantiques</subdivision>
+ <subdivision type="fr65" draft="contributed">Hautes-Pyrénées</subdivision>
+ <subdivision type="fr66" draft="contributed">Pyrénées-Orientales</subdivision>
+ <subdivision type="fr67" draft="contributed">Bas-Rhin</subdivision>
+ <subdivision type="fr68" draft="contributed">Haut-Rhin</subdivision>
+ <subdivision type="fr69" draft="contributed">Rhône</subdivision>
+ <subdivision type="fr70" draft="contributed">Haute-Saône</subdivision>
+ <subdivision type="fr71" draft="contributed">Saône-et-Loire</subdivision>
+ <subdivision type="fr72" draft="contributed">Sarthe</subdivision>
+ <subdivision type="fr73" draft="contributed">Savoie</subdivision>
+ <subdivision type="fr74" draft="contributed">Haute-Savoie</subdivision>
+ <subdivision type="fr75" draft="contributed">Paris</subdivision>
+ <subdivision type="fr76" draft="contributed">Seine-Maritime</subdivision>
+ <subdivision type="fr77" draft="contributed">Seine-et-Marne</subdivision>
+ <subdivision type="fr78" draft="contributed">Yvelines</subdivision>
+ <subdivision type="fr79" draft="contributed">Deux-Sèvres</subdivision>
+ <subdivision type="fr80" draft="contributed">Somme</subdivision>
+ <subdivision type="fr81" draft="contributed">Tarn</subdivision>
+ <subdivision type="fr82" draft="contributed">Tarn-et-Garonne</subdivision>
+ <subdivision type="fr83" draft="contributed">Var</subdivision>
+ <subdivision type="fr84" draft="contributed">Vaucluse</subdivision>
+ <subdivision type="fr85" draft="contributed">Vendée</subdivision>
+ <subdivision type="fr86" draft="contributed">Vienne</subdivision>
+ <subdivision type="fr87" draft="contributed">Haute-Vienne</subdivision>
+ <subdivision type="fr88" draft="contributed">Vosges</subdivision>
+ <subdivision type="fr89" draft="contributed">Yonne</subdivision>
+ <subdivision type="fr90" draft="contributed">Territoire de Belfort</subdivision>
+ <subdivision type="fr91" draft="contributed">Essonne</subdivision>
+ <subdivision type="fr92" draft="contributed">Hauts-de-Seine</subdivision>
+ <subdivision type="fr93" draft="contributed">Seine-Saint-Denis</subdivision>
+ <subdivision type="fr94" draft="contributed">Val-de-Marne</subdivision>
+ <subdivision type="fr95" draft="contributed">Val-d’Oise</subdivision>
+ <subdivision type="frara" draft="contributed">Auvergne-Rhône-Alpes</subdivision>
+ <subdivision type="frbfc" draft="contributed">Bourgogne-Franche-Comté</subdivision>
+ <subdivision type="frbre" draft="contributed">Bretagne</subdivision>
+ <subdivision type="frcor" draft="contributed">Korsika</subdivision>
+ <subdivision type="frcvl" draft="contributed">Centre</subdivision>
+ <subdivision type="frges" draft="contributed">Grand Est</subdivision>
+ <subdivision type="frhdf" draft="contributed">Hauts-de-France</subdivision>
+ <subdivision type="fridf" draft="contributed">Île-de-France</subdivision>
+ <subdivision type="frnaq" draft="contributed">Nouvelle-Aquitaine</subdivision>
+ <subdivision type="frocc" draft="contributed">Occitanie</subdivision>
+ <subdivision type="frpac" draft="contributed">Provence-Alpes-Côte d’Azur</subdivision>
+ <subdivision type="frpdl" draft="contributed">Pays de la Loire</subdivision>
+ <subdivision type="ga1" draft="contributed">Estuaire</subdivision>
+ <subdivision type="ga2" draft="contributed">Haut-Ogooué</subdivision>
+ <subdivision type="ga3" draft="contributed">Moyen-Ogooué</subdivision>
+ <subdivision type="ga4" draft="contributed">Ngounié</subdivision>
+ <subdivision type="ga5" draft="contributed">Nyanga</subdivision>
+ <subdivision type="ga6" draft="contributed">Ogooué-Ivindo</subdivision>
+ <subdivision type="ga7" draft="contributed">Ogooué-Lolo</subdivision>
+ <subdivision type="ga8" draft="contributed">Ogooué-Maritime</subdivision>
+ <subdivision type="ga9" draft="contributed">Woleu-Ntem</subdivision>
+ <subdivision type="gbabd" draft="contributed">Aberdeenshire</subdivision>
+ <subdivision type="gbabe" draft="contributed">Aberdeen</subdivision>
+ <subdivision type="gbagb" draft="contributed">Argyll and Bute</subdivision>
+ <subdivision type="gbagy" draft="contributed">Anglesey</subdivision>
+ <subdivision type="gbans" draft="contributed">Angus</subdivision>
+ <subdivision type="gbbas" draft="contributed">Bath and North East Somerset</subdivision>
+ <subdivision type="gbbbd" draft="contributed">Blackburn with Darwen</subdivision>
+ <subdivision type="gbbdf" draft="contributed">Bedford (distrikt)</subdivision>
+ <subdivision type="gbbdg" draft="contributed">Barking and Dagenham</subdivision>
+ <subdivision type="gbben" draft="contributed">Brent</subdivision>
+ <subdivision type="gbbex" draft="contributed">Bexley</subdivision>
+ <subdivision type="gbbge" draft="contributed">Bridgend</subdivision>
+ <subdivision type="gbbgw" draft="contributed">Blaenau Gwent</subdivision>
+ <subdivision type="gbbir" draft="contributed">Birmingham</subdivision>
+ <subdivision type="gbbkm" draft="contributed">Buckinghamshire</subdivision>
+ <subdivision type="gbbmh" draft="contributed">Bournemouth</subdivision>
+ <subdivision type="gbbne" draft="contributed">Barnet</subdivision>
+ <subdivision type="gbbnh" draft="contributed">Brighton and Hove</subdivision>
+ <subdivision type="gbbns" draft="contributed">Barnsley</subdivision>
+ <subdivision type="gbbol" draft="contributed">Bolton</subdivision>
+ <subdivision type="gbbpl" draft="contributed">Blackpool</subdivision>
+ <subdivision type="gbbrc" draft="contributed">Bracknell Forest</subdivision>
+ <subdivision type="gbbrd" draft="contributed">City of Bradford</subdivision>
+ <subdivision type="gbbry" draft="contributed">Bromley</subdivision>
+ <subdivision type="gbbst" draft="contributed">Bristol</subdivision>
+ <subdivision type="gbbur" draft="contributed">Bury</subdivision>
+ <subdivision type="gbcam" draft="contributed">Cambridgeshire</subdivision>
+ <subdivision type="gbcay" draft="contributed">Caerphilly</subdivision>
+ <subdivision type="gbcgn" draft="contributed">Ceredigion</subdivision>
+ <subdivision type="gbcld" draft="contributed">Calderdale</subdivision>
+ <subdivision type="gbclk" draft="contributed">Clackmannanshire</subdivision>
+ <subdivision type="gbcma" draft="contributed">Cumbria</subdivision>
+ <subdivision type="gbcmd" draft="contributed">Camden</subdivision>
+ <subdivision type="gbcmn" draft="contributed">Carmarthenshire</subdivision>
+ <subdivision type="gbcon" draft="contributed">Cornwall</subdivision>
+ <subdivision type="gbcov" draft="contributed">Coventry</subdivision>
+ <subdivision type="gbcrf" draft="contributed">Cardiff</subdivision>
+ <subdivision type="gbcry" draft="contributed">Croydon</subdivision>
+ <subdivision type="gbcwy" draft="contributed">Conwy</subdivision>
+ <subdivision type="gbdal" draft="contributed">Darlington</subdivision>
+ <subdivision type="gbdby" draft="contributed">Derbyshire</subdivision>
+ <subdivision type="gbden" draft="contributed">Denbighshire</subdivision>
+ <subdivision type="gbder" draft="contributed">Derby</subdivision>
+ <subdivision type="gbdev" draft="contributed">Devon</subdivision>
+ <subdivision type="gbdgy" draft="contributed">Dumfries and Galloway</subdivision>
+ <subdivision type="gbdnc" draft="contributed">Doncaster (distrikt)</subdivision>
+ <subdivision type="gbdnd" draft="contributed">Dundee</subdivision>
+ <subdivision type="gbdor" draft="contributed">Dorset</subdivision>
+ <subdivision type="gbdud" draft="contributed">Dudley</subdivision>
+ <subdivision type="gbdur" draft="contributed">Durham</subdivision>
+ <subdivision type="gbeal" draft="contributed">Ealing</subdivision>
+ <subdivision type="gbeaw" draft="contributed">England og Wales</subdivision>
+ <subdivision type="gbeay" draft="contributed">East Ayrshire</subdivision>
+ <subdivision type="gbedh" draft="contributed">Edinburgh</subdivision>
+ <subdivision type="gbedu" draft="contributed">East Dunbartonshire</subdivision>
+ <subdivision type="gbeln" draft="contributed">East Lothian</subdivision>
+ <subdivision type="gbels" draft="contributed">Ytre Hebridene</subdivision>
+ <subdivision type="gbenf" draft="contributed">Enfield</subdivision>
+ <subdivision type="gberw" draft="contributed">East Renfrewshire</subdivision>
+ <subdivision type="gbery" draft="contributed">East Riding of Yorkshire</subdivision>
+ <subdivision type="gbess" draft="contributed">Essex</subdivision>
+ <subdivision type="gbesx" draft="contributed">East Sussex</subdivision>
+ <subdivision type="gbfal" draft="contributed">Falkirk</subdivision>
+ <subdivision type="gbfif" draft="contributed">Fife</subdivision>
+ <subdivision type="gbfln" draft="contributed">Flintshire</subdivision>
+ <subdivision type="gbgat" draft="contributed">Gateshead</subdivision>
+ <subdivision type="gbgbn" draft="contributed">Storbritannia</subdivision>
+ <subdivision type="gbglg" draft="contributed">Glasgow</subdivision>
+ <subdivision type="gbgls" draft="contributed">Gloucestershire</subdivision>
+ <subdivision type="gbgre" draft="contributed">Greenwich</subdivision>
+ <subdivision type="gbgwn" draft="contributed">Gwynedd</subdivision>
+ <subdivision type="gbhal" draft="contributed">Halton</subdivision>
+ <subdivision type="gbham" draft="contributed">Hampshire</subdivision>
+ <subdivision type="gbhav" draft="contributed">Havering</subdivision>
+ <subdivision type="gbhck" draft="contributed">Hackney</subdivision>
+ <subdivision type="gbhef" draft="contributed">Herefordshire</subdivision>
+ <subdivision type="gbhil" draft="contributed">Hillingdon</subdivision>
+ <subdivision type="gbhld" draft="contributed">Highland</subdivision>
+ <subdivision type="gbhmf" draft="contributed">Hammersmith and Fulham</subdivision>
+ <subdivision type="gbhns" draft="contributed">Hounslow</subdivision>
+ <subdivision type="gbhrt" draft="contributed">Hertfordshire</subdivision>
+ <subdivision type="gbhrw" draft="contributed">Harrow</subdivision>
+ <subdivision type="gbhry" draft="contributed">Haringey</subdivision>
+ <subdivision type="gbios" draft="contributed">Scillyøyene</subdivision>
+ <subdivision type="gbiow" draft="contributed">Wight</subdivision>
+ <subdivision type="gbisl" draft="contributed">Islington</subdivision>
+ <subdivision type="gbivc" draft="contributed">Inverclyde</subdivision>
+ <subdivision type="gbkec" draft="contributed">Kensington and Chelsea</subdivision>
+ <subdivision type="gbken" draft="contributed">Kent</subdivision>
+ <subdivision type="gbkhl" draft="contributed">Kingston upon Hull</subdivision>
+ <subdivision type="gbkir" draft="contributed">Kirklees</subdivision>
+ <subdivision type="gbktt" draft="contributed">Kingston upon Thames</subdivision>
+ <subdivision type="gbkwl" draft="contributed">Knowsley</subdivision>
+ <subdivision type="gblan" draft="contributed">Lancashire</subdivision>
+ <subdivision type="gblbh" draft="contributed">Lambeth</subdivision>
+ <subdivision type="gblce" draft="contributed">Leicester</subdivision>
+ <subdivision type="gblds" draft="contributed">City of Leeds</subdivision>
+ <subdivision type="gblec" draft="contributed">Leicestershire</subdivision>
+ <subdivision type="gblew" draft="contributed">Lewisham</subdivision>
+ <subdivision type="gblin" draft="contributed">Lincolnshire</subdivision>
+ <subdivision type="gbliv" draft="contributed">Liverpool</subdivision>
+ <subdivision type="gblnd" draft="contributed">City of London</subdivision>
+ <subdivision type="gblut" draft="contributed">Luton</subdivision>
+ <subdivision type="gbman" draft="contributed">Manchester</subdivision>
+ <subdivision type="gbmdb" draft="contributed">Middlesbrough</subdivision>
+ <subdivision type="gbmdw" draft="contributed">Medway</subdivision>
+ <subdivision type="gbmik" draft="contributed">Milton Keynes</subdivision>
+ <subdivision type="gbmln" draft="contributed">Midlothian</subdivision>
+ <subdivision type="gbmon" draft="contributed">Monmouthshire</subdivision>
+ <subdivision type="gbmrt" draft="contributed">Merton</subdivision>
+ <subdivision type="gbmry" draft="contributed">Moray</subdivision>
+ <subdivision type="gbnay" draft="contributed">North Ayrshire</subdivision>
+ <subdivision type="gbnbl" draft="contributed">Northumberland</subdivision>
+ <subdivision type="gbnel" draft="contributed">North East Lincolnshire</subdivision>
+ <subdivision type="gbnet" draft="contributed">Newcastle upon Tyne</subdivision>
+ <subdivision type="gbnfk" draft="contributed">Norfolk</subdivision>
+ <subdivision type="gbngm" draft="contributed">Nottingham</subdivision>
+ <subdivision type="gbnir" draft="contributed">Nord-Irland</subdivision>
+ <subdivision type="gbnlk" draft="contributed">North Lanarkshire</subdivision>
+ <subdivision type="gbnln" draft="contributed">North Lincolnshire</subdivision>
+ <subdivision type="gbnsm" draft="contributed">North Somerset</subdivision>
+ <subdivision type="gbnth" draft="contributed">Northamptonshire</subdivision>
+ <subdivision type="gbntl" draft="contributed">Neath Port Talbot</subdivision>
+ <subdivision type="gbntt" draft="contributed">Nottinghamshire</subdivision>
+ <subdivision type="gbnty" draft="contributed">North Tyneside</subdivision>
+ <subdivision type="gbnwm" draft="contributed">Newham</subdivision>
+ <subdivision type="gbnyk" draft="contributed">North Yorkshire</subdivision>
+ <subdivision type="gbold" draft="contributed">Oldham</subdivision>
+ <subdivision type="gbork" draft="contributed">Orknøyene</subdivision>
+ <subdivision type="gboxf" draft="contributed">Oxfordshire</subdivision>
+ <subdivision type="gbpem" draft="contributed">Pembrokeshire</subdivision>
+ <subdivision type="gbpkn" draft="contributed">Perth and Kinross</subdivision>
+ <subdivision type="gbply" draft="contributed">Plymouth</subdivision>
+ <subdivision type="gbpol" draft="contributed">Poole</subdivision>
+ <subdivision type="gbpor" draft="contributed">Portsmouth</subdivision>
+ <subdivision type="gbpow" draft="contributed">Powys</subdivision>
+ <subdivision type="gbpte" draft="contributed">Peterborough</subdivision>
+ <subdivision type="gbrcc" draft="contributed">Redcar and Cleveland</subdivision>
+ <subdivision type="gbrch" draft="contributed">Rochdale</subdivision>
+ <subdivision type="gbrct" draft="contributed">Rhondda Cynon Taf</subdivision>
+ <subdivision type="gbrdb" draft="contributed">Redbridge</subdivision>
+ <subdivision type="gbrdg" draft="contributed">Reading</subdivision>
+ <subdivision type="gbrfw" draft="contributed">Renfrewshire</subdivision>
+ <subdivision type="gbric" draft="contributed">Richmond upon Thames</subdivision>
+ <subdivision type="gbrot" draft="contributed">Rotherham</subdivision>
+ <subdivision type="gbrut" draft="contributed">Rutland</subdivision>
+ <subdivision type="gbsaw" draft="contributed">Sandwell</subdivision>
+ <subdivision type="gbsay" draft="contributed">South Ayrshire</subdivision>
+ <subdivision type="gbscb" draft="contributed">Scottish Borders</subdivision>
+ <subdivision type="gbsfk" draft="contributed">Suffolk</subdivision>
+ <subdivision type="gbsft" draft="contributed">Sefton</subdivision>
+ <subdivision type="gbsgc" draft="contributed">South Gloucestershire</subdivision>
+ <subdivision type="gbshf" draft="contributed">Sheffield</subdivision>
+ <subdivision type="gbshn" draft="contributed">St. Helens</subdivision>
+ <subdivision type="gbshr" draft="contributed">Shropshire</subdivision>
+ <subdivision type="gbskp" draft="contributed">Stockport</subdivision>
+ <subdivision type="gbslf" draft="contributed">City of Salford</subdivision>
+ <subdivision type="gbslg" draft="contributed">Slough</subdivision>
+ <subdivision type="gbslk" draft="contributed">South Lanarkshire</subdivision>
+ <subdivision type="gbsnd" draft="contributed">City of Sunderland</subdivision>
+ <subdivision type="gbsol" draft="contributed">Solihull (distrikt)</subdivision>
+ <subdivision type="gbsom" draft="contributed">Somerset</subdivision>
+ <subdivision type="gbsos" draft="contributed">Southend-on-Sea</subdivision>
+ <subdivision type="gbsry" draft="contributed">Surrey</subdivision>
+ <subdivision type="gbste" draft="contributed">Stoke-on-Trent</subdivision>
+ <subdivision type="gbstg" draft="contributed">Stirling</subdivision>
+ <subdivision type="gbsth" draft="contributed">Southampton</subdivision>
+ <subdivision type="gbstn" draft="contributed">Sutton</subdivision>
+ <subdivision type="gbsts" draft="contributed">Staffordshire</subdivision>
+ <subdivision type="gbstt" draft="contributed">Stockton-on-Tees (distrikt)</subdivision>
+ <subdivision type="gbsty" draft="contributed">South Tyneside</subdivision>
+ <subdivision type="gbswa" draft="contributed">Swansea</subdivision>
+ <subdivision type="gbswd" draft="contributed">Swindon</subdivision>
+ <subdivision type="gbswk" draft="contributed">Southwark</subdivision>
+ <subdivision type="gbtam" draft="contributed">Tameside</subdivision>
+ <subdivision type="gbtfw" draft="contributed">Telford and Wrekin</subdivision>
+ <subdivision type="gbthr" draft="contributed">Thurrock</subdivision>
+ <subdivision type="gbtob" draft="contributed">Torbay</subdivision>
+ <subdivision type="gbtof" draft="contributed">Torfaen</subdivision>
+ <subdivision type="gbtrf" draft="contributed">Trafford</subdivision>
+ <subdivision type="gbtwh" draft="contributed">Tower Hamlets</subdivision>
+ <subdivision type="gbukm" draft="contributed">Storbritannia²</subdivision>
+ <subdivision type="gbvgl" draft="contributed">Vale of Glamorgan</subdivision>
+ <subdivision type="gbwar" draft="contributed">Warwickshire</subdivision>
+ <subdivision type="gbwbk" draft="contributed">West Berkshire</subdivision>
+ <subdivision type="gbwdu" draft="contributed">West Dunbartonshire</subdivision>
+ <subdivision type="gbwft" draft="contributed">Waltham Forest</subdivision>
+ <subdivision type="gbwgn" draft="contributed">Wigan</subdivision>
+ <subdivision type="gbwil" draft="contributed">Wiltshire</subdivision>
+ <subdivision type="gbwkf" draft="contributed">City of Wakefield</subdivision>
+ <subdivision type="gbwll" draft="contributed">Walsall</subdivision>
+ <subdivision type="gbwln" draft="contributed">West Lothian</subdivision>
+ <subdivision type="gbwlv" draft="contributed">Wolverhampton</subdivision>
+ <subdivision type="gbwnd" draft="contributed">Wandsworth</subdivision>
+ <subdivision type="gbwnm" draft="contributed">Windsor and Maidenhead</subdivision>
+ <subdivision type="gbwok" draft="contributed">Wokingham</subdivision>
+ <subdivision type="gbwor" draft="contributed">Worcestershire</subdivision>
+ <subdivision type="gbwrl" draft="contributed">Wirral</subdivision>
+ <subdivision type="gbwrt" draft="contributed">Warrington</subdivision>
+ <subdivision type="gbwrx" draft="contributed">Wrexham</subdivision>
+ <subdivision type="gbwsm" draft="contributed">City of Westminster</subdivision>
+ <subdivision type="gbwsx" draft="contributed">West Sussex</subdivision>
+ <subdivision type="gbyor" draft="contributed">York</subdivision>
+ <subdivision type="gbzet" draft="contributed">Shetland</subdivision>
+ <subdivision type="gd01" draft="contributed">Saint Andrew prestegjeld</subdivision>
+ <subdivision type="gd02" draft="contributed">Saint David prestegjeld</subdivision>
+ <subdivision type="gd03" draft="contributed">Saint George prestegjeld</subdivision>
+ <subdivision type="gd04" draft="contributed">Saint John prestegjeld</subdivision>
+ <subdivision type="gd05" draft="contributed">Saint Mark Parish</subdivision>
+ <subdivision type="gd06" draft="contributed">Saint Patrick</subdivision>
+ <subdivision type="gd10" draft="contributed">Carriacou og Petite Martinique</subdivision>
+ <subdivision type="geab" draft="contributed">Abkhasia</subdivision>
+ <subdivision type="geaj" draft="contributed">Adsjaria</subdivision>
+ <subdivision type="gegu" draft="contributed">Guria</subdivision>
+ <subdivision type="geim" draft="contributed">Imereti</subdivision>
+ <subdivision type="geka" draft="contributed">Kakheti</subdivision>
+ <subdivision type="gekk" draft="contributed">Kvemo Kartli</subdivision>
+ <subdivision type="gemm" draft="contributed">Mtskheta-Mtianeti</subdivision>
+ <subdivision type="gerl" draft="contributed">Racha-Lechkhumi og Kvemo Svaneti</subdivision>
+ <subdivision type="gesj" draft="contributed">Samtskhe-Javakheti</subdivision>
+ <subdivision type="gesk" draft="contributed">Shida Kartli</subdivision>
+ <subdivision type="gesz" draft="contributed">Samegrelo-Zemo Svaneti</subdivision>
+ <subdivision type="getb" draft="contributed">Tbilisi</subdivision>
+ <subdivision type="ghaa" draft="contributed">Greater Accra</subdivision>
+ <subdivision type="ghah" draft="contributed">Ashanti</subdivision>
+ <subdivision type="ghba" draft="contributed">Brong-Ahafo</subdivision>
+ <subdivision type="ghcp" draft="contributed">Central</subdivision>
+ <subdivision type="ghep" draft="contributed">Eastern</subdivision>
+ <subdivision type="ghnp" draft="contributed">Northern</subdivision>
+ <subdivision type="ghtv" draft="contributed">Volta</subdivision>
+ <subdivision type="ghue" draft="contributed">Upper East</subdivision>
+ <subdivision type="ghuw" draft="contributed">Upper West</subdivision>
+ <subdivision type="ghwp" draft="contributed">Western</subdivision>
+ <subdivision type="glku" draft="contributed">Kujalleq</subdivision>
+ <subdivision type="glqa" draft="contributed">Qaasuitsoq</subdivision>
+ <subdivision type="glqe" draft="contributed">Qeqqata</subdivision>
+ <subdivision type="glsm" draft="contributed">Sermersooq</subdivision>
+ <subdivision type="gmb" draft="contributed">Banjul</subdivision>
+ <subdivision type="gml" draft="contributed">Lower River</subdivision>
+ <subdivision type="gmm" draft="contributed">Central River</subdivision>
+ <subdivision type="gmn" draft="contributed">North Bank</subdivision>
+ <subdivision type="gmu" draft="contributed">Upper River</subdivision>
+ <subdivision type="gmw" draft="contributed">West Coast</subdivision>
+ <subdivision type="gnb" draft="contributed">Boké</subdivision>
+ <subdivision type="gnbe" draft="contributed">Beyla</subdivision>
+ <subdivision type="gnbf" draft="contributed">Boffa</subdivision>
+ <subdivision type="gnbk" draft="contributed">Boké²</subdivision>
+ <subdivision type="gnc" draft="contributed">Conakry</subdivision>
+ <subdivision type="gnco" draft="contributed">Coyah</subdivision>
+ <subdivision type="gnd" draft="contributed">Kindia</subdivision>
+ <subdivision type="gndb" draft="contributed">Dabola</subdivision>
+ <subdivision type="gndi" draft="contributed">Dinguiraye</subdivision>
+ <subdivision type="gndl" draft="contributed">Dalaba</subdivision>
+ <subdivision type="gndu" draft="contributed">Dubréka</subdivision>
+ <subdivision type="gnf" draft="contributed">Faranah</subdivision>
+ <subdivision type="gnfa" draft="contributed">Faranah²</subdivision>
+ <subdivision type="gnfo" draft="contributed">Forécariah</subdivision>
+ <subdivision type="gnfr" draft="contributed">Fria</subdivision>
+ <subdivision type="gnga" draft="contributed">Gaoual</subdivision>
+ <subdivision type="gngu" draft="contributed">Guéckédou</subdivision>
+ <subdivision type="gnk" draft="contributed">Kankan</subdivision>
+ <subdivision type="gnka" draft="contributed">Kankan²</subdivision>
+ <subdivision type="gnkb" draft="contributed">Koubia</subdivision>
+ <subdivision type="gnkd" draft="contributed">Kindia²</subdivision>
+ <subdivision type="gnke" draft="contributed">Kérouané</subdivision>
+ <subdivision type="gnkn" draft="contributed">Koundara</subdivision>
+ <subdivision type="gnko" draft="contributed">Kouroussa</subdivision>
+ <subdivision type="gnks" draft="contributed">Kissidougou</subdivision>
+ <subdivision type="gnl" draft="contributed">Labé</subdivision>
+ <subdivision type="gnla" draft="contributed">Labé²</subdivision>
+ <subdivision type="gnle" draft="contributed">Lélouma</subdivision>
+ <subdivision type="gnlo" draft="contributed">Lola</subdivision>
+ <subdivision type="gnm" draft="contributed">Mamou</subdivision>
+ <subdivision type="gnmc" draft="contributed">Macenta</subdivision>
+ <subdivision type="gnmd" draft="contributed">Mandiana</subdivision>
+ <subdivision type="gnml" draft="contributed">Mali</subdivision>
+ <subdivision type="gnmm" draft="contributed">Mamou²</subdivision>
+ <subdivision type="gnn" draft="contributed">Nzérékoré</subdivision>
+ <subdivision type="gnnz" draft="contributed">Nzérékoré²</subdivision>
+ <subdivision type="gnpi" draft="contributed">Pita</subdivision>
+ <subdivision type="gnsi" draft="contributed">Siguiri</subdivision>
+ <subdivision type="gnte" draft="contributed">Télimélé</subdivision>
+ <subdivision type="gnto" draft="contributed">Tougué</subdivision>
+ <subdivision type="gnyo" draft="contributed">Yomou</subdivision>
+ <subdivision type="gqan" draft="contributed">Annobón</subdivision>
+ <subdivision type="gqbn" draft="contributed">Bioko Norte</subdivision>
+ <subdivision type="gqbs" draft="contributed">Bioko Sur</subdivision>
+ <subdivision type="gqc" draft="contributed">Río Muni</subdivision>
+ <subdivision type="gqcs" draft="contributed">Centro Sur</subdivision>
+ <subdivision type="gqkn" draft="contributed">Kié-Ntem</subdivision>
+ <subdivision type="gqli" draft="contributed">Litoral</subdivision>
+ <subdivision type="gqwn" draft="contributed">Wele-Nzás</subdivision>
+ <subdivision type="gr69" draft="contributed">Athos</subdivision>
+ <subdivision type="gra" draft="contributed">Øst-Makedonia og Thrakia</subdivision>
+ <subdivision type="grb" draft="contributed">Sentral-Makedonia</subdivision>
+ <subdivision type="grc" draft="contributed">Vest-Makedonia</subdivision>
+ <subdivision type="grd" draft="contributed">Epirus</subdivision>
+ <subdivision type="gre" draft="contributed">Thessalia</subdivision>
+ <subdivision type="grf" draft="contributed">De joniske øyer</subdivision>
+ <subdivision type="grg" draft="contributed">Vest-Hellas</subdivision>
+ <subdivision type="grh" draft="contributed">Sentral-Hellas</subdivision>
+ <subdivision type="gri" draft="contributed">Attica region</subdivision>
+ <subdivision type="grj" draft="contributed">Peloponnes</subdivision>
+ <subdivision type="grk" draft="contributed">Nordlige egeiske øyer</subdivision>
+ <subdivision type="grl" draft="contributed">Sørlige egeiske øyer</subdivision>
+ <subdivision type="gtav" draft="contributed">Alta Verapaz</subdivision>
+ <subdivision type="gtbv" draft="contributed">Baja Verapaz</subdivision>
+ <subdivision type="gtcm" draft="contributed">Chimaltenango</subdivision>
+ <subdivision type="gtcq" draft="contributed">Chiquimula</subdivision>
+ <subdivision type="gtes" draft="contributed">Escuintla</subdivision>
+ <subdivision type="gtgu" draft="contributed">Guatemala</subdivision>
+ <subdivision type="gthu" draft="contributed">Huehuetenango</subdivision>
+ <subdivision type="gtiz" draft="contributed">Izabal</subdivision>
+ <subdivision type="gtja" draft="contributed">Jalapa</subdivision>
+ <subdivision type="gtju" draft="contributed">Jutiapa</subdivision>
+ <subdivision type="gtpe" draft="contributed">Petén</subdivision>
+ <subdivision type="gtpr" draft="contributed">El Progreso</subdivision>
+ <subdivision type="gtqc" draft="contributed">Quiché</subdivision>
+ <subdivision type="gtqz" draft="contributed">Quetzaltenango</subdivision>
+ <subdivision type="gtre" draft="contributed">Retalhuleu</subdivision>
+ <subdivision type="gtsa" draft="contributed">Sacatepéquez</subdivision>
+ <subdivision type="gtsm" draft="contributed">San Marcos (departement)</subdivision>
+ <subdivision type="gtso" draft="contributed">Sololá</subdivision>
+ <subdivision type="gtsr" draft="contributed">Santa Rosa (departement)</subdivision>
+ <subdivision type="gtsu" draft="contributed">Suchitepéquez</subdivision>
+ <subdivision type="gtto" draft="contributed">Totonicapán (departement)</subdivision>
+ <subdivision type="gtza" draft="contributed">Zacapa</subdivision>
+ <subdivision type="gwba" draft="contributed">Bafatá</subdivision>
+ <subdivision type="gwbl" draft="contributed">Bolama</subdivision>
+ <subdivision type="gwbm" draft="contributed">Biombo</subdivision>
+ <subdivision type="gwbs" draft="contributed">Bissau</subdivision>
+ <subdivision type="gwca" draft="contributed">Cacheu</subdivision>
+ <subdivision type="gwga" draft="contributed">Gabú</subdivision>
+ <subdivision type="gwoi" draft="contributed">Oio</subdivision>
+ <subdivision type="gwqu" draft="contributed">Quinara</subdivision>
+ <subdivision type="gwto" draft="contributed">Tombali</subdivision>
+ <subdivision type="gyba" draft="contributed">Barima-Waini</subdivision>
+ <subdivision type="gycu" draft="contributed">Cuyuni-Mazaruni</subdivision>
+ <subdivision type="gyde" draft="contributed">Demerara-Mahaica</subdivision>
+ <subdivision type="gyeb" draft="contributed">East Berbice-Corentyne</subdivision>
+ <subdivision type="gyes" draft="contributed">Essequibo Islands-West Demerara</subdivision>
+ <subdivision type="gyma" draft="contributed">Mahaica-Berbice</subdivision>
+ <subdivision type="gypm" draft="contributed">Pomeroon-Supenaam</subdivision>
+ <subdivision type="gypt" draft="contributed">Potaro-Siparuni</subdivision>
+ <subdivision type="gyud" draft="contributed">Upper Demerara-Berbice</subdivision>
+ <subdivision type="gyut" draft="contributed">Upper Takutu-Upper Essequibo</subdivision>
+ <subdivision type="hnat" draft="contributed">Atlantida department</subdivision>
+ <subdivision type="hnch" draft="contributed">Choluteca</subdivision>
+ <subdivision type="hncl" draft="contributed">Colon department</subdivision>
+ <subdivision type="hncp" draft="contributed">Copan department</subdivision>
+ <subdivision type="hncr" draft="contributed">Cortes</subdivision>
+ <subdivision type="hnep" draft="contributed">El Paraiso</subdivision>
+ <subdivision type="hnfm" draft="contributed">Franciso Morazan department</subdivision>
+ <subdivision type="hngd" draft="contributed">Gracias a Dios</subdivision>
+ <subdivision type="hnib" draft="contributed">Bay Islands department</subdivision>
+ <subdivision type="hnin" draft="contributed">Intibuca department</subdivision>
+ <subdivision type="hnle" draft="contributed">Lampira department</subdivision>
+ <subdivision type="hnlp" draft="contributed">La Paz department</subdivision>
+ <subdivision type="hnoc" draft="contributed">Ocotepeque department</subdivision>
+ <subdivision type="hnol" draft="contributed">Olancho department</subdivision>
+ <subdivision type="hnsb" draft="contributed">Santa Barbara Department</subdivision>
+ <subdivision type="hnva" draft="contributed">Valle</subdivision>
+ <subdivision type="hnyo" draft="contributed">Yoro department</subdivision>
+ <subdivision type="hr01" draft="contributed">Zagreb</subdivision>
+ <subdivision type="hr02" draft="contributed">Krapina-Zagorje</subdivision>
+ <subdivision type="hr03" draft="contributed">Sisak-Moslavina</subdivision>
+ <subdivision type="hr04" draft="contributed">Karlovac</subdivision>
+ <subdivision type="hr05" draft="contributed">Varaždin</subdivision>
+ <subdivision type="hr06" draft="contributed">Koprivnica-Križevci</subdivision>
+ <subdivision type="hr07" draft="contributed">Bjelovar-Bilogora</subdivision>
+ <subdivision type="hr08" draft="contributed">Primorje-Gorski Kotar</subdivision>
+ <subdivision type="hr09" draft="contributed">Lika-Senj</subdivision>
+ <subdivision type="hr10" draft="contributed">Virovitica-Podravina</subdivision>
+ <subdivision type="hr11" draft="contributed">Požega-Slavonia</subdivision>
+ <subdivision type="hr12" draft="contributed">Brod-Posavina</subdivision>
+ <subdivision type="hr13" draft="contributed">Zadar</subdivision>
+ <subdivision type="hr14" draft="contributed">Osijek-Baranja</subdivision>
+ <subdivision type="hr15" draft="contributed">Šibenik-Knin</subdivision>
+ <subdivision type="hr16" draft="contributed">Vukovar-Syrmia</subdivision>
+ <subdivision type="hr17" draft="contributed">Split-Dalmatia</subdivision>
+ <subdivision type="hr18" draft="contributed">Istria</subdivision>
+ <subdivision type="hr19" draft="contributed">Dubrovnik-Neretva</subdivision>
+ <subdivision type="hr20" draft="contributed">Međimurje</subdivision>
+ <subdivision type="hr21" draft="contributed">Zagreb²</subdivision>
+ <subdivision type="htar" draft="contributed">Artibonite</subdivision>
+ <subdivision type="htce" draft="contributed">Centre</subdivision>
+ <subdivision type="htga" draft="contributed">Grand’Anse</subdivision>
+ <subdivision type="htnd" draft="contributed">Nord</subdivision>
+ <subdivision type="htne" draft="contributed">Nord-Est</subdivision>
+ <subdivision type="htni" draft="contributed">Nippes</subdivision>
+ <subdivision type="htno" draft="contributed">Nord-Ouest</subdivision>
+ <subdivision type="htou" draft="contributed">Ouest</subdivision>
+ <subdivision type="htsd" draft="contributed">Sud</subdivision>
+ <subdivision type="htse" draft="contributed">Sud-Est</subdivision>
+ <subdivision type="hubc" draft="contributed">Békéscsaba</subdivision>
+ <subdivision type="hube" draft="contributed">Bekes Fylke</subdivision>
+ <subdivision type="hubk" draft="contributed">Bacs-Kiskun Fylke</subdivision>
+ <subdivision type="hubu" draft="contributed">Budapest</subdivision>
+ <subdivision type="hubz" draft="contributed">Borsod Abauj Zemplen Fylke</subdivision>
+ <subdivision type="hucs" draft="contributed">Csongrád (fylke)</subdivision>
+ <subdivision type="hude" draft="contributed">Debrecen</subdivision>
+ <subdivision type="hueg" draft="contributed">Eger</subdivision>
+ <subdivision type="hufe" draft="contributed">Fejer fylke</subdivision>
+ <subdivision type="hugs" draft="contributed">Gyor Moson Sopron Fylke</subdivision>
+ <subdivision type="hugy" draft="contributed">Győr</subdivision>
+ <subdivision type="huhb" draft="contributed">Hajdu-Bihar Fylke</subdivision>
+ <subdivision type="huhe" draft="contributed">Heves Fylke</subdivision>
+ <subdivision type="huhv" draft="contributed">Hódmezővásárhely</subdivision>
+ <subdivision type="hujn" draft="contributed">Jasz Nagykun Szolnok fylke</subdivision>
+ <subdivision type="huke" draft="contributed">Komarom-Esztergom fylke</subdivision>
+ <subdivision type="hukm" draft="contributed">Kecskemet</subdivision>
+ <subdivision type="hukv" draft="contributed">Kaposvár</subdivision>
+ <subdivision type="humi" draft="contributed">Miskolc</subdivision>
+ <subdivision type="hunk" draft="contributed">Nagykanizsa</subdivision>
+ <subdivision type="huno" draft="contributed">Nógrád</subdivision>
+ <subdivision type="huny" draft="contributed">Nyíregyháza</subdivision>
+ <subdivision type="hupe" draft="contributed">Pest</subdivision>
+ <subdivision type="hups" draft="contributed">Pécs</subdivision>
+ <subdivision type="husd" draft="contributed">Szeged</subdivision>
+ <subdivision type="husf" draft="contributed">Székesfehérvár</subdivision>
+ <subdivision type="hush" draft="contributed">Szombathely</subdivision>
+ <subdivision type="husk" draft="contributed">Szolnok</subdivision>
+ <subdivision type="husn" draft="contributed">Sopron</subdivision>
+ <subdivision type="huso" draft="contributed">Saomogy fylke</subdivision>
+ <subdivision type="huss" draft="contributed">Szekszárd</subdivision>
+ <subdivision type="hust" draft="contributed">Salgótarján</subdivision>
+ <subdivision type="husz" draft="contributed">Szaboles Szatmar Bereg fylke</subdivision>
+ <subdivision type="hutb" draft="contributed">Tatabanya</subdivision>
+ <subdivision type="huto" draft="contributed">Tolna Fylke</subdivision>
+ <subdivision type="huva" draft="contributed">Vas Fylke</subdivision>
+ <subdivision type="huve" draft="contributed">Veszprém</subdivision>
+ <subdivision type="huvm" draft="contributed">Veszprém²</subdivision>
+ <subdivision type="huza" draft="contributed">Zala Fylke</subdivision>
+ <subdivision type="huze" draft="contributed">Zalaegerszeg</subdivision>
+ <subdivision type="idac" draft="contributed">Aceh</subdivision>
+ <subdivision type="idba" draft="contributed">Bali</subdivision>
+ <subdivision type="idbb" draft="contributed">Bangka-Belitung</subdivision>
+ <subdivision type="idbe" draft="contributed">Bengkulu</subdivision>
+ <subdivision type="idbt" draft="contributed">Banten</subdivision>
+ <subdivision type="idgo" draft="contributed">Gorontalo</subdivision>
+ <subdivision type="idja" draft="contributed">Jambi</subdivision>
+ <subdivision type="idjb" draft="contributed">Jawa Barat</subdivision>
+ <subdivision type="idji" draft="contributed">Jawa Timur</subdivision>
+ <subdivision type="idjk" draft="contributed">Jakarta</subdivision>
+ <subdivision type="idjt" draft="contributed">Jawa Tengah</subdivision>
+ <subdivision type="idjw" draft="contributed">Java</subdivision>
+ <subdivision type="idka" draft="contributed">Kalimantan</subdivision>
+ <subdivision type="idkb" draft="contributed">Kalimantan Barat</subdivision>
+ <subdivision type="idki" draft="contributed">Kalimantan Timur</subdivision>
+ <subdivision type="idkr" draft="contributed">Kepulauan Riau</subdivision>
+ <subdivision type="idks" draft="contributed">Kalimantan Selatan</subdivision>
+ <subdivision type="idkt" draft="contributed">Kalimantan Tengah</subdivision>
+ <subdivision type="idla" draft="contributed">Lampung</subdivision>
+ <subdivision type="idma" draft="contributed">Maluku Kommune</subdivision>
+ <subdivision type="idml" draft="contributed">Molukkene</subdivision>
+ <subdivision type="idmu" draft="contributed">Nord Maluku provins</subdivision>
+ <subdivision type="idnb" draft="contributed">West Nusa Tenggara</subdivision>
+ <subdivision type="idnt" draft="contributed">Nusa Tenggara Timur</subdivision>
+ <subdivision type="idnu" draft="contributed">De små Sundaøyer</subdivision>
+ <subdivision type="idpa" draft="contributed">Papua</subdivision>
+ <subdivision type="idpb" draft="contributed">Papua Barat</subdivision>
+ <subdivision type="idpp" draft="contributed">Vest-Papua</subdivision>
+ <subdivision type="idri" draft="contributed">Riau</subdivision>
+ <subdivision type="idsa" draft="contributed">Nord Sulawesi provins</subdivision>
+ <subdivision type="idsb" draft="contributed">Sumatera Barat</subdivision>
+ <subdivision type="idsg" draft="contributed">South East Sulawesi Provins</subdivision>
+ <subdivision type="idsl" draft="contributed">Sulawesi</subdivision>
+ <subdivision type="idsm" draft="contributed">Sumatra</subdivision>
+ <subdivision type="idsn" draft="contributed">Sør Sulawesi</subdivision>
+ <subdivision type="idsr" draft="contributed">West Sulawesi</subdivision>
+ <subdivision type="idss" draft="contributed">Sumatera Selatan</subdivision>
+ <subdivision type="idst" draft="contributed">Sentral Sulaweisi provins</subdivision>
+ <subdivision type="idsu" draft="contributed">Sumatera Utara</subdivision>
+ <subdivision type="idyo" draft="contributed">Yogyakarta</subdivision>
+ <subdivision type="iec" draft="contributed">Connacht</subdivision>
+ <subdivision type="iece" draft="contributed">Clare</subdivision>
+ <subdivision type="iecn" draft="contributed">Cavan</subdivision>
+ <subdivision type="ieco" draft="contributed">Cork</subdivision>
+ <subdivision type="iecw" draft="contributed">Carlow</subdivision>
+ <subdivision type="ied" draft="contributed">Dublin</subdivision>
+ <subdivision type="iedl" draft="contributed">Donegal</subdivision>
+ <subdivision type="ieg" draft="contributed">Galway</subdivision>
+ <subdivision type="ieke" draft="contributed">Kildare</subdivision>
+ <subdivision type="iekk" draft="contributed">Kilkenny</subdivision>
+ <subdivision type="ieky" draft="contributed">Kerry</subdivision>
+ <subdivision type="iel" draft="contributed">Leinster</subdivision>
+ <subdivision type="ield" draft="contributed">Longford</subdivision>
+ <subdivision type="ielh" draft="contributed">Louth</subdivision>
+ <subdivision type="ielk" draft="contributed">Limerick</subdivision>
+ <subdivision type="ielm" draft="contributed">Leitrim</subdivision>
+ <subdivision type="iels" draft="contributed">Laois</subdivision>
+ <subdivision type="iem" draft="contributed">Munster</subdivision>
+ <subdivision type="iemh" draft="contributed">Meath</subdivision>
+ <subdivision type="iemn" draft="contributed">Monaghan</subdivision>
+ <subdivision type="iemo" draft="contributed">Mayo</subdivision>
+ <subdivision type="ieoy" draft="contributed">Offaly</subdivision>
+ <subdivision type="iern" draft="contributed">Roscommon</subdivision>
+ <subdivision type="ieso" draft="contributed">Sligo</subdivision>
+ <subdivision type="ieta" draft="contributed">Tipperary</subdivision>
+ <subdivision type="ieu" draft="contributed">Ulster</subdivision>
+ <subdivision type="iewd" draft="contributed">Waterford</subdivision>
+ <subdivision type="iewh" draft="contributed">Westmeath</subdivision>
+ <subdivision type="ieww" draft="contributed">Wicklow</subdivision>
+ <subdivision type="iewx" draft="contributed">Wexford</subdivision>
+ <subdivision type="ild" draft="contributed">Sørdistriktet</subdivision>
+ <subdivision type="ilha" draft="contributed">Haifa-distriktet</subdivision>
+ <subdivision type="iljm" draft="contributed">Jerusalem-distriktet</subdivision>
+ <subdivision type="ilm" draft="contributed">Sentraldistriktet</subdivision>
+ <subdivision type="ilta" draft="contributed">Tel Aviv-distriktet</subdivision>
+ <subdivision type="ilz" draft="contributed">Norddistriktet</subdivision>
+ <subdivision type="inan" draft="contributed">Andamanene og Nikobarene</subdivision>
+ <subdivision type="inap" draft="contributed">Andhra Pradesh</subdivision>
+ <subdivision type="inar" draft="contributed">Arunachal Pradesh</subdivision>
+ <subdivision type="inas" draft="contributed">Assam</subdivision>
+ <subdivision type="inbr" draft="contributed">Bihar</subdivision>
+ <subdivision type="inch" draft="contributed">Chandigarh</subdivision>
+ <subdivision type="inct" draft="contributed">Chhattisgarh</subdivision>
+ <subdivision type="indd" draft="contributed">Daman og Diu</subdivision>
+ <subdivision type="indl" draft="contributed">Delhi</subdivision>
+ <subdivision type="indn" draft="contributed">Dadra og Nagar Haveli</subdivision>
+ <subdivision type="inga" draft="contributed">Goa</subdivision>
+ <subdivision type="ingj" draft="contributed">Gujarat</subdivision>
+ <subdivision type="inhp" draft="contributed">Himachal Pradesh</subdivision>
+ <subdivision type="inhr" draft="contributed">Haryana</subdivision>
+ <subdivision type="injh" draft="contributed">Jharkhand</subdivision>
+ <subdivision type="injk" draft="contributed">Jammu og Kashmir</subdivision>
+ <subdivision type="inka" draft="contributed">Karnataka</subdivision>
+ <subdivision type="inkl" draft="contributed">Kerala</subdivision>
+ <subdivision type="inld" draft="contributed">Lakkadivene</subdivision>
+ <subdivision type="inmh" draft="contributed">Maharashtra</subdivision>
+ <subdivision type="inml" draft="contributed">Meghalaya</subdivision>
+ <subdivision type="inmn" draft="contributed">Manipur</subdivision>
+ <subdivision type="inmp" draft="contributed">Madhya Pradesh</subdivision>
+ <subdivision type="inmz" draft="contributed">Mizoram</subdivision>
+ <subdivision type="innl" draft="contributed">Nagaland</subdivision>
+ <subdivision type="inor" draft="contributed">Odisha</subdivision>
+ <subdivision type="inpb" draft="contributed">Punjab</subdivision>
+ <subdivision type="inpy" draft="contributed">Puducherry</subdivision>
+ <subdivision type="inrj" draft="contributed">Rajasthan</subdivision>
+ <subdivision type="insk" draft="contributed">Sikkim</subdivision>
+ <subdivision type="intg" draft="contributed">Telangana</subdivision>
+ <subdivision type="intn" draft="contributed">Tamil Nadu</subdivision>
+ <subdivision type="intr" draft="contributed">Tripura</subdivision>
+ <subdivision type="inup" draft="contributed">Uttar Pradesh</subdivision>
+ <subdivision type="inut" draft="contributed">Uttarakhand</subdivision>
+ <subdivision type="inwb" draft="contributed">Vest-Bengal</subdivision>
+ <subdivision type="iqan" draft="contributed">Anbar</subdivision>
+ <subdivision type="iqar" draft="contributed">Arbil</subdivision>
+ <subdivision type="iqba" draft="contributed">Basra</subdivision>
+ <subdivision type="iqbb" draft="contributed">Babil</subdivision>
+ <subdivision type="iqbg" draft="contributed">Bagdad</subdivision>
+ <subdivision type="iqda" draft="contributed">Dahuk</subdivision>
+ <subdivision type="iqdi" draft="contributed">Diyala</subdivision>
+ <subdivision type="iqdq" draft="contributed">Dhi Qar</subdivision>
+ <subdivision type="iqka" draft="contributed">Karbala</subdivision>
+ <subdivision type="iqki" draft="contributed">Kirkuk</subdivision>
+ <subdivision type="iqma" draft="contributed">Maysan</subdivision>
+ <subdivision type="iqmu" draft="contributed">Muthanna</subdivision>
+ <subdivision type="iqna" draft="contributed">Najaf</subdivision>
+ <subdivision type="iqni" draft="contributed">Ninawa</subdivision>
+ <subdivision type="iqqa" draft="contributed">Al-Qadisiyya</subdivision>
+ <subdivision type="iqsd" draft="contributed">Salah ad Din</subdivision>
+ <subdivision type="iqsu" draft="contributed">Suleimania</subdivision>
+ <subdivision type="iqwa" draft="contributed">Wasit</subdivision>
+ <subdivision type="ir01" draft="contributed">Øst-Aserbajdsjan</subdivision>
+ <subdivision type="ir02" draft="contributed">Vest-Aserbajdsjan</subdivision>
+ <subdivision type="ir03" draft="contributed">Ardabil</subdivision>
+ <subdivision type="ir04" draft="contributed">Isfahan (provins)</subdivision>
+ <subdivision type="ir05" draft="contributed">Ilam</subdivision>
+ <subdivision type="ir06" draft="contributed">Bushehr</subdivision>
+ <subdivision type="ir07" draft="contributed">Teheran</subdivision>
+ <subdivision type="ir08" draft="contributed">Chahar Mahaal og Bakhtiari</subdivision>
+ <subdivision type="ir10" draft="contributed">Khuzestan</subdivision>
+ <subdivision type="ir11" draft="contributed">Zanjan</subdivision>
+ <subdivision type="ir12" draft="contributed">Semnan</subdivision>
+ <subdivision type="ir13" draft="contributed">Sistan og Balutsjistan</subdivision>
+ <subdivision type="ir14" draft="contributed">Fars</subdivision>
+ <subdivision type="ir15" draft="contributed">Kermān</subdivision>
+ <subdivision type="ir16" draft="contributed">Kurdistan</subdivision>
+ <subdivision type="ir17" draft="contributed">Kermanshah</subdivision>
+ <subdivision type="ir18" draft="contributed">Kohkiluyeh og Buyer Ahmad</subdivision>
+ <subdivision type="ir19" draft="contributed">Gilan</subdivision>
+ <subdivision type="ir20" draft="contributed">Luristan</subdivision>
+ <subdivision type="ir21" draft="contributed">Mazandaran</subdivision>
+ <subdivision type="ir22" draft="contributed">Markazi</subdivision>
+ <subdivision type="ir23" draft="contributed">Hormozgan</subdivision>
+ <subdivision type="ir24" draft="contributed">Hamadan</subdivision>
+ <subdivision type="ir25" draft="contributed">Yazd</subdivision>
+ <subdivision type="ir26" draft="contributed">Qom</subdivision>
+ <subdivision type="ir27" draft="contributed">Golestan</subdivision>
+ <subdivision type="ir28" draft="contributed">Qazvin (provins)</subdivision>
+ <subdivision type="ir29" draft="contributed">Sør-Khorasan</subdivision>
+ <subdivision type="ir30" draft="contributed">Razavi-Khorasan</subdivision>
+ <subdivision type="ir31" draft="contributed">Nord-Khorasan</subdivision>
+ <subdivision type="ir32" draft="contributed">Alborz Kommune</subdivision>
+ <subdivision type="is1" draft="contributed">Höfuðborgarsvæðið</subdivision>
+ <subdivision type="is2" draft="contributed">Suðurnes</subdivision>
+ <subdivision type="is3" draft="contributed">Vesturland</subdivision>
+ <subdivision type="is4" draft="contributed">Vestfirðir</subdivision>
+ <subdivision type="is5" draft="contributed">Norðurland vestra</subdivision>
+ <subdivision type="is6" draft="contributed">Norðurland eystra</subdivision>
+ <subdivision type="is7" draft="contributed">Austurland</subdivision>
+ <subdivision type="is8" draft="contributed">Suðurland</subdivision>
+ <subdivision type="it21" draft="contributed">Piemonte</subdivision>
+ <subdivision type="it23" draft="contributed">Aostadalen</subdivision>
+ <subdivision type="it25" draft="contributed">Lombardia</subdivision>
+ <subdivision type="it32" draft="contributed">Trentino-Alto Adige</subdivision>
+ <subdivision type="it34" draft="contributed">Veneto</subdivision>
+ <subdivision type="it36" draft="contributed">Friuli-Venezia Giulia</subdivision>
+ <subdivision type="it42" draft="contributed">Liguria</subdivision>
+ <subdivision type="it45" draft="contributed">Emilia-Romagna</subdivision>
+ <subdivision type="it52" draft="contributed">Toscana</subdivision>
+ <subdivision type="it55" draft="contributed">Umbria</subdivision>
+ <subdivision type="it57" draft="contributed">Marche</subdivision>
+ <subdivision type="it62" draft="contributed">Latium</subdivision>
+ <subdivision type="it65" draft="contributed">Abruzzo</subdivision>
+ <subdivision type="it67" draft="contributed">Molise</subdivision>
+ <subdivision type="it72" draft="contributed">Campania</subdivision>
+ <subdivision type="it75" draft="contributed">Puglia</subdivision>
+ <subdivision type="it77" draft="contributed">Basilicata</subdivision>
+ <subdivision type="it78" draft="contributed">Calabria</subdivision>
+ <subdivision type="it82" draft="contributed">Sicilia</subdivision>
+ <subdivision type="it88" draft="contributed">Sardinia</subdivision>
+ <subdivision type="itag" draft="contributed">Provinsen Agrigento</subdivision>
+ <subdivision type="ital" draft="contributed">Provinsen Alessandria</subdivision>
+ <subdivision type="itan" draft="contributed">Provinsen Ancona</subdivision>
+ <subdivision type="itao" draft="contributed">Aosta</subdivision>
+ <subdivision type="itap" draft="contributed">Provinsen Ascoli Piceno</subdivision>
+ <subdivision type="itaq" draft="contributed">Provinsen L’Aquila</subdivision>
+ <subdivision type="itar" draft="contributed">Arezzo</subdivision>
+ <subdivision type="itat" draft="contributed">Provinsen Asti</subdivision>
+ <subdivision type="itav" draft="contributed">Provinsen Avellino</subdivision>
+ <subdivision type="itba" draft="contributed">Provinsen Bari</subdivision>
+ <subdivision type="itbg" draft="contributed">Provinsen Bergamo</subdivision>
+ <subdivision type="itbi" draft="contributed">Provinsen Biella</subdivision>
+ <subdivision type="itbl" draft="contributed">Provinsen Belluno</subdivision>
+ <subdivision type="itbn" draft="contributed">Provinsen Benevento</subdivision>
+ <subdivision type="itbo" draft="contributed">Provinsen Bologna</subdivision>
+ <subdivision type="itbr" draft="contributed">Provinsen Brindisi</subdivision>
+ <subdivision type="itbs" draft="contributed">Provinsen Brescia</subdivision>
+ <subdivision type="itbt" draft="contributed">Provinsen Barletta-Andria-Trani</subdivision>
+ <subdivision type="itbz" draft="contributed">Sør-Tirol</subdivision>
+ <subdivision type="itca" draft="contributed">Provinsen Cagliari</subdivision>
+ <subdivision type="itcb" draft="contributed">Provinsen Campobasso</subdivision>
+ <subdivision type="itce" draft="contributed">Provinsen Caserta</subdivision>
+ <subdivision type="itch" draft="contributed">Provinsen Chieti</subdivision>
+ <subdivision type="itci" draft="contributed">Provinsen Carbonia-Iglesias</subdivision>
+ <subdivision type="itcl" draft="contributed">Provinsen Caltanissetta</subdivision>
+ <subdivision type="itcn" draft="contributed">Provinsen Cuneo</subdivision>
+ <subdivision type="itco" draft="contributed">Provinsen Como</subdivision>
+ <subdivision type="itcr" draft="contributed">Provinsen Cremona</subdivision>
+ <subdivision type="itcs" draft="contributed">Provinsen Cosenza</subdivision>
+ <subdivision type="itct" draft="contributed">Provinsen Catania</subdivision>
+ <subdivision type="itcz" draft="contributed">Provinsen Catanzaro</subdivision>
+ <subdivision type="iten" draft="contributed">Provinsen Enna</subdivision>
+ <subdivision type="itfc" draft="contributed">Provinsen Forlì-Cesena</subdivision>
+ <subdivision type="itfe" draft="contributed">Provinsen Ferrara</subdivision>
+ <subdivision type="itfg" draft="contributed">Provinsen Foggia</subdivision>
+ <subdivision type="itfi" draft="contributed">Firenze</subdivision>
+ <subdivision type="itfm" draft="contributed">Provinsen Fermo</subdivision>
+ <subdivision type="itfr" draft="contributed">Provinsen Frosinone</subdivision>
+ <subdivision type="itge" draft="contributed">Genoa kommune</subdivision>
+ <subdivision type="itgo" draft="contributed">Provinsen Gorizia</subdivision>
+ <subdivision type="itgr" draft="contributed">Grosseto</subdivision>
+ <subdivision type="itim" draft="contributed">Provinsen Imperia</subdivision>
+ <subdivision type="itis" draft="contributed">Provinsen Isernia</subdivision>
+ <subdivision type="itkr" draft="contributed">Provinsen Crotone</subdivision>
+ <subdivision type="itlc" draft="contributed">Provinsen Lecco</subdivision>
+ <subdivision type="itle" draft="contributed">Provinsen Lecce</subdivision>
+ <subdivision type="itli" draft="contributed">Livorno</subdivision>
+ <subdivision type="itlo" draft="contributed">Provinsen Lodi</subdivision>
+ <subdivision type="itlt" draft="contributed">Provinsen Latina</subdivision>
+ <subdivision type="itlu" draft="contributed">Lucca</subdivision>
+ <subdivision type="itmb" draft="contributed">Provinsen Monza og Brianza</subdivision>
+ <subdivision type="itmc" draft="contributed">Provinsen Macerata</subdivision>
+ <subdivision type="itme" draft="contributed">Provinsen Messina</subdivision>
+ <subdivision type="itmi" draft="contributed">Provinsen Milano</subdivision>
+ <subdivision type="itmn" draft="contributed">Provinsen Mantova</subdivision>
+ <subdivision type="itmo" draft="contributed">Provinsen Modena</subdivision>
+ <subdivision type="itms" draft="contributed">Massa-Carrara</subdivision>
+ <subdivision type="itmt" draft="contributed">Provinsen Matera</subdivision>
+ <subdivision type="itna" draft="contributed">Provinsen Napoli</subdivision>
+ <subdivision type="itno" draft="contributed">Provinsen Novara</subdivision>
+ <subdivision type="itnu" draft="contributed">Provinsen Nuoro</subdivision>
+ <subdivision type="itog" draft="contributed">Provinsen Ogliastra</subdivision>
+ <subdivision type="itor" draft="contributed">Provinsen Oristano</subdivision>
+ <subdivision type="itot" draft="contributed">Provinsen Olbia-Tempio</subdivision>
+ <subdivision type="itpa" draft="contributed">Provinsen Palermo</subdivision>
+ <subdivision type="itpc" draft="contributed">Provinsen Piacenza</subdivision>
+ <subdivision type="itpd" draft="contributed">Provinsen Padova</subdivision>
+ <subdivision type="itpe" draft="contributed">Provinsen Pescara</subdivision>
+ <subdivision type="itpg" draft="contributed">Provinsen Perugia</subdivision>
+ <subdivision type="itpi" draft="contributed">Pisa</subdivision>
+ <subdivision type="itpn" draft="contributed">Provinsen Pordenone</subdivision>
+ <subdivision type="itpo" draft="contributed">Prato</subdivision>
+ <subdivision type="itpr" draft="contributed">Provinsen Parma</subdivision>
+ <subdivision type="itpt" draft="contributed">Pistoia</subdivision>
+ <subdivision type="itpu" draft="contributed">Provinsen Pesaro og Urbino</subdivision>
+ <subdivision type="itpv" draft="contributed">Provinsen Pavia</subdivision>
+ <subdivision type="itpz" draft="contributed">Provinsen Potenza</subdivision>
+ <subdivision type="itra" draft="contributed">Provinsen Ravenna</subdivision>
+ <subdivision type="itrc" draft="contributed">Provinsen Reggio Calabria</subdivision>
+ <subdivision type="itre" draft="contributed">Provinsen Reggio Emilia</subdivision>
+ <subdivision type="itrg" draft="contributed">Provinsen Ragusa</subdivision>
+ <subdivision type="itri" draft="contributed">Provinsen Rieti</subdivision>
+ <subdivision type="itrm" draft="contributed">Provinsen Roma</subdivision>
+ <subdivision type="itrn" draft="contributed">Provinsen Rimini</subdivision>
+ <subdivision type="itro" draft="contributed">Provinsen Rovigo</subdivision>
+ <subdivision type="itsa" draft="contributed">Provinsen Salerno</subdivision>
+ <subdivision type="itsi" draft="contributed">Siena</subdivision>
+ <subdivision type="itso" draft="contributed">Provinsen Sondrio</subdivision>
+ <subdivision type="itsp" draft="contributed">Provinsen La Spezia</subdivision>
+ <subdivision type="itsr" draft="contributed">Provinsen Siracusa</subdivision>
+ <subdivision type="itss" draft="contributed">Provinsen Sassari</subdivision>
+ <subdivision type="itsv" draft="contributed">Provinsen Savona</subdivision>
+ <subdivision type="itta" draft="contributed">Provinsen Taranto</subdivision>
+ <subdivision type="itte" draft="contributed">Provinsen Teramo</subdivision>
+ <subdivision type="ittn" draft="contributed">Trentino</subdivision>
+ <subdivision type="itto" draft="contributed">Provinsen Torino</subdivision>
+ <subdivision type="ittp" draft="contributed">Provinsen Trapani</subdivision>
+ <subdivision type="ittr" draft="contributed">Provinsen Terni</subdivision>
+ <subdivision type="itts" draft="contributed">Provinsen Trieste</subdivision>
+ <subdivision type="ittv" draft="contributed">Provinsen Treviso</subdivision>
+ <subdivision type="itud" draft="contributed">Provinsen Udine</subdivision>
+ <subdivision type="itva" draft="contributed">Provinsen Varese</subdivision>
+ <subdivision type="itvb" draft="contributed">Provinsen Verbano Cusio Ossola</subdivision>
+ <subdivision type="itvc" draft="contributed">Provinsen Vercelli</subdivision>
+ <subdivision type="itve" draft="contributed">Provinsen Venezia</subdivision>
+ <subdivision type="itvi" draft="contributed">Provinsen Vicenza</subdivision>
+ <subdivision type="itvr" draft="contributed">Provinsen Verona</subdivision>
+ <subdivision type="itvs" draft="contributed">Provinsen Medio Campidano</subdivision>
+ <subdivision type="itvt" draft="contributed">Provinsen Viterbo</subdivision>
+ <subdivision type="itvv" draft="contributed">Provinsen Vibo Valentia</subdivision>
+ <subdivision type="jm01" draft="contributed">Kingston prestegjeld</subdivision>
+ <subdivision type="jm02" draft="contributed">Saint Andrew prestegjeld (Jamaica)</subdivision>
+ <subdivision type="jm03" draft="contributed">Saint Thomas prestegjeld</subdivision>
+ <subdivision type="jm04" draft="contributed">Portland prestegjeld</subdivision>
+ <subdivision type="jm05" draft="contributed">Saint Mary prestegjeld</subdivision>
+ <subdivision type="jm06" draft="contributed">Saint Ann prestegjeld</subdivision>
+ <subdivision type="jm07" draft="contributed">Trelawny prestegjeld</subdivision>
+ <subdivision type="jm08" draft="contributed">Saint James prestegjeld</subdivision>
+ <subdivision type="jm09" draft="contributed">Hanover prestegjeld</subdivision>
+ <subdivision type="jm10" draft="contributed">Westmoreland prestegjeld</subdivision>
+ <subdivision type="jm11" draft="contributed">Saint Elizabeth prestegjeld</subdivision>
+ <subdivision type="jm12" draft="contributed">Manchester prestegjeld</subdivision>
+ <subdivision type="jm13" draft="contributed">Clarendon prestegjeld</subdivision>
+ <subdivision type="jm14" draft="contributed">Saint Catherine prestegjeld</subdivision>
+ <subdivision type="joaj" draft="contributed">Ailoun</subdivision>
+ <subdivision type="joam" draft="contributed">Amman Governorate</subdivision>
+ <subdivision type="joaq" draft="contributed">Aqaba Givernorate</subdivision>
+ <subdivision type="joat" draft="contributed">Tafilah Governorate</subdivision>
+ <subdivision type="joaz" draft="contributed">Zarqa</subdivision>
+ <subdivision type="joba" draft="contributed">Balqa</subdivision>
+ <subdivision type="joir" draft="contributed">Irbid</subdivision>
+ <subdivision type="joja" draft="contributed">Jerash</subdivision>
+ <subdivision type="joka" draft="contributed">Karak Governorate</subdivision>
+ <subdivision type="joma" draft="contributed">Magraq</subdivision>
+ <subdivision type="jomd" draft="contributed">Madaba Governorate</subdivision>
+ <subdivision type="jomn" draft="contributed">Maan Governorate</subdivision>
+ <subdivision type="jp01" draft="contributed">Hokkaido</subdivision>
+ <subdivision type="jp02" draft="contributed">Aomori</subdivision>
+ <subdivision type="jp03" draft="contributed">Iwate</subdivision>
+ <subdivision type="jp04" draft="contributed">Miyagi</subdivision>
+ <subdivision type="jp05" draft="contributed">Akita</subdivision>
+ <subdivision type="jp06" draft="contributed">Yamagata</subdivision>
+ <subdivision type="jp07" draft="contributed">Fukushima</subdivision>
+ <subdivision type="jp08" draft="contributed">Ibaraki</subdivision>
+ <subdivision type="jp09" draft="contributed">Tochigi</subdivision>
+ <subdivision type="jp10" draft="contributed">Gunma</subdivision>
+ <subdivision type="jp11" draft="contributed">Saitama</subdivision>
+ <subdivision type="jp12" draft="contributed">Chiba</subdivision>
+ <subdivision type="jp13" draft="contributed">Tokyo</subdivision>
+ <subdivision type="jp14" draft="contributed">Kanagawa</subdivision>
+ <subdivision type="jp15" draft="contributed">Niigata</subdivision>
+ <subdivision type="jp16" draft="contributed">Toyama</subdivision>
+ <subdivision type="jp17" draft="contributed">Ishikawa</subdivision>
+ <subdivision type="jp18" draft="contributed">Fukui</subdivision>
+ <subdivision type="jp19" draft="contributed">Yamanashi</subdivision>
+ <subdivision type="jp20" draft="contributed">Nagano</subdivision>
+ <subdivision type="jp21" draft="contributed">Gifu</subdivision>
+ <subdivision type="jp22" draft="contributed">Shizuoka</subdivision>
+ <subdivision type="jp23" draft="contributed">Aichi</subdivision>
+ <subdivision type="jp24" draft="contributed">Mie</subdivision>
+ <subdivision type="jp25" draft="contributed">Shiga</subdivision>
+ <subdivision type="jp26" draft="contributed">Kyoto</subdivision>
+ <subdivision type="jp27" draft="contributed">Osaka</subdivision>
+ <subdivision type="jp28" draft="contributed">Hyōgo</subdivision>
+ <subdivision type="jp29" draft="contributed">Nara</subdivision>
+ <subdivision type="jp30" draft="contributed">Wakayama</subdivision>
+ <subdivision type="jp31" draft="contributed">Tottori</subdivision>
+ <subdivision type="jp32" draft="contributed">Shimane</subdivision>
+ <subdivision type="jp33" draft="contributed">Okayama</subdivision>
+ <subdivision type="jp34" draft="contributed">Hiroshima</subdivision>
+ <subdivision type="jp35" draft="contributed">Yamaguchi</subdivision>
+ <subdivision type="jp36" draft="contributed">Tokushima</subdivision>
+ <subdivision type="jp37" draft="contributed">Kagawa</subdivision>
+ <subdivision type="jp38" draft="contributed">Ehime</subdivision>
+ <subdivision type="jp39" draft="contributed">Kōchi</subdivision>
+ <subdivision type="jp40" draft="contributed">Fukuoka</subdivision>
+ <subdivision type="jp41" draft="contributed">Saga</subdivision>
+ <subdivision type="jp42" draft="contributed">Nagasaki</subdivision>
+ <subdivision type="jp43" draft="contributed">Kumamoto</subdivision>
+ <subdivision type="jp44" draft="contributed">Ōita</subdivision>
+ <subdivision type="jp45" draft="contributed">Miyazaki</subdivision>
+ <subdivision type="jp46" draft="contributed">Kagoshima</subdivision>
+ <subdivision type="jp47" draft="contributed">Okinawa</subdivision>
+ <subdivision type="ke01" draft="contributed">Baringo fylke</subdivision>
+ <subdivision type="ke02" draft="contributed">Bomet (distrikt)</subdivision>
+ <subdivision type="ke03" draft="contributed">Bungoma fylke</subdivision>
+ <subdivision type="ke04" draft="contributed">Busia fylke</subdivision>
+ <subdivision type="ke05" draft="contributed">Elgeyo-Marakwet fylke</subdivision>
+ <subdivision type="ke06" draft="contributed">Embu fylke</subdivision>
+ <subdivision type="ke07" draft="contributed">Garissa (distrikt)</subdivision>
+ <subdivision type="ke08" draft="contributed">Homa Bay fylke</subdivision>
+ <subdivision type="ke09" draft="contributed">Isiolo fylke</subdivision>
+ <subdivision type="ke10" draft="contributed">Kajiado fylke</subdivision>
+ <subdivision type="ke11" draft="contributed">Kakamega fylke</subdivision>
+ <subdivision type="ke12" draft="contributed">Kericho fylke</subdivision>
+ <subdivision type="ke13" draft="contributed">Kiambu fylke</subdivision>
+ <subdivision type="ke14" draft="contributed">Kilifi fylke</subdivision>
+ <subdivision type="ke15" draft="contributed">Kirinyaga fylke</subdivision>
+ <subdivision type="ke16" draft="contributed">Kisii (distrikt)</subdivision>
+ <subdivision type="ke17" draft="contributed">Kisumu fylke</subdivision>
+ <subdivision type="ke18" draft="contributed">Kitui fylke</subdivision>
+ <subdivision type="ke19" draft="contributed">Kwale fylke</subdivision>
+ <subdivision type="ke20" draft="contributed">Laikipia fylke</subdivision>
+ <subdivision type="ke21" draft="contributed">Lamu fylke</subdivision>
+ <subdivision type="ke22" draft="contributed">Machakos fylke</subdivision>
+ <subdivision type="ke23" draft="contributed">Makueni fylke</subdivision>
+ <subdivision type="ke24" draft="contributed">Mandera fylke</subdivision>
+ <subdivision type="ke25" draft="contributed">Marsabit fylke</subdivision>
+ <subdivision type="ke26" draft="contributed">Meru fylke</subdivision>
+ <subdivision type="ke27" draft="contributed">Migori fylke</subdivision>
+ <subdivision type="ke28" draft="contributed">Mombasa fylke</subdivision>
+ <subdivision type="ke30" draft="contributed">Nairobi fylke</subdivision>
+ <subdivision type="ke31" draft="contributed">Nakuru fylke</subdivision>
+ <subdivision type="ke32" draft="contributed">Nandi fylke</subdivision>
+ <subdivision type="ke33" draft="contributed">Narok fylke</subdivision>
+ <subdivision type="ke34" draft="contributed">Nyamira fylke</subdivision>
+ <subdivision type="ke35" draft="contributed">Nyandarua fylke</subdivision>
+ <subdivision type="ke36" draft="contributed">Nyeri fylke</subdivision>
+ <subdivision type="ke37" draft="contributed">Samburu fylke</subdivision>
+ <subdivision type="ke38" draft="contributed">Siaya fylke</subdivision>
+ <subdivision type="ke39" draft="contributed">Taita-Taveta fylke</subdivision>
+ <subdivision type="ke40" draft="contributed">Tana River fylke</subdivision>
+ <subdivision type="ke41" draft="contributed">Tharaka-Nithi fylke</subdivision>
+ <subdivision type="ke42" draft="contributed">Trans-Nzoia fylke</subdivision>
+ <subdivision type="ke43" draft="contributed">Turkana</subdivision>
+ <subdivision type="ke44" draft="contributed">Uasin Gishu fylke</subdivision>
+ <subdivision type="ke45" draft="contributed">Vihiga fylke</subdivision>
+ <subdivision type="ke46" draft="contributed">Wajir fylke</subdivision>
+ <subdivision type="ke47" draft="contributed">West Pokot</subdivision>
+ <subdivision type="kgb" draft="contributed">Batken region</subdivision>
+ <subdivision type="kgc" draft="contributed">Tjuj</subdivision>
+ <subdivision type="kggb" draft="contributed">Bisjkek</subdivision>
+ <subdivision type="kggo" draft="contributed">Osj</subdivision>
+ <subdivision type="kgj" draft="contributed">Jalal-Abad region</subdivision>
+ <subdivision type="kgn" draft="contributed">Naryn</subdivision>
+ <subdivision type="kgo" draft="contributed">Osh region</subdivision>
+ <subdivision type="kgt" draft="contributed">Talas region</subdivision>
+ <subdivision type="kgy" draft="contributed">Ysyk-Köl</subdivision>
+ <subdivision type="kh1" draft="contributed">Banteay Meancheay</subdivision>
+ <subdivision type="kh2" draft="contributed">Battambang (provins)</subdivision>
+ <subdivision type="kh3" draft="contributed">Kampong Cham</subdivision>
+ <subdivision type="kh4" draft="contributed">Kampong Chhnang</subdivision>
+ <subdivision type="kh5" draft="contributed">Kampong Spoe</subdivision>
+ <subdivision type="kh6" draft="contributed">Kampong Thom</subdivision>
+ <subdivision type="kh7" draft="contributed">Kampot</subdivision>
+ <subdivision type="kh8" draft="contributed">Kandal</subdivision>
+ <subdivision type="kh9" draft="contributed">Koh Kong</subdivision>
+ <subdivision type="kh10" draft="contributed">Kratie</subdivision>
+ <subdivision type="kh11" draft="contributed">Mondulkiri</subdivision>
+ <subdivision type="kh12" draft="contributed">Phnom Penh</subdivision>
+ <subdivision type="kh13" draft="contributed">Preah Vihear</subdivision>
+ <subdivision type="kh14" draft="contributed">Prey Veng</subdivision>
+ <subdivision type="kh15" draft="contributed">Pursat</subdivision>
+ <subdivision type="kh16" draft="contributed">Ratanakiri</subdivision>
+ <subdivision type="kh17" draft="contributed">Siem Reap</subdivision>
+ <subdivision type="kh18" draft="contributed">Sihanoukville</subdivision>
+ <subdivision type="kh19" draft="contributed">Stung Treng (provins)</subdivision>
+ <subdivision type="kh20" draft="contributed">Svay Rieng (provins)</subdivision>
+ <subdivision type="kh21" draft="contributed">Takeo</subdivision>
+ <subdivision type="kh22" draft="contributed">Oddar Meancheay</subdivision>
+ <subdivision type="kh23" draft="contributed">Kep</subdivision>
+ <subdivision type="kh24" draft="contributed">Pailin</subdivision>
+ <subdivision type="kig" draft="contributed">Gilbertøyene</subdivision>
+ <subdivision type="kil" draft="contributed">Linjeøyene</subdivision>
+ <subdivision type="kip" draft="contributed">Phoenixøyene</subdivision>
+ <subdivision type="kma" draft="contributed">Anjouan</subdivision>
+ <subdivision type="kmg" draft="contributed">Grande Comore</subdivision>
+ <subdivision type="kmm" draft="contributed">Mohéli</subdivision>
+ <subdivision type="kn01" draft="contributed">Christ Church Nichola Town prestegjeld</subdivision>
+ <subdivision type="kn02" draft="contributed">Saint Anne Sandy Point prestegjeld</subdivision>
+ <subdivision type="kn03" draft="contributed">Saint George Basseterre prestegjeld</subdivision>
+ <subdivision type="kn04" draft="contributed">Saint George Gingerland prestegjeld</subdivision>
+ <subdivision type="kn05" draft="contributed">Saint James Windward prestegjeld</subdivision>
+ <subdivision type="kn06" draft="contributed">Saint John Capisterre prestegjeld</subdivision>
+ <subdivision type="kn07" draft="contributed">Saint John Figtree prestegjeld</subdivision>
+ <subdivision type="kn08" draft="contributed">Saint Mary Cayon prestegjeld</subdivision>
+ <subdivision type="kn09" draft="contributed">Saint Paul Capisterre prestegjeld</subdivision>
+ <subdivision type="kn10" draft="contributed">Saint Paul Charlestown prestegjeld</subdivision>
+ <subdivision type="kn11" draft="contributed">Saint Peter Basseterre prestegjeld</subdivision>
+ <subdivision type="kn12" draft="contributed">Saint Thomas Lowland prestegjeld</subdivision>
+ <subdivision type="kn13" draft="contributed">Saint Thomas Middle Island prestegjeld</subdivision>
+ <subdivision type="kn15" draft="contributed">Trinity Palmetto Point prestegjeld</subdivision>
+ <subdivision type="knk" draft="contributed">Saint Kitts</subdivision>
+ <subdivision type="knn" draft="contributed">Nevis</subdivision>
+ <subdivision type="kp01" draft="contributed">Pyongyang</subdivision>
+ <subdivision type="kp02" draft="contributed">Sør-Pyongan</subdivision>
+ <subdivision type="kp03" draft="contributed">Nord-Pyongan</subdivision>
+ <subdivision type="kp04" draft="contributed">Chagang</subdivision>
+ <subdivision type="kp05" draft="contributed">Sør-Hwanghae</subdivision>
+ <subdivision type="kp06" draft="contributed">Nord-Hwanghae</subdivision>
+ <subdivision type="kp07" draft="contributed">Kangwon</subdivision>
+ <subdivision type="kp08" draft="contributed">Sør-Hamgyong</subdivision>
+ <subdivision type="kp09" draft="contributed">Nord-Hamgyong</subdivision>
+ <subdivision type="kp10" draft="contributed">Ryanggang</subdivision>
+ <subdivision type="kp13" draft="contributed">Rason</subdivision>
+ <subdivision type="kp14" draft="contributed">Nampo</subdivision>
+ <subdivision type="kr11" draft="contributed">Seoul</subdivision>
+ <subdivision type="kr26" draft="contributed">Busan</subdivision>
+ <subdivision type="kr27" draft="contributed">Daegu</subdivision>
+ <subdivision type="kr28" draft="contributed">Incheon</subdivision>
+ <subdivision type="kr29" draft="contributed">Gwangju</subdivision>
+ <subdivision type="kr30" draft="contributed">Daejeon</subdivision>
+ <subdivision type="kr31" draft="contributed">Ulsan</subdivision>
+ <subdivision type="kr41" draft="contributed">Gyeonggi</subdivision>
+ <subdivision type="kr42" draft="contributed">Gangwon</subdivision>
+ <subdivision type="kr43" draft="contributed">Nord-Chungcheong</subdivision>
+ <subdivision type="kr44" draft="contributed">Sør-Chungcheong</subdivision>
+ <subdivision type="kr45" draft="contributed">Nord-Jeolla</subdivision>
+ <subdivision type="kr46" draft="contributed">Sør-Jeolla</subdivision>
+ <subdivision type="kr47" draft="contributed">Nord-Gyeongsang</subdivision>
+ <subdivision type="kr48" draft="contributed">Sør-Gyeongsang</subdivision>
+ <subdivision type="kr49" draft="contributed">Jeju</subdivision>
+ <subdivision type="kr50" draft="contributed">Sejong by</subdivision>
+ <subdivision type="kwah" draft="contributed">Al Ahmadi Governorate</subdivision>
+ <subdivision type="kwfa" draft="contributed">Al Farwaniyah</subdivision>
+ <subdivision type="kwha" draft="contributed">Hawalli</subdivision>
+ <subdivision type="kwku" draft="contributed">Al Asimah</subdivision>
+ <subdivision type="kwmu" draft="contributed">Mubarak Al-Kabeer</subdivision>
+ <subdivision type="kzakm" draft="contributed">Akmola region</subdivision>
+ <subdivision type="kzakt" draft="contributed">Aqtöbe</subdivision>
+ <subdivision type="kzala" draft="contributed">Almaty</subdivision>
+ <subdivision type="kzalm" draft="contributed">Almaty region</subdivision>
+ <subdivision type="kzast" draft="contributed">Astana</subdivision>
+ <subdivision type="kzaty" draft="contributed">Atyrau oblast</subdivision>
+ <subdivision type="kzbay" draft="contributed">Bajkonur</subdivision>
+ <subdivision type="kzkar" draft="contributed">Karagandy region</subdivision>
+ <subdivision type="kzkus" draft="contributed">Kostanay region</subdivision>
+ <subdivision type="kzkzy" draft="contributed">Qızılorda</subdivision>
+ <subdivision type="kzman" draft="contributed">Mangystau oblast</subdivision>
+ <subdivision type="kzpav" draft="contributed">Pavlodar provins</subdivision>
+ <subdivision type="kzsev" draft="contributed">Nord Kazakhstan provins</subdivision>
+ <subdivision type="kzvos" draft="contributed">Vest Kazakhstan region</subdivision>
+ <subdivision type="kzyuz" draft="contributed">Sør Kazakhstan region</subdivision>
+ <subdivision type="kzzap" draft="contributed">Vest-Kasakhstan oblast</subdivision>
+ <subdivision type="laat" draft="contributed">Attapeu</subdivision>
+ <subdivision type="labk" draft="contributed">Bokeo</subdivision>
+ <subdivision type="labl" draft="contributed">Bolikhamsai</subdivision>
+ <subdivision type="lach" draft="contributed">Champasack</subdivision>
+ <subdivision type="laho" draft="contributed">Hua Phan</subdivision>
+ <subdivision type="lakh" draft="contributed">Khammuan</subdivision>
+ <subdivision type="lalm" draft="contributed">Luang Namtha</subdivision>
+ <subdivision type="lalp" draft="contributed">Luang Prabang</subdivision>
+ <subdivision type="laou" draft="contributed">Udomxai</subdivision>
+ <subdivision type="laph" draft="contributed">Phongsali</subdivision>
+ <subdivision type="lasl" draft="contributed">Saravane</subdivision>
+ <subdivision type="lasv" draft="contributed">Savannakhet</subdivision>
+ <subdivision type="lavi" draft="contributed">Vientiane</subdivision>
+ <subdivision type="laxa" draft="contributed">Sainyabuli</subdivision>
+ <subdivision type="laxe" draft="contributed">Sekong</subdivision>
+ <subdivision type="laxi" draft="contributed">Xieng Khouang</subdivision>
+ <subdivision type="lbas" draft="contributed">Nord-Libanon</subdivision>
+ <subdivision type="lbba" draft="contributed">Beirut governementet</subdivision>
+ <subdivision type="lbbi" draft="contributed">Guvernementet Bekaa</subdivision>
+ <subdivision type="lbjl" draft="contributed">Libanonfjellene</subdivision>
+ <subdivision type="lbna" draft="contributed">Guvernementet Nabatiye</subdivision>
+ <subdivision type="lc01" draft="contributed">Anse la Raye Quarter</subdivision>
+ <subdivision type="lc05" draft="contributed">Dennery</subdivision>
+ <subdivision type="lc06" draft="contributed">Gros-islet</subdivision>
+ <subdivision type="lc07" draft="contributed">Laborie</subdivision>
+ <subdivision type="lc08" draft="contributed">Micoud Quarter</subdivision>
+ <subdivision type="lc11" draft="contributed">Vieux Fort Quarter</subdivision>
+ <subdivision type="lc12" draft="contributed">Kanariene</subdivision>
+ <subdivision type="li01" draft="contributed">Balzers</subdivision>
+ <subdivision type="li02" draft="contributed">Eschen</subdivision>
+ <subdivision type="li03" draft="contributed">Gamprin</subdivision>
+ <subdivision type="li04" draft="contributed">Mauren</subdivision>
+ <subdivision type="li05" draft="contributed">Planken</subdivision>
+ <subdivision type="li06" draft="contributed">Ruggell</subdivision>
+ <subdivision type="li07" draft="contributed">Schaan</subdivision>
+ <subdivision type="li08" draft="contributed">Schellenberg</subdivision>
+ <subdivision type="li09" draft="contributed">Triesen</subdivision>
+ <subdivision type="li10" draft="contributed">Triesenberg</subdivision>
+ <subdivision type="li11" draft="contributed">Vaduz</subdivision>
+ <subdivision type="lk11" draft="contributed">Colombo</subdivision>
+ <subdivision type="lk12" draft="contributed">Gampaha distrikt</subdivision>
+ <subdivision type="lk13" draft="contributed">Kalutara</subdivision>
+ <subdivision type="lk22" draft="contributed">Matale distrikt</subdivision>
+ <subdivision type="lk23" draft="contributed">Nuware Eliya Distrikt</subdivision>
+ <subdivision type="lk31" draft="contributed">Galle</subdivision>
+ <subdivision type="lk32" draft="contributed">Matara</subdivision>
+ <subdivision type="lk33" draft="contributed">Hambantota</subdivision>
+ <subdivision type="lk41" draft="contributed">Jaffna</subdivision>
+ <subdivision type="lk42" draft="contributed">Kilinochchi</subdivision>
+ <subdivision type="lk43" draft="contributed">Mannar distrikt</subdivision>
+ <subdivision type="lk45" draft="contributed">Mullaittivu</subdivision>
+ <subdivision type="lk51" draft="contributed">Batticaloa (distrikt)</subdivision>
+ <subdivision type="lk52" draft="contributed">Ampara</subdivision>
+ <subdivision type="lk53" draft="contributed">Trincomalee</subdivision>
+ <subdivision type="lk61" draft="contributed">Kurunegala distrikt</subdivision>
+ <subdivision type="lk62" draft="contributed">Puttalam distrikt</subdivision>
+ <subdivision type="lk72" draft="contributed">Polinnaruwa distrikt</subdivision>
+ <subdivision type="lk81" draft="contributed">Badulla distrikt</subdivision>
+ <subdivision type="lk91" draft="contributed">Ratnapura distrikt</subdivision>
+ <subdivision type="lk92" draft="contributed">Kegalle distrikt</subdivision>
+ <subdivision type="lrbg" draft="contributed">Bong</subdivision>
+ <subdivision type="lrbm" draft="contributed">Bomi</subdivision>
+ <subdivision type="lrcm" draft="contributed">Grand Cape Mount</subdivision>
+ <subdivision type="lrgb" draft="contributed">Grand Bassa</subdivision>
+ <subdivision type="lrgg" draft="contributed">Grand Gedeh</subdivision>
+ <subdivision type="lrgk" draft="contributed">Grand Kru</subdivision>
+ <subdivision type="lrgp" draft="contributed">Gbarpolu</subdivision>
+ <subdivision type="lrlo" draft="contributed">Lofa</subdivision>
+ <subdivision type="lrmg" draft="contributed">Margibi</subdivision>
+ <subdivision type="lrmo" draft="contributed">Montserrado</subdivision>
+ <subdivision type="lrmy" draft="contributed">Maryland</subdivision>
+ <subdivision type="lrni" draft="contributed">Nimba</subdivision>
+ <subdivision type="lrrg" draft="contributed">River Gee</subdivision>
+ <subdivision type="lrri" draft="contributed">Rivercess</subdivision>
+ <subdivision type="lrsi" draft="contributed">Sinoe</subdivision>
+ <subdivision type="lsa" draft="contributed">Maseru</subdivision>
+ <subdivision type="lsb" draft="contributed">Butha-Buthe</subdivision>
+ <subdivision type="lsc" draft="contributed">Leribe</subdivision>
+ <subdivision type="lsd" draft="contributed">Berea</subdivision>
+ <subdivision type="lse" draft="contributed">Mafeteng</subdivision>
+ <subdivision type="lsf" draft="contributed">Mohale’s Hoek</subdivision>
+ <subdivision type="lsg" draft="contributed">Quthing</subdivision>
+ <subdivision type="lsh" draft="contributed">Qacha’s Nek</subdivision>
+ <subdivision type="lsj" draft="contributed">Mokhotlong</subdivision>
+ <subdivision type="lsk" draft="contributed">Thaba-Tseka</subdivision>
+ <subdivision type="lt03" draft="contributed">Alytus landkommune</subdivision>
+ <subdivision type="lt08" draft="contributed">Elektrėnai kommune</subdivision>
+ <subdivision type="lt21" draft="contributed">Klaipeda landkommune</subdivision>
+ <subdivision type="lt22" draft="contributed">Kretinga kommune</subdivision>
+ <subdivision type="lt24" draft="contributed">Lazdijai kommune</subdivision>
+ <subdivision type="lt28" draft="contributed">Neringa kommune</subdivision>
+ <subdivision type="lt37" draft="contributed">Radviliškis storkommune</subdivision>
+ <subdivision type="lt42" draft="contributed">Šalčininkai kommune</subdivision>
+ <subdivision type="lt47" draft="contributed">Širvintos kommune</subdivision>
+ <subdivision type="lt49" draft="contributed">Švenčionys kommune</subdivision>
+ <subdivision type="lt58" draft="contributed">Vilnius landkommune</subdivision>
+ <subdivision type="ltal" draft="contributed">Alytus fylke</subdivision>
+ <subdivision type="ltkl" draft="contributed">Klaipėda fylke</subdivision>
+ <subdivision type="ltku" draft="contributed">Kaunas fylke</subdivision>
+ <subdivision type="ltmr" draft="contributed">Marijampolė fylke</subdivision>
+ <subdivision type="ltpn" draft="contributed">Panevėžys fylke</subdivision>
+ <subdivision type="ltsa" draft="contributed">Šiauliai fylke</subdivision>
+ <subdivision type="ltta" draft="contributed">Tauragė fylke</subdivision>
+ <subdivision type="ltte" draft="contributed">Telšiai fylke</subdivision>
+ <subdivision type="ltut" draft="contributed">Utena fylke</subdivision>
+ <subdivision type="ltvl" draft="contributed">Vilnius fylke</subdivision>
+ <subdivision type="luca" draft="contributed">Capellen</subdivision>
+ <subdivision type="lucl" draft="contributed">Clervaux</subdivision>
+ <subdivision type="ludi" draft="contributed">Diekirch</subdivision>
+ <subdivision type="luec" draft="contributed">Echternach</subdivision>
+ <subdivision type="lues" draft="contributed">Esch-sur-Alzette</subdivision>
+ <subdivision type="lugr" draft="contributed">Grevenmacher</subdivision>
+ <subdivision type="lulu" draft="contributed">Luxembourg</subdivision>
+ <subdivision type="lume" draft="contributed">Mersch</subdivision>
+ <subdivision type="lurd" draft="contributed">Redingen</subdivision>
+ <subdivision type="lurm" draft="contributed">Remich</subdivision>
+ <subdivision type="luvd" draft="contributed">Vianden</subdivision>
+ <subdivision type="luwi" draft="contributed">Wiltz</subdivision>
+ <subdivision type="lv001" draft="contributed">Aglona kommune</subdivision>
+ <subdivision type="lv002" draft="contributed">Aizkraukle Kommune</subdivision>
+ <subdivision type="lv003" draft="contributed">Aizpute kommune</subdivision>
+ <subdivision type="lv004" draft="contributed">Akniste kommune</subdivision>
+ <subdivision type="lv005" draft="contributed">Aloja kommune</subdivision>
+ <subdivision type="lv006" draft="contributed">Alsunga kommune</subdivision>
+ <subdivision type="lv007" draft="contributed">Aluksne kommune</subdivision>
+ <subdivision type="lv008" draft="contributed">Amata kommune</subdivision>
+ <subdivision type="lv009" draft="contributed">Ape kommune</subdivision>
+ <subdivision type="lv010" draft="contributed">Auce kommune</subdivision>
+ <subdivision type="lv011" draft="contributed">Adazi kommune</subdivision>
+ <subdivision type="lv012" draft="contributed">Babite kommune</subdivision>
+ <subdivision type="lv013" draft="contributed">Baldone kommune</subdivision>
+ <subdivision type="lv014" draft="contributed">Baltinava kommune</subdivision>
+ <subdivision type="lv015" draft="contributed">Balvi kommune</subdivision>
+ <subdivision type="lv016" draft="contributed">Bauska kommune</subdivision>
+ <subdivision type="lv017" draft="contributed">Beverina kommune</subdivision>
+ <subdivision type="lv018" draft="contributed">Broceni kommune</subdivision>
+ <subdivision type="lv019" draft="contributed">Burtnieki kommune</subdivision>
+ <subdivision type="lv020" draft="contributed">Carnikava Kommune</subdivision>
+ <subdivision type="lv021" draft="contributed">Cesvaine Kommune</subdivision>
+ <subdivision type="lv022" draft="contributed">Cesis Kommune</subdivision>
+ <subdivision type="lv023" draft="contributed">Cibla kommune</subdivision>
+ <subdivision type="lv024" draft="contributed">Dagda kommune</subdivision>
+ <subdivision type="lv025" draft="contributed">Daugavpils Kommune</subdivision>
+ <subdivision type="lv026" draft="contributed">Dobele Kommune</subdivision>
+ <subdivision type="lv027" draft="contributed">Dundaga kommune</subdivision>
+ <subdivision type="lv028" draft="contributed">Durbe kommune</subdivision>
+ <subdivision type="lv029" draft="contributed">Engure kommune</subdivision>
+ <subdivision type="lv030" draft="contributed">Ergli kommune</subdivision>
+ <subdivision type="lv031" draft="contributed">Garkalne kommune</subdivision>
+ <subdivision type="lv032" draft="contributed">Grobina Kommune</subdivision>
+ <subdivision type="lv033" draft="contributed">Gulbene Kommune</subdivision>
+ <subdivision type="lv034" draft="contributed">Iecava kommune</subdivision>
+ <subdivision type="lv035" draft="contributed">Ikskile kommune</subdivision>
+ <subdivision type="lv036" draft="contributed">Ilukste kommune</subdivision>
+ <subdivision type="lv037" draft="contributed">Incukalns kommune</subdivision>
+ <subdivision type="lv038" draft="contributed">Jaunjelgava kommune</subdivision>
+ <subdivision type="lv039" draft="contributed">Jaunpiebalga kommune</subdivision>
+ <subdivision type="lv040" draft="contributed">Jaunpils kommune</subdivision>
+ <subdivision type="lv041" draft="contributed">Jelgava kommune</subdivision>
+ <subdivision type="lv042" draft="contributed">Jekabpils kommune</subdivision>
+ <subdivision type="lv043" draft="contributed">Kandava kommune</subdivision>
+ <subdivision type="lv044" draft="contributed">Karsava kommune</subdivision>
+ <subdivision type="lv045" draft="contributed">Koceni kommune</subdivision>
+ <subdivision type="lv046" draft="contributed">Koknese Kommune</subdivision>
+ <subdivision type="lv047" draft="contributed">Kraslava kommune</subdivision>
+ <subdivision type="lv048" draft="contributed">Krimulda kommune</subdivision>
+ <subdivision type="lv049" draft="contributed">Krustpils kommune</subdivision>
+ <subdivision type="lv050" draft="contributed">Kuldiga kommune</subdivision>
+ <subdivision type="lv051" draft="contributed">Kegums kommune</subdivision>
+ <subdivision type="lv052" draft="contributed">Kekava kommune</subdivision>
+ <subdivision type="lv053" draft="contributed">Lielvarde kommune</subdivision>
+ <subdivision type="lv054" draft="contributed">Limbazi kommune</subdivision>
+ <subdivision type="lv055" draft="contributed">Ligatne kommune</subdivision>
+ <subdivision type="lv056" draft="contributed">Livani kommune</subdivision>
+ <subdivision type="lv057" draft="contributed">Lubana kommune</subdivision>
+ <subdivision type="lv058" draft="contributed">Ludza kommune</subdivision>
+ <subdivision type="lv059" draft="contributed">Madona kommune</subdivision>
+ <subdivision type="lv060" draft="contributed">Mazsalaca kommune</subdivision>
+ <subdivision type="lv061" draft="contributed">Malpils kommune</subdivision>
+ <subdivision type="lv062" draft="contributed">Marupe kommune</subdivision>
+ <subdivision type="lv063" draft="contributed">Mersrags kommune</subdivision>
+ <subdivision type="lv064" draft="contributed">Naukseni kommune</subdivision>
+ <subdivision type="lv065" draft="contributed">Nereta kommune</subdivision>
+ <subdivision type="lv066" draft="contributed">Nica kommune</subdivision>
+ <subdivision type="lv067" draft="contributed">Ogre Kommune</subdivision>
+ <subdivision type="lv068" draft="contributed">Olaine kommune</subdivision>
+ <subdivision type="lv069" draft="contributed">Ozolnieki Kommune</subdivision>
+ <subdivision type="lv070" draft="contributed">Pargauja Kommune</subdivision>
+ <subdivision type="lv071" draft="contributed">Pavilosta kommune</subdivision>
+ <subdivision type="lv072" draft="contributed">Plavinas kommune</subdivision>
+ <subdivision type="lv073" draft="contributed">Preili kommune</subdivision>
+ <subdivision type="lv074" draft="contributed">Priekule kommune</subdivision>
+ <subdivision type="lv075" draft="contributed">Priekuli kommune</subdivision>
+ <subdivision type="lv076" draft="contributed">Rauna kommune</subdivision>
+ <subdivision type="lv077" draft="contributed">Rezekne kommune</subdivision>
+ <subdivision type="lv078" draft="contributed">Riebini kommune</subdivision>
+ <subdivision type="lv079" draft="contributed">Roja Kommune</subdivision>
+ <subdivision type="lv080" draft="contributed">Ropazi kommune</subdivision>
+ <subdivision type="lv081" draft="contributed">Rucava kommune</subdivision>
+ <subdivision type="lv082" draft="contributed">Rugaju novads</subdivision>
+ <subdivision type="lv083" draft="contributed">Rundale kommune</subdivision>
+ <subdivision type="lv084" draft="contributed">Rujiena kommune</subdivision>
+ <subdivision type="lv085" draft="contributed">Sala kommune, Latvia</subdivision>
+ <subdivision type="lv086" draft="contributed">Salacgriva Kommune</subdivision>
+ <subdivision type="lv087" draft="contributed">Salaspils Kommune</subdivision>
+ <subdivision type="lv088" draft="contributed">Saldus kommune</subdivision>
+ <subdivision type="lv089" draft="contributed">Saulkrasi kommune</subdivision>
+ <subdivision type="lv090" draft="contributed">Sejas kommune</subdivision>
+ <subdivision type="lv091" draft="contributed">Sigulda Kommune</subdivision>
+ <subdivision type="lv092" draft="contributed">Skriveri kommune</subdivision>
+ <subdivision type="lv093" draft="contributed">Skrunda Kommune</subdivision>
+ <subdivision type="lv094" draft="contributed">Smiltene kommune</subdivision>
+ <subdivision type="lv095" draft="contributed">Stopini kommune</subdivision>
+ <subdivision type="lv096" draft="contributed">Strenci kommune</subdivision>
+ <subdivision type="lv097" draft="contributed">Talsi kommune</subdivision>
+ <subdivision type="lv098" draft="contributed">Tervete kommune</subdivision>
+ <subdivision type="lv099" draft="contributed">Tukums kommune</subdivision>
+ <subdivision type="lv100" draft="contributed">Vainode Kommune</subdivision>
+ <subdivision type="lv101" draft="contributed">Valka kommune</subdivision>
+ <subdivision type="lv102" draft="contributed">Varaklani kommune</subdivision>
+ <subdivision type="lv103" draft="contributed">Varkava kommune</subdivision>
+ <subdivision type="lv104" draft="contributed">Vecpiebalga Kommune</subdivision>
+ <subdivision type="lv105" draft="contributed">Vecumnieki kommune</subdivision>
+ <subdivision type="lv106" draft="contributed">Ventspils kommune</subdivision>
+ <subdivision type="lv107" draft="contributed">Viesite Kommune</subdivision>
+ <subdivision type="lv108" draft="contributed">Vilaka kommune</subdivision>
+ <subdivision type="lv109" draft="contributed">Vilani Kommune</subdivision>
+ <subdivision type="lv110" draft="contributed">Zilupes kommune</subdivision>
+ <subdivision type="lvdgv" draft="contributed">Daugavpils</subdivision>
+ <subdivision type="lvjel" draft="contributed">Jelgava</subdivision>
+ <subdivision type="lvjkb" draft="contributed">Jēkabpils</subdivision>
+ <subdivision type="lvjur" draft="contributed">Jūrmala</subdivision>
+ <subdivision type="lvlpx" draft="contributed">Liepāja</subdivision>
+ <subdivision type="lvrez" draft="contributed">Rēzekne</subdivision>
+ <subdivision type="lvrix" draft="contributed">Riga</subdivision>
+ <subdivision type="lvven" draft="contributed">Ventspils</subdivision>
+ <subdivision type="lvvmr" draft="contributed">Valmiera</subdivision>
+ <subdivision type="lyba" draft="contributed">Benghazi</subdivision>
+ <subdivision type="lybu" draft="contributed">Al Butnan</subdivision>
+ <subdivision type="lydr" draft="contributed">Darnah</subdivision>
+ <subdivision type="lygt" draft="contributed">Ghat</subdivision>
+ <subdivision type="lyja" draft="contributed">Al Jabal al Akhdar</subdivision>
+ <subdivision type="lyji" draft="contributed">Al Jfara</subdivision>
+ <subdivision type="lyju" draft="contributed">Al Jufrah</subdivision>
+ <subdivision type="lykf" draft="contributed">Al Kufrah</subdivision>
+ <subdivision type="lymb" draft="contributed">Al Murgub</subdivision>
+ <subdivision type="lymi" draft="contributed">Misrata distrikt</subdivision>
+ <subdivision type="lymj" draft="contributed">Al Marj</subdivision>
+ <subdivision type="lymq" draft="contributed">Murzuq distrikt</subdivision>
+ <subdivision type="lynl" draft="contributed">Nalut</subdivision>
+ <subdivision type="lynq" draft="contributed">An Nuqat al Khams</subdivision>
+ <subdivision type="lysb" draft="contributed">Sabha</subdivision>
+ <subdivision type="lysr" draft="contributed">Surt</subdivision>
+ <subdivision type="lywa" draft="contributed">Al Wahat</subdivision>
+ <subdivision type="lywd" draft="contributed">Wadi Al Hayaa</subdivision>
+ <subdivision type="lyws" draft="contributed">Wadi al Shatii distrikt</subdivision>
+ <subdivision type="lyza" draft="contributed">Az Zawiyah</subdivision>
+ <subdivision type="ma01" draft="contributed">Tanger-Tétouan</subdivision>
+ <subdivision type="ma02" draft="contributed">Gharb Chrarda Beni Hssen</subdivision>
+ <subdivision type="ma03" draft="contributed">Taza-Al Hoceima-Taounate</subdivision>
+ <subdivision type="ma04" draft="contributed">Oriental</subdivision>
+ <subdivision type="ma05" draft="contributed">Fes-Boulemane</subdivision>
+ <subdivision type="ma06" draft="contributed">Meknes Tafilalet</subdivision>
+ <subdivision type="ma07" draft="contributed">Rabat Sale Zemmer Zaer</subdivision>
+ <subdivision type="ma08" draft="contributed">Grand Casablanca</subdivision>
+ <subdivision type="ma09" draft="contributed">Chaouia-Ouardigha</subdivision>
+ <subdivision type="ma10" draft="contributed">Doukkala-Abda</subdivision>
+ <subdivision type="ma11" draft="contributed">Marrakech-Tensift-El Haouz</subdivision>
+ <subdivision type="ma12" draft="contributed">Tadla-Azilal</subdivision>
+ <subdivision type="ma13" draft="contributed">Souss-Massa-Drâa</subdivision>
+ <subdivision type="ma14" draft="contributed">Guelmim es Semara</subdivision>
+ <subdivision type="ma15" draft="contributed">Laayoune Boujdoor-Sakia El Harma</subdivision>
+ <subdivision type="maagd" draft="contributed">Agadir</subdivision>
+ <subdivision type="macas" draft="contributed">Casablanca</subdivision>
+ <subdivision type="mafes" draft="contributed">Fès</subdivision>
+ <subdivision type="mague" draft="contributed">Guelmim Kommune</subdivision>
+ <subdivision type="mamek" draft="contributed">Meknes</subdivision>
+ <subdivision type="mammd" draft="contributed">Marrakech</subdivision>
+ <subdivision type="mammn" draft="contributed">Marrakech²</subdivision>
+ <subdivision type="mamoh" draft="contributed">Mohammedia</subdivision>
+ <subdivision type="maoud" draft="contributed">Oued ed-Dahab provins</subdivision>
+ <subdivision type="maouj" draft="contributed">Oujda</subdivision>
+ <subdivision type="marab" draft="contributed">Rabat</subdivision>
+ <subdivision type="masal" draft="contributed">Sale</subdivision>
+ <subdivision type="maskh" draft="contributed">Témara</subdivision>
+ <subdivision type="masyb" draft="contributed">Marrakech³</subdivision>
+ <subdivision type="matng" draft="contributed">Tanger</subdivision>
+ <subdivision type="mcfo" draft="contributed">Fontvieille</subdivision>
+ <subdivision type="mcmc" draft="contributed">Monte Carlo</subdivision>
+ <subdivision type="mdan" draft="contributed">Anenii Noi</subdivision>
+ <subdivision type="mdba" draft="contributed">Bălți</subdivision>
+ <subdivision type="mdbd" draft="contributed">Bender</subdivision>
+ <subdivision type="mdbr" draft="contributed">Briceni</subdivision>
+ <subdivision type="mdbs" draft="contributed">Basarabeasca</subdivision>
+ <subdivision type="mdca" draft="contributed">Cahul</subdivision>
+ <subdivision type="mdcl" draft="contributed">Călărași</subdivision>
+ <subdivision type="mdcm" draft="contributed">Cimișlia</subdivision>
+ <subdivision type="mdcr" draft="contributed">Criuleni</subdivision>
+ <subdivision type="mdcs" draft="contributed">Căușeni</subdivision>
+ <subdivision type="mdct" draft="contributed">Cantemir</subdivision>
+ <subdivision type="mdcu" draft="contributed">Chișinău</subdivision>
+ <subdivision type="mddo" draft="contributed">Dondușeni</subdivision>
+ <subdivision type="mddr" draft="contributed">Drochia</subdivision>
+ <subdivision type="mddu" draft="contributed">Dubășari</subdivision>
+ <subdivision type="mded" draft="contributed">Edineț</subdivision>
+ <subdivision type="mdfa" draft="contributed">Fălești</subdivision>
+ <subdivision type="mdfl" draft="contributed">Florești</subdivision>
+ <subdivision type="mdga" draft="contributed">Gagaus</subdivision>
+ <subdivision type="mdgl" draft="contributed">Glodeni</subdivision>
+ <subdivision type="mdhi" draft="contributed">Hîncești</subdivision>
+ <subdivision type="mdia" draft="contributed">Ialoveni</subdivision>
+ <subdivision type="mdle" draft="contributed">Leova</subdivision>
+ <subdivision type="mdni" draft="contributed">Nisporeni</subdivision>
+ <subdivision type="mdoc" draft="contributed">Ocnița</subdivision>
+ <subdivision type="mdor" draft="contributed">Orhei</subdivision>
+ <subdivision type="mdre" draft="contributed">Rezina</subdivision>
+ <subdivision type="mdri" draft="contributed">Rîșcani</subdivision>
+ <subdivision type="mdsd" draft="contributed">Șoldănești</subdivision>
+ <subdivision type="mdsi" draft="contributed">Sîngerei</subdivision>
+ <subdivision type="mdso" draft="contributed">Soroca</subdivision>
+ <subdivision type="mdst" draft="contributed">Strășeni</subdivision>
+ <subdivision type="mdsv" draft="contributed">Ștefan Vodă</subdivision>
+ <subdivision type="mdta" draft="contributed">Taraclia</subdivision>
+ <subdivision type="mdte" draft="contributed">Telenești</subdivision>
+ <subdivision type="mdun" draft="contributed">Ungheni</subdivision>
+ <subdivision type="me01" draft="contributed">Andrijevica Kommune</subdivision>
+ <subdivision type="me02" draft="contributed">Bar kommune</subdivision>
+ <subdivision type="me03" draft="contributed">Berane kommune</subdivision>
+ <subdivision type="me04" draft="contributed">Bijelo Polje kommune</subdivision>
+ <subdivision type="me05" draft="contributed">Budva Kommune</subdivision>
+ <subdivision type="me06" draft="contributed">Cetinje Kommune</subdivision>
+ <subdivision type="me07" draft="contributed">Danilovgrad Kommune</subdivision>
+ <subdivision type="me08" draft="contributed">Herceg Novi kommune</subdivision>
+ <subdivision type="me09" draft="contributed">Kolasin kommune</subdivision>
+ <subdivision type="me11" draft="contributed">Mojkovac kommune</subdivision>
+ <subdivision type="me12" draft="contributed">Niksic kommune</subdivision>
+ <subdivision type="me13" draft="contributed">Plav Kommune</subdivision>
+ <subdivision type="me14" draft="contributed">Pljevlja Kommune</subdivision>
+ <subdivision type="me15" draft="contributed">Pluzine Kommune</subdivision>
+ <subdivision type="me18" draft="contributed">Savnik Kommune</subdivision>
+ <subdivision type="me20" draft="contributed">Ulcinj kommune</subdivision>
+ <subdivision type="me21" draft="contributed">Zabljak kommune</subdivision>
+ <subdivision type="mga" draft="contributed">Toamasina</subdivision>
+ <subdivision type="mgd" draft="contributed">Antsiranana</subdivision>
+ <subdivision type="mgf" draft="contributed">Fianarantsoa</subdivision>
+ <subdivision type="mgm" draft="contributed">Mahajanga</subdivision>
+ <subdivision type="mgt" draft="contributed">Antananarivo</subdivision>
+ <subdivision type="mgu" draft="contributed">Toliara</subdivision>
+ <subdivision type="mhall" draft="contributed">Ailinglaplap</subdivision>
+ <subdivision type="mheni" draft="contributed">Enewetakatollen</subdivision>
+ <subdivision type="mhkwa" draft="contributed">Kwajalein</subdivision>
+ <subdivision type="mhl" draft="contributed">Ralik-kjeden</subdivision>
+ <subdivision type="mhmaj" draft="contributed">Majuro</subdivision>
+ <subdivision type="mhron" draft="contributed">Rongelap</subdivision>
+ <subdivision type="mht" draft="contributed">Ratak Chain</subdivision>
+ <subdivision type="mk02" draft="contributed">Aracinovo Kommune</subdivision>
+ <subdivision type="mk03" draft="contributed">Berovo kommune</subdivision>
+ <subdivision type="mk04" draft="contributed">Bitcola kommune</subdivision>
+ <subdivision type="mk05" draft="contributed">Bogdanci Kommune</subdivision>
+ <subdivision type="mk06" draft="contributed">Bogovinje kommune</subdivision>
+ <subdivision type="mk07" draft="contributed">Bosiovo kommune</subdivision>
+ <subdivision type="mk08" draft="contributed">Brvenica Kommune</subdivision>
+ <subdivision type="mk11" draft="contributed">Vasilevo kommune</subdivision>
+ <subdivision type="mk14" draft="contributed">Vinica Kommune</subdivision>
+ <subdivision type="mk19" draft="contributed">Gostivar kommune</subdivision>
+ <subdivision type="mk20" draft="contributed">Gradsko kommune</subdivision>
+ <subdivision type="mk21" draft="contributed">Debar kommune</subdivision>
+ <subdivision type="mk22" draft="contributed">Debarca kommune</subdivision>
+ <subdivision type="mk23" draft="contributed">Delcevo Kommune</subdivision>
+ <subdivision type="mk27" draft="contributed">Dolneni Kommune</subdivision>
+ <subdivision type="mk30" draft="contributed">Zelino kommune</subdivision>
+ <subdivision type="mk32" draft="contributed">Zelenikovo kommune</subdivision>
+ <subdivision type="mk33" draft="contributed">Zrnovci kommune</subdivision>
+ <subdivision type="mk34" draft="contributed">Ilinden Kommune</subdivision>
+ <subdivision type="mk35" draft="contributed">Jegunovce kommune</subdivision>
+ <subdivision type="mk36" draft="contributed">Kavadarci kommune</subdivision>
+ <subdivision type="mk37" draft="contributed">Karbinci</subdivision>
+ <subdivision type="mk40" draft="contributed">Kicevo kommune</subdivision>
+ <subdivision type="mk41" draft="contributed">Konce Kommune</subdivision>
+ <subdivision type="mk42" draft="contributed">Kocani kommune</subdivision>
+ <subdivision type="mk43" draft="contributed">Kratovo kommune</subdivision>
+ <subdivision type="mk44" draft="contributed">Kriva Palanka kommune</subdivision>
+ <subdivision type="mk45" draft="contributed">Krivogasjtani kommune</subdivision>
+ <subdivision type="mk46" draft="contributed">Kursevo Kommune</subdivision>
+ <subdivision type="mk47" draft="contributed">Kumanovo kommune</subdivision>
+ <subdivision type="mk48" draft="contributed">Lipkovo kommune</subdivision>
+ <subdivision type="mk49" draft="contributed">Lozovo kommune</subdivision>
+ <subdivision type="mk50" draft="contributed">Mavrovo og Rostusa kommune</subdivision>
+ <subdivision type="mk51" draft="contributed">Makedonska Kamencia kommune</subdivision>
+ <subdivision type="mk52" draft="contributed">Makedoniske Brod kommune</subdivision>
+ <subdivision type="mk54" draft="contributed">Negotino kommune</subdivision>
+ <subdivision type="mk56" draft="contributed">Novo Selo kommune</subdivision>
+ <subdivision type="mk58" draft="contributed">Ohrid Kommune</subdivision>
+ <subdivision type="mk60" draft="contributed">Pehcevo kommune</subdivision>
+ <subdivision type="mk61" draft="contributed">Plasnica Kommune</subdivision>
+ <subdivision type="mk62" draft="contributed">Prilep kommune</subdivision>
+ <subdivision type="mk63" draft="contributed">Probistip kommune</subdivision>
+ <subdivision type="mk64" draft="contributed">Radovis kommune</subdivision>
+ <subdivision type="mk65" draft="contributed">Rankovce kommune</subdivision>
+ <subdivision type="mk66" draft="contributed">Resen kommune</subdivision>
+ <subdivision type="mk69" draft="contributed">Sveti Nikole kommune</subdivision>
+ <subdivision type="mk70" draft="contributed">Sopiste kommune</subdivision>
+ <subdivision type="mk72" draft="contributed">Struga kommune</subdivision>
+ <subdivision type="mk73" draft="contributed">Stumica kommune</subdivision>
+ <subdivision type="mk74" draft="contributed">Studenicani Kommune</subdivision>
+ <subdivision type="mk75" draft="contributed">Tearce Kommune</subdivision>
+ <subdivision type="mk76" draft="contributed">Tetovo kommune</subdivision>
+ <subdivision type="mk78" draft="contributed">Centar Zupa kommune</subdivision>
+ <subdivision type="mk80" draft="contributed">Caska Kommune</subdivision>
+ <subdivision type="mk81" draft="contributed">Cesinoco-Oblesevo Kommune</subdivision>
+ <subdivision type="mk82" draft="contributed">Cucer-Sandevo kommune</subdivision>
+ <subdivision type="mk83" draft="contributed">Strip kommune</subdivision>
+ <subdivision type="mk85" draft="contributed">Stor-Skopje</subdivision>
+ <subdivision type="ml1" draft="contributed">Kayes</subdivision>
+ <subdivision type="ml2" draft="contributed">Koulikoro</subdivision>
+ <subdivision type="ml3" draft="contributed">Sikasso</subdivision>
+ <subdivision type="ml4" draft="contributed">Ségou</subdivision>
+ <subdivision type="ml5" draft="contributed">Mopti</subdivision>
+ <subdivision type="ml6" draft="contributed">Timbuktu</subdivision>
+ <subdivision type="ml7" draft="contributed">Gao</subdivision>
+ <subdivision type="ml8" draft="contributed">Kidal</subdivision>
+ <subdivision type="mlbko" draft="contributed">Bamako</subdivision>
+ <subdivision type="mm01" draft="contributed">Sagaing</subdivision>
+ <subdivision type="mm02" draft="contributed">Bago</subdivision>
+ <subdivision type="mm03" draft="contributed">Magway</subdivision>
+ <subdivision type="mm04" draft="contributed">Mandalay</subdivision>
+ <subdivision type="mm05" draft="contributed">Tanintharyi</subdivision>
+ <subdivision type="mm06" draft="contributed">Yangon</subdivision>
+ <subdivision type="mm07" draft="contributed">Ayeyarwady</subdivision>
+ <subdivision type="mm11" draft="contributed">Kachin</subdivision>
+ <subdivision type="mm12" draft="contributed">Kayah</subdivision>
+ <subdivision type="mm13" draft="contributed">Karen</subdivision>
+ <subdivision type="mm14" draft="contributed">Chin</subdivision>
+ <subdivision type="mm15" draft="contributed">Mon</subdivision>
+ <subdivision type="mm16" draft="contributed">Rakhine</subdivision>
+ <subdivision type="mm17" draft="contributed">Shan</subdivision>
+ <subdivision type="mn1" draft="contributed">Ulan Bator</subdivision>
+ <subdivision type="mn035" draft="contributed">Orkhon</subdivision>
+ <subdivision type="mn037" draft="contributed">Darkhan-Uul</subdivision>
+ <subdivision type="mn039" draft="contributed">Khentij</subdivision>
+ <subdivision type="mn041" draft="contributed">Khövsgöl</subdivision>
+ <subdivision type="mn043" draft="contributed">Khovd</subdivision>
+ <subdivision type="mn046" draft="contributed">Uvs</subdivision>
+ <subdivision type="mn047" draft="contributed">Töv</subdivision>
+ <subdivision type="mn049" draft="contributed">Selenge</subdivision>
+ <subdivision type="mn051" draft="contributed">Sükhbaatar</subdivision>
+ <subdivision type="mn053" draft="contributed">Ömnögov</subdivision>
+ <subdivision type="mn055" draft="contributed">Övörkhangaj</subdivision>
+ <subdivision type="mn057" draft="contributed">Zavkhan</subdivision>
+ <subdivision type="mn059" draft="contributed">Dundgov</subdivision>
+ <subdivision type="mn061" draft="contributed">Dornod</subdivision>
+ <subdivision type="mn063" draft="contributed">Dornogov</subdivision>
+ <subdivision type="mn064" draft="contributed">Gov-Sümber</subdivision>
+ <subdivision type="mn065" draft="contributed">Gov-Altaj</subdivision>
+ <subdivision type="mn067" draft="contributed">Bulgan</subdivision>
+ <subdivision type="mn069" draft="contributed">Bajankhongor</subdivision>
+ <subdivision type="mn071" draft="contributed">Bajan-Ölgij</subdivision>
+ <subdivision type="mn073" draft="contributed">Arkhangaj</subdivision>
+ <subdivision type="mr01" draft="contributed">Hodh Ech Chargui</subdivision>
+ <subdivision type="mr02" draft="contributed">Hodh El Gharbi</subdivision>
+ <subdivision type="mr03" draft="contributed">Assaba</subdivision>
+ <subdivision type="mr04" draft="contributed">Gorgol</subdivision>
+ <subdivision type="mr05" draft="contributed">Brakna</subdivision>
+ <subdivision type="mr06" draft="contributed">Trarza</subdivision>
+ <subdivision type="mr07" draft="contributed">Adrar</subdivision>
+ <subdivision type="mr08" draft="contributed">Dakhlet Nouadhibou</subdivision>
+ <subdivision type="mr09" draft="contributed">Tagant</subdivision>
+ <subdivision type="mr10" draft="contributed">Guidimaka</subdivision>
+ <subdivision type="mr11" draft="contributed">Tiris Zemmour</subdivision>
+ <subdivision type="mr12" draft="contributed">Inchiri</subdivision>
+ <subdivision type="mt01" draft="contributed">Attard</subdivision>
+ <subdivision type="mt02" draft="contributed">Balzan</subdivision>
+ <subdivision type="mt03" draft="contributed">Birgu</subdivision>
+ <subdivision type="mt04" draft="contributed">Birkirkara</subdivision>
+ <subdivision type="mt05" draft="contributed">Bizebbuga</subdivision>
+ <subdivision type="mt06" draft="contributed">Cospicua</subdivision>
+ <subdivision type="mt07" draft="contributed">Dingli</subdivision>
+ <subdivision type="mt08" draft="contributed">Fgura</subdivision>
+ <subdivision type="mt09" draft="contributed">Floriana</subdivision>
+ <subdivision type="mt10" draft="contributed">Fontana</subdivision>
+ <subdivision type="mt11" draft="contributed">Gudja</subdivision>
+ <subdivision type="mt12" draft="contributed">Gżira</subdivision>
+ <subdivision type="mt13" draft="contributed">Ghajnsielem</subdivision>
+ <subdivision type="mt14" draft="contributed">Gharb</subdivision>
+ <subdivision type="mt15" draft="contributed">Gharghur</subdivision>
+ <subdivision type="mt16" draft="contributed">Ghasri</subdivision>
+ <subdivision type="mt17" draft="contributed">Ghazaq</subdivision>
+ <subdivision type="mt18" draft="contributed">Gzira</subdivision>
+ <subdivision type="mt19" draft="contributed">Iklin</subdivision>
+ <subdivision type="mt20" draft="contributed">Senglea</subdivision>
+ <subdivision type="mt21" draft="contributed">Kalkara</subdivision>
+ <subdivision type="mt22" draft="contributed">Kercem</subdivision>
+ <subdivision type="mt23" draft="contributed">Kirkop</subdivision>
+ <subdivision type="mt24" draft="contributed">Lija</subdivision>
+ <subdivision type="mt25" draft="contributed">Luqa</subdivision>
+ <subdivision type="mt26" draft="contributed">Marsa</subdivision>
+ <subdivision type="mt27" draft="contributed">Marsakala</subdivision>
+ <subdivision type="mt28" draft="contributed">Marsaxlokk</subdivision>
+ <subdivision type="mt29" draft="contributed">Mdina</subdivision>
+ <subdivision type="mt30" draft="contributed">Mellieħa</subdivision>
+ <subdivision type="mt31" draft="contributed">Mgarr</subdivision>
+ <subdivision type="mt32" draft="contributed">Mosta</subdivision>
+ <subdivision type="mt33" draft="contributed">Mqabba</subdivision>
+ <subdivision type="mt34" draft="contributed">Msida</subdivision>
+ <subdivision type="mt35" draft="contributed">Mtarfa</subdivision>
+ <subdivision type="mt36" draft="contributed">Munxar</subdivision>
+ <subdivision type="mt37" draft="contributed">Nadur</subdivision>
+ <subdivision type="mt38" draft="contributed">Naxxar</subdivision>
+ <subdivision type="mt39" draft="contributed">Paola</subdivision>
+ <subdivision type="mt40" draft="contributed">Pembroke</subdivision>
+ <subdivision type="mt42" draft="contributed">Qala</subdivision>
+ <subdivision type="mt43" draft="contributed">Qormi</subdivision>
+ <subdivision type="mt44" draft="contributed">Qrendi</subdivision>
+ <subdivision type="mt45" draft="contributed">Victoria</subdivision>
+ <subdivision type="mt46" draft="contributed">Rabat</subdivision>
+ <subdivision type="mt47" draft="contributed">Safi</subdivision>
+ <subdivision type="mt48" draft="contributed">St. Julians</subdivision>
+ <subdivision type="mt49" draft="contributed">San Gwann</subdivision>
+ <subdivision type="mt50" draft="contributed">San Lawrenz</subdivision>
+ <subdivision type="mt51" draft="contributed">St.Pauls Bay</subdivision>
+ <subdivision type="mt52" draft="contributed">Sannat</subdivision>
+ <subdivision type="mt53" draft="contributed">Saint Lucia</subdivision>
+ <subdivision type="mt54" draft="contributed">Santa Venera</subdivision>
+ <subdivision type="mt55" draft="contributed">Siggiewi</subdivision>
+ <subdivision type="mt56" draft="contributed">Sliema</subdivision>
+ <subdivision type="mt57" draft="contributed">Sweiqi</subdivision>
+ <subdivision type="mt58" draft="contributed">Ta Xbiex</subdivision>
+ <subdivision type="mt59" draft="contributed">Tarxien</subdivision>
+ <subdivision type="mt60" draft="contributed">Valletta</subdivision>
+ <subdivision type="mt61" draft="contributed">Xaghra</subdivision>
+ <subdivision type="mt62" draft="contributed">Xewkija</subdivision>
+ <subdivision type="mt63" draft="contributed">Xgħajra</subdivision>
+ <subdivision type="mt64" draft="contributed">Żabbar</subdivision>
+ <subdivision type="mt66" draft="contributed">Zebbug</subdivision>
+ <subdivision type="mt67" draft="contributed">Iz-Zejtun</subdivision>
+ <subdivision type="mt68" draft="contributed">Zurrieq</subdivision>
+ <subdivision type="muag" draft="contributed">Agalegaøyene</subdivision>
+ <subdivision type="mubl" draft="contributed">Black River</subdivision>
+ <subdivision type="mubr" draft="contributed">Beau Bassin-Rosehill</subdivision>
+ <subdivision type="mucc" draft="contributed">Cargados Carajos</subdivision>
+ <subdivision type="mufl" draft="contributed">Flacq</subdivision>
+ <subdivision type="mugp" draft="contributed">Grand Port</subdivision>
+ <subdivision type="mumo" draft="contributed">Moka</subdivision>
+ <subdivision type="mupa" draft="contributed">Pamplemousses</subdivision>
+ <subdivision type="mupl" draft="contributed">Port Louis</subdivision>
+ <subdivision type="mupu" draft="contributed">Port Louis²</subdivision>
+ <subdivision type="mupw" draft="contributed">Plaines Wilhems</subdivision>
+ <subdivision type="muro" draft="contributed">Rodrigues</subdivision>
+ <subdivision type="murr" draft="contributed">Rivière du Rempart</subdivision>
+ <subdivision type="musa" draft="contributed">Savanne</subdivision>
+ <subdivision type="muvp" draft="contributed">Vacoas-Phoenix</subdivision>
+ <subdivision type="mv00" draft="contributed">Alif Dhaal Atoll</subdivision>
+ <subdivision type="mv02" draft="contributed">Alif Alif Atoll</subdivision>
+ <subdivision type="mv03" draft="contributed">Lhaviyani Atoll</subdivision>
+ <subdivision type="mv04" draft="contributed">Vaavu Atoll</subdivision>
+ <subdivision type="mv05" draft="contributed">Laamu Atoll</subdivision>
+ <subdivision type="mv07" draft="contributed">Haa Alif Atoll</subdivision>
+ <subdivision type="mv12" draft="contributed">Meemu Atoll</subdivision>
+ <subdivision type="mv13" draft="contributed">Raa Atoll</subdivision>
+ <subdivision type="mv14" draft="contributed">Faafu Atoll</subdivision>
+ <subdivision type="mv17" draft="contributed">Dhaalu Atoll</subdivision>
+ <subdivision type="mv20" draft="contributed">Baa Atoll</subdivision>
+ <subdivision type="mv23" draft="contributed">Haa Dhaalu Atoll</subdivision>
+ <subdivision type="mv24" draft="contributed">Shaviyani Atoll</subdivision>
+ <subdivision type="mv25" draft="contributed">Noonu Atoll</subdivision>
+ <subdivision type="mv26" draft="contributed">Kaafu Atoll</subdivision>
+ <subdivision type="mv27" draft="contributed">Gaafu Alif Atoll</subdivision>
+ <subdivision type="mv28" draft="contributed">Gaafu Dhaaky Atoll</subdivision>
+ <subdivision type="mv29" draft="contributed">Gnaviyani Atoll</subdivision>
+ <subdivision type="mvmle" draft="contributed">Malé</subdivision>
+ <subdivision type="mwba" draft="contributed">Balaka</subdivision>
+ <subdivision type="mwbl" draft="contributed">Blantyre</subdivision>
+ <subdivision type="mwc" draft="contributed">Central</subdivision>
+ <subdivision type="mwck" draft="contributed">Chikwawa</subdivision>
+ <subdivision type="mwcr" draft="contributed">Chiradzulu</subdivision>
+ <subdivision type="mwct" draft="contributed">Chitipa</subdivision>
+ <subdivision type="mwde" draft="contributed">Dedza</subdivision>
+ <subdivision type="mwdo" draft="contributed">Dowa</subdivision>
+ <subdivision type="mwkr" draft="contributed">Karonga</subdivision>
+ <subdivision type="mwks" draft="contributed">Kasungu</subdivision>
+ <subdivision type="mwli" draft="contributed">Lilongwe</subdivision>
+ <subdivision type="mwlk" draft="contributed">Likoma</subdivision>
+ <subdivision type="mwmc" draft="contributed">Mchinji</subdivision>
+ <subdivision type="mwmg" draft="contributed">Mangochi</subdivision>
+ <subdivision type="mwmh" draft="contributed">Machinga</subdivision>
+ <subdivision type="mwmu" draft="contributed">Mulanje</subdivision>
+ <subdivision type="mwmw" draft="contributed">Mwanza</subdivision>
+ <subdivision type="mwmz" draft="contributed">Mzimba</subdivision>
+ <subdivision type="mwn" draft="contributed">Northern</subdivision>
+ <subdivision type="mwnb" draft="contributed">Nkhata Bay</subdivision>
+ <subdivision type="mwne" draft="contributed">Neno</subdivision>
+ <subdivision type="mwni" draft="contributed">Ntchisi</subdivision>
+ <subdivision type="mwnk" draft="contributed">Nkhotakota</subdivision>
+ <subdivision type="mwns" draft="contributed">Nsanje</subdivision>
+ <subdivision type="mwnu" draft="contributed">Ntcheu</subdivision>
+ <subdivision type="mwph" draft="contributed">Phalombe</subdivision>
+ <subdivision type="mwru" draft="contributed">Rumphi</subdivision>
+ <subdivision type="mws" draft="contributed">Southern</subdivision>
+ <subdivision type="mwsa" draft="contributed">Salima</subdivision>
+ <subdivision type="mwth" draft="contributed">Thyolo</subdivision>
+ <subdivision type="mwzo" draft="contributed">Zomba</subdivision>
+ <subdivision type="mxagu" draft="contributed">Aguascalientes</subdivision>
+ <subdivision type="mxbcn" draft="contributed">Baja California</subdivision>
+ <subdivision type="mxbcs" draft="contributed">Baja California Sur</subdivision>
+ <subdivision type="mxcam" draft="contributed">Campeche</subdivision>
+ <subdivision type="mxchh" draft="contributed">Chihuahua</subdivision>
+ <subdivision type="mxchp" draft="contributed">Chiapas</subdivision>
+ <subdivision type="mxcmx" draft="contributed">Mexico by</subdivision>
+ <subdivision type="mxcoa" draft="contributed">Coahuila</subdivision>
+ <subdivision type="mxcol" draft="contributed">Colima</subdivision>
+ <subdivision type="mxdur" draft="contributed">Durango</subdivision>
+ <subdivision type="mxgro" draft="contributed">Guerrero</subdivision>
+ <subdivision type="mxgua" draft="contributed">Guanajuato</subdivision>
+ <subdivision type="mxhid" draft="contributed">Hidalgo</subdivision>
+ <subdivision type="mxjal" draft="contributed">Jalisco</subdivision>
+ <subdivision type="mxmex" draft="contributed">México</subdivision>
+ <subdivision type="mxmic" draft="contributed">Michoacán</subdivision>
+ <subdivision type="mxmor" draft="contributed">Morelos</subdivision>
+ <subdivision type="mxnay" draft="contributed">Nayarit</subdivision>
+ <subdivision type="mxnle" draft="contributed">Nuevo León</subdivision>
+ <subdivision type="mxoax" draft="contributed">Oaxaca</subdivision>
+ <subdivision type="mxpue" draft="contributed">Puebla</subdivision>
+ <subdivision type="mxque" draft="contributed">Querétaro</subdivision>
+ <subdivision type="mxroo" draft="contributed">Quintana Roo</subdivision>
+ <subdivision type="mxsin" draft="contributed">Sinaloa</subdivision>
+ <subdivision type="mxslp" draft="contributed">San Luis Potosí</subdivision>
+ <subdivision type="mxson" draft="contributed">Sonora</subdivision>
+ <subdivision type="mxtab" draft="contributed">Tabasco</subdivision>
+ <subdivision type="mxtam" draft="contributed">Tamaulipas</subdivision>
+ <subdivision type="mxtla" draft="contributed">Tlaxcala</subdivision>
+ <subdivision type="mxver" draft="contributed">Veracruz</subdivision>
+ <subdivision type="mxyuc" draft="contributed">Yucatán</subdivision>
+ <subdivision type="mxzac" draft="contributed">Zacatecas</subdivision>
+ <subdivision type="my01" draft="contributed">Johor</subdivision>
+ <subdivision type="my02" draft="contributed">Kedah</subdivision>
+ <subdivision type="my03" draft="contributed">Kelantan</subdivision>
+ <subdivision type="my04" draft="contributed">Malakka</subdivision>
+ <subdivision type="my05" draft="contributed">Negeri Sembilan</subdivision>
+ <subdivision type="my06" draft="contributed">Pahang</subdivision>
+ <subdivision type="my07" draft="contributed">Penang</subdivision>
+ <subdivision type="my08" draft="contributed">Perak</subdivision>
+ <subdivision type="my09" draft="contributed">Perlis</subdivision>
+ <subdivision type="my10" draft="contributed">Selangor</subdivision>
+ <subdivision type="my11" draft="contributed">Terengganu</subdivision>
+ <subdivision type="my12" draft="contributed">Sabah</subdivision>
+ <subdivision type="my13" draft="contributed">Sarawak</subdivision>
+ <subdivision type="my14" draft="contributed">Kuala Lumpur</subdivision>
+ <subdivision type="my15" draft="contributed">Labuan</subdivision>
+ <subdivision type="my16" draft="contributed">Putrajaya</subdivision>
+ <subdivision type="mza" draft="contributed">Niassa</subdivision>
+ <subdivision type="mzb" draft="contributed">Manica</subdivision>
+ <subdivision type="mzg" draft="contributed">Gaza</subdivision>
+ <subdivision type="mzi" draft="contributed">Inhambane</subdivision>
+ <subdivision type="mzl" draft="contributed">Maputo</subdivision>
+ <subdivision type="mzmpm" draft="contributed">Maputo²</subdivision>
+ <subdivision type="mzn" draft="contributed">Nampula</subdivision>
+ <subdivision type="mzp" draft="contributed">Cabo Delgado</subdivision>
+ <subdivision type="mzq" draft="contributed">Zambezia</subdivision>
+ <subdivision type="mzs" draft="contributed">Sofala</subdivision>
+ <subdivision type="mzt" draft="contributed">Tete</subdivision>
+ <subdivision type="naca" draft="contributed">Caprivi</subdivision>
+ <subdivision type="naer" draft="contributed">Erongo</subdivision>
+ <subdivision type="naha" draft="contributed">Hardap</subdivision>
+ <subdivision type="naka" draft="contributed">Karas</subdivision>
+ <subdivision type="nakh" draft="contributed">Khomas</subdivision>
+ <subdivision type="naku" draft="contributed">Kunene</subdivision>
+ <subdivision type="naod" draft="contributed">Otjozondjupa</subdivision>
+ <subdivision type="naoh" draft="contributed">Omaheke</subdivision>
+ <subdivision type="naon" draft="contributed">Oshana</subdivision>
+ <subdivision type="naos" draft="contributed">Omusati</subdivision>
+ <subdivision type="naot" draft="contributed">Oshikoto</subdivision>
+ <subdivision type="naow" draft="contributed">Ohangwena</subdivision>
+ <subdivision type="ne1" draft="contributed">Agadez (region)</subdivision>
+ <subdivision type="ne2" draft="contributed">Diffa</subdivision>
+ <subdivision type="ne3" draft="contributed">Dosso</subdivision>
+ <subdivision type="ne4" draft="contributed">Maradi</subdivision>
+ <subdivision type="ne5" draft="contributed">Tahoua</subdivision>
+ <subdivision type="ne6" draft="contributed">Tillabéri</subdivision>
+ <subdivision type="ne7" draft="contributed">Zinder</subdivision>
+ <subdivision type="ne8" draft="contributed">Niamey</subdivision>
+ <subdivision type="ngab" draft="contributed">Abia</subdivision>
+ <subdivision type="ngad" draft="contributed">Adamawa</subdivision>
+ <subdivision type="ngak" draft="contributed">Akwa Ibom</subdivision>
+ <subdivision type="ngan" draft="contributed">Anambra</subdivision>
+ <subdivision type="ngba" draft="contributed">Bauchi</subdivision>
+ <subdivision type="ngbe" draft="contributed">Benue</subdivision>
+ <subdivision type="ngbo" draft="contributed">Borno</subdivision>
+ <subdivision type="ngby" draft="contributed">Bayelsa</subdivision>
+ <subdivision type="ngcr" draft="contributed">Cross River</subdivision>
+ <subdivision type="ngde" draft="contributed">Delta</subdivision>
+ <subdivision type="ngeb" draft="contributed">Ebonyi</subdivision>
+ <subdivision type="nged" draft="contributed">Edo</subdivision>
+ <subdivision type="ngek" draft="contributed">Ekiti</subdivision>
+ <subdivision type="ngen" draft="contributed">Enugu</subdivision>
+ <subdivision type="ngfc" draft="contributed">Federal Capital Territory</subdivision>
+ <subdivision type="nggo" draft="contributed">Gombe</subdivision>
+ <subdivision type="ngim" draft="contributed">Imo</subdivision>
+ <subdivision type="ngji" draft="contributed">Jigawa</subdivision>
+ <subdivision type="ngkd" draft="contributed">Kaduna (delstat)</subdivision>
+ <subdivision type="ngke" draft="contributed">Kebbi</subdivision>
+ <subdivision type="ngkn" draft="contributed">Kano</subdivision>
+ <subdivision type="ngko" draft="contributed">Kogi</subdivision>
+ <subdivision type="ngkt" draft="contributed">Katsina</subdivision>
+ <subdivision type="ngkw" draft="contributed">Kwara</subdivision>
+ <subdivision type="ngla" draft="contributed">Lagos</subdivision>
+ <subdivision type="ngna" draft="contributed">Nasarawa</subdivision>
+ <subdivision type="ngni" draft="contributed">Niger</subdivision>
+ <subdivision type="ngog" draft="contributed">Ogun</subdivision>
+ <subdivision type="ngon" draft="contributed">Ondo</subdivision>
+ <subdivision type="ngos" draft="contributed">Osun</subdivision>
+ <subdivision type="ngoy" draft="contributed">Oyo</subdivision>
+ <subdivision type="ngpl" draft="contributed">Plateau</subdivision>
+ <subdivision type="ngri" draft="contributed">Rivers</subdivision>
+ <subdivision type="ngso" draft="contributed">Sokoto</subdivision>
+ <subdivision type="ngta" draft="contributed">Taraba</subdivision>
+ <subdivision type="ngyo" draft="contributed">Yobe</subdivision>
+ <subdivision type="ngza" draft="contributed">Zamfara</subdivision>
+ <subdivision type="nian" draft="contributed">Región Autónoma del Atlántico Norte</subdivision>
+ <subdivision type="nias" draft="contributed">Región Autónoma del Atlántico Sur</subdivision>
+ <subdivision type="nibo" draft="contributed">Boaco</subdivision>
+ <subdivision type="nica" draft="contributed">Carazo</subdivision>
+ <subdivision type="nici" draft="contributed">Chinandega</subdivision>
+ <subdivision type="nico" draft="contributed">Chontales</subdivision>
+ <subdivision type="nies" draft="contributed">Estelí</subdivision>
+ <subdivision type="nigr" draft="contributed">Granada</subdivision>
+ <subdivision type="niji" draft="contributed">Jinotega</subdivision>
+ <subdivision type="nile" draft="contributed">León</subdivision>
+ <subdivision type="nimd" draft="contributed">Madriz</subdivision>
+ <subdivision type="nimn" draft="contributed">Managua</subdivision>
+ <subdivision type="nims" draft="contributed">Masaya</subdivision>
+ <subdivision type="nimt" draft="contributed">Matagalpa</subdivision>
+ <subdivision type="nins" draft="contributed">Nueva Segovia</subdivision>
+ <subdivision type="niri" draft="contributed">Rivas</subdivision>
+ <subdivision type="nisj" draft="contributed">Río San Juan</subdivision>
+ <subdivision type="nlbq1" draft="contributed">Bonaire</subdivision>
+ <subdivision type="nlbq2" draft="contributed">Saba</subdivision>
+ <subdivision type="nlbq3" draft="contributed">Sint Eustatius</subdivision>
+ <subdivision type="nldr" draft="contributed">Drenthe</subdivision>
+ <subdivision type="nlfl" draft="contributed">Flevoland</subdivision>
+ <subdivision type="nlfr" draft="contributed">Friesland</subdivision>
+ <subdivision type="nlge" draft="contributed">Gelderland</subdivision>
+ <subdivision type="nlgr" draft="contributed">Groningen</subdivision>
+ <subdivision type="nlli" draft="contributed">Limburg</subdivision>
+ <subdivision type="nlnb" draft="contributed">Noord-Brabant</subdivision>
+ <subdivision type="nlnh" draft="contributed">Noord-Holland</subdivision>
+ <subdivision type="nlov" draft="contributed">Overijssel</subdivision>
+ <subdivision type="nlut" draft="contributed">Utrecht</subdivision>
+ <subdivision type="nlze" draft="contributed">Zeeland</subdivision>
+ <subdivision type="nlzh" draft="contributed">Zuid-Holland</subdivision>
+ <subdivision type="no01" draft="contributed">Østfold</subdivision>
+ <subdivision type="no02" draft="contributed">Akershus</subdivision>
+ <subdivision type="no03" draft="contributed">Oslo</subdivision>
+ <subdivision type="no04" draft="contributed">Hedmark</subdivision>
+ <subdivision type="no05" draft="contributed">Oppland</subdivision>
+ <subdivision type="no06" draft="contributed">Buskerud</subdivision>
+ <subdivision type="no07" draft="contributed">Vestfold</subdivision>
+ <subdivision type="no08" draft="contributed">Telemark</subdivision>
+ <subdivision type="no09" draft="contributed">Aust-Agder</subdivision>
+ <subdivision type="no10" draft="contributed">Vest-Agder</subdivision>
+ <subdivision type="no11" draft="contributed">Rogaland</subdivision>
+ <subdivision type="no12" draft="contributed">Hordaland</subdivision>
+ <subdivision type="no14" draft="contributed">Sogn og Fjordane</subdivision>
+ <subdivision type="no15" draft="contributed">Møre og Romsdal</subdivision>
+ <subdivision type="no16" draft="contributed">Sør-Trøndelag</subdivision>
+ <subdivision type="no17" draft="contributed">Nord-Trøndelag</subdivision>
+ <subdivision type="no18" draft="contributed">Nordland</subdivision>
+ <subdivision type="no19" draft="contributed">Troms</subdivision>
+ <subdivision type="no20" draft="contributed">Finnmark</subdivision>
+ <subdivision type="no21" draft="contributed">Svalbard</subdivision>
+ <subdivision type="no22" draft="contributed">Jan Mayen</subdivision>
+ <subdivision type="npba" draft="contributed">Bagmati Sone</subdivision>
+ <subdivision type="npbh" draft="contributed">Bheri sone</subdivision>
+ <subdivision type="npdh" draft="contributed">Dhaulagiri sone</subdivision>
+ <subdivision type="npga" draft="contributed">Gandaki sone</subdivision>
+ <subdivision type="npja" draft="contributed">Janakpur sone</subdivision>
+ <subdivision type="npka" draft="contributed">Karnali sone</subdivision>
+ <subdivision type="npma" draft="contributed">Mahakali Sone</subdivision>
+ <subdivision type="npme" draft="contributed">Mechi</subdivision>
+ <subdivision type="npna" draft="contributed">Narayani Sone</subdivision>
+ <subdivision type="npra" draft="contributed">Rapti sone</subdivision>
+ <subdivision type="npsa" draft="contributed">Sagarmatha Sone</subdivision>
+ <subdivision type="npse" draft="contributed">Seti</subdivision>
+ <subdivision type="nr01" draft="contributed">Aiwo</subdivision>
+ <subdivision type="nr02" draft="contributed">Anabar</subdivision>
+ <subdivision type="nr03" draft="contributed">Anetan</subdivision>
+ <subdivision type="nr04" draft="contributed">Anibare</subdivision>
+ <subdivision type="nr05" draft="contributed">Baiti</subdivision>
+ <subdivision type="nr06" draft="contributed">Boe</subdivision>
+ <subdivision type="nr07" draft="contributed">Buada</subdivision>
+ <subdivision type="nr08" draft="contributed">Denigomodu</subdivision>
+ <subdivision type="nr09" draft="contributed">Ewa</subdivision>
+ <subdivision type="nr10" draft="contributed">Ijuw</subdivision>
+ <subdivision type="nr11" draft="contributed">Meneng</subdivision>
+ <subdivision type="nr12" draft="contributed">Nibok</subdivision>
+ <subdivision type="nr13" draft="contributed">Uaboe</subdivision>
+ <subdivision type="nr14" draft="contributed">Yaren</subdivision>
+ <subdivision type="nzauk" draft="contributed">Auckland</subdivision>
+ <subdivision type="nzbop" draft="contributed">Bay of Plenty</subdivision>
+ <subdivision type="nzcan" draft="contributed">Canterbury</subdivision>
+ <subdivision type="nzcit" draft="contributed">Chathamøyene</subdivision>
+ <subdivision type="nzgis" draft="contributed">Gisborne</subdivision>
+ <subdivision type="nzhkb" draft="contributed">Hawke’s Bay</subdivision>
+ <subdivision type="nzmbh" draft="contributed">Marlborough</subdivision>
+ <subdivision type="nzmwt" draft="contributed">Manawatu-Wanganui</subdivision>
+ <subdivision type="nzntl" draft="contributed">Northland</subdivision>
+ <subdivision type="nzota" draft="contributed">Otago</subdivision>
+ <subdivision type="nzstl" draft="contributed">Southland</subdivision>
+ <subdivision type="nztas" draft="contributed">Tasman</subdivision>
+ <subdivision type="nztki" draft="contributed">Taranaki</subdivision>
+ <subdivision type="nzwgn" draft="contributed">Wellington</subdivision>
+ <subdivision type="nzwko" draft="contributed">Waikato</subdivision>
+ <subdivision type="nzwtc" draft="contributed">West Coast</subdivision>
+ <subdivision type="ombj" draft="contributed">Sør-Al Batinah</subdivision>
+ <subdivision type="ombs" draft="contributed">Nord-Al Batinah</subdivision>
+ <subdivision type="ombu" draft="contributed">Al Buraimi</subdivision>
+ <subdivision type="omda" draft="contributed">Ad Dakhiliyah</subdivision>
+ <subdivision type="omma" draft="contributed">Muskat</subdivision>
+ <subdivision type="ommu" draft="contributed">Musandam</subdivision>
+ <subdivision type="omsj" draft="contributed">Sør-Ash Sharqiyah</subdivision>
+ <subdivision type="omss" draft="contributed">Nord-Ash Sharqiyah</subdivision>
+ <subdivision type="omwu" draft="contributed">Al Wusta</subdivision>
+ <subdivision type="omza" draft="contributed">Ad Dhahirah</subdivision>
+ <subdivision type="omzu" draft="contributed">Dhofar</subdivision>
+ <subdivision type="pa1" draft="contributed">Bocas del Toro</subdivision>
+ <subdivision type="pa2" draft="contributed">Cocle provins</subdivision>
+ <subdivision type="pa3" draft="contributed">Colon provins</subdivision>
+ <subdivision type="pa4" draft="contributed">Chiriqui Prrvins</subdivision>
+ <subdivision type="pa5" draft="contributed">Darien provins</subdivision>
+ <subdivision type="pa6" draft="contributed">Herrera Kommune</subdivision>
+ <subdivision type="pa7" draft="contributed">Los Santos Provins</subdivision>
+ <subdivision type="pa8" draft="contributed">Panamá</subdivision>
+ <subdivision type="pa9" draft="contributed">Veraguas provins</subdivision>
+ <subdivision type="paem" draft="contributed">Embera Wounaan Comarca</subdivision>
+ <subdivision type="paky" draft="contributed">Kuna Yala</subdivision>
+ <subdivision type="panb" draft="contributed">Ngobe-Bugle Comarca</subdivision>
+ <subdivision type="peama" draft="contributed">Amazonas</subdivision>
+ <subdivision type="peanc" draft="contributed">Ancash</subdivision>
+ <subdivision type="peapu" draft="contributed">Apurímac</subdivision>
+ <subdivision type="peare" draft="contributed">Arequipa</subdivision>
+ <subdivision type="peaya" draft="contributed">Ayacucho</subdivision>
+ <subdivision type="pecaj" draft="contributed">Cajamarca</subdivision>
+ <subdivision type="pecal" draft="contributed">Callao</subdivision>
+ <subdivision type="pecus" draft="contributed">Cusco</subdivision>
+ <subdivision type="pehuc" draft="contributed">Huánuco</subdivision>
+ <subdivision type="pehuv" draft="contributed">Huancavelica</subdivision>
+ <subdivision type="peica" draft="contributed">Ica</subdivision>
+ <subdivision type="pejun" draft="contributed">Junín</subdivision>
+ <subdivision type="pelal" draft="contributed">La Libertad</subdivision>
+ <subdivision type="pelam" draft="contributed">Lambayeque</subdivision>
+ <subdivision type="pelim" draft="contributed">Lima</subdivision>
+ <subdivision type="pelma" draft="contributed">Lima provins</subdivision>
+ <subdivision type="pelor" draft="contributed">Loreto</subdivision>
+ <subdivision type="pemdd" draft="contributed">Madre de Dios</subdivision>
+ <subdivision type="pemoq" draft="contributed">Moquegua</subdivision>
+ <subdivision type="pepas" draft="contributed">Pasco</subdivision>
+ <subdivision type="pepiu" draft="contributed">Piura</subdivision>
+ <subdivision type="pepun" draft="contributed">Puno</subdivision>
+ <subdivision type="pesam" draft="contributed">San Martín</subdivision>
+ <subdivision type="petac" draft="contributed">Tacna</subdivision>
+ <subdivision type="petum" draft="contributed">Tumbes</subdivision>
+ <subdivision type="peuca" draft="contributed">Ucayali</subdivision>
+ <subdivision type="pgcpk" draft="contributed">Simbu provins</subdivision>
+ <subdivision type="pgcpm" draft="contributed">Central</subdivision>
+ <subdivision type="pgebr" draft="contributed">Øst Ny Britland</subdivision>
+ <subdivision type="pgehg" draft="contributed">Øst høylands provins</subdivision>
+ <subdivision type="pgepw" draft="contributed">Enga provins</subdivision>
+ <subdivision type="pgesw" draft="contributed">East Sepik</subdivision>
+ <subdivision type="pggpk" draft="contributed">Gulf</subdivision>
+ <subdivision type="pgmba" draft="contributed">Milne Bay</subdivision>
+ <subdivision type="pgmpl" draft="contributed">Morobe provins</subdivision>
+ <subdivision type="pgmpm" draft="contributed">Madang provins</subdivision>
+ <subdivision type="pgmrl" draft="contributed">Manus provins</subdivision>
+ <subdivision type="pgncd" draft="contributed">Port Moresby</subdivision>
+ <subdivision type="pgnik" draft="contributed">Ny Irland provins</subdivision>
+ <subdivision type="pgnpp" draft="contributed">Oro</subdivision>
+ <subdivision type="pgnsb" draft="contributed">Bougainville</subdivision>
+ <subdivision type="pgsan" draft="contributed">Sandaun provins</subdivision>
+ <subdivision type="pgshm" draft="contributed">Sør høylands provins</subdivision>
+ <subdivision type="pgwbk" draft="contributed">Vest Nye Britiske provins</subdivision>
+ <subdivision type="pgwhm" draft="contributed">Vest Høyland provins</subdivision>
+ <subdivision type="ph00" draft="contributed">Metro Manila</subdivision>
+ <subdivision type="ph01" draft="contributed">Ilocos Region</subdivision>
+ <subdivision type="ph02" draft="contributed">Cagayan Valley</subdivision>
+ <subdivision type="ph03" draft="contributed">Central Luzon</subdivision>
+ <subdivision type="ph05" draft="contributed">Bicol Region</subdivision>
+ <subdivision type="ph06" draft="contributed">Western Visayas</subdivision>
+ <subdivision type="ph09" draft="contributed">Zamboangahalvøya</subdivision>
+ <subdivision type="ph10" draft="contributed">Northern Mindanao</subdivision>
+ <subdivision type="ph13" draft="contributed">Caraga</subdivision>
+ <subdivision type="ph14" draft="contributed">Autonomous Region in Muslim Mindanao</subdivision>
+ <subdivision type="ph15" draft="contributed">Cordillera Administrative Region</subdivision>
+ <subdivision type="ph40" draft="contributed">Calabarzon</subdivision>
+ <subdivision type="ph41" draft="contributed">MIMAROPA</subdivision>
+ <subdivision type="phabr" draft="contributed">Abra</subdivision>
+ <subdivision type="phagn" draft="contributed">Agusan del Norte</subdivision>
+ <subdivision type="phags" draft="contributed">Agusan del Sur</subdivision>
+ <subdivision type="phakl" draft="contributed">Aklan</subdivision>
+ <subdivision type="phalb" draft="contributed">Albay</subdivision>
+ <subdivision type="phant" draft="contributed">Antique</subdivision>
+ <subdivision type="phapa" draft="contributed">Apayao</subdivision>
+ <subdivision type="phaur" draft="contributed">Aurora</subdivision>
+ <subdivision type="phban" draft="contributed">Bataan</subdivision>
+ <subdivision type="phbas" draft="contributed">Basilan</subdivision>
+ <subdivision type="phben" draft="contributed">Benguet</subdivision>
+ <subdivision type="phbil" draft="contributed">Biliran</subdivision>
+ <subdivision type="phboh" draft="contributed">Bohol</subdivision>
+ <subdivision type="phbtg" draft="contributed">Batangas</subdivision>
+ <subdivision type="phbtn" draft="contributed">Batanes</subdivision>
+ <subdivision type="phbuk" draft="contributed">Bukidnon</subdivision>
+ <subdivision type="phbul" draft="contributed">Bulacan</subdivision>
+ <subdivision type="phcag" draft="contributed">Cagayan</subdivision>
+ <subdivision type="phcam" draft="contributed">Camiguin</subdivision>
+ <subdivision type="phcan" draft="contributed">Camarines Norte</subdivision>
+ <subdivision type="phcap" draft="contributed">Capiz</subdivision>
+ <subdivision type="phcas" draft="contributed">Camarines Sur</subdivision>
+ <subdivision type="phcat" draft="contributed">Catanduanes</subdivision>
+ <subdivision type="phcav" draft="contributed">Cavite</subdivision>
+ <subdivision type="phceb" draft="contributed">Cebu</subdivision>
+ <subdivision type="phcom" draft="contributed">Compostela Valley</subdivision>
+ <subdivision type="phdao" draft="contributed">Davao Oriental</subdivision>
+ <subdivision type="phdas" draft="contributed">Davao del Sur</subdivision>
+ <subdivision type="phdav" draft="contributed">Davao del Norte</subdivision>
+ <subdivision type="phdin" draft="contributed">Dinagat Islands</subdivision>
+ <subdivision type="pheas" draft="contributed">Eastern Samar</subdivision>
+ <subdivision type="phgui" draft="contributed">Guimaras</subdivision>
+ <subdivision type="phifu" draft="contributed">Ifugao</subdivision>
+ <subdivision type="phili" draft="contributed">Iloilo</subdivision>
+ <subdivision type="philn" draft="contributed">Ilocos Norte</subdivision>
+ <subdivision type="phils" draft="contributed">Ilocos Sur</subdivision>
+ <subdivision type="phisa" draft="contributed">Isabela</subdivision>
+ <subdivision type="phkal" draft="contributed">Kalinga</subdivision>
+ <subdivision type="phlag" draft="contributed">Laguna</subdivision>
+ <subdivision type="phlan" draft="contributed">Lanao del Norte</subdivision>
+ <subdivision type="phlas" draft="contributed">Lanao del Sur</subdivision>
+ <subdivision type="phley" draft="contributed">Leyte</subdivision>
+ <subdivision type="phlun" draft="contributed">La Union</subdivision>
+ <subdivision type="phmad" draft="contributed">Marinduque</subdivision>
+ <subdivision type="phmag" draft="contributed">Maguindanao</subdivision>
+ <subdivision type="phmas" draft="contributed">Masbate</subdivision>
+ <subdivision type="phmdc" draft="contributed">Occidental Mindoro</subdivision>
+ <subdivision type="phmdr" draft="contributed">Oriental Mindoro</subdivision>
+ <subdivision type="phmou" draft="contributed">Bergsprovinsen</subdivision>
+ <subdivision type="phmsc" draft="contributed">Misamis Occidental</subdivision>
+ <subdivision type="phmsr" draft="contributed">Misamis Oriental</subdivision>
+ <subdivision type="phnco" draft="contributed">Cotabato</subdivision>
+ <subdivision type="phnec" draft="contributed">Negros Occidental</subdivision>
+ <subdivision type="phner" draft="contributed">Negros Oriental</subdivision>
+ <subdivision type="phnsa" draft="contributed">Northern Samar</subdivision>
+ <subdivision type="phnue" draft="contributed">Nueva Ecija</subdivision>
+ <subdivision type="phnuv" draft="contributed">Nueva Vizcaya</subdivision>
+ <subdivision type="phpam" draft="contributed">Pampanga</subdivision>
+ <subdivision type="phpan" draft="contributed">Pangasinan</subdivision>
+ <subdivision type="phplw" draft="contributed">Palawan</subdivision>
+ <subdivision type="phque" draft="contributed">Quezon</subdivision>
+ <subdivision type="phqui" draft="contributed">Quirino</subdivision>
+ <subdivision type="phriz" draft="contributed">Rizal</subdivision>
+ <subdivision type="phrom" draft="contributed">Romblon</subdivision>
+ <subdivision type="phsar" draft="contributed">Sarangani</subdivision>
+ <subdivision type="phsco" draft="contributed">South Cotabato</subdivision>
+ <subdivision type="phsig" draft="contributed">Siquijor</subdivision>
+ <subdivision type="phsle" draft="contributed">Southern Leyte</subdivision>
+ <subdivision type="phslu" draft="contributed">Sulu</subdivision>
+ <subdivision type="phsor" draft="contributed">Sorsogon</subdivision>
+ <subdivision type="phsuk" draft="contributed">Sultan Kudarat</subdivision>
+ <subdivision type="phsun" draft="contributed">Surigao del Norte</subdivision>
+ <subdivision type="phsur" draft="contributed">Surigao del Sur</subdivision>
+ <subdivision type="phtar" draft="contributed">Tarlac</subdivision>
+ <subdivision type="phtaw" draft="contributed">Tawi-Tawi</subdivision>
+ <subdivision type="phwsa" draft="contributed">Samar</subdivision>
+ <subdivision type="phzan" draft="contributed">Zamboanga del Norte</subdivision>
+ <subdivision type="phzas" draft="contributed">Zamboanga del Sur</subdivision>
+ <subdivision type="phzmb" draft="contributed">Zambales</subdivision>
+ <subdivision type="phzsi" draft="contributed">Zamboanga Sibugay</subdivision>
+ <subdivision type="pkba" draft="contributed">Balutsjistan</subdivision>
+ <subdivision type="pkgb" draft="contributed">Gilgit-Baltistan</subdivision>
+ <subdivision type="pkis" draft="contributed">Islamabad hovedstadsterritorium</subdivision>
+ <subdivision type="pkjk" draft="contributed">Azad Kashmir</subdivision>
+ <subdivision type="pkkp" draft="contributed">Khyber Pakhtunkhwa</subdivision>
+ <subdivision type="pkpb" draft="contributed">Punjab</subdivision>
+ <subdivision type="pksd" draft="contributed">Sind</subdivision>
+ <subdivision type="pkta" draft="contributed">Pakistans føderalt administrerte stammeområder</subdivision>
+ <subdivision type="pl02" draft="contributed">Nederschlesiske voivodskap</subdivision>
+ <subdivision type="pl04" draft="contributed">Kujaviskpommerske voivodskap</subdivision>
+ <subdivision type="pl06" draft="contributed">Lublin voivodskap</subdivision>
+ <subdivision type="pl08" draft="contributed">Lubusz voivodskap</subdivision>
+ <subdivision type="pl10" draft="contributed">Łódź voivodskap</subdivision>
+ <subdivision type="pl12" draft="contributed">Lillepolske voivodskap</subdivision>
+ <subdivision type="pl14" draft="contributed">Masoviske voivodskap</subdivision>
+ <subdivision type="pl16" draft="contributed">Opole voivodskap</subdivision>
+ <subdivision type="pl18" draft="contributed">Subkarpatiske voivodskap</subdivision>
+ <subdivision type="pl20" draft="contributed">Podlasie voivodskap</subdivision>
+ <subdivision type="pl22" draft="contributed">Pommerske voivodskap</subdivision>
+ <subdivision type="pl24" draft="contributed">Schlesiske voivodskap</subdivision>
+ <subdivision type="pl26" draft="contributed">Helligkorsvoivodskapet</subdivision>
+ <subdivision type="pl28" draft="contributed">Ermlandskmasuriske voivodskap</subdivision>
+ <subdivision type="pl30" draft="contributed">Storpolske voivodskap</subdivision>
+ <subdivision type="pl32" draft="contributed">Vestpommerske voivodskap</subdivision>
+ <subdivision type="psbth" draft="contributed">Bethlehem Governorate</subdivision>
+ <subdivision type="pshbn" draft="contributed">Herbron Governorate</subdivision>
+ <subdivision type="psnbs" draft="contributed">Nablus Governorate</subdivision>
+ <subdivision type="psngz" draft="contributed">Nord Gaza Governorate</subdivision>
+ <subdivision type="psqqa" draft="contributed">Qalqilya</subdivision>
+ <subdivision type="psrbh" draft="contributed">Ramallah og al-Bireh</subdivision>
+ <subdivision type="psslt" draft="contributed">Salfit Governorate</subdivision>
+ <subdivision type="pstkm" draft="contributed">Tulkarm</subdivision>
+ <subdivision type="pt01" draft="contributed">Aveiro</subdivision>
+ <subdivision type="pt02" draft="contributed">Beja</subdivision>
+ <subdivision type="pt03" draft="contributed">Braga</subdivision>
+ <subdivision type="pt04" draft="contributed">Bragança</subdivision>
+ <subdivision type="pt05" draft="contributed">Castelo Branco</subdivision>
+ <subdivision type="pt06" draft="contributed">Coimbra</subdivision>
+ <subdivision type="pt07" draft="contributed">Évora</subdivision>
+ <subdivision type="pt08" draft="contributed">Faro</subdivision>
+ <subdivision type="pt09" draft="contributed">Guarda</subdivision>
+ <subdivision type="pt10" draft="contributed">Leiria</subdivision>
+ <subdivision type="pt11" draft="contributed">Lisboa</subdivision>
+ <subdivision type="pt12" draft="contributed">Portalegre</subdivision>
+ <subdivision type="pt13" draft="contributed">Porto</subdivision>
+ <subdivision type="pt14" draft="contributed">Santarém</subdivision>
+ <subdivision type="pt15" draft="contributed">Setúbal</subdivision>
+ <subdivision type="pt16" draft="contributed">Viana do Castelo</subdivision>
+ <subdivision type="pt17" draft="contributed">Vila Real</subdivision>
+ <subdivision type="pt18" draft="contributed">Viseu</subdivision>
+ <subdivision type="pt20" draft="contributed">Asorene</subdivision>
+ <subdivision type="pt30" draft="contributed">Madeira</subdivision>
+ <subdivision type="pw002" draft="contributed">Aimeliik</subdivision>
+ <subdivision type="pw004" draft="contributed">Airai</subdivision>
+ <subdivision type="pw010" draft="contributed">Angaur</subdivision>
+ <subdivision type="pw050" draft="contributed">Hatohobei</subdivision>
+ <subdivision type="pw100" draft="contributed">Kayangel</subdivision>
+ <subdivision type="pw150" draft="contributed">Koror</subdivision>
+ <subdivision type="pw212" draft="contributed">Melekeok</subdivision>
+ <subdivision type="pw214" draft="contributed">Ngaraard</subdivision>
+ <subdivision type="pw218" draft="contributed">Ngarchelong</subdivision>
+ <subdivision type="pw222" draft="contributed">Ngardmau</subdivision>
+ <subdivision type="pw224" draft="contributed">Ngatpang</subdivision>
+ <subdivision type="pw226" draft="contributed">Ngchesar</subdivision>
+ <subdivision type="pw227" draft="contributed">Ngeremlengui</subdivision>
+ <subdivision type="pw228" draft="contributed">Ngiwal</subdivision>
+ <subdivision type="pw350" draft="contributed">Peleliu</subdivision>
+ <subdivision type="pw370" draft="contributed">Sonsoral</subdivision>
+ <subdivision type="py2" draft="contributed">San Pedro</subdivision>
+ <subdivision type="py3" draft="contributed">Cordillera</subdivision>
+ <subdivision type="py4" draft="contributed">Guaira</subdivision>
+ <subdivision type="py5" draft="contributed">Caaguazu</subdivision>
+ <subdivision type="py6" draft="contributed">Caazapa</subdivision>
+ <subdivision type="py7" draft="contributed">Itapua</subdivision>
+ <subdivision type="py8" draft="contributed">Misiones</subdivision>
+ <subdivision type="py10" draft="contributed">Alto Parana</subdivision>
+ <subdivision type="py11" draft="contributed">Sentral</subdivision>
+ <subdivision type="py12" draft="contributed">Neembucu</subdivision>
+ <subdivision type="py13" draft="contributed">Amambay</subdivision>
+ <subdivision type="py14" draft="contributed">Canindeyu</subdivision>
+ <subdivision type="py15" draft="contributed">Presidente Hayes</subdivision>
+ <subdivision type="py16" draft="contributed">Alto Paraguai</subdivision>
+ <subdivision type="py19" draft="contributed">XVI Boqueron</subdivision>
+ <subdivision type="pyasu" draft="contributed">Asunción</subdivision>
+ <subdivision type="qada" draft="contributed">Doha</subdivision>
+ <subdivision type="qakh" draft="contributed">Al Khor</subdivision>
+ <subdivision type="qams" draft="contributed">Ash Shamal</subdivision>
+ <subdivision type="qara" draft="contributed">Al Rayyan kommune</subdivision>
+ <subdivision type="qaus" draft="contributed">Umm Salal Kommune</subdivision>
+ <subdivision type="qawa" draft="contributed">Al Wakrah</subdivision>
+ <subdivision type="qaza" draft="contributed">Al Daayen</subdivision>
+ <subdivision type="roab" draft="contributed">Alba</subdivision>
+ <subdivision type="roag" draft="contributed">Argeș</subdivision>
+ <subdivision type="roar" draft="contributed">Arad</subdivision>
+ <subdivision type="rob" draft="contributed">București</subdivision>
+ <subdivision type="robc" draft="contributed">Bacău</subdivision>
+ <subdivision type="robh" draft="contributed">Bihor</subdivision>
+ <subdivision type="robn" draft="contributed">Bistrița-Năsăud</subdivision>
+ <subdivision type="robr" draft="contributed">Brăila</subdivision>
+ <subdivision type="robt" draft="contributed">Botoșani</subdivision>
+ <subdivision type="robv" draft="contributed">Brașov</subdivision>
+ <subdivision type="robz" draft="contributed">Buzău</subdivision>
+ <subdivision type="rocj" draft="contributed">Cluj</subdivision>
+ <subdivision type="rocl" draft="contributed">Călărași</subdivision>
+ <subdivision type="rocs" draft="contributed">Caraș-Severin</subdivision>
+ <subdivision type="roct" draft="contributed">Constanța</subdivision>
+ <subdivision type="rocv" draft="contributed">Covasna</subdivision>
+ <subdivision type="rodb" draft="contributed">Dâmbovița</subdivision>
+ <subdivision type="rodj" draft="contributed">Dolj</subdivision>
+ <subdivision type="rogj" draft="contributed">Gorj</subdivision>
+ <subdivision type="rogl" draft="contributed">Galați</subdivision>
+ <subdivision type="rogr" draft="contributed">Giurgiu</subdivision>
+ <subdivision type="rohd" draft="contributed">Hunedoara</subdivision>
+ <subdivision type="rohr" draft="contributed">Harghita</subdivision>
+ <subdivision type="roif" draft="contributed">Ilfov</subdivision>
+ <subdivision type="roil" draft="contributed">Ialomiţa</subdivision>
+ <subdivision type="rois" draft="contributed">Iași</subdivision>
+ <subdivision type="romh" draft="contributed">Mehedinți</subdivision>
+ <subdivision type="romm" draft="contributed">Maramureș</subdivision>
+ <subdivision type="roms" draft="contributed">Mureș</subdivision>
+ <subdivision type="ront" draft="contributed">Neamț</subdivision>
+ <subdivision type="root" draft="contributed">Olt</subdivision>
+ <subdivision type="roph" draft="contributed">Prahova</subdivision>
+ <subdivision type="rosb" draft="contributed">Sibiu</subdivision>
+ <subdivision type="rosj" draft="contributed">Sălaj</subdivision>
+ <subdivision type="rosm" draft="contributed">Satu Mare</subdivision>
+ <subdivision type="rosv" draft="contributed">Suceava</subdivision>
+ <subdivision type="rotl" draft="contributed">Tulcea</subdivision>
+ <subdivision type="rotm" draft="contributed">Timiș</subdivision>
+ <subdivision type="rotr" draft="contributed">Teleorman</subdivision>
+ <subdivision type="rovl" draft="contributed">Vâlcea</subdivision>
+ <subdivision type="rovn" draft="contributed">Vrancea</subdivision>
+ <subdivision type="rovs" draft="contributed">Vaslui</subdivision>
+ <subdivision type="rs00" draft="contributed">Beograd</subdivision>
+ <subdivision type="rs01" draft="contributed">Nord Backa distrikt</subdivision>
+ <subdivision type="rs02" draft="contributed">Sentral Banat distrikt</subdivision>
+ <subdivision type="rs03" draft="contributed">Nord Banat distrikt</subdivision>
+ <subdivision type="rs04" draft="contributed">Sør Banat distrikt</subdivision>
+ <subdivision type="rs05" draft="contributed">Vest Backa Distrikt</subdivision>
+ <subdivision type="rs06" draft="contributed">Sør Backa</subdivision>
+ <subdivision type="rs07" draft="contributed">Srem Distrikt</subdivision>
+ <subdivision type="rs08" draft="contributed">Macva distrikt</subdivision>
+ <subdivision type="rs09" draft="contributed">Kolubare distrikt</subdivision>
+ <subdivision type="rs10" draft="contributed">Podunavlje distrikt</subdivision>
+ <subdivision type="rs11" draft="contributed">Branicevo distrikt</subdivision>
+ <subdivision type="rs12" draft="contributed">Sumadija distrikt</subdivision>
+ <subdivision type="rs13" draft="contributed">Pomoravlje distrikt</subdivision>
+ <subdivision type="rs14" draft="contributed">Bor distrikt</subdivision>
+ <subdivision type="rs15" draft="contributed">Zajecar distrikt</subdivision>
+ <subdivision type="rs16" draft="contributed">Zlatibor distrikt</subdivision>
+ <subdivision type="rs17" draft="contributed">Moravica distrikt</subdivision>
+ <subdivision type="rs18" draft="contributed">Raska distrikt</subdivision>
+ <subdivision type="rs19" draft="contributed">Rasina distrikt</subdivision>
+ <subdivision type="rs20" draft="contributed">Nisava Distrikt</subdivision>
+ <subdivision type="rs21" draft="contributed">Toplica distrikt</subdivision>
+ <subdivision type="rs22" draft="contributed">Pirot distrikt</subdivision>
+ <subdivision type="rs23" draft="contributed">Jablanica distrikt</subdivision>
+ <subdivision type="rs24" draft="contributed">Pcinja distrikt</subdivision>
+ <subdivision type="rsvo" draft="contributed">Vojvodina</subdivision>
+ <subdivision type="ruad" draft="contributed">Adygia</subdivision>
+ <subdivision type="rual" draft="contributed">Altaj</subdivision>
+ <subdivision type="rualt" draft="contributed">Altaj²</subdivision>
+ <subdivision type="ruamu" draft="contributed">Amur</subdivision>
+ <subdivision type="ruark" draft="contributed">Arkhangelsk</subdivision>
+ <subdivision type="ruast" draft="contributed">Astrakhan</subdivision>
+ <subdivision type="ruba" draft="contributed">Basjkortostan</subdivision>
+ <subdivision type="rubel" draft="contributed">Belgorod</subdivision>
+ <subdivision type="rubry" draft="contributed">Brjansk</subdivision>
+ <subdivision type="rubu" draft="contributed">Burjatia</subdivision>
+ <subdivision type="ruce" draft="contributed">Tsjetsjenia</subdivision>
+ <subdivision type="ruche" draft="contributed">Tsjeljabinsk</subdivision>
+ <subdivision type="ruchu" draft="contributed">Tsjukotka</subdivision>
+ <subdivision type="rucu" draft="contributed">Tsjuvasjia</subdivision>
+ <subdivision type="ruda" draft="contributed">Dagestan</subdivision>
+ <subdivision type="ruin" draft="contributed">Ingusjetia</subdivision>
+ <subdivision type="ruirk" draft="contributed">Irkutsk</subdivision>
+ <subdivision type="ruiva" draft="contributed">Ivanovo</subdivision>
+ <subdivision type="rukam" draft="contributed">Kamtsjatka</subdivision>
+ <subdivision type="rukb" draft="contributed">Kabardino-Balkaria</subdivision>
+ <subdivision type="rukc" draft="contributed">Karatsjajevo-Tsjerkessia</subdivision>
+ <subdivision type="rukda" draft="contributed">Krasnodar</subdivision>
+ <subdivision type="rukem" draft="contributed">Kemerovo</subdivision>
+ <subdivision type="rukgd" draft="contributed">Kaliningrad</subdivision>
+ <subdivision type="rukgn" draft="contributed">Kurgan</subdivision>
+ <subdivision type="rukha" draft="contributed">Khabarovsk</subdivision>
+ <subdivision type="rukhm" draft="contributed">Khanty-Mansia</subdivision>
+ <subdivision type="rukir" draft="contributed">Kirov</subdivision>
+ <subdivision type="rukk" draft="contributed">Khakasia</subdivision>
+ <subdivision type="rukl" draft="contributed">Kalmykia</subdivision>
+ <subdivision type="ruklu" draft="contributed">Kaluga</subdivision>
+ <subdivision type="ruko" draft="contributed">Komi</subdivision>
+ <subdivision type="rukos" draft="contributed">Kostroma</subdivision>
+ <subdivision type="rukr" draft="contributed">Karelia</subdivision>
+ <subdivision type="rukrs" draft="contributed">Kursk</subdivision>
+ <subdivision type="rukya" draft="contributed">Krasnojarsk</subdivision>
+ <subdivision type="rulen" draft="contributed">Leningrad</subdivision>
+ <subdivision type="rulip" draft="contributed">Lipetsk</subdivision>
+ <subdivision type="rumag" draft="contributed">Magadan</subdivision>
+ <subdivision type="rume" draft="contributed">Mari El</subdivision>
+ <subdivision type="rumo" draft="contributed">Mordovia</subdivision>
+ <subdivision type="rumos" draft="contributed">Moskva</subdivision>
+ <subdivision type="rumow" draft="contributed">Moskva²</subdivision>
+ <subdivision type="rumur" draft="contributed">Murmansk</subdivision>
+ <subdivision type="runen" draft="contributed">Nenetsk</subdivision>
+ <subdivision type="rungr" draft="contributed">Novgorod</subdivision>
+ <subdivision type="runiz" draft="contributed">Nizjnij Novgorod</subdivision>
+ <subdivision type="runvs" draft="contributed">Novosibirsk</subdivision>
+ <subdivision type="ruoms" draft="contributed">Omsk</subdivision>
+ <subdivision type="ruore" draft="contributed">Orenburg</subdivision>
+ <subdivision type="ruorl" draft="contributed">Orjol</subdivision>
+ <subdivision type="ruper" draft="contributed">Perm</subdivision>
+ <subdivision type="rupnz" draft="contributed">Penza</subdivision>
+ <subdivision type="rupri" draft="contributed">Primorskij</subdivision>
+ <subdivision type="rupsk" draft="contributed">Pskov</subdivision>
+ <subdivision type="ruros" draft="contributed">Rostov</subdivision>
+ <subdivision type="rurya" draft="contributed">Rjazan</subdivision>
+ <subdivision type="rusa" draft="contributed">Sakha</subdivision>
+ <subdivision type="rusak" draft="contributed">Sakhalin</subdivision>
+ <subdivision type="rusam" draft="contributed">Samara</subdivision>
+ <subdivision type="rusar" draft="contributed">Saratov</subdivision>
+ <subdivision type="ruse" draft="contributed">Nord-Ossetia</subdivision>
+ <subdivision type="rusmo" draft="contributed">Smolensk</subdivision>
+ <subdivision type="ruspe" draft="contributed">St. Petersburg</subdivision>
+ <subdivision type="rusta" draft="contributed">Stavropol</subdivision>
+ <subdivision type="rusve" draft="contributed">Sverdlovsk</subdivision>
+ <subdivision type="ruta" draft="contributed">Tatarstan</subdivision>
+ <subdivision type="rutam" draft="contributed">Tambov</subdivision>
+ <subdivision type="rutom" draft="contributed">Tomsk</subdivision>
+ <subdivision type="rutul" draft="contributed">Tula</subdivision>
+ <subdivision type="rutve" draft="contributed">Tver</subdivision>
+ <subdivision type="ruty" draft="contributed">Tuva</subdivision>
+ <subdivision type="rutyu" draft="contributed">Tjumen</subdivision>
+ <subdivision type="ruud" draft="contributed">Udmurtia</subdivision>
+ <subdivision type="ruuly" draft="contributed">Uljanovsk</subdivision>
+ <subdivision type="ruvgg" draft="contributed">Volgograd</subdivision>
+ <subdivision type="ruvla" draft="contributed">Vladimir</subdivision>
+ <subdivision type="ruvlg" draft="contributed">Vologda</subdivision>
+ <subdivision type="ruvor" draft="contributed">Voronezj</subdivision>
+ <subdivision type="ruyan" draft="contributed">Jamalo-Nenetsk</subdivision>
+ <subdivision type="ruyar" draft="contributed">Jaroslavl</subdivision>
+ <subdivision type="ruyev" draft="contributed">Den jødiske autonome oblast</subdivision>
+ <subdivision type="ruzab" draft="contributed">Zabajkalskij</subdivision>
+ <subdivision type="rw01" draft="contributed">Kigali</subdivision>
+ <subdivision type="rw02" draft="contributed">Vest provins</subdivision>
+ <subdivision type="rw03" draft="contributed">Nord provins</subdivision>
+ <subdivision type="rw04" draft="contributed">Vestlig provins</subdivision>
+ <subdivision type="rw05" draft="contributed">sør provins</subdivision>
+ <subdivision type="sa01" draft="contributed">Ar Riyad (provins)</subdivision>
+ <subdivision type="sa02" draft="contributed">Mekka</subdivision>
+ <subdivision type="sa03" draft="contributed">Medina</subdivision>
+ <subdivision type="sa04" draft="contributed">Ash Sharqiyah</subdivision>
+ <subdivision type="sa05" draft="contributed">Al Qasim (provins)</subdivision>
+ <subdivision type="sa06" draft="contributed">Ha’il</subdivision>
+ <subdivision type="sa07" draft="contributed">Tabuk (provins)</subdivision>
+ <subdivision type="sa08" draft="contributed">Al Hudud ash Shamaliyah</subdivision>
+ <subdivision type="sa09" draft="contributed">Jizan</subdivision>
+ <subdivision type="sa10" draft="contributed">Najran</subdivision>
+ <subdivision type="sa11" draft="contributed">al-Bāḥa</subdivision>
+ <subdivision type="sa12" draft="contributed">Al Jawf (provins)</subdivision>
+ <subdivision type="sa14" draft="contributed">Asir</subdivision>
+ <subdivision type="sbce" draft="contributed">Sentral provins</subdivision>
+ <subdivision type="sbch" draft="contributed">Chosieul provins</subdivision>
+ <subdivision type="sbct" draft="contributed">Honiara</subdivision>
+ <subdivision type="sbgu" draft="contributed">Guadalcanal provins</subdivision>
+ <subdivision type="sbis" draft="contributed">Isabel provins</subdivision>
+ <subdivision type="sbml" draft="contributed">Malaita provins</subdivision>
+ <subdivision type="sbrb" draft="contributed">Rennell and Bellona provins</subdivision>
+ <subdivision type="sbte" draft="contributed">Temotu-provinsen</subdivision>
+ <subdivision type="sbwe" draft="contributed">Vest provinsen</subdivision>
+ <subdivision type="sc01" draft="contributed">Anse aux Pins</subdivision>
+ <subdivision type="sc02" draft="contributed">Anse Boileau</subdivision>
+ <subdivision type="sc03" draft="contributed">Anse Etoile</subdivision>
+ <subdivision type="sc04" draft="contributed">Au Cap</subdivision>
+ <subdivision type="sc05" draft="contributed">Anse Royale</subdivision>
+ <subdivision type="sc06" draft="contributed">Baie Lazare</subdivision>
+ <subdivision type="sc07" draft="contributed">Baie Sainte Anne</subdivision>
+ <subdivision type="sc08" draft="contributed">Beau Vallon</subdivision>
+ <subdivision type="sc09" draft="contributed">Bel Air</subdivision>
+ <subdivision type="sc10" draft="contributed">Bel Ombre</subdivision>
+ <subdivision type="sc11" draft="contributed">Cascade</subdivision>
+ <subdivision type="sc12" draft="contributed">Glacis</subdivision>
+ <subdivision type="sc14" draft="contributed">Grand Anse Praslin</subdivision>
+ <subdivision type="sc16" draft="contributed">English River</subdivision>
+ <subdivision type="sc17" draft="contributed">Mont Buxton</subdivision>
+ <subdivision type="sc18" draft="contributed">Mont Fleuri</subdivision>
+ <subdivision type="sc19" draft="contributed">Plaisance</subdivision>
+ <subdivision type="sc20" draft="contributed">Pointe La Rue</subdivision>
+ <subdivision type="sc21" draft="contributed">Port Glaud</subdivision>
+ <subdivision type="sc22" draft="contributed">Saint Louis</subdivision>
+ <subdivision type="sc23" draft="contributed">Takamaka</subdivision>
+ <subdivision type="sc24" draft="contributed">Les Mamelles</subdivision>
+ <subdivision type="sc25" draft="contributed">Roche Caiman</subdivision>
+ <subdivision type="sddc" draft="contributed">Darfur senter</subdivision>
+ <subdivision type="sdde" draft="contributed">Vest Darfur</subdivision>
+ <subdivision type="sddn" draft="contributed">Nord-Darfur</subdivision>
+ <subdivision type="sdds" draft="contributed">Sør Darfur</subdivision>
+ <subdivision type="sddw" draft="contributed">Vest Dafur</subdivision>
+ <subdivision type="sdgd" draft="contributed">Al-Qadarif</subdivision>
+ <subdivision type="sdgz" draft="contributed">Al Jazirah</subdivision>
+ <subdivision type="sdka" draft="contributed">Kassala</subdivision>
+ <subdivision type="sdkh" draft="contributed">Khartoum</subdivision>
+ <subdivision type="sdkn" draft="contributed">Nord Kurdufan</subdivision>
+ <subdivision type="sdks" draft="contributed">Sør Kordofan</subdivision>
+ <subdivision type="sdnb" draft="contributed">An-Nil al-Azraq</subdivision>
+ <subdivision type="sdno" draft="contributed">Nord</subdivision>
+ <subdivision type="sdnr" draft="contributed">Nil elven</subdivision>
+ <subdivision type="sdnw" draft="contributed">Hvite nil</subdivision>
+ <subdivision type="sdrs" draft="contributed">Rød sjøen</subdivision>
+ <subdivision type="sdsi" draft="contributed">Sennar</subdivision>
+ <subdivision type="seab" draft="contributed">Stockholms län</subdivision>
+ <subdivision type="seac" draft="contributed">Västerbottens län</subdivision>
+ <subdivision type="sebd" draft="contributed">Norrbottens län</subdivision>
+ <subdivision type="sec" draft="contributed">Uppsala län</subdivision>
+ <subdivision type="sed" draft="contributed">Södermanlands län</subdivision>
+ <subdivision type="see" draft="contributed">Östergötlands län</subdivision>
+ <subdivision type="sef" draft="contributed">Jönköpings län</subdivision>
+ <subdivision type="seg" draft="contributed">Kronobergs län</subdivision>
+ <subdivision type="seh" draft="contributed">Kalmar län</subdivision>
+ <subdivision type="sei" draft="contributed">Gotlands län</subdivision>
+ <subdivision type="sek" draft="contributed">Blekinge län</subdivision>
+ <subdivision type="sem" draft="contributed">Skåne län</subdivision>
+ <subdivision type="sen" draft="contributed">Hallands län</subdivision>
+ <subdivision type="seo" draft="contributed">Västra Götalands län</subdivision>
+ <subdivision type="ses" draft="contributed">Värmlands län</subdivision>
+ <subdivision type="set" draft="contributed">Örebro län</subdivision>
+ <subdivision type="seu" draft="contributed">Västmanlands län</subdivision>
+ <subdivision type="sew" draft="contributed">Dalarnas län</subdivision>
+ <subdivision type="sex" draft="contributed">Gävleborgs län</subdivision>
+ <subdivision type="sey" draft="contributed">Västernorrlands län</subdivision>
+ <subdivision type="sez" draft="contributed">Jämtlands län</subdivision>
+ <subdivision type="shac" draft="contributed">Ascension</subdivision>
+ <subdivision type="shhl" draft="contributed">St. Helena</subdivision>
+ <subdivision type="si001" draft="contributed">Ajdovscina kommune</subdivision>
+ <subdivision type="si002" draft="contributed">Beltinci kommune</subdivision>
+ <subdivision type="si003" draft="contributed">Bled kommune</subdivision>
+ <subdivision type="si004" draft="contributed">Bohinj Kommune</subdivision>
+ <subdivision type="si005" draft="contributed">Borovnica kommune</subdivision>
+ <subdivision type="si006" draft="contributed">Bovec kommune</subdivision>
+ <subdivision type="si007" draft="contributed">Brda kommune</subdivision>
+ <subdivision type="si008" draft="contributed">Brezovica Kommune</subdivision>
+ <subdivision type="si009" draft="contributed">Brezice kommune</subdivision>
+ <subdivision type="si010" draft="contributed">Tišina</subdivision>
+ <subdivision type="si011" draft="contributed">Celje Hovedstad</subdivision>
+ <subdivision type="si012" draft="contributed">Cerklje na Gorenjskem</subdivision>
+ <subdivision type="si013" draft="contributed">Cerknica kommune</subdivision>
+ <subdivision type="si014" draft="contributed">Cerko kommune</subdivision>
+ <subdivision type="si015" draft="contributed">Crensovci kommune</subdivision>
+ <subdivision type="si016" draft="contributed">Črna na Koroškem</subdivision>
+ <subdivision type="si017" draft="contributed">Cronmelj kommune</subdivision>
+ <subdivision type="si018" draft="contributed">Destrnik kommune</subdivision>
+ <subdivision type="si019" draft="contributed">Divaca Kommune</subdivision>
+ <subdivision type="si020" draft="contributed">Dobrepolje kommune</subdivision>
+ <subdivision type="si021" draft="contributed">Dobrova-Polhow Gradec Kommune</subdivision>
+ <subdivision type="si022" draft="contributed">Dol pri Ljubljani kommune</subdivision>
+ <subdivision type="si024" draft="contributed">Dornava kommune</subdivision>
+ <subdivision type="si025" draft="contributed">Dravograd kommune</subdivision>
+ <subdivision type="si026" draft="contributed">Duplek Kommune</subdivision>
+ <subdivision type="si027" draft="contributed">Gorenja Vas-Poljane kommune</subdivision>
+ <subdivision type="si028" draft="contributed">Gorisnica kommune</subdivision>
+ <subdivision type="si030" draft="contributed">Gornij Grand kommune</subdivision>
+ <subdivision type="si031" draft="contributed">Gornji kommune</subdivision>
+ <subdivision type="si032" draft="contributed">Grosuplje kommune</subdivision>
+ <subdivision type="si033" draft="contributed">Salovci</subdivision>
+ <subdivision type="si034" draft="contributed">Hrastnik Kommune</subdivision>
+ <subdivision type="si035" draft="contributed">Hrpelje Kozina Kommune</subdivision>
+ <subdivision type="si037" draft="contributed">Ig Kommune</subdivision>
+ <subdivision type="si039" draft="contributed">Ivancna Gorica Kommune</subdivision>
+ <subdivision type="si040" draft="contributed">Izola</subdivision>
+ <subdivision type="si041" draft="contributed">Jesenice</subdivision>
+ <subdivision type="si042" draft="contributed">Jursinci kommune</subdivision>
+ <subdivision type="si043" draft="contributed">Kamnik kommune</subdivision>
+ <subdivision type="si044" draft="contributed">Kanal ob Soci</subdivision>
+ <subdivision type="si045" draft="contributed">Kidricevo Kommune</subdivision>
+ <subdivision type="si046" draft="contributed">Kobarid</subdivision>
+ <subdivision type="si047" draft="contributed">Kobilje</subdivision>
+ <subdivision type="si048" draft="contributed">Kocevje kommune</subdivision>
+ <subdivision type="si049" draft="contributed">Komen Kommune</subdivision>
+ <subdivision type="si051" draft="contributed">Kozje Kommune</subdivision>
+ <subdivision type="si052" draft="contributed">Kranj City kommune</subdivision>
+ <subdivision type="si053" draft="contributed">Kranjska Gora</subdivision>
+ <subdivision type="si054" draft="contributed">Krsko kommune</subdivision>
+ <subdivision type="si055" draft="contributed">Kungoto Kommune</subdivision>
+ <subdivision type="si056" draft="contributed">Kuzma kommune</subdivision>
+ <subdivision type="si057" draft="contributed">Lasko kommune</subdivision>
+ <subdivision type="si058" draft="contributed">Lenart Kommune</subdivision>
+ <subdivision type="si059" draft="contributed">Lendava</subdivision>
+ <subdivision type="si060" draft="contributed">Litija kommune</subdivision>
+ <subdivision type="si062" draft="contributed">Ljubno kommune</subdivision>
+ <subdivision type="si064" draft="contributed">Logatec</subdivision>
+ <subdivision type="si065" draft="contributed">Loska Dolina Kommune</subdivision>
+ <subdivision type="si066" draft="contributed">Loski Potok Kommune</subdivision>
+ <subdivision type="si067" draft="contributed">Luca kommune</subdivision>
+ <subdivision type="si068" draft="contributed">Lukovica Kommune</subdivision>
+ <subdivision type="si069" draft="contributed">Majsperk kommune</subdivision>
+ <subdivision type="si070" draft="contributed">Maribor City kommune</subdivision>
+ <subdivision type="si071" draft="contributed">Medvode Kommune</subdivision>
+ <subdivision type="si072" draft="contributed">Menges Kommune</subdivision>
+ <subdivision type="si073" draft="contributed">Metlika</subdivision>
+ <subdivision type="si075" draft="contributed">Miren-kostanjevica kommune</subdivision>
+ <subdivision type="si076" draft="contributed">Mislinja</subdivision>
+ <subdivision type="si077" draft="contributed">Moravce kommune</subdivision>
+ <subdivision type="si078" draft="contributed">MOravske Toplice kommune</subdivision>
+ <subdivision type="si079" draft="contributed">Mozirje kommune</subdivision>
+ <subdivision type="si080" draft="contributed">Murska Sobota City kommune</subdivision>
+ <subdivision type="si081" draft="contributed">Muta kommune</subdivision>
+ <subdivision type="si082" draft="contributed">Naklo kommune</subdivision>
+ <subdivision type="si083" draft="contributed">Nazarje kommune</subdivision>
+ <subdivision type="si084" draft="contributed">Nova Gorica</subdivision>
+ <subdivision type="si085" draft="contributed">City kommune av Novo</subdivision>
+ <subdivision type="si086" draft="contributed">Odranci</subdivision>
+ <subdivision type="si087" draft="contributed">Ormoz</subdivision>
+ <subdivision type="si089" draft="contributed">Pesnica kommune</subdivision>
+ <subdivision type="si090" draft="contributed">Piran</subdivision>
+ <subdivision type="si091" draft="contributed">Pivka kommune</subdivision>
+ <subdivision type="si092" draft="contributed">Podcetrtek Kommune</subdivision>
+ <subdivision type="si093" draft="contributed">Podvelka Kommune</subdivision>
+ <subdivision type="si094" draft="contributed">Postojna kommune</subdivision>
+ <subdivision type="si095" draft="contributed">Preddvor kommune</subdivision>
+ <subdivision type="si096" draft="contributed">Ptuj</subdivision>
+ <subdivision type="si098" draft="contributed">Race-Farm Kommune</subdivision>
+ <subdivision type="si099" draft="contributed">Radece</subdivision>
+ <subdivision type="si101" draft="contributed">Radlje ob Dravi kommune</subdivision>
+ <subdivision type="si102" draft="contributed">Radovljica</subdivision>
+ <subdivision type="si103" draft="contributed">Ravne na Koroskem</subdivision>
+ <subdivision type="si104" draft="contributed">Ribnica Kommune</subdivision>
+ <subdivision type="si105" draft="contributed">Rogasovci Kommune</subdivision>
+ <subdivision type="si106" draft="contributed">Rogaska Slatina</subdivision>
+ <subdivision type="si107" draft="contributed">Rogatec kommune</subdivision>
+ <subdivision type="si108" draft="contributed">Ruse Kommune</subdivision>
+ <subdivision type="si109" draft="contributed">Semic kommune</subdivision>
+ <subdivision type="si110" draft="contributed">Sevnica kommune</subdivision>
+ <subdivision type="si111" draft="contributed">Sezana Kommune</subdivision>
+ <subdivision type="si112" draft="contributed">Slovenj Gradec City kommune</subdivision>
+ <subdivision type="si113" draft="contributed">Slovenska Bistrica</subdivision>
+ <subdivision type="si114" draft="contributed">Slovenske Konjice</subdivision>
+ <subdivision type="si115" draft="contributed">Starse Kommune</subdivision>
+ <subdivision type="si116" draft="contributed">Sveti Jurij Kommune</subdivision>
+ <subdivision type="si117" draft="contributed">Sencur kommune</subdivision>
+ <subdivision type="si118" draft="contributed">Sentilj Kommune</subdivision>
+ <subdivision type="si119" draft="contributed">Sentjernej kommune</subdivision>
+ <subdivision type="si120" draft="contributed">Sentjur Kommune</subdivision>
+ <subdivision type="si121" draft="contributed">Skocjan kommune</subdivision>
+ <subdivision type="si122" draft="contributed">Skofja Loka kommune</subdivision>
+ <subdivision type="si123" draft="contributed">Skofljica kommune</subdivision>
+ <subdivision type="si124" draft="contributed">Smarje pri Jelsah kommune</subdivision>
+ <subdivision type="si125" draft="contributed">Smartno ob Paki Kommune</subdivision>
+ <subdivision type="si126" draft="contributed">Sostanj kommune</subdivision>
+ <subdivision type="si127" draft="contributed">Store kommune</subdivision>
+ <subdivision type="si128" draft="contributed">Tolmin kommune</subdivision>
+ <subdivision type="si129" draft="contributed">Trbovlje</subdivision>
+ <subdivision type="si130" draft="contributed">Trebnje kommune</subdivision>
+ <subdivision type="si131" draft="contributed">Trzic kommune</subdivision>
+ <subdivision type="si134" draft="contributed">Velike Lasce kommune</subdivision>
+ <subdivision type="si136" draft="contributed">Vipava kommune</subdivision>
+ <subdivision type="si137" draft="contributed">Vitanje</subdivision>
+ <subdivision type="si138" draft="contributed">Vodice</subdivision>
+ <subdivision type="si139" draft="contributed">Vojnik kommune</subdivision>
+ <subdivision type="si140" draft="contributed">Vrhnika kommune</subdivision>
+ <subdivision type="si141" draft="contributed">Vuzenica Kommune</subdivision>
+ <subdivision type="si143" draft="contributed">Zavrc kommune</subdivision>
+ <subdivision type="si144" draft="contributed">Zrece kommune</subdivision>
+ <subdivision type="si146" draft="contributed">Zelezniki Kommune</subdivision>
+ <subdivision type="si148" draft="contributed">Benedikt</subdivision>
+ <subdivision type="si149" draft="contributed">Bistrica ob Sotli kommune</subdivision>
+ <subdivision type="si150" draft="contributed">Bloke kommune</subdivision>
+ <subdivision type="si151" draft="contributed">Braslovce Kommune</subdivision>
+ <subdivision type="si152" draft="contributed">Cankova kommune</subdivision>
+ <subdivision type="si153" draft="contributed">Cerkvenjak kommune</subdivision>
+ <subdivision type="si154" draft="contributed">Dobje</subdivision>
+ <subdivision type="si155" draft="contributed">Dobrna kommune</subdivision>
+ <subdivision type="si156" draft="contributed">Dobronak kommune</subdivision>
+ <subdivision type="si157" draft="contributed">Dolenjske Toplice kommune</subdivision>
+ <subdivision type="si158" draft="contributed">Grad Kommune</subdivision>
+ <subdivision type="si159" draft="contributed">Hajdina Kommune</subdivision>
+ <subdivision type="si160" draft="contributed">Hoce-Slivnica kommune</subdivision>
+ <subdivision type="si161" draft="contributed">Hodos kommune</subdivision>
+ <subdivision type="si162" draft="contributed">Horjul Kommune</subdivision>
+ <subdivision type="si163" draft="contributed">Jezersko kommune</subdivision>
+ <subdivision type="si164" draft="contributed">Komenda Kommune</subdivision>
+ <subdivision type="si165" draft="contributed">Kostel kommune</subdivision>
+ <subdivision type="si166" draft="contributed">Krizevci kommune</subdivision>
+ <subdivision type="si168" draft="contributed">Markovci kommune</subdivision>
+ <subdivision type="si170" draft="contributed">Mirna Pec Kommune</subdivision>
+ <subdivision type="si171" draft="contributed">Oplotnica kommune</subdivision>
+ <subdivision type="si172" draft="contributed">Podlehnik kommune</subdivision>
+ <subdivision type="si173" draft="contributed">Polzela kommune</subdivision>
+ <subdivision type="si174" draft="contributed">Prebold Kommune</subdivision>
+ <subdivision type="si175" draft="contributed">Prevalje kommune</subdivision>
+ <subdivision type="si176" draft="contributed">Razkrizje Kommune</subdivision>
+ <subdivision type="si177" draft="contributed">Ribnica na Pohorju kommune</subdivision>
+ <subdivision type="si178" draft="contributed">Selnica ob Dravi kommune</subdivision>
+ <subdivision type="si179" draft="contributed">Sodrazica kommune</subdivision>
+ <subdivision type="si181" draft="contributed">Sveta Ana kommune</subdivision>
+ <subdivision type="si182" draft="contributed">Sveti Andraz v Slovenskih Goricah kommune</subdivision>
+ <subdivision type="si183" draft="contributed">Senoeter Vrtojba kommune</subdivision>
+ <subdivision type="si184" draft="contributed">Tabor kommune</subdivision>
+ <subdivision type="si185" draft="contributed">Trnovska Vas kommune</subdivision>
+ <subdivision type="si186" draft="contributed">Trzin</subdivision>
+ <subdivision type="si187" draft="contributed">Velika Polana kommune</subdivision>
+ <subdivision type="si188" draft="contributed">Verzej kommune</subdivision>
+ <subdivision type="si189" draft="contributed">Vransko</subdivision>
+ <subdivision type="si190" draft="contributed">Zalec kommune</subdivision>
+ <subdivision type="si191" draft="contributed">Zetale kommune</subdivision>
+ <subdivision type="si192" draft="contributed">Zirovnica kommune</subdivision>
+ <subdivision type="si193" draft="contributed">Zuzenberk</subdivision>
+ <subdivision type="si194" draft="contributed">Smartno pri Litjii</subdivision>
+ <subdivision type="si213" draft="contributed">Ankaran</subdivision>
+ <subdivision type="skbc" draft="contributed">Banská Bystrica</subdivision>
+ <subdivision type="skbl" draft="contributed">Bratislava</subdivision>
+ <subdivision type="skki" draft="contributed">Košice</subdivision>
+ <subdivision type="skni" draft="contributed">Nitra</subdivision>
+ <subdivision type="skpv" draft="contributed">Prešov</subdivision>
+ <subdivision type="skta" draft="contributed">Trnava</subdivision>
+ <subdivision type="sktc" draft="contributed">Trenčín</subdivision>
+ <subdivision type="skzi" draft="contributed">Žilina</subdivision>
+ <subdivision type="sle" draft="contributed">Eastern</subdivision>
+ <subdivision type="sln" draft="contributed">Northern</subdivision>
+ <subdivision type="sls" draft="contributed">Southern</subdivision>
+ <subdivision type="slw" draft="contributed">Western</subdivision>
+ <subdivision type="sm01" draft="contributed">Acquaviva</subdivision>
+ <subdivision type="sm02" draft="contributed">Chiesanuova</subdivision>
+ <subdivision type="sm03" draft="contributed">Domagnano</subdivision>
+ <subdivision type="sm04" draft="contributed">Faetano</subdivision>
+ <subdivision type="sm05" draft="contributed">Fiorentino</subdivision>
+ <subdivision type="sm06" draft="contributed">Borgo Maggiore</subdivision>
+ <subdivision type="sm07" draft="contributed">San Marino</subdivision>
+ <subdivision type="sm08" draft="contributed">Montegiardino</subdivision>
+ <subdivision type="sm09" draft="contributed">Serravalle</subdivision>
+ <subdivision type="sndb" draft="contributed">Diourbel</subdivision>
+ <subdivision type="sndk" draft="contributed">Dakar</subdivision>
+ <subdivision type="snfk" draft="contributed">Fatick</subdivision>
+ <subdivision type="snka" draft="contributed">Kaffrine</subdivision>
+ <subdivision type="snkd" draft="contributed">Kolda</subdivision>
+ <subdivision type="snke" draft="contributed">Kédougou</subdivision>
+ <subdivision type="snkl" draft="contributed">Kaolack</subdivision>
+ <subdivision type="snlg" draft="contributed">Louga</subdivision>
+ <subdivision type="snmt" draft="contributed">Matam</subdivision>
+ <subdivision type="snse" draft="contributed">Sédhiou</subdivision>
+ <subdivision type="snsl" draft="contributed">Saint-Louis</subdivision>
+ <subdivision type="sntc" draft="contributed">Rambacounda region</subdivision>
+ <subdivision type="snth" draft="contributed">Thiès</subdivision>
+ <subdivision type="snzg" draft="contributed">Ziguinchor</subdivision>
+ <subdivision type="sobk" draft="contributed">Bakool</subdivision>
+ <subdivision type="sobn" draft="contributed">Banaadir</subdivision>
+ <subdivision type="sobr" draft="contributed">Bari</subdivision>
+ <subdivision type="soby" draft="contributed">Bay</subdivision>
+ <subdivision type="soga" draft="contributed">Galguduud</subdivision>
+ <subdivision type="soge" draft="contributed">Gedo</subdivision>
+ <subdivision type="sohi" draft="contributed">Hiiraan</subdivision>
+ <subdivision type="sojd" draft="contributed">Jubbada Dhexe</subdivision>
+ <subdivision type="sojh" draft="contributed">Nedre Juba</subdivision>
+ <subdivision type="somu" draft="contributed">Mudug</subdivision>
+ <subdivision type="sonu" draft="contributed">Nugal</subdivision>
+ <subdivision type="sosd" draft="contributed">Shabeellaha Dhexe</subdivision>
+ <subdivision type="sosh" draft="contributed">Nedre Shebelle</subdivision>
+ <subdivision type="soso" draft="contributed">Sool</subdivision>
+ <subdivision type="sowo" draft="contributed">Woqooyi Galbeed</subdivision>
+ <subdivision type="srbr" draft="contributed">Brokopondo</subdivision>
+ <subdivision type="srcm" draft="contributed">Commewijne</subdivision>
+ <subdivision type="srcr" draft="contributed">Coronie</subdivision>
+ <subdivision type="srma" draft="contributed">Marowijne</subdivision>
+ <subdivision type="srni" draft="contributed">Nickerie</subdivision>
+ <subdivision type="srpm" draft="contributed">Paramaribo</subdivision>
+ <subdivision type="srpr" draft="contributed">Para</subdivision>
+ <subdivision type="srsa" draft="contributed">Saramacca</subdivision>
+ <subdivision type="srsi" draft="contributed">Sipaliwini</subdivision>
+ <subdivision type="srwa" draft="contributed">Wanica</subdivision>
+ <subdivision type="ssbn" draft="contributed">Northern Bahr el Ghazal</subdivision>
+ <subdivision type="ssbw" draft="contributed">Western Bahr el Ghazal</subdivision>
+ <subdivision type="ssec" draft="contributed">Central Equatoria</subdivision>
+ <subdivision type="ssee" draft="contributed">Øst-Ekvatoria</subdivision>
+ <subdivision type="ssew" draft="contributed">Western Equatoria</subdivision>
+ <subdivision type="ssjg" draft="contributed">Jonglei</subdivision>
+ <subdivision type="sslk" draft="contributed">Lakes</subdivision>
+ <subdivision type="ssnu" draft="contributed">Upper Nile</subdivision>
+ <subdivision type="ssuy" draft="contributed">Unity</subdivision>
+ <subdivision type="sswr" draft="contributed">Warrap</subdivision>
+ <subdivision type="stp" draft="contributed">Príncipe</subdivision>
+ <subdivision type="sts" draft="contributed">São Tomé</subdivision>
+ <subdivision type="svah" draft="contributed">Ahuachapán</subdivision>
+ <subdivision type="svca" draft="contributed">Cabañas</subdivision>
+ <subdivision type="svcu" draft="contributed">Cuscatlan</subdivision>
+ <subdivision type="svli" draft="contributed">La Libertad department</subdivision>
+ <subdivision type="svmo" draft="contributed">Morazan department</subdivision>
+ <subdivision type="svpa" draft="contributed">La Paz department</subdivision>
+ <subdivision type="svsa" draft="contributed">Santa Ana department</subdivision>
+ <subdivision type="svsm" draft="contributed">San Miguel department</subdivision>
+ <subdivision type="svso" draft="contributed">Sonsonate department</subdivision>
+ <subdivision type="svss" draft="contributed">San Salvador</subdivision>
+ <subdivision type="svsv" draft="contributed">San Vincente department</subdivision>
+ <subdivision type="svus" draft="contributed">Usulutan department</subdivision>
+ <subdivision type="sydi" draft="contributed">Damaskus</subdivision>
+ <subdivision type="sydy" draft="contributed">Dayr az-Zawr</subdivision>
+ <subdivision type="syha" draft="contributed">Al-Hasakah</subdivision>
+ <subdivision type="syhi" draft="contributed">Homs</subdivision>
+ <subdivision type="syhl" draft="contributed">Aleppo</subdivision>
+ <subdivision type="syhm" draft="contributed">Guvernementet Hama</subdivision>
+ <subdivision type="syid" draft="contributed">Idlib</subdivision>
+ <subdivision type="syla" draft="contributed">Latakia</subdivision>
+ <subdivision type="syqu" draft="contributed">Al-Qunaytirah</subdivision>
+ <subdivision type="syra" draft="contributed">Ar-Raqqah</subdivision>
+ <subdivision type="syrd" draft="contributed">Rif Dimashq</subdivision>
+ <subdivision type="sysu" draft="contributed">as-Suwayda</subdivision>
+ <subdivision type="syta" draft="contributed">Tartus</subdivision>
+ <subdivision type="szhh" draft="contributed">Hhohho</subdivision>
+ <subdivision type="szlu" draft="contributed">Lubombo</subdivision>
+ <subdivision type="szma" draft="contributed">Manzini</subdivision>
+ <subdivision type="szsh" draft="contributed">Shiselweni</subdivision>
+ <subdivision type="tdba" draft="contributed">Batha</subdivision>
+ <subdivision type="tdbg" draft="contributed">Bahr el Gazel region</subdivision>
+ <subdivision type="tdbo" draft="contributed">Borkou Region</subdivision>
+ <subdivision type="tdcb" draft="contributed">Chari-Baguirmi</subdivision>
+ <subdivision type="tdgr" draft="contributed">Guéra</subdivision>
+ <subdivision type="tdhl" draft="contributed">Hadjer-Lamis</subdivision>
+ <subdivision type="tdka" draft="contributed">Kanem</subdivision>
+ <subdivision type="tdlc" draft="contributed">Lac</subdivision>
+ <subdivision type="tdlo" draft="contributed">Logone Occidental</subdivision>
+ <subdivision type="tdlr" draft="contributed">Logone Oriental</subdivision>
+ <subdivision type="tdma" draft="contributed">Mandoul</subdivision>
+ <subdivision type="tdmc" draft="contributed">Moyen-Chari</subdivision>
+ <subdivision type="tdme" draft="contributed">Mayo-Kebbi Est</subdivision>
+ <subdivision type="tdmo" draft="contributed">Mayo-Kebbi Ouest</subdivision>
+ <subdivision type="tdnd" draft="contributed">N’Djamena</subdivision>
+ <subdivision type="tdod" draft="contributed">Ouaddaï</subdivision>
+ <subdivision type="tdsa" draft="contributed">Salamat</subdivision>
+ <subdivision type="tdsi" draft="contributed">Sila region</subdivision>
+ <subdivision type="tdta" draft="contributed">Tandjilé</subdivision>
+ <subdivision type="tdti" draft="contributed">Tibesti Region</subdivision>
+ <subdivision type="tdwf" draft="contributed">Wadi Fira</subdivision>
+ <subdivision type="tgc" draft="contributed">Centrale</subdivision>
+ <subdivision type="tgk" draft="contributed">Kara</subdivision>
+ <subdivision type="tgm" draft="contributed">Maritime</subdivision>
+ <subdivision type="tgp" draft="contributed">Plateaux</subdivision>
+ <subdivision type="tgs" draft="contributed">Savanes</subdivision>
+ <subdivision type="th10" draft="contributed">Bangkok</subdivision>
+ <subdivision type="th11" draft="contributed">Samut Prakan</subdivision>
+ <subdivision type="th12" draft="contributed">Nonthaburi</subdivision>
+ <subdivision type="th13" draft="contributed">Pathum Thani</subdivision>
+ <subdivision type="th14" draft="contributed">Ayutthaya</subdivision>
+ <subdivision type="th15" draft="contributed">Ang Thong</subdivision>
+ <subdivision type="th16" draft="contributed">Lop Buri</subdivision>
+ <subdivision type="th17" draft="contributed">Sing Buri</subdivision>
+ <subdivision type="th18" draft="contributed">Chainat</subdivision>
+ <subdivision type="th19" draft="contributed">Saraburi</subdivision>
+ <subdivision type="th20" draft="contributed">Chonburi</subdivision>
+ <subdivision type="th21" draft="contributed">Rayong</subdivision>
+ <subdivision type="th22" draft="contributed">Chanthaburi</subdivision>
+ <subdivision type="th23" draft="contributed">Trat</subdivision>
+ <subdivision type="th24" draft="contributed">Chachoengsao</subdivision>
+ <subdivision type="th25" draft="contributed">Prachinburi</subdivision>
+ <subdivision type="th26" draft="contributed">Nakhon Nayok</subdivision>
+ <subdivision type="th27" draft="contributed">Sa Kaeo</subdivision>
+ <subdivision type="th30" draft="contributed">Nakhon Ratchasima</subdivision>
+ <subdivision type="th31" draft="contributed">Buriram</subdivision>
+ <subdivision type="th32" draft="contributed">Surin</subdivision>
+ <subdivision type="th33" draft="contributed">Sisaket</subdivision>
+ <subdivision type="th34" draft="contributed">Ubon Ratchathani</subdivision>
+ <subdivision type="th35" draft="contributed">Yasothon</subdivision>
+ <subdivision type="th36" draft="contributed">Chaiyaphum</subdivision>
+ <subdivision type="th37" draft="contributed">Amnat Charoen</subdivision>
+ <subdivision type="th38" draft="contributed">Bungkan</subdivision>
+ <subdivision type="th39" draft="contributed">Nongbua Lamphu</subdivision>
+ <subdivision type="th40" draft="contributed">Khon Kaen</subdivision>
+ <subdivision type="th41" draft="contributed">Udon Thani</subdivision>
+ <subdivision type="th42" draft="contributed">Loei</subdivision>
+ <subdivision type="th43" draft="contributed">Nong Khai</subdivision>
+ <subdivision type="th44" draft="contributed">Maha Sarakham</subdivision>
+ <subdivision type="th45" draft="contributed">Roi Et</subdivision>
+ <subdivision type="th46" draft="contributed">Kalasin</subdivision>
+ <subdivision type="th47" draft="contributed">Sakon Nakhon</subdivision>
+ <subdivision type="th48" draft="contributed">Nakhon Phanom</subdivision>
+ <subdivision type="th49" draft="contributed">Mukdahan</subdivision>
+ <subdivision type="th50" draft="contributed">Chiang Mai</subdivision>
+ <subdivision type="th51" draft="contributed">Lamphun</subdivision>
+ <subdivision type="th52" draft="contributed">Lampang</subdivision>
+ <subdivision type="th53" draft="contributed">Uttaradit</subdivision>
+ <subdivision type="th54" draft="contributed">Phrae</subdivision>
+ <subdivision type="th55" draft="contributed">Nan</subdivision>
+ <subdivision type="th56" draft="contributed">Phayao</subdivision>
+ <subdivision type="th57" draft="contributed">Chiang Rai</subdivision>
+ <subdivision type="th58" draft="contributed">Mae Hong Son</subdivision>
+ <subdivision type="th60" draft="contributed">Nakhon Sawan</subdivision>
+ <subdivision type="th61" draft="contributed">Uthai Thani</subdivision>
+ <subdivision type="th62" draft="contributed">Kamphaeng Phet</subdivision>
+ <subdivision type="th63" draft="contributed">Tak</subdivision>
+ <subdivision type="th64" draft="contributed">Sukhothai</subdivision>
+ <subdivision type="th65" draft="contributed">Phitsanulok</subdivision>
+ <subdivision type="th66" draft="contributed">Phichit</subdivision>
+ <subdivision type="th67" draft="contributed">Phetchabun</subdivision>
+ <subdivision type="th70" draft="contributed">Ratchaburi</subdivision>
+ <subdivision type="th71" draft="contributed">Kanchanaburi</subdivision>
+ <subdivision type="th72" draft="contributed">Suphan Buri</subdivision>
+ <subdivision type="th73" draft="contributed">Nakhon Pathom</subdivision>
+ <subdivision type="th74" draft="contributed">Samut Sakhon</subdivision>
+ <subdivision type="th75" draft="contributed">Samut Songkhram</subdivision>
+ <subdivision type="th76" draft="contributed">Phetchaburi</subdivision>
+ <subdivision type="th77" draft="contributed">Prachuap Khiri Khan</subdivision>
+ <subdivision type="th80" draft="contributed">Nakhon Si Thammarat</subdivision>
+ <subdivision type="th81" draft="contributed">Krabi</subdivision>
+ <subdivision type="th82" draft="contributed">Phang Nga</subdivision>
+ <subdivision type="th83" draft="contributed">Phuket</subdivision>
+ <subdivision type="th84" draft="contributed">Surat Thani</subdivision>
+ <subdivision type="th85" draft="contributed">Ranong</subdivision>
+ <subdivision type="th86" draft="contributed">Chumphon</subdivision>
+ <subdivision type="th90" draft="contributed">Songkhla</subdivision>
+ <subdivision type="th91" draft="contributed">Satun</subdivision>
+ <subdivision type="th92" draft="contributed">Trang</subdivision>
+ <subdivision type="th93" draft="contributed">Phattalung</subdivision>
+ <subdivision type="th94" draft="contributed">Pattani</subdivision>
+ <subdivision type="th95" draft="contributed">Yala</subdivision>
+ <subdivision type="th96" draft="contributed">Narathiwat</subdivision>
+ <subdivision type="ths" draft="contributed">Pattaya</subdivision>
+ <subdivision type="tjdu" draft="contributed">Dusjanbe</subdivision>
+ <subdivision type="tjgb" draft="contributed">Kuhistoni Badakhshon autonome provins</subdivision>
+ <subdivision type="tjkt" draft="contributed">Khatlon</subdivision>
+ <subdivision type="tjra" draft="contributed">Rebublican Subordination distrikt</subdivision>
+ <subdivision type="tjsu" draft="contributed">Sughd</subdivision>
+ <subdivision type="tlal" draft="contributed">Aileu</subdivision>
+ <subdivision type="tlan" draft="contributed">Ainaro</subdivision>
+ <subdivision type="tlba" draft="contributed">Baucau</subdivision>
+ <subdivision type="tlbo" draft="contributed">Bobonaro</subdivision>
+ <subdivision type="tlco" draft="contributed">Cova Lima</subdivision>
+ <subdivision type="tldi" draft="contributed">Dili</subdivision>
+ <subdivision type="tler" draft="contributed">Ermera</subdivision>
+ <subdivision type="tlla" draft="contributed">Lautém</subdivision>
+ <subdivision type="tlli" draft="contributed">Liquiçá</subdivision>
+ <subdivision type="tlmf" draft="contributed">Manufahi</subdivision>
+ <subdivision type="tlmt" draft="contributed">Manatuto</subdivision>
+ <subdivision type="tloe" draft="contributed">Oecusse</subdivision>
+ <subdivision type="tlvi" draft="contributed">Viqueque</subdivision>
+ <subdivision type="tma" draft="contributed">Ahal provins</subdivision>
+ <subdivision type="tmb" draft="contributed">Belkan provins</subdivision>
+ <subdivision type="tmm" draft="contributed">Mary provins</subdivision>
+ <subdivision type="tms" draft="contributed">Asjkhabad</subdivision>
+ <subdivision type="tn11" draft="contributed">Tunis</subdivision>
+ <subdivision type="tn12" draft="contributed">Ariana</subdivision>
+ <subdivision type="tn13" draft="contributed">Ben Arous</subdivision>
+ <subdivision type="tn14" draft="contributed">Manouba</subdivision>
+ <subdivision type="tn21" draft="contributed">Nabeul</subdivision>
+ <subdivision type="tn22" draft="contributed">Zaghouan (guvernement)</subdivision>
+ <subdivision type="tn23" draft="contributed">Bizerte</subdivision>
+ <subdivision type="tn31" draft="contributed">Béja</subdivision>
+ <subdivision type="tn32" draft="contributed">Jendouba</subdivision>
+ <subdivision type="tn33" draft="contributed">Kef</subdivision>
+ <subdivision type="tn34" draft="contributed">Siliana</subdivision>
+ <subdivision type="tn41" draft="contributed">Kairouan</subdivision>
+ <subdivision type="tn42" draft="contributed">Kasserine</subdivision>
+ <subdivision type="tn43" draft="contributed">Sidi Bouzid</subdivision>
+ <subdivision type="tn51" draft="contributed">Sousse</subdivision>
+ <subdivision type="tn52" draft="contributed">Monastir</subdivision>
+ <subdivision type="tn53" draft="contributed">Mahdia</subdivision>
+ <subdivision type="tn61" draft="contributed">Sfax</subdivision>
+ <subdivision type="tn71" draft="contributed">Gafsa</subdivision>
+ <subdivision type="tn72" draft="contributed">Tozeur</subdivision>
+ <subdivision type="tn73" draft="contributed">Kebili</subdivision>
+ <subdivision type="tn81" draft="contributed">Gabès</subdivision>
+ <subdivision type="tn82" draft="contributed">Medenine</subdivision>
+ <subdivision type="tn83" draft="contributed">Tataouine</subdivision>
+ <subdivision type="to02" draft="contributed">Ha’apai</subdivision>
+ <subdivision type="to03" draft="contributed">Niuas</subdivision>
+ <subdivision type="to04" draft="contributed">Tongatapu</subdivision>
+ <subdivision type="to05" draft="contributed">Vava’u</subdivision>
+ <subdivision type="tr01" draft="contributed">Adana</subdivision>
+ <subdivision type="tr02" draft="contributed">Adıyaman</subdivision>
+ <subdivision type="tr03" draft="contributed">Afyonkarahisar</subdivision>
+ <subdivision type="tr04" draft="contributed">Ağrı</subdivision>
+ <subdivision type="tr05" draft="contributed">Amasya</subdivision>
+ <subdivision type="tr06" draft="contributed">Ankara</subdivision>
+ <subdivision type="tr07" draft="contributed">Antalya</subdivision>
+ <subdivision type="tr08" draft="contributed">Artvin</subdivision>
+ <subdivision type="tr09" draft="contributed">Aydın</subdivision>
+ <subdivision type="tr10" draft="contributed">Balıkesir</subdivision>
+ <subdivision type="tr11" draft="contributed">Bilecik</subdivision>
+ <subdivision type="tr12" draft="contributed">Bingöl</subdivision>
+ <subdivision type="tr13" draft="contributed">Bitlis</subdivision>
+ <subdivision type="tr14" draft="contributed">Bolu</subdivision>
+ <subdivision type="tr15" draft="contributed">Burdur</subdivision>
+ <subdivision type="tr16" draft="contributed">Bursa</subdivision>
+ <subdivision type="tr17" draft="contributed">Çanakkale</subdivision>
+ <subdivision type="tr18" draft="contributed">Çankırı</subdivision>
+ <subdivision type="tr19" draft="contributed">Çorum</subdivision>
+ <subdivision type="tr20" draft="contributed">Denizli</subdivision>
+ <subdivision type="tr21" draft="contributed">Diyarbakır</subdivision>
+ <subdivision type="tr22" draft="contributed">Edirne</subdivision>
+ <subdivision type="tr23" draft="contributed">Elazığ</subdivision>
+ <subdivision type="tr24" draft="contributed">Erzincan</subdivision>
+ <subdivision type="tr25" draft="contributed">Erzurum</subdivision>
+ <subdivision type="tr26" draft="contributed">Eskişehir</subdivision>
+ <subdivision type="tr27" draft="contributed">Gaziantep</subdivision>
+ <subdivision type="tr28" draft="contributed">Giresun</subdivision>
+ <subdivision type="tr29" draft="contributed">Gümüşhane</subdivision>
+ <subdivision type="tr30" draft="contributed">Hakkâri</subdivision>
+ <subdivision type="tr31" draft="contributed">Hatay</subdivision>
+ <subdivision type="tr32" draft="contributed">Isparta</subdivision>
+ <subdivision type="tr33" draft="contributed">Mersin</subdivision>
+ <subdivision type="tr34" draft="contributed">İstanbul</subdivision>
+ <subdivision type="tr35" draft="contributed">İzmir</subdivision>
+ <subdivision type="tr36" draft="contributed">Kars</subdivision>
+ <subdivision type="tr37" draft="contributed">Kastamonu</subdivision>
+ <subdivision type="tr38" draft="contributed">Kayseri</subdivision>
+ <subdivision type="tr39" draft="contributed">Kırklareli</subdivision>
+ <subdivision type="tr40" draft="contributed">Kırşehir</subdivision>
+ <subdivision type="tr41" draft="contributed">Kocaeli</subdivision>
+ <subdivision type="tr42" draft="contributed">Konya</subdivision>
+ <subdivision type="tr43" draft="contributed">Kütahya</subdivision>
+ <subdivision type="tr44" draft="contributed">Malatya</subdivision>
+ <subdivision type="tr45" draft="contributed">Manisa</subdivision>
+ <subdivision type="tr46" draft="contributed">Kahramanmaraş</subdivision>
+ <subdivision type="tr47" draft="contributed">Mardin</subdivision>
+ <subdivision type="tr48" draft="contributed">Muğla</subdivision>
+ <subdivision type="tr49" draft="contributed">Muş</subdivision>
+ <subdivision type="tr50" draft="contributed">Nevşehir</subdivision>
+ <subdivision type="tr51" draft="contributed">Niğde</subdivision>
+ <subdivision type="tr52" draft="contributed">Ordu</subdivision>
+ <subdivision type="tr53" draft="contributed">Rize</subdivision>
+ <subdivision type="tr54" draft="contributed">Sakarya</subdivision>
+ <subdivision type="tr55" draft="contributed">Samsun</subdivision>
+ <subdivision type="tr56" draft="contributed">Siirt</subdivision>
+ <subdivision type="tr57" draft="contributed">Sinop</subdivision>
+ <subdivision type="tr58" draft="contributed">Sivas</subdivision>
+ <subdivision type="tr59" draft="contributed">Tekirdağ</subdivision>
+ <subdivision type="tr60" draft="contributed">Tokat</subdivision>
+ <subdivision type="tr61" draft="contributed">Trabzon</subdivision>
+ <subdivision type="tr62" draft="contributed">Tunceli</subdivision>
+ <subdivision type="tr63" draft="contributed">Şanlıurfa</subdivision>
+ <subdivision type="tr64" draft="contributed">Uşak</subdivision>
+ <subdivision type="tr65" draft="contributed">Van</subdivision>
+ <subdivision type="tr66" draft="contributed">Yozgat</subdivision>
+ <subdivision type="tr67" draft="contributed">Zonguldak</subdivision>
+ <subdivision type="tr68" draft="contributed">Aksaray</subdivision>
+ <subdivision type="tr69" draft="contributed">Bayburt</subdivision>
+ <subdivision type="tr70" draft="contributed">Karaman</subdivision>
+ <subdivision type="tr71" draft="contributed">Kırıkkale</subdivision>
+ <subdivision type="tr72" draft="contributed">Batman</subdivision>
+ <subdivision type="tr73" draft="contributed">Şırnak</subdivision>
+ <subdivision type="tr74" draft="contributed">Bartın</subdivision>
+ <subdivision type="tr75" draft="contributed">Ardahan</subdivision>
+ <subdivision type="tr76" draft="contributed">Iğdır</subdivision>
+ <subdivision type="tr77" draft="contributed">Yalova</subdivision>
+ <subdivision type="tr78" draft="contributed">Karabük</subdivision>
+ <subdivision type="tr79" draft="contributed">Kilis</subdivision>
+ <subdivision type="tr80" draft="contributed">Osmaniye</subdivision>
+ <subdivision type="tr81" draft="contributed">Düzce</subdivision>
+ <subdivision type="ttari" draft="contributed">Arima</subdivision>
+ <subdivision type="ttcha" draft="contributed">Chaguanas</subdivision>
+ <subdivision type="ttctt" draft="contributed">Couva Tabaquite Talparo</subdivision>
+ <subdivision type="ttdmn" draft="contributed">Diego Martin</subdivision>
+ <subdivision type="ttmrc" draft="contributed">Rio Claro-Mayaro</subdivision>
+ <subdivision type="ttped" draft="contributed">Penal Debe</subdivision>
+ <subdivision type="ttpos" draft="contributed">Port of Spain</subdivision>
+ <subdivision type="ttprt" draft="contributed">Princes Tiwn Regional Corpoation</subdivision>
+ <subdivision type="ttptf" draft="contributed">Point Fortin</subdivision>
+ <subdivision type="ttsfo" draft="contributed">San Fernando</subdivision>
+ <subdivision type="ttsge" draft="contributed">Sangre Grande regional</subdivision>
+ <subdivision type="ttsip" draft="contributed">Siparia</subdivision>
+ <subdivision type="ttsjl" draft="contributed">San Juan-Laventille region</subdivision>
+ <subdivision type="tttob" draft="contributed">Tobago</subdivision>
+ <subdivision type="tttup" draft="contributed">Tunapuna Piarco</subdivision>
+ <subdivision type="tvfun" draft="contributed">Funafuti</subdivision>
+ <subdivision type="tvnit" draft="contributed">Niutao</subdivision>
+ <subdivision type="tvnkf" draft="contributed">Nukufetau</subdivision>
+ <subdivision type="tvnkl" draft="contributed">Nukulaelae</subdivision>
+ <subdivision type="tvnma" draft="contributed">Nanumea</subdivision>
+ <subdivision type="tvnmg" draft="contributed">Nanumanga</subdivision>
+ <subdivision type="tvnui" draft="contributed">Nui</subdivision>
+ <subdivision type="tvvai" draft="contributed">Vaitupu</subdivision>
+ <subdivision type="twcha" draft="contributed">Changhua Fylke</subdivision>
+ <subdivision type="twcyi" draft="contributed">Chiayi Fylke</subdivision>
+ <subdivision type="twcyq" draft="contributed">Chiayi</subdivision>
+ <subdivision type="twhsq" draft="contributed">Hsinchu Fylke</subdivision>
+ <subdivision type="twhsz" draft="contributed">Hsinchu</subdivision>
+ <subdivision type="twhua" draft="contributed">Hualien Fylke</subdivision>
+ <subdivision type="twila" draft="contributed">Yilan Fylke</subdivision>
+ <subdivision type="twkee" draft="contributed">Chilung</subdivision>
+ <subdivision type="twkhh" draft="contributed">Kaohsiung</subdivision>
+ <subdivision type="twkin" draft="contributed">Kinmen</subdivision>
+ <subdivision type="twmia" draft="contributed">Miaoli Fylke</subdivision>
+ <subdivision type="twnan" draft="contributed">Nantou fylk</subdivision>
+ <subdivision type="twpif" draft="contributed">Pingtung fylke</subdivision>
+ <subdivision type="twtao" draft="contributed">Toayuan By</subdivision>
+ <subdivision type="twtnn" draft="contributed">Tainan</subdivision>
+ <subdivision type="twtpe" draft="contributed">Taipei</subdivision>
+ <subdivision type="twttt" draft="contributed">Taitung Fylke</subdivision>
+ <subdivision type="twtxg" draft="contributed">Taichung</subdivision>
+ <subdivision type="twyun" draft="contributed">Yunlin County</subdivision>
+ <subdivision type="tz01" draft="contributed">Arusha</subdivision>
+ <subdivision type="tz02" draft="contributed">Dar-es-Salaam</subdivision>
+ <subdivision type="tz03" draft="contributed">Dodoma</subdivision>
+ <subdivision type="tz04" draft="contributed">Iringa</subdivision>
+ <subdivision type="tz05" draft="contributed">Kagera</subdivision>
+ <subdivision type="tz06" draft="contributed">Pemba Kaskazini</subdivision>
+ <subdivision type="tz07" draft="contributed">Unguja Kaskazini</subdivision>
+ <subdivision type="tz08" draft="contributed">Kigoma</subdivision>
+ <subdivision type="tz09" draft="contributed">Kilimanjaro</subdivision>
+ <subdivision type="tz10" draft="contributed">Pemba Kusini</subdivision>
+ <subdivision type="tz11" draft="contributed">Unguja Kusini</subdivision>
+ <subdivision type="tz12" draft="contributed">Lindi</subdivision>
+ <subdivision type="tz13" draft="contributed">Mara</subdivision>
+ <subdivision type="tz14" draft="contributed">Mbeya</subdivision>
+ <subdivision type="tz15" draft="contributed">Unguja Mjini Magharibi</subdivision>
+ <subdivision type="tz16" draft="contributed">Morogoro</subdivision>
+ <subdivision type="tz17" draft="contributed">Mtwara</subdivision>
+ <subdivision type="tz18" draft="contributed">Mwanza</subdivision>
+ <subdivision type="tz19" draft="contributed">Pwani</subdivision>
+ <subdivision type="tz20" draft="contributed">Rukwa</subdivision>
+ <subdivision type="tz21" draft="contributed">Ruvuma</subdivision>
+ <subdivision type="tz22" draft="contributed">Shinyanga</subdivision>
+ <subdivision type="tz23" draft="contributed">Singida</subdivision>
+ <subdivision type="tz24" draft="contributed">Tabora</subdivision>
+ <subdivision type="tz25" draft="contributed">Tanga</subdivision>
+ <subdivision type="tz26" draft="contributed">Manyara</subdivision>
+ <subdivision type="tz27" draft="contributed">Geita</subdivision>
+ <subdivision type="tz28" draft="contributed">Katavi</subdivision>
+ <subdivision type="tz29" draft="contributed">Njombe</subdivision>
+ <subdivision type="tz30" draft="contributed">Simiyu</subdivision>
+ <subdivision type="ua05" draft="contributed">Vinnytsia oblast</subdivision>
+ <subdivision type="ua07" draft="contributed">Volyn oblast</subdivision>
+ <subdivision type="ua09" draft="contributed">Luhansk oblast</subdivision>
+ <subdivision type="ua12" draft="contributed">Dnipropetrovsk oblast</subdivision>
+ <subdivision type="ua14" draft="contributed">Donetsk oblast</subdivision>
+ <subdivision type="ua18" draft="contributed">Zjytomyr oblast</subdivision>
+ <subdivision type="ua21" draft="contributed">Zakarpattja oblast</subdivision>
+ <subdivision type="ua23" draft="contributed">Zaporizjzja oblast</subdivision>
+ <subdivision type="ua26" draft="contributed">Ivano-Frankivsk oblast</subdivision>
+ <subdivision type="ua30" draft="contributed">Kiev</subdivision>
+ <subdivision type="ua32" draft="contributed">Kiev oblast</subdivision>
+ <subdivision type="ua35" draft="contributed">Kirovohrad oblast</subdivision>
+ <subdivision type="ua40" draft="contributed">Sevastopol</subdivision>
+ <subdivision type="ua43" draft="contributed">Den autonome republikken Krim</subdivision>
+ <subdivision type="ua46" draft="contributed">Lviv oblast</subdivision>
+ <subdivision type="ua48" draft="contributed">Mykolajiv oblast</subdivision>
+ <subdivision type="ua51" draft="contributed">Odessa oblast</subdivision>
+ <subdivision type="ua53" draft="contributed">Poltava oblast</subdivision>
+ <subdivision type="ua56" draft="contributed">Rivne oblast</subdivision>
+ <subdivision type="ua59" draft="contributed">Sumy oblast</subdivision>
+ <subdivision type="ua61" draft="contributed">Ternopil oblast</subdivision>
+ <subdivision type="ua63" draft="contributed">Kharkiv oblast</subdivision>
+ <subdivision type="ua65" draft="contributed">Kherson oblast</subdivision>
+ <subdivision type="ua68" draft="contributed">Khmelnytskyj oblast</subdivision>
+ <subdivision type="ua71" draft="contributed">Tsjerkasy oblast</subdivision>
+ <subdivision type="ua74" draft="contributed">Tsjernihiv oblast</subdivision>
+ <subdivision type="ua77" draft="contributed">Tsjernivtsi oblast</subdivision>
+ <subdivision type="ug101" draft="contributed">Kalangala</subdivision>
+ <subdivision type="ug102" draft="contributed">Kampala</subdivision>
+ <subdivision type="ug103" draft="contributed">Kiboga</subdivision>
+ <subdivision type="ug104" draft="contributed">Luweero</subdivision>
+ <subdivision type="ug105" draft="contributed">Masaka</subdivision>
+ <subdivision type="ug106" draft="contributed">Mpigi</subdivision>
+ <subdivision type="ug107" draft="contributed">Mubende</subdivision>
+ <subdivision type="ug108" draft="contributed">Mukono</subdivision>
+ <subdivision type="ug109" draft="contributed">Nakasongola</subdivision>
+ <subdivision type="ug110" draft="contributed">Rakai</subdivision>
+ <subdivision type="ug111" draft="contributed">Sembabule</subdivision>
+ <subdivision type="ug112" draft="contributed">Kayunga</subdivision>
+ <subdivision type="ug113" draft="contributed">Wakiso</subdivision>
+ <subdivision type="ug114" draft="contributed">Lyantonde</subdivision>
+ <subdivision type="ug115" draft="contributed">Mityana</subdivision>
+ <subdivision type="ug116" draft="contributed">Lyantonde²</subdivision>
+ <subdivision type="ug117" draft="contributed">Buikwe</subdivision>
+ <subdivision type="ug118" draft="contributed">Bukomansimbi</subdivision>
+ <subdivision type="ug119" draft="contributed">Butambala</subdivision>
+ <subdivision type="ug120" draft="contributed">Buvuma</subdivision>
+ <subdivision type="ug121" draft="contributed">Gomba</subdivision>
+ <subdivision type="ug122" draft="contributed">Kalungu</subdivision>
+ <subdivision type="ug123" draft="contributed">Kyankwanzi</subdivision>
+ <subdivision type="ug124" draft="contributed">Lwengo</subdivision>
+ <subdivision type="ug201" draft="contributed">Bugiri</subdivision>
+ <subdivision type="ug202" draft="contributed">Busia</subdivision>
+ <subdivision type="ug203" draft="contributed">Iganga</subdivision>
+ <subdivision type="ug204" draft="contributed">Jinja</subdivision>
+ <subdivision type="ug205" draft="contributed">Kamuli</subdivision>
+ <subdivision type="ug206" draft="contributed">Kapchorwa</subdivision>
+ <subdivision type="ug207" draft="contributed">Katakwi</subdivision>
+ <subdivision type="ug208" draft="contributed">Kumi</subdivision>
+ <subdivision type="ug209" draft="contributed">Mbale</subdivision>
+ <subdivision type="ug210" draft="contributed">Pallisa</subdivision>
+ <subdivision type="ug211" draft="contributed">Soroti</subdivision>
+ <subdivision type="ug212" draft="contributed">Tororo</subdivision>
+ <subdivision type="ug213" draft="contributed">Kaberamaido</subdivision>
+ <subdivision type="ug214" draft="contributed">Mayuge</subdivision>
+ <subdivision type="ug215" draft="contributed">Sironko</subdivision>
+ <subdivision type="ug216" draft="contributed">Amuria</subdivision>
+ <subdivision type="ug217" draft="contributed">Budaka</subdivision>
+ <subdivision type="ug218" draft="contributed">Bududa</subdivision>
+ <subdivision type="ug219" draft="contributed">Butaleja</subdivision>
+ <subdivision type="ug220" draft="contributed">Kaliro</subdivision>
+ <subdivision type="ug221" draft="contributed">Manafwa</subdivision>
+ <subdivision type="ug222" draft="contributed">Kaliro²</subdivision>
+ <subdivision type="ug223" draft="contributed">Manafwa²</subdivision>
+ <subdivision type="ug224" draft="contributed">Bukedea</subdivision>
+ <subdivision type="ug225" draft="contributed">Bulambuli</subdivision>
+ <subdivision type="ug226" draft="contributed">Buyende</subdivision>
+ <subdivision type="ug227" draft="contributed">Kibuku</subdivision>
+ <subdivision type="ug228" draft="contributed">Kween</subdivision>
+ <subdivision type="ug229" draft="contributed">Luuka</subdivision>
+ <subdivision type="ug230" draft="contributed">Namayingo</subdivision>
+ <subdivision type="ug231" draft="contributed">Ngora</subdivision>
+ <subdivision type="ug232" draft="contributed">Serere</subdivision>
+ <subdivision type="ug301" draft="contributed">Adjumani</subdivision>
+ <subdivision type="ug302" draft="contributed">Apac</subdivision>
+ <subdivision type="ug303" draft="contributed">Arua</subdivision>
+ <subdivision type="ug304" draft="contributed">Gulu</subdivision>
+ <subdivision type="ug305" draft="contributed">Kitgum</subdivision>
+ <subdivision type="ug306" draft="contributed">Kotido</subdivision>
+ <subdivision type="ug307" draft="contributed">Lira</subdivision>
+ <subdivision type="ug308" draft="contributed">Moroto</subdivision>
+ <subdivision type="ug309" draft="contributed">Moyo</subdivision>
+ <subdivision type="ug310" draft="contributed">Nebbi</subdivision>
+ <subdivision type="ug311" draft="contributed">Nakapiripirit</subdivision>
+ <subdivision type="ug312" draft="contributed">Pader</subdivision>
+ <subdivision type="ug313" draft="contributed">Yumbe</subdivision>
+ <subdivision type="ug314" draft="contributed">Abim</subdivision>
+ <subdivision type="ug315" draft="contributed">Amolatar</subdivision>
+ <subdivision type="ug316" draft="contributed">Amuru</subdivision>
+ <subdivision type="ug317" draft="contributed">Abim²</subdivision>
+ <subdivision type="ug318" draft="contributed">Dokolo</subdivision>
+ <subdivision type="ug319" draft="contributed">Amuru²</subdivision>
+ <subdivision type="ug320" draft="contributed">Maracha</subdivision>
+ <subdivision type="ug321" draft="contributed">Oyam</subdivision>
+ <subdivision type="ug322" draft="contributed">Agago</subdivision>
+ <subdivision type="ug323" draft="contributed">Alebtong</subdivision>
+ <subdivision type="ug324" draft="contributed">Amudat</subdivision>
+ <subdivision type="ug325" draft="contributed">Kole</subdivision>
+ <subdivision type="ug326" draft="contributed">Lamwo</subdivision>
+ <subdivision type="ug327" draft="contributed">Napak</subdivision>
+ <subdivision type="ug328" draft="contributed">Nwoya</subdivision>
+ <subdivision type="ug329" draft="contributed">Otuke</subdivision>
+ <subdivision type="ug330" draft="contributed">Zombo</subdivision>
+ <subdivision type="ug401" draft="contributed">Bundibugyo</subdivision>
+ <subdivision type="ug402" draft="contributed">Bushenyi</subdivision>
+ <subdivision type="ug403" draft="contributed">Hoima</subdivision>
+ <subdivision type="ug404" draft="contributed">Kabale</subdivision>
+ <subdivision type="ug405" draft="contributed">Kabarole</subdivision>
+ <subdivision type="ug406" draft="contributed">Kasese</subdivision>
+ <subdivision type="ug407" draft="contributed">Kibaale</subdivision>
+ <subdivision type="ug408" draft="contributed">Kisoro</subdivision>
+ <subdivision type="ug409" draft="contributed">Masindi</subdivision>
+ <subdivision type="ug410" draft="contributed">Mbarara</subdivision>
+ <subdivision type="ug411" draft="contributed">Ntungamo</subdivision>
+ <subdivision type="ug412" draft="contributed">Rukungiri</subdivision>
+ <subdivision type="ug413" draft="contributed">Kamwenge</subdivision>
+ <subdivision type="ug414" draft="contributed">Kanungu</subdivision>
+ <subdivision type="ug415" draft="contributed">Kyenjojo</subdivision>
+ <subdivision type="ug416" draft="contributed">Ibanda</subdivision>
+ <subdivision type="ug417" draft="contributed">Isingiro</subdivision>
+ <subdivision type="ug418" draft="contributed">Isingiro²</subdivision>
+ <subdivision type="ug419" draft="contributed">Kiruhura</subdivision>
+ <subdivision type="ug420" draft="contributed">Buhweju</subdivision>
+ <subdivision type="ug421" draft="contributed">Kiryandongo</subdivision>
+ <subdivision type="ug422" draft="contributed">Kyegegwa</subdivision>
+ <subdivision type="ug423" draft="contributed">Mitooma</subdivision>
+ <subdivision type="ug424" draft="contributed">Ntoroko</subdivision>
+ <subdivision type="ug425" draft="contributed">Rubirizi</subdivision>
+ <subdivision type="ug426" draft="contributed">Sheema</subdivision>
+ <subdivision type="ugc" draft="contributed">Central</subdivision>
+ <subdivision type="uge" draft="contributed">Eastern</subdivision>
+ <subdivision type="ugn" draft="contributed">Northern</subdivision>
+ <subdivision type="ugw" draft="contributed">Western</subdivision>
+ <subdivision type="um67" draft="contributed">Johnston Atoll</subdivision>
+ <subdivision type="um71" draft="contributed">Midwayøyene</subdivision>
+ <subdivision type="um76" draft="contributed">Navassaøya</subdivision>
+ <subdivision type="um79" draft="contributed">Wake Island</subdivision>
+ <subdivision type="um81" draft="contributed">Bakerøya</subdivision>
+ <subdivision type="um84" draft="contributed">Howlandøya</subdivision>
+ <subdivision type="um86" draft="contributed">Jarvisøya</subdivision>
+ <subdivision type="um89" draft="contributed">Kingman Reef</subdivision>
+ <subdivision type="um95" draft="contributed">Palmyra Atoll</subdivision>
+ <subdivision type="usak" draft="contributed">Alaska</subdivision>
+ <subdivision type="usal" draft="contributed">Alabama</subdivision>
+ <subdivision type="usar" draft="contributed">Arkansas</subdivision>
+ <subdivision type="usaz" draft="contributed">Arizona</subdivision>
+ <subdivision type="usca" draft="contributed">California</subdivision>
+ <subdivision type="usco" draft="contributed">Colorado</subdivision>
+ <subdivision type="usct" draft="contributed">Connecticut</subdivision>
+ <subdivision type="usdc" draft="contributed">Washington D.C.</subdivision>
+ <subdivision type="usde" draft="contributed">Delaware</subdivision>
+ <subdivision type="usfl" draft="contributed">Florida</subdivision>
+ <subdivision type="usga" draft="contributed">Georgia</subdivision>
+ <subdivision type="ushi" draft="contributed">Hawaii</subdivision>
+ <subdivision type="usia" draft="contributed">Iowa</subdivision>
+ <subdivision type="usid" draft="contributed">Idaho</subdivision>
+ <subdivision type="usil" draft="contributed">Illinois</subdivision>
+ <subdivision type="usin" draft="contributed">Indiana</subdivision>
+ <subdivision type="usks" draft="contributed">Kansas</subdivision>
+ <subdivision type="usky" draft="contributed">Kentucky</subdivision>
+ <subdivision type="usla" draft="contributed">Louisiana</subdivision>
+ <subdivision type="usma" draft="contributed">Massachusetts</subdivision>
+ <subdivision type="usmd" draft="contributed">Maryland</subdivision>
+ <subdivision type="usme" draft="contributed">Maine</subdivision>
+ <subdivision type="usmi" draft="contributed">Michigan</subdivision>
+ <subdivision type="usmn" draft="contributed">Minnesota</subdivision>
+ <subdivision type="usmo" draft="contributed">Missouri</subdivision>
+ <subdivision type="usms" draft="contributed">Mississippi</subdivision>
+ <subdivision type="usmt" draft="contributed">Montana</subdivision>
+ <subdivision type="usnc" draft="contributed">Nord-Carolina</subdivision>
+ <subdivision type="usnd" draft="contributed">Nord-Dakota</subdivision>
+ <subdivision type="usne" draft="contributed">Nebraska</subdivision>
+ <subdivision type="usnh" draft="contributed">New Hampshire</subdivision>
+ <subdivision type="usnj" draft="contributed">New Jersey</subdivision>
+ <subdivision type="usnm" draft="contributed">New Mexico</subdivision>
+ <subdivision type="usnv" draft="contributed">Nevada</subdivision>
+ <subdivision type="usny" draft="contributed">New York</subdivision>
+ <subdivision type="usoh" draft="contributed">Ohio</subdivision>
+ <subdivision type="usok" draft="contributed">Oklahoma</subdivision>
+ <subdivision type="usor" draft="contributed">Oregon</subdivision>
+ <subdivision type="uspa" draft="contributed">Pennsylvania</subdivision>
+ <subdivision type="usri" draft="contributed">Rhode Island</subdivision>
+ <subdivision type="ussc" draft="contributed">Sør-Carolina</subdivision>
+ <subdivision type="ussd" draft="contributed">Sør-Dakota</subdivision>
+ <subdivision type="ustn" draft="contributed">Tennessee</subdivision>
+ <subdivision type="ustx" draft="contributed">Texas</subdivision>
+ <subdivision type="usut" draft="contributed">Utah</subdivision>
+ <subdivision type="usva" draft="contributed">Virginia</subdivision>
+ <subdivision type="usvt" draft="contributed">Vermont</subdivision>
+ <subdivision type="uswa" draft="contributed">Washington</subdivision>
+ <subdivision type="uswi" draft="contributed">Wisconsin</subdivision>
+ <subdivision type="uswv" draft="contributed">Vest-Virginia</subdivision>
+ <subdivision type="uswy" draft="contributed">Wyoming</subdivision>
+ <subdivision type="uyar" draft="contributed">Artigas</subdivision>
+ <subdivision type="uyca" draft="contributed">Canelones</subdivision>
+ <subdivision type="uycl" draft="contributed">Cerro Largo</subdivision>
+ <subdivision type="uyco" draft="contributed">Colonia (departement)</subdivision>
+ <subdivision type="uydu" draft="contributed">Durazno</subdivision>
+ <subdivision type="uyfd" draft="contributed">Florida</subdivision>
+ <subdivision type="uyfs" draft="contributed">Flores</subdivision>
+ <subdivision type="uyla" draft="contributed">Lavalleja</subdivision>
+ <subdivision type="uyma" draft="contributed">Maldonado</subdivision>
+ <subdivision type="uymo" draft="contributed">Montevideo</subdivision>
+ <subdivision type="uypa" draft="contributed">Paysandú</subdivision>
+ <subdivision type="uyrn" draft="contributed">Río Negro</subdivision>
+ <subdivision type="uyro" draft="contributed">Rocha</subdivision>
+ <subdivision type="uyrv" draft="contributed">Rivera</subdivision>
+ <subdivision type="uysa" draft="contributed">Salto</subdivision>
+ <subdivision type="uysj" draft="contributed">San José</subdivision>
+ <subdivision type="uyso" draft="contributed">Soriano</subdivision>
+ <subdivision type="uyta" draft="contributed">Tacuarembó</subdivision>
+ <subdivision type="uytt" draft="contributed">Treinta y Tres</subdivision>
+ <subdivision type="uzan" draft="contributed">Andijan region</subdivision>
+ <subdivision type="uzbu" draft="contributed">Bukhara region</subdivision>
+ <subdivision type="uzfa" draft="contributed">Fergana region</subdivision>
+ <subdivision type="uzji" draft="contributed">Jizzakh region</subdivision>
+ <subdivision type="uzng" draft="contributed">Namangan region</subdivision>
+ <subdivision type="uznw" draft="contributed">Navoiy region</subdivision>
+ <subdivision type="uzqa" draft="contributed">Qashqadryo region</subdivision>
+ <subdivision type="uzqr" draft="contributed">Karakalpakstan</subdivision>
+ <subdivision type="uzsa" draft="contributed">Samarqand region</subdivision>
+ <subdivision type="uzsi" draft="contributed">Sirdarya region</subdivision>
+ <subdivision type="uzsu" draft="contributed">Surxondaryo region</subdivision>
+ <subdivision type="uztk" draft="contributed">Tasjkent</subdivision>
+ <subdivision type="uzto" draft="contributed">Tashkent region</subdivision>
+ <subdivision type="uzxo" draft="contributed">Xorazm region</subdivision>
+ <subdivision type="vc01" draft="contributed">Charlotte prestegjeld</subdivision>
+ <subdivision type="vc02" draft="contributed">Saint Andrew prestegjeld</subdivision>
+ <subdivision type="vc03" draft="contributed">Saint David prestegjeld</subdivision>
+ <subdivision type="vc04" draft="contributed">Saint George prestegjeld</subdivision>
+ <subdivision type="vc05" draft="contributed">Saint Patrick prestegjeld</subdivision>
+ <subdivision type="vc06" draft="contributed">Grenadines prestegjeld</subdivision>
+ <subdivision type="vea" draft="contributed">Hovedstad</subdivision>
+ <subdivision type="veb" draft="contributed">Anzoátegui</subdivision>
+ <subdivision type="vec" draft="contributed">Apure</subdivision>
+ <subdivision type="ved" draft="contributed">Aragua</subdivision>
+ <subdivision type="vee" draft="contributed">Barinas</subdivision>
+ <subdivision type="vef" draft="contributed">Bolívar</subdivision>
+ <subdivision type="veg" draft="contributed">Carabobo</subdivision>
+ <subdivision type="veh" draft="contributed">Cojedes</subdivision>
+ <subdivision type="vei" draft="contributed">Falcón</subdivision>
+ <subdivision type="vej" draft="contributed">Guárico</subdivision>
+ <subdivision type="vek" draft="contributed">Lara</subdivision>
+ <subdivision type="vel" draft="contributed">Mérida</subdivision>
+ <subdivision type="vem" draft="contributed">Miranda</subdivision>
+ <subdivision type="ven" draft="contributed">Monagas</subdivision>
+ <subdivision type="veo" draft="contributed">Nueva Esparta</subdivision>
+ <subdivision type="vep" draft="contributed">Portuguesa</subdivision>
+ <subdivision type="ver" draft="contributed">Sucre</subdivision>
+ <subdivision type="ves" draft="contributed">Táchira</subdivision>
+ <subdivision type="vet" draft="contributed">Trujillo</subdivision>
+ <subdivision type="veu" draft="contributed">Yaracuy</subdivision>
+ <subdivision type="vev" draft="contributed">Zulia</subdivision>
+ <subdivision type="vew" draft="contributed">Føderal avhengighet av Venezuela</subdivision>
+ <subdivision type="vex" draft="contributed">Vargas</subdivision>
+ <subdivision type="vey" draft="contributed">Delta Amacuro</subdivision>
+ <subdivision type="vez" draft="contributed">Amazonas</subdivision>
+ <subdivision type="vn01" draft="contributed">La Chau</subdivision>
+ <subdivision type="vn02" draft="contributed">Lao Cai</subdivision>
+ <subdivision type="vn03" draft="contributed">Ha Giang</subdivision>
+ <subdivision type="vn04" draft="contributed">Cao Bang</subdivision>
+ <subdivision type="vn05" draft="contributed">Son La</subdivision>
+ <subdivision type="vn06" draft="contributed">Yen Bai</subdivision>
+ <subdivision type="vn07" draft="contributed">Tuyenn Quang</subdivision>
+ <subdivision type="vn09" draft="contributed">Lang Son</subdivision>
+ <subdivision type="vn13" draft="contributed">Quang Ninh</subdivision>
+ <subdivision type="vn14" draft="contributed">Hoa Binh</subdivision>
+ <subdivision type="vn18" draft="contributed">Ninh Bình</subdivision>
+ <subdivision type="vn20" draft="contributed">Thái Bình</subdivision>
+ <subdivision type="vn21" draft="contributed">Thanh Hoa</subdivision>
+ <subdivision type="vn22" draft="contributed">Nghe An</subdivision>
+ <subdivision type="vn23" draft="contributed">Ha Tinh</subdivision>
+ <subdivision type="vn24" draft="contributed">Quang Binh</subdivision>
+ <subdivision type="vn25" draft="contributed">Quang Tri</subdivision>
+ <subdivision type="vn26" draft="contributed">Thua Thien-Hue</subdivision>
+ <subdivision type="vn27" draft="contributed">Quang Nam</subdivision>
+ <subdivision type="vn28" draft="contributed">Kon Tum (provins)</subdivision>
+ <subdivision type="vn29" draft="contributed">Quang Ngai</subdivision>
+ <subdivision type="vn30" draft="contributed">Gia Lai</subdivision>
+ <subdivision type="vn31" draft="contributed">Binh Dinh</subdivision>
+ <subdivision type="vn32" draft="contributed">Phu Yen</subdivision>
+ <subdivision type="vn33" draft="contributed">Dak Lak</subdivision>
+ <subdivision type="vn34" draft="contributed">Khanh Hoa</subdivision>
+ <subdivision type="vn35" draft="contributed">Lam Dong</subdivision>
+ <subdivision type="vn36" draft="contributed">Ninh Thuận</subdivision>
+ <subdivision type="vn37" draft="contributed">Tay Ninh</subdivision>
+ <subdivision type="vn40" draft="contributed">Binh Thuan</subdivision>
+ <subdivision type="vn41" draft="contributed">Long An</subdivision>
+ <subdivision type="vn43" draft="contributed">Ba Ria Vung Tau</subdivision>
+ <subdivision type="vn44" draft="contributed">An Giang</subdivision>
+ <subdivision type="vn45" draft="contributed">Dong Thap provins</subdivision>
+ <subdivision type="vn46" draft="contributed">Tein Giang</subdivision>
+ <subdivision type="vn47" draft="contributed">Kien Giang</subdivision>
+ <subdivision type="vn49" draft="contributed">Ving Long</subdivision>
+ <subdivision type="vn50" draft="contributed">Ben Tre</subdivision>
+ <subdivision type="vn51" draft="contributed">Tra Vinh</subdivision>
+ <subdivision type="vn52" draft="contributed">Soc Trang</subdivision>
+ <subdivision type="vn54" draft="contributed">Bac Giang</subdivision>
+ <subdivision type="vn55" draft="contributed">Bac Lieu</subdivision>
+ <subdivision type="vn56" draft="contributed">Bac Ninh</subdivision>
+ <subdivision type="vn57" draft="contributed">Binh Duong</subdivision>
+ <subdivision type="vn58" draft="contributed">Binh Phuroc</subdivision>
+ <subdivision type="vn59" draft="contributed">Ca Mau</subdivision>
+ <subdivision type="vn61" draft="contributed">Hai Doung</subdivision>
+ <subdivision type="vn63" draft="contributed">Ha Nam</subdivision>
+ <subdivision type="vn67" draft="contributed">Nam Dinh</subdivision>
+ <subdivision type="vn68" draft="contributed">Phu Tho</subdivision>
+ <subdivision type="vn69" draft="contributed">Thai Nguyen</subdivision>
+ <subdivision type="vn70" draft="contributed">Vinh Phuc</subdivision>
+ <subdivision type="vn71" draft="contributed">Dien Bien</subdivision>
+ <subdivision type="vn72" draft="contributed">Dak Nong</subdivision>
+ <subdivision type="vn73" draft="contributed">Hau Giang</subdivision>
+ <subdivision type="vnct" draft="contributed">Can Tho</subdivision>
+ <subdivision type="vndn" draft="contributed">Da Nang</subdivision>
+ <subdivision type="vnhn" draft="contributed">Hanoi</subdivision>
+ <subdivision type="vnhp" draft="contributed">Haiphong</subdivision>
+ <subdivision type="vnsg" draft="contributed">Ho Chi Minh-byen</subdivision>
+ <subdivision type="vumap" draft="contributed">Malampa</subdivision>
+ <subdivision type="vupam" draft="contributed">Penama</subdivision>
+ <subdivision type="vusam" draft="contributed">Sanma</subdivision>
+ <subdivision type="vusee" draft="contributed">Shefa</subdivision>
+ <subdivision type="vutae" draft="contributed">Tafea</subdivision>
+ <subdivision type="vutob" draft="contributed">Torba</subdivision>
+ <subdivision type="wfal" draft="contributed">Alo</subdivision>
+ <subdivision type="wfsg" draft="contributed">Sigave</subdivision>
+ <subdivision type="wfuv" draft="contributed">Uvea</subdivision>
+ <subdivision type="wsaa" draft="contributed">A’ana</subdivision>
+ <subdivision type="wsal" draft="contributed">Aiga-i-le-Tai</subdivision>
+ <subdivision type="wsat" draft="contributed">Atua</subdivision>
+ <subdivision type="wsfa" draft="contributed">Fa’asaleleaga</subdivision>
+ <subdivision type="wsge" draft="contributed">Gaga’emauga</subdivision>
+ <subdivision type="wsgi" draft="contributed">Gaga’ifomauga</subdivision>
+ <subdivision type="wspa" draft="contributed">Palauli</subdivision>
+ <subdivision type="wssa" draft="contributed">Satupa’itea</subdivision>
+ <subdivision type="wstu" draft="contributed">Tuamasaga</subdivision>
+ <subdivision type="wsvf" draft="contributed">Va’a-o-Fonoti</subdivision>
+ <subdivision type="wsvs" draft="contributed">Vaisigano</subdivision>
+ <subdivision type="yeab" draft="contributed">Abyan</subdivision>
+ <subdivision type="yeba" draft="contributed">Al Bayda’</subdivision>
+ <subdivision type="yeda" draft="contributed">Ad Dali’</subdivision>
+ <subdivision type="yedh" draft="contributed">Dhamar</subdivision>
+ <subdivision type="yehd" draft="contributed">Guvernementet Hadhramaut</subdivision>
+ <subdivision type="yehj" draft="contributed">Hajjah</subdivision>
+ <subdivision type="yehu" draft="contributed">Al Huaydah</subdivision>
+ <subdivision type="yeib" draft="contributed">Ibb</subdivision>
+ <subdivision type="yeja" draft="contributed">Al Jawf</subdivision>
+ <subdivision type="yela" draft="contributed">Lahij</subdivision>
+ <subdivision type="yema" draft="contributed">Ma’rib</subdivision>
+ <subdivision type="yemr" draft="contributed">Al-Mahrah</subdivision>
+ <subdivision type="yemw" draft="contributed">Al Mahwit</subdivision>
+ <subdivision type="yera" draft="contributed">Raymah</subdivision>
+ <subdivision type="yesa" draft="contributed">Sanaá</subdivision>
+ <subdivision type="yesd" draft="contributed">Sa’dah</subdivision>
+ <subdivision type="yesh" draft="contributed">Shabwah</subdivision>
+ <subdivision type="yesn" draft="contributed">Sanaá²</subdivision>
+ <subdivision type="yeta" draft="contributed">Ta’izz</subdivision>
+ <subdivision type="zaec" draft="contributed">Eastern Cape</subdivision>
+ <subdivision type="zafs" draft="contributed">Free State</subdivision>
+ <subdivision type="zagt" draft="contributed">Gauteng</subdivision>
+ <subdivision type="zalp" draft="contributed">Limpopo</subdivision>
+ <subdivision type="zamp" draft="contributed">Mpumalanga</subdivision>
+ <subdivision type="zanc" draft="contributed">Northern Cape</subdivision>
+ <subdivision type="zanl" draft="contributed">KwaZulu-Natal</subdivision>
+ <subdivision type="zanw" draft="contributed">North West</subdivision>
+ <subdivision type="zawc" draft="contributed">Western Cape</subdivision>
+ <subdivision type="zm01" draft="contributed">Western</subdivision>
+ <subdivision type="zm02" draft="contributed">Central</subdivision>
+ <subdivision type="zm03" draft="contributed">Eastern</subdivision>
+ <subdivision type="zm04" draft="contributed">Luapula</subdivision>
+ <subdivision type="zm05" draft="contributed">Northern</subdivision>
+ <subdivision type="zm06" draft="contributed">North-Western</subdivision>
+ <subdivision type="zm07" draft="contributed">Southern</subdivision>
+ <subdivision type="zm08" draft="contributed">Copperbelt</subdivision>
+ <subdivision type="zm09" draft="contributed">Lusaka</subdivision>
+ <subdivision type="zm10" draft="contributed">Muchinga</subdivision>
+ <subdivision type="zwha" draft="contributed">Harare Province</subdivision>
+ <subdivision type="zwma" draft="contributed">Manicaland</subdivision>
+ <subdivision type="zwmc" draft="contributed">Mashonaland Central</subdivision>
+ <subdivision type="zwme" draft="contributed">Mashonaland East</subdivision>
+ <subdivision type="zwmi" draft="contributed">Midlands</subdivision>
+ <subdivision type="zwmn" draft="contributed">Matabeleland North</subdivision>
+ <subdivision type="zwms" draft="contributed">Matabeleland South</subdivision>
+ <subdivision type="zwmv" draft="contributed">Masvingo</subdivision>
+ <subdivision type="zwmw" draft="contributed">Mashonaland West</subdivision>
+ </subdivisions>
+ </localeDisplayNames>
+</ldml>
diff --git a/common/supplemental/attributeValueValidity.xml b/common/supplemental/attributeValueValidity.xml
index 1b1eaa0..418d2a1 100644
--- a/common/supplemental/attributeValueValidity.xml
+++ b/common/supplemental/attributeValueValidity.xml
@@ -23,7 +23,7 @@
ka kab kam kde kea kgp khq ki kk kkj kl kln km kn ko kok ks ksb ksf ksh ku kw ky
lag lb lg lij lkt ln lo lrc lt lu luo luy lv
mai mas mer mfe mg mgh mgo mi mk ml mn mni mr ms mt mua my mzn
- naq nb nd nds ne nl nmg nn nnh nus nv nyn
+ naq nb nd nds ne nl nmg nn nnh no nus nv nyn
om or os
pa pcm pl prg ps pt
qu
@@ -121,7 +121,7 @@
<variable id='$internet' type='regex'>[A-Z]+|XN--[A-Z0-9]+([-][A-Z0-9]+)*</variable>
<variable id='$coverageSpecial' type='choice'>* Cldr:modern</variable>
<variable id='$collationPrivate' type='choice'>digits-after private-unihan private-kana private-pinyin</variable>
- <variable id='$languageDeprecated' type='choice'>no sh tw tl fat in mo ji iw jw</variable>
+ <variable id='$languageDeprecated' type='choice'>sh tw tl fat in mo ji iw jw</variable>
<variable id='$localeOrDeprecated'>$locale|$languageDeprecated</variable>
<variable id='$name' type='regex'>[a-zA-Z]+([-_][a-zA-Z]+)*[.]?|\d+|\([A-Z][a-z]+\)</variable>
<variable id='$defaultCurrencyInfo' type='choice'>DEFAULT</variable>
diff --git a/common/supplemental/coverageLevels.xml b/common/supplemental/coverageLevels.xml
index 2ab0bcb..0f5639e 100644
--- a/common/supplemental/coverageLevels.xml
+++ b/common/supplemental/coverageLevels.xml
@@ -21,9 +21,9 @@
<approvalRequirement votes="20" locales="*" paths="//ldml/numbers/symbols[^/]++/timeSeparator"/>
<approvalRequirement votes="20" locales="*" paths="//ldml/numbers/currencies/currency\[@type=.([A-Z]{3}).\]/symbol(\[@alt=.(narrow|variant).\])?"/>
<approvalRequirement votes="20" locales="*" paths="//ldml/dates/timeZoneNames/metazone[^/]++/short/[^/]++"/>
- <approvalRequirement votes="20" locales="ar ca cs da de el es fi fr he hi hr hu it ja ko nb nl pl pt pt_PT ro ru sk sl sr sv th tr uk vi zh zh_Hant"
+ <approvalRequirement votes="20" locales="ar ca cs da de el es fi fr he hi hr hu it ja ko nl no pl pt pt_PT ro ru sk sl sr sv th tr uk vi zh zh_Hant"
paths="//ldml/dates/calendars/calendar\[@type=.gregorian.\]/(days|months).*"/>
- <approvalRequirement votes="20" locales="ar ca cs da de el es fi fr he hi hr hu it ja ko nb nl pl pt pt_PT ro ru sk sl sr sv th tr uk vi zh zh_Hant"
+ <approvalRequirement votes="20" locales="ar ca cs da de el es fi fr he hi hr hu it ja ko nl no pl pt pt_PT ro ru sk sl sr sv th tr uk vi zh zh_Hant"
paths="//ldml/dates/calendars/calendar\[@type=.gregorian.\]/(date|time)Formats/.*"/>
<!-- "high bar" items for specific locales -->
<approvalRequirement votes="20" locales="de" paths="//ldml/dates/calendars/calendar[^/]++/dayPeriods/dayPeriodContext\[@type=.format.\]/dayPeriodWidth[^/]++/dayPeriod\[@type=.(am|pm).\]"/>
@@ -31,7 +31,7 @@
<approvalRequirement votes="20" locales="tr" paths="//ldml/localeDisplayNames/territories/territory\[@type=.CY.\]"/>
<approvalRequirement votes="20" locales="kea pt_CV" paths="//ldml/numbers/currencies/currency\[@type=.CVE.\]/(symbol|decimal)"/>
<!-- established locales - http://cldr.unicode.org/index/process#TOC-Draft-Status-of-Optimal-Field-Value -->
- <approvalRequirement votes="8" locales="am ar bn ca cs da de el en es et fa fi fil fr ga gu he hi hr hu id it ja kk kn ko ky lt lv mk ml mr ms nb nl pa pl pt pt_PT ro ru sk sl sr sv ta te th tr ur uk vi zh zh_Hant" paths=""/>
+ <approvalRequirement votes="8" locales="am ar bn ca cs da de el en es et fa fi fil fr ga gu he hi hr hu id it ja kk kn ko ky lt lv mk ml mr ms nl no pa pl pt pt_PT ro ru sk sl sr sv ta te th tr ur uk vi zh zh_Hant" paths=""/>
<!-- all other items -->
<approvalRequirement votes="4" locales="*" paths=""/>
</approvalRequirements>
@@ -62,8 +62,8 @@
<coverageVariable key="%currency40" value="(BRL|CNY|EUR|GBP|INR|JPY|RUB|USD)"/>
<coverageVariable key="%currency60" value="(AUD|CAD|CHF|DKK|HKD|IDR|KRW|MXN|NOK|PLN|SAR|SEK|THB|TRY|TWD|ZAR)"/>
<coverageVariable key="%currency60_EU" value="(CZK|HUF)"/>
- <coverageVariable key="%currency80" value="(AED|AFN|ALL|AMD|ANG|AOA|ARS|AWG|AZN|BAM|BBD|BDT|BGN|BHD|BIF|BMD|BND|BOB|BSD|BTN|BWP|BYN|BZD|CDF|CLP|CNH|COP|CRC|CUC|CUP|CVE|CZK|DJF|DOP|DZD|EGP|ERN|ETB|FJD|FKP|GEL|GHS|GIP|GMD|GNF|GTQ|GYD|HNL|HRK|HTG|HUF|ILS|IQD|IRR|ISK|JMD|JOD|KES|KGS|KHR|KMF|KPW|KWD|KYD|KZT|LAK|LBP|LKR|LRD|LYD|MAD|MDL|MGA|MKD|MMK|MNT|MOP|MRU|MUR|MVR|MWK|MYR|MZN|NAD|NGN|NIO|NPR|NZD|OMR|PAB|PEN|PGK|PHP|PKR|PYG|QAR|RON|RSD|RWF|SBD|SCR|SDG|SGD|SHP|SLL|SOS|SRD|SSP|STN|SYP|SZL|TJS|TMT|TND|TOP|TTD|TZS|UAH|UGX|UYU|UZS|VES|VND|VUV|WST|XCD|XAF|XOF|XPF|YER|ZMW)"/>
- <coverageVariable key="%currency100" value="(AFA|ADP|ALK|AO[KNR]|AR[ALMP]|ATS|AZM|BA[DN]|BE[CFL]|BG[LM]|BGO|BO[LPV]|BR[BCENRZ]|BUK|BY[BR]|CH[EW]|CL[EF]|CNX|COU|CS[DK]|CYP|DDM|DEM|EC[SV]|EEK|ES[ABP]|FIM|FRF|GEK|GHC|GNS|GQE|GRD|GW[EP]|HRD|IEP|IL[PR]|ISJ|ITL|KR[HO]|LSL|LT[LT]|LU[CFL]|LV[LR]|MAF|MCF|MDC|MGF|MKN|MLF|MRO|MT[LP]|MVP|MX[PV]|MZ[EM]|NIC|NLG|PE[IS]|PLZ|PTE|RHD|ROL|RUR|SD[DP]|SIT|SKK|SRG|STD|SUR|SVC|TJR|TMM|TPE|TRL|UAK|UGS|US[NS]|UY[IPW]|VE[BF]|VNN|XA[GU]|XB[ABCD]|XDR|XEU|XF[OU]|XP[DT]|XRE|XSU|XTS|XUA|YDD|YU[DMNR]|ZAL|ZMK|ZR[NZ]|ZW[DLR])"/>
+ <coverageVariable key="%currency80" value="(AED|AFN|ALL|AMD|ANG|AOA|ARS|AWG|AZN|BAM|BBD|BDT|BGN|BHD|BIF|BMD|BND|BOB|BSD|BTN|BWP|BYN|BZD|CDF|CLP|CNH|COP|CRC|CUC|CUP|CVE|CZK|DJF|DOP|DZD|EGP|ERN|ETB|FJD|FKP|GEL|GHS|GIP|GMD|GNF|GTQ|GYD|HNL|HRK|HTG|HUF|ILS|IQD|IRR|ISK|JMD|JOD|KES|KGS|KHR|KMF|KPW|KWD|KYD|KZT|LAK|LBP|LKR|LRD|LSL|LYD|MAD|MDL|MGA|MKD|MMK|MNT|MOP|MRU|MUR|MVR|MWK|MYR|MZN|NAD|NGN|NIO|NPR|NZD|OMR|PAB|PEN|PGK|PHP|PKR|PYG|QAR|RON|RSD|RWF|SBD|SCR|SDG|SGD|SHP|SLL|SOS|SRD|SSP|STN|SYP|SZL|TJS|TMT|TND|TOP|TTD|TZS|UAH|UGX|UYU|UZS|VES|VND|VUV|WST|XCD|XAF|XOF|XPF|YER|ZMW)"/>
+ <coverageVariable key="%currency100" value="(AFA|ADP|ALK|AO[KNR]|AR[ALMP]|ATS|AZM|BA[DN]|BE[CFL]|BG[LM]|BGO|BO[LPV]|BR[BCENRZ]|BUK|BY[BR]|CH[EW]|CL[EF]|CNX|COU|CS[DK]|CYP|DDM|DEM|EC[SV]|EEK|ES[ABP]|FIM|FRF|GEK|GHC|GNS|GQE|GRD|GW[EP]|HRD|IEP|IL[PR]|ISJ|ITL|KR[HO]|LT[LT]|LU[CFL]|LV[LR]|MAF|MCF|MDC|MGF|MKN|MLF|MRO|MT[LP]|MVP|MX[PV]|MZ[EM]|NIC|NLG|PE[IS]|PLZ|PTE|RHD|ROL|RUR|SD[DP]|SIT|SKK|SRG|STD|SUR|SVC|TJR|TMM|TPE|TRL|UAK|UGS|US[NS]|UY[IPW]|VE[BF]|VNN|XA[GU]|XB[ABCD]|XDR|XEU|XF[OU]|XP[DT]|XRE|XSU|XTS|XUA|YDD|YU[DMNR]|ZAL|ZMK|ZR[NZ]|ZW[DLR])"/>
<coverageVariable key="%cyclicNameTypes" value="([1-9]?[0-9])"/>
<coverageVariable key="%d0Types80" value="(ascii|fwidth|hwidth|lower|title|upper)"/>
<coverageVariable key="%dateFormatItems" value="((E|d|Ed|EEEEd)|((Gy|y|yyyy|U)?(M|Md|MEd|MEEEEd|MMM|MMMd|MMMEd|MMMEEEEd|MMMM|MMMMd|MMMMEd|MMMMEEEEd))|((Gy|y|yyyy)(QQQ|QQQQ)?))"/>
@@ -99,7 +99,7 @@
<coverageVariable key="%language60_GA" value="(fan|mye)"/>
<coverageVariable key="%language60_NG" value="(ff|ha|ibb|ig|kr|yo)"/>
<coverageVariable key="%language60_TD" value="(shu|dzg|kbl|mde|mua|sba)"/>
- <coverageVariable key="%language80" value="(doi|a([fkmrz]|gq|s[at]?)|b([gm-os]|as|e[mz]?|rx?)|c([aosy]|cp|eb?|gg|hr|kb)|d([ez]|av?|je|sb|ua|yo)|e([elnos-u]|bu|wo)|f([afory]|il?|ur)|fa_AF|g([adlv]|sw|uz?)|h([eirtuy]|aw?|mn|sb)|i[adgist]|j([av]|go|mc)|k([imnuwy]|a[bm]?|de|ea|hq|kj?|ln?|ok?|s[bfh]?)|l([bgnotv]|ag?|kt|rc|u[oy]?)|m([iklr-ty]|a[is]|er|fe|g[ho]?|ni?|u[al]|zn)|n([bel]|aq|ds?|mg|nh?|us|yn?)|o[mrs]|p([alst]|cm)|qu|r([mnu]|of?|wk?)|s([dgiklnoqrt-w]|a[hqt]?|bp|e[hs]?|hi|mn?)|t([ag-ikort]|eo?|wq|zm)|u([gkrz]|nd)|v([i]|ai|un)|w(ae|o)|x(h|og)|y([io]|av|ue)|z([hu]|gh|xx))"/>
+ <coverageVariable key="%language80" value="(doi|a([fkmrz]|gq|s[at]?)|b([gm-os]|as|e[mz]?|rx?)|c([aosy]|cp|eb?|gg|hr|kb)|d([ez]|av?|je|sb|ua|yo)|e([elnos-u]|bu|wo)|f([afory]|il?|ur)|fa_AF|g([adlv]|sw|uz?)|h([eirtuy]|aw?|mn|sb)|i[adgist]|j([av]|go|mc)|k([imnuwy]|a[bm]?|de|ea|hq|kj?|ln?|ok?|s[bfh]?)|l([bgnotv]|ag?|kt|rc|u[oy]?)|m([iklr-ty]|a[is]|er|fe|g[ho]?|ni?|u[al]|zn)|n([belo]|aq|ds?|mg|nh?|us|yn?)|o[mrs]|p([alst]|cm)|qu|r([mnu]|of?|wk?)|s([dgiklnoqrt-w]|a[hqt]?|bp|e[hs]?|hi|mn?)|t([ag-ikort]|eo?|wq|zm)|u([gkrz]|nd)|v([i]|ai|un)|w(ae|o)|x(h|og)|y([io]|av|ue)|z([hu]|gh|xx))"/>
<coverageVariable key="%languagecomp" value="(gan|hak|hsn|nan|wuu)"/> <!-- not currently used, just for reference: the only valid language codes that are not in modern coverage -->
<coverageVariable key="%lbTypes80" value="(strict|normal|loose)"/>
<coverageVariable key="%lwTypes" value="(normal|breakall|keepall)"/>
@@ -816,15 +816,15 @@
<coverageLevel inLanguage="en" value="modern" match="units/unitLength[@type='%unitLengths']/unit[@type='%unitsEnglish']/gender"/>
<coverageLevel inLanguage="en" value="modern" match="units/unitLength[@type='%unitLengths']/unit[@type='%unitsEnglish']/perUnitPattern"/>
- <coverageLevel value="modern" match="units/unitLength[@type='%unitNonNarrowLengths']/compoundUnit[@type='%anyAttribute']/compoundUnitPattern1[@count='%anyAttribute'][@gender='%anyAttribute'][@case='%anyAttribute']"/>
- <coverageLevel value="modern" match="units/unitLength[@type='%unitNonNarrowLengths']/compoundUnit[@type='%anyAttribute']/compoundUnitPattern1[@count='%anyAttribute'][@gender='%anyAttribute']"/>
- <coverageLevel value="modern" match="units/unitLength[@type='%unitNonNarrowLengths']/compoundUnit[@type='%anyAttribute']/compoundUnitPattern1[@count='%anyAttribute'][@case='%anyAttribute']"/>
- <coverageLevel value="modern" match="units/unitLength[@type='%unitNonNarrowLengths']/compoundUnit[@type='%anyAttribute']/compoundUnitPattern1[@count='%anyAttribute']"/>
- <coverageLevel value="modern" match="units/unitLength[@type='%unitNonNarrowLengths']/unit[@type='%anyAttribute']/unitPattern[@count='%anyAttribute'][@case='%anyAttribute']"/>
- <coverageLevel value="modern" match="units/unitLength[@type='%unitNonNarrowLengths']/unit[@type='%anyAttribute']/unitPattern[@count='%anyAttribute']"/>
- <coverageLevel value="modern" match="units/unitLength[@type='%unitNonNarrowLengths']/unit[@type='%anyAttribute']/displayName"/>
- <coverageLevel value="modern" match="units/unitLength[@type='%unitNonNarrowLengths']/unit[@type='%anyAttribute']/gender"/>
- <coverageLevel value="modern" match="units/unitLength[@type='%unitNonNarrowLengths']/unit[@type='%anyAttribute']/perUnitPattern"/>
+ <coverageLevel value="modern" match="units/unitLength[@type='%unitLengths']/compoundUnit[@type='%anyAttribute']/compoundUnitPattern1[@count='%anyAttribute'][@gender='%anyAttribute'][@case='%anyAttribute']"/>
+ <coverageLevel value="modern" match="units/unitLength[@type='%unitLengths']/compoundUnit[@type='%anyAttribute']/compoundUnitPattern1[@count='%anyAttribute'][@gender='%anyAttribute']"/>
+ <coverageLevel value="modern" match="units/unitLength[@type='%unitLengths']/compoundUnit[@type='%anyAttribute']/compoundUnitPattern1[@count='%anyAttribute'][@case='%anyAttribute']"/>
+ <coverageLevel value="modern" match="units/unitLength[@type='%unitLengths']/compoundUnit[@type='%anyAttribute']/compoundUnitPattern1[@count='%anyAttribute']"/>
+ <coverageLevel value="modern" match="units/unitLength[@type='%unitLengths']/unit[@type='%anyAttribute']/unitPattern[@count='%anyAttribute'][@case='%anyAttribute']"/>
+ <coverageLevel value="modern" match="units/unitLength[@type='%unitLengths']/unit[@type='%anyAttribute']/unitPattern[@count='%anyAttribute']"/>
+ <coverageLevel value="modern" match="units/unitLength[@type='%unitLengths']/unit[@type='%anyAttribute']/displayName"/>
+ <coverageLevel value="modern" match="units/unitLength[@type='%unitLengths']/unit[@type='%anyAttribute']/gender"/>
+ <coverageLevel value="modern" match="units/unitLength[@type='%unitLengths']/unit[@type='%anyAttribute']/perUnitPattern"/>
<coverageLevel value="modern" match="localeDisplayNames/types/type[@key='calendar'][@type='%calendarType80']"/>
diff --git a/common/supplemental/dayPeriods.xml b/common/supplemental/dayPeriods.xml
index 22bf4c4..efd5163 100644
--- a/common/supplemental/dayPeriods.xml
+++ b/common/supplemental/dayPeriods.xml
@@ -59,7 +59,7 @@
<dayPeriodRule type="evening1" from="18:00" before="24:00"/> <!-- aften -->
<dayPeriodRule type="night1" from="00:00" before="05:00"/> <!-- nat -->
</dayPeriodRules>
- <dayPeriodRules locales="nb">
+ <dayPeriodRules locales="nb no">
<dayPeriodRule type="midnight" at="00:00"/> <!-- midnatt -->
<dayPeriodRule type="morning1" from="06:00" before="10:00"/> <!-- morgen -->
<dayPeriodRule type="morning2" from="10:00" before="12:00"/> <!-- formiddag -->
@@ -158,8 +158,8 @@
<dayPeriodRule type="noon" at="12:00"/> <!-- полдень -->
<dayPeriodRule type="morning1" from="04:00" before="12:00"/> <!-- утро -->
<dayPeriodRule type="afternoon1" from="12:00" before="18:00"/> <!-- день -->
- <dayPeriodRule type="evening1" from="18:00" before="24:00"/> <!-- вечер -->
- <dayPeriodRule type="night1" from="00:00" before="04:00"/> <!-- ночь -->
+ <dayPeriodRule type="evening1" from="18:00" before="22:00"/> <!-- вечер -->
+ <dayPeriodRule type="night1" from="22:00" before="04:00"/> <!-- ночь -->
</dayPeriodRules>
<dayPeriodRules locales="uk">
<dayPeriodRule type="midnight" at="00:00"/> <!-- північ -->
@@ -702,7 +702,7 @@
<dayPeriodRule type="evening1" from="18:00" before="24:00"/> <!-- aften -->
<dayPeriodRule type="night1" from="00:00" before="05:00"/> <!-- nat -->
</dayPeriodRules>
- <dayPeriodRules locales="nb">
+ <dayPeriodRules locales="nb no">
<dayPeriodRule type="morning1" from="06:00" before="10:00"/> <!-- morgen -->
<dayPeriodRule type="morning2" from="10:00" before="12:00"/> <!-- formiddag -->
<dayPeriodRule type="afternoon1" from="12:00" before="18:00"/> <!-- ettermiddag -->
@@ -841,8 +841,8 @@
<dayPeriodRules locales="ru">
<dayPeriodRule type="morning1" from="04:00" before="12:00"/> <!-- утро -->
<dayPeriodRule type="afternoon1" from="12:00" before="18:00"/> <!-- день -->
- <dayPeriodRule type="evening1" from="18:00" before="24:00"/> <!-- вечер -->
- <dayPeriodRule type="night1" from="00:00" before="04:00"/> <!-- ночь -->
+ <dayPeriodRule type="evening1" from="18:00" before="22:00"/> <!-- вечер -->
+ <dayPeriodRule type="night1" from="22:00" before="04:00"/> <!-- ночь -->
</dayPeriodRules>
<dayPeriodRules locales="uk">
<dayPeriodRule type="morning1" from="04:00" before="12:00"/> <!-- ранок -->
diff --git a/common/supplemental/grammaticalFeatures.xml b/common/supplemental/grammaticalFeatures.xml
index 443070a..fd6527a 100644
--- a/common/supplemental/grammaticalFeatures.xml
+++ b/common/supplemental/grammaticalFeatures.xml
@@ -33,30 +33,56 @@
<supplementalData>
<version number="$Revision: 1 $"/>
<grammaticalData>
- <grammaticalFeatures targets="nominal" locales="en fil ja ms th fil vi zh">
+ <grammaticalFeatures targets="nominal" locales="af en fil ja ko lo ms my ne sw th vi zh zu">
<!-- No grammatical features (number is not considered). -->
- <!-- Note both fil and tl are included -->
+ <!-- Zulu and Swahili, like other Bantu languages, has a notion
+ of noun class governing agreement of nouns and other
+ forms; since it is fixed for a given noun, we don't
+ consider it as an independent grammaticalFeature here. -->
</grammaticalFeatures>
- <grammaticalFeatures targets="nominal" locales="es fr it lij pt">
+ <grammaticalFeatures targets="nominal" locales="ca es fr it lij pt">
<grammaticalGender values="masculine feminine"/>
</grammaticalFeatures>
<grammaticalFeatures targets="nominal" locales="nl">
<grammaticalGender values="common neuter"/>
</grammaticalFeatures>
+ <grammaticalFeatures targets="nominal" locales="hy">
+ <grammaticalCase values="nominative ablative dative locative instrumental"/>
+ </grammaticalFeatures>
<grammaticalFeatures targets="nominal" locales="te">
<grammaticalCase values="nominative oblique accusative dative locative instrumental"/>
</grammaticalFeatures>
<grammaticalFeatures targets="nominal" locales="ta">
<grammaticalCase values="nominative genitive accusative dative locative instrumental ablative vocative"/>
</grammaticalFeatures>
- <grammaticalFeatures targets="nominal" locales="tr">
+ <grammaticalFeatures targets="nominal" locales="fi">
+ <grammaticalCase values="nominative abessive ablative adessive allative comitative elative essive genitive illative inessive instrumental partitive translative"/>
+ <!-- Finnish nouns also inflect in possessives, with agreement on number and person. -->
+ </grammaticalFeatures>
+ <grammaticalFeatures targets="nominal" locales="hu">
+ <grammaticalCase values="nominative ablative accusative adessive allative causal dative delative elative essive illative inessive instrumental sublative superessive terminative translative"/>
+ <!-- Hungarian nouns also inflect in possessives, with agreement on number and person. -->
+ </grammaticalFeatures>
+ <grammaticalFeatures targets="nominal" locales="kk tr">
<grammaticalCase values="nominative genitive dative accusative instrumental ablative locative"/>
<grammaticalCase scope="units"/>
</grammaticalFeatures>
+ <grammaticalFeatures targets="nominal" locales="az ky uz">
+ <grammaticalCase values="nominative genitive dative accusative ablative locative"/>
+ <grammaticalCase scope="units"/>
+ </grammaticalFeatures>
<grammaticalFeatures targets="nominal" locales="id">
<grammaticalDefiniteness values="definite indefinite"/>
<!-- Indonesian nouns inflect in a possessive expression, with agreement on person. -->
</grammaticalFeatures>
+ <grammaticalFeatures targets="nominal" locales="el">
+ <grammaticalCase values="nominative genitive accusative vocative"/>
+ <grammaticalGender values="masculine feminine neuter"/>
+ </grammaticalFeatures>
+ <grammaticalFeatures targets="nominal" locales="sl">
+ <grammaticalCase values="nominative genitive accusative dative instrumental locative"/>
+ <grammaticalGender values="masculine feminine neuter"/>
+ </grammaticalFeatures>
<grammaticalFeatures targets="nominal" locales="de">
<grammaticalCase values="nominative genitive dative accusative"/>
<grammaticalGender values="masculine feminine neuter"/>
@@ -91,12 +117,27 @@
<grammaticalDefiniteness values="definite indefinite construct"/>
<!-- Note that Arabic nouns also inflect in possessives, with agreement on person, number and gender -->
</grammaticalFeatures>
+ <grammaticalFeatures targets="nominal" locales="fa">
+ <grammaticalDefiniteness values="definite indefinite construct"/>
+ <!-- Note that Persian nouns also inflect in possessives, with agreement on person and number -->
+ </grammaticalFeatures>
<grammaticalFeatures targets="nominal" locales="bn">
<grammaticalCase values="nominative accusative genitive locative"/>
<grammaticalGender values="masculine feminine"/>
<grammaticalDefiniteness values="definite indefinite"/>
<!-- Gender is only used for expressing human activities/professions. -->
</grammaticalFeatures>
+ <grammaticalFeatures targets="nominal" locales="si">
+ <grammaticalCase values="nominative genitive ablative accusative dative"/>
+ <grammaticalGender values="masculine feminine neuter"/>
+ <grammaticalDefiniteness values="definite indefinite"/>
+ <!-- Neuter is only used for inanimate nouns; plurals have no definiteness marker. -->
+ </grammaticalFeatures>
+ <grammaticalFeatures targets="nominal" locales="is">
+ <grammaticalCase values="nominative genitive dative accusative"/>
+ <grammaticalGender values="masculine feminine neuter"/>
+ <grammaticalDefiniteness values="definite indefinite"/>
+ </grammaticalFeatures>
<grammaticalFeatures targets="nominal" locales="da">
<grammaticalCase values="nominative genitive"/>
<grammaticalCase scope="units"/>
@@ -114,14 +155,33 @@
<grammaticalGender values="masculine feminine neuter"/>
<grammaticalDefiniteness values="definite indefinite"/>
</grammaticalFeatures>
- <grammaticalFeatures targets="nominal" locales="nb">
+ <grammaticalFeatures targets="nominal" locales="am">
+ <!-- Note that nominals have intrinsic gender, and there is no
+ indefinite accusative -->
+ <grammaticalCase values="nominative accusative"/>
+ <grammaticalGender values="masculine feminine"/>
+ <grammaticalDefiniteness values="definite indefinite"/>
+ </grammaticalFeatures>
+ <grammaticalFeatures targets="nominal" locales="nb no">
<grammaticalCase values="nominative genitive"/>
<grammaticalCase scope="units"/>
<grammaticalGender values="masculine feminine neuter"/>
<grammaticalGender scope="units" values="masculine neuter"/>
<grammaticalDefiniteness values="definite indefinite"/>
</grammaticalFeatures>
- <grammaticalFeatures targets="nominal" locales="cs sk">
+ <grammaticalFeatures targets="nominal" locales="uk">
+ <grammaticalCase values="nominative genitive dative accusative instrumental vocative locative"/>
+ <grammaticalGender values="masculine feminine neuter"/>
+ </grammaticalFeatures>
+ <grammaticalFeatures targets="nominal" locales="lv">
+ <grammaticalCase values="nominative genitive dative accusative vocative locative"/>
+ <grammaticalGender values="masculine feminine"/>
+ </grammaticalFeatures>
+ <grammaticalFeatures targets="nominal" locales="lt">
+ <grammaticalCase values="nominative genitive dative accusative instrumental vocative locative"/>
+ <grammaticalGender values="masculine feminine"/>
+ </grammaticalFeatures>
+ <grammaticalFeatures targets="nominal" locales="cs hr sk sr">
<grammaticalCase values="nominative genitive dative accusative instrumental vocative locative"/>
<grammaticalGender values="animate inanimate feminine neuter"/>
<!-- Czech also inflects in polarity (negation is a prefix) -->
diff --git a/common/supplemental/languageGroup.xml b/common/supplemental/languageGroup.xml
index f4088d2..a74baa5 100644
--- a/common/supplemental/languageGroup.xml
+++ b/common/supplemental/languageGroup.xml
@@ -47,7 +47,7 @@
<languageGroup parent="fox">bnn bzg ckv dru fos pwn pyu ssf sxr tay trv tsu uun xnb xsy</languageGroup>
<languageGroup parent="gem">gme gmq gmw</languageGroup>
<languageGroup parent="gme">got xvn</languageGroup>
- <languageGroup parent="gmq">da fo is nb nn non nrn ovd rmg sv</languageGroup>
+ <languageGroup parent="gmq">da fo is nb nn no non nrn ovd rmg sv</languageGroup>
<languageGroup parent="gmw">af ang cim de dum en enm frk frr fy gct gmh gml goh gos gsw ksh lb li lng mhn nds nl odt ofs osx pdc pfl sco stq swg wae wep wym yec yi zea</languageGroup>
<languageGroup parent="grk">cpg el gmy grc pnt tsd yej</languageGroup>
<languageGroup parent="hmx">bje bpn buh bwn cqd hmd hml hmn hnj ium mji mmr mww pha pnu shx</languageGroup>
diff --git a/common/supplemental/languageInfo.xml b/common/supplemental/languageInfo.xml
index 669fb4a..860c425 100644
--- a/common/supplemental/languageInfo.xml
+++ b/common/supplemental/languageInfo.xml
@@ -14,10 +14,7 @@
<matchVariable id="$cnsar" value="HK+MO"/>
<matchVariable id="$americas" value="019"/>
<matchVariable id="$maghreb" value="MA+DZ+TN+LY+MR+EH"/>
- <!-- Android patch (CLDR ticket #2698) begin. -->
- <!-- <languageMatch desired="no" supported="nb" distance="1"/> --> <!-- no ⇒ nb -->
<languageMatch desired="nb" supported="no" distance="1"/> <!-- nb ⇒ no -->
- <!-- Android patch (CLDR ticket #2698) end. -->
<!-- languageMatch desired="ku" supported="ckb" distance="4" oneway="true"/ --> <!-- ku ⇒ ckb -->
<!-- languageMatch desired="ckb" supported="ku" percent="8" oneway="true"/ --> <!-- ckb ⇒ ku -->
<languageMatch desired="hr" supported="bs" distance="4"/> <!-- hr ⇒ bs -->
@@ -41,18 +38,23 @@
<languageMatch desired="ach" supported="en" distance="30" oneway="true"/> <!-- Acoli (Southern Luo dialect in Uganda): ach ⇒ en -->
<languageMatch desired="af" supported="nl" distance="20" oneway="true"/> <!-- Afrikaans: af ⇒ nl -->
<languageMatch desired="ak" supported="en" distance="30" oneway="true"/> <!-- Akan: ak ⇒ en -->
+ <languageMatch desired="am" supported="en" distance="30" oneway="true"/> <!-- Amharic ⇒ English -->
<languageMatch desired="ay" supported="es" distance="20" oneway="true"/> <!-- Aymara: ay ⇒ es -->
<languageMatch desired="az" supported="ru" distance="30" oneway="true"/> <!-- Azerbaijani: az ⇒ ru -->
+ <languageMatch desired="bal" supported="ur" distance="20" oneway="true"/> <!-- Baluchi ⇒ Urdu -->
<languageMatch desired="be" supported="ru" distance="20" oneway="true"/> <!-- Belarusian: be ⇒ ru -->
<languageMatch desired="bem" supported="en" distance="30" oneway="true"/> <!-- Bemba (Zambia): bem ⇒ en -->
<languageMatch desired="bh" supported="hi" distance="30" oneway="true"/> <!-- Bihari languages (gets canonicalized to bho): bh ⇒ hi -->
<languageMatch desired="bn" supported="en" distance="30" oneway="true"/> <!-- Bangla: bn ⇒ en -->
+ <languageMatch desired="bo" supported="zh" distance="20" oneway="true"/> <!-- Tibetan ⇒ Chinese -->
<languageMatch desired="br" supported="fr" distance="20" oneway="true"/> <!-- Breton: br ⇒ fr -->
+ <languageMatch desired="ca" supported="es" distance="20" oneway="true"/> <!-- Catalan ⇒ Spanish -->
<languageMatch desired="ceb" supported="fil" distance="30" oneway="true"/> <!-- Cebuano: ceb ⇒ fil -->
<languageMatch desired="chr" supported="en" distance="20" oneway="true"/> <!-- Cherokee: chr ⇒ en -->
<languageMatch desired="ckb" supported="ar" distance="30" oneway="true"/> <!-- Sorani Kurdish: ckb ⇒ ar -->
<languageMatch desired="co" supported="fr" distance="20" oneway="true"/> <!-- Corsican: co ⇒ fr -->
<languageMatch desired="crs" supported="fr" distance="20" oneway="true"/> <!-- Seselwa Creole French: crs ⇒ fr -->
+ <languageMatch desired="cs" supported="sk" distance="20"/> <!-- Czech ⇔ Slovak -->
<languageMatch desired="cy" supported="en" distance="20" oneway="true"/> <!-- Welsh: cy ⇒ en -->
<languageMatch desired="ee" supported="en" distance="30" oneway="true"/> <!-- Ewe: ee ⇒ en -->
<languageMatch desired="eo" supported="en" distance="30" oneway="true"/> <!-- Esperanto: eo ⇒ en -->
@@ -91,6 +93,7 @@
<languageMatch desired="lo" supported="en" distance="30" oneway="true"/> <!-- Lao: lo ⇒ en -->
<languageMatch desired="loz" supported="en" distance="30" oneway="true"/> <!-- Lozi: loz ⇒ en -->
<languageMatch desired="lua" supported="fr" distance="30" oneway="true"/> <!-- Luba-Lulua: lua ⇒ fr -->
+ <languageMatch desired="mai" supported="hi" distance="20" oneway="true"/> <!-- Maithili ⇒ Hindi -->
<languageMatch desired="mfe" supported="en" distance="30" oneway="true"/> <!-- Morisyen: mfe ⇒ en -->
<languageMatch desired="mg" supported="fr" distance="30" oneway="true"/> <!-- Malagasy: mg ⇒ fr -->
<languageMatch desired="mi" supported="en" distance="20" oneway="true"/> <!-- Maori: mi ⇒ en -->
@@ -140,12 +143,14 @@
<languageMatch desired="tt" supported="ru" distance="30" oneway="true"/> <!-- Tatar: tt ⇒ ru -->
<languageMatch desired="tum" supported="en" distance="30" oneway="true"/> <!-- Tumbuka: tum ⇒ en -->
<languageMatch desired="ug" supported="zh" distance="20" oneway="true"/> <!-- Uighur: ug ⇒ zh -->
+ <languageMatch desired="uk" supported="ru" distance="20" oneway="true"/> <!-- Ukrainian ⇒ Russian -->
<languageMatch desired="ur" supported="en" distance="30" oneway="true"/> <!-- Urdu: ur ⇒ en -->
<languageMatch desired="uz" supported="ru" distance="30" oneway="true"/> <!-- Uzbek: uz ⇒ ru -->
<languageMatch desired="wo" supported="fr" distance="30" oneway="true"/> <!-- Wolof: wo ⇒ fr -->
<languageMatch desired="xh" supported="en" distance="30" oneway="true"/> <!-- Xhosa: xh ⇒ en -->
<languageMatch desired="yi" supported="en" distance="30" oneway="true"/> <!-- Yiddish: yi ⇒ en -->
<languageMatch desired="yo" supported="en" distance="30" oneway="true"/> <!-- Yoruba: yo ⇒ en -->
+ <languageMatch desired="za" supported="zh" distance="20" oneway="true"/> <!-- Zhuang languages ⇒ Chinese -->
<languageMatch desired="zu" supported="en" distance="30" oneway="true"/> <!-- Zulu: zu ⇒ en -->
<!-- START generated by GenerateLanguageMatches.java: don't manually change -->
@@ -362,8 +367,10 @@
<languageMatch desired="yue" supported="zh" distance="10" oneway="true"/> <!-- Chinese, Cantonese -->
<!-- END generated by GenerateLanguageMatches.java -->
<languageMatch desired="*" supported="*" distance="80"/> <!-- * ⇒ * -->
+ <languageMatch desired="am_Ethi" supported="en_Latn" distance="10" oneway="true"/>
<languageMatch desired="az_Latn" supported="ru_Cyrl" distance="10" oneway="true"/> <!-- az; Latn ⇒ ru; Cyrl -->
<languageMatch desired="bn_Beng" supported="en_Latn" distance="10" oneway="true"/> <!-- bn; Beng ⇒ en; Latn -->
+ <languageMatch desired="bo_Tibt" supported="zh_Hans" distance="10" oneway="true"/>
<languageMatch desired="hy_Armn" supported="ru_Cyrl" distance="10" oneway="true"/> <!-- hy; Armn ⇒ ru; Cyrl -->
<languageMatch desired="ka_Geor" supported="en_Latn" distance="10" oneway="true"/> <!-- ka; Geor ⇒ en; Latn -->
<languageMatch desired="km_Khmr" supported="en_Latn" distance="10" oneway="true"/> <!-- km; Khmr ⇒ en; Latn -->
@@ -385,9 +392,8 @@
<languageMatch desired="uz_Latn" supported="ru_Cyrl" distance="10" oneway="true"/> <!-- uz; Latn ⇒ ru; Cyrl -->
<languageMatch desired="yi_Hebr" supported="en_Latn" distance="10" oneway="true"/> <!-- yi; Hebr ⇒ en; Latn -->
<languageMatch desired="sr_Latn" supported="sr_Cyrl" distance="5"/> <!-- sr; Latn ⇒ sr; Cyrl -->
- <languageMatch desired="zh_Hans" supported="zh_Hant" distance="15" oneway="true"/> <!-- zh; Hans ⇒ zh; Hant -->
- <languageMatch desired="zh_Hant" supported="zh_Hans" distance="19" oneway="true"/> <!-- zh; Hant ⇒ zh; Hans -->
- <!-- zh_Hani: Slightly bigger distance than zh_Hant->zh_Hans -->
+ <languageMatch desired="za_Latn" supported="zh_Hans" distance="10" oneway="true"/>
+ <!-- zh_Hani: Slightly bigger distance than zh_Hant->zh_Hans was before CLDR-14355 -->
<languageMatch desired="zh_Hani" supported="zh_Hans" distance="20" oneway="true"/>
<languageMatch desired="zh_Hani" supported="zh_Hant" distance="20" oneway="true"/>
<!-- Latin transliterations of some languages, initially from CLDR-13577 -->
diff --git a/common/supplemental/likelySubtags.xml b/common/supplemental/likelySubtags.xml
index be7552c..a6bc129 100644
--- a/common/supplemental/likelySubtags.xml
+++ b/common/supplemental/likelySubtags.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE supplementalData SYSTEM "../../common/dtd/ldmlSupplemental.dtd">
<!--
-Copyright © 1991-2020 Unicode, Inc.
+Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -588,6 +588,8 @@
<!--{ Dia; ?; ? } => { Dia; Latin; Unknown Region }-->
<likelySubtag from="dje" to="dje_Latn_NE"/>
<!--{ Zarma; ?; ? } => { Zarma; Latin; Niger }-->
+ <likelySubtag from="dmf" to="dmf_Medf_NG"/>
+ <!--{ Medefaidrin; ?; ? } => { Medefaidrin; Medefaidrin; Nigeria }-->
<likelySubtag from="dnj" to="dnj_Latn_CI"/>
<!--{ Dan; ?; ? } => { Dan; Latin; Côte d’Ivoire }-->
<likelySubtag from="dob" to="dob_Latn_ZZ"/>
@@ -665,7 +667,7 @@
<likelySubtag from="enq" to="enq_Latn_ZZ"/>
<!--{ Enga; ?; ? } => { Enga; Latin; Unknown Region }-->
<likelySubtag from="eo" to="eo_Latn_001"/>
- <!--{ Esperanto; ?; ? } => { Esperanto; Latin; World }-->
+ <!--{ Esperanto; ?; ? } => { Esperanto; Latin; world }-->
<likelySubtag from="eri" to="eri_Latn_ZZ"/>
<!--{ Ogea; ?; ? } => { Ogea; Latin; Unknown Region }-->
<likelySubtag from="es" to="es_Latn_ES"/>
@@ -991,7 +993,7 @@
<likelySubtag from="hz" to="hz_Latn_NA"/>
<!--{ Herero; ?; ? } => { Herero; Latin; Namibia }-->
<likelySubtag from="ia" to="ia_Latn_001"/>
- <!--{ Interlingua; ?; ? } => { Interlingua; Latin; World }-->
+ <!--{ Interlingua; ?; ? } => { Interlingua; Latin; world }-->
<likelySubtag from="ian" to="ian_Latn_ZZ"/>
<!--{ Iatmul; ?; ? } => { Iatmul; Latin; Unknown Region }-->
<likelySubtag from="iar" to="iar_Latn_ZZ"/>
@@ -1045,7 +1047,7 @@
<likelySubtag from="inh" to="inh_Cyrl_RU"/>
<!--{ Ingush; ?; ? } => { Ingush; Cyrillic; Russia }-->
<likelySubtag from="io" to="io_Latn_001"/>
- <!--{ Ido; ?; ? } => { Ido; Latin; World }-->
+ <!--{ Ido; ?; ? } => { Ido; Latin; world }-->
<likelySubtag from="iou" to="iou_Latn_ZZ"/>
<!--{ Tuma-Irumu; ?; ? } => { Tuma-Irumu; Latin; Unknown Region }-->
<likelySubtag from="iri" to="iri_Latn_ZZ"/>
@@ -1075,7 +1077,7 @@
<likelySubtag from="jar" to="jar_Latn_ZZ"/>
<!--{ Jarawa (Nigeria); ?; ? } => { Jarawa (Nigeria); Latin; Unknown Region }-->
<likelySubtag from="jbo" to="jbo_Latn_001"/>
- <!--{ Lojban; ?; ? } => { Lojban; Latin; World }-->
+ <!--{ Lojban; ?; ? } => { Lojban; Latin; world }-->
<likelySubtag from="jbu" to="jbu_Latn_ZZ"/>
<!--{ Jukun Takum; ?; ? } => { Jukun Takum; Latin; Unknown Region }-->
<likelySubtag from="jen" to="jen_Latn_ZZ"/>
@@ -1624,10 +1626,6 @@
<!--{ Mofu-Gudur; ?; ? } => { Mofu-Gudur; Latin; Unknown Region }-->
<likelySubtag from="min" to="min_Latn_ID"/>
<!--{ Minangkabau; ?; ? } => { Minangkabau; Latin; Indonesia }-->
- <likelySubtag from="mis" to="mis_Hatr_IQ"/>
- <!--{ Uncoded languages; ?; ? } => { Uncoded languages; Hatran; Iraq }-->
- <likelySubtag from="mis_Medf" to="mis_Medf_NG"/>
- <!--{ Uncoded languages; Medefaidrin; ? } => { Uncoded languages; Medefaidrin; Nigeria }-->
<likelySubtag from="miw" to="miw_Latn_ZZ"/>
<!--{ Akoye; ?; ? } => { Akoye; Latin; Unknown Region }-->
<likelySubtag from="mk" to="mk_Cyrl_MK"/>
@@ -2005,7 +2003,7 @@
<likelySubtag from="pms" to="pms_Latn_IT"/>
<!--{ Piedmontese; ?; ? } => { Piedmontese; Latin; Italy }-->
<likelySubtag from="png" to="png_Latn_ZZ"/>
- <!--{ Pongu; ?; ? } => { Pongu; Latin; Unknown Region }-->
+ <!--{ Pangu; ?; ? } => { Pangu; Latin; Unknown Region }-->
<likelySubtag from="pnn" to="pnn_Latn_ZZ"/>
<!--{ Pinai-Hagahai; ?; ? } => { Pinai-Hagahai; Latin; Unknown Region }-->
<likelySubtag from="pnt" to="pnt_Grek_GR"/>
@@ -2021,7 +2019,7 @@
<likelySubtag from="prd" to="prd_Arab_IR"/>
<!--{ Parsi-Dari; ?; ? } => { Parsi-Dari; Arabic; Iran }-->
<likelySubtag from="prg" to="prg_Latn_001"/>
- <!--{ Prussian; ?; ? } => { Prussian; Latin; World }-->
+ <!--{ Prussian; ?; ? } => { Prussian; Latin; world }-->
<likelySubtag from="ps" to="ps_Arab_AF"/>
<!--{ Pashto; ?; ? } => { Pashto; Arabic; Afghanistan }-->
<likelySubtag from="pss" to="pss_Latn_ZZ"/>
@@ -2518,6 +2516,8 @@
<!--{ Central Atlas Tamazight; ?; ? } => { Central Atlas Tamazight; Latin; Morocco }-->
<likelySubtag from="ubu" to="ubu_Latn_ZZ"/>
<!--{ Umbu-Ungu; ?; ? } => { Umbu-Ungu; Latin; Unknown Region }-->
+ <likelySubtag from="udi" to="udi_Aghb_RU"/>
+ <!--{ Udi; ?; ? } => { Udi; Caucasian Albanian; Russia }-->
<likelySubtag from="udm" to="udm_Cyrl_RU"/>
<!--{ Udmurt; ?; ? } => { Udmurt; Cyrillic; Russia }-->
<likelySubtag from="ug" to="ug_Arab_CN"/>
@@ -2597,7 +2597,7 @@
<likelySubtag from="vmw" to="vmw_Latn_MZ"/>
<!--{ Makhuwa; ?; ? } => { Makhuwa; Latin; Mozambique }-->
<likelySubtag from="vo" to="vo_Latn_001"/>
- <!--{ Volapük; ?; ? } => { Volapük; Latin; World }-->
+ <!--{ Volapük; ?; ? } => { Volapük; Latin; world }-->
<likelySubtag from="vot" to="vot_Latn_RU"/>
<!--{ Votic; ?; ? } => { Votic; Latin; Russia }-->
<likelySubtag from="vro" to="vro_Latn_EE"/>
@@ -2747,7 +2747,7 @@
<likelySubtag from="ygw" to="ygw_Latn_ZZ"/>
<!--{ Yagwoia; ?; ? } => { Yagwoia; Latin; Unknown Region }-->
<likelySubtag from="yi" to="yi_Hebr_001"/>
- <!--{ Yiddish; ?; ? } => { Yiddish; Hebrew; World }-->
+ <!--{ Yiddish; ?; ? } => { Yiddish; Hebrew; world }-->
<likelySubtag from="yko" to="yko_Latn_ZZ"/>
<!--{ Yasa; ?; ? } => { Yasa; Latin; Unknown Region }-->
<likelySubtag from="yle" to="yle_Latn_ZZ"/>
@@ -3310,8 +3310,8 @@
<!--{ ?; ?; Zimbabwe } => { Shona; Latin; Zimbabwe }-->
<likelySubtag from="und_Adlm" to="ff_Adlm_GN"/>
<!--{ ?; Adlam; ? } => { Fulah; Adlam; Guinea }-->
- <likelySubtag from="und_Aghb" to="lez_Aghb_RU"/>
- <!--{ ?; Caucasian Albanian; ? } => { Lezghian; Caucasian Albanian; Russia }-->
+ <likelySubtag from="und_Aghb" to="udi_Aghb_RU"/>
+ <!--{ ?; Caucasian Albanian; ? } => { Udi; Caucasian Albanian; Russia }-->
<likelySubtag from="und_Ahom" to="aho_Ahom_IN"/>
<!--{ ?; Ahom; ? } => { Ahom; Ahom; India }-->
<likelySubtag from="und_Arab" to="ar_Arab_EG"/>
@@ -3468,8 +3468,6 @@
<!--{ ?; Simplified; ? } => { Chinese; Simplified; China }-->
<likelySubtag from="und_Hant" to="zh_Hant_TW"/>
<!--{ ?; Traditional; ? } => { Chinese; Traditional; Taiwan }-->
- <likelySubtag from="und_Hatr" to="mis_Hatr_IQ"/>
- <!--{ ?; Hatran; ? } => { Uncoded languages; Hatran; Iraq }-->
<likelySubtag from="und_Hebr" to="he_Hebr_IL"/>
<!--{ ?; Hebrew; ? } => { Hebrew; Hebrew; Israel }-->
<likelySubtag from="und_Hebr_CA" to="yi_Hebr_CA"/>
@@ -3584,8 +3582,8 @@
<!--{ ?; Manichaean; ? } => { Manichaean Middle Persian; Manichaean; China }-->
<likelySubtag from="und_Marc" to="bo_Marc_CN"/>
<!--{ ?; Marchen; ? } => { Tibetan; Marchen; China }-->
- <likelySubtag from="und_Medf" to="mis_Medf_NG"/>
- <!--{ ?; Medefaidrin; ? } => { Uncoded languages; Medefaidrin; Nigeria }-->
+ <likelySubtag from="und_Medf" to="dmf_Medf_NG"/>
+ <!--{ ?; Medefaidrin; ? } => { Medefaidrin; Medefaidrin; Nigeria }-->
<likelySubtag from="und_Mend" to="men_Mend_SL"/>
<!--{ ?; Mende; ? } => { Mende; Mende; Sierra Leone }-->
<likelySubtag from="und_Merc" to="xmr_Merc_SD"/>
diff --git a/common/supplemental/ordinals.xml b/common/supplemental/ordinals.xml
index ce18a81..5f2e8ff 100644
--- a/common/supplemental/ordinals.xml
+++ b/common/supplemental/ordinals.xml
@@ -12,7 +12,7 @@
<!-- 1: other -->
- <pluralRules locales="af am an ar bg bs ce cs da de dsb el es et eu fa fi fy gl gsw he hr hsb ia id in is iw ja km kn ko ky lt lv ml mn my nb nl pa pl prg ps pt root ru sd sh si sk sl sr sw ta te th tr ur uz yue zh zu">
+ <pluralRules locales="af am an ar bg bs ce cs da de dsb el es et eu fa fi fy gl gsw he hr hsb ia id in is iw ja km kn ko ky lt lv ml mn my nb nl no pa pl prg ps pt root ru sd sh si sk sl sr sw ta te th tr ur uz yue zh zu">
<pluralRule count="other"> @integer 0~15, 100, 1000, 10000, 100000, 1000000, …</pluralRule>
</pluralRules>
diff --git a/common/supplemental/pluralRanges.xml b/common/supplemental/pluralRanges.xml
index 01631ef..7c7bf92 100644
--- a/common/supplemental/pluralRanges.xml
+++ b/common/supplemental/pluralRanges.xml
@@ -34,7 +34,7 @@
<pluralRange start="other" end="one" result="one"/>
<pluralRange start="other" end="other" result="other"/>
</pluralRanges>
- <pluralRanges locales="af an bg ca en es et eu fi ia io nb pcm sv ur">
+ <pluralRanges locales="af an bg ca en es et eu fi ia io nb no pcm sv ur">
<pluralRange start="one" end="other" result="other"/>
<pluralRange start="other" end="one" result="other"/>
<pluralRange start="other" end="other" result="other"/>
diff --git a/common/supplemental/plurals.xml b/common/supplemental/plurals.xml
index e118c2e..a963de2 100644
--- a/common/supplemental/plurals.xml
+++ b/common/supplemental/plurals.xml
@@ -115,8 +115,8 @@
<pluralRules locales="fr">
<pluralRule count="one">i = 0,1 @integer 0, 1 @decimal 0.0~1.5</pluralRule>
- <pluralRule count="many">e = 0 and i != 0 and i % 1000000 = 0 and v = 0 or e != 0..5 @integer 1000000, 1e6, 2e6, 3e6, 4e6, 5e6, 6e6, … @decimal 1.0000001e6, 1.1e6, 2.0000001e6, 2.1e6, 3.0000001e6, 3.1e6, …</pluralRule>
- <pluralRule count="other"> @integer 2~17, 100, 1000, 10000, 100000, 1e3, 2e3, 3e3, 4e3, 5e3, 6e3, … @decimal 2.0~3.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, 1.0001e3, 1.1e3, 2.0001e3, 2.1e3, 3.0001e3, 3.1e3, …</pluralRule>
+ <pluralRule count="many">e = 0 and i != 0 and i % 1000000 = 0 and v = 0 or e != 0..5 @integer 1000000, 1c6, 2c6, 3c6, 4c6, 5c6, 6c6, … @decimal 1.0000001c6, 1.1c6, 2.0000001c6, 2.1c6, 3.0000001c6, 3.1c6, …</pluralRule>
+ <pluralRule count="other"> @integer 2~17, 100, 1000, 10000, 100000, 1c3, 2c3, 3c3, 4c3, 5c3, 6c3, … @decimal 2.0~3.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, 1.0001c3, 1.1c3, 2.0001c3, 2.1c3, 3.0001c3, 3.1c3, …</pluralRule>
</pluralRules>
<!-- 4: one,two,few,other -->
diff --git a/common/supplemental/supplementalData.xml b/common/supplemental/supplementalData.xml
index a6ae63a..89171a4 100644
--- a/common/supplemental/supplementalData.xml
+++ b/common/supplemental/supplementalData.xml
@@ -1978,6 +1978,7 @@
<language type="nmg" scripts="Latn"/>
<language type="nn" scripts="Latn" territories="NO"/>
<language type="nnh" scripts="Latn"/>
+ <language type="no" scripts="Latn" territories="NO SJ"/>
<language type="nod" scripts="Lana"/>
<language type="nod" territories="TH" alt="secondary"/>
<language type="noe" scripts="Deva"/>
@@ -4299,7 +4300,7 @@
<territory type="ZZ" gdp="0" literacyPercent="0" population="0"> <!--Unknown Region-->
</territory>
</territoryInfo>
- <!-- End of Generated Data: see http://unicode.org/cldr/data/tools/java/org/unicode/cldr/tool/package.html -->
+ <!-- End of Generated Data: see http://sites.google.com/site/cldr/Home/updating-codes -->
<calendarData>
<calendar type="gregorian">
<calendarSystem type="solar" />
@@ -4744,7 +4745,7 @@
<weekOfPreference ordering="weekOfYear" locales="und"/>
<weekOfPreference ordering="weekOfYear weekOfMonth" locales="am az bs cs cy da el et hi ky lt mk sk ta th"/>
- <weekOfPreference ordering="weekOfYear weekOfMonth weekOfInterval" locales="is mn no sv vi"/>
+ <weekOfPreference ordering="weekOfYear weekOfMonth weekOfInterval" locales="is mn nb no sv vi"/>
<weekOfPreference ordering="weekOfYear weekOfDate weekOfMonth" locales="fi zh_TW"/>
<weekOfPreference ordering="weekOfYear weekOfInterval" locales="zu"/>
<weekOfPreference ordering="weekOfDate" locales="ca es fr gl"/>
@@ -5309,6 +5310,7 @@
<parentLocale parent="en_001" locales="en_150 en_AG en_AI en_AU en_BB en_BM en_BS en_BW en_BZ en_CA en_CC en_CK en_CM en_CX en_CY en_DG en_DM en_ER en_FJ en_FK en_FM en_GB en_GD en_GG en_GH en_GI en_GM en_GY en_HK en_IE en_IL en_IM en_IN en_IO en_JE en_JM en_KE en_KI en_KN en_KY en_LC en_LR en_LS en_MG en_MO en_MS en_MT en_MU en_MW en_MY en_NA en_NF en_NG en_NR en_NU en_NZ en_PG en_PH en_PK en_PN en_PW en_RW en_SB en_SC en_SD en_SG en_SH en_SL en_SS en_SX en_SZ en_TC en_TK en_TO en_TT en_TV en_TZ en_UG en_VC en_VG en_VU en_WS en_ZA en_ZM en_ZW"/>
<parentLocale parent="en_150" locales="en_AT en_BE en_CH en_DE en_DK en_FI en_NL en_SE en_SI"/>
<parentLocale parent="es_419" locales="es_AR es_BO es_BR es_BZ es_CL es_CO es_CR es_CU es_DO es_EC es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE"/>
+ <parentLocale parent="no" locales="nb nn"/>
<parentLocale parent="pt_PT" locales="pt_AO pt_CH pt_CV pt_FR pt_GQ pt_GW pt_LU pt_MO pt_MZ pt_ST pt_TL"/>
<parentLocale parent="zh_Hant_HK" locales="zh_Hant_MO"/>
</parentLocales>
diff --git a/common/supplemental/supplementalMetadata.xml b/common/supplemental/supplementalMetadata.xml
index 02d0bb2..f5b9cc6 100644
--- a/common/supplemental/supplementalMetadata.xml
+++ b/common/supplemental/supplementalMetadata.xml
@@ -223,7 +223,7 @@
<languageAlias type="zh_cmn_Hans" replacement="zh_Hans" reason="deprecated"/> <!-- Mandarin Chinese (Simplified) -->
<languageAlias type="zh_cmn_Hant" replacement="zh_Hant" reason="deprecated"/> <!-- Mandarin Chinese (Traditional) -->
<languageAlias type="zh_gan" replacement="gan" reason="deprecated"/> <!-- Kan or Gan -->
- <languageAlias type="zh_wuu" replacement="wuu" reason="deprecated"/> <!-- Shanghaiese or Wu -->
+ <languageAlias type="zh_wuu" replacement="wuu" reason="deprecated"/> <!-- Shanghainese or Wu -->
<languageAlias type="zh_yue" replacement="yue" reason="deprecated"/> <!-- Cantonese -->
<!-- miscellaneous deprecated -->
@@ -233,7 +233,6 @@
<!-- legacy use -->
<languageAlias type="sh" replacement="sr_Latn" reason="legacy"/> <!-- Serbo-Croatian -->
<languageAlias type="cnr" replacement="sr_ME" reason="legacy"/> <!-- Montenegrin -->
- <languageAlias type="no" replacement="nb" reason="legacy"/> <!-- Norwegian -->
<languageAlias type="tl" replacement="fil" reason="legacy"/> <!-- Tagalog -->
<!-- macrolanguages -->
<languageAlias type="aju" replacement="jrb" reason="macrolanguage"/> <!-- Moroccan Judeo-Arabic ⇒ Judeo-Arabic -->
@@ -300,8 +299,9 @@
<languageAlias type="him" replacement="srx" reason="macrolanguage"/> <!-- Himachali ⇒ Sirmauri (= Pahari, Himachali) -->
<languageAlias type="mnk" replacement="man" reason="macrolanguage"/> <!-- Mandinka ⇒ Mandingo -->
<languageAlias type="bh" replacement="bho" reason="macrolanguage"/> <!-- Bihari ⇒ Bhojpuri -->
+
<languageAlias type="prs" replacement="fa_AF" reason="overlong"/> <!-- Dari ⇒ Farsi (Afganistan) -->
- <languageAlias type="swc" replacement="sw_CD" reason="overlong"/> <!-- Dari ⇒ Farsi (Afganistan) -->
+ <languageAlias type="swc" replacement="sw_CD" reason="overlong"/> <!-- Congo Swahili ⇒ Swahili (Congo - Kinshasa) -->
<!-- incorrect three-letter language codes -->
<!-- start of data generated with CountItems tool per http://sites.google.com/site/cldr/development/updating-codes/update-languagescriptregion-subtags -->
<languageAlias type="aar" replacement="aa" reason="overlong"/> <!-- [Afar] -->
@@ -422,7 +422,7 @@
<languageAlias type="ndo" replacement="ng" reason="overlong"/> <!-- [Ndonga] -->
<languageAlias type="nld" replacement="nl" reason="overlong"/> <!-- [Dutch, Flemish] -->
<languageAlias type="nno" replacement="nn" reason="overlong"/> <!-- [Norwegian Nynorsk] -->
- <languageAlias type="nor" replacement="nb" reason="overlong"/> <!-- [Norwegian] -->
+ <languageAlias type="nor" replacement="no" reason="overlong"/> <!-- [Norwegian] -->
<languageAlias type="nbl" replacement="nr" reason="overlong"/> <!-- [South Ndebele] -->
<languageAlias type="nav" replacement="nv" reason="overlong"/> <!-- [Navajo, Navaho] -->
<languageAlias type="nya" replacement="ny" reason="overlong"/> <!-- [Nyanja, Chewa, Chichewa] -->
@@ -1668,12 +1668,13 @@
ka_GE kab_DZ kaj_NG kam_KE kcg_NG kde_TZ kea_CV ken_CM kgp_BR khq_ML ki_KE
kk_KZ kkj_CM kl_GL kln_KE km_KH kn_IN ko_KR kok_IN kpe_LR ks_Arab ks_Arab_IN
ks_Deva_IN ksb_TZ ksf_CM ksh_DE ku_TR kw_GB ky_KG
- la_VA lag_TZ lb_LU lg_UG lij_IT lkt_US ln_CD lo_LA lrc_IR lt_LT lu_CD luo_KE luy_KE lv_LV
+ la_VA lag_TZ lb_LU lg_UG lij_IT lkt_US ln_CD lo_LA lrc_IR lt_LT lu_CD luo_KE
+ luy_KE lv_LV
mai_IN mas_KE mer_KE mfe_MU mg_MG mgh_MZ mgo_CM mi_NZ mk_MK ml_IN mn_MN
mn_Mong_CN mni_Beng mni_Beng_IN mni_Mtei_IN moh_CA mr_IN ms_Arab_MY ms_MY mt_MT
mua_CM mus_US my_MM myv_RU mzn_IR
- naq_NA nb_NO nd_ZW nds_DE ne_NP nl_NL nmg_CM nn_NO nnh_CM nqo_GN nr_ZA nso_ZA
- nus_SS nv_US ny_MW nyn_UG
+ naq_NA nb nb_NO nd_ZW nds_DE ne_NP nl_NL nmg_CM nn_NO nnh_CM nqo_GN nr_ZA nso_ZA nus_SS
+ nv_US ny_MW nyn_UG
oc_FR om_ET or_IN os_GE osa_US
pa_Arab_PK pa_Guru pa_Guru_IN pcm_NG pl_PL prg_001 ps_AF pt_BR
qu_PE quc_GT
diff --git a/common/supplemental/units.xml b/common/supplemental/units.xml
index 68e0ed5..a1f3970 100644
--- a/common/supplemental/units.xml
+++ b/common/supplemental/units.xml
@@ -16,6 +16,9 @@
<unitConstant constant="in3_to_m3" value="ft3_to_m3/12*12*12"/>
<unitConstant constant="gal_to_m3" value="231*in3_to_m3"/>
<unitConstant constant="gal_imp_to_m3" value="0.00454609"/>
+ <unitConstant constant="glucose_molar_mass" value="180.1557" description="derivation from the mean atomic weights according to STANDARD ATOMIC WEIGHTS 2019 on https://ciaaw.org/atomic-weights.htm"/>
+ <unitConstant constant="item_per_mole" value="6.02214076E+23"/>
+
<unitConstant constant="gravity" value="9.80665"/>
<unitConstant constant="PI" value="411557987 / 131002976" status='approximate'/>
@@ -23,61 +26,71 @@
</unitConstants>
<unitQuantities>
<!-- NB: quantity ordering is used in canonical order of derived units. -->
- <!-- SI Base Units -->
+
+ <!-- SI Base Units -->
+
<unitQuantity baseUnit='candela' quantity='luminous-intensity' status='simple'/>
- <unitQuantity baseUnit='kilogram' quantity='mass' status='simple'/>
- <unitQuantity baseUnit='meter' quantity='length' status='simple'/>
- <unitQuantity baseUnit='second' quantity='duration' status='simple'/> <!-- use duration because 'time' can mean absolute time -->
- <unitQuantity baseUnit='year' quantity='year-duration' status='simple'/> <!-- non-SI but here for ordering -->
- <unitQuantity baseUnit='ampere' quantity='electric-current' status='simple'/>
- <unitQuantity baseUnit='kelvin' quantity='temperature' status='simple'/>
-
- <!-- Additional base units -->
-
- <unitQuantity baseUnit='revolution' quantity='angle' status='simple'/> <!-- = circle, cycle for base -->
- <unitQuantity baseUnit='item' quantity='substance-amount' status='simple'/> <!-- use instead of mole -->
- <unitQuantity baseUnit='portion' quantity='portion' status='simple'/>
- <unitQuantity baseUnit='bit' quantity='digital' status='simple'/>
- <unitQuantity baseUnit='pixel' quantity='graphics' status='simple'/>
- <unitQuantity baseUnit='em' quantity='typewidth' status='simple'/>
-
- <!-- SI Derived Units -->
-
- <unitQuantity baseUnit='revolution-per-second' quantity='frequency'/>
- <unitQuantity baseUnit='square-revolution' quantity='solid-angle'/>
- <unitQuantity baseUnit='kilogram-meter-per-square-second' quantity='force'/>
- <unitQuantity baseUnit='kilogram-per-meter-square-second' quantity='pressure'/>
- <unitQuantity baseUnit='kilogram-per-square-meter-square-second' quantity='pressure-per-length'/>
- <unitQuantity baseUnit='kilogram-square-meter-per-square-second' quantity='energy'/>
- <unitQuantity baseUnit='kilogram-square-meter-per-cubic-second' quantity='power'/>
- <unitQuantity baseUnit='second-ampere' quantity='electric-charge'/>
- <unitQuantity baseUnit='kilogram-square-meter-per-cubic-second-ampere' quantity='voltage'/>
- <unitQuantity baseUnit='pow4-second-square-ampere-per-kilogram-square-meter' quantity='electric-capacitance'/>
- <unitQuantity baseUnit='kilogram-square-meter-per-cubic-second-square-ampere' quantity='electric-resistance'/>
- <unitQuantity baseUnit='cubic-second-square-ampere-per-kilogram-square-meter' quantity='electric-conductance'/>
- <unitQuantity baseUnit='kilogram-square-meter-per-square-second-ampere' quantity='magnetic-flux'/>
- <unitQuantity baseUnit='kilogram-per-square-second-ampere' quantity='magnetic-induction'/>
- <unitQuantity baseUnit='kilogram-square-meter-per-square-second-square-ampere' quantity='electric-inductance'/>
- <unitQuantity baseUnit='square-meter-per-square-second' quantity='dose'/>
- <unitQuantity baseUnit='square-meter' quantity='area'/>
- <unitQuantity baseUnit='cubic-meter' quantity='volume'/>
- <unitQuantity baseUnit='meter-per-second' quantity='speed'/>
- <unitQuantity baseUnit='meter-per-square-second' quantity='acceleration'/>
- <unitQuantity baseUnit='revolution-per-meter' quantity='wave-number'/>
- <unitQuantity baseUnit='kilogram-per-cubic-meter' quantity='mass-density'/>
- <unitQuantity baseUnit='cubic-meter-per-kilogram' quantity='specific-volume'/>
- <unitQuantity baseUnit='ampere-per-square-meter' quantity='current-density'/>
- <unitQuantity baseUnit='ampere-per-meter' quantity='magnetic-field-strength'/>
- <unitQuantity baseUnit='item-per-cubic-meter' quantity='concentration'/>
<unitQuantity baseUnit='candela-per-square-meter' quantity='illuminance'/>
<unitQuantity baseUnit='candela-square-meter-per-square-meter' quantity='luminous-flux'/>
- <!-- <unitQuantity baseUnit='candela-square-meter' quantity='luminence'/> -->
- <unitQuantity baseUnit='kilogram-per-kilogram' quantity='mass-fraction'/>
- <!-- Additional derived units -->
- <unitQuantity baseUnit='kilogram-meter-per-meter-square-second' quantity='torque'/>
+ <unitQuantity baseUnit='kilogram' quantity='mass' status='simple'/>
+ <unitQuantity baseUnit='kilogram-per-kilogram' quantity='mass-fraction'/>
+ <unitQuantity baseUnit='kilogram-per-cubic-meter' quantity='mass-density'/>
+ <unitQuantity baseUnit='kilogram-per-meter-square-second' quantity='pressure'/>
+ <unitQuantity baseUnit='kilogram-per-square-second-ampere' quantity='magnetic-induction'/>
+ <unitQuantity baseUnit='kilogram-meter-per-square-second' quantity='force'/>
+ <unitQuantity baseUnit='kilogram-square-meter-per-cubic-second' quantity='power'/>
+ <unitQuantity baseUnit='kilogram-square-meter-per-cubic-second-ampere' quantity='voltage'/>
+ <unitQuantity baseUnit='kilogram-square-meter-per-cubic-second-square-ampere' quantity='electric-resistance'/>
+ <unitQuantity baseUnit='kilogram-square-meter-per-square-second' quantity='energy'/>
+ <unitQuantity baseUnit='kilogram-square-meter-per-square-second-ampere' quantity='magnetic-flux'/>
+ <unitQuantity baseUnit='kilogram-square-meter-per-square-second-square-ampere' quantity='electric-inductance'/>
+
+ <unitQuantity baseUnit='cubic-meter' quantity='volume'/>
+ <unitQuantity baseUnit='cubic-meter-per-kilogram' quantity='specific-volume'/>
<unitQuantity baseUnit='cubic-meter-per-meter' quantity='consumption'/>
+ <unitQuantity baseUnit='square-meter' quantity='area'/>
+ <unitQuantity baseUnit='square-meter-per-square-second' quantity='dose'/>
+ <unitQuantity baseUnit='meter' quantity='length' status='simple'/>
+ <unitQuantity baseUnit='meter-per-second' quantity='speed'/>
+ <unitQuantity baseUnit='meter-per-square-second' quantity='acceleration'/>
+
+ <unitQuantity baseUnit='kilogram-per-square-meter-square-second' quantity='pressure-per-length'/> <!-- special ordering for ofhg -->
+
+ <unitQuantity baseUnit='pow4-second-square-ampere-per-kilogram-square-meter' quantity='electric-capacitance'/>
+ <unitQuantity baseUnit='cubic-second-square-ampere-per-kilogram-square-meter' quantity='electric-conductance'/>
+ <unitQuantity baseUnit='second' quantity='duration' status='simple'/> <!-- use duration because 'time' can mean absolute time -->
+ <unitQuantity baseUnit='second-ampere' quantity='electric-charge'/>
+
+ <unitQuantity baseUnit='year' quantity='year-duration' status='simple'/> <!-- non-SI but here for ordering -->
+
+ <unitQuantity baseUnit='ampere' quantity='electric-current' status='simple'/>
+ <unitQuantity baseUnit='ampere-per-square-meter' quantity='current-density'/>
+ <unitQuantity baseUnit='ampere-per-meter' quantity='magnetic-field-strength'/>
+
+ <unitQuantity baseUnit='kelvin' quantity='temperature' status='simple'/>
+
+ <!-- Non-SI base units -->
+
+ <unitQuantity baseUnit='square-revolution' quantity='solid-angle'/>
+ <unitQuantity baseUnit='revolution' quantity='angle' status='simple'/> <!-- = circle, cycle for base instead of radian -->
+ <unitQuantity baseUnit='revolution-per-meter' quantity='wave-number'/>
+ <unitQuantity baseUnit='revolution-per-second' quantity='frequency'/>
+
+ <unitQuantity baseUnit='item' quantity='substance-amount' status='simple'/> <!-- use instead of mole -->
+ <unitQuantity baseUnit='item-per-kilogram' quantity='concentration-mass'/>
+ <unitQuantity baseUnit='item-per-cubic-meter' quantity='concentration'/>
+
+ <unitQuantity baseUnit='portion' quantity='portion' status='simple'/>
+
+ <unitQuantity baseUnit='bit' quantity='digital' status='simple'/>
+
+ <unitQuantity baseUnit='pixel' quantity='graphics' status='simple'/>
+
<unitQuantity baseUnit='pixel-per-meter' quantity='resolution'/>
+
+ <unitQuantity baseUnit='em' quantity='typewidth' status='simple'/>
+
</unitQuantities>
<convertUnits>
<!-- Values where possible from:
@@ -88,34 +101,62 @@
-->
<!-- luminous-intensity -->
- <convertUnit source='candela' baseUnit='candela'/>
+ <convertUnit source='candela' baseUnit='candela' systems="metric si"/>
<!-- mass -->
<convertUnit source='grain' baseUnit='kilogram' factor='lb_to_kg/7000' systems="ussystem uksystem"/>
- <convertUnit source='carat' baseUnit='kilogram' factor='0.0002'/>
- <convertUnit source='gram' baseUnit='kilogram' factor='0.001'/>
+ <convertUnit source='carat' baseUnit='kilogram' factor='0.0002' systems="metric"/>
+ <convertUnit source='gram' baseUnit='kilogram' factor='0.001' systems="metric si"/>
<convertUnit source='ounce' baseUnit='kilogram' factor='lb_to_kg/16' systems="ussystem uksystem"/>
<convertUnit source='ounce-troy' baseUnit='kilogram' factor='0.03110348' systems="ussystem uksystem"/>
<convertUnit source='pound' baseUnit='kilogram' factor='lb_to_kg' systems="ussystem uksystem"/>
- <convertUnit source='kilogram' baseUnit='kilogram'/>
+ <convertUnit source='kilogram' baseUnit='kilogram' systems="metric si"/>
<convertUnit source='stone' baseUnit='kilogram' factor='lb_to_kg*14' systems="uksystem"/>
<convertUnit source='ton' baseUnit='kilogram' factor='lb_to_kg*2000' systems="ussystem uksystem"/>
- <convertUnit source='metric-ton' baseUnit='kilogram' factor='1000'/>
+ <convertUnit source='metric-ton' baseUnit='kilogram' factor='1000' systems="metric"/>
<convertUnit source='earth-mass' baseUnit='kilogram' factor='5.9722E+24'/>
<convertUnit source='solar-mass' baseUnit='kilogram' factor='1.98847E+30'/>
+ <!-- volume -->
+ <convertUnit source='drop' baseUnit='cubic-meter' factor='gal_to_m3/128*576' systems="ussystem"/>
+ <convertUnit source='pinch' baseUnit='cubic-meter' factor='gal_to_m3/128*128' systems="ussystem"/>
+ <convertUnit source='dessert-spoon' baseUnit='cubic-meter' factor='gal_to_m3/16*128' systems="ussystem"/>
+ <convertUnit source='dessert-spoon-imperial' baseUnit='cubic-meter' factor='gal_imp_to_m3/16*128' systems="uksystem"/>
+ <convertUnit source='dram' baseUnit='cubic-meter' factor='gal_to_m3/128*8' systems="ussystem"/>
+ <convertUnit source='teaspoon' baseUnit='cubic-meter' factor='gal_to_m3/16*48' systems="ussystem"/>
+ <convertUnit source='tablespoon' baseUnit='cubic-meter' factor='gal_to_m3/256' systems="ussystem"/>
+ <convertUnit source='fluid-ounce-imperial' baseUnit='cubic-meter' factor='gal_imp_to_m3/160' systems="uksystem"/>
+ <convertUnit source='fluid-ounce' baseUnit='cubic-meter' factor='gal_to_m3/128' systems="ussystem"/>
+ <convertUnit source='jigger' baseUnit='cubic-meter' factor='gal_to_m3*3/128*2' systems="ussystem"/>
+ <convertUnit source='cup' baseUnit='cubic-meter' factor='gal_to_m3/16' systems="ussystem"/>
+ <convertUnit source='cup-metric' baseUnit='cubic-meter' factor='0.00025' systems="metric"/>
+ <convertUnit source='pint' baseUnit='cubic-meter' factor='gal_to_m3/8' systems="ussystem"/>
+ <convertUnit source='pint-metric' baseUnit='cubic-meter' factor='0.0005' systems="metric"/>
+ <convertUnit source='quart' baseUnit='cubic-meter' factor='gal_to_m3/4' systems="ussystem"/>
+ <convertUnit source='liter' baseUnit='cubic-meter' factor='0.001' systems="metric"/>
+ <convertUnit source='quart-imperial' baseUnit='cubic-meter' factor='gal_imp_to_m3/4' systems="uksystem"/>
+ <convertUnit source='gallon' baseUnit='cubic-meter' factor='gal_to_m3' systems="ussystem"/>
+ <convertUnit source='gallon-imperial' baseUnit='cubic-meter' factor='gal_imp_to_m3' systems="uksystem"/>
+ <convertUnit source='bushel' baseUnit='cubic-meter' factor='2150.42*in3_to_m3' systems="ussystem"/>
+ <convertUnit source='barrel' baseUnit='cubic-meter' factor='42*gal_to_m3' systems="ussystem"/> <!-- oil -->
+
+ <!-- area -->
+ <convertUnit source='dunam' baseUnit='square-meter' factor='1000'/>
+ <convertUnit source='acre' baseUnit='square-meter' factor='ft2_to_m2 * 43560' systems="ussystem uksystem"/>
+ <convertUnit source='hectare' baseUnit='square-meter' factor='10000' systems="metric"/>
+
<!-- length -->
<convertUnit source='point' baseUnit='meter' factor='ft_to_m/864' systems="ussystem uksystem"/>
<convertUnit source='inch' baseUnit='meter' factor='ft_to_m/12' systems="ussystem uksystem"/>
<convertUnit source='foot' baseUnit='meter' factor='ft_to_m' systems="ussystem uksystem"/>
<convertUnit source='yard' baseUnit='meter' factor='ft_to_m*3' systems="ussystem uksystem"/>
- <convertUnit source='meter' baseUnit='meter'/>
+ <convertUnit source='meter' baseUnit='meter' systems="metric si"/>
<convertUnit source='fathom' baseUnit='meter' factor='ft_to_m * 6' systems="ussystem uksystem"/>
<convertUnit source='furlong' baseUnit='meter' factor='ft_to_m*660' systems="ussystem uksystem"/>
<convertUnit source='mile' baseUnit='meter' factor='ft_to_m*5280' systems="ussystem uksystem"/>
<convertUnit source='nautical-mile' baseUnit='meter' factor='1852' systems="ussystem uksystem"/>
- <convertUnit source='mile-scandinavian' baseUnit='meter' factor='10000'/>
- <convertUnit source='100-kilometer' baseUnit='meter' factor='100000'/>
+ <convertUnit source='mile-scandinavian' baseUnit='meter' factor='10000' systems="metric"/>
+ <convertUnit source='100-kilometer' baseUnit='meter' factor='100000' systems="metric"/>
<convertUnit source='earth-radius' baseUnit='meter' factor='6.3781E6'/>
<convertUnit source='solar-radius' baseUnit='meter' factor='695700000'/>
<convertUnit source='astronomical-unit' baseUnit='meter' factor='149597900000'/>
@@ -123,11 +164,11 @@
<convertUnit source='parsec' baseUnit='meter' factor='30856780000000000'/>
<!-- time -->
- <convertUnit source='second' baseUnit='second'/>
- <convertUnit source='minute' baseUnit='second' factor='60'/>
- <convertUnit source='hour' baseUnit='second' factor='3600'/>
- <convertUnit source='day' baseUnit='second' factor='86400'/>
- <convertUnit source='day-person' baseUnit='second' factor='86400'/>
+ <convertUnit source='second' baseUnit='second' systems="si metric ussystem uksystem"/>
+ <convertUnit source='minute' baseUnit='second' factor='60' systems="metric ussystem uksystem"/>
+ <convertUnit source='hour' baseUnit='second' factor='3600' systems="metric ussystem uksystem"/>
+ <convertUnit source='day' baseUnit='second' factor='86400' systems="metric ussystem uksystem"/>
+ <convertUnit source='day-person' baseUnit='second' factor='86400' systems="metric ussystem uksystem"/>
<convertUnit source='week' baseUnit='second' factor='604800'/>
<convertUnit source='week-person' baseUnit='second' factor='604800'/>
@@ -140,23 +181,23 @@
<convertUnit source='century' baseUnit='year' factor='100'/>
<!-- electric-current -->
- <convertUnit source='ampere' baseUnit='ampere'/>
+ <convertUnit source='ampere' baseUnit='ampere' systems="metric si"/>
<!-- temperature -->
<convertUnit source='fahrenheit' baseUnit='kelvin' factor='5/9' offset='2298.35/9' systems="ussystem uksystem"/>
- <convertUnit source='kelvin' baseUnit='kelvin'/>
- <convertUnit source='celsius' baseUnit='kelvin' offset='273.15'/>
+ <convertUnit source='kelvin' baseUnit='kelvin' systems="metric si"/>
+ <convertUnit source='celsius' baseUnit='kelvin' offset='273.15' systems="metric"/>
<!-- angle -->
<convertUnit source='arc-second' baseUnit='revolution' factor='1/360*60*60'/>
<convertUnit source='arc-minute' baseUnit='revolution' factor='1/360*60'/>
<convertUnit source='degree' baseUnit='revolution' factor='1/360'/>
- <convertUnit source='radian' baseUnit='revolution' factor='1/2*PI'/>
+ <convertUnit source='radian' baseUnit='revolution' factor='1/2*PI' systems="metric si"/>
<convertUnit source='revolution' baseUnit='revolution'/>
<!-- substance-amount -->
<convertUnit source='item' baseUnit='item'/>
- <convertUnit source='mole' baseUnit='item' factor='6.02214076E+23'/>
+ <convertUnit source='mole' baseUnit='item' factor='item_per_mole' systems="metric si"/>
<!-- portion -->
<convertUnit source='permillion' baseUnit='portion' factor='1/1000000'/>
@@ -178,15 +219,15 @@
<convertUnit source='em' baseUnit='em'/>
<!-- frequency -->
- <convertUnit source='hertz' baseUnit='revolution-per-second'/>
+ <convertUnit source='hertz' baseUnit='revolution-per-second' systems="metric si"/>
<!-- force -->
- <convertUnit source='newton' baseUnit='kilogram-meter-per-square-second'/>
+ <convertUnit source='newton' baseUnit='kilogram-meter-per-square-second' systems="metric si"/>
<convertUnit source='pound-force' baseUnit='kilogram-meter-per-square-second' factor='lb_to_kg * gravity' systems="ussystem uksystem"/>
<!-- pressure -->
- <convertUnit source='pascal' baseUnit='kilogram-per-meter-square-second'/>
- <convertUnit source='bar' baseUnit='kilogram-per-meter-square-second' factor='100000'/>
+ <convertUnit source='pascal' baseUnit='kilogram-per-meter-square-second' systems="metric si"/>
+ <convertUnit source='bar' baseUnit='kilogram-per-meter-square-second' factor='100000' systems="metric"/>
<convertUnit source='atmosphere' baseUnit='kilogram-per-meter-square-second' factor='101325'/>
<!-- pressure-per-length -->
@@ -195,50 +236,22 @@
<!-- energy -->
<convertUnit source='electronvolt' baseUnit='kilogram-square-meter-per-square-second' factor='1.602177E-19'/>
<convertUnit source='dalton' baseUnit='kilogram-square-meter-per-square-second' factor='1.49241808560E-10'/>
- <convertUnit source='joule' baseUnit='kilogram-square-meter-per-square-second'/>
+ <convertUnit source='joule' baseUnit='kilogram-square-meter-per-square-second' systems="metric si"/>
<convertUnit source='calorie' baseUnit='kilogram-square-meter-per-square-second' factor='4.184'/> <!-- th -->
<convertUnit source='british-thermal-unit' baseUnit='kilogram-square-meter-per-square-second' factor='4.184*2267.96185/9' systems="ussystem uksystem"/> <!-- th -->
<convertUnit source='foodcalorie' baseUnit='kilogram-square-meter-per-square-second' factor='4184' systems="ussystem uksystem"/> <!-- th -->
<convertUnit source='therm-us' baseUnit='kilogram-square-meter-per-square-second' factor='105480400' systems="ussystem"/>
<!-- power -->
- <convertUnit source='watt' baseUnit='kilogram-square-meter-per-cubic-second'/>
+ <convertUnit source='watt' baseUnit='kilogram-square-meter-per-cubic-second' systems="metric si"/>
<convertUnit source='horsepower' baseUnit='kilogram-square-meter-per-cubic-second' factor='ft_to_m * lb_to_kg * gravity * 550' systems="ussystem uksystem"/>
<convertUnit source='solar-luminosity' baseUnit='kilogram-square-meter-per-cubic-second' factor='3.828E+26'/>
<!-- voltage -->
- <convertUnit source='volt' baseUnit='kilogram-square-meter-per-cubic-second-ampere'/>
+ <convertUnit source='volt' baseUnit='kilogram-square-meter-per-cubic-second-ampere' systems="metric si"/>
<!-- electric-resistance -->
- <convertUnit source='ohm' baseUnit='kilogram-square-meter-per-cubic-second-square-ampere'/>
-
- <!-- area -->
- <convertUnit source='dunam' baseUnit='square-meter' factor='1000'/>
- <convertUnit source='acre' baseUnit='square-meter' factor='ft2_to_m2 * 43560' systems="ussystem uksystem"/>
- <convertUnit source='hectare' baseUnit='square-meter' factor='10000'/>
-
- <!-- volume -->
- <convertUnit source='drop' baseUnit='cubic-meter' factor='gal_to_m3/128*576' systems="ussystem"/>
- <convertUnit source='pinch' baseUnit='cubic-meter' factor='gal_to_m3/128*128' systems="ussystem"/>
- <convertUnit source='dessert-spoon' baseUnit='cubic-meter' factor='gal_to_m3/16*128' systems="ussystem"/>
- <convertUnit source='dessert-spoon-imperial' baseUnit='cubic-meter' factor='gal_imp_to_m3/16*128' systems="uksystem"/>
- <convertUnit source='dram' baseUnit='cubic-meter' factor='gal_to_m3/128*8' systems="ussystem"/>
- <convertUnit source='teaspoon' baseUnit='cubic-meter' factor='gal_to_m3/16*48' systems="ussystem"/>
- <convertUnit source='tablespoon' baseUnit='cubic-meter' factor='gal_to_m3/256' systems="ussystem"/>
- <convertUnit source='fluid-ounce-imperial' baseUnit='cubic-meter' factor='gal_imp_to_m3/160' systems="uksystem"/>
- <convertUnit source='fluid-ounce' baseUnit='cubic-meter' factor='gal_to_m3/128' systems="ussystem"/>
- <convertUnit source='jigger' baseUnit='cubic-meter' factor='gal_to_m3*3/128*2' systems="ussystem"/>
- <convertUnit source='cup' baseUnit='cubic-meter' factor='gal_to_m3/16' systems="ussystem"/>
- <convertUnit source='cup-metric' baseUnit='cubic-meter' factor='0.00025'/>
- <convertUnit source='pint' baseUnit='cubic-meter' factor='gal_to_m3/8' systems="ussystem"/>
- <convertUnit source='pint-metric' baseUnit='cubic-meter' factor='0.0005'/>
- <convertUnit source='quart' baseUnit='cubic-meter' factor='gal_to_m3/4' systems="ussystem"/>
- <convertUnit source='liter' baseUnit='cubic-meter' factor='0.001'/>
- <convertUnit source='quart-imperial' baseUnit='cubic-meter' factor='gal_imp_to_m3/4' systems="uksystem"/>
- <convertUnit source='gallon' baseUnit='cubic-meter' factor='gal_to_m3' systems="ussystem"/>
- <convertUnit source='gallon-imperial' baseUnit='cubic-meter' factor='gal_imp_to_m3' systems="uksystem"/>
- <convertUnit source='bushel' baseUnit='cubic-meter' factor='2150.42*in3_to_m3' systems="ussystem"/>
- <convertUnit source='barrel' baseUnit='cubic-meter' factor='42*gal_to_m3' systems="ussystem"/> <!-- oil -->
+ <convertUnit source='ohm' baseUnit='kilogram-square-meter-per-cubic-second-square-ampere' systems="metric si"/>
<!-- speed -->
<convertUnit source='knot' baseUnit='meter-per-second' factor='1852/3600' systems="ussystem uksystem"/>
@@ -247,10 +260,14 @@
<convertUnit source='g-force' baseUnit='meter-per-square-second' factor='gravity'/>
<!-- luminance -->
- <convertUnit source='lux' baseUnit='candela-per-square-meter'/>
+ <convertUnit source='lux' baseUnit='candela-per-square-meter' systems="metric si"/>
<!-- luminous-flux -->
- <convertUnit source='lumen' baseUnit='candela-square-meter-per-square-meter'/>
+ <convertUnit source='lumen' baseUnit='candela-square-meter-per-square-meter' systems="metric si"/>
+
+ <!-- concentration-mass -->
+ <convertUnit source='ofglucose' baseUnit='item-per-kilogram' factor='1000*item_per_mole/glucose_molar_mass'/>
+
</convertUnits>
<unitPreferenceData draft="contributed">
<unitPreferences category="area" usage="default">
@@ -273,6 +290,7 @@
</unitPreferences>
<unitPreferences category="concentration" usage="blood-glucose">
<unitPreference regions="AG AI AO AU BA BG BH BM BN BW BY CA CH CM CN CZ DK DM EE FI FJ GB GD HK HR HU IE IM IS KE KN KW KZ LC LI LT LU LV ME MG MK MO MS MT MU MY MZ NA NL NO NZ OM PG RS RU SE SG SI SK TC TO UA UG VC VG VN VU ZA">millimole-per-liter</unitPreference>
+ <unitPreference regions="001">milligram-ofglucose-per-deciliter</unitPreference>
</unitPreferences>
<unitPreferences category="concentration" usage="default">
<unitPreference regions="001">item-per-cubic-meter</unitPreference>
@@ -283,12 +301,6 @@
<unitPreferences category="consumption" usage="vehicle-fuel">
<unitPreference regions="001">liter-per-100-kilometer</unitPreference>
<unitPreference regions="BR IT JP KR MX MY NL TH TR">liter-per-kilometer</unitPreference>
- </unitPreferences>
- <unitPreferences category="consumption-inverse" usage="default">
- <unitPreference regions="001">kilometer-per-centiliter</unitPreference>
- </unitPreferences>
- <unitPreferences category="consumption-inverse" usage="vehicle-fuel">
- <unitPreference regions="001">kilometer-per-centiliter</unitPreference>
<unitPreference regions="US">mile-per-gallon</unitPreference>
<unitPreference regions="CA GB">mile-per-gallon-imperial</unitPreference>
</unitPreferences>
@@ -331,7 +343,7 @@
<unitPreference regions="001">centimeter</unitPreference>
<unitPreference regions="CA GB IN US" geq="3.0">foot-and-inch</unitPreference>
<unitPreference regions="CA GB IN US">inch</unitPreference>
- <unitPreference regions="AT BE BR CN DE DK DZ EG ES FR HK ID IL IT JO MX MY NL NO PL PT RU SA SE TR VN">meter-and-centimeter</unitPreference>
+ <unitPreference regions="AT BE DZ EG ES FR HK ID IL IT JO MY SA SE TR VN">meter-and-centimeter</unitPreference>
</unitPreferences>
<unitPreferences category="length" usage="rainfall">
<unitPreference regions="BR">centimeter</unitPreference>
@@ -341,18 +353,21 @@
<unitPreferences category="length" usage="road">
<unitPreference regions="001" geq="0.9">kilometer</unitPreference>
<unitPreference regions="001" geq="300.0" skeleton="precision-increment/50">meter</unitPreference>
- <unitPreference regions="001" skeleton="precision-increment/10">meter</unitPreference>
- <unitPreference regions="001">meter</unitPreference>
+ <unitPreference regions="001" geq="10" skeleton="precision-increment/10">meter</unitPreference>
+ <unitPreference regions="001" skeleton="precision-increment/1">meter</unitPreference>
<unitPreference regions="US" geq="0.5">mile</unitPreference>
<unitPreference regions="US" geq="100.0" skeleton="precision-increment/50">foot</unitPreference>
- <unitPreference regions="US" skeleton="precision-increment/10">foot</unitPreference>
+ <unitPreference regions="US" geq="10" skeleton="precision-increment/10">foot</unitPreference>
+ <unitPreference regions="US" skeleton="precision-increment/1">foot</unitPreference>
<unitPreference regions="GB" geq="0.5">mile</unitPreference>
<unitPreference regions="GB" geq="100.0" skeleton="precision-increment/50">yard</unitPreference>
- <unitPreference regions="GB">yard</unitPreference>
+ <unitPreference regions="GB" geq="10" skeleton="precision-increment/10">yard</unitPreference>
+ <unitPreference regions="GB" skeleton="precision-increment/1">yard</unitPreference>
<unitPreference regions="SE">mile-scandinavian</unitPreference>
<unitPreference regions="SE">kilometer</unitPreference>
<unitPreference regions="SE" geq="300.0" skeleton="precision-increment/50">meter</unitPreference>
- <unitPreference regions="SE" skeleton="precision-increment/10">meter</unitPreference>
+ <unitPreference regions="SE" geq="10" skeleton="precision-increment/10">meter</unitPreference>
+ <unitPreference regions="SE" skeleton="precision-increment/1">meter</unitPreference>
</unitPreferences>
<unitPreferences category="length" usage="snowfall">
<unitPreference regions="001">centimeter</unitPreference>
@@ -361,7 +376,6 @@
<unitPreferences category="length" usage="vehicle">
<unitPreference regions="GB US">foot-and-inch</unitPreference>
<unitPreference regions="001">meter</unitPreference>
- <unitPreference regions="MX">meter-and-centimeter</unitPreference>
</unitPreferences>
<unitPreferences category="length" usage="visiblty">
<unitPreference regions="001" geq="0.1">kilometer</unitPreference>
@@ -383,16 +397,12 @@
<unitPreferences category="mass" usage="person">
<unitPreference regions="001">kilogram</unitPreference>
<unitPreference regions="001">gram</unitPreference>
- <unitPreference regions="DZ EG ES JO SA">kilogram-and-gram</unitPreference>
<unitPreference regions="US">pound</unitPreference>
<unitPreference regions="US">pound-and-ounce</unitPreference>
<unitPreference regions="GB">stone-and-pound</unitPreference>
<unitPreference regions="GB">pound-and-ounce</unitPreference>
<unitPreference regions="HK">pound-and-ounce</unitPreference>
</unitPreferences>
- <unitPreferences category="mass-density" usage="blood-glucose">
- <unitPreference regions="001">milligram-per-deciliter</unitPreference>
- </unitPreferences>
<unitPreferences category="mass-density" usage="default">
<unitPreference regions="001">kilogram-per-cubic-meter</unitPreference>
</unitPreferences>
@@ -480,6 +490,7 @@
<unitAlias type="part-per-million" replacement="permillion" reason="deprecated"/>
<unitAlias type="pound-foot" replacement="pound-force-foot" reason="deprecated"/>
<unitAlias type="pound-per-square-inch" replacement="pound-force-per-square-inch" reason="deprecated"/>
+ <unitAlias type="milligram-per-deciliter" replacement="milligram-ofglucose-per-deciliter" reason="deprecated"/>
<usageAlias type="music-track" replacement="media" reason="deprecated"/>
<usageAlias type="tv-program" replacement="media" reason="deprecated"/>
</alias>
diff --git a/common/supplemental/windowsZones.xml b/common/supplemental/windowsZones.xml
index fd2ccb6..15c4159 100644
--- a/common/supplemental/windowsZones.xml
+++ b/common/supplemental/windowsZones.xml
@@ -64,6 +64,7 @@
<!-- (UTC-07:00) Arizona -->
<mapZone other="US Mountain Standard Time" territory="001" type="America/Phoenix"/>
+ <mapZone other="US Mountain Standard Time" territory="CA" type="America/Creston America/Dawson_Creek America/Fort_Nelson"/>
<mapZone other="US Mountain Standard Time" territory="MX" type="America/Hermosillo"/>
<mapZone other="US Mountain Standard Time" territory="US" type="America/Phoenix"/>
<mapZone other="US Mountain Standard Time" territory="ZZ" type="Etc/GMT+7"/>
@@ -81,7 +82,7 @@
<!-- (UTC-07:00) Yukon -->
<mapZone other="Yukon Standard Time" territory="001" type="America/Whitehorse"/>
- <mapZone other="Yukon Standard Time" territory="CA" type="America/Whitehorse America/Creston America/Dawson America/Dawson_Creek America/Fort_Nelson"/>
+ <mapZone other="Yukon Standard Time" territory="CA" type="America/Whitehorse America/Dawson"/>
<!-- (UTC-06:00) Central America -->
<mapZone other="Central America Standard Time" territory="001" type="America/Guatemala"/>
@@ -266,9 +267,8 @@
<mapZone other="Cape Verde Standard Time" territory="ZZ" type="Etc/GMT+1"/>
<!-- (UTC) Coordinated Universal Time -->
- <mapZone other="UTC" territory="001" type="Etc/GMT"/>
- <mapZone other="UTC" territory="GL" type="America/Danmarkshavn"/>
- <mapZone other="UTC" territory="ZZ" type="Etc/GMT Etc/UTC"/>
+ <mapZone other="UTC" territory="001" type="Etc/UTC"/>
+ <mapZone other="UTC" territory="ZZ" type="Etc/UTC Etc/GMT"/>
<!-- (UTC+00:00) Dublin, Edinburgh, Lisbon, London -->
<mapZone other="GMT Standard Time" territory="001" type="Europe/London"/>
@@ -286,6 +286,7 @@
<mapZone other="Greenwich Standard Time" territory="BF" type="Africa/Ouagadougou"/>
<mapZone other="Greenwich Standard Time" territory="CI" type="Africa/Abidjan"/>
<mapZone other="Greenwich Standard Time" territory="GH" type="Africa/Accra"/>
+ <mapZone other="Greenwich Standard Time" territory="GL" type="America/Danmarkshavn"/>
<mapZone other="Greenwich Standard Time" territory="GM" type="Africa/Banjul"/>
<mapZone other="Greenwich Standard Time" territory="GN" type="Africa/Conakry"/>
<mapZone other="Greenwich Standard Time" territory="GW" type="Africa/Bissau"/>
diff --git a/common/testData/.DS_Store b/common/testData/.DS_Store
deleted file mode 100644
index c050d0c..0000000
--- a/common/testData/.DS_Store
+++ /dev/null
Binary files differ
diff --git a/common/testData/localeIdentifiers/localeCanonicalization.txt b/common/testData/localeIdentifiers/localeCanonicalization.txt
index ce0e191..544b4e6 100644
--- a/common/testData/localeIdentifiers/localeCanonicalization.txt
+++ b/common/testData/localeIdentifiers/localeCanonicalization.txt
@@ -274,11 +274,11 @@
nno ; nn
nns ; nbr
nnx ; ngv
-no ; nb
+no ; no
no_bokmal ; nb
no_nynorsk ; nn
nob ; nb
-nor ; nb
+nor ; no
npi ; ne
nts ; pij
nya ; ny
@@ -1461,10 +1461,10 @@
nnx_Adlm_AC_fonipa ; ngv_Adlm_AC_fonipa
no_Adlm_AC_bokmal_fonipa ; nb_Adlm_AC_fonipa
no_Adlm_AC_bokmal_fonipa_nynorsk ; nb_Adlm_AC_fonipa
-no_Adlm_AC_fonipa ; nb_Adlm_AC_fonipa
+no_Adlm_AC_fonipa ; no_Adlm_AC_fonipa
no_Adlm_AC_fonipa_nynorsk ; nn_Adlm_AC_fonipa
nob_Adlm_AC_fonipa ; nb_Adlm_AC_fonipa
-nor_Adlm_AC_fonipa ; nb_Adlm_AC_fonipa
+nor_Adlm_AC_fonipa ; no_Adlm_AC_fonipa
npi_Adlm_AC_fonipa ; ne_Adlm_AC_fonipa
nts_Adlm_AC_fonipa ; pij_Adlm_AC_fonipa
nya_Adlm_AC_fonipa ; ny_Adlm_AC_fonipa
diff --git a/common/testData/segmentation/.DS_Store b/common/testData/segmentation/.DS_Store
deleted file mode 100644
index 7b1e3f6..0000000
--- a/common/testData/segmentation/.DS_Store
+++ /dev/null
Binary files differ
diff --git a/common/testData/units/unitPreferencesTest.txt b/common/testData/units/unitPreferencesTest.txt
index b0dabe0..2235305 100644
--- a/common/testData/units/unitPreferencesTest.txt
+++ b/common/testData/units/unitPreferencesTest.txt
@@ -1,5 +1,5 @@
# Test data for unit preferences
-# Copyright © 1991-2020 Unicode, Inc.
+# Copyright © 1991-2021 Unicode, Inc.
# For terms of use, see http://www.unicode.org/copyright.html
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -63,6 +63,10 @@
concentration; blood-glucose; AG; 602214076000000000000000; 6.02214076E23; item-per-cubic-meter; 1; 1.0; millimole-per-liter
concentration; blood-glucose; AG; 541992668400000000000000; 5.419926684E23; item-per-cubic-meter; 9 / 10; 0.9; millimole-per-liter
+concentration; blood-glucose; 001; 66243548360000000000000000000 / 1801557; 3.67701651182838E22; item-per-cubic-meter; 11 / 10; 1.1; milligram-ofglucose-per-deciliter
+concentration; blood-glucose; 001; 60221407600000000000000000000 / 1801557; 3.342742283480345E22; item-per-cubic-meter; 1; 1.0; milligram-ofglucose-per-deciliter
+concentration; blood-glucose; 001; 6022140760000000000000000000 / 200173; 3.008468055132311E22; item-per-cubic-meter; 9 / 10; 0.9; milligram-ofglucose-per-deciliter
+
concentration; default; 001; 11 / 10; 1.1; item-per-cubic-meter; 11 / 10; 1.1; item-per-cubic-meter
concentration; default; 001; 1; 1.0; item-per-cubic-meter; 1; 1.0; item-per-cubic-meter
concentration; default; 001; 9 / 10; 0.9; item-per-cubic-meter; 9 / 10; 0.9; item-per-cubic-meter
@@ -79,21 +83,13 @@
consumption; vehicle-fuel; BR; 1 / 1000000; 1.0E-6; cubic-meter-per-meter; 1; 1.0; liter-per-kilometer
consumption; vehicle-fuel; BR; 9 / 10000000; 9.0E-7; cubic-meter-per-meter; 9 / 10; 0.9; liter-per-kilometer
-consumption-inverse; default; 001; 110000000; 1.1E8; meter-per-cubic-meter; 11 / 10; 1.1; kilometer-per-centiliter
-consumption-inverse; default; 001; 100000000; 1.0E8; meter-per-cubic-meter; 1; 1.0; kilometer-per-centiliter
-consumption-inverse; default; 001; 90000000; 9.0E7; meter-per-cubic-meter; 9 / 10; 0.9; kilometer-per-centiliter
+consumption; vehicle-fuel; US; 112903 / 52800000000; 2.1383143939394E-6; cubic-meter-per-meter; 11 / 10; 1.1; mile-per-gallon
+consumption; vehicle-fuel; US; 112903 / 48000000000; 2.3521458333333E-6; cubic-meter-per-meter; 1; 1.0; mile-per-gallon
+consumption; vehicle-fuel; US; 112903 / 43200000000; 2.6134953703704E-6; cubic-meter-per-meter; 9 / 10; 0.9; mile-per-gallon
-consumption-inverse; vehicle-fuel; 001; 110000000; 1.1E8; meter-per-cubic-meter; 11 / 10; 1.1; kilometer-per-centiliter
-consumption-inverse; vehicle-fuel; 001; 100000000; 1.0E8; meter-per-cubic-meter; 1; 1.0; kilometer-per-centiliter
-consumption-inverse; vehicle-fuel; 001; 90000000; 9.0E7; meter-per-cubic-meter; 9 / 10; 0.9; kilometer-per-centiliter
-
-consumption-inverse; vehicle-fuel; US; 52800000000 / 112903; 467658.0781732992; meter-per-cubic-meter; 11 / 10; 1.1; mile-per-gallon
-consumption-inverse; vehicle-fuel; US; 48000000000 / 112903; 425143.707430272; meter-per-cubic-meter; 1; 1.0; mile-per-gallon
-consumption-inverse; vehicle-fuel; US; 43200000000 / 112903; 382629.3366872448; meter-per-cubic-meter; 9 / 10; 0.9; mile-per-gallon
-
-consumption-inverse; vehicle-fuel; CA; 177027840000 / 454609; 389406.8089281118; meter-per-cubic-meter; 11 / 10; 1.1; mile-per-gallon-imperial
-consumption-inverse; vehicle-fuel; CA; 160934400000 / 454609; 354006.1899346471; meter-per-cubic-meter; 1; 1.0; mile-per-gallon-imperial
-consumption-inverse; vehicle-fuel; CA; 144840960000 / 454609; 318605.5709411824; meter-per-cubic-meter; 9 / 10; 0.9; mile-per-gallon-imperial
+consumption; vehicle-fuel; CA; 454609 / 177027840000; 2.5680085121075E-6; cubic-meter-per-meter; 11 / 10; 1.1; mile-per-gallon-imperial
+consumption; vehicle-fuel; CA; 454609 / 160934400000; 2.8248093633182E-6; cubic-meter-per-meter; 1; 1.0; mile-per-gallon-imperial
+consumption; vehicle-fuel; CA; 454609 / 144840960000; 3.1386770703536E-6; cubic-meter-per-meter; 9 / 10; 0.9; mile-per-gallon-imperial
duration; default; 001; 95040; 95040.0; second; 11 / 10; 1.1; day
duration; default; 001; 86400; 86400.0; second; 1; 1.0; day
@@ -188,6 +184,8 @@
length; road; 001; 800; 800.0; meter; 800; 800.0; meter
length; road; 001; 300; 300.0; meter; 300; 300.0; meter
length; road; 001; 2999 / 10; 299.9; meter; 2999 / 10; 299.9; meter
+length; road; 001; 10; 10.0; meter; 10; 10.0; meter
+length; road; 001; 99 / 10; 9.9; meter; 99 / 10; 9.9; meter
length; road; 001; 1; 1.0; meter; 1; 1.0; meter
length; road; 001; 9 / 10; 0.9; meter; 9 / 10; 0.9; meter
@@ -196,6 +194,8 @@
length; road; US; 402336 / 625; 643.7376; meter; 2112; 2112.0; foot
length; road; US; 762 / 25; 30.48; meter; 100; 100.0; foot
length; road; US; 380619 / 12500; 30.44952; meter; 999 / 10; 99.9; foot
+length; road; US; 381 / 125; 3.048; meter; 10; 10.0; foot
+length; road; US; 37719 / 12500; 3.01752; meter; 99 / 10; 9.9; foot
length; road; US; 381 / 1250; 0.3048; meter; 1; 1.0; foot
length; road; US; 3429 / 12500; 0.27432; meter; 9 / 10; 0.9; foot
@@ -204,6 +204,8 @@
length; road; GB; 402336 / 625; 643.7376; meter; 704; 704.0; yard
length; road; GB; 2286 / 25; 91.44; meter; 100; 100.0; yard
length; road; GB; 1141857 / 12500; 91.34856; meter; 999 / 10; 99.9; yard
+length; road; GB; 1143 / 125; 9.144; meter; 10; 10.0; yard
+length; road; GB; 113157 / 12500; 9.05256; meter; 99 / 10; 9.9; yard
length; road; GB; 1143 / 1250; 0.9144; meter; 1; 1.0; yard
length; road; GB; 10287 / 12500; 0.82296; meter; 9 / 10; 0.9; yard
@@ -214,6 +216,8 @@
length; road; SE; 900; 900.0; meter; 900; 900.0; meter
length; road; SE; 300; 300.0; meter; 300; 300.0; meter
length; road; SE; 2999 / 10; 299.9; meter; 2999 / 10; 299.9; meter
+length; road; SE; 10; 10.0; meter; 10; 10.0; meter
+length; road; SE; 99 / 10; 9.9; meter; 99 / 10; 9.9; meter
length; road; SE; 1; 1.0; meter; 1; 1.0; meter
length; road; SE; 9 / 10; 0.9; meter; 9 / 10; 0.9; meter
@@ -233,9 +237,9 @@
length; vehicle; 001; 1; 1.0; meter; 1; 1.0; meter
length; vehicle; 001; 9 / 10; 0.9; meter; 9 / 10; 0.9; meter
-length; vehicle; MX; 11 / 10; 1.1; meter; 1; meter; 10; 10.0; centimeter
-length; vehicle; MX; 1; 1.0; meter; 1; meter; 0; 0.0; centimeter
-length; vehicle; MX; 9 / 10; 0.9; meter; 0; meter; 90; 90.0; centimeter
+length; vehicle; MX; 11 / 10; 1.1; meter; 11 / 10; 1.1; meter
+length; vehicle; MX; 1; 1.0; meter; 1; 1.0; meter
+length; vehicle; MX; 9 / 10; 0.9; meter; 9 / 10; 0.9; meter
length; visiblty; 001; 200; 200.0; meter; 1 / 5; 0.2; kilometer
length; visiblty; 001; 100; 100.0; meter; 1 / 10; 0.1; kilometer
@@ -279,9 +283,9 @@
mass; person; 001; 1 / 1000; 0.001; kilogram; 1; 1.0; gram
mass; person; 001; 9 / 10000; 9.0E-4; kilogram; 9 / 10; 0.9; gram
-mass; person; DZ; 11 / 10; 1.1; kilogram; 1; kilogram; 100; 100.0; gram
-mass; person; DZ; 1; 1.0; kilogram; 1; kilogram; 0; 0.0; gram
-mass; person; DZ; 9 / 10; 0.9; kilogram; 0; kilogram; 900; 900.0; gram
+mass; person; DZ; 11 / 10; 1.1; kilogram; 11 / 10; 1.1; kilogram
+mass; person; DZ; 1; 1.0; kilogram; 1; 1.0; kilogram
+mass; person; DZ; 9 / 10; 0.9; kilogram; 900; 900.0; gram
mass; person; US; 498951607 / 1000000000; 0.498951607; kilogram; 11 / 10; 1.1; pound
mass; person; US; 45359237 / 100000000; 0.45359237; kilogram; 1; 1.0; pound
@@ -297,10 +301,6 @@
mass; person; HK; 45359237 / 100000000; 0.45359237; kilogram; 1; pound; 0; 0.0; ounce
mass; person; HK; 408233133 / 1000000000; 0.408233133; kilogram; 0; pound; 72 / 5; 14.4; ounce
-mass-density; blood-glucose; 001; 11 / 1000; 0.011; kilogram-per-cubic-meter; 11 / 10; 1.1; milligram-per-deciliter
-mass-density; blood-glucose; 001; 1 / 100; 0.01; kilogram-per-cubic-meter; 1; 1.0; milligram-per-deciliter
-mass-density; blood-glucose; 001; 9 / 1000; 0.009; kilogram-per-cubic-meter; 9 / 10; 0.9; milligram-per-deciliter
-
mass-density; default; 001; 11 / 10; 1.1; kilogram-per-cubic-meter; 11 / 10; 1.1; kilogram-per-cubic-meter
mass-density; default; 001; 1; 1.0; kilogram-per-cubic-meter; 1; 1.0; kilogram-per-cubic-meter
mass-density; default; 001; 9 / 10; 0.9; kilogram-per-cubic-meter; 9 / 10; 0.9; kilogram-per-cubic-meter
@@ -451,4 +451,4 @@
year-duration; person-age; 001; 1; 1.0; year; 1; year-person; 0; 0.0; month-person
year-duration; person-age; 001; 9 / 10; 0.9; year; 54 / 5; 10.8; month-person
year-duration; person-age; 001; 1 / 12; 0.08333333333333333; year; 1; 1.0; month-person
-year-duration; person-age; 001; 3 / 40; 0.075; year; 9 / 10; 0.9; month-person
+year-duration; person-age; 001; 3 / 40; 0.075; year; 9 / 10; 0.9; month-person
\ No newline at end of file
diff --git a/common/testData/units/unitsTest.txt b/common/testData/units/unitsTest.txt
index d2facef..c606911 100644
--- a/common/testData/units/unitsTest.txt
+++ b/common/testData/units/unitsTest.txt
@@ -1,5 +1,5 @@
# Test data for unit conversions
-# Copyright © 1991-2020 Unicode, Inc.
+# Copyright © 1991-2021 Unicode, Inc.
# For terms of use, see http://www.unicode.org/copyright.html
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -31,7 +31,9 @@
area ; hectare ; square-meter ; 10,000 * x ; 1.0E7
area ; square-kilometer ; square-meter ; 1,000,000 * x ; 1.0E9
area ; square-mile ; square-meter ; 2,589,988.110336 * x ; 2.589988E9
+concentration ; milligram-ofglucose-per-deciliter ; kilogram-item-per-kilogram-cubic-meter ; 60,221,407,600,000,000,000,000,000,000/1,801,557 * x ; 3.342742E25
concentration ; millimole-per-liter ; item-per-cubic-meter ; 602,214,076,000,000,000,000,000 * x ; 6.022141E26
+concentration-mass ; ofglucose ; item-per-kilogram ; 6,022,140,760,000,000,000,000,000,000,000/1,801,557 * x ; 3.342742E27
consumption ; liter-per-100-kilometer ; cubic-meter-per-meter ; 0.00000001 * x ; 1.0E-5
consumption ; liter-per-kilometer ; cubic-meter-per-meter ; 0.000001 * x ; 0.001
consumption-inverse ; mile-per-gallon-imperial ; meter-per-cubic-meter ; 160,934,400,000/454,609 * x ; 3.540062E8
@@ -121,7 +123,6 @@
mass ; metric-ton ; kilogram ; 1,000 * x ; 1000000.0
mass ; earth-mass ; kilogram ; 5,972,200,000,000,000,000,000,000 * x ; 5.9722E27
mass ; solar-mass ; kilogram ; 1,988,470,000,000,000,000,000,000,000,000 * x ; 1.98847E33
-mass-density ; milligram-per-deciliter ; kilogram-per-cubic-meter ; 0.01 * x ; 10.0
portion ; permillion ; portion ; 0.000001 * x ; 0.001
portion ; permyriad ; portion ; 0.0001 * x ; 0.1
portion ; permille ; portion ; 0.001 * x ; 1.0
diff --git a/common/transforms/Latin-ASCII.xml b/common/transforms/Latin-ASCII.xml
index 8673e2e..8458d3d 100644
--- a/common/transforms/Latin-ASCII.xml
+++ b/common/transforms/Latin-ASCII.xml
@@ -41,7 +41,7 @@
Đ → D ; # 0110;LATIN CAPITAL LETTER D WITH STROKE
đ → d ; # 0111;LATIN SMALL LETTER D WITH STROKE
Ħ → H ; # 0126;LATIN CAPITAL LETTER H WITH STROKE
-ħ → h ; # 0126;LATIN SMALL LETTER H WITH STROKE
+ħ → h ; # 0127;LATIN SMALL LETTER H WITH STROKE
ı → i ; # 0131;LATIN SMALL LETTER DOTLESS I
IJ → IJ ; # 0132;LATIN CAPITAL LIGATURE IJ (compat)
ij → ij ; # 0133;LATIN SMALL LIGATURE IJ (compat)
@@ -410,8 +410,8 @@
₣ → 'Fr.' ; # 20A3;FRENCH FRANC SIGN (from ‹character-fallback›)
₤ → 'L.' ; # 20A4;LIRA SIGN (from ‹character-fallback›)
₧ → Pts ; # 20A7;PESETA SIGN (from ‹character-fallback›)
-₺ → TL ; # 20BA;TURKISH LIRA SIGN (from ‹character-fallback›)
₹ → Rs ; # 20B9;INDIAN RUPEE SIGN (from ‹character-fallback›)
+₺ → TL ; # 20BA;TURKISH LIRA SIGN (from ‹character-fallback›)
℀ → 'a/c' ; # 2100;ACCOUNT OF (compat)
℁ → 'a/s' ; # 2101;ADDRESSED TO THE SUBJECT (compat)
ℂ → C ; # 2102;DOUBLE-STRUCK CAPITAL C (compat)
@@ -566,6 +566,34 @@
⒳ → '(x)' ; # 24B3;PARENTHESIZED LATIN SMALL LETTER X (compat)
⒴ → '(y)' ; # 24B4;PARENTHESIZED LATIN SMALL LETTER Y (compat)
⒵ → '(z)' ; # 24B5;PARENTHESIZED LATIN SMALL LETTER Z (compat)
+🄐 → '(A)' ; # 1F110;PARENTHESIZED LATIN CAPITAL LETTER A (compat)
+🄑 → '(B)' ; # 1F111;PARENTHESIZED LATIN CAPITAL LETTER B (compat)
+🄒 → '(C)' ; # 1F112;PARENTHESIZED LATIN CAPITAL LETTER C (compat)
+🄓 → '(D)' ; # 1F113;PARENTHESIZED LATIN CAPITAL LETTER D (compat)
+🄔 → '(E)' ; # 1F114;PARENTHESIZED LATIN CAPITAL LETTER E (compat)
+🄕 → '(F)' ; # 1F115;PARENTHESIZED LATIN CAPITAL LETTER F (compat)
+🄖 → '(G)' ; # 1F116;PARENTHESIZED LATIN CAPITAL LETTER G (compat)
+🄗 → '(H)' ; # 1F117;PARENTHESIZED LATIN CAPITAL LETTER H (compat)
+🄘 → '(I)' ; # 1F118;PARENTHESIZED LATIN CAPITAL LETTER I (compat)
+🄙 → '(J)' ; # 1F119;PARENTHESIZED LATIN CAPITAL LETTER J (compat)
+🄚 → '(K)' ; # 1F11A;PARENTHESIZED LATIN CAPITAL LETTER K (compat)
+🄛 → '(L)' ; # 1F11B;PARENTHESIZED LATIN CAPITAL LETTER L (compat)
+🄜 → '(M)' ; # 1F11C;PARENTHESIZED LATIN CAPITAL LETTER M (compat)
+🄝 → '(N)' ; # 1F11D;PARENTHESIZED LATIN CAPITAL LETTER N (compat)
+🄞 → '(O)' ; # 1F11E;PARENTHESIZED LATIN CAPITAL LETTER O (compat)
+🄟 → '(P)' ; # 1F11F;PARENTHESIZED LATIN CAPITAL LETTER P (compat)
+🄠 → '(Q)' ; # 1F120;PARENTHESIZED LATIN CAPITAL LETTER Q (compat)
+🄡 → '(R)' ; # 1F121;PARENTHESIZED LATIN CAPITAL LETTER R (compat)
+🄢 → '(S)' ; # 1F122;PARENTHESIZED LATIN CAPITAL LETTER S (compat)
+🄣 → '(T)' ; # 1F123;PARENTHESIZED LATIN CAPITAL LETTER T (compat)
+🄤 → '(U)' ; # 1F124;PARENTHESIZED LATIN CAPITAL LETTER U (compat)
+🄥 → '(V)' ; # 1F125;PARENTHESIZED LATIN CAPITAL LETTER V (compat)
+🄦 → '(W)' ; # 1F126;PARENTHESIZED LATIN CAPITAL LETTER W (compat)
+🄧 → '(X)' ; # 1F127;PARENTHESIZED LATIN CAPITAL LETTER X (compat)
+🄨 → '(Y)' ; # 1F128;PARENTHESIZED LATIN CAPITAL LETTER Y (compat)
+🄩 → '(Z)' ; # 1F129;PARENTHESIZED LATIN CAPITAL LETTER Z (compat)
+
+
#
# Roman numerals
#
@@ -607,6 +635,9 @@
¼ → ' 1/4' ; # 00BC;VULGAR FRACTION ONE QUARTER (from ‹character-fallback›)
½ → ' 1/2' ; # 00BD;VULGAR FRACTION ONE HALF (from ‹character-fallback›)
¾ → ' 3/4' ; # 00BE;VULGAR FRACTION THREE QUARTERS (from ‹character-fallback›)
+⅐ → ' 1/7' ; # 2150;VULGAR FRACTION ONE SEVENTH
+⅑ → ' 1/9' ; # 2151;VULGAR FRACTION ONE NINTH
+⅒ → ' 1/10' ; # 2151;VULGAR FRACTION ONE TENTH
⅓ → ' 1/3' ; # 2153;VULGAR FRACTION ONE THIRD (from ‹character-fallback›)
⅔ → ' 2/3' ; # 2154;VULGAR FRACTION TWO THIRDS (from ‹character-fallback›)
⅕ → ' 1/5' ; # 2155;VULGAR FRACTION ONE FIFTH (from ‹character-fallback›)
@@ -620,6 +651,7 @@
⅝ → ' 5/8' ; # 215D;VULGAR FRACTION FIVE EIGHTHS (from ‹character-fallback›)
⅞ → ' 7/8' ; # 215E;VULGAR FRACTION SEVEN EIGHTHS (from ‹character-fallback›)
⅟ → ' 1/' ; # 215F;FRACTION NUMERATOR ONE (from ‹character-fallback›)
+↉ → ' 0/3' ; # 2189;VULGAR FRACTION ZERO THIRDS
#
# Enclosed numeric
#
@@ -643,6 +675,7 @@
⒅ → '(18)' ; # 2485;PARENTHESIZED NUMBER EIGHTEEN (compat)
⒆ → '(19)' ; # 2486;PARENTHESIZED NUMBER NINETEEN (compat)
⒇ → '(20)' ; # 2487;PARENTHESIZED NUMBER TWENTY (compat)
+🄀 → '0.' ; # 1F100;DIGIT ZERO FULL STOP (compat)
⒈ → '1.' ; # 2488;DIGIT ONE FULL STOP (compat)
⒉ → '2.' ; # 2489;DIGIT TWO FULL STOP (compat)
⒊ → '3.' ; # 248A;DIGIT THREE FULL STOP (compat)
@@ -663,6 +696,16 @@
⒙ → '18.' ; # 2499;NUMBER EIGHTEEN FULL STOP (compat)
⒚ → '19.' ; # 249A;NUMBER NINETEEN FULL STOP (compat)
⒛ → '20.' ; # 249B;NUMBER TWENTY FULL STOP (compat)
+🄁 → '0,' ; # 1F101;DIGIT ZERO COMMA (compat)
+🄂 → '1,' ; # 1F102;DIGIT ONE COMMA (compat)
+🄃 → '2,' ; # 1F103;DIGIT TWO COMMA (compat)
+🄄 → '3,' ; # 1F104;DIGIT THREE COMMA (compat)
+🄅 → '4,' ; # 1F105;DIGIT FOUR COMMA (compat)
+🄆 → '5,' ; # 1F106;DIGIT FIVE COMMA (compat)
+🄇 → '6,' ; # 1F107;DIGIT SIX COMMA (compat)
+🄈 → '7,' ; # 1F108;DIGIT SEVEN COMMA (compat)
+🄉 → '8,' ; # 1F109;DIGIT EIGHT COMMA (compat)
+🄊 → '9,' ; # 1F10A;DIGIT NINE COMMA (compat)
#
# Other numeric (ideographic and fullwidth)
#
@@ -738,6 +781,8 @@
#
# Other misc punctuation and symbols
#
+¡ → '!' ; # 00A1;INVERTED EXCLAMATION MARK
+¿ → '?' ; # 00BF;INVERTED QUESTION MARK
˂ → '<' ; # 02C2;MODIFIER LETTER LEFT ARROWHEAD
˃ → '>' ; # 02C3;MODIFIER LETTER RIGHT ARROWHEAD
˄ → '^' ; # 02C4;MODIFIER LETTER UP ARROWHEAD
@@ -756,6 +801,11 @@
⁈ → '?!' ; # 2048;QUESTION EXCLAMATION MARK (compat)
⁉ → '!?' ; # 2049;EXCLAMATION QUESTION MARK (compat)
⁎ → '*' ; # 204E;LOW ASTERISK
+\← → '<-' ; # 2190;LEFTWARDS ARROW
+\→ → '->' ; # 2192;RIGHTWARDS ARROW
+\↔ → '<->' ; # 2194;LEFT RIGHT ARROW
+← → '<-' ; # FFE9;HALFWIDTH LEFTWARDS ARROW
+→ → '->' ; # FFEB;HALFWIDTH RIGHTWARDS ARROW
# CJK
、 → ',' ; # 3001;IDEOGRAPHIC COMMA
。 → '.' ; # 3002;IDEOGRAPHIC FULL STOP
@@ -852,6 +902,7 @@
#
# Other math operators (non-ASCII-range)
#
+± → '+/-' ; # 00B1;PLUS-MINUS SIGN
× → '*' ; # 00D7;MULTIPLICATION SIGN
÷ → '/' ; # 00F7;DIVISION SIGN
˖ → '+' ; # 02D6;MODIFIER LETTER PLUS SIGN
diff --git a/common/validity/currency.xml b/common/validity/currency.xml
index c28582e..f45ef95 100644
--- a/common/validity/currency.xml
+++ b/common/validity/currency.xml
@@ -41,7 +41,7 @@
YER
ZAR ZMW
</id>
- <!-- Deprecated values are those that are not legal tender in some country after 2020.
+ <!-- Deprecated values are those that are not legal tender in some country after 2021.
More detailed usage information needed for some implementations is in supplemental data. -->
<id type='currency' idStatus='deprecated'> <!-- 147 items -->
ADP AFA ALK AOK AON AOR ARA ARL~M ARP ATS AZM
diff --git a/common/validity/language.xml b/common/validity/language.xml
index c04894c..a3cfadd 100644
--- a/common/validity/language.xml
+++ b/common/validity/language.xml
@@ -13,7 +13,7 @@
<supplementalData>
<version number="$Revision$"/>
<idValidity>
- <id type='language' idStatus='regular'> <!-- 7908 items -->
+ <id type='language' idStatus='regular'> <!-- 7909 items -->
aa aaa~i aak~l aan~q aas~x aaz
ab aba~j abl~z
aca~b acd~f ach~i ack~n acp~z
@@ -346,7 +346,7 @@
nl nla nlc nle nlg nli~m nlo nlq nlu~z
nma~z
nn nna~n nnp~r nnt~w nny~z
- noa noc~n nop~q nos~w noy~z
+ no noa noc~n nop~q nos~w noy~z
npa~b npg~h npl npn~o nps npu npx~y
nqg nqk~o nqq nqy
nr nra~c nre~g nri nrk~n nrp nrr nrt~u nrx nrz
@@ -621,7 +621,7 @@
mis mul
zxx
</id>
- <id type='language' idStatus='deprecated'> <!-- 265 items -->
+ <id type='language' idStatus='deprecated'> <!-- 264 items -->
aam adp agp ais aju als aoh arb asd aue ayr ayx~y azj
baz bbz bcc bcl bgm bh bhk bjd bjq bkb bmy bpb btb btl bxk bxr bxx byy
cbe cbh cca ccq cdg cjr cka cld cmk cmn cnr coy cqu cum cwd
@@ -635,7 +635,7 @@
kbf kdv kgc~d kgh khk kjf kmr knc kng knn koj kox kpp kpv krm ktr kvs kwq kxe kxl kxu kzh kzj kzt
lba lbk leg lii llo lmm lmz lsg lvs
meg mgx mhh mhr mja mld mnk mnt mo mof mst mup mwd mwj mwx~y myd myi myq myt
- nad nbf nbx ncp nln nlr nns nnx no noo npi nts nxu
+ nad nbf nbx ncp nln nlr nns nnx noo npi nts nxu
ojg ome ory oun
pbu pbz pcr pes pgy plp plt pmc pmu pnb pod ppa ppr prb prs pry puk puz
quz
diff --git a/common/validity/unit.xml b/common/validity/unit.xml
index c5e0a7a..128977c 100644
--- a/common/validity/unit.xml
+++ b/common/validity/unit.xml
@@ -16,9 +16,10 @@
area-square-meter area-square-mile area-square-yard
area-dunam
concentr-karat
- concentr-milligram-per-deciliter concentr-millimole-per-liter
+ concentr-milligram-ofglucose-per-deciliter concentr-millimole-per-liter
concentr-percent concentr-permille concentr-permyriad concentr-permillion
concentr-mole concentr-item concentr-portion
+ concentr-ofglucose
consumption-liter-per-100-kilometer consumption-liter-per-kilometer
consumption-mile-per-gallon consumption-mile-per-gallon-imperial
digital-bit digital-byte
@@ -89,13 +90,14 @@
</id>
<id type='unit' idStatus='deprecated'>
acceleration-meter-per-second-squared
- consumption-liter-per-100kilometers
+ consumption-liter-per-100kilometers
concentr-part-per-million
pressure-inch-hg
pressure-pound-per-square-inch
pressure-millimeter-of-mercury
proportion-karat
torque-pound-foot
+ concentr-milligram-per-deciliter
</id>
</idValidity>
</supplementalData>
diff --git a/common/validity/variant.xml b/common/validity/variant.xml
index ee9ddca..77a7ad3 100644
--- a/common/validity/variant.xml
+++ b/common/validity/variant.xml
@@ -13,9 +13,9 @@
<supplementalData>
<version number="$Revision$"/>
<idValidity>
- <id type='variant' idStatus='regular'> <!-- 101 items -->
+ <id type='variant' idStatus='regular'> <!-- 103 items -->
1606nict 1694acad 1901 1959acad 1994 1996
- abl1943 akuapem alalc97 aluku ao1990 aranes asante auvern
+ abl1943 akuapem alalc97 aluku ao1990 aranes arkaika asante auvern
baku1926 balanka barla basiceng bauddha biscayan biske bohoric boont bornholm
cisaup colb1945 cornu creiss
dajnko
@@ -35,7 +35,7 @@
scotland scouse simple solba sotav spanglis surmiran sursilv sutsilv
tarask tongyong tunumiit
uccor ucrcor ulster unifon
- vaidika valencia vallader vivaraup
+ vaidika valencia vallader vecdruka vivaraup
wadegile
xsistemo
</id>
diff --git a/docs/_config.yml b/docs/_config.yml
new file mode 100644
index 0000000..15aa5cf
--- /dev/null
+++ b/docs/_config.yml
@@ -0,0 +1,3 @@
+name: CLDR LDML
+
+markdown: GFM
diff --git a/docs/ldml/tr35-collation.html b/docs/ldml/tr35-collation.html
deleted file mode 100644
index 82e8ebe..0000000
--- a/docs/ldml/tr35-collation.html
+++ /dev/null
@@ -1,3005 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"https://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
- <meta name="generator" content=
- "HTML Tidy for HTML5 for Apple macOS version 5.6.0">
- <meta http-equiv="Content-Type" content=
- "text/html; charset=utf-8">
- <meta http-equiv="Content-Language" content="en-us">
- <link rel="stylesheet" href=
- "../reports.css" type="text/css">
- <title>UTS #35: Unicode LDML: Collation</title>
- <style type="text/css">
- <!--
- .dtd {
- font-family: monospace;
- font-size: 90%;
- background-color: #CCCCFF;
- border-style: dotted;
- border-width: 1px;
- }
-
- .xmlExample {
- font-family: monospace;
- font-size: 80%
- }
-
- .blockedInherited {
- font-style: italic;
- font-weight: bold;
- border-style: dashed;
- border-width: 1px;
- background-color: #FF0000
- }
-
- .inherited {
- font-weight: bold;
- border-style: dashed;
- border-width: 1px;
- background-color: #00FF00
- }
-
- .element {
- font-weight: bold;
- color: red;
- }
-
- .attribute {
- font-weight: bold;
- color: maroon;
- }
-
- .attributeValue {
- font-weight: bold;
- color: blue;
- }
-
- li, p {
- margin-top: 0.5em;
- margin-bottom: 0.5em
- }
-
- h2, h3, h4, table {
- margin-top: 1.5em;
- margin-bottom: 0.5em;
- }
- -->
- </style>
-</head>
-<body>
- <table class="header" width="100%">
- <tr>
- <td class="icon"><a href="https://unicode.org"><img alt=
- "[Unicode]" src="../logo60s2.gif"
- width="34" height="33" style=
- "vertical-align: middle; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px; border-top-width: 0px;"></a>
- <a class="bar" href=
- "https://www.unicode.org/reports/">Technical Reports</a></td>
- </tr>
- <tr>
- <td class="gray"> </td>
- </tr>
- </table>
- <div class="body">
- <h2 style="text-align: center">Unicode Technical Standard #35</h2>
- <h1>Unicode Locale Data Markup Language (LDML)<br>
- Part 5: Collation</h1>
- <!-- At least the first row of this header table should be identical across the parts of this UTS. -->
- <table border="1" cellpadding="2" cellspacing="0" class="wide">
- <tr>
- <td>Version</td>
- <td>38</td>
- </tr>
- <tr>
- <td>Editors</td>
- <td>Markus Scherer (<a href="mailto:markus.icu@gmail.com">markus.icu@gmail.com</a>) and
- <a href="tr35.html#Acknowledgments">other CLDR committee
- members</a></td>
- </tr>
- </table>
- <p>For the full header, summary, and status, see <a href=
- "tr35.html">Part 1: Core</a></p>
- <h3><i>Summary</i></h3>
- <p>This document describes parts of an XML format
- (<i>vocabulary</i>) for the exchange of structured locale data.
- This format is used in the <a href=
- "https://unicode.org/cldr/">Unicode Common Locale Data
- Repository</a>.</p>
- <p>This is a partial document, describing only those parts of
- the LDML that are relevant for collation (sorting, searching
- & grouping). For the other parts of the LDML see the
- <a href="tr35.html">main LDML document</a> and the links
- above.</p>
- <h3><i>Status</i></h3>
-
- <!-- NOT YET APPROVED
- <p>
- <i class="changed">This is a<b><font color="#ff3333">
- draft </font></b>document which may be updated, replaced, or superseded by
- other documents at any time. Publication does not imply endorsement
- by the Unicode Consortium. This is not a stable document; it is
- inappropriate to cite this document as other than a work in
- progress.
- </i>
- </p>
- END NOT YET APPROVED -->
- <!-- APPROVED -->
- <p><i>This document has been reviewed by Unicode members and
- other interested parties, and has been approved for publication
- by the Unicode Consortium. This is a stable document and may be
- used as reference material or cited as a normative reference by
- other specifications.</i></p>
- <!-- END APPROVED -->
-
- <blockquote>
- <p><i><b>A Unicode Technical Standard (UTS)</b> is an
- independent specification. Conformance to the Unicode
- Standard does not imply conformance to any UTS.</i></p>
- </blockquote>
- <p><i>Please submit corrigenda and other comments with the CLDR
- bug reporting form [<a href="tr35.html#Bugs">Bugs</a>]. Related
- information that is useful in understanding this document is
- found in the <a href="tr35.html#References">References</a>. For
- the latest version of the Unicode Standard see [<a href=
- "tr35.html#Unicode">Unicode</a>]. For a list of current Unicode
- Technical Reports see [<a href=
- "tr35.html#Reports">Reports</a>]. For more information about
- versions of the Unicode Standard, see [<a href=
- "tr35.html#Versions">Versions</a>].</i></p>
- <h2><a name="Parts" href="#Parts" id="Parts">Parts</a></h2>
- <!-- This section of Parts should be identical in all of the parts of this UTS. -->
- <p>The LDML specification is divided into the following
- parts:</p>
- <ul class="toc">
- <li>Part 1: <a href="tr35.html#Contents">Core</a> (languages,
- locales, basic structure)</li>
- <li>Part 2: <a href="tr35-general.html#Contents">General</a>
- (display names & transforms, etc.)</li>
- <li>Part 3: <a href="tr35-numbers.html#Contents">Numbers</a>
- (number & currency formatting)</li>
- <li>Part 4: <a href="tr35-dates.html#Contents">Dates</a>
- (date, time, time zone formatting)</li>
- <li>Part 5: <a href=
- "tr35-collation.html#Contents">Collation</a> (sorting,
- searching, grouping)</li>
- <li>Part 6: <a href=
- "tr35-info.html#Contents">Supplemental</a> (supplemental
- data)</li>
- <li>Part 7: <a href=
- "tr35-keyboards.html#Contents">Keyboards</a> (keyboard
- mappings)</li>
- </ul>
- <h2><a name="Contents" href="#Contents" id="Contents">Contents
- of Part 5, Collation</a></h2>
- <!-- START Generated TOC: CheckHtmlFiles -->
- <ul class="toc">
- <li>1 <a href="#CLDR_Collation">CLDR Collation</a>
- <ul class="toc">
- <li>1.1 <a href="#CLDR_Collation_Algorithm">CLDR
- Collation Algorithm</a>
- <ul class="toc">
- <li>1.1.1 <a href="#Algorithm_FFFE">U+FFFE</a></li>
- <li>1.1.2 <a href=
- "#Context_Sensitive_Mappings">Context-Sensitive
- Mappings</a></li>
- <li>1.1.3 <a href="#Algorithm_Case">Case
- Handling</a></li>
- <li>1.1.4 <a href=
- "#Algorithm_Reordering_Groups">Reordering
- Groups</a></li>
- <li>1.1.5 <a href="#Combining_Rules">Combining
- Rules</a></li>
- </ul>
- </li>
- </ul>
- </li>
- <li>2 <a href="#Root_Collation">Root Collation</a>
- <ul class="toc">
- <li>2.1 <a href=
- "#grouping_classes_of_characters">Grouping classes of
- characters</a></li>
- <li>2.2 <a href="#non_variable_symbols">Non-variable
- symbols</a></li>
- <li>2.3 <a href="#tibetan_contractions">Additional
- contractions for Tibetan</a></li>
- <li>2.4 <a href="#tailored_noncharacter_weights">Tailored
- noncharacter weights</a></li>
- <li>2.5 <a href="#Root_Data_Files">Root Collation Data
- Files</a></li>
- <li>2.6 <a href="#Root_Data_File_Formats">Root Collation
- Data File Formats</a>
- <ul class="toc">
- <li>2.6.1 <a href=
- "#File_Format_allkeys_CLDR_txt">allkeys_CLDR.txt</a></li>
- <li>2.6.2 <a href=
- "#File_Format_FractionalUCA_txt">FractionalUCA.txt</a></li>
- <li>2.6.3 <a href=
- "#File_Format_UCA_Rules_txt">UCA_Rules.txt</a></li>
- </ul>
- </li>
- </ul>
- </li>
- <li>3 <a href="#Collation_Tailorings">Collation
- Tailorings</a>
- <ul class="toc">
- <li>3.1 <a href="#Collation_Types">Collation Types</a>
- <ul class="toc">
- <li>3.1.1 <a href=
- "#Collation_Type_Fallback">Collation Type
- Fallback</a>
- <ul class="toc">
- <li>Table: <a href=
- "#Sample_requested_and_actual_collation_locales_and_types">
- Sample requested and actual collation locales and
- types</a></li>
- </ul>
- </li>
- </ul>
- </li>
- <li>3.2 <a href="#Collation_Version">Version</a></li>
- <li>3.3 <a href="#Collation_Element">Collation
- Element</a></li>
- <li>3.4 <a href="#Setting_Options">Setting Options</a>
- <ul class="toc">
- <li>Table: <a href="#Collation_Settings">Collation
- Settings</a></li>
- <li>3.4.1 <a href="#Common_Settings">Common settings
- combinations</a></li>
- <li>3.4.2 <a href="#Normalization_Setting">Notes on
- the normalization setting</a></li>
- <li>3.4.3 <a href="#Variable_Top_Settings">Notes on
- variable top settings</a></li>
- </ul>
- </li>
- <li>3.5 <a href="#Rules">Collation Rule Syntax</a></li>
- <li>3.6 <a href="#Orderings">Orderings</a>
- <ul class="toc">
- <li>Table: <a href=
- "#Specifying_Collation_Ordering">Specifying Collation
- Ordering</a></li>
- <li>Table: <a href=
- "#Abbreviating_Ordering_Specifications">Abbreviating
- Ordering Specifications</a></li>
- </ul>
- </li>
- <li>3.7 <a href="#Contractions">Contractions</a>
- <ul class="toc">
- <li>Table: <a href=
- "#Specifying_Contractions">Specifying
- Contractions</a></li>
- </ul>
- </li>
- <li>3.8 <a href="#Expansions">Expansions</a></li>
- <li>3.9 <a href="#Context_Before">Context Before</a>
- <ul class="toc">
- <li>Table: <a href=
- "#Specifying_Previous_Context">Specifying Previous
- Context</a></li>
- </ul>
- </li>
- <li>3.10 <a href=
- "#Placing_Characters_Before_Others">Placing Characters
- Before Others</a></li>
- <li>3.11 <a href="#Logical_Reset_Positions">Logical Reset
- Positions</a>
- <ul class="toc">
- <li>Table: <a href=
- "#Specifying_Logical_Positions">Specifying Logical
- Positions</a></li>
- </ul>
- </li>
- <li>3.12 <a href=
- "#Special_Purpose_Commands">Special-Purpose Commands</a>
- <ul class="toc">
- <li>Table: <a href=
- "#Special_Purpose_Elements">Special-Purpose
- Elements</a></li>
- </ul>
- </li>
- <li>3.13 <a href="#Script_Reordering">Collation
- Reordering</a>
- <ul class="toc">
- <li>3.13.1 <a href=
- "#Interpretation_reordering">Interpretation of a
- reordering list</a></li>
- <li>3.13.2 <a href=
- "#Reordering_Groups_allkeys">Reordering Groups for
- allkeys.txt</a></li>
- </ul>
- </li>
- <li>3.14 <a href="#Case_Parameters">Case Parameters</a>
- <ul class="toc">
- <li>3.14.1 <a href="#Case_Untailored">Untailored
- Characters</a></li>
- <li>3.14.2 <a href="#Case_Weights">Compute Modified
- Collation Elements</a></li>
- <li>3.14.3 <a href="#Case_Tailored">Tailored
- Strings</a></li>
- </ul>
- </li>
- <li>3.15 <a href="#Visibility">Visibility</a></li>
- <li>3.16 <a href="#Collation_Indexes">Collation
- Indexes</a>
- <ul class="toc">
- <li>3.16.1 <a href="#Index_Characters">Index
- Characters</a></li>
- <li>3.16.2 <a href="#CJK_Index_Markers">CJK Index
- Markers</a></li>
- </ul>
- </li>
- </ul>
- </li>
- </ul><!-- END Generated TOC: CheckHtmlFiles -->
- <h2>1 <a name="CLDR_Collation" href="#CLDR_Collation" id=
- "CLDR_Collation">CLDR Collation</a></h2>
- <p>Collation is the general term for the process and function
- of determining the sorting order of strings of characters, for
- example for lists of strings presented to users, or in
- databases for sorting and selecting records.</p>
- <p>Collation varies by language, by application (some languages
- use special phonebook sorting), and other criteria (for
- example, phonetic vs. visual).</p>
- <p>CLDR provides collation data for many languages and styles.
- The data supports not only sorting but also language-sensitive
- searching and grouping under index headers. All CLDR collations
- are based on the [<a href=
- "https://www.unicode.org/reports/tr41/#UTS10">UCA</a>] default
- order, with common modifications applied in the CLDR root
- collation, and further tailored for language and style as
- needed.</p>
- <h3>1.1 <a name="CLDR_Collation_Algorithm" href=
- "#CLDR_Collation_Algorithm" id="CLDR_Collation_Algorithm">CLDR
- Collation Algorithm</a></h3>
- <p>The CLDR collation algorithm is an extension of the <a href=
- "https://www.unicode.org/reports/tr10/#Main_Algorithm">Unicode
- Collation Algorithm</a>.</p>
- <h4>1.1.1 <a name="Algorithm_FFFE" href="#Algorithm_FFFE" id=
- "Algorithm_FFFE">U+FFFE</a></h4>
- <p>U+FFFE maps to a CE with a minimal, unique primary weight.
- Its primary weight is not "variable": U+FFFE must not become
- ignorable in alternate handling. On the identical level, a
- minimal, unique “weight” must be emitted for U+FFFE as well.
- This allows for <a href=
- "https://www.unicode.org/reports/tr10/#Merging_Sort_Keys">Merging
- Sort Keys</a> within code point space.</p>
- <p>For example, when sorting names in a database, a sortable
- string can be formed with <em>last_name</em> + '\uFFFE' +
- <em>first_name</em>. These strings would sort properly, without
- ever comparing the last part of a last name with the first part
- of another first name.</p>
- <p>For backwards secondary level sorting, text <i>segments</i>
- separated by U+FFFE are processed in forward segment order, and
- <i>within</i> each segment the secondary weights are compared
- backwards. This is so that such combined strings are processed
- consistently with merging their sort keys (for example, by
- concatenating them level by level with a low separator).</p>
- <p class="note">Note: With unique, low weights on <i>all</i>
- levels it is possible to achieve <code>sortkey(str1 + "\uFFFE"
- + str2) == mergeSortkeys(sortkey(str1), sortkey(str2))</code> .
- When that is not necessary, then code can be a little simpler
- (no special handling for U+FFFE except for
- backwards-secondary), sort keys can be a little shorter (when
- using compressible common non-primary weights for U+FFFE), and
- another low weight can be used in tailorings.</p>
- <h4>1.1.2 <a name="Context_Sensitive_Mappings" href=
- "#Context_Sensitive_Mappings" id=
- "Context_Sensitive_Mappings">Context-Sensitive
- Mappings</a></h4>
- <p>Contraction matching, as in the UCA, starts from the first
- character of the contraction string. It slows down processing
- of that first character even when none of its contractions
- matches. In some cases, it is preferrable to change such
- contractions to mappings with a prefix (context before a
- character), so that complex processing is done only when the
- less-frequently occurring trailing character is
- encountered.</p>
- <p>For example, the DUCET contains contractions for several
- variants of L· (L followed by middle dot). Collating ASCII text
- is slowed down by contraction matching starting with L/l. In
- the CLDR root collation, these contractions are replaced by
- prefix mappings (L|·) which are triggered only when the middle
- dot is encountered. CLDR also uses prefix rules in the Japanese
- tailoring, for processing of Hiragana/Katakana length and
- iteration marks.</p>
- <p>The mapping is conditional on the prefix match but does not
- change the mappings for the preceding text. As a result, a
- contraction mapping for "px" can be replaced by a prefix rule
- "p|x" only if px maps to the collation elements for p followed
- by the collation elements for "x if after p". In the DUCET, L·
- maps to CE(L) followed by a special secondary CE (which differs
- from CE(·) when · is not preceded by L). In the CLDR root
- collation, L has no context-sensitive mappings, but · maps to
- that special secondary CE if preceded by L.</p>
- <p>A prefix mapping for p|x behaves mostly like the contraction
- px, except when there is a contraction that overlaps with the
- prefix, for example one for "op". A contraction matches only
- new text (and consumes it), while a prefix matches only
- already-consumed text.</p>
- <ul>
- <li>With mappings for "op" and "px", only the first
- contraction matches in text "opx". (It consumes the "op"
- characters, and there is no context-sensitive mapping for
- x.)</li>
- <li>With mappings for "op" and "p|x", both the contraction
- and the prefix rule match in text "opx". (The prefix always
- matches already-consumed characters, regardless of whether
- they mapped as part of contractions.)</li>
- </ul>
- <p class="note">Note: Matching of discontiguous contractions
- should be implemented without rewriting the text (unlike in the
- [<a href="https://www.unicode.org/reports/tr41/#UTS10">UCA</a>]
- algorithm specification), so that prefix matching is
- predictable. (It should also help with contraction matching
- performance.) An implementation that does rewrite the text, as
- in the UCA, will get different results for some (unusual)
- combinations of contractions, prefix rules, and input text.</p>
- <p>Prefix matching uses a simple longest-match algorithm (op|c
- wins over p|c). It is recommended that prefix rules be limited
- to mappings where both the prefix string and the mapped string
- begin with an NFC boundary (that is, with a normalization
- starter that does not combine backwards). (In op|ch both o and
- c should be starters (ccc=0) and NFC_QC=Yes.) Otherwise, prefix
- matching would be affected by canonical reordering and
- discontiguous matching, like contractions. Prefix matching is
- thus always contiguous.</p>
- <p>A character can have mappings with both prefixes (context
- before) and contraction suffixes. Prefixes are matched first.
- This is to keep them reasonably implementable: When there is a
- mapping with both a prefix and a contraction suffix (like in
- Japanese: ぐ|ゞ), then the matching needs to go in both
- directions. The contraction might involve discontiguous
- matching, which needs complex text iteration and handling of
- skipped combining marks, and will consume the matching suffix.
- Prefix matching should be first because, regardless of whether
- there is a match, the implementation will always return to the
- original text index (right after the prefix) from where it will
- start to look at all of the contractions for that prefix.</p>
- <p>If there is a match for a prefix but no match for any of the
- suffixes for that prefix, then fall back to mappings with the
- next-longest matching prefix, and so on, ultimately to mappings
- with no prefix. (Otherwise mappings with longer prefixes would
- “hide” mappings with shorter prefixes.)</p>
- <p>Consider the following mappings.</p>
- <ol>
- <li>p → CE(p)</li>
- <li>h → CE(h)</li>
- <li>c → CE(c)</li>
- <li>ch → CE(d)</li>
- <li>p|c → CE(u)</li>
- <li>p|ci → CE(v)</li>
- <li>p|ĉ → CE(w)</li>
- <li>op|ck → CE(x)</li>
- </ol>
- <p>With these, text collates like this:</p>
- <ul>
- <li>pc → CE(p)CE(u)</li>
- <li>pci → CE(p)CE(v)</li>
- <li>pch → CE(p)CE(u)CE(h)</li>
- <li>pĉ → CE(p)CE(w)</li>
- <li>pĉ̣ → CE(p)CE(w)CE(U+0323) // discontiguous</li>
- <li>opck → CE(o)CE(p)CE(x)</li>
- <li>opch → CE(o)CE(p)CE(u)CE(h)</li>
- </ul>
- <p>However, if the mapping p|c → CE(u) is missing, then text
- "pch" maps to CE(p)CE(d), "opch" maps to CE(o)CE(p)CE(d), and
- "pĉ̣" maps to CE(p)CE(c)CE(U+0323)CE(U+0302) (because
- discontiguous contraction matching extends <i>an existing
- match</i> by one non-starter at a time).</p>
- <h4>1.1.3 <a name="Algorithm_Case" href="#Algorithm_Case" id=
- "Algorithm_Case">Case Handling</a></h4>
- <p>CLDR specifies how to sort lowercase or uppercase first, as
- a stronger distinction than other tertiary variants
- (<strong>caseFirst</strong>) or while completely ignoring all
- other tertiary distinctions (<strong>caseLevel</strong>). See
- <i>Section 3.3 <a href="#Setting_Options">Setting
- Options</a></i> and <i>Section 3.13 <a href=
- "#Case_Parameters">Case Parameters</a></i>.</p>
- <h4>1.1.4 <a name="Algorithm_Reordering_Groups" href=
- "#Algorithm_Reordering_Groups" id=
- "Algorithm_Reordering_Groups">Reordering Groups</a></h4>
- <p>CLDR specifies how to do parametric reordering of groups of
- scripts (e.g., “native script first”) as well as special groups
- (e.g., “digits after letters”), and provides data for the
- effective implementation of such reordering.</p>
- <h4>1.1.5 <a name="Combining_Rules" href="#Combining_Rules" id=
- "Combining_Rules">Combining Rules</a></h4>
- <p>Rules from different sources can be combined, with the later
- rules overriding the earlier ones. The following is an example
- of how this can be useful.</p>
- <p>There is a root collation for "emoji" in CLDR. So use of
- "-u-co-emoji" in a Unicode locale identifier will access that
- ordering.</p>
- <p>Example, using ICU:</p>
- <blockquote>
- <p>collator =
- Collator.getInstance(ULocale.forLanguageTag("en-u-co-emoji"));</p>
- </blockquote>
- <p>However, use of the emoji will supplant the language's
- customizations. So the above is the equivalent of:</p>
- <blockquote>
- <p>collator =
- Collator.getInstance(ULocale.forLanguageTag("und-u-co-emoji"));</p>
- </blockquote>
- <p>The same structure will not work for a language that does
- require customization, like Danish. That is, the following will
- fail.</p>
- <blockquote>
- <p>collator =
- Collator.getInstance(ULocale.forLanguageTag("da-u-co-emoji"));</p>
- </blockquote>
- <p>For that, a slightly more cumbersome method needs to be
- employed, which is to take the rules for Danish, and explicitly
- add the rules for emoji.</p>
- <blockquote>
- <p>RuleBasedCollator collator = new RuleBasedCollator(<br>
- ((RuleBasedCollator)
- Collator.getInstance(ULocale.forLanguageTag("da"))).getRules()
- +<br>
- ((RuleBasedCollator)
- Collator.getInstance(ULocale.forLanguageTag("und-u-co-emoji")))<br>
-
- .getRules());</p>
- </blockquote>
- <p>The following table shows the differences. When emoji
- ordering is supported, the two faces will be adjacent. When
- Danish ordering is supported, the ü is after the y.</p>
- <table class='simple'>
- <tbody>
- <tr>
- <td>code point order</td>
- <td>,</td>
- <td></td>
- <td></td>
- <td>Z</td>
- <td>a</td>
- <td>y</td>
- <td>ü</td>
- <td>☹️</td>
- <td>✈️️</td>
- <td>글</td>
- <td>😀</td>
- </tr>
- <tr>
- <td>en</td>
- <td>,</td>
- <td>☹️</td>
- <td>✈️️</td>
- <td>😀</td>
- <td>a</td>
- <td>ü</td>
- <td>y</td>
- <td>Z</td>
- <td>글</td>
- </tr>
- <tr>
- <td>en-u-co-emoji</td>
- <td>,</td>
- <td>😀</td>
- <td>☹️</td>
- <td>✈️️</td>
- <td>a</td>
- <td>ü</td>
- <td>y</td>
- <td>Z</td>
- <td>글</td>
- </tr>
- <tr>
- <td>da</td>
- <td>,</td>
- <td>☹️</td>
- <td>✈️️</td>
- <td>😀</td>
- <td>a</td>
- <td>y</td>
- <td><strong><u>ü</u></strong></td>
- <td>Z</td>
- <td>글</td>
- </tr>
- <tr>
- <td>da-u-co-emoji</td>
- <td>,</td>
- <td>😀</td>
- <td>☹️</td>
- <td>✈️️</td>
- <td>a</td>
- <td><strong><u>ü</u></strong></td>
- <td>y</td>
- <td>Z</td>
- <td>글</td>
- </tr>
- <tr>
- <td>combined rules</td>
- <td>,</td>
- <td>😀</td>
- <td>☹️</td>
- <td>✈️️</td>
- <td>a</td>
- <td>y</td>
- <td><strong><u>ü</u></strong></td>
- <td>Z</td>
- <td>글</td>
- </tr>
- </tbody>
- </table><br>
- <p> </p>
- <h2>2 <a name="Root_Collation" href="#Root_Collation" id=
- "Root_Collation">Root Collation</a></h2>
- <p>The CLDR root collation order is based on the <a href=
- "https://www.unicode.org/reports/tr10/#Default_Unicode_Collation_Element_Table">
- Default Unicode Collation Element Table (DUCET)</a> defined in
- <em>UTS #10: Unicode Collation Algorithm</em> [<a href=
- "https://www.unicode.org/reports/tr41/#UTS10">UCA</a>]. It is
- used by all other locales by default, or as the base for their
- tailorings. (For a chart view of the UCA, see Collation Chart
- [<a href="tr35.html#UCAChart">UCAChart</a>].)</p>
- <p>Starting with CLDR 1.9, CLDR uses modified tables for the
- root collation order. The root locale ordering is tailored in
- the following ways:</p>
- <h3>2.1 <a name="grouping_classes_of_characters" href=
- "#grouping_classes_of_characters" id=
- "grouping_classes_of_characters">Grouping classes of
- characters</a></h3>
- <p>As of Version 6.1.0, the DUCET puts characters into the
- following ordering:</p>
- <ul>
- <li>First "common characters": whitespace, punctuation,
- general symbols, some numbers, currency symbols, and other
- numbers.</li>
- <li>Then "script characters": Latin, Greek, and the rest of
- the scripts.</li>
- </ul>
- <p>(There are a few exceptions to this general ordering.)</p>
- <p>The CLDR root locale modifies the DUCET tailoring by
- ordering the common characters more strictly by category:</p>
- <ul>
- <li>whitespace, punctuation, general symbols, currency
- symbols, and numbers.</li>
- </ul>
- <p>What the regrouping allows is for users to parametrically
- reorder the groups. For example, users can reorder numbers
- after all scripts, or reorder Greek before Latin.</p>
- <p>The relative order within each of these groups still matches
- the DUCET. Symbols, punctuation, and numbers that are grouped
- with a particular script stay with that script. The differences
- between CLDR and the DUCET order are:</p>
- <ol>
- <li>CLDR groups the numbers together after currency symbols,
- instead of splitting them with some before and some after.
- Thus the following are put <em>after</em> currencies and just
- before all the other numbers.
- <blockquote>
- <p>U+09F4 ( ৴ ) [No] BENGALI CURRENCY NUMERATOR ONE<br>
- ...<br>
- U+1D371 ( 𝍱 ) [No] COUNTING ROD TENS DIGIT NINE</p>
- </blockquote>
- </li>
- <li>CLDR handles a few other characters differently
- <ol>
- <li>U+10A7F ( 𐩿 ) [Po] OLD SOUTH ARABIAN NUMERIC
- INDICATOR is put with punctuation, not symbols</li>
- <li>U+20A8 ( ₨ ) [Sc] RUPEE SIGN and U+FDFC ( ﷼ ) [Sc]
- RIAL SIGN are put with currency signs, not with R and
- REH.</li>
- </ol>
- </li>
- </ol>
- <h3>2.2 <a name="non_variable_symbols" href=
- "#non_variable_symbols" id="non_variable_symbols">Non-variable
- symbols</a></h3>
- <p>There are multiple <a href=
- "https://www.unicode.org/reports/tr10/#Variable_Weighting">Variable-Weighting</a>
- options in the UCA for symbols and punctuation, including
- <em>non-ignorable</em> and <em>shifted</em>. With the
- <em>shifted</em> option, almost all symbols and punctuation are
- ignored—except at a fourth level. The CLDR root locale ordering
- is modified so that symbols are not affected by the
- <em>shifted</em> option. That is, by default, symbols are not
- “variable” in CLDR. So <em>shifted</em> only causes whitespace
- and punctuation to be ignored, but not symbols (like ♥). The
- DUCET behavior can be specified with a locale ID using the "kv"
- keyword, to set the Variable section to include all of the
- symbols below it, or be set parametrically where
- implementations allow access.</p>
- <p>See also:</p>
- <ul>
- <li><i>Section 3.3, <a href="#Setting_Options">Setting
- Options</a></i></li>
- <li><a href=
- "https://www.unicode.org/charts/collation/">https://www.unicode.org/charts/collation/</a></li>
- </ul>
- <h3>2.3 <a name="tibetan_contractions" href=
- "#tibetan_contractions" id="tibetan_contractions">Additional
- contractions for Tibetan</a></h3>
- <p>Ten contractions are added for Tibetan: Two to fulfill
- <a href=
- "https://www.unicode.org/reports/tr10/#WF5">well-formedness
- condition 5</a>, and eight more to preserve the default order
- for Tibetan. For details see <i>UTS #10, Section 3.8.2,
- <a href="https://www.unicode.org/reports/tr10/#Well_Formed_DUCET">
- Well-Formedness of the DUCET</a></i>.</p>
- <h3>2.4 <a name="tailored_noncharacter_weights" href=
- "#tailored_noncharacter_weights" id=
- "tailored_noncharacter_weights">Tailored noncharacter
- weights</a></h3>
- <p>U+FFFE and U+FFFF have special tailorings:</p>
- <blockquote>
- <p><strong>U+FFFF:</strong> This code point is tailored to
- have a primary weight higher than all other characters. This
- allows the reliable specification of a range, such as “Sch” ≤
- X ≤ “Sch\uFFFF”, to include all strings starting with "sch"
- or equivalent.</p>
- <p><strong>U+FFFE:</strong> This code point produces a CE
- with minimal, unique weights on primary and identical levels.
- For details see the <i><a href="#Algorithm_FFFE">CLDR
- Collation Algorithm</a></i> above.</p>
- </blockquote>
- <p>UCA (beginning with version 6.3) also maps
- <strong>U+FFFD</strong> to a special collation element with a
- very high primary weight, so that it is reliably non-<a href=
- "https://www.unicode.org/reports/tr10/#Variable_Weighting">variable</a>,
- for use with <a href=
- "https://www.unicode.org/reports/tr10/#Handling_Illformed">ill-formed
- code unit sequences</a>.</p>
- <p>In CLDR, so as to maintain the special collation elements,
- <strong>U+FFFD..U+FFFF</strong> are not further tailorable, and
- nothing can tailor to them. That is, neither can occur in a
- collation rule. For example, the following rules are
- illegal:</p>
- <p><code>&\uFFFF < x</code></p>
- <p><code>&x <\uFFFF</code><br></p>
- <p class="note"><b>Note:</b></p>
- <ul>
- <li class="note">Java uses an early version of this collation
- syntax, but has not been updated recently. It does not
- support any of the syntax marked with [...], and its default
- table is not the DUCET nor the CLDR root collation.</li>
- </ul>
- <h3>2.5 <a name="Root_Data_Files" href="#Root_Data_Files" id=
- "Root_Data_Files">Root Collation Data Files</a></h3>
- <p>The CLDR root collation data files are in the CLDR
- repository and release, under the path <a href=
- "https://github.com/unicode-org/cldr/tree/latest/common/uca/">common/uca/</a>.</p>
- <p>For most data files there are <strong>_SHORT</strong>
- versions available. They contain the same data but only minimal
- comments, to reduce the file sizes.</p>
- <p>Comments with DUCET-style weights in files other than
- allkeys_CLDR.txt and allkeys_DUCET.txt use the weights defined
- in allkeys_CLDR.txt.</p>
- <ul>
- <li><strong>allkeys_CLDR</strong> - A file that provides a
- remapping of UCA DUCET weights for use with CLDR.</li>
- <li><strong>allkeys_DUCET</strong> - The same as DUCET
- allkeys.txt, but in alternate=non-ignorable sort order, for
- easier comparison with allkeys_CLDR.txt.</li>
- <li>
- <strong>FractionalUCA</strong> - A file that provides a
- remapping of UCA DUCET weights for use with CLDR. The
- weight values are modified:
- <ul>
- <li>The weights have variable length, with 1..4 bytes
- each. Each secondary or tertiary weight currently uses at
- most 2 bytes.</li>
- <li>There are tailoring gaps between adjacent weights, so
- that a number of characters can be tailored to sort
- between any two root collation elements.</li>
- <li>There are collation elements with primary weights at
- the boundaries between reordering groups and Unicode
- scripts, so that tailoring around the first or last
- primary of a group/script results in new collation
- elements that sort and reorder together with that group
- or script. These boundary weights also define the primary
- weight ranges for parametric group and script
- reordering.</li>
- </ul>An implementation may modify the weights further to
- fit the needs of its data structures.
- </li>
- <li><strong>UCA_Rules</strong> - A file that specifies the
- root collation order in the form of <a href=
- "#Collation_Tailorings">tailoring rules</a>. This is only an
- approximation of the FractionalUCA data, since the rule
- syntax cannot express every detail of the collation elements.
- For example, in the DUCET and in FractionalUCA, tertiary
- differences are usually expressed with special tertiary
- weights on all collation elements of an expansion, while a
- typical from-rules builder will modify the tertiary weight of
- only one of the collation elements.</li>
- <li>
- <strong>CollationTest_CLDR</strong> - The CLDR versions of
- the CollationTest files, which use the tailorings for CLDR.
- For information on the format, see <a href=
- "https://www.unicode.org/Public/UCA/latest/CollationTest.html">
- CollationTest.html</a> in the <a href=
- "https://www.unicode.org/reports/tr10/#Data10">UCA data
- directory</a>.
- <ul>
- <li>CollationTest_CLDR_NON_IGNORABLE.txt</li>
- <li>CollationTest_CLDR_SHIFTED.txt</li>
- </ul>
- </li>
- </ul>
- <h3>2.6 <a name="Root_Data_File_Formats" href=
- "#Root_Data_File_Formats" id="Root_Data_File_Formats">Root
- Collation Data File Formats</a></h3>
- <p>The file formats may change between versions of CLDR. The
- formats for CLDR 23 and beyond are as follows. As usual, text
- after a # is a comment.</p>
- <h4>2.6.1 <a name="File_Format_allkeys_CLDR_txt" href=
- "#File_Format_allkeys_CLDR_txt" id=
- "File_Format_allkeys_CLDR_txt">allkeys_CLDR.txt</a></h4>
- <p>This file defines CLDR’s tailoring of the DUCET, as
- described in <i>Section 2, <a href="#Root_Collation">Root
- Collation</a></i> .</p>
- <p>The format is similar to that of <a href=
- "https://www.unicode.org/reports/tr10/#File_Format">allkeys.txt</a>,
- although there may be some differences in whitespace.</p>
- <h4>2.6.2 <a name="File_Format_FractionalUCA_txt" href=
- "#File_Format_FractionalUCA_txt" id=
- "File_Format_FractionalUCA_txt">FractionalUCA.txt</a></h4>
- <p>The format is illustrated by the following sample lines,
- with commentary afterwards.</p>
- <pre>[UCA version = 6.0.0]</pre>
- <blockquote>
- <p>Provides the version number of the UCA table.</p>
- </blockquote>
- <pre>
- [Unified_Ideograph 4E00..9FCC FA0E..FA0F FA11 FA13..FA14 FA1F FA21 FA23..FA24 FA27..FA29 3400..4DB5 20000..2A6D6 2A700..2B734 2B740..2B81D]</pre>
- <blockquote>
- <p>Lists the ranges of Unified_Ideograph characters in
- collation order. (New in CLDR 24.) They map to collation
- elements with <a href=
- "https://www.unicode.org/reports/tr10/#Implicit_Weights">implicit
- (constructed) primary weights</a>.</p>
- </blockquote>
- <pre>[radical 6=⼅亅:亅𠄌了𠄍-𠄐亇𠄑予㐧𠄒-𠄔争𠀩𠄕亊𠄖-𠄘𪜜事㐨𠄙-𠄛𪜝𠄜𠄝]
-[radical 210=⿑齊:齊𪗄𪗅齋䶒䶓𪗆齌𠆜𪗇𪗈齍𪗉-𪗌齎𪗎𪗍齏𪗏-𪗓]
-[radical 210'=⻬齐:齐齑]
-[radical end]</pre>
- <blockquote>
- <p>Data for Unihan radical-stroke order. (New in CLDR 26.)
- Following the [Unified_Ideograph] line, a section of
- <code>[radical ...]</code> lines defines a radical-stroke
- order of the Unified_Ideograph characters.</p>
- <p>For Han characters, an implementation may choose either to
- implement the order defined in the UCA and the
- [Unified_Ideograph] data, or to implement the order defined
- by the <code>[radical ...]</code> lines. Beginning with CLDR
- 26, the CJK type="unihan" tailorings assume that the root
- collation order sorts Han characters in Unihan radical-stroke
- order according to the <code>[radical ...]</code> data. The
- CollationTest_CLDR files only contain Han characters that are
- in the same relative order using implicit weights or the
- radical-stroke order.</p>
- <p>The root collation radical-stroke order is derived from
- the first (normative) values of the <a href=
- "https://www.unicode.org/reports/tr38/#kRSUnicode">Unihan
- kRSUnicode</a> field for each Han character. Han characters
- are ordered by radical, with traditional forms sorting before
- simplified ones. Characters with the same radical are ordered
- by residual stroke count. Characters with the same
- radical-stroke values are ordered by block and code point, as
- for <a href=
- "https://www.unicode.org/reports/tr10/#Implicit_Weights">UCA
- implicit weights</a>.</p>
- <p>There is one <code>[radical ...]</code> line per radical,
- in the order of radical numbers. Each line shows the radical
- number and the representative characters from the <a href=
- "https://www.unicode.org/reports/tr44/#UCD_Files_Table">UCD
- file CJKRadicals.txt</a>, followed by a colon (“:”) and the
- Han characters with that radical in the order as described
- above. A range like <code>万-丌</code> indicates that the code
- points in that range sort in code point order.</p>
- <p>The radical number and characters are informational. The
- sort order is established only by the order of the
- <code>[radical ...]</code> lines, and within each line by the
- characters and ranges between the colon (“:”) and the bracket
- (“]”).</p>
- <p>Each Unified_Ideograph occurs exactly once. Only
- Unified_Ideograph characters are listed on <code>[radical
- ...]</code> lines.</p>
- <p>This section is terminated with one <code>[radical
- end]</code> line.</p>
- </blockquote>
- <pre>
- 0000; [,,] # Zyyy Cc [0000.0000.0000] * <NULL></pre>
- <blockquote>
- <p>Provides a weight line. The first element (before the ";")
- is a hex codepoint sequence. The second field is a sequence
- of collation elements. Each collation element has 3 parts
- separated by commas: the primary weight, secondary weight,
- and tertiary weight. The tertiary weight actually consists of
- two components: the top two bits (0xC0) are used for the
- <em>case level</em>, and should be masked off where a case
- level is not used.</p>
- <p>A weight is either empty (meaning a zero or ignorable
- weight) or is a sequence of one or more bytes. The bytes are
- interpreted as a "fraction", meaning that the ordering is 04
- < 05 05 < 06. The weights are constructed so that no
- weight is an initial subsequence of another: that is, having
- both the weights 05 and 05 05 is illegal. The above line
- consists of all ignorable weights.</p>
- <p>The vertical bar (“|”) character is used to indicate
- context, as in:</p>
- </blockquote>
- <pre>006C | 00B7; [, DB A9, 05]</pre>
- <blockquote>
- This example indicates that if U+00B7 appears immediately
- after U+006C, it is given the corresponding collation element
- instead. This syntax is roughly equivalent to the following
- contraction, but is more efficient. For details see the
- specification of <i><a href=
- "#Context_Sensitive_Mappings">Context-Sensitive
- Mappings</a></i> above.
- </blockquote>
- <pre>006C 00B7; <em>CE(006C)</em> [, DB A9, 05]</pre>
- <blockquote>
- <p>Single-byte primary weights are given to particularly
- frequent characters, such as space, digits, and a-z. More
- frequent characters are given two-byte weights, while
- relatively infrequent characters are given three-byte
- weights. For example:</p>
- </blockquote>
- <pre>...
-0009; [03 05, 05, 05] # Zyyy Cc [0100.0020.0002] * <CHARACTER TABULATION>
-...
-1B60; [06 14 0C, 05, 05] # Bali Po [0111.0020.0002] * BALINESE PAMENENG
-...
-0031; [14, 05, 05] # Zyyy Nd [149B.0020.0002] * DIGIT ONE</pre>
- <blockquote>
- <p>The assignment of 2 vs 3 bytes does not reflect
- importance, or exact frequency.</p>
- </blockquote>
- <pre>
-3041; [76 06, 05, 03] # Hira Lo [3888.0020.000D] * HIRAGANA LETTER SMALL A
-3042; [76 06, 05, 85] # Hira Lo [3888.0020.000E] * HIRAGANA LETTER A
-30A1; [76 06, 05, 10] # Kana Lo [3888.0020.000F] * KATAKANA LETTER SMALL A
-30A2; [76 06, 05, 9E] # Kana Lo [3888.0020.0011] * KATAKANA LETTER A</pre>
- <blockquote>
- <p>Beginning with CLDR 27, some primary or secondary
- collation elements may have below-common tertiary weights
- (e.g., <code>03</code> ), in particular to allow normal
- Hiragana letters to have common tertiary weights.</p>
- </blockquote>
- <pre># SPECIAL MAX/MIN COLLATION ELEMENTS
-FFFE; [02, 05, 05] # Special LOWEST primary, for merge/interleaving
-FFFF; [EF FE, 05, 05] # Special HIGHEST primary, for ranges</pre>
- <blockquote>
- <p>The two tailored noncharacters have their own primary
- weights.</p>
- </blockquote>
- <pre>
-F967; [U+4E0D] # Hani Lo [FB40.0020.0002][CE0D.0000.0000] * CJK COMPATIBILITY IDEOGRAPH-F967
-2F02; [U+4E36, 10] # Hani So [FB40.0020.0004][CE36.0000.0000] * KANGXI RADICAL DOT
-2E80; [U+4E36, 70, 20] # Hani So [FB40.0020.0004][CE36.0000.0000][0000.00FC.0004] * CJK RADICAL REPEAT</pre>
- <blockquote>
- <p>Some collation elements are specified by reference to
- other mappings. This is particularly useful for Han
- characters which are given implicit/constructed primary
- weights; the reference to a Unified_Ideograph makes these
- mappings independent of implementation details. This
- technique may also be used in other mappings to show the
- relationship of character variants.</p>
- <p>The referenced character must have a mapping listed
- earlier in the file, or the mapping must have been defined
- via the [Unified_Ideograph] data line. The referenced
- character must map to exactly one collation element.</p>
- <p><code>[U+4E0D]</code> copies U+4E0D’s entire collation
- element. <code>[U+4E36, 10]</code> copies U+4E36’s primary
- and secondary weights and specifies a different tertiary
- weight. <code>[U+4E36, 70, 20]</code> only copies U+4E36’s
- primary weight and specifies other secondary and tertiary
- weights.</p>
- <p>FractionalUCA.txt does not have any explicit mappings for
- implicit weights. Therefore, an implementation is free to
- choose an algorithm for computing implicit weights according
- to the principles specified in the UCA.</p>
- </blockquote>
- <pre>
-FDD1 20AC; [0D 20 02, 05, 05] # CURRENCY first primary
-FDD1 0034; [0E 02 02, 05, 05] # DIGIT first primary starts new lead byte
-FDD0 FF21; [26 02 02, 05, 05] # REORDER_RESERVED_BEFORE_LATIN first primary starts new lead byte
-FDD1 004C; [28 02 02, 05, 05] # LATIN first primary starts new lead byte
-FDD0 FF3A; [5D 02 02, 05, 05] # REORDER_RESERVED_AFTER_LATIN first primary starts new lead byte
-FDD1 03A9; [5F 04 02, 05, 05] # GREEK first primary starts new lead byte (compressible)
-FDD1 03E2; [5F 60 02, 05, 05] # COPTIC first primary (compressible)</pre>
- <blockquote>
- <p>These are special mappings with primaries at the
- boundaries of scripts and reordering groups. They serve as
- tailoring boundaries, so that tailoring near the first or
- last character of a script or group places the tailored item
- into the same group. Beginning with CLDR 24, each of these is
- a contraction of U+FDD1 with a character of the corresponding
- script (or of the General_Category [Z, P, S, Sc, Nd]
- corresponding to a special reordering group), mapping to the
- first possible primary weight per script or group. They can
- be enumerated for implementations of <a href=
- "#Collation_Indexes">Collation Indexes</a>. (Earlier versions
- mapped contractions with U+FDD0 to the last primary weights
- of each group but not each script.)</p>
- <p>Beginning with CLDR 27, these mappings alone define the
- boundaries for reordering single scripts. (There are no
- mappings for Hrkt, Hans, or Hant because they are not fully
- distinct scripts; they share primary weights with other
- scripts: Hrkt=Hira=Kana & Hans=Hant=Hani.) There are some
- reserved ranges, beginning at boundaries marked with U+FDD0
- plus following characters as shown above. The reserved ranges
- are not used for collation elements and are not available for
- tailoring.</p>
- <p>Some primary lead bytes must be reserved so that
- reordering of scripts along partial-lead-byte boundaries can
- “split” the primary lead byte and use up a reserved byte.
- This is for implementations that write sort keys, which must
- reorder primary weights by offsetting them by whole lead
- bytes. There are reorder-reserved ranges before and after
- Latin, so that reordering scripts with few primary lead bytes
- relative to Latin can move those scripts into the reserved
- ranges without changing the primary weights of any other
- script. Each of these boundaries begins with a new two-byte
- primary; that is, no two groups/scripts/ranges share the top
- 16 bits of their primary weights.</p>
- </blockquote>
- <pre>
-FDD0 0034; [11, 05, 05] # lead byte for numeric sorting</pre>
- <blockquote>
- <p>This mapping specifies the lead byte for numeric sorting.
- It must be different from the lead byte of any other primary
- weight, otherwise numeric sorting would generate ill-formed
- collation elements. Therefore, this mapping itself must be
- excluded from the set of regular mappings. This value can be
- ignored by implementations that do not support numeric
- sorting. (Other contractions with U+FDD0 can normally be
- ignored altogether.)</p>
- </blockquote>
- <pre>
-# HOMELESS COLLATION ELEMENTS
-FDD0 0063; [, 97, 3D] # [15E4.0020.0004] [1844.0020.0004] [0000.0041.001F] * U+01C6 LATIN SMALL LETTER DZ WITH CARON
-FDD0 0064; [, A7, 09] # [15D1.0020.0004] [0000.0056.0004] * U+1DD7 COMBINING LATIN SMALL LETTER C CEDILLA
-FDD0 0065; [, B1, 09] # [1644.0020.0004] [0000.0061.0004] * U+A7A1 LATIN SMALL LETTER G WITH OBLIQUE STROKE</pre>
- <blockquote>
- <p>The DUCET has some weights that don't correspond directly
- to a character. To allow for implementations to have a
- mapping for each collation element (necessary for certain
- implementations of tailoring), this requires the construction
- of special sequences for those weights. These collation
- elements can normally be ignored.</p>
- </blockquote>
- <p>Next, a number of tables are defined. The function of each
- of the tables is summarized afterwards.</p>
- <pre># VALUES BASED ON UCA
-...
-[first regular [0D 0A, 05, 05]] # U+0060 GRAVE ACCENT
-[last regular [7A FE, 05, 05]] # U+1342E EGYPTIAN HIEROGLYPH AA032
-[first implicit [E0 04 06, 05, 05]] # CONSTRUCTED
-[last implicit [E4 DF 7E 20, 05, 05]] # CONSTRUCTED
-[first trailing [E5, 05, 05]] # CONSTRUCTED
-[last trailing [E5, 05, 05]] # CONSTRUCTED
-...</pre>
- <blockquote>
- <p>This table summarizes ranges of important groups of
- characters for implementations.</p>
- </blockquote>
- <pre># Top Byte => Reordering Tokens
-[top_byte 00 TERMINATOR ] # [0] TERMINATOR=1
-[top_byte 01 LEVEL-SEPARATOR ] # [0] LEVEL-SEPARATOR=1
-[top_byte 02 FIELD-SEPARATOR ] # [0] FIELD-SEPARATOR=1
-[top_byte 03 SPACE ] # [9] SPACE=1 Cc=6 Zl=1 Zp=1 Zs=1
-...</pre>
- <blockquote>
- <p>This table defines the reordering groups, for script
- reordering. The table maps from the first bytes of the
- fractional weights to a reordering token. The format is
- "[top_byte " byte-value reordering-token "COMPRESS"? "]". The
- "COMPRESS" value is present when there is only one byte in
- the reordering token, and primary-weight compression can be
- applied. Most reordering tokens are script values; others are
- special-purpose values, such as PUNCTUATION. Beginning with
- CLDR 24, this table precedes the regular mappings, so that
- parsers can use this information while processing and
- optimizing mappings. Beginning with CLDR 27, most of this
- data is irrelevant because single scripts can be reordered.
- Only the "COMPRESS" data is still useful.</p>
- </blockquote>
- <pre># Reordering Tokens => Top Bytes
-[reorderingTokens Arab 61=910 62=910 ]
-[reorderingTokens Armi 7A=22 ]
-[reorderingTokens Armn 5F=82 ]
-[reorderingTokens Avst 7A=54 ]
-...</pre>
- <blockquote>
- <p>This table is an inverse mapping from reordering token to
- top byte(s). In terms like "61=910", the first value is the
- top byte, while the second is informational, indicating the
- number of primaries assigned with that top byte.</p>
- </blockquote>
- <pre># General Categories => Top Byte
-[categories Cc 03{SPACE}=6 ]
-[categories Cf 77{Khmr Tale Talu Lana Cham Bali Java Mong Olck Cher Cans Ogam Runr Orkh Vaii Bamu}=2 ]
-[categories Lm 0D{SYMBOL}=25 0E{SYMBOL}=22 27{Latn}=12 28{Latn}=12 29{Latn}=12 2A{Latn}=12...</pre>
- <blockquote>
- <p>This table is informational, providing the top bytes,
- scripts, and primaries associated with each general category
- value.</p>
- </blockquote>
- <pre># FIXED VALUES
-[fixed first implicit byte E0]
-[fixed last implicit byte E4]
-[fixed first trail byte E5]
-[fixed last trail byte EF]
-[fixed first special byte F0]
-[fixed last special byte FF]
-
-[fixed secondary common byte 05]
-[fixed last secondary common byte 45]
-[fixed first ignorable secondary byte 80]
-
-[fixed tertiary common byte 05]
-[fixed first ignorable tertiary byte 3C]
- </pre>
- <blockquote>
- <p>The final table gives certain hard-coded byte values. The
- "trail" area is provided for implementation of the "trailing
- weights" as described in the UCA.</p>
- </blockquote>
- <p class="note">Note: The particular primary lead bytes for
- Hani vs. IMPLICIT vs. TRAILING are only an example. An
- implementation is free to move them if it also moves the
- explicit TRAILING weights. This affects only a small number of
- explicit mappings in FractionalUCA.txt, such as for U+FFFD,
- U+FFFF, and the “unassigned first primary”. It is possible to
- use no SPECIAL bytes at all, and to use only the one primary
- lead byte FF for TRAILING weights.</p>
- <h4>2.6.3 <a name="File_Format_UCA_Rules_txt" href=
- "#File_Format_UCA_Rules_txt" id=
- "File_Format_UCA_Rules_txt">UCA_Rules.txt</a></h4>
- <p>The format for this file uses the CLDR collation syntax, see
- <i>Section 3, <a href="#Collation_Tailorings">Collation
- Tailorings</a></i> .</p>
- <h2>3 <a name="Collation_Tailorings" href=
- "#Collation_Tailorings" id="Collation_Tailorings">Collation
- Tailorings</a></h2>
- <p class="dtd"><!ELEMENT collations (alias |
- (defaultCollation?, collation*, special*)) ></p>
- <p class="dtd"><!ELEMENT defaultCollation ( #PCDATA )
- ></p>
- <p>This element of the LDML format contains one or more
- <span class="element">collation</span> elements, distinguished
- by type. Each <span class="element">collation</span> contains
- elements with parametric settings, or rules that specify a
- certain sort order, as a tailoring of the root order, or
- both.</p>
- <p class="note">Note: CLDR collation tailoring data should
- follow the <a href=
- "http://cldr.unicode.org/index/cldr-spec/collation-guidelines">CLDR
- Collation Guidelines</a>.</p>
- <h3>3.1 <a name="Collation_Types" href="#Collation_Types" id=
- "Collation_Types">Collation Types</a></h3>
- <p>Each locale may have multiple sort orders (types). The
- <span class="element">defaultCollation</span> element defines
- the default tailoring for a locale and its sublocales. For
- example:</p>
- <ul>
- <li>root.xml:
- <code><defaultCollation>standard</defaultCollation></code></li>
- <li>zh.xml:
- <code><defaultCollation>pinyin</defaultCollation></code></li>
- <li>zh_Hant.xml:
- <code><defaultCollation>stroke</defaultCollation></code></li>
- </ul>
- <p>To allow implementations in reduced memory environments to
- use CJK sorting, there are also short forms of each of these
- collation sequences. These provide for the most common
- characters in common use, and are marked with <span class=
- "attribute">alt</span>="<span class=
- "attributeValue">short</span>".</p>
- <p>A collation type name that starts with "private-", for
- example, "private-kana", indicates an incomplete tailoring that
- is only intended for import into one or more other tailorings
- (usually for sharing common rules). It does not establish a
- complete sort order. An implementation should not build data
- tables for a private collation type, and should not include a
- private collation type in a list of available types.</p>
- <p class="note"><b>Note:</b></p>
- <ul>
- <li>There is an on-line demonstration of collation at
- [<a href="tr35.html#LocaleExplorer">LocaleExplorer</a>] that
- uses the same rule syntax. (Pick the locale and scroll to
- "Collation Rules", near the end.)</li>
- <li class="note">In CLDR 23 and before, LDML collation files
- used an XML format. Starting with CLDR 24, the XML collation
- syntax is deprecated and no longer used. See the <i><a href=
- "https://www.unicode.org/reports/tr35/tr35-31/tr35-collation.html#Collation_Tailorings">
- CLDR 23 version of this document</a></i> for details about
- the XML collation syntax.</li>
- </ul>
- <h4>3.1.1 <a name="Collation_Type_Fallback" href=
- "#Collation_Type_Fallback" id=
- "Collation_Type_Fallback">Collation Type Fallback</a></h4>
- <p>When loading a requested tailoring from its data file and
- the parent file chain, use the following type fallback to find
- the tailoring.</p>
- <ol>
- <li>Determine the default type from the
- <defaultCollation> element; map the default type to its
- alias if one is defined. If there is no
- <defaultCollation> element, then use "standard" as the
- default type.</li>
- <li>If the request language tag specifies the collation type
- (keyword "co"), then map it to its alias if one is defined
- (e.g., "-co-phonebk" → "phonebook"). If the language tag does
- not specify the type, then use the default type.</li>
- <li>Use the <collation> element with this type.</li>
- <li>If it does not exist, and the type starts with "search"
- but is longer, then set the type to "search" and use that
- <collation> element. (For example, "searchjl" →
- "search".)</li>
- <li>If it does not exist, and the type is not the default
- type, then set the type to the default type and use that
- <collation> element.</li>
- <li>If it does not exist, and the type is not "standard",
- then set the type to "standard" and use that
- <collation> element.</li>
- <li>If it does not exist, then use the CLDR root
- collation.</li>
- </ol>
- <p class="note">Note that the CLDR collation/root.xml contains
- <defaultCollation>standard</defaultCollation>,
- <collation type="standard"> (with an empty tailoring, so
- this is the same as the CLDR root collation), and <collation
- type="search">.</p>
- <p>For example, assume that we have collation data for the
- following tailorings. ("da/search" is shorthand for
- "da-u-co-search".)</p>
- <ul>
- <li>root/defaultCollation=standard</li>
- <li>root/standard (this is the same as “the CLDR root
- collator”)</li>
- <li>root/search</li>
- <li>da/standard</li>
- <li>da/search</li>
- <li>el/standard</li>
- <li>ko/standard</li>
- <li>ko/search</li>
- <li>ko/searchjl</li>
- <li>zh/defaultCollation=pinyin</li>
- <li>zh/pinyin</li>
- <li>zh/stroke</li>
- <li>zh-Hant/defaultCollation=stroke</li>
- </ul>
- <table>
- <caption>
- <a name=
- "Sample_requested_and_actual_collation_locales_and_types"
- href=
- "#Sample_requested_and_actual_collation_locales_and_types"
- id=
- "Sample_requested_and_actual_collation_locales_and_types">Sample
- requested and actual collation locales and types</a>
- </caption>
- <tr>
- <th>requested</th>
- <th>actual</th>
- <th>comment</th>
- </tr>
- <tr>
- <td>da/phonebook</td>
- <td>da/standard</td>
- <td>default type for Danish</td>
- </tr>
- <tr>
- <td>zh</td>
- <td>zh/pinyin</td>
- <td>default type for zh</td>
- </tr>
- <tr>
- <td>zh/standard</td>
- <td>root/standard</td>
- <td>no "standard" tailoring for zh, falls back to root</td>
- </tr>
- <tr>
- <td>zh/phonebook</td>
- <td>zh/pinyin</td>
- <td>default type for zh</td>
- </tr>
- <tr>
- <td>zh-Hant/phonebook</td>
- <td>zh/stroke</td>
- <td>default type for zh-Hant is "stroke"</td>
- </tr>
- <tr>
- <td>da/searchjl</td>
- <td>da/search</td>
- <td>"search.+" falls back to "search"</td>
- </tr>
- <tr>
- <td>el/search</td>
- <td>root/search</td>
- <td>no "search" tailoring for Greek</td>
- </tr>
- <tr>
- <td>el/searchjl</td>
- <td>root/search</td>
- <td>"search.+" falls back to "search", found in root</td>
- </tr>
- <tr>
- <td>ko/searchjl</td>
- <td>ko/searchjl</td>
- <td>requested data is actually available</td>
- </tr>
- </table>
- <h3>3.2 <a name="Collation_Version" href="#Collation_Version"
- id="Collation_Version">Version</a></h3>
- <p>The version attribute is used in case a specific version of
- the UCA is to be specified. It is optional, and is specified if
- the results are to be identical on different systems. If it is
- not supplied, then the version is assumed to be the same as the
- Unicode version for the system as a whole.</p>
- <blockquote>
- <p class="note"><b>Note:</b> For version 3.1.1 of the UCA,
- the version of Unicode must also be specified with any
- versioning information; an example would be "3.1.1/3.2" for
- version 3.1.1 of the UCA, for version 3.2 of Unicode. This
- was changed by decision of the UTC, so that dual versions
- were no longer necessary. So for UCA 4.0 and beyond, the
- version just has a single number.</p>
- </blockquote>
- <h3>3.3 <a name="Collation_Element" href="#Collation_Element"
- id="Collation_Element">Collation Element</a></h3>
- <p class="dtd"><!ELEMENT collation (alias | (cr*, special*))
- ></p>
- <p>The tailoring syntax is designed to be independent of the
- actual weights used in any particular UCA table. That way the
- same rules can be applied to UCA versions over time, even if
- the underlying weights change. The following illustrates the
- overall structure of a <span class=
- "element">collation</span>:</p>
- <pre><collation type="phonebook">
- <cr><![CDATA[
- [caseLevel on]
- &c < k
- ]]></cr>
-</collation></pre>
- <h3>3.4 <a name="Setting_Options" href="#Setting_Options" id=
- "Setting_Options">Setting Options</a></h3>
- <p>Parametric settings can be specified in language tags or in
- rule syntax (in the form <code>[keyword value]</code> ). For
- example, <code>-ks-level2</code> or <code>[strength 2]</code>
- will only compare strings based on their primary and secondary
- weights.</p>
- <p>If a setting is not present, the CLDR default (or the
- default for the locale, if there is one) is used. That default
- is listed in bold italics. Where there is a UCA default that is
- different, it is listed in bold with (<strong>UCA
- default</strong>). Note that the default value for a locale may
- be different than the normal default value for the setting.</p>
- <table>
- <caption>
- <a name="Collation_Settings" href="#Collation_Settings" id=
- "Collation_Settings">Collation Settings</a>
- </caption>
- <tr>
- <th>BCP47 Key</th>
- <th>BCP47 Value</th>
- <th>Rule Syntax</th>
- <th>Description</th>
- </tr>
- <tr>
- <td rowspan="5">ks</td>
- <td>level1</td>
- <td><code>[strength 1]</code><br>
- (primary)</td>
- <td rowspan="5">Sets the default strength for comparison,
- as described in the [<a href=
- "https://www.unicode.org/reports/tr41/#UTS10">UCA</a>].
- <em>Note that a strength setting of greater than 4 may have
- the same effect as <strong>identical</strong>, depending on
- the locale and implementation.</em></td>
- </tr>
- <tr>
- <td>level2</td>
- <td><code>[strength 2]</code><br>
- (secondary)</td>
- </tr>
- <tr>
- <td>level3</td>
- <td><em><strong><code>[strength 3]</code><br>
- (tertiary)</strong></em></td>
- </tr>
- <tr>
- <td>level4</td>
- <td><code>[strength 4]</code><br>
- (quaternary)</td>
- </tr>
- <tr>
- <td>identic</td>
- <td><code>[strength I]</code><br>
- (identical)</td>
- </tr>
- <tr>
- <td rowspan="3">ka</td>
- <td>noignore</td>
- <td><i><strong><code>[alternate
- non-ignorable]</code></strong></i><br></td>
- <td rowspan="3">Sets alternate handling for variable
- weights, as described in [<a href=
- "https://www.unicode.org/reports/tr41/#UTS10">UCA</a>],
- where "shifted" causes certain characters to be ignored in
- comparison. <em>The default for LDML is different than it
- is in the UCA. In LDML, the default for alternate handling
- is <strong>non-ignorable</strong>, while in UCA it is
- <strong>shifted</strong>. In addition, in LDML only
- whitespace and punctuation are variable by
- default.</em></td>
- </tr>
- <tr>
- <td>shifted</td>
- <td><strong><code>[alternate shifted]</code><br>
- (UCA default)</strong></td>
- </tr>
- <tr>
- <td><em>n/a</em></td>
- <td><i>n/a</i><br>
- (blanked)</td>
- </tr>
- <tr>
- <td rowspan="2">kb</td>
- <td>true</td>
- <td><code>[backwards 2]</code></td>
- <td rowspan="2">Sets the comparison for the second level to
- be <strong>backwards</strong>, as described in [<a href=
- "https://www.unicode.org/reports/tr41/#UTS10">UCA</a>].</td>
- </tr>
- <tr>
- <td>false</td>
- <td><i><strong>n/a</strong></i></td>
- </tr>
- <tr>
- <td rowspan="2">kk</td>
- <td>true</td>
- <td><strong><code>[normalization on]</code><br>
- (UCA default)</strong></td>
- <td rowspan="2">If <strong>on</strong>, then the normal
- [<a href=
- "https://www.unicode.org/reports/tr41/#UTS10">UCA</a>]
- algorithm is used. If <strong>off</strong>, then most
- strings should still sort correctly despite not normalizing
- to NFD first.<br>
- <em>Note that the default for CLDR locales may be different
- than in the UCA. The rules for particular locales have it
- set to <strong>on</strong>: those locales whose exemplar
- characters (in forms commonly interchanged) would be
- affected by normalization.</em></td>
- </tr>
- <tr>
- <td>false</td>
- <td><i><strong><code>[normalization
- off]</code></strong></i></td>
- </tr>
- <tr>
- <td rowspan="2">kc</td>
- <td>true</td>
- <td><code>[caseLevel on]</code></td>
- <td rowspan="2">If set to <strong>on</strong><i>,</i> a
- level consisting only of case characteristics will be
- inserted in front of tertiary level, as a "Level 2.5". To
- ignore accents but take case into account, set strength to
- <strong>primary</strong> and case level to
- <strong>on</strong>. For details, see <em>Section 3.14,
- <a href="#Case_Parameters">Case Parameters</a></em> .</td>
- </tr>
- <tr>
- <td>false</td>
- <td><i><strong><code>[caseLevel
- off]</code></strong></i></td>
- </tr>
- <tr>
- <td rowspan="3">kf</td>
- <td>upper</td>
- <td><code>[caseFirst upper]</code></td>
- <td rowspan="3">If set to <strong>upper</strong>, causes
- upper case to sort before lower case. If set to
- <strong>lower</strong>, causes lower case to sort before
- upper case. Useful for locales that have already supported
- ordering but require different order of cases. Affects case
- and tertiary levels. For details, see <em>Section 3.14,
- <a href="#Case_Parameters">Case Parameters</a></em> .</td>
- </tr>
- <tr>
- <td>lower</td>
- <td><code>[caseFirst lower]</code></td>
- </tr>
- <tr>
- <td>false</td>
- <td><i><strong><code>[caseFirst
- off]</code></strong></i></td>
- </tr>
- <tr>
- <td rowspan="2">kh</td>
- <td>true<br>
- <i><strong>Deprecated:</strong></i> Use rules with
- quaternary relations instead.</td>
- <td><code>[hiraganaQ on]</code></td>
- <td rowspan="2">Controls special treatment of Hiragana code
- points on quaternary level. If turned <strong>on</strong>,
- Hiragana codepoints will get lower values than all the
- other non-variable code points in <strong>shifted</strong>.
- That is, the normal Level 4 value for a regular collation
- element is FFFF, as described in [<a href=
- "https://www.unicode.org/reports/tr41/#UTS10">UCA</a>],
- <em>Section 3.6, <a href=
- "https://www.unicode.org/reports/tr10/#Variable_Weighting">Variable
- Weighting</a></em> . This is changed to FFFE for
- [:script=Hiragana:] characters. The strength must be
- greater or equal than quaternary if this attribute is to
- have any effect.</td>
- </tr>
- <tr>
- <td>false</td>
- <td><i><strong><code>[hiraganaQ
- off]</code></strong></i></td>
- </tr>
- <tr>
- <td rowspan="2">kn</td>
- <td>true</td>
- <td><code>[numericOrdering on]</code></td>
- <td rowspan="2">If set to <strong>on</strong>, any sequence
- of Decimal Digits (General_Category = Nd in the [<a href=
- "https://www.unicode.org/reports/tr41/#UAX44">UAX44</a>]) is
- sorted at a primary level with its numeric value. For
- example, "A-21" < "A-123". The computed primary weights
- are all at the start of the <strong>digit</strong>
- reordering group. Thus with an untailored UCA table, "a$"
- < "a0" < "a2" < "a12" < "a⓪" < "aa".</td>
- </tr>
- <tr>
- <td>false</td>
- <td><i><strong><code>[numericOrdering
- off]</code></strong></i></td>
- </tr>
- <tr>
- <td>kr</td>
- <td>a sequence of one or more reorder codes: <strong>space,
- punct, symbol, currency, digit</strong>, or any BCP47
- script ID</td>
- <td><code>[reorder Grek digit]</code></td>
- <td>Specifies a reordering of scripts or other significant
- blocks of characters such as symbols, punctuation, and
- digits. For the precise meaning and usage of the reorder
- codes, see <em>Section 3.13, <a href=
- "#Script_Reordering">Collation Reordering</a>.</em></td>
- </tr>
- <tr>
- <td rowspan="4">kv</td>
- <td>space</td>
- <td><code>[maxVariable space]</code></td>
- <td rowspan="4">Sets the variable top to the top of the
- specified reordering group. All code points with primary
- weights less than or equal to the variable top will be
- considered variable, and thus affected by the alternate
- handling. Variables are ignorable by default in [<a href=
- "https://www.unicode.org/reports/tr41/#UTS10">UCA</a>], but
- not in CLDR.</td>
- </tr>
- <tr>
- <td>punct</td>
- <td><i><strong><code>[maxVariable
- punct]</code></strong></i></td>
- </tr>
- <tr>
- <td>symbol</td>
- <td><strong><code>[maxVariable symbol]</code><br>
- (UCA default)</strong></td>
- </tr>
- <tr>
- <td>currency</td>
- <td><code>[maxVariable currency]</code></td>
- </tr>
- <tr>
- <td>vt</td>
- <td>See <i>Part 1 Section 3.6.4, <a href=
- "tr35.html#Unicode_Locale_Extension_Data_Files">U Extension
- Data Files</a></i>.<br>
- <i><strong>Deprecated:</strong></i> Use maxVariable
- instead.</td>
- <td><code>&\u00XX\uYYYY < [variable top]</code><br>
- <br>
- (the default is set to the highest punctuation, thus
- including spaces and punctuation, but not symbols)</td>
- <td>
- <p>The BCP47 value is described in <i>Appendix Q:
- <a href="tr35.html#Locale_Extension_Key_and_Type_Data">Locale
- Extension Keys and Types</a>.</i></p>
- <p>Sets the string value for the variable top. All the
- code points with primary weights less than or equal to
- the variable top will be considered variable, and thus
- affected by the alternate handling.<br>
- An implementation that supports the variableTop setting
- should also support the maxVariable setting, and it
- should "pin" ("round up") the variableTop to the top of
- the containing reordering group.<br>
- Variables are ignorable by default in [<a href=
- "https://www.unicode.org/reports/tr41/#UTS10">UCA</a>],
- but not in CLDR. See below for more information.</p>
- </td>
- </tr>
- <tr>
- <td><em>n/a</em></td>
- <td><em>n/a</em></td>
- <td><em>n/a</em></td>
- <td>match-boundaries: <em><strong>none</strong></em> |
- whole-character | whole-word<br>
- Defined by <em>Section 8, <a href=
- "https://www.unicode.org/reports/tr10/#Searching">Searching
- and Matching</a></em> of [<a href=
- "https://www.unicode.org/reports/tr41/#UTS10">UCA</a>].</td>
- </tr>
- <tr>
- <td><em>n/a</em></td>
- <td><em>n/a</em></td>
- <td><em>n/a</em></td>
- <td>match-style: <em><strong>minimal</strong></em> | medial
- | maximal<br>
- Defined by <em>Section 8, <a href=
- "https://www.unicode.org/reports/tr10/#Searching">Searching
- and Matching</a></em> of [<a href=
- "https://www.unicode.org/reports/tr41/#UTS10">UCA</a>].</td>
- </tr>
- </table>
- <h4>3.4.1 <a name="Common_Settings" href="#Common_Settings" id=
- "Common_Settings">Common settings combinations</a></h4>
- <p>Some commonly used parametric collation settings are
- available via combinations of LDML settings attributes:</p>
- <ul>
- <li>“Ignore accents”: <strong>strength=primary</strong></li>
- <li>“Ignore accents” but take case into account:
- <strong>strength=primary caseLevel=on</strong></li>
- <li>“Ignore case”: <strong>strength=secondary</strong></li>
- <li>“Ignore punctuation” (completely):
- <strong>strength=tertiary alternate=shifted</strong></li>
- <li>“Ignore punctuation” but distinguish among punctuation
- marks: <strong>strength=quaternary
- alternate=shifted</strong></li>
- </ul>
- <h4>3.4.2 <a name="Normalization_Setting" href=
- "#Normalization_Setting" id="Normalization_Setting">Notes on
- the normalization setting</a></h4>
- <p>The UCA always normalizes input strings into NFD form before
- the rest of the algorithm. However, this results in poor
- performance.</p>
- <p>With <strong>normalization=off</strong>, strings that are in
- [<a href="tr35.html#FCD">FCD</a>] and do not contain Tibetan
- precomposed vowels (U+0F73, U+0F75, U+0F81) should sort
- correctly. With <strong>normalization=on</strong>, an
- implementation that does not normalize to NFD must at least
- perform an incremental FCD check and normalize substrings as
- necessary. It should also always decompose the Tibetan
- precomposed vowels. (Otherwise discontiguous contractions
- across their leading components cannot be handled
- correctly.)</p>
- <p>Another complication for an implementation that does not
- always use NFD arises when contraction mappings overlap with
- canonical Decomposition_Mapping strings. For example, the
- Danish contraction “aa” overlaps with the decompositions of
- ‘ä’, ‘å’, and other characters. In the root collation (and in
- the DUCET), Cyrillic ‘ӛ’ maps to a single collation element,
- which means that its decomposition “ә+◌̈” forms a contraction,
- and its second character (U+0308) is the same as the first
- character in the Decomposition_Mapping of U+0344
- ‘◌̈́’=“◌̈+◌́”.</p>
- <p>In order to handle strings with these characters (e.g., “aä”
- and “ӛ́” [which are in FCD]) exactly as with prior NFD
- normalization, an implementation needs to either add overlap
- contractions to its data (e.g., “a+ä” and “ә+◌̈́”), or it needs
- to decompose the relevant composites (e.g., ‘ä’ and ‘◌̈́’) as
- soon as they are encountered.</p>
- <h4>3.4.3 <a name="Variable_Top_Settings" href=
- "#Variable_Top_Settings" id="Variable_Top_Settings">Notes on
- variable top settings</a></h4>
- <p>Users may want to include more or fewer characters as
- Variable. For example, someone could want to restrict the
- Variable characters to just include space marks. In that case,
- maxVariable would be set to "space". (In CLDR 24 and earlier,
- the now-deprecated variableTop would be set to U+1680, see the
- “Whitespace” <a href="https://unicode.org/charts/collation/">UCA
- collation chart</a>). Alternatively, someone could want more of
- the Common characters in them, and include characters up to
- (but not including) '0', by setting maxVariable to "currency".
- (In CLDR 24 and earlier, the now-deprecated variableTop would
- be set to U+20BA, see the “Currency-Symbol” collation
- chart).</p>
- <p>The effect of these settings is to customize to ignore
- different sets of characters when comparing strings. For
- example, the locale identifier "de-u-ka-shifted-kv-currency" is
- requesting settings appropriate for German, including German
- sorting conventions, and that currency symbols and characters
- sorting below them are ignored in sorting.</p>
- <h3>3.5 <a name="Rules" href="#Rules" id="Rules">Collation Rule
- Syntax</a></h3>
- <p class="dtd"><!ELEMENT cr #PCDATA ></p>
- <p>The goal for the collation rule syntax is to have clearly
- expressed rules with a concise format. The CLDR rule syntax is
- a subset of the [<a href=
- "tr35.html#ICUCollation">ICUCollation</a>] syntax.</p>
- <p>For the CLDR root collation, the FractionalUCA.txt file
- defines all mappings for all of Unicode directly, and it also
- provides information about script boundaries, reordering
- groups, and other details. For tailorings, this is neither
- necessary nor practical. In particular, while the root
- collation sort order rarely changes for existing characters,
- their numeric collation weights change with every version. If
- tailorings also specified numeric weights directly, then they
- would have to change with every version, parallel with the root
- collation. Instead, for tailorings, mappings are added and
- modified relative to the root collation. (There is no syntax to
- <i>remove</i> mappings, except via <a href=
- "#Special_Purpose_Commands">special [suppressContractions
- [...]]</a> .)</p>
- <p>The ASCII [:P:] and [:S:] characters are reserved for
- collation syntax: <code>[\u0021-\u002F \u003A-\u0040
- \u005B-\u0060 \u007B-\u007E]</code></p>
- <p>Unicode Pattern_White_Space characters between tokens are
- ignored. Unquoted white space terminates reset and relation
- strings.</p>
- <p>A pair of ASCII apostrophes encloses quoted literal text.
- They are normally used to enclose a syntax character or white
- space, or a whole reset/relation string containing one or more
- such characters, so that those are parsed as part of the
- reset/relation strings rather than treated as syntax. A pair of
- immediately adjacent apostrophes is used to encode one
- apostrophe.</p>
- <p>Code points can be escaped with <code>\uhhhh</code> and
- <code>\U00hhhhhh</code> escapes, as well as common escapes like
- <code>\t</code> and <code>\n</code> . (For details see the
- documentation of ICU UnicodeString::unescape().) This is
- particularly useful for default-ignorable code points,
- combining marks, visually indistinct variants, hard-to-type
- characters, etc. These sequences are unescaped before the rules
- are parsed; this means that even escaped syntax and white space
- characters need to be enclosed in apostrophes. For example:
- <code>&'\u0020'='\u3000'</code>. Note: The unescaping is
- done by ICU tools (genrb) and demos before passing rule strings
- into the ICU library code. The ICU collation API does not
- unescape rule strings.</p>
- <p>The ASCII double quote must be both escaped (so that the
- collation syntax can be enclosed in pairs of double quotes in
- programming environments such as ICU resource bundle .txt
- files) and quoted. For example:
- <code>&'\u0022'<<<x</code></p>
- <p>Comments are allowed at the beginning, and after any
- complete reset, relation, setting, or command. A comment begins
- with a <code>#</code> and extends to the end of the line
- (according to the Unicode Newline Guidelines).</p>
- <p>The collation syntax is case-sensitive.</p>
- <h3>3.6 <a name="Orderings" href="#Orderings" id=
- "Orderings">Orderings</a></h3>
- <p>The root collation mappings form the initial state. Mappings
- are added and removed via a sequence of rule chains. Each
- tailoring rule builds on the current state after all of the
- preceding rules (and is not affected by any following rules).
- Rule chains may alternate with comments, settings, and special
- commands.</p>
- <p>A rule chain consists of a reset followed by one or more
- relations. The reset position is a string which maps to one or
- more collation elements according to the current state. A
- relation consists of an operator and a string; it maps the
- string to the current collation elements, modified according to
- the operator.</p>
- <table>
- <caption>
- <a name="Specifying_Collation_Ordering" href=
- "#Specifying_Collation_Ordering" id=
- "Specifying_Collation_Ordering">Specifying Collation
- Ordering</a>
- </caption>
- <tr>
- <th>Relation Operator</th>
- <th> Example</th>
- <th>Description</th>
- </tr>
- <tr>
- <td><code>&</code></td>
- <td><code>& Z</code></td>
- <td>Map Z to collation elements according to the current
- state. These will be modified according to the following
- relation operators and then assigned to the corresponding
- relation strings.</td>
- </tr>
- <tr>
- <td><code><</code></td>
- <td><code>& a<br>
- < b</code></td>
- <td>Make 'b' sort after 'a', as a <i>primary</i>
- (base-character) difference</td>
- </tr>
- <tr>
- <td><code><<</code></td>
- <td><code>& a<br>
- << ä</code></td>
- <td>Make 'ä' sort after 'a' as a <i>secondary</i> (accent)
- difference</td>
- </tr>
- <tr>
- <td><code><<<</code></td>
- <td><code>& a<br>
- <<< A</code></td>
- <td>Make 'A' sort after 'a' as a <i>tertiary</i>
- (case/variant) difference</td>
- </tr>
- <tr>
- <td><code><<<<</code></td>
- <td><code>& か<br>
- <<<< カ</code></td>
- <td>Make 'カ' (Katakana Ka) sort after 'か' (Hiragana Ka) as
- a <i>quaternary</i> difference</td>
- </tr>
- <tr>
- <td><code>= </code></td>
- <td><code>& v<br>
- = w </code></td>
- <td>Make 'w' sort <i>identically</i> to 'v'</td>
- </tr>
- </table>
- <p>The following shows the result of serially applying three
- rules.</p>
- <table>
- <tr>
- <th> </th>
- <th>Rules</th>
- <th>Result</th>
- <th>Comment</th>
- </tr>
- <tr>
- <td>1</td>
- <td>& a < g</td>
- <td>... a <font color="red"><<sub>1</sub> g</font>
- ...</td>
- <td>Put g after a.</td>
- </tr>
- <tr>
- <td>2</td>
- <td>& a < h < k</td>
- <td>... a <font color="red"><<sub>1</sub> h
- <<sub>1</sub> k</font> <<sub>1</sub> g ...</td>
- <td>Now put h and k after a (inserting before the g).</td>
- </tr>
- <tr>
- <td>3</td>
- <td>& h << g</td>
- <td>... a <<sub>1</sub> h <font color=
- "red"><<sub>1</sub> g</font> <<sub>1</sub> k ...</td>
- <td>Now put g after h (inserting before k).</td>
- </tr>
- </table>
- <p>Notice that relation strings can occur multiple times, and
- thus override previous rules.</p>
- <p>Each relation uses and modifies the collation elements of
- the immediately preceding reset position or relation. A rule
- chain with two or more relations is equivalent to a sequence of
- “atomic rules” where each rule chain has exactly one relation,
- and each relation is followed by a reset to this same relation
- string.</p>
- <p><i>Example:</i></p>
- <table>
- <tr>
- <th>Rules</th>
- <th>Equivalent Atomic Rules</th>
- </tr>
- <tr>
- <td>& b < q <<< Q<br>
- & a < x <<< X << q <<< Q
- < z</td>
- <td>& b < q<br>
- & q <<< Q<br>
- & a < x<br>
- & x <<< X<br>
- & X << q<br>
- & q <<< Q<br>
- & Q < z</td>
- </tr>
- </table>
- <p>This is not always possible because prefix and extension
- strings can occur in a relation but not in a reset (see
- below).</p>
- <p>The relation operator <code>=</code> maps its relation
- string to the current collation elements. Any other relation
- operator modifies the current collation elements as
- follows.</p>
- <ul>
- <li>Find the <i>last</i> collation element whose strength is
- at least as great as the strength of the operator. For
- example, for <code><<</code> find the last primary or
- secondary CE. This CE will be modified; all following CEs
- should be removed. If there is no such CE, then reset the
- collation elements to a single completely-ignorable CE.</li>
- <li>Increment the collation element weight corresponding to
- the strength of the operator. For example, for
- <code><<</code> increment the secondary weight.</li>
- <li>The new weight must be less than the next weight for the
- same combination of higher-level weights of any collation
- element according to the current state.</li>
- <li>Weights must be allocated in accordance with the <a href=
- "https://www.unicode.org/reports/tr10/#Well-Formed">UCA
- well-formedness conditions</a>.</li>
- <li>When incrementing any weight, lower-level weights should
- be reset to the “common” values, to help with sort key
- compression.</li>
- </ul>
- <p>In all cases, even for <code>=</code> , the case bits are
- recomputed according to <i>Section 3.13, <a href=
- "#Case_Parameters">Case Parameters</a></i>. (This can be
- skipped if an implementation does not support the caseLevel or
- caseFirst settings.)</p>
- <p>For example, <code>&ae<x</code> maps ‘x’ to two
- collation elements. The first one is the same as for ‘a’, and
- the second one has a primary weight between those for ‘e’ and
- ‘f’. As a result, ‘x’ sorts between “ae” and “af”. (If the
- primary of the first collation element was incremented instead,
- then ‘x’ would sort after “az”. While also sorting
- primary-after “ae” this would be surprising and
- sub-optimal.)</p>
- <p>Some additional operators are provided to save space with
- large tailorings. The addition of a * to the relation operator
- indicates that each of the following single characters are to
- be handled as if they were separate relations with the
- corresponding strength. Each of the following single characters
- must be NFD-inert, that is, it does not have a canonical
- decomposition and it does not reorder (ccc=0). This keeps
- abbreviated rules unambiguous.</p>
- <p>A starred relation operator is followed by a sequence of
- characters with the same quoting/escaping rules as normal
- relation strings. Such a sequence can also be followed by one
- or more pairs of ‘-’ and another sequence of characters. The
- single characters adjacent to the ‘-’ establish a code point
- order range. The same character cannot be both the end of a
- range and the start of another range. (For example,
- <code><a-d-g</code> is not allowed.)</p>
- <table>
- <caption>
- <a name="Abbreviating_Ordering_Specifications" href=
- "#Abbreviating_Ordering_Specifications" id=
- "Abbreviating_Ordering_Specifications">Abbreviating
- Ordering Specifications</a>
- </caption>
- <tr>
- <th>Relation Operator</th>
- <th>Example</th>
- <th>Equivalent</th>
- </tr>
- <tr>
- <td><code><*</code></td>
- <td><code>& <span style="color: blue">a</span><br>
- <* <span style=
- "color: blue">bcd-gp-s</span> </code></td>
- <td><code>& <span style="color: blue">a</span><br>
- < <span style="color: blue">b</span> < <span style=
- "color: blue">c</span> < <span style=
- "color: blue">d</span> < <span style=
- "color: blue">e</span> < <span style=
- "color: blue">f</span> < <span style=
- "color: blue">g</span> < <span style=
- "color: blue">p</span> < <span style=
- "color: blue">q</span> < <span style=
- "color: blue">r</span> < <span style=
- "color: blue">s</span></code></td>
- </tr>
- <tr>
- <td><code><<*</code></td>
- <td><code>& <span style="color: blue">a</span><br>
- <<* <span style="color: blue">æᶏɐ</span></code></td>
- <td><code>& <span style="color: blue">a</span><br>
- << <span style="color: blue">æ</span> <<
- <span style="color: blue">ᶏ</span> << <span style=
- "color: blue">ɐ</span></code></td>
- </tr>
- <tr>
- <td><code><<<*</code></td>
- <td><code>& <span style="color: blue">p</span><br>
- <<<* <span style=
- "color: blue">PpP</span></code></td>
- <td><code>& <span style="color: blue">p</span><br>
- <<< <span style="color: blue">P</span>
- <<< <span style="color: blue">p</span>
- <<< <span style="color: blue">P</span></code></td>
- </tr>
- <tr>
- <td><code><<<<*</code></td>
- <td><code>& <span style="color: blue">k</span><br>
- <<<<* <span style=
- "color: blue">qQ</span></code></td>
- <td><code>& <span style="color: blue">k</span><br>
- <<<< <span style="color: blue">q</span>
- <<<< <span style=
- "color: blue">Q</span></code></td>
- </tr>
- <tr>
- <td><code>=*</code></td>
- <td><code>& <span style="color: blue">v</span><br>
- =* <span style="color: blue">VwW</span></code></td>
- <td><code>& <span style="color: blue">v</span><br>
- = <span style="color: blue">V</span> = <span style=
- "color: blue">w</span> = <span style=
- "color: blue">W</span></code></td>
- </tr>
- </table>
- <h3>3.7 <a name="Contractions" href="#Contractions" id=
- "Contractions">Contractions</a></h3>
- <p>A multi-character relation string defines a contraction.</p>
- <table>
- <caption>
- <a name="Specifying_Contractions" href=
- "#Specifying_Contractions" id=
- "Specifying_Contractions">Specifying Contractions</a>
- </caption>
- <tr>
- <th>Example</th>
- <th>Description</th>
- </tr>
- <tr>
- <td><code>& k<br>
- < ch</code></td>
- <td>Make the sequence 'ch' sort after 'k', as a primary
- (base-character) difference</td>
- </tr>
- </table>
- <h3>3.8 <a name="Expansions" href="#Expansions" id=
- "Expansions">Expansions</a></h3>
- <p>A mapping to multiple collation elements defines an
- expansion. This is normally the result of a reset position
- (and/or preceding relation) that yields multiple collation
- elements, for example <code>&ae<x</code> or
- <code>&æ<y</code> .</p>
- <p>A relation string can also be followed by <code>/</code> and
- an <i>extension string</i>. The extension string is mapped to
- collation elements according to the current state, and the
- relation string is mapped to the concatenation of the regular
- CEs and the extension CEs. The extension CEs are not modified,
- not even their case bits. The extension CEs are <i>not</i>
- retained for following relations.</p>
- <p>For example, <code>&a<z/e</code> maps ‘z’ to an
- expansion similar to <code>&ae<x</code> . However, the
- first CE of ‘z’ is primary-after that of ‘a’, and the second CE
- is exactly that of ‘e’, which yields the order ae < x <
- af < ag < ... < az < z < b.</p>
- <p>The choice of reset-to-expansion vs. use of an extension
- string can be exploited to affect contextual mappings. For
- example, <code>&L·=x</code> yields a second CE for ‘x’
- equal to the context-sensitive middle-dot-after-L (which is a
- secondary CE in the root collation). On the other hand,
- <code>&L=x/·</code> yields a second CE of the middle dot by
- itself (which is a primary CE).</p>
- <p>The two ways of specifying expansions also differ in how
- case bits are computed. When some of the CEs are copied
- verbatim from an extension string, then the relation string’s
- case bits are distributed over a smaller number of normal CEs.
- For example, <code>&aE=Ch</code> yields an uppercase CE and
- a lowercase CE, but <code>&a=Ch/E</code> yields a
- mixed-case CE (for ‘C’ and ‘h’ together) followed by an
- uppercase CE (copied from ‘E’).</p>
- <p>In summary, there are two ways of specifying expansions
- which produce subtly different mappings. The use of extension
- strings is unusual but sometimes necessary.</p>
- <h3>3.9 <a name="Context_Before" href="#Context_Before" id=
- "Context_Before">Context Before</a></h3>
- <p>A relation string can have a prefix (context before) which
- makes the mapping from the relation string to its tailored
- position conditional on the string occurring after that prefix.
- For details see the specification of <i><a href=
- "#Context_Sensitive_Mappings">Context-Sensitive
- Mappings</a></i>.</p>
- <p>For example, suppose that "-" is sorted like the previous
- vowel. Then one could have rules that take "a-", "e-", and so
- on. However, that means that every time a very common character
- (a, e, ...) is encountered, a system will slow down as it looks
- for possible contractions. An alternative is to indicate that
- when "-" is encountered, and it comes after an 'a', it sorts
- like an 'a', and so on.</p>
- <table>
- <caption>
- <a name="Specifying_Previous_Context" href=
- "#Specifying_Previous_Context" id=
- "Specifying_Previous_Context">Specifying Previous
- Context</a>
- </caption>
- <tr>
- <th>Rules</th>
- </tr>
- <tr>
- <td><code>& a <<< a | '-'<br>
- & e <<< e | '-'<br>
- ...</code></td>
- </tr>
- </table>
- <p>Both the prefix and extension strings can occur in a
- relation. For example, the following are allowed:</p>
- <ul>
- <li><code>< abc | def / ghi</code></li>
- <li><code>< def / ghi</code></li>
- <li><code>< abc | def</code></li>
- </ul>
- <h3>3.10 <a name="Placing_Characters_Before_Others" href=
- "#Placing_Characters_Before_Others" id=
- "Placing_Characters_Before_Others">Placing Characters Before
- Others</a></h3>
- <p>There are certain circumstances where characters need to be
- placed before a given character, rather than after. This is the
- case with Pinyin, for example, where certain accented letters
- are positioned before the base letter. That is accomplished
- with the following syntax.</p>
- <pre>&[before 2] a << à</pre>
- <p>The before-strength can be 1 (primary), 2 (secondary), or 3
- (tertiary).</p>
- <p>It is an error if the strength of the reset-before differs
- from the strength of the immediately following relation. Thus
- the following are errors.</p>
- <ul>
- <li><code>&[before 2] a < à # error</code></li>
- <li><code>&[before 2] a <<< à #
- error</code></li>
- </ul>
- <h3>3.11 <a name="Logical_Reset_Positions" href=
- "#Logical_Reset_Positions" id="Logical_Reset_Positions">Logical
- Reset Positions</a></h3>
- <p>The CLDR table (based on UCA) has the following overall
- structure for weights, going from low to high.</p>
- <table>
- <caption>
- <a name="Specifying_Logical_Positions" href=
- "#Specifying_Logical_Positions" id=
- "Specifying_Logical_Positions">Specifying Logical
- Positions</a>
- </caption>
- <tr>
- <th>Name</th>
- <th>Description</th>
- <th>UCA Examples</th>
- </tr>
- <tr>
- <td>first tertiary ignorable<br>
- ...<br>
- last tertiary ignorable</td>
- <td>p, s, t = ignore</td>
- <td>Control Codes<br>
- Format Characters<br>
- Hebrew Points<br>
- Tibetan Signs<br>
- ...</td>
- </tr>
- <tr>
- <td>first secondary ignorable<br>
- ...<br>
- last secondary ignorable</td>
- <td>p, s = ignore</td>
- <td>None in UCA</td>
- </tr>
- <tr>
- <td>first primary ignorable<br>
- ...<br>
- last primary ignorable</td>
- <td>p = ignore</td>
- <td>Most combining marks</td>
- </tr>
- <tr>
- <td>first variable<br>
- ...<br>
- last variable</td>
- <td><i><b>if</b> alternate = non-ignorable<br></i> p !=
- ignore,<br>
- <i><b>if</b> alternate = shifted</i><br>
- p, s, t = ignore</td>
- <td>Whitespace,<br>
- Punctuation</td>
- </tr>
- <tr>
- <td>first regular<br>
- ...<br>
- last regular</td>
- <td>p != ignore</td>
- <td>General Symbols<br>
- Currency Symbols<br>
- Numbers<br>
- Latin<br>
- Greek<br>
- ...</td>
- </tr>
- <tr>
- <td>first implicit<br>
- ...<br>
- last implicit</td>
- <td>p != ignore, assigned automatically</td>
- <td>CJK, CJK compatibility (those that are not
- decomposed)<br>
- CJK Extension A, B, C, ...<br>
- Unassigned</td>
- </tr>
- <tr>
- <td>first trailing<br>
- ...<br>
- last trailing</td>
- <td>p != ignore,<br>
- used for trailing syllable components</td>
- <td>Jamo Trailing<br>
- Jamo Leading<br>
- U+FFFD<br>
- U+FFFF</td>
- </tr>
- </table>
- <p>Each of the above Names can be used with a reset to position
- characters relative to that logical position. That allows
- characters to be ordered before or after a <i>logical</i>
- position rather than a specific character.</p>
- <blockquote>
- <p class="note"><b>Note:</b> The reason for this is so that
- tailorings can be more stable. A future version of the UCA
- might add characters at any point in the above list. Suppose
- that you set character X to be after Y. It could be that you
- want X to come after Y, no matter what future characters are
- added; or it could be that you just want Y to come after a
- given logical position, for example, after the last primary
- ignorable.</p>
- </blockquote>
- <p>Each of these special reset positions always maps to a
- single collation element.</p>
- <p>Here is an example of the syntax:</p>
- <pre>& [first tertiary ignorable] << à </pre>
- <p>For example, to make a character be a secondary ignorable,
- one can make it be immediately after (at a secondary level) a
- specific character (like a combining diaeresis), or one can
- make it be immediately after the last secondary ignorable.</p>
- <p>Each special reset position adjusts to the effects of
- preceding rules, just like normal reset position strings. For
- example, if a tailoring rule creates a new collation element
- after <code>&[last variable]</code> (via explicit tailoring
- after that, or via tailoring after the relevant character),
- then this new CE becomes the new <i>last variable</i> CE, and
- is used in following resets to <code>[last variable]</code>
- .</p>
- <p>[first variable] and [first regular] and [first trailing]
- should be the first real such CEs (e.g., CE(U+0060 `)), as
- adjusted according to the tailoring, not the boundary CEs (see
- the FractionalUCA.txt “first primary” mappings starting with
- U+FDD1).</p>
- <p><code>[last regular]</code> is not actually the last normal
- CE with a primary weight before implicit primaries. It is used
- to tailor large numbers of characters, usually CJK, into the
- script=Hani range between the last regular script and the first
- implicit CE. (The first group of implicit CEs is for Han
- characters.) Therefore, <code>[last regular]</code> is set to
- the first Hani CE, the artificial script boundary CE at the
- beginning of this range. For example: <code>&[last
- regular]<*亜唖娃阿...</code></p>
- <p>The [last trailing] is the CE of U+FFFF. Tailoring to that
- is not allowed.</p>
- <p>The <code>[last variable]</code> indicates the "highest"
- character that is treated as punctuation with alternate
- handling.</p>
- <p>The value can be changed by using the maxVariable setting.
- This takes effect, however, after the rules have been built,
- and does not affect any characters that are reset relative to
- the <code>[last variable]</code> value when the rules are being
- built. The maxVariable setting might also be changed via a
- runtime parameter. That also does not affect the rules.<br>
- (In CLDR 24 and earlier, the variable top could also be set by
- using a tailoring rule with <code>[variable top]</code> in the
- place of a relation string.)</p>
- <h3>3.12 <a name="Special_Purpose_Commands" href=
- "#Special_Purpose_Commands" id=
- "Special_Purpose_Commands">Special-Purpose Commands</a></h3>
- <p>The import command imports rules from another collation.
- This allows for better maintenance and smaller rule sizes. The
- source is a BCP 47 language tag with an optional collation type
- but without other extensions. The collation type is the BCP 47
- form of the collation type in the source; it defaults to
- "standard".</p>
- <p><em>Examples:</em></p>
- <ul>
- <li><code>[import de-u-co-phonebk]</code> (not
- "...-co-phonebook")</li>
- <li><code>[import und-u-co-search]</code> (not
- "root-...")</li>
- <li><code>[import ja-u-co-private-kana]</code>
- (language "ja" required even when this import itself is in
- another "ja" tailoring.)</li>
- </ul>
- <table>
- <caption>
- <a name="Special_Purpose_Elements" href=
- "#Special_Purpose_Elements" id=
- "Special_Purpose_Elements">Special-Purpose Elements</a>
- </caption>
- <tr>
- <th>Rule Syntax</th>
- </tr>
- <tr>
- <td>[suppressContractions [Љ-ґ]]</td>
- </tr>
- <tr>
- <td>[optimize [Ά-ώ]]</td>
- </tr>
- </table>
- <p>The <i>suppress contractions</i> tailoring command turns off
- any existing contractions that begin with those characters, as
- well as any prefixes for those characters. It is typically used
- to turn off the Cyrillic contractions in the UCA, since they
- are not used in many languages and have a considerable
- performance penalty. The argument is a <a href=
- "tr35.html#Unicode_Sets">Unicode Set</a>.</p>
- <p>The <i>suppress contractions</i> command has immediate
- effect on the current set of mappings, including mappings added
- by preceding rules. Following rules are processed after
- removing any context-sensitive mappings originating from any of
- the characters in the set.</p>
- <p>The <i>optimize</i> tailoring command is purely for
- performance. It indicates that those characters are
- sufficiently common in the target language for the tailoring
- that their performance should be enhanced.</p>
- <p>The reason that these are not settings is so that their
- contents can be arbitrary characters.</p>
- <hr width="50%">
- <p><i>Example:</i></p>
- <p>The following is a simple example that combines portions of
- different tailorings for illustration. For more complete
- examples, see the actual locale data: <a href=
- "https://github.com/unicode-org/cldr/tree/latest/common/collation/ja.xml">
- Japanese</a>, <a href=
- "https://github.com/unicode-org/cldr/tree/latest/common/collation/zh.xml">
- Chinese</a>, <a href=
- "https://github.com/unicode-org/cldr/tree/latest/common/collation/sv.xml">
- Swedish</a>, and <a href=
- "https://github.com/unicode-org/cldr/tree/latest/common/collation/de.xml">
- German</a> (type="phonebook") are particularly
- illustrative.</p>
- <pre><collation>
- <cr><![CDATA[
- [caseLevel on]
- &Z
- < æ <<< Æ
- < å <<< Å <<< aa <<< aA <<< Aa <<< AA
- < ä <<< Ä
- < ö <<< Ö << ű <<< Ű
- < ő <<< Ő << ø <<< Ø
- &V <<<* wW
- &Y <<<* üÜ
- &[last non-ignorable]
- <span style=
-"color: green"># The following is equivalent to <亜<唖<娃...</span>
- <* 亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦
- <* 鯵梓圧斡扱
- ]]></cr>
-</collation></pre>
- <h3>3.13 <a name="Script_Reordering" href="#Script_Reordering"
- id="Script_Reordering">Collation Reordering</a></h3>
- <p>Collation reordering allows scripts and certain other
- defined blocks of characters to be moved relative to each other
- parametrically, without changing the detailed rules for all the
- characters involved. This reordering is done on top of any
- specific ordering rules within the script or block currently in
- effect. Reordering can specify groups to be placed at the start
- and/or the end of the collation order. For example, to reorder
- Greek characters before Latin characters, and digits afterwards
- (but before other scripts), the following can be used:</p>
- <table>
- <tr>
- <th>Rule Syntax</th>
- <th>Locale Identifier</th>
- </tr>
- <tr>
- <td><code>[reorder Grek Latn digit]</code></td>
- <td><code>en-u-kr-grek-latn-digit</code></td>
- </tr>
- </table>
- <p>In each case, a sequence of
- <em><strong>reorder_codes</strong></em> is used, separated by
- spaces in the settings attribute and in rule syntax, and by
- hyphens in locale identifiers.</p>
- <p>A <strong><em>reorder_code</em></strong> is any of the
- following special codes:</p>
- <ol>
- <li><strong>space, punct, symbol, currency, digit</strong> -
- core groups of characters below 'a'</li>
- <li>
- <strong>any script code</strong> except
- <strong>Common</strong> and <strong>Inherited</strong>.
- <ul>
- <li>Some pairs of scripts sort primary-equal and always
- reorder together. For example, Katakana characters are
- are always reordered with Hiragana.</li>
- </ul>
- </li>
- <li><strong>others</strong> - where all codes not explicitly
- mentioned should be ordered. The script code
- <strong>Zzzz</strong> (Unknown Script) is a synonym for
- <strong>others</strong>.</li>
- </ol>
- <p>It is an error if a code occurs multiple times.</p>
- <p>It is an error if the sequence of reorder codes is empty in
- the XML attribute or in the locale identifier. Some
- implementations may interpret an empty sequence in the
- <code>[reorder]</code> rule syntax as a reset to the DUCET
- ordering, synonymous with <code>[reorder others]</code> ; other
- implementations may forbid an empty sequence in the rule syntax
- as well.</p>
- <p>Interaction with <strong>alternate=shifted</strong>: Whether
- a primary weight is “variable” is determined according to the
- “variable top”, before applying script reordering. Once that is
- determined, script reordering is applied to the primary weight
- regardless of whether it is “regular” (used in the primary
- level) or “shifted” (used in the quaternary level).</p>
- <h4>3.13.1 <a name="Interpretation_reordering" href=
- "#Interpretation_reordering" id=
- "Interpretation_reordering">Interpretation of a reordering
- list</a></h4>
- <p>The reordering list is interpreted as if it were processed
- in the following way.</p>
- <ol>
- <li>If any core code is not present, then it is inserted at
- the front of the list in the order given above.</li>
- <li>If the <strong>others</strong> code is not present, then
- it is inserted at the end of the list.</li>
- <li>The <strong>others</strong> code is replaced by the list
- of all script codes not explicitly mentioned, in DUCET
- order.</li>
- <li>The reordering list is now complete, and used to reorder
- characters in collation accordingly.</li>
- </ol>
- <p>The locale data may have a particular ordering. For example,
- the Czech locale data could put digits after all letters, with
- <code>[reorder others digit]</code> . Any reordering codes
- specified on top of that (such as with a bcp47 locale
- identifier) completely replace what was there. To specify a
- version of collation that completely resets any existing
- reordering to the DUCET ordering, the single code
- <strong>Zzzz</strong> or <strong>others</strong> can be used,
- as below.</p>
- <p><em>Examples:</em></p>
- <table cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <th>Locale Identifier</th>
- <th>Effect</th>
- </tr>
- <tr>
- <td><code>en-u-kr-latn-digit</code></td>
- <td>Reorder digits after Latin characters (but before
- other scripts like Cyrillic).</td>
- </tr>
- <tr>
- <td><code>en-u-kr-others-digit</code></td>
- <td>Reorder digits after all other characters.</td>
- </tr>
- <tr>
- <td><code>en-u-kr-arab-cyrl-others-symbol</code></td>
- <td>Reorder Arabic characters first, then Cyrillic, and
- put symbols at the end—after all other characters.</td>
- </tr>
- <tr>
- <td><code>en-u-kr-others</code></td>
- <td>Remove any locale-specific reordering, and use DUCET
- order for reordering blocks.</td>
- </tr>
- </tbody>
- </table>
- <p>The default reordering groups are defined by the
- FractionalUCA.txt file, based on the primary weights of
- associated collation elements. The file contains special
- mappings for the start of each group, script, and
- reorder-reserved range, see <i>Section 2.6.2, <a href=
- "#File_Format_FractionalUCA_txt">FractionalUCA.txt</a></i>.</p>
- <p>There are some special cases:</p>
- <ul>
- <li>The <strong>Hani</strong> group includes implicit weights
- for <em>Han characters</em> according to the UCA as well as
- any characters tailored relative to a Han character, or after
- <code>&[first Hani]</code>.</li>
- <li>Implicit weights for <em>unassigned code points</em>
- according to the UCA reorder as the last weights in the
- <strong>others</strong> (<strong>Zzzz</strong>) group.<br>
- There is no script code to explicitly reorder the
- unassigned-implicit weights into a particular position.
- (Unassigned-implicit weights are used for non-Hani code
- points without any mappings. For a given Unicode version they
- are the code points with General_Category values Cn, Co,
- Cs.)</li>
- <li>The TRAILING group, the FIELD-SEPARATOR (associated with
- U+FFFE), and collation elements with only zero primary
- weights are not reordered.</li>
- <li>The TERMINATOR, LEVEL-SEPARATOR, and SPECIAL groups are
- never associated with characters.</li>
- </ul>
- <p>For example, <code>reorder="Hani Zzzz Grek"</code> sorts
- Hani, Latin, Cyrillic, ... (all other scripts) ..., unassigned,
- Greek, TRAILING.</p>
- <p>Notes for implementations that write sort keys:</p>
- <ul>
- <li>Primaries must always be offset by one or more whole
- primary lead bytes. (Otherwise the number of bytes in a
- fractional weight may change, compressible scripts may span
- multiple lead bytes, or trailing primary bytes may collide
- with separators and primary-compression terminators.)</li>
- <li>When a script is reordered that does not start and end on
- whole-primary-lead-byte boundaries, then the lead byte needs
- to be “split”, and a reserved byte is used up. The data
- supports this via reorder-reserved ranges of primary weights
- that are not used for collation elements.</li>
- <li>Primary weights from different original lead bytes can be
- reordered to a shared lead byte, as long as they do not
- overlap. Primary compression ends when the target lead byte
- differs or when the original lead byte of the next primary is
- not compressible.</li>
- <li>Non-compressible groups and scripts begin or end on
- whole-primary-lead-byte boundaries (or both), so that
- reordering cannot surround a non-compressible script by two
- compressible ones within the same target lead byte. This is
- so that primary compression can be terminated reliably
- (choosing the low or high terminator byte) simply by
- comparing the previous and current primary weights. Otherwise
- it would have to also check for another condition (e.g.,
- equal scripts).</li>
- </ul>
- <h4>3.13.2 <a name="Reordering_Groups_allkeys" href=
- "#Reordering_Groups_allkeys" id=
- "Reordering_Groups_allkeys">Reordering Groups for
- allkeys.txt</a></h4>
- <p>For allkeys_CLDR.txt, the start of each reordering group can
- be determined from FractionalUCA.txt, by finding the first real
- mapping (after “xyz first primary”) of that group (e.g.,
- <code>0060; [0D 07, 05, 05] # Zyyy Sk [0312.0020.0002] * GRAVE
- ACCENT</code> ), and looking for that mapping's character
- sequence ( <code>0060</code> ) in allkeys_CLDR.txt. The comment
- in FractionalUCA.txt ( <code>[0312.0020.0002]</code> ) also
- shows the allkeys_CLDR.txt collation elements.</p>
- <p>The DUCET ordering of some characters is slightly different
- from the CLDR root collation order. The reordering groups for
- the DUCET are not specified. The following describes how
- reordering groups for the DUCET can be derived.</p>
- <p>For allkeys_DUCET.txt, the start of each reordering group is
- normally the primary weight corresponding to the same character
- sequence as for allkeys_CLDR.txt. In a few cases this requires
- adjustment, especially for the special reordering groups, due
- to CLDR’s ordering the common characters more strictly by
- category than the DUCET (as described in <i>Section 2, <a href=
- "#Root_Collation">Root Collation</a></i>). The necessary
- adjustment would set the start of each allkeys_DUCET.txt
- reordering group to the primary weight of the first mapping for
- the relevant General_Category for a special reordering group
- (for characters that sort before ‘a’), or the primary weight of
- the first mapping for the first script (e.g., sc=Grek) of an
- “alphabetic” group (for characters that sort at or after
- ‘a’).</p>
- <p>Note that the following only applies to primary weights
- greater than the one for U+FFFE and less than "trailing"
- weights.</p>
- <p>The special reordering groups correspond to General_Category
- values as follows:</p>
- <ul>
- <li>punct: P</li>
- <li>symbol: Sk, Sm, So</li>
- <li>space: Z, Cc</li>
- <li>currency: Sc</li>
- <li>digit: Nd</li>
- </ul>
- <p>In the DUCET, some characters that sort below ‘a’ and have
- other General_Category values not mentioned above (e.g., gc=Lm)
- are also grouped with symbols. Variants of numbers (gc=No or
- Nl) can be found among punctuation, symbols, and digits.</p>
- <p>Each collation element of an expansion may be in a different
- reordering group, for example for parenthesized characters.</p>
- <h3>3.14 <a name="Case_Parameters" href="#Case_Parameters" id=
- "Case_Parameters">Case Parameters</a></h3>
- <p>The <strong>case level</strong> is an <em>optional</em>
- intermediate level ("2.5") between Level 2 and Level 3 (or
- after Level 1, if there is no Level 2 due to strength
- settings). The case level is used to support two parametric
- features: ignoring non-case variants (Level 3 differences)
- except for case, and giving case differences a higher-level
- priority than other tertiary differences. Distinctions between
- small and large Kana characters are also included as case
- differences, to support Japanese collation.</p>
- <p>The <strong>case first</strong> parameter controls whether
- to swap the order of upper and lowercase. It can be used with
- or without the case level.</p>
- <p>Importantly, the case parameters have no effect in many
- instances. For example, they have no effect on the comparison
- of two non-ignorable characters with different primary weights,
- or with different secondary weights if the strength =
- <strong>secondary (or higher).</strong></p>
- <p>When either the <strong>case level</strong> or <strong>case
- first</strong> parameters are set, the following describes the
- derivation of the modified collation elements. It assumes the
- original levels for the code point are [p.s.t] (primary,
- secondary, tertiary). This derivation may change in future
- versions of LDML, to track the case characteristics more
- closely.</p>
- <h4>3.14.1 <a name="Case_Untailored" href="#Case_Untailored"
- id="Case_Untailored">Untailored Characters</a></h4>
- <p>For untailored characters and strings, that is, for mappings
- in the root collation, the case value for each collation
- element is computed from the tertiary weight listed in
- allkeys_CLDR.txt. This is used to modify the collation
- element.</p>
- <p>Look up a case value for the tertiary weight x of each
- collation element:</p>
- <ol>
- <li>UPPER if x ∈ {08-0C, 0E, 11, 12, 1D}</li>
- <li>UNCASED otherwise</li>
- <li>FractionalUCA.txt encodes the case information in bits 6
- and 7 of the first byte in each tertiary weight. The case
- bits are set to 00 for UNCASED and LOWERCASE, and 10 for
- UPPER. There is no MIXED case value (01) in the root
- collation.</li>
- </ol>
- <h4>3.14.2 <a name="Case_Weights" href="#Case_Weights" id=
- "Case_Weights">Compute Modified Collation Elements</a></h4>
- <p>From a computed case value, set a weight <strong>c</strong>
- according to the following.</p>
- <ol>
- <li>If <strong>CaseFirst=UpperFirst</strong>, set
- <strong>c</strong> = UPPER ? <strong>1</strong> : MIXED ? 2 :
- <strong>3</strong></li>
- <li>Otherwise set <strong>c</strong> = UPPER ?
- <strong>3</strong> : MIXED ? 2 : <strong>1</strong></li>
- </ol>
- <p>Compute a new collation element according to the following
- table. The notation <em>xt</em> means that the values are
- numerically combined into a single level, such that xt < yu
- whenever x < y. The fourth level (if it exists) is
- unaffected. Note that a secondary CE must have a secondary
- weight S which is greater than the secondary weight s of any
- primary CE; and a tertiary CE must have a tertiary weight T
- which is greater than the tertiary weight t of any primary or
- secondary CE ([<a href=
- "https://www.unicode.org/reports/tr41/#UTS10">UCA</a>] <a href=
- "https://www.unicode.org/reports/tr10/#WF2">WF2</a>).</p>
- <div align="center">
- <table>
- <tbody>
- <tr>
- <th>Case Level</th>
- <th>Strength</th>
- <th>Original CE</th>
- <th>Modified CE</th>
- <th>Comment</th>
- </tr>
- <tr>
- <td rowspan="5"><strong>on</strong></td>
- <td rowspan="2"><strong>primary</strong></td>
- <td><code>0.S.t</code></td>
- <td><code>0.0</code></td>
- <td rowspan="2">ignore case level weights of
- primary-ignorable CEs</td>
- </tr>
- <tr>
- <td><code>p.s.t</code></td>
- <td><code>p.c</code></td>
- </tr>
- <tr>
- <td rowspan="3"><strong>secondary<br></strong> or
- higher</td>
- <td><code>0.0.T</code></td>
- <td><code>0.0.0.T</code></td>
- <td rowspan="3">ignore case level weights of
- secondary-ignorable CEs</td>
- </tr>
- <tr>
- <td><code>0.S.t</code></td>
- <td><code>0.S.c.t</code></td>
- </tr>
- <tr>
- <td><code>p.s.t</code></td>
- <td><code>p.s.c.t</code></td>
- </tr>
- <tr>
- <td rowspan="4"><strong>off</strong></td>
- <td rowspan="4">any</td>
- <td><code>0.0.0</code></td>
- <td><code>0.0.00</code></td>
- <td rowspan="4">ignore case level weights of
- tertiary-ignorable CEs</td>
- </tr>
- <tr>
- <td><code>0.0.T</code></td>
- <td><code>0.0.3T</code></td>
- </tr>
- <tr>
- <td><code>0.S.t</code></td>
- <td><code>0.S.ct</code></td>
- </tr>
- <tr>
- <td><code>p.s.t</code></td>
- <td><code>p.s.ct</code></td>
- </tr>
- </tbody>
- </table>
- </div>
- <p>For primary+case, which is used for “ignore accents but not
- case” collation, primary ignorables are ignored so that a = ä.
- For secondary+case, which would by analogy mean “ignore
- variants but not case”, secondary ignorables are ignored for
- equivalent behavior.</p>
- <p>When using <strong>caseFirst</strong> but not
- <strong>caseLevel</strong>, the combined case+tertiary weight
- of a tertiary CE must be greater than the combined
- case+tertiary weight of any primary or secondary CE so that
- [<a href="https://www.unicode.org/reports/tr41/#UTS10">UCA</a>]
- <a href=
- "https://www.unicode.org/reports/tr10/#WF2">well-formedness
- condition 2</a> is fulfilled. Since the tertiary CE’s tertiary
- weight T is already greater than any t of primary or secondary
- CEs, it is sufficient to set its case weight to UPPER=3. It
- must not be affected by <strong>caseFirst=upper</strong>. (The
- table uses the constant 3 in this case rather than the computed
- c.)</p>
- <p>The case weight of a tertiary-ignorable CE must be 0 so that
- [<a href="https://www.unicode.org/reports/tr41/#UTS10">UCA</a>]
- <a href=
- "https://www.unicode.org/reports/tr10/#WF1">well-formedness
- condition 1</a> is fulfilled.</p>
- <h4>3.14.3 <a name="Case_Tailored" href="#Case_Tailored" id=
- "Case_Tailored">Tailored Strings</a></h4>
- <p>Characters and strings that are tailored have case values
- computed from their root collation case bits.</p>
- <ol>
- <li>Look up the tailored string’s root CEs. (Ignore any
- prefix or extension strings.) N=number of primary root
- CEs.</li>
- <li>Determine the number and type (primary vs. weaker) of CEs
- a tailored string maps to. M=number of primary tailored
- CEs.</li>
- <li>If N<=M (no more root than tailoring primary CEs):
- Copy the root case bits for primary CEs 0..N-1.
- <ul>
- <li>If N<M (fewer root primary CEs): Clear the case
- bits of the remaining tailored primary CEs.
- (uncased/lowercase/small Kana)</li>
- </ul>
- </li>
- <li>If N>M (more root primary CEs): Copy the root case
- bits for primary CEs 0..M-2. Set the case bits for tailored
- primary CE M-1 according to the remaining root primary CEs
- M-1..N-1:
- <ul>
- <li>Set to uncased/lower if all remaining root primary
- CEs have uncased/lower.</li>
- <li>Set to uppercase if all remaining root primary CEs
- have uppercase.</li>
- <li>Otherwise, set to mixed.</li>
- </ul>
- </li>
- <li>Clear the case bits for secondary CEs 0.s.t.</li>
- <li>Tertiary CEs 0.0.t must get uppercase bits.</li>
- <li>Tertiary-ignorable CEs 0.0.0 must get
- ignorable-case=lowercase bits.</li>
- </ol>
- <p class="note">Note: Almost all Cased characters have primary
- (non-ignorable) root collation CEs, except for U+0345 Combining
- Ypogegrammeni which is Lowercase. All Uppercase characters have
- primary root collation CEs.</p>
- <h3>3.15 <a name="Visibility" href="#Visibility" id=
- "Visibility">Visibility</a></h3>
- <p>Collations have external visibility by default, meaning that
- they can be displayed in a list of collation options for users
- to choose from. A collation whose type name starts with
- "private-" is internal and should not be shown in such a list.
- Collations are typically internal when they are partial
- sequences included in other collations. See <i>Section 3.1,
- <a href="#Collation_Types">Collation Types</a></i> .</p>
- <h3>3.16 <a name="Collation_Indexes" href="#Collation_Indexes"
- id="Collation_Indexes">Collation Indexes</a></h3>
- <h4>3.16.1 <a name="Index_Characters" href="#Index_Characters"
- id="Index_Characters">Index Characters</a></h4>
- <p>The main data includes <exemplarCharacters> for
- collation indexes. See <i>Part 2 General, Section 3, <a href=
- "tr35-general.html#Character_Elements">Character
- Elements</a></i>, for general information about exemplar
- characters.</p>
- <p>The index characters are a set of characters for use as a UI
- "index", that is, a list of clickable characters (or character
- sequences) that allow the user to see a segment of a larger
- "target" list. Each character corresponds to a bucket in the
- target list. One may have different kinds of index lists; one
- that produces an index list that is relatively static, and the
- other is a list that produces roughly equally-sized buckets.
- While CLDR is mostly focused on the first, there is provision
- for supporting the second as well.</p>
- <p>The index characters need to be used in conjunction with a
- collation for the locale, which will determine the order of the
- characters. It will also determine which index characters show
- up.</p>
- <p>The static list would be presented as something like the
- following (either vertically or horizontally):</p>
- <p align="center">… A B C D E F G H CH I J K L M N O P Q R
- S T U V W X Y Z …</p>
- <p>In the "A" bucket, you would find all items that are primary
- greater than or equal to "A" in collation order, and primary
- less than "B". The use of the list requires that the target
- list be sorted according to the locale that is used to create
- that list. Although we say "character" above, the index
- character could be a sequence, like "CH" above. The index
- exemplar characters must always be used with a collation
- appropriate for the locale. Any characters that do not have
- primary differences from others in the set should be
- removed.</p>
- <p>Details:</p>
- <ol>
- <li>The primary weight (according to the collation) is used
- to determine which bucket a string is in. There are special
- buckets for before the first character, between buckets of
- different scripts, and after the last bucket (and of a
- different script).</li>
- <li>Characters in the <em>index characters</em> do not need
- to have distinct primary weights. That is, the <em>index
- characters</em> are adapted to the underlying collation:
- normally Ё is in the Е bucket for Russian, but if someone
- used a variant of Russian collation that distinguished them
- on a primary level, then Ё would show up as its own
- bucket.</li>
- <li>If an <em>index character</em> string ends with a single
- "*" (U+002A), for example "Sch*" and "St*" in German, then
- there will be a separate bucket for the string minus the "*",
- for example "Sch" and "St", even if that string does not sort
- distinctly.</li>
- <li>An <em>index character</em> can have multiple primary
- weights, for example "Æ" and "Sch". Names that have the same
- initial primary weights sort into this <em>index
- character</em>’s bucket. This can be achieved by using an
- upper-boundary string that is the concatenation of the
- <em>index character</em> and U+FFFF, for example "Æ\uFFFF"
- and "Sch\uFFFF". Names that sort greater than this upper
- boundary but less than the next index character are
- redirected to the last preceding single-primary index
- character (A and S for the examples here).</li>
- </ol>
- <p>For example, for index characters <code>[A Æ B R S {Sch*}
- {St*} T]</code> the following sample names are sorted into an
- index as shown.</p>
- <ul>
- <li>A — Adelbert, Afrika</li>
- <li>Æ — Æsculap, Aesthet</li>
- <li>B — Berlin</li>
- <li>R — Rilke</li>
- <li>S — Sacher, Seiler, Sultan</li>
- <li>Sch — Schiller</li>
- <li>St — Steiff</li>
- <li>T — Thomas</li>
- </ul>
- <p>The … items are special: each is a bucket for
- everything else, either less or greater. They are inserted at
- the start and end of the index list, <em>and</em> on script
- boundaries. Each script has its own range, except where scripts
- sort primary-equal (e.g., Hira & Kana). All characters that
- sort in one of the low reordering groups (whitespace,
- punctuation, symbols, currency symbols, digits) are treated as
- a single script for this purpose.</p>
- <p>If you tailor a Greek character into the Cyrillic script,
- that Greek character will be bucketed (and sorted) among the
- Cyrillic ones.</p>
- <p>Even in an implementation that reorders groups of scripts
- rather than single scripts, for example Hebrew together with
- Phoenician and Samaritan, the index boundaries are really
- script boundaries, <em>not</em> multi-script-group boundaries.
- So if you had a collation that reordered Hebrew after Ethiopic,
- you would still get index boundaries between the following (and
- in that order):</p>
- <ol>
- <li>Ethiopic</li>
- <li>Hebrew</li>
- <li>Phoenician<em> // included in the Hebrew reordering
- group</em></li>
- <li>Samaritan<em> // included in the Hebrew reordering
- group</em></li>
- <li>Devanagari</li>
- </ol>
- <p>(Beginning with CLDR 27, single scripts can be
- reordered.)</p>
- <p>In the UI, an index character could also be omitted or
- grayed out if its bucket is empty. For example, if there is
- nothing in the bucket for Q, then Q could be omitted. That
- would be up to the implementation. Additional buckets could be
- added if other characters are present. For example, we might
- see something like the following:</p>
- <table border="1" cellspacing="0">
- <tbody>
- <tr align="center">
- <td>
- <div align="center">
- <strong>Sample Greek Index<br></strong>
- </div>
- </td>
- <td><strong>Contents<br></strong></td>
- </tr>
- <tr align="center">
- <td>
- <div align="center">
- Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω
- </div>
- </td>
- <td>With only content beginning with Greek
- letters <br></td>
- </tr>
- <tr align="center">
- <td>
- <div align="center">
- … Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ
- Ω …
- </div>
- </td>
- <td>With some content before or after</td>
- </tr>
- <tr align="center">
- <td>
- <div align="center">
- … 9 Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ
- Ψ Ω …
- </div>
- </td>
- <td>With numbers, and nothing between 9 and Alpha</td>
- </tr>
- <tr align="center">
- <td>
- <div align="center">
- … 9 <em>A-Z</em> Α Β Γ Δ Ε Ζ Η Θ Ι Κ
- Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω …
- </div>
- </td>
- <td>With numbers, some Latin</td>
- </tr>
- </tbody>
- </table>
- <p>Here is a sample of the XML structure:</p>
- <pre>
- <exemplarCharacters type="index">[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]</exemplarCharacters></pre>
- <p>The display of the index characters can be modified with the
- Index labels elements, discussed in the <i>Part 2 General,
- Section 3.3, <a href="tr35-general.html#IndexLabels">Index
- Labels</a></i> .</p>
- <h4>3.16.2 <a name="CJK_Index_Markers" href=
- "#CJK_Index_Markers" id="CJK_Index_Markers">CJK Index
- Markers</a></h4>
- <p>Special index markers have been added to the CJK collations
- for stroke, pinyin, zhuyin, and unihan. These markers allow for
- effective and robust use of indexes for these collations.</p>
- <p>The per-language index exemplar characters are not useful
- for collation indexes for CJK because for each such language
- there are multiple sort orders in use (for example, Chinese
- pinyin vs. stroke vs. unihan vs. zhuyin), and these sort orders
- use very different index characters. In addition, sometimes the
- boundary strings are different from the bucket label strings.
- For collations that contain index markers, the boundary strings
- and bucket labels should be derived from those index markers,
- ignoring the index exemplar characters.</p>
- <p>For example, near the start of the pinyin tailoring there is
- the following:</p>
- <p><p> A</p><!-- INDEX A --><br>
- <pc>阿呵𥥩锕𠼞𨉚</pc><!-- ā --></p>
- <p>…</p>
- <p><pc>翶</pc><!-- ao --><br>
- <p> B</p><!-- INDEX B --></p>
- <p>These indicate the boundaries of "buckets" that can be used
- for indexing. They are always two characters starting with the
- noncharacter U+FDD0, and thus will not occur in normal text.
- For pinyin the second character is A-Z; for unihan it is one of
- the radicals; and for stroke it is a character after U+2800
- indicating the number of strokes, such as ⠁. For zhuyin the
- second character is one of the standard Bopomofo characters in
- the range U+3105 through U+3129.</p>
- <p>The corresponding bucket label strings are the boundary
- strings with the leading U+FDD0 removed. For example, the
- Pinyin boundary string "\uFDD0A" yields the label string
- "A".</p>
- <p>However, for stroke order, the label string is the stroke
- count (second character minus U+2800) as a decimal-digit number
- followed by 劃 (U+5283). For example, the stroke order boundary
- string "\uFDD0\u2805" yields the label string "5劃".</p>
- <hr>
- <p class="copyright">Copyright © 2001–2020 Unicode, Inc. All
- Rights Reserved. The Unicode Consortium makes no expressed or
- implied warranty of any kind, and assumes no liability for
- errors or omissions. No liability is assumed for incidental and
- consequential damages in connection with or arising out of the
- use of the information or programs contained or accompanying
- this technical report. The Unicode <a href=
- "https://unicode.org/copyright.html">Terms of Use</a> apply.</p>
- <p class="copyright">Unicode and the Unicode logo are
- trademarks of Unicode, Inc., and are registered in some
- jurisdictions.</p>
- </div>
-</body>
-</html>
diff --git a/docs/ldml/tr35-collation.md b/docs/ldml/tr35-collation.md
new file mode 100644
index 0000000..7cf4cc3
--- /dev/null
+++ b/docs/ldml/tr35-collation.md
@@ -0,0 +1,1185 @@
+## Unicode Technical Standard #35
+
+# Unicode Locale Data Markup Language (LDML)<br/>Part 5: Collation
+
+<!-- HTML: no header -->
+<table><tbody>
+<tr><td>Version</td><td>39</td></tr>
+<tr><td>Editors</td><td>Markus Scherer (<a href="mailto:markus.icu@gmail.com">markus.icu@gmail.com</a>) and <a href="tr35.md#Acknowledgments">other CLDR committee members</a></td></tr>
+</tbody></table>
+
+For the full header, summary, and status, see [Part 1: Core](tr35.md).
+
+### _Summary_
+
+This document describes parts of an XML format (_vocabulary_) for the exchange of structured locale data. This format is used in the [Unicode Common Locale Data Repository](https://unicode.org/cldr/).
+
+This is a partial document, describing only those parts of the LDML that are relevant for collation (sorting, searching & grouping). For the other parts of the LDML see the [main LDML document](tr35.md) and the links above.
+
+### _Status_
+
+_This document has been reviewed by Unicode members and other interested parties, and has been approved for publication by the Unicode Consortium. This is a stable document and may be used as reference material or cited as a normative reference by other specifications._
+
+> _**A Unicode Technical Standard (UTS)** is an independent specification. Conformance to the Unicode Standard does not imply conformance to any UTS._
+
+_Please submit corrigenda and other comments with the CLDR bug reporting form [[Bugs](tr35.md#Bugs)]. Related information that is useful in understanding this document is found in the [References](tr35.md#References). For the latest version of the Unicode Standard see [[Unicode](tr35.md#Unicode)]. For a list of current Unicode Technical Reports see [[Reports](tr35.md#Reports)]. For more information about versions of the Unicode Standard, see [[Versions](tr35.md#Versions)]._
+
+## <a name="Parts" href="#Parts">Parts</a>
+
+The LDML specification is divided into the following parts:
+
+* Part 1: [Core](tr35.md#Contents) (languages, locales, basic structure)
+* Part 2: [General](tr35-general.md#Contents) (display names & transforms, etc.)
+* Part 3: [Numbers](tr35-numbers.md#Contents) (number & currency formatting)
+* Part 4: [Dates](tr35-dates.md#Contents) (date, time, time zone formatting)
+* Part 5: [Collation](tr35-collation.md#Contents) (sorting, searching, grouping)
+* Part 6: [Supplemental](tr35-info.md#Contents) (supplemental data)
+* Part 7: [Keyboards](tr35-keyboards.md#Contents) (keyboard mappings)
+
+## <a name="Contents" href="#Contents">Contents of Part 5, Collation</a>
+
+* 1 [CLDR Collation](#CLDR_Collation)
+ * 1.1 [CLDR Collation Algorithm](#CLDR_Collation_Algorithm)
+ * 1.1.1 [U+FFFE](#Algorithm_FFFE)
+ * 1.1.2 [Context-Sensitive Mappings](#Context_Sensitive_Mappings)
+ * 1.1.3 [Case Handling](#Algorithm_Case)
+ * 1.1.4 [Reordering Groups](#Algorithm_Reordering_Groups)
+ * 1.1.5 [Combining Rules](#Combining_Rules)
+* 2 [Root Collation](#Root_Collation)
+ * 2.1 [Grouping classes of characters](#grouping_classes_of_characters)
+ * 2.2 [Non-variable symbols](#non_variable_symbols)
+ * 2.3 [Additional contractions for Tibetan](#tibetan_contractions)
+ * 2.4 [Tailored noncharacter weights](#tailored_noncharacter_weights)
+ * 2.5 [Root Collation Data Files](#Root_Data_Files)
+ * 2.6 [Root Collation Data File Formats](#Root_Data_File_Formats)
+ * 2.6.1 [allkeys_CLDR.txt](#File_Format_allkeys_CLDR_txt)
+ * 2.6.2 [FractionalUCA.txt](#File_Format_FractionalUCA_txt)
+ * 2.6.3 [UCA_Rules.txt](#File_Format_UCA_Rules_txt)
+* 3 [Collation Tailorings](#Collation_Tailorings)
+ * 3.1 [Collation Types](#Collation_Types)
+ * 3.1.1 [Collation Type Fallback](#Collation_Type_Fallback)
+ * Table: [Sample requested and actual collation locales and types](#Sample_requested_and_actual_collation_locales_and_types)
+ * 3.2 [Version](#Collation_Version)
+ * 3.3 [Collation Element](#Collation_Element)
+ * 3.4 [Setting Options](#Setting_Options)
+ * Table: [Collation Settings](#Collation_Settings)
+ * 3.4.1 [Common settings combinations](#Common_Settings)
+ * 3.4.2 [Notes on the normalization setting](#Normalization_Setting)
+ * 3.4.3 [Notes on variable top settings](#Variable_Top_Settings)
+ * 3.5 [Collation Rule Syntax](#Rules)
+ * 3.6 [Orderings](#Orderings)
+ * Table: [Specifying Collation Ordering](#Specifying_Collation_Ordering)
+ * Table: [Abbreviating Ordering Specifications](#Abbreviating_Ordering_Specifications)
+ * 3.7 [Contractions](#Contractions)
+ * Table: [Specifying Contractions](#Specifying_Contractions)
+ * 3.8 [Expansions](#Expansions)
+ * 3.9 [Context Before](#Context_Before)
+ * Table: [Specifying Previous Context](#Specifying_Previous_Context)
+ * 3.10 [Placing Characters Before Others](#Placing_Characters_Before_Others)
+ * 3.11 [Logical Reset Positions](#Logical_Reset_Positions)
+ * Table: [Specifying Logical Positions](#Specifying_Logical_Positions)
+ * 3.12 [Special-Purpose Commands](#Special_Purpose_Commands)
+ * Table: [Special-Purpose Elements](#Special_Purpose_Elements)
+ * 3.13 [Collation Reordering](#Script_Reordering)
+ * 3.13.1 [Interpretation of a reordering list](#Interpretation_reordering)
+ * 3.13.2 [Reordering Groups for allkeys.txt](#Reordering_Groups_allkeys)
+ * 3.14 [Case Parameters](#Case_Parameters)
+ * 3.14.1 [Untailored Characters](#Case_Untailored)
+ * 3.14.2 [Compute Modified Collation Elements](#Case_Weights)
+ * 3.14.3 [Tailored Strings](#Case_Tailored)
+ * 3.15 [Visibility](#Visibility)
+ * 3.16 [Collation Indexes](#Collation_Indexes)
+ * 3.16.1 [Index Characters](#Index_Characters)
+ * 3.16.2 [CJK Index Markers](#CJK_Index_Markers)
+
+## 1 <a name="CLDR_Collation" href="#CLDR_Collation">CLDR Collation</a>
+
+Collation is the general term for the process and function of determining the sorting order of strings of characters, for example for lists of strings presented to users, or in databases for sorting and selecting records.
+
+Collation varies by language, by application (some languages use special phonebook sorting), and other criteria (for example, phonetic vs. visual).
+
+CLDR provides collation data for many languages and styles. The data supports not only sorting but also language-sensitive searching and grouping under index headers. All CLDR collations are based on the [[UCA](https://www.unicode.org/reports/tr41/#UTS10)] default order, with common modifications applied in the CLDR root collation, and further tailored for language and style as needed.
+
+### 1.1 <a name="CLDR_Collation_Algorithm" href="#CLDR_Collation_Algorithm">CLDR Collation Algorithm</a>
+
+The CLDR collation algorithm is an extension of the [Unicode Collation Algorithm](https://www.unicode.org/reports/tr10/#Main_Algorithm).
+
+#### 1.1.1 <a name="Algorithm_FFFE" href="#Algorithm_FFFE">U+FFFE</a>
+
+U+FFFE maps to a CE with a minimal, unique primary weight. Its primary weight is not "variable": U+FFFE must not become ignorable in alternate handling. On the identical level, a minimal, unique “weight” must be emitted for U+FFFE as well. This allows for [Merging Sort Keys](https://www.unicode.org/reports/tr10/#Merging_Sort_Keys) within code point space.
+
+For example, when sorting names in a database, a sortable string can be formed with _last_name_ + '\\uFFFE' + _first_name_. These strings would sort properly, without ever comparing the last part of a last name with the first part of another first name.
+
+For backwards secondary level sorting, text _segments_ separated by U+FFFE are processed in forward segment order, and _within_ each segment the secondary weights are compared backwards. This is so that such combined strings are processed consistently with merging their sort keys (for example, by concatenating them level by level with a low separator).
+
+> :point_right: **Note**: With unique, low weights on _all_ levels it is possible to achieve `sortkey(str1 + "\uFFFE" + str2) == mergeSortkeys(sortkey(str1), sortkey(str2))` . When that is not necessary, then code can be a little simpler (no special handling for U+FFFE except for backwards-secondary), sort keys can be a little shorter (when using compressible common non-primary weights for U+FFFE), and another low weight can be used in tailorings.
+
+#### 1.1.2 <a name="Context_Sensitive_Mappings" href="#Context_Sensitive_Mappings">Context-Sensitive Mappings</a>
+
+Contraction matching, as in the UCA, starts from the first character of the contraction string. It slows down processing of that first character even when none of its contractions matches. In some cases, it is preferrable to change such contractions to mappings with a prefix (context before a character), so that complex processing is done only when the less-frequently occurring trailing character is encountered.
+
+For example, the DUCET contains contractions for several variants of L· (L followed by middle dot). Collating ASCII text is slowed down by contraction matching starting with L/l. In the CLDR root collation, these contractions are replaced by prefix mappings (L|·) which are triggered only when the middle dot is encountered. CLDR also uses prefix rules in the Japanese tailoring, for processing of Hiragana/Katakana length and iteration marks.
+
+The mapping is conditional on the prefix match but does not change the mappings for the preceding text. As a result, a contraction mapping for "px" can be replaced by a prefix rule "p|x" only if px maps to the collation elements for p followed by the collation elements for "x if after p". In the DUCET, L· maps to CE(L) followed by a special secondary CE (which differs from CE(·) when · is not preceded by L). In the CLDR root collation, L has no context-sensitive mappings, but · maps to that special secondary CE if preceded by L.
+
+A prefix mapping for p|x behaves mostly like the contraction px, except when there is a contraction that overlaps with the prefix, for example one for "op". A contraction matches only new text (and consumes it), while a prefix matches only already-consumed text.
+
+* With mappings for "op" and "px", only the first contraction matches in text "opx". (It consumes the "op" characters, and there is no context-sensitive mapping for x.)
+* With mappings for "op" and "p|x", both the contraction and the prefix rule match in text "opx". (The prefix always matches already-consumed characters, regardless of whether they mapped as part of contractions.)
+
+> :point_right: **Note**: Matching of discontiguous contractions should be implemented without rewriting the text (unlike in the [[UCA](https://www.unicode.org/reports/tr41/#UTS10)] algorithm specification), so that prefix matching is predictable. (It should also help with contraction matching performance.) An implementation that does rewrite the text, as in the UCA, will get different results for some (unusual) combinations of contractions, prefix rules, and input text.
+
+Prefix matching uses a simple longest-match algorithm (op|c wins over p|c). It is recommended that prefix rules be limited to mappings where both the prefix string and the mapped string begin with an NFC boundary (that is, with a normalization starter that does not combine backwards). (In op|ch both o and c should be starters (ccc=0) and NFC_QC=Yes.) Otherwise, prefix matching would be affected by canonical reordering and discontiguous matching, like contractions. Prefix matching is thus always contiguous.
+
+A character can have mappings with both prefixes (context before) and contraction suffixes. Prefixes are matched first. This is to keep them reasonably implementable: When there is a mapping with both a prefix and a contraction suffix (like in Japanese: ぐ|ゞ), then the matching needs to go in both directions. The contraction might involve discontiguous matching, which needs complex text iteration and handling of skipped combining marks, and will consume the matching suffix. Prefix matching should be first because, regardless of whether there is a match, the implementation will always return to the original text index (right after the prefix) from where it will start to look at all of the contractions for that prefix.
+
+If there is a match for a prefix but no match for any of the suffixes for that prefix, then fall back to mappings with the next-longest matching prefix, and so on, ultimately to mappings with no prefix. (Otherwise mappings with longer prefixes would “hide” mappings with shorter prefixes.)
+
+Consider the following mappings.
+
+1. p → CE(p)
+2. h → CE(h)
+3. c → CE(c)
+4. ch → CE(d)
+5. p|c → CE(u)
+6. p|ci → CE(v)
+7. p|ĉ → CE(w)
+8. op|ck → CE(x)
+
+With these, text collates like this:
+
+* pc → CE(p)CE(u)
+* pci → CE(p)CE(v)
+* pch → CE(p)CE(u)CE(h)
+* pĉ → CE(p)CE(w)
+* pĉ̣ → CE(p)CE(w)CE(U+0323) // discontiguous
+* opck → CE(o)CE(p)CE(x)
+* opch → CE(o)CE(p)CE(u)CE(h)
+
+However, if the mapping p|c → CE(u) is missing, then text "pch" maps to CE(p)CE(d), "opch" maps to CE(o)CE(p)CE(d), and "pĉ̣" maps to CE(p)CE(c)CE(U+0323)CE(U+0302) (because discontiguous contraction matching extends _an existing match_ by one non-starter at a time).
+
+#### 1.1.3 <a name="Algorithm_Case" href="#Algorithm_Case">Case Handling</a>
+
+CLDR specifies how to sort lowercase or uppercase first, as a stronger distinction than other tertiary variants (**caseFirst**) or while completely ignoring all other tertiary distinctions (**caseLevel**). See _Section 3.3 [Setting Options](#Setting_Options)_ and _Section 3.13 [Case Parameters](#Case_Parameters)_.
+
+#### 1.1.4 <a name="Algorithm_Reordering_Groups" href="#Algorithm_Reordering_Groups">Reordering Groups</a>
+
+CLDR specifies how to do parametric reordering of groups of scripts (e.g., “native script first”) as well as special groups (e.g., “digits after letters”), and provides data for the effective implementation of such reordering.
+
+#### 1.1.5 <a name="Combining_Rules" href="#Combining_Rules">Combining Rules</a>
+
+Rules from different sources can be combined, with the later rules overriding the earlier ones. The following is an example of how this can be useful.
+
+There is a root collation for "emoji" in CLDR. So use of "-u-co-emoji" in a Unicode locale identifier will access that ordering.
+
+Example, using ICU:
+
+```java
+collator = Collator.getInstance(ULocale.forLanguageTag("en-u-co-emoji"));
+```
+
+However, use of the emoji will supplant the language's customizations. So the above is the equivalent of:
+
+```java
+collator = Collator.getInstance(ULocale.forLanguageTag("und-u-co-emoji"));
+```
+
+The same structure will not work for a language that does require customization, like Danish. That is, the following will fail.
+
+```java
+collator = Collator.getInstance(ULocale.forLanguageTag("da-u-co-emoji"));
+```
+
+For that, a slightly more cumbersome method needs to be employed, which is to take the rules for Danish, and explicitly add the rules for emoji.
+
+```java
+RuleBasedCollator collator = new RuleBasedCollator(
+((RuleBasedCollator) Collator.getInstance(ULocale.forLanguageTag("da"))).getRules() +
+((RuleBasedCollator) Collator.getInstance(ULocale.forLanguageTag("und-u-co-emoji")))
+.getRules());
+```
+
+The following table shows the differences. When emoji ordering is supported, the two faces will be adjacent. When Danish ordering is supported, the ü is after the y.
+
+<!-- HTML: no header row, jagged -->
+<table><tbody>
+<tr><td>code point order</td><td>,</td><td>Z</td><td>a</td><td>y</td><td>ü</td><td>☹️</td><td>✈️️</td><td>글</td><td>😀</td></tr>
+<tr><td>en</td><td>,</td><td>☹️</td><td>✈️️</td><td>😀</td><td>a</td><td>ü</td><td>y</td><td>Z</td><td>글</td></tr>
+<tr><td>en-u-co-emoji</td><td>,</td><td>😀</td><td>☹️</td><td>✈️️</td><td>a</td><td>ü</td><td>y</td><td>Z</td><td>글</td></tr>
+<tr><td>da</td><td>,</td><td>☹️</td><td>✈️️</td><td>😀</td><td>a</td><td>y</td><td><strong><u>ü</u></strong></td><td>Z</td><td>글</td></tr>
+<tr><td>da-u-co-emoji</td><td>,</td><td>😀</td><td>☹️</td><td>✈️️</td><td>a</td><td><strong><u>ü</u></strong></td><td>y</td><td>Z</td><td>글</td></tr>
+<tr><td>combined rules</td><td>,</td><td>😀</td><td>☹️</td><td>✈️️</td><td>a</td><td>y</td><td><strong><u>ü</u></strong></td><td>Z</td><td>글</td></tr>
+</tbody></table>
+
+## 2 <a name="Root_Collation" href="#Root_Collation">Root Collation</a>
+
+The CLDR root collation order is based on the [Default Unicode Collation Element Table (DUCET)](https://www.unicode.org/reports/tr10/#Default_Unicode_Collation_Element_Table) defined in _UTS #10: Unicode Collation Algorithm_ [[UCA](https://www.unicode.org/reports/tr41/#UTS10)]. It is used by all other locales by default, or as the base for their tailorings. (For a chart view of the UCA, see Collation Chart [[UCAChart](tr35.md#UCAChart)].)
+
+Starting with CLDR 1.9, CLDR uses modified tables for the root collation order. The root locale ordering is tailored in the following ways:
+
+### 2.1 <a name="grouping_classes_of_characters" href="#grouping_classes_of_characters">Grouping classes of characters</a>
+
+As of Version 6.1.0, the DUCET puts characters into the following ordering:
+
+* First "common characters": whitespace, punctuation, general symbols, some numbers, currency symbols, and other numbers.
+* Then "script characters": Latin, Greek, and the rest of the scripts.
+
+(There are a few exceptions to this general ordering.)
+
+The CLDR root locale modifies the DUCET tailoring by ordering the common characters more strictly by category:
+
+* whitespace, punctuation, general symbols, currency symbols, and numbers.
+
+What the regrouping allows is for users to parametrically reorder the groups. For example, users can reorder numbers after all scripts, or reorder Greek before Latin.
+
+The relative order within each of these groups still matches the DUCET. Symbols, punctuation, and numbers that are grouped with a particular script stay with that script. The differences between CLDR and the DUCET order are:
+
+1. CLDR groups the numbers together after currency symbols, instead of splitting them with some before and some after. Thus the following are put _after_ currencies and just before all the other numbers.
+
+ U+09F4 ( ৴ ) [No] BENGALI CURRENCY NUMERATOR ONE
+ ...
+ U+1D371 ( 𝍱 ) [No] COUNTING ROD TENS DIGIT NINE
+
+2. CLDR handles a few other characters differently
+ 1. U+10A7F ( 𐩿 ) [Po] OLD SOUTH ARABIAN NUMERIC INDICATOR is put with punctuation, not symbols
+ 2. U+20A8 ( ₨ ) [Sc] RUPEE SIGN and U+FDFC ( ﷼ ) [Sc] RIAL SIGN are put with currency signs, not with R and REH.
+
+### 2.2 <a name="non_variable_symbols" href="#non_variable_symbols">Non-variable symbols</a>
+
+There are multiple [Variable-Weighting](https://www.unicode.org/reports/tr10/#Variable_Weighting) options in the UCA for symbols and punctuation, including _non-ignorable_ and _shifted_. With the _shifted_ option, almost all symbols and punctuation are ignored—except at a fourth level. The CLDR root locale ordering is modified so that symbols are not affected by the _shifted_ option. That is, by default, symbols are not “variable” in CLDR. So _shifted_ only causes whitespace and punctuation to be ignored, but not symbols (like ♥). The DUCET behavior can be specified with a locale ID using the "kv" keyword, to set the Variable section to include all of the symbols below it, or be set parametrically where implementations allow access.
+
+See also:
+
+* _Section 3.3, [Setting Options](#Setting_Options)_
+* [https://www.unicode.org/charts/collation/](https://www.unicode.org/charts/collation/)
+
+### 2.3 <a name="tibetan_contractions" href="#tibetan_contractions">Additional contractions for Tibetan</a>
+
+Ten contractions are added for Tibetan: Two to fulfill [well-formedness condition 5](https://www.unicode.org/reports/tr10/#WF5), and eight more to preserve the default order for Tibetan. For details see _UTS #10, Section 3.8.2, [Well-Formedness of the DUCET](https://www.unicode.org/reports/tr10/#Well_Formed_DUCET)_.
+
+### 2.4 <a name="tailored_noncharacter_weights" href="#tailored_noncharacter_weights">Tailored noncharacter weights</a>
+
+U+FFFE and U+FFFF have special tailorings:
+
+> **U+FFFF:** This code point is tailored to have a primary weight higher than all other characters. This allows the reliable specification of a range, such as “Sch” ≤ X ≤ “Sch\\uFFFF”, to include all strings starting with "sch" or equivalent.
+>
+> **U+FFFE:** This code point produces a CE with minimal, unique weights on primary and identical levels. For details see the _[CLDR Collation Algorithm](#Algorithm_FFFE)_ above.
+
+UCA (beginning with version 6.3) also maps **U+FFFD** to a special collation element with a very high primary weight, so that it is reliably non-[variable](https://www.unicode.org/reports/tr10/#Variable_Weighting), for use with [ill-formed code unit sequences](https://www.unicode.org/reports/tr10/#Handling_Illformed).
+
+In CLDR, so as to maintain the special collation elements, **U+FFFD..U+FFFF** are not further tailorable, and nothing can tailor to them. That is, neither can occur in a collation rule. For example, the following rules are illegal:
+
+```
+&\uFFFF < x
+```
+
+```
+&x <\uFFFF
+```
+
+> :point_right: **Note**: Java uses an early version of this collation syntax, but has not been updated recently. It does not support any of the syntax marked with [...], and its default table is not the DUCET nor the CLDR root collation.
+
+### 2.5 <a name="Root_Data_Files" href="#Root_Data_Files">Root Collation Data Files</a>
+
+The CLDR root collation data files are in the CLDR repository and release, under the path [common/uca/](https://github.com/unicode-org/cldr/tree/latest/common/uca/).
+
+For most data files there are **\_SHORT** versions available. They contain the same data but only minimal comments, to reduce the file sizes.
+
+Comments with DUCET-style weights in files other than allkeys_CLDR.txt and allkeys_DUCET.txt use the weights defined in allkeys_CLDR.txt.
+
+* **allkeys_CLDR** - A file that provides a remapping of UCA DUCET weights for use with CLDR.
+* **allkeys_DUCET** - The same as DUCET allkeys.txt, but in alternate=non-ignorable sort order, for easier comparison with allkeys_CLDR.txt.
+* **FractionalUCA** - A file that provides a remapping of UCA DUCET weights for use with CLDR. The weight values are modified:
+ * The weights have variable length, with 1..4 bytes each. Each secondary or tertiary weight currently uses at most 2 bytes.
+ * There are tailoring gaps between adjacent weights, so that a number of characters can be tailored to sort between any two root collation elements.
+ * There are collation elements with primary weights at the boundaries between reordering groups and Unicode scripts, so that tailoring around the first or last primary of a group/script results in new collation elements that sort and reorder together with that group or script. These boundary weights also define the primary weight ranges for parametric group and script reordering.
+
+ An implementation may modify the weights further to fit the needs of its data structures.
+
+* **UCA_Rules** - A file that specifies the root collation order in the form of [tailoring rules](#Collation_Tailorings). This is only an approximation of the FractionalUCA data, since the rule syntax cannot express every detail of the collation elements. For example, in the DUCET and in FractionalUCA, tertiary differences are usually expressed with special tertiary weights on all collation elements of an expansion, while a typical from-rules builder will modify the tertiary weight of only one of the collation elements.
+* **CollationTest_CLDR** - The CLDR versions of the CollationTest files, which use the tailorings for CLDR. For information on the format, see [CollationTest.html](https://www.unicode.org/Public/UCA/latest/CollationTest.html) in the [UCA data directory](https://www.unicode.org/reports/tr10/#Data10).
+ * CollationTest_CLDR_NON_IGNORABLE.txt
+ * CollationTest_CLDR_SHIFTED.txt
+
+### 2.6 <a name="Root_Data_File_Formats" href="#Root_Data_File_Formats">Root Collation Data File Formats</a>
+
+The file formats may change between versions of CLDR. The formats for CLDR 23 and beyond are as follows. As usual, text after a # is a comment.
+
+#### 2.6.1 <a name="File_Format_allkeys_CLDR_txt" href="#File_Format_allkeys_CLDR_txt">allkeys_CLDR.txt</a>
+
+This file defines CLDR’s tailoring of the DUCET, as described in _Section 2, [Root Collation](#Root_Collation)_ .
+
+The format is similar to that of [allkeys.txt](https://www.unicode.org/reports/tr10/#File_Format), although there may be some differences in whitespace.
+
+#### 2.6.2 <a name="File_Format_FractionalUCA_txt" href="#File_Format_FractionalUCA_txt">FractionalUCA.txt</a>
+
+The format is illustrated by the following sample lines, with commentary afterwards.
+
+```
+[UCA version = 6.0.0]
+```
+
+Provides the version number of the UCA table.
+
+```
+[Unified_Ideograph 4E00..9FCC FA0E..FA0F FA11 FA13..FA14 FA1F FA21 FA23..FA24 FA27..FA29 3400..4DB5 20000..2A6D6 2A700..2B734 2B740..2B81D]
+```
+
+Lists the ranges of Unified_Ideograph characters in collation order. (New in CLDR 24.) They map to collation elements with [implicit (constructed) primary weights](https://www.unicode.org/reports/tr10/#Implicit_Weights).
+
+```
+[radical 6=⼅亅:亅𠄌了𠄍-𠄐亇𠄑予㐧𠄒-𠄔争𠀩𠄕亊𠄖-𠄘𪜜事㐨𠄙-𠄛𪜝𠄜𠄝]
+[radical 210=⿑齊:齊𪗄𪗅齋䶒䶓𪗆齌𠆜𪗇𪗈齍𪗉-𪗌齎𪗎𪗍齏𪗏-𪗓]
+[radical 210'=⻬齐:齐齑]
+[radical end]
+```
+
+Data for Unihan radical-stroke order. (New in CLDR 26.) Following the [Unified_Ideograph] line, a section of `[radical ...]` lines defines a radical-stroke order of the Unified_Ideograph characters.
+
+For Han characters, an implementation may choose either to implement the order defined in the UCA and the [Unified_Ideograph] data, or to implement the order defined by the `[radical ...]` lines. Beginning with CLDR 26, the CJK type="unihan" tailorings assume that the root collation order sorts Han characters in Unihan radical-stroke order according to the `[radical ...]` data. The CollationTest_CLDR files only contain Han characters that are in the same relative order using implicit weights or the radical-stroke order.
+
+The root collation radical-stroke order is derived from the first (normative) values of the [Unihan kRSUnicode](https://www.unicode.org/reports/tr38/#kRSUnicode) field for each Han character. Han characters are ordered by radical, with traditional forms sorting before simplified ones. Characters with the same radical are ordered by residual stroke count. Characters with the same radical-stroke values are ordered by block and code point, as for [UCA implicit weights](https://www.unicode.org/reports/tr10/#Implicit_Weights).
+
+There is one `[radical ...]` line per radical, in the order of radical numbers. Each line shows the radical number and the representative characters from the [UCD file CJKRadicals.txt](https://www.unicode.org/reports/tr44/#UCD_Files_Table), followed by a colon (“:”) and the Han characters with that radical in the order as described above. A range like `万-丌` indicates that the code points in that range sort in code point order.
+
+The radical number and characters are informational. The sort order is established only by the order of the `[radical ...]` lines, and within each line by the characters and ranges between the colon (“:”) and the bracket (“]”).
+
+Each Unified_Ideograph occurs exactly once. Only Unified_Ideograph characters are listed on `[radical ...]` lines.
+
+This section is terminated with one `[radical end]` line.
+
+```
+0000; [,,] # Zyyy Cc [0000.0000.0000] * <NULL>
+```
+
+Provides a weight line. The first element (before the ";") is a hex codepoint sequence. The second field is a sequence of collation elements. Each collation element has 3 parts separated by commas: the primary weight, secondary weight, and tertiary weight. The tertiary weight actually consists of two components: the top two bits (0xC0) are used for the _case level_, and should be masked off where a case level is not used.
+
+A weight is either empty (meaning a zero or ignorable weight) or is a sequence of one or more bytes. The bytes are interpreted as a "fraction", meaning that the ordering is 04 < 05 05 < 06. The weights are constructed so that no weight is an initial subsequence of another: that is, having both the weights 05 and 05 05 is illegal. The above line consists of all ignorable weights.
+
+The vertical bar (“|”) character is used to indicate context, as in:
+
+```
+006C | 00B7; [, DB A9, 05]
+```
+
+This example indicates that if U+00B7 appears immediately after U+006C, it is given the corresponding collation element instead. This syntax is roughly equivalent to the following contraction, but is more efficient. For details see the specification of _[Context-Sensitive Mappings](#Context_Sensitive_Mappings)_ above.
+
+```
+006C 00B7; CE(006C) [, DB A9, 05]
+```
+
+Single-byte primary weights are given to particularly frequent characters, such as space, digits, and a-z. More frequent characters are given two-byte weights, while relatively infrequent characters are given three-byte weights. For example:
+
+```
+...
+0009; [03 05, 05, 05] # Zyyy Cc [0100.0020.0002] * <CHARACTER TABULATION>
+...
+1B60; [06 14 0C, 05, 05] # Bali Po [0111.0020.0002] * BALINESE PAMENENG
+...
+0031; [14, 05, 05] # Zyyy Nd [149B.0020.0002] * DIGIT ONE
+```
+
+The assignment of 2 vs 3 bytes does not reflect importance, or exact frequency.
+
+```
+3041; [76 06, 05, 03] # Hira Lo [3888.0020.000D] * HIRAGANA LETTER SMALL A
+3042; [76 06, 05, 85] # Hira Lo [3888.0020.000E] * HIRAGANA LETTER A
+30A1; [76 06, 05, 10] # Kana Lo [3888.0020.000F] * KATAKANA LETTER SMALL A
+30A2; [76 06, 05, 9E] # Kana Lo [3888.0020.0011] * KATAKANA LETTER A
+```
+
+Beginning with CLDR 27, some primary or secondary collation elements may have below-common tertiary weights (e.g., `03` ), in particular to allow normal Hiragana letters to have common tertiary weights.
+
+```
+# SPECIAL MAX/MIN COLLATION ELEMENTS
+FFFE; [02, 05, 05] # Special LOWEST primary, for merge/interleaving
+FFFF; [EF FE, 05, 05] # Special HIGHEST primary, for ranges
+```
+
+The two tailored noncharacters have their own primary weights.
+
+```
+F967; [U+4E0D] # Hani Lo [FB40.0020.0002][CE0D.0000.0000] * CJK COMPATIBILITY IDEOGRAPH-F967
+2F02; [U+4E36, 10] # Hani So [FB40.0020.0004][CE36.0000.0000] * KANGXI RADICAL DOT
+2E80; [U+4E36, 70, 20] # Hani So [FB40.0020.0004][CE36.0000.0000][0000.00FC.0004] * CJK RADICAL REPEAT
+```
+
+Some collation elements are specified by reference to other mappings. This is particularly useful for Han characters which are given implicit/constructed primary weights; the reference to a Unified_Ideograph makes these mappings independent of implementation details. This technique may also be used in other mappings to show the relationship of character variants.
+
+The referenced character must have a mapping listed earlier in the file, or the mapping must have been defined via the [Unified_Ideograph] data line. The referenced character must map to exactly one collation element.
+
+`[U+4E0D]` copies U+4E0D’s entire collation element. `[U+4E36, 10]` copies U+4E36’s primary and secondary weights and specifies a different tertiary weight. `[U+4E36, 70, 20]` only copies U+4E36’s primary weight and specifies other secondary and tertiary weights.
+
+FractionalUCA.txt does not have any explicit mappings for implicit weights. Therefore, an implementation is free to choose an algorithm for computing implicit weights according to the principles specified in the UCA.
+
+```
+FDD1 20AC; [0D 20 02, 05, 05] # CURRENCY first primary
+FDD1 0034; [0E 02 02, 05, 05] # DIGIT first primary starts new lead byte
+FDD0 FF21; [26 02 02, 05, 05] # REORDER_RESERVED_BEFORE_LATIN first primary starts new lead byte
+FDD1 004C; [28 02 02, 05, 05] # LATIN first primary starts new lead byte
+FDD0 FF3A; [5D 02 02, 05, 05] # REORDER_RESERVED_AFTER_LATIN first primary starts new lead byte
+FDD1 03A9; [5F 04 02, 05, 05] # GREEK first primary starts new lead byte (compressible)
+FDD1 03E2; [5F 60 02, 05, 05] # COPTIC first primary (compressible)
+```
+
+These are special mappings with primaries at the boundaries of scripts and reordering groups. They serve as tailoring boundaries, so that tailoring near the first or last character of a script or group places the tailored item into the same group. Beginning with CLDR 24, each of these is a contraction of U+FDD1 with a character of the corresponding script (or of the General_Category [Z, P, S, Sc, Nd] corresponding to a special reordering group), mapping to the first possible primary weight per script or group. They can be enumerated for implementations of [Collation Indexes](#Collation_Indexes). (Earlier versions mapped contractions with U+FDD0 to the last primary weights of each group but not each script.)
+
+Beginning with CLDR 27, these mappings alone define the boundaries for reordering single scripts. (There are no mappings for Hrkt, Hans, or Hant because they are not fully distinct scripts; they share primary weights with other scripts: Hrkt=Hira=Kana & Hans=Hant=Hani.) There are some reserved ranges, beginning at boundaries marked with U+FDD0 plus following characters as shown above. The reserved ranges are not used for collation elements and are not available for tailoring.
+
+Some primary lead bytes must be reserved so that reordering of scripts along partial-lead-byte boundaries can “split” the primary lead byte and use up a reserved byte. This is for implementations that write sort keys, which must reorder primary weights by offsetting them by whole lead bytes. There are reorder-reserved ranges before and after Latin, so that reordering scripts with few primary lead bytes relative to Latin can move those scripts into the reserved ranges without changing the primary weights of any other script. Each of these boundaries begins with a new two-byte primary; that is, no two groups/scripts/ranges share the top 16 bits of their primary weights.
+
+```
+FDD0 0034; [11, 05, 05] # lead byte for numeric sorting
+```
+
+This mapping specifies the lead byte for numeric sorting. It must be different from the lead byte of any other primary weight, otherwise numeric sorting would generate ill-formed collation elements. Therefore, this mapping itself must be excluded from the set of regular mappings. This value can be ignored by implementations that do not support numeric sorting. (Other contractions with U+FDD0 can normally be ignored altogether.)
+
+```
+# HOMELESS COLLATION ELEMENTS
+FDD0 0063; [, 97, 3D] # [15E4.0020.0004] [1844.0020.0004] [0000.0041.001F] * U+01C6 LATIN SMALL LETTER DZ WITH CARON
+FDD0 0064; [, A7, 09] # [15D1.0020.0004] [0000.0056.0004] * U+1DD7 COMBINING LATIN SMALL LETTER C CEDILLA
+FDD0 0065; [, B1, 09] # [1644.0020.0004] [0000.0061.0004] * U+A7A1 LATIN SMALL LETTER G WITH OBLIQUE STROKE
+```
+
+The DUCET has some weights that don't correspond directly to a character. To allow for implementations to have a mapping for each collation element (necessary for certain implementations of tailoring), this requires the construction of special sequences for those weights. These collation elements can normally be ignored.
+
+Next, a number of tables are defined. The function of each of the tables is summarized afterwards.
+
+```
+# VALUES BASED ON UCA
+...
+[first regular [0D 0A, 05, 05]] # U+0060 GRAVE ACCENT
+[last regular [7A FE, 05, 05]] # U+1342E EGYPTIAN HIEROGLYPH AA032
+[first implicit [E0 04 06, 05, 05]] # CONSTRUCTED
+[last implicit [E4 DF 7E 20, 05, 05]] # CONSTRUCTED
+[first trailing [E5, 05, 05]] # CONSTRUCTED
+[last trailing [E5, 05, 05]] # CONSTRUCTED
+...
+```
+
+This table summarizes ranges of important groups of characters for implementations.
+
+```
+# Top Byte => Reordering Tokens
+[top_byte 00 TERMINATOR ] # [0] TERMINATOR=1
+[top_byte 01 LEVEL-SEPARATOR ] # [0] LEVEL-SEPARATOR=1
+[top_byte 02 FIELD-SEPARATOR ] # [0] FIELD-SEPARATOR=1
+[top_byte 03 SPACE ] # [9] SPACE=1 Cc=6 Zl=1 Zp=1 Zs=1
+...
+```
+
+This table defines the reordering groups, for script reordering. The table maps from the first bytes of the fractional weights to a reordering token. The format is "[top_byte " byte-value reordering-token "COMPRESS"? "]". The "COMPRESS" value is present when there is only one byte in the reordering token, and primary-weight compression can be applied. Most reordering tokens are script values; others are special-purpose values, such as PUNCTUATION. Beginning with CLDR 24, this table precedes the regular mappings, so that parsers can use this information while processing and optimizing mappings. Beginning with CLDR 27, most of this data is irrelevant because single scripts can be reordered. Only the "COMPRESS" data is still useful.
+
+```
+# Reordering Tokens => Top Bytes
+[reorderingTokens Arab 61=910 62=910 ]
+[reorderingTokens Armi 7A=22 ]
+[reorderingTokens Armn 5F=82 ]
+[reorderingTokens Avst 7A=54 ]
+...
+```
+
+This table is an inverse mapping from reordering token to top byte(s). In terms like "61=910", the first value is the top byte, while the second is informational, indicating the number of primaries assigned with that top byte.
+
+```
+# General Categories => Top Byte
+[categories Cc 03{SPACE}=6 ]
+[categories Cf 77{Khmr Tale Talu Lana Cham Bali Java Mong Olck Cher Cans Ogam Runr Orkh Vaii Bamu}=2 ]
+[categories Lm 0D{SYMBOL}=25 0E{SYMBOL}=22 27{Latn}=12 28{Latn}=12 29{Latn}=12 2A{Latn}=12...
+```
+
+This table is informational, providing the top bytes, scripts, and primaries associated with each general category value.
+
+```
+# FIXED VALUES
+[fixed first implicit byte E0]
+[fixed last implicit byte E4]
+[fixed first trail byte E5]
+[fixed last trail byte EF]
+[fixed first special byte F0]
+[fixed last special byte FF]
+
+[fixed secondary common byte 05]
+[fixed last secondary common byte 45]
+[fixed first ignorable secondary byte 80]
+
+[fixed tertiary common byte 05]
+[fixed first ignorable tertiary byte 3C]
+```
+
+The final table gives certain hard-coded byte values. The "trail" area is provided for implementation of the "trailing weights" as described in the UCA.
+
+> :point_right: **Note**: The particular primary lead bytes for Hani vs. IMPLICIT vs. TRAILING are only an example. An implementation is free to move them if it also moves the explicit TRAILING weights. This affects only a small number of explicit mappings in FractionalUCA.txt, such as for U+FFFD, U+FFFF, and the “unassigned first primary”. It is possible to use no SPECIAL bytes at all, and to use only the one primary lead byte FF for TRAILING weights.
+
+#### 2.6.3 <a name="File_Format_UCA_Rules_txt" href="#File_Format_UCA_Rules_txt">UCA_Rules.txt</a>
+
+The format for this file uses the CLDR collation syntax, see _Section 3, [Collation Tailorings](#Collation_Tailorings)_.
+
+## 3 <a name="Collation_Tailorings" href="#Collation_Tailorings">Collation Tailorings</a>
+
+```xml
+<!ELEMENT collations (alias | (defaultCollation?, collation*, special*)) >
+
+<!ELEMENT defaultCollation ( #PCDATA ) >
+```
+
+This element of the LDML format contains one or more `collation` elements, distinguished by type. Each `collation` contains elements with parametric settings, or rules that specify a certain sort order, as a tailoring of the root order, or both.
+
+> :point_right: **Note**: CLDR collation tailoring data should follow the [CLDR Collation Guidelines](http://cldr.unicode.org/index/cldr-spec/collation-guidelines).
+
+### 3.1 <a name="Collation_Types" href="#Collation_Types">Collation Types</a>
+
+Each locale may have multiple sort orders (types). The `defaultCollation` element defines the default tailoring for a locale and its sublocales. For example:
+
+* root.xml: `<defaultCollation>standard</defaultCollation>`
+* zh.xml: `<defaultCollation>pinyin</defaultCollation>`
+* zh_Hant.xml: `<defaultCollation>stroke</defaultCollation>`
+
+To allow implementations in reduced memory environments to use CJK sorting, there are also short forms of each of these collation sequences. These provide for the most common characters in common use, and are marked with `alt="short"`.
+
+A collation type name that starts with "private-", for example, "private-kana", indicates an incomplete tailoring that is only intended for import into one or more other tailorings (usually for sharing common rules). It does not establish a complete sort order. An implementation should not build data tables for a private collation type, and should not include a private collation type in a list of available types.
+
+> :point_right: **Note**: There is an on-line demonstration of collation at [[LocaleExplorer](tr35.md#LocaleExplorer)] that uses the same rule syntax. (Pick the locale and scroll to "Collation Rules", near the end.)
+> :point_right: **Note**: In CLDR 23 and before, LDML collation files used an XML format. Starting with CLDR 24, the XML collation syntax is deprecated and no longer used. See the _[CLDR 23 version of this document](https://www.unicode.org/reports/tr35/tr35-31/tr35-collation.md#Collation_Tailorings)_ for details about the XML collation syntax.
+
+#### 3.1.1 <a name="Collation_Type_Fallback" href="#Collation_Type_Fallback">Collation Type Fallback</a>
+
+When loading a requested tailoring from its data file and the parent file chain, use the following type fallback to find the tailoring.
+
+1. Determine the default type from the `<defaultCollation>` element; map the default type to its alias if one is defined. If there is no `<defaultCollation>` element, then use "standard" as the default type.
+2. If the request language tag specifies the collation type (keyword "co"), then map it to its alias if one is defined (e.g., "-co-phonebk" → "phonebook"). If the language tag does not specify the type, then use the default type.
+3. Use the `<collation>` element with this type.
+4. If it does not exist, and the type starts with "search" but is longer, then set the type to "search" and use that `<collation>` element. (For example, "searchjl" → "search".)
+5. If it does not exist, and the type is not the default type, then set the type to the default type and use that `<collation>` element.
+6. If it does not exist, and the type is not "standard", then set the type to "standard" and use that `<collation>` element.
+7. If it does not exist, then use the CLDR root collation.
+
+> :point_right: **Note**: that the CLDR collation/root.xml contains `<defaultCollation>standard</defaultCollation>`, `<collation type="standard">` (with an empty tailoring, so this is the same as the CLDR root collation), and `<collation type="search">`.
+
+For example, assume that we have collation data for the following tailorings. ("da/search" is shorthand for "da-u-co-search".)
+
+* root/defaultCollation=standard
+* root/standard (this is the same as “the CLDR root collator”)
+* root/search
+* da/standard
+* da/search
+* el/standard
+* ko/standard
+* ko/search
+* ko/searchjl
+* zh/defaultCollation=pinyin
+* zh/pinyin
+* zh/stroke
+* zh-Hant/defaultCollation=stroke
+
+##### <a name="Sample_requested_and_actual_collation_locales_and_types" href="#Sample_requested_and_actual_collation_locales_and_types">Sample requested and actual collation locales and types</a>
+
+| requested | actual | comment |
+| ----------------- | ------------- | ------- |
+| da/phonebook | da/standard | default type for Danish |
+| zh | zh/pinyin | default type for zh |
+| zh/standard | root/standard | no "standard" tailoring for zh, falls back to root |
+| zh/phonebook | zh/pinyin | default type for zh |
+| zh-Hant/phonebook | zh/stroke | default type for zh-Hant is "stroke" |
+| da/searchjl | da/search | "search.+" falls back to "search" |
+| el/search | root/search | no "search" tailoring for Greek |
+| el/searchjl | root/search | "search.+" falls back to "search", found in root |
+| ko/searchjl | ko/searchjl | requested data is actually available |
+
+### 3.2 <a name="Collation_Version" href="#Collation_Version">Version</a>
+
+The `version` attribute is used in case a specific version of the UCA is to be specified. It is optional, and is specified if the results are to be identical on different systems. If it is not supplied, then the version is assumed to be the same as the Unicode version for the system as a whole.
+
+> :point_right: **Note**: For version 3.1.1 of the UCA, the version of Unicode must also be specified with any versioning information; an example would be "3.1.1/3.2" for version 3.1.1 of the UCA, for version 3.2 of Unicode. This was changed by decision of the UTC, so that dual versions were no longer necessary. So for UCA 4.0 and beyond, the version just has a single number.
+
+### 3.3 <a name="Collation_Element" href="#Collation_Element">Collation Element</a>
+
+```xml
+<!ELEMENT collation (alias | (cr*, special*)) >
+```
+
+The tailoring syntax is designed to be independent of the actual weights used in any particular UCA table. That way the same rules can be applied to UCA versions over time, even if the underlying weights change. The following illustrates the overall structure of a collation:
+
+```xml
+<collation type="phonebook">
+ <cr><![CDATA[
+ [caseLevel on]
+ &c < k
+ ]]></cr>
+</collation>
+```
+
+### 3.4 <a name="Setting_Options" href="#Setting_Options">Setting Options</a>
+
+Parametric settings can be specified in language tags or in rule syntax (in the form `[keyword value]` ). For example, `-ks-level2` or `[strength 2]` will only compare strings based on their primary and secondary weights.
+
+If a setting is not present, the CLDR default (or the default for the locale, if there is one) is used. That default is listed in bold italics. Where there is a UCA default that is different, it is listed in bold with (**UCA default**). Note that the default value for a locale may be different than the normal default value for the setting.
+
+##### <a name="Collation_Settings" href="#Collation_Settings">Collation Settings</a>
+
+<table><tbody>
+<tr><th>BCP47 Key</th><th>BCP47 Value</th><th>Rule Syntax</th><th>Description</th></tr>
+
+<tr><td rowspan="5">ks</td><td>level1</td><td><code>[strength 1]</code><br/>(primary)</td>
+ <td rowspan="5">Sets the default strength for comparison, as described in the [<a href="https://www.unicode.org/reports/tr41/#UTS10">UCA</a>]. <i>Note that a strength setting of greater than 4 may have the same effect as <b>identical</b>, depending on the locale and implementation.</i></td></tr>
+<tr><td>level2</td><td><code>[strength 2]</code><br/>(secondary)</td></tr>
+<tr><td>level3</td><td><i><b><code>[strength 3]</code><br/>(tertiary)</b></i></td></tr>
+<tr><td>level4</td><td><code>[strength 4]</code><br/>(quaternary)</td></tr>
+<tr><td>identic</td><td><code>[strength I]</code><br/>(identical)</td></tr>
+
+<tr><td rowspan="3">ka</td><td>noignore</td><td><i><b><code>[alternate non-ignorable]</code></b></i><br/></td>
+ <td rowspan="3">Sets alternate handling for variable weights, as described in [<a href="https://www.unicode.org/reports/tr41/#UTS10">UCA</a>], where "shifted" causes certain characters to be ignored in comparison. <i>The default for LDML is different than it is in the UCA. In LDML, the default for alternate handling is <b>non-ignorable</b>, while in UCA it is <b>shifted</b>. In addition, in LDML only whitespace and punctuation are variable by default.</i></td></tr>
+<tr><td>shifted</td><td><b><code>[alternate shifted]</code><br/>(UCA default)</b></td></tr>
+<tr><td><i>n/a</i></td><td><i>n/a</i><br/>(blanked)</td></tr>
+
+<tr><td rowspan="2">kb</td><td>true</td><td><code>[backwards 2]</code></td>
+ <td rowspan="2">Sets the comparison for the second level to be <b>backwards</b>, as described in [<a href="https://www.unicode.org/reports/tr41/#UTS10">UCA</a>].</td></tr>
+<tr><td>false</td><td><i><b>n/a</b></i></td></tr>
+
+<tr><td rowspan="2">kk</td><td>true</td><td><b><code>[normalization on]</code><br/>(UCA default)</b></td>
+ <td rowspan="2">If <b>on</b>, then the normal [<a href="https://www.unicode.org/reports/tr41/#UTS10">UCA</a>] algorithm is used. If <b>off</b>, then most strings should still sort correctly despite not normalizing to NFD first.<br/><i>Note that the default for CLDR locales may be different than in the UCA. The rules for particular locales have it set to <b>on</b>: those locales whose exemplar characters (in forms commonly interchanged) would be affected by normalization.</i></td></tr>
+<tr><td>false</td><td><i><b><code>[normalization off]</code></b></i></td></tr>
+
+<tr><td rowspan="2">kc</td><td>true</td><td><code>[caseLevel on]</code></td>
+ <td rowspan="2">If set to <b>on</b><i>,</i> a level consisting only of case characteristics will be inserted in front of tertiary level, as a "Level 2.5". To ignore accents but take case into account, set strength to <b>primary</b> and case level to <b>on</b>. For details, see <i>Section 3.14, <a href="#Case_Parameters">Case Parameters</a></i> .</td></tr>
+<tr><td>false</td><td><i><b><code>[caseLevel off]</code></b></i></td></tr>
+
+<tr><td rowspan="3">kf</td><td>upper</td><td><code>[caseFirst upper]</code></td>
+ <td rowspan="3">If set to <b>upper</b>, causes upper case to sort before lower case. If set to <b>lower</b>, causes lower case to sort before upper case. Useful for locales that have already supported ordering but require different order of cases. Affects case and tertiary levels. For details, see <i>Section 3.14, <a href="#Case_Parameters">Case Parameters</a></i> .</td></tr>
+<tr><td>lower</td><td><code>[caseFirst lower]</code></td></tr>
+<tr><td>false</td><td><i><b><code>[caseFirst off]</code></b></i></td></tr>
+
+<tr><td rowspan="2">kh</td><td>true<br/><i><b>Deprecated:</b></i> Use rules with quater­nary relations instead.</td><td><code>[hiraganaQ on]</code></td>
+ <td rowspan="2">Controls special treatment of Hiragana code points on quaternary level. If turned <b>on</b>, Hiragana codepoints will get lower values than all the other non-variable code points in <b>shifted</b>. That is, the normal Level 4 value for a regular collation element is FFFF, as described in [<a href="https://www.unicode.org/reports/tr41/#UTS10">UCA</a>], <i>Section 3.6, <a href="https://www.unicode.org/reports/tr10/#Variable_Weighting">Variable Weighting</a></i> . This is changed to FFFE for [:script=Hiragana:] characters. The strength must be greater or equal than quaternary if this attribute is to have any effect.</td></tr>
+<tr><td>false</td><td><i><b><code>[hiraganaQ off]</code></b></i></td></tr>
+
+<tr><td rowspan="2">kn</td><td>true</td><td><code>[numericOrdering on]</code></td>
+ <td rowspan="2">If set to <b>on</b>, any sequence of Decimal Digits (General_Category = Nd in the [<a href="https://www.unicode.org/reports/tr41/#UAX44">UAX44</a>]) is sorted at a primary level with its numeric value. For example, "A-21" < "A-123". The computed primary weights are all at the start of the <b>digit</b> reordering group. Thus with an untailored UCA table, "a$" < "a0" < "a2" < "a12" < "a⓪" < "aa".</td></tr>
+<tr><td>false</td><td><i><b><code>[numericOrdering off]</code></b></i></td></tr>
+
+<tr><td>kr</td><td>a sequence of one or more reorder codes: <b>space, punct, symbol, currency, digit</b>, or any BCP47 script ID</td><td><code>[reorder Grek digit]</code></td>
+ <td>Specifies a reordering of scripts or other significant blocks of characters such as symbols, punctuation, and digits. For the precise meaning and usage of the reorder codes, see <i>Section 3.13, <a href="#Script_Reordering">Collation Reordering</a>.</i></td></tr>
+
+<tr><td rowspan="4">kv</td><td>space</td><td><code>[maxVariable space]</code></td>
+ <td rowspan="4">Sets the variable top to the top of the specified reordering group. All code points with primary weights less than or equal to the variable top will be considered variable, and thus affected by the alternate handling. Variables are ignorable by default in [<a href="https://www.unicode.org/reports/tr41/#UTS10">UCA</a>], but not in CLDR.</td></tr>
+<tr><td>punct</td><td><i><b><code>[maxVariable punct]</code></b></i></td></tr>
+<tr><td>symbol</td><td><b><code>[maxVariable symbol]</code><br/>(UCA default)</b></td></tr>
+<tr><td>currency</td><td><code>[maxVariable currency]</code></td></tr>
+<tr><td>vt</td><td>See <i>Part 1 Section 3.6.4, <a href="tr35.md#Unicode_Locale_Extension_Data_Files">U Extension Data Files</a></i>.<br/><i><b>Deprecated:</b></i> Use maxVariable instead.</td><td><code>&\u00XX\uYYYY < [variable top]</code><br/><br/>(the default is set to the highest punctuation, thus including spaces and punctuation, but not symbols)</td>
+ <td>The BCP47 value is described in <i>Appendix Q: <a href="tr35.md#Locale_Extension_Key_and_Type_Data">Locale Extension Keys and Types</a>.</i><br/><br/>Sets the string value for the variable top. All the code points with primary weights less than or equal to the variable top will be considered variable, and thus affected by the alternate handling.<br/>An implementation that supports the variableTop setting should also support the maxVariable setting, and it should "pin" ("round up") the variableTop to the top of the containing reordering group.<br/>Variables are ignorable by default in [<a href="https://www.unicode.org/reports/tr41/#UTS10">UCA</a>], but not in CLDR. See below for more information.</td></tr>
+
+<tr><td><i>n/a</i></td><td><i>n/a</i></td><td><i>n/a</i></td>
+ <td>match-boundaries: <i><b>none</b></i> | whole-character | whole-word<br/>Defined by <i>Section 8, <a href="https://www.unicode.org/reports/tr10/#Searching">Searching and Matching</a></i> of [<a href="https://www.unicode.org/reports/tr41/#UTS10">UCA</a>].</td></tr>
+<tr><td><i>n/a</i></td><td><i>n/a</i></td><td><i>n/a</i></td>
+ <td>match-style: <i><b>minimal</b></i> | medial | maximal<br/>Defined by <i>Section 8, <a href="https://www.unicode.org/reports/tr10/#Searching">Searching and Matching</a></i> of [<a href="https://www.unicode.org/reports/tr41/#UTS10">UCA</a>].</td></tr>
+</tbody></table>
+
+#### 3.4.1 <a name="Common_Settings" href="#Common_Settings">Common settings combinations</a>
+
+Some commonly used parametric collation settings are available via combinations of LDML settings attributes:
+
+* “Ignore accents”: **strength=primary**
+* “Ignore accents” but take case into account: **strength=primary caseLevel=on**
+* “Ignore case”: **strength=secondary**
+* “Ignore punctuation” (completely): **strength=tertiary alternate=shifted**
+* “Ignore punctuation” but distinguish among punctuation marks: **strength=quaternary alternate=shifted**
+
+#### 3.4.2 <a name="Normalization_Setting" href="#Normalization_Setting">Notes on the normalization setting</a>
+
+The UCA always normalizes input strings into NFD form before the rest of the algorithm. However, this results in poor performance.
+
+With **normalization=off**, strings that are in [[FCD](tr35.md#FCD)] and do not contain Tibetan precomposed vowels (U+0F73, U+0F75, U+0F81) should sort correctly. With **normalization=on**, an implementation that does not normalize to NFD must at least perform an incremental FCD check and normalize substrings as necessary. It should also always decompose the Tibetan precomposed vowels. (Otherwise discontiguous contractions across their leading components cannot be handled correctly.)
+
+Another complication for an implementation that does not always use NFD arises when contraction mappings overlap with canonical Decomposition_Mapping strings. For example, the Danish contraction “aa” overlaps with the decompositions of ‘ä’, ‘å’, and other characters. In the root collation (and in the DUCET), Cyrillic ‘ӛ’ maps to a single collation element, which means that its decomposition “ә+◌̈” forms a contraction, and its second character (U+0308) is the same as the first character in the Decomposition_Mapping of U+0344 ‘◌̈́’=“◌̈+◌́”.
+
+In order to handle strings with these characters (e.g., “aä” and “ӛ́” [which are in FCD]) exactly as with prior NFD normalization, an implementation needs to either add overlap contractions to its data (e.g., “a+ä” and “ә+◌̈́”), or it needs to decompose the relevant composites (e.g., ‘ä’ and ‘◌̈́’) as soon as they are encountered.
+
+#### 3.4.3 <a name="Variable_Top_Settings" href="#Variable_Top_Settings">Notes on variable top settings</a>
+
+Users may want to include more or fewer characters as Variable. For example, someone could want to restrict the Variable characters to just include space marks. In that case, maxVariable would be set to "space". (In CLDR 24 and earlier, the now-deprecated variableTop would be set to U+1680, see the “Whitespace” [UCA collation chart](https://unicode.org/charts/collation/)). Alternatively, someone could want more of the Common characters in them, and include characters up to (but not including) '0', by setting maxVariable to "currency". (In CLDR 24 and earlier, the now-deprecated variableTop would be set to U+20BA, see the “Currency-Symbol” collation chart).
+
+The effect of these settings is to customize to ignore different sets of characters when comparing strings. For example, the locale identifier "de-u-ka-shifted-kv-currency" is requesting settings appropriate for German, including German sorting conventions, and that currency symbols and characters sorting below them are ignored in sorting.
+
+### 3.5 <a name="Rules" href="#Rules">Collation Rule Syntax</a>
+
+```xml
+<!ELEMENT cr #PCDATA >
+```
+
+The goal for the collation rule syntax is to have clearly expressed rules with a concise format. The CLDR rule syntax is a subset of the [[ICUCollation](tr35.md#ICUCollation)] syntax.
+
+For the CLDR root collation, the FractionalUCA.txt file defines all mappings for all of Unicode directly, and it also provides information about script boundaries, reordering groups, and other details. For tailorings, this is neither necessary nor practical. In particular, while the root collation sort order rarely changes for existing characters, their numeric collation weights change with every version. If tailorings also specified numeric weights directly, then they would have to change with every version, parallel with the root collation. Instead, for tailorings, mappings are added and modified relative to the root collation. (There is no syntax to _remove_ mappings, except via [special \[suppressContractions \[...\]\]](#Special_Purpose_Commands) .)
+
+The ASCII [:P:] and [:S:] characters are reserved for collation syntax: `[\u0021-\u002F \u003A-\u0040 \u005B-\u0060 \u007B-\u007E]`
+
+Unicode Pattern_White_Space characters between tokens are ignored. Unquoted white space terminates reset and relation strings.
+
+A pair of ASCII apostrophes encloses quoted literal text. They are normally used to enclose a syntax character or white space, or a whole reset/relation string containing one or more such characters, so that those are parsed as part of the reset/relation strings rather than treated as syntax. A pair of immediately adjacent apostrophes is used to encode one apostrophe.
+
+Code points can be escaped with `\uhhhh` and `\U00hhhhhh` escapes, as well as common escapes like `\t` and `\n` . (For details see the documentation of ICU `UnicodeString::unescape()`.) This is particularly useful for default-ignorable code points, combining marks, visually indistinct variants, hard-to-type characters, etc. These sequences are unescaped before the rules are parsed; this means that even escaped syntax and white space characters need to be enclosed in apostrophes. For example: `&'\u0020'='\u3000'`. Note: The unescaping is done by ICU tools (genrb) and demos before passing rule strings into the ICU library code. The ICU collation API does not unescape rule strings.
+
+The ASCII double quote must be both escaped (so that the collation syntax can be enclosed in pairs of double quotes in programming environments such as ICU resource bundle .txt files) and quoted. For example: `&'\u0022'<<<x`
+
+Comments are allowed at the beginning, and after any complete reset, relation, setting, or command. A comment begins with a `#` and extends to the end of the line (according to the Unicode Newline Guidelines).
+
+The collation syntax is case-sensitive.
+
+### 3.6 <a name="Orderings" href="#Orderings">Orderings</a>
+
+The root collation mappings form the initial state. Mappings are added and removed via a sequence of rule chains. Each tailoring rule builds on the current state after all of the preceding rules (and is not affected by any following rules). Rule chains may alternate with comments, settings, and special commands.
+
+A rule chain consists of a reset followed by one or more relations. The reset position is a string which maps to one or more collation elements according to the current state. A relation consists of an operator and a string; it maps the string to the current collation elements, modified according to the operator.
+
+##### <a name="Specifying_Collation_Ordering" href="#Specifying_Collation_Ordering">Specifying Collation Ordering</a>
+
+| Relation Operator | Example | Description |
+| ----------------- | ------- | ----------- |
+| `&` | `& Z` | Map Z to collation elements according to the current state. These will be modified according to the following relation operators and then assigned to the corresponding relation strings. |
+| `<` | `& a`<br/>`< b` | Make 'b' sort after 'a', as a _primary_ (base-character) difference |
+| `<<` | `& a`<br/>`<< ä` | Make 'ä' sort after 'a' as a _secondary_ (accent) difference |
+| `<<<` | `& a`<br/>`<<< A` | Make 'A' sort after 'a' as a _tertiary_ (case/variant) difference |
+| `<<<<` | `& か`<br/>`<<<< カ` | Make 'カ' (Katakana Ka) sort after 'か' (Hiragana Ka) as a _quaternary_ difference |
+| `=` | `& v`<br/>`= w` | Make 'w' sort _identically_ to 'v' |
+
+The following shows the result of serially applying three rules.
+
+| | Rules | Result | Comment |
+| --- | ----------- | ---------------------------- | ------- |
+| 1 | & a < g | ... a **<₁ g** ... | Put g after a. |
+| 2 | & a < h < k | ... a **<₁ h <₁ k** <₁ g ... | Now put h and k after a (inserting before the g). |
+| 3 | & h << g | ... a <₁ h **<₁ g** <₁ k ... | Now put g after h (inserting before k). |
+
+Notice that relation strings can occur multiple times, and thus override previous rules.
+
+Each relation uses and modifies the collation elements of the immediately preceding reset position or relation. A rule chain with two or more relations is equivalent to a sequence of “atomic rules” where each rule chain has exactly one relation, and each relation is followed by a reset to this same relation string.
+
+_Example:_
+
+| Rules | Equivalent Atomic Rules |
+| ---------------------------------------------- | ----------------------- |
+| & b < q <<< Q<br/>& a < x <<< X << q <<< Q < z | & b < q<br/>& q <<< Q<br/>& a < x<br/>& x <<< X<br/>& X << q<br/>& q <<< Q<br/>& Q < z |
+
+This is not always possible because prefix and extension strings can occur in a relation but not in a reset (see below).
+
+The relation operator `=` maps its relation string to the current collation elements. Any other relation operator modifies the current collation elements as follows.
+
+* Find the _last_ collation element whose strength is at least as great as the strength of the operator. For example, for `<<` find the last primary or secondary CE. This CE will be modified; all following CEs should be removed. If there is no such CE, then reset the collation elements to a single completely-ignorable CE.
+* Increment the collation element weight corresponding to the strength of the operator. For example, for `<<` increment the secondary weight.
+* The new weight must be less than the next weight for the same combination of higher-level weights of any collation element according to the current state.
+* Weights must be allocated in accordance with the [UCA well-formedness conditions](https://www.unicode.org/reports/tr10/#Well-Formed).
+* When incrementing any weight, lower-level weights should be reset to the “common” values, to help with sort key compression.
+
+In all cases, even for `=` , the case bits are recomputed according to _Section 3.13, [Case Parameters](#Case_Parameters)_. (This can be skipped if an implementation does not support the caseLevel or caseFirst settings.)
+
+For example, `&ae<x` maps ‘x’ to two collation elements. The first one is the same as for ‘a’, and the second one has a primary weight between those for ‘e’ and ‘f’. As a result, ‘x’ sorts between “ae” and “af”. (If the primary of the first collation element was incremented instead, then ‘x’ would sort after “az”. While also sorting primary-after “ae” this would be surprising and sub-optimal.)
+
+Some additional operators are provided to save space with large tailorings. The addition of a * to the relation operator indicates that each of the following single characters are to be handled as if they were separate relations with the corresponding strength. Each of the following single characters must be NFD-inert, that is, it does not have a canonical decomposition and it does not reorder (ccc=0). This keeps abbreviated rules unambiguous.
+
+A starred relation operator is followed by a sequence of characters with the same quoting/escaping rules as normal relation strings. Such a sequence can also be followed by one or more pairs of ‘-’ and another sequence of characters. The single characters adjacent to the ‘-’ establish a code point order range. The same character cannot be both the end of a range and the start of another range. (For example, `<a-d-g` is not allowed.)
+
+##### <a name="Abbreviating_Ordering_Specifications" href="#Abbreviating_Ordering_Specifications">Abbreviating Ordering Specifications</a>
+
+| Relation Operator | Example | Equivalent |
+| ----------------- | ----------------------- | ---------- |
+| `<*` | `& a`<br/>`<* bcd-gp-s` | `& a`<br/>`< b < c < d < e < f < g < p < q < r < s` |
+| `<<*` | `& a`<br/>`<<* æᶏɐ` | `& a`<br/>`<< æ << ᶏ << ɐ` |
+| `<<<*` | `& p`<br/>`<<<* PpP` | `& p`<br/>`<<< P <<< p <<< P` |
+| `<<<<*` | `& k`<br/>`<<<<* qQ` | `& k`<br/>`<<<< q <<<< Q` |
+| `=*` | `& v`<br/>`=* VwW` | `& v`<br/>`= V = w = W` |
+
+### 3.7 <a name="Contractions" href="#Contractions">Contractions</a>
+
+A multi-character relation string defines a contraction.
+
+##### <a name="Specifying_Contractions" href="#Specifying_Contractions">Specifying Contractions</a>
+
+| Example | Description |
+| ---------------- | ----------- |
+| `& k`<br/>`< ch` | Make the sequence 'ch' sort after 'k', as a primary (base-character) difference |
+
+### 3.8 <a name="Expansions" href="#Expansions">Expansions</a>
+
+A mapping to multiple collation elements defines an expansion. This is normally the result of a reset position (and/or preceding relation) that yields multiple collation elements, for example `&ae<x` or `&æ<y` .
+
+A relation string can also be followed by `/` and an _extension string_. The extension string is mapped to collation elements according to the current state, and the relation string is mapped to the concatenation of the regular CEs and the extension CEs. The extension CEs are not modified, not even their case bits. The extension CEs are _not_ retained for following relations.
+
+For example, `&a<z/e` maps ‘z’ to an expansion similar to `&ae<x` . However, the first CE of ‘z’ is primary-after that of ‘a’, and the second CE is exactly that of ‘e’, which yields the order ae < x < af < ag < ... < az < z < b.
+
+The choice of reset-to-expansion vs. use of an extension string can be exploited to affect contextual mappings. For example, `&L·=x` yields a second CE for ‘x’ equal to the context-sensitive middle-dot-after-L (which is a secondary CE in the root collation). On the other hand, `&L=x/·` yields a second CE of the middle dot by itself (which is a primary CE).
+
+The two ways of specifying expansions also differ in how case bits are computed. When some of the CEs are copied verbatim from an extension string, then the relation string’s case bits are distributed over a smaller number of normal CEs. For example, `&aE=Ch` yields an uppercase CE and a lowercase CE, but `&a=Ch/E` yields a mixed-case CE (for ‘C’ and ‘h’ together) followed by an uppercase CE (copied from ‘E’).
+
+In summary, there are two ways of specifying expansions which produce subtly different mappings. The use of extension strings is unusual but sometimes necessary.
+
+### 3.9 <a name="Context_Before" href="#Context_Before">Context Before</a>
+
+A relation string can have a prefix (context before) which makes the mapping from the relation string to its tailored position conditional on the string occurring after that prefix. For details see the specification of _[Context-Sensitive Mappings](#Context_Sensitive_Mappings)_.
+
+For example, suppose that "-" is sorted like the previous vowel. Then one could have rules that take "a-", "e-", and so on. However, that means that every time a very common character (a, e, ...) is encountered, a system will slow down as it looks for possible contractions. An alternative is to indicate that when "-" is encountered, and it comes after an 'a', it sorts like an 'a', and so on.
+
+##### <a name="Specifying_Previous_Context" href="#Specifying_Previous_Context">Specifying Previous Context</a>
+
+| Rules |
+| ----- |
+| `& a <<< a \| '-'`<br/>`& e <<< e \| '-'`<br/>`...` |
+
+Both the prefix and extension strings can occur in a relation. For example, the following are allowed:
+
+* `< abc | def / ghi`
+* `< def / ghi`
+* `< abc | def`
+
+### 3.10 <a name="Placing_Characters_Before_Others" href="#Placing_Characters_Before_Others">Placing Characters Before Others</a>
+
+There are certain circumstances where characters need to be placed before a given character, rather than after. This is the case with Pinyin, for example, where certain accented letters are positioned before the base letter. That is accomplished with the following syntax.
+
+`&[before 2] a << à`
+
+The before-strength can be 1 (primary), 2 (secondary), or 3 (tertiary).
+
+It is an error if the strength of the reset-before differs from the strength of the immediately following relation. Thus the following are errors.
+
+* `&[before 2] a < à # error`
+* `&[before 2] a <<< à # error`
+
+### 3.11 <a name="Logical_Reset_Positions" href="#Logical_Reset_Positions">Logical Reset Positions</a>
+
+The CLDR table (based on UCA) has the following overall structure for weights, going from low to high.
+
+##### <a name="Specifying_Logical_Positions" href="#Specifying_Logical_Positions">Specifying Logical Positions</a>
+
+| Name | Description | UCA Examples |
+| -------------------------------------------------------------- | ---------------- | ------------ |
+| first tertiary ignorable<br/>...<br/>last tertiary ignorable | p, s, t = ignore | Control Codes<br/>Format Characters<br/>Hebrew Points<br/>Tibetan Signs<br/>... |
+| first secondary ignorable<br/>...<br/>last secondary ignorable | p, s = ignore | None in UCA |
+| first primary ignorable<br/>...<br/>last primary ignorable | p = ignore | Most combining marks |
+| first variable<br/>...<br/>last variable | _**if** alternate = non-ignorable<br/>_p != ignore,<br/>_**if** alternate = shifted_<br/>p, s, t = ignore | Whitespace,<br/>Punctuation |
+| first regular<br/>...<br/>last regular | p != ignore | General Symbols<br/>Currency Symbols<br/>Numbers<br/>Latin<br/>Greek<br/>... |
+| first implicit<br/>...<br/>last implicit | p != ignore, assigned automatically | CJK, CJK compatibility (those that are not decomposed)<br/>CJK Extension A, B, C, ...<br/>Unassigned |
+| first trailing<br/>...<br/>last trailing | p != ignore,<br/>used for trailing syllable components | Jamo Trailing<br/>Jamo Leading<br/>U+FFFD<br/>U+FFFF |
+
+Each of the above Names can be used with a reset to position characters relative to that logical position. That allows characters to be ordered before or after a _logical_ position rather than a specific character.
+
+> :point_right: **Note**: The reason for this is so that tailorings can be more stable. A future version of the UCA might add characters at any point in the above list. Suppose that you set character X to be after Y. It could be that you want X to come after Y, no matter what future characters are added; or it could be that you just want Y to come after a given logical position, for example, after the last primary ignorable.
+
+Each of these special reset positions always maps to a single collation element.
+
+Here is an example of the syntax:
+
+`& [first tertiary ignorable] << à`
+
+For example, to make a character be a secondary ignorable, one can make it be immediately after (at a secondary level) a specific character (like a combining diaeresis), or one can make it be immediately after the last secondary ignorable.
+
+Each special reset position adjusts to the effects of preceding rules, just like normal reset position strings. For example, if a tailoring rule creates a new collation element after `&[last variable]` (via explicit tailoring after that, or via tailoring after the relevant character), then this new CE becomes the new _last variable_ CE, and is used in following resets to `[last variable]` .
+
+[first variable] and [first regular] and [first trailing] should be the first real such CEs (e.g., CE(U+0060 \`)), as adjusted according to the tailoring, not the boundary CEs (see the FractionalUCA.txt “first primary” mappings starting with U+FDD1).
+
+`[last regular]` is not actually the last normal CE with a primary weight before implicit primaries. It is used to tailor large numbers of characters, usually CJK, into the script=Hani range between the last regular script and the first implicit CE. (The first group of implicit CEs is for Han characters.) Therefore, `[last regular]` is set to the first Hani CE, the artificial script boundary CE at the beginning of this range. For example: `&[last regular]<*亜唖娃阿...`
+
+The [last trailing] is the CE of U+FFFF. Tailoring to that is not allowed.
+
+The `[last variable]` indicates the "highest" character that is treated as punctuation with alternate handling.
+
+The value can be changed by using the maxVariable setting. This takes effect, however, after the rules have been built, and does not affect any characters that are reset relative to the `[last variable]` value when the rules are being built. The maxVariable setting might also be changed via a runtime parameter. That also does not affect the rules.
+(In CLDR 24 and earlier, the variable top could also be set by using a tailoring rule with `[variable top]` in the place of a relation string.)
+
+### 3.12 <a name="Special_Purpose_Commands" href="#Special_Purpose_Commands">Special-Purpose Commands</a>
+
+The import command imports rules from another collation. This allows for better maintenance and smaller rule sizes. The source is a BCP 47 language tag with an optional collation type but without other extensions. The collation type is the BCP 47 form of the collation type in the source; it defaults to "standard".
+
+_Examples:_
+
+* `[import de-u-co-phonebk]` (not "...-co-phonebook")
+* `[import und-u-co-search]` (not "root-...")
+* `[import ja-u-co-private-kana]` (language "ja" required even when this import itself is in another "ja" tailoring.)
+
+##### <a name="Special_Purpose_Elements" href="#Special_Purpose_Elements">Special-Purpose Elements</a>
+
+| Rule Syntax |
+| ----------- |
+| [suppressContractions [Љ-ґ]] |
+| [optimize [Ά-ώ]] |
+
+The _suppress contractions_ tailoring command turns off any existing contractions that begin with those characters, as well as any prefixes for those characters. It is typically used to turn off the Cyrillic contractions in the UCA, since they are not used in many languages and have a considerable performance penalty. The argument is a [Unicode Set](tr35.md#Unicode_Sets).
+
+The _suppress contractions_ command has immediate effect on the current set of mappings, including mappings added by preceding rules. Following rules are processed after removing any context-sensitive mappings originating from any of the characters in the set.
+
+The _optimize_ tailoring command is purely for performance. It indicates that those characters are sufficiently common in the target language for the tailoring that their performance should be enhanced.
+
+The reason that these are not settings is so that their contents can be arbitrary characters.
+
+* * *
+
+_Example:_
+
+The following is a simple example that combines portions of different tailorings for illustration. For more complete examples, see the actual locale data: [Japanese](https://github.com/unicode-org/cldr/tree/latest/common/collation/ja.xml), [Chinese](https://github.com/unicode-org/cldr/tree/latest/common/collation/zh.xml), [Swedish](https://github.com/unicode-org/cldr/tree/latest/common/collation/sv.xml), and [German](https://github.com/unicode-org/cldr/tree/latest/common/collation/de.xml) (type="phonebook") are particularly illustrative.
+
+```xml
+<collation>
+ <cr><![CDATA[
+ [caseLevel on]
+ &Z
+ < æ <<< Æ
+ < å <<< Å <<< aa <<< aA <<< Aa <<< AA
+ < ä <<< Ä
+ < ö <<< Ö << ű <<< Ű
+ < ő <<< Ő << ø <<< Ø
+ &V <<<* wW
+ &Y <<<* üÜ
+ &[last non-ignorable]
+ # The following is equivalent to <亜<唖<娃...
+ <* 亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦
+ <* 鯵梓圧斡扱
+ ]]></cr>
+</collation>
+```
+
+### 3.13 <a name="Script_Reordering" href="#Script_Reordering">Collation Reordering</a>
+
+Collation reordering allows scripts and certain other defined blocks of characters to be moved relative to each other parametrically, without changing the detailed rules for all the characters involved. This reordering is done on top of any specific ordering rules within the script or block currently in effect. Reordering can specify groups to be placed at the start and/or the end of the collation order. For example, to reorder Greek characters before Latin characters, and digits afterwards (but before other scripts), the following can be used:
+
+| Rule Syntax | Locale Identifier |
+| --------------------------- | ----------------- |
+| `[reorder Grek Latn digit]` | `en-u-kr-grek-latn-digit` |
+
+In each case, a sequence of _**reorder_codes**_ is used, separated by spaces in the settings attribute and in rule syntax, and by hyphens in locale identifiers.
+
+A **_reorder_code_** is any of the following special codes:
+
+1. **space, punct, symbol, currency, digit** - core groups of characters below 'a'
+2. **any script code** except **Common** and **Inherited**.
+ * Some pairs of scripts sort primary-equal and always reorder together. For example, Katakana characters are are always reordered with Hiragana.
+3. **others** - where all codes not explicitly mentioned should be ordered. The script code **Zzzz** (Unknown Script) is a synonym for **others**.
+
+It is an error if a code occurs multiple times.
+
+It is an error if the sequence of reorder codes is empty in the XML attribute or in the locale identifier. Some implementations may interpret an empty sequence in the `[reorder]` rule syntax as a reset to the DUCET ordering, synonymous with `[reorder others]` ; other implementations may forbid an empty sequence in the rule syntax as well.
+
+Interaction with **alternate=shifted**: Whether a primary weight is “variable” is determined according to the “variable top”, before applying script reordering. Once that is determined, script reordering is applied to the primary weight regardless of whether it is “regular” (used in the primary level) or “shifted” (used in the quaternary level).
+
+#### 3.13.1 <a name="Interpretation_reordering" href="#Interpretation_reordering">Interpretation of a reordering list</a>
+
+The reordering list is interpreted as if it were processed in the following way.
+
+1. If any core code is not present, then it is inserted at the front of the list in the order given above.
+2. If the **others** code is not present, then it is inserted at the end of the list.
+3. The **others** code is replaced by the list of all script codes not explicitly mentioned, in DUCET order.
+4. The reordering list is now complete, and used to reorder characters in collation accordingly.
+
+The locale data may have a particular ordering. For example, the Czech locale data could put digits after all letters, with `[reorder others digit]` . Any reordering codes specified on top of that (such as with a bcp47 locale identifier) completely replace what was there. To specify a version of collation that completely resets any existing reordering to the DUCET ordering, the single code **Zzzz** or **others** can be used, as below.
+
+_Examples:_
+
+| Locale Identifier | Effect |
+| --------------------------------- | ------ |
+| `en-u-kr-latn-digit` | Reorder digits after Latin characters (but before other scripts like Cyrillic). |
+| `en-u-kr-others-digit` | Reorder digits after all other characters. |
+| `en-u-kr-arab-cyrl-others-symbol` | Reorder Arabic characters first, then Cyrillic, and put symbols at the end—after all other characters. |
+| `en-u-kr-others` | Remove any locale-specific reordering, and use DUCET order for reordering blocks. |
+
+The default reordering groups are defined by the FractionalUCA.txt file, based on the primary weights of associated collation elements. The file contains special mappings for the start of each group, script, and reorder-reserved range, see _Section 2.6.2, [FractionalUCA.txt](#File_Format_FractionalUCA_txt)_.
+
+There are some special cases:
+
+* The **Hani** group includes implicit weights for _Han characters_ according to the UCA as well as any characters tailored relative to a Han character, or after `&[first Hani]`.
+* Implicit weights for _unassigned code points_ according to the UCA reorder as the last weights in the **others** (**Zzzz**) group.
+ There is no script code to explicitly reorder the unassigned-implicit weights into a particular position. (Unassigned-implicit weights are used for non-Hani code points without any mappings. For a given Unicode version they are the code points with General_Category values Cn, Co, Cs.)
+* The TRAILING group, the FIELD-SEPARATOR (associated with U+FFFE), and collation elements with only zero primary weights are not reordered.
+* The TERMINATOR, LEVEL-SEPARATOR, and SPECIAL groups are never associated with characters.
+
+For example, `reorder="Hani Zzzz Grek"` sorts Hani, Latin, Cyrillic, ... (all other scripts) ..., unassigned, Greek, TRAILING.
+
+Notes for implementations that write sort keys:
+
+* Primaries must always be offset by one or more whole primary lead bytes. (Otherwise the number of bytes in a fractional weight may change, compressible scripts may span multiple lead bytes, or trailing primary bytes may collide with separators and primary-compression terminators.)
+* When a script is reordered that does not start and end on whole-primary-lead-byte boundaries, then the lead byte needs to be “split”, and a reserved byte is used up. The data supports this via reorder-reserved ranges of primary weights that are not used for collation elements.
+* Primary weights from different original lead bytes can be reordered to a shared lead byte, as long as they do not overlap. Primary compression ends when the target lead byte differs or when the original lead byte of the next primary is not compressible.
+* Non-compressible groups and scripts begin or end on whole-primary-lead-byte boundaries (or both), so that reordering cannot surround a non-compressible script by two compressible ones within the same target lead byte. This is so that primary compression can be terminated reliably (choosing the low or high terminator byte) simply by comparing the previous and current primary weights. Otherwise it would have to also check for another condition (e.g., equal scripts).
+
+#### 3.13.2 <a name="Reordering_Groups_allkeys" href="#Reordering_Groups_allkeys">Reordering Groups for allkeys.txt</a>
+
+For allkeys_CLDR.txt, the start of each reordering group can be determined from FractionalUCA.txt, by finding the first real mapping (after “xyz first primary”) of that group (e.g., `0060; [0D 07, 05, 05] # Zyyy Sk [0312.0020.0002] * GRAVE ACCENT` ), and looking for that mapping's character sequence ( `0060` ) in allkeys_CLDR.txt. The comment in FractionalUCA.txt ( `[0312.0020.0002]` ) also shows the allkeys_CLDR.txt collation elements.
+
+The DUCET ordering of some characters is slightly different from the CLDR root collation order. The reordering groups for the DUCET are not specified. The following describes how reordering groups for the DUCET can be derived.
+
+For allkeys_DUCET.txt, the start of each reordering group is normally the primary weight corresponding to the same character sequence as for allkeys_CLDR.txt. In a few cases this requires adjustment, especially for the special reordering groups, due to CLDR’s ordering the common characters more strictly by category than the DUCET (as described in _Section 2, [Root Collation](#Root_Collation)_). The necessary adjustment would set the start of each allkeys_DUCET.txt reordering group to the primary weight of the first mapping for the relevant General_Category for a special reordering group (for characters that sort before ‘a’), or the primary weight of the first mapping for the first script (e.g., sc=Grek) of an “alphabetic” group (for characters that sort at or after ‘a’).
+
+Note that the following only applies to primary weights greater than the one for U+FFFE and less than "trailing" weights.
+
+The special reordering groups correspond to General_Category values as follows:
+
+* punct: P
+* symbol: Sk, Sm, So
+* space: Z, Cc
+* currency: Sc
+* digit: Nd
+
+In the DUCET, some characters that sort below ‘a’ and have other General_Category values not mentioned above (e.g., gc=Lm) are also grouped with symbols. Variants of numbers (gc=No or Nl) can be found among punctuation, symbols, and digits.
+
+Each collation element of an expansion may be in a different reordering group, for example for parenthesized characters.
+
+### 3.14 <a name="Case_Parameters" href="#Case_Parameters">Case Parameters</a>
+
+The **case level** is an _optional_ intermediate level ("2.5") between Level 2 and Level 3 (or after Level 1, if there is no Level 2 due to strength settings). The case level is used to support two parametric features: ignoring non-case variants (Level 3 differences) except for case, and giving case differences a higher-level priority than other tertiary differences. Distinctions between small and large Kana characters are also included as case differences, to support Japanese collation.
+
+The **case first** parameter controls whether to swap the order of upper and lowercase. It can be used with or without the case level.
+
+Importantly, the case parameters have no effect in many instances. For example, they have no effect on the comparison of two non-ignorable characters with different primary weights, or with different secondary weights if the strength = **secondary (or higher).**
+
+When either the **case level** or **case first** parameters are set, the following describes the derivation of the modified collation elements. It assumes the original levels for the code point are [p.s.t] (primary, secondary, tertiary). This derivation may change in future versions of LDML, to track the case characteristics more closely.
+
+#### 3.14.1 <a name="Case_Untailored" href="#Case_Untailored">Untailored Characters</a>
+
+For untailored characters and strings, that is, for mappings in the root collation, the case value for each collation element is computed from the tertiary weight listed in allkeys_CLDR.txt. This is used to modify the collation element.
+
+Look up a case value for the tertiary weight x of each collation element:
+
+1. UPPER if x ∈ {08-0C, 0E, 11, 12, 1D}
+2. UNCASED otherwise
+3. FractionalUCA.txt encodes the case information in bits 6 and 7 of the first byte in each tertiary weight. The case bits are set to 00 for UNCASED and LOWERCASE, and 10 for UPPER. There is no MIXED case value (01) in the root collation.
+
+#### 3.14.2 <a name="Case_Weights" href="#Case_Weights">Compute Modified Collation Elements</a>
+
+From a computed case value, set a weight **c** according to the following.
+
+1. If **CaseFirst=UpperFirst**, set **c** = UPPER ? **1** : MIXED ? 2 : **3**
+2. Otherwise set **c** = UPPER ? **3** : MIXED ? 2 : **1**
+
+Compute a new collation element according to the following table. The notation _xt_ means that the values are numerically combined into a single level, such that xt < yu whenever x < y. The fourth level (if it exists) is unaffected. Note that a secondary CE must have a secondary weight S which is greater than the secondary weight s of any primary CE; and a tertiary CE must have a tertiary weight T which is greater than the tertiary weight t of any primary or secondary CE ([[UCA](https://www.unicode.org/reports/tr41/#UTS10)] [WF2](https://www.unicode.org/reports/tr10/#WF2)).
+
+<table><tbody>
+<tr><th>Case Level</th><th>Strength</th><th>Original CE</th><th>Modified CE</th><th>Comment</th></tr>
+
+<tr><td rowspan="5"><strong>on</strong></td><td rowspan="2"><strong>primary</strong></td><td><code>0.S.t</code></td><td><code>0.0</code></td><td rowspan="2">ignore case level weights of primary-ignorable CEs</td></tr>
+<tr><td><code>p.s.t</code></td><td><code>p.c</code></td></tr>
+
+<tr><td rowspan="3"><strong>secondary<br></strong> or higher</td><td><code>0.0.T</code></td> <td><code>0.0.0.T</code></td><td rowspan="3">ignore case level weights of secondary-ignorable CEs</td></tr>
+ <tr><td><code>0.S.t</code></td><td><code>0.S.c.t</code></td></tr>
+ <tr><td><code>p.s.t</code></td><td><code>p.s.c.t</code></td></tr>
+
+<tr><td rowspan="4"><strong>off</strong></td><td rowspan="4">any</td><td><code>0.0.0</code></td><td><code>0.0.00</code></td><td rowspan="4">ignore case level weights of tertiary-ignorable CEs</td></tr>
+ <tr><td><code>0.0.T</code></td><td><code>0.0.3T</code></td></tr>
+ <tr><td><code>0.S.t</code></td><td><code>0.S.ct</code></td></tr>
+ <tr><td><code>p.s.t</code></td><td><code>p.s.ct</code></td></tr>
+</tbody></table>
+
+For primary+case, which is used for “ignore accents but not case” collation, primary ignorables are ignored so that a = ä. For secondary+case, which would by analogy mean “ignore variants but not case”, secondary ignorables are ignored for equivalent behavior.
+
+When using **caseFirst** but not **caseLevel**, the combined case+tertiary weight of a tertiary CE must be greater than the combined case+tertiary weight of any primary or secondary CE so that [[UCA](https://www.unicode.org/reports/tr41/#UTS10)] [well-formedness condition 2](https://www.unicode.org/reports/tr10/#WF2) is fulfilled. Since the tertiary CE’s tertiary weight T is already greater than any t of primary or secondary CEs, it is sufficient to set its case weight to UPPER=3. It must not be affected by **caseFirst=upper**. (The table uses the constant 3 in this case rather than the computed c.)
+
+The case weight of a tertiary-ignorable CE must be 0 so that [[UCA](https://www.unicode.org/reports/tr41/#UTS10)] [well-formedness condition 1](https://www.unicode.org/reports/tr10/#WF1) is fulfilled.
+
+#### 3.14.3 <a name="Case_Tailored" href="#Case_Tailored">Tailored Strings</a>
+
+Characters and strings that are tailored have case values computed from their root collation case bits.
+
+1. Look up the tailored string’s root CEs. (Ignore any prefix or extension strings.) N=number of primary root CEs.
+2. Determine the number and type (primary vs. weaker) of CEs a tailored string maps to. M=number of primary tailored CEs.
+3. If N<=M (no more root than tailoring primary CEs): Copy the root case bits for primary CEs 0..N-1.
+ * If N<M (fewer root primary CEs): Clear the case bits of the remaining tailored primary CEs. (uncased/lowercase/small Kana)
+4. If N>M (more root primary CEs): Copy the root case bits for primary CEs 0..M-2. Set the case bits for tailored primary CE M-1 according to the remaining root primary CEs M-1..N-1:
+ * Set to uncased/lower if all remaining root primary CEs have uncased/lower.
+ * Set to uppercase if all remaining root primary CEs have uppercase.
+ * Otherwise, set to mixed.
+5. Clear the case bits for secondary CEs 0.s.t.
+6. Tertiary CEs 0.0.t must get uppercase bits.
+7. Tertiary-ignorable CEs 0.0.0 must get ignorable-case=lowercase bits.
+
+> :point_right: **Note**: Almost all Cased characters have primary (non-ignorable) root collation CEs, except for U+0345 Combining Ypogegrammeni which is Lowercase. All Uppercase characters have primary root collation CEs.
+
+### 3.15 <a name="Visibility" href="#Visibility">Visibility</a>
+
+Collations have external visibility by default, meaning that they can be displayed in a list of collation options for users to choose from. A collation whose type name starts with "private-" is internal and should not be shown in such a list. Collations are typically internal when they are partial sequences included in other collations. See _Section 3.1, [Collation Types](#Collation_Types)_ .
+
+### 3.16 <a name="Collation_Indexes" href="#Collation_Indexes">Collation Indexes</a>
+
+#### 3.16.1 <a name="Index_Characters" href="#Index_Characters">Index Characters</a>
+
+The main data includes `<exemplarCharacters>` for collation indexes. See _Part 2 General, Section 3, [Character Elements](tr35-general.md#Character_Elements)_, for general information about exemplar characters.
+
+The index characters are a set of characters for use as a UI "index", that is, a list of clickable characters (or character sequences) that allow the user to see a segment of a larger "target" list. Each character corresponds to a bucket in the target list. One may have different kinds of index lists; one that produces an index list that is relatively static, and the other is a list that produces roughly equally-sized buckets. While CLDR is mostly focused on the first, there is provision for supporting the second as well.
+
+The index characters need to be used in conjunction with a collation for the locale, which will determine the order of the characters. It will also determine which index characters show up.
+
+The static list would be presented as something like the following (either vertically or horizontally):
+
+… A B C D E F G H CH I J K L M N O P Q R S T U V W X Y Z …
+
+In the "A" bucket, you would find all items that are primary greater than or equal to "A" in collation order, and primary less than "B". The use of the list requires that the target list be sorted according to the locale that is used to create that list. Although we say "character" above, the index character could be a sequence, like "CH" above. The index exemplar characters must always be used with a collation appropriate for the locale. Any characters that do not have primary differences from others in the set should be removed.
+
+Details:
+
+1. The primary weight (according to the collation) is used to determine which bucket a string is in. There are special buckets for before the first character, between buckets of different scripts, and after the last bucket (and of a different script).
+2. Characters in the _index characters_ do not need to have distinct primary weights. That is, the _index characters_ are adapted to the underlying collation: normally Ё is in the Е bucket for Russian, but if someone used a variant of Russian collation that distinguished them on a primary level, then Ё would show up as its own bucket.
+3. If an _index character_ string ends with a single "\*" (U+002A), for example "Sch\*" and "St\*" in German, then there will be a separate bucket for the string minus the "\*", for example "Sch" and "St", even if that string does not sort distinctly.
+4. An _index character_ can have multiple primary weights, for example "Æ" and "Sch". Names that have the same initial primary weights sort into this _index character_’s bucket. This can be achieved by using an upper-boundary string that is the concatenation of the _index character_ and U+FFFF, for example "Æ\\uFFFF" and "Sch\\uFFFF". Names that sort greater than this upper boundary but less than the next index character are redirected to the last preceding single-primary index character (A and S for the examples here).
+
+For example, for index characters `[A Æ B R S {Sch*} {St*} T]` the following sample names are sorted into an index as shown.
+
+* A — Adelbert, Afrika
+* Æ — Æsculap, Aesthet
+* B — Berlin
+* R — Rilke
+* S — Sacher, Seiler, Sultan
+* Sch — Schiller
+* St — Steiff
+* T — Thomas
+
+The … items are special: each is a bucket for everything else, either less or greater. They are inserted at the start and end of the index list, _and_ on script boundaries. Each script has its own range, except where scripts sort primary-equal (e.g., Hira & Kana). All characters that sort in one of the low reordering groups (whitespace, punctuation, symbols, currency symbols, digits) are treated as a single script for this purpose.
+
+If you tailor a Greek character into the Cyrillic script, that Greek character will be bucketed (and sorted) among the Cyrillic ones.
+
+Even in an implementation that reorders groups of scripts rather than single scripts, for example Hebrew together with Phoenician and Samaritan, the index boundaries are really script boundaries, _not_ multi-script-group boundaries. So if you had a collation that reordered Hebrew after Ethiopic, you would still get index boundaries between the following (and in that order):
+
+1. Ethiopic
+2. Hebrew
+3. Phoenician _// included in the Hebrew reordering group_
+4. Samaritan _// included in the Hebrew reordering group_
+5. Devanagari
+
+(Beginning with CLDR 27, single scripts can be reordered.)
+
+In the UI, an index character could also be omitted or grayed out if its bucket is empty. For example, if there is nothing in the bucket for Q, then Q could be omitted. That would be up to the implementation. Additional buckets could be added if other characters are present. For example, we might see something like the following:
+
+| Sample Greek Index | Contents |
+| :---------------------------------------------------------: | -------- |
+| Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω | With only content beginning with Greek letters |
+| … Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω … | With some content before or after |
+| … 9 Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω … | With numbers, and nothing between 9 and Alpha |
+| … 9 _A-Z_ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω … | With numbers, some Latin |
+
+Here is a sample of the XML structure:
+
+```xml
+<exemplarCharacters type="index">[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]</exemplarCharacters>
+```
+
+The display of the index characters can be modified with the Index labels elements, discussed in the _Part 2 General, Section 3.3, [Index Labels](tr35-general.md#IndexLabels)_.
+
+#### 3.16.2 <a name="CJK_Index_Markers" href="#CJK_Index_Markers">CJK Index Markers</a>
+
+Special index markers have been added to the CJK collations for stroke, pinyin, zhuyin, and unihan. These markers allow for effective and robust use of indexes for these collations.
+
+The per-language index exemplar characters are not useful for collation indexes for CJK because for each such language there are multiple sort orders in use (for example, Chinese pinyin vs. stroke vs. unihan vs. zhuyin), and these sort orders use very different index characters. In addition, sometimes the boundary strings are different from the bucket label strings. For collations that contain index markers, the boundary strings and bucket labels should be derived from those index markers, ignoring the index exemplar characters.
+
+For example, near the start of the pinyin tailoring there is the following:
+
+```html
+<p> A</p><!-- INDEX A -->
+<pc>阿呵𥥩锕𠼞𨉚</pc><!-- ā -->
+…
+<pc>翶</pc><!-- ao -->
+<p> B</p><!-- INDEX B -->
+```
+
+These indicate the boundaries of "buckets" that can be used for indexing. They are always two characters starting with the noncharacter U+FDD0, and thus will not occur in normal text. For pinyin the second character is A-Z; for unihan it is one of the radicals; and for stroke it is a character after U+2800 indicating the number of strokes, such as ⠁. For zhuyin the second character is one of the standard Bopomofo characters in the range U+3105 through U+3129.
+
+The corresponding bucket label strings are the boundary strings with the leading U+FDD0 removed. For example, the Pinyin boundary string "\\uFDD0A" yields the label string "A".
+
+However, for stroke order, the label string is the stroke count (second character minus U+2800) as a decimal-digit number followed by 劃 (U+5283). For example, the stroke order boundary string "\\uFDD0\\u2805" yields the label string "5劃".
+
+* * *
+
+Copyright © 2001–2021 Unicode, Inc. All Rights Reserved. The Unicode Consortium makes no expressed or implied warranty of any kind, and assumes no liability for errors or omissions. No liability is assumed for incidental and consequential damages in connection with or arising out of the use of the information or programs contained or accompanying this technical report. The Unicode [Terms of Use](https://unicode.org/copyright.html) apply.
+
+Unicode and the Unicode logo are trademarks of Unicode, Inc., and are registered in some jurisdictions.
diff --git a/docs/ldml/tr35-dates.html b/docs/ldml/tr35-dates.html
deleted file mode 100644
index cad88e1..0000000
--- a/docs/ldml/tr35-dates.html
+++ /dev/null
@@ -1,4711 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"https://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
- <meta name="generator" content=
- "HTML Tidy for HTML5 for Apple macOS version 5.6.0">
- <meta http-equiv="Content-Type" content=
- "text/html; charset=utf-8">
- <meta http-equiv="Content-Language" content="en-us">
- <link rel="stylesheet" href=
- "../reports.css" type="text/css">
- <title>UTS #35: Unicode LDML: Dates</title>
- <style type="text/css">
- <!--
- .dtd {
- font-family: monospace;
- font-size: 90%;
- background-color: #CCCCFF;
- border-style: dotted;
- border-width: 1px;
- }
-
- .xmlExample {
- font-family: monospace;
- font-size: 80%
- }
-
- .blockedInherited {
- font-style: italic;
- font-weight: bold;
- border-style: dashed;
- border-width: 1px;
- background-color: #FF0000
- }
-
- .inherited {
- font-weight: bold;
- border-style: dashed;
- border-width: 1px;
- background-color: #00FF00
- }
-
- .element {
- font-weight: bold;
- color: red;
- }
-
- .attribute {
- font-weight: bold;
- color: maroon;
- }
-
- .attributeValue {
- font-weight: bold;
- color: blue;
- }
-
- li, p {
- margin-top: 0.5em;
- margin-bottom: 0.5em
- }
-
- h2, h3, h4, table {
- margin-top: 1.5em;
- margin-bottom: 0.5em;
- }
- -->
- </style>
-</head>
-<body>
- <table class="header" width="100%">
- <tr>
- <td class="icon"><a href="https://unicode.org"><img alt=
- "[Unicode]" src="../logo60s2.gif"
- width="34" height="33" style=
- "vertical-align: middle; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px; border-top-width: 0px;"></a>
- <a class="bar" href=
- "https://www.unicode.org/reports/">Technical Reports</a></td>
- </tr>
- <tr>
- <td class="gray"> </td>
- </tr>
- </table>
- <div class="body">
- <h2 style="text-align: center">Unicode Technical Standard #35</h2>
- <h1>Unicode Locale Data Markup Language (LDML)<br>
- Part 4: Dates</h1>
- <!-- At least the first row of this header table should be identical across the parts of this UTS. -->
- <table border="1" cellpadding="2" cellspacing="0" class="wide">
- <tr>
- <td>Version</td>
- <td>38</td>
- </tr>
- <tr>
- <td>Editors</td>
- <td>Peter Edberg and <a href=
- "tr35.html#Acknowledgments">other CLDR committee
- members</a></td>
- </tr>
- </table>
- <p>For the full header, summary, and status, see <a href=
- "tr35.html">Part 1: Core.</a></p>
- <h3><i>Summary</i></h3>
- <p>This document describes parts of an XML format
- (<i>vocabulary</i>) for the exchange of structured locale data.
- This format is used in the <a href=
- "https://unicode.org/cldr/">Unicode Common Locale Data
- Repository</a>.</p>
- <p>This is a partial document, describing only those parts of
- the LDML that are relevant for date, time, and time zone
- formatting. For the other parts of the LDML see the <a href=
- "tr35.html">main LDML document</a> and the links above.</p>
- <h3><i>Status</i></h3>
-
- <!-- NOT YET APPROVED
- <p>
- <i class="changed">This is a<b><font color="#ff3333">
- draft </font></b>document which may be updated, replaced, or superseded by
- other documents at any time. Publication does not imply endorsement
- by the Unicode Consortium. This is not a stable document; it is
- inappropriate to cite this document as other than a work in
- progress.
- </i>
- </p>
- END NOT YET APPROVED -->
- <!-- APPROVED -->
- <p><i>This document has been reviewed by Unicode members and
- other interested parties, and has been approved for publication
- by the Unicode Consortium. This is a stable document and may be
- used as reference material or cited as a normative reference by
- other specifications.</i></p>
- <!-- END APPROVED -->
-
- <blockquote>
- <p><i><b>A Unicode Technical Standard (UTS)</b> is an
- independent specification. Conformance to the Unicode
- Standard does not imply conformance to any UTS.</i></p>
- </blockquote>
- <p><i>Please submit corrigenda and other comments with the CLDR
- bug reporting form [<a href="tr35.html#Bugs">Bugs</a>]. Related
- information that is useful in understanding this document is
- found in the <a href="tr35.html#References">References</a>. For
- the latest version of the Unicode Standard see [<a href=
- "tr35.html#Unicode">Unicode</a>]. For a list of current Unicode
- Technical Reports see [<a href=
- "tr35.html#Reports">Reports</a>]. For more information about
- versions of the Unicode Standard, see [<a href=
- "tr35.html#Versions">Versions</a>].</i></p>
- <!-- This section of Parts should be identical in all of the parts of this UTS. -->
- <h2><a name="Parts" href="#Parts" id="Parts">Parts</a></h2>
- <p>The LDML specification is divided into the following
- parts:</p>
- <ul class="toc">
- <li>Part 1: <a href="tr35.html#Contents">Core</a> (languages,
- locales, basic structure)</li>
- <li>Part 2: <a href="tr35-general.html#Contents">General</a>
- (display names & transforms, etc.)</li>
- <li>Part 3: <a href="tr35-numbers.html#Contents">Numbers</a>
- (number & currency formatting)</li>
- <li>Part 4: <a href="tr35-dates.html#Contents">Dates</a>
- (date, time, time zone formatting)</li>
- <li>Part 5: <a href=
- "tr35-collation.html#Contents">Collation</a> (sorting,
- searching, grouping)</li>
- <li>Part 6: <a href=
- "tr35-info.html#Contents">Supplemental</a> (supplemental
- data)</li>
- <li>Part 7: <a href=
- "tr35-keyboards.html#Contents">Keyboards</a> (keyboard
- mappings)</li>
- </ul>
- <h2><a name="Contents" href="#Contents" id="Contents">Contents
- of Part 4, Dates</a></h2>
- <!-- START Generated TOC: CheckHtmlFiles -->
- <ul class="toc">
- <li>1 <a href=
- "#Overview_Dates_Element_Supplemental">Overview: Dates
- Element, Supplemental Date and Calendar Information</a></li>
- <li>2 <a href="#Calendar_Elements">Calendar Elements</a>
- <ul class="toc">
- <li>2.1 <a href="#months_days_quarters_eras">Elements
- months, days, quarters, eras</a></li>
- <li>2.2 <a href="#monthPatterns_cyclicNameSets">Elements
- monthPatterns, cyclicNameSets</a></li>
- <li>2.3 <a href="#dayPeriods">Element dayPeriods</a></li>
- <li>2.4 <a href="#dateFormats">Element
- dateFormats</a></li>
- <li>2.5 <a href="#timeFormats">Element
- timeFormats</a></li>
- <li>2.6 <a href="#dateTimeFormats">Element
- dateTimeFormats</a>
- <ul class="toc">
- <li>2.6.1 <a href="#dateTimeFormat">Element
- dateTimeFormat</a>
- <ul class="toc">
- <li>Table: <a href=
- "#Date_Time_Combination_Examples">Date-Time
- Combination Examples</a></li>
- </ul>
- </li>
- <li>2.6.2 <a href=
- "#availableFormats_appendItems">Elements
- availableFormats, appendItems</a>
- <ul class="toc">
- <li>2.6.2.1 <a href=
- "#Matching_Skeletons">Matching Skeletons</a></li>
- <li>2.6.2.2 <a href=
- "#Missing_Skeleton_Fields">Missing Skeleton
- Fields</a></li>
- </ul>
- </li>
- <li>2.6.3 <a href="#intervalFormats">Element
- intervalFormats</a></li>
- </ul>
- </li>
- </ul>
- </li>
- <li>3 <a href="#Calendar_Fields">Calendar Fields</a></li>
- <li>4 <a href="#Supplemental_Calendar_Data">Supplemental
- Calendar Data</a>
- <ul class="toc">
- <li>4.1 <a href="#Calendar_Data">Calendar Data</a></li>
- <li>4.2 <a href="#Calendar_Preference_Data">Calendar
- Preference Data</a></li>
- <li>4.3 <a href="#Week_Data">Week Data</a></li>
- <li>4.4 <a href="#Time_Data">Time Data</a></li>
- <li>4.5 <a href="#Day_Period_Rule_Sets">Day Period Rule
- Sets</a>
- <ul class="toc">
- <li>4.5.1 <a href="#Day_Period_Rules">Day Period
- Rules</a>
- <ul class="toc">
- <li>4.5.1.1 <a href="#Fixed_periods">Fixed
- periods</a></li>
- <li>4.5.1.2 <a href="#Variable_periods">Variable
- periods</a></li>
- <li>4.5.1.3 <a href=
- "#Parsing_Day_Periods">Parsing Day
- Periods</a></li>
- </ul>
- </li>
- </ul>
- </li>
- </ul>
- </li>
- <li>5 <a href="#Time_Zone_Names">Time Zone Names</a>
- <ul class="toc">
- <li>Table: <a href=
- "#timeZoneNames_Elements_Used_for_Fallback"><timeZoneNames>
- Elements Used for Fallback</a></li>
- <li>5.1 <a href="#Metazone_Names">Metazone Names</a></li>
- </ul>
- </li>
- <li>6 <a href="#Supplemental_Time_Zone_Data">Supplemental
- Time Zone Data</a>
- <ul class="toc">
- <li>6.1 <a href="#Metazones">Metazones</a></li>
- <li>6.2 <a href="#Windows_Zones">Windows Zones</a></li>
- <li>6.3 <a href="#Primary_Zones">Primary Zones</a></li>
- </ul>
- </li>
- <li>7 <a href="#Using_Time_Zone_Names">Using Time Zone
- Names</a>
- <ul class="toc">
- <li>7.1 <a href="#Time_Zone_Format_Terminology">Time Zone
- Format Terminology</a></li>
- <li>7.2 <a href="#Time_Zone_Goals">Goals</a></li>
- <li>7.3 <a href="#Time_Zone_Parsing">Parsing</a></li>
- </ul>
- </li>
- <li>8 <a href="#Date_Format_Patterns">Date Format
- Patterns</a>
- <ul class="toc">
- <li>Table: <a href="#Date_Format_Pattern_Examples">Date
- Format Pattern Examples</a></li>
- <li><a href="#Date_Field_Symbol_Table">Date Field Symbol
- Table</a></li>
- <li>8.1 <a href="#Localized_Pattern_Characters">Localized
- Pattern Characters (deprecated)</a></li>
- <li>8.2 <a href="#Date_Patterns_AM_PM">AM / PM</a></li>
- <li>8.3 <a href="#Date_Patterns_Eras">Eras</a></li>
- <li>8.4 <a href="#Date_Patterns_Week_Of_Year">Week of
- Year</a></li>
- <li>8.5 <a href="#Date_Patterns_Week_Elements">Week
- Elements</a></li>
- </ul>
- </li>
- <li>9 <a href="#Parsing_Dates_Times">Parsing Dates and
- Times</a></li>
- </ul><!-- END Generated TOC: CheckHtmlFiles -->
- <h2>1 <a name="Overview_Dates_Element_Supplemental" href=
- "#Overview_Dates_Element_Supplemental" id=
- "Overview_Dates_Element_Supplemental">Overview: Dates Element,
- Supplemental Date and Calendar Information</a></h2>
- <p class="dtd"><!ELEMENT dates (alias | (calendars?,
- fields?, timeZoneNames?, special*)) ></p>
- <p>The LDML top-level <dates> element contains
- information regarding the format and parsing of dates and
- times, the formatting of date/time intervals, and the the
- naming of various calendar elements.</p>
- <ul>
- <li>The <calendars> element is described in section 2
- <a href="#Calendar_Elements">Calendar Elements</a>.</li>
- <li>The <fields> element is described in section 3
- <a href="#Calendar_Fields">Calendar Fields</a>.</li>
- <li>The <timeZoneNames> element is described in section
- 5 <a href="#Time_Zone_Names">Time Zone Names</a>.</li>
- <li>The formats use pattern characters described in section 8
- <a href="#Date_Format_Patterns">Date Format
- Patterns</a>.</li>
- </ul>
- <p class="dtd"><!ELEMENT supplementalData ( …,
- calendarData?, calendarPreferenceData?, weekData?, timeData?,
- …, timezoneData?, …, metazoneInfo?, …, dayPeriodRuleSet*,
- metaZones?, primaryZones?, windowsZones?, …) ></p>
- <p>The relevant top-level supplemental elements are listed
- above.</p>
- <ul>
- <li>The <calendarData>, <calendarPreferenceData>,
- <weekData>, <timeData>, and
- <dayPeriodRuleSet> elements are described in section 4
- <a href="#Supplemental_Calendar_Data">Supplemental Calendar
- Data</a>.</li>
- <li>The <timezoneData> element is deprecated and no
- longer used; the <metazoneInfo> element is deprecated
- at this level, and is now only used as a sub-element of
- <metaZones>.</li>
- <li>The <metaZones>, <primaryZones>, and
- <windowsZones> elements are described in section 6
- <a href="#Supplemental_Time_Zone_Data">Supplemental Time Zone
- Data</a>.</li>
- </ul>
- <h2>2 <a name="Calendar_Elements" href="#Calendar_Elements" id=
- "Calendar_Elements">Calendar Elements</a></h2>
- <p class="dtd"><!ELEMENT calendars (alias | (calendar*,
- special*)) ><br>
- <!ELEMENT calendar (alias | (months?, monthPatterns?, days?,
- quarters?, dayPeriods?, eras?, cyclicNameSets?, dateFormats?,
- timeFormats?, dateTimeFormats?, special*))><br>
- <!ATTLIST calendar type NMTOKEN #REQUIRED ></p>
- <p>The <calendars> element contains multiple
- <calendar> elements, each of which specifies the fields
- used for formatting and parsing dates and times according to
- the calendar specified by the type attribute (e.g. "gregorian",
- "buddhist", "islamic"). The behaviors for different calendars
- in a locale may share certain aspects, such as the names for
- weekdays. They differ in other respects; for example, the
- Japanese calendar is similar to the Gregorian calendar but has
- many more eras (one for each Emperor), and years are numbered
- within each era. All calendar data inherits either from the
- Gregorian calendar or other calendars in the same locale (and
- if not present there then from the parent up to root), or else
- inherits directly from the parent locale for certain calendars,
- so only data that differs from what would be inherited needs to
- be supplied. See <i><a href=
- "tr35.html#Multiple_Inheritance">Multiple
- Inheritance</a></i>.</p>
- <p>Each calendar provides—directly or indirectly—two general
- types of data:</p>
- <ul>
- <li><em>Calendar symbols, such as names for eras, months,
- weekdays, and dayPeriods.</em> Names for weekdays, quarters
- and dayPeriods are typically inherited from the Gregorian
- calendar data in the same locale. Symbols for eras and months
- should be provided for each calendar, except that the
- "Gregorian-like" Buddhist, Japanese, and Minguo (ROC)
- calendars also inherit their month names from the Gregorian
- data in the same locale.</li>
- <li><em>Format data for dates, times, and date-time
- intervals.</em> Non-Gregorian calendars inherit standard time
- formats (in the <timeFormats> element) from the
- Gregorian calendar in the same locale. Most non-Gregorian
- calendars (other than Chinese and Dangi) inherit general date
- format data (in the <dateFormats> and
- <dateTimeFormats> elements) from the "generic" calendar
- format data in the same locale, which in turn inherits from
- Gregorian.</li>
- </ul>
- <p>Calendars that use cyclicNameSets and monthPatterns (such as
- Chinese and Dangi) have additional symbols and distinct
- formats, and typically inherit these items (along with month
- names) from their parent locales, instead of inheriting them
- from Gregorian or generic data in the same locale.</p>
- <p>The primary difference between Gregorian and "generic"
- format data is that date formats in "generic" usually include
- era with year, in order to provide an indication of which
- calendar is being used (Gregorian calendar formats may also
- commonly include era with year when Gregorian is not the
- default calendar for the locale). Otherwise, the "generic" date
- formats should normally be consistent with those in the
- Gregorian calendar. The "generic" calendar formats are intended
- to provide a consistent set of default formats for
- non-Gregorian calendars in the locale, so that in most cases
- the only data items that need be provided for non-Gregorian
- calendars are the era names and month names (and the latter
- only for calendars other than Buddhist, Japanese, and Minguo,
- since those inherit month names from Gregorian).</p>
- <h3>2.1 <a name="months_days_quarters_eras" href=
- "#months_days_quarters_eras" id=
- "months_days_quarters_eras">Elements months, days, quarters,
- eras</a></h3>
- <p class="dtd"><!ELEMENT months ( alias | (monthContext*,
- special*)) ><br>
- <!ELEMENT monthContext ( alias | (default*, monthWidth*,
- special*)) ><br>
- <!ATTLIST monthContext type ( format | stand-alone )
- #REQUIRED ><br>
- <!ELEMENT monthWidth ( alias | (month*, special*)) ><br>
- <!ATTLIST monthWidth type ( abbreviated| narrow | wide)
- #REQUIRED ><br>
- <!ELEMENT month ( #PCDATA )* ><br>
- <!ATTLIST month type ( 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
- 10 | 11 | 12 | 13 ) #REQUIRED ><br>
- <!ATTLIST month yeartype ( standard | leap ) #IMPLIED
- ></p>
- <p class="dtd"><!ELEMENT days ( alias | (dayContext*,
- special*)) ><br>
- <!ELEMENT dayContext ( alias | (default*, dayWidth*,
- special*)) ><br>
- <!ATTLIST dayContext type ( format | stand-alone ) #REQUIRED
- ><br>
- <!ELEMENT dayWidth ( alias | (day*, special*)) ><br>
- <!ATTLIST dayWidth type NMTOKEN #REQUIRED ><br>
- <!ELEMENT day ( #PCDATA ) ><br>
- <!ATTLIST day type ( sun | mon | tue | wed | thu | fri | sat
- ) #REQUIRED ></p>
- <p class="dtd"><!ELEMENT quarters ( alias |
- (quarterContext*, special*)) ><br>
- <!ELEMENT quarterContext ( alias | (default*, quarterWidth*,
- special*)) ><br>
- <!ATTLIST quarterContext type ( format | stand-alone )
- #REQUIRED ><br>
- <!ELEMENT quarterWidth ( alias | (quarter*, special*))
- ><br>
- <!ATTLIST quarterWidth type NMTOKEN #REQUIRED ><br>
- <!ELEMENT quarter ( #PCDATA ) ><br>
- <!ATTLIST quarter type ( 1 | 2 | 3 | 4 ) #REQUIRED ></p>
- <p class="dtd"><!ELEMENT eras (alias | (eraNames?, eraAbbr?,
- eraNarrow?, special*)) ><br>
- <!ELEMENT eraNames ( alias | (era*, special*) ) ><br>
- <!ELEMENT eraAbbr ( alias | (era*, special*) ) ><br>
- <!ELEMENT eraNarrow ( alias | (era*, special*) )
- ><br></p>
- <p>The month and quarter names are identified numerically,
- starting at 1. The weekday names are identified with short
- strings, since there is no universally-accepted numeric
- designation.</p>
- <p>Month, day, and quarter names may vary along two axes: the
- width and the context.</p>
- <p>The context is either <i>format</i> (the default), the form
- used within a complete date format string (such as "Saturday,
- November 12"), or <i>stand-alone</i>, the form for date
- elements used independently, such as in calendar headers. The
- most important distinction between format and stand-alone
- forms is a grammatical distinction, for languages that require
- it. For example, many languages require that a month name
- without an associated day number (i.e. an independent form) be
- in the basic <i>nominative</i> form, while a month name with
- an associated day number (as in a complete date format) should
- be in a different grammatical form: <i>genitive</i>,
- <i>partitive</i>, etc. In past versions of CLDR, the
- distinction between format and stand-alone forms was also used
- to control capitalization (with stand-alone forms using
- titlecase); however, this can be controlled separately and more
- precisely using the <contextTransforms> element as
- described in <i><a href=
- "tr35-general.html#Context_Transform_Elements">ContextTransform
- Elements</a></i>, so stand-alone forms should generally use
- middle-of-sentence capitalization. However, if in a given
- language, certain context/width combinations are always used in
- a titlecase form — for example, stand-alone narrow forms for
- months or weekdays — then these should be provided in that
- form.</p>
- <p>The width can be <i>wide</i> (the default),
- <i>abbreviated</i>, or <i>narrow</i>; for days only, the width
- can also be <i>short,</i> which is ideally between the
- abbreviated and narrow widths, but must be no longer than
- abbreviated and no shorter than narrow (if short day names are
- not explicitly specified, abbreviated day names are used
- instead). Note that for <monthPattern>, described in the
- next section:</p>
- <ul>
- <li>There is an additional context type <i>numeric</i></li>
- <li>When the context type is numeric, the width has a special
- type <i>all</i></li>
- </ul>
- <p>The format values must be distinct for the wide,
- abbreviated, and short widths. However, values for the narrow
- width in either format or stand-alone contexts, as well as
- values for other widths in stand-alone contexts, need not be
- distinct; they might only be distinguished by context. For
- example, "S" may be used both for Saturday and for Sunday. The
- narrow width is typically used in calendar headers; it must be
- the shortest possible width, no more than one character (or
- grapheme cluster, or exemplar set element) in stand-alone
- values (not including punctuation), and the shortest possible
- widths (in terms of grapheme clusters) in format values. The
- short width (if present) is often the shortest unambiguous
- form.</p>
- <p>Era names should be distinct within each of the widths,
- including narrow; there is less disambiguating information for
- them, and they are more likely to be used in a format that
- requires parsing.</p>
- <p>Due to aliases in root, the forms inherit "sideways". (See
- <i><a href="tr35.html#Multiple_Inheritance">Multiple
- Inheritance</a></i>.) For example, if the abbreviated format
- data for Gregorian does not exist in a language X (in the chain
- up to root), then it inherits from the wide format data in that
- same language X.</p>
- <pre id="line369"><monthContext type="format">
- <monthWidth type="abbreviated">
- <alias source="locale" path="../monthWidth[@type='wide']"/>
- </monthWidth>
- <monthWidth type="narrow">
- <alias source="locale" path="../../monthContext[@type='<b>stand-alone</b>']/monthWidth[@type='narrow']"/>
- </monthWidth>
- <monthWidth type="wide">
- <month type="1">1</month>
- ...
- <month type="12">12</month>
- </monthWidth>
-</monthContext>
-<monthContext type="stand-alone">
- <monthWidth type="abbreviated">
- <alias source="locale" path="../../monthContext[@type='<b>format</b>']/monthWidth[@type='abbreviated']"/>
- </monthWidth>
- <monthWidth type="narrow">
- <month type="1">1</month>
- ...
- <month type="12">12</month>
- </monthWidth>
- <monthWidth type="wide">
- <alias source="locale" path="../../monthContext[@type='<b>format</b>']/monthWidth[@type='wide']"/>
- </monthWidth>
-</monthContext></pre>
- <p>The yeartype attribute for months is used to distinguish
- alternate month names that would be displayed for certain
- calendars during leap years. The practical example of this
- usage occurs in the Hebrew calendar, where the 7th month "Adar"
- occurs in non-leap years, with the 6th month being skipped, but
- in leap years there are two months named "Adar I" and "Adar
- II". There are currently only two defined year types, standard
- (the implied default) and leap.</p>
- <p>For era elements, an additional alt="variant" form may be
- supplied. This is primarily intended for use in the "gregorian"
- calendar, with which two parallel sets of era designations are
- used in some locales: one set with a religious reference (e.g.
- English BC/AD), and one set without (e.g. English BCE/CE). The
- most commonly-used set for the locale should be provided as the
- default, and the other set may be provided as the alt="variant"
- forms. See the example below.</p>
- <p class="example">Example:</p>
- <pre> <calendar type="<span style=
- "color: blue">gregorian</span>">
- <months>
- <monthContext type="<span style=
-"color: blue">format</span>">
- <monthWidth type="<span style=
-"color: blue">wide</span>">
- <month type="<span style=
-"color: blue">1</span>"><span style=
-"color: blue">January</span></month>
- <month type="<span style=
-"color: blue">2</span>"><span style=
-"color: blue">February</span></month>
-...
- <month type="<span style=
-"color: blue">11</span>"><span style=
-"color: blue">November</span></month>
- <month type="<span style=
-"color: blue">12</span>"><span style=
-"color: blue">December</span></month>
- </monthWidth>
- <monthWidth type="<span style=
-"color: blue">abbreviated</span>">
- <month type="<span style=
-"color: blue">1</span>"><span style=
-"color: blue">Jan</span></month>
- <month type="<span style=
-"color: blue">2</span>"><span style=
-"color: blue">Feb</span></month>
-...
- <month type="<span style=
-"color: blue">11</span>"><span style=
-"color: blue">Nov</span></month>
- <month type="<span style=
-"color: blue">12</span>"><span style=
-"color: blue">Dec</span></month>
- </monthWidth>
- <monthContext type="<span style=
-"color: blue">stand-alone</span>">
- <default type="<span style=
-"color: blue">wide</span>"/>
- <monthWidth type="<span style=
-"color: blue">wide</span>">
- <month type="<span style=
-"color: blue">1</span>"><span style=
-"color: blue">Januaria</span></month>
- <month type="<span style=
-"color: blue">2</span>"><span style=
-"color: blue">Februaria</span></month>
-...
- <month type="<span style=
-"color: blue">11</span>"><span style=
-"color: blue">Novembria</span></month>
- <month type="<span style=
-"color: blue">12</span>"><span style=
-"color: blue">Decembria</span></month>
- </monthWidth>
- <monthWidth type="<span style=
-"color: blue">narrow</span>">
- <month type="<span style=
-"color: blue">1</span>"><span style=
-"color: blue">J</span></month>
- <month type="<span style=
-"color: blue">2</span>"><span style=
-"color: blue">F</span></month>
-...
- <month type="<span style=
-"color: blue">11</span>"><span style=
-"color: blue">N</span></month>
- <month type="<span style=
-"color: blue">12</span>"><span style=
-"color: blue">D</span></month>
- </monthWidth>
- </monthContext>
- </months>
-
- <days>
- <dayContext type="<span style=
-"color: blue">format</span>">
- <dayWidth type="<span style=
-"color: blue">wide</span>">
- <day type="<span style=
-"color: blue">sun</span>"><span style=
-"color: blue">Sunday</span></day>
- <day type="<span style=
-"color: blue">mon</span>"><span style=
-"color: blue">Monday</span></day>
-...
- <day type="<span style=
-"color: blue">fri</span>"><span style=
-"color: blue">Friday</span></day>
- <day type="<span style=
-"color: blue">sat</span>"><span style=
-"color: blue">Saturday</span></day>
- </dayWidth>
- <dayWidth type="<span style=
-"color: blue">abbreviated</span>">
- <day type="<span style=
-"color: blue">sun</span>"><span style=
-"color: blue">Sun</span></day>
- <day type="<span style=
-"color: blue">mon</span>"><span style=
-"color: blue">Mon</span></day>
-...
- <day type="<span style=
-"color: blue">fri</span>"><span style=
-"color: blue">Fri</span></day>
- <day type="<span style=
-"color: blue">sat</span>"><span style=
-"color: blue">Sat</span></day>
- </dayWidth>
- <dayWidth type="<span style=
-"color: blue">narrow</span>">
- <day type="<span style=
-"color: blue">sun</span>"><span style=
-"color: blue">Su</span></day>
- <day type="<span style=
-"color: blue">mon</span>"><span style=
-"color: blue">M</span></day>
-...
- <day type="<span style=
-"color: blue">fri</span>"><span style=
-"color: blue">F</span></day>
- <day type="<span style=
-"color: blue">sat</span>"><span style=
-"color: blue">Sa</span></day>
- </dayWidth>
- </dayContext>
- <dayContext type="<span style=
-"color: blue">stand-alone</span>">
- <dayWidth type="<span style=
-"color: blue">narrow</span>">
- <day type="<span style=
-"color: blue">sun</span>"><span style=
-"color: blue">S</span></day>
- <day type="<span style=
-"color: blue">mon</span>"><span style=
-"color: blue">M</span></day>
-...
- <day type="<span style=
-"color: blue">fri</span>"><span style=
-"color: blue">F</span></day>
- <day type="<span style=
-"color: blue">sat</span>"><span style=
-"color: blue">S</span></day>
- </dayWidth>
- </dayContext>
- </days>
-
- <quarters>
- <quarterContext type="<span style=
-"color: blue">format</span>">
- <quarterWidth type="<span style=
-"color: blue">abbreviated</span>">
- <quarter type="<span style=
-"color: blue">1</span>"><span style=
-"color: blue">Q1</span></quarter>
- <quarter type="<span style=
-"color: blue">2</span>"><span style=
-"color: blue">Q2</span></quarter>
- <quarter type="<span style=
-"color: blue">3</span>"><span style=
-"color: blue">Q3</span></quarter>
- <quarter type="<span style=
-"color: blue">4</span>"><span style=
-"color: blue">Q4</span></quarter>
- </quarterWidth>
- <quarterWidth type="<span style=
-"color: blue">wide</span>">
- <quarter type="<span style=
-"color: blue">1</span>"><span style=
-"color: blue">1st quarter</span></quarter>
- <quarter type="<span style=
-"color: blue">2</span>"><span style=
-"color: blue">2nd quarter</span></quarter>
- <quarter type="<span style=
-"color: blue">3</span>"><span style=
-"color: blue">3rd quarter</span></quarter>
- <quarter type="<span style=
-"color: blue">4</span>"><span style=
-"color: blue">4th quarter</span></quarter>
- </quarterWidth>
- </quarterContext>
- </quarters>
-
- <eras>
- <eraAbbr>
- <era type="<span style=
-"color: blue">0</span>"><span style=
-"color: blue">BC</span></era>
- <era type="<span style=
-"color: blue">0</span>" alt="<span style=
-"color: blue">variant</span>"><span style=
-"color: blue">BCE</span></era>
- <era type="<span style=
-"color: blue">1</span>"><span style=
-"color: blue">AD</span></era>
- <era type="<span style=
-"color: blue">1</span>" alt="<span style=
-"color: blue">variant</span>"><span style=
-"color: blue">CE</span></era>
- </eraAbbr>
- <eraNames>
- <era type="<span style=
-"color: blue">0</span>"><span style=
-"color: blue">Before Christ</span></era>
- <era type="<span style=
-"color: blue">0</span>" alt="<span style=
-"color: blue">variant</span>"><span style=
-"color: blue">Before Common Era</span></era>
- <era type="<span style=
-"color: blue">1</span>"><span style=
-"color: blue">Anno Domini</span></era>
- <era type="<span style=
-"color: blue">1</span>" alt="<span style=
-"color: blue">variant</span>"><span style=
-"color: blue">Common Era</span></era>
- </eraNames>
- <eraNarrow>
- <era type="<span style=
-"color: blue">0</span>"><span style=
-"color: blue">B</span></era>
- <era type="<span style=
-"color: blue">1</span>"><span style=
-"color: blue">A</span></era>
- </eraNarrow>
- </eras>
-</pre>
- <h3>2.2 <a name="monthPatterns_cyclicNameSets" href=
- "#monthPatterns_cyclicNameSets" id=
- "monthPatterns_cyclicNameSets">Elements monthPatterns,
- cyclicNameSets</a></h3>
- <p class="dtd"><!ELEMENT monthPatterns ( alias |
- (monthPatternContext*, special*)) ><br>
- <!ELEMENT monthPatternContext ( alias | (monthPatternWidth*,
- special*)) ><br>
- <!ATTLIST monthPatternContext type ( format | stand-alone |
- numeric ) #REQUIRED ><br>
- <!ELEMENT monthPatternWidth ( alias | (monthPattern*,
- special*)) ><br>
- <!ATTLIST monthPatternWidth type ( abbreviated| narrow |
- wide | all ) #REQUIRED ><br>
- <!ELEMENT monthPattern ( #PCDATA ) ><br>
- <!ATTLIST monthPattern type ( leap | standardAfterLeap |
- combined ) #REQUIRED ><br></p>
- <p class="dtd"><!ELEMENT cyclicNameSets ( alias |
- (cyclicNameSet*, special*)) ><br>
- <!ELEMENT cyclicNameSet ( alias | (cyclicNameContext*,
- special*)) ><br>
- <!ATTLIST cyclicNameSet type ( years | months | days |
- dayParts | zodiacs | solarTerms ) #REQUIRED ><br>
- <!ELEMENT cyclicNameContext ( alias | (cyclicNameWidth*,
- special*)) ><br>
- <!ATTLIST cyclicNameContext type ( format | stand-alone )
- #REQUIRED ><br>
- <!ELEMENT cyclicNameWidth ( alias | (cyclicName*, special*))
- ><br>
- <!ATTLIST cyclicNameWidth type ( abbreviated | narrow | wide
- ) #REQUIRED ><br>
- <!ELEMENT cyclicName ( #PCDATA ) ><br>
- <!ATTLIST cyclicName type NMTOKEN #REQUIRED ><br></p>
- <p>The Chinese lunar calendar can insert a leap month after
- nearly any month of its year; when this happens, the month
- takes the name of the preceding month plus a special marker.
- The Hindu lunar calendars can insert a leap month before any
- one or two months of the year; when this happens, not only does
- the leap month take the name of the following month plus a
- special marker, the following month also takes a special
- marker. Moreover, in the Hindu calendar sometimes a month is
- skipped, in which case the preceding month takes a special
- marker plus the names of both months. The <monthPatterns>
- element structure supports these special kinds of month names.
- It parallels the <months> element structure, with various
- contexts and widths, but with some differences:</p>
- <ul>
- <li>Since the month markers may be applied to numeric months
- as well, there is an additional monthPatternContext type
- "numeric" for this case. When the numeric context is used,
- there is no need for different widths, so the
- monthPatternWidth type is "all" for this case.</li>
- <li>The monthPattern element itself is a pattern showing how
- to create the modified month name from the standard month
- name(s). The three types of possible pattern are for "leap",
- "standardAfterLeap", and "combined".</li>
- <li>The <monthPatterns> element is not present for
- calendars that do not need it.</li>
- </ul>
- <p>The Chinese and Hindu lunar calendars also use a 60-name
- cycle for designating years. The Chinese lunar calendars can
- also use that cycle for months and days, and can use 12-name
- cycles for designating day subdivisions or zodiac names
- associated with years; a 24-name cycle of solar terms (12 pairs
- of minor and major terms) is used to mark intervals in the
- solar cycle. The <cyclicNameSets> element structure
- supports these special kinds of name cycles; a cyclicNameSet
- can be provided for types "year", "month", "day", "dayParts",
- or "zodiacs". For each cyclicNameSet, there is a context and
- width structure similar to that for day names. For a given
- context and width, a set of cyclicName elements provides the
- actual names.</p>
- <p>Example:</p>
- <pre>
- <monthPatterns>
- <monthPatternContext type="format">
- <monthPatternWidth type="wide">
- <monthPattern type="leap">闰{0}</monthPattern>
- </monthPatternWidth>
- </monthPatternContext>
- <monthPatternContext type="stand-alone">
- <monthPatternWidth type="narrow">
- <monthPattern type="leap">闰{0}</monthPattern>
- </monthPatternWidth>
- </monthPatternContext>
- <monthPatternContext type="numeric">
- <monthPatternWidth type="all">
- <monthPattern type="leap">闰{0}</monthPattern>
- </monthPatternWidth>
- </monthPatternContext>
- </monthPatterns>
- <cyclicNameSets>
- <cyclicNameSet type="years">
- <cyclicNameContext type="format">
- <cyclicNameWidth type="abbreviated">
- <cyclicName type="1">甲子</cyclicName>
- <cyclicName type="2">乙丑</cyclicName>
- ...
- <cyclicName type="59">壬戌</cyclicName>
- <cyclicName type="60">癸亥</cyclicName>
- </cyclicNameWidth>
- </cyclicNameContext>
- </cyclicNameSet>
- <cyclicNameSet type="zodiacs">
- <cyclicNameContext type="format">
- <cyclicNameWidth type="abbreviated">
- <cyclicName type="1">鼠</cyclicName>
- <cyclicName type="2">牛</cyclicName>
- ...
- <cyclicName type="11">狗</cyclicName>
- <cyclicName type="12">猪</cyclicName>
- </cyclicNameWidth>
- </cyclicNameContext>
- </cyclicNameSet>
- <cyclicNameSet type="solarTerms">
- <cyclicNameContext type="format">
- <cyclicNameWidth type="abbreviated">
- <cyclicName type="1">立春</cyclicName>
- <cyclicName type="2">雨水</cyclicName>
- ...
- <cyclicName type="23">小寒</cyclicName>
- <cyclicName type="24">大寒</cyclicName>
- </cyclicNameWidth>
- </cyclicNameContext>
- </cyclicNameSet>
- </cyclicNameSets>
-</pre>
- <h3>2.3 <a name="dayPeriods" href="#dayPeriods" id=
- "dayPeriods">Element dayPeriods</a></h3>
- <p>The former am/pm elements have been deprecated, and replaced
- by the more flexible dayPeriods.</p>
- <p class="dtd"><!ELEMENT dayPeriods ( alias |
- (dayPeriodContext*) ) ></p>
- <p class="dtd"><!ELEMENT dayPeriodContext (alias |
- dayPeriodWidth*) ><br>
- <!ATTLIST dayPeriodContext type NMTOKEN #REQUIRED ></p>
- <p class="dtd"><!ELEMENT dayPeriodWidth (alias | dayPeriod*)
- ><br>
- <!ATTLIST dayPeriodWidth type NMTOKEN #REQUIRED ></p>
- <p class="dtd"><!ELEMENT dayPeriod ( #PCDATA ) ><br>
- <!ATTLIST dayPeriod type NMTOKEN #REQUIRED ></p>
- <p>These behave like months, days, and so on in terms of having
- context and width. Each locale has an associated
- dayPeriodRuleSet in the supplemental data, rules that specify
- when the day periods start and end for that locale. Each type
- in the rules needs to have a translation in a dayPeriod (but if
- translation data is missing for a particular variable dayPeriod
- in the locale’s language and script, formatting should fall
- back to using the am/pm values). For more information, see
- <em><a href="#Day_Period_Rules">Day Period Rules</a></em>.</p>
- <p>The dayPeriod names should be distinct within each of the
- context/width combinations, including narrow; as with era
- names, there is less disambiguating information for them, and
- they are more likely to be used in a format that requires
- parsing. In some unambiguous cases, it is acceptable for
- certain overlapping dayPeriods to be the same, such as the
- names for "am" and "morning", or the names for "pm" and
- "afternoon".</p>
- <p class="example">Example:</p>
- <pre>
- <dayPeriods>
- <dayPeriodContext type="format">
- <dayPeriodWidth type="wide">
- <dayPeriod type="am">AM</dayPeriod>
- <dayPeriod type="noon">noon</dayPeriod>
- <dayPeriod type="pm">PM</dayPeriod>
- </dayPeriodWidth>
- </dayPeriodContext>
- </dayPeriods>
-</pre>
- <h3>2.4 <a name="dateFormats" href="#dateFormats" id=
- "dateFormats">Element dateFormats</a></h3>
- <p class="dtd"><!ELEMENT dateFormats (alias | (default*,
- dateFormatLength*, special*)) ><br>
- <!ELEMENT dateFormatLength (alias | (default*, dateFormat*,
- special*)) ><br>
- <!ATTLIST dateFormatLength type ( full | long | medium |
- short ) #REQUIRED ><br>
- <!ELEMENT dateFormat (alias | (pattern*, displayName*,
- special*)) ></p>
- <p>Standard date formats have the following form:</p>
- <pre> <dateFormats>
- <dateFormatLength type=”<span style=
-"color: blue">full</span>”>
- <dateFormat>
- <pattern><span style=
-"color: blue">EEEE, MMMM d, y</span></pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormatLength type="<span style=
-"color: blue">medium</span>">
- <dateFormat type="<span style=
-"color: blue">DateFormatsKey2</span>">
- <pattern><span style=
-"color: blue">MMM d, y</span></pattern>
- </dateFormat>
- </dateFormatLength>
- <dateFormats></pre>
- <p>The patterns for date formats and time formats are defined
- in <i><a href="#Date_Format_Patterns">Date Format
- Patterns</a>.</i> These patterns are intended primarily for
- display of isolated date and time strings in user-interface
- elements, rather than for date and time strings in the middle
- of running text, so capitalization and grammatical form should
- be chosen appropriately.</p>
- <p>Standard date and time patterns are each normally provided
- in four types: full (usually with weekday name), long (with
- wide month name), medium, and short (usually with numeric
- month).</p>
- <h3>2.5 <a name="timeFormats" href="#timeFormats" id=
- "timeFormats">Element timeFormats</a></h3>
- <p class="dtd"><!ELEMENT timeFormats (alias | (default*,
- timeFormatLength*, special*)) ><br>
- <!ELEMENT timeFormatLength (alias | (default*, timeFormat*,
- special*)) ><br>
- <!ATTLIST timeFormatLength type ( full | long | medium |
- short ) #REQUIRED ><br>
- <!ELEMENT timeFormat (alias | (pattern*, displayName*,
- special*)) ></p>
- <p>Standard time formats have the following form:</p>
- <pre> <timeFormats>
- <timeFormatLength type=”<span style=
-"color: blue">full</span>”>
- <timeFormat>
- <displayName><span style=
-"color: blue">DIN 5008 (EN 28601)</span></displayName>
- <pattern><span style=
-"color: blue">h:mm:ss a z</span></pattern>
- </timeFormat>
- </timeFormatLength>
- <timeFormatLength type="<span style=
-"color: blue">medium</span>">
- <timeFormat>
- <pattern><span style=
-"color: blue">h:mm:ss a</span></pattern>
- </timeFormat>
- </timeFormatLength>
- </timeFormats></pre>
- <p>The preference of 12 hour versus 24 hour for the locale can
- be derived from the <a href="#Time_Data">Time Data</a>. If the
- preferred hour symbol is 'h' or 'K'
- then the format is 12 hour; otherwise it is 24 hour. Formats
- with 'h' or 'K' must also include a field with one of the day
- period pattern characters: 'a', 'b', or 'B'.</p>
- <p>To account for customary usage in some countries, APIs
- should allow for formatting times that go beyond 23:59:59. For
- example, in some countries it would be customary to indicate
- that opening hours extending from <em>Friday at 7pm</em> to
- <em>Saturday at 2am</em> in a format like the following:</p>
- <p style="text-align: center">Friday: 19:00 – 26:00</p>
- <p>Time formats use the specific non-location format (z or
- zzzz) for the time zone name. This is the format that should be
- used when formatting a specific time for presentation. When
- formatting a time referring to a recurring time (such as a
- meeting in a calendar), applications should substitute the
- generic non-location format (v or vvvv) for the time zone in
- the time format pattern. See <i><a href=
- "#Using_Time_Zone_Names">Using Time Zone Names</a>.</i> for a
- complete description of available time zone formats and their
- uses.</p>
- <h3>2.6 <a name="dateTimeFormats" href="#dateTimeFormats" id=
- "dateTimeFormats">Element dateTimeFormats</a></h3>
- <p class="dtd"><!ELEMENT dateTimeFormats (alias | (default*,
- dateTimeFormatLength*, availableFormats*, appendItems*,
- intervalFormats*, special*)) ><br></p>
- <p>Date/Time formats have the following form:</p>
- <pre> <dateTimeFormats>
- <dateTimeFormatLength type=”<span style=
-"color: blue">long</span>”>
- <dateTimeFormat>
- <pattern>{1} 'at' {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <dateTimeFormatLength type=”<span style=
-"color: blue">medium</span>”>
- <dateTimeFormat>
- <pattern>{1}, {0}</pattern>
- </dateTimeFormat>
- </dateTimeFormatLength>
- <availableFormats>
- <dateFormatItem id="Hm"><span style=
-"color: blue">HH:mm</span></dateFormatItem>
- <dateFormatItem id="Hms"><span style=
-"color: blue">HH:mm:ss</span></dateFormatItem>
- <dateFormatItem id="M"><span style=
-"color: blue">L</span></dateFormatItem>
- <dateFormatItem id="MEd"><span style=
-"color: blue">E, M/d</span></dateFormatItem>
- <dateFormatItem id="MMM"><span style=
-"color: blue">LLL</span></dateFormatItem>
- <dateFormatItem id="MMMEd"><span style=
-"color: blue">E, MMM d</span></dateFormatItem>
- <dateFormatItem id="MMMMEd"><span style=
-"color: blue">E, MMMM d</span></dateFormatItem>
- <dateFormatItem id="MMMMd"><span style=
-"color: blue">MMMM d</span></dateFormatItem>
- <dateFormatItem id="MMMd"><span style=
-"color: blue">MMM d</span></dateFormatItem>
- <dateFormatItem id="Md"><span style=
-"color: blue">M/d</span></dateFormatItem>
- <dateFormatItem id="d"><span style=
-"color: blue">d</span></dateFormatItem>
- <dateFormatItem id="hm"><span style=
-"color: blue">h:mm a</span></dateFormatItem>
- <dateFormatItem id="ms"><span style=
-"color: blue">mm:ss</span></dateFormatItem>
- <dateFormatItem id="y"><span style=
-"color: blue">yyyy</span></dateFormatItem>
- <dateFormatItem id="yM"><span style=
-"color: blue">M/yyyy</span></dateFormatItem>
- <dateFormatItem id="yMEd"><span style=
-"color: blue">EEE, M/d/yyyy</span></dateFormatItem>
- <dateFormatItem id="yMMM"><span style=
-"color: blue">MMM yyyy</span></dateFormatItem>
- <dateFormatItem id="yMMMEd"><span style=
-"color: blue">EEE, MMM d, yyyy</span></dateFormatItem>
- <dateFormatItem id="yMMMM"><span style=
-"color: blue">MMMM yyyy</span></dateFormatItem>
- <dateFormatItem id="yQ"><span style=
-"color: blue">Q yyyy</span></dateFormatItem>
- <dateFormatItem id="yQQQ"><span style=
-"color: blue">QQQ yyyy</span></dateFormatItem>
- . . .
- </availableFormats>
- <appendItems>
- <appendItem request="<span style=
-"color: blue">G</span>"><span style=
-"color: blue">{0} {1}</span></appendItem>
- <appendItem request="<span style=
-"color: blue">w</span>"><span style=
-"color: blue">{0} ({2}: {1})</span></appendItem>
- . . .
- </appendItems>
- </dateTimeFormats></pre>
- <pre> </calendar>
-
- <calendar type="<span style="color: blue">buddhist</span>">
- <eras>
- <eraAbbr>
- <era type="<span style=
-"color: blue">0</span>"><span style=
-"color: blue">BE</span></era>
- </eraAbbr>
- </eras>
- </calendar></pre>
- <p>These formats allow for date and time formats to be composed
- in various ways.</p>
- <h4>2.6.1 <a name="dateTimeFormat" href="#dateTimeFormat" id=
- "dateTimeFormat">Element dateTimeFormat</a></h4>
- <p class="dtd"><!ELEMENT dateTimeFormatLength (alias |
- (default*, dateTimeFormat*, special*))><br>
- <!ATTLIST dateTimeFormatLength type ( full | long | medium |
- short ) #IMPLIED ><br>
- <!ELEMENT dateTimeFormat (alias | (pattern*, displayName*,
- special*))></p>
- <p>The dateTimeFormat element works like the dateFormats and
- timeFormats, except that the pattern is of the form "{1} {0}",
- where {0} is replaced by the time format, and {1} is replaced
- by the date format, with results such as "8/27/06 7:31 AM".
- Except for the substitution markers {0} and {1}, text in the
- dateTimeFormat is interpreted as part of a date/time pattern,
- and is subject to the same rules described in <a href=
- "#Date_Format_Patterns">Date Format Patterns</a>. This includes
- the need to enclose ASCII letters in single quotes if they are
- intended to represent literal text.</p>
- <p>When combining a standard date pattern with a standard time
- pattern, the type of dateTimeFormat used to combine them is
- determined by the type of the date pattern. For example:</p>
- <table cellspacing="0" cellpadding="4" border="1">
- <caption>
- <a name="Date_Time_Combination_Examples" href=
- "#Date_Time_Combination_Examples" id=
- "Date_Time_Combination_Examples">Date-Time Combination
- Examples</a>
- </caption>
- <tr>
- <th>Date-Time Combination</th>
- <th>dateTimeFormat</th>
- <th>Results</th>
- </tr>
- <tr>
- <td>full date + short time</td>
- <td>full, e.g. "{1} 'at' {0}"</td>
- <td>Wednesday, September 18, 2013 at 4:30 PM</td>
- </tr>
- <tr>
- <td>medium date + long time</td>
- <td>medium, e.g. "{1}, {0}"</td>
- <td>Sep 18, 2013, 4:30:00 PM PDT</td>
- </tr>
- </table>
- <h4>2.6.2 <a name="availableFormats_appendItems" href=
- "#availableFormats_appendItems" id=
- "availableFormats_appendItems">Elements availableFormats,
- appendItems</a></h4>
- <p class="dtd"><!ELEMENT availableFormats (alias |
- (dateFormatItem*, special*))><br>
- <!ELEMENT dateFormatItem ( #PCDATA ) ><br>
- <!ATTLIST dateFormatItem id CDATA #REQUIRED ></p>
- <p>The availableFormats element and its subelements provide a
- more flexible formatting mechanism than the predefined list of
- patterns represented by dateFormatLength, timeFormatLength, and
- dateTimeFormatLength. Instead, there is an open-ended list of
- patterns (represented by dateFormatItem elements as well as the
- predefined patterns mentioned above) that can be matched
- against a requested set of calendar fields and field lengths.
- Software can look through the list and find the pattern that
- best matches the original request, based on the desired
- calendar fields and lengths. For example, the full month and
- year may be needed for a calendar application; the request is
- MMMMyyyy, but the best match may be "y MMMM" or even "G yy
- MMMM", depending on the locale and calendar.</p>
- <p>For some calendars, such as Japanese, a displayed year must
- have an associated era, so for these calendars dateFormatItem
- patterns with a year field should also include an era field.
- When matching availableFormats patterns: If a client requests a
- format string containing a year, and all the availableFormats
- patterns with a year also contain an era, then include the era
- as part of the result.</p>
- <p>The id attribute is a so-called "skeleton", containing only
- field information, and in a canonical order. Examples are
- "yMMMM" for year + full month, or "MMMd" for abbreviated month
- + day. In particular:</p>
- <ul>
- <li>The fields are from the <a href=
- "#Date_Field_Symbol_Table">Date Field Symbol Table</a> in
- <i><a href="#Date_Format_Patterns">Date Format
- Patterns</a></i>.</li>
- <li>The canonical order is from top to bottom in that table;
- that is, "yM" not "My".</li>
- <li>Only one field of each type is allowed; that is, "Hh" is
- not valid.</li>
- </ul>
- <p>In order to support user overrides of default locale
- behavior, data should be supplied for both 12-hour-cycle time
- formats (using h or K) and 24-hour-cycle time formats (using H
- or k), even if one of those styles is not commonly used; the
- locale's actual preference for 12-hour or 24-hour time cycle is
- determined from the <a
- href="#Time_Data">Time Data</a> as described above in
- <a href="#timeFormats">timeFormats</a>. Thus skeletons
- using h or K should have patterns that only use h or K for
- hours, while skeletons using H or k should have patterns that
- only use H or k for hours.</p>
- <p>The rules governing use of day period pattern characters in
- patterns and skeletons are as follows:</p>
- <ul>
- <li>Patterns and skeletons for 24-hour-cycle time formats
- (using H or k) currently <em>should not</em> include fields
- with day period characters (a, b, or B); these pattern
- characters should be ignored if they appear in skeletons.
- However, in the future, CLDR may allow use of B (but not a or
- b) in 24-hour-cycle time formats.</li>
- <li>Patterns for 12-hour-cycle time formats (using h or K)
- <em>must</em> include a day period field using one of a, b,
- or B.</li>
- <li>Skeletons for 12-hour-cycle time formats (using h or K)
- <em>may</em> include a day period field using one of a, b, or
- B. If they do not, the skeleton will be treated as implicitly
- containing a.</li>
- </ul>
- <p>Locales should generally provide availableFormats data for a
- fairly complete set of time skeletons without B, typically the
- following:</p><code>H, h, Hm, hm, Hms, hms, Hmv, hmv, Hmsv,
- hmsv</code>
- <p>Locales that use 12-hour-cycle time formats with B may
- provide availableFormats data for a smaller set of time
- skeletons with B, for example:</p><code>Bh, Bhm, Bhms</code>
- <p>When matching a requested skeleton containing b or B to the
- skeletons actually available in the data, if there is no
- skeleton matching the specified day period field, then find a
- match in which the b or B matches an explicit or implicit 'a'
- in the skeleton, but replace the 'a' in the corresponding
- pattern with the requested day period b or B. The following
- table illustrates how requested skeletons map to patterns with
- different sets of availableFormats data:</p>
- <table cellspacing="0" cellpadding="4" border="1">
- <caption>
- <a name="Mapping_Requested_Time_Skeletons_To_Patterns"
- href="#Mapping_Requested_Time_Skeletons_To_Patterns" id=
- "Mapping_Requested_Time_Skeletons_To_Patterns">Mapping
- Requested Time Skeletons To Patterns</a>
- </caption>
- <tr>
- <th></th>
- <th colspan="2">results for different availableFormats data
- sets</th>
- </tr>
- <tr>
- <th>requested skeleton</th>
- <th>set 1:<br>
- ...id="H">H</date...<br>
- ...id="h">h a</date...</th>
- <th>set 2:<br>
- ...id="H">H</date...<br>
- ...id="h">h a</date...<br>
- ...id="Bh">B h</date...</th>
- </tr>
- <tr>
- <td>"h" (or "ah")</td>
- <td>"h a"</td>
- <td>"h a"</td>
- </tr>
- <tr>
- <td>"bh"</td>
- <td>"h b"</td>
- <td>"h b"</td>
- </tr>
- <tr>
- <td>"Bh"</td>
- <td>"h B"</td>
- <td>"B h"</td>
- </tr>
- <tr>
- <td>"H" (or "aH", "bH", "BH")</td>
- <td>"H"</td>
- <td>"H"</td>
- </tr>
- </table><br>
- <p>The hour input skeleton symbols 'j', 'J', and 'C' can be
- used to select the best hour format (h, H, …) before
- processing, and the appropriate dayperiod format (a, b, B)
- after a successful match that contains an 'a' symbol.</p>
- <p>The dateFormatItems inherit from their parent locale, so the
- inherited items need to be considered when processing.</p>
- <h5><a name="Matching_Skeletons" href="#Matching_Skeletons" id=
- "Matching_Skeletons">2.6.2.1 Matching Skeletons</a></h5>
- <p>It is not necessary to supply dateFormatItems with skeletons
- for every field length; fields in the skeleton and pattern are
- expected to be expanded in parallel to handle a request.</p>
- <p>Typically a “best match” is found using a closest distance
- match, such as:</p>
- <ol>
- <li>Symbols requesting a best choice for the locale are
- replaced.
- <ul>
- <li>j → one of {H, k, h, K}; C → one of {a, b, B}</li>
- </ul>
- </li>
- <li>For fields with symbols representing the same type (year,
- month, day, etc):
- <ol>
- <li>Most symbols have a small distance from each other.
- <ul>
- <li>M ≅ L; E ≅ c; a ≅ b ≅ B; H ≅ k ≅ h ≅ K; ...</li>
- </ul>
- </li>
- <li>Width differences among fields, other than those
- marking text vs numeric, are given small distance from
- each other.
- <ul>
- <li>MMM ≅ MMMM</li>
- <li>MM ≅ M</li>
- </ul>
- </li>
- <li>Numeric and text fields are given a larger distance
- from each other.
- <ul>
- <li>MMM ≈ MM</li>
- </ul>
- </li>
- <li>Symbols representing substantial differences (week of
- year vs week of month) are given much larger a distances
- from each other.
- <ul>
- <li>d ≋ D; ...</li>
- </ul>
- </li>
- </ol>
- </li>
- <li>A requested skeleton that includes both seconds and
- fractional seconds (e.g. “mmssSSS”) is allowed to match a
- dateFormatItem skeleton that includes seconds but not
- fractional seconds (e.g. “ms”). In this case the requested
- sequence of ‘S’ characters (or its length) should be retained
- separately and used when adjusting the pattern, as described
- below.</li>
- <li>Otherwise, missing or extra fields cause a match to fail.
- (But see <strong><a href="#Missing_Skeleton_Fields">Missing
- Skeleton Fields</a></strong> below).</li>
- </ol>
- <p>Once a skeleton match is found, the corresponding pattern is
- used, but with adjustments. Consider the following
- dateFormatItem:</p>
- <pre> <dateFormatItem id="yMMMd"><span style=
- "color: blue">d MMM y</span></dateFormatItem>
-</pre>
- <p>If this is the best match for yMMMMd, pattern is
- automatically expanded to produce the pattern
- "d MMMM y" in response to the request. Of course, if
- the desired behavior is that a request for yMMMMd should
- produce something <i>other</i> than "d MMMM y", a
- separate dateFormatItem must be present, for example:</p>
- <pre> <dateFormatItem id="yMMMMd"><span style=
- "color: blue">d 'de' MMMM 'de' y</span></dateFormatItem></pre>
- <p>However, such automatic expansions should never convert a
- numeric element in the pattern to an alphabetic element.
- Consider the following dateFormatItem:</p>
- <pre>
- <dateFormatItem id="yMMM">y年M月</dateFormatItem></pre>
- <p>If this is the best match for a requested skeleton yMMMM,
- automatic expansion should not produce a corresponding pattern
- “y年MMMM月”; rather, since “y年M月” specifies a numeric month M,
- automatic expansion should not modify the pattern, and should
- produce “y年M月” as the match for requested skeleton yMMMM.</p>
- <p>If the requested skeleton included both seconds and
- fractional seconds and the dateFormatItem skeleton included
- seconds but not fractional seconds, then the seconds field of
- the corresponding pattern should be adjusted by appending the
- locale’s decimal separator, followed by the sequence of ‘S’
- characters from the requested skeleton.</p>
- <h5><a name="Missing_Skeleton_Fields" href=
- "#Missing_Skeleton_Fields" id="Missing_Skeleton_Fields">2.6.2.2
- Missing Skeleton Fields</a></h5>
- <p>If a client-requested set of fields includes both date and
- time fields, and if the availableFormats data does not include
- a dateFormatItem whose skeleton matches the same set of fields,
- then the request should be handled as follows:</p>
- <ol>
- <li>Divide the request into a date fields part and a time
- fields part.</li>
- <li>For each part, find the matching dateFormatItem, and
- expand the pattern as above.</li>
- <li>Combine the patterns for the two dateFormatItems using
- the appropriate dateTimeFormat pattern, determined as follows
- from the requested date fields:
- <ul>
- <li>If the requested date fields include wide month
- (MMMM, LLLL) and weekday name of any length (e.g. E,
- EEEE, c, cccc), use
- <dateTimeFormatLength type="full"></li>
- <li>Otherwise, if the requested date fields include wide
- month, use
- <dateTimeFormatLength type="long"></li>
- <li>Otherwise, if the requested date fields include
- abbreviated month (MMM, LLL), use
- <dateTimeFormatLength type="medium"></li>
- <li>Otherwise use <dateTimeFormatLength
- type="short"></li>
- </ul>
- </li>
- </ol>
- <p class="dtd"><!ELEMENT appendItems (alias | (appendItem*,
- special*))><br>
- <!ELEMENT appendItem ( #PCDATA ) ><br>
- <!ATTLIST appendItem request CDATA ></p>
- <p>In case the best match does not include all the requested
- calendar fields, the appendItems element describes how to
- append needed fields to one of the existing formats. Each
- appendItem element covers a single calendar field. In the
- pattern, {0} represents the format string, {1} the data content
- of the field, and {2} the display name of the field (see
- <a href="#Calendar_Fields">Calendar Fields</a>).</p>
- <h4>2.6.3 <a name="intervalFormats" href="#intervalFormats" id=
- "intervalFormats">Element intervalFormats</a></h4>
- <p class="dtd"><!ELEMENT intervalFormats (alias |
- (intervalFormatFallback*, intervalFormatItem*, special*))
- ></p>
- <p class="dtd"><!ELEMENT intervalFormatFallback ( #PCDATA )
- ></p>
- <p class="dtd"><!ELEMENT intervalFormatItem (alias |
- (greatestDifference*, special*)) ><br>
- <!ATTLIST intervalFormatItem id NMTOKEN #REQUIRED ></p>
- <p class="dtd"><!ELEMENT greatestDifference ( #PCDATA )
- ><br>
- <!ATTLIST greatestDifference id NMTOKEN #REQUIRED ></p>
- <p>Interval formats allow for software to format intervals like
- "Jan 10-12, 2008" as a shorter and more natural format than
- "Jan 10, 2008 - Jan 12, 2008". They are designed to take a
- "skeleton" pattern (like the one used in availableFormats) plus
- start and end datetime, and use that information to produce a
- localized format.</p>
- <p>The data supplied in CLDR requires the software to determine
- the calendar field with the greatest difference before using
- the format pattern. For example, the greatest difference in
- "Jan 10-12, 2008" is the day field, while the greatest
- difference in "Jan 10 - Feb 12, 2008" is the month field. This
- is used to pick the exact pattern. The pattern is then designed
- to be broken up into two pieces by determining the first
- repeating field. For example, "MMM d-d, y" would be broken up
- into "MMM d-" and "d, y". The two parts are formatted with the
- first and second datetime, as described in more detail
- below.</p>
- <p>In case there is no matching pattern, the
- intervalFormatFallback defines the fallback pattern. The
- fallback pattern is of the form "{0} - {1}" or "{1} - {0}",
- where {0} is replaced by the start datetime, and {1} is
- replaced by the end datetime. The fallback pattern determines
- the default order of the interval pattern. "{0} - {1}" means
- the first part of the interval patterns in current local are
- formatted with the start datetime, while "{1} - {0}" means the
- first part of the interval patterns in current locale are
- formatted with the end datetime.</p>
- <p>The id attribute of intervalFormatItem is the "skeleton"
- pattern (like the one used in availableFormats) on which the
- format pattern is based. The id attribute of greatestDifference
- is the calendar field letter, for example 'M', which is the
- greatest difference between start and end datetime.</p>
- <p>The greatest difference defines a specific interval pattern
- of start and end datetime on a "skeleton" and a
- greatestDifference. As stated above, the interval pattern is
- designed to be broken up into two pieces. Each piece is similar
- to the pattern defined in date format. Also, each interval
- pattern could override the default order defined in fallback
- pattern. If an interval pattern starts with "latestFirst:", the
- first part of this particular interval pattern is formatted
- with the end datetime. If an interval pattern starts with
- "earliestFirst:", the first part of this particular interval
- pattern is formatted with the start datetime. Otherwise, the
- order is the same as the order defined in
- intervalFormatFallback.</p>
- <p>For example, the English rules that produce "Jan 10–12,
- 2008", "Jan 10 – Feb 12, 2008", and "Jan 10, 2008 – Feb. 12,
- 2009" are as follows:</p>
- <p class="example"><intervalFormatItem id="yMMMd"><br>
- <greatestDifference id="M">MMM d – MMM d,
- yyyy</greatestDifference><br>
- <greatestDifference id="d">MMM d–d,
- yyyy</greatestDifference><br>
- <greatestDifference id="y">MMM d, yyyy – MMM d,
- yyyy</greatestDifference><br>
- </intervalFormatItem></p>
- <p>To format a start and end datetime, given a particular
- "skeleton":</p>
- <ol>
- <li>Look for the intervalFormatItem element that matches the
- "skeleton", starting in the current locale and then following
- the locale fallback chain up to, but not including root
- (better results are obtained by following steps 2-6 below
- with locale- or language- specific data than by using
- matching intervalFormats from root).</li>
- <li>If no match was found from the previous step, check what
- the closest match is in the fallback locale chain, as in
- availableFormats. That is, this allows for adjusting the
- string value field's width, including adjusting between "MMM"
- and "MMMM", and using different variants of the same field,
- such as 'v' and 'z'.</li>
- <li>If no match was found from the previous steps and the
- skeleton combines date fields such as y,M,d with time fields
- such as H,h,m,s, then an intervalFormatItem can be
- synthesized as follows:
- <ol>
- <li>For greatestDifference values corresponding to the
- date fields in the skeleton, use the mechanisms described
- under <a href=
- "#availableFormats_appendItems">availableFormats</a> to
- generate the complete date-time pattern corresponding to
- the skeleton, and then combine two such patterns using
- the intervalFormatFallback pattern (the result will be
- the same for each greatestDifference of a day or longer).
- For example:<br>
- MMMdHm/d → "MMM d 'at' H:mm – MMM d 'at' H:mm" → "Jan 3
- at 9:00 – Jan 6 at 11:00"</li>
- <li>For greatestDifference values corresponding to the
- time fields in the skeleton, separate the skeleton into a
- date fields part and a time fields part. Use the
- mechanisms described under availableFormats to generate a
- date pattern corresponding to the date fields part. Use
- the time fields part to look up an intervalFormatItem.
- For each greatestDifferent in the intervalFormatItem,
- generate a pattern by using the <a href=
- "#dateTimeFormat">dateTimeFormat</a> to combine the date
- pattern with the intervalFormatItem’s greatestDifference
- element value. For example:<br>
- MMMdHm/H → "MMM d 'at' H:mm – H:mm" → "Jan 3 at 9:00 –
- 11:00"</li>
- </ol>
- </li>
- <li>If a match is found from previous steps, compute the
- calendar field with the greatest difference between start and
- end datetime. If there is no difference among any of the
- fields in the pattern, format as a single date using
- availableFormats, and return.</li>
- <li>Otherwise, look for greatestDifference element that
- matches this particular greatest difference.</li>
- <li>If there is a match, use the pieces of the corresponding
- pattern to format the start and end datetime, as above.</li>
- <li>Otherwise, format the start and end datetime using the
- fallback pattern.</li>
- </ol>
- <h2>3 <a name="Calendar_Fields" href="#Calendar_Fields" id=
- "Calendar_Fields">Calendar Fields</a></h2>
- <p class="dtd"><!ELEMENT fields ( alias | (field*,
- special*)) ><br>
- <!ELEMENT field ( alias | (displayName*, relative*,
- relativeTime*, relativePeriod*, special*)) ><br>
- <!ATTLIST field type ( era | era-short | era-narrow | year |
- year-short | year-narrow | quarter | quarter-short |
- quarter-narrow | month | month-short | month-narrow | week |
- week-short | week-narrow | weekOfMonth | weekOfMonth-short |
- weekOfMonth-narrow | day | day-short | day-narrow | dayOfYear |
- dayOfYear-short | dayOfYear-narrow | weekday | weekday-short |
- weekday-narrow | weekdayOfMonth | weekdayOfMonth-short |
- weekdayOfMonth-narrow | sun | sun-short | sun-narrow | mon |
- mon-short | mon-narrow | tue | tue-short | tue-narrow | wed |
- wed-short | wed-narrow | thu | thu-short | thu-narrow | fri |
- fri-short | fri-narrow | sat | sat-short | sat-narrow |
- dayperiod | dayperiod-short | dayperiod-narrow | hour |
- hour-short | hour-narrow | minute | minute-short |
- minute-narrow | second | second-short | second-narrow | zone |
- zone-short | zone-narrow ) #IMPLIED ></p>
- <p class="dtd"><!ELEMENT relative (#PCDATA) ><br>
- <!ATTLIST relative type NMTOKEN #IMPLIED ></p>
- <p class="dtd"><!ELEMENT relativeTime ( alias |
- (relativeTimePattern*, special*)) ><br>
- <!ATTLIST relativeTime type NMTOKEN #REQUIRED ></p>
- <p class="dtd"><!ELEMENT relativeTimePattern ( #PCDATA )
- ><br>
- <!ATTLIST relativeTimePattern count ( zero | one | two | few
- | many | other ) #REQUIRED ></p>
- <p class="dtd"><!ELEMENT relativePeriod (#PCDATA) ></p>
- <p>Translations may be supplied for names of calendar fields
- (elements of a calendar, such as Day, Month, Year, Hour, and so
- on), and for relative values for those fields (for example, the
- day with relative value -1 is "Yesterday"). There are four
- types of translations; some are only relevant or useful for
- certain types of fields:</p>
- <ul>
- <li><displayName> General display name for the field
- type. This should be relevant for all elements, including
- those like era and zone that might not have useful forms for
- the other name types. These are typically presented in
- titlecase (eg “Day”) since they are intended as labels in a
- UI.</li>
- <li><relative> Display names for the current instance
- of the field, and one or two past and future instances. In
- English, data is provided for year, quarter, month, week,
- day, specific days of the week (sun, mon, tue, …), and—with
- offset 0 only—for hour, minute, and second.</li>
- <li><relativeTime> Display names for an instance of the
- field that is a counted number of units in the past or the
- future relative to the current instance; this needs plural
- forms. In English, data is provided for year, quarter, month,
- week, day, specific days of the week, ,hour, minute, and
- second.</li>
- <li><relativePeriod> Pattern for designating an
- instance of the specified field in relation to some other
- date reference. This is currently only used for weeks, and
- provides a pattern such as “the week of {0}” which can be
- used to generate designations such as “the week of April 11,
- 2016” or “the week of April 11–15”.</li>
- </ul>
- <p>Where there is not a convenient, customary word or phrase in
- a particular language for a particular type of relative value,
- it should be omitted.</p>
- <p>Examples, first for English:</p>
- <pre> <fields>
- …
- <field type="day">
- <displayName>Day</displayName>
- <relative type="-1">yesterday</relative>
- <relative type="0">today</relative>
- <relative type="1">tomorrow</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">in {0} day</relativeTimePattern>
- <relativeTimePattern count="other">in {0} days</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">{0} day ago</relativeTimePattern>
- <relativeTimePattern count="other">{0} days ago</relativeTimePattern>
- </relativeTime>
- </field>
- <field type="weekday">
- <displayName>Day of the Week</displayName>
- </field>
- <field type="sun">
- <relative type="-1">last Sunday</relative>
- <relative type="0">this Sunday</relative>
- <relative type="1">next Sunday</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">in {0} Sunday</relativeTimePattern>
- <relativeTimePattern count="other">in {0} Sundays</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">{0} Sunday ago</relativeTimePattern>
- <relativeTimePattern count="other">{0} Sundays ago</relativeTimePattern>
- </relativeTime>
- </field>
- …
- <field type="hour">
- <displayName>Hour</displayName>
- <relative type="0">now</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">in {0} hour</relativeTimePattern>
- <relativeTimePattern count="other">in {0} hours</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">{0} hour ago</relativeTimePattern>
- <relativeTimePattern count="other">{0} hours ago</relativeTimePattern>
- </relativeTime>
- </field>
- …
- </fields>
-</pre>
- <p>Second, for German; includes relative type="-2"/"2", present
- in the English example:</p>
- <pre> <fields>
- …
- <field type="day">
- <displayName>Tag</displayName>
- <relative type="-2">Vorgestern</relative>
- <relative type="-1">Gestern</relative>
- <relative type="0">Heute</relative>
- <relative type="1">Morgen</relative>
- <relative type="2">Übermorgen</relative>
- <relativeTime type="future">
- <relativeTimePattern count="one">In {0} Tag</relativeTimePattern>
- <relativeTimePattern count="other">In {0} Tagen</relativeTimePattern>
- </relativeTime>
- <relativeTime type="past">
- <relativeTimePattern count="one">Vor {0} Tag</relativeTimePattern>
- <relativeTimePattern count="other">Vor {0} Tagen</relativeTimePattern>
- </relativeTime>
- </field>
- …
- </fields>
-</pre>
- <p>A special name for “now” is indicated using <relative
- type="0"> for the "second" field. For example, in
- English:</p>
- <pre> <field type="second">
- <displayName>Second</displayName>
- <relative type="0">now</relative>
- …
- </field></pre>
- <p>Different widths can be supplied for certain fields, such
- as:</p>
- <pre>
- <field type="<strong>year-short</strong>"><br> <displayName>yr.</displayName><br> <relative type="-1">last yr.</relative><br> <relative type="0">this yr.</relative><br> <relative type="1">next yr.</relative><br> <relativeTime type="future"><br> <relativeTimePattern count="one">in {0} yr.</relativeTimePattern><br> <relativeTimePattern count="other">in {0} yr.</relativeTimePattern><br> </relativeTime><br> <relativeTime type="past"><br> <relativeTimePattern count="one">{0} yr. ago</relativeTimePattern><br> <relativeTimePattern count="other">{0} yr. ago</relativeTimePattern><br> </relativeTime><br></field></pre>
- <p>As in other cases, <strong>narrow</strong> may be ambiguous
- out of context.</p>
- <h2>4 <a name="Supplemental_Calendar_Data" href=
- "#Supplemental_Calendar_Data" id=
- "Supplemental_Calendar_Data">Supplemental Calendar
- Data</a></h2>
- <h3>4.1 <a name="Calendar_Data" href="#Calendar_Data" id=
- "Calendar_Data">Calendar Data</a></h3>
- <p class="dtd"><!ELEMENT calendarData ( calendar* )><br>
- <!ELEMENT calendar ( calendarSystem?, eras? )><br>
- <!ATTLIST calendar type NMTOKENS #REQUIRED><br>
- <!ATTLIST calendar territories NMTOKENS #IMPLIED >
- <!-- deprecated, replaced by calendarPreferenceData
- --></p>
- <p class="dtd"><!ELEMENT calendarSystem EMPTY><br>
- <!ATTLIST calendarSystem type (solar | lunar | lunisolar |
- other) #REQUIRED></p>
- <p class="dtd"><!ELEMENT eras ( era* )></p>
- <p class="dtd"><!ELEMENT era EMPTY><br>
- <!ATTLIST era type NMTOKENS #REQUIRED><br>
- <!ATTLIST era start CDATA #IMPLIED><br>
- <!ATTLIST era end CDATA #IMPLIED></p>
- <p>The <calendarData> element now provides only
- locale-independent data about calendar behaviors via its
- <calendar> subelements, which for each calendar can
- specify the astronomical basis of the calendar (solar, lunar,
- etc.) and the date ranges for its eras.</p>
- <p>Era start or end dates are specified in terms of the
- equivalent proleptic Gregorian date (in "y-M-d" format). Eras
- may be open-ended, with unspecified start or end dates. For
- example, here are the eras for the Gregorian calendar:</p>
- <pre> <era type="0" end="0" />
- <era type="1" start="1" />
-</pre>
- <p>For a sequence of eras with specified start dates, the end
- of each era need not be explicitly specified (it is assumed to
- match the start of the subsequent era). For example, here are
- the first few eras for the Japanese calendar:</p>
- <pre> <era type="0" start="645-6-19"/>
- <era type="1" start="650-2-15"/>
- <era type="2" start="672-1-1"/>
- …
-</pre>
- <p><b>Note:</b> The territories attribute in the calendar
- element is deprecated. It was formerly used to indicate
- calendar preference by territory, but this is now given by the
- <i><a href="#Calendar_Preference_Data">Calendar Preference
- Data</a></i> below.</p>
- <h3>4.2 <a name="Calendar_Preference_Data" href=
- "#Calendar_Preference_Data" id=
- "Calendar_Preference_Data">Calendar Preference Data</a></h3>
- <p class="dtd"><!ELEMENT calendarPreferenceData (
- calendarPreference* ) ><br>
- <!ELEMENT calendarPreference EMPTY ><br>
- <!ATTLIST calendarPreference territories NMTOKENS #REQUIRED
- ><br>
- <!ATTLIST calendarPreference ordering NMTOKENS #REQUIRED
- ></p>
- <p>The calendarPreference element provides a list of commonly
- used calendar types in a territory. The ordering attribute
- indicates the list of calendar types in preferred order. The
- first calendar type in the list is the default calendar type
- for the territory. For example:</p>
- <pre>
- <calendarPreference territories="001" ordering="gregorian"/>
- <calendarPreference territories="JP" ordering="gregorian japanese"/>
- <calendarPreference territories="TH" ordering="buddhist gregorian"/>
-</pre>
- <p>The calendarPreference elements above indicate:</p>
- <ul>
- <li>The default (for territory "001") is that only the
- Gregorian calendar is commonly used.</li>
- <li>For Japan, the Gregorian and Japanese calendars are both
- used, with Gregorian preferred (the default).</li>
- <li>For Thailand, the Buddhist and Gregorian calendars are
- both used, and Buddhist is preferred (the default).</li>
- </ul>
- <p>The calendars in common use for a locale should typically be
- shown in UIs that provide a choice of calendars. (An 'Other...'
- button could give access to the other available calendars.)</p>
- <h3>4.3 <a name="Week_Data" href="#Week_Data" id=
- "Week_Data">Week Data</a></h3>
- <p class="dtd"><!ELEMENT weekData ( minDays*, firstDay*,
- weekendStart*, weekendEnd*, weekOfPreference* )></p>
- <p class="dtd"><!ELEMENT minDays EMPTY><br>
- <!ATTLIST minDays count (1 | 2 | 3 | 4 | 5 | 6 | 7)
- #REQUIRED><br>
- <!ATTLIST minDays territories NMTOKENS #REQUIRED></p>
- <p class="dtd"><!ELEMENT firstDay EMPTY ><br>
- <!ATTLIST firstDay day (sun | mon | tue | wed | thu | fri |
- sat) #REQUIRED><br>
- <!ATTLIST firstDay territories NMTOKENS #REQUIRED></p>
- <p class="dtd"><!ELEMENT weekendStart EMPTY><br>
- <!ATTLIST weekendStart day (sun | mon | tue | wed | thu |
- fri | sat) #REQUIRED><br>
- <!ATTLIST weekendStart territories NMTOKENS
- #REQUIRED></p>
- <p class="dtd"><!ELEMENT weekendEnd EMPTY><br>
- <!ATTLIST weekendEnd day (sun | mon | tue | wed | thu | fri
- | sat) #REQUIRED><br>
- <!ATTLIST weekendEnd territories NMTOKENS #REQUIRED></p>
- <p class="dtd"><!ELEMENT weekOfPreference EMPTY><br>
- <!ATTLIST weekOfPreference locales NMTOKENS
- #REQUIRED><br>
- <!ATTLIST weekOfPreference ordering NMTOKENS
- #REQUIRED></p>
- <p>These values provide territory-specific information needed
- for week-of-year and week-of-month calculations, as well as
- information on conventions for first day of the week, for
- weekends, and for week designations. For most elements, the
- default is provided by the element with territories="001"; for
- weekOfPreference elements the default is provided by the
- element with locales="und".</p>
- <pre><weekData>
- <minDays count="1" territories="001"/>
- <minDays count="4" territories="AD AN AT AX BE BG CH CZ DE DK EE ES FI FJ FO FR GB …"/>
- <firstDay day="mon" territories="001"/>
- <firstDay day="fri" territories="BD MV"/>
- <firstDay day="sat" territories="AE AF BH DJ DZ EG IQ IR JO …"/>
- …
- <weekendStart day="sat" territories="001"/>
- <weekendStart day="sun" territories="IN"/>
- <weekendStart day="thu" territories="AF DZ IR OM SA YE"/>
- <weekendStart day="fri" territories="AE BH EG IL IQ JO KW …"/>
- …
- <weekOfPreference ordering="weekOfYear" locales="und"/>
- <weekOfPreference ordering="weekOfYear weekOfMonth" locales="am az bs cs cy da el et hi ky lt mk sk ta th"/>
- <weekOfPreference ordering="weekOfYear weekOfMonth weekOfInterval" locales="is mn no sv vi"/>
- <weekOfPreference ordering="weekOfYear weekOfDate weekOfMonth" locales="fi zh-TW"/>
- …
-</pre>
- <p>In order for a week to count as the first week of a new year
- for week-of-year calculations, it must include at least the
- number of days in the new year specified by the minDays value;
- otherwise the week will count as the last week of the previous
- year (and for week-of-month calculations, minDays also
- specifies the minimum number of days in the new month for a
- week to count as part of that month).</p>
- <p>The day indicated by firstDay is the one that should be
- shown as the first day of the week in a calendar view. This is
- not necessarily the same as the first day after the weekend (or
- the first work day of the week), which should be determined
- from the weekend information. Currently, day-of-week numbering
- is based on firstDay (that is, day 1 is the day specified by
- firstDay), but in the future we may add a way to specify this
- separately.</p>
- <p>What is meant by the weekend varies from country to country.
- It is typically when most non-retail businesses are closed. The
- time should not be specified unless it is a well-recognized
- part of the day. The weekendStart day defaults to "sat", and
- weekendEnd day defaults to "sun". For more information, see
- <i><a href="tr35.html#Date_Ranges">Dates and Date
- Ranges</a></i>.</p>
- <p>Each weekOfPreference element provides, for its specified
- locales, an ordered list of the preferred types of week
- designations for that set of locales. There are four types of
- week designations, each of which makes use of date patterns
- available in the locale, as follows:</p>
- <table cellspacing="0" cellpadding="4" border="1">
- <caption>
- <a name="Week_Designation_Types" href=
- "#Week_Designation_Types" id="Week_Designation_Types">Week
- Designation Types</a>
- </caption>
- <tr>
- <th width="10%">Type</th>
- <th width="20%">Examples</th>
- <th width="30%">Date Pattern</th>
- <th width="40%">Comments</th>
- </tr>
- <tr>
- <td width="10">weekOfYear</td>
- <td width="20%">week 15 of 2016</td>
- <td width="30%"><dateFormatItem id='yw'
- count='one'>'week' w 'of' <span style=
- "text-align: center">Y<…</span></td>
- <td width="40%" rowspan="2">The <em>week of</em>
- construction takes a <strong>count</strong> attribute, just
- in case the pattern changes depending on the numeric value.
- (In the future, we're likely to add an ordinal value, for
- constructions like “3rd week of March”.)<br>
- In languages where the month name needs grammatical changes
- (aside from just the simple addition of a prefix or
- suffix), localizers will typically use a work-around
- construction.</td>
- </tr>
- <tr>
- <td width="10%">weekOfMonth</td>
- <td width="20%">week 2 of April<br>
- 2nd week of April</td>
- <td width="30%"><dateFormatItem id='MMMMW''
- count='one'>'week' W 'of' MMM<…</td>
- </tr>
- <tr>
- <td width="10%">weekOfDate</td>
- <td width="20%">the week of April 11, 2016</td>
- <td width="30%" rowspan="2"><field
- type="week"><relativePeriod>the week of
- {0}<…</td>
- <td width="40%" rowspan="2">The date pattern that replaces
- {0} is determined separately and may use the first day or
- workday of the week, the range of the full week or work
- week, etc.</td>
- </tr>
- <tr>
- <td width="10%">weekOfInterval</td>
- <td width="20%">the week of April 11–15</td>
- </tr>
- </table>
- <h3>4.4 <a name="Time_Data" href="#Time_Data" id=
- "Time_Data">Time Data</a></h3>
- <p class="dtd"><!ELEMENT timeData ( hours* ) ><br>
- <!ELEMENT hours EMPTY ><br>
- <!ATTLIST hours preferred NMTOKEN #REQUIRED ><br>
- <!ATTLIST hours allowed NMTOKENS #REQUIRED ><br>
- <!ATTLIST hours regions NMTOKENS #REQUIRED ></p>
- <p>This element is for data that indicates, for various
- regions, the preferred time cycle in the region, as well as all
- time cycles that are considered acceptable in the region. The
- defaults are those specified for region 001.</p>
- <p>There is a single <code>preferred</code> value, and multiple
- <code>allowed</code> values. The meanings of the values H, h,
- K, k, b and B are defined in <a href=
- "#Date_Field_Symbol_Table">Date Field Symbol Table</a>. The
- <code>allowed</code> values are in preference order, and are
- used with the 'C' hour skeleton pattern symbol.</p>
- <p>For example, in the following, RU (Russia) is marked as
- using only 24 hour time, and in particular the 24 hour time
- that goes from 0..23 (H), rather than from 1..24 (k).</p>
- <pre><timeData>
- <hours preferred="H" allowed="H h" regions="001 …"/>
- <hours preferred="H" allowed="H K h" regions="JP"/>
- <hours preferred="H" allowed="H" regions="IL RU"/>
- <hours preferred="h" allowed="H h" regions="AE AG AL … US … ZW"/>
- …</pre>
- <p>The B and b date symbols provide for formats like “3:00 at
- night”. When the ‘C’ option is used, the values in
- <code>allowed</code> are traversed from first to last, picking
- the first available format. For example, in the following a
- system that supports hB should choose that as the most
- preferred format for the C (not the <code>preferred</code>
- value H).</p>
- <pre><hours preferred="H" allowed="hB H" regions="CD"/>
-<hours preferred="H" allowed="hB hb h H" regions="KE MM TZ UG"/>
-</pre>Some systems may not want to use B and b, even if preferred
-for the locale, so for compatibility the <code>preferred</code>
-value is limited to {H, h, K, k}, and is the option selected by the
-‘j’ date symbol. Thus the <code>preferred</code> value may not be
-the same as the first <code>allowed</code> value.
- <h3>4.5 <a name="Day_Period_Rule_Sets" href=
- "#Day_Period_Rule_Sets" id="Day_Period_Rule_Sets">Day Period
- Rule Sets</a></h3>
- <p class="dtd"><!ELEMENT dayPeriodRuleSet ( dayPeriodRules*
- ) ><br>
- <!ATTLIST dayPeriodRuleSet type NMTOKEN #IMPLIED ></p>
- <p class="dtd"><!ELEMENT dayPeriodRules (dayPeriodRule*)
- ><br>
- <!ATTLIST dayPeriodRules locales NMTOKENS #REQUIRED ></p>
- <p class="dtd"><!ELEMENT dayPeriodRule EMPTY ><br>
- <!ATTLIST dayPeriodRule type NMTOKEN #REQUIRED ><br>
- <!ATTLIST dayPeriodRule at NMTOKEN #IMPLIED ><br>
- <!ATTLIST dayPeriodRule from NMTOKEN #IMPLIED ><br>
- <!ATTLIST dayPeriodRule before NMTOKEN #IMPLIED ><br></p>
- <p>Each locale can have a set of day period rules, which
- determine the periods during a day for use in time formats like
- "10:00 at night", or to select statements like "Your email
- arrived last night." If locales do not have dayPeriodRules, the
- computation of dayPeriods falls back to AM/PM.</p>
- <p>There are two kinds of dayPeriodRuleSets, based on the
- type:</p>
- <p>The <strong><em>format</em></strong> type is used in
- conjunction with times, such as to express "3:00 in the
- afternoon", or "12:00 noon". Many languages do not normally use
- terms that match AM/PM for such times, instead breaking up the
- day into more periods.</p>
- <p>The <strong>stand-alone</strong> type is used for selecting
- a period of the day for a general time associated with an
- event. For example, it can be used to select a message
- like:</p>
- <p class='xmlExample'><msg ... ><br>
- {day_period, select,<br>
- MORNING1 {Your email arrived yesterday morning.}<br>
- AFTERNOON1 {Your email arrived yesterday afternoon.}<br>
- EVENING1 {Your email arrived yesterday evening.}<br>
- NIGHT1 {Your email arrived last night.}<br>
- other {Your email arrived yesterday.}<br>
- ...<br>
- }<br>
- </msg></p>
- <p>The translated values for the selection
- (<strong>stand-alone</strong>) day periods are intended for use
- in designating a time of day, without an hour value.</p>
- <p>These are relative times within a single day. If the event
- can occur on multiple days, then that needs to be handled at a
- higher level.</p>
- <p>As with plurals, the exact set of periods used for any
- language may be different. It is the responsibility of any
- translation software to pick the relevant day periods for the
- locale for display to the translator (and end user).</p>
- <h4>4.5.1 <a name="Day_Period_Rules" href="#Day_Period_Rules"
- id="Day_Period_Rules">Day Period Rules</a></h4>
- <p>Here are the requirements for a rule set.</p>
- <h5><a name="Fixed_periods" href="#Fixed_periods" id=
- "Fixed_periods">4.5.1.1 Fixed periods</a></h5>There are 4
- dayPeriods that are fixed; am/pm are always defined, and always
- have the same meaning and definition for every locale. Midnight
- and noon are optional, however if they are defined, they have
- the same meaning and definition as in all other locales where
- they are defined.
- <pre><dayPeriodRule type="midnight" at="00:00"/>
-<dayPeriodRule type="am" from="00:00" before="12:00" />
-<dayPeriodRule type="noon" at="12:00"/>
-<dayPeriodRule type="pm" from="12:00" before="24:00" />
-</pre>
- <p>Note that midnight and am can overlap, as can noon and
- pm.<br></p>
- <p>All locales must support am/pm, but not all support
- <strong>noon</strong> or <strong>midnight</strong>; they are
- only supported if they meet the above definitions. For example,
- German has no unique term that means exactly 12:00 noon; the
- closest is Mittag, but that can extend before or after 12
- noon.</p>
- <p><strong>Midnight</strong> is also special, since it can
- refer to either 00:00 or 24:00 — either at the start or end of
- the day. That means that Tuesday 24:00 = Wednesday 00:00.
- “Midnight Tuesday" is thus ambiguous: it means 24:00 in “the
- party is Tuesday from 10pm to 12 midnight”, while it means
- 00:00 in “I was awake from 12 midnight to 3 in the
- morning”.</p>
- <p>It is strongly recommended that implementations provide for
- the ability to specify whether <strong>midnight</strong> is
- supported or not (and for either 00:00 or 24:00 or both), since
- only the caller knows enough of the context to determine what
- to use. In the absence of such information, 24:00 may be the
- best choice.<br></p>
- <h5><a name="Variable_periods" href="#Variable_periods" id=
- "Variable_periods">4.5.1.2 Variable periods</a></h5>
- <ol>
- <li>If a locale has a set of dayPeriodRules for variable
- periods, it needs to completely cover the 24 hours in a day
- (from 0:00 before 24:00), with
- <strong>no</strong> overlaps between
- any dayPeriodRules. They may overlap with the
- <strong>Fixed Periods</strong>.<br>
- If it does not have a rule set for variable periods, behavior
- should fall back to using the fixed periods (am, pm).</li>
- <li>"from" is a closed interval (inclusive). <em>(as is the
- deprecated "to")</em></li>
- <li>"before" is an open interval (exclusive). <em>(as is the
- deprecated "after")</em></li>
- <li>"at" means starting time and end time are the same.
- <em>("at" is deprecated except when used for the fixed
- periods)</em></li>
- <li>There must be exactly one of {at, from, after} and
- exactly one of {at, to, before} for
- each dayPeriodRule.</li>
- <li>Use of non-zero minutes or seconds is deprecated.</li>
- <li>The dayPeriodRules for format must allow that hh:mm
- [period name] and hh [period name] can be parsed uniquely to
- HH:mm [period name].
- <ul>
- <li>For example, you can't have <dayPeriod type =
- "morning1" from="00:00" to="13:00"/> because "12:30
- {morning}" would be ambiguous.</li>
- </ul>
- </li>
- <li>There must not be two rules with the same type. A day
- period rule may, however, span 24:00 / 00:00. Example:
- <ul>
- <li>
- <em>Valid:</em>
- <ul>
- <li><dayPeriod type = "night1" from="21:00"
- to="05:00"/></li>
- </ul>
- </li>
- <li>
- <em>Invalid:</em>
- <ul>
- <li><dayPeriod type = "night1" from="00:00"
- to="05:00"/></li>
- <li><dayPeriod type = "night1" from="21:00"
- to="24:00"/></li>
- </ul>
- </li>
- </ul>
- </li>
- <li>24:00 is <em>only</em> allowed
- in <em>before</em>="24:00".</li>
- </ol>
- <h5><a name="Parsing_Day_Periods" href="#Parsing_Day_Periods"
- id="Parsing_Day_Periods">4.5.1.3 Parsing Day Periods</a></h5>
- <p>When parsing, if the hour is present with a strict parse the
- dayperiod is checked for consistency with the hour. If there is
- no hour, the center of the first
- matching dayPeriodRule can be chosen (starting
- from 0:00). However, if there is other information available
- when parsing, a different point within the interval may be
- chosen.</p>
- <p>The dayPeriodRule may span two days, such as where
- <strong>night1</strong> is [21:00, 06:00). In that case, the
- midpoint is 01:30, so when parsing “Nov 12, at night”, the
- midpoint result would be Nov 12, 01:30. “Nov 12, am”, “Nov 12,
- pm”, “Nov 12, noon” can be parsed similarly, resulting in Nov
- 12, 06:00; Nov 12, 18:00; and Nov 12, 12:00; respectively.</p>
- <p>“Nov 12, midnight” is special, because midnight may mean
- either 00:00 or 24:00. Extra information may be needed to
- disambiguate which is meant, such as whether the time is at the
- start or end of an interval. In the absence of such
- information, 24:00 may be the best choice. See the discussion
- of <strong>midnight</strong> above.</p>
- <p>If rounding is done—including the rounding done by the time
- format—then it needs to be done before the dayperiod is
- computed, so that the correct format is shown.</p>
- <p>For examples, see <a href=
- "https://unicode-org.github.io/cldr-staging/charts/38/supplemental/day_periods.html">
- Day Periods Chart</a>.</p>
- <h2>5 <a name="Time_Zone_Names" href="#Time_Zone_Names" id=
- "Time_Zone_Names">Time Zone Names</a></h2>
- <p class="dtd"><!ELEMENT timeZoneNames (alias |
- (hourFormat*, gmtFormat*, gmtZeroFormat*, regionFormat*,
- fallbackFormat*, zone*, metazone*, special*)) ></p>
- <p class="dtd"><!ELEMENT hourFormat ( #PCDATA ) ><br>
- <!ELEMENT gmtFormat ( #PCDATA ) ><br>
- <!ELEMENT gmtZeroFormat ( #PCDATA ) ></p>
- <p class="dtd"><!ELEMENT regionFormat ( #PCDATA ) ><br>
- <!ATTLIST regionFormat type ( standard | daylight ) #IMPLIED
- ></p>
- <p class="dtd"><!ELEMENT fallbackFormat ( #PCDATA ) ></p>
- <p class="dtd"><!ELEMENT zone (alias | ( long*, short*,
- exemplarCity*, special*)) ><br>
- <!ATTLIST zone type CDATA #REQUIRED ></p>
- <p class="dtd"><!ELEMENT metazone (alias | ( long*, short*,
- special*)) ><br>
- <!ATTLIST metazone type CDATA #REQUIRED ></p>
- <p class="dtd"><!ELEMENT long (alias | (generic*, standard*,
- daylight*, special*)) ><br>
- <!ELEMENT short (alias | (generic*, standard*, daylight*,
- special*)) ></p>
- <p class="dtd"><!ELEMENT generic ( #PCDATA ) ><br>
- <!ELEMENT standard ( #PCDATA ) ><br>
- <!ELEMENT daylight ( #PCDATA ) ></p>
- <p class="dtd"><!ELEMENT exemplarCity ( #PCDATA ) ></p>
- <p>The time zone IDs (tzid) are language-independent, and
- follow the <i>TZ time zone database</i> [<a href=
- "tr35.html#Olson">Olson</a>] and naming conventions. However,
- the display names for those IDs can vary by locale. The generic
- time is so-called <i>wall-time</i>; what clocks use when they
- are correctly switched from standard to daylight time at the
- mandated time of the year.</p>
- <p>Unfortunately, the canonical tzid's (those in zone.tab) are
- not stable: may change in each release of the <i>TZ</i> Time
- Zone database. In CLDR, however, stability of identifiers is
- very important. So the canonical IDs in CLDR are kept stable as
- described in <a href="tr35.html#Canonical_Form">Canonical
- Form</a>.</p>
- <p>The <i>TZ time zone database</i> can have multiple IDs that
- refer to the same entity. It does contain information on
- equivalence relationships between these IDs, such as
- "Asia/Calcutta" and "Asia/Kolkata". It does not remove IDs
- (with a few known exceptions), but it may change the
- "canonical" ID which is in the file zone.tab.</p>
- <p>For lookup purposes specifications such as CLDR need a
- stable canonical ID, one that does not change from release to
- release. The stable ID is maintained as the first alias item
- <i>type</i> element in the file bcp47/timezone.xml, such
- as:</p>
- <pre>
- <type name="inccu" alias="Asia/Calcutta Asia/Kolkata"/></pre>
- <p>That file also contains the short ID used in keywords. In
- versions of CLDR previous to 1.8, the alias information (but
- not the short ID) was in Supplemental Data under the zoneItem,
- such as:</p>
- <pre>
- <zoneItem type="Asia/Calcutta" territory="IN" aliases="Asia/Kolkata"/></pre>
- <p>This element was deprecated after the introduction of
- bcp47/timezone.xml, because the information became redundant
- (or was contained in the <i>TZ time zone database</i>).</p>
- <p>The following is an example of time zone data. Although this
- is an example of possible data, in most cases only the
- exemplarCity needs translation. And that does not even need to
- be present, if a country only has a single time one. As always,
- the <i>type</i> field for each zone is the identification of
- that zone. It is not to be translated.</p>
- <pre><zone type="<span style=
- "color: blue">America/Los_Angeles</span>">
- <long>
- <generic><span style=
-"color: blue">Pacific Time</span></generic>
- <standard><span style=
-"color: blue">Pacific Standard Time</span></standard>
- <daylight><span style=
-"color: blue">Pacific Daylight Time</span></daylight>
- </long>
- <short>
- <generic><span style=
-"color: blue">PT</span></generic>
- <standard><span style=
-"color: blue">PST</span></standard>
- <daylight><span style=
-"color: blue">PDT</span></daylight>
- </short>
- <exemplarCity><span style=
-"color: blue">San Francisco</span></exemplarCity>
-</zone>
-
-<zone type="<span style="color: blue">Europe/London</span>">
- <long>
- <generic><span style=
-"color: blue">British Time</span></generic>
- <standard><span style=
-"color: blue">British Standard Time</span></standard>
- <daylight><span style=
-"color: blue">British Daylight Time</span></daylight>
- </long>
- <exemplarCity><span style=
-"color: blue">York</span></exemplarCity>
-</zone>\
-</pre>
- <p>In a few cases, some time zone IDs do not designate a city,
- as in:</p>
- <pre><zone type="<span style=
- "color: blue">America/Puerto_Rico</span>">
- ...
-</zone>
-
-<zone type="<span style="color: blue">America/Guyana</span>">
- ...
-</zone>
-
-<zone type="<span style="color: blue">America/Cayman</span>">
- ...
-</zone>
-
-<zone type="<span style=
-"color: blue">America/St_Vincent</span>">
- ...
-</zone>
-</pre>
- <p>They may designate countries or territories; their actual
- capital city may be a name that is too common, or, too
- uncommon. CLDR time zone IDs follow the <a href=
- "tr35.html#Olson">Olson</a> naming conventions.</p>
- <blockquote>
- <p class="note"><b>Note:</b> CLDR does not allow "GMT", "UT",
- or "UTC" as translations (short or long) of time zones other
- than GMT itself.</p>
- </blockquote>
- <blockquote>
- <p class="note"><b>Note:</b> Transmitting "14:30" with no
- other context is incomplete unless it contains information
- about the time zone. Ideally one would transmit
- neutral-format date/time information, commonly in UTC (GMT),
- and localize as close to the user as possible. (For more
- about UTC, see [<a href=
- "tr35.html#UTCInfo">UTCInfo</a>].)</p>
- </blockquote>
- <p class="note">The conversion from local time into UTC depends
- on the particular time zone rules, which will vary by location.
- The standard data used for converting local time (sometimes
- called <i>wall time</i>) to UTC and back is the <i>TZ Data</i>
- [<a href="tr35.html#Olson">Olson</a>], used by Linux, UNIX,
- Java, ICU, and others. The data includes rules for matching the
- laws for time changes in different countries. For example, for
- the US it is:</p>
- <blockquote>
- <p>"During the period commencing at 2 o'clock antemeridian on
- the second Sunday of March of each year and ending at 2
- o'clock antemeridian on the first Sunday of November of each
- year, the standard time of each zone established by sections
- 261 to 264 of this title, as modified by section 265 of this
- title, shall be advanced one hour..." (United States Law - 15
- U.S.C. §6(IX)(260-7), as amended by Energy Policy Act of
- 2005).</p>
- </blockquote>
- <p class="note">Each region that has a different time zone or
- daylight savings time rules, either now or at any time back to
- 1970, is given a unique internal ID, such as
- <code>Europe/Paris</code> . (Some IDs are also distinguished on
- the basis of differences before 1970.) As with currency codes,
- these are internal codes. A localized string associated with
- these is provided for users (such as in the Windows <i>Control
- Panels>Date/Time>Time Zone</i>).</p>
- <p class="note">Unfortunately, laws change over time, and will
- continue to change in the future, both for the boundaries of
- time zone regions and the rules for daylight savings. Thus the
- <i>TZ</i> data is continually being augmented. Any two
- implementations using the same version of the <i>TZ</i> data
- will get the same results for the same IDs (assuming a correct
- implementation). However, if implementations use different
- versions of the data they may get different results. So if
- precise results are required then both the <i>TZ</i> ID and the
- <i>TZ</i> data version must be transmitted between the
- different implementations.</p>
- <p class="note">For more information, see [<a href=
- "tr35.html#DataFormats">Data Formats</a>].</p>
- <p>The following subelements of <timeZoneNames> are used
- to control the fallback process described in <a href=
- "#Using_Time_Zone_Names">Using Time Zone Names</a>.</p>
- <table cellspacing="0" cellpadding="4" border="1">
- <caption>
- <a name="timeZoneNames_Elements_Used_for_Fallback" href=
- "#timeZoneNames_Elements_Used_for_Fallback" id=
- "timeZoneNames_Elements_Used_for_Fallback"><timeZoneNames>
- Elements Used for Fallback</a>
- </caption>
- <tr>
- <th>Element Name</th>
- <th>Data Examples</th>
- <th>Results/Comment</th>
- </tr>
- <tr>
- <td rowspan="2">hourFormat</td>
- <td rowspan="2">"+HHmm;-HHmm"</td>
- <td>"+1200"</td>
- </tr>
- <tr>
- <td>"-1200"</td>
- </tr>
- <tr>
- <td rowspan="2">gmtFormat</td>
- <td>"GMT{0}"</td>
- <td>"GMT-0800"</td>
- </tr>
- <tr>
- <td>"{0}ВпГ"</td>
- <td>"-0800ВпГ"</td>
- </tr>
- <tr>
- <td>gmtZeroFormat</td>
- <td>"GMT"</td>
- <td>Specifies how GMT/UTC with no explicit offset (implied
- 0 offset) should be represented.</td>
- </tr>
- <tr>
- <td rowspan="2">regionFormat</td>
- <td>"{0} Time"</td>
- <td>"Japan Time"</td>
- </tr>
- <tr>
- <td>"Hora de {0}"</td>
- <td>"Hora de Japón"</td>
- </tr>
- <tr>
- <td rowspan="2">regionFormat type="daylight"<br>
- (or "standard")</td>
- <td>"{0} Daylight Time"</td>
- <td>"France Daylight Time"</td>
- </tr>
- <tr>
- <td>"horario de verano de {0}"</td>
- <td>"horario de verano de Francia"</td>
- </tr>
- <tr>
- <td>fallbackFormat</td>
- <td>"{1} ({0})"</td>
- <td>"Pacific Time (Canada)"</td>
- </tr>
- </table>
- <p>When referring to the abbreviated (short) form of the time
- zone name, there are often situations where the location-based
- (city or country) time zone designation for a particular
- language may not be in common usage in a particular
- territory.</p>
- <blockquote>
- <p class="note"><b>Note:</b> User interfaces for time zone
- selection can use the "generic location format" for time zone
- names to obtain the most useful ordering of names in a menu
- or list; see <i><a href="#Using_Time_Zone_Names">Using Time
- Zone Names</a></i> and the zone section of the <i><a href=
- "#Date_Field_Symbol_Table">Date Field Symbol
- Table</a>.</i></p>
- </blockquote>
- <h3>5.1 <a name="Metazone_Names" href="#Metazone_Names" id=
- "Metazone_Names">Metazone Names</a></h3>
- <p>A metazone is an grouping of one or more internal TZIDs that
- share a common display name in current customary usage, or that
- have shared a common display name during some particular time
- period. For example, the zones <i>Europe/Paris, Europe/Andorra,
- Europe/Tirane, Europe/Vienna, Europe/Sarajevo, Europe/Brussels,
- Europe/Zurich, Europe/Prague, Europe/Berlin</i>, and so on are
- often simply designated <i>Central European Time</i> (or
- translated equivalent).</p>
- <p>A metazone's display fields become a secondary fallback if
- an appropriate data field cannot be found in the explicit time
- zone data. The <i>usesMetazone</i> field indicates that the
- target metazone is active for a particular time. This also
- provides a mechanism to effectively deal with situations where
- the time zone in use has changed for some reason. For example,
- consider the TZID "America/Indiana/Knox", which observed
- Central time (GMT-6:00) prior to October 27, 1991, and has
- currently observed Central time since April 2, 2006, but has
- observed Eastern time ( GMT-5:00 ) between these two dates.
- This is denoted as follows</p>
- <pre><timezone type="America/Indiana/Knox">
- <usesMetazone to="1991-10-27 07:00" mzone="America_Central"/>
- <usesMetazone to="2006-04-02 07:00" from="1991-10-27 07:00" mzone="America_Eastern"/>
- <usesMetazone from="2006-04-02 07:00" mzone="America_Central"/>
-</timezone></pre>
- <p>Note that the dates and times are specified in UTC, not
- local time.</p>
- <p>The metazones can then have translations in different locale
- files, such as the following.</p>
- <pre><metazone type="America_Central">
- <long>
- <generic>Central Time</generic>
- <standard>Central Standard Time</standard>
- <daylight>Central Daylight Time</daylight>
- </long>
- <short>
- <generic>CT</generic>
- <standard>CST</standard>
- <daylight>CDT</daylight>
- </short>
-</metazone>
-<metazone type="America_Eastern">
- <long>
- <generic>Eastern Time</generic>
- <standard>Eastern Standard Time</standard>
- <daylight>Eastern Daylight Time</daylight>
- </long>
- <short>
- <generic>ET</generic>
- <standard>EST</standard>
- <daylight>EDT</daylight>
- </short>
-</metazone></pre>
- <pre><metazone type="America_Eastern">
- <long>
- <generic>Heure de l’Est</generic>
- <standard>Heure normale de l’Est</standard>
- <daylight>Heure avancée de l’Est</daylight>
- </long>
- <short>
- <generic>HE</generic>
- <standard>HNE</standard>
- <daylight>HAE</daylight>
- </short>
-</metazone>
-</pre>
- <p>When formatting a date and time value using this data, an
- application can properly be able to display "Eastern Time" for
- dates between 1991-10-27 and 2006-04-02, but display "Central
- Time" for current dates. (See also <i><a href=
- "tr35.html#Date_Ranges">Dates and Date Ranges</a></i>).</p>
- <p>Metazones are used with the 'z', 'zzzz', 'v', and 'vvvv date
- time pattern characters, and not with the 'Z', 'ZZZZ', 'VVVV'
- and other pattern characters for time zone formatting. For more
- information, see <a href="#Date_Format_Patterns"><u>Date Format
- Patterns</u></a> .</p>
- <p>The commonlyUsed element is now deprecated. The CLDR
- committee has found it nearly impossible to obtain accurate and
- reliable data regarding which time zone abbreviations may be
- understood in a given territory, and therefore has changed to a
- simpler approach. Thus, if the short metazone form is available
- in a given locale, it is to be used for formatting regardless
- of the value of commonlyUsed. If a given short metazone form is
- known NOT to be understood in a given locale and the parent
- locale has this value such that it would normally be inherited,
- the inheritance of this value can be explicitly disabled by use
- of the 'no inheritance marker' as the value, which is 3
- simultaneous empty set characters ( U+2205 ).</p>
- <h2>6 <a name="Supplemental_Time_Zone_Data" href=
- "#Supplemental_Time_Zone_Data" id=
- "Supplemental_Time_Zone_Data">Supplemental Time Zone
- Data</a></h2>
- <h3>6.1 <a name="Metazones" href="#Metazones" id=
- "Metazones">Metazones</a></h3>
- <p class="dtd"><!ELEMENT metaZones (metazoneInfo?,
- mapTimezones?) ><br></p>
- <p class="dtd"><!ELEMENT metazoneInfo (timezone*) ></p>
- <p class="dtd"><!ELEMENT timezone (usesMetazone*) ><br>
- <!ATTLIST timezone type CDATA #REQUIRED ></p>
- <p class="dtd"><!ELEMENT usesMetazone EMPTY ><br>
- <!ATTLIST usesMetazone mzone NMTOKEN #REQUIRED ><br>
- <!ATTLIST usesMetazone from CDATA #IMPLIED ><br>
- <!ATTLIST usesMetazone to CDATA #IMPLIED ></p>
- <p class="dtd"><!ELEMENT mapTimezones ( mapZone* ) ><br>
- <!ATTLIST mapTimezones type NMTOKEN #IMPLIED ><br>
- <!ATTLIST mapTimezones typeVersion CDATA #IMPLIED ><br>
- <!ATTLIST mapTimezones otherVersion CDATA #IMPLIED ><br>
- <!ATTLIST mapTimezones references CDATA #IMPLIED ></p>
- <p class="dtd"><!ELEMENT mapZone EMPTY ><br>
- <!ATTLIST mapZone type CDATA #REQUIRED ><br>
- <!ATTLIST mapZone other CDATA #REQUIRED ><br>
- <!ATTLIST mapZone territory CDATA #IMPLIED ><br>
- <!ATTLIST mapZone references CDATA #IMPLIED ></p>
- <p>The following subelement of <metaZones> provides a
- mapping from a single Unicode time zone id to metazones. For
- more information about metazones, See <i><a href=
- "tr35-dates.html#Time_Zone_Names">Time Zone Names</a></i>.</p>
- <pre><metazoneInfo>
- <timezone type="Europe/Andorra">
- <usesMetazone mzone="Europe_Central"/>
- </timezone>
- ....
- <timezone type="Asia/Yerevan">
- <usesMetazone to="1991-09-22 20:00" mzone="Yerevan"/>
- <usesMetazone from="1991-09-22 20:00" mzone="Armenia"/>
- </timezone>
- ....
-</pre>
- <p>The following subelement of <metaZones> specifies a
- mapping from a metazone to golden zones for each territory. For
- more information about golden zones, see <i><a href=
- "tr35-dates.html#Using_Time_Zone_Names">Using Time Zone
- Names</a></i>.</p>
- <pre><mapTimezones type="metazones">
- <mapZone other="Acre" territory="001" type="America/Rio_Branco"/>
- <mapZone other="Afghanistan" territory="001" type="Asia/Kabul"/>
- <mapZone other="Africa_Central" territory="001" type="Africa/Maputo"/>
- <mapZone other="Africa_Central" territory="BI" type="Africa/Bujumbura"/>
- <mapZone other="Africa_Central" territory="BW" type="Africa/Gaborone"/>
- ....
-</pre>
- <h3>6.2 <a name="Windows_Zones" href="#Windows_Zones" id=
- "Windows_Zones">Windows Zones</a></h3>
- <p class="dtd"><!ELEMENT windowsZones (mapTimezones?)
- ></p>
- <p>The <mapTimezones> element can be also used to provide
- mappings between Unicode time zone IDs and other time zone IDs.
- This example specifies a mapping from Windows TZIDs to Unicode
- time zone IDs .</p>
- <pre>
- <mapTimezones otherVersion="07dc0000" typeVersion="2011n">
- ....
- <!-- (UTC-08:00) Baja California -->
- <mapZone other="Pacific Standard Time (Mexico)" territory="001" type="America/Santa_Isabel"/>
- <mapZone other="Pacific Standard Time (Mexico)" territory="MX" type="America/Santa_Isabel"/>
-
- <!-- (UTC-08:00) Pacific Time (US & Canada) -->
- <mapZone other="Pacific Standard Time" territory="001" type="America/Los_Angeles"/>
- <mapZone other="Pacific Standard Time" territory="CA" type="America/Vancouver America/Dawson America/Whitehorse"/>
- <mapZone other="Pacific Standard Time" territory="MX" type="America/Tijuana"/>
- <mapZone other="Pacific Standard Time" territory="US" type="America/Los_Angeles"/>
- <mapZone other="Pacific Standard Time" territory="ZZ" type="PST8PDT"/>
- ....
-</pre>
- <p>The attributes otherVersion and typeVersion in
- <mapTimezones> specify the versions of two systems. In
- the example above, otherVersion="07dc0000" specifies the
- version of Windows time zone and typeVersion="2011n" specifies
- the version of Unicode time zone IDs. The attribute
- territory="001" in <mapZone> element indicates the long
- canonical Unicode time zone ID specified by the type attribute
- is used as the default mapping for the Windows TZID. For each
- unique Windows TZID, there must be exactly one <mapZone>
- element with territory="001". <mapZone> elements other
- than territory="001" specify territory specific mappings. When
- multiple Unicode time zone IDs are available for a single
- territory, the value of the type attribute will be a list of
- Unicode time zone IDs delimited by space. In this case, the
- first entry represents the default mapping for the territory.
- The territory "ZZ" is used when a Unicode time zone ID is not
- associated with a specific territory.</p>
- <p><b>Note:</b> The long canonical Unicode time zone ID might
- be deprecated in the tz database[<a href=
- "tr35.html#Olson">Olson</a>]. For example, CLDR uses
- "Asia/Culcutta" as the long canonical time zone ID for Kolkata,
- India. The same ID was moved to 'backward' file and replaced
- with a new ID "Asia/Kolkata" in the tz database. Therefore, if
- you want to get an equivalent Windows TZID for a zone ID in the
- tz dadtabase, you have to resolve the long canonical Unicode
- time zone ID (e.g. "Asia/Culcutta") for the zone ID (e.g.
- "Asia/Kolkata"). For more details, see <a href=
- "tr35.html#Time_Zone_Identifiers">Section 3.7.1.2 Time Zone
- Identifiers</a>.</p>
- <p><b>Note:</b> Not all Unicode time zones have equivalent
- Windows TZID mappings. Also, not all Windows TZIDs have
- equivalent Unicode time zones. For example, there is no
- equivalent Windows zone for Unicode time zone
- "Australia/Lord_Howe", and there is no equivalent Unicode time
- zone for Windows zone "E. Europe Standard Time" (as of CLDR 25
- release).</p>
- <h3>6.3 <a name="Primary_Zones" href="#Primary_Zones" id=
- "Primary_Zones">Primary Zones</a></h3>
- <p class="dtd"><!ELEMENT primaryZones ( primaryZone* )
- ><br>
- <!ELEMENT primaryZone ( #PCDATA ) ><br>
- <!ATTLIST primaryZone iso3166 NMTOKEN #REQUIRED ></p>
- <p>This element is for data that is used to format a time
- zone’s generic location name. Each <primaryZone> element
- specifies the dominant zone for a region; this zone should use
- the region name for its generic location name even though there
- are other canonical zones available in the same region. For
- example, Asia/Shanghai is displayed as "China Time", instead of
- "Shanghai Time". Sample data:</p>
- <pre><primaryZones>
- <primaryZone iso3166="CL">America/Santiago</primaryZone>
- <primaryZone iso3166="CN">Asia/Shanghai</primaryZone>
- <primaryZone iso3166="DE">Europe/Berlin</primaryZone>
- …
-</pre>
- <p>This information was previously specified by the LDML
- <singleCountries> element under each locale’s
- <timeZoneNames> element. However, that approach had
- inheritance issues, and the data is not really locale-specific
- anyway.</p>
- <h2>7 <a name="Using_Time_Zone_Names" href=
- "#Using_Time_Zone_Names" id="Using_Time_Zone_Names">Using Time
- Zone Names</a></h2>
- <p>There are three main types of formats for zone identifiers:
- GMT, generic (wall time), and standard/daylight. Standard and
- daylight are equivalent to a particular offset from GMT, and
- can be represented by a GMT offset as a fallback. In general,
- this is not true for the generic format, which is used for
- picking timezones or for conveying a timezone for specifying a
- recurring time (such as a meeting in a calendar). For either
- purpose, a GMT offset would lose information.</p>
- <h3>7.1 <a name="Time_Zone_Format_Terminology" href=
- "#Time_Zone_Format_Terminology" id=
- "Time_Zone_Format_Terminology">Time Zone Format
- Terminology</a></h3>
- <p>The following terminology defines more precisely the formats
- that are used.</p>
- <p><b>Generic non-location format:</b> Reflects "wall time"
- (what is on a clock on the wall): used for recurring events,
- meetings, or anywhere people do not want to be overly specific.
- For example, "10 am Pacific Time" will be GMT-8 in the winter,
- and GMT-7 in the summer.</p>
- <ul>
- <li>"Pacific Time" (long)</li>
- <li>"PT" (short)</li>
- </ul>
- <p><b>Generic partial location format:</b> Reflects "wall
- time": used as a fallback format when the generic non-location
- format is not specific enough.</p>
- <ul>
- <li>"Pacific Time (Canada)" (long)</li>
- <li>"PT (Whitehorse)" (short)</li>
- </ul>
- <p><b>Generic location format:</b> Reflects "wall time": a
- primary function of this format type is to represent a time
- zone in a list or menu for user selection of time zone. It is
- also a fallback format when there is no translation for the
- generic non-location format. Times can also be organized
- hierarchically by country for easier lookup.</p>
- <blockquote>
- <p>France Time<br>
- Italy Time<br>
- Japan Time<br>
- United States<br>
- Chicago Time<br>
- Denver Time<br>
- Los Angeles Time<br>
- New York Time<br>
- United Kingdom Time</p>
- </blockquote>
- <p>Note: A generic location format is constructed by a part of
- time zone ID representing an exemplar city name or its country
- as the final fallback. However, there are Unicode time zones
- which are not associated with any locations, such as
- "Etc/GMT+5" and "PST8PDT". Although the date format pattern
- "VVVV" specifies the generic location format, but it displays
- localized GMT format for these. Some of these time zones
- observe daylight saving time, so the result (localized GMT
- format) may change depending on input date. For generating a
- list for user selection of time zone with format "VVVV", these
- non-location zones should be excluded.</p>
- <p><b>Specific non-location format:</b> Reflects a specific
- standard or daylight time, which may or may not be the wall
- time. For example, "10 am Pacific Standard Time" will be GMT-8
- in the winter and in the summer.</p>
- <ul>
- <li>"Pacific Standard Time" (long)</li>
- <li>"PST" (short)</li>
- <li>"Pacific Daylight Time" (long)</li>
- <li>"PDT" (short)</li>
- </ul>
- <p><b>Localized GMT format:</b> A constant, specific offset
- from GMT (or UTC), which may be in a translated form. There are
- two styles for this. The first is used when there is an
- explicit non-zero offset from GMT; this style is specified by
- the <gmtFormat> element and <hourFormat> element.
- The long format always uses 2-digit hours field and minutes
- field, with optional 2-digit seconds field. The short format is
- intended for the shortest representation and uses hour fields
- without leading zero, with optional 2-digit minutes and seconds
- fields. The digits used for hours, minutes and seconds fields
- in this format are the locale's default decimal digits:</p>
- <ul>
- <li>"GMT+03:30" (long)</li>
- <li>"GMT+3:30" (short)</li>
- <li>"UTC-03.00" (long)</li>
- <li>"UTC-3" (short)</li>
- <li>"Гриинуич+03:30" (long)</li>
- </ul>
- <p>Otherwise (when the offset from GMT is zero, referring to
- GMT itself) the style specified by the <gmtZeroFormat>
- element is used:</p>
- <ul>
- <li>"GMT"</li>
- <li>"UTC"</li>
- <li>"Гриинуич"</li>
- </ul>
- <p><b>ISO 8601 time zone formats:</b> The formats based on the
- [<a href="tr35.html#ISO8601">ISO 8601</a>] local time
- difference from UTC ("+" sign is used when local time offset is
- 0), or the UTC indicator ("Z" - only when the local time offset
- is 0 and the specifier X* is used). The ISO 8601 basic format
- does not use a separator character between hours and minutes
- field, while the extended format uses colon (':') as the
- separator. The ISO 8601 basic format with hours and minutes
- fields is equivalent to RFC 822 zone format.</p>
- <ul>
- <li>"-0800" (basic)</li>
- <li>"-08" (basic - short)</li>
- <li>"-08:00" (extended)</li>
- <li>"Z" (UTC)</li>
- </ul>
- <blockquote>
- <p class="note">Note: This specification extends the original
- ISO 8601 formats and some format specifiers append seconds
- field when necessary.</p>
- </blockquote>
- <p><b>Raw Offset</b> - an offset from GMT that does not include
- any daylight savings behavior. For example, the raw offset for
- Pacific Time is -8, even though the <i>observed offset</i> may
- be -8 or -7.</p>
- <p><b>Metazone</b> - a collection of time zones that share the
- same behavior and same name during some period. They may differ
- in daylight behavior (whether they have it and when).</p>
- <p>For example, the TZID America/Cambridge_Bay is in the
- following metazones during various periods:</p>
- <blockquote>
- <p><font size="2"><timezone
- type="America/Cambridge_Bay"><br>
- <usesMetazone to="1999-10-31 08:00"
- mzone="America_Mountain"/><br>
- <usesMetazone to="2000-10-29 07:00" from="1999-10-31
- 08:00" mzone="America_Central"/><br>
- <usesMetazone to="2000-11-05 05:00" from="2000-10-29
- 07:00" mzone="America_Eastern"/><br>
- <usesMetazone to="2001-04-01 09:00" from="2000-11-05
- 05:00" mzone="America_Central"/><br>
- <usesMetazone from="2001-04-01 09:00"
- mzone="America_Mountain"/><br>
- </timezone></font></p>
- </blockquote>
- <p>Zones may join or leave a metazone over time. The data
- relating between zones and metazones is in the supplemental
- information; the locale data is restricted to translations of
- metazones and zones.</p>
- <blockquote>
- <b>Invariants:</b>
- <ul>
- <li>At any given point in time, each zone belongs to no
- more than one metazone.</li>
- <li>At a given point in time, a zone may not belong to any
- metazones.</li>
- <li><i>Except for daylight savings</i>, at any given time,
- all zones in a metazone have the same offset at that
- time.</li>
- </ul>
- </blockquote>
- <p><b>Golden Zone</b> - the TZDB zone that exemplifies a
- metazone. For example, America/New_York is the golden zone for
- the metazone America_Eastern:</p>
- <blockquote>
- <p><font size="2"><mapZone other="America_Eastern"
- territory="001" type="America/New_York"/></font></p>
- </blockquote>
- <blockquote>
- <b>Invariants:</b>
- <ul>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">The
- golden zones are those in mapZone supplemental data under
- the territory "001".</li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">Every
- metazone has exactly one golden zone.</li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">Each
- zone has at most one metazone for which it is golden.</li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">The
- golden zone is in that metazone during the entire life of
- the metazone. (The raw offset of the golden zone may change
- over time.)</li>
- <li>Each other zone must have the same raw offset as the
- golden zone, for the entire period that it is in the
- metazone. (It might not have the same offset when daylight
- savings is in effect.)</li>
- <li>A golden zone in mapTimezones must have reverse mapping
- in metazoneInfo.</li>
- <li>A single time zone can be a golden zone of multiple
- different metazones if any two of them are never active at
- a same time.</li>
- </ul>
- </blockquote>
- <p><b>Preferred Zone</b> - for a given TZID, the "best" zone
- out of a metazone for a given country or language.</p>
- <blockquote>
- <b>Invariants:</b>
- <ul>
- <li>The preferred zone for a given country XX are those in
- mapZone supplemental data under the territory XX.</li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">Every
- metazone has at most one preferred zone for a given
- territory XX.</li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">Each
- zone has at most one metazone for which it is preferred for
- a territory XX.</li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">The
- preferred zone for a given metazone and territory XX is in
- a metazone M during any time when any other zone in XX is
- also in M</li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">A
- preferred zone in mapTimezones must have reverse mapping in
- metazoneInfo</li>
- </ul>
- </blockquote>
- <p>For example, for America_Pacific the preferred zone for
- Canada is America/Vancouver, and the preferred zone for Mexico
- is America/Tijuana. The golden zone is America/Los_Angeles,
- which is also also the preferred zone for any other
- country.</p>
- <blockquote>
- <p><font size="2"><mapZone other="America_Pacific"
- territory="001" type="America/Los_Angeles"/><br>
- <mapZone other="America_Pacific" territory="CA"
- type="America/Vancouver"/><br>
- <mapZone other="America_Pacific" territory="MX"
- type="America/Tijuana"/></font></p>
- </blockquote>
- <p><a name="fallbackFormat" href="#fallbackFormat" id=
- "fallbackFormat"><b>fallbackFormat</b>:</a> a formatting string
- such as "{1} ({0})", where {1} is the metazone, and {0} is the
- country or city.</p>
- <p><b>regionFormat:</b> a formatting string such as "{0} Time",
- where {0} is the country or city.</p>
- <h3>7.2 <a name="Time_Zone_Goals" href="#Time_Zone_Goals" id=
- "Time_Zone_Goals">Goals</a></h3>
- <p>The timezones are designed so that:</p>
- <blockquote>
- <p>For any given locale, every <i>time</i> round trips with
- all patterns (but not necessarily every timezone). That is,
- given a time and a format pattern with a zone string, you can
- format, then parse, and get back the same time.</p>
- <p>Note that the round-tripping is not just important for
- parsing; it provides for formatting dates and times in an
- unambiguous way for users. It is also important for
- testing.<br>
- <br>
- There are exceptions to the above for transition times.</p>
- <ul>
- <li>With generic format, time zone ID or exemplar city
- name, during the transition when the local time maps to two
- possible GMT times.
- <ul>
- <li>For example, Java works as follows, favoring
- standard time:</li>
- <li>Source: Sun Nov 04 01:30:00 PDT 2007</li>
- <li>=> Formatted: "Sunday, November 4, 2007 1:30:00
- AM"</li>
- <li>=> Parsed: Sun Nov 04 01:30:00 PST 2007</li>
- </ul>
- </li>
- <li>When the timezone changes offset, say from GMT+4 to
- GMT+5, there can also be a gap.</li>
- </ul>
- <p>The V/VV/VVV/VVVV format will roundtrip not only the time,
- but the canonical timezone.</p>
- </blockquote>
- <p>When the data for a given format is not available, a
- fallback format is used. The fallback order is given in the
- following by a list.</p>
- <ol>
- <li>
- <b>Specifics</b>
- <ul>
- <li>z - [short form] specific non-location
- <ul>
- <li>falling back to short localized GMT</li>
- </ul>
- </li>
- <li>zzzz - [long form] specific non-location
- <ul>
- <li>falling back to long localized GMT</li>
- </ul>
- </li>
- <li>Z/ZZZZZ/X+/x+ - ISO 8601 formats (no fallback
- necessary)</li>
- <li>ZZZZ/O+ - Localized GMT formats (no fallback
- necessary)</li>
- </ul>
- </li>
- <li>
- <b>Generics</b>
- <ul>
- <li>v - [short form] generic non-location<br>
- <i>(however, the rules are more complicated, see #5
- below)</i>
- <ul>
- <li>falling back to generic location</li>
- <li>falling back to short localized GMT</li>
- </ul>
- </li>
- <li>vvvv - [long form] generic non-location<br>
- <i>(however, the rules are more complicated, see #5
- below)</i>
- <ul>
- <li>falling back to generic location</li>
- <li>falling back to long localized GMT</li>
- </ul>
- </li>
- <li>V - short time zone ID
- <ul>
- <li>falling back to the special ID "unk"
- (Unknown)</li>
- </ul>
- </li>
- <li>VV - long time zone ID (no fallback necessary,
- because this is the input)</li>
- <li>VVV - exemplar city
- <ul>
- <li>falling back to the localized exemplar city for
- the unknown zone (Etc/Unknown), for example "Unknown
- City" for English</li>
- </ul>
- </li>
- <li>VVVV - generic location
- <ul>
- <li>falling back to long localized GMT</li>
- </ul>
- </li>
- </ul>
- </li>
- </ol>
- <p>The following process is used for the particular formats,
- with the fallback rules as above.</p>
- <p>Some of the examples are drawn from real data, while others
- are for illustration. For illustration the region format is
- "Hora de {0}". The fallback format in the examples is "{1}
- ({0})", which is what is in root.</p>
- <ol>
- <li>In <b>all</b> cases, first canonicalize the <i>TZ</i> ID
- according to the Unicode Locale Extension <i>type</i> mapping
- data (See <a href="tr35.html#Time_Zone_Identifiers">Time Zone
- Identifiers</a> for more details).. Use that canonical TZID
- in each of the following steps.
- <ul>
- <li>America/Atka → America/Adak</li>
- <li>Australia/ACT → Australia/Sydney</li>
- </ul>
- </li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">For the
- localized GMT format, use the gmtFormat (such as "GMT{0}" or
- "HMG{0}") with the hourFormat (such as "+HH:mm;-HH:mm" or
- "+HH.mm;-HH.mm").
- <ul>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">
- America/Los_Angeles → "GMT-08:00" // standard time</li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">
- America/Los_Angeles → "HMG-07:00" // daylight time</li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">
- Etc/GMT+3 → "GMT-03.00" // note that <i>TZ</i> tzids have
- inverse polarity!</li>
- </ul>
- <p><b>Note:</b> The digits should be whatever are
- appropriate for the locale used to format the time zone,
- not necessarily from the western digits, 0..9. For example,
- they might be from ०..९.</p>
- </li>
- <li>For ISO 8601 time zone format return the results
- according to the ISO 8601 specification.
- <ul>
- <li>America/Los_Angeles →
- <ul>
- <li>"-08" ("X","x")</li>
- <li>"-0800" ("Z","XX","XXXX","xx","xxxx")</li>
- <li>"-08:00"
- ("ZZZZZ","XXX","XXXXX","xxx","xxxxx")</li>
- </ul>
- </li>
- <li>Etc/GMT →
- <ul>
- <li>"Z" ("ZZZZZ", "X", "XX", "XXX", "XXXX",
- "XXXXX")</li>
- <li>"+00" ("x")</li>
- <li>"+0000" ("Z", "xx", "xxxx")</li>
- <li>"+00:00" ("xxx", "xxxxx")</li>
- </ul>
- </li>
- </ul>
- <p><b>Note:</b> The digits in this case are always from the
- western digits, 0..9.</p>
- </li>
- <li>For the non-location formats (generic or specific):
- <ol>
- <li>if there is an explicit translation for the TZID in
- <timeZoneNames> according to type (generic,
- standard, or daylight) in the resolved locale, return it.
- <ol>
- <li>If the requested type is not available, but
- another type is, and there is a <strong>Type
- Fallback</strong> then return that other type.
- <ul>
- <li>Examples:
- <ul>
- <li>America/Los_Angeles → // generic</li>
- <li>America/Los_Angeles → "アメリカ太平洋標準時" //
- standard</li>
- <li>America/Los_Angeles → "Yhdysvaltain
- Tyynenmeren kesäaika" // daylight</li>
- <li>Europe/Dublin → "Am Samhraidh na
- hÉireann" // daylight</li>
- <li>Note: This translation may not at all be
- literal: it would be what is most
- recognizable for people using the target
- language.</li>
- </ul>
- </li>
- </ul>
- </li>
- </ol>
- </li>
- <li>Otherwise, get the requested metazone format
- according to type (generic, standard, daylight).
- <ol>
- <li>If the requested type is not available, but
- another type is, get the format according to
- <strong>Type Fallback</strong>.</li>
- <li>If there is no format for the type, fall
- back.</li>
- </ol>
- </li>
- <li>Otherwise do the following:
- <ol>
- <li>Get the country for the current locale. If there
- is none, use the most likely country based on the
- likelySubtags data. If there is none, use “001”.</li>
- <li>Get the preferred zone for the metazone for the
- country; if there is none for the country, use the
- preferred zone for the metazone for “001”.</li>
- <li>If that preferred zone is the same as the
- requested zone, use the metazone format. For example,
- "Pacific Time" for Vancouver if the locale is en_CA,
- or for Los Angeles if locale is en_US.</li>
- <li>Otherwise, if the zone is the preferred zone for
- its country but not for the country of the locale,
- use the metazone format + country in the
- <em>fallbackFormat</em>.</li>
- <li>Otherwise, use the metazone format + city in the
- <em>fallbackFormat</em>.
- <ul>
- <li>Examples:
- <ul>
- <li>"Pacific Time (Canada)" // for the zone
- Vancouver in the locale en_MX.</li>
- <li>"Mountain Time (Phoenix)"</li>
- <li>"Pacific Time (Whitehorse)"</li>
- </ul>
- </li>
- </ul>
- </li>
- </ol>
- </li>
- </ol>
- </li>
- <li>For the generic location format:
- <ol>
- <li>From the TZDB get the country code for the zone, and
- determine whether there is only one timezone in the
- country. If there is only one timezone or if the zone id
- is in the <primaryZones> list, format the country
- name with the <em>regionFormat</em>, and return it.
- <ul>
- <li>Examples:
- <ul>
- <li>Europe/Rome → IT → "Italy Time" // for
- English</li>
- <li>Asia/Shanghai → CN → "China Time" //
- Asia/Shanghai is the <em>primaryZone</em> for
- China</li>
- <li>Africa/Monrovia → LR → "Hora de Liberja"</li>
- <li>America/Havana → CU → "Hora de CU" // if CU
- is not localized</li>
- </ul>
- </li>
- </ul>
- </li>
- <li>Otherwise format the exemplar city with the
- <em>regionFormat</em>, and return it.
- <ol>
- <li>America/Buenos_Aires → "Buenos Aires Time"</li>
- </ol>
- </li>
- </ol>
- </li>
- </ol>
- <blockquote>
- <p><strong>Note:</strong> If a language does require
- grammatical changes when composing strings, then the
- <em>regionFormat</em> should either use a neutral format such
- as "Heure: {0}", or put all exceptional cases in explicitly
- translated strings.</p>
- </blockquote>
- <p><strong>Type Fallback</strong></p>
- <p>When a specified type (generic, standard, daylight) does not
- exist:</p>
- <ol>
- <li>If the daylight type does not exist, then the metazone
- doesn’t require daylight support. For all three types:
- <ol>
- <li>If the generic type exists, use it.</li>
- <li>Otherwise if the standard type exists, use it.</li>
- </ol>
- </li>
- <li>Otherwise if the generic type is needed, but not
- available, and the offset and daylight offset do not change
- within 184 day +/- interval around the exact formatted time,
- use the standard type.
- <ol>
- <li>Example: "Mountain Standard Time" for Phoenix</li>
- <li>Note: 184 is the smallest number that is at least 6
- months AND the smallest number that is more than 1/2 year
- (Gregorian).</li>
- </ol>
- </li>
- </ol>
- <p><strong>Composition</strong></p>
- <p>In composing the metazone + city or country:</p>
- <ol>
- <li>Use the <em>fallbackFormat</em> "{1} ({0})", where:
- <ul>
- <li>{1} will be the metazone</li>
- <li>{0} will be a qualifier (city or country)</li>
- <li>Example:
- <ul>
- <li>metazone = Pacific Time</li>
- <li>city = Phoenix</li>
- <li>→ "Pacific Time (Phoenix)"</li>
- </ul>
- </li>
- </ul>
- </li>
- <li>If the localized country name is not available, use the
- code:
- <ul>
- <li>CU (country code)→ "CU" <em>// no localized country
- name for Cuba</em></li>
- </ul>
- </li>
- <li>If the localized exemplar city is not available, use as
- the exemplar city the last field of the raw TZID, stripping
- off the prefix and turning _ into space.
- <ul>
- <li>America/Los_Angeles → "Los Angeles" <em>// no
- localized exemplar city</em></li>
- </ul>
- </li>
- </ol>
- <p><b>Note:</b> As with the <em>regionFormat</em>, exceptional
- cases need to be explicitly translated.</p>
- <h3>7.3 <a name="Time_Zone_Parsing" href="#Time_Zone_Parsing"
- id="Time_Zone_Parsing">Parsing</a></h3>
- <p>In parsing, an implementation will be able to either
- determine the zone id, or a simple offset from GMT for anything
- formatting according to the above process.</p>
- <p>The following is a sample process for how this might be
- done. It is only a sample; implementations may use different
- methods for parsing.</p>
- <p>The sample describes the parsing of a zone as if it were an
- isolated string. In implementations, the zone may be mixed in
- with other data (like the time), so the parsing actually has to
- look for the longest match, and then allow the remaining text
- to be parsed for other content. That requires certain adaptions
- to the following process.</p>
- <ol style="background-color: rgb(255, 255, 255);">
- <li><font color="#000000">Start with a string S.</font></li>
- <li>
- <font color="#000000">If S matches ISO 8601 time zone
- format, return it.</font>
- <ul>
- <li>For example, "-0800" (RFC 822), "-08:00" (ISO 8601)
- => Etc/GMT+8</li>
- </ul>
- </li>
- <li>If S matches the English or localized GMT format, return
- the corresponding TZID
- <ul>
- <li>Matching should be lenient. Thus allow for the number
- formats like: 03, 3, 330, 3:30, 33045 or 3:30:45. Allow
- +, -, or nothing. Allow spaces after GMT, +/-, and before
- number. Allow non-Latin numbers. Allow UTC or UT (per RFC
- 788) as synonyms for GMT ("GMT", "UT", "UTC" are global
- formats, always allowed in parsing regardless of
- locale).</li>
- <li>For example, "GMT+3" or "UT+3" or "HPG+3" =>
- Etc/GMT-3</li>
- <li>When parsing, the absence of a numeric offset should
- be interpreted as offset 0, whether in localized or
- global formats. For example, "GMT" or "UT" or "UTC+0" or
- "HPG" => Etc/GMT</li>
- </ul>
- </li>
- <li>
- <font color="#000000">If S matches the fallback format,
- extract P = {0} [ie, the part in parens in the root format]
- and N = {1}.<br>
- If S does not match, set P = "" and N = S<br>
- If N matches the region format, then M = {0} from that
- format, otherwise M = N.</font>
- <ul>
- <li><font color="#000000">For example, "United States
- (Los Angeles) Time" => N = "United States Time", M =
- "United States", P = "Los Angeles".</font></li>
- <li><font color="#000000">For example, "United States
- Time" => N = "United States Time", M = "United
- States", P = "".</font></li>
- <li><font color="#000000">For example, "United States"
- => N = M = "United States", P = "".</font></li>
- </ul>
- </li>
- <li>
- <font color="#000000">If P, N, or M is a localized country,
- set C to that value. If C has only one zone, return
- it.</font>
- <ul>
- <li><font color="#000000">For example, "Italy Time (xxx)"
- or "xxx (Italy)" => Europe/Rome</font></li>
- <li><font color="#000000">For example, "xxx (Canada)" or
- "Canada Time (xxx)" => Sets C = CA and
- continues</font></li>
- </ul>
- </li>
- <li>
- <font color="#000000">If P is a localized exemplar city
- name (and not metazone), return it.</font>
- <ul>
- <li><font color="#000000">For example, "xxxx (Phoenix)"
- or "Phoenix (xxx)" => America/Phoenix</font></li>
- </ul>
- </li>
- <li>
- <font color="#000000">If N, or M is a localized time zone
- name (and not metazone), return it.</font>
- <ul>
- <li><font color="#000000">For example, "Pacific Standard
- Time (xxx)" => "America/Los_Angeles" // this is only
- if "Pacific Standard Time" is not a metazone
- localization.</font></li>
- </ul>
- </li>
- <li>
- <font color="#000000">If N or M is a localized
- metazone</font>
- <ul>
- <li><font color="#000000">If it corresponds to only one
- TZID, return it.</font></li>
- <li><font color="#000000">If C is set, look up the
- Metazone + Country => TZID mapping, and return that
- value if it exists</font></li>
- <li><font color="#000000">Get the locale's language, and
- get the default country from that. Look up the Metazone +
- DefaultCountry => TZID mapping, and return that value
- if it exists.</font></li>
- <li><font color="#000000">Otherwise, lookup Metazone +
- 001 => TZID and return it (that will always
- exist)</font></li>
- </ul>
- </li>
- <li><font color="#000000">If you get this far, return an
- error.</font></li>
- </ol>
- <blockquote>
- <p><b>Note:</b> This CLDR date parsing recommendation does
- not fully handle all RFC 788 date/time formats, nor is it
- intended to.</p>
- </blockquote>
- <p>Parsing can be more lenient than the above, allowing for
- different spacing, punctuation, or other variation. A stricter
- parse would check for consistency between the xxx portions
- above and the rest, so "Pacific Standard Time (India)" would
- give an error.</p>
- <p>Using this process, a correct parse will roundtrip the
- location format (VVVV) back to the canonical zoneid.</p>
- <ul>
- <li>Australia/ACT → Australia/Sydney → “Sydney (Australia)” →
- Australia/Sydney</li>
- </ul>
- <p>The GMT formats (Z and ZZZZ) will return back an offset, and
- thus lose the original canonical zone id.</p>
- <ul>
- <li>Australia/ACT → Australia/Sydney → "GMT+11:00" →
- GMT+11</li>
- </ul>
- <p>The daylight and standard time formats, and the non-location
- formats (z, zzzz, v, and vvvv) may either roundtrip back to the
- original canonical zone id, to a zone in the same metazone that
- time, or to just an offset, depending on the available
- translation data. Thus:</p>
- <ul>
- <li>Australia/ACT → Australia/Sydney → "GMT+11:00" →
- GMT+11</li>
- <li>PST8PDT → America/Los_Angeles → “PST” →
- America/Los_Angeles</li>
- <li>America/Vancouver → “Pacific Time (Canada)” →
- America/Vancouver</li>
- </ul>
- <h2>8 <a name="Date_Format_Patterns" href=
- "#Date_Format_Patterns" id="Date_Format_Patterns">Date Format
- Patterns</a></h2>
- <p>A date pattern is a character string consisting of two types
- of elements:</p>
- <ul>
- <li><em>Pattern fields</em>, which repeat a specific
- <em>pattern character</em> one or more times. These fields
- are replaced with date and time data from a calendar when
- formatting, or used to generate data for a calendar when
- parsing. Currently, A..Z and a..z are reserved for use as
- pattern characters (unless they are quoted, see next item).
- The pattern characters currently defined, and the meaning of
- different fields lengths for then, are listed in the Date
- Field Symbol Table below.</li>
- <li>Literal text, which is output as-is when formatting, and
- must closely match when parsing. Literal text can include:
- <ul>
- <li>Any characters other than A..Z and a..z, including
- spaces and punctuation.</li>
- <li>Any text between single vertical quotes ('xxxx'),
- which may include A..Z and a..z as literal text.</li>
- <li>Two adjacent single vertical quotes (''), which
- represent a literal single quote, either inside or
- outside quoted text.</li>
- </ul>
- </li>
- </ul>
- <p>The following are examples:</p>
- <table border="1" cellpadding="0" cellspacing="0" style=
- "border-style: solid; border-collapse: collapse">
- <caption>
- <a name="Date_Format_Pattern_Examples" href=
- "#Date_Format_Pattern_Examples" id=
- "Date_Format_Pattern_Examples">Date Format Pattern
- Examples</a>
- </caption>
- <tr>
- <th width="50%">Pattern</th>
- <th width="50%">Result (in a particular locale)</th>
- </tr>
- <tr>
- <td width="50%">yyyy.MM.dd G 'at' HH:mm:ss zzz</td>
- <td width="50%">1996.07.10 AD at 15:08:56 PDT</td>
- </tr>
- <tr>
- <td width="50%">EEE, MMM d, ''yy</td>
- <td width="50%">Wed, July 10, '96</td>
- </tr>
- <tr>
- <td width="50%">h:mm a</td>
- <td width="50%">12:08 PM</td>
- </tr>
- <tr>
- <td width="50%">hh 'o''clock' a, zzzz</td>
- <td width="50%">12 o'clock PM, Pacific Daylight Time</td>
- </tr>
- <tr>
- <td width="50%">K:mm a, z</td>
- <td width="50%">0:00 PM, PST</td>
- </tr>
- <tr>
- <td width="50%">yyyyy.MMMM.dd GGG hh:mm aaa</td>
- <td width="50%">01996.July.10 AD 12:08 PM</td>
- </tr>
- </table>
- <p><i>When parsing using a pattern, a lenient parse should be
- used; see <a href="#Parsing_Dates_Times">Parsing Dates and
- Times</a>.</i></p>
- <p class="dtd"><!ATTLIST pattern numbers CDATA #IMPLIED
- ></p>
- <p>The numbers attribute is used to indicate that numeric
- quantities in the pattern are to be rendered using a numbering
- system other than then default numbering system defined for the
- given locale. The attribute can be in one of two forms. If the
- alternate numbering system is intended to apply to ALL numeric
- quantities in the pattern, then simply use the numbering system
- ID as found in <a href=
- "tr35-numbers.html#Numbering_Systems">Numbering Systems</a>. To
- apply the alternate numbering system only to a single field,
- the syntax "<letter>=<numberingSystem>" can be used
- one or more times, separated by semicolons.</p>
- <p class="xmlExample">Examples:<br>
- <pattern numbers="hebr">dd/mm/yyyy</pattern><br>
- <!-- Use Hebrew numerals to represent numbers in the Hebrew
- calendar, where "latn" numbering system is the default
- --><br>
- <br>
- <pattern numbers="y=hebr">dd/mm/yyyy</pattern><br>
- <!-- Same as above, except that ONLY the year value would be
- rendered in Hebrew --><br>
- <br>
- <pattern
- numbers="d=thai;m=hans;y=deva">dd/mm/yyyy</pattern><br>
-
- <!-- Illustrates use of multiple numbering systems for a
- single pattern. --></p><br>
- <p><strong>Pattern fields and the Date Field Symbol
- Table</strong></p>
- <p>The Date Field Symbol Table below shows the pattern
- characters (Sym.) and associated fields used in date patterns.
- The length of the pattern field is related to the length and
- style used to format the data item. For numeric-only fields,
- the field length typically indicates the minimum number of
- digits that should be used to display the value (zero-padding
- as necessary). As an example using pattern character ‘H’ for
- hour (24-hour cycle) and values 5 and 11, a field “H” should
- produce formatted results “5” and “11” while a field “HH”
- should produce formatted results “05” and “11”. For
- alphanumeric fields (such as months) and alphabetic-only fields
- (such as era names), the relationship between field length and
- formatted result may be more complex. Typically this is as
- follows:</p>
- <table cellspacing="0" cellpadding="2" border="1">
- <tr>
- <th>Pattern field<br>
- length</th>
- <th>Typical style,<br>
- alphanumeric item</th>
- <th>Typical style,<br>
- alpha-only item</th>
- </tr>
- <tr>
- <td>1</td>
- <td>Numeric, 1-2 digits (e.g. M)</td>
- <td rowspan="3">Abbreviated (e.g. E, EE, EEE)</td>
- </tr>
- <tr>
- <td>2</td>
- <td>Numeric, 2 digits (e.g. MM)</td>
- </tr>
- <tr>
- <td>3</td>
- <td>Abbreviated (e.g. MMM)</td>
- </tr>
- <tr>
- <td>4</td>
- <td colspan="2">Wide / Long / Full (e.g. MMMM, EEEE)</td>
- </tr>
- <tr>
- <td>5</td>
- <td colspan="2">Narrow (e.g. MMMMM, EEEEE)<br>
- (The counter-intuitive use of 5 letters for this is forced
- by backwards compatibility)</td>
- </tr>
- </table>
- <p>Notes for the table below:</p>
- <ul>
- <li>Any sequence of pattern characters other than those
- listed below is invalid. Invalid pattern fields should be
- handled for formatting and parsing as described in <a href=
- "tr35.html#Invalid_Patterns">Handling Invalid
- Patterns</a>.</li>
- <li>The examples in the table below are merely illustrative
- and may not reflect current actual data.</li>
- </ul>
- <table cellspacing="0" cellpadding="2" border="1">
- <caption>
- <a name="Date_Field_Symbol_Table" href=
- "#Date_Field_Symbol_Table" id=
- "Date_Field_Symbol_Table">Date Field Symbol Table</a>
- </caption>
- <tr>
- <th>Field<br>
- Type</th>
- <th style="text-align: center">Sym.</th>
- <th style="text-align: center">Field<br>
- Patterns</th>
- <th>Examples</th>
- <th colspan="2">Description</th>
- </tr>
- <tr>
- <th rowspan="3" style=
- "vertical-align: top; text-align: left"><a name='dfst-era'
- href='#dfst-era' id="dfst-era">era</a></th>
- <td style="text-align: center; vertical-align: top"
- rowspan="3">G</td>
- <td style="text-align: center; vertical-align: top">
- G..GGG</td>
- <td style="vertical-align: top; text-align: left">AD<br>
- [variant: CE]</td>
- <td style="width:130px">Abbreviated</td>
- <td rowspan="3" style=
- "vertical-align: top; text-align: left">Era name. Era
- string for the current date.</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">
- GGGG</td>
- <td style="vertical-align: top; text-align: left">Anno
- Domini<br>
- [variant: Common Era]</td>
- <td>Wide</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">
- GGGGG</td>
- <td style="vertical-align: top; text-align: left">A</td>
- <td>Narrow</td>
- </tr>
- <tr>
- <th rowspan="15"><a name='dfst-year' href='#dfst-year' id=
- "dfst-year">year</a><a name="Year_Length_Examples" id=
- "Year_Length_Examples"></a></th>
- <td rowspan="5" style="text-align: center">y</td>
- <td style="text-align: center">y</td>
- <td>2, 20, 201, 2017, 20173</td>
- <td rowspan="5" colspan="2">Calendar year (numeric). In
- most cases the length of the y field specifies the minimum
- number of digits to display, zero-padded as necessary; more
- digits will be displayed if needed to show the full year.
- However, “yy” requests just the two low-order digits of the
- year, zero-padded as necessary. For most use cases, “y” or
- “yy” should be adequate.</td>
- </tr>
- <tr>
- <td style="text-align: center">yy</td>
- <td>02, 20, 01, 17, 73</td>
- </tr>
- <tr>
- <td style="text-align: center">yyy</td>
- <td>002, 020, 201, 2017, 20173</td>
- </tr>
- <tr>
- <td style="text-align: center">yyyy</td>
- <td>0002, 0020, 0201, 2017, 20173</td>
- </tr>
- <tr>
- <td style="text-align: center">yyyyy+</td>
- <td>...</td>
- </tr>
- <tr>
- <td rowspan="5" style="text-align: center">Y</td>
- <td style="text-align: center">Y</td>
- <td>2, 20, 201, 2017, 20173</td>
- <td rowspan="5" colspan="2">Year in “Week of Year” based
- calendars in which the year transition occurs on a week
- boundary; may differ from calendar year ‘y’ near a year
- transition. This numeric year designation is used in
- conjunction with pattern character ‘w’ in the ISO year-week
- calendar as defined by ISO 8601, but can be used in
- non-Gregorian based calendar systems where week date
- processing is desired. The field length is interpreted in
- the same was as for ‘y’; that is, “yy” specifies use
- of the two low-order year digits, while any other field
- length specifies a minimum number of digits to
- display.</td>
- </tr>
- <tr>
- <td style="text-align: center">YY</td>
- <td>02, 20, 01, 17, 73</td>
- </tr>
- <tr>
- <td style="text-align: center">YYY</td>
- <td>002, 020, 201, 2017, 20173</td>
- </tr>
- <tr>
- <td style="text-align: center">YYYY</td>
- <td>0002, 0020, 0201, 2017, 20173</td>
- </tr>
- <tr>
- <td style="text-align: center">YYYYY+</td>
- <td>...</td>
- </tr>
- <tr>
- <td style="text-align: center">u</td>
- <td style="text-align: center">u+</td>
- <td>4601</td>
- <td colspan="2">Extended year (numeric). This is a single
- number designating the year of this calendar system,
- encompassing all supra-year fields. For example, for the
- Julian calendar system, year numbers are positive, with an
- era of BCE or CE. An extended year value for the Julian
- calendar system assigns positive values to CE years and
- negative values to BCE years, with 1 BCE being year 0. For
- ‘u’, all field lengths specify a minimum number of digits;
- there is no special interpretation for “uu”.</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top"
- rowspan="3">U</td>
- <td style="text-align: center; vertical-align: top">
- U..UUU</td>
- <td style="vertical-align: top; text-align: left">甲子</td>
- <td>Abbreviated</td>
- <td rowspan="3" style=
- "vertical-align: top; text-align: left">Cyclic year name.
- Calendars such as the Chinese lunar calendar (and related
- calendars) and the Hindu calendars use 60-year cycles of
- year names. If the calendar does not provide cyclic year
- name data, or if the year value to be formatted is out of
- the range of years for which cyclic name data is provided,
- then numeric formatting is used (behaves like 'y').<br>
- Currently the data only provides abbreviated names, which
- will be used for all requested name widths.</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">
- UUUU</td>
- <td style="vertical-align: top; text-align: left">甲子 [for
- now]</td>
- <td>Wide</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">
- UUUUU</td>
- <td style="vertical-align: top; text-align: left">甲子 [for
- now]</td>
- <td>Narrow</td>
- </tr>
- <tr>
- <td>r</td>
- <td style="text-align: center; vertical-align: top">r+</td>
- <td>2017</td>
- <td colspan="2">Related Gregorian year (numeric). For
- non-Gregorian calendars, this corresponds to the extended
- Gregorian year in which the calendar’s year begins. Related
- Gregorian years are often displayed, for example, when
- formatting dates in the Japanese calendar — e.g.
- “2012(平成24)年1月15日” — or in the Chinese calendar — e.g.
- “2012壬辰年腊月初四”. The related Gregorian year is usually
- displayed using the "latn" numbering system, regardless of
- what numbering systems may be used for other parts of the
- formatted date. If the calendar’s year is linked to the
- solar year (perhaps using leap months), then for that
- calendar the ‘r’ year will always be at a fixed offset from
- the ‘u’ year. For the Gregorian calendar, the ‘r’ year is
- the same as the ‘u’ year. For ‘r’, all field lengths
- specify a minimum number of digits; there is no special
- interpretation for “rr”.</td>
- </tr>
- <tr>
- <th rowspan="10" style=
- "vertical-align: top; text-align: left"><a name=
- 'dfst-quarter' href='#dfst-quarter' id=
- "dfst-quarter">quarter</a></th>
- <td style="text-align: center; vertical-align: top"
- rowspan="5">Q</td>
- <td style="text-align: center; vertical-align: top">Q</td>
- <td style="vertical-align: top; text-align: left">2</td>
- <td>Numeric: 1 digit</td>
- <td rowspan="5">Quarter number/name.</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">QQ</td>
- <td style="vertical-align: top; text-align: left">02</td>
- <td>Numeric: 2 digits + zero pad</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">
- QQQ</td>
- <td style="vertical-align: top; text-align: left">Q2</td>
- <td>Abbreviated</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">
- QQQQ</td>
- <td style="vertical-align: top; text-align: left">2nd
- quarter</td>
- <td>Wide</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">
- QQQQQ</td>
- <td style="vertical-align: top; text-align: left">2</td>
- <td>Narrow</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top"
- rowspan="5">q</td>
- <td style="text-align: center; vertical-align: top">q</td>
- <td style="vertical-align: top; text-align: left">2</td>
- <td>Numeric: 1 digit</td>
- <td rowspan="5" style=
- "vertical-align: top; text-align: left"><b>Stand-Alone</b>
- Quarter number/name.</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">qq</td>
- <td style="vertical-align: top; text-align: left">02</td>
- <td>Numeric: 2 digits + zero pad</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">
- qqq</td>
- <td style="vertical-align: top; text-align: left">Q2</td>
- <td>Abbreviated</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">
- qqqq</td>
- <td style="vertical-align: top; text-align: left">2nd
- quarter</td>
- <td>Wide</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">
- qqqqq</td>
- <td style="vertical-align: top; text-align: left">2</td>
- <td>Narrow</td>
- </tr>
- <tr>
- <th rowspan="11" style=
- "vertical-align: top; text-align: left"><a name=
- 'dfst-month' href='#dfst-month' id=
- "dfst-month">month</a></th>
- <td rowspan="5" style=
- "text-align: center; vertical-align: top">M</td>
- <td style="text-align: center; vertical-align: top">M</td>
- <td>9, 12</td>
- <td>Numeric: minimum digits</td>
- <td rowspan="5" style=
- "vertical-align: top; text-align: left">Month number/name,
- format style (intended to be used in conjunction with ‘d’
- for day number).</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">MM</td>
- <td>09, 12</td>
- <td>Numeric: 2 digits, zero pad if needed</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">
- MMM</td>
- <td style="vertical-align: top; text-align: left">Sep</td>
- <td>Abbreviated</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">
- MMMM</td>
- <td style="vertical-align: top; text-align: left">
- September</td>
- <td>Wide</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">
- MMMMM</td>
- <td style="vertical-align: top; text-align: left">S</td>
- <td>Narrow</td>
- </tr>
- <tr>
- <td rowspan="5" style=
- "text-align: center; vertical-align: top">L</td>
- <td style="text-align: center; vertical-align: top">L</td>
- <td>9, 12</td>
- <td>Numeric: minimum digits</td>
- <td rowspan="5"><b>Stand-Alone</b> Month number/name
- (intended to be used without ‘d’ for day number).</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">LL</td>
- <td>09, 12</td>
- <td>Numeric: 2 digits, zero pad if needed</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">
- LLL</td>
- <td style="vertical-align: top; text-align: left">Sep</td>
- <td>Abbreviated</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">
- LLLL</td>
- <td style="vertical-align: top; text-align: left">
- September</td>
- <td>Wide</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">
- LLLLL</td>
- <td style="vertical-align: top; text-align: left">S</td>
- <td>Narrow</td>
- </tr>
- <tr>
- <td style="text-align: center">l</td>
- <td style="text-align: center">l</td>
- <td>[nothing]</td>
- <td colspan="2">This pattern character is deprecated, and
- should be ignored in patterns. It was originally intended
- to be used in combination with M to indicate placement of
- the symbol for leap month in the Chinese calendar.
- Placement of that marker is now specified using
- locale-specific <monthPatterns> data, and formatting
- and parsing of that marker should be handled as part of
- supporting the regular M and L pattern characters.</td>
- </tr>
- <tr>
- <th rowspan="3"><a name='dfst-week' href='#dfst-week' id=
- "dfst-week">week</a></th>
- <td rowspan="2" style="text-align: center">w</td>
- <td style="text-align: center">w</td>
- <td>8, 27</td>
- <td>Numeric: minimum digits</td>
- <td rowspan="2">Week of Year (numeric). When used in a
- pattern with year, use ‘Y’ for the year field instead of
- ‘y’.</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">ww</td>
- <td>08, 27</td>
- <td>Numeric: 2 digits, zero pad if needed</td>
- </tr>
- <tr>
- <td style="text-align: center">W</td>
- <td style="text-align: center">W</td>
- <td>3</td>
- <td>Numeric: 1 digit</td>
- <td>Week of Month (numeric)</td>
- </tr>
- <tr>
- <th rowspan="5"><a name='dfst-day' href='#dfst-day' id=
- "dfst-day">day</a></th>
- <td rowspan="2" style="text-align: center">d</td>
- <td style="text-align: center">d</td>
- <td>1</td>
- <td>Numeric: minimum digits</td>
- <td rowspan="2">Day of month (numeric).</td>
- </tr>
- <tr>
- <td style="text-align: center">dd</td>
- <td>01</td>
- <td>Numeric: 2 digits, zero pad if needed</td>
- </tr>
- <tr>
- <td style="text-align: center">D</td>
- <td style="text-align: center">D...DDD</td>
- <td>345</td>
- <td colspan="2">Day of year (numeric). The field length
- specifies the minimum number of digits, with zero-padding
- as necessary.</td>
- </tr>
- <tr>
- <td style="text-align: center">F</td>
- <td style="text-align: center">F</td>
- <td>2</td>
- <td colspan="2">Day of Week in Month (numeric). The example
- is for the 2nd Wed in July</td>
- </tr>
- <tr>
- <td style="text-align: center">g</td>
- <td style="text-align: center">g+</td>
- <td>2451334</td>
- <td colspan="2">Modified Julian day (numeric). This is
- different from the conventional Julian day number in two
- regards. First, it demarcates days at local zone midnight,
- rather than noon GMT. Second, it is a local number; that
- is, it depends on the local time zone. It can be thought of
- as a single number that encompasses all the date-related
- fields.The field length specifies the minimum number of
- digits, with zero-padding as necessary.</td>
- </tr>
- <tr>
- <th rowspan="15" style=
- "vertical-align: top; text-align: left"><a name=
- 'dfst-weekday' href='#dfst-weekday' id=
- "dfst-weekday">week<br>
- day</a></th>
- <td rowspan="4" style=
- "text-align: center; vertical-align: top">E</td>
- <td style="text-align: center; vertical-align: top">
- E..EEE</td>
- <td style="vertical-align: top; text-align: left">Tue</td>
- <td>Abbreviated</td>
- <td rowspan="4">Day of week name, format style.</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">
- EEEE</td>
- <td style="vertical-align: top; text-align: left">
- Tuesday</td>
- <td>Wide</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">
- EEEEE</td>
- <td style="vertical-align: top; text-align: left">T</td>
- <td>Narrow</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">
- EEEEEE</td>
- <td style="vertical-align: top; text-align: left">Tu</td>
- <td>Short</td>
- </tr>
- <tr>
- <td rowspan="6" style=
- "text-align: center; vertical-align: top">e</td>
- <td style="text-align: center; vertical-align: top">e</td>
- <td style="vertical-align: top; text-align: left">2</td>
- <td>Numeric: 1 digit</td>
- <td rowspan="6" style=
- "vertical-align: top; text-align: left">Local day of week
- number/name, format style. Same as E except adds a numeric
- value that will depend on the local starting day of the
- week. For this example, Monday is the first day of the
- week.</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">ee</td>
- <td>02</td>
- <td>Numeric: 2 digits + zero pad</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">
- eee</td>
- <td style="vertical-align: top; text-align: left">Tue</td>
- <td>Abbreviated</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">
- eeee</td>
- <td style="vertical-align: top; text-align: left">
- Tuesday</td>
- <td>Wide</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">
- eeeee</td>
- <td style="vertical-align: top; text-align: left">T</td>
- <td>Narrow</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">
- eeeeee</td>
- <td style="vertical-align: top; text-align: left">Tu</td>
- <td>Short</td>
- </tr>
- <tr>
- <td rowspan="5" style=
- "text-align: center; vertical-align: top">c</td>
- <td style="text-align: center; vertical-align: top">
- c..cc</td>
- <td style="vertical-align: top; text-align: left">2</td>
- <td>Numeric: 1 digit</td>
- <td rowspan="5"><b>Stand-Alone</b> local day of week
- number/name.</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">
- ccc</td>
- <td style="vertical-align: top; text-align: left">Tue</td>
- <td>Abbreviated</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">
- cccc</td>
- <td style="vertical-align: top; text-align: left">
- Tuesday</td>
- <td>Wide</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">
- ccccc</td>
- <td style="vertical-align: top; text-align: left">T</td>
- <td>Narrow</td>
- </tr>
- <tr>
- <td style="text-align: center; vertical-align: top">
- cccccc</td>
- <td style="vertical-align: top; text-align: left">Tu</td>
- <td>Short</td>
- </tr>
- <tr>
- <th rowspan="9"><a name='dfst-period' href='#dfst-period'
- id="dfst-period">period</a></th>
- <td rowspan="3" style="text-align: center">a</td>
- <td style="text-align: center">a..aaa</td>
- <td>am. [e.g. 12 am.]</td>
- <td>Abbreviated</td>
- <td rowspan="3"><strong>AM, PM<br></strong> May be upper or
- lowercase depending on the locale and other options. The
- wide form may be the same as the short form if the “real”
- long form (eg <em>ante meridiem</em>) is not customarily
- used. The narrow form must be unique, unlike some other
- fields. See also Section 9 <a href=
- "#Parsing_Dates_Times">Parsing Dates and Times</a>.</td>
- </tr>
- <tr>
- <td style="text-align: center">aaaa</td>
- <td>am. [e.g. 12 am.]</td>
- <td>Wide</td>
- </tr>
- <tr>
- <td style="text-align: center">aaaaa</td>
- <td>a [e.g. 12a]</td>
- <td>Narrow</td>
- </tr>
- <tr>
- <td rowspan="3" style="text-align: center">b</td>
- <td style="text-align: center">b..bbb</td>
- <td>mid. [e.g. 12 mid.]</td>
- <td>Abbreviated</td>
- <td rowspan="3"><strong>am, pm, noon, midnight</strong><br>
- May be upper or lowercase depending on the locale and other
- options. If the locale doesn't the notion of a unique
- "noon" = 12:00, then the PM form may be substituted.
- Similarly for "midnight" = 00:00 and the AM form. The
- narrow form must be unique, unlike some other fields.</td>
- </tr>
- <tr>
- <td style="text-align: center">bbbb</td>
- <td>midnight<br>
- [e.g. 12 midnight]</td>
- <td>Wide</td>
- </tr>
- <tr>
- <td style="text-align: center">bbbbb</td>
- <td>md [e.g. 12 md]</td>
- <td>Narrow</td>
- </tr>
- <tr>
- <td rowspan="3" style="text-align: center">B</td>
- <td style="text-align: center">B..BBB</td>
- <td>at night<br>
- [e.g. 3:00 at night]</td>
- <td>Abbreviated</td>
- <td rowspan="3"><strong>flexible day periods</strong><br>
- May be upper or lowercase depending on the locale and other
- options. Often there is only one width that is customarily
- used.</td>
- </tr>
- <tr>
- <td style="text-align: center">BBBB</td>
- <td>at night<br>
- [e.g. 3:00 at night]</td>
- <td>Wide</td>
- </tr>
- <tr>
- <td style="text-align: center">BBBBB</td>
- <td>at night<br>
- [e.g. 3:00 at night]</td>
- <td>Narrow</td>
- </tr>
- <tr>
- <th rowspan="22"><a name='dfst-hour' href='#dfst-hour' id=
- "dfst-hour">hour</a></th>
- <td rowspan="2" style="text-align: center">h</td>
- <td style="text-align: center">h</td>
- <td>1, 12</td>
- <td>Numeric: minimum digits</td>
- <td rowspan="2">Hour [1-12]. When used in skeleton data or
- in a skeleton passed in an API for flexible date pattern
- generation, it should match the 12-hour-cycle format
- preferred by the locale (h or K); it should not match a
- 24-hour-cycle format (H or k).</td>
- </tr>
- <tr>
- <td style="text-align: center">hh</td>
- <td>01, 12</td>
- <td>Numeric: 2 digits, zero pad if needed</td>
- </tr>
- <tr>
- <td rowspan="2" style="text-align: center">H</td>
- <td style="text-align: center">H</td>
- <td>0, 23</td>
- <td>Numeric: minimum digits</td>
- <td rowspan="2">Hour [0-23]. When used in skeleton data or
- in a skeleton passed in an API for flexible date pattern
- generation, it should match the 24-hour-cycle format
- preferred by the locale (H or k); it should not match a
- 12-hour-cycle format (h or K).</td>
- </tr>
- <tr>
- <td style="text-align: center">HH</td>
- <td>00, 23</td>
- <td>Numeric: 2 digits, zero pad if needed</td>
- </tr>
- <tr>
- <td rowspan="2" style="text-align: center">K</td>
- <td style="text-align: center">K</td>
- <td>0, 11</td>
- <td>Numeric: minimum digits</td>
- <td rowspan="2">Hour [0-11]. When used in a skeleton, only
- matches K or h, see above.</td>
- </tr>
- <tr>
- <td style="text-align: center">KK</td>
- <td>00, 11</td>
- <td>Numeric: 2 digits, zero pad if needed</td>
- </tr>
- <tr>
- <td rowspan="2" style="text-align: center">k</td>
- <td style="text-align: center">k</td>
- <td>1, 24</td>
- <td>Numeric: minimum digits</td>
- <td rowspan="2">Hour [1-24]. When used in a skeleton, only
- matches k or H, see above.</td>
- </tr>
- <tr>
- <td style="text-align: center">kk</td>
- <td>01, 24</td>
- <td>Numeric: 2 digits, zero pad if needed</td>
- </tr>
- <tr>
- <td rowspan="6" style="text-align: center">j</td>
- <td>j</td>
- <td>8<br>
- 8 AM<br>
- 13<br>
- 1 PM</td>
- <td>Numeric hour (minimum digits), abbreviated dayPeriod if
- used</td>
- <td rowspan="6"><em><strong>Input skeleton
- symbol</strong></em><br>
- It must not occur in pattern or skeleton data. Instead, it
- is reserved for use in skeletons passed to APIs doing
- flexible date pattern generation. In such a context, it
- requests the preferred hour format for the locale (h, H, K,
- or k), as determined by the <strong>preferred</strong>
- attribute of the <strong>hours</strong> element in
- supplemental data . In the implementation of such an API,
- 'j' must be replaced by h, H, K, or k before beginning a
- match against availableFormats data.<br>
- Note that use of 'j' in a skeleton passed to an API is the
- only way to have a skeleton request a locale's preferred
- time cycle type (12-hour or 24-hour).</td>
- </tr>
- <tr>
- <td style="text-align: center">jj</td>
- <td>08<br>
- 08 AM<br>
- 13<br>
- 01 PM</td>
- <td>Numeric hour (2 digits, zero pad if needed),
- abbreviated dayPeriod if used</td>
- </tr>
- <tr>
- <td style="text-align: center">jjj</td>
- <td>8<br>
- 8 A.M.<br>
- 13<br>
- 1 P.M.</td>
- <td>Numeric hour (minimum digits), wide dayPeriod if
- used</td>
- </tr>
- <tr>
- <td style="text-align: center">jjjj</td>
- <td>08<br>
- 08 A.M.<br>
- 13<br>
- 01 P.M.</td>
- <td>Numeric hour (2 digits, zero pad if needed), wide
- dayPeriod if used</td>
- </tr>
- <tr>
- <td style="text-align: center">jjjjj</td>
- <td>8<br>
- 8a<br>
- 13<br>
- 1p</td>
- <td>Numeric hour (minimum digits), narrow dayPeriod if
- used</td>
- </tr>
- <tr>
- <td style="text-align: center">jjjjjj</td>
- <td>08<br>
- 08a<br>
- 13<br>
- 01p</td>
- <td>Numeric hour (2 digits, zero pad if needed), narrow
- dayPeriod if used</td>
- </tr>
- <tr>
- <td rowspan="2" style="text-align: center">J</td>
- <td style="text-align: center">J</td>
- <td>8<br>
- 8</td>
- <td>Numeric hour (minimum digits)</td>
- <td rowspan="2"><em><strong>Input skeleton
- symbol</strong></em><br>
- It must not occur in pattern or skeleton data. Instead, it
- is reserved for use in skeletons passed to APIs doing
- flexible date pattern generation. In such a context, like
- 'j', it requests the preferred hour format for the locale
- (h, H, K, or k), as determined by the
- <strong>preferred</strong> attribute of the
- <strong>hours</strong> element in supplemental data.
- However, unlike 'j', it requests no dayPeriod marker such
- as “am/pm” (It is typically used where there is enough
- context that that is not necessary). For example, with
- "jmm", 18:00 could appear as “6:00 PM”, while with "Jmm",
- it would appear as “6:00” (no PM).</td>
- </tr>
- <tr>
- <td style="text-align: center">JJ</td>
- <td>08<br>
- 08</td>
- <td>Numeric hour (2 digits, zero pad if needed)</td>
- </tr>
- <tr>
- <td rowspan="6" style="text-align: center">C</td>
- <td style="text-align: center">C</td>
- <td>8<br>
- 8 (morning)</td>
- <td>Numeric hour (minimum digits), abbreviated dayPeriod if
- used</td>
- <td rowspan="6"><em><strong>Input skeleton
- symbol</strong></em><br>
- It must not occur in pattern or skeleton data. Instead, it
- is reserved for use in skeletons passed to APIs doing
- flexible date pattern generation. In such a context, like
- 'j', it requests the preferred hour format for the locale.
- However, unlike 'j', it can also select formats such as hb
- or hB, since it is based not on the
- <strong>preferred</strong> attribute of the
- <strong>hours</strong> element in supplemental data, but
- instead on the first element of the
- <strong>allowed</strong> attribute (which is an ordered
- preferrence list. For example, with "Cmm", 18:00 could
- appear as “6:00 in the afternoon”.</td>
- </tr>
- <tr>
- <td style="text-align: center">CC</td>
- <td>08<br>
- 08 (morning)</td>
- <td>Numeric hour (2 digits, zero pad if needed),
- abbreviated dayPeriod if used</td>
- </tr>
- <tr>
- <td style="text-align: center">CCC</td>
- <td>8<br>
- 8 in the morning</td>
- <td>Numeric hour (minimum digits), wide dayPeriod if
- used</td>
- </tr>
- <tr>
- <td style="text-align: center">CCCC</td>
- <td>08<br>
- 08 in the morning</td>
- <td>Numeric hour (2 digits, zero pad if needed), wide
- dayPeriod if used</td>
- </tr>
- <tr>
- <td style="text-align: center">CCCCC</td>
- <td>8<br>
- 8 (morn.)</td>
- <td>Numeric hour (minimum digits), narrow dayPeriod if
- used</td>
- </tr>
- <tr>
- <td style="text-align: center">CCCCCC</td>
- <td>08<br>
- 08 (morn.)</td>
- <td>Numeric hour (2 digits, zero pad if needed), narrow
- dayPeriod if used</td>
- </tr>
- <tr>
- <th rowspan="2"><a name='dfst-minute' href='#dfst-minute'
- id="dfst-minute">minute</a></th>
- <td rowspan="2" style="text-align: center">m</td>
- <td style="text-align: center">m</td>
- <td>8, 59</td>
- <td>Numeric: minimum digits</td>
- <td rowspan="2">Minute (numeric). Truncated, not
- rounded.<br></td>
- </tr>
- <tr>
- <td style="text-align: center">mm</td>
- <td>08, 59</td>
- <td>Numeric: 2 digits, zero pad if needed</td>
- </tr>
- <tr>
- <th rowspan="4"><a name='dfst-second' href='#dfst-second'
- id="dfst-second">second</a></th>
- <td rowspan="2" style="text-align: center">s</td>
- <td style="text-align: center">s</td>
- <td>8, 12</td>
- <td>Numeric: minimum digits</td>
- <td rowspan="2">Second (numeric). Truncated, not
- rounded.<br></td>
- </tr>
- <tr>
- <td style="text-align: center">ss</td>
- <td>08, 12</td>
- <td>Numeric: 2 digits, zero pad if needed</td>
- </tr>
- <tr>
- <td style="text-align: center">S</td>
- <td style="text-align: center">S+</td>
- <td>3456</td>
- <td colspan="2">Fractional Second (numeric). Truncates,
- like other numeric time fields, but in this case to the
- number of digits specified by the field length. (Example
- shows display using pattern SSSS for seconds value
- 12.34567)</td>
- </tr>
- <tr>
- <td style="text-align: center">A</td>
- <td style="text-align: center">A+</td>
- <td>69540000</td>
- <td colspan="2">Milliseconds in day (numeric). This field
- behaves <i>exactly</i> like a composite of all time-related
- fields, not including the zone fields. As such, it also
- reflects discontinuities of those fields on DST transition
- days. On a day of DST onset, it will jump forward. On a day
- of DST cessation, it will jump backward. This reflects the
- fact that is must be combined with the offset field to
- obtain a unique local time value. The field length
- specifies the minimum number of digits, with zero-padding
- as necessary.</td>
- </tr>
- <tr>
- <th><a name='dfst-sep' href='#dfst-sep' id=
- "dfst-sep">sep.</a></th>
- <td>(none def., see note)</td>
- <td style="text-align: center"></td>
- <td></td>
- <td colspan="2">Time separator.<br>
- <span class="note"><b><br>
- Note:</b> In CLDR 26 the time separator pattern character
- was specified to be COLON. This was withdrawn in CLDR 28
- due to backward compatibility issues, and no time separator
- pattern character is currently defined.</span><br>
- <br>
- Like the use of "," in number formats, this character in a
- date pattern is replaced with the corresponding number
- symbol which may depend on the numbering system. For more
- information, see <em><strong>Part 3: <a href=
- "tr35-numbers.html#Contents">Numbers</a></strong> , Section
- 2.3 <a href="tr35-numbers.html#Number_Symbols">Number
- Symbols</a></em>.</td>
- </tr>
- <tr>
- <th rowspan="23"><a name='dfst-zone' href='#dfst-zone' id=
- "dfst-zone">zone</a></th>
- <td rowspan="2" style="text-align: center">z</td>
- <td style="text-align: center">z..zzz</td>
- <td>PDT</td>
- <td colspan="2">The <i>short specific non-location
- format</i>. Where that is unavailable, falls back to the
- <i>short localized GMT format</i> ("O").</td>
- </tr>
- <tr>
- <td style="text-align: center">zzzz</td>
- <td>Pacific Daylight Time</td>
- <td colspan="2">The <i>long specific non-location
- format</i>. Where that is unavailable, falls back to the
- <i>long localized GMT format</i> ("OOOO").</td>
- </tr>
- <tr>
- <td rowspan="3" style="text-align: center">Z</td>
- <td style="text-align: center">Z..ZZZ</td>
- <td>-0800</td>
- <td colspan="2">The <i>ISO8601 basic format</i> with hours,
- minutes and optional seconds fields. The format is
- equivalent to RFC 822 zone format (when optional seconds
- field is absent). This is equivalent to the "xxxx"
- specifier.</td>
- </tr>
- <tr>
- <td style="text-align: center">ZZZZ</td>
- <td>GMT-8:00</td>
- <td colspan="2">The <i>long localized GMT format</i>. This
- is equivalent to the "OOOO" specifier.</td>
- </tr>
- <tr>
- <td style="text-align: center">ZZZZZ</td>
- <td>-08:00<br>
- -07:52:58</td>
- <td colspan="2">The <i>ISO8601 extended format</i> with
- hours, minutes and optional seconds fields. The ISO8601 UTC
- indicator "Z" is used when local time offset is 0. This is
- equivalent to the "XXXXX" specifier.</td>
- </tr>
- <tr>
- <td rowspan="2" style="text-align: center">O</td>
- <td style="text-align: center">O</td>
- <td>GMT-8</td>
- <td colspan="2">The <i>short localized GMT format</i>.</td>
- </tr>
- <tr>
- <td style="text-align: center">OOOO</td>
- <td>GMT-08:00</td>
- <td colspan="2">The <i>long localized GMT format</i>.</td>
- </tr>
- <tr>
- <td rowspan="2" style="text-align: center">v</td>
- <td style="text-align: center">v</td>
- <td>PT</td>
- <td colspan="2">The <i>short generic non-location
- format</i>. Where that is unavailable, falls back to the
- <i>generic location format</i> ("VVVV"), then the <i>short
- localized GMT format</i> as the final fallback.</td>
- </tr>
- <tr>
- <td style="text-align: center">vvvv</td>
- <td>Pacific Time</td>
- <td colspan="2">The <i>long generic non-location
- format</i>. Where that is unavailable, falls back to
- <i>generic location format</i> ("VVVV").</td>
- </tr>
- <tr>
- <td rowspan="4" style="text-align: center">V</td>
- <td style="text-align: center">V</td>
- <td>uslax</td>
- <td colspan="2">The short time zone ID. Where that is
- unavailable, the special short time zone ID <i>unk</i>
- (Unknown Zone) is used.<br>
- <i><b>Note</b>: This specifier was originally used for a
- variant of the short specific non-location format, but it
- was deprecated in the later version of this specification.
- In CLDR 23, the definition of the specifier was changed to
- designate a short time zone ID.</i></td>
- </tr>
- <tr>
- <td style="text-align: center">VV</td>
- <td>America/Los_Angeles</td>
- <td colspan="2">The long time zone ID.</td>
- </tr>
- <tr>
- <td style="text-align: center">VVV</td>
- <td>Los Angeles</td>
- <td colspan="2">The exemplar city (location) for the time
- zone. Where that is unavailable, the localized exemplar
- city name for the special zone <i>Etc/Unknown</i> is used
- as the fallback (for example, "Unknown City").</td>
- </tr>
- <tr>
- <td style="text-align: center">VVVV</td>
- <td>Los Angeles Time</td>
- <td colspan="2">The <i>generic location format</i>. Where
- that is unavailable, falls back to the <i>long localized
- GMT format</i> ("OOOO"; Note: Fallback is only necessary
- with a GMT-style Time Zone ID, like Etc/GMT-830.)<br>
- This is especially useful when presenting possible timezone
- choices for user selection, since the naming is more
- uniform than the "v" format.</td>
- </tr>
- <tr>
- <td rowspan="5" style="text-align: center">X</td>
- <td style="text-align: center">X</td>
- <td>-08<br>
- +0530<br>
- Z</td>
- <td colspan="2">The <i>ISO8601 basic format</i> with hours
- field and optional minutes field. The ISO8601 UTC indicator
- "Z" is used when local time offset is 0. (The same as x,
- plus "Z".)</td>
- </tr>
- <tr>
- <td style="text-align: center">XX</td>
- <td>-0800<br>
- Z</td>
- <td colspan="2">The <i>ISO8601 basic format</i> with hours
- and minutes fields. The ISO8601 UTC indicator "Z" is used
- when local time offset is 0. (The same as xx, plus
- "Z".)</td>
- </tr>
- <tr>
- <td style="text-align: center">XXX</td>
- <td>-08:00<br>
- Z</td>
- <td colspan="2">The <i>ISO8601 extended format</i> with
- hours and minutes fields. The ISO8601 UTC indicator "Z" is
- used when local time offset is 0. (The same as xxx, plus
- "Z".)</td>
- </tr>
- <tr>
- <td style="text-align: center">XXXX</td>
- <td>-0800<br>
- -075258<br>
- Z</td>
- <td colspan="2">The <i>ISO8601 basic format</i> with hours,
- minutes and optional seconds fields. The ISO8601 UTC
- indicator "Z" is used when local time offset is 0. (The
- same as xxxx, plus "Z".)<br>
- <i><b>Note</b>: The seconds field is not supported by the
- ISO8601 specification.</i></td>
- </tr>
- <tr>
- <td style="text-align: center">XXXXX</td>
- <td>-08:00<br>
- -07:52:58<br>
- Z</td>
- <td colspan="2">The <i>ISO8601 extended format</i> with
- hours, minutes and optional seconds fields. The ISO8601 UTC
- indicator "Z" is used when local time offset is 0. (The
- same as xxxxx, plus "Z".)<br>
- <i><b>Note</b>: The seconds field is not supported by the
- ISO8601 specification.</i></td>
- </tr>
- <tr>
- <td rowspan="5" style="text-align: center">x</td>
- <td style="text-align: center">x</td>
- <td>-08<br>
- +0530<br>
- +00</td>
- <td colspan="2">The <i>ISO8601 basic format</i> with hours
- field and optional minutes field. (The same as X, minus
- "Z".)</td>
- </tr>
- <tr>
- <td style="text-align: center">xx</td>
- <td>-0800<br>
- +0000</td>
- <td colspan="2">The <i>ISO8601 basic format</i> with hours
- and minutes fields. (The same as XX, minus "Z".)</td>
- </tr>
- <tr>
- <td style="text-align: center">xxx</td>
- <td>-08:00<br>
- +00:00</td>
- <td colspan="2">The <i>ISO8601 extended format</i> with
- hours and minutes fields. (The same as XXX, minus
- "Z".)</td>
- </tr>
- <tr>
- <td style="text-align: center">xxxx</td>
- <td>-0800<br>
- -075258<br>
- +0000</td>
- <td colspan="2">The <i>ISO8601 basic format</i> with hours,
- minutes and optional seconds fields. (The same as XXXX,
- minus "Z".)<br>
- <i><b>Note</b>: The seconds field is not supported by the
- ISO8601 specification.</i></td>
- </tr>
- <tr>
- <td style="text-align: center">xxxxx</td>
- <td>-08:00<br>
- -07:52:58<br>
- +00:00</td>
- <td colspan="2">The <i>ISO8601 extended format</i> with
- hours, minutes and optional seconds fields. (The same as
- XXXXX, minus "Z".)<br>
- <i><b>Note</b>: The seconds field is not supported by the
- ISO8601 specification.</i></td>
- </tr>
- </table>
- <h3>8.1 <a name="Localized_Pattern_Characters" href=
- "#Localized_Pattern_Characters" id=
- "Localized_Pattern_Characters">Localized Pattern Characters
- (deprecated)</a></h3>
- <p>These are characters that can be used when displaying a date
- pattern to an end user. This can occur, for example, when a
- spreadsheet allows users to specify date patterns. Whatever is
- in the string is substituted one-for-one with the characters
- "GyMdkHmsSEDFwWahKzYeugAZvcLQqVUOXxr", with the above meanings.
- Thus, for example, if 'J' is to be used instead of 'Y' to mean
- Year (for Week of Year), then the string would be:
- "GyMdkHmsSEDFwWahKz<u>J</u>eugAZvcLQqVUOXxr".</p>
- <p>This element is deprecated. It is recommended instead that a
- more sophisticated UI be used for localization, such as using
- icons to represent the different formats (and lengths) in the
- <a href="#Date_Field_Symbol_Table">Date Field Symbol
- Table</a>.</p>
- <h3>8.2 <a name="Date_Patterns_AM_PM" href=
- "#Date_Patterns_AM_PM" id="Date_Patterns_AM_PM">AM /
- PM</a></h3>
- <p>Even for countries where the customary date format only has
- a 24 hour format, both the am and pm localized strings must be
- present and must be distinct from one another. Note that as
- long as the 24 hour format is used, these strings will normally
- never be used, but for testing and unusual circumstances they
- must be present.</p>
- <h3>8.3 <a name="Date_Patterns_Eras" href="#Date_Patterns_Eras"
- id="Date_Patterns_Eras">Eras</a></h3>
- <p>There are only two values for era in the Gregorian calendar,
- with two common naming conventions (here in abbreviated form
- for English): "BC" and "AD", or "BCE" and "CE". These values
- can be translated into other languages, like "a.C." and and
- "d.C." for Spanish, but there are no other eras in the
- Gregorian calendar. Other calendars have a different numbers of
- eras. Care should be taken when translating the era names for a
- specific calendar.</p>
- <h3>8.4 <a name="Date_Patterns_Week_Of_Year" href=
- "#Date_Patterns_Week_Of_Year" id=
- "Date_Patterns_Week_Of_Year">Week of Year</a></h3>
- <p>Values calculated for the Week of Year field range from 1 to
- 53 for the Gregorian calendar (they may have different ranges
- for other calendars). Week 1 for a year is the first week that
- contains at least the specified minimum number of days from
- that year. Weeks between week 1 of one year and week 1 of the
- following year are numbered sequentially from 2 to 52 or 53 (if
- needed). For example, January 1, 1998 was a Thursday. If the
- first day of the week is MONDAY and the minimum days in a week
- is 4 (these are the values reflecting ISO 8601 and many
- national standards), then week 1 of 1998 starts on December 29,
- 1997, and ends on January 4, 1998. However, if the first day of
- the week is SUNDAY, then week 1 of 1998 starts on January 4,
- 1998, and ends on January 10, 1998. The first three days of
- 1998 are then part of week 53 of 1997.</p>
- <p>Values are similarly calculated for the Week of Month.</p>
- <h3>8.5 <a name="Date_Patterns_Week_Elements" href=
- "#Date_Patterns_Week_Elements" id=
- "Date_Patterns_Week_Elements">Week Elements</a></h3>
- <dl>
- <dt><b>firstDay</b></dt>
- <dd>A number indicating which day of the week is considered
- the 'first' day, for calendar purposes. Because the ordering
- of days may vary between calendar, keywords are used for this
- value, such as sun, mon, …. These values will be replaced by
- the localized name when they are actually used.</dd>
- <dt><b>minDays (Minimal Days in First Week)</b></dt>
- <dd>Minimal days required in the first week of a month or
- year. For example, if the first week is defined as one that
- contains at least one day, this value will be 1. If it must
- contain a full seven days before it counts as the first week,
- then the value would be 7.</dd>
- <dt><b>weekendStart, weekendEnd</b></dt>
- <dd>Indicates the day and time that the weekend starts or
- ends. As with firstDay, keywords are used instead of
- numbers.</dd>
- </dl>
- <h2>9 <a name="Parsing_Dates_Times" href="#Parsing_Dates_Times"
- id="Parsing_Dates_Times">Parsing Dates and Times</a></h2>
- <p>For general information on lenient parsing, see <a href=
- "tr35.html#Lenient_Parsing">Lenient Parsing</a> in the core
- specification. This section provides additional information
- specific to parsing of dates and times.</p>
- <p>Lenient parsing of date and time strings is especially
- complicated, due to the large number of possible fields and
- formats. The fields fall into two categories: numeric fields
- (hour, day of month, year, numeric month, and so on) and
- symbolic fields (era, quarter, month, weekday, AM/PM, time
- zone). In addition, the user may type in a date or time in a
- form that is significantly different from the normal format for
- the locale, and the application must use the locale information
- to figure out what the user meant. Input may well consist of
- nothing but a string of numbers with separators, for example,
- "09/05/02 09:57:33".</p>
- <p>The input can be separated into tokens: numbers, symbols,
- and literal strings. Some care must be taken due to ambiguity,
- for example, in the Japanese locale the symbol for March is "3
- 月", which looks like a number followed by a literal. To avoid
- these problems, symbols should be checked first, and spaces
- should be ignored (except to delimit the tokens of the input
- string).</p>
- <p>The meaning of symbol fields should be easy to determine;
- the problem is determining the meaning of the numeric fields.
- Disambiguation will likely be most successful if it is based on
- heuristics. Here are some rules that can help:</p>
- <ul>
- <li>Always try the format string expected for the input text
- first. This is the only way to disambiguate 03/07 (March
- 2007, a credit card expiration date) from 03/07 (March 7, a
- birthday).</li>
- <li>Attempt to match fields and literals against those in the
- format string, using loose matching of the tokens. In
- particular, Unicode normalization and case variants should be
- accepted. Alternate symbols can also be accepted where
- unambiguous: for example, “11.30 am”.</li>
- <li>When matching symbols, try the narrow, abbreviated, and
- full-width forms, including standalone forms if they are
- unique. You may want to allow prefix matches too, or
- diacritic-insensitive, again, as long as they are unique. For
- example, for a month, accept 9, 09, S, Se, Sep, Sept, Sept.,
- and so on. For abbreviated symbols (e.g. names of eras,
- months, weekdays), allow matches both with and without an
- abbreviation marker such as period (or whatever else may be
- customary in the locale); abbreviated forms in the CLDR data
- may or may not have such a marker.
- <ul>
- <li>Note: While parsing of narrow date values (e.g. month
- or day names) may be required in order to obtain minimum
- information from a formatted date (for instance, the only
- month information may be in a narrow form), the results
- are not guaranteed; parsing of an ambiguous formatted
- date string may produce a result that differs from the
- date originally used to create the formatted string.</li>
- <li>For day periods, ASCII variants for AM/PM such as
- “am”, “a.m.”, “am.” (and their case variants) should be
- accepted, since they are widely used as alternates to
- native formats.</li>
- </ul>
- </li>
- <li>When a field or literal is encountered that is not
- compatible with the pattern:
- <ul>
- <li>Synchronization is not necessary for symbolic fields,
- since they are self-identifying. Wait until a numeric
- field or literal is encountered before attempting to
- resynchronize.</li>
- <li>Ignore whether the input token is symbolic or
- numeric, if it is compatible with the current field in
- the pattern.</li>
- <li>Look forward or backward in the current format string
- for a literal that matches the one most recently
- encountered. See if you can resynchronize from that
- point. Use the value of the numeric field to
- resynchronize as well, if possible (for example, a number
- larger than the largest month cannot be a month)</li>
- <li>If that fails, use other format strings from the
- locale (including those in <availableFormats>) to
- try to match the previous or next symbol or literal
- (again, using a loose match).</li>
- </ul>
- </li>
- </ul>
- <hr>
- <p class="copyright">Copyright © 2001–2020 Unicode, Inc. All
- Rights Reserved. The Unicode Consortium makes no expressed or
- implied warranty of any kind, and assumes no liability for
- errors or omissions. No liability is assumed for incidental and
- consequential damages in connection with or arising out of the
- use of the information or programs contained or accompanying
- this technical report. The Unicode <a href=
- "https://unicode.org/copyright.html">Terms of Use</a> apply.</p>
- <p class="copyright">Unicode and the Unicode logo are
- trademarks of Unicode, Inc., and are registered in some
- jurisdictions.</p>
- </div>
-</body>
-</html>
diff --git a/docs/ldml/tr35-dates.md b/docs/ldml/tr35-dates.md
new file mode 100644
index 0000000..9ab14c4
--- /dev/null
+++ b/docs/ldml/tr35-dates.md
@@ -0,0 +1,2203 @@
+## Unicode Technical Standard #35
+
+# Unicode Locale Data Markup Language (LDML)<br/>Part 4: Dates
+
+<!-- HTML: no header -->
+<table><tbody>
+<tr><td>Version</td><td>39</td></tr>
+<tr><td>Editors</td><td>Peter Edberg and <a href="tr35.md#Acknowledgments">other CLDR committee members</a></td></tr>
+</tbody></table>
+
+For the full header, summary, and status, see [Part 1: Core](tr35.md).
+
+### _Summary_
+
+This document describes parts of an XML format (_vocabulary_) for the exchange of structured locale data. This format is used in the [Unicode Common Locale Data Repository](https://unicode.org/cldr/).
+
+This is a partial document, describing only those parts of the LDML that are relevant for date, time, and time zone formatting. For the other parts of the LDML see the [main LDML document](tr35.md) and the links above.
+
+### _Status_
+
+_This document has been reviewed by Unicode members and other interested parties, and has been approved for publication by the Unicode Consortium. This is a stable document and may be used as reference material or cited as a normative reference by other specifications._
+
+> _**A Unicode Technical Standard (UTS)** is an independent specification. Conformance to the Unicode Standard does not imply conformance to any UTS._
+
+_Please submit corrigenda and other comments with the CLDR bug reporting form [[Bugs](tr35.md#Bugs)]. Related information that is useful in understanding this document is found in the [References](tr35.md#References). For the latest version of the Unicode Standard see [[Unicode](tr35.md#Unicode)]. For a list of current Unicode Technical Reports see [[Reports](tr35.md#Reports)]. For more information about versions of the Unicode Standard, see [[Versions](tr35.md#Versions)]._
+
+## <a name="Parts" href="#Parts">Parts</a>
+
+The LDML specification is divided into the following parts:
+
+* Part 1: [Core](tr35.md#Contents) (languages, locales, basic structure)
+* Part 2: [General](tr35-general.md#Contents) (display names & transforms, etc.)
+* Part 3: [Numbers](tr35-numbers.md#Contents) (number & currency formatting)
+* Part 4: [Dates](tr35-dates.md#Contents) (date, time, time zone formatting)
+* Part 5: [Collation](tr35-collation.md#Contents) (sorting, searching, grouping)
+* Part 6: [Supplemental](tr35-info.md#Contents) (supplemental data)
+* Part 7: [Keyboards](tr35-keyboards.md#Contents) (keyboard mappings)
+
+## <a name="Contents" href="#Contents">Contents of Part 4, Dates</a>
+
+* 1 [Overview: Dates Element, Supplemental Date and Calendar Information](#Overview_Dates_Element_Supplemental)
+* 2 [Calendar Elements](#Calendar_Elements)
+ * 2.1 [Elements months, days, quarters, eras](#months_days_quarters_eras)
+ * 2.2 [Elements monthPatterns, cyclicNameSets](#monthPatterns_cyclicNameSets)
+ * 2.3 [Element dayPeriods](#dayPeriods)
+ * 2.4 [Element dateFormats](#dateFormats)
+ * 2.5 [Element timeFormats](#timeFormats)
+ * 2.6 [Element dateTimeFormats](#dateTimeFormats)
+ * 2.6.1 [Element dateTimeFormat](#dateTimeFormat)
+ * Table: [Date-Time Combination Examples](#Date_Time_Combination_Examples)
+ * 2.6.2 [Elements availableFormats, appendItems](#availableFormats_appendItems)
+ * 2.6.2.1 [Matching Skeletons](#Matching_Skeletons)
+ * 2.6.2.2 [Missing Skeleton Fields](#Missing_Skeleton_Fields)
+ * 2.6.3 [Element intervalFormats](#intervalFormats)
+* 3 [Calendar Fields](#Calendar_Fields)
+* 4 [Supplemental Calendar Data](#Supplemental_Calendar_Data)
+ * 4.1 [Calendar Data](#Calendar_Data)
+ * 4.2 [Calendar Preference Data](#Calendar_Preference_Data)
+ * 4.3 [Week Data](#Week_Data)
+ * Table: [Week Designation Types](#Week_Designation_Types)
+ * 4.4 [Time Data](#Time_Data)
+ * 4.5 [Day Period Rule Sets](#Day_Period_Rule_Sets)
+ * 4.5.1 [Day Period Rules](#Day_Period_Rules)
+ * 4.5.1.1 [Fixed periods](#Fixed_periods)
+ * 4.5.1.2 [Variable periods](#Variable_periods)
+ * 4.5.1.3 [Parsing Day Periods](#Parsing_Day_Periods)
+* 5 [Time Zone Names](#Time_Zone_Names)
+ * Table: [\<timeZoneNames> Elements Used for Fallback](#timeZoneNames_Elements_Used_for_Fallback)
+ * 5.1 [Metazone Names](#Metazone_Names)
+* 6 [Supplemental Time Zone Data](#Supplemental_Time_Zone_Data)
+ * 6.1 [Metazones](#Metazones)
+ * 6.2 [Windows Zones](#Windows_Zones)
+ * 6.3 [Primary Zones](#Primary_Zones)
+* 7 [Using Time Zone Names](#Using_Time_Zone_Names)
+ * 7.1 [Time Zone Format Terminology](#Time_Zone_Format_Terminology)
+ * 7.2 [Goals](#Time_Zone_Goals)
+ * 7.3 [Parsing](#Time_Zone_Parsing)
+* 8 [Date Format Patterns](#Date_Format_Patterns)
+ * Table: [Date Format Pattern Examples](#Date_Format_Pattern_Examples)
+ * [Date Field Symbol Table](#Date_Field_Symbol_Table)
+ * 8.1 [Localized Pattern Characters (deprecated)](#Localized_Pattern_Characters)
+ * 8.2 [AM / PM](#Date_Patterns_AM_PM)
+ * 8.3 [Eras](#Date_Patterns_Eras)
+ * 8.4 [Week of Year](#Date_Patterns_Week_Of_Year)
+ * 8.5 [Week Elements](#Date_Patterns_Week_Elements)
+* 9 [Parsing Dates and Times](#Parsing_Dates_Times)
+
+## 1 <a name="Overview_Dates_Element_Supplemental" href="#Overview_Dates_Element_Supplemental">Overview: Dates Element, Supplemental Date and Calendar Information</a>
+
+```xml
+<!ELEMENT dates (alias | (calendars?, fields?, timeZoneNames?, special*)) >
+```
+
+The LDML top-level `<dates>` element contains information regarding the format and parsing of dates and times, the formatting of date/time intervals, and the the naming of various calendar elements.
+
+* The `<calendars>` element is described in section 2 [Calendar Elements](#Calendar_Elements).
+* The `<fields>` element is described in section 3 [Calendar Fields](#Calendar_Fields).
+* The `<timeZoneNames>` element is described in section 5 [Time Zone Names](#Time_Zone_Names).
+* The formats use pattern characters described in section 8 [Date Format Patterns](#Date_Format_Patterns).
+
+```xml
+<!ELEMENT supplementalData ( …, calendarData?, calendarPreferenceData?, weekData?, timeData?, …, timezoneData?, …, metazoneInfo?, …, dayPeriodRuleSet*, metaZones?, primaryZones?, windowsZones?, …) >
+```
+
+The relevant top-level supplemental elements are listed above.
+
+* The `<calendarData>`, `<calendarPreferenceData>`, `<weekData>`, `<timeData>`, and `<dayPeriodRuleSet>` elements are described in section 4 [Supplemental Calendar Data](#Supplemental_Calendar_Data).
+* The `<timezoneData>` element is deprecated and no longer used; the `<metazoneInfo>` element is deprecated at this level, and is now only used as a sub-element of `<metaZones>`.
+* The `<metaZones>`, `<primaryZones>`, and `<windowsZones>` elements are described in section 6 [Supplemental Time Zone Data](#Supplemental_Time_Zone_Data).
+
+## 2 <a name="Calendar_Elements" href="#Calendar_Elements">Calendar Elements</a>
+
+```xml
+<!ELEMENT calendars (alias | (calendar*, special*)) >
+<!ELEMENT calendar (alias | (months?, monthPatterns?, days?, quarters?, dayPeriods?, eras?, cyclicNameSets?, dateFormats?, timeFormats?, dateTimeFormats?, special*))>
+<!ATTLIST calendar type NMTOKEN #REQUIRED >
+```
+
+The `<calendars>` element contains multiple `<calendar>` elements, each of which specifies the fields used for formatting and parsing dates and times according to the calendar specified by the `type` attribute (e.g. "gregorian", "buddhist", "islamic"). The behaviors for different calendars in a locale may share certain aspects, such as the names for weekdays. They differ in other respects; for example, the Japanese calendar is similar to the Gregorian calendar but has many more eras (one for each Emperor), and years are numbered within each era. All calendar data inherits either from the Gregorian calendar or other calendars in the same locale (and if not present there then from the parent up to root), or else inherits directly from the parent locale for certain calendars, so only data that differs from what would be inherited needs to be supplied. See _[Multiple Inheritance](tr35.md#Multiple_Inheritance)_.
+
+Each calendar provides—directly or indirectly—two general types of data:
+
+* _Calendar symbols, such as names for eras, months, weekdays, and dayPeriods._ Names for weekdays, quarters and dayPeriods are typically inherited from the Gregorian calendar data in the same locale. Symbols for eras and months should be provided for each calendar, except that the "Gregorian-like" Buddhist, Japanese, and Minguo (ROC) calendars also inherit their month names from the Gregorian data in the same locale.
+* _Format data for dates, times, and date-time intervals._ Non-Gregorian calendars inherit standard time formats (in the `<timeFormats>` element) from the Gregorian calendar in the same locale. Most non-Gregorian calendars (other than Chinese and Dangi) inherit general date format data (in the `<dateFormats>` and `<dateTimeFormats>` elements) from the "generic" calendar format data in the same locale, which in turn inherits from Gregorian.
+
+Calendars that use cyclicNameSets and monthPatterns (such as Chinese and Dangi) have additional symbols and distinct formats, and typically inherit these items (along with month names) from their parent locales, instead of inheriting them from Gregorian or generic data in the same locale.
+
+The primary difference between Gregorian and "generic" format data is that date formats in "generic" usually include era with year, in order to provide an indication of which calendar is being used (Gregorian calendar formats may also commonly include era with year when Gregorian is not the default calendar for the locale). Otherwise, the "generic" date formats should normally be consistent with those in the Gregorian calendar. The "generic" calendar formats are intended to provide a consistent set of default formats for non-Gregorian calendars in the locale, so that in most cases the only data items that need be provided for non-Gregorian calendars are the era names and month names (and the latter only for calendars other than Buddhist, Japanese, and Minguo, since those inherit month names from Gregorian).
+
+### 2.1 <a name="months_days_quarters_eras" href="#months_days_quarters_eras">Elements months, days, quarters, eras</a>
+
+```xml
+<!ELEMENT months ( alias | (monthContext*, special*)) >
+<!ELEMENT monthContext ( alias | (default*, monthWidth*, special*)) >
+<!ATTLIST monthContext type ( format | stand-alone ) #REQUIRED >
+<!ELEMENT monthWidth ( alias | (month*, special*)) >
+<!ATTLIST monthWidth type ( abbreviated| narrow | wide) #REQUIRED >
+<!ELEMENT month ( #PCDATA )* >
+<!ATTLIST month type ( 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 ) #REQUIRED >
+<!ATTLIST month yeartype ( standard | leap ) #IMPLIED >
+
+<!ELEMENT days ( alias | (dayContext*, special*)) >
+<!ELEMENT dayContext ( alias | (default*, dayWidth*, special*)) >
+<!ATTLIST dayContext type ( format | stand-alone ) #REQUIRED >
+<!ELEMENT dayWidth ( alias | (day*, special*)) >
+<!ATTLIST dayWidth type NMTOKEN #REQUIRED >
+<!ELEMENT day ( #PCDATA ) >
+<!ATTLIST day type ( sun | mon | tue | wed | thu | fri | sat ) #REQUIRED >
+
+<!ELEMENT quarters ( alias | (quarterContext*, special*)) >
+<!ELEMENT quarterContext ( alias | (default*, quarterWidth*, special*)) >
+<!ATTLIST quarterContext type ( format | stand-alone ) #REQUIRED >
+<!ELEMENT quarterWidth ( alias | (quarter*, special*)) >
+<!ATTLIST quarterWidth type NMTOKEN #REQUIRED >
+<!ELEMENT quarter ( #PCDATA ) >
+<!ATTLIST quarter type ( 1 | 2 | 3 | 4 ) #REQUIRED >
+
+<!ELEMENT eras (alias | (eraNames?, eraAbbr?, eraNarrow?, special*)) >
+<!ELEMENT eraNames ( alias | (era*, special*) ) >
+<!ELEMENT eraAbbr ( alias | (era*, special*) ) >
+<!ELEMENT eraNarrow ( alias | (era*, special*) ) >
+```
+
+The month and quarter names are identified numerically, starting at 1. The weekday names are identified with short strings, since there is no universally-accepted numeric designation.
+
+Month, day, and quarter names may vary along two axes: the width and the context.
+
+The context is either _format_ (the default), the form used within a complete date format string (such as "Saturday, November 12"), or _stand-alone_, the form for date elements used independently, such as in calendar headers. The most important distinction between format and stand-alone forms is a grammatical distinction, for languages that require it. For example, many languages require that a month name without an associated day number (i.e. an independent form) be in the basic _nominative_ form, while a month name with an associated day number (as in a complete date format) should be in a different grammatical form: _genitive_, _partitive_, etc. In past versions of CLDR, the distinction between format and stand-alone forms was also used to control capitalization (with stand-alone forms using titlecase); however, this can be controlled separately and more precisely using the `<contextTransforms>` element as described in _[ContextTransform Elements](tr35-general.md#Context_Transform_Elements)_, so stand-alone forms should generally use middle-of-sentence capitalization. However, if in a given language, certain context/width combinations are always used in a titlecase form — for example, stand-alone narrow forms for months or weekdays — then these should be provided in that form.
+
+The width can be _wide_ (the default), _abbreviated_, or _narrow_; for days only, the width can also be _short,_ which is ideally between the abbreviated and narrow widths, but must be no longer than abbreviated and no shorter than narrow (if short day names are not explicitly specified, abbreviated day names are used instead). Note that for `<monthPattern>`, described in the next section:
+
+* There is an additional context type _numeric_
+* When the context type is numeric, the width has a special type _all_
+
+The format values must be distinct for the wide, abbreviated, and short widths. However, values for the narrow width in either format or stand-alone contexts, as well as values for other widths in stand-alone contexts, need not be distinct; they might only be distinguished by context. For example, "S" may be used both for Saturday and for Sunday. The narrow width is typically used in calendar headers; it must be the shortest possible width, no more than one character (or grapheme cluster, or exemplar set element) in stand-alone values (not including punctuation), and the shortest possible widths (in terms of grapheme clusters) in format values. The short width (if present) is often the shortest unambiguous form.
+
+Era names should be distinct within each of the widths, including narrow; there is less disambiguating information for them, and they are more likely to be used in a format that requires parsing.
+
+Due to aliases in root, the forms inherit "sideways". (See _[Multiple Inheritance](tr35.md#Multiple_Inheritance)_.) For example, if the abbreviated format data for Gregorian does not exist in a language X (in the chain up to root), then it inherits from the wide format data in that same language X.
+
+```xml
+<monthContext type="format">
+ <monthWidth type="abbreviated">
+ <alias source="locale" path="../monthWidth[@type='wide']"/>
+ </monthWidth>
+ <monthWidth type="narrow">
+ <alias source="locale" path="../../monthContext[@type='stand-alone']/monthWidth[@type='narrow']"/>
+ </monthWidth>
+ <monthWidth type="wide">
+ <month type="1">1</month>
+ ...
+ <month type="12">12</month>
+ </monthWidth>
+</monthContext>
+<monthContext type="stand-alone">
+ <monthWidth type="abbreviated">
+ <alias source="locale" path="../../monthContext[@type='format']/monthWidth[@type='abbreviated']"/>
+ </monthWidth>
+ <monthWidth type="narrow">
+ <month type="1">1</month>
+ ...
+ <month type="12">12</month>
+ </monthWidth>
+ <monthWidth type="wide">
+ <alias source="locale" path="../../monthContext[@type='format']/monthWidth[@type='wide']"/>
+ </monthWidth>
+</monthContext>
+```
+
+The `yeartype` attribute for months is used to distinguish alternate month names that would be displayed for certain calendars during leap years. The practical example of this usage occurs in the Hebrew calendar, where the 7th month "Adar" occurs in non-leap years, with the 6th month being skipped, but in leap years there are two months named "Adar I" and "Adar II". There are currently only two defined year types, standard (the implied default) and leap.
+
+For `era` elements, an additional `alt="variant"` form may be supplied. This is primarily intended for use in the "gregorian" calendar, with which two parallel sets of era designations are used in some locales: one set with a religious reference (e.g. English BC/AD), and one set without (e.g. English BCE/CE). The most commonly-used set for the locale should be provided as the default, and the other set may be provided as the `alt="variant"` forms. See the example below.
+
+Example:
+
+```xml
+<calendar type="gregorian">
+ <months>
+ <monthContext type="format">
+ <monthWidth type="wide">
+ <month type="1">January</month>
+ <month type="2">February</month>
+ ...
+ <month type="11">November</month>
+ <month type="12">December</month>
+ </monthWidth>
+ <monthWidth type="abbreviated">
+ <month type="1">Jan</month>
+ <month type="2">Feb</month>
+ ...
+ <month type="11">Nov</month>
+ <month type="12">Dec</month>
+ </monthWidth>
+ </monthContext>
+ <monthContext type="stand-alone">
+ <default type="wide"/>
+ <monthWidth type="wide">
+ <month type="1">Januaria</month>
+ <month type="2">Februaria</month>
+ ...
+ <month type="11">Novembria</month>
+ <month type="12">Decembria</month>
+ </monthWidth>
+ <monthWidth type="narrow">
+ <month type="1">J</month>
+ <month type="2">F</month>
+ ...
+ <month type="11">N</month>
+ <month type="12">D</month>
+ </monthWidth>
+ </monthContext>
+ </months>
+
+ <days>
+ <dayContext type="format">
+ <dayWidth type="wide">
+ <day type="sun">Sunday</day>
+ <day type="mon">Monday</day>
+ ...
+ <day type="fri">Friday</day>
+ <day type="sat">Saturday</day>
+ </dayWidth>
+ <dayWidth type="abbreviated">
+ <day type="sun">Sun</day>
+ <day type="mon">Mon</day>
+ ...
+ <day type="fri">Fri</day>
+ <day type="sat">Sat</day>
+ </dayWidth>
+ <dayWidth type="narrow">
+ <day type="sun">Su</day>
+ <day type="mon">M</day>
+ ...
+ <day type="fri">F</day>
+ <day type="sat">Sa</day>
+ </dayWidth>
+ </dayContext>
+ <dayContext type="stand-alone">
+ <dayWidth type="narrow">
+ <day type="sun">S</day>
+ <day type="mon">M</day>
+ ...
+ <day type="fri">F</day>
+ <day type="sat">S</day>
+ </dayWidth>
+ </dayContext>
+ </days>
+
+ <quarters>
+ <quarterContext type="format">
+ <quarterWidth type="abbreviated">
+ <quarter type="1">Q1</quarter>
+ <quarter type="2">Q2</quarter>
+ <quarter type="3">Q3</quarter>
+ <quarter type="4">Q4</quarter>
+ </quarterWidth>
+ <quarterWidth type="wide">
+ <quarter type="1">1st quarter</quarter>
+ <quarter type="2">2nd quarter</quarter>
+ <quarter type="3">3rd quarter</quarter>
+ <quarter type="4">4th quarter</quarter>
+ </quarterWidth>
+ </quarterContext>
+ </quarters>
+
+ <eras>
+ <eraAbbr>
+ <era type="0">BC</era>
+ <era type="0" alt="variant">BCE</era>
+ <era type="1">AD</era>
+ <era type="1" alt="variant">CE</era>
+ </eraAbbr>
+ <eraNames>
+ <era type="0">Before Christ</era>
+ <era type="0" alt="variant">Before Common Era</era>
+ <era type="1">Anno Domini</era>
+ <era type="1" alt="variant">Common Era</era>
+ </eraNames>
+ <eraNarrow>
+ <era type="0">B</era>
+ <era type="1">A</era>
+ </eraNarrow>
+ </eras>
+```
+
+### 2.2 <a name="monthPatterns_cyclicNameSets" href="#monthPatterns_cyclicNameSets">Elements monthPatterns, cyclicNameSets</a>
+
+```xml
+<!ELEMENT monthPatterns ( alias | (monthPatternContext*, special*)) >
+<!ELEMENT monthPatternContext ( alias | (monthPatternWidth*, special*)) >
+<!ATTLIST monthPatternContext type ( format | stand-alone | numeric ) #REQUIRED >
+<!ELEMENT monthPatternWidth ( alias | (monthPattern*, special*)) >
+<!ATTLIST monthPatternWidth type ( abbreviated| narrow | wide | all ) #REQUIRED >
+<!ELEMENT monthPattern ( #PCDATA ) >
+<!ATTLIST monthPattern type ( leap | standardAfterLeap | combined ) #REQUIRED >
+
+<!ELEMENT cyclicNameSets ( alias | (cyclicNameSet*, special*)) >
+<!ELEMENT cyclicNameSet ( alias | (cyclicNameContext*, special*)) >
+<!ATTLIST cyclicNameSet type ( years | months | days | dayParts | zodiacs | solarTerms ) #REQUIRED >
+<!ELEMENT cyclicNameContext ( alias | (cyclicNameWidth*, special*)) >
+<!ATTLIST cyclicNameContext type ( format | stand-alone ) #REQUIRED >
+<!ELEMENT cyclicNameWidth ( alias | (cyclicName*, special*)) >
+<!ATTLIST cyclicNameWidth type ( abbreviated | narrow | wide ) #REQUIRED >
+<!ELEMENT cyclicName ( #PCDATA ) >
+<!ATTLIST cyclicName type NMTOKEN #REQUIRED >
+```
+
+The Chinese lunar calendar can insert a leap month after nearly any month of its year; when this happens, the month takes the name of the preceding month plus a special marker. The Hindu lunar calendars can insert a leap month before any one or two months of the year; when this happens, not only does the leap month take the name of the following month plus a special marker, the following month also takes a special marker. Moreover, in the Hindu calendar sometimes a month is skipped, in which case the preceding month takes a special marker plus the names of both months. The `<monthPatterns>` element structure supports these special kinds of month names. It parallels the `<months>` element structure, with various contexts and widths, but with some differences:
+
+* Since the month markers may be applied to numeric months as well, there is an additional `monthPatternContext` type `numeric` for this case. When the numeric context is used, there is no need for different widths, so the `monthPatternWidth` type is `all` for this case.
+* The `<monthPattern>` element itself is a pattern showing how to create the modified month name from the standard month name(s). The three types of possible pattern are for `leap`, `standardAfterLeap`, and `combined`.
+* The `<monthPatterns>` element is not present for calendars that do not need it.
+
+The Chinese and Hindu lunar calendars also use a 60-name cycle for designating years. The Chinese lunar calendars can also use that cycle for months and days, and can use 12-name cycles for designating day subdivisions or zodiac names associated with years; a 24-name cycle of solar terms (12 pairs of minor and major terms) is used to mark intervals in the solar cycle. The `<cyclicNameSets>` element structure supports these special kinds of name cycles; a `cyclicNameSet` can be provided for types `year`, `month`, `day`, `dayParts`, or `zodiacs`. For each `cyclicNameSet`, there is a context and width structure similar to that for day names. For a given context and width, a set of `cyclicName` elements provides the actual names.
+
+Example:
+
+```xml
+ <monthPatterns>
+ <monthPatternContext type="format">
+ <monthPatternWidth type="wide">
+ <monthPattern type="leap">闰{0}</monthPattern>
+ </monthPatternWidth>
+ </monthPatternContext>
+ <monthPatternContext type="stand-alone">
+ <monthPatternWidth type="narrow">
+ <monthPattern type="leap">闰{0}</monthPattern>
+ </monthPatternWidth>
+ </monthPatternContext>
+ <monthPatternContext type="numeric">
+ <monthPatternWidth type="all">
+ <monthPattern type="leap">闰{0}</monthPattern>
+ </monthPatternWidth>
+ </monthPatternContext>
+ </monthPatterns>
+ <cyclicNameSets>
+ <cyclicNameSet type="years">
+ <cyclicNameContext type="format">
+ <cyclicNameWidth type="abbreviated">
+ <cyclicName type="1">甲子</cyclicName>
+ <cyclicName type="2">乙丑</cyclicName>
+ ...
+ <cyclicName type="59">壬戌</cyclicName>
+ <cyclicName type="60">癸亥</cyclicName>
+ </cyclicNameWidth>
+ </cyclicNameContext>
+ </cyclicNameSet>
+ <cyclicNameSet type="zodiacs">
+ <cyclicNameContext type="format">
+ <cyclicNameWidth type="abbreviated">
+ <cyclicName type="1">鼠</cyclicName>
+ <cyclicName type="2">牛</cyclicName>
+ ...
+ <cyclicName type="11">狗</cyclicName>
+ <cyclicName type="12">猪</cyclicName>
+ </cyclicNameWidth>
+ </cyclicNameContext>
+ </cyclicNameSet>
+ <cyclicNameSet type="solarTerms">
+ <cyclicNameContext type="format">
+ <cyclicNameWidth type="abbreviated">
+ <cyclicName type="1">立春</cyclicName>
+ <cyclicName type="2">雨水</cyclicName>
+ ...
+ <cyclicName type="23">小寒</cyclicName>
+ <cyclicName type="24">大寒</cyclicName>
+ </cyclicNameWidth>
+ </cyclicNameContext>
+ </cyclicNameSet>
+ </cyclicNameSets>
+```
+
+### 2.3 <a name="dayPeriods" href="#dayPeriods">Element dayPeriods</a>
+
+The former `am`/`pm` elements have been deprecated, and replaced by the more flexible `dayPeriods`.
+
+```xml
+<!ELEMENT dayPeriods ( alias | (dayPeriodContext*) ) >
+
+<!ELEMENT dayPeriodContext (alias | dayPeriodWidth*) >
+<!ATTLIST dayPeriodContext type NMTOKEN #REQUIRED >
+
+<!ELEMENT dayPeriodWidth (alias | dayPeriod*) >
+<!ATTLIST dayPeriodWidth type NMTOKEN #REQUIRED >
+
+<!ELEMENT dayPeriod ( #PCDATA ) >
+<!ATTLIST dayPeriod type NMTOKEN #REQUIRED >
+```
+
+These behave like months, days, and so on in terms of having context and width. Each locale has an associated dayPeriodRuleSet in the supplemental data, rules that specify when the day periods start and end for that locale. Each type in the rules needs to have a translation in a dayPeriod (but if translation data is missing for a particular variable dayPeriod in the locale’s language and script, formatting should fall back to using the am/pm values). For more information, see _[Day Period Rules](#Day_Period_Rules)_.
+
+The dayPeriod names should be distinct within each of the context/width combinations, including narrow; as with era names, there is less disambiguating information for them, and they are more likely to be used in a format that requires parsing. In some unambiguous cases, it is acceptable for certain overlapping dayPeriods to be the same, such as the names for "am" and "morning", or the names for "pm" and "afternoon".
+
+Example:
+
+```xml
+ <dayPeriods>
+ <dayPeriodContext type="format">
+ <dayPeriodWidth type="wide">
+ <dayPeriod type="am">AM</dayPeriod>
+ <dayPeriod type="noon">noon</dayPeriod>
+ <dayPeriod type="pm">PM</dayPeriod>
+ </dayPeriodWidth>
+ </dayPeriodContext>
+ </dayPeriods>
+```
+
+### 2.4 <a name="dateFormats" href="#dateFormats">Element dateFormats</a>
+
+```xml
+<!ELEMENT dateFormats (alias | (default*, dateFormatLength*, special*)) >
+<!ELEMENT dateFormatLength (alias | (default*, dateFormat*, special*)) >
+<!ATTLIST dateFormatLength type ( full | long | medium | short ) #REQUIRED >
+<!ELEMENT dateFormat (alias | (pattern*, displayName*, special*)) >
+```
+
+Standard date formats have the following form:
+
+```xml
+ <dateFormats>
+ <dateFormatLength type=”full”>
+ <dateFormat>
+ <pattern>EEEE, MMMM d, y</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormatLength type="medium">
+ <dateFormat type="DateFormatsKey2">
+ <pattern>MMM d, y</pattern>
+ </dateFormat>
+ </dateFormatLength>
+ <dateFormats>
+```
+
+The patterns for date formats and time formats are defined in _[Date Format Patterns](#Date_Format_Patterns)._ These patterns are intended primarily for display of isolated date and time strings in user-interface elements, rather than for date and time strings in the middle of running text, so capitalization and grammatical form should be chosen appropriately.
+
+Standard date and time patterns are each normally provided in four types: full (usually with weekday name), long (with wide month name), medium, and short (usually with numeric month).
+
+### 2.5 <a name="timeFormats" href="#timeFormats">Element timeFormats</a>
+
+```xml
+<!ELEMENT timeFormats (alias | (default*, timeFormatLength*, special*)) >
+<!ELEMENT timeFormatLength (alias | (default*, timeFormat*, special*)) >
+<!ATTLIST timeFormatLength type ( full | long | medium | short ) #REQUIRED >
+<!ELEMENT timeFormat (alias | (pattern*, displayName*, special*)) >
+```
+Standard time formats have the following form:
+
+```xml
+ <timeFormats>
+ <timeFormatLength type=”full”>
+ <timeFormat>
+ <displayName>DIN 5008 (EN 28601)</displayName>
+ <pattern>h:mm:ss a z</pattern>
+ </timeFormat>
+ </timeFormatLength>
+ <timeFormatLength type="medium">
+ <timeFormat>
+ <pattern>h:mm:ss a</pattern>
+ </timeFormat>
+ </timeFormatLength>
+ </timeFormats>
+```
+
+The preference of 12 hour versus 24 hour for the locale can be derived from the [Time Data](#Time_Data). If the preferred hour symbol is 'h' or 'K' then the format is 12 hour; otherwise it is 24 hour. Formats with 'h' or 'K' must also include a field with one of the day period pattern characters: 'a', 'b', or 'B'.
+
+To account for customary usage in some countries, APIs should allow for formatting times that go beyond 23:59:59. For example, in some countries it would be customary to indicate that opening hours extending from _Friday at 7pm_ to _Saturday at 2am_ in a format like the following:
+
+Friday: 19:00 – 26:00
+
+Time formats use the specific non-location format (z or zzzz) for the time zone name. This is the format that should be used when formatting a specific time for presentation. When formatting a time referring to a recurring time (such as a meeting in a calendar), applications should substitute the generic non-location format (v or vvvv) for the time zone in the time format pattern. See _[Using Time Zone Names](#Using_Time_Zone_Names)._ for a complete description of available time zone formats and their uses.
+
+### 2.6 <a name="dateTimeFormats" href="#dateTimeFormats">Element dateTimeFormats</a>
+
+```xml
+<!ELEMENT dateTimeFormats (alias | (default*, dateTimeFormatLength*, availableFormats*, appendItems*, intervalFormats*, special*)) >
+```
+
+Date/Time formats have the following form:
+```xml
+ <dateTimeFormats>
+ <dateTimeFormatLength type=”long”>
+ <dateTimeFormat>
+ <pattern>{1} 'at' {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <dateTimeFormatLength type=”medium”>
+ <dateTimeFormat>
+ <pattern>{1}, {0}</pattern>
+ </dateTimeFormat>
+ </dateTimeFormatLength>
+ <availableFormats>
+ <dateFormatItem id="Hm">HH:mm</dateFormatItem>
+ <dateFormatItem id="Hms">HH:mm:ss</dateFormatItem>
+ <dateFormatItem id="M">L</dateFormatItem>
+ <dateFormatItem id="MEd">E, M/d</dateFormatItem>
+ <dateFormatItem id="MMM">LLL</dateFormatItem>
+ <dateFormatItem id="MMMEd">E, MMM d</dateFormatItem>
+ <dateFormatItem id="MMMMEd">E, MMMM d</dateFormatItem>
+ <dateFormatItem id="MMMMd">MMMM d</dateFormatItem>
+ <dateFormatItem id="MMMd">MMM d</dateFormatItem>
+ <dateFormatItem id="Md">M/d</dateFormatItem>
+ <dateFormatItem id="d">d</dateFormatItem>
+ <dateFormatItem id="hm">h:mm a</dateFormatItem>
+ <dateFormatItem id="ms">mm:ss</dateFormatItem>
+ <dateFormatItem id="y">yyyy</dateFormatItem>
+ <dateFormatItem id="yM">M/yyyy</dateFormatItem>
+ <dateFormatItem id="yMEd">EEE, M/d/yyyy</dateFormatItem>
+ <dateFormatItem id="yMMM">MMM yyyy</dateFormatItem>
+ <dateFormatItem id="yMMMEd">EEE, MMM d, yyyy</dateFormatItem>
+ <dateFormatItem id="yMMMM">MMMM yyyy</dateFormatItem>
+ <dateFormatItem id="yQ">Q yyyy</dateFormatItem>
+ <dateFormatItem id="yQQQ">QQQ yyyy</dateFormatItem>
+ . . .
+ </availableFormats>
+ <appendItems>
+ <appendItem request="G">{0} {1}</appendItem>
+ <appendItem request="w">{0} ({2}: {1})</appendItem>
+ . . .
+ </appendItems>
+ </dateTimeFormats>
+
+</calendar>
+
+<calendar type="buddhist">
+ <eras>
+ <eraAbbr>
+ <era type="0">BE</era>
+ </eraAbbr>
+ </eras>
+</calendar>
+```
+
+These formats allow for date and time formats to be composed in various ways.
+
+#### 2.6.1 <a name="dateTimeFormat" href="#dateTimeFormat">Element dateTimeFormat</a>
+
+```xml
+<!ELEMENT dateTimeFormatLength (alias | (default*, dateTimeFormat*, special*))>
+<!ATTLIST dateTimeFormatLength type ( full | long | medium | short ) #IMPLIED >
+<!ELEMENT dateTimeFormat (alias | (pattern*, displayName*, special*))>
+```
+
+The `dateTimeFormat` element works like the dateFormats and timeFormats, except that the pattern is of the form "{1} {0}", where {0} is replaced by the time format, and {1} is replaced by the date format, with results such as "8/27/06 7:31 AM". Except for the substitution markers {0} and {1}, text in the dateTimeFormat is interpreted as part of a date/time pattern, and is subject to the same rules described in [Date Format Patterns](#Date_Format_Patterns). This includes the need to enclose ASCII letters in single quotes if they are intended to represent literal text.
+
+When combining a standard date pattern with a standard time pattern, the type of dateTimeFormat used to combine them is determined by the type of the date pattern. For example:
+
+##### <a name="Date_Time_Combination_Examples" href="#Date_Time_Combination_Examples">Date-Time Combination Examples</a>
+
+| Date-Time Combination | dateTimeFormat | Results |
+| ----------------------- | ------------------------- | ------- |
+| full date + short time | full, e.g. "{1} 'at' {0}" | Wednesday, September 18, 2013 at 4:30 PM |
+| medium date + long time | medium, e.g. "{1}, {0}" | Sep 18, 2013, 4:30:00 PM PDT |
+
+#### 2.6.2 <a name="availableFormats_appendItems" href="#availableFormats_appendItems">Elements availableFormats, appendItems</a>
+
+```xml
+<!ELEMENT availableFormats (alias | (dateFormatItem*, special*))>
+<!ELEMENT dateFormatItem ( #PCDATA ) >
+<!ATTLIST dateFormatItem id CDATA #REQUIRED >
+```
+
+The `availableFormats` element and its subelements provide a more flexible formatting mechanism than the predefined list of patterns represented by dateFormatLength, timeFormatLength, and dateTimeFormatLength. Instead, there is an open-ended list of patterns (represented by `dateFormatItem` elements as well as the predefined patterns mentioned above) that can be matched against a requested set of calendar fields and field lengths. Software can look through the list and find the pattern that best matches the original request, based on the desired calendar fields and lengths. For example, the full month and year may be needed for a calendar application; the request is MMMMyyyy, but the best match may be "y MMMM" or even "G yy MMMM", depending on the locale and calendar.
+
+For some calendars, such as Japanese, a displayed year must have an associated era, so for these calendars dateFormatItem patterns with a year field should also include an era field. When matching availableFormats patterns: If a client requests a format string containing a year, and all the availableFormats patterns with a year also contain an era, then include the era as part of the result.
+
+The `id` attribute is a so-called "skeleton", containing only field information, and in a canonical order. Examples are "yMMMM" for year + full month, or "MMMd" for abbreviated month + day. In particular:
+
+* The fields are from the [Date Field Symbol Table](#Date_Field_Symbol_Table) in _[Date Format Patterns](#Date_Format_Patterns)_.
+* The canonical order is from top to bottom in that table; that is, "yM" not "My".
+* Only one field of each type is allowed; that is, "Hh" is not valid.
+
+In order to support user overrides of default locale behavior, data should be supplied for both 12-hour-cycle time formats (using h or K) and 24-hour-cycle time formats (using H or k), even if one of those styles is not commonly used; the locale's actual preference for 12-hour or 24-hour time cycle is determined from the [Time Data](#Time_Data) as described above in [timeFormats](#timeFormats). Thus skeletons using h or K should have patterns that only use h or K for hours, while skeletons using H or k should have patterns that only use H or k for hours.
+
+The rules governing use of day period pattern characters in patterns and skeletons are as follows:
+
+* Patterns and skeletons for 24-hour-cycle time formats (using H or k) currently _should not_ include fields with day period characters (a, b, or B); these pattern characters should be ignored if they appear in skeletons. However, in the future, CLDR may allow use of B (but not a or b) in 24-hour-cycle time formats.
+* Patterns for 12-hour-cycle time formats (using h or K) _must_ include a day period field using one of a, b, or B.
+* Skeletons for 12-hour-cycle time formats (using h or K) _may_ include a day period field using one of a, b, or B. If they do not, the skeleton will be treated as implicitly containing a.
+
+Locales should generally provide availableFormats data for a fairly complete set of time skeletons without B, typically the following:
+
+`H, h, Hm, hm, Hms, hms, Hmv, hmv, Hmsv, hmsv`
+
+Locales that use 12-hour-cycle time formats with B may provide availableFormats data for a smaller set of time skeletons with B, for example:
+
+`Bh, Bhm, Bhms`
+
+When matching a requested skeleton containing b or B to the skeletons actually available in the data, if there is no skeleton matching the specified day period field, then find a match in which the b or B matches an explicit or implicit 'a' in the skeleton, but replace the 'a' in the corresponding pattern with the requested day period b or B. The following table illustrates how requested skeletons map to patterns with different sets of `availableFormats` data:
+
+##### <a name="Mapping_Requested_Time_Skeletons_To_Patterns" href="#Mapping_Requested_Time_Skeletons_To_Patterns">Mapping Requested Time Skeletons To Patterns</a>
+
+<!-- HTML: spanning columns, header cells on non-first row -->
+<table><tbody>
+<tr><th></th><th colspan="2">results for different availableFormats data sets</th></tr>
+<tr><th>requested skeleton</th>
+ <th>set 1:<br/>
+ ...id="H">H</date...<br/>
+ ...id="h">h a</date...</th>
+ <th>set 2:<br/>
+ ...id="H">H</date...<br/>
+ ...id="h">h a</date...<br/>
+ ...id="Bh">B h</date...</th></tr>
+<tr><td>"h" (or "ah")</td><td>"h a"</td><td>"h a"</td></tr><tr><td>"bh"</td><td>"h b"</td><td>"h b"</td></tr>
+<tr><td>"Bh"</td><td>"h B"</td><td>"B h"</td></tr><tr><td>"H" (or "aH", "bH", "BH")</td><td>"H"</td><td>"H"</td></tr>
+</tbody></table>
+
+The hour input skeleton symbols 'j', 'J', and 'C' can be used to select the best hour format (h, H, …) before processing, and the appropriate dayperiod format (a, b, B) after a successful match that contains an 'a' symbol.
+
+The dateFormatItems inherit from their parent locale, so the inherited items need to be considered when processing.
+
+##### <a name="Matching_Skeletons" href="#Matching_Skeletons">2.6.2.1 Matching Skeletons</a>
+
+It is not necessary to supply dateFormatItems with skeletons for every field length; fields in the skeleton and pattern are expected to be expanded in parallel to handle a request.
+
+Typically a “best match” is found using a closest distance match, such as:
+
+1. Symbols requesting a best choice for the locale are replaced.
+ * j → one of {H, k, h, K}; C → one of {a, b, B}
+2. For fields with symbols representing the same type (year, month, day, etc):
+ 1. Most symbols have a small distance from each other.
+ * M ≅ L; E ≅ c; a ≅ b ≅ B; H ≅ k ≅ h ≅ K; ...
+ 2. Width differences among fields, other than those marking text vs numeric, are given small distance from each other.
+ * MMM ≅ MMMM
+ * MM ≅ M
+ 3. Numeric and text fields are given a larger distance from each other.
+ * MMM ≈ MM
+ 4. Symbols representing substantial differences (week of year vs week of month) are given much larger a distances from each other.
+ * d ≋ D; ...
+3. A requested skeleton that includes both seconds and fractional seconds (e.g. “mmssSSS”) is allowed to match a dateFormatItem skeleton that includes seconds but not fractional seconds (e.g. “ms”). In this case the requested sequence of ‘S’ characters (or its length) should be retained separately and used when adjusting the pattern, as described below.
+4. Otherwise, missing or extra fields cause a match to fail. (But see **[Missing Skeleton Fields](#Missing_Skeleton_Fields)** below).
+
+Once a skeleton match is found, the corresponding pattern is used, but with adjustments. Consider the following dateFormatItem:
+
+```xml
+<dateFormatItem id="yMMMd">d MMM y</dateFormatItem>
+```
+
+If this is the best match for yMMMMd, pattern is automatically expanded to produce the pattern "d MMMM y" in response to the request. Of course, if the desired behavior is that a request for yMMMMd should produce something _other_ than "d MMMM y", a separate `dateFormatItem` must be present, for example:
+
+```xml
+<dateFormatItem id="yMMMMd">d 'de' MMMM 'de' y</dateFormatItem>
+```
+
+However, such automatic expansions should never convert a numeric element in the pattern to an alphabetic element. Consider the following dateFormatItem:
+
+```xml
+<dateFormatItem id="yMMM">y年M月</dateFormatItem>
+```
+
+If this is the best match for a requested skeleton yMMMM, automatic expansion should not produce a corresponding pattern “y年MMMM月”; rather, since “y年M月” specifies a numeric month M, automatic expansion should not modify the pattern, and should produce “y年M月” as the match for requested skeleton yMMMM.
+
+If the requested skeleton included both seconds and fractional seconds and the dateFormatItem skeleton included seconds but not fractional seconds, then the seconds field of the corresponding pattern should be adjusted by appending the locale’s decimal separator, followed by the sequence of ‘S’ characters from the requested skeleton.
+
+##### <a name="Missing_Skeleton_Fields" href="#Missing_Skeleton_Fields">2.6.2.2 Missing Skeleton Fields</a>
+
+If a client-requested set of fields includes both date and time fields, and if the `availableFormats` data does not include a `dateFormatItem` whose skeleton matches the same set of fields, then the request should be handled as follows:
+
+1. Divide the request into a date fields part and a time fields part.
+2. For each part, find the matching `dateFormatItem`, and expand the pattern as above.
+3. Combine the patterns for the two `dateFormatItem`s using the appropriate dateTimeFormat pattern, determined as follows from the requested date fields:
+ * If the requested date fields include wide month (MMMM, LLLL) and weekday name of any length (e.g. E, EEEE, c, cccc), use `<dateTimeFormatLength type="full">`
+ * Otherwise, if the requested date fields include wide month, use `<dateTimeFormatLength type="long">`
+ * Otherwise, if the requested date fields include abbreviated month (MMM, LLL), use `<dateTimeFormatLength type="medium">`
+ * Otherwise use `<dateTimeFormatLength type="short">`
+
+```xml
+<!ELEMENT appendItems (alias | (appendItem*, special*))>
+<!ELEMENT appendItem ( #PCDATA ) >
+<!ATTLIST appendItem request CDATA >
+```
+
+In case the best match does not include all the requested calendar fields, the `appendItems` element describes how to append needed fields to one of the existing formats. Each `appendItem` element covers a single calendar field. In the pattern, {0} represents the format string, {1} the data content of the field, and {2} the display name of the field (see [Calendar Fields](#Calendar_Fields)).
+
+#### 2.6.3 <a name="intervalFormats" href="#intervalFormats">Element intervalFormats</a>
+
+```xml
+<!ELEMENT intervalFormats (alias | (intervalFormatFallback*, intervalFormatItem*, special*)) >
+
+<!ELEMENT intervalFormatFallback ( #PCDATA ) >
+
+<!ELEMENT intervalFormatItem (alias | (greatestDifference*, special*)) >
+<!ATTLIST intervalFormatItem id NMTOKEN #REQUIRED >
+
+<!ELEMENT greatestDifference ( #PCDATA ) >
+<!ATTLIST greatestDifference id NMTOKEN #REQUIRED >
+```
+
+Interval formats allow for software to format intervals like "Jan 10-12, 2008" as a shorter and more natural format than "Jan 10, 2008 - Jan 12, 2008". They are designed to take a "skeleton" pattern (like the one used in availableFormats) plus start and end datetime, and use that information to produce a localized format.
+
+The data supplied in CLDR requires the software to determine the calendar field with the greatest difference before using the format pattern. For example, the greatest difference in "Jan 10-12, 2008" is the day field, while the greatest difference in "Jan 10 - Feb 12, 2008" is the month field. This is used to pick the exact pattern. The pattern is then designed to be broken up into two pieces by determining the first repeating field. For example, "MMM d-d, y" would be broken up into "MMM d-" and "d, y". The two parts are formatted with the first and second datetime, as described in more detail below.
+
+In case there is no matching pattern, the intervalFormatFallback defines the fallback pattern. The fallback pattern is of the form "{0} - {1}" or "{1} - {0}", where {0} is replaced by the start datetime, and {1} is replaced by the end datetime. The fallback pattern determines the default order of the interval pattern. "{0} - {1}" means the first part of the interval patterns in current local are formatted with the start datetime, while "{1} - {0}" means the first part of the interval patterns in current locale are formatted with the end datetime.
+
+The `id` attribute of intervalFormatItem is the "skeleton" pattern (like the one used in availableFormats) on which the format pattern is based. The `id` attribute of `greatestDifference` is the calendar field letter, for example 'M', which is the greatest difference between start and end datetime.
+
+The greatest difference defines a specific interval pattern of start and end datetime on a "skeleton" and a greatestDifference. As stated above, the interval pattern is designed to be broken up into two pieces. Each piece is similar to the pattern defined in date format. Also, each interval pattern could override the default order defined in fallback pattern. If an interval pattern starts with "latestFirst:", the first part of this particular interval pattern is formatted with the end datetime. If an interval pattern starts with "earliestFirst:", the first part of this particular interval pattern is formatted with the start datetime. Otherwise, the order is the same as the order defined in `intervalFormatFallback`.
+
+For example, the English rules that produce "Jan 10–12, 2008", "Jan 10 – Feb 12, 2008", and "Jan 10, 2008 – Feb. 12, 2009" are as follows:
+
+```xml
+<intervalFormatItem id="yMMMd">
+ <greatestDifference id="M">MMM d – MMM d, yyyy</greatestDifference>
+ <greatestDifference id="d">MMM d–d, yyyy</greatestDifference>
+ <greatestDifference id="y">MMM d, yyyy – MMM d, yyyy</greatestDifference>
+</intervalFormatItem>
+```
+
+To format a start and end datetime, given a particular "skeleton":
+
+1. Look for the `intervalFormatItem` element that matches the "skeleton", starting in the current locale and then following the locale fallback chain up to, but not including root (better results are obtained by following steps 2-6 below with locale- or language- specific data than by using matching intervalFormats from root).
+2. If no match was found from the previous step, check what the closest match is in the fallback locale chain, as in `availableFormats`. That is, this allows for adjusting the string value field's width, including adjusting between "MMM" and "MMMM", and using different variants of the same field, such as 'v' and 'z'.
+3. If no match was found from the previous steps and the skeleton combines date fields such as y,M,d with time fields such as H,h,m,s, then an `intervalFormatItem` can be synthesized as follows:
+ 1. For `greatestDifference` values corresponding to the date fields in the skeleton, use the mechanisms described under [availableFormats](#availableFormats_appendItems) to generate the complete date-time pattern corresponding to the skeleton, and then combine two such patterns using the `intervalFormatFallback` pattern (the result will be the same for each `greatestDifference` of a day or longer). For example:
+ MMMdHm/d → "MMM d 'at' H:mm – MMM d 'at' H:mm" → "Jan 3 at 9:00 – Jan 6 at 11:00"
+ 2. For `greatestDifference` values corresponding to the time fields in the skeleton, separate the skeleton into a date fields part and a time fields part. Use the mechanisms described under availableFormats to generate a date pattern corresponding to the date fields part. Use the time fields part to look up an `intervalFormatItem`. For each `greatestDifferent` in the `intervalFormatItem`, generate a pattern by using the [dateTimeFormat](#dateTimeFormat) to combine the date pattern with the `intervalFormatItem`’s `greatestDifference` element value. For example:
+ MMMdHm/H → "MMM d 'at' H:mm – H:mm" → "Jan 3 at 9:00 – 11:00"
+4. If a match is found from previous steps, compute the calendar field with the greatest difference between start and end datetime. If there is no difference among any of the fields in the pattern, format as a single date using `availableFormats`, and return.
+5. Otherwise, look for `greatestDifference` element that matches this particular greatest difference.
+6. If there is a match, use the pieces of the corresponding pattern to format the start and end datetime, as above.
+7. Otherwise, format the start and end datetime using the fallback pattern.
+
+## 3 <a name="Calendar_Fields" href="#Calendar_Fields">Calendar Fields</a>
+
+```xml
+<!ELEMENT fields ( alias | (field*, special*)) >
+<!ELEMENT field ( alias | (displayName*, relative*, relativeTime*, relativePeriod*, special*)) >
+<!ATTLIST field type ( era | era-short | era-narrow | year | year-short | year-narrow | quarter | quarter-short | quarter-narrow | month | month-short | month-narrow | week | week-short | week-narrow | weekOfMonth | weekOfMonth-short | weekOfMonth-narrow | day | day-short | day-narrow | dayOfYear | dayOfYear-short | dayOfYear-narrow | weekday | weekday-short | weekday-narrow | weekdayOfMonth | weekdayOfMonth-short | weekdayOfMonth-narrow | sun | sun-short | sun-narrow | mon | mon-short | mon-narrow | tue | tue-short | tue-narrow | wed | wed-short | wed-narrow | thu | thu-short | thu-narrow | fri | fri-short | fri-narrow | sat | sat-short | sat-narrow | dayperiod | dayperiod-short | dayperiod-narrow | hour | hour-short | hour-narrow | minute | minute-short | minute-narrow | second | second-short | second-narrow | zone | zone-short | zone-narrow ) #IMPLIED >
+
+<!ELEMENT relative (#PCDATA) >
+<!ATTLIST relative type NMTOKEN #IMPLIED >
+
+<!ELEMENT relativeTime ( alias | (relativeTimePattern*, special*)) >
+<!ATTLIST relativeTime type NMTOKEN #REQUIRED >
+
+<!ELEMENT relativeTimePattern ( #PCDATA ) >
+<!ATTLIST relativeTimePattern count ( zero | one | two | few | many | other ) #REQUIRED >
+
+<!ELEMENT relativePeriod (#PCDATA) >
+```
+
+Translations may be supplied for names of calendar fields (elements of a calendar, such as Day, Month, Year, Hour, and so on), and for relative values for those fields (for example, the day with relative value -1 is "Yesterday"). There are four types of translations; some are only relevant or useful for certain types of fields:
+
+* `<displayName>` General display name for the field type. This should be relevant for all elements, including those like era and zone that might not have useful forms for the other name types. These are typically presented in titlecase (eg “Day”) since they are intended as labels in a UI.
+* `<relative>` Display names for the current instance of the field, and one or two past and future instances. In English, data is provided for year, quarter, month, week, day, specific days of the week (sun, mon, tue, …), and—with offset 0 only—for hour, minute, and second.
+* `<relativeTime>` Display names for an instance of the field that is a counted number of units in the past or the future relative to the current instance; this needs plural forms. In English, data is provided for year, quarter, month, week, day, specific days of the week, hour, minute, and second.
+* `<relativePeriod>` Pattern for designating an instance of the specified field in relation to some other date reference. This is currently only used for weeks, and provides a pattern such as “the week of {0}” which can be used to generate designations such as “the week of April 11, 2016” or “the week of April 11–15”.
+
+Where there is not a convenient, customary word or phrase in a particular language for a particular type of relative value, it should be omitted.
+
+Examples, first for English:
+
+```xml
+<fields>
+ …
+ <field type="day">
+ <displayName>Day</displayName>
+ <relative type="-1">yesterday</relative>
+ <relative type="0">today</relative>
+ <relative type="1">tomorrow</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">in {0} day</relativeTimePattern>
+ <relativeTimePattern count="other">in {0} days</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">{0} day ago</relativeTimePattern>
+ <relativeTimePattern count="other">{0} days ago</relativeTimePattern>
+ </relativeTime>
+ </field>
+ <field type="weekday">
+ <displayName>Day of the Week</displayName>
+ </field>
+ <field type="sun">
+ <relative type="-1">last Sunday</relative>
+ <relative type="0">this Sunday</relative>
+ <relative type="1">next Sunday</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">in {0} Sunday</relativeTimePattern>
+ <relativeTimePattern count="other">in {0} Sundays</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">{0} Sunday ago</relativeTimePattern>
+ <relativeTimePattern count="other">{0} Sundays ago</relativeTimePattern>
+ </relativeTime>
+ </field>
+ …
+ <field type="hour">
+ <displayName>Hour</displayName>
+ <relative type="0">now</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">in {0} hour</relativeTimePattern>
+ <relativeTimePattern count="other">in {0} hours</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">{0} hour ago</relativeTimePattern>
+ <relativeTimePattern count="other">{0} hours ago</relativeTimePattern>
+ </relativeTime>
+ </field>
+ …
+</fields>
+
+```
+
+Second, for German; includes relative type="-2"/"2", present in the English example:
+
+```xml
+<fields>
+ …
+ <field type="day">
+ <displayName>Tag</displayName>
+ <relative type="-2">Vorgestern</relative>
+ <relative type="-1">Gestern</relative>
+ <relative type="0">Heute</relative>
+ <relative type="1">Morgen</relative>
+ <relative type="2">Übermorgen</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">In {0} Tag</relativeTimePattern>
+ <relativeTimePattern count="other">In {0} Tagen</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">Vor {0} Tag</relativeTimePattern>
+ <relativeTimePattern count="other">Vor {0} Tagen</relativeTimePattern>
+ </relativeTime>
+ </field>
+ …
+</fields>
+```
+
+A special name for “now” is indicated using `<relative type="0">` for the "second" field. For example, in English:
+
+```xml
+<field type="second">
+ <displayName>Second</displayName>
+ <relative type="0">now</relative>
+ …
+</field>
+```
+
+Different widths can be supplied for certain fields, such as:
+
+```xml
+<field type="year-short">
+ <displayName>yr.</displayName>
+ <relative type="-1">last yr.</relative>
+ <relative type="0">this yr.</relative>
+ <relative type="1">next yr.</relative>
+ <relativeTime type="future">
+ <relativeTimePattern count="one">in {0} yr.</relativeTimePattern>
+ <relativeTimePattern count="other">in {0} yr.</relativeTimePattern>
+ </relativeTime>
+ <relativeTime type="past">
+ <relativeTimePattern count="one">{0} yr. ago</relativeTimePattern>
+ <relativeTimePattern count="other">{0} yr. ago</relativeTimePattern>
+ </relativeTime>
+</field>
+```
+
+As in other cases, **narrow** may be ambiguous out of context.
+
+## 4 <a name="Supplemental_Calendar_Data" href="#Supplemental_Calendar_Data">Supplemental Calendar Data</a>
+
+### 4.1 <a name="Calendar_Data" href="#Calendar_Data">Calendar Data</a>
+
+```xml
+<!ELEMENT calendarData ( calendar* )>
+<!ELEMENT calendar ( calendarSystem?, eras? )>
+<!ATTLIST calendar type NMTOKENS #REQUIRED>
+<!ATTLIST calendar territories NMTOKENS #IMPLIED > <!-- deprecated, replaced by calendarPreferenceData -->
+
+<!ELEMENT calendarSystem EMPTY>
+<!ATTLIST calendarSystem type (solar | lunar | lunisolar | other) #REQUIRED>
+
+<!ELEMENT eras ( era* )>
+
+<!ELEMENT era EMPTY>
+<!ATTLIST era type NMTOKENS #REQUIRED>
+<!ATTLIST era start CDATA #IMPLIED>
+<!ATTLIST era end CDATA #IMPLIED>
+```
+
+The `<calendarData>` element now provides only locale-independent data about calendar behaviors via its `<calendar>` subelements, which for each calendar can specify the astronomical basis of the calendar (solar, lunar, etc.) and the date ranges for its eras.
+
+Era start or end dates are specified in terms of the equivalent proleptic Gregorian date (in "y-M-d" format). Eras may be open-ended, with unspecified start or end dates. For example, here are the eras for the Gregorian calendar:
+
+```xml
+<era type="0" end="0" />
+<era type="1" start="1" />
+```
+
+For a sequence of eras with specified start dates, the end of each era need not be explicitly specified (it is assumed to match the start of the subsequent era). For example, here are the first few eras for the Japanese calendar:
+
+```xml
+<era type="0" start="645-6-19" />
+<era type="1" start="650-2-15" />
+<era type="2" start="672-1-1" />
+…
+```
+
+**Note:** The `territories` attribute in the `calendar` element is deprecated. It was formerly used to indicate calendar preference by territory, but this is now given by the _[Calendar Preference Data](#Calendar_Preference_Data)_ below.
+
+### 4.2 <a name="Calendar_Preference_Data" href="#Calendar_Preference_Data">Calendar Preference Data</a>
+
+```xml
+<!ELEMENT calendarPreferenceData ( calendarPreference* ) >
+<!ELEMENT calendarPreference EMPTY >
+<!ATTLIST calendarPreference territories NMTOKENS #REQUIRED >
+<!ATTLIST calendarPreference ordering NMTOKENS #REQUIRED >
+```
+
+The `calendarPreference` element provides a list of commonly used calendar types in a territory. The `ordering` attribute indicates the list of calendar types in preferred order. The first calendar type in the list is the default calendar type for the territory. For example:
+
+```xml
+<calendarPreference territories="001" ordering="gregorian"/>
+<calendarPreference territories="JP" ordering="gregorian japanese"/>
+<calendarPreference territories="TH" ordering="buddhist gregorian"/>
+```
+
+The `calendarPreference` elements above indicate:
+
+* The default (for territory "001") is that only the Gregorian calendar is commonly used.
+* For Japan, the Gregorian and Japanese calendars are both used, with Gregorian preferred (the default).
+* For Thailand, the Buddhist and Gregorian calendars are both used, and Buddhist is preferred (the default).
+
+The calendars in common use for a locale should typically be shown in UIs that provide a choice of calendars. (An 'Other...' button could give access to the other available calendars.)
+
+### 4.3 <a name="Week_Data" href="#Week_Data">Week Data</a>
+
+```xml
+<!ELEMENT weekData ( minDays*, firstDay*, weekendStart*, weekendEnd*, weekOfPreference* )>
+
+<!ELEMENT minDays EMPTY>
+<!ATTLIST minDays count (1 | 2 | 3 | 4 | 5 | 6 | 7) #REQUIRED>
+<!ATTLIST minDays territories NMTOKENS #REQUIRED>
+
+<!ELEMENT firstDay EMPTY >
+<!ATTLIST firstDay day (sun | mon | tue | wed | thu | fri | sat) #REQUIRED>
+<!ATTLIST firstDay territories NMTOKENS #REQUIRED>
+
+<!ELEMENT weekendStart EMPTY>
+<!ATTLIST weekendStart day (sun | mon | tue | wed | thu | fri | sat) #REQUIRED>
+<!ATTLIST weekendStart territories NMTOKENS #REQUIRED>
+
+<!ELEMENT weekendEnd EMPTY>
+<!ATTLIST weekendEnd day (sun | mon | tue | wed | thu | fri | sat) #REQUIRED>
+<!ATTLIST weekendEnd territories NMTOKENS #REQUIRED>
+
+<!ELEMENT weekOfPreference EMPTY>
+<!ATTLIST weekOfPreference locales NMTOKENS #REQUIRED>
+<!ATTLIST weekOfPreference ordering NMTOKENS #REQUIRED>
+```
+
+These values provide territory-specific information needed for week-of-year and week-of-month calculations, as well as information on conventions for first day of the week, for weekends, and for week designations. For most elements, the default is provided by the element with `territories="001"`; for `weekOfPreference` elements the default is provided by the element with `locales="und"`.
+
+```xml
+<weekData>
+ <minDays count="1" territories="001" />
+ <minDays count="4" territories="AD AN AT AX BE BG CH CZ DE DK EE ES FI FJ FO FR GB …" />
+ <firstDay day="mon" territories="001" />
+ <firstDay day="fri" territories="BD MV" />
+ <firstDay day="sat" territories="AE AF BH DJ DZ EG IQ IR JO …" />
+ …
+ <weekendStart day="sat" territories="001" />
+ <weekendStart day="sun" territories="IN" />
+ <weekendStart day="thu" territories="AF DZ IR OM SA YE" />
+ <weekendStart day="fri" territories="AE BH EG IL IQ JO KW …" />
+ …
+ <weekOfPreference ordering="weekOfYear" locales="und" />
+ <weekOfPreference ordering="weekOfYear weekOfMonth" locales="am az bs cs cy da el et hi ky lt mk sk ta th" />
+ <weekOfPreference ordering="weekOfYear weekOfMonth weekOfInterval" locales="is mn no sv vi" />
+ <weekOfPreference ordering="weekOfYear weekOfDate weekOfMonth" locales="fi zh-TW" />
+ …
+```
+
+In order for a week to count as the first week of a new year for week-of-year calculations, it must include at least the number of days in the new year specified by the minDays value; otherwise the week will count as the last week of the previous year (and for week-of-month calculations, `minDays` also specifies the minimum number of days in the new month for a week to count as part of that month).
+
+The day indicated by `firstDay` is the one that should be shown as the first day of the week in a calendar view. This is not necessarily the same as the first day after the weekend (or the first work day of the week), which should be determined from the weekend information. Currently, day-of-week numbering is based on `firstDay` (that is, day 1 is the day specified by `firstDay`), but in the future we may add a way to specify this separately.
+
+What is meant by the weekend varies from country to country. It is typically when most non-retail businesses are closed. The time should not be specified unless it is a well-recognized part of the day. The `weekendStart` day defaults to "sat", and `weekendEnd` day defaults to "sun". For more information, see _[Dates and Date Ranges](tr35.md#Date_Ranges)_.
+
+Each `weekOfPreference` element provides, for its specified locales, an ordered list of the preferred types of week designations for that set of locales. There are four types of week designations, each of which makes use of date patterns available in the locale, as follows:
+
+##### <a name="Week_Designation_Types" href="#Week_Designation_Types">Week Designation Types</a>
+
+<!-- HTML: row spans -->
+<table><tbody>
+<tr><th>Type</th><th>Examples</th><th>Date Pattern</th><th>Comments</th></tr>
+<tr><td>weekOfYear</td><td>week 15 of 2016</td>
+ <td><dateFormatItem id='yw' count='one'>'week' w 'of' Y<…</td>
+ <td rowspan="2">The <i>week of</i> construction takes a <b>count</b> attribute, just in case the pattern changes depending on the numeric value. (In the future, we're likely to add an ordinal value, for constructions like “3rd week of March”.)<br/>In languages where the month name needs grammatical changes (aside from just the simple addition of a prefix or suffix), localizers will typically use a work-around construction.</td></tr>
+<tr><td>weekOfMonth</td><td>week 2 of April<br>2nd week of April</td><td><dateFormatItem id='MMMMW'' count='one'>'week' W 'of' MMM<…</td></tr>
+
+<tr><td>weekOfDate</td><td>the week of April 11, 2016</td>
+ <td rowspan="2"><field type="week"><relativePeriod>the week of {0}<…</td>
+ <td rowspan="2">The date pattern that replaces {0} is determined separately and may use the first day or workday of the week, the range of the full week or work week, etc.</td></tr>
+<tr><td>weekOfInterval</td><td>the week of April 11–15</td></tr>
+</tbody></table>
+
+### 4.4 <a name="Time_Data" href="#Time_Data">Time Data</a>
+
+```xml
+<!ELEMENT timeData ( hours* ) >
+<!ELEMENT hours EMPTY >
+<!ATTLIST hours preferred NMTOKEN #REQUIRED >
+<!ATTLIST hours allowed NMTOKENS #REQUIRED >
+<!ATTLIST hours regions NMTOKENS #REQUIRED >
+```
+
+This element is for data that indicates, for various regions, the preferred time cycle in the region, as well as all time cycles that are considered acceptable in the region. The defaults are those specified for region 001.
+
+There is a single `preferred` value, and multiple `allowed` values. The meanings of the values H, h, K, k, b and B are defined in [Date Field Symbol Table](#Date_Field_Symbol_Table). The `allowed` values are in preference order, and are used with the 'C' hour skeleton pattern symbol.
+
+For example, in the following, RU (Russia) is marked as using only 24 hour time, and in particular the 24 hour time that goes from 0..23 (H), rather than from 1..24 (k).
+
+```xml
+<timeData>
+ <hours preferred="H" allowed="H h" regions="001 …" />
+ <hours preferred="H" allowed="H K h" regions="JP" />
+ <hours preferred="H" allowed="H" regions="IL RU" />
+ <hours preferred="h" allowed="H h" regions="AE AG AL … US … ZW" />
+ …
+```
+
+The B and b date symbols provide for formats like “3:00 at night”. When the ‘C’ option is used, the values in `allowed` are traversed from first to last, picking the first available format. For example, in the following a system that supports hB should choose that as the most preferred format for the C (not the `preferred` value H).
+
+```xml
+<hours preferred="H" allowed="hB H" regions="CD" />
+<hours preferred="H" allowed="hB hb h H" regions="KE MM TZ UG" />
+```
+
+Some systems may not want to use B and b, even if preferred for the locale, so for compatibility the `preferred` value is limited to {H, h, K, k}, and is the option selected by the ‘j’ date symbol. Thus the `preferred` value may not be the same as the first `allowed` value.
+
+### 4.5 <a name="Day_Period_Rule_Sets" href="#Day_Period_Rule_Sets">Day Period Rule Sets</a>
+
+```xml
+<!ELEMENT dayPeriodRuleSet ( dayPeriodRules* ) >
+<!ATTLIST dayPeriodRuleSet type NMTOKEN #IMPLIED >
+
+<!ELEMENT dayPeriodRules (dayPeriodRule*) >
+<!ATTLIST dayPeriodRules locales NMTOKENS #REQUIRED >
+
+<!ELEMENT dayPeriodRule EMPTY >
+<!ATTLIST dayPeriodRule type NMTOKEN #REQUIRED >
+<!ATTLIST dayPeriodRule at NMTOKEN #IMPLIED >
+<!ATTLIST dayPeriodRule from NMTOKEN #IMPLIED >
+<!ATTLIST dayPeriodRule before NMTOKEN #IMPLIED >
+```
+
+Each locale can have a set of day period rules, which determine the periods during a day for use in time formats like "10:00 at night", or to select statements like "Your email arrived last night." If locales do not have dayPeriodRules, the computation of dayPeriods falls back to AM/PM.
+
+There are two kinds of dayPeriodRuleSets, based on the type:
+
+The **_format_** type is used in conjunction with times, such as to express "3:00 in the afternoon", or "12:00 noon". Many languages do not normally use terms that match AM/PM for such times, instead breaking up the day into more periods.
+
+The **stand-alone** type is used for selecting a period of the day for a general time associated with an event. For example, it can be used to select a message like:
+
+```
+<msg ... >
+{day_period, select,
+MORNING1 {Your email arrived yesterday morning.}
+AFTERNOON1 {Your email arrived yesterday afternoon.}
+EVENING1 {Your email arrived yesterday evening.}
+NIGHT1 {Your email arrived last night.}
+other {Your email arrived yesterday.}
+...
+}
+</msg>
+```
+
+The translated values for the selection (**stand-alone**) day periods are intended for use in designating a time of day, without an hour value.
+
+These are relative times within a single day. If the event can occur on multiple days, then that needs to be handled at a higher level.
+
+As with plurals, the exact set of periods used for any language may be different. It is the responsibility of any translation software to pick the relevant day periods for the locale for display to the translator (and end user).
+
+#### 4.5.1 <a name="Day_Period_Rules" href="#Day_Period_Rules">Day Period Rules</a>
+
+Here are the requirements for a rule set.
+
+##### <a name="Fixed_periods" href="#Fixed_periods">4.5.1.1 Fixed periods</a>
+
+There are 4 dayPeriods that are fixed; am/pm are always defined, and always have the same meaning and definition for every locale. Midnight and noon are optional, however if they are defined, they have the same meaning and definition as in all other locales where they are defined.
+
+```xml
+<dayPeriodRule type="midnight" at="00:00" />
+<dayPeriodRule type="am" from="00:00" before="12:00" />
+<dayPeriodRule type="noon" at="12:00" />
+<dayPeriodRule type="pm" from="12:00" before="24:00" />
+```
+
+Note that midnight and am can overlap, as can noon and pm.
+
+All locales must support am/pm, but not all support **noon** or **midnight**; they are only supported if they meet the above definitions. For example, German has no unique term that means exactly 12:00 noon; the closest is Mittag, but that can extend before or after 12 noon.
+
+**Midnight** is also special, since it can refer to either 00:00 or 24:00 — either at the start or end of the day. That means that Tuesday 24:00 = Wednesday 00:00. “Midnight Tuesday" is thus ambiguous: it means 24:00 in “the party is Tuesday from 10pm to 12 midnight”, while it means 00:00 in “I was awake from 12 midnight to 3 in the morning”.
+
+It is strongly recommended that implementations provide for the ability to specify whether **midnight** is supported or not (and for either 00:00 or 24:00 or both), since only the caller knows enough of the context to determine what to use. In the absence of such information, 24:00 may be the best choice.
+
+##### <a name="Variable_periods" href="#Variable_periods">4.5.1.2 Variable periods</a>
+
+1. If a locale has a set of dayPeriodRules for variable periods, it needs to completely cover the 24 hours in a day (from 0:00 before 24:00), with **no** overlaps between any dayPeriodRules. They may overlap with the **Fixed Periods**.
+ If it does not have a rule set for variable periods, behavior should fall back to using the fixed periods (am, pm).
+2. "from" is a closed interval (inclusive). _(as is the deprecated "to")_
+3. "before" is an open interval (exclusive). _(as is the deprecated "after")_
+4. "at" means starting time and end time are the same. _("at" is deprecated except when used for the fixed periods)_
+5. There must be exactly one of {at, from, after} and exactly one of {at, to, before} for each dayPeriodRule.
+6. Use of non-zero minutes or seconds is deprecated.
+7. The dayPeriodRules for format must allow that hh:mm [period name] and hh [period name] can be parsed uniquely to HH:mm [period name].
+ * For example, you can't have `<dayPeriod type = "morning1" from="00:00" to="13:00"/>` because "12:30 {morning}" would be ambiguous.
+8. There must not be two rules with the same type. A day period rule may, however, span 24:00 / 00:00. Example:
+ * _Valid:_
+ * `<dayPeriod type = "night1" from="21:00" to="05:00"/>`
+ * _Invalid:_
+ * `<dayPeriod type = "night1" from="00:00" to="05:00"/>`
+ * `<dayPeriod type = "night1" from="21:00" to="24:00"/>`
+9. 24:00 is _only_ allowed in _before_="24:00".
+
+##### <a name="Parsing_Day_Periods" href="#Parsing_Day_Periods">4.5.1.3 Parsing Day Periods</a>
+
+When parsing, if the hour is present with a strict parse the dayperiod is checked for consistency with the hour. If there is no hour, the center of the first matching dayPeriodRule can be chosen (starting from 0:00). However, if there is other information available when parsing, a different point within the interval may be chosen.
+
+The dayPeriodRule may span two days, such as where **night1** is [21:00, 06:00). In that case, the midpoint is 01:30, so when parsing “Nov 12, at night”, the midpoint result would be Nov 12, 01:30. “Nov 12, am”, “Nov 12, pm”, “Nov 12, noon” can be parsed similarly, resulting in Nov 12, 06:00; Nov 12, 18:00; and Nov 12, 12:00; respectively.
+
+“Nov 12, midnight” is special, because midnight may mean either 00:00 or 24:00. Extra information may be needed to disambiguate which is meant, such as whether the time is at the start or end of an interval. In the absence of such information, 24:00 may be the best choice. See the discussion of **midnight** above.
+
+If rounding is done—including the rounding done by the time format—then it needs to be done before the dayperiod is computed, so that the correct format is shown.
+
+For examples, see [Day Periods Chart](https://unicode-org.github.io/cldr-staging/charts/38/supplemental/day_periods.html).
+
+## 5 <a name="Time_Zone_Names" href="#Time_Zone_Names">Time Zone Names</a>
+
+```xml
+<!ELEMENT timeZoneNames (alias | (hourFormat*, gmtFormat*, gmtZeroFormat*, regionFormat*, fallbackFormat*, zone*, metazone*, special*)) >
+
+<!ELEMENT hourFormat ( #PCDATA ) >
+<!ELEMENT gmtFormat ( #PCDATA ) >
+<!ELEMENT gmtZeroFormat ( #PCDATA ) >
+
+<!ELEMENT regionFormat ( #PCDATA ) >
+<!ATTLIST regionFormat type ( standard | daylight ) #IMPLIED >
+
+<!ELEMENT fallbackFormat ( #PCDATA ) >
+
+<!ELEMENT zone (alias | ( long*, short*, exemplarCity*, special*)) >
+<!ATTLIST zone type CDATA #REQUIRED >
+
+<!ELEMENT metazone (alias | ( long*, short*, special*)) >
+<!ATTLIST metazone type CDATA #REQUIRED >
+
+<!ELEMENT long (alias | (generic*, standard*, daylight*, special*)) >
+<!ELEMENT short (alias | (generic*, standard*, daylight*, special*)) >
+
+<!ELEMENT generic ( #PCDATA ) >
+<!ELEMENT standard ( #PCDATA ) >
+<!ELEMENT daylight ( #PCDATA ) >
+
+<!ELEMENT exemplarCity ( #PCDATA ) >
+```
+
+The time zone IDs (tzid) are language-independent, and follow the _TZ time zone database_ [[Olson](tr35.md#Olson)] and naming conventions. However, the display names for those IDs can vary by locale. The generic time is so-called _wall-time_; what clocks use when they are correctly switched from standard to daylight time at the mandated time of the year.
+
+Unfortunately, the canonical tzid's (those in zone.tab) are not stable: they may change in each release of the _TZ_ Time Zone database. In CLDR, however, stability of identifiers is very important. So the canonical IDs in CLDR are kept stable as described in [Canonical Form](tr35.md#Canonical_Form).
+
+The _TZ time zone database_ can have multiple IDs that refer to the same entity. It does contain information on equivalence relationships between these IDs, such as "Asia/Calcutta" and "Asia/Kolkata". It does not remove IDs (with a few known exceptions), but it may change the "canonical" ID which is in the file zone.tab.
+
+For lookup purposes specifications such as CLDR need a stable canonical ID, one that does not change from release to release. The stable ID is maintained as the first alias item _type_ element in the file bcp47/timezone.xml, such as:
+
+ <type name="inccu" alias="Asia/Calcutta Asia/Kolkata"/>
+
+That file also contains the short ID used in keywords. In versions of CLDR previous to 1.8, the alias information (but not the short ID) was in Supplemental Data under the zoneItem, such as:
+
+ <zoneItem type="Asia/Calcutta" territory="IN" aliases="Asia/Kolkata"/>
+
+This element was deprecated after the introduction of bcp47/timezone.xml, because the information became redundant (or was contained in the _TZ time zone database_).
+
+The following is an example of time zone data. Although this is an example of possible data, in most cases only the exemplarCity needs translation. And that does not even need to be present, if a country only has a single time one. As always, the _type_ field for each zone is the identification of that zone. It is not to be translated.
+
+```xml
+<zone type="America/Los_Angeles">
+ <long>
+ <generic>Pacific Time</generic>
+ <standard>Pacific Standard Time</standard>
+ <daylight>Pacific Daylight Time</daylight>
+ </long>
+ <short>
+ <generic>PT</generic>
+ <standard>PST</standard>
+ <daylight>PDT</daylight>
+ </short>
+ <exemplarCity>San Francisco</exemplarCity>
+</zone>
+
+<zone type="Europe/London">
+ <long>
+ <generic>British Time</generic>
+ <standard>British Standard Time</standard>
+ <daylight>British Daylight Time</daylight>
+ </long>
+ <exemplarCity>York</exemplarCity>
+</zone>
+```
+
+In a few cases, some time zone IDs do not designate a city, as in:
+
+```xml
+<zone type="America/Puerto_Rico">
+ ...
+</zone>
+
+<zone type="America/Guyana">
+ ...
+</zone>
+
+<zone type="America/Cayman">
+ ...
+</zone>
+
+<zone type="America/St_Vincent">
+ ...
+</zone>
+```
+
+They may designate countries or territories; their actual capital city may be a name that is too common, or, too uncommon. CLDR time zone IDs follow the [Olson](tr35.md#Olson) naming conventions.
+
+> **Note:** CLDR does not allow "GMT", "UT", or "UTC" as translations (short or long) of time zones other than GMT itself.
+
+> **Note:** Transmitting "14:30" with no other context is incomplete unless it contains information about the time zone. Ideally one would transmit neutral-format date/time information, commonly in UTC (GMT), and localize as close to the user as possible. (For more about UTC, see [[UTCInfo](tr35.md#UTCInfo)].)
+
+The conversion from local time into UTC depends on the particular time zone rules, which will vary by location. The standard data used for converting local time (sometimes called _wall time_) to UTC and back is the _TZ Data_ [[Olson](tr35.md#Olson)], used by Linux, UNIX, Java, ICU, and others. The data includes rules for matching the laws for time changes in different countries. For example, for the US it is:
+
+> "During the period commencing at 2 o'clock antemeridian on the second Sunday of March of each year and ending at 2 o'clock antemeridian on the first Sunday of November of each year, the standard time of each zone established by sections 261 to 264 of this title, as modified by section 265 of this title, shall be advanced one hour..." (United States Law - 15 U.S.C. §6(IX)(260-7), as amended by Energy Policy Act of 2005).
+
+Each region that has a different time zone or daylight savings time rules, either now or at any time back to 1970, is given a unique internal ID, such as `Europe/Paris` . (Some IDs are also distinguished on the basis of differences before 1970.) As with currency codes, these are internal codes. A localized string associated with these is provided for users (such as in the Windows _Control Panels>Date/Time>Time Zone_).
+
+Unfortunately, laws change over time, and will continue to change in the future, both for the boundaries of time zone regions and the rules for daylight savings. Thus the _TZ_ data is continually being augmented. Any two implementations using the same version of the _TZ_ data will get the same results for the same IDs (assuming a correct implementation). However, if implementations use different versions of the data they may get different results. So if precise results are required then both the _TZ_ ID and the _TZ_ data version must be transmitted between the different implementations.
+
+For more information, see [[Data Formats](tr35.md#DataFormats)].
+
+The following subelements of `<timeZoneNames>` are used to control the fallback process described in [Using Time Zone Names](#Using_Time_Zone_Names).
+
+##### <a name="timeZoneNames_Elements_Used_for_Fallback" href="#timeZoneNames_Elements_Used_for_Fallback"><timeZoneNames> Elements Used for Fallback</a>
+
+<table><tbody>
+<tr><th>Element Name</th><th>Data Examples</th><th>Results/Comment</th></tr>
+<tr><td rowspan="2">hourFormat</td><td rowspan="2">"+HHmm;-HHmm"</td><td>"+1200"</td></tr>
+ <tr><td>"-1200"</td></tr>
+<tr><td rowspan="2">gmtFormat</td><td>"GMT{0}"</td><td>"GMT-0800"</td></tr>
+ <tr><td>"{0}ВпГ"</td><td>"-0800ВпГ"</td></tr>
+<tr><td>gmtZeroFormat</td><td>"GMT"</td><td>Specifies how GMT/UTC with no explicit offset (implied 0 offset) should be represented.</td></tr>
+<tr><td rowspan="2">regionFormat</td><td>"{0} Time"</td><td>"Japan Time"</td></tr>
+ <tr><td>"Hora de {0}"</td><td>"Hora de Japón"</td></tr>
+<tr><td rowspan="2">regionFormat type="daylight"<br>(or "standard")</td><td>"{0} Daylight Time"</td><td>"France Daylight Time"</td></tr><tr><td>"horario de verano de {0}"</td><td>"horario de verano de Francia"</td></tr>
+ <tr><td>fallbackFormat</td><td>"{1} ({0})"</td><td>"Pacific Time (Canada)"</td></tr>
+</tbody></table>
+
+When referring to the abbreviated (short) form of the time zone name, there are often situations where the location-based (city or country) time zone designation for a particular language may not be in common usage in a particular territory.
+
+> **Note:** User interfaces for time zone selection can use the "generic location format" for time zone names to obtain the most useful ordering of names in a menu or list; see _[Using Time Zone Names](#Using_Time_Zone_Names)_ and the zone section of the _[Date Field Symbol Table](#Date_Field_Symbol_Table)._
+
+### 5.1 <a name="Metazone_Names" href="#Metazone_Names">Metazone Names</a>
+
+A metazone is an grouping of one or more internal TZIDs that share a common display name in current customary usage, or that have shared a common display name during some particular time period. For example, the zones _Europe/Paris, Europe/Andorra, Europe/Tirane, Europe/Vienna, Europe/Sarajevo, Europe/Brussels, Europe/Zurich, Europe/Prague, Europe/Berlin_, and so on are often simply designated _Central European Time_ (or translated equivalent).
+
+A metazone's display fields become a secondary fallback if an appropriate data field cannot be found in the explicit time zone data. The _usesMetazone_ field indicates that the target metazone is active for a particular time. This also provides a mechanism to effectively deal with situations where the time zone in use has changed for some reason. For example, consider the TZID "America/Indiana/Knox", which observed Central time (GMT-6:00) prior to October 27, 1991, and has currently observed Central time since April 2, 2006, but has observed Eastern time ( GMT-5:00 ) between these two dates. This is denoted as follows
+
+```xml
+<timezone type="America/Indiana/Knox">
+ <usesMetazone to="1991-10-27 07:00" mzone="America_Central" />
+ <usesMetazone to="2006-04-02 07:00" from="1991-10-27 07:00" mzone="America_Eastern" />
+ <usesMetazone from="2006-04-02 07:00" mzone="America_Central" />
+</timezone>
+```
+
+Note that the dates and times are specified in UTC, not local time.
+
+The metazones can then have translations in different locale files, such as the following.
+
+```xml
+<metazone type="America_Central">
+ <long>
+ <generic>Central Time</generic>
+ <standard>Central Standard Time</standard>
+ <daylight>Central Daylight Time</daylight>
+ </long>
+ <short>
+ <generic>CT</generic>
+ <standard>CST</standard>
+ <daylight>CDT</daylight>
+ </short>
+ </metazone>
+ <metazone type="America_Eastern">
+ <long>
+ <generic>Eastern Time</generic>
+ <standard>Eastern Standard Time</standard>
+ <daylight>Eastern Daylight Time</daylight>
+ </long>
+ <short>
+ <generic>ET</generic>
+ <standard>EST</standard>
+ <daylight>EDT</daylight>
+ </short>
+</metazone>
+
+<metazone type="America_Eastern">
+ <long>
+ <generic>Heure de l’Est</generic>
+ <standard>Heure normale de l’Est</standard>
+ <daylight>Heure avancée de l’Est</daylight>
+ </long>
+ <short>
+ <generic>HE</generic>
+ <standard>HNE</standard>
+ <daylight>HAE</daylight>
+ </short>
+</metazone>
+```
+
+When formatting a date and time value using this data, an application can properly be able to display "Eastern Time" for dates between 1991-10-27 and 2006-04-02, but display "Central Time" for current dates. (See also _[Dates and Date Ranges](tr35.md#Date_Ranges)_).
+
+Metazones are used with the 'z', 'zzzz', 'v', and 'vvvv date time pattern characters, and not with the 'Z', 'ZZZZ', 'VVVV' and other pattern characters for time zone formatting. For more information, see [Date Format Patterns](#Date_Format_Patterns) .
+
+The `commonlyUsed` element is now deprecated. The CLDR committee has found it nearly impossible to obtain accurate and reliable data regarding which time zone abbreviations may be understood in a given territory, and therefore has changed to a simpler approach. Thus, if the short metazone form is available in a given locale, it is to be used for formatting regardless of the value of commonlyUsed. If a given short metazone form is known NOT to be understood in a given locale and the parent locale has this value such that it would normally be inherited, the inheritance of this value can be explicitly disabled by use of the 'no inheritance marker' as the value, which is 3 simultaneous empty set characters ( U+2205 ).
+
+## 6 <a name="Supplemental_Time_Zone_Data" href="#Supplemental_Time_Zone_Data">Supplemental Time Zone Data</a>
+
+### 6.1 <a name="Metazones" href="#Metazones">Metazones</a>
+
+```xml
+<!ELEMENT metaZones (metazoneInfo?, mapTimezones?) >
+
+<!ELEMENT metazoneInfo (timezone*) >
+
+<!ELEMENT timezone (usesMetazone*) >
+<!ATTLIST timezone type CDATA #REQUIRED >
+
+<!ELEMENT usesMetazone EMPTY >
+<!ATTLIST usesMetazone mzone NMTOKEN #REQUIRED >
+<!ATTLIST usesMetazone from CDATA #IMPLIED >
+<!ATTLIST usesMetazone to CDATA #IMPLIED >
+
+<!ELEMENT mapTimezones ( mapZone* ) >
+<!ATTLIST mapTimezones type NMTOKEN #IMPLIED >
+<!ATTLIST mapTimezones typeVersion CDATA #IMPLIED >
+<!ATTLIST mapTimezones otherVersion CDATA #IMPLIED >
+<!ATTLIST mapTimezones references CDATA #IMPLIED >
+
+<!ELEMENT mapZone EMPTY >
+<!ATTLIST mapZone type CDATA #REQUIRED >
+<!ATTLIST mapZone other CDATA #REQUIRED >
+<!ATTLIST mapZone territory CDATA #IMPLIED >
+<!ATTLIST mapZone references CDATA #IMPLIED >
+```
+
+The following subelement of `<metaZones>` provides a mapping from a single Unicode time zone id to metazones. For more information about metazones, See _[Time Zone Names](tr35-dates.md#Time_Zone_Names)_.
+
+```xml
+<metazoneInfo>
+ <timezone type="Europe/Andorra">
+ <usesMetazone mzone="Europe_Central" />
+ </timezone>
+ ....
+ <timezone type="Asia/Yerevan">
+ <usesMetazone to="1991-09-22 20:00" mzone="Yerevan" />
+ <usesMetazone from="1991-09-22 20:00" mzone="Armenia" />
+ </timezone>
+ ....
+```
+
+The following subelement of `<metaZones>` specifies a mapping from a metazone to golden zones for each territory. For more information about golden zones, see _[Using Time Zone Names](tr35-dates.md#Using_Time_Zone_Names)_.
+
+```xml
+<mapTimezones type="metazones">
+ <mapZone other="Acre" territory="001" type="America/Rio_Branco" />
+ <mapZone other="Afghanistan" territory="001" type="Asia/Kabul" />
+ <mapZone other="Africa_Central" territory="001" type="Africa/Maputo" />
+ <mapZone other="Africa_Central" territory="BI" type="Africa/Bujumbura" />
+ <mapZone other="Africa_Central" territory="BW" type="Africa/Gaborone" />
+ ....
+```
+
+### 6.2 <a name="Windows_Zones" href="#Windows_Zones">Windows Zones</a>
+
+```xml
+<!ELEMENT windowsZones (mapTimezones?) >
+```
+
+The `<mapTimezones>` element can be also used to provide mappings between Unicode time zone IDs and other time zone IDs. This example specifies a mapping from Windows TZIDs to Unicode time zone IDs .
+
+```xml
+<mapTimezones otherVersion="07dc0000" typeVersion="2011n">
+ ....
+ <!-- (UTC-08:00) Baja California -->
+ <mapZone other="Pacific Standard Time (Mexico)" territory="001" type="America/Santa_Isabel"/>
+ <mapZone other="Pacific Standard Time (Mexico)" territory="MX" type="America/Santa_Isabel"/>
+
+ <!-- (UTC-08:00) Pacific Time (US & Canada) -->
+ <mapZone other="Pacific Standard Time" territory="001" type="America/Los_Angeles"/>
+ <mapZone other="Pacific Standard Time" territory="CA" type="America/Vancouver America/Dawson America/Whitehorse"/>
+ <mapZone other="Pacific Standard Time" territory="MX" type="America/Tijuana"/>
+ <mapZone other="Pacific Standard Time" territory="US" type="America/Los_Angeles"/>
+ <mapZone other="Pacific Standard Time" territory="ZZ" type="PST8PDT"/>
+ ....
+```
+
+The attributes otherVersion and typeVersion in `<mapTimezones>` specify the versions of two systems. In the example above, otherVersion="07dc0000" specifies the version of Windows time zone and typeVersion="2011n" specifies the version of Unicode time zone IDs. The attribute `territory="001"` in `<mapZone>` element indicates the long canonical Unicode time zone ID specified by the `type` attribute is used as the default mapping for the Windows TZID. For each unique Windows TZID, there must be exactly one `<mapZone>` element with `territory="001"`. `<mapZone>` elements other than `territory="001"` specify territory specific mappings. When multiple Unicode time zone IDs are available for a single territory, the value of the `type` attribute will be a list of Unicode time zone IDs delimited by space. In this case, the first entry represents the default mapping for the territory. The territory "ZZ" is used when a Unicode time zone ID is not associated with a specific territory.
+
+**Note:** The long canonical Unicode time zone ID might be deprecated in the tz database[[Olson](tr35.md#Olson)]. For example, CLDR uses "Asia/Culcutta" as the long canonical time zone ID for Kolkata, India. The same ID was moved to 'backward' file and replaced with a new ID "Asia/Kolkata" in the tz database. Therefore, if you want to get an equivalent Windows TZID for a zone ID in the tz dadtabase, you have to resolve the long canonical Unicode time zone ID (e.g. "Asia/Culcutta") for the zone ID (e.g. "Asia/Kolkata"). For more details, see [Section 3.7.1.2 Time Zone Identifiers](tr35.md#Time_Zone_Identifiers).
+
+**Note:** Not all Unicode time zones have equivalent Windows TZID mappings. Also, not all Windows TZIDs have equivalent Unicode time zones. For example, there is no equivalent Windows zone for Unicode time zone "Australia/Lord_Howe", and there is no equivalent Unicode time zone for Windows zone "E. Europe Standard Time" (as of CLDR 25 release).
+
+### 6.3 <a name="Primary_Zones" href="#Primary_Zones">Primary Zones</a>
+
+```xml
+<!ELEMENT primaryZones ( primaryZone* ) >
+<!ELEMENT primaryZone ( #PCDATA ) >
+<!ATTLIST primaryZone iso3166 NMTOKEN #REQUIRED >
+```
+
+This element is for data that is used to format a time zone’s generic location name. Each `<primaryZone>` element specifies the dominant zone for a region; this zone should use the region name for its generic location name even though there are other canonical zones available in the same region. For example, Asia/Shanghai is displayed as "China Time", instead of "Shanghai Time". Sample data:
+
+```xml
+<primaryZones>
+ <primaryZone iso3166="CL">America/Santiago</primaryZone>
+ <primaryZone iso3166="CN">Asia/Shanghai</primaryZone>
+ <primaryZone iso3166="DE">Europe/Berlin</primaryZone>
+ …
+```
+
+This information was previously specified by the LDML `<singleCountries>` element under each locale’s `<timeZoneNames>` element. However, that approach had inheritance issues, and the data is not really locale-specific anyway.
+
+## 7 <a name="Using_Time_Zone_Names" href="#Using_Time_Zone_Names">Using Time Zone Names</a>
+
+There are three main types of formats for zone identifiers: GMT, generic (wall time), and standard/daylight. Standard and daylight are equivalent to a particular offset from GMT, and can be represented by a GMT offset as a fallback. In general, this is not true for the generic format, which is used for picking timezones or for conveying a timezone for specifying a recurring time (such as a meeting in a calendar). For either purpose, a GMT offset would lose information.
+
+### 7.1 <a name="Time_Zone_Format_Terminology" href="#Time_Zone_Format_Terminology">Time Zone Format Terminology</a>
+
+The following terminology defines more precisely the formats that are used.
+
+**Generic non-location format:** Reflects "wall time" (what is on a clock on the wall): used for recurring events, meetings, or anywhere people do not want to be overly specific. For example, "10 am Pacific Time" will be GMT-8 in the winter, and GMT-7 in the summer.
+
+* "Pacific Time" (long)
+* "PT" (short)
+
+**Generic partial location format:** Reflects "wall time": used as a fallback format when the generic non-location format is not specific enough.
+
+* "Pacific Time (Canada)" (long)
+* "PT (Whitehorse)" (short)
+
+**Generic location format:** Reflects "wall time": a primary function of this format type is to represent a time zone in a list or menu for user selection of time zone. It is also a fallback format when there is no translation for the generic non-location format. Times can also be organized hierarchically by country for easier lookup.
+
++ France Time
++ Italy Time
++ Japan Time
++ United States
+ + Chicago Time
+ + Denver Time
+ + Los Angeles Time
+ + New York Time
++ United Kingdom Time
+
+Note: A generic location format is constructed by a part of time zone ID representing an exemplar city name or its country as the final fallback. However, there are Unicode time zones which are not associated with any locations, such as "Etc/GMT+5" and "PST8PDT". Although the date format pattern "VVVV" specifies the generic location format, but it displays localized GMT format for these. Some of these time zones observe daylight saving time, so the result (localized GMT format) may change depending on input date. For generating a list for user selection of time zone with format "VVVV", these non-location zones should be excluded.
+
+**Specific non-location format:** Reflects a specific standard or daylight time, which may or may not be the wall time. For example, "10 am Pacific Standard Time" will be GMT-8 in the winter and in the summer.
+
+* "Pacific Standard Time" (long)
+* "PST" (short)
+* "Pacific Daylight Time" (long)
+* "PDT" (short)
+
+**Localized GMT format:** A constant, specific offset from GMT (or UTC), which may be in a translated form. There are two styles for this. The first is used when there is an explicit non-zero offset from GMT; this style is specified by the `<gmtFormat>` element and `<hourFormat>` element. The long format always uses 2-digit hours field and minutes field, with optional 2-digit seconds field. The short format is intended for the shortest representation and uses hour fields without leading zero, with optional 2-digit minutes and seconds fields. The digits used for hours, minutes and seconds fields in this format are the locale's default decimal digits:
+
+* "GMT+03:30" (long)
+* "GMT+3:30" (short)
+* "UTC-03.00" (long)
+* "UTC-3" (short)
+* "Гриинуич+03:30" (long)
+
+Otherwise (when the offset from GMT is zero, referring to GMT itself) the style specified by the `<gmtZeroFormat>` element is used:
+
+* "GMT"
+* "UTC"
+* "Гриинуич"
+
+**ISO 8601 time zone formats:** The formats based on the [[ISO 8601](tr35.md#ISO8601)] local time difference from UTC ("+" sign is used when local time offset is 0), or the UTC indicator ("Z" - only when the local time offset is 0 and the specifier X\* is used). The ISO 8601 basic format does not use a separator character between hours and minutes field, while the extended format uses colon (':') as the separator. The ISO 8601 basic format with hours and minutes fields is equivalent to RFC 822 zone format.
+
+* "-0800" (basic)
+* "-08" (basic - short)
+* "-08:00" (extended)
+* "Z" (UTC)
+
+> Note: This specification extends the original ISO 8601 formats and some format specifiers append seconds field when necessary.
+
+**Raw Offset** - an offset from GMT that does not include any daylight savings behavior. For example, the raw offset for Pacific Time is -8, even though the _observed offset_ may be -8 or -7.
+
+**Metazone** - a collection of time zones that share the same behavior and same name during some period. They may differ in daylight behavior (whether they have it and when).
+
+For example, the TZID America/Cambridge_Bay is in the following metazones during various periods:
+
+```xml
+<timezone type="America/Cambridge_Bay">
+ <usesMetazone to="1999-10-31 08:00" mzone="America_Mountain" />
+ <usesMetazone to="2000-10-29 07:00" from="1999-10-31 08:00" mzone="America_Central" />
+ <usesMetazone to="2000-11-05 05:00" from="2000-10-29 07:00" mzone="America_Eastern" />
+ <usesMetazone to="2001-04-01 09:00" from="2000-11-05 05:00" mzone="America_Central" />
+ <usesMetazone from="2001-04-01 09:00" mzone="America_Mountain" />
+</timezone>
+```
+
+Zones may join or leave a metazone over time. The data relating between zones and metazones is in the supplemental information; the locale data is restricted to translations of metazones and zones.
+
+> **Invariants:**
+>
+> * At any given point in time, each zone belongs to no more than one metazone.
+> * At a given point in time, a zone may not belong to any metazones.
+> * _Except for daylight savings_, at any given time, all zones in a metazone have the same offset at that time.
+
+**Golden Zone** - the TZDB zone that exemplifies a metazone. For example, America/New_York is the golden zone for the metazone America_Eastern:
+
+```xml
+<mapZone other="America_Eastern" territory="001" type="America/New_York"/>
+```
+
+> **Invariants:**
+>
+> * The golden zones are those in mapZone supplemental data under the territory "001".
+> * Every metazone has exactly one golden zone.
+> * Each zone has at most one metazone for which it is golden.
+> * The golden zone is in that metazone during the entire life of the metazone. (The raw offset of the golden zone may change over time.)
+> * Each other zone must have the same raw offset as the golden zone, for the entire period that it is in the metazone. (It might not have the same offset when daylight savings is in effect.)
+> * A golden zone in mapTimezones must have reverse mapping in metazoneInfo.
+> * A single time zone can be a golden zone of multiple different metazones if any two of them are never active at a same time.
+
+**Preferred Zone** - for a given TZID, the "best" zone out of a metazone for a given country or language.
+
+> **Invariants:**
+>
+> * The preferred zone for a given country XX are those in mapZone supplemental data under the territory XX.
+> * Every metazone has at most one preferred zone for a given territory XX.
+> * Each zone has at most one metazone for which it is preferred for a territory XX.
+> * The preferred zone for a given metazone and territory XX is in a metazone M during any time when any other zone in XX is also in M
+> * A preferred zone in mapTimezones must have reverse mapping in metazoneInfo
+
+For example, for America_Pacific the preferred zone for Canada is America/Vancouver, and the preferred zone for Mexico is America/Tijuana. The golden zone is America/Los_Angeles, which is also also the preferred zone for any other country.
+
+```xml
+<mapZone other="America_Pacific" territory="001" type="America/Los_Angeles" />
+<mapZone other="America_Pacific" territory="CA" type="America/Vancouver" />
+<mapZone other="America_Pacific" territory="MX" type="America/Tijuana" />
+```
+
+**<a name="fallbackFormat" href="#fallbackFormat">fallbackFormat:</a>** a formatting string such as "{1} ({0})", where {1} is the metazone, and {0} is the country or city.
+
+**regionFormat:** a formatting string such as "{0} Time", where {0} is the country or city.
+
+### 7.2 <a name="Time_Zone_Goals" href="#Time_Zone_Goals">Goals</a>
+
+The timezones are designed so that:
+
+> For any given locale, every _time_ round trips with all patterns (but not necessarily every timezone). That is, given a time and a format pattern with a zone string, you can format, then parse, and get back the same time.
+>
+> Note that the round-tripping is not just important for parsing; it provides for formatting dates and times in an unambiguous way for users. It is also important for testing.
+>
+> There are exceptions to the above for transition times.
+>
+> * With generic format, time zone ID or exemplar city name, during the transition when the local time maps to two possible GMT times.
+> * For example, Java works as follows, favoring standard time:
+> * Source: Sun Nov 04 01:30:00 PDT 2007
+> * => Formatted: "Sunday, November 4, 2007 1:30:00 AM"
+> * => Parsed: Sun Nov 04 01:30:00 PST 2007
+> * When the timezone changes offset, say from GMT+4 to GMT+5, there can also be a gap.
+>
+> The V/VV/VVV/VVVV format will roundtrip not only the time, but the canonical timezone.
+
+When the data for a given format is not available, a fallback format is used. The fallback order is given in the following by a list.
+
+1. **Specifics**
+ * z - [short form] specific non-location
+ * falling back to short localized GMT
+ * zzzz - [long form] specific non-location
+ * falling back to long localized GMT
+ * Z/ZZZZZ/X+/x+ - ISO 8601 formats (no fallback necessary)
+ * ZZZZ/O+ - Localized GMT formats (no fallback necessary)
+
+2. **Generics**
+ * v - [short form] generic non-location
+ _(however, the rules are more complicated, see #5 below)_
+ * falling back to generic location
+ * falling back to short localized GMT
+ * vvvv - [long form] generic non-location
+ _(however, the rules are more complicated, see #5 below)_
+ * falling back to generic location
+ * falling back to long localized GMT
+ * V - short time zone ID
+ * falling back to the special ID "unk" (Unknown)
+ * VV - long time zone ID (no fallback necessary, because this is the input)
+ * VVV - exemplar city
+ * falling back to the localized exemplar city for the unknown zone (Etc/Unknown), for example "Unknown City" for English
+ * VVVV - generic location
+ * falling back to long localized GMT
+
+The following process is used for the particular formats, with the fallback rules as above.
+
+Some of the examples are drawn from real data, while others are for illustration. For illustration the region format is "Hora de {0}". The fallback format in the examples is "{1} ({0})", which is what is in root.
+
+1. In **all** cases, first canonicalize the _TZ_ ID according to the Unicode Locale Extension _type_ mapping data (See [Time Zone Identifiers](tr35.md#Time_Zone_Identifiers) for more details).. Use that canonical TZID in each of the following steps.
+ * America/Atka → America/Adak
+ * Australia/ACT → Australia/Sydney
+
+2. For the localized GMT format, use the gmtFormat (such as "GMT{0}" or "HMG{0}") with the hourFormat (such as "+HH:mm;-HH:mm" or "+HH.mm;-HH.mm").
+ * America/Los_Angeles → "GMT-08:00" // standard time
+ * America/Los_Angeles → "HMG-07:00" // daylight time
+ * Etc/GMT+3 → "GMT-03.00" // note that _TZ_ tzids have inverse polarity!
+
+ **Note:** The digits should be whatever are appropriate for the locale used to format the time zone, not necessarily from the western digits, 0..9. For example, they might be from ०..९.
+
+3. For ISO 8601 time zone format return the results according to the ISO 8601 specification.
+ * America/Los_Angeles →
+ * "-08" ("X","x")
+ * "-0800" ("Z","XX","XXXX","xx","xxxx")
+ * "-08:00" ("ZZZZZ","XXX","XXXXX","xxx","xxxxx")
+ * Etc/GMT →
+ * "Z" ("ZZZZZ", "X", "XX", "XXX", "XXXX", "XXXXX")
+ * "+00" ("x")
+ * "+0000" ("Z", "xx", "xxxx")
+ * "+00:00" ("xxx", "xxxxx")
+
+ **Note:** The digits in this case are always from the western digits, 0..9.
+
+4. For the non-location formats (generic or specific):
+ 1. if there is an explicit translation for the TZID in `<timeZoneNames>` according to type (generic, standard, or daylight) in the resolved locale, return it.
+ 1. If the requested type is not available, but another type is, and there is a **Type Fallback** then return that other type.
+ * Examples:
+ * America/Los_Angeles → // generic
+ * America/Los_Angeles → "アメリカ太平洋標準時" // standard
+ * America/Los_Angeles → "Yhdysvaltain Tyynenmeren kesäaika" // daylight
+ * Europe/Dublin → "Am Samhraidh na hÉireann" // daylight
+ * Note: This translation may not at all be literal: it would be what is most recognizable for people using the target language.
+ 2. Otherwise, get the requested metazone format according to type (generic, standard, daylight).
+ 1. If the requested type is not available, but another type is, get the format according to **Type Fallback**.
+ 2. If there is no format for the type, fall back.
+ 3. Otherwise do the following:
+ 1. Get the country for the current locale. If there is none, use the most likely country based on the likelySubtags data. If there is none, use “001”.
+ 2. Get the preferred zone for the metazone for the country; if there is none for the country, use the preferred zone for the metazone for “001”.
+ 3. If that preferred zone is the same as the requested zone, use the metazone format. For example, "Pacific Time" for Vancouver if the locale is en_CA, or for Los Angeles if locale is en_US.
+ 4. Otherwise, if the zone is the preferred zone for its country but not for the country of the locale, use the metazone format + country in the _fallbackFormat_.
+ 5. Otherwise, use the metazone format + city in the _fallbackFormat_.
+ * Examples:
+ * "Pacific Time (Canada)" // for the zone Vancouver in the locale en_MX.
+ * "Mountain Time (Phoenix)"
+ * "Pacific Time (Whitehorse)"
+5. For the generic location format:
+ 1. From the TZDB get the country code for the zone, and determine whether there is only one timezone in the country. If there is only one timezone or if the zone id is in the `<primaryZones>` list, format the country name with the _regionFormat_, and return it.
+ * Examples:
+ * Europe/Rome → IT → "Italy Time" // for English
+ * Asia/Shanghai → CN → "China Time" // Asia/Shanghai is the _primaryZone_ for China
+ * Africa/Monrovia → LR → "Hora de Liberja"
+ * America/Havana → CU → "Hora de CU" // if CU is not localized
+ 2. Otherwise format the exemplar city with the _regionFormat_, and return it.
+ 1. America/Buenos_Aires → "Buenos Aires Time"
+
+> **Note:** If a language does require grammatical changes when composing strings, then the _regionFormat_ should either use a neutral format such as "Heure: {0}", or put all exceptional cases in explicitly translated strings.
+
+**Type Fallback**
+
+When a specified type (generic, standard, daylight) does not exist:
+
+1. If the daylight type does not exist, then the metazone doesn’t require daylight support. For all three types:
+ 1. If the generic type exists, use it.
+ 2. Otherwise if the standard type exists, use it.
+2. Otherwise if the generic type is needed, but not available, and the offset and daylight offset do not change within 184 day +/- interval around the exact formatted time, use the standard type.
+ 1. Example: "Mountain Standard Time" for Phoenix
+ 2. Note: 184 is the smallest number that is at least 6 months AND the smallest number that is more than 1/2 year (Gregorian).
+
+**Composition**
+
+In composing the metazone + city or country:
+
+1. Use the _fallbackFormat_ "{1} ({0})", where:
+ * {1} will be the metazone
+ * {0} will be a qualifier (city or country)
+ * Example:
+ * metazone = Pacific Time
+ * city = Phoenix
+ * → "Pacific Time (Phoenix)"
+2. If the localized country name is not available, use the code:
+ * CU (country code) → "CU" _// no localized country name for Cuba_
+3. If the localized exemplar city is not available, use as the exemplar city the last field of the raw TZID, stripping off the prefix and turning _ into space.
+ * America/Los_Angeles → "Los Angeles" _// no localized exemplar city_
+
+**Note:** As with the _regionFormat_, exceptional cases need to be explicitly translated.
+
+### 7.3 <a name="Time_Zone_Parsing" href="#Time_Zone_Parsing">Parsing</a>
+
+In parsing, an implementation will be able to either determine the zone id, or a simple offset from GMT for anything formatting according to the above process.
+
+The following is a sample process for how this might be done. It is only a sample; implementations may use different methods for parsing.
+
+The sample describes the parsing of a zone as if it were an isolated string. In implementations, the zone may be mixed in with other data (like the time), so the parsing actually has to look for the longest match, and then allow the remaining text to be parsed for other content. That requires certain adaptions to the following process.
+
+1. Start with a string S.
+2. If S matches ISO 8601 time zone format, return it.
+ * For example, "-0800" (RFC 822), "-08:00" (ISO 8601) => Etc/GMT+8
+3. If S matches the English or localized GMT format, return the corresponding TZID
+ * Matching should be lenient. Thus allow for the number formats like: 03, 3, 330, 3:30, 33045 or 3:30:45. Allow +, -, or nothing. Allow spaces after GMT, +/-, and before number. Allow non-Latin numbers. Allow UTC or UT (per RFC 788) as synonyms for GMT ("GMT", "UT", "UTC" are global formats, always allowed in parsing regardless of locale).
+ * For example, "GMT+3" or "UT+3" or "HPG+3" => Etc/GMT-3
+ * When parsing, the absence of a numeric offset should be interpreted as offset 0, whether in localized or global formats. For example, "GMT" or "UT" or "UTC+0" or "HPG" => Etc/GMT
+4. If S matches the fallback format, extract P = {0} [ie, the part in parens in the root format] and N = {1}.
+ If S does not match, set P = "" and N = S
+ If N matches the region format, then M = {0} from that format, otherwise M = N.
+ * For example, "United States (Los Angeles) Time" => N = "United States Time", M = "United States", P = "Los Angeles".
+ * For example, "United States Time" => N = "United States Time", M = "United States", P = "".
+ * For example, "United States" => N = M = "United States", P = "".
+5. If P, N, or M is a localized country, set C to that value. If C has only one zone, return it.
+ * For example, "Italy Time (xxx)" or "xxx (Italy)" => Europe/Rome
+ * For example, "xxx (Canada)" or "Canada Time (xxx)" => Sets C = CA and continues
+6. If P is a localized exemplar city name (and not metazone), return it.
+ * For example, "xxxx (Phoenix)" or "Phoenix (xxx)" => America/Phoenix
+7. If N, or M is a localized time zone name (and not metazone), return it.
+ * For example, "Pacific Standard Time (xxx)" => "America/Los_Angeles" // this is only if "Pacific Standard Time" is not a metazone localization.
+8. If N or M is a localized metazone
+ * If it corresponds to only one TZID, return it.
+ * If C is set, look up the Metazone + Country => TZID mapping, and return that value if it exists
+ * Get the locale's language, and get the default country from that. Look up the Metazone + DefaultCountry => TZID mapping, and return that value if it exists.
+ * Otherwise, lookup Metazone + 001 => TZID and return it (that will always exist)
+9. If you get this far, return an error.
+
+> **Note:** This CLDR date parsing recommendation does not fully handle all RFC 788 date/time formats, nor is it intended to.
+
+Parsing can be more lenient than the above, allowing for different spacing, punctuation, or other variation. A stricter parse would check for consistency between the xxx portions above and the rest, so "Pacific Standard Time (India)" would give an error.
+
+Using this process, a correct parse will roundtrip the location format (VVVV) back to the canonical zoneid.
+
+ * Australia/ACT → Australia/Sydney → “Sydney (Australia)” → Australia/Sydney
+
+The GMT formats (Z and ZZZZ) will return back an offset, and thus lose the original canonical zone id.
+
+ * Australia/ACT → Australia/Sydney → "GMT+11:00" → GMT+11
+
+The daylight and standard time formats, and the non-location formats (z, zzzz, v, and vvvv) may either roundtrip back to the original canonical zone id, to a zone in the same metazone that time, or to just an offset, depending on the available translation data. Thus:
+
+ * Australia/ACT → Australia/Sydney → "GMT+11:00" → GMT+11
+ * PST8PDT → America/Los_Angeles → “PST” → America/Los_Angeles
+ * America/Vancouver → “Pacific Time (Canada)” → America/Vancouver
+
+## 8 <a name="Date_Format_Patterns" href="#Date_Format_Patterns">Date Format Patterns</a>
+
+A date pattern is a character string consisting of two types of elements:
+
+* _Pattern fields_, which repeat a specific _pattern character_ one or more times. These fields are replaced with date and time data from a calendar when formatting, or used to generate data for a calendar when parsing. Currently, A..Z and a..z are reserved for use as pattern characters (unless they are quoted, see next item). The pattern characters currently defined, and the meaning of different fields lengths for then, are listed in the Date Field Symbol Table below.
+* Literal text, which is output as-is when formatting, and must closely match when parsing. Literal text can include:
+ * Any characters other than A..Z and a..z, including spaces and punctuation.
+ * Any text between single vertical quotes ('xxxx'), which may include A..Z and a..z as literal text.
+ * Two adjacent single vertical quotes (''), which represent a literal single quote, either inside or outside quoted text.
+
+The following are examples:
+
+##### <a name="Date_Format_Pattern_Examples" href="#Date_Format_Pattern_Examples">Date Format Pattern Examples</a>
+
+| Pattern | Result (in a particular locale) |
+| ------- | ------------------------------- |
+| yyyy.MM.dd G 'at' HH:mm:ss zzz | 1996.07.10 AD at 15:08:56 PDT |
+| EEE, MMM d, ''yy | Wed, July 10, '96 |
+| h:mm a | 12:08 PM |
+| hh 'o''clock' a, zzzz | 12 o'clock PM, Pacific Daylight Time |
+| K:mm a, z | 0:00 PM, PST |
+| yyyyy.MMMM.dd GGG hh:mm aaa | 01996.July.10 AD 12:08 PM |
+
+_When parsing using a pattern, a lenient parse should be used; see [Parsing Dates and Times](#Parsing_Dates_Times)._
+
+```xml
+<!ATTLIST pattern numbers CDATA #IMPLIED >
+```
+
+The `numbers` attribute is used to indicate that numeric quantities in the pattern are to be rendered using a numbering system other than then default numbering system defined for the given locale. The attribute can be in one of two forms. If the alternate numbering system is intended to apply to ALL numeric quantities in the pattern, then simply use the numbering system ID as found in [Numbering Systems](tr35-numbers.md#Numbering_Systems). To apply the alternate numbering system only to a single field, the syntax `<letter>=<numberingSystem>` can be used one or more times, separated by semicolons.
+
+Examples:
+
+```xml
+<pattern numbers="hebr">dd/mm/yyyy</pattern>
+<!-- Use Hebrew numerals to represent numbers in the Hebrew calendar, where "latn" numbering system is the default -->
+
+<pattern numbers="y=hebr">dd/mm/yyyy</pattern>
+<!-- Same as above, except that ONLY the year value would be rendered in Hebrew -->
+
+<pattern numbers="d=thai;m=hans;y=deva">dd/mm/yyyy</pattern>
+<!-- Illustrates use of multiple numbering systems for a single pattern. -->
+```
+
+**Pattern fields and the Date Field Symbol Table**
+
+The Date Field Symbol Table below shows the pattern characters (Sym.) and associated fields used in date patterns. The length of the pattern field is related to the length and style used to format the data item. For numeric-only fields, the field length typically indicates the minimum number of digits that should be used to display the value (zero-padding as necessary). As an example using pattern character ‘H’ for hour (24-hour cycle) and values 5 and 11, a field “H” should produce formatted results “5” and “11” while a field “HH” should produce formatted results “05” and “11”. For alphanumeric fields (such as months) and alphabetic-only fields (such as era names), the relationship between field length and formatted result may be more complex. Typically this is as follows:
+
+<!-- HTML: spanned rows, spanned columns -->
+ <table>
+ <tr><th>Pattern field length</th><th>Typical style, alphanumeric item</th><th>Typical style, alpha-only item</th></tr>
+ <tr><td>1</td><td>Numeric, 1-2 digits (e.g. M)</td><td rowspan="3">Abbreviated (e.g. E, EE, EEE)</td></tr>
+ <tr><td>2</td><td>Numeric, 2 digits (e.g. MM)</td></tr>
+ <tr><td>3</td><td>Abbreviated (e.g. MMM)</td></tr>
+ <tr><td>4</td><td colspan="2">Wide / Long / Full (e.g. MMMM, EEEE)</td></tr>
+ <tr><td>5</td><td colspan="2">Narrow (e.g. MMMMM, EEEEE)<br/>(The counter-intuitive use of 5 letters for this is forced by backwards compatibility)</td></tr>
+</table>
+
+Notes for the table below:
+
+* Any sequence of pattern characters other than those listed below is invalid. Invalid pattern fields should be handled for formatting and parsing as described in [Handling Invalid Patterns](tr35.md#Invalid_Patterns).
+* The examples in the table below are merely illustrative and may not reflect current actual data.
+
+##### <a name="Date_Field_Symbol_Table" href="#Date_Field_Symbol_Table">Date Field Symbol Table</a>
+
+<!-- HTML: spanned rows, spanned columns, vertical header cells -->
+<table><tbody>
+<tr><th>Field<br/>Type</th><th>Sym.</th><th>Field<br/>Patterns</th><th>Examples</th><th colspan="2">Description</th></tr>
+
+<!-- == == == ERA == == == -->
+<tr><th rowspan="3"><a name="dfst-era" href="#dfst-era">era</a></th><td rowspan="3">G</td><td>G..GGG</td><td>AD<br/>[variant: CE]</td><td>Abbreviated</td><td rowspan="3">Era name. Era string for the current date.</td></tr>
+ <tr><td>GGGG</td><td>Anno Domini<br/>[variant: Common Era]</td><td>Wide</td></tr>
+ <tr><td>GGGGG</td><td>A</td><td>Narrow</td></tr>
+
+<!-- == == == YEAR == == == -->
+<tr><th rowspan="15"><a name="dfst-year" href="#dfst-year">year</a><a name="Year_Length_Examples"></a></th><td rowspan="5">y</td><td>y</td><td>2, 20, 201, 2017, 20173</td>
+ <td rowspan="5" colspan="2">Calendar year (numeric). In most cases the length of the y field specifies the minimum number of digits to display, zero-padded as necessary; more digits will be displayed if needed to show the full year.
+ However, “yy” requests just the two low-order digits of the year, zero-padded as necessary. For most use cases, “y” or “yy” should be adequate.</td></tr>
+ <tr><td>yy</td><td>02, 20, 01, 17, 73</td></tr>
+ <tr><td>yyy</td><td>002, 020, 201, 2017, 20173</td></tr>
+ <tr><td>yyyy</td><td>0002, 0020, 0201, 2017, 20173</td></tr>
+ <tr><td>yyyyy+</td><td>...</td></tr>
+ <!-- Y -->
+ <tr><td rowspan="5">Y</td><td>Y</td><td>2, 20, 201, 2017, 20173</td>
+ <td rowspan="5" colspan="2">Year in “Week of Year” based calendars in which the year transition occurs on a week boundary; may differ from calendar year ‘y’ near a year transition.
+ This numeric year designation is used in conjunction with pattern character ‘w’ in the ISO year-week calendar as defined by ISO 8601, but can be used in non-Gregorian based calendar systems where week date processing is desired.
+ The field length is interpreted in the same was as for ‘y’; that is, “yy” specifies use of the two low-order year digits, while any other field length specifies a minimum number of digits to display.</td></tr>
+ <tr><td>YY</td><td>02, 20, 01, 17, 73</td></tr>
+ <tr><td>YYY</td><td>002, 020, 201, 2017, 20173</td></tr>
+ <tr><td>YYYY</td><td>0002, 0020, 0201, 2017, 20173</td></tr>
+ <tr><td>YYYYY+</td><td>...</td></tr>
+ <!-- u -->
+ <tr><td>u</td><td>u+</td><td>4601</td>
+ <td colspan="2">Extended year (numeric). This is a single number designating the year of this calendar system, encompassing all supra-year fields.
+ For example, for the Julian calendar system, year numbers are positive, with an era of BCE or CE. An extended year value for the Julian calendar system assigns positive values to CE years and negative values to BCE years, with 1 BCE being year 0.
+ For ‘u’, all field lengths specify a minimum number of digits; there is no special interpretation for “uu”.</td></tr>
+ <!-- U -->
+ <tr><td rowspan="3">U</td><td>U..UUU</td><td>甲子</td><td>Abbreviated</td>
+ <td rowspan="3">Cyclic year name. Calendars such as the Chinese lunar calendar (and related calendars) and the Hindu calendars use 60-year cycles of year names.
+ If the calendar does not provide cyclic year name data, or if the year value to be formatted is out of the range of years for which cyclic name data is provided, then numeric formatting is used (behaves like 'y').<br/>
+ Currently the data only provides abbreviated names, which will be used for all requested name widths.</td></tr>
+ <tr><td>UUUU</td><td>甲子 [for now]</td><td>Wide</td></tr>
+ <tr><td>UUUUU</td><td>甲子 [for now]</td><td>Narrow</td></tr>
+ <!-- r -->
+ <tr><td>r</td><td>r+</td><td>2017</td>
+ <td colspan="2">Related Gregorian year (numeric).
+ For non-Gregorian calendars, this corresponds to the extended Gregorian year in which the calendar’s year begins.
+ Related Gregorian years are often displayed, for example, when formatting dates in the Japanese calendar — e.g. “2012(平成24)年1月15日” — or in the Chinese calendar — e.g. “2012壬辰年腊月初四”.
+ The related Gregorian year is usually displayed using the "latn" numbering system, regardless of what numbering systems may be used for other parts of the formatted date.
+ If the calendar’s year is linked to the solar year (perhaps using leap months), then for that calendar the ‘r’ year will always be at a fixed offset from the ‘u’ year.
+ For the Gregorian calendar, the ‘r’ year is the same as the ‘u’ year. For ‘r’, all field lengths specify a minimum number of digits; there is no special interpretation for “rr”.</td></tr>
+
+<!-- == == == QUARTER == == == -->
+<tr><th rowspan="10"><a name="dfst-quarter" id="dfst-quarter" href="#dfst-quarter">quarter</a></th><td rowspan="5">Q</td><td>Q</td><td>2</td><td>Numeric: 1 digit</td><td rowspan="5">Quarter number/name.</td></tr>
+ <tr><td>QQ</td><td>02</td><td>Numeric: 2 digits + zero pad</td></tr>
+ <tr><td>QQQ</td><td>Q2</td><td>Abbreviated</td></tr>
+ <tr><td>QQQQ</td><td>2nd quarter</td><td>Wide</td></tr>
+ <tr><td>QQQQQ</td><td>2</td><td>Narrow</td></tr>
+ <!-- q -->
+ <tr><td rowspan="5">q</td><td>q</td><td>2</td><td>Numeric: 1 digit</td><td rowspan="5"><b>Stand-Alone</b> Quarter number/name.</td></tr>
+ <tr><td>qq</td><td>02</td><td>Numeric: 2 digits + zero pad</td></tr>
+ <tr><td>qqq</td><td>Q2</td><td>Abbreviated</td></tr>
+ <tr><td>qqqq</td><td>2nd quarter</td><td>Wide</td></tr>
+ <tr><td>qqqqq</td><td>2</td><td>Narrow</td></tr>
+
+<!-- == == == MONTH == == == -->
+<tr><th rowspan="11"><a name="dfst-month" id="dfst-month" href="#dfst-month">month</a></th><td rowspan="5">M</td><td>M</td><td>9, 12</td><td>Numeric: minimum digits</td><td rowspan="5">Month number/name, format style (intended to be used in conjunction with ‘d’ for day number).</td></tr>
+ <tr><td>MM</td><td>09, 12</td><td>Numeric: 2 digits, zero pad if needed</td></tr>
+ <tr><td>MMM</td><td>Sep</td><td>Abbreviated</td></tr>
+ <tr><td>MMMM</td><td>September</td><td>Wide</td></tr>
+ <tr><td>MMMMM</td><td>S</td><td>Narrow</td></tr>
+ <!-- L -->
+ <tr><td rowspan="5">L</td><td>L</td><td>9, 12</td><td>Numeric: minimum digits</td><td rowspan="5"><b>Stand-Alone</b> Month number/name (intended to be used without ‘d’ for day number).</td></tr>
+ <tr><td>LL</td><td>09, 12</td><td>Numeric: 2 digits, zero pad if needed</td></tr>
+ <tr><td>LLL</td><td>Sep</td><td>Abbreviated</td></tr>
+ <tr><td>LLLL</td><td>September</td><td>Wide</td></tr>
+ <tr><td>LLLLL</td><td>S</td><td>Narrow</td></tr>
+ <!-- l -->
+ <tr><td>l</td><td>l</td><td>[nothing]</td>
+ <td colspan="2">This pattern character is deprecated, and should be ignored in patterns.
+ It was originally intended to be used in combination with M to indicate placement of the symbol for leap month in the Chinese calendar.
+ Placement of that marker is now specified using locale-specific <monthPatterns> data, and formatting and parsing of that marker should be handled as part of supporting the regular M and L pattern characters.</td></tr>
+
+<!-- == == == WEEK == == == -->
+<tr><th rowspan="3"><a name="dfst-week" id="dfst-week" href="#dfst-week">week</a></th><td rowspan="2">w</td><td>w</td><td>8, 27</td><td>Numeric: minimum digits</td><td rowspan="2">Week of Year (numeric). When used in a pattern with year, use ‘Y’ for the year field instead of ‘y’.</td></tr>
+ <tr><td>ww</td><td>08, 27</td><td>Numeric: 2 digits, zero pad if needed</td></tr>
+ <!-- W -->
+ <tr><td>W</td><td>W</td><td>3</td><td>Numeric: 1 digit</td><td>Week of Month (numeric)</td></tr>
+
+<!-- == == == DAY == == == -->
+<tr><th rowspan="5"><a name="dfst-day" id="dfst-day" href="#dfst-day">day</a></th><td rowspan="2">d</td><td>d</td><td>1</td><td>Numeric: minimum digits</td><td rowspan="2">Day of month (numeric).</td></tr>
+ <tr><td>dd</td><td>01</td><td>Numeric: 2 digits, zero pad if needed</td></tr>
+ <tr><td>D</td><td>D...DDD</td><td>345</td><td colspan="2">Day of year (numeric). The field length specifies the minimum number of digits, with zero-padding as necessary.</td></tr>
+ <tr><td>F</td><td>F</td><td>2</td><td colspan="2">Day of Week in Month (numeric). The example is for the 2nd Wed in July</td></tr>
+ <tr><td>g</td><td>g+</td><td>2451334</td>
+ <td colspan="2">Modified Julian day (numeric).
+ This is different from the conventional Julian day number in two regards.
+ First, it demarcates days at local zone midnight, rather than noon GMT.
+ Second, it is a local number; that is, it depends on the local time zone.
+ It can be thought of as a single number that encompasses all the date-related fields.
+ The field length specifies the minimum number of digits, with zero-padding as necessary.</td></tr>
+
+<!-- == == == WEEKDAY == == == -->
+<tr><th rowspan="15"><a name="dfst-weekday" id="dfst-weekday" href="#dfst-weekday">week<br/>day</a></th><td rowspan="4">E</td><td>E..EEE</td><td>Tue</td><td>Abbreviated</td><td rowspan="4">Day of week name, format style.</td></tr>
+ <tr><td>EEEE</td><td>Tuesday</td><td>Wide</td></tr>
+ <tr><td>EEEEE</td><td>T</td><td>Narrow</td></tr>
+ <tr><td>EEEEEE</td><td>Tu</td><td>Short</td></tr>
+ <!-- e -->
+ <tr><td rowspan="6">e</td><td>e</td><td>2</td><td>Numeric: 1 digit</td>
+ <td rowspan="6">Local day of week number/name, format style.
+ Same as E except adds a numeric value that will depend on the local starting day of the week.
+ For this example, Monday is the first day of the week.</td></tr>
+ <tr><td>ee</td><td>02</td><td>Numeric: 2 digits + zero pad</td></tr>
+ <tr><td>eee</td><td>Tue</td><td>Abbreviated</td></tr>
+ <tr><td>eeee</td><td>Tuesday</td><td>Wide</td></tr>
+ <tr><td>eeeee</td><td>T</td><td>Narrow</td></tr>
+ <tr><td>eeeeee</td><td>Tu</td><td>Short</td></tr>
+ <!-- c -->
+ <tr><td rowspan="5">c</td><td>c..cc</td><td>2</td><td>Numeric: 1 digit</td><td rowspan="5"><b>Stand-Alone</b> local day of week number/name.</td></tr>
+ <tr><td>ccc</td><td>Tue</td><td>Abbreviated</td></tr>
+ <tr><td>cccc</td><td>Tuesday</td><td>Wide</td></tr>
+ <tr><td>ccccc</td><td>T</td><td>Narrow</td></tr>
+ <tr><td>cccccc</td><td>Tu</td><td>Short</td></tr>
+
+<!-- == == == PERIOD == == == -->
+<tr><th rowspan="9"><a name="dfst-period" id="dfst-period" href="#dfst-period">period</a></th><td rowspan="3">a</td><td>a..aaa</td><td>am. [e.g. 12 am.]</td><td>Abbreviated</td>
+ <td rowspan="3"><strong>AM, PM<br/></strong>May be upper or lowercase depending on the locale and other options.
+ The wide form may be the same as the short form if the “real” long form (eg <em>ante meridiem</em>) is not customarily used.
+ The narrow form must be unique, unlike some other fields.
+ See also Section 9 <a href="#Parsing_Dates_Times">Parsing Dates and Times</a>.</td></tr>
+ <tr><td>aaaa</td><td>am. [e.g. 12 am.]</td><td>Wide</td></tr>
+ <tr><td>aaaaa</td><td>a [e.g. 12a]</td><td>Narrow</td></tr>
+ <!-- b -->
+ <tr><td rowspan="3">b</td><td>b..bbb</td><td>mid. [e.g. 12 mid.]</td><td>Abbreviated</td>
+ <td rowspan="3"><strong>am, pm, noon, midnight</strong><br/>May be upper or lowercase depending on the locale and other options.
+ If the locale doesn't the notion of a unique "noon" = 12:00, then the PM form may be substituted.
+ Similarly for "midnight" = 00:00 and the AM form.
+ The narrow form must be unique, unlike some other fields.</td></tr>
+ <tr><td>bbbb</td><td>midnight<br/>[e.g. 12 midnight]</td><td>Wide</td></tr>
+ <tr><td>bbbbb</td><td>md [e.g. 12 md]</td><td>Narrow</td></tr>
+ <!-- B -->
+ <tr><td rowspan="3">B</td><td>B..BBB</td><td>at night<br/>[e.g. 3:00 at night]</td><td>Abbreviated</td>
+ <td rowspan="3"><strong>flexible day periods</strong><br/>
+ May be upper or lowercase depending on the locale and other options.
+ Often there is only one width that is customarily used.</td></tr>
+ <tr><td>BBBB</td><td>at night<br/>[e.g. 3:00 at night]</td><td>Wide</td></tr>
+ <tr><td>BBBBB</td><td>at night<br/>[e.g. 3:00 at night]</td><td>Narrow</td></tr>
+
+<!-- == == == HOUR == == == -->
+<tr><th rowspan="22"><a name="dfst-hour" id="dfst-hour" href="#dfst-hour">hour</a></th><td rowspan="2">h</td><td>h</td><td>1, 12</td><td>Numeric: minimum digits</td>
+ <td rowspan="2">Hour [1-12]. When used in skeleton data or in a skeleton passed in an API for flexible date pattern generation, it should match the 12-hour-cycle format preferred by the locale (h or K); it should not match a 24-hour-cycle format (H or k).</td></tr>
+<tr><td>hh</td><td>01, 12</td><td>Numeric: 2 digits, zero pad if needed</td></tr>
+ <!-- H -->
+ <tr><td rowspan="2">H</td><td>H</td><td>0, 23</td><td>Numeric: minimum digits</td>
+ <td rowspan="2">Hour [0-23]. When used in skeleton data or in a skeleton passed in an API for flexible date pattern generation, it should match the 24-hour-cycle format preferred by the locale (H or k); it should not match a 12-hour-cycle format (h or K).</td></tr>
+ <tr><td>HH</td><td>00, 23</td><td>Numeric: 2 digits, zero pad if needed</td></tr>
+ <!-- K -->
+ <tr><td rowspan="2">K</td><td>K</td><td>0, 11</td><td>Numeric: minimum digits</td>
+ <td rowspan="2">Hour [0-11]. When used in a skeleton, only matches K or h, see above.</td></tr>
+ <tr><td>KK</td><td>00, 11</td><td>Numeric: 2 digits, zero pad if needed</td></tr>
+ <!-- k -->
+ <tr><td rowspan="2">k</td><td>k</td><td>1, 24</td><td>Numeric: minimum digits</td>
+ <td rowspan="2">Hour [1-24]. When used in a skeleton, only matches k or H, see above.</td></tr>
+ <tr><td>kk</td><td>01, 24</td><td>Numeric: 2 digits, zero pad if needed</td></tr>
+ <!-- j -->
+ <tr><td rowspan="6">j</td><td>j</td><td>8<br/>8 AM<br/>13<br/>1 PM</td><td>Numeric hour (minimum digits), abbreviated dayPeriod if used</td>
+ <td rowspan="6"><em><strong>Input skeleton symbol</strong></em><br/>
+ It must not occur in pattern or skeleton data.
+ Instead, it is reserved for use in skeletons passed to APIs doing flexible date pattern generation.
+ In such a context, it requests the preferred hour format for the locale (h, H, K, or k), as determined by the <strong>preferred</strong> attribute of the <strong>hours</strong> element in supplemental data.
+ In the implementation of such an API, 'j' must be replaced by h, H, K, or k before beginning a match against availableFormats data.<br/>
+ Note that use of 'j' in a skeleton passed to an API is the only way to have a skeleton request a locale's preferred time cycle type (12-hour or 24-hour).</td></tr>
+ <tr><td>jj</td><td>08<br/>08 AM<br/>13<br/>01 PM</td><td>Numeric hour (2 digits, zero pad if needed), abbreviated dayPeriod if used</td></tr>
+ <tr><td>jjj</td><td>8<br/>8 A.M.<br/>13<br/>1 P.M.</td><td>Numeric hour (minimum digits), wide dayPeriod if used</td></tr>
+ <tr><td>jjjj</td><td>08<br/>08 A.M.<br/>13<br/>01 P.M.</td><td>Numeric hour (2 digits, zero pad if needed), wide dayPeriod if used</td></tr>
+ <tr><td>jjjjj</td><td>8<br/>8a<br/>13<br/>1p</td><td>Numeric hour (minimum digits), narrow dayPeriod if used</td></tr>
+ <tr><td>jjjjjj</td><td>08<br/>08a<br/>13<br/>01p</td><td>Numeric hour (2 digits, zero pad if needed), narrow dayPeriod if used</td></tr>
+ <!-- J -->
+ <tr><td rowspan="2">J</td><td>J</td><td>8<br/>8</td><td>Numeric hour (minimum digits)</td>
+ <td rowspan="2"><em><strong>Input skeleton symbol</strong></em><br/>It must not occur in pattern or skeleton data.
+ Instead, it is reserved for use in skeletons passed to APIs doing flexible date pattern generation.
+ In such a context, like 'j', it requests the preferred hour format for the locale (h, H, K, or k), as determined by the <strong>preferred</strong> attribute of the <strong>hours</strong> element in supplemental data.
+ However, unlike 'j', it requests no dayPeriod marker such as “am/pm” (It is typically used where there is enough context that that is not necessary).
+ For example, with "jmm", 18:00 could appear as “6:00 PM”, while with "Jmm", it would appear as “6:00” (no PM).</td></tr>
+ <tr><td>JJ</td><td>08<br/>08</td><td>Numeric hour (2 digits, zero pad if needed)</td></tr>
+ <!-- C -->
+ <tr><td rowspan="6">C</td><td>C</td><td>8<br/>8 (morning)</td><td>Numeric hour (minimum digits), abbreviated dayPeriod if used</td>
+ <td rowspan="6"><em><strong>Input skeleton symbol</strong></em><br/>It must not occur in pattern or skeleton data.
+ Instead, it is reserved for use in skeletons passed to APIs doing flexible date pattern generation.
+ In such a context, like 'j', it requests the preferred hour format for the locale.
+ However, unlike 'j', it can also select formats such as hb or hB, since it is based not on the <strong>preferred</strong> attribute of the <strong>hours</strong> element in supplemental data, but instead on the first element of the <strong>allowed</strong> attribute (which is an ordered preferrence list).
+ For example, with "Cmm", 18:00 could appear as “6:00 in the afternoon”.</td></tr>
+ <tr><td>CC</td><td>08<br/>08 (morning)</td><td>Numeric hour (2 digits, zero pad if needed), abbreviated dayPeriod if used</td></tr>
+ <tr><td>CCC</td><td>8<br/>8 in the morning</td><td>Numeric hour (minimum digits), wide dayPeriod if used</td></tr>
+ <tr><td>CCCC</td><td>08<br/>08 in the morning</td><td>Numeric hour (2 digits, zero pad if needed), wide dayPeriod if used</td></tr>
+ <tr><td>CCCCC</td><td>8<br/>8 (morn.)</td><td>Numeric hour (minimum digits), narrow dayPeriod if used</td></tr>
+ <tr><td>CCCCCC</td><td>08<br/>08 (morn.)</td><td>Numeric hour (2 digits, zero pad if needed), narrow dayPeriod if used</td></tr>
+
+<!-- == == == MINUTE == == == -->
+<tr><th rowspan="2"><a name="dfst-minute" id="dfst-minute" href="#dfst-minute">minute</a></th><td rowspan="2">m</td><td>m</td><td>8, 59</td><td>Numeric: minimum digits</td>
+ <td rowspan="2">Minute (numeric). Truncated, not rounded.<br/></td></tr>
+ <tr><td>mm</td><td>08, 59</td><td>Numeric: 2 digits, zero pad if needed</td></tr>
+
+<!-- == == == SECOND == == == -->
+<tr><th rowspan="4"><a name="dfst-second" id="dfst-second" href="#dfst-second">second</a></th><td rowspan="2">s</td><td>s</td><td>8, 12</td><td>Numeric: minimum digits</td>
+ <td rowspan="2">Second (numeric). Truncated, not rounded.<br/></td></tr>
+ <tr><td>ss</td><td>08, 12</td><td>Numeric: 2 digits, zero pad if needed</td></tr>
+ <tr><td>S</td><td>S+</td><td>3456</td>
+ <td colspan="2">Fractional Second (numeric).
+ Truncates, like other numeric time fields, but in this case to the number of digits specified by the field length.
+ (Example shows display using pattern SSSS for seconds value 12.34567)</td></tr>
+ <tr><td>A</td><td>A+</td><td>69540000</td>
+ <td colspan="2">Milliseconds in day (numeric).
+ This field behaves <i>exactly</i> like a composite of all time-related fields, not including the zone fields.
+ As such, it also reflects discontinuities of those fields on DST transition days. On a day of DST onset, it will jump forward.
+ On a day of DST cessation, it will jump backward.
+ This reflects the fact that is must be combined with the offset field to obtain a unique local time value.
+ The field length specifies the minimum number of digits, with zero-padding as necessary.</td></tr>
+
+<!-- == == == SEPARATOR == == == -->
+<tr><th><a name="dfst-sep" id="dfst-sep" href="#dfst-sep">sep.</a></th><td>(none def., see note)</td><td></td><td></td>
+ <td colspan="2">Time separator.<br/><br/><span class="note"><b>Note:</b>
+ In CLDR 26 the time separator pattern character was specified to be COLON.
+ This was withdrawn in CLDR 28 due to backward compatibility issues, and no time separator pattern character is currently defined.</span><br/><br/>
+ Like the use of "," in number formats, this character in a date pattern is replaced with the corresponding number symbol which may depend on the numbering system.
+ For more information, see <em><strong>Part 3: <a href="tr35-numbers.md#Contents">Numbers</a></strong>, Section 2.3 <a href="tr35-numbers.md#Number_Symbols">Number Symbols</a></em>.</td></tr>
+
+<!-- == == == ZONE == == == -->
+<tr><th rowspan="23"><a name="dfst-zone" id="dfst-zone" href="#dfst-zone">zone</a></th><td rowspan="2">z</td><td>z..zzz</td><td>PDT</td>
+ <td colspan="2">The <i>short specific non-location format</i>. Where that is unavailable, falls back to the <i>short localized GMT format</i> ("O").</td></tr>
+ <tr><td>zzzz</td><td>Pacific Daylight Time</td>
+ <td colspan="2">The <i>long specific non-location format</i>.
+ Where that is unavailable, falls back to the <i>long localized GMT format</i> ("OOOO").</td></tr>
+ <!-- Z -->
+ <tr><td rowspan="3">Z</td><td>Z..ZZZ</td><td>-0800</td>
+ <td colspan="2">The <i>ISO8601 basic format</i> with hours, minutes and optional seconds fields.
+ The format is equivalent to RFC 822 zone format (when optional seconds field is absent).
+ This is equivalent to the "xxxx" specifier.</td></tr>
+ <tr><td>ZZZZ</td><td>GMT-8:00</td>
+ <td colspan="2">The <i>long localized GMT format</i>.
+ This is equivalent to the "OOOO" specifier.</td></tr>
+ <tr><td>ZZZZZ</td><td>-08:00<br/>-07:52:58</td>
+ <td colspan="2">The <i>ISO8601 extended format</i> with hours, minutes and optional seconds fields.
+ The ISO8601 UTC indicator "Z" is used when local time offset is 0.
+ This is equivalent to the "XXXXX" specifier.</td></tr>
+ <!-- O -->
+ <tr><td rowspan="2">O</td><td>O</td><td>GMT-8</td><td colspan="2">The <i>short localized GMT format</i>.</td></tr>
+ <tr><td>OOOO</td><td>GMT-08:00</td><td colspan="2">The <i>long localized GMT format</i>.</td></tr>
+ <!-- v -->
+ <tr><td rowspan="2">v</td><td>v</td><td>PT</td>
+ <td colspan="2">The <i>short generic non-location format</i>
+ Where that is unavailable, falls back to the <i>generic location format</i> ("VVVV"), then the <i>short localized GMT format</i> as the final fallback.</td></tr>
+ <tr><td>vvvv</td><td>Pacific Time</td>
+ <td colspan="2">The <i>long generic non-location format</i>.
+ Where that is unavailable, falls back to <i>generic location format</i> ("VVVV").</td></tr>
+ <!-- V -->
+ <tr><td rowspan="4">V</td><td>V</td><td>uslax</td>
+ <td colspan="2">The short time zone ID. Where that is unavailable, the special short time zone ID <i>unk</i> (Unknown Zone) is used.<br/>
+ <i><b>Note</b>: This specifier was originally used for a variant of the short specific non-location format, but it was deprecated in the later version of this specification.
+ In CLDR 23, the definition of the specifier was changed to designate a short time zone ID.</i></td></tr>
+ <tr><td>VV</td><td>America/Los_Angeles</td><td colspan="2">The long time zone ID.</td></tr>
+ <tr><td>VVV</td><td>Los Angeles</td>
+ <td colspan="2">The exemplar city (location) for the time zone.
+ Where that is unavailable, the localized exemplar city name for the special zone <i>Etc/Unknown</i> is used as the fallback (for example, "Unknown City").</td></tr>
+ <tr><td>VVVV</td><td>Los Angeles Time</td>
+ <td colspan="2">The <i>generic location format</i>.
+ Where that is unavailable, falls back to the <i>long localized GMT format</i> ("OOOO"; Note: Fallback is only necessary with a GMT-style Time Zone ID, like Etc/GMT-830.)<br/>
+ This is especially useful when presenting possible timezone choices for user selection, since the naming is more uniform than the "v" format.</td></tr>
+ <!-- X -->
+ <tr><td rowspan="5">X</td><td>X</td><td>-08<br/>+0530<br/>Z</td>
+ <td colspan="2">The <i>ISO8601 basic format</i> with hours field and optional minutes field.
+ The ISO8601 UTC indicator "Z" is used when local time offset is 0. (The same as x, plus "Z".)</td></tr>
+ <tr><td>XX</td><td>-0800<br/>Z</td>
+ <td colspan="2">The <i>ISO8601 basic format</i> with hours and minutes fields.
+ The ISO8601 UTC indicator "Z" is used when local time offset is 0. (The same as xx, plus "Z".)</td></tr>
+ <tr><td>XXX</td><td>-08:00<br/>Z</td>
+ <td colspan="2">The <i>ISO8601 extended format</i> with hours and minutes fields.
+ The ISO8601 UTC indicator "Z" is used when local time offset is 0. (The same as xxx, plus "Z".)</td></tr>
+ <tr><td>XXXX</td><td>-0800<br/>-075258<br/>Z</td>
+ <td colspan="2">The <i>ISO8601 basic format</i> with hours, minutes and optional seconds fields.
+ The ISO8601 UTC indicator "Z" is used when local time offset is 0. (The same as xxxx, plus "Z".)<br/>
+ <i><b>Note</b>: The seconds field is not supported by the ISO8601 specification.</i></td></tr>
+ <tr><td>XXXXX</td><td>-08:00<br/>-07:52:58<br/>Z</td>
+ <td colspan="2">The <i>ISO8601 extended format</i> with hours, minutes and optional seconds fields.
+ The ISO8601 UTC indicator "Z" is used when local time offset is 0. (The same as xxxxx, plus "Z".)<br/>
+ <i><b>Note</b>: The seconds field is not supported by the ISO8601 specification.</i></td></tr>
+ <!-- x -->
+ <tr><td rowspan="5">x</td><td>x</td><td>-08<br/>+0530<br/>+00</td>
+ <td colspan="2">The <i>ISO8601 basic format</i> with hours field and optional minutes field. (The same as X, minus "Z".)</td></tr>
+ <tr><td>xx</td><td>-0800<br/>+0000</td>
+ <td colspan="2">The <i>ISO8601 basic format</i> with hours and minutes fields. (The same as XX, minus "Z".)</td></tr>
+ <tr><td>xxx</td><td>-08:00<br/>+00:00</td>
+ <td colspan="2">The <i>ISO8601 extended format</i> with hours and minutes fields. (The same as XXX, minus "Z".)</td></tr>
+ <tr><td>xxxx</td><td>-0800<br/>-075258<br/>+0000</td>
+ <td colspan="2">The <i>ISO8601 basic format</i> with hours, minutes and optional seconds fields. (The same as XXXX, minus "Z".)<br/>
+ <i><b>Note</b>: The seconds field is not supported by the ISO8601 specification.</i></td></tr>
+ <tr><td>xxxxx</td><td>-08:00<br/>-07:52:58<br/>+00:00</td>
+ <td colspan="2">The <i>ISO8601 extended format</i> with hours, minutes and optional seconds fields. (The same as XXXXX, minus "Z".)<br/>
+ <i><b>Note</b>: The seconds field is not supported by the ISO8601 specification.</i></td></tr>
+</tbody></table>
+
+### 8.1 <a name="Localized_Pattern_Characters" href="#Localized_Pattern_Characters">Localized Pattern Characters (deprecated)</a>
+
+These are characters that can be used when displaying a date pattern to an end user. This can occur, for example, when a spreadsheet allows users to specify date patterns. Whatever is in the string is substituted one-for-one with the characters "GyMdkHmsSEDFwWahKzYeugAZvcLQqVUOXxr", with the above meanings. Thus, for example, if 'J' is to be used instead of 'Y' to mean Year (for Week of Year), then the string would be: "GyMdkHmsSEDFwWahKzJeugAZvcLQqVUOXxr".
+
+This element is deprecated. It is recommended instead that a more sophisticated UI be used for localization, such as using icons to represent the different formats (and lengths) in the [Date Field Symbol Table](#Date_Field_Symbol_Table).
+
+### 8.2 <a name="Date_Patterns_AM_PM" href="#Date_Patterns_AM_PM">AM / PM</a>
+
+Even for countries where the customary date format only has a 24 hour format, both the am and pm localized strings must be present and must be distinct from one another. Note that as long as the 24 hour format is used, these strings will normally never be used, but for testing and unusual circumstances they must be present.
+
+### 8.3 <a name="Date_Patterns_Eras" href="#Date_Patterns_Eras">Eras</a>
+
+There are only two values for era in the Gregorian calendar, with two common naming conventions (here in abbreviated form for English): "BC" and "AD", or "BCE" and "CE". These values can be translated into other languages, like "a.C." and and "d.C." for Spanish, but there are no other eras in the Gregorian calendar. Other calendars have a different numbers of eras. Care should be taken when translating the era names for a specific calendar.
+
+### 8.4 <a name="Date_Patterns_Week_Of_Year" href="#Date_Patterns_Week_Of_Year">Week of Year</a>
+
+Values calculated for the Week of Year field range from 1 to 53 for the Gregorian calendar (they may have different ranges for other calendars). Week 1 for a year is the first week that contains at least the specified minimum number of days from that year. Weeks between week 1 of one year and week 1 of the following year are numbered sequentially from 2 to 52 or 53 (if needed). For example, January 1, 1998 was a Thursday. If the first day of the week is MONDAY and the minimum days in a week is 4 (these are the values reflecting ISO 8601 and many national standards), then week 1 of 1998 starts on December 29, 1997, and ends on January 4, 1998. However, if the first day of the week is SUNDAY, then week 1 of 1998 starts on January 4, 1998, and ends on January 10, 1998. The first three days of 1998 are then part of week 53 of 1997.
+
+Values are similarly calculated for the Week of Month.
+
+### 8.5 <a name="Date_Patterns_Week_Elements" href="#Date_Patterns_Week_Elements">Week Elements</a>
+
+**firstDay**
+
+A number indicating which day of the week is considered the 'first' day, for calendar purposes. Because the ordering of days may vary between calendar, keywords are used for this value, such as sun, mon, …. These values will be replaced by the localized name when they are actually used.
+
+**minDays (Minimal Days in First Week)**
+
+Minimal days required in the first week of a month or year. For example, if the first week is defined as one that contains at least one day, this value will be 1. If it must contain a full seven days before it counts as the first week, then the value would be 7.
+
+**weekendStart, weekendEnd**
+
+Indicates the day and time that the weekend starts or ends. As with firstDay, keywords are used instead of numbers.
+
+## 9 <a name="Parsing_Dates_Times" href="#Parsing_Dates_Times">Parsing Dates and Times</a>
+
+For general information on lenient parsing, see [Lenient Parsing](tr35.md#Lenient_Parsing) in the core specification. This section provides additional information specific to parsing of dates and times.
+
+Lenient parsing of date and time strings is especially complicated, due to the large number of possible fields and formats. The fields fall into two categories: numeric fields (hour, day of month, year, numeric month, and so on) and symbolic fields (era, quarter, month, weekday, AM/PM, time zone). In addition, the user may type in a date or time in a form that is significantly different from the normal format for the locale, and the application must use the locale information to figure out what the user meant. Input may well consist of nothing but a string of numbers with separators, for example, "09/05/02 09:57:33".
+
+The input can be separated into tokens: numbers, symbols, and literal strings. Some care must be taken due to ambiguity, for example, in the Japanese locale the symbol for March is "3 月", which looks like a number followed by a literal. To avoid these problems, symbols should be checked first, and spaces should be ignored (except to delimit the tokens of the input string).
+
+The meaning of symbol fields should be easy to determine; the problem is determining the meaning of the numeric fields. Disambiguation will likely be most successful if it is based on heuristics. Here are some rules that can help:
+
+* Always try the format string expected for the input text first. This is the only way to disambiguate 03/07 (March 2007, a credit card expiration date) from 03/07 (March 7, a birthday).
+* Attempt to match fields and literals against those in the format string, using loose matching of the tokens. In particular, Unicode normalization and case variants should be accepted. Alternate symbols can also be accepted where unambiguous: for example, “11.30 am”.
+* When matching symbols, try the narrow, abbreviated, and full-width forms, including standalone forms if they are unique. You may want to allow prefix matches too, or diacritic-insensitive, again, as long as they are unique. For example, for a month, accept 9, 09, S, Se, Sep, Sept, Sept., and so on. For abbreviated symbols (e.g. names of eras, months, weekdays), allow matches both with and without an abbreviation marker such as period (or whatever else may be customary in the locale); abbreviated forms in the CLDR data may or may not have such a marker.
+ * Note: While parsing of narrow date values (e.g. month or day names) may be required in order to obtain minimum information from a formatted date (for instance, the only month information may be in a narrow form), the results are not guaranteed; parsing of an ambiguous formatted date string may produce a result that differs from the date originally used to create the formatted string.
+ * For day periods, ASCII variants for AM/PM such as “am”, “a.m.”, “am.” (and their case variants) should be accepted, since they are widely used as alternates to native formats.
+* When a field or literal is encountered that is not compatible with the pattern:
+ * Synchronization is not necessary for symbolic fields, since they are self-identifying. Wait until a numeric field or literal is encountered before attempting to resynchronize.
+ * Ignore whether the input token is symbolic or numeric, if it is compatible with the current field in the pattern.
+ * Look forward or backward in the current format string for a literal that matches the one most recently encountered. See if you can resynchronize from that point. Use the value of the numeric field to resynchronize as well, if possible (for example, a number larger than the largest month cannot be a month)
+ * If that fails, use other format strings from the locale (including those in `<availableFormats>`) to try to match the previous or next symbol or literal (again, using a loose match).
+
+* * *
+
+Copyright © 2001–2021 Unicode, Inc. All Rights Reserved. The Unicode Consortium makes no expressed or implied warranty of any kind, and assumes no liability for errors or omissions. No liability is assumed for incidental and consequential damages in connection with or arising out of the use of the information or programs contained or accompanying this technical report. The Unicode [Terms of Use](https://unicode.org/copyright.html) apply.
+
+Unicode and the Unicode logo are trademarks of Unicode, Inc., and are registered in some jurisdictions.
diff --git a/docs/ldml/tr35-general.html b/docs/ldml/tr35-general.html
deleted file mode 100644
index efd8733..0000000
--- a/docs/ldml/tr35-general.html
+++ /dev/null
@@ -1,5588 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"https://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
- <meta name="generator" content=
- "HTML Tidy for HTML5 for Apple macOS version 5.6.0">
- <meta http-equiv="Content-Type" content=
- "text/html; charset=utf-8">
- <meta http-equiv="Content-Language" content="en-us">
- <link rel="stylesheet" href=
- "../reports.css" type="text/css">
- <title>UTS #35: Unicode LDML: General</title>
- <style type="text/css">
- <!--
- .dtd {
- font-family: monospace;
- font-size: 90%;
- background-color: #CCCCFF;
- border-style: dotted;
- border-width: 1px;
- }
-
- .xmlExample {
- font-family: monospace;
- font-size: 80%
- }
-
- .blockedInherited {
- font-style: italic;
- font-weight: bold;
- border-style: dashed;
- border-width: 1px;
- background-color: #FF0000
- }
-
- .inherited {
- font-weight: bold;
- border-style: dashed;
- border-width: 1px;
- background-color: #00FF00
- }
-
- .element {
- font-weight: bold;
- color: red;
- }
-
- .attribute {
- font-weight: bold;
- color: maroon;
- }
-
- .attributeValue {
- font-weight: bold;
- color: blue;
- }
-
- li, p {
- margin-top: 0.5em;
- margin-bottom: 0.5em
- }
-
- h2, h3, h4, table {
- margin-top: 1.5em;
- margin-bottom: 0.5em;
- }
- -->
- </style>
-</head>
-<body>
- <table class="header" width="100%">
- <tr>
- <td class="icon"><a href="https://unicode.org"><img alt=
- "[Unicode]" src="../logo60s2.gif"
- width="34" height="33" style=
- "vertical-align: middle; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px; border-top-width: 0px;"></a>
- <a class="bar" href=
- "https://www.unicode.org/reports/">Technical Reports</a></td>
- </tr>
- <tr>
- <td class="gray"> </td>
- </tr>
- </table>
- <div class="body">
- <h2 style="text-align: center">Unicode Technical Standard #35</h2>
- <h1>Unicode Locale Data Markup Language (LDML)<br>
- Part 2: General</h1>
- <!-- At least the first row of this header table should be identical across the parts of this UTS. -->
- <table border="1" cellpadding="2" cellspacing="0" class="wide">
- <tr>
- <td>Version</td>
- <td>38</td>
- </tr>
- <tr>
- <td>Editors</td>
- <td>Yoshito Umaoka (<a href=
- "mailto:yoshito_umaoka@us.ibm.com">yoshito_umaoka@us.ibm.com</a>)
- and <a href="tr35.html#Acknowledgments">other CLDR
- committee members</a></td>
- </tr>
- </table>
- <p>For the full header, summary, and status, see <a href=
- "tr35.html">Part 1: Core</a></p>
- <h3><i>Summary</i></h3>
- <p>This document describes parts of an XML format
- (<i>vocabulary</i>) for the exchange of structured locale data.
- This format is used in the <a href=
- "https://unicode.org/cldr/">Unicode Common Locale Data
- Repository</a>.</p>
- <p>This is a partial document, describing general parts of the
- LDML: display names & transforms, etc. For the other parts
- of the LDML see the <a href="tr35.html">main LDML document</a>
- and the links above.</p>
- <h3><i>Status</i></h3>
-
- <!-- NOT YET APPROVED
- <p>
- <i class="changed">This is a<b><font color="#ff3333">
- draft </font></b>document which may be updated, replaced, or superseded by
- other documents at any time. Publication does not imply endorsement
- by the Unicode Consortium. This is not a stable document; it is
- inappropriate to cite this document as other than a work in
- progress.
- </i>
- </p>
- END NOT YET APPROVED -->
- <!-- APPROVED -->
- <p><i>This document has been reviewed by Unicode members and
- other interested parties, and has been approved for publication
- by the Unicode Consortium. This is a stable document and may be
- used as reference material or cited as a normative reference by
- other specifications.</i></p>
- <!-- END APPROVED -->
-
- <blockquote>
- <p><i><b>A Unicode Technical Standard (UTS)</b> is an
- independent specification. Conformance to the Unicode
- Standard does not imply conformance to any UTS.</i></p>
- </blockquote>
- <p><i>Please submit corrigenda and other comments with the CLDR
- bug reporting form [<a href="tr35.html#Bugs">Bugs</a>]. Related
- information that is useful in understanding this document is
- found in the <a href="tr35.html#References">References</a>. For
- the latest version of the Unicode Standard see [<a href=
- "tr35.html#Unicode">Unicode</a>]. For a list of current Unicode
- Technical Reports see [<a href=
- "tr35.html#Reports">Reports</a>]. For more information about
- versions of the Unicode Standard, see [<a href=
- "tr35.html#Versions">Versions</a>].</i></p>
- <!-- This section of Parts should be identical in all of the parts of this UTS. -->
- <h2><a name="Parts" href="#Parts" id="Parts">Parts</a></h2>
- <p>The LDML specification is divided into the following
- parts:</p>
- <ul class="toc">
- <li>Part 1: <a href="tr35.html#Contents">Core</a> (languages,
- locales, basic structure)</li>
- <li>Part 2: <a href="tr35-general.html#Contents">General</a>
- (display names & transforms, etc.)</li>
- <li>Part 3: <a href="tr35-numbers.html#Contents">Numbers</a>
- (number & currency formatting)</li>
- <li>Part 4: <a href="tr35-dates.html#Contents">Dates</a>
- (date, time, time zone formatting)</li>
- <li>Part 5: <a href=
- "tr35-collation.html#Contents">Collation</a> (sorting,
- searching, grouping)</li>
- <li>Part 6: <a href=
- "tr35-info.html#Contents">Supplemental</a> (supplemental
- data)</li>
- <li>Part 7: <a href=
- "tr35-keyboards.html#Contents">Keyboards</a> (keyboard
- mappings)</li>
- </ul>
- <h2><a name="Contents" href="#Contents" id="Contents">Contents
- of Part 2, General</a></h2>
- <!-- START Generated TOC: CheckHtmlFiles -->
- <ul class="toc">
- <li>1 <a href="#Display_Name_Elements">Display Name
- Elements</a>
- <ul class='toc'>
- <li>1.1 <a href="#locale_display_name_algorithm">Locale Display Name Algorithm</a></li>
- <li>1.2 <a href="#locale_display_name_fields">Locale Display Name Fields</a></li>
- </ul>
- </li>
- <li>2 <a href="#Layout_Elements">Layout Elements</a></li>
- <li>3 <a href="#Character_Elements">Character Elements</a>
- <ul class="toc">
- <li>3.1 <a href="#Exemplars">Exemplars</a>
- <ul class="toc">
- <li>3.1.1 <a href="#ExemplarSyntax">Exemplar
- Syntax</a></li>
- <li>3.1.2 <a href=
- "#Restrictions">Restrictions</a></li>
- </ul>
- </li>
- <li>3.2 <a href="#Character_Mapping">Mapping</a></li>
- <li>3.3 <a href="#IndexLabels">Index Labels</a></li>
- <li>3.4 <a href="#Ellipsis">Ellipsis</a></li>
- <li>3.5 <a href="#Character_More_Info">More
- Information</a></li>
- <li>3.6 <a href="#Character_Parse_Lenient">Parse
- Lenient</a></li>
- </ul>
- </li>
- <li>4 <a href="#Delimiter_Elements">Delimiter
- Elements</a></li>
- <li>5 <a href="#Measurement_System_Data">Measurement System
- Data</a>
- <ul class="toc">
- <li>5.1 <a href="#Measurement_Elements">Measurement
- Elements (deprecated)</a></li>
- </ul>
- </li>
- <li>6 <a href="#Unit_Elements">Unit Elements</a>
- <ul class="toc">
- <li>6.1 <a href="#Unit_Preference_and_Conversion">Unit Preference and Conversion Data</a></li>
- <li>6.2 <a href="#Unit_Identifiers">Unit Identifiers</a></li>
- <li>6.3 <a href="#Example_Units">Example Units</a></li>
- <li>6.4 <a href="#compound-units">Compound Units</a></li>
- <li>6.5 <a href="#Unit_Sequences">Unit Sequences (Mixed Units)</a></li>
- <li>6.6 <a href="#durationUnit">durationUnit</a></li>
- <li>6.7 <a href="#coordinateUnit">coordinateUnit</a></li>
- <li>6.8 <a href= "#Territory_Based_Unit_Preferences">Territory-Based Unit
- Preferences</a></li>
- </ul>
- </li>
- <li>7 <a href="#POSIX_Elements">POSIX Elements</a></li>
- <li>8 <a href="#Reference_Elements">Reference
- Element</a></li>
- <li>9 <a href="#Segmentations">Segmentations</a>
- <ul class="toc">
- <li>9.1 <a href="#Segmentation_Inheritance">Segmentation
- Inheritance</a></li>
- <li>9.2 <a href="#Segmentation_Exceptions">Segmentation
- Suppressions</a></li>
- </ul>
- </li>
- <li>10 <a href="#Transforms">Transforms</a>
- <ul class="toc">
- <li>10.1 <a href="#Inheritance">Inheritance</a>
- <ul class="toc">
- <li>10.1.1 <a href="#Pivots">Pivots</a></li>
- </ul>
- </li>
- <li>10.2 <a href="#Variants">Variants</a></li>
- <li>10.3 <a href="#Transform_Rules_Syntax">Transform
- Rules Syntax</a>
- <ul class="toc">
- <li>10.3.1 <a href="#Dual_Rules">Dual Rules</a></li>
- <li>10.3.2 <a href="#Context">Context</a></li>
- <li>10.3.3 <a href="#Revisiting">Revisiting</a></li>
- <li>10.3.4 <a href="#Example">Example</a></li>
- <li>10.3.5 <a href="#Rule_Syntax">Rule
- Syntax</a></li>
- <li>10.3.6 <a href="#Transform_Rules">Transform
- Rules</a></li>
- <li>10.3.7 <a href=
- "#Variable_Definition_Rules">Variable Definition
- Rules</a></li>
- <li>10.3.8 <a href="#Filter_Rules">Filter
- Rules</a></li>
- <li>10.3.9 <a href="#Conversion_Rules">Conversion
- Rules</a></li>
- <li>10.3.10 <a href=
- "#Intermixing_Transform_Rules_and_Conversion_Rules">Intermixing
- Transform Rules and Conversion Rules</a></li>
- <li>10.3.11 <a href="#Inverse_Summary">Inverse
- Summary</a></li>
- </ul>
- </li>
- </ul>
- </li>
- <li>11 <a href="#ListPatterns">List Patterns</a>
- <ul class="toc">
- <li>11.1 <a href="#List_Gender">Gender of Lists</a></li>
- </ul>
- </li>
- <li>12 <a href="#Context_Transform_Elements">ContextTransform
- Elements</a>
- <ul class="toc">
- <li>Table: <a href=
- "#contextTransformUsage_type_attribute_values">Element
- contextTransformUsage type attribute values</a></li>
- </ul>
- </li>
- <li>13 <a href="#Choice_Patterns">Choice Patterns</a></li>
- <li>14 <a href="#Annotations">Annotations and Labels</a>
- <ul class="toc">
- <li>14.1 <a href="#SynthesizingNames">Synthesizing
- Sequence Names</a></li>
- <li>14.2 <a href="#Character_Labels">Annotations
- Character Labels</a></li>
- <li>14.3 <a href="#Typographic_Names">Typographic
- Names</a></li>
- </ul>
- </li>
- <li>15 <a href="#Grammatical_Features">Grammatical Features</a>
- <ul class="toc">
- <li>15.1 <a href="#Gender" >Gender</a></li>
-<li>15.2 <a href="#Case">Case</a></li>
-</ul>
- </li>
- <li>16 <a href="#Grammatical_Derivations">Grammatical Derivations</a>
- <ul class="toc"><li>16.1<a href="#gender_compound_units">Deriving the Gender of Compound Units</a></li>
- <li>16.2 <a href="#plural_compound_units">Deriving the Plural Category of Unit Components</a></li>
- <li>16.3 <a href="#case_compound_units">Deriving the Case of Unit Components</a></li>
- </ul>
- </li>
- <li> </li>
- </ul>
- <h2>1 <a name="Display_Name_Elements" href=
- "#Display_Name_Elements" id="Display_Name_Elements">Display
- Name Elements</a></h2>
- <p class="dtd"><!ELEMENT localeDisplayNames ( alias | (
- localeDisplayPattern?, languages?, scripts?, territories?,
- subdivisions?, variants?, keys?, types?, transformNames?,
- measurementSystemNames?, codePatterns?, special* ) )></p>
- <p>Display names for scripts, languages, countries, currencies,
- and variants in this locale are supplied by this element. They
- supply localized names for these items for use in
- user-interfaces for various purposes such as displaying menu
- lists, displaying a language name in a dialog, and so on.
- Capitalization should follow the conventions used in the middle
- of running text; the <contextTransforms> element may be
- used to specify the appropriate capitalization for other
- contexts (see <i>Section 12 <a href=
- "#Context_Transform_Elements">ContextTransform Elements</a></i>
- ). Examples are given below.</p>
- <blockquote>
- <p class="note"><b>Note:</b> The "<span style=
- "color: blue">en</span>" locale may contain translated names
- for deprecated codes for debugging purposes. Translation of
- deprecated codes into other languages is discouraged.</p>
- </blockquote>
- <p>Where present, the display names must be unique; that is,
- two distinct code would not get the same display name. (There
- is one exception to this: in time zones, where parsing results
- would give the same GMT offset, the standard and daylight
- display names can be the same across different time zone
- IDs.)</p>
- <p>Any translations should follow customary practice for the
- locale in question. For more information, see [<a href=
- "tr35.html#DataFormats">Data Formats</a>].</p>
- <p class="element2"><localeDisplayPattern></p>
- <p class="dtd"><!ELEMENT localeDisplayPattern ( alias |
- (localePattern*, localeSeparator*, localeKeyTypePattern*,
- special*) ) ></p>
- <p>For compound language (locale) IDs such as "pt_BR" which
- contain additional subtags beyond the initial language code:
- When the <languages> data does not explicitly specify a
- display name such as "Brazilian Portuguese" for a given
- compound language ID, "Portuguese (Brazil)" from the display
- names of the subtags.</p>
- <p>It includes three sub-elements:</p>
- <ul>
- <li>The <localePattern> element specifies a pattern
- such as "{0} ({1})" in which {0} is replaced by the display
- name for the primary language subtag and {1} is replaced by a
- list of the display names for the remaining subtags.</li>
- <li>The <localeSeparator> element specifies a pattern
- such as "{0}, {1}" used when appending a subtag display name
- to the list in the <localePattern> subpattern {1}
- above. If that list includes more than one display name, then
- <localeSeparator> subpattern {1} represents a new
- display name to be appended to the current list in {0}.
- <em>Note: Before CLDR 24, the <localeSeparator> element
- specified a separator string such as ", ", not a
- pattern.</em></li>
- <li>The <localeKeyTypePattern> element specifies the
- pattern used to display key-type pairs, such as "{0}:
- {1}"</li>
- </ul>
- <p>For example, for the locale identifier
- zh_Hant_CN_co_pinyin_cu_USD, the display would be "Chinese
- (Traditional, China, Pinyin Sort Order, Currency: USD)". The
- key-type for co_pinyin doesn't use the localeKeyTypePattern
- because there is a translation for the key-type in English:</p>
- <blockquote>
- <p><type type="pinyin" key="collation">Pinyin Sort
- Order</type></p>
- </blockquote>
-
- <h3>1.1 <a href="#locale_display_name_algorithm" name="locale_display_name_algorithm">Locale Display Name Algorithm</a></h3>
-
- <p>A locale display name LDN is generated for a locale identifer L in the following way. First, canonicalize the locale identifier as per <strong><a href="tr35.html#Canonical_Unicode_Locale_Identifiers">Part 1, Section 3.2.1 Canonical Unicode Locale Identifiers</a></strong>. That will put the subtags in a defined order, and replace aliases by their canonical counterparts. (That defined order is followed in the processing below.) </p>
- <p>Then follow each of the following steps for the subtags in L, building a base name LDN and a list of qualifying strings LQS.</p>
- <p>Where there is a match for a subtag, disregard that subtag from L and add the element value to LDN or LQS as described bbelow. If there is no match for a subtag, use the fallback pattern with the subtag subtag instead.</p>
- <p>Once LDN and LQS are built, return the following based on the length of LQS. </p>
- <table class='simple'>
- <tr>
- <td>0</td>
- <td>return LDN</td>
- </tr>
- <tr>
- <td>1</td>
- <td>use the <localePattern> to compose the result LDN from LDN and LQS[0], and return it.</td>
- </tr>
- <tr>
- <td>>1</td>
- <td>use the <localeSeparator> element value to join the elements of the list into LDN2, then use the <localePattern> to compose the result LDN from LDN and LDN2, and return it.</td>
- </tr>
- </table>
-
- <p>The processing can be controled via the following parameters.</p>
- <ul>
- <li>CombineLanguage: boolean
- <ul>
- <li>Example: the CombineLanguage = true, picking the bold value below.</li>
- <li> <language type="nl">Dutch</language></li>
- <li><strong><language type="nl_BE">Flemish</language></strong></li>
- </ul>
- </li>
- <li>PreferAlt: map from element to preferrred alt value, picking the bold value below.
- <ul>
- <li>Example: the PreferAlt contains {"language"="short"}:</li>
- <li><language type="az">Azerbaijani</language></li>
- <li><strong><language type="az" alt="short">Azeri</language></strong></li>
- </ul>
- </li>
- </ul>
- <p> In addition, the input locale display name could be minimized (see <a href="tr35.html#Likely_Subtags">Part 1: Section 4.3 Likely Subtags</a>) before generating the LDN. Selective minimization is often the best choice. For example, in a menu list it is often clearer to show the region if there are any regional variants. Thus the user would just see ["Spanish"] for es if the latter is the only supported Spanish, but where es-MX is also listed, then see ["Spanish (Spain)", "Spanish (Mexico)"].</p>
- <hr>
- <p><strong>Processing types of locale identifier subtags</strong> </p>
- <p>When the display name contains "(" or ")" characters (or full-width equivalents), replace them "[", "]" (or full-width equivalents) before adding.</p>
- <ol>
- <li><strong>Language. </strong>Match the L subtags against the type values in the <language> elements. Pick the element with the most subtags matching. If there is more than one such element, pick the one that has subtypes matching earlier. If there are two such elements, pick the one that is alphabetically less. Set LBN to that value. Disregard any of the matching subtags in the following processing.
- <ul>
- <li>If CombineLanguage is false, only choose matches with the language subtag matching.</li>
- </ul>
- </li>
- <li><strong>Script, Region, Variants.</strong> Where any of these subtags are in L, append the matching element value to LQS.</li>
- <li><strong>T extensions. </strong>Get the value of the key="h0" type="hybrid" element, if there is one; otherwise the value of the <key type="t"> element. Next get the locale display name of the tlang. Join the pair using localePattern> and append to the LQS. Then format and add display names to LQS for any of the remaining tkey-tvalue pairs as described below.</li>
- <li><strong>U extensions. </strong>If there is an attribute value A, process the key-value pair <"u", A> as below and append to LQS. Then format and add display names for each of the remaining key-type pairs as described below.</li>
- <li><strong>Other extensions. </strong>There are currently no such extensions defined. Until such time as there are formats defined for them, append each of the extensions’s subtags to LQS.</li>
- <li><strong>Private Use extensions. </strong>Get the value </li>
- </ol>
- <p><strong>Formatting T/U Key-Value pairs as display names</strong></p>
- <ol>
- <li> If there is a match for the key/value, then append the element value and return.</li>
- <li>Otherwise, get the display name for the key, using the subtag if not available.</li>
- <li>Format special values. As usual, if lacking data, use the subtag(s).
- <ol>
- <li>key="kr": (REORDER_CODE) assume the value is a script code, and get its display name.</li>
- <li>key="dx": (SCRIPT_CODE) assume the value is a script code, and get its display name.</li>
- <li>key="vt": (CODEPOINTS, deprecated) the value is a list of code points. Set the value display name to it, after replacing [-_] by space.</li>
- <li>key="x0": (PRIVATE_USE) the value is a list of subtags. No formatting available, so use the subtag(s).</li>
- <li>key="sd": (SUBDIVISION_CODE) use the subdivision data to find the display name.</li>
- <li>key="rg": (RG_KEY_VALUE): handle as with key="sd"</li>
- </ol>
- </li>
- <li>Then use the value of the <localeKeyTypePattern> element to join the key display name and the value display name, and append the result to LQS. </li>
- </ol>
- <p><strong>Examples of English locale display names</strong></p>
- <table class='simple'>
- <tr>
- <th>Locale identifier</th>
- <th>Locale display name</th>
- </tr>
- <tr>
- <td>es</td>
- <td>Spanish</td>
- </tr>
- <tr>
- <td>es-419</td>
- <td>Spanish (Latin America)</td>
- </tr>
- <tr>
- <td>es-Cyrl-MX</td>
- <td>Spanish (Cyrillic, Mexico)</td>
- </tr>
- <tr>
- <td>en-Latn-GB-fonipa-scouse</td>
- <td>English (Latin, United Kingdom, IPA Phonetics, Scouse)</td>
- </tr>
- <tr>
- <td>en-u-nu-thai-ca-islamic-civil</td>
- <td>English (Calendar: islamic-civil, Thai Digits)</td>
- </tr>
- <tr>
- <td>hi-u-nu-latn-t-en-h0-hybrid</td>
- <td>Hindi (Hybrid: English, Western Digits)</td>
- </tr>
- <tr>
- <td>en-u-nu-deva-t-de</td>
- <td>English (Transform: German, Devanagari Digits)</td>
- </tr>
- <tr>
- <td>fr-z-zz-zzz-v-vv-vvv-u-uu-uuu-t-ru-Cyrl-s-ss-sss-a-aa-aaa-x-u-x</td>
- <td>French (Transform: Russian [Cyrillic], uu: uuu, a: aa-aaa, s: ss-sss, v: vv-vvv, x: u-x, z: zz-zzz)</td>
- </tr>
- </table><br>
- <h3>1.2 <a href="#locale_display_name_fields" name="locale_display_name_fields">Locale Display Name Fields</a></h3>
-
- <p class="element2"><languages></p>
- <p>This contains a list of elements that provide the
- user-translated names for language codes, as described in
- <i><a href=
- "tr35.html#Unicode_Language_and_Locale_Identifiers">Section 3,
- Unicode Language and Locale Identifiers</a></i>.</p>
- <blockquote>
- <pre><language type="<span style=
- "color: blue">ab</span>"><span style=
- "color: blue">Abkhazian</span></language>
-<language type="<span style=
-"color: blue">aa</span>"><span style=
-"color: blue">Afar</span></language>
-<language type="<span style=
-"color: blue">af</span>"><span style=
-"color: blue">Afrikaans</span></language>
-<language type="<span style=
-"color: blue">sq</span>"><span style=
-"color: blue">Albanian</span></language>
-</pre>
- </blockquote>
- <p>There should be no expectation that the list of languages
- with translated names be complete: there are thousands of
- languages that could have translated names. For debugging
- purposes or comparison, when a language display name is
- missing, the Description field of the language subtag registry
- can be used to supply a fallback English user-readable
- name.</p>
- <p>The type can actually be any locale ID as specified above.
- The set of which locale IDs is not fixed, and depends on the
- locale. For example, in one language one could translate the
- following locale IDs, and in another, fall back on the normal
- composition.</p>
- <table border="1" cellpadding="4" cellspacing="0">
- <tr>
- <th width="33%">type</th>
- <th width="33%">translation</th>
- <th width="34%">composition</th>
- </tr>
- <tr>
- <td width="33%">nl_BE</td>
- <td width="33%">Flemish</td>
- <td width="34%">Dutch (Belgium)</td>
- </tr>
- <tr>
- <td width="33%">zh_Hans</td>
- <td width="33%">Simplified Chinese</td>
- <td width="34%">Chinese (Simplified)</td>
- </tr>
- <tr>
- <td width="33%">en_GB</td>
- <td width="33%">British English</td>
- <td width="34%">English (United Kingdom)</td>
- </tr>
- </table>
- <p>Thus when a complete locale ID is formed by composition, the
- longest match in the language type is used, and the remaining
- fields (if any) added using composition.</p>
- <p>Alternate short forms may be provided for some languages
- (and for territories and other display names), for example.</p>
- <blockquote>
- <pre><language type="<span style=
- "color: blue">az</span>"><span style=
- "color: blue">Azerbaijani</span></language>
-<language type="<span style=
-"color: blue">az</span>" alt="<span style=
-"color: blue">short</span>"><span style=
-"color: blue">Azeri</span></language>
-<language type="<span style=
-"color: blue">en_GB</span>"><span style=
-"color: blue">British English</span></language>
-<language type="<span style=
-"color: blue">en_GB</span>" alt="<span style=
-"color: blue">short</span>"><span style=
-"color: blue">U.K. English</span></language>
-<language type="<span style=
-"color: blue">en_US</span>"><span style=
-"color: blue">American English</span></language>
-<language type="<span style=
-"color: blue">en_US</span>" alt="<span style=
-"color: blue">short</span>"><span style=
-"color: blue">U.S. English</span></language>
-</pre>
- </blockquote>
- <p class="element2"><scripts></p>
- <p>This element can contain an number of script elements. Each
- script element provides the localized name for a script code,
- as described in <i><a href=
- "tr35.html#Unicode_Language_and_Locale_Identifiers">Section 3,
- Unicode Language and Locale Identifiers</a></i> (see also
- <i>UAX #24: Script Names</i> [<a href=
- "https://www.unicode.org/reports/tr41/#UAX24">UAX24</a>]). For
- example, in the language of this locale, the name for the Latin
- script might be "Romana", and for the Cyrillic script is
- "Kyrillica". That would be expressed with the following.</p>
- <blockquote>
- <pre><script type="<span style=
- "color: blue">Latn</span>"><span style=
- "color: blue">Romana</span></script>
-<script type="<span style=
-"color: blue">Cyrl</span>"><span style=
-"color: blue">Kyrillica</span></script>
-</pre>
- </blockquote>
- <p>The script names are most commonly used in conjunction with
- a language name, using the <localePattern> combining
- pattern, and the default form of the script name should be
- suitable for such use. When a script name requires a different
- form for stand-alone use, this can be specified using the
- "stand-alone" alternate:</p>
- <blockquote>
- <pre><script type="<span style=
- "color: blue">Hans</span>"><span style=
- "color: blue">Simplified</span></script>
-<script type="<span style=
-"color: blue">Hans</span>" alt="<span style=
-"color: blue">stand-alone</span>"><span style=
-"color: blue">Simplified Han</span></script>
-<script type="<span style=
-"color: blue">Hant</span>"><span style=
-"color: blue">Traditional</span></script>
-<script type="<span style=
-"color: blue">Hant</span>" alt="<span style=
-"color: blue">stand-alone</span>"><span style=
-"color: blue">Traditional Han</span></script>
-</pre>
- </blockquote>
- <p>This will produce results such as the following:</p>
- <ul>
- <li>Display name of language + script, using
- <localePattern>: “Chinese (Simplified)”</li>
- <li>Display name of script alone, using
- <localePattern>: “Simplified Han”</li>
- </ul>
- <p class="element2"><territories></p>
- <p>This contains a list of elements that provide the
- user-translated names for territory codes, as described in
- <i><a href=
- "tr35.html#Unicode_Language_and_Locale_Identifiers">Section 3,
- Unicode Language and Locale Identifiers</a></i>.</p>
- <blockquote>
- <pre><territory type="<span style=
- "color: blue">AD</span>"><span style=
- "color: blue">Andorra</span></territory>
-<territory type="<span style=
-"color: blue">AF</span>"><span style=
-"color: blue">Afghanistan</span></territory>
-<territory type="<span style=
-"color: blue">AL</span>"><span style=
-"color: blue">Albania</span></territory>
-<territory type="<span style=
-"color: blue">AO</span>"><span style=
-"color: blue">Angola</span></territory>
-<territory type="<span style=
-"color: blue">DZ</span>"><span style=
-"color: blue">Algeria</span></territory>
-<territory type="<span style=
-"color: blue">GB</span>"><span style=
-"color: blue">United Kingdom</span></territory>
-<territory type="<span style=
-"color: blue">GB</span>" alt="<span style=
-"color: blue">short</span>"><span style=
-"color: blue">U.K.</span></territory>
-<territory type="<span style=
-"color: blue">US</span>"><span style=
-"color: blue">United States</span></territory>
-<territory type="<span style=
-"color: blue">US</span>" alt="<span style=
-"color: blue">short</span>"><span style=
-"color: blue">U.S.</span></territory>
-</pre>
- </blockquote>
- <p class="element2"><variants></p>
- <p>This contains a list of elements that provide the
- user-translated names for the <i>variant_code</i> values
- described in <i><a href=
- "tr35.html#Unicode_Language_and_Locale_Identifiers">Section 3,
- Unicode Language and Locale Identifiers</a></i> .</p>
- <blockquote>
- <pre><variant type="<span style=
- "color: blue">nynorsk</span>"><span style=
- "color: blue">Nynorsk</span></variant>
-</pre>
- </blockquote>
- <p class="element2"><keys></p>
- <p>This contains a list of elements that provide the
- user-translated names for the <i>key</i> values described in
- <i><a href=
- "tr35.html#Unicode_Language_and_Locale_Identifiers">Section 3,
- Unicode Language and Locale Identifiers</a></i>.</p>
- <blockquote>
- <pre><key type="<span style=
- "color: blue">collation</span>"><span style=
- "color: blue">Sortierung</span></key></pre>
- </blockquote>
- <p>Note that the <strong>type</strong> values may use aliases. Thus if the locale u-extension key "co" does not match, then the aliases have to be tried, using the bcp47 XML data:</p>
- <blockquote>
- <p> <key name="<strong>co</strong>" description="…" alias="<strong>collation</strong>"></p>
- </blockquote>
- <p class="element2"><types></p>
- <p>This contains a list of elements that provide the
- user-translated names for the <i>type</i> values
- described in <i><a href=
- "tr35.html#Unicode_Language_and_Locale_Identifiers">Section 3,
- Unicode Language and Locale Identifiers</a></i> . Since the
- translation of an option name may depend on the <i>key</i> it
- is used with, the latter is optionally supplied.</p>
- <blockquote>
- <pre><type type="<span style=
- "color: blue">phonebook</span>" key="<span style=
- "color: blue">collation</span>"><span style=
- "color: blue">Telefonbuch</span></type>
-</pre>
- </blockquote>
- <p>Note that the <strong>key</strong> and <strong>type</strong> values may use aliases. Thus if the locale u-extension key "co" does not match, then the aliases have to be tried, using the bcp47 XML data.</p>
- <blockquote>
- <p><key name="<strong>co</strong>" description="…" alias="<strong>collation</strong>"></p>
- <p> <type name="<strong>phonebk</strong>" description="…" alias="<strong>phonebook</strong>"/></p>
- </blockquote>
- <p class="element2"><measurementSystemNames></p>
- <p>This contains a list of elements that provide the
- user-translated names for systems of measurement. The types
- currently supported are "<span style="color: blue">US</span>",
- "<span style="color: blue">metric</span>", and "<span style=
- "color: blue">UK</span>".</p>
- <blockquote>
- <pre><measurementSystemName type="<span style=
- "color: blue">US</span>"><span style=
- "color: blue">U.S.</span></type>
-</pre>
- </blockquote>
- <p class="note"><b>Note:</b> In the future, we may need to add
- display names for the particular measurement units (millimeter
- versus millimetre versus whatever the Greek, Russian, etc are),
- and a message format for positioning those with respect to
- numbers. For example, "{number} {unitName}" in some languages,
- but "{unitName} {number}" in others.</p>
- <p class="element2"><transformNames></p>
- <p> </p>
- <blockquote>
- <pre><transformName type="<span style=
- "color: blue">Numeric</span>"><span style=
- "color: blue">Numeric</span></type>
-</pre>
- </blockquote>
- <p class="element2"><codePatterns></p>
- <blockquote>
- <pre><codePattern type="<span style=
- "color: blue">language</span>"><span style=
- "color: blue">Language: {0}</span></type>
-</pre>
- </blockquote>
- <p class="dtd"><!ELEMENT subdivisions ( alias | (
- subdivision | special )* ) ><br>
- <!ELEMENT subdivision ( #PCDATA )></p>
- <p>Note that the subdivision names are in separate files, in
- the subdivisions/ directory. The type values are the fully
- qualified subdivsion names. For example:</p>
- <p class="xmlExample"><subdivision type="AL-04">Fier
- County</subdivision><br>
- <subdivision type="AL-FR">Fier</subdivision>
- <!-- in AL-04 : Fier County --><br>
- <subdivision type="AL-LU">Lushnjë</subdivision>
- <!-- in AL-04 : Fier County --><br>
- <subdivision type="AL-MK">Mallakastër</subdivision>
- <!-- in AL-04 : Fier County --></p>
- <p>See also <strong>Part 6</strong> <em>Section 2.1.1 <a href=
- "tr35-info.html#Subdivision_Containment">Subdivision
- Containment</a></em>.</p>
- <h2>2 <a name="Layout_Elements" href="#Layout_Elements" id=
- "Layout_Elements">Layout Elements</a></h2>
- <p class="dtd"><!ELEMENT layout ( alias | (orientation*,
- inList*, inText*, special*) ) ></p>
- <p>This top-level element specifies general layout features. It
- currently only has one possible element (other than
- <special>, which is always permitted).</p>
- <p class="dtd"><!ELEMENT orientation ( characterOrder*,
- lineOrder*, special* ) ><br>
- <!ELEMENT characterOrder ( #PCDATA ) ><br>
- <!ELEMENT lineOrder ( #PCDATA ) ></p>
- <p>The lineOrder and characterOrder elements specify the
- default general ordering of lines within a page, and characters
- within a line. The possible values are:</p>
- <table>
- <tr>
- <th>Direction</th>
- <th>Value</th>
- </tr>
- <tr>
- <td rowspan="2">Vertical</td>
- <td>top-to-bottom</td>
- </tr>
- <tr>
- <td>bottom-to-top</td>
- </tr>
- <tr>
- <td rowspan="2">Horizontal</td>
- <td>left-to-right</td>
- </tr>
- <tr>
- <td>right-to-left</td>
- </tr>
- </table>
- <p>If the value of lineOrder is one of the vertical values,
- then the value of characterOrder must be one of the horizontal
- values, and vice versa. For example, for English the lines are
- top-to-bottom, and the characters are left-to-right. For
- Mongolian (in the Mongolian Script) the lines are
- right-to-left, and the characters are top to bottom. This does
- not override the ordering behavior of bidirectional text; it
- does, however, supply the paragraph direction for that text
- (for more information, see <i>UAX #9: The Bidirectional
- Algorithm</i> [<a href=
- "https://www.unicode.org/reports/tr41/#UAX9">UAX9</a>]).</p>
- <p>For dates, times, and other data to appear in the right
- order, the display for them should be set to the orientation of
- the locale.</p>
- <p><inList> (deprecated)</p>
- <p>The <inList> element is deprecated and has been
- superseded by the <contextTransforms> element; see
- <i>Section 12 <a href=
- "#Context_Transform_Elements">ContextTransform Elements</a></i>
- .</p>
- <p>This element controls whether display names (language,
- territory, etc) are title cased in GUI menu lists and the like.
- It is only used in languages where the normal display is lower
- case, but title case is used in lists. There are two
- options:</p>
- <pre><inList casing="titlecase-words"></pre>
- <pre><inList casing="titlecase-firstword"></pre>
- <p>In both cases, the title case operation is the default title
- case function defined by Chapter 3 of <i>[<a href=
- "tr35.html#Unicode">Unicode</a>]</i> . In the second case, only
- the first word (using the word boundaries for that locale) will
- be title cased. The results can be fine-tuned by using
- alt="list" on any element where titlecasing as defined by the
- Unicode Standard will produce the wrong value. For example,
- suppose that "turc de Crimée" is a value, and the title case
- should be "Turc de Crimée". Then that can be expressed using
- the alt="list" value.</p>
- <p><inText> (deprecated)</p>
- <p>The <inList> element is deprecated and has been
- superseded by the <contextTransforms> element; see
- <i>Section 12 <a href=
- "#Context_Transform_Elements">ContextTransform Elements</a></i>
- .</p>
- <p>This element indicates the casing of the data in the
- category identified by the inText type attribute, when that
- data is written in text or how it would appear in a dictionary.
- For example :</p>
- <pre>
- <inText type="languages">lowercase-words</inText></pre>
- <p>indicates that language names embedded in text are normally
- written in lower case. The possible values and their meanings
- are :</p>
- <ul>
- <li>titlecase-words : all words in the phrase should be title
- case</li>
- <li>titlecase-firstword : the first word should be title
- case</li>
- <li>lowercase-words : all words in the phrase should be lower
- case</li>
- <li>mixed : a mixture of upper and lower case is permitted.
- generally used when the correct value is unknown.</li>
- </ul>
- <h2>3 <a name="Character_Elements" href="#Character_Elements"
- id="Character_Elements">Character Elements</a></h2>
- <p class="dtd"><!ELEMENT characters ( alias | (
- exemplarCharacters*, ellipsis*, moreInformation*, stopwords*,
- indexLabels*, mapping*, parseLenients*, special* ) ) ></p>
- <p>The <characters> element provides optional information
- about characters that are in common use in the locale, and
- information that can be helpful in picking resources or data
- appropriate for the locale, such as when choosing among
- character encodings that are typically used to transmit data in
- the language of the locale. It may also be used to help reduce
- confusability issues: see [<a href=
- "https://www.unicode.org/reports/tr41/#UTR36">UTR39</a>]. It
- typically only occurs in a language locale, not in a
- language/territory locale. The stopwords are an experimental
- feature, and should not be used.</p>
- <h3>3.1 <a name="Exemplars" href="#Exemplars" id=
- "Exemplars">Exemplars</a></h3>
- <p>Exemplars are characters used by a language, separated into
- different categories. The following table provides a summary,
- with more details below.</p>
- <table>
- <tr>
- <th scope="col">Type</th>
- <th scope="col">Description</th>
- <th scope="col">Examples</th>
- </tr>
- <tr>
- <td>main / standard</td>
- <td>Main letters used in the language</td>
- <td style=
- "font-family: Georgia, 'Times New Roman', Times, serif">a-z
- å æ ø</td>
- </tr>
- <tr>
- <td><span class="element2">auxiliary</span></td>
- <td>Additional characters for common foreign words,
- technical usage</td>
- <td style=
- "font-family: Georgia, 'Times New Roman', Times, serif">á à
- ă â å ä ã ā æ ç é è ĕ ê ë ē í ì ĭ î ï ī ñ ó ò ŏ ô ö ø ō œ ú
- ù ŭ û ü ū ÿ</td>
- </tr>
- <tr>
- <td><span class="element2">index</span></td>
- <td>Characters for the header of an index</td>
- <td style=
- "font-family: Georgia, 'Times New Roman', Times, serif">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</td>
- </tr>
- <tr>
- <td>punctuation</td>
- <td>Common punctuation</td>
- <td style=
- "font-family: Georgia, 'Times New Roman', Times, serif">- ‐
- – — , ; \: ! ? . … “ ” ‘ ’ ( ) [ ] § @ * / & # † ‡ ′
- ″</td>
- </tr>
- <tr>
- <td>numbers</td>
- <td>The characters needed to display the common number
- formats: decimal, percent, and currency.</td>
- <td style=
- "font-family: Georgia, 'Times New Roman', Times, serif">
- [\u061C\u200E \- , ٫ ٬ . % ٪ ‰ ؉ + 0٠ 1١ 2٢ 3٣ 4٤ 5٥ 6٦ 7٧
- 8٨ 9٩]</td>
- </tr>
- </table>
- <p>The basic exemplar character sets (main and auxiliary)
- contain the commonly used letters for a given modern form of a
- language, which can be for testing and for determining the
- appropriate repertoire of letters for charset conversion or
- collation. ("Letter" is interpreted broadly, as anything having
- the property Alphabetic in the [<a href=
- "https://unicode.org/reports/tr41/#UAX44">UAX44</a>], which also
- includes syllabaries and ideographs.) It is not a complete set
- of letters used for a language, nor should it be considered to
- apply to multiple languages in a particular country.
- Punctuation and other symbols should not be included in the
- main and auxiliary sets. In particular, format characters like
- CGJ are not included.</p>
- <p>There are five sets altogether: main, auxiliary,
- punctuation, numbers, and index. The <i>main</i> set should
- contain the minimal set required for users of the language,
- while the <i>auxiliary</i> exemplar set is designed to
- encompass additional characters: those non-native or historical
- characters that would customarily occur in common publications,
- dictionaries, and so on. Major style guidelines are good
- references for the auxiliary set. So, for example, if Irish
- newspapers and magazines would commonly have Danish names using
- å, for example, then it would be appropriate to include å in
- the auxiliary exemplar characters; just not in the main
- exemplar set. Thus English has the following:</p>
- <p><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]</exemplarCharacters><br>
- <exemplarCharacters type="auxiliary">[á à ă â å ä ã ā æ ç
- é è ĕ ê ë ē í ì ĭ î ï ī ñ ó ò ŏ ô ö ø ō œ ú ù ŭ û ü ū
- ÿ]</exemplarCharacters></p>
- <p>For a given language, there are a few factors that help for
- determining whether a character belongs in the auxiliary set,
- instead of the main set:</p>
- <ul>
- <li>The character is not available on all normal
- keyboards.</li>
- <li>It is acceptable to always use spellings that avoid that
- character.</li>
- </ul>
- <p>For example, the exemplar character set for en (English) is
- the set [a-z]. This set does not contain the accented letters
- that are sometimes seen in words like "résumé" or "naïve",
- because it is acceptable in common practice to spell those
- words without the accents. The exemplar character set for fr
- (French), on the other hand, must contain those characters:
- [a-z é è ù ç à â ê î ô û æ œ ë ï ÿ]. The main set typically
- includes those letters commonly "alphabet".</p>
- <p>The <em>punctuation</em> set consists of common punctuation
- characters that are used with the language (corresponding to
- main and auxiliary). Symbols may also be included where they
- are common in plain text, such as ©. It does not include
- characters with narrow technical usage, such as dictionary
- punctuation/symbols or copy-edit symbols. For example, English
- would have something like the following:</p>
- <blockquote>
- - ‐ – —<br>
- , ; : ! ? . …<br>
- ' ‘ ’ " “ ” ′ ″<br>
- ( ) [ ] { } ⟨ ⟩<br>
- © ® ™ @ & ° ‧ ·/ # % ¶ § * † ‡<br>
- + − ± × ÷ < ≤ = ≅ ≥ > √<br>
- </blockquote>
- <p>The numbers exemplars does not currently include lesser-used
- characters: exponential notation (3.1 × 10²³, ∞, NAN). Nor does
- it contain the units or currency symbols such as $, ¥, ₹,… It
- does contain %, because that occurs in the percent format. It
- may contain some special formatting characters like the RLM. A
- full list of the currency symbols used with that locale are in
- the <currencies> element, while the units can be gotten
- from the <units> element (both using inheritance, of
- course).The digits used in each numbering system are accessed
- in numberingSystems.xml. For more information, see
- <em><strong>Part 3: <a href=
- "tr35-numbers.html#Contents">Numbers</a></strong> , Section
- 2 <a href="tr35-numbers.html#Number_Elements">Number
- Elements</a></em>.</p>
- <p><em>Examples for zh.xml:</em></p>
- <table>
- <tr>
- <th scope="col">Type</th>
- <th scope="col">Description</th>
- </tr>
- <tr>
- <td>defaultNumberingSystem</td>
- <td>latn</td>
- </tr>
- <tr>
- <td>otherNumberingSystems/native</td>
- <td>hanidec</td>
- </tr>
- <tr>
- <td>otherNumberingSystems/traditional</td>
- <td>hans</td>
- </tr>
- <tr>
- <td>otherNumberingSystems/finance</td>
- <td>hansfin</td>
- </tr>
- </table>
- <p>When determining the character repertoire needed to support
- a language, a reasonable initial set would include at least the
- characters in the main and punctuation exemplar sets, along
- with the digits and common symbols associated with the
- numberSystems supported for the locale (see <i><a href=
- "tr35-numbers.html#Numbering_Systems">Numbering
- Systems</a></i>).</p>
- <p>The <em>index</em> characters are a set of characters for
- use as a UI "index", that is, a list of clickable characters
- (or character sequences) that allow the user to see a segment
- of a larger "target" list. For details see the <a href=
- "tr35-collation.html#Collation_Indexes">Unicode LDML:
- Collation</a> document. The index set may only contain
- characters whose lowercase versions are in the main and
- auxiliary exemplar sets, though for cased languages the index
- exemplars are typically in uppercase. Characters from the
- auxiliary exemplar set may be necessary in the index set if it
- needs to properly handle items such as names which may require
- characters not included in the main exemplar set.</p>
- <p>Here is a sample of the XML structure:</p>
- <pre>
- <exemplarCharacters type="index">[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]</exemplarCharacters></pre>
- <p>The display of the index characters can be modified with the
- Index labels elements, discussed in Section 5.6.4.</p>
- <h4>3.1.1 <a name="ExemplarSyntax" href="#ExemplarSyntax" id=
- "ExemplarSyntax">Exemplar Syntax</a></h4>
- <p>In all of the exemplar characters, the list of characters is
- in the <a href="tr35.html#Unicode_Sets">Unicode Set</a> format,
- which normally allows boolean combinations of sets of letters
- and Unicode properties.</p>
- <p>Sequences of characters that act like a single letter in the
- language — especially in collation — are included within
- braces, such as [a-z á é í ó ú ö ü ő ű {cs} {dz} {dzs} {gy}
- ...]. The characters should be in normalized form (NFC). Where
- combining marks are used generatively, and apply to a large
- number of base characters (such as in Indic scripts), the
- individual combining marks should be included. Where they are
- used with only a few base characters, the specific combinations
- should be included. Wherever there is not a precomposed
- character (for example, single codepoint) for a given
- combination, that must be included within braces. For example,
- to include sequences from the <a href=
- "https://unicode.org/standard/where/">Where is my Character?</a>
- page on the Unicode site, one would write: [{ch} {tʰ} {x̣} {ƛ̓}
- {ą́} {i̇́} {ト゚}], but for French one would just write [a-z é è
- ù ...]. When in doubt use braces, since it does no harm to
- include them around single code points: for example, [a-z {é}
- {è} {ù} ...].</p>
- <p>If the letter 'z' were only ever used in the combination
- 'tz', then we might have [a-y {tz}] in the main set. (The
- language would probably have plain 'z' in the auxiliary set,
- for use in foreign words.) If combining characters can be used
- productively in combination with a large number of others (such
- as say Indic matras), then they are not listed in all the
- possible combinations, but separately, such as:</p>
- <blockquote>
- [ॐ ऄ-ऋ ॠ ऌ ॡ ऍ-क क़ ख ख़ ग ग़ घ-ज ज़ झ-ड ड़ ढ ढ़ ण-फ फ़ ब-य
- य़ र-ह ़ ँ-ः ॑-॔ ऽ ् ॽ ा-ॄ ॢ ॣ ॅ-ौ]
- </blockquote>
- <p>The exemplar character set for Han characters is composed
- somewhat differently. It is even harder to draw a clear line
- for Han characters, since usage is more like a frequency curve
- that slowly trails off to the right in terms of decreasing
- frequency. So for this case, the exemplar characters simply
- contain a set of reasonably frequent characters for the
- language.</p>
- <p>The ordering of the characters in the set is irrelevant, but
- for readability in the XML file the characters should be in
- sorted order according to the locale's conventions. The main
- and auxiliary sets should only contain lower case characters
- (except for the special case of Turkish and similar languages,
- where the dotted capital I should be included); the upper case
- letters are to be mechanically added when the set is used. For
- more information on casing, see the discussion of Special
- Casing in the Unicode Character Database.</p>
- <h4>3.1.2 <a name="Restrictions" href="#Restrictions" id=
- "Restrictions">Restrictions</a></h4>
- <ol>
- <li>The main, auxiliary and index sets are normally
- restricted to those letters with a specific <a href=
- "https://unicode.org/Public/UNIDATA/Scripts.txt">Script</a>
- character property (that is, not the values Common or
- Inherited) or required <a href=
- "https://unicode.org/Public/UNIDATA/DerivedCoreProperties.txt">
- Default_Ignorable_Code_Point</a> characters (such as a
- non-joiner), or combining marks, or the <a href=
- "https://www.unicode.org/Public/UNIDATA/auxiliary/WordBreakProperty.txt">
- Word_Break</a> properties <a name="Katakana" href="#Katakana"
- id="Katakana">Katakana</a>, <a name="ALetter" href="#ALetter"
- id="ALetter">ALetter</a>, or <a name="MidLetter" href=
- "#MidLetter" id="MidLetter">MidLetter</a>.</li>
- <li>The auxiliary set should not overlap with the main set.
- There is one exception to this: Hangul Syllables and CJK
- Ideographs can overlap between the sets.</li>
- <li>Any <a href=
- "https://unicode.org/Public/UNIDATA/DerivedCoreProperties.txt">
- Default_Ignorable_Code_Point</a>s should be in the auxiliary
- set , or, if they are only needed for currency formatting, in
- the currency set. These can include characters such as U+200E
- LEFT-TO-RIGHT MARK and U+200F RIGHT-TO-LEFT MARK which may be
- needed in bidirectional text in order for date, currency or
- other formats to display correctly.</li>
- <li>For exemplar characters the <a href=
- "tr35.html#Unicode_Sets">Unicode Set</a> format is restricted
- so as to not use properties or boolean combinations .</li>
- </ol>
- <h3>3.2 <a name="Character_Mapping" href="#Character_Mapping"
- id="Character_Mapping">Mapping</a></h3>
- <p><b>This element has been deprecated.</b> For information on
- its structure and how it was intended to specify
- locale-specific preferred encodings for various purposes
- (e-mail, web), see the <a href=
- "https://www.unicode.org/reports/tr35/tr35-39/tr35-general.html#Character_Mapping">
- Mapping</a> section from the CLDR 27 version of the LDML
- Specification.</p>
- <h3>3.3 <a name="IndexLabels" href="#IndexLabels" id=
- "IndexLabels">Index Labels</a></h3>
- <p><b>This element and its subelements have been
- deprecated.</b> For information on its structure and how it was
- intended to provide data for a compressed display of index
- exemplar characters where space is limited, see the <a href=
- "https://www.unicode.org/reports/tr35/tr35-39/tr35-general.html#IndexLabels">
- Index Labels</a> section from the CLDR 27 version of the LDML
- Specification.</p>
- <p class="dtd"><!ELEMENT indexLabels (indexSeparator*,
- compressedIndexSeparator*, indexRangePattern*,
- indexLabelBefore*, indexLabelAfter*, indexLabel*) ></p>
- <h3>3.4 <a name="Ellipsis" href="#Ellipsis" id=
- "Ellipsis">Ellipsis</a></h3>
- <p class="dtd"><!ELEMENT ellipsis ( #PCDATA ) ><br>
- <!ATTLIST ellipsis type ( initial | medial | final |
- word-initial | word-medial | word-final ) #IMPLIED ></p>
- <p>The ellipsis element provides patterns for use when
- truncating strings. There are three versions: initial for
- removing an initial part of the string (leaving final
- characters); medial for removing from the center of the string
- (leaving initial and final characters), and final for removing
- a final part of the string (leaving initial characters). For
- example, the following uses the ellipsis character in all three
- cases (although some languages may have different characters
- for different positions).</p>
- <p><code><ellipsis
- type="initial">…{0}</ellipsis><br>
- <ellipsis type="medial">{0}…{1}</ellipsis><br>
- <ellipsis type="final">{0}…</ellipsis></code></p>
- <p>There are alternatives for cases where the breaks are on a
- word boundary, where some languages include a space. For
- example, such as case would be:</p>
- <p><code><ellipsis type="word-initial">…
- {0}</ellipsis></code></p>
- <h3>3.5 <a name="Character_More_Info" href=
- "#Character_More_Info" id="Character_More_Info">More
- Information</a></h3>
- <p>The moreInformation string is one that can be displayed in
- an interface to indicate that more information is available.
- For example:</p>
- <p><moreInformation>?</moreInformation></p>
- <h3>3.6 <a name="Character_Parse_Lenient" href=
- "#Character_Parse_Lenient" id="Character_Parse_Lenient">Parse
- Lenient</a></h3>
- <p class='dtd'><!ELEMENT parseLenients ( alias | (
- parseLenient*, special* ) ) ><br>
- <!ATTLIST parseLenients scope (general | number | date)
- #REQUIRED ><br>
- <!ATTLIST parseLenients level (lenient | stricter) #REQUIRED
- ></p>
- <p class='dtd'><!ELEMENT parseLenient ( #PCDATA ) ><br>
- <!ATTLIST parseLenient sample CDATA #REQUIRED ><br>
- <!ATTLIST parseLenient alt NMTOKENS #IMPLIED ><br>
- <!ATTLIST parseLenient draft (approved | contributed |
- provisional | unconfirmed) #IMPLIED ><br></p>
- <p>Example:</p>
- <pre><parseLenients scope="date" level="lenient">
- <parseLenient sample="-">[\-./]</parseLenient>
- <parseLenient sample=":">[\:∶]</parseLenient>
-</parseLenients></pre>
- <p>The parseLenient elements are used to indicate that
- characters within a particular UnicodeSet are normally to be
- treated as equivalent when doing a lenient parse. The
- <strong>scope</strong> attribute value defines where the
- lenient sets are intended for use. The <strong>level</strong>
- attribute value is included for future expansion; currently the
- only value is "lenient".</p>
- <p>The <strong>sample</strong> attribute value is a paradigm
- element of that UnicodeSet, but the only reason for pulling it
- out separately is so that different classes of characters are
- separated, and to enable inheritance overriding. The first
- version of this data is populated with the data used for
- lenient parsing from ICU.</p>
- <h2>4 <a name="Delimiter_Elements" href="#Delimiter_Elements"
- id="Delimiter_Elements">Delimiter Elements</a></h2>
- <p class="dtd"><!ELEMENT delimiters (alias |
- (quotationStart*, quotationEnd*, alternateQuotationStart*,
- alternateQuotationEnd*, special*)) ></p>
- <p>The delimiters supply common delimiters for bracketing
- quotations. The quotation marks are used with simple quoted
- text, such as:</p>
- <blockquote>
- <p>He said, “Don’t be absurd!”</p>
- </blockquote>
- <p>When quotations are nested, the quotation marks and
- alternate marks are used in an alternating fashion:</p>
- <blockquote>
- <p>He said, “Remember what the Mad Hatter said: ‘Not the same
- thing a bit! Why you might just as well say that “I see what
- I eat” is the same thing as “I eat what I see”!’”</p>
- </blockquote>
- <p><code><quotationStart></code> <span style=
- "color: blue">“</span> <code></quotationStart></code><br>
- <code><quotationEnd></code> <span style=
- "color: blue">”</span> <code></quotationEnd></code><br>
- <code><alternateQuotationStart></code> <span style=
- "color: blue">‘</span>
- <code></alternateQuotationStart></code><br>
- <code><alternateQuotationEnd></code> <span style=
- "color: blue">’</span>
- <code></alternateQuotationEnd></code></p>
- <h2>5 <a name="Measurement_System_Data" href=
- "#Measurement_System_Data" id=
- "Measurement_System_Data">Measurement System Data</a></h2>
- <p class="dtd"><!ELEMENT measurementData (
- measurementSystem*, paperSize* ) ><br>
- <br>
- <!ELEMENT measurementSystem EMPTY ><br>
- <!ATTLIST measurementSystem type ( metric | US | UK )
- #REQUIRED ><br>
- <!ATTLIST measurementSystem category ( temperature )
- #IMPLIED ><br>
- <!ATTLIST measurementSystem territories NMTOKENS #REQUIRED
- ><br>
- <br>
- <!ELEMENT paperSize EMPTY ><br>
- <!ATTLIST paperSize type ( A4 | US-Letter ) #REQUIRED
- ><br>
- <!ATTLIST paperSize territories NMTOKENS #REQUIRED ></p>
- <p>The measurement system is the normal measurement system in
- common everyday use (except for date/time). For example:</p>
- <pre><measurementData>
- <measurementSystem type="metric" territories="001"/>
- <measurementSystem type="US" territories="LR MM US"/>
- <measurementSystem type="metric" category="temperature" territories="LR MM"/>
- <measurementSystem type="US" category="temperature" territories="BS BZ KY PR PW"/>
- <measurementSystem type="UK" territories="GB"/>
- <paperSize type="A4" territories="001"/>
- <paperSize type="US-Letter" territories="BZ CA CL CO CR GT MX NI PA PH PR SV US VE"/>
-</measurementData></pre>
- <p>The values are "metric", "US", or "UK"; others may be added
- over time.</p>
- <ul>
- <li>The "metric" value indicates the use of SI [<a href=
- "tr35.html#ISO1000">ISO1000</a>] base or derived units, or
- non-SI units accepted for use with SI: for example, meters,
- kilograms, liters, and degrees Celsius.</li>
- <li>The "US" value indicates the customary system of
- measurement as used in the United States: feet, inches,
- pints, quarts, degrees Fahrenheit, and so on.</li>
- <li>The "UK" value indicates the mix of metric units and
- Imperial units (feet, inches, pints, quarts, and so on) used
- in the United Kingdom, in which Imperial volume units such as
- pint, quart, and gallon are different sizes than in the "US"
- customary system. For more detail about specific units for
- various usages, see <strong>Part 6: Supplemental:</strong>
- <em>Section 2.4.1 <a href=
- "tr35-info.html#Preferred_Units_For_Usage">Preferred Units
- for Specific Usages</a></em>.</li>
- </ul>
- <p>In some cases, it may be common to use different measurement
- systems for different categories of measurements. For example,
- the following indicates that for the category of temperature,
- in the regions LR and MM, it is more common to use metric units
- than US units.</p>
- <pre>
- <measurementSystem type="metric" category="temperature" territories="LR MM"/>
- </pre>
- <p>The paperSize attribute gives the height and width of paper
- used for normal business letters. The values are "A4" and
- "US-Letter".</p>
- <p>For both measurementSystem entries and paperSize entries,
- later entries for specific territories such as "US" will
- override the value assigned to that territory by earlier
- entries for more inclusive territories such as "001".</p>
- <p>The measurement information was formerly in the main LDML
- file, and had a somewhat different format.</p>
- <p>Again, for finer-grained detail about specific units for
- various usages, see <strong>Part 6: Supplemental:</strong>
- <em>Section 2.4.1 <a href=
- "tr35-info.html#Preferred_Units_For_Usage">Preferred Units for
- Specific Usages</a></em>.</p>
- <h3>5.1 <a name="Measurement_Elements" href=
- "#Measurement_Elements" id="Measurement_Elements">Measurement
- Elements (deprecated)</a></h3>
- <p class="dtd"><!ELEMENT measurement (alias |
- (measurementSystem?, paperSize?, special*)) ></p>
- <p>The measurement element is deprecated in the main LDML
- files, because the data is more appropriately organized as
- connected to territories, not to linguistic data. Instead, the
- measurementData element in the supplemental data file should be
- used.</p>
- <h2>6 <a name="Unit_Elements" href="#Unit_Elements" id=
- "Unit_Elements">Unit Elements</a></h2>
- <p class="dtd"><!ELEMENT units (alias | (unit*, unitLength*,
- durationUnit*, special*) ) ><br>
- <br>
- <!ELEMENT unitLength (alias | (compoundUnit*, unit*,
- coordinateUnit*, special*) ) ><br>
- <!ATTLIST unitLength type (long | short | narrow) #REQUIRED
- ><br>
- <br>
- <!ELEMENT compoundUnit (alias | (compoundUnitPattern*,
- special*) ) ><br>
- <!ATTLIST compoundUnit type NMTOKEN #REQUIRED ><br>
- <br>
- <!ELEMENT unit ( alias | ( gender*, displayName*, unitPattern*, perUnitPattern*, special* ) ) ><br>
- <!ATTLIST unit type NMTOKEN #REQUIRED ><br>
- <br>
- <!ELEMENT gender ( #PCDATA )><br>
- <br>
- <!ELEMENT durationUnit (alias | (durationUnitPattern*,
- special*) ) ><br>
- <!ATTLIST durationUnit type NMTOKEN #REQUIRED ><br>
- <br>
- <!ELEMENT unitPattern ( #PCDATA ) ><br>
- <!ATTLIST unitPattern count (0 | 1 | zero | one | two | few
- | many | other) #REQUIRED ><br>
- <br>
- <!ELEMENT compoundUnitPattern ( #PCDATA ) ><br>
- <!ATTLIST compoundUnitPattern case NMTOKENS #IMPLIED ><br>
- <br>
- <!ELEMENT compoundUnitPattern1 ( #PCDATA ) ><br>
- <!ATTLIST compoundUnitPattern1 count (0 | 1 | zero | one | two | few | many | other) #IMPLIED > <br>
- <!ATTLIST compoundUnitPattern1 gender NMTOKENS #IMPLIED > <br>
- <!ATTLIST compoundUnitPattern1 case NMTOKENS #IMPLIED ><br>
- <br>
- <!ELEMENT coordinateUnit ( alias | ( displayName*,
- coordinateUnitPattern*, special* ) ) ><br>
- <!ELEMENT coordinateUnitPattern ( #PCDATA ) ><br>
- <!ATTLIST coordinateUnitPattern type (north | east | south |
- west) #REQUIRED ><br>
- <br>
- <!ELEMENT durationUnitPattern ( #PCDATA ) ><br></p>
-
- <p>These elements specify the localized way of formatting
- quantities of units such as years, months, days, hours, minutes
- and seconds— for example, in English, "1 day" or "3 days". The
- English rules that produce this example are as follows ({0}
- indicates the position of the formatted numeric value):</p>
-
- <pre><unit type="duration-day">
- <displayName>days</displayName>
- <unitPattern count="one"><span style=
-"color: blue">{0} day</span></unitName>
- <unitPattern count="other"><span style=
-"color: blue">{0} days</span></unitName>
-</unit></pre>
- <p>The german rules are more complicated, because German has both gender and case. They thus have additional information, as illustrated below. Note that if there is no @case attribute, for backwards compatibility the implied case is nominative. The possible values for @case are listed in the <strong>grammaticalFeatures</strong> element. These follow the inheritance specified in Part 1, Section <a href=
- "tr35.html#Lateral_Inheritance">4.1.2 Lateral
- Inheritance</a>. Note that the additional grammar elements are only present in the <unitLength type='long'> form.</p>
- <pre><unit type="duration-day">
- <strong><gender>masculine</gender></strong>
- <displayName>Tage</displayName>
- <unitPattern count="one">{0} Tag</unitPattern>
- <strong><unitPattern count="one" case="accusative">{0} Tag</unitPattern>
- <unitPattern count="one" case="dative">{0} Tag</unitPattern>
- <unitPattern count="one" case="genitive">{0} Tages</unitPattern>
-</strong> <unitPattern count="other">{0} Tage</unitPattern>
- <strong><unitPattern count="other" case="accusative">{0} Tage</unitPattern>
- <unitPattern count="other" case="dative">{0} Tagen</unitPattern>
- <unitPattern count="other" case="genitive">{0} Tage</unitPattern>
-</strong> <perUnitPattern>{0} pro Tag</perUnitPattern>
-</unit></pre>
-
- <p>These follow the inheritance specified in Part 1, Section <a href=
- "tr35.html#Lateral_Inheritance">4.1.2 Lateral
- Inheritance</a>.In addition to supporting language-specific plural cases
- such as “one” and “other”, unitPatterns support the
- language-independent explicit cases “0” and “1” for special
- handling of numeric values that are exactly 0 or 1; see
- <a href="tr35-numbers.html#Explicit_0_1_rules">Explicit 0 and 1
- rules</a>.</p>
-
- <p>The <unitPattern> elements may be used to format
- quantities with decimal values; in such cases the choice of plural form will
- depend not only on the numeric value, but also on its formatting (see
- <a href="tr35-numbers.html#Language_Plural_Rules">Language Plural Rules</a>).
- In addition to formatting units for stand-alone use, <unitPattern>
- elements are increasingly being used to format units for use in running text;
- for such usages, the developing <a href="#Grammatical_Features">Grammatical Features</a>
- information will be very useful.</p>
-
- <p>Note that for certain plural cases, the unit pattern may not
- provide for inclusion of a numeric value—that is, it may not include “{0}”. This
- is especially true for the explicit cases “0” and “1” (which may have patterns like
- “zero seconds”). In certain languages such as Arabic and Hebrew, this may also be
- true with certain units for the plural cases “zero”, “one”, or “two” (in these
- languages, such plural cases are only used for the corresponding exact numeric
- values, so there is no concern about loss of precision without the numeric value).</p>
-
- <p>Units, like other values with a <strong>count</strong>
- attribute, use a special inheritance. See <strong>Part 1:
- Core:</strong> <em>Section 4.1 <a href=
- "tr35.html#Multiple_Inheritance">Multiple Inheritance</a></em>
- .</p>
-
- <p>The displayName is used for labels, such as in a UI. It is
- typically lowercased and as neutral a plural form as possible,
- and then uses the casing context for the proper display. For
- example, for English in a UI it would appear as titlecase:</p>
- <p><strong>Duration:</strong></p>
- <table style="margin-left: 5em">
- <tr>
- <td>Days</td>
- <td style="color: silver">enter the vacation length</td>
- </tr>
- </table><br>
- <h3>6.1 <a name="Unit_Preference_and_Conversion" href="#Unit_Preference_and_Conversion">Unit Preference and Conversion Data</a> </h3>
-
-
-<p>
-Different locales have different preferences for which unit or combination of units is used for a particular usage, such as measuring a person’s height. This is more fine-grained than merely a preference for metric versus US or UK measurement systems. For example, one locale may use meters alone, while another may use centimeters alone or a combination of meters and centimeters; a third may use inches alone, or (informally) a combination of feet and inches.
-</p>
-<p>
-The unit preference and conversion data allows formatting functions to pick the right measurement units for the locale and usage, and convert input measurement into those units. For example, a program (or database) could use 1.88 meters internally, but then for person-height have that measurement convert to <em>6 foot 2 inches</em> for en-US and to <em>188 centimeters </em>for de-CH. Using the unit display names and list formats, those results can then be displayed according to the desired width (eg <em>2″</em> vs <em>2 in</em> vs 2 <em>inches</em>) and using the locale display names and number formats.
-</p>
-<p>
-The size of the measurement can also be taken into account, so that an infant can have a height as <em>18 inches</em>, and an adult the height as <em>6 foot 2 inches.</em>
-</p>
-<p>
-This data is supplied in <strong>Part 6: <a href=
- "tr35-info.html#Contents">Supplemental</a></strong>: <a href=
- "tr35-info.html#Unit_Conversion">Section 13 Unit Conversion</a> and <a href=
- "tr35-info.html#Unit_Preferences">Section 13 Unit Preferences</a>.
-</p>
-<h3>6.2 <a name="Unit_Identifiers" href="#Unit_Identifiers" >Unit Identifiers</a></h3>
-<p>
- Units are identified internally as described in this section. As with other identifiers in CLDR, the American English spelling is used for unit identifiers. These names should not be presented to end users, however. As in other cases, the translated names for different languages (or variants of English) are available in the CLDR localized data.
-</p>
-
-<table>
- <tr>
- <td><strong>Name</strong>
- </td>
- <td><strong>Example</strong>
- </td>
- </tr>
- <tr>
- <td>long unit identifier
- </td>
- <td>length-meter, mass-pound, duration-day
- </td>
- </tr>
- <tr>
- <td>core unit identifier
- </td>
- <td>meter, pound, day
- </td>
- </tr>
-</table><br>
-
-
-<p>
-Both the <em>unit identifier</em> and the <em>core unit identifier</em> are guaranteed to be unique, and clients can use either one to identify a unit. The associations between types and core unit identifiers are as prescribed in CLDR data; it is invalid for a client to create any additional associations. Except as specified in <em>Section 6.6 <a href="https://www.unicode.org/reports/tr35/tr35-general.html#Private_Use_Units">Private-Use Units</a></em>, all values are reserved by CLDR.
-</p>
-
-<table>
- <tr>
- <td><strong>Name</strong>
- </td>
- <td><strong>Examples</strong>
- </td>
- </tr>
- <tr>
- <td>simple unit ID
- </td>
- <td>meter, foot, inch, pound, pound-force, …
- </td>
- </tr>
- <tr>
- <td>prefixed unit ID
- </td>
- <td>kilometer, centigram, …
-<p>
-<em>plus simple unit IDs</em>
- </td>
- </tr>
- <tr>
- <td>single unit ID
- </td>
- <td>square-foot, cubic-centimeter, …<br>
-<em>plus prefixed unit IDs</em>
- </td>
- </tr>
- <tr>
- <td>core unit ID
- </td>
- <td>kilometer-per-hour, kilogram-meter, kilogram-meter-per-square-second, …
-<p>
-<em>plus single unit IDs</em>
- </td>
- </tr>
- <tr>
- <td>mixed unit ID
- </td>
- <td>foot-and-pound
- </td>
- </tr>
-</table><br>
-
-
-<p>
-A core unit that is not a simple unit is called a <em>complex unit</em>. It is valid to construct a complex unit identifier from multiple simple unit identifiers using multiplication (kilogram-meter) and division (kilogram-per-meter). As usual, with division the part before the (first) -per- is called the <em>numerator</em>, and the part after it is called the <em>denominator</em>.
-</p>
-<p>
-The conversion information uses the short unit identifiers, discarding the unitType. Thus “meter” is used instead of “length-meter”. The translation data currently uses the long unit identifiers, for backwards compatibility. However, that is likely to change in a future version.
-</p>
-<p>
-The identifiers and unit conversion data are built to handle arbitrary combinations of core unit IDs using division (kilometer-per-hour), multiplication (kilogram-meter), powers (square-second), and SI prefixes (kilo-). Thus they support converting generated units such as inch-pound-per-square-week into comparable units, such as newtons.
-</p><ul>
-
-<li>A power (square, cubic, pow4, etc) modifies one prefixed unit ID, and must occur immediately before it in the identifier: square-foot, not foot-square.
-<li>Multiplication binds more tightly than division, so kilogram-meter-per-second-ampere is interpreted as (kg ⋅ m) / (s ⋅ a).
-<li>Thus if -per- occurs multiple times, each occurrence after the first is equivalent to a multiplication: <ul>
-
- <li>kilogram-meter-per-second-ampere ⩧ kilogram-meter-per-second-per-ampere.
-</ul>
-</li></ul>
-
-<h4>Nomenclature</h4>
-
-
-<p>
-For the US spelling, see the <a href="https://www.nist.gov/pml/special-publication-811">Preface of the Guide for the Use of the International System of Units (SI), NIST special publication 811</a>, which is explicit about the discrepancy with the English-language BIPM spellings:
-</p>
-<p>
-
- In keeping with U.S. and International practice (see Sec. C.2), this Guide uses the dot on the line as the decimal marker. In addition this Guide utilizes the American spellings “meter,” “liter,” and “deka” rather than “metre,” “litre,” and “deca,” and the name “metric ton” rather than “tonne.”
-</p>
-<h4>Syntax</h4>
-
-
-<p>
-The formal syntax for identifiers is provided below.
-</p>
-
-<table>
- <tr>
- <td>unit_identifier
- </td>
- <td>:=
- </td>
- <td>long_unit_identifier<br>
-| mixed_unit_identifier
-<p>
-| core_unit_identifier
- </td>
- </tr>
- <tr>
- <td>long_unit_identifier
- </td>
- <td>:=
- </td>
- <td>type "-" core_unit_identifier
- </td>
- </tr>
- <tr>
- <td>core_unit_identifier
- </td>
- <td>:=
- </td>
- <td>product_unit ("-per-" product_unit)*<br>| "per-" product_unit ("-per-" product_unit)*
- <ul>
- <li><em>Examples:</em>
- <ul>
- <li>foot-per-second-per-second</li>
- <li>per-second</li>
- </ul>
- </li>
- <li><em>Note: </em>The normalized form will have only one "per"</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>mixed_unit_identifier
- </td>
- <td>:=
- </td>
- <td>(single_unit | pu_single_unit) ("-and-" (single_unit | pu_single_unit ))*<ul>
-
-<li><em>Example: foot-and-inch</em>
- </ul>
-
- </td>
- </tr>
- <tr>
- <td>product_unit
- </td>
- <td>:=
- </td>
- <td>single_unit ("-" single_unit)* ("-" pu_single_unit)*
-<p>
-| pu_single_unit ("-" pu_single_unit)*<ul>
-
-<li><em>Example: </em>foot-pound-force
-<li><em>Constraint:</em> No pu_single_unit may precede a single unit</li></ul>
-
- </td>
- </tr>
- <tr>
- <td>single_unit
- </td>
- <td>:=
- </td>
- <td>(dimensionality_prefix)? prefixed_unit<ul>
-
-<li><em>Example: </em>square-meter</li></ul>
-
- </td>
- </tr>
- <tr>
- <td>pu_single_unit
- </td>
- <td>:=
- </td>
- <td>“xxx-” single-unit | “x-” single-unit<ul>
-
-<li><em>Example: </em>xxx-square-knuts (a Harry Potter unit)
-<li><em>Note: </em>“x-” is only for backwards compatibility
-<li>See Section 6.6 <a href="#Private_Use_Units">Private-Use Units</a>
- </ul></td>
- </tr>
- <tr>
- <td>dimensionality_prefix
- </td>
- <td>:=
- </td>
- <td>"square-"
-<p>
-| "cubic-"
-<p>
-| "pow" ([2-9]|1[0-5]) "-"<ul>
-
-<li><em>Note: </em>"pow2-" and "pow3-" canonicalize to "square-" and "cubic-"</li></ul>
-
- </td>
- </tr>
- <tr>
- <td>prefixed_unit
- </td>
- <td>
- </td>
- <td>(si_prefix)? simple_unit<ul>
-
-<li><em>Example: </em>kilometer</li></ul>
-
- </td>
- </tr>
- <tr>
- <td>si_prefix
- </td>
- <td>:=
- </td>
- <td>"deka" | "hecto" | "kilo", … <ul>
-
-<li><em>Note: </em>See full list at <a href="https://www.nist.gov/pml/special-publication-811">NIST special publication 811</a></li></ul>
-
- </td>
- </tr>
- <tr>
- <td>simple_unit
- </td>
- <td>:=
- </td>
- <td>unit_component ("-" unit_component)*
-<p>
- | “em” | “g” | “us” | “hg” | “of”<ul>
-
- <li><em>Example: </em>gallon-imperial</li>
-<li><em>Constraint: </em>At least one unit_component must not itself be a simple_unit
-<li><em>Note: </em>3 simple units are currently allowed as legacy usage,
-where a component wouldn’t be a unit_component (eg for “<strong>g</strong>-force”)
-
- <ul>
-
- <li>We will likely deprecate those and add conformant aliases in the future.
- <li>“hg” and “of” are already only in deprecated simple_units.
- </ul>
-</li>
- </ul>
-
- </td>
- </tr>
- <tr>
- <td>unit_component
- </td>
- <td>:=
- </td>
- <td>[a-z]{3,∞} | “1” “0”{2,3}<ul>
-
-<li><em>Constraints: </em>
- <ul><li>Cannot be "per", "and", "square", "cubic", "xxx", or "x"; or start with an SI prefix.</li>
-<li>While the syntax allows any number of letters greater than 3, the unit_components need to be distinct if truncated to 8 letters. This allows for possible future support of units in Unicode Locale Identifiers.</li></ul>
-<li><em>Example: </em>foot</li></ul>
-
- </td>
- </tr>
-</table>
-
-
- <h3>6.3 <a name="Example_Units" href="#Example_Units">Example Units</a></h3>
- <p>The
- following table contains examples of types and units currently
- defined by CLDR. The units in CLDR are not
- comprehensive; it is anticipated that more will be added over
- time. The complete list of supported units is in the validity
- data: see <em>Section <a href="tr35.html#Validity_Data">3.11
- Validity Data</a></em>. The compound
- units in the table below either require specialized formatting
- or have a numerator and/or demoninator that are not defined as
- valid standalone units. Note: as explained in <em>Section 6.4
- <a href="#compound-units">Compound Units</a></em>, CLDR
- provides data to format any compound unit composed of two
- simple units from the following table.</p>
- <table>
- <tr>
- <th>Type</th>
- <th>Core Unit Identifier</th>
- <th>Compound?</th>
- <th>Sample Format</th>
- </tr>
- <tr>
- <td><em>acceleration</em></td>
- <td>g-force</td>
- <td>simple</td>
- <td>{0} G</td>
- </tr>
- <tr>
- <td><em>acceleration</em></td>
- <td>meter-per-square-second</td>
- <td>compound</td>
- <td>{0} m/s²</td>
- </tr>
- <tr>
- <td><em>angle</em></td>
- <td>revolution</td>
- <td>simple</td>
- <td>{0} rev</td>
- </tr>
- <tr>
- <td><em>angle</em></td>
- <td>radian</td>
- <td>simple</td>
- <td>{0} rad</td>
- </tr>
- <tr>
- <td><em>angle</em></td>
- <td>degree</td>
- <td>simple</td>
- <td>{0}°</td>
- </tr>
- <tr>
- <td><em>angle</em></td>
- <td>arc-minute</td>
- <td>simple</td>
- <td>{0}′</td>
- </tr>
- <tr>
- <td><em>angle</em></td>
- <td>arc-second</td>
- <td>simple</td>
- <td>{0}″</td>
- </tr>
- <tr>
- <td><em>area</em></td>
- <td>square-kilometer</td>
- <td>simple</td>
- <td>{0} km²</td>
- </tr>
- <tr>
- <td><em>area</em></td>
- <td>hectare</td>
- <td>simple</td>
- <td>{0} ha</td>
- </tr>
- <tr>
- <td>...</td>
- <td>...</td>
- <td>...</td>
- <td>...</td>
- </tr>
- <tr>
- <td><em>area</em></td>
- <td>square-inch</td>
- <td>simple</td>
- <td>{0} in²</td>
- </tr>
- <tr>
- <td><em>area</em></td>
- <td>dunam</td>
- <td>simple</td>
- <td>{0} dunam</td>
- </tr>
- <tr>
- <td><em>concentr</em></td>
- <td>karat</td>
- <td>simple</td>
- <td>{0} kt</td>
- <td>dimensionless</td>
- </tr>
- <tr>
- <td><em>concentr</em></td>
- <td>milligram-per-deciliter</td>
- <td>compound</td>
- <td>{0} mg/dL</td>
- </tr>
- <tr>
- <td><em>concentr</em></td>
- <td>millimole-per-liter</td>
- <td>compound</td>
- <td>{0} mmol/L</td>
- </tr>
- <tr>
- <td><em>concentr</em></td>
- <td>permillion</td>
- <td>compound</td>
- <td>{0} ppm</td>
- <td>dimensionless</td>
- </tr>
- <tr>
- <td><em>concentr</em></td>
- <td>percent</td>
- <td>simple</td>
- <td>{0}%</td>
- <td>dimensionless</td>
- </tr>
- <tr>
- <td><em>concentr</em></td>
- <td>permille</td>
- <td>simple</td>
- <td>{0}‰</td>
- <td>dimensionless</td>
- </tr>
- <tr>
- <td><em>concentr</em></td>
- <td>permyriad</td>
- <td>simple</td>
- <td>{0}‱</td>
- <td>dimensionless</td>
- </tr>
- <tr>
- <td><em>concentr</em></td>
- <td>mole</td>
- <td>simple</td>
- <td>{0} mol</td>
- <td>dimensionless</td>
- </tr>
- <tr>
- <td><em>consumption</em></td>
- <td>liter-per-kilometer</td>
- <td>compound</td>
- <td>{0} L/km</td>
- </tr>
- <tr>
- <td><em>consumption</em></td>
- <td>liter-per-100-kilometer</td>
- <td>compound</td>
- <td>{0} L/100km</td>
- </tr>
- <tr>
- <td><em>consumption</em></td>
- <td>mile-per-gallon (US)</td>
- <td>compound</td>
- <td>{0} mpg</td>
- </tr>
- <tr>
- <td><em>consumption</em></td>
- <td>mile-per-gallon-imperial</td>
- <td>compound</td>
- <td>{0} mpg Imp.</td>
- </tr>
- <tr>
- <td><em>digital</em></td>
- <td>petabyte</td>
- <td>simple</td>
- <td>{0} PB</td>
- </tr>
- <tr>
- <td>...</td>
- <td>...</td>
- <td>...</td>
- <td>...</td>
- </tr>
- <tr>
- <td><em>digital</em></td>
- <td>byte</td>
- <td>simple</td>
- <td>{0} byte</td>
- </tr>
- <tr>
- <td><em>digital</em></td>
- <td>bit</td>
- <td>simple</td>
- <td>{0} bit</td>
- </tr>
- <tr>
- <td><em>duration</em></td>
- <td>century</td>
- <td>simple</td>
- <td>{0} c</td>
- </tr>
- <tr>
- <td><em>duration</em></td>
- <td>year</td>
- <td>simple</td>
- <td>{0} y</td>
- </tr>
- <tr>
- <td><em>duration</em></td>
- <td>year-person</td>
- <td>simple</td>
- <td>{0} y</td>
- <td>for duration or age related to a person</td>
- </tr>
- <tr>
- <td><em>duration</em></td>
- <td>month</td>
- <td>simple</td>
- <td>{0} m</td>
- </tr>
- <tr>
- <td><em>duration</em></td>
- <td>month-person</td>
- <td>simple</td>
- <td>{0} m</td>
- <td>for duration or age related to a person</td>
- </tr>
- <tr>
- <td><em>duration</em></td>
- <td>week</td>
- <td>simple</td>
- <td>{0} w</td>
- </tr>
- <tr>
- <td><em>duration</em></td>
- <td>week-person</td>
- <td>simple</td>
- <td>{0} w</td>
- <td>for duration or age related to a person</td>
- </tr>
- <tr>
- <td><em>duration</em></td>
- <td>day</td>
- <td>simple</td>
- <td>{0} d</td>
- </tr>
- <tr>
- <td><em>duration</em></td>
- <td>day-person</td>
- <td>simple</td>
- <td>{0} d</td>
- <td>for duration or age related to a person</td>
- </tr>
- <tr>
- <td><em>duration</em></td>
- <td>hour</td>
- <td>simple</td>
- <td>{0} h</td>
- </tr>
- <tr>
- <td>...</td>
- <td>...</td>
- <td>...</td>
- <td>...</td>
- </tr>
- <tr>
- <td><em>duration</em></td>
- <td>nanosecond</td>
- <td>simple</td>
- <td>{0} ns</td>
- </tr>
- <tr>
- <td><em>electric</em></td>
- <td>ampere</td>
- <td>simple</td>
- <td>{0} A</td>
- </tr>
- <tr>
- <td><em>electric</em></td>
- <td>milliampere</td>
- <td>simple</td>
- <td>{0} mA</td>
- </tr>
- <tr>
- <td><em>electric</em></td>
- <td>ohm</td>
- <td>simple</td>
- <td>{0} Ω</td>
- </tr>
- <tr>
- <td><em>electric</em></td>
- <td>volt</td>
- <td>simple</td>
- <td>{0} V</td>
- </tr>
- <tr>
- <td><em>energy</em></td>
- <td>kilocalorie</td>
- <td>simple</td>
- <td>{0} kcal</td>
- </tr>
- <tr>
- <td><em>energy</em></td>
- <td>calorie</td>
- <td>simple</td>
- <td>{0} cal</td>
- </tr>
- <tr>
- <td><em>energy</em></td>
- <td>foodcalorie</td>
- <td>simple</td>
- <td>{0} Cal</td>
- </tr>
- <tr>
- <td><em>energy</em></td>
- <td>kilojoule</td>
- <td>simple</td>
- <td>{0} kJ</td>
- </tr>
- <tr>
- <td><em>energy</em></td>
- <td>joule</td>
- <td>simple</td>
- <td>{0} J</td>
- </tr>
- <tr>
- <td><em>energy</em></td>
- <td>kilowatt-hour</td>
- <td>simple</td>
- <td>{0} kWh</td>
- </tr>
- <tr>
- <td><em>energy</em></td>
- <td>electronvolt</td>
- <td>simple</td>
- <td>{0} eV</td>
- </tr>
- <tr>
- <td><em>energy</em></td>
- <td>british-thermal-unit</td>
- <td>simple</td>
- <td>{0} Btu</td>
- </tr>
- <tr>
- <td><em>force</em></td>
- <td>pound-force</td>
- <td>simple</td>
- <td>{0} lbf</td>
- </tr>
- <tr>
- <td><em>force</em></td>
- <td>newton</td>
- <td>simple</td>
- <td>{0} N</td>
- </tr>
- <tr>
- <td><em>frequency</em></td>
- <td>gigahertz</td>
- <td>simple</td>
- <td>{0} GHz</td>
- </tr>
- <tr>
- <td><em>frequency</em></td>
- <td>megahertz</td>
- <td>simple</td>
- <td>{0} MHz</td>
- </tr>
- <tr>
- <td><em>frequency</em></td>
- <td>kilohertz</td>
- <td>simple</td>
- <td>{0} kHz</td>
- </tr>
- <tr>
- <td><em>frequency</em></td>
- <td>hertz</td>
- <td>simple</td>
- <td>{0} Hz</td>
- </tr>
- <tr>
- <td><em>length</em></td>
- <td>kilometer</td>
- <td>simple</td>
- <td>{0} km</td>
- </tr>
- <tr>
- <td>...</td>
- <td>...</td>
- <td>...</td>
- <td>...</td>
- </tr>
- <tr>
- <td><em>length</em></td>
- <td>inch</td>
- <td>simple</td>
- <td>{0} in</td>
- </tr>
- <tr>
- <td><em>length</em></td>
- <td>parsec</td>
- <td>simple</td>
- <td>{0} pc</td>
- </tr>
- <tr>
- <td><em>length</em></td>
- <td>light-year</td>
- <td>simple</td>
- <td>{0} ly</td>
- </tr>
- <tr>
- <td><em>length</em></td>
- <td>astronomical-unit</td>
- <td>simple</td>
- <td>{0} au</td>
- </tr>
- <tr>
- <td><em>length</em></td>
- <td>furlong</td>
- <td>simple</td>
- <td>{0} fur</td>
- </tr>
- <tr>
- <td><em>length</em></td>
- <td>fathom</td>
- <td>simple</td>
- <td>{0} fm</td>
- </tr>
- <tr>
- <td><em>length</em></td>
- <td>nautical-mile</td>
- <td>simple</td>
- <td>{0} nmi</td>
- </tr>
- <tr>
- <td><em>length</em></td>
- <td>mile-scandinavian</td>
- <td>simple</td>
- <td>{0} smi</td>
- </tr>
- <tr>
- <td><em>length</em></td>
- <td>point</td>
- <td>simple</td>
- <td>{0} pt</td>
- <td>typographic point, 1/72 inch</td>
- </tr>
- <tr>
- <td><em>length</em></td>
- <td>solar-radius</td>
- <td>simple</td>
- <td>{0} R☉</td>
- </tr>
- <tr>
- <td><em>light</em></td>
- <td>lux</td>
- <td>simple</td>
- <td>{0} lx</td>
- </tr>
- <tr>
- <td><em>light</em></td>
- <td>solar-luminosity</td>
- <td>simple</td>
- <td>{0} L☉</td>
- </tr>
- <tr>
- <td><em>mass</em></td>
- <td>metric-ton</td>
- <td>simple</td>
- <td>{0} t</td>
- </tr>
- <tr>
- <td><em>mass</em></td>
- <td>kilogram</td>
- <td>simple</td>
- <td>{0} kg</td>
- </tr>
- <tr>
- <td>...</td>
- <td>...</td>
- <td>...</td>
- <td>...</td>
- </tr>
- <tr>
- <td><em>mass</em></td>
- <td>ounce</td>
- <td>simple</td>
- <td>{0} oz</td>
- </tr>
- <tr>
- <td><em>mass</em></td>
- <td>ounce-troy</td>
- <td>simple</td>
- <td>{0} oz t</td>
- </tr>
- <tr>
- <td><em>mass</em></td>
- <td>carat</td>
- <td>simple</td>
- <td>{0} CD</td>
- </tr>
- <tr>
- <td><em>mass</em></td>
- <td>dalton</td>
- <td>simple</td>
- <td>{0} Da</td>
- </tr>
- <tr>
- <td><em>mass</em></td>
- <td>earth-mass</td>
- <td>simple</td>
- <td>{0} M⊕</td>
- </tr>
- <tr>
- <td><em>mass</em></td>
- <td>solar-mass</td>
- <td>simple</td>
- <td>{0} M☉</td>
- </tr>
- <tr>
- <td><em>power</em></td>
- <td>gigawatt</td>
- <td>simple</td>
- <td>{0} GW</td>
- </tr>
- <tr>
- <td>...</td>
- <td>...</td>
- <td>...</td>
- <td>...</td>
- </tr>
- <tr>
- <td><em>power</em></td>
- <td>milliwatt</td>
- <td>simple</td>
- <td>{0} mW</td>
- </tr>
- <tr>
- <td><em>power</em></td>
- <td>horsepower</td>
- <td>simple</td>
- <td>{0} hp</td>
- </tr>
- <tr>
- <td><em>pressure</em></td>
- <td>hectopascal</td>
- <td>simple</td>
- <td>{0} hPa</td>
- </tr>
- <tr>
- <td><em>pressure</em></td>
- <td>millimeter-ofhg</td>
- <td>simple</td>
- <td>{0} mm Hg</td>
- </tr>
- <tr>
- <td><em>pressure</em></td>
- <td>pound-force-per-square-inch</td>
- <td>compound</td>
- <td>{0} psi</td>
- </tr>
- <tr>
- <td><em>pressure</em></td>
- <td>inch-ofhg</td>
- <td>simple</td>
- <td>{0} inHg</td>
- </tr>
- <tr>
- <td><em>pressure</em></td>
- <td>millibar</td>
- <td>simple</td>
- <td>{0} mbar</td>
- </tr>
- <tr>
- <td><em>pressure</em></td>
- <td>atmosphere</td>
- <td>simple</td>
- <td>{0} atm</td>
- </tr>
- <tr>
- <td><em>pressure</em></td>
- <td>kilopascal</td>
- <td>simple</td>
- <td>{0} kPa</td>
- </tr>
- <tr>
- <td><em>pressure</em></td>
- <td>megapascal</td>
- <td>simple</td>
- <td>{0} MPa</td>
- </tr>
- <tr>
- <td><em>speed</em></td>
- <td>kilometer-per-hour</td>
- <td>compound</td>
- <td>{0} km/h</td>
- </tr>
- <tr>
- <td><em>speed</em></td>
- <td>meter-per-second</td>
- <td>compound</td>
- <td>{0} m/s</td>
- </tr>
- <tr>
- <td><em>speed</em></td>
- <td>mile-per-hour</td>
- <td>compound</td>
- <td>{0} mi/h</td>
- </tr>
- <tr>
- <td><em>speed</em></td>
- <td>knot</td>
- <td>simple</td>
- <td>{0} kn</td>
- </tr>
- <tr>
- <td><em>temperature</em></td>
- <td>generic</td>
- <td>simple</td>
- <td>{0}°</td>
- </tr>
- <tr>
- <td><em>temperature</em></td>
- <td>celsius</td>
- <td>simple</td>
- <td>{0}°C</td>
- </tr>
- <tr>
- <td><em>temperature</em></td>
- <td>fahrenheit</td>
- <td>simple</td>
- <td>{0}°F</td>
- </tr>
- <tr>
- <td><em>temperature</em></td>
- <td>kelvin</td>
- <td>simple</td>
- <td>{0} K</td>
- </tr>
- <tr>
- <td><em>torque</em></td>
- <td>pound-force-foot</td>
- <td>simple</td>
- <td>{0} lbf⋅ft</td>
- </tr>
- <tr>
- <td><em>torque</em></td>
- <td>newton-meter</td>
- <td>simple</td>
- <td>{0} N⋅m</td>
- </tr>
- <tr>
- <td><em>volume</em></td>
- <td>cubic-kilometer</td>
- <td>simple</td>
- <td>{0} km³</td>
- </tr>
- <tr>
- <td>...</td>
- <td>...</td>
- <td>...</td>
- <td>...</td>
- </tr>
- <tr>
- <td><em>volume</em></td>
- <td>cubic-inch</td>
- <td>simple</td>
- <td>{0} in³</td>
- </tr>
- <tr>
- <td><em>volume</em></td>
- <td>megaliter</td>
- <td>simple</td>
- <td>{0} ML</td>
- </tr>
- <tr>
- <td>...</td>
- <td>...</td>
- <td>...</td>
- <td>...</td>
- </tr>
- <tr>
- <td><em>volume</em></td>
- <td>pint</td>
- <td>simple</td>
- <td>{0} pt</td>
- </tr>
- <tr>
- <td><em>volume</em></td>
- <td>cup</td>
- <td>simple</td>
- <td>{0} c</td>
- </tr>
- <tr>
- <td><em>volume</em></td>
- <td>fluid-ounce (US)</td>
- <td>simple</td>
- <td>{0} fl oz</td>
- </tr>
- <tr>
- <td><em>volume</em></td>
- <td>fluid-ounce-imperial</td>
- <td>simple</td>
- <td>{0} fl oz Imp.</td>
- </tr>
- <tr>
- <td><em>volume</em></td>
- <td>tablespoon</td>
- <td>simple</td>
- <td>{0} tbsp</td>
- </tr>
- <tr>
- <td><em>volume</em></td>
- <td>teaspoon</td>
- <td>simple</td>
- <td>{0} tsp</td>
- </tr>
- <tr>
- <td><em>volume</em></td>
- <td>barrel</td>
- <td>simple</td>
- <td>{0} bbl</td>
- </tr>
- </table><br>
- <p>There are three widths: <strong>long</strong>,
- <strong>short</strong>, and <strong>narrow</strong>. As usual,
- the narrow forms may not be unique: in English, 1′ could mean 1
- minute of arc, or 1 foot. Thus narrow forms should only be used
- where the context makes the meaning clear.</p>
- <p>Where the unit of measurement is one of the <a href=
- "https://physics.nist.gov/cuu/Units/units.html">International
- System of Units (SI)</a>, the short and narrow forms will
- typically use the international symbols, such as “mm” for
- millimeter. They may, however, be different if that is
- customary for the language or locale. For example, in Russian
- it may be more typical to see the Cyrillic characters “мм”.</p>
- <p>Units are included for translation even where they are not
- typically used in a particular locale, such as kilometers in
- the US, or inches in Germany. This is to account for use by
- travelers and specialized domains, such as the German
- “̌Fernseher von 32 bis 55 Zoll (80 bis 140 cm)” for TV screen
- size in inches and centimeters.</p>
- <p>For temperature, there is a special unit <unit
- type="temperature-generic">, which is used when it is clear
- from context whether Celcius or Fahrenheit is implied.</p>
- <p>For duration, there are special units such as <unit
- type="duration-year-person"> and <unit
- type="duration-year-week"> for indicating the age of a
- person, which requires special forms in some languages. For
- example, in "zh", references to a person being 3 days old or 30
- years old would use the forms “他3天大” and “他30岁”
- respectively.</p>
- <h3>6.4 <a name="compound-units" href="#compound-units" >Compound Units</a><a name=
- "compoundUnitPattern" ></a><a name="perUnitPatterns" ></a></h3>
- <p>A common combination of units is X per Y, such as <em>miles
- per hour</em> or <em>liters per second</em> or <em>kilowatt-hours</em>. </p>
-
- <p>There are different types of structure used to build the localized name of compound units. All of these follow the inheritance specified in <a href=
- "tr35.html#Lateral_Inheritance">Part 1, Section 4.1.2 Lateral
- Inheritance</a>.</p>
- <p><strong>Prefixes</strong> are for powers of 10 and powers of 1024 (the latter only used with digital units of measure). These are invariant for case, gender, or plural (though those could be added in the future if needed by a language).</p>
- <pre><compoundUnit type="10p9"><br> <unitPrefixPattern>Giga{0}</unitPrefixPattern><br></compoundUnit>
-
-<compoundUnit type="1024p3"><br> <unitPrefixPattern>Gibi{0}</unitPrefixPattern><br></compoundUnit>
-</pre>
- <p><strong>compoundUnitPatterns</strong> are used for compounding units by multiplication or division: kilowatt-hours, or meters per second. These are invariant for case, gender, or plural (though those could be added in the future if needed by a language).</p>
- <pre>
-<compoundUnit type="per"><br> <compoundUnitPattern>{0} pro {1}</compoundUnitPattern><br></compoundUnit>
-
-<compoundUnit type="times"><br> <compoundUnitPattern>{0}⋅{1}</compoundUnitPattern><br></compoundUnit>
-</pre><p>There can be at most one "per" pattern used in producing a compound unit, while the "times" pattern can be used multiple times.</p>
- <p><strong>compoundUnitPattern1s</strong> are used for expressing powers, such as square meter or cubic foot. These are the most complicated, since they can vary by plural category (count), by case, and by gender. However, these extra attributes are only used if the are present in the <strong>grammaticalFeatures</strong> element for the language in question. See <a href="tr35-general.html#Grammatical_Features">Section 15, Grammatical Features</a>. Note that the additional grammar elements are only present in the <unitLength type='long'> form. </p>
- <pre>
-<compoundUnit type="power2"><br> <compoundUnitPattern1>{0} kw.</compoundUnitPattern1><br> <compoundUnitPattern1 count="one">{0} kwadratowe</compoundUnitPattern1><br> <compoundUnitPattern1 count="one" case="accusative">{0} kwadratowe</compoundUnitPattern1><br> <compoundUnitPattern1 count="one" case="dative">{0} kwadratowemu</compoundUnitPattern1><br> <compoundUnitPattern1 count="one" case="genitive">{0} kwadratowego</compoundUnitPattern1><br> <compoundUnitPattern1 count="one" case="instrumental">{0} kwadratowym</compoundUnitPattern1><br> <compoundUnitPattern1 count="one" case="locative">{0} kwadratowym</compoundUnitPattern1><br> <compoundUnitPattern1 count="one" case="vocative">{0} kwadratowe</compoundUnitPattern1><br> <compoundUnitPattern1 count="one" gender="feminine">{0} kwadratowa</compoundUnitPattern1><br> <compoundUnitPattern1 count="one" gender="feminine" case="accusative">{0} kwadratową</compoundUnitPattern1><br> <compoundUnitPattern1 count="one" gender="feminine" case="dative">{0} kwadratowej</compoundUnitPattern1><br> <compoundUnitPattern1 count="one" gender="feminine" case="genitive">{0} kwadratowej</compoundUnitPattern1><br> <compoundUnitPattern1 count="one" gender="feminine" case="instrumental">{0} kwadratową</compoundUnitPattern1><br> <compoundUnitPattern1 count="one" gender="feminine" case="locative">{0} kwadratowej</compoundUnitPattern1><br> <compoundUnitPattern1 count="one" gender="feminine" case="vocative">{0} kwadratowa</compoundUnitPattern1><br> <compoundUnitPattern1 count="one" gender="inanimate">{0} kwadratowy</compoundUnitPattern1><br> <compoundUnitPattern1 count="one" gender="inanimate" case="accusative">{0} kwadratowy</compoundUnitPattern1><br> <compoundUnitPattern1 count="one" gender="inanimate" case="dative">{0} kwadratowemu</compoundUnitPattern1><br> <compoundUnitPattern1 count="one" gender="inanimate" case="genitive">{0} kwadratowego</compoundUnitPattern1><br> <compoundUnitPattern1 count="one" gender="inanimate" case="instrumental">{0} kwadratowym</compoundUnitPattern1><br> <compoundUnitPattern1 count="one" gender="inanimate" case="locative">{0} kwadratowym</compoundUnitPattern1><br> <compoundUnitPattern1 count="one" gender="inanimate" case="vocative">{0} kwadratowy</compoundUnitPattern1><br> <compoundUnitPattern1 count="few">{0} kwadratowe</compoundUnitPattern1><br> <compoundUnitPattern1 count="few" case="accusative">{0} kwadratowe</compoundUnitPattern1><br> <compoundUnitPattern1 count="few" case="dative">{0} kwadratowym</compoundUnitPattern1>
- …</pre>
-
- <p> </p>
- <p>Some units already
- have 'precomputed' forms, such as <strong>kilometer-per-hour</strong>; where such units exist,
- they should be used in preference. </p>
-
- <p>If there is no precomputed form, the following process in pseudocode is used to generate a pattern for the compound unit. </p>
- <p> </p>
- <p><strong>pattern(unitId, locale, length, pluralCategory, caseVariant)</strong></p>
- <ol>
- <li>If the unitId is empty or invalid, fail</li>
- <li>Put the unitId into normalized order: hour-kilowatt => kilowatt-hour, meter-square-meter-per-second-second => cubic-meter-per-square-second</li>
- <li>Set result to be getValue(unitId with length, pluralCategory, caseVariant)
- <ol>
- <li>If result is not empty, return it</li>
- </ol>
- </li>
- <li>Divide the unitId into numerator (the part before the "-per-") and denominator (the part after the "-per-). If both are empty, fail</li>
- <li>Set both globalPlaceholder and globalPlaceholderPosition to be empty</li>
- <li>Set numeratorUnitString to patternTimes(numerator, length, per0(pluralCategory), per0(caseVariant))</li>
- <li>Set denominatorUnitString to patternTimes(denominator, length, per1(pluralCategory), per1(caseVariant)) </li>
- <li>Set perPattern to be getValue(times, locale, length)</li>
- <li>If the denominatorString is empty, set result to denominatorString, otherwise set result to format(perPattern, numeratorString, denominatorString) </li>
- <li>return format(result, globalPlacholder, globalPlaceholderPosition)</li>
- </ol>
- <p><strong>patternTimes(product_unit, locale, length, pluralCategory, caseVariant)</strong></p>
- <ol>
- <li>Set hasMultiple to true iff product_unit has more than one single_unit</li>
- <li>Set timesPattern to be getValue(times, locale, length)</li>
- <li>Set result to be empty</li>
- <li>For each single_unit in product_unit
- <ol>
- <li>If hasMultiple
- <ol>
- <li>Set singlePluralCategory to be times0(pluralCategory)</li>
- <li>Set singleCaseVariant to be times0(caseVariant)</li>
- <li>Set pluralCategory to be times1(pluralCategory)</li>
- <li>Set caseVariant to be times1(caseVariant)</li>
- </ol>
- </li>
- <li>Get the gender of that single_unit</li>
- <li>If singleUnit starts with a dimensionality_prefix, such as 'square-'
- <ol>
- <li>set dimensionalityPrefixPattern to be getValue(that dimensionality_prefix, locale, length, singlePluralCategory, singleCaseVariant, gender), such as "{0} kwadratowym"</li>
- <li>set singlePluralCategory to be power0(singlePluralCategory)</li>
- <li>set singleCaseVariant to be power0(singleCaseVariant)</li>
- <li>remove the dimensionality_prefix from singleUnit</li>
- </ol>
- </li>
- <li>if singleUnit starts with an si_prefix, such as 'centi'
- <ol>
- <li>set siPrefixPattern to be getValue(that si_prefix, locale, length), such as "centy{0}"</li>
- <li>set singlePluralCategory to be prefix0(singlePluralCategory)</li>
- <li>set singleCaseVariant to be prefix0(singleCaseVariant)</li>
- <li>remove the si_prefix from singleUnit</li>
- </ol>
- </li>
- <li>Set corePattern to be the getValue(singleUnit, locale, length, singlePluralCategory, singleCaseVariant), such as "{0} metrem"</li>
- <li>Extract(corePattern, coreUnit, placeholder, placeholderPosition) from that pattern.</li>
- <li>If the position is <em>middle</em>, then fail</li>
- <li>If globalPlaceholder is empty
- <ol>
- <li>Set globalPlaceholder to placeholder</li>
- <li>Set globalPlaceholderPosition to placeholderPosition</li>
- </ol>
- </li>
- <li>If siPrefixPattern is not empty
- <ol>
- <li>Set coreUnit to be the combineLowercasing(locale, length, siPrefixPattern, coreUnit)</li>
- </ol>
- </li>
- <li>If dimensionalityPrefixPattern is not empty
- <ol>
- <li>Set coreUnit to be the combineLowercasing(locale, length, dimensionalityPrefixPattern, coreUnit)</li>
- </ol>
- </li>
- <li>If the result is empty, set result to be coreUnit</li>
- <li>Otherwise set result to be format(timesPattern, result, coreUnit)</li>
- </ol>
- </li>
- <li>Return result</li>
- </ol>
- <p><strong>combineLowercasing(locale, length, prefixPattern, coreUnit)</strong></p>
- <ol>
- <li>If the length is "long" and the prefixPattern contains no spaces, lowercase the coreUnit according to the locale, thus "Quadrat{0}" causes "Zentimeter" to become "zentimeter"</li>
- <li>return format(prefixPattern, unitPattern), eg "Quadratzentimeter"</li>
- </ol>
- <p><strong>format(pattern, arguments…)</strong></p>
- <ol>
- <li>return the result of substituting the arguments for the placeholders {0}, {1}, etc.</li>
- </ol>
- <p><strong>getValue(key, locale, length, variants…)</strong></p>
- <ol>
- <li>return the element value in the locale for the path corresponding to the key, locale, length, and variants — using normal inheritance including <a href="https://unicode-org.github.io/cldr/ldml/tr35.html#Multiple_Inheritance">Lateral Inheritance</a> and <a href="https://unicode-org.github.io/cldr/ldml/tr35.html#Parent_Locales">Parent Locales</a>.</li>
- </ol>
- <p><strong>Extract(corePattern, coreUnit, placeHolder, placeholderPosition)</strong></p>
- <ol>
- <li>Find the position of the <strong>placeHolder</strong> in the core pattern</li>
- <li>Set <strong>placeHolderPosition</strong> to that postion (start, middle, or end)</li>
- <li>Remove the <strong>placeHolder</strong> from the <strong>corePattern</strong> and set <strong>coreUnit</strong> to that result</li>
- </ol>
- <p><strong>per0(...), times0(...), etc.</strong></p>
- <ol>
- <li>These represent the <strong>deriveCompound</strong> data values from <strong>Section 16 <a href="#Grammatical_Derivations">Grammatical Derivations</a></strong>, where value0 of the per-structure is given as per0(...), and so on.</li>
- <li>"power" corresponds to dimensionality_prefix, while "prefix" corresponds to si_prefix.</li>
- </ol>
- <p>If the locale does not provide full modern coverage, the process could fall back to root locale for some localized patterns. That may give a "ransom-note" effect for the user. To avoid that, it may be preferable to abort the process at that point, and then localize the unitId for the root locale.</p>
- <p>If a unit is not supported by root, then the localization is not supported by CLDR and will fail.</p>
- <h4>Precomposed Compound Units</h4>
- <p>At each point in the process, if there is a precomposed form for a segment of the unitId, then that precomposed form should be used instead. For example, if there is a pattern in the locale for (square-kilometer, length, singlePluralCategory, singleCaseVariant, gender), then it should be used instead of composing the name from "square" and "kilometer".</p>
- <p></p>
-
- <p>There is also a precomposed <strong>perUnitPattern</strong> which is used as the
- denominator with another unit name. For example, a form such as
- "{0} per second" can be used to form "2 feet <strong>per
- second</strong>". The difference between these is that in some inflected
- languages, the compoundUnit cannot be used to form grammatical
- phrases. This is typically because the "per" + "second" combine
- in a non-trivial way. The <strong>perUnitPattern</strong> should be applied if the denominator has only one element, and matches the perUnitPattern type.</p>
-
- <h3>6.5 <a name="Unit_Sequences" href="#Unit_Sequences" id=
- "Unit_Sequences">Unit Sequences (Mixed Units)</a></h3>
- <p>Units may be used in composed sequences (aka <em>mixed units</em>), such as <strong>5°
- 30′</strong> for 5 degrees 30 minutes, or <strong>3 ft 2
- in.</strong> For that purpose, the appropriate width of the unit
- listPattern can be used to compose the units in a sequence.</p>
- <pre><listPattern type="unit"> (for the long form)
-<listPattern type="unit-narrow">
-<listPattern type="unit-short">
-</pre>
- <p>In such a sequence, decimal fractions are typically only displayed for
- the last element of the sequence, if at all.</p>
-
- <h3>6.6 <a name="durationUnit" href="#durationUnit" id=
- "durationUnit">durationUnit</a></h3>
- <p>The durationUnit is a special type of unit used for composed
- time unit durations.</p>
- <pre><durationUnit type="hms">
- <durationUnitPattern>h:mm:ss</durationUnitPattern> <!-- 33:04:59 -->
-</durationUnit> </pre>
- <p>The type contains a skeleton, where 'h' stands for hours,
- 'm' for minutes, and 's' for sections. These are the same
- symbols used in availableFormats, except that there is no need
- to distinguish different forms of the hour.</p>
- <h3>6.7 <a name="coordinateUnit" href="#coordinateUnit" id=
- "coordinateUnit">coordinateUnit</a></h3>
- <p>The <strong>coordinateUnitPattern</strong> is a special type
- of pattern used for composing degrees of latitude and
- longitude, with an indicator of the quadrant. There are exactly
- 4 type values, plus a displayName for the items in this
- category. An angle is composed using the appropriate
- combination of the <strong>angle-degrees</strong>,
- <strong>angle-arc-minute</strong> and
- <strong>angle-arc-second</strong> values. It is then
- substituted for the placeholder field {0} in the appropriate
- <strong>coordinateUnit</strong> pattern.</p>
- <p class="xmlExample">
- <displayName>direction</displayName><br>
- <coordinateUnitPattern
- type="east">{0}E</coordinateUnitPattern><br>
- <coordinateUnitPattern
- type="north">{0}N</coordinateUnitPattern><br>
- <coordinateUnitPattern
- type="south">{0}S</coordinateUnitPattern><br>
- <coordinateUnitPattern
- type="west">{0}W</coordinateUnitPattern></p>
- <h3>6.8 <a name="Territory_Based_Unit_Preferences" href=
- "#Territory_Based_Unit_Preferences" id=
- "Territory_Based_Unit_Preferences">Territory-Based Unit
- Preferences</a></h3>
- <p>Different locales have different preferences for which unit
- or combination of units is used for a particular usage, such as
- measuring a person’s height. This is more fine-grained than
- merely a preference for metric versus US or UK measurement
- systems. For example, one locale may use meters alone, while
- another may use centimeters alone or a combination of meters
- and centimeters; a third may use inches alone, or (informally)
- a combination of feet and inches.</p>
- <p>The <unitPreferenceData> element, described in
- <a href="tr35-info.html#Preferred_Units_For_Usage">Preferred
- Units for Specific Usages</a>, provides information on which
- unit or combination of units is used for various purposes in
- different locales, with options for the level of formality and
- the scale of the measurement (e.g measuring the height of an
- adult versus that of an infant).</p>
-
- <h3>6.9 <a name="Private_Use_Units" href="#Private_Use_Units"
- id="Private_Use_Units">Private-Use Units</a></h3>
- <p>
- CLDR has reserved the "xxx-" prefix in the simple_unit part of the unit identifier BNF
- for private-use units. CLDR will never define a type, simple unit, or compound unit
- such that the unit identifier starts with "xxx-", ends with "-xxx", or contains "-xxx-".
- </p>
- <p>
- For example, if you wanted to define your own unit "foo", you could use the simple unit "xxx-foo".
- </p>
- <p>
- It is valid to construct compound units containing one or more private-use simple units.
- For example, "xxx-foo-per-second" and "xxx-foo-per-xxx-bar" are both valid core unit
- identifiers for compound units.
- </p>
- <p>
- As explained earlier, CLDR defines all associations between types and units. It is
- therefore not possible to construct a valid long unit identifier containing a private-use
- unit; only core unit identifiers are possible.
- </p>
- <p>The older syntax used “x-”, which was expanded to “xxx-” to simplify use with BCP47
- syntax. That should be converted to “xxx-”.</p>
- <h2>7 <a name="POSIX_Elements" href="#POSIX_Elements" id=
- "POSIX_Elements">POSIX Elements</a></h2>
- <p class="dtd"><!ELEMENT posix (alias | (messages*,
- special*)) ><br>
- <!ELEMENT messages (alias | ( yesstr*, nostr*)) ></p>
- <p>The following are included for compatibility with POSIX.</p>
- <p><posix><br>
- <posix:messages><br>
- <posix:yesstr><span style="color: #0000FF">ja</span></posix:yesstr><br>
-
- <posix:nostr><span style="color: #0000FF">nein</span></posix:nostr><br>
-
- </posix:messages><br>
- <posix></p>
- <ol>
- <li>The values for yesstr and nostr contain a colon-separated
- list of strings that would normally be recognized as "yes"
- and "no" responses. For cased languages, this shall include
- only the lower case version. POSIX locale generation tools
- must generate the upper case equivalents, and the abbreviated
- versions, and add the English words wherever they do not
- conflict. Examples:
- <ul>
- <li>ja → ja:Ja:j:J:yes:Yes:y:Y</li>
- <li>ja → ja:Ja:j:J:yes:Yes // exclude y:Y if it conflicts
- with the native "no".</li>
- </ul>
- </li>
- <li>The older elements yesexpr and noexpr are deprecated.
- They should instead be generated from yesstr and nostr so
- that they match all the responses.</li>
- </ol>
- <p>So for English, the appropriate strings and expressions
- would be as follows:</p>
- <p>yesstr "yes:y"<br>
- nostr "no:n"</p>
- <p>The generated yesexpr and noexpr would be:</p>
- <p><code>yesexpr "^([yY]([eE][sS])?)"<br></code> This would
- match y,Y,yes,yeS,yEs,yES,Yes,YeS,YEs,YES.<br>
- <br>
- <code>noexpr "^([nN][oO]?)"</code><br>
- This would match n,N,no,nO,No,NO.</p>
- <h2>8 <a name="Reference_Elements" href="#Reference_Elements"
- id="Reference_Elements">Reference Element</a></h2>
- <p>(Use only in supplemental data; deprecated for ldml.dtd and
- locale data)</p>
- <p class="dtd"><!ELEMENT references ( reference* ) ><br>
- <!ELEMENT reference ( #PCDATA ) ><br>
- <!ATTLIST reference type NMTOKEN #REQUIRED><br>
- <!ATTLIST reference standard ( true | false ) #IMPLIED
- ><br>
- <!ATTLIST reference uri CDATA #IMPLIED ></p>
- <p>The references section supplies a central location for
- specifying references and standards. The uri should be supplied
- if at all possible. If not online, then a ISBN number should be
- supplied, such as in the following example:</p>
- <p class="example"><reference type="R2"
- uri="https://www.ur.se/nyhetsjournalistik/3lan.html">Landskoder
- på Internet</reference><br>
- <reference type="R3" uri="URN:ISBN:91-47-04974-X">Svenska
- skrivregler</reference></p>
- <h2>9 <a name="Segmentations" href="#Segmentations" id=
- "Segmentations">Segmentations</a></h2>
- <p class="dtd"><!ELEMENT segmentations ( alias |
- segmentation*) ></p>
- <p class="dtd"><!ELEMENT segmentation ( alias | (variables?,
- segmentRules? , exceptions?, suppressions?) | special*)
- ><br>
- <!ATTLIST segmentation type NMTOKEN #REQUIRED ></p>
- <p class="dtd"><!ELEMENT variables ( alias | variable*)
- ></p>
- <p class="dtd"><!ELEMENT variable ( #PCDATA ) ><br>
- <!ATTLIST variable id CDATA #REQUIRED ></p>
- <p class="dtd"><!ELEMENT segmentRules ( alias | rule*)
- ></p>
- <p class="dtd"><!ELEMENT rule ( #PCDATA ) ><br>
- <!ATTLIST rule id NMTOKEN #REQUIRED ></p>
- <p class="dtd"><!ELEMENT suppressions ( suppression* )
- ></p>
- <p class="dtd"><!ATTLIST suppressions type NMTOKEN
- "standard" ></p>
- <p class="dtd"><!ATTLIST suppressions draft ( approved |
- contributed | provisional | unconfirmed ) #IMPLIED ></p>
- <p class="dtd"><!ELEMENT suppression ( #PCDATA ) ></p>
- <p>The segmentations element provides for segmentation of text
- into words, lines, or other segments. The structure is based on
- [<a href=
- "https://www.unicode.org/reports/tr41/#UAX29">UAX29</a>]
- notation, but adapted to be machine-readable. It uses a list of
- variables (representing character classes) and a list of rules.
- Each must have an id attribute.</p>
- <p>The rules in <i>root</i> implement the segmentations found
- in [<a href=
- "https://www.unicode.org/reports/tr41/#UAX29">UAX29</a>] and
- [<a href=
- "https://www.unicode.org/reports/tr41/#UAX14">UAX14</a>], for
- grapheme clusters, words, sentences, and lines. They can be
- overridden by rules in child locales.</p>
- <p>Here is an example:</p>
- <pre><segmentations>
- <segmentation type="GraphemeClusterBreak">
- <variables>
- <variable id="$CR">\p{Grapheme_Cluster_Break=CR}</variable>
- <variable id="$LF">\p{Grapheme_Cluster_Break=LF}</variable>
- <variable id="$Control">\p{Grapheme_Cluster_Break=Control}</variable>
- <variable id="$Extend">\p{Grapheme_Cluster_Break=Extend}</variable>
- <variable id="$L">\p{Grapheme_Cluster_Break=L}</variable>
- <variable id="$V">\p{Grapheme_Cluster_Break=V}</variable>
- <variable id="$T">\p{Grapheme_Cluster_Break=T}</variable>
- <variable id="$LV">\p{Grapheme_Cluster_Break=LV}</variable>
- <variable id="$LVT">\p{Grapheme_Cluster_Break=LVT}</variable>
- </variables>
- <segmentRules>
- <rule id="3"> $CR × $LF </rule>
- <rule id="4"> ( $Control | $CR | $LF ) ÷ </rule>
- <rule id="5"> ÷ ( $Control | $CR | $LF ) </rule>
- <rule id="6"> $L × ( $L | $V | $LV | $LVT ) </rule>
- <rule id="7"> ( $LV | $V ) × ( $V | $T ) </rule>
- <rule id="8"> ( $LVT | $T) × $T </rule>
- <rule id="9"> × $Extend </rule>
- </segmentRules>
- </segmentation>
-...</pre>
- <p><b>Variables:</b> All variable ids must start with a $, and
- otherwise be valid identifiers according to the Unicode
- definitions in [<a href=
- "https://www.unicode.org/reports/tr41/#UAX31">UAX31</a>]. The
- contents of a variable is a regular expression using variables
- and <a href="tr35.html#Unicode_Sets">UnicodeSet</a>s. The
- ordering of variables is important; they are evaluated in order
- from first to last (see <i><a href=
- "#Segmentation_Inheritance">Section 9.1 Segmentation
- Inheritance</a></i>). It is an error to use a variable before
- it is defined.</p>
- <p><b>Rules:</b> The contents of a rule uses the syntax of
- [<a href=
- "https://www.unicode.org/reports/tr41/#UAX29">UAX29</a>]. The
- rules are evaluated in numeric id order (which may not be the
- order in which the appear in the file). The first rule that
- matches determines the status of a boundary position, that is,
- whether it breaks or not. Thus ÷ means a break is allowed; ×
- means a break is forbidden. It is an error if the rule does not
- contain exactly one of these characters (except where a rule
- has no contents at all, or if the rule uses a variable that has
- not been defined.</p>
- <p>There are some implicit rules:</p>
- <ul>
- <li>The implicit initial rules are always "start-of-text ÷"
- and "÷ end-of-text"; these are not to be included
- explicitly.</li>
- <li>The implicit final rule is always "Any ÷ Any". This is
- not to be included explicitly.</li>
- </ul>
- <blockquote>
- <p><b>Note:</b> A rule like X Format* -> X in [<a href=
- "https://www.unicode.org/reports/tr41/#UAX29">UAX29</a>] and
- [<a href=
- "https://www.unicode.org/reports/tr41/#UAX14">UAX14</a>] is
- not supported. Instead, this needs to be expressed as normal
- regular expressions. The normal way to support this is to
- modify the variables, such as in the following example:</p>
- <pre id="line870">
- <variable id="$Format">\p{Word_Break=Format}</variable>
-<variable id="$Katakana">\p{Word_Break=Katakana}</variable>
-...
-<!-- In place of rule 3, add format and extend to everything -->
-<variable id="$X">[$Format $Extend]*</variable>
-<variable id="$Katakana">($Katakana $X)</variable>
-<variable id="$ALetter">($ALetter $X)</variable>
-...</pre>
- </blockquote>
- <h3>9.1 <a name="Segmentation_Inheritance" href=
- "#Segmentation_Inheritance" id=
- "Segmentation_Inheritance">Segmentation Inheritance</a></h3>
- <p>Variables and rules both inherit from the parent.</p>
- <p><b>Variables:</b> The child's variable list is logically
- appended to the parent's, and evaluated in that order. For
- example:</p>
- <p><font color="#0000FF"><code>// in parent</code></font>
- <code><br>
- <variable id="$AL">[:linebreak=AL:]</variable><br>
- <variable
- id="$YY">[[:linebreak=XX:]$AL]</variable></code>
- <font color="#0000FF"><code>// adds $AL</code></font></p>
- <p><font color="#0000FF"><code>// in child</code></font>
- <code><br>
- <variable id="$AL">[$AL &&
- [^a-z]]</variable> <font color="#0000FF">// changes $AL,
- does not affect $YY</font><br>
- <variable id="$ABC">[abc]</variable></code>
- <font color="#0000FF"><code>// adds new rule</code></font></p>
- <p><b>Rules:</b> The rules are also logically appended to the
- parent's. Because rules are evaluated in numeric id order, to
- insert a rule in between others just requires using an
- intermediate number. For example, to insert a rule after
- id="10.1" and before id="10.2", just use id="10.15". To delete
- a rule, use empty contents, such as:</p>
- <p><code><rule id="3"/></code> <font color=
- "#0000FF"><code>// deletes rule 3</code></font></p>
- <h3>9.2 <a name="Segmentation_Exceptions" href=
- "#Segmentation_Exceptions" id=
- "Segmentation_Exceptions">Segmentation Suppressions</a></h3>
- <p><b>Note:</b> As of CLDR 26, the
- <code><suppressions></code> data is to be considered a
- technology preview. Data currently in CLDR was extracted from
- the Unicode Localization Interoperability project, or ULI. See
- <a href="http://uli.unicode.org">http://uli.unicode.org</a> for
- more information on the ULI project.</p>
- <p>The segmentation <b>suppressions</b> list provides a set of
- cases which, though otherwise identified as a segment by rules,
- should be skipped (suppressed) during segmentation.</p>
- <p>For example, in the English phrase "Mr. Smith", CLDR
- segmentation rules would normally find a Sentence Break between
- "Mr" and "Smith". However, typically, "Mr." is just an
- abbreviation for "Mister", and not actually the end of a
- sentence.</p>
- <p>Each suppression has a separate
- <code><suppression></code> element, whose contents are
- the break to be skipped.</p>
- <p>Example:</p>
- <pre>
- <segmentation type="SentenceBreak">
- <suppressions type="standard" draft="provisional">
- <suppression>Maj.</suppression>
- <suppression>Mr.</suppression>
- <suppression>Lt.Cdr.</suppression>
- . . .
- </suppressions>
- </segmentation>
- </pre>
- <p><b>Note:</b> These elements were called
- <code><exceptions></code> and
- <code><exception></code> prior to CLDR 26, but those
- names are now deprecated.</p>
- <h2>10 <a name="Transforms" href="#Transforms" id=
- "Transforms">Transforms</a></h2>
- <p>Transforms provide a set of rules for transforming text via
- a specialized set of context-sensitive matching rules. They are
- commonly used for transliterations or transcriptions, but also
- other transformations such as full-width to half-width (for
- <i>katakana</i> characters). The rules can be simple one-to-one
- relationships between characters, or involve more complicated
- mappings. Here is an example:</p>
- <pre>
- <transform source="Greek" target="Latin" variant="UNGEGN" direction="both">
-...
- <comment>Useful variables</comment>
- <tRule>$gammaLike = [ΓΚΞΧγκξχϰ] ;</tRule>
- <tRule>$egammaLike = [GKXCgkxc] ;</tRule>
-...
- <comment>Rules are predicated on running NFD first, and NFC afterwards</comment>
- <tRule>::NFD (NFC) ;</tRule>
-...
- <tRule>λ ↔ l ;</tRule>
- <tRule>Λ ↔ L ;</tRule>
-...
- <tRule>γ } $gammaLike ↔ n } $egammaLike ;</tRule>
- <tRule>γ ↔ g ;</tRule>
-...
- <tRule>::NFC (NFD) ;</tRule>
-...
-</transform></pre>
- <p>The source and target values are valid locale identifiers,
- where 'und' means an unspecified language, plus some additional
- extensions.</p>
- <ul>
- <li>The long names of a script according to [<a href=
- "https://www.unicode.org/reports/tr41/#UAX24">UAX24</a>] may
- be used instead of the short script codes. The script
- identifier may also omit und; that is, "und_Latn" may be
- written as just "Latn".</li>
- <li>The long names of the English languages may also be used
- instead of the languages.</li>
- <li>The term "Any" may be used instead of a solitary
- "und".</li>
- <li>Other identifiers may be used for special purposes. In
- CLDR, these include: Accents, Digit, Fullwidth, Halfwidth,
- Jamo, NumericPinyin, Pinyin, Publishing, Tone. (Other than
- these values, valid private use locale identifiers should be
- used, such as "x-Special".)</li>
- <li>When presenting localizing transform names, the "und_" is
- normally omitted. Thus for a transliterator with the ID
- "und_Latn-und_Grek" (or the equivalent "Latin-Greek"), the
- translated name for Greek would be Λατινικό-Ελληνικό.</li>
- </ul>
- <p>In version 29.0, BCP47 identifiers were added as aliases
- (while retaining the old identifiers). The following table
- shows the relationship between the old identifiers and the
- BCP47 format identifiers.</p>
- <table class='simple'>
- <tbody>
- <tr>
- <th>Old ID</th>
- <th>BCP47 ID</th>
- <th>Comments</th>
- </tr>
- <tr>
- <td><strong>es_FONIPA</strong>-es_419_FONIPA</td>
- <td>es-419-fonipa-t-<strong>es-fonipa</strong></td>
- <td rowspan="2">The order reverses with -t-. That is, the
- language subtag part is what results.</td>
- </tr>
- <tr>
- <td><strong>hy_AREVMDA</strong>-hy_AREVMDA_FONIPA</td>
- <td>hy-arevmda-fonipa-t-<strong>hy-arevmda</strong></td>
- </tr>
- <tr>
- <td><strong>Devanagari</strong>-Latin</td>
- <td>und-Latn-t-<strong>und-deva</strong></td>
- <td rowspan="2">Scripts add <strong>und-</strong></td>
- </tr>
- <tr>
- <td><strong>Latin</strong>-Devanagari</td>
- <td>und-Deva-t-<strong>und-latn</strong></td>
- </tr>
- <tr>
- <td>Greek-Latin/UNGEGN</td>
- <td>und-Latn-t-und-grek-<strong>m0-ungegn</strong></td>
- <td>Variants use the <strong>-m0-</strong> key.</td>
- </tr>
- <tr>
- <td>Russian-Latin/BGN</td>
- <td>ru<strong>-Latn</strong>-t-ru-m0-bgn</td>
- <td>Languages will have a script when it isn’t the
- default.</td>
- </tr>
- <tr>
- <td>Any-Hex/xml</td>
- <td>und-t-<strong>d0-hex</strong>-m0-xml</td>
- <td rowspan="2"><strong>Any</strong> becomes
- <strong>und</strong>, and keys <strong>d0</strong>
- (destination) and <strong>s0</strong> (source) are used
- for non-locales.</td>
- </tr>
- <tr>
- <td>Hex-Any/xml</td>
- <td>und-t-<strong>s0-hex</strong>-m0-xml</td>
- </tr>
- <tr>
- <td>Any-<strong>Publishing</strong></td>
- <td>und-t-d0-<strong>publish</strong></td>
- <td rowspan="2">Non-locales are normally the lowercases
- of the old ID, but may change because of BCP47 length
- restrictions.</td>
- </tr>
- <tr>
- <td><strong>Publishing</strong>-Any</td>
- <td>und-t-s0-<strong>publish</strong></td>
- </tr>
- </tbody>
- </table>
- <p>Note that the script and region codes are cased iff they are
- in the main subtag, but are lowercase in extensions.</p>
- <h3>10.1 <a name="Inheritance" href="#Inheritance" id=
- "Inheritance">Inheritance</a></h3>
- <p>The CLDR transforms are built using the following locale
- inheritance. While this inheritance is not required of LDML
- implementations, the transforms supplied with CLDR may not
- otherwise behave as expected without some changes.</p>
- <p>For either the source or the target, the fallback starts
- from the maximized locale ID (using the likely-subtags data).
- It also uses the country for lookup before the base language is
- reached, and root is never accessed: instead the script(s)
- associated with the language are used. Where there are multiple
- scripts, the maximized script is tried first, and then the
- other scripts associated with the language (from supplemental
- data).</p>
- <p>For example, see the bolded items below in the fallback
- chain for <strong>az_IR</strong>.</p>
- <table>
- <tr>
- <th> </th>
- <th>Locale ID</th>
- <th>Comments</th>
- </tr>
- <tr>
- <td>1</td>
- <td><strong>az_Arab_IR</strong></td>
- <td>The maximized locale for az_IR</td>
- </tr>
- <tr>
- <td>2</td>
- <td>az_Arab</td>
- <td>Normal fallback</td>
- </tr>
- <tr>
- <td>3</td>
- <td><strong>az_IR</strong></td>
- <td>Inserted country locale</td>
- </tr>
- <tr>
- <td>4</td>
- <td>az</td>
- <td>Normal fallback</td>
- </tr>
- <tr>
- <td>5</td>
- <td><strong>Arab</strong></td>
- <td>Maximized script</td>
- </tr>
- <tr>
- <td>6</td>
- <td><strong>Cyrl</strong></td>
- <td>Other associated script</td>
- </tr>
- </table>
- <p>The source, target, and variant use "laddered" fallback,
- where the source changes the most quickly (using the above
- rules), then the target (using the above rules), then the
- variant if any, is discarded. That is, in pseudo code:</p>
- <ul>
- <li>for variant in {variant, ""}
- <ul>
- <li>for target in target-chain
- <ul>
- <li>for source in source-chain
- <ul>
- <li>transform = lookup source-target/variant</li>
- <li>if transform != null return transform</li>
- </ul>
- </li>
- </ul>
- </li>
- </ul>
- </li>
- </ul>
- <p>For example, here is the fallback chain for
- <strong>ru_RU-el_GR/BGN</strong>.</p>
- <div align="center">
- <table>
- <tr>
- <th>source</th>
- <th> </th>
- <th>target</th>
- <th>variant</th>
- </tr>
- <tr>
- <td>ru_RU</td>
- <td>-</td>
- <td>el_GR</td>
- <td>/BGN</td>
- </tr>
- <tr>
- <td>ru</td>
- <td>-</td>
- <td>el_GR</td>
- <td>/BGN</td>
- </tr>
- <tr>
- <td>Cyrl</td>
- <td>-</td>
- <td>el_GR</td>
- <td>/BGN</td>
- </tr>
- <tr>
- <td>ru_RU</td>
- <td>-</td>
- <td>el</td>
- <td>/BGN</td>
- </tr>
- <tr>
- <td>ru</td>
- <td>-</td>
- <td>el</td>
- <td>/BGN</td>
- </tr>
- <tr>
- <td>Cyrl</td>
- <td>-</td>
- <td>el</td>
- <td>/BGN</td>
- </tr>
- <tr>
- <td>ru_RU</td>
- <td>-</td>
- <td>Grek</td>
- <td>/BGN</td>
- </tr>
- <tr>
- <td>ru</td>
- <td>-</td>
- <td>Grek</td>
- <td>/BGN</td>
- </tr>
- <tr>
- <td>Cyrl</td>
- <td>-</td>
- <td>Grek</td>
- <td>/BGN</td>
- </tr>
- <tr>
- <td>ru_RU</td>
- <td>-</td>
- <td>el_GR</td>
- <td></td>
- </tr>
- <tr>
- <td>ru</td>
- <td>-</td>
- <td>el_GR</td>
- <td></td>
- </tr>
- <tr>
- <td>Cyrl</td>
- <td>-</td>
- <td>el_GR</td>
- <td></td>
- </tr>
- <tr>
- <td>ru_RU</td>
- <td>-</td>
- <td>el</td>
- <td></td>
- </tr>
- <tr>
- <td>ru</td>
- <td>-</td>
- <td>el</td>
- <td></td>
- </tr>
- <tr>
- <td>Cyrl</td>
- <td>-</td>
- <td>el</td>
- <td></td>
- </tr>
- <tr>
- <td>ru_RU</td>
- <td>-</td>
- <td>Grek</td>
- <td></td>
- </tr>
- <tr>
- <td>ru</td>
- <td>-</td>
- <td>Grek</td>
- <td></td>
- </tr>
- <tr>
- <td>Cyrl</td>
- <td>-</td>
- <td>Grek</td>
- <td></td>
- </tr>
- </table>
- </div>
- <p>Japanese and Korean are special, since they can be
- represented by combined script codes, such as ja_Jpan, ja_Hrkt,
- ja_Hira, or ja_Kana. These need to be considered in the above
- fallback chain as well.</p>
- <h4>10.1.1 <a name="Pivots" href="#Pivots" id=
- "Pivots">Pivots</a></h4>
- <p>Transforms can also use <i>pivots</i>. These are used when
- there is no direct transform between a source and target, but
- there are transforms X-Y and Y-Z. In such a case, the
- transforms can be internally chained to get X-Y = X-Y;Y-Z. This
- is done explicitly with the Indic script transforms: to get
- Devanagari-Latin, internally it is done by transforming first
- from Devanagari to Interindic (an internal superset encoding
- for Indic scripts), then from Interindic to Latin. This allows
- there to be only N sets of transform rules for the Indic
- scripts: each one to and from Interindic. These pivots are
- explicitly represented in the CLDR transforms.</p>
- <p>Note that the characters currently used by Interindic are
- private use characters. To prevent those from “leaking” out
- into text, transforms converting from Interindic must ensure
- that they convert all the possible values used in
- Interindic.</p>
- <p>The pivots can also be produced automatically (implicitly),
- as a fallback. A particularly useful pivot is IPA, since that
- tends to preserve pronunciation. For example, <em>Czech to
- IPA</em> can be chained with <em>IPA to Katakana</em> to get
- <em>Czech to Katakana</em>.</p>
- <p>CLDR often has special forms of IPA: not just "und-FONIPA"
- but "cs-FONIPA": specifically IPA that has come from Czech.
- These variants typically preserve some features of the source
- language — such as double consonants — that are
- indistinguishable from single consonants in that language, but
- that are often preserved in traditional transliterations. Thus
- when matching prospective pivots, FONIPA is treated specially.
- If there is an exact match, that match is used (such as
- cs-cs_FONIPA + cs_FONIPA-ko). Otherwise, the language is
- ignored, as for example in cs-cs_FONIPA + ru_FONIPA-ko.</p>
- <p>The interaction of implicit pivots and inheritance may
- result in a longer inheritance chain lookup than desired, so
- implementers may consider having some sort of caching mechanism
- to increase performance.</p>
- <h3>10.2 <a name="Variants" href="#Variants" id=
- "Variants">Variants</a></h3>
- <p>Variants used in CLDR include UNGEGN and BGN, both
- indicating sources for transliterations. There is an additional
- attribute <code>private="true"</code> which is used to indicate
- that the transform is meant for internal use, and should not be
- displayed as a separate choice in a UI.</p>
- <p>There are many different systems of transliteration. The
- goal for the "unqualified" script transliterations are</p>
- <ol>
- <li>to be lossless when going to Latin and back</li>
- <li>to be as lossless as possible when going to other
- scripts</li>
- <li>to abide by a common standard as much as possible
- (possibly supplemented to meet goals 1 and 2).</li>
- </ol>
- <p>Language-to-language transliterations, and variant
- script-to-script transliterations are generally transcriptions,
- and not expected to be lossless.</p>
- <p>Additional transliterations may also be defined, such as
- customized language-specific transliterations (such as between
- Russian and French), or those that match a particular
- transliteration standard, such as the following:</p>
- <ul>
- <li>UNGEGN - United Nations Group of Experts on Geographical
- Names</li>
- <li>BGN - United States Board on Geographic Names</li>
- <li>ISO9 - ISO/IEC 9</li>
- <li>ISO15915 - ISO/IEC 15915</li>
- <li>ISCII91 - ISCII 91</li>
- <li>KMOCT - South Korean Ministry of Culture &
- Tourism</li>
- <li>USLC - US Library of Congress</li>
- <li>UKPCGN - Permanent Committee on Geographical Names for
- British Official Use</li>
- <li>RUGOST - Russian Main Administration of Geodesy and
- Cartography</li>
- </ul>
- <p>The rules for transforms are described in Section 10.3
- <a href="#Transform_Rules_Syntax">Transform Rules Syntax</a>.
- For more information on Transliteration, see <a href=
- "http://cldr.unicode.org/index/cldr-spec/transliteration-guidelines">
- Transliteration Guidelines</a>.</p>
- <h3>10.3 <a name="Transform_Rules_Syntax" href=
- "#Transform_Rules_Syntax" id="Transform_Rules_Syntax">Transform
- Rules Syntax</a></h3>
- <p class="dtd"><!ELEMENT transforms ( transform*) ><br>
- <!ELEMENT transform ((comment | tRule)*) ><br>
- <!ATTLIST transform source CDATA #IMPLIED ><br>
- <!ATTLIST transform target CDATA #IMPLIED ><br>
- <!ATTLIST transform variant CDATA #IMPLIED ><br>
- <!ATTLIST transform direction ( forward | backward | both )
- "both" ><br>
- <!ATTLIST transform alias CDATA #IMPLIED ><br>
- <!--@VALUE--><br>
- <!ATTLIST transform backwardAlias CDATA #IMPLIED ><br>
- <!--@VALUE--><br>
- <!ATTLIST transform visibility ( internal | external )
- "external" ><br>
- <!ELEMENT comment (#PCDATA) ><br>
- <!ELEMENT tRule (#PCDATA) ></p>
- <p>The transform attributes indicate the
- <strong>source</strong>, <strong>target</strong>,
- <strong>direction</strong>, and <strong>alias</strong>es. For
- example:</p>
- <p class='example'><transform<br>
- source="ja_Hrkt"<br>
- target="ja_Latn"<br>
- variant="BGN"<br>
- direction="forward"<br>
- draft="provisional"<br>
- alias="Katakana-Latin/BGN
- ja-Latn-t-ja-hrkt-m0-bgn"></p>
- <p>The direction is either <strong>forward</strong> or
- <strong>both</strong> (<strong>backward</strong> is possible in
- theory, but not used). This indicates which directions the
- rules support.</p>
- <p>If the direction is <strong>forward</strong>, then an ID is
- composed from <strong>target + "-" + source + "/" +
- variant</strong>. If the direction is <strong>both</strong>,
- then the inverse ID is also value: <strong>source + "-" +
- target + "/" + variant</strong>. The <strong>alias</strong>
- attribute contains a space-delimited list of alternant forward
- IDs, while the <strong>backwardAlias</strong> contains a
- space-delimited list of alternant backward IDs. The BCP47
- versions of the IDs will be in the <strong>alias</strong>
- and/or <strong>backwardAlias</strong> attributes.</p>
- <p>The <strong>visibility</strong> attribute indicates whether
- the IDs should be externally visible, or whether they are only
- used internally.</p>
- <p>In previous versions, the rules were expressed as
- fine-grained XML. That was discarded in CLDR version 29, in
- favor of a simpler format where the separate rules are simply
- terminated with ";".</p>
- <p>The transform rules are similar to regular-expression
- substitutions, but adapted to the specific domain of text
- transformations. The rules and comments in this discussion will
- be intermixed, with # marking the comments. The simplest rule
- is a conversion rule, which replaces one string of characters
- with another. The conversion rule takes the following form:</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>xy → z
- ;</code></td>
- </tr>
- </table>
- <p>This converts any substring "xy" into "z". Rules are
- executed in order; consider the following rules:</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>sch → sh ;<br>
- ss → z ;</code></td>
- </tr>
- </table>
- <p>This conversion rule transforms "bass school" into "baz
- shool". The transform walks through the string from start to
- finish. Thus given the rules above "bassch" will convert to
- "bazch", because the "ss" rule is found before the "sch" rule
- in the string (later, we'll see a way to override this
- behavior). If two rules can both apply at a given point in the
- string, then the transform applies the first rule in the
- list.</p>
- <p>All of the ASCII characters except numbers and letters are
- reserved for use in the rule syntax, as are the characters →,
- ←, ↔. Normally, these characters do not need to be converted.
- However, to convert them use either a pair of single quotes or
- a slash. The pair of single quotes can be used to surround a
- whole string of text. The slash affects only the character
- immediately after it. For example, to convert from a
- U+2190 ( ← ) LEFTWARDS ARROW to the string
- "arrow sign" (with a space), use one of the following
- rules:</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>\←
- → arrow\ sign ;<br>
- '←' → 'arrow sign' ;<br>
- '←' → arrow' 'sign ;</code></td>
- </tr>
- </table>
- <p>Spaces may be inserted anywhere without any effect on the
- rules. Use extra space to separate items out for clarity
- without worrying about the effects. This feature is
- particularly useful with combining marks; it is handy to put
- some spaces around it to separate it from the surrounding text.
- The following is an example:</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code> → i ; # an
- iota-subscript diacritic turns into an i.</code></td>
- </tr>
- </table>
- <p>For a real space in the rules, place quotes around it. For a
- real backslash, either double it \\, or quote it '\'. For a
- real single quote, double it '', or place a backslash before it
- \'.</p>
- <p>Any text that starts with a hash mark and concludes a line
- is a comment. Comments help document how the rules work. The
- following shows a comment in a rule:</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>x → ks ; # change
- every x into ks</code></td>
- </tr>
- </table>
- <p>The “\u” and “\x” hex notations can be used instead of any
- letter. For instance, instead of using the Greek π, one could
- write either of the following:</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>\u03C0 → p ;<br>
- \x{3C0} → p ;</code></td>
- </tr>
- </table>
- <p>One can also define and use variables, such as:</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>$pi = \u03C0 ;<br>
- $pi → p ;</code></td>
- </tr>
- </table>
- <h4>10.3.1 <a name="Dual_Rules" href="#Dual_Rules" id=
- "Dual_Rules">Dual Rules</a></h4>
- <p>Rules can also specify what happens when an inverse
- transform is formed. To do this, we reverse the direction of
- the "←" sign. Thus the above example becomes:</p>
- <table cellspacing="0" cellpadding="8">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>$pi ← p
- ;</code></td>
- </tr>
- </table>
- <p>With the inverse transform, "p" will convert to the Greek p.
- These two directions can be combined together into a dual
- conversion rule by using the "↔" operator, yielding:</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>$pi ↔ p
- ;</code></td>
- </tr>
- </table>
- <h4>10.3.2 <a name="Context" href="#Context" id=
- "Context">Context</a></h4>
- <p>Context can be used to have the results of a transformation
- be different depending on the characters before or after. The
- following rule removes hyphens, but only when they follow
- lowercase characters:</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>[:Lowercase:] {
- '-' → ;</code></td>
- </tr>
- </table>
- <p>Contexts can be before or after or both, such as in a rule
- to remove hyphens between lowercase and uppercase letters:</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>[:Lowercase:] {
- '-' } [:Uppercase:] → ;</code></td>
- </tr>
- </table>
- <p>Each context is optional and may be empty; the following two
- rules are equivalent:</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>$pi ↔ p ;<br>
- {$pi} ↔ {p} ;</code></td>
- </tr>
- </table>
- <p>The context itself ([: <code>Lowercase</code> :]) is
- unaffected by the replacement; only the text within braces is
- changed.</p>
- <p>Character classes (UnicodeSets) in the contexts can contain
- the special symbol $, which means “off either end of the
- string”. It is roughly similar to $ and ^ in regex. Unlike
- normal regex, however, it can occur in character classes. Thus
- the following rule removes hyphens that are after lowercase
- characters, <em>or</em> are at the start of a string.</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>[[:Lowercase:]$]
- {'-' → ;</code></td>
- </tr>
- </table>
- <p>Thus the negation of a UnicodeSet will normally also match
- before or after the end of a string. The following will remove
- hyphens that are not after lowercase characters<em>, including
- hyphens at the start of a string</em>.</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>[^[:Lowercase:]]
- {'-' → ;</code></td>
- </tr>
- </table>
- <p>It will thus convert “-B A-B a-b” to “B AB a-b”.</p>
- <h4>10.3.3 <a name="Revisiting" href="#Revisiting" id=
- "Revisiting">Revisiting</a></h4>
- <p>If the resulting text contains a vertical bar "|", then that
- means that processing will proceed from that point and that the
- transform will revisit part of the resulting text. Thus the |
- marks a "cursor" position. For example, if we have the
- following, then the string "xa" will convert to "w".</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>x → y | z ;<br>
- z a → w;</code></td>
- </tr>
- </table>
- <p>First, "xa" is converted to "yza". Then the processing will
- continue from after the character "y", pick up the "za", and
- convert it. Had we not had the "|", the result would have been
- simply "yza". The '@' character can be used as filler character
- to place the revisiting point off the start or end of the
- string. Thus the following causes x to be replaced, and the
- cursor to be backed up by two characters.</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>x →
- |@@y;</code></td>
- </tr>
- </table>
- <h4>10.3.4 <a name="Example" href="#Example" id=
- "Example">Example</a></h4>
- <p>The following shows how these features are combined together
- in the Transliterator "Any-Publishing". This transform converts
- the ASCII typewriter conventions into text more suitable for
- desktop publishing (in English). It turns straight quotation
- marks or UNIX style quotation marks into curly quotation marks,
- fixes multiple spaces, and converts double-hyphens into a
- dash.</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code># Variables<br>
- <br>
- $single = \' ;<br>
- $space = ' ' ;<br>
- $double = \" ;<br>
- $back = \` ;<br>
- $tab = '\u0008' ;<br>
- <br>
- # the following is for spaces, line ends, (, [, {, ...<br>
- $makeRight = [[:separator:][:start punctuation:][:initial
- punctuation:]] ;<br>
- <br>
- # fix UNIX quotes<br>
- <br>
- $back $back → “ ; # generate right d.q.m. (double quotation
- mark)<br>
- $back → ‘ ;<br>
- <br>
- # fix typewriter quotes, by context<br>
- <br>
- $makeRight { $double ↔ “ ; # convert a double to right
- d.q.m. after certain chars<br>
- ^ { $double → “ ; # convert a double at the start of the
- line.<br>
- $double ↔ ” ; # otherwise convert to a left q.m.<br>
- <br>
- $makeRight {$single} ↔ ‘ ; # do the same for s.q.m.s<br>
- ^ {$single} → ‘ ;<br>
- $single ↔ ’;<br>
- <br>
- # fix multiple spaces and hyphens<br>
- <br>
- $space {$space} → ; # collapse multiple spaces<br>
- '--' ↔ — ; # convert fake dash into real one</code></td>
- </tr>
- </table>
- <p>There is an online demo where the rules can be tested,
- at:</p>
- <p><a target="demo" href=
- "https://util.unicode.org/UnicodeJsps/transform.jsp">http://unicode.org/cldr/utility/transform.jsp</a></p>
- <h4>10.3.5 <a name="Rule_Syntax" href="#Rule_Syntax" id=
- "Rule_Syntax">Rule Syntax</a></h4>
- <p>The following describes the full format of the list of rules
- used to create a transform. Each rule in the list is terminated
- by a semicolon. The list consists of the following:</p>
- <ul>
- <li>an optional filter rule</li>
- <li>zero or more transform rules</li>
- <li>zero or more variable-definition rules</li>
- <li>zero or more conversion rules</li>
- <li>an optional inverse filter rule</li>
- </ul>
- <p>The filter rule, if present, must appear at the beginning of
- the list, before any of the other rules. The inverse
- filter rule, if present, must appear at the end of the list,
- after all of the other rules. The other rules may occur
- in any order and be freely intermixed.</p>
- <p>The rule list can also generate the inverse of the
- transform. In that case, the inverse of each of the rules is
- used, as described below.</p>
- <h4>10.3.6 <a name="Transform_Rules" href="#Transform_Rules"
- id="Transform_Rules">Transform Rules</a></h4>
- <p>Each transform rule consists of two colons followed by a
- transform name, which is of the form source-target. For
- example:</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>:: NFD ;<br>
- :: und_Latn-und_Greek ;<br>
- :: Latin-Greek; # alternate form</code></td>
- </tr>
- </table>
- <p>If either the source or target is 'und', it can be omitted,
- thus 'und_NFC' is equivalent to 'NFC'. For compatibility, the
- English names for scripts can be used instead of the und_Latn
- locale name, and "Any" can be used instead of "und". Case is
- not significant.</p>
- <p>The following transforms are defined not by rules, but by
- the operations in the Unicode Standard, and may be used in
- building any other transform:</p>
- <blockquote>
- <b>Any-NFC, Any-NFD, Any-NFKD, Any-NFKC</b> - the
- normalization forms defined by [<a href=
- "https://www.unicode.org/reports/tr41/#UAX15">UAX15</a>].<br>
- <p><b>Any-Lower, Any-Upper, Any-Title</b> - full case
- transformations, defined by [<a href=
- "tr35.html#Unicode">Unicode</a>] Chapter 3.</p>
- </blockquote>
- <p>In addition, the following special cases are defined:</p>
- <blockquote>
- <b>Any-Null</b> - has no effect; that is, each character is
- left alone.<br>
- <b>Any-Remove</b> - maps each character to the empty string;
- this, removes each character.
- </blockquote>
- <p>The inverse of a transform rule uses parentheses to indicate
- what should be done when the inverse transform is used. For
- example:</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>:: lower () ; #
- only executed for the normal<br>
- :: (lower) ; # only executed for the inverse<br>
- :: lower ; # executed for both the normal and the
- inverse</code></td>
- </tr>
- </table>
- <h4>10.3.7 <a name="Variable_Definition_Rules" href=
- "#Variable_Definition_Rules" id=
- "Variable_Definition_Rules">Variable Definition Rules</a></h4>
- <p>Each variable definition is of the following form:</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>$variableName =
- contents ;</code></td>
- </tr>
- </table>
- <p>The variable name can contain letters and digits, but must
- start with a letter. More precisely, the variable names use
- Unicode identifiers as defined by [<a href=
- "https://www.unicode.org/reports/tr41/#UAX31">UAX31</a>]. The
- identifier properties allow for the use of foreign letters and
- numbers.</p>
- <p>The contents of a variable definition is any sequence of
- Unicode sets and characters or characters. For example:</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>$mac = M [aA] [cC]
- ;</code></td>
- </tr>
- </table>
- <p>Variables are only replaced within other variable definition
- rules and within conversion rules. They have no effect on
- transliteration rules.</p>
- <h4>10.3.8 <a name="Filter_Rules" href="#Filter_Rules" id=
- "Filter_Rules">Filter Rules</a></h4>
- <p>A filter rule consists of two colons followed by a
- UnicodeSet. This filter is global in that only the characters
- matching the filter will be affected by any transform rules or
- conversion rules. The inverse filter rule consists of two
- colons followed by a UnicodeSet in parentheses. This filter is
- also global for the inverse transform.</p>
- <p>For example, the Hiragana-Latin transform can be implemented
- by "pivoting" through the Katakana converter, as follows:</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>:: [:^Katakana:] ;
- # do not touch any katakana that was in the text!<br>
- :: Hiragana-Katakana;<br>
- :: Katakana-Latin;<br>
- :: ([:^Katakana:]) ; # do not touch any katakana that was
- in the text<br>
-
- # for the inverse either!</code></td>
- </tr>
- </table>
- <p>The filters keep the transform from mistakenly converting
- any of the "pivot" characters. Note that this is a case where a
- rule list contains no conversion rules at all, just transform
- rules and filters.</p>
- <h4>10.3.9 <a name="Conversion_Rules" href="#Conversion_Rules"
- id="Conversion_Rules">Conversion Rules</a></h4>
- <p>Conversion rules can be forward, backward, or double. The
- complete conversion rule syntax is described below:</p>
- <p><b>Forward</b></p>
- <blockquote>
- <p>A forward conversion rule is of the following form:</p>
- <blockquote>
- <pre>
- before_context { text_to_replace } after_context → completed_result | result_to_revisit ;</pre>
- </blockquote>
- <p>If there is no before_context, then the "{" can be
- omitted. If there is no after_context, then the "}" can be
- omitted. If there is no result_to_revisit, then the "|" can
- be omitted. A forward conversion rule is only executed for
- the normal transform and is ignored when generating the
- inverse transform.</p>
- </blockquote>
- <p><b>Backward</b></p>
- <blockquote>
- <p>A backward conversion rule is of the following form:</p>
- <blockquote>
- <pre>
- completed_result | result_to_revisit ← before_context { text_to_replace } after_context ;</pre>
- </blockquote>
- <p>The same omission rules apply as in the case of forward
- conversion rules. A backward conversion rule is only executed
- for the inverse transform and is ignored when generating the
- normal transform.</p>
- </blockquote>
- <p><b>Dual</b></p>
- <blockquote>
- <p>A dual conversion rule combines a forward conversion rule
- and a backward conversion rule into one, as discussed above.
- It is of the form:</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>a { b | c } d ↔
- e { f | g } h ;</code></td>
- </tr>
- </table>
- <p>When generating the normal transform and the inverse, the
- revisit mark "|" and the before and after contexts are
- ignored on the sides where they do not belong. Thus, the
- above is exactly equivalent to the sequence of the following
- two rules:</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>a { b c }
- d → f | g ;<br>
- b | c ← e { f g } h ; </code></td>
- </tr>
- </table>
- </blockquote>
- <h4>10.3.10 <a name=
- "Intermixing_Transform_Rules_and_Conversion_Rules" href=
- "#Intermixing_Transform_Rules_and_Conversion_Rules" id=
- "Intermixing_Transform_Rules_and_Conversion_Rules">Intermixing
- Transform Rules and Conversion Rules</a></h4>
- <p>Transform rules and conversion rules may be freely
- intermixed. Inserting a transform rule into the middle of a set
- of conversion rules has an important side effect.</p>
- <p>Normally, conversion rules are considered together as a
- group. The only time their order in the rule set is
- important is when more than one rule matches at the same point
- in the string. In that case, the one that occurs earlier
- in the rule set wins. In all other situations, when
- multiple rules match overlapping parts of the string, the one
- that matches earlier wins.</p>
- <p>Transform rules apply to the whole string. If you have
- several transform rules in a row, the first one is applied to
- the whole string, then the second one is applied to the whole
- string, and so on. To reconcile this behavior with the
- behavior of conversion rules, transform rules have the side
- effect of breaking a surrounding set of conversion rules into
- two groups: First all of the conversion rules before the
- transform rule are applied as a group to the whole string in
- the usual way, then the transform rule is applied to the whole
- string, and then the conversion rules after the transform rule
- are applied as a group to the whole string. For example,
- consider the following rules:</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>abc → xyz;<br>
- xyz → def;<br>
- ::Upper;</code></td>
- </tr>
- </table>
- <p>If you apply these rules to “abcxyz”, you get
- “XYZDEF”. If you move the “::Upper;” to the middle of the
- rule set and change the cases accordingly, then applying this
- to “abcxyz” produces “DEFDEF”.</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>abc → xyz;<br>
- ::Upper;<br>
- XYZ → DEF;</code></td>
- </tr>
- </table>
- <p>This is because “::Upper;” causes the transliterator to
- reset to the beginning of the string. The first rule turns the
- string into “xyzxyz”, the second rule upper cases the whole
- thing to “XYZXYZ”, and the third rule turns this into
- “DEFDEF”.</p>
- <p>This can be useful when a transform naturally occurs in
- multiple “passes.” Consider this rule set:</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>[:Separator:]* → '
- ';<br>
- 'high school' → 'H.S.';<br>
- 'middle school' → 'M.S.';<br>
- 'elementary school' → 'E.S.';</code></td>
- </tr>
- </table>
- <p>If you apply this rule to “high school”, you get “H.S.”, but
- if you apply it to “high school” (with two spaces), you
- just get “high school” (with one space). To have “high
- school” (with two spaces) turn into “H.S.”, you'd either have
- to have the first rule back up some arbitrary distance (far
- enough to see “elementary”, if you want all the rules to work),
- or you have to include the whole left-hand side of the first
- rule in the other rules, which can make them hard to read and
- maintain:</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>$space =
- [:Separator:]*;<br>
- high $space school → 'H.S.';<br>
- middle $space school → 'M.S.';<br>
- elementary $space school → 'E.S.';</code></td>
- </tr>
- </table>
- <p>Instead, you can simply insert “ <code>::Null;</code> ” in
- order to get things to work right:</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>[:Separator:]* → '
- ';<br>
- ::Null;<br>
- 'high school' → 'H.S.';<br>
- 'middle school' → 'M.S.';<br>
- 'elementary school' → 'E.S.';</code></td>
- </tr>
- </table>
- <p>The “::Null;” has no effect of its own (the null transform,
- by definition, does not do anything), but it splits the other
- rules into two “passes”: The first rule is applied to the whole
- string, normalizing all runs of white space into single spaces,
- and then we start over at the beginning of the string to look
- for the phrases. “high school” (with four
- spaces) gets correctly converted to “H.S.”.</p>
- <p>This can also sometimes be useful with rules that have
- overlapping domains. Consider this rule set from
- before:</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>sch → sh ;<br>
- ss → z ;</code></td>
- </tr>
- </table>
- <p>Apply this rule to “bassch” results in “bazch” because “ss”
- matches earlier in the string than “sch”. If you really wanted
- “bassh”—that is, if you wanted the first rule to win even when
- the second rule matches earlier in the string, you'd either
- have to add another rule for this special case...</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>sch → sh ;<br>
- ssch → ssh;<br>
- ss → z ;</code></td>
- </tr>
- </table>
- <p>...or you could use a transform rule to apply the
- conversions in two passes:</p>
- <table cellspacing="0" cellpadding="8" border="1">
- <tr>
- <td valign="top" bgcolor="#EEEEEE"><code>sch → sh ;<br>
- ::Null;<br>
- ss → z ;</code></td>
- </tr>
- </table>
- <h4>10.3.11 <a name="Inverse_Summary" href="#Inverse_Summary"
- id="Inverse_Summary">Inverse Summary</a></h4>
- <p>The following table shows how the same rule list generates
- two different transforms, where the inverse is restated in
- terms of forward rules (this is a contrived example, simply to
- show the reordering):</p>
- <table>
- <tr bgcolor="#99CCFF">
- <th bgcolor="#CCCCCC">Original Rules</th>
- <th bgcolor="#CCCCCC">Forward</th>
- <th bgcolor="#CCCCCC">Inverse</th>
- </tr>
- <tr bgcolor="#99CCFF">
- <td bgcolor="#EEEEEE"><code>:: [:Uppercase Letter:] ;<br>
- :: latin-greek ;<br>
- :: greek-japanese ;<br>
- x ↔ y ;<br>
- z → w ;<br>
- r ← m ;<br>
- :: upper;<br>
- a → b ;<br>
- c ↔ d ;<br>
- :: any-publishing ;<br>
- :: ([:Number:]) ;</code></td>
- <td bgcolor="#EEEEEE"><code>:: [:Uppercase Letter:] ;<br>
- :: latin-greek ;<br>
- :: greek-japanese ;<br>
- x → y ;<br>
- z → w ;<br>
- :: upper ;<br>
- a → b ;<br>
- c → d ;<br>
- :: any-publishing ;<br></code></td>
- <td bgcolor="#EEEEEE"><code>:: [:Number:] ;<br>
- :: publishing-any ;<br>
- d → c ;<br>
- :: lower ;<br>
- y → x ;<br>
- m → r ;<br>
- :: japanese-greek ;<br>
- :: greek-latin ;<br></code></td>
- </tr>
- </table>
- <p>Note how the irrelevant rules (the inverse filter rule and
- the rules containing ←) are omitted (ignored, actually) in the
- forward direction, and notice how things are reversed: the
- transform rules are inverted and happen in the opposite order,
- and the groups of conversion rules are also executed in the
- opposite relative order (although the rules within each group
- are executed in the same order).</p>
- <h2>11 <a name="ListPatterns" href="#ListPatterns" id=
- "ListPatterns">List Patterns</a></h2>
- <p class="dtd"><!ELEMENT listPatterns (alias |
- (listPattern*, special*)) ></p>
- <p class="dtd"><!ELEMENT listPattern (alias |
- (listPatternPart*, special*)) ><br>
- <!ATTLIST listPattern type (NMTOKEN) #IMPLIED ></p>
- <p class="dtd"><!ELEMENT listPatternPart ( #PCDATA )
- ><br>
- <!ATTLIST listPatternPart type (start | middle | end | 2 |
- 3) #REQUIRED ></p>
- <p>List patterns can be used to format variable-length lists of
- things in a locale-sensitive manner, such as "Monday, Tuesday,
- Friday, and Saturday" (in English) versus "lundi, mardi,
- vendredi et samedi" (in French). For example, consider the
- following example:</p>
- <pre class="example"><listPatterns>
- <listPattern>
- <listPatternPart type="2">{0} and {1}</listPatternPart>
- <listPatternPart type="start">{0}, {1}</listPatternPart>
- <listPatternPart type="middle">{0}, {1}</listPatternPart>
- <listPatternPart type="end">{0}, and {1}</listPatternPart>
- </listPattern>
-</listPatterns></pre>
- <p>The data is used as follows: If there is a type type matches
- exactly the number of elements in the desired list (such as "2"
- in the above list), then use that pattern. Otherwise,</p>
- <ol>
- <li>Format the last two elements with the "end" format.</li>
- <li>Then use middle format to add on subsequent elements
- working towards the front, all but the very first element.
- That is, {1} is what you've already done, and {0} is the
- previous element.</li>
- <li>Then use "start" to add the front element, again with {1}
- as what you've done so far, and {0} is the first
- element.</li>
- </ol>
- <p>Thus a list (a,b,c,...m, n) is formatted as:
- <code>start(a,middle(b,middle(c,middle(...end(m, n))...)))</code></p>
- <p>More sophisticated implementations can customize the process to improve the results for languages where context is important. For example:</p>
- <table>
- <tr>
- <td rowspan="3">Spanish
- </td>
- <td>AND
- </td>
- <td>Use ‘e’ instead of ‘y’ in the listPatternPart for "end" and "2" in either of the following cases:
- <ol>
-
- <li>The value substituted for {1} starts with ‘i’
- <ol>
- <li><em>fuerte <strong>e</strong> indomable, </em>not <em>fuerte <strong>y</strong> indomable</em></li>
- </ol></li>
- <li>The value substituted for {1} starts with ‘hi’, but not with ‘hie’ or ‘hia’
- <ol>
- <li><em>tos <strong>e</strong> hipo,</em> not <em>tos <strong>y</strong> hipo </em></li>
- <li><em>gua <strong>y</strong> hielo,</em> not <em>agua <strong>e</strong> hielo </em></li>
- </ol>
- </li>
- </ol></td>
- </tr>
- <tr>
- <td>OR
- </td>
- <td>Use ‘u’ instead of ‘o’ in the listPatternPart for "end" and "2" in any of the following cases:
- <ol>
-
- <li>The value substituted for {1} starts with ‘o’ or ‘ho’
- <ol>
- <li><em>delfines <strong>u</strong> orcas,</em> not <em>deflines <strong>o</strong> orcas</em></li>
- <li><em>mañana <strong>u</strong> hoy,</em> not <em>mañana <strong>o</strong> hoy</em></li>
- </ol>
- </li>
- <li> The value substituted for {1} starts with ‘8’
- <ol>
- <li><em>6 <strong>u</strong> 8,</em> not <em>6 <strong>o</strong> 8</em></li>
- </ol>
- </li>
- <li>The value substituted for {1} starts with ‘11’ where the numeric value is 11 x 10<sup>3×y</sup>
- (eg 11 thousand, 11.23 million, ...)
- <ol>
- <li><em>10 <strong>u</strong> 11,</em> not <em>10 <strong>o</strong> 11</em></li>
- <li><em>10 <strong>u</strong> 11.000,</em> not <em>10 <strong>o</strong> 11.000</em></li>
- <li><em>10 <strong>o</strong> 111,</em> not <em>10 <strong>u</strong> 111</em></li>
- </ol>
- </li></ol>
-
- </td>
- </tr>
- <tr>
- <td colspan="2">See <a href='https://www.rae.es/consultas/cambio-de-la-y-copulativa-en-e'>Cambio de la y copulativa en e</a><br>
- <strong>Note: </strong>more advanced implementations may also consider the pronunciation, such as foreign words where the ‘h’ is not mute.</td>
- </tr>
- <tr>
- <td rowspan="2">Hebrew
- </td>
- <td>AND
- </td>
- <td>Use ‘-ו’ instead of ‘ו’ in the listPatternPart for "end" and "2" in the following case:
- <ol>
- <li>if the value substituted for {1} starts with something other than a Hebrew letter, such as a digit (0-9) or a Latin-script letter
- <ol>
- <li><em>one hour and two minutes = "שעה ושתי דקות"</em></li>
- <li><em>one hour and 9 minutes = "שעה ו-9 דקות” </em></li>
- </ol></li>
-
-
- </ol></td>
- </tr>
- <tr>
- <td colspan="2">See <a href="https://hebrew-academy.org.il/topic/hahlatot/punctuation/#target-3475">https://hebrew-academy.org.il/topic/hahlatot/punctuation/#target-3475</a></td>
- </tr>
- </table><br>
- <p>The following type attributes are in use:</p>
- <table border="1" cellpadding="2" cellspacing="0" class=
- 'simple'>
- <tr>
- <th>type attribute value</th>
- <th>Description</th>
- <th>Examples</th>
- </tr>
- <tr>
- <td nowrap>standard (or no <strong>type</strong>)</td>
- <td>A typical 'and' list for arbitrary placeholders</td>
- <td nowrap><em>January, February, and March</em></td>
- </tr>
- <tr>
- <td>standard-short</td>
- <td>A short version of an 'and' list, suitable for use with
- short or abbreviated placeholder values</td>
- <td><em>Jan., Feb., and Mar.</em></td>
- </tr>
- <tr>
- <td>standard-narrow</td>
- <td>A yet shorter version of a short 'and' list (where possible)</td>
- <td><em>Jan., Feb., Mar.</em></td>
- </tr>
- <tr>
- <td>or</td>
- <td>A typical 'or' list for arbitrary placeholders</td>
- <td><em>January, February, or March</em></td>
- </tr>
- <tr>
- <td>or-short</td>
- <td>A short version of an 'or' list</td>
- <td><em>Jan., Feb., or Mar.</em></td>
- </tr>
- <tr>
- <td>or-narrow</td>
- <td>A yet shorter version of a short 'or' list (where possible)</td>
- <td><em>Jan., Feb., or Mar.</em></td>
- </tr>
- <tr>
- <td>unit</td>
- <td>A list suitable for wide units</td>
- <td><em>3 feet, 7 inches</em></td>
- </tr>
- <tr>
- <td>unit-short</td>
- <td>A list suitable for short units</td>
- <td><em>3 ft, 7 in</em></td>
- </tr>
- <tr>
- <td>unit-narrow</td>
- <td>A list suitable for narrow units, where space on the
- screen is very limited.</td>
- <td><em>3′ 7″</em></td>
- </tr>
- </table>
- <p>In many languages there may not be a difference among many
- of these lists. In others, the spacing, the length or presence
- or a conjunction, and the separators may change.</p>
- <h3>11.1 <a name="List_Gender" href="#List_Gender" id=
- "List_Gender">Gender of Lists</a></h3>
- <p class="dtd"><!-- Gender List support --><br>
- <!ELEMENT gender ( personList+ ) ><br>
- <!ELEMENT personList EMPTY ><br>
- <!ATTLIST personList type ( neutral | mixedNeutral |
- maleTaints ) #REQUIRED ><br>
- <!ATTLIST personList locales NMTOKENS #REQUIRED ><br></p>
- <p>This can be used to determine the gender of a list of 2 or
- more persons, such as "Tom and Mary", for use with
- gender-selection messages. For example,</p>
- <pre class="example">
- <supplementalData>
- <gender>
- <!-- neutral: gender(list) = other -->
- <personList type="neutral" locales="af da en..."/>
-
- <!-- mixedNeutral: gender(all male) = male, gender(all female) = female, otherwise gender(list) = other -->
- <personList type="mixedNeutral" locales="el"/>
-
- <!-- maleTaints: gender(all female) = female, otherwise gender(list) = male -->
- <personList type="maleTaints" locales="ar ca..."/>
- </gender>
- </supplementalData></pre>
- <p>There are three ways the gender of a list can be
- formatted:</p>
- <ol>
- <li><b>neutral:</b> A gender-independent "other" form will be
- used for the list.</li>
- <li><b>mixedNeutral:</b> If the elements of the list are all
- male, "male" form is used for the list. If all the elements
- of the lists are female, "female" form is used. If the list
- has a mix of male, female and neutral names, the "other" form
- is used.</li>
- <li><b>maleTaints:</b> If all the elements of the lists are
- female, "female" form is used, otherwise the "male" form is
- used.</li>
- </ol>
- <h2>12 <a name="Context_Transform_Elements" href=
- "#Context_Transform_Elements" id=
- "Context_Transform_Elements">ContextTransform Elements</a></h2>
- <p class="dtd"><!ELEMENT contextTransforms ( alias |
- (contextTransformUsage*, special*)) ><br>
- <!ELEMENT contextTransformUsage ( alias |
- (contextTransform*, special*)) ><br>
- <!ATTLIST contextTransformUsage type CDATA #REQUIRED
- ><br>
- <!ELEMENT contextTransform ( #PCDATA ) ><br>
- <!ATTLIST contextTransform type ( uiListOrMenu | stand-alone
- ) #REQUIRED ></p>
- <p>CLDR locale elements provide data for display names or
- symbols in many categories. The default capitalization for
- these elements is intended to be the form used in the middle of
- running text. In many languages, other capitalization may be
- required in other contexts, depending on the type of name or
- symbol.</p>
- <p>Each <contextTransformUsage> element’s type attribute
- specifies a category of data from the table below; the element
- includes one or more <contextTransform> elements that
- specify how to perform capitalization of this category of data
- in different contexts. The <contextTransform> elements
- are needed primarily for cases in which the capitalization is
- other than the default form used in the middle of running text.
- However, it is also useful to mark cases in which it is
- <em>known</em> that no transformation from this default form is
- needed; this may be necessary, for example, to override the
- transformation specified by a parent locale. The following
- values are currently defined for the <contextTransform>
- element:</p>
- <ul>
- <li>"titlecase-firstword" designates the case in which raw
- CLDR text that is in middle-of-sentence form, typically
- lowercase, needs to have its first word titlecased.</li>
- <li>"no-change" designates the case in which it is known that
- no change from the raw CLDR text (middle-of-sentence form) is
- needed.</li>
- </ul>
- <p>Four contexts for capitalization behavior are currently
- identified. Two need no data, and hence have no corresponding
- <contextTransform> elements:</p>
- <ul>
- <li>In the middle of running text: This is the default form,
- so no additional data is required.</li>
- <li>At the beginning of a complete sentence: The initial word
- is titlecased, no additional data is required to indicate
- this.</li>
- </ul>
- <p>Two other contexts require <contextTransform> elements
- if their capitalization behavior is other than the default for
- running text. The context is identified by the type attribute,
- as follows:</p>
- <ul>
- <li>uiListOrMenu: Capitalization appropriate to a
- user-interface list or menu.</li>
- <li>stand-alone: Capitalization appropriate to an isolated
- user-interface element (e.g. an isolated name on a calendar
- page)</li>
- </ul>
- <p>Example:</p>
- <pre> <contextTransforms>
- <contextTransformUsage type="languages">
- <contextTransform type="uiListOrMenu">titlecase-firstword</contextTransform>
- <contextTransform type="stand-alone">titlecase-firstword</contextTransform>
- </contextTransformUsage>
- <contextTransformUsage type="month-format-except-narrow">
- <contextTransform type="uiListOrMenu">titlecase-firstword</contextTransform>
- </contextTransformUsage>
- <contextTransformUsage type="month-standalone-except-narrow">
- <contextTransform type="uiListOrMenu">titlecase-firstword</contextTransform>
- </contextTransformUsage>
- </contextTransforms></pre>
- <table cellspacing="0" cellpadding="2" border="1" class=
- 'simple'>
- <caption>
- <a name="contextTransformUsage_type_attribute_values" href=
- "#contextTransformUsage_type_attribute_values" id=
- "contextTransformUsage_type_attribute_values">Element
- contextTransformUsage type attribute values</a>
- </caption>
- <tr>
- <th>type attribute value</th>
- <th>Description</th>
- </tr>
- <tr>
- <td>all</td>
- <td>Special value, indicates that the specified
- transformation applies to all of the categories below</td>
- </tr>
- <tr>
- <td>language</td>
- <td>localeDisplayNames language names</td>
- </tr>
- <tr>
- <td>script</td>
- <td>localeDisplayNames script names</td>
- </tr>
- <tr>
- <td>territory</td>
- <td>localeDisplayNames territory names</td>
- </tr>
- <tr>
- <td>variant</td>
- <td>localeDisplayNames variant names</td>
- </tr>
- <tr>
- <td>key</td>
- <td>localeDisplayNames key names</td>
- </tr>
- <tr>
- <td>keyValue</td>
- <td>localeDisplayNames key value type names</td>
- </tr>
- <tr>
- <td>month-format-except-narrow</td>
- <td>dates/calendars/calendar[type=*]/months format wide and
- abbreviated month names</td>
- </tr>
- <tr>
- <td>month-standalone-except-narrow</td>
- <td>dates/calendars/calendar[type=*]/months stand-alone
- wide and abbreviated month names</td>
- </tr>
- <tr>
- <td>month-narrow</td>
- <td>dates/calendars/calendar[type=*]/months format and
- stand-alone narrow month names</td>
- </tr>
- <tr>
- <td>day-format-except-narrow</td>
- <td>dates/calendars/calendar[type=*]/days format wide and
- abbreviated day names</td>
- </tr>
- <tr>
- <td>day-standalone-except-narrow</td>
- <td>dates/calendars/calendar[type=*]/days stand-alone wide
- and abbreviated day names</td>
- </tr>
- <tr>
- <td>day-narrow</td>
- <td>dates/calendars/calendar[type=*]/days format and
- stand-alone narrow day names</td>
- </tr>
- <tr>
- <td>era-name</td>
- <td>dates/calendars/calendar[type=*]/eras (wide) era
- names</td>
- </tr>
- <tr>
- <td>era-abbr</td>
- <td>dates/calendars/calendar[type=*]/eras abbreviated era
- names</td>
- </tr>
- <tr>
- <td>era-narrow</td>
- <td>dates/calendars/calendar[type=*]/eras narrow era
- names</td>
- </tr>
- <tr>
- <td>quarter-format-wide</td>
- <td>dates/calendars/calendar[type=*]/quarters format wide
- quarter names</td>
- </tr>
- <tr>
- <td>quarter-standalone-wide</td>
- <td>dates/calendars/calendar[type=*]/quarters stand-alone
- wide quarter names</td>
- </tr>
- <tr>
- <td>quarter-abbreviated</td>
- <td>dates/calendars/calendar[type=*]/quarters format and
- stand-alone abbreviated quarter names</td>
- </tr>
- <tr>
- <td>quarter-narrow</td>
- <td>dates/calendars/calendar[type=*]/quarters format and
- stand-alone narrow quarter names</td>
- </tr>
- <tr>
- <td>calendar-field</td>
- <td>dates/fields/field[type=*]/displayName field names<br>
- (for relative forms see type "tense" below)</td>
- </tr>
- <tr>
- <td>zone-exemplarCity</td>
- <td>dates/timeZoneNames/zone[type=*]/exemplarCity city
- names</td>
- </tr>
- <tr>
- <td>zone-long</td>
- <td>dates/timeZoneNames/zone[type=*]/long zone names</td>
- </tr>
- <tr>
- <td>zone-short</td>
- <td>dates/timeZoneNames/zone[type=*]/short zone names</td>
- </tr>
- <tr>
- <td>metazone-long</td>
- <td>dates/timeZoneNames/metazone[type=*]/long metazone
- names</td>
- </tr>
- <tr>
- <td>metazone-short</td>
- <td>dates/timeZoneNames/metazone[type=*]/short metazone
- names</td>
- </tr>
- <tr>
- <td>symbol</td>
- <td>numbers/currencies/currency[type=*]/symbol symbol
- names</td>
- </tr>
- <tr>
- <td>currencyName</td>
- <td>numbers/currencies/currency[type=*]/displayName
- currency names</td>
- </tr>
- <tr>
- <td>currencyName-count</td>
- <td>
- numbers/currencies/currency[type=*]/displayName[count=*]
- currency names for use with count</td>
- </tr>
- <tr>
- <td>relative</td>
- <td>dates/fields/field[type=*]/relative and
- dates/fields/field[type=*]/relativeTime relative field
- names</td>
- </tr>
- <tr>
- <td>unit-pattern</td>
- <td>
- units/unitLength[type=*]/unit[type=*]/unitPattern[count=*]
- unit names</td>
- </tr>
- <tr>
- <td>number-spellout</td>
- <td>rbnf/rulesetGrouping[type=*]/ruleset[type=*]/rbnfrule
- number spellout rules</td>
- </tr>
- </table>
- <h2>13 <a name="Choice_Patterns" href="#Choice_Patterns" id=
- "Choice_Patterns">Choice Patterns</a></h2>
- <p>A choice pattern is a string that chooses among a number of
- strings, based on numeric value. It has the following form:</p>
- <p><choice_pattern> = <choice> ( '|' <choice>
- )*<br>
- <choice> =
- <number><relation><string><br>
- <number> = ('+' | '-')? (<font size="3">'∞' | [0-9]+ ('.'
- [0-9]+)?)<br>
- <relation> = '<' | '</font> <span style=
- "color: blue">≤'</span></p>
- <p>The interpretation of a choice pattern is that given a
- number N, the pattern is scanned from right to left, for each
- choice evaluating <number> <relation> N. The first
- choice that matches results in the corresponding string. If no
- match is found, then the first string is used. For example:</p>
- <table border="1" cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%">Pattern</td>
- <td width="33%">N</td>
- <td width="34%">Result</td>
- </tr>
- <tr>
- <td width="33%" rowspan="4">0≤Rf|1≤Ru|1<Re</td>
- <td width="33%">-<font size="3">∞,</font> -3, -1,
- -0.000001</td>
- <td width="34%">Rf (defaulted to first string)</td>
- </tr>
- <tr>
- <td width="33%">0, 0.01, 0.9999</td>
- <td width="34%">Rf</td>
- </tr>
- <tr>
- <td width="33%">1</td>
- <td width="34%">Ru</td>
- </tr>
- <tr>
- <td width="33%">1.00001, 5, 99, <font size=
- "3">∞</font></td>
- <td width="34%">Re</td>
- </tr>
- </table>
- <p>Quoting is done using ' characters, as in date or number
- formats.</p>
- <h2>14 <a name="Annotations" href="#Annotations" id=
- "Annotations">Annotations and Labels</a></h2>
- <p>Annotations provide information about characters, typically
- used in input. For example, on a mobile keyboard they can be
- used to do completion. They are typically used for symbols,
- especially emoji characters.</p>
- <p>For more information, see version 5.0 or <a href=
- "https://unicode.org/reports/tr51/">UTR #51, Unicode Emoji</a>.
- (Note that during the period between the publication of CLDR
- v31 and that of Emoji 5.0, the “Latest Proposed Update” link
- should be used to get to the draft specification for Emoji
- 5.0.)<br></p>
- <p class="dtd"><!ELEMENT annotations ( annotation* )
- ></p>
- <p class="dtd"><!ELEMENT annotation ( #PCDATA ) ></p>
- <p class="dtd"><!ATTLIST annotation cp CDATA #REQUIRED
- ></p>
- <p class="dtd"><!ATTLIST annotation type (tts) #IMPLIED
- ></p>
- <p>There are two kinds of annotations: <strong>short
- names</strong>, and <strong>keywords</strong>.</p>
- <p>With an attribute <strong>type="tts"</strong>, the value is
- a <strong>short name</strong>, such as one that can be used for
- text-to-speech. It should be treated as one of the element
- values for other purposes.</p>
- <p>When there is no <strong>type</strong> attribute, the value
- is a set of <strong>keywords</strong>, delimited by |. Spaces
- around each element are to be trimmed. The
- <strong>keywords</strong> are words associated with the
- character(s) that might be used in searching for the character,
- or in predictive typing on keyboards. The short name itself can
- be used as a keyword.</p>
- <p>Here is an example from German:</p>
- <pre class="example">
-<annotation cp="👎">schlecht | Hand | Daumen | nach unten</annotation>
-<annotation cp="👎" type="tts">Daumen runter</annotation>
-</pre>
- <p>The cp attribute value has two formats: either a single
- string, or if contained within […] a UnicodeSet. The latter
- format can contain multiple code points or strings. A code
- point pr string can occur in multiple annotation element
- <strong>cp</strong> values, such as the following, which also
- contains the "thumbs down" character.</p>
- <pre class="example">
- <span><annotation cp='[☝✊-✍👆-👐👫-👭💁🖐🖕🖖🙅🙆🙋🙌🙏🤘]'>hand</annotation></span></pre>
- <p>Both for short names and keywords, values do not have to
- match between different languages. They should be the most
- common values that people using <em>that</em> language would
- associated with those characters. For example, a "black heart"
- might have the association of "wicked" in English, but not in
- some other languages.</p>
- <p>The cp value may contain sequences, but does not contain any
- Emoji or Text Variant (VS15 & VS16) characters. All such
- characters should be removed before looking up any short names
- and keywords.</p>
- <h3>14.1 <a name="SynthesizingNames" href="#SynthesizingNames"
- id="SynthesizingNames">Synthesizing Sequence Names</a></h3>
- <p>Many emoji are represented by sequences of characters. When
- there are no annotation elements for that string, the short
- name can be synthesized as follows. <strong>Note:</strong> The
- process details may change after the release of this
- specification, and may further change in the future if other
- sequences are added. Please see the <a href=
- 'https://sites.google.com/site/cldr/index/downloads/cldr-30#TOC-Known-Issues'>
- Known Issues</a> section of the CLDR download page for any
- updates.</p>
- <ol>
- <li>If <strong>sequence</strong> is an <strong>emoji flag
- sequence</strong>, look up the territory name in CLDR for the
- corresponding ASCII characters and return as the short name.
- For example, the regional indicator symbols P+F would map to
- “Französisch-Polynesien” in German.</li>
- <li>If <strong>sequence</strong> is an <strong>emoji tag
- sequence</strong>, look up the subdivision name in CLDR for
- the corresponding ASCII characters and return as the short
- name. For example, the TAG characters gbsct would map to
- “Schottland” in German.</li>
- <li>If <strong>sequence</strong> is a keycap sequence or 🔟,
- use the characterLabel for "keycap" as the
- <strong>prefixName</strong> and set the
- <strong>suffix</strong> to be the sequence (or "10" in the
- case of 🔟), then go to step 8.</li>
- <li>Let <strong>suffix</strong> and
- <strong>prefixName</strong> be "".</li>
- <li>If <strong>sequence</strong> contains any emoji
- modifiers, move them (in order) into <strong>suffix</strong>,
- removing them from <strong>sequence</strong>.</li>
- <li>If <strong>sequence</strong> is a "KISS", "HEART", "FAMILY", or "HOLDING HANDS" emoji ZWJ sequence, move the characters in <strong>
- sequence</strong> to the front of <strong>suffix</strong>,
- and set the <strong>sequence</strong> to be "💏", "💑", or
- "👪" respectively, and go to step 7.
- <ol>
- <li>A KISS sequence contains ZWJ, "💋", and "❤", which are
- skipped in moving to <strong>suffix</strong>.</li>
- <li>A HEART sequence contains ZWJ and "❤", which are
- skipped in moving to <strong>suffix</strong>.</li>
- <li>A HOLDING HANDS sequence contains ZWJ+🤝+ZWJ, which are skipped in moving to <strong>suffix</strong>.</li>
- <li>A FAMILY sequence contains only characters from the
- set {👦, 👧, 👨, 👩, 👴, 👵, 👶}. Nothing is skipped in moving
- to <strong>suffix</strong>, except ZWJ.</li>
- </ol>
- </li>
- <li>If <strong>sequence</strong> ends with ♂ or ♀, and does
- not have a name, remove the ♂ or ♀ and move the name for "👨"
- or "👩" respectively to the start of
- <strong>prefixName</strong>.</li>
- <li>Transform <strong>sequence</strong> and append to
- <strong>prefixName</strong>, by successively getting names
- for the longest subsequences, skipping any singleton ZWJ
- characters. If there is more than one name, use the
- listPattern for unit-short, type=2 to link them.</li>
- <li>Transform <strong>suffix</strong> into
- <strong>suffixName</strong> in the same manner.</li>
- <li>If both the <strong>prefixName</strong> and
- <strong>suffixName</strong> are non-empty, form the name by
- joining them with the "category-list" characterLabelPattern
- and return it. Otherwise return whichever of them is
- non-empty.</li>
- </ol>
- <p>The synthesized keywords can follow a similar process.</p>
- <ol>
- <li>For an <strong>emoji flag sequence</strong> or
- <strong>emoji tag sequence</strong> representing a
- subdivision, use "flag".</li>
- <li>For keycap sequences, use "keycap".</li>
- <li>For other sequences, add the keywords for the
- subsequences used to get the short names for
- <strong>prefixName</strong>, and the short names used for
- <strong>suffixName</strong>.</li>
- </ol>
- <p>Some examples for English data (v30) are given in the
- following table.</p>
- <table cellspacing="0" cellpadding="2" border="1">
- <caption>
- Synthesized Emoji Sequence Names
- </caption>
- <tbody>
- <tr>
- <th>Sequence</th>
- <th>Short Name</th>
- <th>Keywords</th>
- </tr>
- <tr>
- <td>🇪🇺</td>
- <td>European Union</td>
- <td>flag</td>
- </tr>
- <tr>
- <td>#️⃣</td>
- <td>keycap: #</td>
- <td>keycap</td>
- </tr>
- <tr>
- <td>9️⃣</td>
- <td>keycap: 9</td>
- <td>keycap</td>
- </tr>
- <tr>
- <td>💏</td>
- <td>kiss</td>
- <td>couple</td>
- </tr>
- <tr>
- <td>👩❤️💋👩</td>
- <td>kiss: woman, woman</td>
- <td>couple, woman</td>
- </tr>
- <tr>
- <td>💑</td>
- <td>couple with heart</td>
- <td>love, couple</td>
- </tr>
- <tr>
- <td>👩❤️👩</td>
- <td>couple with heart: woman, woman</td>
- <td>love, couple, woman</td>
- </tr>
- <tr>
- <td>👪</td>
- <td>family</td>
- <td>family</td>
- </tr>
- <tr>
- <td>👩👩👧</td>
- <td>family: woman, woman, girl</td>
- <td>woman, family, girl</td>
- </tr>
- <tr>
- <td>👦🏻</td>
- <td>boy: light skin tone</td>
- <td>young, light skin tone, boy</td>
- </tr>
- <tr>
- <td>👩🏿</td>
- <td>woman: dark skin tone</td>
- <td>woman, dark skin tone</td>
- </tr>
- <tr>
- <td>👨⚖</td>
- <td>man judge</td>
- <td>scales, justice, man</td>
- </tr>
- <tr>
- <td>👨🏿⚖</td>
- <td>man judge: dark skin tone</td>
- <td>scales, justice, dark skin tone, man</td>
- </tr>
- <tr>
- <td>👩⚖</td>
- <td>woman judge</td>
- <td>woman, scales, judge</td>
- </tr>
- <tr>
- <td>👩🏼⚖</td>
- <td>woman judge: medium-light skin tone</td>
- <td>woman, scales, medium-light skin tone, judge</td>
- </tr>
- <tr>
- <td>👮</td>
- <td>police officer</td>
- <td>police, cop, officer</td>
- </tr>
- <tr>
- <td>👮🏿</td>
- <td>police officer: dark skin tone</td>
- <td>police, cop, officer, dark skin tone</td>
- </tr>
- <tr>
- <td>👮♂️</td>
- <td>man police officer</td>
- <td>police, cop, officer, man</td>
- </tr>
- <tr>
- <td>👮🏼♂️</td>
- <td>man police officer: medium-light skin tone</td>
- <td>police, cop, officer, medium-light skin tone,
- man</td>
- </tr>
- <tr>
- <td>👮♀️</td>
- <td>woman police officer</td>
- <td>police, woman, cop, officer</td>
- </tr>
- <tr>
- <td>👮🏿♀️</td>
- <td>woman police officer: dark skin tone</td>
- <td>police, woman, cop, officer, dark skin tone</td>
- </tr>
- <tr>
- <td>🚴</td>
- <td>person biking</td>
- <td>cyclist, bicycle, biking</td>
- </tr>
- <tr>
- <td>🚴🏿</td>
- <td>person biking: dark skin tone</td>
- <td>cyclist, bicycle, biking, dark skin tone</td>
- </tr>
- <tr>
- <td>🚴♂️</td>
- <td>man biking</td>
- <td>cyclist, bicycle, biking, man</td>
- </tr>
- <tr>
- <td>🚴🏿♂️</td>
- <td>man biking: dark skin tone</td>
- <td>cyclist, bicycle, biking, dark skin tone, man</td>
- </tr>
- <tr>
- <td>🚴♀️</td>
- <td>woman biking</td>
- <td>cyclist, woman, bicycle, biking</td>
- </tr>
- <tr>
- <td>🚴🏿♀️</td>
- <td>woman biking: dark skin tone</td>
- <td>cyclist, woman, bicycle, biking, dark skin tone</td>
- </tr>
- </tbody>
- </table>
- <p>For more information, see <a href=
- 'https://unicode.org/reports/tr51'>Unicode Emoji</a>.</p>
- <h3>14.2 <a name="Character_Labels" href="#Character_Labels"
- id="Character_Labels">Annotations Character Labels</a></h3>
- <p class="dtd"><!ELEMENT characterLabels ( alias | (
- characterLabelPattern*, characterLabel*, special* ) ) ></p>
- <p class="dtd"><!ELEMENT characterLabelPattern ( #PCDATA )
- ></p>
- <p class="dtd"><!ATTLIST characterLabelPattern type NMTOKEN
- #REQUIRED ></p>
- <p class="dtd"><!ATTLIST characterLabelPattern count (0 | 1
- | zero | one | two | few | many | other) #IMPLIED > <!--
- count only used for certain patterns" --></p>
- <p class="dtd"><!ELEMENT characterLabel ( #PCDATA ) ></p>
- <p class="dtd"><!ATTLIST characterLabel type NMTOKEN
- #REQUIRED ></p>
- <p>The character labels can be used for categories or groups of
- characters in a character picker or keyboard palette. They have
- the above structure. Items with special meanings are explained
- below. Many of the categories are based on terms used in
- Unicode. Consult the <a href=
- 'https://www.unicode.org/glossary/'>Unicode Glossary</a> where
- the meaning is not clear.</p>
- <p>The following are special patterns used in composing
- labels.</p>
- <table>
- <caption>
- characterLabelPattern
- </caption>
- <tr>
- <th>Type</th>
- <th>English</th>
- <th>Description of the group specified.</th>
- </tr>
- <tr>
- <th>all</th>
- <td>{0} — all</td>
- <td>Used where the title {0} is just a subset. For example,
- {0} might be "Latin", and contain the most common Latin
- characters. Then "Latin — all" would be all of them.</td>
- </tr>
- <tr>
- <th>category-list</th>
- <td>{0}: {1}</td>
- <td>Use for a name, where {0} is the main item like
- "Family", and {1} is a list of one or more components or
- subcategories. The list is formatted using a list
- pattern.</td>
- </tr>
- <tr>
- <th>compatibility</th>
- <td>{0} — compatibility</td>
- <td>For grouping Unicode compatibility characters
- separately, such as "Arabic — compatibility".</td>
- </tr>
- <tr>
- <th>enclosed</th>
- <td>{0} — enclosed</td>
- <td>For indicating enclosed forms, such as "digits —
- enclosed"</td>
- </tr>
- <tr>
- <th>extended</th>
- <td>{0} — extended</td>
- <td>For indicating a group of "extended" characters
- (special use, technical, etc.)</td>
- </tr>
- <tr>
- <th>historic</th>
- <td>{0} — historic</td>
- <td>For indicating a group of "historic" characters (no
- longer in common use).</td>
- </tr>
- <tr>
- <th>miscellaneous</th>
- <td>{0} — miscellaneous</td>
- <td>For indicating a group of "miscellaneous" characters
- (typically that don't fall into a broader class).</td>
- </tr>
- <tr>
- <th>other</th>
- <td>{0} — other</td>
- <td>Used where the title {0} is just a subset. For example,
- {0} might be "Latin", and contain the most common Latin
- characters. Then "Latin — other" would be the rest of
- them.</td>
- </tr>
- <tr>
- <th>scripts</th>
- <td>scripts — {0}</td>
- <td>For indicating a group of "scripts" characters matching
- {0}. The value for {0} may be a geographic indicator, like
- "Africa" (although there are specific combinations listed
- below), or some other designation, like "other" (from
- below).</td>
- </tr>
- <tr>
- <th>strokes</th>
- <td>{0} strokes</td>
- <td>Used as an index title for CJK characters. It takes a
- "count" value, which allows the right plural form to be
- specified for the language.</td>
- </tr>
- <tr>
- <th>subscript</th>
- <td>subscript {0}</td>
- <td>For indicating subscript forms, such as "subscript digits".</td>
- </tr>
- <tr>
- <th>superscript</th>
- <td>superscript {0}</td>
- <td>For indicating superscript forms, such as "superscript digits".</td>
- </tr>
- </table>
- <p>The following are character labels. Where the meaning of the
- label is fairly clear (like "animal") or is in the Unicode
- glossary, it is omitted.</p>
- <table>
- <caption>
- characterLabel
- </caption>
- <tr>
- <th>activities</th>
- <td>activity</td>
- <td>Human activities, such as running.</td>
- </tr>
- <tr>
- <th>african_scripts</th>
- <td>African script</td>
- <td>Scripts associated with the continent of Africa.</td>
- </tr>
- <tr>
- <th>american_scripts</th>
- <td>American script</td>
- <td>Scripts associated with the continents of North and
- South America.</td>
- </tr>
- <tr>
- <th>animals_nature</th>
- <td>animal or nature</td>
- <td>A broad category uses for</td>
- </tr>
- <tr>
- <th>arrows</th>
- <td>arrow</td>
- <td>Arrow symbols</td>
- </tr>
- <tr>
- <th>body</th>
- <td>body</td>
- <td>Symbols for body parts, such as an arm.</td>
- </tr>
- <tr>
- <th>box_drawing</th>
- <td>box drawing</td>
- <td>Unicode box-drawing characters (geometric shapes)</td>
- </tr>
- <tr>
- <th>bullets_stars</th>
- <td>bullet or star</td>
- <td>Unicode bullets (such as • or ‣ or ⁍) or stars
- (★✩✪✵...)</td>
- </tr>
- <tr>
- <th>consonantal_jamo</th>
- <td>consonantal jamo</td>
- <td>Korean Jamo consonants.</td>
- </tr>
- <tr>
- <th>currency_symbols</th>
- <td>currency symbol</td>
- <td>Symbols such as $, ¥, £</td>
- </tr>
- <tr>
- <th>dash_connector</th>
- <td>dash or connector</td>
- <td>Characters like _ or ⁓</td>
- </tr>
- <tr>
- <th>dingbats</th>
- <td>dingbat</td>
- <td>Font dingbat characters, such as ❿ or ♜.</td>
- </tr>
- <tr>
- <th>downwards_upwards_arrows</th>
- <td>downwards upwards arrow</td>
- <td>⇕,...</td>
- </tr>
- <tr>
- <th>female</th>
- <td>female</td>
- <td>Indicates that a character is female or feminine in
- appearance.</td>
- </tr>
- <tr>
- <th>format</th>
- <td>format</td>
- <td>A Unicode format character.</td>
- </tr>
- <tr>
- <th>format_whitespace</th>
- <td>format & whitespace</td>
- <td>A Unicode format character or whitespace.</td>
- </tr>
- <tr>
- <th>full_width_form_variant</th>
- <td>full-width variant</td>
- <td>Full width variant, such as a wide A.</td>
- </tr>
- <tr>
- <th>half_width_form_variant</th>
- <td>half-width variant</td>
- <td>Narrow width variant, such as a half-width katakana
- character.</td>
- </tr>
- <tr>
- <th>han_characters</th>
- <td>Han character</td>
- <td>Han (aka CJK: Chinese, Japanese, or Korean)
- ideograph</td>
- </tr>
- <tr>
- <th>han_radicals</th>
- <td>Han radical</td>
- <td>Radical (component) used in Han characters.</td>
- </tr>
- <tr>
- <th>hanja</th>
- <td>hanja</td>
- <td>Korean name for Han character.</td>
- </tr>
- <tr>
- <th>hanzi_simplified</th>
- <td>Hanzi (simplified)</td>
- <td>Simplified Chinese ideograph</td>
- </tr>
- <tr>
- <th>hanzi_traditional</th>
- <td>Hanzi (traditional)</td>
- <td>Traditional Chinese ideograph</td>
- </tr>
- <tr>
- <th>historic_scripts</th>
- <td>historic script</td>
- <td>Script no longer in common modern usage, such as Runes
- or Hieroglyphs.</td>
- </tr>
- <tr>
- <th>ideographic_desc_characters</th>
- <td>ideographic desc. character</td>
- <td>Special Unicode characters (see the glossary).</td>
- </tr>
- <tr>
- <th>kanji</th>
- <td>kanji</td>
- <td>Japanese Han ideograph</td>
- </tr>
- <tr>
- <th>keycap</th>
- <td>keycap</td>
- <td>A key on a computer keyboard or phone. For example, the
- "3" key on a phone or laptop would be "keycap: 3"</td>
- </tr>
- <tr>
- <th>limited_use</th>
- <td>limited-use</td>
- <td>Not in common modern use.</td>
- </tr>
- <tr>
- <th>male</th>
- <td>male</td>
- <td>Indicates that a character is male or masculine in
- appearance.</td>
- </tr>
- <tr>
- <th>modifier</th>
- <td>modifier</td>
- <td>A Unicode modifier letter or symbol.</td>
- </tr>
- <tr>
- <th>nonspacing</th>
- <td>nonspacing</td>
- <td>Uses for characters that occupy no width by themselves,
- such as the ¨ over the a in ä.</td>
- </tr>
- </table>
- <h3>14.3 <a name="Typographic_Names" href="#Typographic_Names"
- id="Typographic_Names">Typographic Names</a></h3>
- <p class='dtd'><!ELEMENT typographicNames ( alias | (
- axisName*, styleName*, featureName*, special* ) ) ></p>
- <p class='dtd'><!ELEMENT axisName ( #PCDATA ) ><br>
- <!ATTLIST axisName type (ital | opsz | slnt | wdth | wght)
- #REQUIRED ><br>
- <!ATTLIST axisName alt NMTOKENS #IMPLIED ></p>
- <p class='dtd'><!ELEMENT styleName ( #PCDATA ) ><br>
- <!ATTLIST styleName type (ital | opsz | slnt | wdth | wght)
- #REQUIRED ><br>
- <!ATTLIST styleName subtype NMTOKEN #REQUIRED ><br>
- <!ATTLIST styleName alt NMTOKENS #IMPLIED ></p>
- <p class='dtd'><!ELEMENT featureName ( #PCDATA ) ><br>
- <!ATTLIST featureName type (afrc | cpsp | dlig | frac | lnum
- | onum | ordn | pnum | smcp | tnum | zero) #REQUIRED ><br>
- <!ATTLIST featureName alt NMTOKENS #IMPLIED ></p>
- <p>The typographic names provide for names of font features for
- use in a UI. This is useful for apps that show the name of font
- styles and design axes according to the user’s languages. It
- would also be useful for system-level libraries.</p>
- <p>The identifers (types) use the tags from the OpenType
- Feature Tag Registry. Given their large number, only the names
- of frequently-used OpenType feature names are available CLDR.
- (Many features are not user-visible settings, but instead serve
- as a data channel for sofware to pass information to the font).
- The example below shows an approach for using the CLDR data. Of
- course, applications are free to implement their own algorithms
- depending on their specific needs.</p>
- <p>To find a localized subfamily name such as “Extraleicht
- Schmal” for a font called “Extralight Condensed”, a system or
- application library might do the following:</p>
- <ol>
- <li>
- <p>Determine the set of languages in which the subfamily
- name can potentially be returned.This is the union of the
- languages for which the font contains ‘name’ table entries
- with ID 2 or 17, plus the languages for which CLDR supplies
- typographic names.</p>
- </li>
- <li>
- <p>Use a language matching algorithm such as in ICU to find
- the best available language given the user preferences. The
- resulting subfamily name will be localized to this
- language.</p>
- </li>
- <li>
- <p>If the font’s ‘name’ table contains a typographic
- subfamily name (ID17) in this language and all font
- variation axes are set to their defaults, return this
- name.</p>
- </li>
- <li>
- <p>If the font’s ‘name’ table contains a font subfamilyname
- (‘name’ID2) in this language and all font variation axes
- are set to their defaults, return this name.</p>
- </li>
- <li>
- <p>If the font has a style attributes (STAT) table, lookup
- the design axis tags and their ordering. If the font has no
- STAT table, assume [Width, Weight, Slant] as axis ordering,
- and infer the font’s style atributes from other available
- data in the font (eg. the OS/2 table).</p>
- </li>
- <li>For each design axis, find a localized style name for its
- value.
- <ol>
- <li>If the font’s style attributes point to a ‘name’
- table entry that is available the result language, use
- this name.</li>
- <li>Otherwise, generate a fallback name from CLDR style
- Name data.
- <ol>
- <li>The type key is the OpenType axis tag ( ‘wght’).
- The subtype and alt keys are taken from the entry in
- English CLDR where the string is equal to the English
- name in the font. For example, when the font uses a
- weight whose English style name is “Extralight”, this
- will lead to subtype = “200” and alt = “variant”. If
- there is no match, take the axis value (“200”) for
- subtype and the empty string for alt.</li>
- <li>Look up (type, subtype) in a data table derived
- from CLDR’s style names. If CLDR supplies multiple
- alternate names for this (type, subtype), use the one
- whose “alt” key is matching; otherwise, use the
- default alternate (which has no “alt” atribute in
- CLDR).</li></ol></li>
- </ol>
- </li>
- <li>Concatenate the strings, with a separator between
- them.</li>
- </ol>
- <h2>15 <a name="Grammatical_Features" href="#Grammatical_Features"
- id="Grammatical_Features">Grammatical Features</a></h2>
-
-
-<p>
-LDML supplies grammatical information that can be used to distinguish localized forms on a per-locale basis. The current data is part of an initial phase; the longer term plan is to add structure to permit localized forms based on these features, starting with measurement units such as the dative form in Serbian of “kilometer”. That will allow unit values to be inserted as placeholders into messages and adopt the right forms for grammatical agreement.
-</p>
-<p>
-The current data includes the following:
-</p><ul>
-
-<li>There are currently 3 grammatical features found in the <a href="https://github.com/unicode-org/cldr/blob/master/common/dtd/ldmlSupplemental.dtd#1229">DTD</a>: Gender, Case, Definiteness
-<li>There are mappings from supported locales to grammatical features they exhibit in the file <a href="https://github.com/unicode-org/cldr/blob/master/common/supplemental/grammaticalFeatures.xml">grammaticalFeatures.xml</a>. Note that this is supplemental data, so the inheritance to the available locales needs to be done by the client.</li></ul>
-
-<p>
-Note that the CLDR plural categories overlap some of these features, since some languages use case and other devices to change words based on the numeric values.
-</p>
-<h2>Features</h2>
-
-
-<p class='dtd'> <!ELEMENT grammaticalData ( grammaticalFeatures*, grammaticalDerivations*) ><br> <!ELEMENT grammaticalFeatures ( grammaticalCase*, grammaticalGender*, grammaticalDefiniteness* ) ><br>
-<!ATTLIST grammaticalFeatures targets NMTOKENS #REQUIRED ><br>
-<!ATTLIST grammaticalFeatures locales NMTOKENS #REQUIRED >
-</p>
-<p> </p>
-<p class='dtd'>
-<!ELEMENT grammaticalCase EMPTY>
-</p>
-<p class='dtd'>
-<!ATTLIST grammaticalCase values NMTOKENS #REQUIRED >
-</p>
-<p> </p>
-<p class='dtd'>
-<!ELEMENT grammaticalGender EMPTY>
-</p>
-<p class='dtd'>
-<!ATTLIST grammaticalGender values NMTOKENS #REQUIRED >
-</p>
-<p> </p>
-<p class='dtd'>
-<!ELEMENT grammaticalDefiniteness EMPTY>
-</p>
-<p class='dtd'>
-<!ATTLIST grammaticalDefiniteness values NMTOKENS #REQUIRED >
-</p>
-<h3>15.1<a name="Gender" href="#Gender" >Gender</a></h3>
-<p>
- Feature that classifies nouns in classes. This is grammatical gender, which may be assigned on the basis of sex in some languages, but may be completely separate in others. Also used to tag elements in CLDR that should agree with a particular gender of an associated noun. (adapted from: <a href="http://linguistics-ontology.org/gold/2010/GenderProperty">linguistics-ontology.org/gold/2010/GenderProperty</a>)
-</p>
-<h4>Example</h4>
-
-
-
-
-
-<pre class="prettyprint"><grammaticalFeatures targets="nominal" locales="es fr it pt">
- <grammaticalGender values="masculine feminine"/>
-</pre>
-
-
-<h4>Values</h4>
-
-
-
-<table>
- <tr>
- <td>animate
- </td>
- <td>In an animate/inanimate gender system, gender that denotes human or animate entities
- </td>
- <td>description adapted from: <a href="https://en.wikipedia.org/wiki/Grammatical_gender">wikipedia.org/wiki/Grammatical_gender</a> <a href="http://linguistics-ontology.org/gold/2010/AnimateGender">linguistics-ontology.org/gold/2010/AnimateGender</a>
- </td>
- </tr>
- <tr>
- <td>inanimate
- </td>
- <td>In an animate/inanimate gender system, gender that denotes object or inanimate entities
- </td>
- <td>adapted from: <a href="https://en.wikipedia.org/wiki/Grammatical_gender">wikipedia.org/wiki/Grammatical_gender</a> <a href="http://linguistics-ontology.org/gold/2010/InanimateGender">linguistics-ontology.org/gold/2010/InanimateGender</a>
- </td>
- </tr>
- <tr>
- <td>personal
- </td>
- <td>In an animate/inanimate gender system in some languages, gender that specifies the masculine gender of animate entities
- </td>
- <td>adapted from: <a href="https://en.wikipedia.org/wiki/Grammatical_gender">wikipedia.org/wiki/Grammatical_gender</a> <a href="http://linguistics-ontology.org/gold/2010/HumanGender">linguistics-ontology.org/gold/2010/HumanGender</a>
- </td>
- </tr>
- <tr>
- <td>common
- </td>
- <td>In a common–neuter gender system, gender that denotes human entities.
- </td>
- <td>adapted from: <a href="https://en.wikipedia.org/wiki/Grammatical_gender">wikipedia.org/wiki/Grammatical_gender</a>
- </td>
- </tr>
- <tr>
- <td>feminine
- </td>
- <td>In a masculine/feminine or in a masculine/feminine/neuter gender system, gender that denotes specifically female persons (or animals) or that is assigned arbitrarily to object.
- </td>
- <td>adapted from: wikipedia.org/wiki/Grammatical_gender <a href="http://linguistics-ontology.org/gold/2010/FeminineGender">linguistics-ontology.org/gold/2010/FeminineGender</a>
- </td>
- </tr>
- <tr>
- <td>masculine
- </td>
- <td>In a masculine/feminine or in a masculine/feminine/neuter gender system, gender that denotes specifically male persons (or animals) or that is assigned arbitrarily to object.
- </td>
- <td>adapted from: <a href="https://en.wikipedia.org/wiki/Grammatical_gender">wikipedia.org/wiki/Grammatical_gender</a> <a href="http://linguistics-ontology.org/gold/2010/MasculineGender">linguistics-ontology.org/gold/2010/MasculineGender</a>
- </td>
- </tr>
- <tr>
- <td>neuter
- </td>
- <td>In a masculine/feminine/neuter or common-neuter gender system, gender that generally denotes an object.
- </td>
- <td>adapted from: <a href="https://en.wikipedia.org/wiki/Grammatical_gender">wikipedia.org/wiki/Grammatical_gender</a> <a href="http://linguistics-ontology.org/gold/2010/NeuterGender">linguistics-ontology.org/gold/2010/NeuterGender</a>
- </td>
- </tr>
-</table><br>
- <h3>15.2<a name="Case" href="#Case">Case</a></h3>
-
-<h3>Case</h3>
-
-
-<p>
-Feature that encodes the syntactic (and sometimes semantic) relationship of a noun with the other constituents of the sentence. (adapted from <a href="http://linguistics-ontology.org/gold/2010/CaseProperty">linguistics-ontology.org/gold/2010/CaseProperty</a>)
-</p>
-<h4>Example</h4>
-
-
-
-
-
-<pre class="prettyprint"><grammaticalFeatures targets="nominal" locales="es fr it pt">
- <grammaticalGender values="masculine feminine"/>
-</pre>
-
-
-<h4>Values</h4>
-
-
-
-<table>
- <tr>
- <td><strong>Value</strong>
- </td>
- <td><strong>Definition</strong>
- </td>
- <td><strong>References</strong>
- </td>
- </tr>
- <tr>
- <td>ablative
- </td>
- <td>Ablative case expresses that the referent of the noun it marks is the location from which another referent is moving. It has the meaning 'from'.
- </td>
- <td><a href="https://purl.org/olia/olia.owl#AblativeCase">purl.org/olia/olia.owl#AblativeCase</a> <a href="http://linguistics-ontology.org/gold/2010/AblativeCase">linguistics-ontology.org/gold/2010/AblativeCase</a>
- </td>
- </tr>
- <tr>
- <td>accusative
- </td>
- <td>Accusative case marks certain syntactic functions, usually direct objects.
- </td>
- <td><a href="https://purl.org/olia/olia.owl#Accusative">purl.org/olia/olia.owl#Accusative</a> <a href="http://linguistics-ontology.org/gold/2010/AccusativeCase">linguistics-ontology.org/gold/2010/AccusativeCase</a>
- </td>
- </tr>
- <tr>
- <td>comitative
- </td>
- <td>Comitative Case expresses accompaniment. It carries the meaning 'with' or 'accompanied by'.
- </td>
- <td><a href="https://purl.org/olia/olia.owl#ComitativeCase">purl.org/olia/olia.owl#ComitativeCase</a> <a href="http://linguistics-ontology.org/gold/2010/ComitativeCase">linguistics-ontology.org/gold/2010/ComitativeCase</a>
- </td>
- </tr>
- <tr>
- <td>dative
- </td>
- <td>Dative case marks indirect objects (for languages in which they are held to exist), or nouns having the role of a recipient (as of things given), a beneficiary of an action, or a possessor of an item.
- </td>
- <td><a href="https://purl.org/olia/olia.owl#DativeCase">purl.org/olia/olia.owl#DativeCase</a> <a href="http://linguistics-ontology.org/gold/2010/DativeCase">linguistics-ontology.org/gold/2010/DativeCase</a>
- </td>
- </tr>
- <tr>
- <td>ergative
- </td>
- <td>In ergative-absolutive languages, the ergative case identifies the subject of a transitive verb.
- </td>
- <td><a href="https://purl.org/olia/olia.owl#ErgativeCase">purl.org/olia/olia.owl#ErgativeCase</a> <a href="http://linguistics-ontology.org/gold/2010/ErgativeCase">linguistics-ontology.org/gold/2010/ErgativeCase</a>
- </td>
- </tr>
- <tr>
- <td>genitive
- </td>
- <td>Genitive case signals that the referent of the marked noun is the possessor of the referent of another noun, e.g. "the man's foot". In some languages, genitive case may express an associative relation between the marked noun and another noun.
- </td>
- <td><a href="https://purl.org/olia/olia.owl#GenitiveCase">purl.org/olia/olia.owl#GenitiveCase</a> <a href="http://linguistics-ontology.org/gold/2010/GenitiveCase">linguistics-ontology.org/gold/2010/GenitiveCase</a>
- </td>
- </tr>
- <tr>
- <td>instrumental
- </td>
- <td>InstrumentalCase indicates that the referent of the noun it marks is the means of the accomplishment of the action expressed by the clause.
- </td>
- <td><a href="https://purl.org/olia/olia.owl#InstrumentalCase">purl.org/olia/olia.owl#InstrumentalCase</a> <a href="http://linguistics-ontology.org/gold/2010/InstrumentalCase">linguistics-ontology.org/gold/2010/InstrumentalCase</a>
- </td>
- </tr>
- <tr>
- <td>locative
- </td>
- <td>Case that indicates a final location of action or a time of the action.
- </td>
- <td><a href="https://purl.org/olia/olia.owl#LocativeCase">purl.org/olia/olia.owl#LocativeCase</a> <a href="http://linguistics-ontology.org/gold/2010/LocativeCase">linguistics-ontology.org/gold/2010/LocativeCase</a>
- </td>
- </tr>
- <tr>
- <td>locativecopulative
- </td>
- <td>Copulative Case marker that indicates a location.
- </td>
- <td>TBD Add reference, example
- </td>
- </tr>
- <tr>
- <td>nominative
- </td>
- <td>In nominative-accusative languages, nominative case marks clausal subjects and is applied to nouns in isolation
- </td>
- <td><a href="https://purl.org/olia/olia.owl#Nominative">purl.org/olia/olia.owl#Nominative</a> <a href="http://linguistics-ontology.org/gold/2010/NominativeCase">linguistics-ontology.org/gold/2010/NominativeCase</a>
- </td>
- </tr>
- <tr>
- <td>oblique
- </td>
- <td>Case that is used when a noun is the object of a verb or a proposition, except for nominative and vocative case.
- </td>
- <td><a href="https://purl.org/olia/olia.owl#ObliqueCase">purl.org/olia/olia.owl#ObliqueCase</a>
- </td>
- </tr>
- <tr>
- <td>partitive
- </td>
- <td>The partitive case is a grammatical case which denotes "partialness", "without result", or "without specific identity".
- </td>
- <td><a href="https://purl.org/olia/olia.owl#PartitiveCase">purl.org/olia/olia.owl#PartitiveCase</a> <a href="http://linguistics-ontology.org/gold/2010/PartitiveCase">linguistics-ontology.org/gold/2010/PartitiveCase</a>
- </td>
- </tr>
- <tr>
- <td>prepositional
- </td>
- <td>Prepositional case refers to case marking that only occurs in combination with prepositions.
- </td>
- <td><a href="https://purl.org/olia/olia.owl#PrepositionalCase">purl.org/olia/olia.owl#PrepositionalCase</a>
- </td>
- </tr>
- <tr>
- <td>sociative
- </td>
- <td>Case related to the person in whose company the action is carried out, or to any belongings of people which take part in the action.
- </td>
- <td><a href="https://purl.org/olia/olia.owl#SociativeCase">purl.org/olia/olia.owl#SociativeCase</a>
- </td>
- </tr>
- <tr>
- <td>vocative
- </td>
- <td>Vocative case marks a noun whose referent is being addressed.
- </td>
- <td><a href="https://purl.org/olia/olia.owl#VocativeCase">purl.org/olia/olia.owl#VocativeCase</a> <a href="http://linguistics-ontology.org/gold/2010/VocativeCase">linguistics-ontology.org/gold/2010/VocativeCase</a>
- </td>
- </tr>
-</table>
-
-
-<h3>Definiteness</h3>
-
-
-<p>
-Feature that encodes the fact that a noun has been already mentioned, or is familiar in the discourse. (adapted from <a href="https://glossary.sil.org/term/definiteness">https://glossary.sil.org/term/definiteness</a> )
-</p>
-<h4>Values</h4>
-
-
-
-<table class='simple'>
- <tr>
- <td>definite
- </td>
- <td>Value referring to the capacity of identification of an entity.
- </td>
- <td><a href="https://purl.org/olia/olia.owl#Definite">purl.org/olia/olia.owl#Definite</a>
- </td>
- </tr>
- <tr>
- <td>indefinite
- </td>
- <td>An entity is specified as indefinite when it refers to a non-particularized individual of the species denoted by the noun.
- </td>
- <td><a href="https://purl.org/olia/olia.owl#Indefinite">purl.org/olia/olia.owl#Indefinite</a>
- </td>
- </tr>
- <tr>
- <td>construct
- </td>
- <td>State of the first noun in a genitive phrase of a possessed noun followed by a possessor noun.
- </td>
- <td>no direct linked, but explained under: <a href="https://purl.org/olia/olia-top.owl#DefinitenessFeature">purl.org/olia/olia-top.owl#DefinitenessFeature</a>
- </td>
- </tr>
- <tr>
- <td>unspecified
- </td>
- <td>Noun without any definiteness marking in some specific construction (specific to Danish)
- </td>
- <td> </td>
- </tr>
-</table>
-
-<h2>16 <a name="Grammatical_Derivations" href="#Grammatical_Derivations">Grammatical Derivations</a></h2>
-<pre class='dtd'><!ELEMENT grammaticalData ( grammaticalFeatures*, grammaticalDerivations*) >
-<!ELEMENT grammaticalDerivations (deriveCompound*, deriveComponent*) >
-<!ATTLIST grammaticalDerivations locales NMTOKENS #REQUIRED >
-
-<!ELEMENT deriveCompound EMPTY >
-<!ATTLIST deriveCompound feature NMTOKENS #REQUIRED >
-<!ATTLIST deriveCompound structure NMTOKENS #REQUIRED >
-<!ATTLIST deriveCompound value NMTOKEN #REQUIRED >
-
-<!ATTLIST deriveComponent feature NMTOKENS #REQUIRED >
-<!ATTLIST deriveComponent structure NMTOKENS #REQUIRED >
-<!ATTLIST deriveComponent value0 NMTOKEN #REQUIRED >
-<!ATTLIST deriveComponent value1 NMTOKEN #REQUIRED >
-</pre>
- <p>The grammatical derivation data contains information about the case, gender, and plural categories of compound units. This is supplemental data, so the inheritance by locale needs to be done by the client.</p>
- <p><em>Note: In CLDR v38, the data for two locales is provided so that implemenations can ready their code for when more locale data is available. In subsequent releases structure may be further extended as more locales are added, to deal with additional locale requirements.</em></p>
- <p>A compound unit can use 4 mechanisms, illustrated here in formatted strings:</p>
- <ul>
- <li><strong>Prefix</strong>: 1 <strong>kilo</strong>gram</li>
- <li><strong>Power</strong>: 3 <strong>square</strong> kilometers</li>
- <li><strong>Per</strong>: 3 kilograms <strong>per</strong> meter
- <ul>
- <li>An edge case is where there is no numerator, such as “1 per-second”</li>
- </ul>
- </li>
- <li><strong>Times</strong>: 3 kilowatt<strong>-</strong>hours</li>
- </ul>
- <p>For the purposes of grammatical derivation (and name construction), a compound unit ID can be represented as a tree structure where the leaves are the atomic units, and the higher level node are one of the above. Here is an extreme example of that: <em>kilogram-square-kilometer-ampere-candela-per-square-second-mole</em></p>
- <table class='simple' style=" margin-left: auto;margin-right: auto;">
- <tr>
- <td colspan="6" style="text-align:center"><strong>per</strong></td>
- </tr>
- <tr>
- <td colspan="4" style="text-align:center"><strong>times</strong></td>
- <td colspan="2" style="text-align:center"><strong>times</strong></td>
- </tr>
- <tr>
- <td style="text-align:center"><strong>kilo</strong></td>
- <td style="text-align:center"><strong>square</strong></td>
- <td style="text-align:center">ampere</td>
- <td style="text-align:center">candela</td>
- <td style="text-align:center"><strong>square</strong></td>
- <td style="text-align:center">mole</td>
- </tr>
- <tr>
- <td style="text-align:center">gram</td>
- <td style="text-align:center"><strong>kilo</strong></td>
- <td style="text-align:center">-</td>
- <td style="text-align:center">-</td>
- <td style="text-align:center">second</td>
- <td style="text-align:center"> </td>
- </tr>
- <tr>
- <td style="text-align:center">-</td>
- <td style="text-align:center">meter</td>
- <td style="text-align:center">-</td>
- <td style="text-align:center">-</td>
- <td colspan="2" style="text-align:center">-</td>
- </tr>
- </table>
- <p>Note that the prefix and power nodes are unary (exactly 1 child), the per pattern is unary or binary (1 or 2 children),
- and the times pattern is n-ary (where n > 1).</p>
- <p> </p>
- <p>Each section below is only applicable if the language has more than one value <em>for units</em>:
- for example, for plural categories the language has to have more than just "other".
- When that information is available for a language, it is found in
- <strong>Section 15 <a href="#Grammatical_Features" id="Grammatical_Features2">Grammatical Features</a></strong>.</p>
- <p dir="ltr">The gender derivation would be appropriate for an API call like <code>String genderValue = getGrammaticalGender(locale, "kilogram-meter-per-square-second")</code>. This can be used where the choice of word forms in the rest of a phrase can depend on the gender of the unit.</p>
- <p dir="ltr">On the other hand, the derivation of plural category and case are used in building up the name of a compound unit, where the desired plural category is available from the number to be formatted with the unit, and the case value is known from the position in a message. For example, the case could be accusative if the formatted unit is to be the direct object in a sentence or phrase. This could be expressed in an API call such as <code>String inflectedName = getUnitName(locale, "kilogram-meter-per-square-second", pluralCategory, caseValue)</code>. </p>
- <p dir="ltr">When deriving an inflected compound unit pattern, as the tree-stucture is processed by getting the appropriate localized patterns for the structural components and names for the atomic components. The computation of the plural category and the case of the subtrees can be computed from the <strong>deriveComponent</strong> data. The <strong>times</strong> data is treated as binary, and applied from left to right: with the example from above, the plural categories for the components of <em>kilogram-square-kilometer-ampere-candela</em> are computed by applying </p>
- <p align="center"><strong>times</strong>(<em>kilogram, <strong>times</strong>(square-kilometer, <strong>times</strong>(ampere, candela)))</em></p>
- <p dir="ltr">For a description of how to use these fields to construct a localized name, see <strong>Section 6.4 <a href="#compound-units">Compound Units</a></strong>.</p>
- <p dir="ltr"> </p>
- <h3 dir="ltr">16.1 <a name="gender_compound_units" href="#gender_compound_units">Deriving the Gender of Compound Units</a></h3>
- <p dir="ltr">The <strong>deriveCompound[@feature="gender"]</strong> data provides information for how to derive the gender of the whole compound from the gender of its atomic units and structure. The attributeValues of value are: 0 (=gender of the first element), 1 (=gender of second element), or one of the valid gender values for the language: </p>
- <p dir="ltr">Example:</p>
- <pre><deriveCompound feature="gender" structure="per" value="0"/> <!-- gender(gram-per-meter) ← gender(gram) --> <br><deriveCompound feature="gender" structure="times" value="1"/> <!-- gender(newton-meter) ← gender(meter) --> <br><deriveCompound feature="gender" structure="power" value="0"/> <!-- gender(square-meter) ← gender(meter) --> <br><deriveCompound feature="gender" structure="prefix" value="0"/> <!-- gender(kilometer) ← gender(meter)--> </pre>
- <p>For example, for gram-per-meter, the first line above means:</p>
- <ul>
- <li dir="ltr">
- <p>The gender of the compound is the gender of the first component of the 'per', that is, of the "gram". So if gram is feminine in that language, the gender of the compound is feminine. </p>
- </li>
- </ul>
- <h3>16.2 <a name="plural_compound_units" href="#plural_compound_units">Deriving the Plural Category of Unit Components</a></h3>
- <p>The <strong>deriveComponent[@feature="plural"]</strong> data provides information for how to derive the plural category for each of the atomic units, from the plural category of the whole compound and the structure of the compound. The attributeValues of value0 and value1 are: "compound" (=the pluralCategory of the compound), or one of the valid plural category values for the language.</p>
- <p>Example:</p>
- <pre>
-<deriveComponent feature="plural" structure="per" value0="compound" value1="one"/> <!-- compound(gram-per-meter) ⇒ compound(gram) “per" singular(meter) -->
-<deriveComponent feature="plural" structure="times" value0="one" value1="compound"/> <!-- compound(newton-meter) ⇒ singular(newton) “-" compound(meter) -->
-<deriveComponent feature="plural" structure="power" value0="one" value1="compound"/> <!-- compound(square-meter) ⇒ singular(square) compound(meter) -->
-<deriveComponent feature="plural" structure="prefix" value0="one" value1="compound"/> <!-- compound(kilometer) ⇒ singular(kilo) compound(meter) --></pre>
- <p>For example, for gram-per-meter, the first line above means:</p>
-
- <ul>
- <li dir="ltr">
- <p>When the plural form of gram-per-meter is needed (rather than singular), then the gram part of the translation has to have a plural form like “grams”, while the meter part of the translation has to have a singular form like “metre”. This would be composed with the pattern for "per" (say "{0} pro {1}") to get "grams pro metre".</p>
- </li>
- </ul>
- <h3>16.3 <a name="case_compound_units" href="#case_compound_units">Deriving the Case of Unit Components</a></h3>
- <p>The <strong>deriveComponent[@feature="plural"]</strong> data provides information for how to derive the plural category for each of the atomic units, from the plural category of the whole compound and the structure of the compound.The attributeValues of value0 and value1 are: compound (=the grammatical case of the compound), or one of the valid grammatical case values for the language.</p>
- <p>Example:</p>
- <pre><deriveComponent feature="case" structure="per" value0="compound" value1="nominative"/> <!-- compound(gram-per-meter) ⇒ compound(gram) “per" accusative(meter) -->
-<deriveComponent feature="case" structure="times" value0="nominative" value1="compound"/> <!-- compound(newton-meter) ⇒ nominative(newton) “-" compound(meter) -->
-<deriveComponent feature="case" structure="power" value0="nominative" value1="compound"/> <!-- compound(square-meter) ⇒ nominative(square) compound(meter) -->
-<deriveComponent feature="case" structure="prefix" value0="nominative" value1="compound"/><!--compound(kilometer) ⇒ nominative(kilo) compound(meter) --></pre>
- <p dir="ltr">For example, for gram-per-meter, the first line above means:</p>
- <ul>
- <li dir="ltr">
- <p>When the accusative form of gram-per-meter is needed, then the gram part of the translation has take the accusative case (eg, “gramu”, in a language that marks the accusative case with 'u'), while the meter part of the translation has a nominative form like “metre”. This would be composed with the pattern for "per" (say "{0} pro {1}") to get "gramu pro metre".</p>
- </li>
- </ul>
- <p> </p>
-
-<hr>
- <p class="copyright">Copyright © 2001–2020 Unicode, Inc. All
- Rights Reserved. The Unicode Consortium makes no expressed or
- implied warranty of any kind, and assumes no liability for
- errors or omissions. No liability is assumed for incidental and
- consequential damages in connection with or arising out of the
- use of the information or programs contained or accompanying
- this technical report. The Unicode <a href=
- "https://unicode.org/copyright.html">Terms of Use</a> apply.</p>
- <p class="copyright">Unicode and the Unicode logo are
- trademarks of Unicode, Inc., and are registered in some
- jurisdictions.</p>
- </div>
-</body>
-</html>
diff --git a/docs/ldml/tr35-general.md b/docs/ldml/tr35-general.md
new file mode 100644
index 0000000..7066e9e
--- /dev/null
+++ b/docs/ldml/tr35-general.md
@@ -0,0 +1,2774 @@
+## Unicode Technical Standard #35
+
+# Unicode Locale Data Markup Language (LDML)<br/>Part 2: General
+
+<!-- HTML: no header -->
+<table><tbody>
+<tr><td>Version</td><td>39</td></tr>
+<tr><td>Editors</td><td>Yoshito Umaoka (<a href="mailto:yoshito_umaoka@us.ibm.com">yoshito_umaoka@us.ibm.com</a>) and <a href="tr35.md#Acknowledgments">other CLDR committee members</a></td></tr>
+</tbody></table>
+
+For the full header, summary, and status, see [Part 1: Core](tr35.md).
+
+### _Summary_
+
+This document describes parts of an XML format (_vocabulary_) for the exchange of structured locale data. This format is used in the [Unicode Common Locale Data Repository](https://unicode.org/cldr/).
+
+This is a partial document, describing general parts of the LDML: display names & transforms, etc. For the other parts of the LDML see the [main LDML document](tr35.md) and the links above.
+
+### _Status_
+
+_This document has been reviewed by Unicode members and other interested parties, and has been approved for publication by the Unicode Consortium. This is a stable document and may be used as reference material or cited as a normative reference by other specifications._
+
+> _**A Unicode Technical Standard (UTS)** is an independent specification. Conformance to the Unicode Standard does not imply conformance to any UTS._
+
+_Please submit corrigenda and other comments with the CLDR bug reporting form [[Bugs](tr35.md#Bugs)]. Related information that is useful in understanding this document is found in the [References](tr35.md#References). For the latest version of the Unicode Standard see [[Unicode](tr35.md#Unicode)]. For a list of current Unicode Technical Reports see [[Reports](tr35.md#Reports)]. For more information about versions of the Unicode Standard, see [[Versions](tr35.md#Versions)]._
+
+## <a name="Parts" href="#Parts">Parts</a>
+
+The LDML specification is divided into the following parts:
+
+* Part 1: [Core](tr35.md#Contents) (languages, locales, basic structure)
+* Part 2: [General](tr35-general.md#Contents) (display names & transforms, etc.)
+* Part 3: [Numbers](tr35-numbers.md#Contents) (number & currency formatting)
+* Part 4: [Dates](tr35-dates.md#Contents) (date, time, time zone formatting)
+* Part 5: [Collation](tr35-collation.md#Contents) (sorting, searching, grouping)
+* Part 6: [Supplemental](tr35-info.md#Contents) (supplemental data)
+* Part 7: [Keyboards](tr35-keyboards.md#Contents) (keyboard mappings)
+
+## <a name="Contents" href="#Contents">Contents of Part 2, General</a>
+
+* 1 [Display Name Elements](#Display_Name_Elements)
+ * 1.1 [Locale Display Name Algorithm](#locale_display_name_algorithm)
+ * 1.2 [Locale Display Name Fields](#locale_display_name_fields)
+* 2 [Layout Elements](#Layout_Elements)
+* 3 [Character Elements](#Character_Elements)
+ * 3.1 [Exemplars](#Exemplars)
+ * 3.1.1 [Exemplar Syntax](#ExemplarSyntax)
+ * 3.1.2 [Restrictions](#Restrictions)
+ * 3.2 [Mapping](#Character_Mapping)
+ * 3.3 [Index Labels](#IndexLabels)
+ * 3.4 [Ellipsis](#Ellipsis)
+ * 3.5 [More Information](#Character_More_Info)
+ * 3.6 [Parse Lenient](#Character_Parse_Lenient)
+* 4 [Delimiter Elements](#Delimiter_Elements)
+ * 4.1 [Tailoring Linebreak Using Delimiters](#Tailor_Linebreak_With_Delimiters)
+* 5 [Measurement System Data](#Measurement_System_Data)
+ * 5.1 [Measurement Elements (deprecated)](#Measurement_Elements)
+* 6 [Unit Elements](#Unit_Elements)
+ * 6.1 [Unit Preference and Conversion Data](#Unit_Preference_and_Conversion)
+ * 6.2 [Unit Identifiers](#Unit_Identifiers)
+ * 6.3 [Example Units](#Example_Units)
+ * 6.4 [Compound Units](#compound-units)
+ * 6.5 [Unit Sequences (Mixed Units)](#Unit_Sequences)
+ * 6.6 [durationUnit](#durationUnit)
+ * 6.7 [coordinateUnit](#coordinateUnit)
+ * 6.8 [Territory-Based Unit Preferences](#Territory_Based_Unit_Preferences)
+* 7 [POSIX Elements](#POSIX_Elements)
+* 8 [Reference Element](#Reference_Elements)
+* 9 [Segmentations](#Segmentations)
+ * 9.1 [Segmentation Inheritance](#Segmentation_Inheritance)
+ * 9.2 [Segmentation Suppressions](#Segmentation_Exceptions)
+* 10 [Transforms](#Transforms)
+ * 10.1 [Inheritance](#Inheritance)
+ * 10.1.1 [Pivots](#Pivots)
+ * 10.2 [Variants](#Variants)
+ * 10.3 [Transform Rules Syntax](#Transform_Rules_Syntax)
+ * 10.3.1 [Dual Rules](#Dual_Rules)
+ * 10.3.2 [Context](#Context)
+ * 10.3.3 [Revisiting](#Revisiting)
+ * 10.3.4 [Example](#Example)
+ * 10.3.5 [Rule Syntax](#Rule_Syntax)
+ * 10.3.6 [Transform Rules](#Transform_Rules)
+ * 10.3.7 [Variable Definition Rules](#Variable_Definition_Rules)
+ * 10.3.8 [Filter Rules](#Filter_Rules)
+ * 10.3.9 [Conversion Rules](#Conversion_Rules)
+ * 10.3.10 [Intermixing Transform Rules and Conversion Rules](#Intermixing_Transform_Rules_and_Conversion_Rules)
+ * 10.3.11 [Inverse Summary](#Inverse_Summary)
+* 11 [List Patterns](#ListPatterns)
+ * 11.1 [Gender of Lists](#List_Gender)
+* 12 [ContextTransform Elements](#Context_Transform_Elements)
+ * Table: [Element contextTransformUsage type attribute values](#contextTransformUsage_type_attribute_values)
+* 13 [Choice Patterns](#Choice_Patterns)
+* 14 [Annotations and Labels](#Annotations)
+ * 14.1 [Synthesizing Sequence Names](#SynthesizingNames)
+ * 14.2 [Annotations Character Labels](#Character_Labels)
+ * 14.3 [Typographic Names](#Typographic_Names)
+* 15 [Grammatical Features](#Grammatical_Features)
+ * 15.1 [Gender](#Gender)
+ * 15.2 [Case](#Case)
+* 16 [Grammatical Derivations](#Grammatical_Derivations)
+ * 16.1 [Deriving the Gender of Compound Units](#gender_compound_units)
+ * 16.2 [Deriving the Plural Category of Unit Components](#plural_compound_units)
+ * 16.3 [Deriving the Case of Unit Components](#case_compound_units)
+
+## 1 <a name="Display_Name_Elements" href="#Display_Name_Elements">Display Name Elements</a>
+
+```xml
+<!ELEMENT localeDisplayNames ( alias | ( localeDisplayPattern?, languages?, scripts?, territories?, subdivisions?, variants?, keys?, types?, transformNames?, measurementSystemNames?, codePatterns?, special* ) )>
+```
+
+Display names for scripts, languages, countries, currencies, and variants in this locale are supplied by this element. They supply localized names for these items for use in user-interfaces for various purposes such as displaying menu lists, displaying a language name in a dialog, and so on. Capitalization should follow the conventions used in the middle of running text; the `<contextTransforms>` element may be used to specify the appropriate capitalization for other contexts (see _Section 12 [ContextTransform Elements](#Context_Transform_Elements)_ ). Examples are given below.
+
+> **Note:** The "en" locale may contain translated names for deprecated codes for debugging purposes. Translation of deprecated codes into other languages is discouraged.
+
+Where present, the display names must be unique; that is, two distinct code would not get the same display name. (There is one exception to this: in time zones, where parsing results would give the same GMT offset, the standard and daylight display names can be the same across different time zone IDs.)
+
+Any translations should follow customary practice for the locale in question. For more information, see [[Data Formats](tr35.md#DataFormats)].
+
+```xml
+<localeDisplayPattern>
+```
+```xml
+<!ELEMENT localeDisplayPattern ( alias | (localePattern*, localeSeparator*, localeKeyTypePattern*, special*) ) >
+```
+
+For compound language (locale) IDs such as "pt_BR" which contain additional subtags beyond the initial language code: When the `<languages>` data does not explicitly specify a display name such as "Brazilian Portuguese" for a given compound language ID, "Portuguese (Brazil)" from the display names of the subtags.
+
+It includes three sub-elements:
+
+* The `<localePattern>` element specifies a pattern such as "{0} ({1})" in which {0} is replaced by the display name for the primary language subtag and {1} is replaced by a list of the display names for the remaining subtags.
+* The `<localeSeparator>` element specifies a pattern such as "{0}, {1}" used when appending a subtag display name to the list in the `<localePattern>` subpattern {1} above. If that list includes more than one display name, then `<localeSeparator>` subpattern {1} represents a new display name to be appended to the current list in {0}. _Note: Before CLDR 24, the `<localeSeparator>` element specified a separator string such as ", ", not a pattern._
+* The `<localeKeyTypePattern>` element specifies the pattern used to display key-type pairs, such as "{0}: {1}"
+
+For example, for the locale identifier zh_Hant_CN_co_pinyin_cu_USD, the display would be "Chinese (Traditional, China, Pinyin Sort Order, Currency: USD)". The key-type for co_pinyin doesn't use the localeKeyTypePattern because there is a translation for the key-type in English:
+
+```xml
+<type type="pinyin" key="collation">Pinyin Sort Order</type>
+```
+
+### 1.1 <a name="locale_display_name_algorithm" href="#locale_display_name_algorithm">Locale Display Name Algorithm</a>
+
+A locale display name LDN is generated for a locale identifer L in the following way. First, convert the locale identifier to *canonical syntax* per **[Part 1, Section 3.2.1 Canonical Unicode Locale Identifiers](tr35.md#Canonical_Unicode_Locale_Identifiers)**. That will put the subtags in a defined order, and replace aliases by their canonical counterparts. (That defined order is followed in the processing below.)
+
+Then follow each of the following steps for the subtags in L, building a base name LDN and a list of qualifying strings LQS.
+
+Where there is a match for a subtag, disregard that subtag from L and add the element value to LDN or LQS as described bbelow. If there is no match for a subtag, use the fallback pattern with the subtag subtag instead.
+
+Once LDN and LQS are built, return the following based on the length of LQS.
+
+<!-- HTML: no header -->
+<table><tbody>
+<tr><td>0</td><td>return LDN</td></tr>
+<tr><td>1</td><td>use the <localePattern> to compose the result LDN from LDN and LQS[0], and return it.</td></tr>
+<tr><td>>1</td><td>use the <localeSeparator> element value to join the elements of the list into LDN2, then use the <localePattern> to compose the result LDN from LDN and LDN2, and return it.</td></tr>
+</tbody></table>
+
+The processing can be controlled via the following parameters.
+
+* `CombineLanguage`: boolean
+ * Example: the `CombineLanguage = true`, picking the bold value below.
+ * `<language type="nl">Dutch</language>`
+ * **`<language type="nl_BE">Flemish</language>`**
+* `PreferAlt`: map from element to preferrred alt value, picking the bold value below.
+ * Example: the `PreferAlt` contains `{"language"="short"}`:
+ * `<language type="az">Azerbaijani</language>`
+ * **`<language type="az" alt="short">Azeri</language>`**
+
+In addition, the input locale display name could be minimized (see [Part 1: Section 4.3 Likely Subtags](tr35.md#Likely_Subtags)) before generating the LDN. Selective minimization is often the best choice. For example, in a menu list it is often clearer to show the region if there are any regional variants. Thus the user would just see \["Spanish"\] for es if the latter is the only supported Spanish, but where es-MX is also listed, then see \["Spanish (Spain)", "Spanish (Mexico)"\].
+
+* * *
+
+**Processing types of locale identifier subtags**
+
+When the display name contains "(" or ")" characters (or full-width equivalents), replace them "\[", "\]" (or full-width equivalents) before adding.
+
+1. **Language.** Match the L subtags against the type values in the `<language>` elements. Pick the element with the most subtags matching. If there is more than one such element, pick the one that has subtypes matching earlier. If there are two such elements, pick the one that is alphabetically less. If there is no match, then further convert L to *canonical form* per **[Part 1, Section 3.2.1 Canonical Unicode Locale Identifiers](tr35.md#Canonical_Unicode_Locale_Identifiers)** and try the preceding steps again. Set LBN to the selected value. Disregard any of the matching subtags in the following processing.
+ * If CombineLanguage is false, only choose matches with the language subtag matching.
+2. **Script, Region, Variants.** Where any of these subtags are in L, append the matching element value to LQS.
+3. **T extensions.** Get the value of the `key="h0" type="hybrid"` element, if there is one; otherwise the value of the `<key type="t">` element. Next get the locale display name of the tlang. Join the pair using `<localePattern>` and append to the LQS. Then format and add display names to LQS for any of the remaining tkey-tvalue pairs as described below.
+4. **U extensions.** If there is an attribute value A, process the key-value pair <"u", A> as below and append to LQS. Then format and add display names for each of the remaining key-type pairs as described below.
+5. **Other extensions.** There are currently no such extensions defined. Until such time as there are formats defined for them, append each of the extensions’s subtags to LQS.
+6. **Private Use extensions.** Get the value
+
+**Formatting T/U Key-Value pairs as display names**
+
+1. If there is a match for the key/value, then append the element value and return.
+2. Otherwise, get the display name for the key, using the subtag if not available.
+3. Format special values. As usual, if lacking data, use the subtag(s).
+ 1. key="kr": (REORDER_CODE) assume the value is a script code, and get its display name.
+ 2. key="dx": (SCRIPT_CODE) assume the value is a script code, and get its display name.
+ 3. key="vt": (CODEPOINTS, deprecated) the value is a list of code points. Set the value display name to it, after replacing \[-\_\] by space.
+ 4. key="x0": (PRIVATE_USE) the value is a list of subtags. No formatting available, so use the subtag(s).
+ 5. key="sd": (SUBDIVISION_CODE) use the subdivision data to find the display name.
+ 6. key="rg": (RG_KEY_VALUE): handle as with key="sd"
+4. Then use the value of the `<localeKeyTypePattern>` element to join the key display name and the value display name, and append the result to LQS.
+
+**Examples of English locale display names**
+
+| Locale identifier | Locale display name |
+| ----------------------------- | ------------------- |
+| es | Spanish |
+| es-419 | Spanish (Latin America) |
+| es-Cyrl-MX | Spanish (Cyrillic, Mexico) |
+| en-Latn-GB-fonipa-scouse | English (Latin, United Kingdom, IPA Phonetics, Scouse) |
+| en-u-nu-thai-ca-islamic-civil | English (Calendar: islamic-civil, Thai Digits) |
+| hi-u-nu-latn-t-en-h0-hybrid | Hindi (Hybrid: English, Western Digits) |
+| en-u-nu-deva-t-de | English (Transform: German, Devanagari Digits) |
+| fr-z-zz-zzz-v-vv-vvv-u-uu-uuu-t-ru-Cyrl-s-ss-sss-a-aa-aaa-x-u-x | French (Transform: Russian \[Cyrillic\], uu: uuu, a: aa-aaa, s: ss-sss, v: vv-vvv, x: u-x, z: zz-zzz) |
+
+
+
+### 1.2 <a name="locale_display_name_fields" href="#locale_display_name_fields">Locale Display Name Fields</a>
+
+```xml
+<languages>
+```
+
+This contains a list of elements that provide the user-translated names for language codes, as described in _[Section 3, Unicode Language and Locale Identifiers](tr35.md#Unicode_Language_and_Locale_Identifiers)_.
+
+```xml
+<language type="ab">Abkhazian</language>
+<language type="aa">Afar</language>
+<language type="af">Afrikaans</language>
+<language type="sq">Albanian</language>
+```
+
+There should be no expectation that the list of languages with translated names be complete: there are thousands of languages that could have translated names. For debugging purposes or comparison, when a language display name is missing, the Description field of the language subtag registry can be used to supply a fallback English user-readable name.
+
+The type can actually be any locale ID as specified above. The set of which locale IDs is not fixed, and depends on the locale. For example, in one language one could translate the following locale IDs, and in another, fall back on the normal composition.
+
+| type | translation | composition |
+| --- | --- | --- |
+| nl_BE | Flemish | Dutch (Belgium) |
+| zh_Hans | Simplified Chinese | Chinese (Simplified) |
+| en_GB | British English | English (United Kingdom) |
+
+Thus when a complete locale ID is formed by composition, the longest match in the language type is used, and the remaining fields (if any) added using composition.
+
+Alternate short forms may be provided for some languages (and for territories and other display names), for example.
+
+```xml
+<language type="az">Azerbaijani</language>
+<language type="az" alt="short">Azeri</language>
+<language type="en_GB">British English</language>
+<language type="en_GB" alt="short">U.K. English</language>
+<language type="en_US">American English</language>
+<language type="en_US" alt="short">U.S. English</language>
+```
+
+* * *
+
+```xml
+<scripts>
+```
+
+This element can contain an number of `script` elements. Each `script` element provides the localized name for a script code, as described in _[Section 3, Unicode Language and Locale Identifiers](tr35.md#Unicode_Language_and_Locale_Identifiers)_ (see also _UAX #24: Script Names_ [[UAX24](https://www.unicode.org/reports/tr41/#UAX24)]). For example, in the language of this locale, the name for the Latin script might be "Romana", and for the Cyrillic script is "Kyrillica". That would be expressed with the following.
+
+```xml
+<script type="Latn">Romana</script>
+<script type="Cyrl">Kyrillica</script>
+```
+
+The script names are most commonly used in conjunction with a language name, using the `<localePattern>` combining pattern, and the default form of the script name should be suitable for such use. When a script name requires a different form for stand-alone use, this can be specified using the "stand-alone" alternate:
+
+```xml
+<script type="Hans">Simplified</script>
+<script type="Hans" alt="stand-alone">Simplified Han</script>
+<script type="Hant">Traditional</script>
+<script type="Hant" alt="stand-alone">Traditional Han</script>
+```
+
+This will produce results such as the following:
+
+* Display name of language + script, using `<localePattern>`: “Chinese (Simplified)”
+* Display name of script alone, using `<localePattern>`: “Simplified Han”
+
+* * *
+
+```xml
+<territories>
+```
+
+This contains a list of elements that provide the user-translated names for territory codes, as described in _[Section 3, Unicode Language and Locale Identifiers](tr35.md#Unicode_Language_and_Locale_Identifiers)_.
+
+```xml
+<territory type="AD">Andorra</territory>
+<territory type="AF">Afghanistan</territory>
+<territory type="AL">Albania</territory>
+<territory type="AO">Angola</territory>
+<territory type="DZ">Algeria</territory>
+<territory type="GB">United Kingdom</territory>
+<territory type="GB" alt="short">U.K.</territory>
+<territory type="US">United States</territory>
+<territory type="US" alt="short">U.S.</territory>
+```
+
+Notes:
+* Territory names may not match the official name of the territory, and the English or French names may not match those in ISO 3166. Reasons for this include:
+ * CLDR favors customary names in common parlance, not necessarily the official names.
+ * CLDR endeavors to provide names that are not too long, in order to avoid problems with truncation or overflow in user interfaces.
+* In general the territory names should also match those used in currency names, see **Part 3** _Section 4 [Currencies](tr35-numbers.md#Currencies)_.
+
+* * *
+
+```xml
+<variants>
+```
+
+This contains a list of elements that provide the user-translated names for the _variant_code_ values described in _[Section 3, Unicode Language and Locale Identifiers](tr35.md#Unicode_Language_and_Locale_Identifiers)_ .
+
+```xml
+<variant type="nynorsk">Nynorsk</variant>
+```
+
+* * *
+
+```xml
+<keys>
+```
+
+This contains a list of elements that provide the user-translated names for the _key_ values described in _[Section 3, Unicode Language and Locale Identifiers](tr35.md#Unicode_Language_and_Locale_Identifiers)_.
+
+```xml
+<key type="collation">Sortierung</key>
+```
+
+Note that the `type` values may use aliases. Thus if the locale u-extension key "co" does not match, then the aliases have to be tried, using the bcp47 XML data:
+
+```xml
+<key name="co" description="…" alias="collation">
+```
+
+* * *
+
+```xml
+<types>
+```
+
+This contains a list of elements that provide the user-translated names for the _type_ values described in _[Section 3, Unicode Language and Locale Identifiers](tr35.md#Unicode_Language_and_Locale_Identifiers)_ . Since the translation of an option name may depend on the _key_ it is used with, the latter is optionally supplied.
+
+```xml
+<type type="phonebook" key="collation">Telefonbuch</type>
+```
+
+Note that the `key` and `type` values may use aliases. Thus if the locale u-extension key "co" does not match, then the aliases have to be tried, using the bcp47 XML data.
+
+```xml
+<key name="co" description="…" alias="collation">
+
+<type name="phonebk" description="…" alias="phonebook"/>
+```
+
+* * *
+
+```xml
+<measurementSystemNames>
+```
+
+This contains a list of elements that provide the user-translated names for systems of measurement. The types currently supported are "US", "metric", and "UK".
+
+```xml
+<measurementSystemName type="US">U.S.</type>
+```
+
+**Note:** In the future, we may need to add display names for the particular measurement units (millimeter versus millimetre versus whatever the Greek, Russian, etc are), and a message format for positioning those with respect to numbers. For example, "\{number} \{unitName}" in some languages, but "\{unitName} \{number}" in others.
+
+* * *
+
+```xml
+<transformNames>
+```
+
+```xml
+<transformName type="Numeric">Numeric</type>
+```
+
+* * *
+
+```xml
+<codePatterns>
+```
+
+```xml
+<codePattern type="language">Language: {0}</type>
+```
+
+* * *
+
+```xml
+<!ELEMENT subdivisions ( alias | ( subdivision | special )* ) >
+<!ELEMENT subdivision ( #PCDATA )>
+```
+
+Note that the subdivision names are in separate files, in the subdivisions/ directory. The type values are the fully qualified subdivsion names. For example:
+
+```xml
+<subdivision type="AL-04">Fier County</subdivision>
+<subdivision type="AL-FR">Fier</subdivision> <!-- in AL-04 : Fier County -->
+<subdivision type="AL-LU">Lushnjë</subdivision> <!-- in AL-04 : Fier County -->
+<subdivision type="AL-MK">Mallakastër</subdivision> <!-- in AL-04 : Fier County -->
+```
+
+See also **Part 6** _Section 2.1.1 [Subdivision Containment](tr35-info.md#Subdivision_Containment)_.
+
+## 2 <a name="Layout_Elements" href="#Layout_Elements">Layout Elements</a>
+
+```xml
+<!ELEMENT layout ( alias | (orientation*, inList*, inText*, special*) ) >
+```
+
+This top-level element specifies general layout features. It currently only has one possible element (other than `<special>`, which is always permitted).
+
+```xml
+<!ELEMENT orientation ( characterOrder*, lineOrder*, special* ) >
+<!ELEMENT characterOrder ( #PCDATA ) >
+<!ELEMENT lineOrder ( #PCDATA ) >
+```
+
+The `lineOrder` and `characterOrder` elements specify the default general ordering of lines within a page, and characters within a line. The possible values are:
+
+<!-- HTML: rowspan -->
+<table><tbody>
+<tr><th>Direction</th><th>Value</th></tr>
+<tr><td rowspan="2">Vertical</td><td>top-to-bottom</td></tr>
+<tr> <td>bottom-to-top</td></tr>
+<tr><td rowspan="2">Horizontal</td><td>left-to-right</td></tr>
+<tr> <td>right-to-left</td></tr>
+</tbody></table>
+
+If the value of lineOrder is one of the vertical values, then the value of characterOrder must be one of the horizontal values, and vice versa. For example, for English the lines are top-to-bottom, and the characters are left-to-right. For Mongolian (in the Mongolian Script) the lines are right-to-left, and the characters are top to bottom. This does not override the ordering behavior of bidirectional text; it does, however, supply the paragraph direction for that text (for more information, see _UAX #9: The Bidirectional Algorithm_ [[UAX9](https://www.unicode.org/reports/tr41/#UAX9)]).
+
+For dates, times, and other data to appear in the right order, the display for them should be set to the orientation of the locale.
+
+* * *
+
+```xml
+<inList> (deprecated)
+```
+
+The `<inList>` element is deprecated and has been superseded by the `<contextTransforms>` element; see _Section 12 [ContextTransform Elements](#Context_Transform_Elements)_.
+
+This element controls whether display names (language, territory, etc) are title cased in GUI menu lists and the like. It is only used in languages where the normal display is lower case, but title case is used in lists. There are two options:
+
+```xml
+<inList casing="titlecase-words">
+
+<inList casing="titlecase-firstword">
+```
+
+In both cases, the title case operation is the default title case function defined by Chapter 3 of _[[Unicode](tr35.md#Unicode)]_. In the second case, only the first word (using the word boundaries for that locale) will be title cased. The results can be fine-tuned by using alt="list" on any element where titlecasing as defined by the Unicode Standard will produce the wrong value. For example, suppose that "turc de Crimée" is a value, and the title case should be "Turc de Crimée". Then that can be expressed using the alt="list" value.
+
+* * *
+
+```xml
+<inText> (deprecated)
+```
+
+The `<inList>` element is deprecated and has been superseded by the `<contextTransforms>` element; see _Section 12 [ContextTransform Elements](#Context_Transform_Elements)_.
+
+This element indicates the casing of the data in the category identified by the `inText` `type` attribute, when that data is written in text or how it would appear in a dictionary. For example:
+
+```xml
+<inText type="languages">lowercase-words</inText>
+```
+
+indicates that language names embedded in text are normally written in lower case. The possible values and their meanings are :
+
+* titlecase-words : all words in the phrase should be title case
+* titlecase-firstword : the first word should be title case
+* lowercase-words : all words in the phrase should be lower case
+* mixed : a mixture of upper and lower case is permitted, generally used when the correct value is unknown
+
+## 3 <a name="Character_Elements" href="#Character_Elements">Character Elements</a>
+
+```xml
+<!ELEMENT characters ( alias | ( exemplarCharacters*, ellipsis*, moreInformation*, stopwords*, indexLabels*, mapping*, parseLenients*, special* ) ) >
+```
+
+The `<characters>` element provides optional information about characters that are in common use in the locale, and information that can be helpful in picking resources or data appropriate for the locale, such as when choosing among character encodings that are typically used to transmit data in the language of the locale. It may also be used to help reduce confusability issues: see [[UTR39](https://www.unicode.org/reports/tr41/#UTR36)]. It typically only occurs in a language locale, not in a language/territory locale. The stopwords are an experimental feature, and should not be used.
+
+### 3.1 <a name="Exemplars" href="#Exemplars">Exemplars</a>
+
+Exemplars are characters used by a language, separated into different categories. The following table provides a summary, with more details below.
+
+| Type | Description | Examples |
+| --------------- | ----------- | -------- |
+| main / standard | Main letters used in the language | a-z å æ ø |
+| auxiliary | Additional characters for common foreign words, technical usage | á à ă â å ä ã ā æ ç é è ĕ ê ë ē í ì ĭ î ï ī ñ ó ò ŏ ô ö ø ō œ ú ù ŭ û ü ū ÿ |
+| index | Characters for the header of an index | 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 |
+| punctuation | Common punctuation | - ‐ – — , ; \\: ! ? . … “ ” ‘ ’ ( ) [ ] § @ * / & # † ‡ ′ ″ |
+| numbers | The characters needed to display the common number formats: decimal, percent, and currency. | \[\\u061C\\u200E \\- , ٫ ٬ . % ٪ ‰ ؉ + 0٠ 1١ 2٢ 3٣ 4٤ 5٥ 6٦ 7٧ 8٨ 9٩\] |
+
+The basic exemplar character sets (main and auxiliary) contain the commonly used letters for a given modern form of a language, which can be for testing and for determining the appropriate repertoire of letters for charset conversion or collation. ("Letter" is interpreted broadly, as anything having the property Alphabetic in the [[UAX44](https://unicode.org/reports/tr41/#UAX44)], which also includes syllabaries and ideographs.) It is not a complete set of letters used for a language, nor should it be considered to apply to multiple languages in a particular country. Punctuation and other symbols should not be included in the main and auxiliary sets. In particular, format characters like CGJ are not included.
+
+There are five sets altogether: main, auxiliary, punctuation, numbers, and index. The _main_ set should contain the minimal set required for users of the language, while the _auxiliary_ exemplar set is designed to encompass additional characters: those non-native or historical characters that would customarily occur in common publications, dictionaries, and so on. Major style guidelines are good references for the auxiliary set. So, for example, if Irish newspapers and magazines would commonly have Danish names using å, for example, then it would be appropriate to include å in the auxiliary exemplar characters; just not in the main exemplar set. Thus English has the following:
+
+```xml
+<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]</exemplarCharacters>
+<exemplarCharacters type="auxiliary">[á à ă â å ä ã ā æ ç é è ĕ ê ë ē í ì ĭ î ï ī ñ ó ò ŏ ô ö ø ō œ ú ù ŭ û ü ū ÿ]</exemplarCharacters>
+```
+
+For a given language, there are a few factors that help for determining whether a character belongs in the auxiliary set, instead of the main set:
+
+* The character is not available on all normal keyboards.
+* It is acceptable to always use spellings that avoid that character.
+
+For example, the exemplar character set for en (English) is the set \[a-z\]. This set does not contain the accented letters that are sometimes seen in words like "résumé" or "naïve", because it is acceptable in common practice to spell those words without the accents. The exemplar character set for fr (French), on the other hand, must contain those characters: \[a-z é è ù ç à â ê î ô û æ œ ë ï ÿ\]. The main set typically includes those letters commonly "alphabet".
+
+The _punctuation_ set consists of common punctuation characters that are used with the language (corresponding to main and auxiliary). Symbols may also be included where they are common in plain text, such as ©. It does not include characters with narrow technical usage, such as dictionary punctuation/symbols or copy-edit symbols. For example, English would have something like the following:
+
+> - ‐ – —
+> , ; : ! ? . …
+> ' ‘ ’ " “ ” ′ ″
+> ( ) [ \] { } ⟨ ⟩
+> © ® ™ @ & ° ‧ ·/ # % ¶ § * † ‡
+> + − ± × ÷ < ≤ = ≅ ≥ > √
+
+The numbers exemplars does not currently include lesser-used characters: exponential notation (3.1 × 10²³, ∞, NAN). Nor does it contain the units or currency symbols such as $, ¥, ₹,… It does contain %, because that occurs in the percent format. It may contain some special formatting characters like the RLM. A full list of the currency symbols used with that locale are in the `<currencies>` element, while the units can be gotten from the `<units>` element (both using inheritance, of course).The digits used in each numbering system are accessed in numberingSystems.xml. For more information, see _**Part 3: [Numbers](tr35-numbers.md#Contents)** , Section 2 [Number Elements](tr35-numbers.md#Number_Elements)_.
+
+_Examples for zh.xml:_
+
+| Type | Description |
+| --------------------------------- | ----------- |
+| defaultNumberingSystem | latn |
+| otherNumberingSystems/native | hanidec |
+| otherNumberingSystems/traditional | hans |
+| otherNumberingSystems/finance | hansfin |
+
+When determining the character repertoire needed to support a language, a reasonable initial set would include at least the characters in the main and punctuation exemplar sets, along with the digits and common symbols associated with the numberSystems supported for the locale (see _[Numbering Systems](tr35-numbers.md#Numbering_Systems)_).
+
+The _index_ characters are a set of characters for use as a UI "index", that is, a list of clickable characters (or character sequences) that allow the user to see a segment of a larger "target" list. For details see the [Unicode LDML: Collation](tr35-collation.md#Collation_Indexes) document. The index set may only contain characters whose lowercase versions are in the main and auxiliary exemplar sets, though for cased languages the index exemplars are typically in uppercase. Characters from the auxiliary exemplar set may be necessary in the index set if it needs to properly handle items such as names which may require characters not included in the main exemplar set.
+
+Here is a sample of the XML structure:
+
+```xml
+<exemplarCharacters type="index">[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]</exemplarCharacters>
+```
+
+The display of the index characters can be modified with the `indexLabel`s elements, discussed in Section 3.3.
+
+#### 3.1.1 <a name="ExemplarSyntax" href="#ExemplarSyntax">Exemplar Syntax</a>
+
+In all of the exemplar characters, the list of characters is in the [Unicode Set](tr35.md#Unicode_Sets) format, which normally allows boolean combinations of sets of letters and Unicode properties.
+
+Sequences of characters that act like a single letter in the language — especially in collation — are included within braces, such as `[a-z á é í ó ú ö ü ő ű {cs} {dz} {dzs} {gy} ...]`. The characters should be in normalized form (NFC). Where combining marks are used generatively, and apply to a large number of base characters (such as in Indic scripts), the individual combining marks should be included. Where they are used with only a few base characters, the specific combinations should be included. Wherever there is not a precomposed character (for example, single codepoint) for a given combination, that must be included within braces. For example, to include sequences from the [Where is my Character?](https://unicode.org/standard/where/) page on the Unicode site, one would write: `[{ch} {tʰ} {x̣} {ƛ̓} {ą́} {i̇́} {ト゚}]`, but for French one would just write `[a-z é è ù ...]`. When in doubt use braces, since it does no harm to include them around single code points: for example, `[a-z {é} {è} {ù} ...]`.
+
+If the letter 'z' were only ever used in the combination 'tz', then we might have `[a-y {tz}]` in the main set. (The language would probably have plain 'z' in the auxiliary set, for use in foreign words.) If combining characters can be used productively in combination with a large number of others (such as say Indic matras), then they are not listed in all the possible combinations, but separately, such as:
+
+```
+[ॐ ऄ-ऋ ॠ ऌ ॡ ऍ-क क़ ख ख़ ग ग़ घ-ज ज़ झ-ड ड़ ढ ढ़ ण-फ फ़ ब-य य़ र-ह ़ ँ-ः ॑-॔ ऽ ् ॽ ा-ॄ ॢ ॣ ॅ-ौ]
+```
+
+The exemplar character set for Han characters is composed somewhat differently. It is even harder to draw a clear line for Han characters, since usage is more like a frequency curve that slowly trails off to the right in terms of decreasing frequency. So for this case, the exemplar characters simply contain a set of reasonably frequent characters for the language.
+
+The ordering of the characters in the set is irrelevant, but for readability in the XML file the characters should be in sorted order according to the locale's conventions. The main and auxiliary sets should only contain lower case characters (except for the special case of Turkish and similar languages, where the dotted capital I should be included); the upper case letters are to be mechanically added when the set is used. For more information on casing, see the discussion of Special Casing in the Unicode Character Database.
+
+#### 3.1.2 <a name="Restrictions" href="#Restrictions">Restrictions</a>
+
+1. The main, auxiliary and index sets are normally restricted to those letters with a specific [Script](https://unicode.org/Public/UNIDATA/Scripts.txt) character property (that is, not the values Common or Inherited) or required [Default_Ignorable_Code_Point](https://unicode.org/Public/UNIDATA/DerivedCoreProperties.txt) characters (such as a non-joiner), or combining marks, or the [Word_Break](https://www.unicode.org/Public/UNIDATA/auxiliary/WordBreakProperty.txt) properties [Katakana](#Katakana), [ALetter](#ALetter), or [MidLetter](#MidLetter).
+2. The auxiliary set should not overlap with the main set. There is one exception to this: Hangul Syllables and CJK Ideographs can overlap between the sets.
+3. Any [Default_Ignorable_Code_Point](https://unicode.org/Public/UNIDATA/DerivedCoreProperties.txt)s should be in the auxiliary set , or, if they are only needed for currency formatting, in the currency set. These can include characters such as U+200E LEFT-TO-RIGHT MARK and U+200F RIGHT-TO-LEFT MARK which may be needed in bidirectional text in order for date, currency or other formats to display correctly.
+4. For exemplar characters the [Unicode Set](tr35.md#Unicode_Sets) format is restricted so as to not use properties or boolean combinations.
+
+### 3.2 ~~<a name="Character_Mapping" href="#Character_Mapping">Mapping</a>~~
+
+**This element has been deprecated.** For information on its structure and how it was intended to specify locale-specific preferred encodings for various purposes (e-mail, web), see the [Mapping](https://www.unicode.org/reports/tr35/tr35-39/tr35-general.md#Character_Mapping) section from the CLDR 27 version of the LDML Specification.
+
+### 3.3 ~~<a name="IndexLabels" href="#IndexLabels">Index Labels</a>~~
+
+**This element and its subelements have been deprecated.** For information on its structure and how it was intended to provide data for a compressed display of index exemplar characters where space is limited, see the [Index Labels](https://www.unicode.org/reports/tr35/tr35-39/tr35-general.md#IndexLabels) section from the CLDR 27 version of the LDML Specification.
+
+```xml
+<!ELEMENT indexLabels (indexSeparator*, compressedIndexSeparator*, indexRangePattern*, indexLabelBefore*, indexLabelAfter*, indexLabel*) >
+```
+
+### 3.4 <a name="Ellipsis" href="#Ellipsis">Ellipsis</a>
+
+```xml
+<!ELEMENT ellipsis ( #PCDATA ) >
+<!ATTLIST ellipsis type ( initial | medial | final | word-initial | word-medial | word-final ) #IMPLIED >
+```
+
+The `ellipsis` element provides patterns for use when truncating strings. There are three versions: initial for removing an initial part of the string (leaving final characters); medial for removing from the center of the string (leaving initial and final characters), and final for removing a final part of the string (leaving initial characters). For example, the following uses the ellipsis character in all three cases (although some languages may have different characters for different positions).
+
+```xml
+<ellipsis type="initial">…{0}</ellipsis>
+<ellipsis type="medial">{0}…{1}</ellipsis>
+<ellipsis type="final">{0}…</ellipsis>
+```
+
+There are alternatives for cases where the breaks are on a word boundary, where some languages include a space. For example, such as case would be:
+
+```xml
+<ellipsis type="word-initial">… {0}</ellipsis>
+```
+
+### 3.5 <a name="Character_More_Info" href="#Character_More_Info">More Information</a>
+
+The moreInformation string is one that can be displayed in an interface to indicate that more information is available. For example:
+
+```xml
+<moreInformation>?</moreInformation>
+```
+
+### 3.6 <a name="Character_Parse_Lenient" href="#Character_Parse_Lenient">Parse Lenient</a>
+
+```xml
+<!ELEMENT parseLenients ( alias | ( parseLenient*, special* ) ) >
+<!ATTLIST parseLenients scope (general | number | date) #REQUIRED >
+<!ATTLIST parseLenients level (lenient | stricter) #REQUIRED >
+
+<!ELEMENT parseLenient ( #PCDATA ) >
+<!ATTLIST parseLenient sample CDATA #REQUIRED >
+<!ATTLIST parseLenient alt NMTOKENS #IMPLIED >
+<!ATTLIST parseLenient draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
+```
+
+Example:
+
+```xml
+<parseLenients scope="date" level="lenient">
+ <parseLenient sample="-">[\-./]</parseLenient>
+ <parseLenient sample=":">[\:∶]</parseLenient>
+</parseLenients>
+```
+
+The `parseLenient` elements are used to indicate that characters within a particular UnicodeSet are normally to be treated as equivalent when doing a lenient parse. The `scope` attribute value defines where the lenient sets are intended for use. The `level` attribute value is included for future expansion; currently the only value is "lenient".
+
+The `sample` attribute value is a paradigm element of that UnicodeSet, but the only reason for pulling it out separately is so that different classes of characters are separated, and to enable inheritance overriding. The first version of this data is populated with the data used for lenient parsing from ICU.
+
+## 4 <a name="Delimiter_Elements" href="#Delimiter_Elements">Delimiter Elements</a>
+
+```xml
+<!ELEMENT delimiters (alias | (quotationStart*, quotationEnd*, alternateQuotationStart*, alternateQuotationEnd*, special*)) >
+```
+
+The delimiters supply common delimiters for bracketing quotations. The quotation marks are used with simple quoted text, such as:
+
+> He said, “Don’t be absurd!”
+
+When quotations are nested, the quotation marks and alternate marks are used in an alternating fashion:
+
+> He said, “Remember what the Mad Hatter said: ‘Not the same thing a bit! Why you might just as well say that “I see what I eat” is the same thing as “I eat what I see”!’”
+
+```xml
+<quotationStart>“</quotationStart>
+<quotationEnd>”</quotationEnd>
+<alternateQuotationStart>‘</alternateQuotationStart>
+<alternateQuotationEnd>’</alternateQuotationEnd>
+```
+
+### 4.1 <a name="Tailor_Linebreak_With_Delimiters" href="#Tailor_Linebreak_With_Delimiters">Tailoring Linebreak Using Delimiters</a>
+
+The delimiter data can be used for language-specific tailoring of linebreak behavior, as suggested
+in the [description of linebreak class QU: Quotation](https://www.unicode.org/reports/tr14/#QU)
+in [[UAX14](https://www.unicode.org/reports/tr41/#UAX14)]. This is an example of
+[tailoring type](https://www.unicode.org/reports/tr14/#Tailoring) 1 (from that same document),
+changing the line breaking class assignment for some characters.
+
+If the values of `<quotationStart>` and `<quotationEnd>` are different, then:
+* if the value of `<quotationStart>` is a single character with linebreak class QU: Quotation, change its class to OP: Open Punctuation.
+* if the value of `<quotationEnd>` is a single character with linebreak class QU: Quotation, change its class to CL: Close Punctuation.
+Similarly for `<alternateQuotationStart>` and `<alternateQuotationEnd>`.
+
+Some characters with multiple uses should generally be excluded from this linebreak class remapping, such as:
+* U+2019 RIGHT SINGLE QUOTATION MARK, often used as apostrophe, should not be changed from QU; otherwise it will introduce breaks after apostrophe.
+* Several locales (mostly for central and eastern Europe) have U+201C LEFT DOUBLE QUOTATION MARK as `<quotationEnd>` or `<alternateQuotationEnd>`. However users in these locales may also encounter English text in which U+201C is used as `<quotationStart>`. In order to prevent improper breaks for English text, in these locales U+201C should not be changed from QU.
+
+## 5 <a name="Measurement_System_Data" href="#Measurement_System_Data">Measurement System Data</a>
+
+```xml
+<!ELEMENT measurementData ( measurementSystem*, paperSize* ) >
+
+<!ELEMENT measurementSystem EMPTY >
+<!ATTLIST measurementSystem type ( metric | US | UK ) #REQUIRED >
+<!ATTLIST measurementSystem category ( temperature ) #IMPLIED >
+<!ATTLIST measurementSystem territories NMTOKENS #REQUIRED >
+
+<!ELEMENT paperSize EMPTY >
+<!ATTLIST paperSize type ( A4 | US-Letter ) #REQUIRED >
+<!ATTLIST paperSize territories NMTOKENS #REQUIRED >
+```
+
+The measurement system is the normal measurement system in common everyday use (except for date/time). For example:
+
+```xml
+<measurementData>
+ <measurementSystem type="metric" territories="001" />
+ <measurementSystem type="US" territories="LR MM US" />
+ <measurementSystem type="metric" category="temperature" territories="LR MM" />
+ <measurementSystem type="US" category="temperature" territories="BS BZ KY PR PW" />
+ <measurementSystem type="UK" territories="GB" />
+ <paperSize type="A4" territories="001" />
+ <paperSize type="US-Letter" territories="BZ CA CL CO CR GT MX NI PA PH PR SV US VE" />
+</measurementData>
+```
+
+The values are "metric", "US", or "UK"; others may be added over time.
+
+* The "metric" value indicates the use of SI [[ISO1000](tr35.md#ISO1000)] base or derived units, or non-SI units accepted for use with SI: for example, meters, kilograms, liters, and degrees Celsius.
+* The "US" value indicates the customary system of measurement as used in the United States: feet, inches, pints, quarts, degrees Fahrenheit, and so on.
+* The "UK" value indicates the mix of metric units and Imperial units (feet, inches, pints, quarts, and so on) used in the United Kingdom, in which Imperial volume units such as pint, quart, and gallon are different sizes than in the "US" customary system. For more detail about specific units for various usages, see **Part 6: Supplemental:** _Section 2.4.1 [Preferred Units for Specific Usages](tr35-info.md#Preferred_Units_For_Usage)_.
+
+In some cases, it may be common to use different measurement systems for different categories of measurements. For example, the following indicates that for the category of temperature, in the regions LR and MM, it is more common to use metric units than US units.
+
+```xml
+<measurementSystem type="metric" category="temperature" territories="LR MM"/>
+```
+
+The `paperSize` attribute gives the height and width of paper used for normal business letters. The values are "A4" and "US-Letter".
+
+For both `measurementSystem` entries and `paperSize` entries, later entries for specific territories such as "US" will override the value assigned to that territory by earlier entries for more inclusive territories such as "001".
+
+The measurement information was formerly in the main LDML file, and had a somewhat different format.
+
+Again, for finer-grained detail about specific units for various usages, see **Part 6: Supplemental:** _Section 2.4.1 [Preferred Units for Specific Usages](tr35-info.md#Preferred_Units_For_Usage)_.
+
+### 5.1 <a name="Measurement_Elements" href="#Measurement_Elements">Measurement Elements (deprecated)</a>
+
+```xml
+<!ELEMENT measurement (alias | (measurementSystem?, paperSize?, special*)) >
+```
+
+The `measurement` element is deprecated in the main LDML files, because the data is more appropriately organized as connected to territories, not to linguistic data. Instead, the `measurementData` element in the supplemental data file should be used.
+
+## 6 <a name="Unit_Elements" href="#Unit_Elements">Unit Elements</a>
+
+```xml
+<!ELEMENT units (alias | (unit*, unitLength*, durationUnit*, special*) ) >
+
+<!ELEMENT unitLength (alias | (compoundUnit*, unit*, coordinateUnit*, special*) ) >
+<!ATTLIST unitLength type (long | short | narrow) #REQUIRED >
+
+<!ELEMENT compoundUnit (alias | (compoundUnitPattern*, special*) ) >
+<!ATTLIST compoundUnit type NMTOKEN #REQUIRED >
+
+<!ELEMENT unit ( alias | ( gender*, displayName*, unitPattern*, perUnitPattern*, special* ) ) >
+<!ATTLIST unit type NMTOKEN #REQUIRED >
+
+<!ELEMENT gender ( #PCDATA )>
+
+<!ELEMENT durationUnit (alias | (durationUnitPattern*, special*) ) >
+<!ATTLIST durationUnit type NMTOKEN #REQUIRED >
+
+<!ELEMENT unitPattern ( #PCDATA ) >
+<!ATTLIST unitPattern count (0 | 1 | zero | one | two | few | many | other) #REQUIRED >
+
+<!ELEMENT compoundUnitPattern ( #PCDATA ) >
+<!ATTLIST compoundUnitPattern case NMTOKENS #IMPLIED >
+
+<!ELEMENT compoundUnitPattern1 ( #PCDATA ) >
+<!ATTLIST compoundUnitPattern1 count (0 | 1 | zero | one | two | few | many | other) #IMPLIED >
+<!ATTLIST compoundUnitPattern1 gender NMTOKENS #IMPLIED >
+<!ATTL IST compoundUnitPattern1 case NMTOKENS #IMPLIED >
+
+<!ELEMENT coordinateUnit ( alias | ( displayName*, coordinateUnitPattern*, special* ) ) >
+<!ELEMENT coordinateUnitPattern ( #PCDATA ) >
+<!ATTLIST coordinateUnitPattern type (north | east | south | west) #REQUIRED >
+
+<!ELEMENT durationUnitPattern ( #PCDATA ) >
+```
+
+These elements specify the localized way of formatting quantities of units such as years, months, days, hours, minutes and seconds— for example, in English, "1 day" or "3 days". The English rules that produce this example are as follows ({0} indicates the position of the formatted numeric value):
+
+```xml
+<unit type="duration-day">
+ <displayName>days</displayName>
+ <unitPattern count="one">{0} day</unitName>
+ <unitPattern count="other">{0} days</unitName>
+</unit>
+```
+
+The German rules are more complicated, because German has both gender and case. They thus have additional information, as illustrated below. Note that if there is no `@case` attribute, for backwards compatibility the implied case is nominative. The possible values for @case are listed in the `grammaticalFeatures` element. These follow the inheritance specified in Part 1, Section [4.1.2 Lateral Inheritance](tr35.md#Lateral_Inheritance). Note that the additional grammar elements are only present in the `<unitLength type='long'>` form.
+
+```xml
+<unit type="duration-day">
+ <gender>masculine</gender>
+ <displayName>Tage</displayName>
+ <unitPattern count="one">{0} Tag</unitPattern>
+ <unitPattern count="one" case="accusative">{0} Tag</unitPattern>
+ <unitPattern count="one" case="dative">{0} Tag</unitPattern>
+ <unitPattern count="one" case="genitive">{0} Tages</unitPattern>
+ <unitPattern count="other">{0} Tage</unitPattern>
+ <unitPattern count="other" case="accusative">{0} Tage</unitPattern>
+ <unitPattern count="other" case="dative">{0} Tagen</unitPattern>
+ <unitPattern count="other" case="genitive">{0} Tage</unitPattern>
+ <perUnitPattern>{0} pro Tag</perUnitPattern>
+</unit>
+```
+
+These follow the inheritance specified in Part 1, Section [4.1.2 Lateral Inheritance](tr35.md#Lateral_Inheritance). In addition to supporting language-specific plural cases such as “one” and “other”, unitPatterns support the language-independent explicit cases “0” and “1” for special handling of numeric values that are exactly 0 or 1; see [Explicit 0 and 1 rules](tr35-numbers.md#Explicit_0_1_rules).
+
+The `<unitPattern>` elements may be used to format quantities with decimal values; in such cases the choice of plural form will depend not only on the numeric value, but also on its formatting (see [Language Plural Rules](tr35-numbers.md#Language_Plural_Rules)). In addition to formatting units for stand-alone use, `<unitPattern>` elements are increasingly being used to format units for use in running text; for such usages, the developing [Grammatical Features](#Grammatical_Features) information will be very useful.
+
+Note that for certain plural cases, the unit pattern may not provide for inclusion of a numeric value—that is, it may not include “{0}”. This is especially true for the explicit cases “0” and “1” (which may have patterns like “zero seconds”). In certain languages such as Arabic and Hebrew, this may also be true with certain units for the plural cases “zero”, “one”, or “two” (in these languages, such plural cases are only used for the corresponding exact numeric values, so there is no concern about loss of precision without the numeric value).
+
+Units, like other values with a `count` attribute, use a special inheritance. See **Part 1: Core:** _Section 4.1 [Multiple Inheritance](tr35.md#Multiple_Inheritance)_.
+
+The displayName is used for labels, such as in a UI. It is typically lowercased and as neutral a plural form as possible, and then uses the casing context for the proper display. For example, for English in a UI it would appear as titlecase:
+
+**Duration:**
+
+<!-- HTML: UI drawing -->
+<table><tbody>
+<tr><td>Days</td><td style="color: silver;">enter the vacation length</td></tr>
+</tbody></table>
+
+
+### 6.1 <a name="Unit_Preference_and_Conversion" href="#Unit_Preference_and_Conversion">Unit Preference and Conversion Data</a>
+
+Different locales have different preferences for which unit or combination of units is used for a particular usage, such as measuring a person’s height. This is more fine-grained than merely a preference for metric versus US or UK measurement systems. For example, one locale may use meters alone, while another may use centimeters alone or a combination of meters and centimeters; a third may use inches alone, or (informally) a combination of feet and inches.
+
+The unit preference and conversion data allows formatting functions to pick the right measurement units for the locale and usage, and convert input measurement into those units. For example, a program (or database) could use 1.88 meters internally, but then for person-height have that measurement convert to _6 foot 2 inches_ for en-US and to _188 centimeters_ for de-CH. Using the unit display names and list formats, those results can then be displayed according to the desired width (eg _2″_ vs _2 in_ vs 2 _inches_) and using the locale display names and number formats.
+
+The size of the measurement can also be taken into account, so that an infant can have a height as _18 inches_, and an adult the height as _6 foot 2 inches._
+
+This data is supplied in **Part 6: [Supplemental](tr35-info.md#Contents)**: [Section 13 Unit Conversion](tr35-info.md#Unit_Conversion) and [Section 13 Unit Preferences](tr35-info.md#Unit_Preferences).
+
+### 6.2 <a name="Unit_Identifiers" href="#Unit_Identifiers">Unit Identifiers</a>
+
+Units are identified internally as described in this section. As with other identifiers in CLDR, the American English spelling is used for unit identifiers. These names should not be presented to end users, however. As in other cases, the translated names for different languages (or variants of English) are available in the CLDR localized data.
+
+| Name | Example |
+| -------------------- | ------- |
+| long unit identifier | length-meter, mass-pound, duration-day |
+| core unit identifier | meter, pound, day |
+
+
+Both the _unit identifier_ and the _core unit identifier_ are guaranteed to be unique, and clients can use either one to identify a unit. The associations between types and core unit identifiers are as prescribed in CLDR data; it is invalid for a client to create any additional associations. Except as specified in _Section 6.6 [Private-Use Units](https://www.unicode.org/reports/tr35/tr35-general.md#Private_Use_Units)_, all values are reserved by CLDR.
+
+| Name | Examples |
+| ---------------- | -------- |
+| simple unit ID | meter, foot, inch, pound, pound-force, … |
+| prefixed unit ID | kilometer, centigram, … <br/> _plus simple unit IDs_ |
+| single unit ID | square-foot, cubic-centimeter, … <br/> _plus prefixed unit IDs_ |
+| core unit ID | kilometer-per-hour, kilogram-meter, kilogram-meter-per-square-second, … <br/> _plus single unit IDs_ |
+| mixed unit ID | foot-and-pound |
+
+A core unit that is not a simple unit is called a _complex unit_. It is valid to construct a complex unit identifier from multiple simple unit identifiers using multiplication (kilogram-meter) and division (kilogram-per-meter). As usual, with division the part before the (first) -per- is called the _numerator_, and the part after it is called the _denominator_.
+
+The conversion information uses the short unit identifiers, discarding the unitType. Thus “meter” is used instead of “length-meter”. The translation data currently uses the long unit identifiers, for backwards compatibility. However, that is likely to change in a future version.
+
+The identifiers and unit conversion data are built to handle arbitrary combinations of core unit IDs using division (kilometer-per-hour), multiplication (kilogram-meter), powers (square-second), and SI prefixes (kilo-). Thus they support converting generated units such as inch-pound-per-square-week into comparable units, such as newtons.
+
+* A power (square, cubic, pow4, etc) modifies one prefixed unit ID, and must occur immediately before it in the identifier: square-foot, not foot-square.
+* Multiplication binds more tightly than division, so kilogram-meter-per-second-ampere is interpreted as (kg ⋅ m) / (s ⋅ a).
+* Thus if -per- occurs multiple times, each occurrence after the first is equivalent to a multiplication:
+ * kilogram-meter-per-second-ampere ⩧ kilogram-meter-per-second-per-ampere.
+
+#### Nomenclature
+
+For the US spelling, see the [Preface of the Guide for the Use of the International System of Units (SI), NIST special publication 811](https://www.nist.gov/pml/special-publication-811), which is explicit about the discrepancy with the English-language BIPM spellings:
+
+> In keeping with U.S. and International practice (see Sec. C.2), this Guide uses the dot on the line as the decimal marker. In addition this Guide utilizes the American spellings “meter,” “liter,” and “deka” rather than “metre,” “litre,” and “deca,” and the name “metric ton” rather than “tonne.”
+
+#### Syntax
+
+The formal syntax for identifiers is provided below.
+
+<!-- HTML: no header -->
+
+<table><tbody>
+<tr><td>unit_identifier</td><td>:=</td>
+ <td>long_unit_identifier<br/>
+ | mixed_unit_identifier<br/>
+ | core_unit_identifier</td></tr>
+
+<tr><td>long_unit_identifier</td><td>:=</td>
+ <td>type "-" core_unit_identifier</td></tr>
+
+<tr><td>core_unit_identifier</td><td>:=</td>
+ <td>product_unit ("-per-" product_unit)*<br/>
+ | "per-" product_unit ("-per-" product_unit)*
+ <ul><li><em>Examples:</em>
+ <ul><li>foot-per-second-per-second</li>
+ <li>per-second</li>
+ </ul></li>
+ <li><em>Note:</em> The normalized form will have only one "per"</li>
+ </ul></td></tr>
+
+<tr><td>mixed_unit_identifier</td><td>:=</td>
+ <td>(single_unit | pu_single_unit) ("-and-" (single_unit | pu_single_unit ))*
+ <ul><li><em>Example: foot-and-inch</em></li></ul></td></tr>
+
+<tr><td>product_unit</td><td>:=</td>
+ <td>single_unit ("-" single_unit)* ("-" pu_single_unit)*<br/>
+ | pu_single_unit ("-" pu_single_unit)*
+ <ul><li><em>Example:</em> foot-pound-force</li>
+ <li><em>Constraint:</em> No pu_single_unit may precede a single unit</li>
+ </ul></td></tr>
+
+<tr><td>single_unit</td><td>:=</td>
+ <td>(dimensionality_prefix)? prefixed_unit
+ <ul><li><em>Example: </em>square-meter</li></ul></td></tr>
+
+<tr><td>pu_single_unit</td><td>:=</td>
+ <td>“xxx-” single-unit | “x-” single-unit
+ <ul><li><em>Example:</em> xxx-square-knuts (a Harry Potter unit)</li>
+ <li><em>Note:</em> “x-” is only for backwards compatibility</li>
+ <li>See Section 6.6 <a href="#Private_Use_Units">Private-Use Units</a></li>
+ </ul></td></tr>
+
+<tr><td>dimensionality_prefix</td><td>:=</td>
+ <td>"square-"<p>| "cubic-"<p>| "pow" ([2-9]|1[0-5]) "-"
+ <ul><li><em>Note:</em> "pow2-" and "pow3-" canonicalize to "square-" and "cubic-"</li></ul></td></tr>
+
+<tr><td>prefixed_unit</td><td></td>
+ <td>(prefix)? simple_unit<ul><li><em>Example: </em>kilometer</li></ul></td></tr>
+
+<tr><td>prefix</td><td></td>
+ <td>si_prefix | binary_prefix</td></tr>
+
+<tr><td>si_prefix</td><td>:=</td>
+ <td>"deka" | "hecto" | "kilo", …
+ <ul><li><em>Note: </em>See full list at <a href="https://www.nist.gov/pml/special-publication-811">NIST special publication 811</a></li></ul></td></tr>
+
+<tr><td>binary_prefix</td><td>:=</td>
+ <td>"kibi", "mebi", …
+ <ul><li><em>Note: </em>See full list at <a href="https://physics.nist.gov/cuu/Units/binary.html">Prefixes for binary multiples</a></li></ul></td></tr>
+
+<tr><td>simple_unit</td><td>:=</td>
+ <td>unit_component ("-" unit_component)*<br/>
+ | “em” | “g” | “us” | “hg” | “of”
+ <ul><li><em>Example:</em> gallon-imperial</li>
+ <li><em>Constraint:</em> At least one unit_component must not itself be a simple_unit</li>
+ <li><em>Note:</em> 3 simple units are currently allowed as legacy usage, where a component wouldn’t be a unit_component (eg for “<strong>g</strong>-force”)
+ <ul><li>We will likely deprecate those and add conformant aliases in the future.</li>
+ <li>“hg” and “of” are already only in deprecated simple_units.</li>
+ </ul></li>
+ </ul></td></tr>
+
+<tr><td>unit_component</td><td>:=</td>
+ <td>[a-z]{3,∞} | “1” “0”{2,3}
+ <ul><li><em>Constraints:</em>
+ <ul><li>Cannot be "per", "and", "square", "cubic", "xxx", or "x"; or start with an SI prefix.</li>
+ <li>While the syntax allows any number of letters greater than 3, the unit_components need to be distinct if truncated to 8 letters. This allows for possible future support of units in Unicode Locale Identifiers.</li>
+ </ul></li>
+ <li><em>Example:</em> foot</li>
+ </ul></td></tr>
+
+</tbody></table>
+
+### 6.3 <a name="Example_Units" href="#Example_Units">Example Units</a>
+
+The following table contains examples of types and units currently defined by CLDR. The units in CLDR are not comprehensive; it is anticipated that more will be added over time. The complete list of supported units is in the validity data: see _Section [3.11 Validity Data](tr35.md#Validity_Data)_. The compound units in the table below either require specialized formatting or have a numerator and/or demoninator that are not defined as valid standalone units. Note: as explained in _Section 6.4 [Compound Units](#compound-units)_, CLDR provides data to format any compound unit composed of two simple units from the following table.
+
+| Type | Core Unit Identifier | Compound? | Sample Format |
+| -------------- | ------------------------ | --------- | -------------- |
+| _acceleration_ | g-force | simple | {0} G |
+| _acceleration_ | meter-per-square-second | compound | {0} m/s² |
+| _angle_ | revolution | simple | {0} rev |
+| _angle_ | radian | simple | {0} rad |
+| _angle_ | degree | simple | {0}° |
+| _angle_ | arc-minute | simple | {0}′ |
+| _angle_ | arc-second | simple | {0}″ |
+| _area_ | square-kilometer | simple | {0} km² |
+| _area_ | hectare | simple | {0} ha |
+| ... | ... | ... | ... |
+| _area_ | square-inch | simple | {0} in² |
+| _area_ | dunam | simple | {0} dunam |
+| _concentr_ | karat | simple | {0} kt | dimensionless |
+| _concentr_ | milligram-per-deciliter | compound | {0} mg/dL |
+| _concentr_ | millimole-per-liter | compound | {0} mmol/L |
+| _concentr_ | permillion | compound | {0} ppm | dimensionless |
+| _concentr_ | percent | simple | {0}% | dimensionless |
+| _concentr_ | permille | simple | {0}‰ | dimensionless |
+| _concentr_ | permyriad | simple | {0}‱ | dimensionless |
+| _concentr_ | mole | simple | {0} mol | dimensionless |
+| _consumption_ | liter-per-kilometer | compound | {0} L/km |
+| _consumption_ | liter-per-100-kilometer | compound | {0} L/100km |
+| _consumption_ | mile-per-gallon (US) | compound | {0} mpg |
+| _consumption_ | mile-per-gallon-imperial | compound | {0} mpg Imp. |
+| _digital_ | petabyte | simple | {0} PB |
+| ... | ... | ... | ... |
+| _digital_ | byte | simple | {0} byte |
+| _digital_ | bit | simple | {0} bit |
+| _duration_ | century | simple | {0} c |
+| _duration_ | year | simple | {0} y |
+| _duration_ | year-person | simple | {0} y | for duration or age related to a person |
+| _duration_ | month | simple | {0} m |
+| _duration_ | month-person | simple | {0} m | for duration or age related to a person |
+| _duration_ | week | simple | {0} w |
+| _duration_ | week-person | simple | {0} w | for duration or age related to a person |
+| _duration_ | day | simple | {0} d |
+| _duration_ | day-person | simple | {0} d | for duration or age related to a person |
+| _duration_ | hour | simple | {0} h |
+| ... | ... | ... | ... |
+| _duration_ | nanosecond | simple | {0} ns |
+| _electric_ | ampere | simple | {0} A |
+| _electric_ | milliampere | simple | {0} mA |
+| _electric_ | ohm | simple | {0} Ω |
+| _electric_ | volt | simple | {0} V |
+| _energy_ | kilocalorie | simple | {0} kcal |
+| _energy_ | calorie | simple | {0} cal |
+| _energy_ | foodcalorie | simple | {0} Cal |
+| _energy_ | kilojoule | simple | {0} kJ |
+| _energy_ | joule | simple | {0} J |
+| _energy_ | kilowatt-hour | simple | {0} kWh |
+| _energy_ | electronvolt | simple | {0} eV |
+| _energy_ | british-thermal-unit | simple | {0} Btu |
+| _force_ | pound-force | simple | {0} lbf |
+| _force_ | newton | simple | {0} N |
+| _frequency_ | gigahertz | simple | {0} GHz |
+| _frequency_ | megahertz | simple | {0} MHz |
+| _frequency_ | kilohertz | simple | {0} kHz |
+| _frequency_ | hertz | simple | {0} Hz |
+| _length_ | kilometer | simple | {0} km |
+| ... | ... | ... | ... |
+| _length_ | inch | simple | {0} in |
+| _length_ | parsec | simple | {0} pc |
+| _length_ | light-year | simple | {0} ly |
+| _length_ | astronomical-unit | simple | {0} au |
+| _length_ | furlong | simple | {0} fur |
+| _length_ | fathom | simple | {0} fm |
+| _length_ | nautical-mile | simple | {0} nmi |
+| _length_ | mile-scandinavian | simple | {0} smi |
+| _length_ | point | simple | {0} pt | typographic point, 1/72 inch |
+| _length_ | solar-radius | simple | {0} R☉ |
+| _light_ | lux | simple | {0} lx |
+| _light_ | solar-luminosity | simple | {0} L☉ |
+| _mass_ | metric-ton | simple | {0} t |
+| _mass_ | kilogram | simple | {0} kg |
+| ... | ... | ... | ... |
+| _mass_ | ounce | simple | {0} oz |
+| _mass_ | ounce-troy | simple | {0} oz t |
+| _mass_ | carat | simple | {0} CD |
+| _mass_ | dalton | simple | {0} Da |
+| _mass_ | earth-mass | simple | {0} M⊕ |
+| _mass_ | solar-mass | simple | {0} M☉ |
+| _power_ | gigawatt | simple | {0} GW |
+| ... | ... | ... | ... |
+| _power_ | milliwatt | simple | {0} mW |
+| _power_ | horsepower | simple | {0} hp |
+| _pressure_ | hectopascal | simple | {0} hPa |
+| _pressure_ | millimeter-ofhg | simple | {0} mm Hg |
+| _pressure_ | pound-force-per-square-inch | compound | {0} psi |
+| _pressure_ | inch-ofhg | simple | {0} inHg |
+| _pressure_ | millibar | simple | {0} mbar |
+| _pressure_ | atmosphere | simple | {0} atm |
+| _pressure_ | kilopascal | simple | {0} kPa |
+| _pressure_ | megapascal | simple | {0} MPa |
+| _speed_ | kilometer-per-hour | compound | {0} km/h |
+| _speed_ | meter-per-second | compound | {0} m/s |
+| _speed_ | mile-per-hour | compound | {0} mi/h |
+| _speed_ | knot | simple | {0} kn |
+| _temperature_ | generic | simple | {0}° |
+| _temperature_ | celsius | simple | {0}°C |
+| _temperature_ | fahrenheit | simple | {0}°F |
+| _temperature_ | kelvin | simple | {0} K |
+| _torque_ | pound-force-foot | simple | {0} lbf⋅ft |
+| _torque_ | newton-meter | simple | {0} N⋅m |
+| _volume_ | cubic-kilometer | simple | {0} km³ |
+| ... | ... | ... | ... |
+| _volume_ | cubic-inch | simple | {0} in³ |
+| _volume_ | megaliter | simple | {0} ML |
+| ... | ... | ... | ... |
+| _volume_ | pint | simple | {0} pt |
+| _volume_ | cup | simple | {0} c |
+| _volume_ | fluid-ounce (US) | simple | {0} fl oz |
+| _volume_ | fluid-ounce-imperial | simple | {0} fl oz Imp. |
+| _volume_ | tablespoon | simple | {0} tbsp |
+| _volume_ | teaspoon | simple | {0} tsp |
+| _volume_ | barrel | simple | {0} bbl |
+
+There are three widths: **long**, **short**, and **narrow**. As usual, the narrow forms may not be unique: in English, 1′ could mean 1 minute of arc, or 1 foot. Thus narrow forms should only be used where the context makes the meaning clear.
+
+Where the unit of measurement is one of the [International System of Units (SI)](https://physics.nist.gov/cuu/Units/units.html), the short and narrow forms will typically use the international symbols, such as “mm” for millimeter. They may, however, be different if that is customary for the language or locale. For example, in Russian it may be more typical to see the Cyrillic characters “мм”.
+
+Units are included for translation even where they are not typically used in a particular locale, such as kilometers in the US, or inches in Germany. This is to account for use by travelers and specialized domains, such as the German “̌Fernseher von 32 bis 55 Zoll (80 bis 140 cm)” for TV screen size in inches and centimeters.
+
+For temperature, there is a special unit `<unit type="temperature-generic">`, which is used when it is clear from context whether Celcius or Fahrenheit is implied.
+
+For duration, there are special units such as `<unit type="duration-year-person">` and `<unit type="duration-year-week">` for indicating the age of a person, which requires special forms in some languages. For example, in "zh", references to a person being 3 days old or 30 years old would use the forms “他3天大” and “他30岁” respectively.
+
+<a name="compoundUnitPattern"></a><a name="perUnitPatterns"></a>
+### 6.4 <a name="compound-units" href="#compound-units">Compound Units</a>
+
+A common combination of units is X per Y, such as _miles per hour_ or _liters per second_ or _kilowatt-hours_.
+
+There are different types of structure used to build the localized name of compound units. All of these follow the inheritance specified in [Part 1, Section 4.1.2 Lateral Inheritance](tr35.md#Lateral_Inheritance).
+
+**Prefixes** are for powers of 10 and powers of 1024 (the latter only used with digital units of measure). These are invariant for case, gender, or plural (though those could be added in the future if needed by a language).
+
+```xml
+<compoundUnit type="10p9">
+ <unitPrefixPattern>Giga{0}</unitPrefixPattern>
+</compoundUnit>
+
+<compoundUnit type="1024p3">
+ <unitPrefixPattern>Gibi{0}</unitPrefixPattern>
+</compoundUnit>
+```
+
+**compoundUnitPatterns** are used for compounding units by multiplication or division: kilowatt-hours, or meters per second. These are invariant for case, gender, or plural (though those could be added in the future if needed by a language).
+
+```xml
+<compoundUnit type="per">
+ <compoundUnitPattern>{0} pro {1}</compoundUnitPattern>
+</compoundUnit>
+
+<compoundUnit type="times">
+ <compoundUnitPattern>{0}⋅{1}</compoundUnitPattern>
+</compoundUnit>
+```
+
+There can be at most one "per" pattern used in producing a compound unit, while the "times" pattern can be used multiple times.
+
+`compoundUnitPattern1`s are used for expressing powers, such as square meter or cubic foot. These are the most complicated, since they can vary by plural category (count), by case, and by gender. However, these extra attributes are only used if the are present in the `grammaticalFeatures` element for the language in question. See [Section 15, Grammatical Features](tr35-general.md#Grammatical_Features). Note that the additional grammar elements are only present in the `<unitLength type='long'>` form.
+
+```xml
+<compoundUnit type="power2">
+ <compoundUnitPattern1>{0} kw.</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one">{0} kwadratowe</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one" case="accusative">{0} kwadratowe</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one" case="dative">{0} kwadratowemu</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one" case="genitive">{0} kwadratowego</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one" case="instrumental">{0} kwadratowym</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one" case="locative">{0} kwadratowym</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one" case="vocative">{0} kwadratowe</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one" gender="feminine">{0} kwadratowa</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one" gender="feminine" case="accusative">{0} kwadratową</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one" gender="feminine" case="dative">{0} kwadratowej</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one" gender="feminine" case="genitive">{0} kwadratowej</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one" gender="feminine" case="instrumental">{0} kwadratową</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one" gender="feminine" case="locative">{0} kwadratowej</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one" gender="feminine" case="vocative">{0} kwadratowa</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one" gender="inanimate">{0} kwadratowy</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one" gender="inanimate" case="accusative">{0} kwadratowy</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one" gender="inanimate" case="dative">{0} kwadratowemu</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one" gender="inanimate" case="genitive">{0} kwadratowego</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one" gender="inanimate" case="instrumental">{0} kwadratowym</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one" gender="inanimate" case="locative">{0} kwadratowym</compoundUnitPattern1>
+ <compoundUnitPattern1 count="one" gender="inanimate" case="vocative">{0} kwadratowy</compoundUnitPattern1>
+ <compoundUnitPattern1 count="few">{0} kwadratowe</compoundUnitPattern1>
+ <compoundUnitPattern1 count="few" case="accusative">{0} kwadratowe</compoundUnitPattern1>
+ <compoundUnitPattern1 count="few" case="dative">{0} kwadratowym</compoundUnitPattern1>
+ …
+```
+
+Some units already have 'precomputed' forms, such as **kilometer-per-hour**; where such units exist, they should be used in preference.
+
+If there is no precomputed form, the following process in pseudocode is used to generate a pattern for the compound unit.
+
+**pattern(unitId, locale, length, pluralCategory, caseVariant)**
+
+1. If the unitId is empty or invalid, fail
+2. Put the unitId into normalized order: hour-kilowatt => kilowatt-hour, meter-square-meter-per-second-second => cubic-meter-per-square-second
+3. Set result to be getValue(unitId with length, pluralCategory, caseVariant)
+ 1. If result is not empty, return it
+4. Divide the unitId into numerator (the part before the "-per-") and denominator (the part after the "-per-). If both are empty, fail
+5. Set both globalPlaceholder and globalPlaceholderPosition to be empty
+6. Set numeratorUnitString to patternTimes(numerator, length, per0(pluralCategory), per0(caseVariant))
+7. Set denominatorUnitString to patternTimes(denominator, length, per1(pluralCategory), per1(caseVariant))
+8. Set perPattern to be getValue(per, locale, length)
+9. If the denominatorString is empty, set result to numeratorString, otherwise set result to format(perPattern, numeratorUnitString, denominatorUnitString)
+10. return format(result, globalPlaceholder, globalPlaceholderPosition)
+
+**patternTimes(product_unit, locale, length, pluralCategory, caseVariant)**
+
+1. Set hasMultiple to true iff product_unit has more than one single_unit
+2. Set timesPattern to be getValue(times, locale, length)
+3. Set result to be empty
+4. For each single_unit in product_unit
+ 1. If hasMultiple
+ 1. Set singlePluralCategory to be times0(pluralCategory)
+ 2. Set singleCaseVariant to be times0(caseVariant)
+ 3. Set pluralCategory to be times1(pluralCategory)
+ 4. Set caseVariant to be times1(caseVariant)
+ 2. Get the gender of that single_unit
+ 3. If singleUnit starts with a dimensionality_prefix, such as 'square-'
+ 1. set dimensionalityPrefixPattern to be getValue(that dimensionality_prefix, locale, length, singlePluralCategory, singleCaseVariant, gender), such as "{0} kwadratowym"
+ 2. set singlePluralCategory to be power0(singlePluralCategory)
+ 3. set singleCaseVariant to be power0(singleCaseVariant)
+ 4. remove the dimensionality_prefix from singleUnit
+ 4. if singleUnit starts with an si_prefix, such as 'centi'
+ 1. set siPrefixPattern to be getValue(that si_prefix, locale, length), such as "centy{0}"
+ 2. set singlePluralCategory to be prefix0(singlePluralCategory)
+ 3. set singleCaseVariant to be prefix0(singleCaseVariant)
+ 4. remove the si_prefix from singleUnit
+ 5. Set corePattern to be the getValue(singleUnit, locale, length, singlePluralCategory, singleCaseVariant), such as "{0} metrem"
+ 6. Extract(corePattern, coreUnit, placeholder, placeholderPosition) from that pattern.
+ 7. If the position is _middle_, then fail
+ 8. If globalPlaceholder is empty
+ 1. Set globalPlaceholder to placeholder
+ 2. Set globalPlaceholderPosition to placeholderPosition
+ 9. If siPrefixPattern is not empty
+ 1. Set coreUnit to be the combineLowercasing(locale, length, siPrefixPattern, coreUnit)
+ 10. If dimensionalityPrefixPattern is not empty
+ 1. Set coreUnit to be the combineLowercasing(locale, length, dimensionalityPrefixPattern, coreUnit)
+ 11. If the result is empty, set result to be coreUnit
+ 12. Otherwise set result to be format(timesPattern, result, coreUnit)
+5. Return result
+
+**combineLowercasing(locale, length, prefixPattern, coreUnit)**
+
+1. If the length is "long" and the prefixPattern contains no spaces, lowercase the coreUnit according to the locale, thus "Quadrat{0}" causes "Zentimeter" to become "zentimeter"
+2. return format(prefixPattern, unitPattern), eg "Quadratzentimeter"
+
+**format(pattern, arguments…)**
+
+1. return the result of substituting the arguments for the placeholders {0}, {1}, etc.
+
+**getValue(key, locale, length, variants…)**
+
+1. return the element value in the locale for the path corresponding to the key, locale, length, and variants — using normal inheritance including [Lateral Inheritance](https://unicode-org.github.io/cldr/ldml/tr35.md#Multiple_Inheritance) and [Parent Locales](https://unicode-org.github.io/cldr/ldml/tr35.md#Parent_Locales).
+
+**Extract(corePattern, coreUnit, placeholder, placeholderPosition)**
+
+1. Find the position of the **placeholder** in the core pattern
+2. Set **placeholderPosition** to that position (start, middle, or end)
+3. Remove the **placeholder** from the **corePattern** and set **coreUnit** to that result
+
+**per0(...), times0(...), etc.**
+
+1. These represent the **deriveComponent** data values from **Section 16 [Grammatical Derivations](#Grammatical_Derivations)**, where value0 of the per-structure is given as per0(...), and so on.
+2. "power" corresponds to dimensionality_prefix, while "prefix" corresponds to si_prefix.
+
+If the locale does not provide full modern coverage, the process could fall back to root locale for some localized patterns. That may give a "ransom-note" effect for the user. To avoid that, it may be preferable to abort the process at that point, and then localize the unitId for the root locale.
+
+If a unit is not supported by root, then the localization is not supported by CLDR and will fail.
+
+#### Precomposed Compound Units
+
+At each point in the process, if there is a precomposed form for a segment of the unitId, then that precomposed form should be used instead. For example, if there is a pattern in the locale for (square-kilometer, length, singlePluralCategory, singleCaseVariant, gender), then it should be used instead of composing the name from "square" and "kilometer".
+
+There is also a precomposed **perUnitPattern** which is used as the denominator with another unit name. For example, a form such as "{0} per second" can be used to form "2 feet **per second**". The difference between these is that in some inflected languages, the compoundUnit cannot be used to form grammatical phrases. This is typically because the "per" + "second" combine in a non-trivial way. The `perUnitPattern` should be applied if the denominator has only one element, and matches the `perUnitPattern` type.
+
+### 6.5 <a name="Unit_Sequences" href="#Unit_Sequences">Unit Sequences (Mixed Units)</a>
+
+Units may be used in composed sequences (aka _mixed units_), such as **5° 30′** for 5 degrees 30 minutes, or **3 ft 2 in.** For that purpose, the appropriate width of the unit `listPattern` can be used to compose the units in a sequence.
+
+```xml
+<listPattern type="unit"> (for the long form)
+<listPattern type="unit-narrow">
+<listPattern type="unit-short">
+```
+
+In such a sequence, decimal fractions are typically only displayed for the last element of the sequence, if at all.
+
+### 6.6 <a name="durationUnit" href="#durationUnit">durationUnit</a>
+
+The durationUnit is a special type of unit used for composed time unit durations.
+
+```xml
+<durationUnit type="hms">
+ <durationUnitPattern>h:mm:ss</durationUnitPattern> <!-- 33:04:59 -->
+</durationUnit>
+```
+
+The type contains a skeleton, where 'h' stands for hours, 'm' for minutes, and 's' for sections. These are the same symbols used in availableFormats, except that there is no need to distinguish different forms of the hour.
+
+### 6.7 <a name="coordinateUnit" href="#coordinateUnit">coordinateUnit</a>
+
+The **coordinateUnitPattern** is a special type of pattern used for composing degrees of latitude and longitude, with an indicator of the quadrant. There are exactly 4 type values, plus a displayName for the items in this category. An angle is composed using the appropriate combination of the **angle-degrees**, **angle-arc-minute** and **angle-arc-second** values. It is then substituted for the placeholder field {0} in the appropriate **coordinateUnit** pattern.
+
+```xml
+<displayName>direction</displayName>
+<coordinateUnitPattern type="east">{0}E</coordinateUnitPattern>
+<coordinateUnitPattern type="north">{0}N</coordinateUnitPattern>
+<coordinateUnitPattern type="south">{0}S</coordinateUnitPattern>
+<coordinateUnitPattern type="west">{0}W</coordinateUnitPattern>
+```
+
+### 6.8 <a name="Territory_Based_Unit_Preferences" href="#Territory_Based_Unit_Preferences">Territory-Based Unit Preferences</a>
+
+Different locales have different preferences for which unit or combination of units is used for a particular usage, such as measuring a person’s height. This is more fine-grained than merely a preference for metric versus US or UK measurement systems. For example, one locale may use meters alone, while another may use centimeters alone or a combination of meters and centimeters; a third may use inches alone, or (informally) a combination of feet and inches.
+
+The `<unitPreferenceData>` element, described in [Preferred Units for Specific Usages](tr35-info.md#Preferred_Units_For_Usage), provides information on which unit or combination of units is used for various purposes in different locales, with options for the level of formality and the scale of the measurement (e.g measuring the height of an adult versus that of an infant).
+
+### 6.9 <a name="Private_Use_Units" href="#Private_Use_Units">Private-Use Units</a>
+
+CLDR has reserved the "xxx-" prefix in the simple_unit part of the unit identifier BNF for private-use units. CLDR will never define a type, simple unit, or compound unit such that the unit identifier starts with "xxx-", ends with "-xxx", or contains "-xxx-".
+
+For example, if you wanted to define your own unit "foo", you could use the simple unit "xxx-foo".
+
+It is valid to construct compound units containing one or more private-use simple units. For example, "xxx-foo-per-second" and "xxx-foo-per-xxx-bar" are both valid core unit identifiers for compound units.
+
+As explained earlier, CLDR defines all associations between types and units. It is therefore not possible to construct a valid long unit identifier containing a private-use unit; only core unit identifiers are possible.
+
+The older syntax used “x-”, which was expanded to “xxx-” to simplify use with BCP47 syntax. That should be converted to “xxx-”.
+
+## 7 <a name="POSIX_Elements" href="#POSIX_Elements">POSIX Elements</a>
+
+```xml
+<!ELEMENT posix (alias | (messages*, special*)) >
+<!ELEMENT messages (alias | ( yesstr*, nostr*)) >
+```
+
+The following are included for compatibility with POSIX.
+
+```xml
+<posix>
+ <posix:messages>
+ <posix:yesstr>ja</posix:yesstr>
+ <posix:nostr>nein</posix:nostr>
+ </posix:messages>
+<posix>
+```
+
+1. The values for yesstr and nostr contain a colon-separated list of strings that would normally be recognized as "yes" and "no" responses. For cased languages, this shall include only the lower case version. POSIX locale generation tools must generate the upper case equivalents, and the abbreviated versions, and add the English words wherever they do not conflict. Examples:
+ * ja → ja:Ja:j:J:yes:Yes:y:Y
+ * ja → ja:Ja:j:J:yes:Yes // exclude y:Y if it conflicts with the native "no".
+2. The older elements `yesexpr` and `noexpr` are deprecated. They should instead be generated from `yesstr` and `nostr` so that they match all the responses.
+
+So for English, the appropriate strings and expressions would be as follows:
+
+```
+yesstr "yes:y"
+nostr "no:n"
+```
+
+The generated yesexpr and noexpr would be:
+
+```
+yesexpr "^([yY]([eE][sS])?)"
+```
+
+This would match y,Y,yes,yeS,yEs,yES,Yes,YeS,YEs,YES.
+
+```
+noexpr "^([nN][oO]?)"
+```
+
+This would match n,N,no,nO,No,NO.
+
+## 8 <a name="Reference_Elements" href="#Reference_Elements">Reference Element</a>
+
+(Use only in supplemental data; deprecated for ldml.dtd and locale data)
+
+```xml
+<!ELEMENT references ( reference* ) >
+<!ELEMENT reference ( #PCDATA ) >
+<!ATTLIST reference type NMTOKEN #REQUIRED>
+<!ATTLIST reference standard ( true | false ) #IMPLIED >
+<!ATTLIST reference uri CDATA #IMPLIED >
+```
+
+The references section supplies a central location for specifying references and standards. The uri should be supplied if at all possible. If not online, then a ISBN number should be supplied, such as in the following example:
+
+```xml
+<reference type="R2" uri="https://www.ur.se/nyhetsjournalistik/3lan.html">Landskoder på Internet</reference>
+<reference type="R3" uri="URN:ISBN:91-47-04974-X">Svenska skrivregler</reference>
+```
+
+## 9 <a name="Segmentations" href="#Segmentations">Segmentations</a>
+
+```xml
+<!ELEMENT segmentations ( alias | segmentation*) >
+
+<!ELEMENT segmentation ( alias | (variables?, segmentRules? , exceptions?, suppressions?) | special*) >
+<!ATTLIST segmentation type NMTOKEN #REQUIRED >
+
+<!ELEMENT variables ( alias | variable*) >
+
+<!ELEMENT variable ( #PCDATA ) >
+<!ATTLIST variable id CDATA #REQUIRED >
+
+<!ELEMENT segmentRules ( alias | rule*) >
+
+<!ELEMENT rule ( #PCDATA ) >
+<!ATTLIST rule id NMTOKEN #REQUIRED >
+
+<!ELEMENT suppressions ( suppression* ) >
+
+<!ATTLIST suppressions type NMTOKEN "standard" >
+
+<!ATTLIST suppressions draft ( approved | contributed | provisional | unconfirmed ) #IMPLIED >
+
+<!ELEMENT suppression ( #PCDATA ) >
+```
+
+The `segmentations` element provides for segmentation of text into words, lines, or other segments. The structure is based on [[UAX29](https://www.unicode.org/reports/tr41/#UAX29)] notation, but adapted to be machine-readable. It uses a list of variables (representing character classes) and a list of rules. Each must have an `id` attribute.
+
+The rules in _root_ implement the segmentations found in [[UAX29](https://www.unicode.org/reports/tr41/#UAX29)] and [[UAX14](https://www.unicode.org/reports/tr41/#UAX14)], for grapheme clusters, words, sentences, and lines. They can be overridden by rules in child locales.
+
+Here is an example:
+
+```xml
+<segmentations>
+ <segmentation type="GraphemeClusterBreak">
+ <variables>
+ <variable id="$CR">\p{Grapheme_Cluster_Break=CR}</variable>
+ <variable id="$LF">\p{Grapheme_Cluster_Break=LF}</variable>
+ <variable id="$Control">\p{Grapheme_Cluster_Break=Control}</variable>
+ <variable id="$Extend">\p{Grapheme_Cluster_Break=Extend}</variable>
+ <variable id="$L">\p{Grapheme_Cluster_Break=L}</variable>
+ <variable id="$V">\p{Grapheme_Cluster_Break=V}</variable>
+ <variable id="$T">\p{Grapheme_Cluster_Break=T}</variable>
+ <variable id="$LV">\p{Grapheme_Cluster_Break=LV}</variable>
+ <variable id="$LVT">\p{Grapheme_Cluster_Break=LVT}</variable>
+ </variables>
+ <segmentRules>
+ <rule id="3"> $CR × $LF </rule>
+ <rule id="4"> ( $Control | $CR | $LF ) ÷ </rule>
+ <rule id="5"> ÷ ( $Control | $CR | $LF ) </rule>
+ <rule id="6"> $L × ( $L | $V | $LV | $LVT ) </rule>
+ <rule id="7"> ( $LV | $V ) × ( $V | $T ) </rule>
+ <rule id="8"> ( $LVT | $T) × $T </rule>
+ <rule id="9"> × $Extend </rule>
+ </segmentRules>
+ </segmentation>
+...
+```
+
+**Variables:** All variable ids must start with a $, and otherwise be valid identifiers according to the Unicode definitions in [[UAX31](https://www.unicode.org/reports/tr41/#UAX31)]. The contents of a variable is a regular expression using variables and [UnicodeSet](tr35.md#Unicode_Sets)s. The ordering of variables is important; they are evaluated in order from first to last (see _[Section 9.1 Segmentation Inheritance](#Segmentation_Inheritance)_). It is an error to use a variable before it is defined.
+
+**Rules:** The contents of a rule uses the syntax of [[UAX29](https://www.unicode.org/reports/tr41/#UAX29)]. The rules are evaluated in numeric id order (which may not be the order in which the appear in the file). The first rule that matches determines the status of a boundary position, that is, whether it breaks or not. Thus ÷ means a break is allowed; × means a break is forbidden. It is an error if the rule does not contain exactly one of these characters (except where a rule has no contents at all, or if the rule uses a variable that has not been defined.
+
+There are some implicit rules:
+
+* The implicit initial rules are always "start-of-text ÷" and "÷ end-of-text"; these are not to be included explicitly.
+* The implicit final rule is always "Any ÷ Any". This is not to be included explicitly.
+
+> **Note:** A rule like X Format\* -> X in [[UAX29](https://www.unicode.org/reports/tr41/#UAX29)] and [[UAX14](https://www.unicode.org/reports/tr41/#UAX14)] is not supported. Instead, this needs to be expressed as normal regular expressions. The normal way to support this is to modify the variables, such as in the following example:
+>
+> ```xml
+> <variable id="$Format">\p{Word_Break=Format}</variable>
+> <variable id="$Katakana">\p{Word_Break=Katakana}</variable>
+> ...
+> <!-- In place of rule 3, add format and extend to everything -->
+> <variable id="$X">[$Format $Extend]*</variable>
+> <variable id="$Katakana">($Katakana $X)</variable>
+> <variable id="$ALetter">($ALetter $X)</variable>
+> ...
+> ```
+
+### 9.1 <a name="Segmentation_Inheritance" href="#Segmentation_Inheritance">Segmentation Inheritance</a>
+
+Variables and rules both inherit from the parent.
+
+**Variables:** The child's variable list is logically appended to the parent's, and evaluated in that order. For example:
+
+```xml
+// in parent
+<variable id="$AL">[:linebreak=AL:]</variable>
+<variable id="$YY">[[:linebreak=XX:]$AL]</variable> // adds $AL
+
+// in child
+<variable id="$AL">[$AL && [^a-z]]</variable> // changes $AL, does not affect $YY
+<variable id="$ABC">[abc]</variable> // adds new rule
+```
+
+**Rules:** The rules are also logically appended to the parent's. Because rules are evaluated in numeric id order, to insert a rule in between others just requires using an intermediate number. For example, to insert a rule after id="10.1" and before id="10.2", just use id="10.15". To delete a rule, use empty contents, such as:
+
+```xml
+<rule id="3" /> // deletes rule 3
+````
+
+### 9.2 <a name="Segmentation_Exceptions" href="#Segmentation_Exceptions">Segmentation Suppressions</a>
+
+**Note:** As of CLDR 26, the `<suppressions>` data is to be considered a technology preview. Data currently in CLDR was extracted from the Unicode Localization Interoperability project, or ULI. See [http://uli.unicode.org](http://uli.unicode.org) for more information on the ULI project.
+
+The segmentation **suppressions** list provides a set of cases which, though otherwise identified as a segment by rules, should be skipped (suppressed) during segmentation.
+
+For example, in the English phrase "Mr. Smith", CLDR segmentation rules would normally find a Sentence Break between "Mr" and "Smith". However, typically, "Mr." is just an abbreviation for "Mister", and not actually the end of a sentence.
+
+Each suppression has a separate `<suppression>` element, whose contents are the break to be skipped.
+
+Example:
+
+```xml
+<segmentation type="SentenceBreak">
+ <suppressions type="standard" draft="provisional">
+ <suppression>Maj.</suppression>
+ <suppression>Mr.</suppression>
+ <suppression>Lt.Cdr.</suppression>
+ . . .
+ </suppressions>
+</segmentation>
+```
+
+**Note:** These elements were called `<exceptions>` and `<exception>` prior to CLDR 26, but those names are now deprecated.
+
+## 10 <a name="Transforms" href="#Transforms">Transforms</a>
+
+Transforms provide a set of rules for transforming text via a specialized set of context-sensitive matching rules. They are commonly used for transliterations or transcriptions, but also other transformations such as full-width to half-width (for _katakana_ characters). The rules can be simple one-to-one relationships between characters, or involve more complicated mappings. Here is an example:
+
+```xml
+<transform source="Greek" target="Latin" variant="UNGEGN" direction="both">
+ ...
+ <comment>Useful variables</comment>
+ <tRule>$gammaLike = [ΓΚΞΧγκξχϰ] ;</tRule>
+ <tRule>$egammaLike = [GKXCgkxc] ;</tRule>
+ ...
+ <comment>Rules are predicated on running NFD first, and NFC afterwards</comment>
+ <tRule>::NFD (NFC) ;</tRule>
+ ...
+ <tRule>λ ↔ l ;</tRule>
+ <tRule>Λ ↔ L ;</tRule>
+ ...
+ <tRule>γ } $gammaLike ↔ n } $egammaLike ;</tRule>
+ <tRule>γ ↔ g ;</tRule>
+ ...
+ <tRule>::NFC (NFD) ;</tRule>
+ ...
+</transform>
+```
+
+The source and target values are valid locale identifiers, where 'und' means an unspecified language, plus some additional extensions.
+
+* The long names of a script according to [[UAX24](https://www.unicode.org/reports/tr41/#UAX24)] may be used instead of the short script codes. The script identifier may also omit und; that is, "und_Latn" may be written as just "Latn".
+* The long names of the English languages may also be used instead of the languages.
+* The term "Any" may be used instead of a solitary "und".
+* Other identifiers may be used for special purposes. In CLDR, these include: Accents, Digit, Fullwidth, Halfwidth, Jamo, NumericPinyin, Pinyin, Publishing, Tone. (Other than these values, valid private use locale identifiers should be used, such as "x-Special".)
+* When presenting localizing transform names, the "und\_" is normally omitted. Thus for a transliterator with the ID "und_Latn-und_Grek" (or the equivalent "Latin-Greek"), the translated name for Greek would be Λατινικό-Ελληνικό.
+
+In version 29.0, BCP47 identifiers were added as aliases (while retaining the old identifiers). The following table shows the relationship between the old identifiers and the BCP47 format identifiers.
+
+<!-- HTML: rowspan -->
+
+<table><tbody>
+<tr>
+ <th>Old ID</th>
+ <th>BCP47 ID</th>
+ <th>Comments</th>
+</tr>
+<tr>
+ <td><b>es_FONIPA</b>-es_419_FONIPA</td>
+ <td>es-419-fonipa-t-<b>es-fonipa</b></td>
+ <td rowspan="2">The order reverses with -t-. That is, the language subtag part is what results.</td>
+</tr>
+<tr>
+ <td><b>hy_AREVMDA</b>-hy_AREVMDA_FONIPA</td>
+ <td>hy-arevmda-fonipa-t-<b>hy-arevmda</b></td>
+</tr>
+<tr>
+ <td><b>Devanagari</b>-Latin</td>
+ <td>und-Latn-t-<b>und-deva</b></td>
+ <td rowspan="2">Scripts add <b>und-</b></td>
+</tr>
+<tr>
+ <td><b>Latin</b>-Devanagari</td>
+ <td>und-Deva-t-<b>und-latn</b></td>
+</tr>
+<tr>
+ <td>Greek-Latin/UNGEGN</td>
+ <td>und-Latn-t-und-grek-<b>m0-ungegn</b></td>
+ <td>Variants use the <b>-m0-</b> key.</td>
+</tr>
+<tr>
+ <td>Russian-Latin/BGN</td>
+ <td>ru<b>-Latn</b>-t-ru-m0-bgn</td>
+ <td>Languages will have a script when it isn’t the default.</td>
+</tr>
+<tr>
+ <td>Any-Hex/xml</td>
+ <td>und-t-<b>d0-hex</b>-m0-xml</td>
+ <td rowspan="2"><b>Any</b> becomes <b>und</b>, and keys <b>d0</b> (destination) and <b>s0</b> (source) are used for non-locales.</td>
+</tr>
+<tr>
+ <td>Hex-Any/xml</td>
+ <td>und-t-<b>s0-hex</b>-m0-xml</td>
+</tr>
+<tr>
+ <td>Any-<b>Publishing</b></td>
+ <td>und-t-d0-<b>publish</b></td>
+ <td rowspan="2">Non-locales are normally the lowercases of the old ID, but may change because of BCP47 length restrictions.</td>
+</tr>
+<tr>
+ <td><b>Publishing</b>-Any</td>
+ <td>und-t-s0-<b>publish</b></td>
+</tr>
+</tbody></table>
+
+Note that the script and region codes are cased iff they are in the main subtag, but are lowercase in extensions.
+
+### 10.1 <a name="Inheritance" href="#Inheritance">Inheritance</a>
+
+The CLDR transforms are built using the following locale inheritance. While this inheritance is not required of LDML implementations, the transforms supplied with CLDR may not otherwise behave as expected without some changes.
+
+For either the source or the target, the fallback starts from the maximized locale ID (using the likely-subtags data). It also uses the country for lookup before the base language is reached, and root is never accessed: instead the script(s) associated with the language are used. Where there are multiple scripts, the maximized script is tried first, and then the other scripts associated with the language (from supplemental data).
+
+For example, see the bolded items below in the fallback chain for **az_IR**.
+
+| | Locale ID | Comments |
+| --- | -------------- | ------------------------------ |
+| 1 | **az_Arab_IR** | The maximized locale for az_IR |
+| 2 | az_Arab | Normal fallback |
+| 3 | **az_IR** | Inserted country locale |
+| 4 | az | Normal fallback |
+| 5 | **Arab** | Maximized script |
+| 6 | **Cyrl** | Other associated script |
+
+The source, target, and variant use "laddered" fallback, where the source changes the most quickly (using the above rules), then the target (using the above rules), then the variant if any, is discarded. That is, in pseudo code:
+
+* for variant in {variant, ""}
+ * for target in target-chain
+ * for source in source-chain
+ * transform = lookup source-target/variant
+ * if transform != null return transform
+
+For example, here is the fallback chain for **ru_RU-el_GR/BGN**.
+
+| source | | target | variant |
+| ------ | --- | ------ | ------- |
+| ru_RU | - | el_GR | /BGN |
+| ru | - | el_GR | /BGN |
+| Cyrl | - | el_GR | /BGN |
+| ru_RU | - | el | /BGN |
+| ru | - | el | /BGN |
+| Cyrl | - | el | /BGN |
+| ru_RU | - | Grek | /BGN |
+| ru | - | Grek | /BGN |
+| Cyrl | - | Grek | /BGN |
+| ru_RU | - | el_GR | |
+| ru | - | el_GR | |
+| Cyrl | - | el_GR | |
+| ru_RU | - | el | |
+| ru | - | el | |
+| Cyrl | - | el | |
+| ru_RU | - | Grek | |
+| ru | - | Grek | |
+| Cyrl | - | Grek | |
+
+Japanese and Korean are special, since they can be represented by combined script codes, such as ja_Jpan, ja_Hrkt, ja_Hira, or ja_Kana. These need to be considered in the above fallback chain as well.
+
+#### 10.1.1 <a name="Pivots" href="#Pivots">Pivots</a>
+
+Transforms can also use _pivots_. These are used when there is no direct transform between a source and target, but there are transforms X-Y and Y-Z. In such a case, the transforms can be internally chained to get X-Y = X-Y;Y-Z. This is done explicitly with the Indic script transforms: to get Devanagari-Latin, internally it is done by transforming first from Devanagari to Interindic (an internal superset encoding for Indic scripts), then from Interindic to Latin. This allows there to be only N sets of transform rules for the Indic scripts: each one to and from Interindic. These pivots are explicitly represented in the CLDR transforms.
+
+Note that the characters currently used by Interindic are private use characters. To prevent those from “leaking” out into text, transforms converting from Interindic must ensure that they convert all the possible values used in Interindic.
+
+The pivots can also be produced automatically (implicitly), as a fallback. A particularly useful pivot is IPA, since that tends to preserve pronunciation. For example, _Czech to IPA_ can be chained with _IPA to Katakana_ to get _Czech to Katakana_.
+
+CLDR often has special forms of IPA: not just "und-FONIPA" but "cs-FONIPA": specifically IPA that has come from Czech. These variants typically preserve some features of the source language — such as double consonants — that are indistinguishable from single consonants in that language, but that are often preserved in traditional transliterations. Thus when matching prospective pivots, FONIPA is treated specially. If there is an exact match, that match is used (such as cs-cs_FONIPA + cs_FONIPA-ko). Otherwise, the language is ignored, as for example in cs-cs_FONIPA + ru_FONIPA-ko.
+
+The interaction of implicit pivots and inheritance may result in a longer inheritance chain lookup than desired, so implementers may consider having some sort of caching mechanism to increase performance.
+
+### 10.2 <a name="Variants" href="#Variants">Variants</a>
+
+Variants used in CLDR include UNGEGN and BGN, both indicating sources for transliterations. There is an additional attribute `private="true"` which is used to indicate that the transform is meant for internal use, and should not be displayed as a separate choice in a UI.
+
+There are many different systems of transliteration. The goal for the "unqualified" script transliterations are
+
+1. to be lossless when going to Latin and back
+2. to be as lossless as possible when going to other scripts
+3. to abide by a common standard as much as possible (possibly supplemented to meet goals 1 and 2).
+
+Language-to-language transliterations, and variant script-to-script transliterations are generally transcriptions, and not expected to be lossless.
+
+Additional transliterations may also be defined, such as customized language-specific transliterations (such as between Russian and French), or those that match a particular transliteration standard, such as the following:
+
+* UNGEGN - United Nations Group of Experts on Geographical Names
+* BGN - United States Board on Geographic Names
+* ISO9 - ISO/IEC 9
+* ISO15915 - ISO/IEC 15915
+* ISCII91 - ISCII 91
+* KMOCT - South Korean Ministry of Culture & Tourism
+* USLC - US Library of Congress
+* UKPCGN - Permanent Committee on Geographical Names for British Official Use
+* RUGOST - Russian Main Administration of Geodesy and Cartography
+
+The rules for transforms are described in Section 10.3 [Transform Rules Syntax](#Transform_Rules_Syntax). For more information on Transliteration, see [Transliteration Guidelines](http://cldr.unicode.org/index/cldr-spec/transliteration-guidelines).
+
+### 10.3 <a name="Transform_Rules_Syntax" href="#Transform_Rules_Syntax">Transform Rules Syntax</a>
+
+```xml
+<!ELEMENT transforms ( transform*) >
+<!ELEMENT transform ((comment | tRule)*) >
+<!ATTLIST transform source CDATA #IMPLIED >
+<!ATTLIST transform target CDATA #IMPLIED >
+<!ATTLIST transform variant CDATA #IMPLIED >
+<!ATTLIST transform direction ( forward | backward | both ) "both" >
+<!ATTLIST transform alias CDATA #IMPLIED >
+<!--@VALUE-->
+<!ATTLIST transform backwardAlias CDATA #IMPLIED >
+<!--@VALUE-->
+<!ATTLIST transform visibility ( internal | external ) "external" >
+<!ELEMENT comment (#PCDATA) >
+<!ELEMENT tRule (#PCDATA) >
+```
+
+The `transform` attributes indicate the `source`, `target`, `direction`, and `alias`es. For example:
+
+```xml
+<transform
+ source="ja_Hrkt"
+ target="ja_Latn"
+ variant="BGN"
+ direction="forward"
+ draft="provisional"
+ alias="Katakana-Latin/BGN ja-Latn-t-ja-hrkt-m0-bgn">
+```
+
+The direction is either `forward` or `both` (`backward` is possible in theory, but not used). This indicates which directions the rules support.
+
+If the direction is `forward`, then an ID is composed from `target + "-" + source + "/" + variant`. If the direction is `both`, then the inverse ID is also value: `source + "-" + target + "/" + variant`. The `alias` attribute contains a space-delimited list of alternant forward IDs, while the `backwardAlias` contains a space-delimited list of alternant backward IDs. The BCP47 versions of the IDs will be in the `alias` and/or `backwardAlias` attributes.
+
+The `visibility` attribute indicates whether the IDs should be externally visible, or whether they are only used internally.
+
+In previous versions, the rules were expressed as fine-grained XML. That was discarded in CLDR version 29, in favor of a simpler format where the separate rules are simply terminated with ";".
+
+The transform rules are similar to regular-expression substitutions, but adapted to the specific domain of text transformations. The rules and comments in this discussion will be intermixed, with # marking the comments. The simplest rule is a conversion rule, which replaces one string of characters with another. The conversion rule takes the following form:
+
+```
+xy → z ;
+```
+
+This converts any substring "xy" into "z". Rules are executed in order; consider the following rules:
+
+```
+sch → sh ;
+ss → z ;
+```
+
+This conversion rule transforms "bass school" into "baz shool". The transform walks through the string from start to finish. Thus given the rules above "bassch" will convert to "bazch", because the "ss" rule is found before the "sch" rule in the string (later, we'll see a way to override this behavior). If two rules can both apply at a given point in the string, then the transform applies the first rule in the list.
+
+All of the ASCII characters except numbers and letters are reserved for use in the rule syntax, as are the characters `→`, `←`, `↔`. Normally, these characters do not need to be converted. However, to convert them use either a pair of single quotes or a slash. The pair of single quotes can be used to surround a whole string of text. The slash affects only the character immediately after it. For example, to convert from a U+2190 ( ← ) LEFTWARDS ARROW to the string "arrow sign" (with a space), use one of the following rules:
+
+```
+\← → arrow\ sign ;
+'←' → 'arrow sign' ;
+'←' → arrow' 'sign ;
+```
+
+Spaces may be inserted anywhere without any effect on the rules. Use extra space to separate items out for clarity without worrying about the effects. This feature is particularly useful with combining marks; it is handy to put some spaces around it to separate it from the surrounding text. The following is an example:
+
+```
+→ i ; # an iota-subscript diacritic turns into an i.
+```
+
+For a real space in the rules, place quotes around it. For a real backslash, either double it \\\\, or quote it '\\'. For a real single quote, double it '', or place a backslash before it \\'.
+
+Any text that starts with a hash mark and concludes a line is a comment. Comments help document how the rules work. The following shows a comment in a rule:
+
+```
+x → ks ; # change every x into ks
+```
+
+The “\\u” and “\\x” hex notations can be used instead of any letter. For instance, instead of using the Greek π, one could write either of the following:
+
+```
+\u03C0 → p ;
+\x{3C0} → p ;
+```
+
+One can also define and use variables, such as:
+
+```
+$pi = \u03C0 ;
+$pi → p ;
+```
+
+#### 10.3.1 <a name="Dual_Rules" href="#Dual_Rules">Dual Rules</a>
+
+Rules can also specify what happens when an inverse transform is formed. To do this, we reverse the direction of the "←" sign. Thus the above example becomes:
+
+```
+$pi ← p ;
+```
+
+With the inverse transform, "p" will convert to the Greek p. These two directions can be combined together into a dual conversion rule by using the `↔` operator, yielding:
+
+```
+$pi ↔ p ;
+```
+
+#### 10.3.2 <a name="Context" href="#Context">Context</a>
+
+Context can be used to have the results of a transformation be different depending on the characters before or after. The following rule removes hyphens, but only when they follow lowercase characters:
+
+```
+[:Lowercase:] { '-' → ;
+```
+
+Contexts can be before or after or both, such as in a rule to remove hyphens between lowercase and uppercase letters:
+
+```
+[:Lowercase:] { '-' } [:Uppercase:] → ;
+```
+
+Each context is optional and may be empty; the following two rules are equivalent:
+
+```
+$pi ↔ p ;
+{$pi} ↔ {p} ;
+```
+
+The context itself ([: `Lowercase` :]) is unaffected by the replacement; only the text within braces is changed.
+
+Character classes (UnicodeSets) in the contexts can contain the special symbol $, which means “off either end of the string”. It is roughly similar to $ and ^ in regex. Unlike normal regex, however, it can occur in character classes. Thus the following rule removes hyphens that are after lowercase characters, _or_ are at the start of a string.
+
+```
+[[:Lowercase:]$] {'-' → ;
+```
+
+Thus the negation of a UnicodeSet will normally also match before or after the end of a string. The following will remove hyphens that are not after lowercase characters, _including hyphens at the start of a string_.
+
+```
+[^[:Lowercase:]] {'-' → ;
+```
+
+It will thus convert “-B A-B a-b” to “B AB a-b”.
+
+#### 10.3.3 <a name="Revisiting" href="#Revisiting">Revisiting</a>
+
+If the resulting text contains a vertical bar "|", then that means that processing will proceed from that point and that the transform will revisit part of the resulting text. Thus the | marks a "cursor" position. For example, if we have the following, then the string "xa" will convert to "w".
+
+```
+x → y | z ;
+z a → w ;
+```
+
+First, "xa" is converted to "yza". Then the processing will continue from after the character "y", pick up the "za", and convert it. Had we not had the "|", the result would have been simply "yza". The '@' character can be used as filler character to place the revisiting point off the start or end of the string. Thus the following causes x to be replaced, and the cursor to be backed up by two characters.
+
+```
+x → |@@y;
+```
+
+#### 10.3.4 <a name="Example" href="#Example">Example</a>
+
+The following shows how these features are combined together in the Transliterator "Any-Publishing". This transform converts the ASCII typewriter conventions into text more suitable for desktop publishing (in English). It turns straight quotation marks or UNIX style quotation marks into curly quotation marks, fixes multiple spaces, and converts double-hyphens into a dash.
+
+```perl
+# Variables
+
+$single = \' ;
+$space = ' ' ;
+$double = \" ;
+$back = \` ;
+$tab = '\u0008' ;
+
+# the following is for spaces, line ends, (, [, {, ...
+$makeRight = [[:separator:][:start punctuation:][:initial punctuation:]] ;
+
+# fix UNIX quotes
+
+$back $back → “ ; # generate right d.q.m. (double quotation mark)
+$back → ‘ ;
+
+# fix typewriter quotes, by context
+
+$makeRight { $double ↔ “ ; # convert a double to right d.q.m. after certain chars
+^ { $double → “ ; # convert a double at the start of the line.
+$double ↔ ” ; # otherwise convert to a left q.m.
+
+$makeRight {$single} ↔ ‘ ; # do the same for s.q.m.s
+^ {$single} → ‘ ;
+$single ↔ ’;
+
+# fix multiple spaces and hyphens
+
+$space {$space} → ; # collapse multiple spaces
+'--' ↔ — ; # convert fake dash into real one
+```
+
+There is an online demo where the rules can be tested, at:
+
+[http://unicode.org/cldr/utility/transform.jsp](https://util.unicode.org/UnicodeJsps/transform.jsp)
+
+#### 10.3.5 <a name="Rule_Syntax" href="#Rule_Syntax">Rule Syntax</a>
+
+The following describes the full format of the list of rules used to create a transform. Each rule in the list is terminated by a semicolon. The list consists of the following:
+
+* an optional filter rule
+* zero or more transform rules
+* zero or more variable-definition rules
+* zero or more conversion rules
+* an optional inverse filter rule
+
+The filter rule, if present, must appear at the beginning of the list, before any of the other rules. The inverse filter rule, if present, must appear at the end of the list, after all of the other rules. The other rules may occur in any order and be freely intermixed.
+
+The rule list can also generate the inverse of the transform. In that case, the inverse of each of the rules is used, as described below.
+
+#### 10.3.6 <a name="Transform_Rules" href="#Transform_Rules">Transform Rules</a>
+
+Each transform rule consists of two colons followed by a transform name, which is of the form source-target. For example:
+
+```
+:: NFD ;
+:: und_Latn-und_Greek ;
+:: Latin-Greek; # alternate form
+```
+
+If either the source or target is 'und', it can be omitted, thus 'und_NFC' is equivalent to 'NFC'. For compatibility, the English names for scripts can be used instead of the und_Latn locale name, and "Any" can be used instead of "und". Case is not significant.
+
+The following transforms are defined not by rules, but by the operations in the Unicode Standard, and may be used in building any other transform:
+
+> **Any-NFC, Any-NFD, Any-NFKD, Any-NFKC** - the normalization forms defined by [[UAX15](https://www.unicode.org/reports/tr41/#UAX15)].
+>
+> **Any-Lower, Any-Upper, Any-Title** - full case transformations, defined by [[Unicode](tr35.md#Unicode)] Chapter 3.
+
+In addition, the following special cases are defined:
+
+> **Any-Null** - has no effect; that is, each character is left alone.
+> **Any-Remove** - maps each character to the empty string; this, removes each character.
+
+The inverse of a transform rule uses parentheses to indicate what should be done when the inverse transform is used. For example:
+
+```
+:: lower () ; # only executed for the normal
+:: (lower) ; # only executed for the inverse
+:: lower ; # executed for both the normal and the inverse
+```
+
+#### 10.3.7 <a name="Variable_Definition_Rules" href="#Variable_Definition_Rules">Variable Definition Rules</a>
+
+Each variable definition is of the following form:
+
+```
+$variableName = contents ;
+```
+
+The variable name can contain letters and digits, but must start with a letter. More precisely, the variable names use Unicode identifiers as defined by [[UAX31](https://www.unicode.org/reports/tr41/#UAX31)]. The identifier properties allow for the use of foreign letters and numbers.
+
+The contents of a variable definition is any sequence of Unicode sets and characters or characters. For example:
+
+```
+$mac = M [aA] [cC] ;
+```
+
+Variables are only replaced within other variable definition rules and within conversion rules. They have no effect on transliteration rules.
+
+#### 10.3.8 <a name="Filter_Rules" href="#Filter_Rules">Filter Rules</a>
+
+A filter rule consists of two colons followed by a UnicodeSet. This filter is global in that only the characters matching the filter will be affected by any transform rules or conversion rules. The inverse filter rule consists of two colons followed by a UnicodeSet in parentheses. This filter is also global for the inverse transform.
+
+For example, the Hiragana-Latin transform can be implemented by "pivoting" through the Katakana converter, as follows:
+
+```
+:: [:^Katakana:] ; # do not touch any katakana that was in the text!
+:: Hiragana-Katakana;
+:: Katakana-Latin;
+:: ([:^Katakana:]) ; # do not touch any katakana that was in the text
+ # for the inverse either!
+```
+
+The filters keep the transform from mistakenly converting any of the "pivot" characters. Note that this is a case where a rule list contains no conversion rules at all, just transform rules and filters.
+
+#### 10.3.9 <a name="Conversion_Rules" href="#Conversion_Rules">Conversion Rules</a>
+
+Conversion rules can be forward, backward, or double. The complete conversion rule syntax is described below:
+
+**Forward**
+
+> A forward conversion rule is of the following form:
+> ```
+> before_context { text_to_replace } after_context → completed_result | result_to_revisit ;
+> ```
+> If there is no before_context, then the "{" can be omitted. If there is no after_context, then the "}" can be omitted. If there is no result_to_revisit, then the "|" can be omitted. A forward conversion rule is only executed for the normal transform and is ignored when generating the inverse transform.
+
+**Backward**
+
+> A backward conversion rule is of the following form:
+> ```
+> completed_result | result_to_revisit ← before_context { text_to_replace } after_context ;
+> ```
+> The same omission rules apply as in the case of forward conversion rules. A backward conversion rule is only executed for the inverse transform and is ignored when generating the normal transform.
+
+**Dual**
+
+> A dual conversion rule combines a forward conversion rule and a backward conversion rule into one, as discussed above. It is of the form:
+>
+> ```
+> a { b | c } d ↔ e { f | g } h ;
+> ```
+>
+> When generating the normal transform and the inverse, the revisit mark "|" and the before and after contexts are ignored on the sides where they do not belong. Thus, the above is exactly equivalent to the sequence of the following two rules:
+>
+> ```
+> a { b c } d → f | g ;
+> b | c ← e { f g } h ;
+> ```
+
+#### 10.3.10 <a name="Intermixing_Transform_Rules_and_Conversion_Rules" href="#Intermixing_Transform_Rules_and_Conversion_Rules">Intermixing Transform Rules and Conversion Rules</a>
+
+Transform rules and conversion rules may be freely intermixed. Inserting a transform rule into the middle of a set of conversion rules has an important side effect.
+
+Normally, conversion rules are considered together as a group. The only time their order in the rule set is important is when more than one rule matches at the same point in the string. In that case, the one that occurs earlier in the rule set wins. In all other situations, when multiple rules match overlapping parts of the string, the one that matches earlier wins.
+
+Transform rules apply to the whole string. If you have several transform rules in a row, the first one is applied to the whole string, then the second one is applied to the whole string, and so on. To reconcile this behavior with the behavior of conversion rules, transform rules have the side effect of breaking a surrounding set of conversion rules into two groups: First all of the conversion rules before the transform rule are applied as a group to the whole string in the usual way, then the transform rule is applied to the whole string, and then the conversion rules after the transform rule are applied as a group to the whole string. For example, consider the following rules:
+
+```
+abc → xyz;
+xyz → def;
+::Upper;
+```
+
+If you apply these rules to “abcxyz”, you get “XYZDEF”. If you move the “::Upper;” to the middle of the rule set and change the cases accordingly, then applying this to “abcxyz” produces “DEFDEF”.
+
+```
+abc → xyz;
+::Upper;
+XYZ → DEF;
+```
+
+This is because “::Upper;” causes the transliterator to reset to the beginning of the string. The first rule turns the string into “xyzxyz”, the second rule upper cases the whole thing to “XYZXYZ”, and the third rule turns this into “DEFDEF”.
+
+This can be useful when a transform naturally occurs in multiple “passes.” Consider this rule set:
+
+```
+[:Separator:]* → ' ';
+'high school' → 'H.S.';
+'middle school' → 'M.S.';
+'elementary school' → 'E.S.';
+```
+
+If you apply this rule to “high school”, you get “H.S.”, but if you apply it to “high school” (with two spaces), you just get “high school” (with one space). To have “high school” (with two spaces) turn into “H.S.”, you'd either have to have the first rule back up some arbitrary distance (far enough to see “elementary”, if you want all the rules to work), or you have to include the whole left-hand side of the first rule in the other rules, which can make them hard to read and maintain:
+
+```
+$space = [:Separator:]*;
+high $space school → 'H.S.';
+middle $space school → 'M.S.';
+elementary $space school → 'E.S.';
+```
+
+Instead, you can simply insert “ `::Null;` ” in order to get things to work right:
+
+```
+[:Separator:]* → ' ';
+::Null;
+'high school' → 'H.S.';
+'middle school' → 'M.S.';
+'elementary school' → 'E.S.';
+```
+
+The “::Null;” has no effect of its own (the null transform, by definition, does not do anything), but it splits the other rules into two “passes”: The first rule is applied to the whole string, normalizing all runs of white space into single spaces, and then we start over at the beginning of the string to look for the phrases. “high school” (with four spaces) gets correctly converted to “H.S.”.
+
+This can also sometimes be useful with rules that have overlapping domains. Consider this rule set from before:
+
+```
+sch → sh ;
+ss → z ;
+```
+
+Apply this rule to “bassch” results in “bazch” because “ss” matches earlier in the string than “sch”. If you really wanted “bassh”—that is, if you wanted the first rule to win even when the second rule matches earlier in the string, you'd either have to add another rule for this special case...
+
+```
+sch → sh ;
+ssch → ssh;
+ss → z ;
+```
+
+...or you could use a transform rule to apply the conversions in two passes:
+
+```
+sch → sh ;
+::Null;
+ss → z ;
+```
+
+#### 10.3.11 <a name="Inverse_Summary" href="#Inverse_Summary">Inverse Summary</a>
+
+The following table shows how the same rule list generates two different transforms, where the inverse is restated in terms of forward rules (this is a contrived example, simply to show the reordering):
+
+<!-- HTML: blocks in cells -->
+<table>
+<tr>
+ <th>Original Rules</th>
+ <th>Forward</th>
+ <th>Inverse</th>
+</tr>
+<tr>
+ <td><pre><code>:: [:Uppercase Letter:] ;
+:: latin-greek ;
+:: greek-japanese ;
+x ↔ y ;
+z → w ;
+r ← m ;
+:: upper;
+a → b ;
+c ↔ d ;
+:: any-publishing ;
+:: ([:Number:]) ;</code></pre></td>
+ <td><pre><code>:: [:Uppercase Letter:] ;
+:: latin-greek ;
+:: greek-japanese ;
+x → y ;
+z → w ;
+:: upper ;
+a → b ;
+c → d ;
+:: any-publishing ;</code></pre></td>
+ <td><pre><code>:: [:Number:] ;
+:: publishing-any ;
+d → c ;
+:: lower ;
+y → x ;
+m → r ;
+:: japanese-greek ;
+:: greek-latin ;</code></pre></td>
+</tr>
+</table>
+
+Note how the irrelevant rules (the inverse filter rule and the rules containing ←) are omitted (ignored, actually) in the forward direction, and notice how things are reversed: the transform rules are inverted and happen in the opposite order, and the groups of conversion rules are also executed in the opposite relative order (although the rules within each group are executed in the same order).
+
+## 11 <a name="ListPatterns" href="#ListPatterns">List Patterns</a>
+
+```xml
+<!ELEMENT listPatterns (alias | (listPattern*, special*)) >
+
+<!ELEMENT listPattern (alias | (listPatternPart*, special*)) >
+<!ATTLIST listPattern type (NMTOKEN) #IMPLIED >
+
+<!ELEMENT listPatternPart ( #PCDATA ) >
+<!ATTLIST listPatternPart type (start | middle | end | 2 | 3) #REQUIRED >
+```
+
+List patterns can be used to format variable-length lists of things in a locale-sensitive manner, such as "Monday, Tuesday, Friday, and Saturday" (in English) versus "lundi, mardi, vendredi et samedi" (in French). For example, consider the following example:
+
+```xml
+<listPatterns>
+ <listPattern>
+ <listPatternPart type="2">{0} and {1}</listPatternPart>
+ <listPatternPart type="start">{0}, {1}</listPatternPart>
+ <listPatternPart type="middle">{0}, {1}</listPatternPart>
+ <listPatternPart type="end">{0}, and {1}</listPatternPart>
+ </listPattern>
+</listPatterns>
+```
+
+The data is used as follows: If there is a type type matches exactly the number of elements in the desired list (such as "2" in the above list), then use that pattern. Otherwise,
+
+1. Format the last two elements with the "end" format.
+2. Then use middle format to add on subsequent elements working towards the front, all but the very first element. That is, {1} is what you've already done, and {0} is the previous element.
+3. Then use "start" to add the front element, again with {1} as what you've done so far, and {0} is the first element.
+
+Thus a list (a,b,c,...m, n) is formatted as: `start(a,middle(b,middle(c,middle(...end(m, n))...)))`
+
+More sophisticated implementations can customize the process to improve the results for languages where context is important. For example:
+
+<!-- HTML: rowspan, block elements in cells -->
+
+<table><tbody>
+<tr><td rowspan="3">Spanish</td><td>AND</td>
+ <td>Use ‘e’ instead of ‘y’ in the listPatternPart for "end" and "2" in either of the following cases:
+ <ol><li>The value substituted for {1} starts with ‘i’
+ <ol><li><i>fuerte <b>e</b> indomable, </i>not <i>fuerte <b>y</b> indomable</i></li></ol>
+ </li>
+ <li>The value substituted for {1} starts with ‘hi’, but not with ‘hie’ or ‘hia’
+ <ol><li><i>tos <b>e</b> hipo,</i> not <i>tos <b>y</b> hipo</i></li>
+ <li><i>gua <b>y</b> hielo,</i> not <i>agua <b>e</b> hielo</i></li></ol>
+ </li></ol></td></tr>
+
+<tr><td>OR</td>
+ <td>Use ‘u’ instead of ‘o’ in the listPatternPart for "end" and "2" in any of the following cases:
+ <ol><li>The value substituted for {1} starts with ‘o’ or ‘ho’
+ <ol><li><i>delfines <b>u</b> orcas,</i> not <i>deflines <b>o</b> orcas</i></li>
+ <li><i>mañana <b>u</b> hoy,</i> not <i>mañana <b>o</b> hoy</i></li></ol>
+ </li>
+ <li>The value substituted for {1} starts with ‘8’
+ <ol><li><i>6 <b>u</b> 8,</i> not <i>6 <b>o</b> 8</i></li></ol>
+ </li>
+ <li>The value substituted for {1} starts with ‘11’ where the numeric value is 11 x 10<sup>3×y</sup> (eg 11 thousand, 11.23 million, ...)
+ <ol><li><i>10 <b>u</b> 11,</i> not <i>10 <b>o</b> 11</i></li>
+ <li><i>10 <b>u</b> 11.000,</i> not <i>10 <b>o</b> 11.000</i></li>
+ <li><i>10 <b>o</b> 111,</i> not <i>10 <b>u</b> 111</i></li></ol>
+ </li></ol></td></tr>
+
+<tr><td colspan="2">See <a href="https://www.rae.es/consultas/cambio-de-la-y-copulativa-en-e">Cambio de la y copulativa en e</a><br><b>Note: </b>more advanced implementations may also consider the pronunciation, such as foreign words where the ‘h’ is not mute.</td></tr>
+
+<tr><td rowspan="2">Hebrew</td><td>AND</td>
+ <td>Use ‘-ו’ instead of ‘ו’ in the listPatternPart for "end" and "2" in the following case:
+ <ol><li>if the value substituted for {1} starts with something other than a Hebrew letter, such as a digit (0-9) or a Latin-script letter
+ <ol><li><i>one hour and two minutes = "שעה ושתי דקות"</i></li>
+ <li><i>one hour and 9 minutes = "שעה ו-9 דקות”</i></li></ol>
+ </li></ol></td></tr>
+
+<tr><td colspan="2">See <a href="https://hebrew-academy.org.il/topic/hahlatot/punctuation/#target-3475">https://hebrew-academy.org.il/topic/hahlatot/punctuation/#target-3475</a></td></tr>
+
+</tbody></table>
+
+The following `type` attributes are in use:
+
+| type attribute value | Description | Examples |
+| ------------------------- | ------------------------------------------------------------ | -------------------------------- |
+| `standard` (or no `type`) | A typical 'and' list for arbitrary placeholders | _January, February, and March_ |
+| `standard-short` | A short version of an 'and' list, suitable for use with short or abbreviated placeholder values | _Jan., Feb., and Mar._ |
+| `standard-narrow` | A yet shorter version of a short 'and' list (where possible) | _Jan., Feb., Mar._ |
+| `or` | A typical 'or' list for arbitrary placeholders | _January, February, or March_ |
+| `or-short` | A short version of an 'or' list | _Jan., Feb., or Mar._ |
+| `or-narrow` | A yet shorter version of a short 'or' list (where possible) | _Jan., Feb., or Mar._ |
+| `unit` | A list suitable for wide units | _3 feet, 7 inches_ |
+| `unit-short` | A list suitable for short units | _3 ft, 7 in_ |
+| `unit-narrow` | A list suitable for narrow units, where space on the screen is very limited. | _3′ 7″_ |
+
+In many languages there may not be a difference among many of these lists. In others, the spacing, the length or presence or a conjunction, and the separators may change.
+
+### 11.1 <a name="List_Gender" href="#List_Gender">Gender of Lists</a>
+
+```xml
+<!-- Gender List support -->
+<!ELEMENT gender ( personList+ ) >
+<!ELEMENT personList EMPTY >
+<!ATTLIST personList type ( neutral | mixedNeutral | maleTaints ) #REQUIRED >
+<!ATTLIST personList locales NMTOKENS #REQUIRED >
+```
+
+This can be used to determine the gender of a list of 2 or more persons, such as "Tom and Mary", for use with gender-selection messages. For example,
+
+```xml
+<supplementalData>
+ <gender>
+ <!-- neutral: gender(list) = other -->
+ <personList type="neutral" locales="af da en..."/>
+
+ <!-- mixedNeutral: gender(all male) = male, gender(all female) = female, otherwise gender(list) = other -->
+ <personList type="mixedNeutral" locales="el"/>
+
+ <!-- maleTaints: gender(all female) = female, otherwise gender(list) = male -->
+ <personList type="maleTaints" locales="ar ca..."/>
+ </gender>
+</supplementalData>
+```
+
+There are three ways the gender of a list can be formatted:
+
+1. **neutral:** A gender-independent "other" form will be used for the list.
+2. **mixedNeutral:** If the elements of the list are all male, "male" form is used for the list. If all the elements of the lists are female, "female" form is used. If the list has a mix of male, female and neutral names, the "other" form is used.
+3. **maleTaints:** If all the elements of the lists are female, "female" form is used, otherwise the "male" form is used.
+
+## 12 <a name="Context_Transform_Elements" href="#Context_Transform_Elements">ContextTransform Elements</a>
+
+```xml
+<!ELEMENT contextTransforms ( alias | (contextTransformUsage*, special*)) >
+<!ELEMENT contextTransformUsage ( alias | (contextTransform*, special*)) >
+<!ATTLIST contextTransformUsage type CDATA #REQUIRED >
+<!ELEMENT contextTransform ( #PCDATA ) >
+<!ATTLIST contextTransform type ( uiListOrMenu | stand-alone ) #REQUIRED >
+```
+
+CLDR locale elements provide data for display names or symbols in many categories. The default capitalization for these elements is intended to be the form used in the middle of running text. In many languages, other capitalization may be required in other contexts, depending on the type of name or symbol.
+
+Each `<contextTransformUsage>` element’s `type` attribute specifies a category of data from the table below; the element includes one or more `<contextTransform>` elements that specify how to perform capitalization of this category of data in different contexts. The `<contextTransform>` elements are needed primarily for cases in which the capitalization is other than the default form used in the middle of running text. However, it is also useful to mark cases in which it is _known_ that no transformation from this default form is needed; this may be necessary, for example, to override the transformation specified by a parent locale. The following values are currently defined for the `<contextTransform>` element:
+
+* "titlecase-firstword" designates the case in which raw CLDR text that is in middle-of-sentence form, typically lowercase, needs to have its first word titlecased.
+* "no-change" designates the case in which it is known that no change from the raw CLDR text (middle-of-sentence form) is needed.
+
+Four contexts for capitalization behavior are currently identified. Two need no data, and hence have no corresponding `<contextTransform>` elements:
+
+* In the middle of running text: This is the default form, so no additional data is required.
+* At the beginning of a complete sentence: The initial word is titlecased, no additional data is required to indicate this.
+
+Two other contexts require `<contextTransform>` elements if their capitalization behavior is other than the default for running text. The context is identified by the `type` attribute, as follows:
+
+* uiListOrMenu: Capitalization appropriate to a user-interface list or menu.
+* stand-alone: Capitalization appropriate to an isolated user-interface element (e.g. an isolated name on a calendar page)
+
+Example:
+
+```xml
+<contextTransforms>
+ <contextTransformUsage type="languages">
+ <contextTransform type="uiListOrMenu">titlecase-firstword</contextTransform>
+ <contextTransform type="stand-alone">titlecase-firstword</contextTransform>
+ </contextTransformUsage>
+ <contextTransformUsage type="month-format-except-narrow">
+ <contextTransform type="uiListOrMenu">titlecase-firstword</contextTransform>
+ </contextTransformUsage>
+ <contextTransformUsage type="month-standalone-except-narrow">
+ <contextTransform type="uiListOrMenu">titlecase-firstword</contextTransform>
+ </contextTransformUsage>
+</contextTransforms>
+```
+
+##### <a name="contextTransformUsage_type_attribute_values" href="#contextTransformUsage_type_attribute_values">Element contextTransformUsage type attribute values</a>
+
+| type attribute value | Description |
+| -------------------------------- | ----------- |
+| `all` | Special value, indicates that the specified transformation applies to all of the categories below |
+| `language` | `localeDisplayNames` language names |
+| `script` | `localeDisplayNames` script names |
+| `territory` | `localeDisplayNames` territory names |
+| `variant` | `localeDisplayNames` variant names |
+| `key` | `localeDisplayNames` key names |
+| `keyValue` | `localeDisplayNames` key value type names |
+| `month-format-except-narrow` | `dates/calendars/calendar[type=*]/months` format wide and abbreviated month names |
+| `month-standalone-except-narrow` | `dates/calendars/calendar[type=*]/months` stand-alone wide and abbreviated month names |
+| `month-narrow` | `dates/calendars/calendar[type=*]/months` format and stand-alone narrow month names |
+| `day-format-except-narrow` | `dates/calendars/calendar[type=*]/days` format wide and abbreviated day names |
+| `day-standalone-except-narrow` | `dates/calendars/calendar[type=*]/days` stand-alone wide and abbreviated day names |
+| `day-narrow` | `dates/calendars/calendar[type=*]/days` format and stand-alone narrow day names |
+| `era-name` | `dates/calendars/calendar[type=*]/eras` (wide) era names |
+| `era-abbr` | `dates/calendars/calendar[type=*]/eras` abbreviated era names |
+| `era-narrow` | `dates/calendars/calendar[type=*]/eras` narrow era names |
+| `quarter-format-wide` | `dates/calendars/calendar[type=*]/quarters` format wide quarter names |
+| `quarter-standalone-wide` | `dates/calendars/calendar[type=*]/quarters` stand-alone wide quarter names |
+| `quarter-abbreviated` | `dates/calendars/calendar[type=*]/quarters` format and stand-alone abbreviated quarter names |
+| `quarter-narrow` | `dates/calendars/calendar[type=*]/quarters` format and stand-alone narrow quarter names |
+| `calendar-field` | `dates/fields/field[type=*]/displayName` field names<br/>(for relative forms see type "tense" below) |
+| `zone-exemplarCity` | `dates/timeZoneNames/zone[type=*]/exemplarCity` city names |
+| `zone-long` | `dates/timeZoneNames/zone[type=*]/long` zone names |
+| `zone-short` | `dates/timeZoneNames/zone[type=*]/short` zone names |
+| `metazone-long` | `dates/timeZoneNames/metazone[type=*]/long` metazone names |
+| `metazone-short` | `dates/timeZoneNames/metazone[type=*]/short` metazone names |
+| `symbol` | `numbers/currencies/currency[type=*]/symbol` symbol names |
+| `currencyName` | `numbers/currencies/currency[type=*]/displayName` currency names |
+| `currencyName-count` | `numbers/currencies/currency[type=*]/displayName[count=*]` currency names for use with count |
+| `relative` | `dates/fields/field[type=*]/relative and dates/fields/field[type=*]/relativeTime` relative field names |
+| `unit-pattern` | `units/unitLength[type=*]/unit[type=*]/unitPattern[count=*]` unit names |
+| `number-spellout` | `rbnf/rulesetGrouping[type=*]/ruleset[type=*]/rbnfrule` number spellout rules |
+
+## 13 <a name="Choice_Patterns" href="#Choice_Patterns">Choice Patterns</a>
+
+A choice pattern is a string that chooses among a number of strings, based on numeric value. It has the following form:
+
+```
+<choice_pattern> = <choice> ( '|' <choice> )*
+<choice> = <number><relation><string>
+<number> = ('+' | '-')? ('∞' | [0-9]+ ('.' [0-9]+)?)
+<relation> = '<' | ' ≤'
+```
+
+The interpretation of a choice pattern is that given a number N, the pattern is scanned from right to left, for each choice evaluating `<number> <relation> N`. The first choice that matches results in the corresponding string. If no match is found, then the first string is used. For example:
+
+<!-- HTML: rowspan -->
+
+<table><tbody>
+<tr><th>Pattern</th><th>N</th><th>Result</th></tr>
+<tr><td rowspan="4">0≤Rf|1≤Ru|1<Re</td><td>-∞, -3, -1, -0.000001</td><td>Rf (defaulted to first string)</td></tr>
+<tr><td>0, 0.01, 0.9999</td><td>Rf</td></tr>
+<tr><td>1</td><td>Ru</td></tr>
+<tr><td>1.00001, 5, 99, ∞</td><td>Re</td></tr>
+</tbody></table>
+
+Quoting is done using ' characters, as in date or number formats.
+
+## 14 <a name="Annotations" href="#Annotations">Annotations and Labels</a>
+
+Annotations provide information about characters, typically used in input. For example, on a mobile keyboard they can be used to do completion. They are typically used for symbols, especially emoji characters.
+
+For more information, see version 5.0 or [UTR #51, Unicode Emoji](https://unicode.org/reports/tr51/). (Note that during the period between the publication of CLDR v31 and that of Emoji 5.0, the “Latest Proposed Update” link should be used to get to the draft specification for Emoji 5.0.)
+
+```xml
+<!ELEMENT annotations ( annotation* ) >
+
+<!ELEMENT annotation ( #PCDATA ) >
+
+<!ATTLIST annotation cp CDATA #REQUIRED >
+
+<!ATTLIST annotation type (tts) #IMPLIED >
+```
+
+There are two kinds of annotations: **short names**, and **keywords**.
+
+With an attribute `type="tts"`, the value is a **short name**, such as one that can be used for text-to-speech. It should be treated as one of the element values for other purposes.
+
+When there is no `type` attribute, the value is a set of **keywords**, delimited by |. Spaces around each element are to be trimmed. The **keywords** are words associated with the character(s) that might be used in searching for the character, or in predictive typing on keyboards. The short name itself can be used as a keyword.
+
+Here is an example from German:
+
+```xml
+<annotation cp="👎">schlecht | Hand | Daumen | nach unten</annotation>
+<annotation cp="👎" type="tts">Daumen runter</annotation>
+```
+
+The `cp` attribute value has two formats: either a single string, or if contained within \[…\] a UnicodeSet. The latter format can contain multiple code points or strings. A code point pr string can occur in multiple annotation element **cp** values, such as the following, which also contains the "thumbs down" character.
+
+```xml
+<annotation cp='[☝✊-✍👆-👐👫-👭💁🖐🖕🖖🙅🙆🙋🙌🙏🤘]'>hand</annotation>
+```
+
+Both for short names and keywords, values do not have to match between different languages. They should be the most common values that people using _that_ language would associated with those characters. For example, a "black heart" might have the association of "wicked" in English, but not in some other languages.
+
+The cp value may contain sequences, but does not contain any Emoji or Text Variant (VS15 & VS16) characters. All such characters should be removed before looking up any short names and keywords.
+
+### 14.1 <a name="SynthesizingNames" href="#SynthesizingNames">Synthesizing Sequence Names</a>
+
+Many emoji are represented by sequences of characters. When there are no `annotation` elements for that string, the short name can be synthesized as follows. **Note:** The process details may change after the release of this specification, and may further change in the future if other sequences are added. Please see the [Known Issues](https://sites.google.com/site/cldr/index/downloads/cldr-30#TOC-Known-Issues) section of the CLDR download page for any updates.
+
+1. If **sequence** is an **emoji flag sequence**, look up the territory name in CLDR for the corresponding ASCII characters and return as the short name. For example, the regional indicator symbols P+F would map to “Französisch-Polynesien” in German.
+2. If **sequence** is an **emoji tag sequence**, look up the subdivision name in CLDR for the corresponding ASCII characters and return as the short name. For example, the TAG characters gbsct would map to “Schottland” in German.
+3. If **sequence** is a keycap sequence or 🔟, use the characterLabel for "keycap" as the **prefixName** and set the **suffix** to be the sequence (or "10" in the case of 🔟), then go to step 8.
+4. Let **suffix** and **prefixName** be "".
+5. If **sequence** contains any emoji modifiers, move them (in order) into **suffix**, removing them from **sequence**.
+6. If **sequence** is a "KISS", "HEART", "FAMILY", or "HOLDING HANDS" emoji ZWJ sequence, move the characters in **sequence** to the front of **suffix**, and set the **sequence** to be "💏", "💑", or "👪" respectively, and go to step 7.
+ 1. A KISS sequence contains ZWJ, "💋", and "❤", which are skipped in moving to **suffix**.
+ 2. A HEART sequence contains ZWJ and "❤", which are skipped in moving to **suffix**.
+ 3. A HOLDING HANDS sequence contains ZWJ+🤝+ZWJ, which are skipped in moving to **suffix**.
+ 4. A FAMILY sequence contains only characters from the set {👦, 👧, 👨, 👩, 👴, 👵, 👶}. Nothing is skipped in moving to **suffix**, except ZWJ.
+7. If **sequence** ends with ♂ or ♀, and does not have a name, remove the ♂ or ♀ and move the name for "👨" or "👩" respectively to the start of **prefixName**.
+8. Transform **sequence** and append to **prefixName**, by successively getting names for the longest subsequences, skipping any singleton ZWJ characters. If there is more than one name, use the listPattern for unit-short, type=2 to link them.
+9. Transform **suffix** into **suffixName** in the same manner.
+10. If both the **prefixName** and **suffixName** are non-empty, form the name by joining them with the "category-list" characterLabelPattern and return it. Otherwise return whichever of them is non-empty.
+
+The synthesized keywords can follow a similar process.
+
+1. For an **emoji flag sequence** or **emoji tag sequence** representing a subdivision, use "flag".
+2. For keycap sequences, use "keycap".
+3. For other sequences, add the keywords for the subsequences used to get the short names for **prefixName**, and the short names used for **suffixName**.
+
+Some examples for English data (v30) are given in the following table.
+
+##### Synthesized Emoji Sequence Names
+
+| Sequence | Short Name | Keywords |
+| --------- | ---------- | -------- |
+| 🇪🇺 | European Union | flag |
+| #️⃣ | keycap: # | keycap |
+| 9️⃣ | keycap: 9 | keycap |
+| 💏 | kiss | couple |
+| 👩❤️💋👩 | kiss: woman, woman | couple, woman |
+| 💑 | couple with heart | love, couple |
+| 👩❤️👩 | couple with heart: woman, woman | love, couple, woman |
+| 👪 | family | family |
+| 👩👩👧 | family: woman, woman, girl | woman, family, girl |
+| 👦🏻 | boy: light skin tone | young, light skin tone, boy |
+| 👩🏿 | woman: dark skin tone | woman, dark skin tone |
+| 👨⚖ | man judge | scales, justice, man |
+| 👨🏿⚖ | man judge: dark skin tone | scales, justice, dark skin tone, man |
+| 👩⚖ | woman judge | woman, scales, judge |
+| 👩🏼⚖ | woman judge: medium-light skin tone | woman, scales, medium-light skin tone, judge |
+| 👮 | police officer | police, cop, officer |
+| 👮🏿 | police officer: dark skin tone | police, cop, officer, dark skin tone |
+| 👮♂️ | man police officer | police, cop, officer, man |
+| 👮🏼♂️ | man police officer: medium-light skin tone | police, cop, officer, medium-light skin tone, man |
+| 👮♀️ | woman police officer | police, woman, cop, officer |
+| 👮🏿♀️ | woman police officer: dark skin tone | police, woman, cop, officer, dark skin tone |
+| 🚴 | person biking | cyclist, bicycle, biking |
+| 🚴🏿 | person biking: dark skin tone | cyclist, bicycle, biking, dark skin tone |
+| 🚴♂️ | man biking | cyclist, bicycle, biking, man |
+| 🚴🏿♂️ | man biking: dark skin tone | cyclist, bicycle, biking, dark skin tone, man |
+| 🚴♀️ | woman biking | cyclist, woman, bicycle, biking |
+| 🚴🏿♀️ | woman biking: dark skin tone | cyclist, woman, bicycle, biking, dark skin tone |
+
+For more information, see [Unicode Emoji](https://unicode.org/reports/tr51).
+
+### 14.2 <a name="Character_Labels" href="#Character_Labels">Annotations Character Labels</a>
+
+```xml
+<!ELEMENT characterLabels ( alias | ( characterLabelPattern*, characterLabel*, special* ) ) >
+
+<!ELEMENT characterLabelPattern ( #PCDATA ) >
+
+<!ATTLIST characterLabelPattern type NMTOKEN #REQUIRED >
+
+<!ATTLIST characterLabelPattern count (0 | 1 | zero | one | two | few | many | other) #IMPLIED > <!-- count only used for certain patterns" -->
+
+<!ELEMENT characterLabel ( #PCDATA ) >
+
+<!ATTLIST characterLabel type NMTOKEN #REQUIRED >
+```
+
+The character labels can be used for categories or groups of characters in a character picker or keyboard palette. They have the above structure. Items with special meanings are explained below. Many of the categories are based on terms used in Unicode. Consult the [Unicode Glossary](https://www.unicode.org/glossary/) where the meaning is not clear.
+
+The following are special patterns used in composing labels.
+
+##### characterLabelPattern
+
+| Type | English | Description of the group specified. |
+| ------------- | ------------------- | ----------------------------------- |
+| all | {0} — all | Used where the title {0} is just a subset. For example, {0} might be "Latin", and contain the most common Latin characters. Then "Latin — all" would be all of them. |
+| category-list | {0}: {1} | Use for a name, where {0} is the main item like "Family", and {1} is a list of one or more components or subcategories. The list is formatted using a list pattern. |
+| compatibility | {0} — compatibility | For grouping Unicode compatibility characters separately, such as "Arabic — compatibility". |
+| enclosed | {0} — enclosed | For indicating enclosed forms, such as "digits — enclosed" |
+| extended | {0} — extended | For indicating a group of "extended" characters (special use, technical, etc.) |
+| historic | {0} — historic | For indicating a group of "historic" characters (no longer in common use). |
+| miscellaneous | {0} — miscellaneous | For indicating a group of "miscellaneous" characters (typically that don't fall into a broader class). |
+| other | {0} — other | Used where the title {0} is just a subset. For example, {0} might be "Latin", and contain the most common Latin characters. Then "Latin — other" would be the rest of them. |
+| scripts | scripts — {0} | For indicating a group of "scripts" characters matching {0}. The value for {0} may be a geographic indicator, like "Africa" (although there are specific combinations listed below), or some other designation, like "other" (from below). |
+| strokes | {0} strokes | Used as an index title for CJK characters. It takes a "count" value, which allows the right plural form to be specified for the language. |
+| subscript | subscript {0} | For indicating subscript forms, such as "subscript digits". |
+| superscript | superscript {0} | For indicating superscript forms, such as "superscript digits". |
+
+The following are character labels. Where the meaning of the label is fairly clear (like "animal") or is in the Unicode glossary, it is omitted.
+
+##### characterLabel
+
+| Type | English | Description of the group specified. |
+| --------------------------- | ----------------------- | ----------------------------------- |
+| activities | activity | Human activities, such as running. |
+| african_scripts | African script | Scripts associated with the continent of Africa. |
+| american_scripts | American script | Scripts associated with the continents of North and South America. |
+| animals_nature | animal or nature | A broad category uses for |
+| arrows | arrow | Arrow symbols |
+| body | body | Symbols for body parts, such as an arm. |
+| box_drawing | box drawing | Unicode box-drawing characters (geometric shapes) |
+| bullets_stars | bullet or star | Unicode bullets (such as • or ‣ or ⁍) or stars (★✩✪✵...) |
+| consonantal_jamo | consonantal jamo | Korean Jamo consonants. |
+| currency_symbols | currency symbol | Symbols such as $, ¥, £ |
+| dash_connector | dash or connector | Characters like _ or ⁓ |
+| dingbats | dingbat | Font dingbat characters, such as ❿ or ♜. |
+| downwards_upwards_arrows | downwards upwards arrow | ⇕,... |
+| female | female | Indicates that a character is female or feminine in appearance. |
+| format | format | A Unicode format character. |
+| format_whitespace | format & whitespace | A Unicode format character or whitespace. |
+| full_width_form_variant | full-width variant | Full width variant, such as a wide A. |
+| half_width_form_variant | half-width variant | Narrow width variant, such as a half-width katakana character. |
+| han_characters | Han character | Han (aka CJK: Chinese, Japanese, or Korean) ideograph |
+| han_radicals | Han radical | Radical (component) used in Han characters. |
+| hanja | hanja | Korean name for Han character. |
+| hanzi_simplified | Hanzi (simplified) | Simplified Chinese ideograph |
+| hanzi_traditional | Hanzi (traditional) | Traditional Chinese ideograph |
+| historic_scripts | historic script | Script no longer in common modern usage, such as Runes or Hieroglyphs. |
+| ideographic_desc_characters | ideographic desc. character | Special Unicode characters (see the glossary). |
+| kanji | kanji | Japanese Han ideograph |
+| keycap | keycap | A key on a computer keyboard or phone. For example, the "3" key on a phone or laptop would be "keycap: 3" |
+| limited_use | limited-use | Not in common modern use. |
+| male | male | Indicates that a character is male or masculine in appearance. |
+| modifier | modifier | A Unicode modifier letter or symbol. |
+| nonspacing | nonspacing | Uses for characters that occupy no width by themselves, such as the ¨ over the a in ä. |
+
+### 14.3 <a name="Typographic_Names" href="#Typographic_Names">Typographic Names</a>
+
+```xml
+<!ELEMENT typographicNames ( alias | ( axisName*, styleName*, featureName*, special* ) ) >
+
+<!ELEMENT axisName ( #PCDATA ) >
+<!ATTLIST axisName type (ital | opsz | slnt | wdth | wght) #REQUIRED >
+<!ATTLIST axisName alt NMTOKENS #IMPLIED >
+
+<!ELEMENT styleName ( #PCDATA ) >
+<!ATTLIST styleName type (ital | opsz | slnt | wdth | wght) #REQUIRED >
+<!ATTLIST styleName subtype NMTOKEN #REQUIRED >
+<!ATTLIST styleName alt NMTOKENS #IMPLIED >
+
+<!ELEMENT featureName ( #PCDATA ) >
+<!ATTLIST featureName type (afrc | cpsp | dlig | frac | lnum | onum | ordn | pnum | smcp | tnum | zero) #REQUIRED >
+<!ATTLIST featureName alt NMTOKENS #IMPLIED >
+```
+
+The typographic names provide for names of font features for use in a UI. This is useful for apps that show the name of font styles and design axes according to the user’s languages. It would also be useful for system-level libraries.
+
+The identifers (types) use the tags from the OpenType Feature Tag Registry. Given their large number, only the names of frequently-used OpenType feature names are available CLDR. (Many features are not user-visible settings, but instead serve as a data channel for sofware to pass information to the font). The example below shows an approach for using the CLDR data. Of course, applications are free to implement their own algorithms depending on their specific needs.
+
+To find a localized subfamily name such as “Extraleicht Schmal” for a font called “Extralight Condensed”, a system or application library might do the following:
+
+1. Determine the set of languages in which the subfamily name can potentially be returned. This is the union of the languages for which the font contains ‘name’ table entries with ID 2 or 17, plus the languages for which CLDR supplies typographic names.
+
+2. Use a language matching algorithm such as in ICU to find the best available language given the user preferences. The resulting subfamily name will be localized to this language.
+
+3. If the font’s ‘name’ table contains a typographic subfamily name (ID17) in this language and all font variation axes are set to their defaults, return this name.
+
+4. If the font’s ‘name’ table contains a font subfamilyname (‘name’ID2) in this language and all font variation axes are set to their defaults, return this name.
+
+5. If the font has a style attributes (STAT) table, lookup the design axis tags and their ordering. If the font has no STAT table, assume \[Width, Weight, Slant\] as axis ordering, and infer the font’s style atributes from other available data in the font (eg. the OS/2 table).
+
+6. For each design axis, find a localized style name for its value.
+ 1. If the font’s style attributes point to a ‘name’ table entry that is available the result language, use this name.
+ 2. Otherwise, generate a fallback name from CLDR style Name data.
+ 1. The type key is the OpenType axis tag ( ‘wght’). The subtype and alt keys are taken from the entry in English CLDR where the string is equal to the English name in the font. For example, when the font uses a weight whose English style name is “Extralight”, this will lead to subtype = “200” and alt = “variant”. If there is no match, take the axis value (“200”) for subtype and the empty string for alt.
+ 2. Look up (type, subtype) in a data table derived from CLDR’s style names. If CLDR supplies multiple alternate names for this (type, subtype), use the one whose “alt” key is matching; otherwise, use the default alternate (which has no “alt” atribute in CLDR).
+7. Concatenate the strings, with a separator between them.
+
+## 15 <a name="Grammatical_Features" href="#Grammatical_Features">Grammatical Features</a>
+
+LDML supplies grammatical information that can be used to distinguish localized forms on a per-locale basis. The current data is part of an initial phase; the longer term plan is to add structure to permit localized forms based on these features, starting with measurement units such as the dative form in Serbian of “kilometer”. That will allow unit values to be inserted as placeholders into messages and adopt the right forms for grammatical agreement.
+
+The current data includes the following:
+
+* There are currently 3 grammatical features found in the [DTD](https://github.com/unicode-org/cldr/blob/master/common/dtd/ldmlSupplemental.dtd#1229): Gender, Case, Definiteness
+* There are mappings from supported locales to grammatical features they exhibit in the file [grammaticalFeatures.xml](https://github.com/unicode-org/cldr/blob/master/common/supplemental/grammaticalFeatures.xml). Note that this is supplemental data, so the inheritance to the available locales needs to be done by the client.
+
+Note that the CLDR plural categories overlap some of these features, since some languages use case and other devices to change words based on the numeric values.
+
+## Features
+
+```xml
+<!ELEMENT grammaticalData ( grammaticalFeatures*, grammaticalDerivations*) >
+<!ELEMENT grammaticalFeatures ( grammaticalCase*, grammaticalGender*, grammaticalDefiniteness* ) >
+<!ATTLIST grammaticalFeatures targets NMTOKENS #REQUIRED >
+<!ATTLIST grammaticalFeatures locales NMTOKENS #REQUIRED >
+
+<!ELEMENT grammaticalCase EMPTY>
+<!ATTLIST grammaticalCase scope NMTOKENS #IMPLIED >
+<!ATTLIST grammaticalCase values NMTOKENS #REQUIRED >
+
+<!ELEMENT grammaticalGender EMPTY>
+<!ATTLIST grammaticalGender scope NMTOKENS #IMPLIED >
+<!ATTLIST grammaticalGender values NMTOKENS #REQUIRED >
+
+<!ELEMENT grammaticalDefiniteness EMPTY>
+<!ATTLIST grammaticalDefiniteness scope NMTOKENS #IMPLIED >
+<!ATTLIST grammaticalDefiniteness values NMTOKENS #REQUIRED >
+```
+
+The @targets attribute contains the specific grammatical entities to which the features apply, such as ```nominal``` when they apply to nouns only. The @locales attribute contains the specific locales to which the features apply, such as ```de fr``` for German and French.
+
+The @scope attribute, if present, indicates that the values are limited to a specific subset for certain kinds of entities. For example, a particular language might have an animate gender for nouns, but no units of measurement ever have that case; in another language, the language might have a rich set of grammatical cases, but units are invariant. If the @scope attribute is not present, then that has the meaning of "everything else".
+
+The @scope attributes are targeted at messages created by computers, thus a feature may have a narrower scope if for all practical purposes the feature value is not used in messages created by computers. For example, it may be possible in theory for a kilogram to be in the vocative case (English poetry might have “O Captain! my Captain!/ our fearful trip is done”, but on computers you have little call to need the message “O kilogram! my kilogram! …”).
+
+**Constraints:**
+
+* a scope attribute is only used when there is a corresponding “general” element, one for the same language and target without a scope attribute.
+* the scope attribute values must be narrower (a proper subset, possibly empty) of those in the corresponding general element.
+
+### 15.1 <a name="Gender" href="#Gender">Gender</a>
+
+Feature that classifies nouns in classes. This is grammatical gender, which may be assigned on the basis of sex in some languages, but may be completely separate in others. Also used to tag elements in CLDR that should agree with a particular gender of an associated noun. (adapted from: [linguistics-ontology.org/gold/2010/GenderProperty](http://linguistics-ontology.org/gold/2010/GenderProperty))
+
+#### Example
+
+```xml
+<grammaticalFeatures targets="nominal" locales="es fr it pt">
+ <grammaticalGender values="masculine feminine"/>
+```
+
+#### Values
+
+| Value | Definition | References |
+| --------- | ---------- | ---------- |
+| animate | In an animate/inanimate gender system, gender that denotes human or animate entities. | description adapted from: [wikipedia.org/wiki/Grammatical_gender](https://en.wikipedia.org/wiki/Grammatical_gender), [linguistics-ontology.org/gold/2010/AnimateGender](http://linguistics-ontology.org/gold/2010/AnimateGender) |
+| inanimate | In an animate/inanimate gender system, gender that denotes object or inanimate entities .| adapted from: [wikipedia.org/wiki/Grammatical_gender](https://en.wikipedia.org/wiki/Grammatical_gender), [linguistics-ontology.org/gold/2010/InanimateGender](http://linguistics-ontology.org/gold/2010/InanimateGender) |
+| personal | In an animate/inanimate gender system in some languages, gender that specifies the masculine gender of animate entities. | adapted from: [wikipedia.org/wiki/Grammatical_gender](https://en.wikipedia.org/wiki/Grammatical_gender), [linguistics-ontology.org/gold/2010/HumanGender](http://linguistics-ontology.org/gold/2010/HumanGender) |
+| common | In a common/neuter gender system, gender that denotes human entities. | adapted from: [wikipedia.org/wiki/Grammatical_gender](https://en.wikipedia.org/wiki/Grammatical_gender) |
+| feminine | In a masculine/feminine or in a masculine/feminine/neuter gender system, gender that denotes specifically female persons (or animals) or that is assigned arbitrarily to object. | adapted from: http://wikipedia.org/wiki/Grammatical_gender, [linguistics-ontology.org/gold/2010/FeminineGender](http://linguistics-ontology.org/gold/2010/FeminineGender) |
+| masculine | In a masculine/feminine or in a masculine/feminine/neuter gender system, gender that denotes specifically male persons (or animals) or that is assigned arbitrarily to object. | adapted from: [wikipedia.org/wiki/Grammatical_gender](https://en.wikipedia.org/wiki/Grammatical_gender), [linguistics-ontology.org/gold/2010/MasculineGender](http://linguistics-ontology.org/gold/2010/MasculineGender) |
+| neuter | In a masculine/feminine/neuter or common/neuter gender system, gender that generally denotes an object. | adapted from: [wikipedia.org/wiki/Grammatical_gender](https://en.wikipedia.org/wiki/Grammatical_gender), [linguistics-ontology.org/gold/2010/NeuterGender](http://linguistics-ontology.org/gold/2010/NeuterGender) |
+
+### 15.2 <a name="Case" href="#Case">Case</a>
+
+#### Case
+
+Feature that encodes the syntactic (and sometimes semantic) relationship of a noun with the other constituents of the sentence. (adapted from [linguistics-ontology.org/gold/2010/CaseProperty](http://linguistics-ontology.org/gold/2010/CaseProperty))
+
+##### Example
+
+```xml
+<grammaticalFeatures targets="nominal" locales="de">
+ <grammaticalCase values="nominative accusative genitive dative"/>
+```
+
+##### Values
+
+| Value | Definition | References |
+| ------------------ | ---------- | ---------- |
+| abessive | The abessive case expresses the absence of the referent it marks. It has the meaning of 'without'. | [purl.org/olia/olia.owl#AbessiveCase](http://purl.org/olia/olia.owl#AbessiveCase) [linguistics-ontology.org/gold/2010/AbessiveCase](http://linguistics-ontology.org/gold/2010/AbessiveCase)|
+| ablative | The ablative case expresses that the referent of the noun it marks is the location from which another referent is moving. It has the meaning 'from'. | [purl.org/olia/olia.owl#AblativeCase](https://purl.org/olia/olia.owl#AblativeCase), [linguistics-ontology.org/gold/2010/AblativeCase](http://linguistics-ontology.org/gold/2010/AblativeCase) |
+| accusative | Accusative case marks certain syntactic functions, usually direct objects. | [purl.org/olia/olia.owl#Accusative](https://purl.org/olia/olia.owl#Accusative), [linguistics-ontology.org/gold/2010/AccusativeCase](http://linguistics-ontology.org/gold/2010/AccusativeCase) |
+| adessive | The adessive case expresses that the referent of the noun it marks is the location near/at which another referent exists. It has the meaning of 'at' or 'near'. | [purl.org/olia/olia.owl#AdessiveCase](http://purl.org/olia/olia.owl#AdessiveCase), [linguistics-ontology.org/gold/2010/AdessiveCase](http://linguistics-ontology.org/gold/2010/AdessiveCase) |
+| allative | The allative case expresses motion to or toward the referent of the noun it marks. | [purl.org/olia/olia.owl#AllativeCase](http://purl.org/olia/olia.owl#AllativeCase), [linguistics-ontology.org/gold/2010/AllativeCase](http://linguistics-ontology.org/gold/2010/AllativeCase) |
+| causal | The causal (causal-final, not causative) case expresses that the marked noun is the objective or reason for something. It carries the meaning of 'for the purpose of'. | http://en.wikipedia.org/wiki/Causative#Causal-final_case, http://www.hungarianreference.com/Nouns/%C3%A9rt-causal-final.aspx |
+| comitative | Comitative Case expresses accompaniment. It carries the meaning 'with' or 'accompanied by' . | [purl.org/olia/olia.owl#ComitativeCase](https://purl.org/olia/olia.owl#ComitativeCase), [linguistics-ontology.org/gold/2010/ComitativeCase](http://linguistics-ontology.org/gold/2010/ComitativeCase) |
+| dative | Dative case marks indirect objects (for languages in which they are held to exist), or nouns having the role of a recipient (as of things given), a beneficiary of an action, or a possessor of an item. | [purl.org/olia/olia.owl#DativeCase](https://purl.org/olia/olia.owl#DativeCase), [linguistics-ontology.org/gold/2010/DativeCase](http://linguistics-ontology.org/gold/2010/DativeCase) |
+| delative | The delative case expresses motion downward from the referent of the noun it marks. | [purl.org/olia/olia.owl#DelativeCase](http://purl.org/olia/olia.owl#DelativeCase), [linguistics-ontology.org/gold/2010/DelativeCase](http://linguistics-ontology.org/gold/2010/DelativeCase) |
+| elative | The elative case expresses that the referent of the noun it marks is the location out of which another referent is moving. It has the meaning 'out of'. | [purl.org/olia/olia.owl#ElativeCase](http://purl.org/olia/olia.owl#ElativeCase), [linguistics-ontology.org/gold/2010/ElativeCase](http://linguistics-ontology.org/gold/2010/ElativeCase) |
+| ergative | In ergative-absolutive languages, the ergative case identifies the subject of a transitive verb. | [purl.org/olia/olia.owl#ErgativeCase](https://purl.org/olia/olia.owl#ErgativeCase), [linguistics-ontology.org/gold/2010/ErgativeCase](http://linguistics-ontology.org/gold/2010/ErgativeCase) |
+| essive | The essive case expresses that the referent of the noun it marks is the location at which another referent exists. | [purl.org/olia/olia.owl#EssiveCase](http://purl.org/olia/olia.owl#EssiveCase), [linguistics-ontology.org/gold/2010/EssiveCase](http://linguistics-ontology.org/gold/2010/EssiveCase) |
+| genitive | Genitive case signals that the referent of the marked noun is the possessor of the referent of another noun, e.g. "the man's foot". In some languages, genitive case may express an associative relation between the marked noun and another noun. | [purl.org/olia/olia.owl#GenitiveCase](https://purl.org/olia/olia.owl#GenitiveCase), [linguistics-ontology.org/gold/2010/GenitiveCase](http://linguistics-ontology.org/gold/2010/GenitiveCase) |
+| illative | The illative case expresses that the referent of the noun it marks is the location into which another referent is moving. It has the meaning 'into'. | [purl.org/olia/olia.owl#IllativeCase](http://purl.org/olia/olia.owl#IllativeCase), [linguistics-ontology.org/gold/2010/IllativeCase](http://linguistics-ontology.org/gold/2010/IllativeCase) |
+| inessive | The inessive case expresses that the referent of the noun it marks is the location within which another referent exists. It has the meaning of 'within' or 'inside'. | [purl.org/olia/olia.owl#InessiveCase](http://purl.org/olia/olia.owl#InessiveCase), [linguistics-ontology.org/gold/2010/InessiveCase](http://linguistics-ontology.org/gold/2010/InessiveCase) |
+| instrumental | The instrumental case indicates that the referent of the noun it marks is the means of the accomplishment of the action expressed by the clause. | [purl.org/olia/olia.owl#InstrumentalCase](https://purl.org/olia/olia.owl#InstrumentalCase), [linguistics-ontology.org/gold/2010/InstrumentalCase](http://linguistics-ontology.org/gold/2010/InstrumentalCase) |
+| locative | Case that indicates a final location of action or a time of the action. | [purl.org/olia/olia.owl#LocativeCase](https://purl.org/olia/olia.owl#LocativeCase), [linguistics-ontology.org/gold/2010/LocativeCase](http://linguistics-ontology.org/gold/2010/LocativeCase) |
+| locativecopulative | Copulative Case marker that indicates a location. | TBD Add reference, example |
+| nominative | In nominative-accusative languages, nominative case marks clausal subjects and is applied to nouns in isolation | [purl.org/olia/olia.owl#Nominative](https://purl.org/olia/olia.owl#Nominative), [linguistics-ontology.org/gold/2010/NominativeCase](http://linguistics-ontology.org/gold/2010/NominativeCase) |
+| oblique | Case that is used when a noun is the object of a verb or a proposition, except for nominative and vocative case. | [purl.org/olia/olia.owl#ObliqueCase](https://purl.org/olia/olia.owl#ObliqueCase) |
+| partitive | The partitive case is a grammatical case which denotes 'partialness', 'without result', or 'without specific identity'. | [purl.org/olia/olia.owl#PartitiveCase](https://purl.org/olia/olia.owl#PartitiveCase), [linguistics-ontology.org/gold/2010/PartitiveCase](http://linguistics-ontology.org/gold/2010/PartitiveCase) |
+| prepositional | Prepositional case refers to case marking that only occurs in combination with prepositions. | [purl.org/olia/olia.owl#PrepositionalCase](https://purl.org/olia/olia.owl#PrepositionalCase) |
+| sociative | Case related to the person in whose company the action is carried out, or to any belongings of people which take part in the action. | [purl.org/olia/olia.owl#SociativeCase](https://purl.org/olia/olia.owl#SociativeCase) |
+| sublative | The sublative case expresses that the referent of the noun it marks is the location under which another referent is moving toward. It has the meaning 'towards the underneath of'. | [purl.org/olia/olia.owl#SublativeCase](http://purl.org/olia/olia.owl#SublativeCase), [linguistics-ontology.org/gold/2010/SublativeCase](http://linguistics-ontology.org/gold/2010/SublativeCase) |
+| superessive | The superessive case expresses that the referent of the noun it marks is the location on which another referent exists. It has the meaning of 'on' or 'upon'. | [purl.org/olia/olia.owl#SuperessiveCase](http://purl.org/olia/olia.owl#SuperessiveCase), [linguistics-ontology.org/gold/2010/SuperessiveCase](http://linguistics-ontology.org/gold/2010/SuperessiveCase) |
+| terminative | The terminative case expresses the motion of something into but not further than (ie, not through) the referent of the noun it marks. It has the meaning 'into but not through'. | [purl.org/olia/olia.owl#TerminativeCase](http://purl.org/olia/olia.owl#TerminativeCase), [linguistics-ontology.org/gold/2010/TerminativeCase](http://linguistics-ontology.org/gold/2010/TerminativeCase) |
+| translative | The translative case expresses that the referent of the noun that it marks is the result of a process of change. It has the meaning of 'becoming' or 'changing into'. | [purl.org/olia/olia.owl#TranslativeCase](http://purl.org/olia/olia.owl#TranslativeCase), [linguistics-ontology.org/gold/2010/TranslativeCase](http://linguistics-ontology.org/gold/2010/TranslativeCase) |
+| vocative | Vocative case marks a noun whose referent is being addressed. | [purl.org/olia/olia.owl#VocativeCase](https://purl.org/olia/olia.owl#VocativeCase), [linguistics-ontology.org/gold/2010/VocativeCase](http://linguistics-ontology.org/gold/2010/VocativeCase) |
+
+### Definiteness
+
+Feature that encodes the fact that a noun has been already mentioned, or is familiar in the discourse. (adapted from [https://glossary.sil.org/term/definiteness](https://glossary.sil.org/term/definiteness) )
+
+#### Values
+
+| Value | Definition | References |
+| ----------- | ---------- | ---------- |
+| definite | Value referring to the capacity of identification of an entity. | [purl.org/olia/olia.owl#Definite](https://purl.org/olia/olia.owl#Definite) |
+| indefinite | An entity is specified as indefinite when it refers to a non-particularized individual of the species denoted by the noun. | [purl.org/olia/olia.owl#Indefinite](https://purl.org/olia/olia.owl#Indefinite) |
+| construct | The state of the first noun in a genitive phrase of a possessed noun followed by a possessor noun. | Not directly linked, but explained under: [purl.org/olia/olia-top.owl#DefinitenessFeature](https://purl.org/olia/olia-top.owl#DefinitenessFeature) |
+| unspecified | Noun without any definiteness marking in some specific construction (specific to Danish). | |
+
+
+## 16 <a name="Grammatical_Derivations" href="#Grammatical_Derivations">Grammatical Derivations</a>
+
+```xml
+<!ELEMENT grammaticalData ( grammaticalFeatures*, grammaticalDerivations*) >
+<!ELEMENT grammaticalDerivations (deriveCompound*, deriveComponent*) >
+<!ATTLIST grammaticalDerivations locales NMTOKENS #REQUIRED >
+
+<!ELEMENT deriveCompound EMPTY >
+<!ATTLIST deriveCompound feature NMTOKENS #REQUIRED >
+<!ATTLIST deriveCompound structure NMTOKENS #REQUIRED >
+<!ATTLIST deriveCompound value NMTOKEN #REQUIRED >
+
+<!ATTLIST deriveComponent feature NMTOKENS #REQUIRED >
+<!ATTLIST deriveComponent structure NMTOKENS #REQUIRED >
+<!ATTLIST deriveComponent value0 NMTOKEN #REQUIRED >
+<!ATTLIST deriveComponent value1 NMTOKEN #REQUIRED >
+```
+
+The grammatical derivation data contains information about the case, gender, and plural categories of compound units. This is supplemental data, so the inheritance by locale needs to be done by the client.
+
+_Note: In CLDR v38, the data for two locales is provided so that implemenations can ready their code for when more locale data is available. In subsequent releases structure may be further extended as more locales are added, to deal with additional locale requirements._
+
+A compound unit can use 4 mechanisms, illustrated here in formatted strings:
+
+* **Prefix**: 1 **kilo**gram
+* **Power**: 3 **square** kilometers
+* **Per**: 3 kilograms **per** meter
+ * An edge case is where there is no numerator, such as “1 per-second”
+* **Times**: 3 kilowatt**-**hours
+
+For the purposes of grammatical derivation (and name construction), a compound unit ID can be represented as a tree structure where the leaves are the atomic units, and the higher level node are one of the above. Here is an extreme example of that: _kilogram-square-kilometer-ampere-candela-per-square-second-mole_
+
+<!-- HTML: colspan -->
+
+<table><tbody>
+<tr><th colspan="6">per</th></tr>
+<tr><th colspan="4">times</th><th colspan="2">times</th></tr>
+<tr><th>kilo</th><th>square</th><td>ampere</td><td>candela</td><th>square</th><td>mole</td></tr>
+<tr><td>gram</td><th>kilo</th><td>-</td><td>-</td><td>second</td><td></td></tr>
+<tr><td>-</td><td>meter</td><td>-</td><td>-</td><td colspan="2">-</td></tr>
+</tbody></table>
+
+Note that the prefix and power nodes are unary (exactly 1 child), the per pattern is unary or binary (1 or 2 children), and the times pattern is n-ary (where n > 1).
+
+Each section below is only applicable if the language has more than one value _for units_: for example, for plural categories the language has to have more than just "other". When that information is available for a language, it is found in **Section 15 [Grammatical Features](#Grammatical_Features)**.
+
+The gender derivation would be appropriate for an API call like `String genderValue = getGrammaticalGender(locale, "kilogram-meter-per-square-second")`. This can be used where the choice of word forms in the rest of a phrase can depend on the gender of the unit.
+
+On the other hand, the derivation of plural category and case are used in building up the name of a compound unit, where the desired plural category is available from the number to be formatted with the unit, and the case value is known from the position in a message. For example, the case could be accusative if the formatted unit is to be the direct object in a sentence or phrase. This could be expressed in an API call such as `String inflectedName = getUnitName(locale, "kilogram-meter-per-square-second", pluralCategory, caseValue)`.
+
+When deriving an inflected compound unit pattern, as the tree-stucture is processed by getting the appropriate localized patterns for the structural components and names for the atomic components. The computation of the plural category and the case of the subtrees can be computed from the **deriveComponent** data. The **times** data is treated as binary, and applied from left to right: with the example from above, the plural categories for the components of _kilogram-square-kilometer-ampere-candela_ are computed by applying
+
+**times**(_kilogram, **times**(square-kilometer, **times**(ampere, candela)))_
+
+For a description of how to use these fields to construct a localized name, see **Section 6.4 [Compound Units](#compound-units)**.
+
+### 16.1 <a name="gender_compound_units" href="#gender_compound_units">Deriving the Gender of Compound Units</a>
+
+The **deriveCompound\[@feature="gender"\]** data provides information for how to derive the gender of the whole compound from the gender of its atomic units and structure. The `attributeValues` of value are: **`0` (=gender of the first element), `1` (=gender of second element), or one of the valid gender values for the language.** In the unusual case that the 'per' compound has no first element and 0 is supplied, then the value is 1.
+
+Example:
+
+```xml
+<deriveCompound feature="gender" structure="per" value="0" /> <!-- gender(gram-per-meter) ← gender(gram) -->
+<deriveCompound feature="gender" structure="times" value="1" /> <!-- gender(newton-meter) ← gender(meter) -->
+<deriveCompound feature="gender" structure="power" value="0" /> <!-- gender(square-meter) ← gender(meter) -->
+<deriveCompound feature="gender" structure="prefix" value="0" /> <!-- gender(kilometer) ← gender(meter) -->
+```
+
+For example, for gram-per-meter, the first line above means:
+
+* The gender of the compound is the gender of the first component of the 'per', that is, of the "gram". So if gram is feminine in that language, the gender of the compound is feminine.
+
+
+### 16.2 <a name="plural_compound_units" href="#plural_compound_units">Deriving the Plural Category of Unit Components</a>
+
+The `deriveComponent[@feature="plural"]` data provides information for how to derive the plural category for each of the atomic units, from the plural category of the whole compound and the structure of the compound. The `attributeValues` of `value0` and `value1` are: `compound` (=the `pluralCategory` of the compound), or one of the valid plural category values for the language.
+
+Example:
+
+```xml
+<deriveComponent feature="plural" structure="per" value0="compound" value1="one" /> <!-- compound(gram-per-meter) ⇒ compound(gram) “per" singular(meter) -->
+<deriveComponent feature="plural" structure="times" value0="one" value1="compound" /> <!-- compound(newton-meter) ⇒ singular(newton) “-" compound(meter) -->
+<deriveComponent feature="plural" structure="power" value0="one" value1="compound" /> <!-- compound(square-meter) ⇒ singular(square) compound(meter) -->
+<deriveComponent feature="plural" structure="prefix" value0="one" value1="compound" /> <!-- compound(kilometer) ⇒ singular(kilo) compound(meter) -->
+```
+
+For example, for gram-per-meter, the first line above means:
+
+* When the plural form of gram-per-meter is needed (rather than singular), then the gram part of the translation has to have a plural form like “grams”, while the meter part of the translation has to have a singular form like “metre”. This would be composed with the pattern for "per" (say "{0} pro {1}") to get "grams pro metre".
+
+
+### 16.3 <a name="case_compound_units" href="#case_compound_units">Deriving the Case of Unit Components</a>
+
+The `deriveComponent[@feature="case"]` data provides information for how to derive the grammatical case for each of the atomic units, from the grammatical case of the whole compound and the structure of the compound. The `attributeValues` of value0 and value1 are: `compound` (=the grammatical case of the compound), or one of the valid grammatical case values for the language.
+
+Example:
+
+```xml
+<deriveComponent feature="case" structure="per" value0="compound" value1="nominative" /> <!-- compound(gram-per-meter) ⇒ compound(gram) “per" accusative(meter) -->
+<deriveComponent feature="case" structure="times" value0="nominative" value1="compound" /> <!-- compound(newton-meter) ⇒ nominative(newton) “-" compound(meter) -->
+<deriveComponent feature="case" structure="power" value0="nominative" value1="compound" /> <!-- compound(square-meter) ⇒ nominative(square) compound(meter) -->
+<deriveComponent feature="case" structure="prefix" value0="nominative" value1="compound" /><!--compound(kilometer) ⇒ nominative(kilo) compound(meter) -->
+```
+
+For example, for gram-per-meter, the first line above means:
+
+* When the accusative form of gram-per-meter is needed, then the gram part of the translation has take the accusative case (eg, “gramu”, in a language that marks the accusative case with 'u'), while the meter part of the translation has a nominative form like “metre”. This would be composed with the pattern for "per" (say "{0} pro {1}") to get "gramu pro metre".
+
+* * *
+
+Copyright © 2001–2021 Unicode, Inc. All Rights Reserved. The Unicode Consortium makes no expressed or implied warranty of any kind, and assumes no liability for errors or omissions. No liability is assumed for incidental and consequential damages in connection with or arising out of the use of the information or programs contained or accompanying this technical report. The Unicode [Terms of Use](https://unicode.org/copyright.html) apply.
+
+Unicode and the Unicode logo are trademarks of Unicode, Inc., and are registered in some jurisdictions.
diff --git a/docs/ldml/tr35-info.html b/docs/ldml/tr35-info.html
deleted file mode 100644
index a7a89d2..0000000
--- a/docs/ldml/tr35-info.html
+++ /dev/null
@@ -1,2229 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"https://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
- <meta name="generator" content=
- "HTML Tidy for HTML5 for Apple macOS version 5.6.0">
- <meta http-equiv="Content-Type" content=
- "text/html; charset=utf-8">
- <meta http-equiv="Content-Language" content="en-us">
- <link rel="stylesheet" href=
- "../reports.css" type="text/css">
- <title>UTS #35: Unicode LDML: Supplemental</title>
- <style type="text/css">
- <!--
- .dtd {
- font-family: monospace;
- font-size: 90%;
- background-color: #CCCCFF;
- border-style: dotted;
- border-width: 1px;
- }
-
- .xmlExample {
- font-family: monospace;
- font-size: 80%
- }
-
- .blockedInherited {
- font-style: italic;
- font-weight: bold;
- border-style: dashed;
- border-width: 1px;
- background-color: #FF0000
- }
-
- .inherited {
- font-weight: bold;
- border-style: dashed;
- border-width: 1px;
- background-color: #00FF00
- }
-
- .element {
- font-weight: bold;
- color: red;
- }
-
- .attribute {
- font-weight: bold;
- color: maroon;
- }
-
- .attributeValue {
- font-weight: bold;
- color: blue;
- }
-
- li, p {
- margin-top: 0.5em;
- margin-bottom: 0.5em
- }
-
- h2, h3, h4, table {
- margin-top: 1.5em;
- margin-bottom: 0.5em;
- }
- -->
- </style>
-</head>
-<body>
- <table class="header" width="100%">
- <tr>
- <td class="icon"><a href="https://unicode.org"><img alt=
- "[Unicode]" src="../logo60s2.gif"
- width="34" height="33" style=
- "vertical-align: middle; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px; border-top-width: 0px;"></a>
- <a class="bar" href=
- "https://www.unicode.org/reports/">Technical Reports</a></td>
- </tr>
- <tr>
- <td class="gray"> </td>
- </tr>
- </table>
- <div class="body">
- <h2 style="text-align: center">Unicode Technical Standard #35</h2>
- <h1>Unicode Locale Data Markup Language (LDML)<br>
- Part 6: Supplemental</h1>
- <!-- At least the first row of this header table should be identical across the parts of this UTS. -->
- <table border="1" cellpadding="2" cellspacing="0" class="wide">
- <tr>
- <td>Version</td>
- <td>38</td>
- </tr>
- <tr>
- <td>Editors</td>
- <td>Steven Loomis (<a href=
- "mailto:srl@icu-project.org">srl@icu-project.org</a>) and
- <a href="tr35.html#Acknowledgments">other CLDR committee
- members</a></td>
- </tr>
- </table>
- <p>For the full header, summary, and status, see <a href=
- "tr35.html">Part 1: Core</a></p>
- <h3><i>Summary</i></h3>
- <p>This document describes parts of an XML format
- (<i>vocabulary</i>) for the exchange of structured locale data.
- This format is used in the <a href=
- "https://unicode.org/cldr/">Unicode Common Locale Data
- Repository</a>.</p>
- <p>This is a partial document, describing only those parts of
- the LDML that are relevant for supplemental data. For the other
- parts of the LDML see the <a href="tr35.html">main LDML
- document</a> and the links above.</p>
- <h3><i>Status</i></h3>
-
- <!-- NOT YET APPROVED
- <p>
- <i class="changed">This is a<b><font color="#ff3333">
- draft </font></b>document which may be updated, replaced, or superseded by
- other documents at any time. Publication does not imply endorsement
- by the Unicode Consortium. This is not a stable document; it is
- inappropriate to cite this document as other than a work in
- progress.
- </i>
- </p>
- END NOT YET APPROVED -->
- <!-- APPROVED -->
- <p><i>This document has been reviewed by Unicode members and
- other interested parties, and has been approved for publication
- by the Unicode Consortium. This is a stable document and may be
- used as reference material or cited as a normative reference by
- other specifications.</i></p>
- <!-- END APPROVED -->
-
- <blockquote>
- <p><i><b>A Unicode Technical Standard (UTS)</b> is an
- independent specification. Conformance to the Unicode
- Standard does not imply conformance to any UTS.</i></p>
- </blockquote>
- <p><i>Please submit corrigenda and other comments with the CLDR
- bug reporting form [<a href="tr35.html#Bugs">Bugs</a>]. Related
- information that is useful in understanding this document is
- found in the <a href="tr35.html#References">References</a>. For
- the latest version of the Unicode Standard see [<a href=
- "tr35.html#Unicode">Unicode</a>]. For a list of current Unicode
- Technical Reports see [<a href=
- "tr35.html#Reports">Reports</a>]. For more information about
- versions of the Unicode Standard, see [<a href=
- "tr35.html#Versions">Versions</a>].</i></p>
- <!-- This section of Parts should be identical in all of the parts of this UTS. -->
- <h2><a name="Parts" href="#Parts" id="Parts">Parts</a></h2>
- <p>The LDML specification is divided into the following
- parts:</p>
- <ul class="toc">
- <li>Part 1: <a href="tr35.html#Contents">Core</a> (languages,
- locales, basic structure)</li>
- <li>Part 2: <a href="tr35-general.html#Contents">General</a>
- (display names & transforms, etc.)</li>
- <li>Part 3: <a href="tr35-numbers.html#Contents">Numbers</a>
- (number & currency formatting)</li>
- <li>Part 4: <a href="tr35-dates.html#Contents">Dates</a>
- (date, time, time zone formatting)</li>
- <li>Part 5: <a href=
- "tr35-collation.html#Contents">Collation</a> (sorting,
- searching, grouping)</li>
- <li>Part 6: <a href=
- "tr35-info.html#Contents">Supplemental</a> (supplemental
- data)</li>
- <li>Part 7: <a href=
- "tr35-keyboards.html#Contents">Keyboards</a> (keyboard
- mappings)</li>
- </ul>
- <h2><a name="Contents" href="#Contents" id="Contents">Contents
- of Part 6, Supplemental</a></h2>
- <!-- START Generated TOC: CheckHtmlFiles -->
- <ul class="toc">
- <li>1 <a href="#Supplemental_Data">Introduction Supplemental
- Data</a></li>
- <li>2 <a href="#Territory_Data">Territory Data</a>
- <ul class="toc">
- <li>2.1 <a href=
- "#Supplemental_Territory_Containment">Supplemental
- Territory Containment</a></li>
- <li>2.2 <a href="#Subdivision_Containment">Subdivision
- Containment</a></li>
- <li>2.3 <a href=
- "#Supplemental_Territory_Information">Supplemental
- Territory Information</a></li>
- <li>2.4 <a href=
- "#Territory_Based_Preferences">Territory-Based
- Preferences</a>
- <ul class="toc">
- <li>2.4.1 <a href=
- "#Preferred_Units_For_Usage">Preferred Units for
- Specific Usages</a>
- <ul class="toc">
- <li>Table: <a href=
- "#Unit_Preferences">Unit Preference
- Categories</a></li>
- </ul>
- </li>
- </ul>
- </li>
- <li>2.5 <a href="#rgScope"><rgScope>: Scope of the
- “rg” Locale Key</a></li>
- </ul>
- </li>
- <li>3 <a href="#Supplemental_Language_Data">Supplemental
- Language Data</a>
- <ul class="toc">
- <li>3.1 <a href=
- "#Supplemental_Language_Grouping">Supplemental Language
- Grouping</a></li>
- </ul>
- </li>
- <li>4 <a href="#Supplemental_Code_Mapping">Supplemental Code
- Mapping</a></li>
- <li>5 <a href="#Telephone_Code_Data">Telephone Code Data</a>
- (Deprecated)</li>
- <li>6 <a href="#Postal_Code_Validation">Postal Code
- Validation (Deprecated)</a></li>
- <li>7 <a href=
- "#Supplemental_Character_Fallback_Data">Supplemental
- Character Fallback Data</a></li>
- <li>8 <a href="#Coverage_Levels">Coverage Levels</a>
- <ul class="toc">
- <li>8.1 <a href=
- "#Coverage_Level_Definitions">Definitions</a></li>
- <li>8.2 <a href="#Coverage_Level_Data_Requirements">Data
- Requirements</a></li>
- <li>8.3 <a href="#Coverage_Level_Default_Values">Default
- Values</a></li>
- </ul>
- </li>
- <li>9 <a href="#Appendix_Supplemental_Metadata">Supplemental
- Metadata</a>
- <ul class="toc">
- <li>9.1 <a href=
- "#Supplemental_Alias_Information">Supplemental Alias
- Information</a>
- <ul class="toc">
- <li>Table: <a href="#Alias_Attribute_Values">Alias
- Attribute Values</a></li>
- </ul>
- </li>
- <li>9.2 <a href=
- "#Supplemental_Deprecated_Information">Supplemental
- Deprecated Information (Deprecated)</a></li>
- <li>9.3 <a href="#Default_Content">Default
- Content</a></li>
- </ul>
- </li>
- <li>10 <a href="#Metadata_Elements">Locale Metadata
- Elements</a></li>
- <li>11 <a href="#Version_Information">Version
- Information</a></li>
- <li>12 <a href="#Parent_Locales">Parent Locales</a></li>
- <li>13 <a href="#Unit_Conversion" >Unit Conversion</a></li>
- <li>14 <a href="#Unit_Preferences">Unit Preferences</a></li>
- </ul>
- <!-- END Generated TOC: CheckHtmlFiles -->
- <h2>1 Introduction <a name="Supplemental_Data" href=
- "#Supplemental_Data" id="Supplemental_Data">Supplemental
- Data</a></h2>
- <p>The following represents the format for additional
- supplemental information. This is information that is important
- for internationalization and proper use of CLDR, but is not
- contained in the locale hierarchy. It is not localizable, nor
- is it overridden by locale data. The current CLDR data can be
- viewed in the <a href=
- "https://unicode-org.github.io/cldr-staging/charts/38/supplemental/index.html">
- Supplemental Charts</a>.</p>
- <p class="dtd">
- <!-- t d {border: 1px solid #ccc;}br {mso-data-placement:same-cell;}-->
- <!ELEMENT supplementalData (version, generation?,
- cldrVersion?, currencyData?, territoryContainment?,
- subdivisionContainment?, languageData?, territoryInfo?,
- postalCodeData?, calendarData?, calendarPreferenceData?,
- weekData?, timeData?, measurementData?, unitPreferenceData?,
- timezoneData?, characters?, transforms?, metadata?,
- codeMappings?, parentLocales?, likelySubtags?, metazoneInfo?,
- plurals?, telephoneCodeData?, numberingSystems?,
- bcp47KeywordMappings?, gender?, references?, languageMatching?,
- dayPeriodRuleSet*, metaZones?, primaryZones?, windowsZones?,
- coverageLevels?, idValidity?, rgScope?) ></p>
- <p>The data in CLDR is presently split into multiple files:
- supplementalData.xml, supplementalMetadata.xml, characters.xml,
- likelySubtags.xml, ordinals.xml, plurals.xml,
- telephoneCodeData.xml, genderList.xml, plus transforms (see
- <i>Part 2 Section 10 <a href=
- "tr35-general.html#Transforms">Transforms</a></i> and <i>Part 2
- Section 10.3 <a href=
- "tr35-general.html#Transform_Rules_Syntax">Transform Rule
- Syntax</a></i>). The split is just for convenience: logically,
- they are treated as though they were a single file. Future
- versions of CLDR may split the data in a different fashion. Do
- not depend on any specific XML filename or path for
- supplemental data.</p>
- <p>Note that <a href="#Metadata_Elements">Chapter 10</a>
- presents information about metadata that is maintained on a
- per-locale basis. It is included in this section because it is
- not intended to be used as part of the locale itself.</p>
- <h2>2 <a name="Territory_Data" href="#Territory_Data" id=
- "Territory_Data">Territory Data</a></h2>
- <h3>2.1 <a name="Supplemental_Territory_Containment" href=
- "#Supplemental_Territory_Containment" id=
- "Supplemental_Territory_Containment">Supplemental Territory
- Containment</a></h3>
- <p class="dtd"><!ELEMENT territoryContainment ( group* )
- ><br>
- <!ELEMENT group EMPTY ><br>
- <!ATTLIST group type NMTOKEN #REQUIRED ><br>
- <!ATTLIST group contains NMTOKENS #IMPLIED ><br>
- <!ATTLIST group grouping ( true | false ) #IMPLIED ><br>
- <!ATTLIST group status ( deprecated, grouping ) #IMPLIED
- ></p>
- <p>The following data provides information that shows groupings
- of countries (regions). The data is based on the [<a href=
- "tr35.html#UNM49">UNM49</a>]. There is one special code,
- <code>QO</code> , which is used for outlying areas of Oceania
- that are typically uninhabited. The territory containment forms
- a tree with the following levels:</p>
- <p align="center">World</p>
- <p align="center">Continent</p>
- <p align="center">Subcontinent</p>
- <p align="center">Country</p>
- <p>Excluding groupings, in this tree:<br></p>
- <ul>
- <li>All non-overlapping regions form a strict tree rooted at
- World</li>
- <li>All leaf-nodes (country) are always at depth 4. Some of
- these “country” regions are actually parts of other
- countries, such as Hong Kong (part of China). Such
- relationships are not part of the containment data.</li>
- </ul>
- <p>For a chart showing the relationships (plus the included
- timezones), see the <a href=
- "https://unicode-org.github.io/cldr-staging/charts/38/supplemental/territory_containment_un_m_49.html">
- Territory Containment Chart</a>. The XML structure has the
- following form.</p>
- <pre><territoryContainment></pre>
- <blockquote>
- <pre>
- <group type="001" contains="002 009 019 142 150"/> <!--World -->
-<group type="011" contains="BF BJ CI CV GH GM GN GW LR ML MR NE NG SH SL SN TG"/> <!--Western Africa -->
-<group type="013" contains="BZ CR GT HN MX NI PA SV"/> <!--Central America -->
-<group type="014" contains="BI DJ ER ET KE KM MG MU MW MZ RE RW SC SO TZ UG YT ZM ZW"/> <!--Eastern Africa -->
-<group type="142" contains="030 035 062 145"/> <!--Asia -->
-<group type="145" contains="AE AM AZ BH CY GE IL IQ JO KW LB OM PS QA SA SY TR YE"/> <!--Western Asia -->
-<group type="015" contains="DZ EG EH LY MA SD TN"/> <!--Northern Africa -->
-...</pre>
- </blockquote>
- <p>There are groupings that don't follow this regular
- structure, such as:</p>
- <pre>
- <group type="003" contains="013 021 029" grouping="true"/> <!--North America --></pre>
- <p>These are marked with the attribute <span class=
- "attribute">grouping</span>="<span class=
- "attributeValue">true</span>".</p>
- <p>When groupings have been deprecated but kept around for
- backwards compatibility, they are marked with the attribute
- <span class="attribute">status</span>="<span class=
- "attributeValue">deprecated</span>", like this:</p>
- <pre>
- <group type="029" contains="AN" status="deprecated"/> <!--Caribbean --></pre>
- <p>When the containment relationship itself is a grouping, it
- is marked with the attribute <span class=
- "attribute">status</span>="<span class=
- "attributeValue">grouping</span>", like this:</p>
- <pre>
- <group type="150" contains="EU" status="grouping"/> <!--Europe --></pre>
- <p>That is, the type value isn’t a grouping, but if you filter
- out groupings you can drop this containment. In the example
- above, EU is a grouping, and contained in 150.</p>
- <h3>2.2 <a name="Subdivision_Containment" href=
- "#Subdivision_Containment" id=
- "Subdivision_Containment">Subdivision Containment</a></h3>
- <p class="dtd"><!ELEMENT subdivisionContainment ( subgroup*
- ) ><br>
- <br>
- <!ELEMENT subgroup EMPTY ><br>
- <!ATTLIST subgroup type NMTOKEN #REQUIRED ><br>
- <!ATTLIST subgroup contains NMTOKENS #IMPLIED ></p>
- <p>The subdivision containment data is similar to the territory
- containment. It is based on ISO 3166-2 data, but may diverge
- from it in the future.</p>
- <p class="xmlExample"><subgroup type="BD" contains="bda bdb
- bdc bdd bde bdf bdg bdh"/><br>
- <subgroup type="bda" contains="bd02 bd06 bd07 bd25 bd50
- bd51"/></p>
- <p>The <strong>type</strong> is a <code><a href=
- "tr35.html#unicode_region_subtag">unicode_region_subtag</a></code>
- (territory) identifier for the top level of containment, or a
- <code><a href=
- "tr35.html#unicode_subdivision_subtag">unicode_subdivision_id</a></code>
- for lower levels of containment when there are multiple levels.
- The <strong>contains</strong> value is a space-delimited list
- of one or more <code><a href=
- "tr35.html#unicode_subdivision_subtag">unicode_subdivision_id</a></code>
- values. In the example above, subdivision bda contains other
- subdivisions bd02, bd06, bd07, bd25, bd50, bd51.</p>
- <p>Note: Formerly (in CLDR 28 through 30):</p>
- <ul>
- <li>The <strong>type</strong> attribute could only contain a
- <code>unicode_region_subtag</code>;</li>
- <li>The <strong>contains</strong> attribute contained
- <code>unicode_subdivision_suffix</code> values; these are not
- unique across multiple territories, so...</li>
- <li>For lower containment levels, a now-deprecated subtype
- <strong>attribute</strong> was used to specify the parent
- <code>unicode_subdivision_suffix</code>.</li>
- </ul>* The type attribute contained only a
- <code>unicode_region_subtag</code>
- <code>unicode_subdivision_suffix</code> values were used in the
- <strong>contains</strong> attribute; these are not unique
- across multiple territories, so for lower levels a
- now-deprecated
- <h3>2.3 <a name="Supplemental_Territory_Information" href=
- "#Supplemental_Territory_Information" id=
- "Supplemental_Territory_Information">Supplemental Territory
- Information</a></h3>
- <p class="dtd"><!ELEMENT territory ( languagePopulation* )
- ><br>
- <!ATTLIST territory type NMTOKEN #REQUIRED ><br>
- <!ATTLIST territory gdp NMTOKEN #REQUIRED ><br>
- <!ATTLIST territory literacyPercent NMTOKEN #REQUIRED
- ><br>
- <!ATTLIST territory population NMTOKEN #REQUIRED ><br>
- <br>
- <!ELEMENT languagePopulation EMPTY ><br>
- <!ATTLIST languagePopulation type NMTOKEN #REQUIRED ><br>
- <!ATTLIST languagePopulation literacyPercent NMTOKEN
- #IMPLIED ><br>
- <!ATTLIST languagePopulation writingPercent NMTOKEN #IMPLIED
- ><br>
- <!ATTLIST languagePopulation populationPercent NMTOKEN
- #REQUIRED ><br>
- <!ATTLIST languagePopulation officialStatus
- (de_facto_official | official | official_regional |
- official_minority) #IMPLIED ></p>
- <p>This data provides testing information for language and
- territory populations. The main goal is to provide approximate
- figures for the literate, functional population for each
- language in each territory: that is, the population that is
- able to read and write each language, and is comfortable enough
- to use it with computers. For a chart of this data, see
- <a href='https://unicode-org.github.io/cldr-staging/charts/38/supplemental/territory_language_information.html'>
- Territory-Language Information</a>.</p>
- <p><em>Example</em></p>
- <pre style='font-size: 70%'>
- <territory type="AO" gdp="175500000000" literacyPercent="70.4" population="19088100"> <!--Angola-->
- <languagePopulation type="pt" populationPercent="67" officialStatus="official"/> <!--Portuguese-->
- <languagePopulation type="umb" populationPercent="29"/> <!--Umbundu-->
- <languagePopulation type="kmb" writingPercent="10" populationPercent="25" references="R1034"/> <!--Kimbundu-->
- <languagePopulation type="ln" populationPercent="0.67" references="R1010"/> <!--Lingala-->
-</territory></pre>
- <p>Note that reliable information is difficult to obtain; the
- information in CLDR is an estimate culled from different
- sources, including the World Bank, CIA Factbook, and others.
- The GDP and country literacy figures are taken from the World
- Bank where available, otherwise supplemented by FactBook data
- and other sources. The GDP figures are “PPP (constant 2000
- international $)”. Much of the per-language data is taken from
- the Ethnologue, but is supplemented and processed using many
- other sources, including per-country census data. (The focus of
- the Ethnologue is native speakers, which includes people who
- are not literate, and excludes people who are functional
- second-language users.) Some references are marked in the XML
- files, with attributes such as <code>references="R1010"</code>
- .</p>
- <p>The percentages may add up to more than 100% due to
- multilingual populations, or may be less than 100% due to
- illiteracy or because the data has not yet been gathered or
- processed. Languages with smaller populations might not be
- included.</p>
- <p>The following describes the meaning of some of these
- terms—as used in CLDR—in more detail.</p>
- <p><a name="literacy_percent" href="#literacy_percent" id=
- "literacy_percent">literacy percent for the
- territory</a> — an estimate of the percentage of the
- country’s population that is functionally literate.</p>
- <p><a name="language_population_percent" href=
- "#language_population_percent" id=
- "language_population_percent">language population
- percent</a> — an estimate of the number of people who are
- functional in that language in that country, including both
- first and second language speakers. The level of fluency is
- that necessary to use a UI on a computer, smartphone, or
- similar devices, rather than complete fluency.</p>
- <p><a name="literacy_percent_for_langPop" href=
- "#literacy_percent_for_langPop" id=
- "literacy_percent_for_langPop">literacy percent for language
- population</a> — Within the set of people who are
- functional in the corresponding language (as specified by
- <a href="#language_population_percent">language population
- percent</a>), this is an estimate of the percentage of those
- people who are functionally literate in that language, that is,
- who are <em>capable</em> of reading or writing in that
- language, even if they do not regularly use it for reading or
- writing. If not specified, this defaults to the <a href=
- "#literacy_percent">literacy percent for the territory</a>.</p>
- <p><a name="writing_percent" href="#writing_percent" id=
- "writing_percent">writing percent</a> — Within the set of
- people who are functional in the corresponding language (as
- specified by <a href="#language_population_percent">language
- population percent</a>), this is an estimate of the percentage
- of those people who regularly read or write a significant
- amount in that language. Ideally, the regularity would be
- measured as “7-day actives”. If it is known that the language
- is not widely or commonly written, but there are no solid
- figures, the value is typically given 1%-5%.</p>
- <p>For a language such as Swiss German, which is typically not
- written, even though nearly the whole native Germanophone
- population <em>could</em> write in Swiss German, the
- <a href="#literacy_percent_for_langPop">literacy percent for
- language population</a> is high, but the <a href=
- "#writing_percent">writing percent</a> is low.</p>
- <p><a name="official_language" href="#official_language" id=
- "official_language">official language</a> — as used in
- CLDR, a language that can generally be used in all
- communications with a central government. That is, people can
- expect that essentially all communication from the government
- is available in that language (ballots, information pamphlets,
- legal documents, …) and that they can use that language in any
- communication to the central government (petitions, forms,
- filing lawsuits,…).</p>
- <p>Official languages for a country in this sense are not
- necessarily the same as those with official legal status in the
- country. For example, Irish is declared to be an official
- language in Ireland, but English has no such formal status in
- the United States. Languages such as the latter are
- called <em>de facto</em> official languages. As
- another example, German has legal status in Italy, but cannot
- be used in all communications with the central government, and
- is thus not an official language <em>of Italy</em> for CLDR
- purposes. It is, however, an <em>official regional
- language</em>. Other languages are declared to be official, but
- can’t actually be used for all communication with any major
- governmental entity in the country. There is no intention to
- mark such nominally official languages as “official” in the
- CLDR data.</p>
- <p><a name="official_regional_language" href=
- "#official_regional_language" id=
- "official_regional_language">official regional
- language</a> — a language that is official (<em>de
- jure</em> or <em>de facto</em>) in a major region within a
- country, but does not qualify as an official language of the
- country as a whole. For example, it can be used in an official
- petition to a provincial government, but not the central
- government. The term “major” is meant to distinguish from
- smaller-scale usage, such as for a town or village.</p>
- <h3>2.4 <a name="Territory_Based_Preferences" href=
- "#Territory_Based_Preferences" id=
- "Territory_Based_Preferences">Territory-Based
- Preferences</a></h3>
- <p>The default preference for several locale items is based
- solely on a <a href=
- "tr35.html#unicode_region_subtag">unicode_region_subtag</a>,
- which may either be specified as part of a <a href=
- "tr35.html#unicode_language_id">unicode_language_id</a>,
- inferred from other locale ID elements using the <a href=
- "tr35.html#Likely_Subtags">Likely Subtags</a> mechanism, or
- provided explicitly using an “rg” <a href=
- "tr35.html#RegionOverride">Region Override</a> locale key. For
- more information on this process see <a href=
- "tr35.html#Locale_Inheritance">Locale Inheritance and
- Matching</a>. The specific items that are handled in this way
- are:</p>
- <ul>
- <li>Default calendar (see <a href=
- "tr35-dates.html#Calendar_Preference_Data">Calendar
- Preference Data</a>)</li>
- <li>Default week conventions (first day of week and weekend
- days; see <a href="tr35-dates.html#Week_Data">Week
- Data</a>)</li>
- <li>Default hour cycle (see <a href=
- "tr35-dates.html#Time_Data">Time Data</a>)</li>
- <li>Default currency (see <a href=
- "tr35-numbers.html#Supplemental_Currency_Data">Supplemental
- Currency Data</a>)</li>
- <li>Default measurement system and paper size (see <a href=
- "tr35-general.html#Measurement_System_Data">Measurement
- System Data</a>)</li>
- <li>Default units for specific usage (see <a href=
- "#Preferred_Units_For_Usage">Preferred Units for Specific
- Usages</a>, below)</li>
- </ul>
- <h4>2.4.1 <a name="Preferred_Units_For_Usage" href=
- "#Preferred_Units_For_Usage" id=
- "Preferred_Units_For_Usage">Preferred Units for Specific
- Usages</a></h4>
- <p><em>For information about preferred units and unit conversion, see Section 13 <a href="#Unit_Conversion" >Unit Conversion</a> and Section 14 <a href="#Unit_Preferences" >Unit Preferences</a>.</em></p>
- <h3>2.5 <a name="rgScope" href="#rgScope" id=
- "rgScope"><rgScope>: Scope of the “rg” Locale
- Key</a></h3>
- <p>The supplemental <rgScope> element specifies the data
- paths for which the region used for data lookup is determined
- by the value of any “rg” key present in the locale identifier
- (see <a href="tr35.html#RegionOverride">Region Override</a>).
- If no “rg” key is present, the region used for lookup is
- determined as usual: from the unicode_region_subtag if present,
- else inferred from the unicode_language_subtag. The DTD
- structure is as follows:</p>
- <p class="dtd"><!ELEMENT rgScope ( rgPath* ) ><br>
- <br>
- <!ELEMENT rgPath EMPTY ><br>
- <!ATTLIST rgPath path CDATA #REQUIRED ><br></p>
- <p>The <rgScope> element contains a list of
- <rgPath> elements, each of which specifies a datapath for
- which any “rg” key determines the region for lookup. For
- example:</p>
- <pre>
- <rgScope>
- <rgPath path="//supplementalData/currencyData/fractions/info[@iso4217='#'][@digits='*'][@rounding='*'][@cashDigits='*'][@cashRounding='*']" draft="provisional" />
- <rgPath path="//supplementalData/currencyData/fractions/info[@iso4217='#'][@digits='*'][@rounding='*'][@cashRounding='*']" draft="provisional" />
- <rgPath path="//supplementalData/currencyData/fractions/info[@iso4217='#'][@digits='*'][@rounding='*']" draft="provisional" />
- <rgPath path="//supplementalData/calendarPreferenceData/calendarPreference[@territories='#'][@ordering='*']" draft="provisional" />
- ...
- <rgPath path="//supplementalData/unitPreferenceData/unitPreferences[@category='*'][@usage='*'][@scope='*']/unitPreference[@regions='#'][@alt='*']" draft="provisional" />
- <rgPath path="//supplementalData/unitPreferenceData/unitPreferences[@category='*'][@usage='*'][@scope='*']/unitPreference[@regions='#']" draft="provisional" />
- <rgPath path="//supplementalData/unitPreferenceData/unitPreferences[@category='*'][@usage='*']/unitPreference[@regions='#'][@alt='*']" draft="provisional" />
- <rgPath path="//supplementalData/unitPreferenceData/unitPreferences[@category='*'][@usage='*']/unitPreference[@regions='#']" draft="provisional" />
- </rgScope>
-</pre>
- <p>The exact format of the path is provisional in CLDR 29, but
- as currently shown:</p>
- <ul>
- <li>An attribute value of '*' indicates that the path applies
- regardless of the value of the attribute.</li>
- <li>Each path must have exactly one attribute whose value is
- marked here as '#'; in actual data items with this path, the
- corresponding value is a list of region codes. It is the
- region codes in this list that are compared with the region
- specified by the “rg” key to determine which data item to use
- for this path.</li>
- </ul>
- <h2>3 <a name="Supplemental_Language_Data" href=
- "#Supplemental_Language_Data" id=
- "Supplemental_Language_Data">Supplemental Language
- Data</a></h2>
- <p class="dtd"><!ELEMENT languageData ( language* ) ><br>
- <!ELEMENT language EMPTY ><br>
- <!ATTLIST language type NMTOKEN #REQUIRED ><br>
- <!ATTLIST language scripts NMTOKENS #IMPLIED ><br>
- <!ATTLIST language territories NMTOKENS #IMPLIED ><br>
- <!ATTLIST language variants NMTOKENS #IMPLIED ><br>
- <!ATTLIST language alt NMTOKENS #IMPLIED ><br>
- </p>
- <p>The language data is used for consistency checking and
- testing. It provides a list of which languages are used with
- which scripts and in which countries. To a large extent,
- however, the territory list has been superseded by the data in
- <em>Section 2.2 <a href=
- "#Supplemental_Territory_Information">Supplemental Territory
- Information</a></em> .</p>
- <pre> <languageData>
- <language type="af" scripts="Latn" territories="ZA"/>
- <language type="am" scripts="Ethi" territories="ET"/>
- <language type="ar" scripts="Arab" territories="AE BH DZ EG IN IQ JO KW LB
-LY MA OM PS QA SA SD SY TN YE"/>
- ...</pre>
- <p>If the language is not a modern language, or the script is
- not a modern script, or the language not a major language of
- the territory, then the alt attribute is set to secondary.</p>
- <pre>
- <language type="fr" scripts="Latn" territories="IT US" alt="secondary" />
- ...</pre>
- <h2>3.1 <a name="Supplemental_Language_Grouping" href=
- "#Supplemental_Language_Grouping" id=
- "Supplemental_Language_Grouping">Supplemental Language
- Grouping</a></h2>
- <p><!ELEMENT languageGroups ( languageGroup* ) ><br>
- <!ELEMENT languageGroup ( #PCDATA ) ><br>
- <!ATTLIST languageGroup parent NMTOKEN #REQUIRED ></p>
- <p>The language groups supply language containment. For
- example, the following indicates that aav is the Unicode
- language code for a language group that contains caq, crv,
- etc.</p><code><languageGroup
- parent="<strong>fiu</strong>">chm et <strong>fi</strong> fit
- fkv hu izh kca koi krl kv liv mdf mns mrj myv smi udm vep vot
- vro</languageGroup></code>
- <p>The vast majority of the languageGroup data is extracted
- from wikidata, but may be overridden in some cases. The
- wikidata information is more fine-grained, but makes use of
- language groups that don't have ISO or Unicode language codes.
- Those language groups are omitted from the data. For example,
- wikidata has the following child-parent chain: only the first
- and last elements are present in the language groups.</p>
- <table>
- <tr>
- <td>Name</td>
- <td>Wikidata Code</td>
- <td>Language Code</td>
- </tr>
- <tr>
- <td>Finnish</td>
- <td><a href=
- "https://www.wikidata.org/wiki/Q1412">Q1412</a></td>
- <td>fi</td>
- </tr>
- <tr>
- <td>Finnic languages</td>
- <td><a href=
- "https://www.wikidata.org/wiki/Q33328">Q33328</a></td>
- </tr>
- <tr>
- <td>Finno-Samic languages</td>
- <td><a href=
- "https://www.wikidata.org/wiki/Q163652">Q163652</a></td>
- </tr>
- <tr>
- <td>Finno-Volgaic languages</td>
- <td><a href=
- "https://www.wikidata.org/wiki/Q161236">Q161236</a></td>
- </tr>
- <tr>
- <td>Finno-Permic languages</td>
- <td><a href=
- "https://www.wikidata.org/wiki/Q161240">Q161240</a></td>
- </tr>
- <tr>
- <td>Finno-Ugric languages</td>
- <td><a href=
- "https://www.wikidata.org/wiki/Q79890">Q79890</a></td>
- <td>fiu</td>
- </tr>
- </table><br>
- <h2>4 <a name="Supplemental_Code_Mapping" href=
- "#Supplemental_Code_Mapping" id=
- "Supplemental_Code_Mapping">Supplemental Code Mapping</a></h2>
- <p class="dtd"><!ELEMENT codeMappings (languageCodes*,
- territoryCodes*, currencyCodes*) ></p>
- <p class="dtd"><!ELEMENT languageCodes EMPTY ><br>
- <!ATTLIST languageCodes type NMTOKEN #REQUIRED><br>
- <!ATTLIST languageCodes alpha3 NMTOKEN #REQUIRED></p>
- <p class="dtd"><!ELEMENT territoryCodes EMPTY ><br>
- <!ATTLIST territoryCodes type NMTOKEN #REQUIRED><br>
- <!ATTLIST territoryCodes numeric NMTOKEN #REQUIRED><br>
- <!ATTLIST territoryCodes alpha3 NMTOKEN #REQUIRED><br>
- <!ATTLIST territoryCodes fips10 NMTOKEN #IMPLIED><br>
- <!ATTLIST territoryCodes internet NMTOKENS #IMPLIED>
- [deprecated]</p>
- <p class="dtd"><!ELEMENT currencyCodes EMPTY ><br>
- <!ATTLIST currencyCodes type NMTOKEN #REQUIRED><br>
- <!ATTLIST currencyCodes numeric NMTOKEN #REQUIRED></p>
- <p>The code mapping information provides mappings between the
- subtags used in the CLDR locale IDs (from BCP 47) and other
- coding systems or related information. The language codes are
- only provided for those codes that have two letters in BCP 47
- to their ISO three-letter equivalents. The territory codes
- provide mappings to numeric (UN M.49 [<a href=
- "tr35.html#UNM49">UNM49</a>] codes, equivalent to ISO numeric
- codes), ISO three-letter codes, FIPS 10 codes, and the internet
- top-level domain codes.</p>
- <p>The alphabetic codes are only provided where different from
- the type. For example:</p>
- <pre>
- <territoryCodes type="AA" numeric="958" alpha3="AAA"/>
-<territoryCodes type="AD" numeric="020" alpha3="AND" fips10="AN"/>
-<territoryCodes type="AE" numeric="784" alpha3="ARE"/>
-...
-<territoryCodes type="GB" numeric="826" alpha3="GBR" fips10="UK"/>
-...
-<territoryCodes type="QU" numeric="967" alpha3="QUU" internet="EU"/>
-...
-<territoryCodes type="XK" numeric="983" alpha3="XKK"/>
-...</pre>
- <p>Where there is no corresponding code, sometimes private use
- codes are used, such as the numeric code for XK.</p>
- <p>The currencyCodes are mappings from three letter currency
- codes to numeric values (ISO 4217 <a href=
- "https://www.currency-iso.org/en/home/tables/table-a1.html">Current
- currency & funds code list</a>.) The mapping currently
- covers only current codes and does not include historic
- currencies. For example:</p>
- <pre>
-<currencyCodes type="AED" numeric="784"/>
-<currencyCodes type="AFN" numeric="971"/>
-...
-<currencyCodes type="EUR" numeric="978"/>
-...
-<currencyCodes type="ZAR" numeric="710"/>
-<currencyCodes type="ZMW" numeric="967"/>
-</pre>
- <h2>5 <a name="Telephone_Code_Data" href="#Telephone_Code_Data"
- id="Telephone_Code_Data">Telephone Code Data</a>
- (Deprecated)</h2>
- <p>Deprecated in CLDR v34, and data removed.</p>
- <p class="dtd"><!ELEMENT telephoneCodeData (
- codesByTerritory* ) ><br>
- <br>
- <!ELEMENT codesByTerritory ( telephoneCountryCode+ )
- ><br>
- <!ATTLIST codesByTerritory territory NMTOKEN #REQUIRED
- ><br>
- <br>
- <!ELEMENT telephoneCountryCode EMPTY ><br>
- <!ATTLIST telephoneCountryCode code NMTOKEN #REQUIRED
- ><br>
- <!ATTLIST telephoneCountryCode from NMTOKEN #IMPLIED
- ><br>
- <!ATTLIST telephoneCountryCode to NMTOKEN #IMPLIED ></p>
- <p>This data specifies the mapping between ITU telephone
- country codes [<a href="tr35.html#ITUE164">ITUE164</a>] and
- CLDR-style territory codes (ISO 3166 2-letter codes or
- non-corresponding UN M.49 [<a href="tr35.html#UNM49">UNM49</a>]
- 3-digit codes). There are several things to note:</p>
- <ul>
- <li>A given telephone country code may map to multiple CLDR
- territory codes; +1 (North America Numbering Plan) covers the
- US and Canada, as well as many islands in the Caribbean and
- some in the Pacific</li>
- <li>Some telephone country codes are for global services (for
- example, some satellite services), and thus correspond to
- territory code 001.</li>
- <li>The mappings change over time (territories move from one
- telephone code to another). These changes are usually planned
- several years in advance, and there may be a period during
- which either telephone code can be used to reach the
- territory. While the CLDR telephone code data is not intended
- to include past changes, it is intended to incorporate known
- information on planned future changes, using "from" and "to"
- date attributes to indicate when mappings are valid.</li>
- </ul>
- <p>A subset of the telephone code data might look like the
- following (showing a past mapping change to illustrate the from
- and to attributes):</p>
- <pre><codesByTerritory territory="001">
- <telephoneCountryCode code="800"/> <!-- International Freephone Service -->
- <telephoneCountryCode code="808"/> <!-- International Shared Cost Services (ISCS) -->
- <telephoneCountryCode code="870"/> <!-- Inmarsat Single Number Access Service (SNAC) -->
-</codesByTerritory>
-<codesByTerritory territory="AS"> <!-- American Samoa -->
- <telephoneCountryCode code="1" from="2004-10-02"/> <!-- +1 684 in North America Numbering Plan -->
- <telephoneCountryCode code="684" to="2005-04-02"/> <!-- +684 now a spare code -->
-</codesByTerritory>
-<codesByTerritory territory="CA">
- <telephoneCountryCode code="1"/> <!-- North America Numbering Plan -->
-</codesByTerritory></pre>
- <h2>6 <a name="Postal_Code_Validation" href=
- "#Postal_Code_Validation" id="Postal_Code_Validation">Postal
- Code Validation (Deprecated)</a></h2>
- <p>Deprecated in v27. Please see other services that are kept
- up to date, such as:</p>
- <ul>
- <li><a href=
- "https://i18napis.appspot.com/address/data/US">https://i18napis.appspot.com/address/data/US</a></li>
- <li><a href=
- "https://i18napis.appspot.com/address/data/CH">https://i18napis.appspot.com/address/data/CH</a></li>
- <li>...<br></li>
- </ul>
- <p class="dtd"><!ELEMENT postalCodeData (postCodeRegex*)
- ><br>
- <!ELEMENT postCodeRegex (#PCDATA) ><br>
- <!ATTLIST postCodeRegex territoryId NMTOKEN
- #REQUIRED><br></p>
- <p>The Postal Code regex information can be used to validate
- postal codes used in different countries. In some cases, the
- regex is quite simple, such as for Germany:</p>
- <pre>
- <postCodeRegex territoryId="DE" >\d{5}</postCodeRegex></pre>
- <p>The US code is slightly more complicated, since there is an
- optional portion:</p>
- <pre>
- <postCodeRegex territoryId="US" >\d{5}([ \-]\d{4})?</postCodeRegex></pre>
- <p>The most complicated currently is the UK.</p>
- <h2>7 <a name="Supplemental_Character_Fallback_Data" href=
- "#Supplemental_Character_Fallback_Data" id=
- "Supplemental_Character_Fallback_Data">Supplemental Character
- Fallback Data</a></h2>
- <p class="dtd"><!ELEMENT characters ( character-fallback*)
- ><br>
- <br>
- <!ELEMENT character-fallback ( character* ) ><br>
- <!ELEMENT character (substitute*) ><br>
- <!ATTLIST character value CDATA #REQUIRED ><br>
- <br>
- <!ELEMENT substitute (#PCDATA) ></p>
- <p>The characters element provides a way for non-Unicode
- systems, or systems that only support a subset of Unicode
- characters, to transform CLDR data. It gives a list of
- characters with alternative values that can be used if the main
- value is not available. For example:</p>
- <pre><characters>
- <character-fallback>
- <character value = "ß">
- <substitute>ss</substitute>
- </character>
- <character value = "Ø">
- <substitute>Ö</substitute>
- <substitute>O</substitute>
- </character>
- <character value = "<span style=
-"font-size: 150%">₧</span>">
- <substitute>Pts</substitute>
- </character>
- <character value = "<span style=
-"font-size: 150%">₣</span>">
- <substitute>Fr.</substitute>
- </character>
- </character-fallback>
-</characters></pre>
- <p>The ordering of the substitute elements indicates the
- preference among them.</p>That is, this data provides
- recommended fallbacks for use when a charset or supported
- repertoire does not contain a desired character. There is more
- than one possible fallback: the recommended usage is that when
- a character <i>value</i> is not in the desired repertoire the
- following process is used, whereby the first value that is
- wholly in the desired repertoire is used.
- <ul>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">
- <code>toNFC</code>(<i>value</i>)</li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">other
- canonically equivalent sequences, if there are any</li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">the
- explicit <i>substitutes</i> value (in order)</li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">
- <code>toNFKC</code>(<i>value</i>)</li>
- </ul>
- <h2>8 <a name="Coverage_Levels" href="#Coverage_Levels" id=
- "Coverage_Levels">Coverage Levels</a></h2>
- <p>The following describes the coverage levels used for the
- current version of CLDR. This list will change between releases
- of CLDR. Each level adds to what is in the lower level.</p>
- <table border="1" cellpadding="0" cellspacing="1">
- <!-- nocaption -->
- <tr>
- <th nowrap>
- <div align="right">
- Level
- </div>
- </th>
- <th colspan="2">Description</th>
- </tr>
- <tr>
- <td nowrap>
- <div align="right">
- 0
- </div>
- </td>
- <td>undetermined</td>
- <td>Does not meet any of the following levels.</td>
- </tr>
- <tr>
- <td nowrap>
- <div align="right">
- 10
- </div>
- </td>
- <td>core</td>
- <td>The CLDR "core" data, which is defined as the basic
- information about the language and writing system that is
- required before other information can be added using the
- CLDR survey tool. See <a href=
- "http://cldr.unicode.org/index/cldr-spec/minimaldata">http://cldr.unicode.org/index/cldr-spec/minimaldata</a></td>
- </tr>
- <tr>
- <td nowrap>
- <div align="right">
- 40
- </div>
- </td>
- <td>basic</td>
- <td>The minimum amount of locale data deemed necessary to
- create a "viable" locale in CLDR. Contains names for the
- languages, scripts, and territories associated with the
- language, numbering systems used in those languages, date
- and number formats, plus a few key values such as the
- values in Section 3.1 <a href=
- "tr35.html#Unknown_or_Invalid_Identifiers">Unknown or
- Invalid Identifiers</a>. Also contains data associated with
- the most prominent languages and countries.</td>
- </tr>
- <tr>
- <td nowrap>
- <div align="right">
- 60
- </div>
- </td>
- <td>moderate</td>
- <td>Contains more types of data and more language and
- territory names than the basic level. If the language is
- associated with an EU country, then the moderate level
- attempts to complete the data as it pertains to all EU
- member countries.</td>
- </tr>
- <tr>
- <td nowrap>
- <div align="right">
- 80
- </div>
- </td>
- <td>modern</td>
- <td>Contains all fields in normal modern use, including all
- country names, and currencies in use.</td>
- </tr>
- <tr>
- <td nowrap>
- <div align="right">
- 100
- </div>
- </td>
- <td>comprehensive</td>
- <td>Contains complete localizations (or valid inheritance)
- for every possible field.</td>
- </tr>
- </table>
- <p>Levels 40 through 80 are based on the definitions and
- specifications listed in <strong>8.1-8.4</strong>. However,
- these principles are continually being refined by the CLDR
- technical committee, and so do not completely reflect the data
- that is actually used for coverage determination, which is
- under the XPath
- <strong>//supplementalData/CoverageLevels</strong>. For a view
- of the trunk version of this data<strike>file</strike>, see
- <a href=
- "https://github.com/unicode-org/cldr/releases/tag/latest/common/supplemental/coverageLevels.xml">
- coverageLevels.xml</a>. (As described in the <a href=
- "tr35-info.html#Supplemental_Data">introduction to Supplemental
- Data</a>, the specific XML filename may change.)</p>
- <p class="dtd"><!ELEMENT coverageLevels (
- approvalRequirements, coverageVariable*, coverageLevel* )
- ><br>
- <!ELEMENT coverageLevel EMPTY ><br>
- <!ATTLIST coverageLevel inLanguage CDATA #IMPLIED ><br>
- <!ATTLIST coverageLevel inScript CDATA #IMPLIED ><br>
- <!ATTLIST coverageLevel inTerritory CDATA #IMPLIED ><br>
- <!ATTLIST coverageLevel value CDATA #REQUIRED ><br>
- <!ATTLIST coverageLevel match CDATA #REQUIRED ></p>
- <p>For example, here is an example coverageLevel line.</p>
- <pre><coverageLevel<br> value="30"
- inLanguage="(de|fi)" <br> match="localeDisplayNames/types/type[@type='phonebook'][@key='collation']"/></pre>
- <p>The coverageLevel elements are read in order, and the first
- match results in a coverage level value. The element matches
- based on the <span class="attribute">inLanguage</span>,
- <span class="attribute">inScript</span>, <span class=
- "attribute">inTerritory</span>, and <span class=
- "attribute">match</span> attribute values, which are regular
- expressions. For example, in the above example, a match occurs
- if the language is de or fi, and if the path is a locale
- display name for collation=phonebook.</p>
- <p>The <span class="attribute">match</span> attribute value
- logically has "//ldml/" prefixed before it is applied. In
- addition, the "[@" is automatically quoted. Otherwise standard
- Perl/Java style regular expression syntax is used.</p>
- <p class="dtd"><!ELEMENT coverageVariable EMPTY ><br>
- <!ATTLIST coverageVariable key CDATA #REQUIRED ><br>
- <!ATTLIST coverageVariable value CDATA #REQUIRED ></p>
- <p>The coverageVariable element allows us to create variables
- for certain regular expressions that are used frequently in the
- coverageLevel definitions above. Each coverage varible must
- contain a key / value pair of attributes, which can then be
- used to be substituted into a coverageLevel definition
- above.</p>
- <p>For example, here is an example coverageLevel line using
- coverageVariable substitution.</p>
- <pre>
- <coverageVariable key="%dayTypes" value="(sun|mon|tue|wed|thu|fri|sat)"><br>
-<coverageVariable key="%wideAbbr" value="(wide|abbreviated)"><br>
-<coverageLevel value="20" match="dates/calendars/calendar[@type='gregorian']/days/dayContext[@type='format']/dayWidth[@type='%wideAbbr']/day[@type='%dayTypes']"/></pre>
- <p>In this example, the coverge variables %dayTypes and
- %wideAbbr are used to substitute their respective values into
- the match expression. This allows us to reuse the same variable
- for other coverageLevel matches that use the same regular
- expression fragment.</p>
- <p class="dtd"><br>
- <!ELEMENT approvalRequirements ( approvalRequirement* )
- ><br>
- <!ELEMENT approvalRequirement EMPTY ><br>
- <!ATTLIST approvalRequirement votes CDATA #REQUIRED><br>
- <!ATTLIST approvalRequirement locales CDATA
- #REQUIRED><br>
- <!ATTLIST approvalRequirement paths CDATA
- #REQUIRED><br></p>
- <p>The approvalRequirements allows to specify the number of
- survey tool votes required for approval, either based on
- locale, or path, or both. Certain locales require a higher
- voting threshhold (usually 8 votes instead of 4), in order to
- promote greater stability in the data. Furthermore, certain
- fields that are very high visibility fields, such as number
- formats, require a CLDR TC committee member's vote for
- approval.</p>
- <p>Here is an example of the approvalRequirements section.</p>
- <pre>
- <approvalRequirements><br> <!-- "high bar" items -->
- <approvalRequirement votes="20" locales="*" paths="//ldml/numbers/symbols[^/]++/(decimal|group)"/>
- <!-- established locales - http://cldr.unicode.org/index/process#TOC-Draft-Status-of-Optimal-Field-Value -->
- <approvalRequirement votes="8" locales="ar ca cs da de el es fi fr he hi hr hu it ja ko nb nl pl pt pt_PT ro ru sk sl sr sv th tr uk vi zh zh_Hant" paths=""/>
- <!-- all other items -->
- <approvalRequirement votes="4" locales="*" paths=""/><br></approvalRequirements> </pre>
- <p>This section specifies that a TC vote (20 votes) is required
- for decimal and grouping separators. Furthermore it specifies
- that any field in the established locales list (i.e. ar, ca,
- cs, etc.) requires 8 votes, and that all other locales require
- 4 votes only.</p>
- <p>For more information on the CLDR Voting process, See
- <a href="http://cldr.unicode.org/index/process">http://cldr.unicode.org/index/process</a></p>
- <h3>8.1 <a name="Coverage_Level_Definitions" href=
- "#Coverage_Level_Definitions" id=
- "Coverage_Level_Definitions">Definitions</a></h3>
- <ul>
- <li><i>Target-Language</i> is the language under
- consideration.</li>
- <li><i>Target-Territories</i> is the list of territories
- found by looking up <i>Target-Language</i> in the
- <languageData> elements in <a href=
- "tr35-info.html#Supplemental_Language_Data">Supplemental
- Language Data</a>.</li>
- <li>
- <i>Language-List</i> is <i>Target-Language</i>, plus
- <ul>
- <li><b>basic:</b> Chinese, English, French, German,
- Italian, Japanese, Portuguese, Russian, Spanish, Unknown
- (de, en, es, fr, it, ja, pt, ru, zh, und</li>
- <li><b>moderate:</b> basic + Arabic, Hindi, Korean,
- Indonesian, Dutch, Bengali, Turkish, Thai, Polish (ar,
- hi, ko, in, nl, bn, tr, th, pl). If an EU language, add
- the remaining official EU languages, currently: Danish,
- Greek, Finnish, Swedish, Czech, Estonian, Latvian,
- Lithuanian, Hungarian, Maltese, Slovak, Slovene (da, el,
- fi, sv, cs, et, lv, lt, hu, mt, sk, sl)</li>
- <li><b>modern:</b> all languages that are official or
- major commercial languages of modern territories</li>
- </ul>
- </li>
- <li><i>Target-Scripts</i> is the list of scripts in which
- <i>Target-Language</i> can be customarily written (found by
- looking up <i>Target-Language</i> in the <languageData>
- elements in <a href=
- "tr35-info.html#Supplemental_Language_Data">Supplemental
- Language Data</a>.)<i>,</i> plus Unknown (Zzzz)<i>.</i></li>
- <li>
- <i>Script-List</i> is the <i>Target-Scripts</i> plus the
- major scripts used for multiple languages
- <ul>
- <li>Latin, Simplified Chinese, Traditional Chinese,
- Cyrillic, Arabic (Latn, Hans, Hant, Cyrl, Arab)</li>
- </ul>
- </li>
- <li>
- <i>Territory-List</i> is the list of territories formed by
- taking the <i>Target-Territories</i> and adding:
- <ul>
- <li><b>basic:</b> Brazil, China, France, Germany, India,
- Italy, Japan, Russia, United Kingdom, United States,
- Unknown (BR, CN, DE, GB, FR, IN, IT, JP, RU, US, ZZ)</li>
- <li><b>moderate:</b> basic + Spain, Canada, Korea,
- Mexico, Australia, Netherlands, Switzerland, Belgium,
- Sweden, Turkey, Austria, Indonesia, Saudi Arabia, Norway,
- Denmark, Poland, South Africa, Greece, Finland, Ireland,
- Portugal, Thailand, Hong Kong SAR China, Taiwan (ES, BE,
- SE, TR, AT, ID, SA, NO, DK, PL, ZA, GR, FI, IE, PT, TH,
- HK, TW). If an EU language, add the remaining member EU
- countries: Luxembourg, Czech Republic, Hungary, Estonia,
- Lithuania, Latvia, Slovenia, Slovakia, Malta (LU, CZ, HU,
- ES, LT, LV, SI, SK, MT).</li>
- <li><b>modern:</b> all current ISO 3166 territories, plus
- the UN M.49 [<a href="tr35.html#UNM49">UNM49</a>] regions
- in <a href=
- "tr35-info.html#Supplemental_Territory_Containment">Supplemental
- Territory Containment</a>.</li>
- </ul>
- </li>
- <li><i>Currency-List</i> is the list of current official
- currencies used in any of the territories in
- <i>Territory-List</i>, found by looking at the region
- elements in <a href=
- "tr35-info.html#Supplemental_Territory_Containment">Supplemental
- Territory Containment</a>, plus Unknown (XXX).</li>
- <li><i>Calendar-List</i> is the set of calendars in customary
- use in any of <i>Target-Territories</i>, plus Gregorian.</li>
- <li><em>Number-System-List</em> is the set of number systems
- in customary use in the language.</li>
- </ul>
- <h3>8.2 <a name="Coverage_Level_Data_Requirements" href=
- "#Coverage_Level_Data_Requirements" id=
- "Coverage_Level_Data_Requirements">Data Requirements</a></h3>
- <p>The required data to qualify for the level is then the
- following.</p>
- <ol>
- <li>localeDisplayNames
- <ol>
- <li><i>languages:</i> localized names for all languages
- in <i>Language-List.</i></li>
- <li><i>scripts:</i> localized names for all scripts in
- <i>Script-List</i>.</li>
- <li><i>territories:</i> localized names for all
- territories in <i>Territory-List</i>.</li>
- <li><i>variants, keys, types:</i> localized names for any
- in use in <i>Target-Territories</i>; for example, a
- translation for PHONEBOOK in a German locale.</li>
- </ol>
- </li>
- <li>dates: all of the following for each calendar in
- <i>Calendar-List</i>.
- <ol>
- <li>calendars: localized names</li>
- <li>month names, day names, era names, and quarter names
- <ul>
- <li>context=format and width=narrow, wide, &
- abbreviated</li>
- <li>plus context=standAlone and width=narrow, wide,
- & abbreviated, <i>if the grammatical forms of
- these are different than for context=format.</i></li>
- </ul>
- </li>
- <li>week: minDays, firstDay, weekendStart, weekendEnd
- <ul>
- <li>if some of these vary in territories in
- <i>Territory-List</i>, include territory locales for
- those that do.</li>
- </ul>
- </li>
- <li>am, pm, eraNames, eraAbbr</li>
- <li>dateFormat, timeFormat: full, long, medium,
- short</li>
- <li>
- <p>intervalFormatFallback</p>
- </li>
- </ol>
- </li>
- <li>numbers: symbols, decimalFormats, scientificFormats,
- percentFormats, currencyFormats for each number system in
- <em>Number-System-List</em>.</li>
- <li>currencies: displayNames and symbol for all currencies in
- <i>Currency-List</i>, for all plural forms</li>
- <li>transforms: (moderate and above) transliteration between
- Latin and each other script in <i>Target-Scripts.</i></li>
- </ol>
- <h3>8.3 <a name="Coverage_Level_Default_Values" href=
- "#Coverage_Level_Default_Values" id=
- "Coverage_Level_Default_Values">Default Values</a></h3>
- <p>Items should <i>only</i> be included if they are not the
- same as the default, which is:</p>
- <ul>
- <li>what is in root, if there is something defined
- there.</li>
- <li>for timezone IDs: the name computed according to
- <i><a href="tr35.html#Time_Zone_Fallback">Appendix J: Time
- Zone Display Names</a></i></li>
- <li>for collation sequence, the UCA DUCET (Default Unicode
- Collation Element Table), as modified by CLDR.
- <ul>
- <li>however, in that case the locale must be added to the
- validSubLocale list in <a href=
- "https://github.com/unicode-org/cldr/blob/master/common/collation/root.xml">collation/root.xml</a>.</li>
- </ul>
- </li>
- <li>for currency symbol, language, territory, script names,
- variants, keys, types, the internal code identifiers, for
- example,
- <ul>
- <li>currencies: EUR, USD, JPY, ...</li>
- <li>languages: en, ja, ru, ...</li>
- <li>territories: GB, JP, FR, ...</li>
- <li>scripts: Latn, Thai, ...</li>
- <li>variants: PHONEBOOK,...</li>
- </ul>
- </li>
- </ul><!-- end section 8 -->
- <!-- begin section 9 supplemental metadata -->
- <h2>9 <a name="Appendix_Supplemental_Metadata" href=
- "#Appendix_Supplemental_Metadata" id=
- "Appendix_Supplemental_Metadata">Supplemental Metadata</a></h2>
- <p>Note that this section discusses the
- <code><metadata></code> element within the
- <code><supplementalData></code> element. For the
- per-locale metadata used in tests and the Survey Tool, see
- <a href="#Metadata_Elements">10: Locale Metadata
- Element</a>.</p>
- <p>The supplemental metadata contains information about the
- CLDR file itself, used to test validity and provide information
- for locale inheritance. A number of these elements are
- described in</p>
- <ul class="toc">
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">Appendix
- I: <a href="tr35.html#Inheritance_and_Validity">Inheritance
- and Validity</a></li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">Appendix
- K: <a href="tr35.html#Valid_Attribute_Values">Valid Attribute
- Values</a></li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">Appendix
- L: <a href="tr35.html#Canonical_Form">Canonical Form</a></li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">Appendix
- M: <a href="#Coverage_Levels">Coverage Levels</a></li>
- </ul>
- <h3>9.1 <a name="Supplemental_Alias_Information" href=
- "#Supplemental_Alias_Information" id=
- "Supplemental_Alias_Information">Supplemental Alias
- Information</a></h3>
- <p class="dtd"><!ELEMENT alias
- (languageAlias*,scriptAlias*,territoryAlias*,subdivisionAlias*,variantAlias*,zoneAlias*)
- ><br>
- <br>
- <em>The following are common attributes for subelements of
- <alias>:</em><br>
- <!ELEMENT *Alias EMPTY ><br>
- <!ATTLIST *Alias type NMTOKEN #IMPLIED ><br>
- <!ATTLIST *Alias replacement NMTOKEN #IMPLIED ><br>
- <!ATTLIST *Alias reason ( deprecated | overlong )
- #IMPLIED><br>
- <br>
- <em>The languageAlias has additional reasons</em><br>
- <!ATTLIST languageAlias reason ( deprecated | overlong |
- macrolanguage | legacy | bibliographic ) #IMPLIED></p>
- <p>This element provides information as to parts of locale IDs
- that should be substituted when accessing CLDR data. This
- logical substitution should be done to both the locale id, and
- to any lookup for display names of languages, territories, and
- so on. The replacement for the language and territory types is
- more complicated: see <em>Part 1: <a href=
- "tr35.html#Contents">Core</a>, Section 3.3.1 <a href=
- "tr35.html#BCP_47_Language_Tag_Conversion">BCP 47 Language Tag
- Conversion</a></em> for details.</p>
- <pre><alias>
- <languageAlias type="in" replacement="id">
- <languageAlias type="sh" replacement="sr">
- <languageAlias type="sh_YU" replacement="sr_Latn_YU">
-...
- <territoryAlias type="BU" replacement="MM">
-...
-</alias></pre>
- <p>Attribute values for the *Alias values include the
- following:</p>
- <table>
- <caption>
- <a name="Alias_Attribute_Values" href=
- "#Alias_Attribute_Values" id="Alias_Attribute_Values">Alias
- Attribute Values</a>
- </caption>
- <tr>
- <th scope="col">Attribute</th>
- <th scope="col">Value</th>
- <th scope="col">Description</th>
- </tr>
- <tr>
- <td>type</td>
- <td>NMTOKEN</td>
- <td>The code to be replaced</td>
- </tr>
- <tr>
- <td>replacement</td>
- <td>NMTOKEN</td>
- <td>The code(s) to replace it, space-delimited.</td>
- </tr>
- <tr>
- <td rowspan="5">reason</td>
- <td>deprecated</td>
- <td>The code in type is deprecated, such as 'iw' by 'he',
- or 'CS' by 'RS ME'.</td>
- </tr>
- <tr>
- <td>overlong</td>
- <td>The code in type is too long, such as 'eng' by 'en' or
- 'USA' or '840' by 'US'</td>
- </tr>
- <tr>
- <td>macrolanguage</td>
- <td>The code in type is an encompassed languagethat is
- replaced by a macrolanguage, such as '<a href=
- "https://www.sil.org/iso639-3/documentation.asp?id=arb">arb'</a>
- by 'ar'.</td>
- </tr>
- <tr>
- <td>legacy</td>
- <td>The code in type is a legacy code that is replaced by
- another code for compatiblity with established legacy
- usage, such as 'sh' by 'sr_Latn'</td>
- </tr>
- <tr>
- <td>bibliographic</td>
- <td>The code in type is a <a href=
- "https://www.loc.gov/standards/iso639-2/langhome.html">bibliographic
- code</a>, which is replaced by a terminology code, such as
- 'alb' by 'sq'.</td>
- </tr>
- </table>
- <h3>9.2 <a name="Supplemental_Deprecated_Information" href=
- "#Supplemental_Deprecated_Information" id=
- "Supplemental_Deprecated_Information">Supplemental Deprecated
- Information (Deprecated)</a></h3>
- <pre class="dtd">
- <!ELEMENT deprecated ( deprecatedItems* ) >
-<!ATTLIST deprecated draft ( approved | contributed | provisional | unconfirmed | true | false ) #IMPLIED > <!-- true and false are deprecated. -->
-
-<!ELEMENT deprecatedItems EMPTY >
-<!ATTLIST deprecatedItems type ( standard | supplemental | ldml | supplementalData | ldmlBCP47 ) #IMPLIED > <!-- standard | supplemental are deprecated -->
-<!ATTLIST deprecatedItems elements NMTOKENS #IMPLIED >
-<!ATTLIST deprecatedItems attributes NMTOKENS #IMPLIED >
-<!ATTLIST deprecatedItems values CDATA #IMPLIED ></pre>
- <p>The deprecated items element was used to indicate elements,
- attributes, and attribute values that are deprecated. This
- means that the items are valid, but that their usage is
- strongly discouraged. This element and its subelements have
- been deprecated in favor of <a href=
- "tr35.html#DTD_Annotations">DTD Annotations</a>.</p>
- <p>Where particular values are deprecated (such as territory
- codes like SU for Soviet Union), the names for such codes may
- be removed from the common/main translated data after some
- period of time. However, typically supplemental information for
- deprecated codes is retained, such as containment, likely
- subtags, older currency codes usage, etc. The English name may
- also be retained, for debugging purposes.</p>
- <h3>9.3 <a name="Default_Content" href="#Default_Content" id=
- "Default_Content">Default Content</a></h3>
- <pre class="dtd"><!ELEMENT defaultContent EMPTY >
- <!ATTLIST defaultContent locales NMTOKENS #IMPLIED ></pre>
- <p>In CLDR, locales without territory information (or where
- needed, script information) provide data appropriate for what
- is called the <i>default content locale</i>. For example, the
- <i>en</i> locale contains data appropriate for <i>en-US</i>,
- while the <i>zh</i> locale contains content for
- <i>zh-Hans-CN</i>, and the <i>zh-Hant</i> locale contains
- content for <i>zh-Hant-TW</i>. The default content locales
- themselves thus inherit all of their contents, and are
- empty.</p>
- <p>The choice of content is typically based on the largest
- literate population of the possible choices. Thus if an
- implementation only provides the base language (such as
- <i>en</i>), it will still get a complete and consistent set of
- data appropriate for a locale which is reasonably likely to be
- the one meant. Where other information is available, such as
- independent country information, that information can always be
- used to pick a different locale (such as <i>en-CA</i> for a
- website targeted at Canadian users).</p>
- <p>If an implementation is to use a different default locale,
- then the data needs to be <i>pivoted</i>; all of the data from
- the CLDR for the current default locale pushed out to the
- locales that inherit from it, then the new default content
- locale's data moved into the base. There are tools in CLDR to
- perform this operation.</p>
- <p>For the relationship between <span>Inheritance,
- DefaultContent, LikelySubtags, and LocaleMatching, see
- <strong><em>Section 4.2.6 <a href=
- "tr35.html#Inheritance_vs_Related">Inheritance vs Related
- Information</a></em></strong>.</span></p>
- <!-- end section 9 supp metadata -->
- <!-- begin section 10 the metadata element -->
- <h2>10 <a name="Metadata_Elements" href="#Metadata_Elements"
- id="Metadata_Elements">Locale Metadata
- Element<strike>s</strike></a></h2>
- <p>Note: This section refers to the per-locale
- <code><metadata></code> element, containing metadata
- about a particular locale. This is in contrast to the <a href=
- "#Appendix_Supplemental_Metadata"><em>Supplemental</em>
- Metadata</a>, which is in the supplemental tree and is not
- specific to a locale.</p>
- <p class="dtd"><!ELEMENT metadata ( alias | ( casingData?,
- special* ) ) ><br>
- <!ELEMENT casingData ( alias | ( casingItem*, special* ) )
- ><br>
- <!ELEMENT casingItem ( #PCDATA ) ><br>
- <!ATTLIST casingItem type CDATA #REQUIRED ><br>
- <!ATTLIST casingItem override (true | false) #IMPLIED
- ><br>
- <!ATTLIST casingItem forceError (true | false) #IMPLIED
- ><br></p>
- <p>The <metadata> element contains metadata about the
- locale for use by the Survey Tool or other tools in checking
- locale data; this data is not intended for export as part of
- the locale itself.</p>
- <p>The <casingItem> element specifies the capitalization
- intended for the majority of the data in a given category with
- the locale. The purpose is so that warnings can be issued to
- translators that anything deviating from that capitalization
- should be carefully reviewed. Its type attribute has one of the
- values used for the <contextTransformUsage> element
- above, with the exception of the special value "all"; its value
- is one of the following:</p>
- <ul>
- <li>lowercase</li>
- <li>titlecase</li>
- </ul>
- <p>The <casingItem> data is generated by a tool based on
- the data available in CLDR. In cases where the generated casing
- information is incorrect and needs to be manually edited, the
- override attribute is set to "true" so that the tool will not
- override the manual edits. When the casing information is known
- to be both correct and something that should apply to all
- elements of the specified type in a given locale, the forceErr
- attribute may be set to "true" to force an error instead of a
- warning for items that do not match the casing information.</p>
- <!-- end section Info-A metadta element -->
- <!-- begin section 11 Version Information -->
- <h2>11 <a name="Version_Information" href=
- "#Version_Information" id="Version_Information">Version
- Information</a></h2>
- <p class="dtd"><!ELEMENT version EMPTY ><br>
- <!ATTLIST version cldrVersion CDATA #FIXED "27" ><br>
- <!ATTLIST version unicodeVersion CDATA #FIXED "7.0.0"
- ><br></p>
- <p>The <cldrVersion> attribute defines the CLDR version
- for this data, as published on <a href=
- "http://cldr.unicode.org/index/downloads">CLDR
- Releases/Downloads</a></p>
- <p>The <unicodeVersion> attribute defines the version of
- the Unicode standard that is used to interpret data.
- Specifically, some data elements such as exemplar characters
- are expressed in terms of UnicodeSets. Since UnicodeSets can be
- expressed in terms of Unicode properties, their meaning depend
- on the Unicode version from which property values are
- derived.</p><!-- end section Version Information metadta element -->
- <h2>12 <a name="Parent_Locales" href="#Parent_Locales" id=
- "Parent_Locales">Parent Locales</a></h2>
- <p>The parentLocales data is supplemental data, but is
- described in detail in the <a href=
- "tr35.html#Parent_Locales">core specification section
- 4.1.3.</a></p>
- <h2>13 <a href="#Unit_Conversion" name="Unit_Conversion">Unit Conversion</a></h2>
-
-
-<p>
-The unit conversion data (<a href="https://github.com/unicode-org/cldr/blob/master/common/supplemental/units.xml">units.xml</a>) provides the data for converting all of the cldr unit identifiers to base units, and back. That allows conversion between any two convertible units, such as two units of length. For any two convertible units (such as acre and dunum) the first can be converted to the base unit (square-meter), then that base unit can be converted to the second unit.
-</p>
-<p class="dtd">
-<!ELEMENT unitConstants ( unitConstant* ) >
-</p>
-<p class="dtd">
-<!ELEMENT unitConstant EMPTY >
-</p>
-<p class="dtd">
-<!ATTLIST unitConstant constant NMTOKEN #REQUIRED >
-</p>
-<p class="dtd">
-<!ATTLIST unitConstant value CDATA #REQUIRED >
-</p>
-<p class="dtd">
-<!ATTLIST unitConstant status NMTOKEN #IMPLIED >
-</p>
-<h2>Constants</h2>
-
-
-<p>
-The data uses a small set of constants for readability, such as:
-</p>
- <blockquote>
-<p>
-<unitConstant constant=<em>"ft_to_m"</em> value=<em>"0.3048"</em>/>
-</p>
-<p>
-<unitConstant constant=<em>"ft2_to_m2"</em> value=<em>"ft_to_m*ft_to_m"</em>/>
-</p>
-</blockquote>
-<p>
-The order of the elements in the file is significant.
-</p>
-<p>
-
-</p>
-<p>
-Each constant can have a value based on simple expressions using numbers, previous constants, plus the operators * and /. Parentheses are not allowed. The operator * binds more tightly than /, which may be unexpected. Thus a * b / c * d is interpreted as (a * b) / (c * d). A consequent of that is that a * b / c * d = a * b / c / d. In the value, the numbers represent rational values. So 0.3048 is interpreted as exactly 3048 / 10000.
-</p>
-<p>
-In the above case, ft2-to-m2 is a conversion constant for going from square feet to square meters. The expression evaluates to 0.09290304. Where the constants cannot be expressed as rationals, or where their interpretation is fluid, that is marked with a status value:
-</p>
-<blockquote>
-<unitConstant constant=<em>"PI"</em> value=<em>"411557987 / 131002976"</em> status=<em>'approximate'</em>/>
-</blockquote>
-<p>
-In such cases, software may decide to use different values for accuracy.
-</p>
-<p>
-An implementation need not use rationals directly for conversion; it could use doubles, for example, if only double accuracy is needed.
-</p>
-<h2>Conversion Data</h2>
-
-
-<p class="dtd">
-<!ELEMENT convertUnits ( convertUnit* ) >
-</p>
-<p class="dtd">
-<!ELEMENT convertUnit EMPTY >
-</p>
-<p class="dtd">
-<!ATTLIST convertUnit source NMTOKEN #REQUIRED >
-</p>
-<p class="dtd">
-<!ATTLIST convertUnit baseUnit NMTOKEN #REQUIRED >
-</p>
-<p class="dtd">
-<!ATTLIST convertUnit factor CDATA #IMPLIED >
-</p>
-<p class="dtd">
-<!ATTLIST convertUnit offset CDATA #IMPLIED >
-</p>
-<p>
-The conversion data provides the data for converting all of the cldr unit identifiers to base units, and back. That allows conversion between any two convertible units, such as two units of length. For any two convertible units (such as acre and dunum) the first can be converted to the base unit (square-meter), then that base unit can be converted to the second unit.
-</p>
-<p>
-The data is expressed as conversions to the base unit. The information can also be used for the conversion back.
-</p>
-<p>
-Examples:
-</p>
- <blockquote>
-<p>
-<convertUnit source=<em>'carat'</em> baseUnit=<em>'kilogram'</em> factor=<em>'0.0002'</em>/>
-</p>
-<p>
-<convertUnit source=<em>'gram'</em> baseUnit=<em>'kilogram'</em> factor=<em>'0.001'</em>/>
-</p>
-<p>
-<convertUnit source=<em>'ounce'</em> baseUnit=<em>'kilogram'</em> factor=<em>'lb_to_kg/16'</em> systems=<em>"ussystem uksystem"</em>/>
-</p>
-<p>
-<convertUnit source=<em>'fahrenheit'</em> baseUnit=<em>'kelvin'</em> factor=<em>'5/9'</em> offset=<em>'2298.35/9'</em> systems=<em>"ussystem uksystem"</em>/>
-</p>
-</blockquote>
-<p>
-For example, to convert from 3 carats to kilograms, the factor 0.0002 is used, resulting in 0.0006. To convert between carats and ounces, first the carets are converted to kilograms, then the kilograms to ounces (by reversing the mapping).
-</p>
-<p>
-The factor and offset use the same structure as in the value in unitConstant ; in particular, * binds more tightly than /.
-</p>
-<p>
-The conversion may also require an offset, such as the following:
-</p>
-<blockquote>
-<convertUnit source=<em>'fahrenheit'</em> baseUnit=<em>'kelvin'</em> factor=<em>'5/9'</em> offset=<em>'2298.35/9'</em> systems=<em>"ussystem uksystem"</em>/>
-</blockquote>
-<p>
-The factor and offset can be simple expressions, just like the values in the unitConstants.
-</p>
-<p>
-Where a factor is not present, the value is 1; where an offset is not present, the value is 0. The systems attribute indicates where the value is not metric; currently the attribute values just include the <em>ussystem</em> and <em>uksystem</em> systems. The term <em>metric</em> is used in a broad sense, and includes units that are simple multiples of metric units, such as pound-metric (= ½ kilogram).
-</p>
-<p>
-For complex units, such as <em>pound-force-per-square-inch</em>, the conversions are computed by combining the conversions of each of the simple units: <em>pound-force</em> and <em>inch</em>. Because the conversions in convertUnit are reversible, the computation can go from complex source unit to complex base unit to complex target units.
-</p>
-<p>
-Here is an example:
-</p>
- <blockquote>
-<p><strong>
-50 foot-per-minute ⟹ X mile-per-hour</strong> </p>
-<p>
- ⟹ source: 1 foot
-</p>
-<p>
- ⟹ factor: 381 / 1250 = 0.3048 meter
-</p>
-<p>
- ⟹ source: 1 minute
-</p>
-<p>
- ⟹ factor: 60 second
-</p>
-<p>
- ⟹ intermediate: 127 / 500 = 0.254 meter-per-second
-</p>
-<p>
- ⟹ mile-per-hour
-</p>
-<p>
- ⟹ source: 1 mile
-</p>
-<p>
- ⟹ factor: 201168 / 125 = 1609.344 meter
-</p>
-<p>
- ⟹ source: 1 hour
-</p>
-<p>
- ⟹ factor: 3600 second
-</p>
-<p>
- ⟹ target: 25 / 44 ≅ 0.5681818 mile-per-hour
-</p>
-</blockquote>
-<p>
-<strong>Reciprocals. </strong>When you convert a complex unit to another complex unit, you typically convert the source to a complex base unit (like <em>meter-per-cubic-meter</em>), then convert the latter backwards to the desired target. However, there may not be a matching conversion from that complex base unit to the desired target unit. That is the case for converting from <em>mile-per-gallon</em> (used in the US) to <em>liter-per-100-kilometer</em> (used in Europe and elsewhere). When that happens, the reciprocal of the complex base unit is used, as in the following example:
-</p>
- <blockquote>
-<p><strong>
-50 mile-per-gallon ⟹ X liter-per-100-kilometer
-</strong></p>
-<p>
- ⟹ source: 1 mile
-</p>
-<p>
- ⟹ factor: 201168 / 125 = 1609.344 meter
-</p>
-<p>
- ⟹ source: 1 gallon
-</p>
-<p>
- ⟹ factor: 473176473 / 125000000000 ≅ 0.003785412 cubic-meter
-</p>
-<p>
- ⟹ intermediate: 2400000000000 / 112903 ≅ 2.125719E7 meter-per-cubic-meter
-</p>
-<p>
- ⟹ liter-per-100-kilometer
-</p>
-<p>
- ⟹ source: 1 liter
-</p>
-<p>
- ⟹ factor: 1 / 1000 = 0.001 cubic-meter
-</p>
-<p>
- ⟹ source: 1 100-kilometer
-</p>
-<p>
- ⟹ factor: 100000 meter
-</p>
-<p>
-<strong> ⟹ 1/intermediate: 112903 / 2400000000000 ≅ 4.704292E-8 cubic-meter-per-meter</strong>
-</p>
-<p>
- ⟹ target: 112903 / 24000 ≅ 4.704292 liter-per-100-kilometer
-</p>
-</blockquote>
-<p>
-This applies to more than just these cases: one can convert from any unit to related reciprocals as in the following example:
-</p>
- <blockquote>
-<p><strong>
-50 foot-per-minute ⟹ X hour-per-mile</strong> </p>
-<p>
- ⟹ source: 1 foot
-</p>
-<p>
- ⟹ factor: 381 / 1250 = 0.3048 meter
-</p>
-<p>
- ⟹ source: 1 minute
-</p>
-<p>
- ⟹ factor: 60 second
-</p>
-<p>
- ⟹ intermediate: 127 / 500 = 0.254 meter-per-second
-</p>
-<p>
- ⟹ hour-per-mile
-</p>
-<p>
- ⟹ source: 1 hour
-</p>
-<p>
- ⟹ factor: 3600 second
-</p>
-<p>
- ⟹ source: 1 mile
-</p>
-<p>
- ⟹ factor: 201168 / 125 = 1609.344 meter
-</p>
-<p>
-<strong> ⟹ 1/intermediate: 500 / 127 ≅ 3.937008 second-per-meter</strong>
-</p>
-<p>
- ⟹ target: 44 / 25 = 1.76 hour-per-mile
-</p>
-</blockquote>
-<h3>Exceptional Cases</h3>
-
-
-<h4>Identities</h4>
-
-
-<p>
-For completeness, identity mappings are also provided for the base units themselves, such as:
-</p>
-<blockquote>
- <convertUnit source=<em>'meter'</em> baseUnit=<em>'meter'</em>/>
-</blockquote>
-<h4>Aliases</h4>
-
-<p>
-In a few instances the old identifiers are deprecated in favor of regular syntax. Implementations should handle both on input:
-</p>
-<blockquote>
-<p>
-<unitAlias type=<em>"meter-per-second-squared"</em> replacement=<em>"meter-per-square-second"</em> reason=<em>"deprecated"</em>/>
-</p>
-<p>
-<unitAlias type=<em>"liter-per-100kilometers"</em> replacement=<em>"liter-per-100-kilometer"</em> reason=<em>"deprecated"</em>/>
-</p>
-<p>
-<unitAlias type=<em>"pound-foot"</em> replacement=<em>"pound-force-foot"</em> reason=<em>"deprecated"</em>/>
-</p>
-<p>
-<unitAlias type=<em>"pound-per-square-inch"</em> replacement=<em>"pound-force-per-square-inch"</em> reason=<em>"deprecated"</em>/>
-</p>
-</blockquote>
-<p>
-These use the standard alias elements in XML, and are also included in the <a href="https://github.com/unicode-org/cldr/blob/master/common/supplemental/units.xml">units.xml</a> file.
-</p>
-<h4>“Duplicate” Units</h4>
-
-
-<p>
-Some CLDR units are provided simply because they have different names in some languages. For example, year and year-person, or foodcalorie and kilocalorie. One CLDR unit is not convertible (temperature-generic) it is only used for the translation (where the exact unit would be understood by context).
-</p>
-<h4>Discarding Offsets</h4>
-
-
-<p>
-The temperature units are special. When they represent a scale, they have an offset. But where they represent an amount, such as in complex units, they do not. So celsius-per-second is the same as kelvin-per-second.
-</p>
-<h3>Unresolved Units</h3>
-
-
-<p>
-Some SI units contain the same units in the numerator and denominator, so those cannot be resolved. For example, if cubic-meter-per-meter were always resolved, then <em>consumption</em> (like “liter-per-kilometer”) could not be distinguished from <em>area</em> (square-meter).
-</p>
-<p>
-However, in conversion, it may be necessary to resolve them in order to find a match. For example, kilowatt-hour maps to the base unit kilogram-square-meter-second-per-cubic-second, but that needs to be resolved to kilogram-square-meter-per-square-second in order matched against an <em>energy.</em>
-</p>
-<h2>Quantities and Base Units</h2>
-
-
-<p class="dtd">
-<!ELEMENT unitQuantities ( unitQuantity* ) >
-</p>
-<p class="dtd">
-<!ELEMENT unitQuantity EMPTY >
-</p>
-<p class="dtd">
-<!ATTLIST unitQuantity baseUnit NMTOKEN #REQUIRED >
-</p>
-<p class="dtd">
-<!ATTLIST unitQuantity quantity NMTOKENS #REQUIRED >
-</p>
-<p class="dtd">
-<!ATTLIST unitQuantity status NMTOKEN #IMPLIED >
-</p>
-<p>
-Conversion is supported between comparable units. Those can be simple units, such as length, or more complex ‘derived’ units that are built up from <em>base units</em>. The <unitQuantities> element provides information on the base units used for conversion. It also supplies information about their <em>quantity</em>: mass, length, time, etc., and whether they are simple or not. </p>
-<p>Examples: </p>
- <blockquote>
-<p>
-<unitQuantity baseUnit=<em>'kilogram'</em> quantity=<em>'mass'</em> status=<em>'simple'</em>/>
-</p>
-<p>
-<unitQuantity baseUnit=<em>'meter-per-second'</em> quantity=<em>'speed'</em>/>
-</p>
-</blockquote>
-<p>
-The order of the elements in the file is significant, since it is used in
-
-<a href="#Unit_Identifier_Normalization" >Unit_Identifier_Normalization</a>.
-<p>
- The quantity values themselves are informative. Therer mayreflecting that <em>force per area</em> can be referenced as either <em>pressure</em> or <em>stress</em>, for example). The quantity for a complex unit that has a reciprocal is formed by prepending “inverse-” to the quantity, such as <em>inverse-consumption.</em>
-</p>
-<p>
-The base units for the quantities and the quantities themselves are based on <a href="https://www.nist.gov/pml/special-publication-811">NIST special publication 811</a> and the earlier <a href="https://www.govinfo.gov/content/pkg/GOVPUB-C13-f10c2ff9e7af2091314396a2d53213e4/pdf/GOVPUB-C13-f10c2ff9e7af2091314396a2d53213e4.pdf">NIST Special Publication 1038</a>. In some cases, a different unit is chosen for the base. For example, a <em>revolution</em> (360°) is chosen for the base unit for angles instead of the SI <em>radian</em>, and <em>item</em> instead of the SI <em>mole</em>. Additional base units are added where necessary, such as <em>bit</em> and <em>pixel</em>.
-</p>
-<p>
-This data is not necessary for conversion, but is needed for
-
- <a href="#Unit_Identifier_Normalization" >Unit_Identifier_Normalization</a>. Some of the unitQuantity elements are not needed to convert CLDR units, but are included for completeness. Example:
-</p>
-
-<blockquote>
- <unitQuantity baseUnit=<em>'ampere-per-square-meter'</em> quantity=<em>'current-density'</em>/>
-</blockquote>
-<h3>UnitType vs Quantity</h3>
-
-
-<p>
-The unitType (as in “length-meter”) is not the same as the quantity. It is often broader: for example, the unitType <em>electric</em> corresponds to the quantities <em>electric-current, electric-resistance, </em>and<em> voltage</em>. The unitType itself is also informative, and can be dropped from a long unit identifier to get a still-unique short unit identifier.
-</p>
-<h3><a href="#Unit_Identifier_Normalization" name="Unit_Identifier_Normalization">Unit Identifier Normalization</a></h3>
-
-
-<p>
-There are many possible ways to construct complex units. For comparison of unit identifiers, an implementation can normalize in the following way:
-</p>
- <ol>
-
-<li>Convert all but the first -per- to simple multiplication. The result then has the format of /numerator ( -per- denominator)?/ <ul>
-
- <li>foot-per-second-per-second ⇒ foot-per-second-second
-</ul>
-</li>
- <li>Within each of the numerator and denominator:</li>
- <li>Convert multiple instances of a unit into the appropriate power.
- <ul>
- <li>foot-per-second-second ⇒ foot-per-square-second
- </li>
- <li>kilogram-meter-kilogram ⇒ meter-square-kilogram
- </li>
- </ul>
- <li>For each single unit, disregarding prefixes and powers, find its base unit using <convertUnit>, then get the order of that base unit among the unitQuantity elements in the <a href="https://github.com/unicode-org/cldr/blob/master/common/supplemental/units.xml">units.xml</a>. Then sort the single units by that order.
- <ul>
- <li>meter-square-kilogram => square-kilogram-meter
- </li>
- <li>meter-square-gram ⇒ square-gram-meter
- </li>
- </ul>
- </li>
- <li>If two single units have the same simple unit but different SI prefixes, such as "kilometer-meter", sort the higher-power SI prefixes first. </li>
- <li>Within private-use single units, sort by the simple unit alphabetically.</li>
-</ol>
-
-<p>
- The examples in #4 are due to the following ordering of the unitQuantity elements:
-</p><ol>
-
-<li><unitQuantity baseUnit=<em>'candela'</em> quantity=<em>'luminous-intensity'</em> status=<em>'simple'</em>/>
-<li><unitQuantity baseUnit=<em>'kilogram'</em> quantity=<em>'mass'</em> status=<em>'simple'</em>/>
-<li><unitQuantity baseUnit=<em>'meter'</em> quantity=<em>'length'</em> status=<em>'simple'</em>/>
-<li>…</li></ol>
-
-<h2>Mixed Units</h2>
-
-
-<p>
-Mixed units, or unit sequences, are units with the same base unit which are listed in sequence. Common examples are feet and inches, meters and centimeters, and hours, minutes, and seconds. Mixed unit identifiers are expressed using the "-and-" infix, as in "foot-and-inch", "meter-and-centimeter", and "hour-and-minute-and-second".
-</p>
-<p>
-Scalar values for mixed units are expressed in the largest unit, according to the sort order discussed above in "Normalization". For example, numbers for "foot-and-inch" are expressed in feet.
-</p>
-<p>
-Mixed units are expected to be rendered in the order of the tokens in the identifier. For example, the value 1.25 with the identifier "foot-and-inch" should be rendered as "1 foot and 3 inches" and 1.25 inch-and-foot should be rendered as “3 inches and 1 foot". <strong>NOTE: </strong>the correct application of this may require adding locales to the regions attribute set.
-</p>
-
-<h2>Testing</h2>
-
-
-<p>
-The <a href="https://github.com/unicode-org/cldr/blob/master/common/testData/units/unitsTest.txt">unitsTest.txt</a> file supplies a list of all the CLDR units with conversions, for testing implementations. Instructions for use are supplied in the header of the file.
-</p>
- <h2>14 <a href="#Unit_Preferences" name="Unit_Preferences">Unit Preferences</a></h2>
-
-
-<p>
-Different locales have different preferences for which unit or combination of units is used for a particular usage, such as measuring a person’s height. This is more fine-grained than merely a preference for metric versus US or UK measurement systems. For example, one locale may use meters alone, while another may use centimeters alone or a combination of meters and centimeters; a third may use inches alone, or (informally) a combination of feet and inches.
-</p>
-<p>
-The CLDR data is intended to map from a particular usage — e.g. measuring the height of a person or the fuel consumption of an automobile — to the unit or combination of units typically used for that usage in a given region. Considerations for such a mapping include:
-</p><ul>
-
-<li>The list of possible usages large and open-ended. The intent here is to start with a small set for which there is an urgent need, and expand as necessary.
-<li>Even for a given usage such a measuring a road distance, there are multiple ranges in use. For example, one set of units may be used for indicating the distance to the next city (kilometers or miles), while another may be used for indicating the distance to the next exit (meters, yards, or feet).
-<li>There are also differences between more formal usage (official signage, medical records) and more informal usage (conversation, texting).
-<li>For some usages, the measurement may be expressed using a sequence of units, such as “1 meter, 78 centimeters” or “12 stone, 2 pounds”.</li></ul>
-
-<p>
-The DTD structure is as follows:
-</p>
-<p class="dtd">
-<!ELEMENT unitPreferenceData ( unitPreferences* ) >
-</p>
-<p class="dtd">
-<!ELEMENT unitPreferences ( unitPreference* ) >
-</p>
-<p class="dtd">
-<!ATTLIST unitPreferences category NMTOKEN #REQUIRED >
-</p>
-<p class="dtd">
-<!ATTLIST unitPreferences usage NMTOKENS #REQUIRED >
-</p>
-<p class="dtd">
-<!ELEMENT unitPreference ( #PCDATA ) >
-</p>
-<p class="dtd">
-<!ATTLIST unitPreference regions NMTOKENS #REQUIRED >
-</p>
-<p class="dtd">
-<!ATTLIST unitPreference geq NMTOKEN #IMPLIED >
-</p>
-<p class="dtd">
-<!ATTLIST unitPreference skeleton CDATA #IMPLIED >
-</p>
-
-<table>
- <tr>
- <td>category
- </td>
- <td>A unit quantity, such as “area” or “length”. See Section 13 Unit Conversion
- </td>
- </tr>
- <tr>
- <td>usage
- </td>
- <td>A type of usage, such as person-height.
- </td>
- </tr>
- <tr>
- <td>regions
- </td>
- <td>One or more region identifiers (macroregions or regions), subdivision identifiers, or language identifiers, such as 001, US, usca, and de-CH.
- </td>
- </tr>
- <tr>
- <td>geq
- </td>
- <td>A threshold value, in a unit determined by the unitPreference element value. The unitPreference element is only used for values higher than this value (and lower than any higher value).
-<p>
-The value must be non-negative. For picking negative units (-3 meters), use the absolute value to pick the unit.
- </td>
- </tr>
- <tr>
- <td>skeleton
- </td>
- <td>A skeleton in the ICU number format syntax, that can be used to format unit
- </td>
- </tr>
-</table>
-
-<p><strong>Note:</strong> As of CLDR 37, the <unitPreference> geq attribute replaces
-the now-deprecated <unitPreferences> scope attribute.</p>
-
-<p>
-Example:
-</p>
- <blockquote>
-<p>
- <unitPreferences category=<em>"length"</em> usage=<em>"default"</em>>
-</p>
- <blockquote>
-<p>
- <unitPreference regions=<em>"001"</em>>kilometer</unitPreference>
-</p>
-<p>
- <unitPreference regions=<em>"001"</em>>meter</unitPreference>
-</p>
-<p>
- <unitPreference regions=<em>"001"</em>>centimeter</unitPreference>
-</p>
-<p>
- <unitPreference regions=<em>"US GB"</em>>mile</unitPreference>
-</p>
-<p>
- <unitPreference regions=<em>"US GB"</em>>foot</unitPreference>
-</p>
-<p>
- <unitPreference regions=<em>"US GB"</em>>inch</unitPreference>
-</p>
- </blockquote>
-<p>
- </unitPreferences>
-</p>
-</blockquote>
-<p>
-The above information says that for default usage, in the US people use mile, foot, and inch, where people in the rest of the world (001) use kilometer, meter, and centimeter.
-Take another example:</p>
- <blockquote>
-<p>
- <unitPreferences category=<em>"length"</em> usage=<em>"road"</em>>
-</p>
- <blockquote>
-<p>
- <unitPreference regions=<em>"001"</em> geq=<em>"0.9"</em>>kilometer</unitPreference>
-</p>
-<p>
- <unitPreference regions=<em>"001"</em> geq=<em>"300.0"</em> skeleton=<em>"precision-increment/50"</em>>meter</unitPreference>
-</p>
-<p>
- <unitPreference regions=<em>"001"</em> skeleton=<em>"precision-increment/10"</em>>meter</unitPreference>
-</p>
-<p>
- <unitPreference regions=<em>"001"</em>>meter</unitPreference>
-</p>
-<p>
- <unitPreference regions=<em>"US"</em> geq=<em>"0.5"</em>>mile</unitPreference>
-</p>
-<p>
- <unitPreference regions=<em>"US"</em> geq=<em>"100.0"</em> skeleton=<em>"precision-increment/50"</em>>foot</unitPreference>
-</p>
-<p>
- <unitPreference regions=<em>"US"</em> skeleton=<em>"precision-increment/10"</em>>foot</unitPreference>
-</p>
-<p>
- <unitPreference regions=<em>"GB"</em> geq=<em>"0.5"</em>>mile</unitPreference>
-</p>
-<p>
- <unitPreference regions=<em>"GB"</em> geq=<em>"100.0"</em> skeleton=<em>"precision-increment/50"</em>>yard</unitPreference>
-</p>
-<p>
- <unitPreference regions=<em>"GB"</em>>yard</unitPreference>
-</p>
-<p>
- <unitPreference regions=<em>"SE"</em> geq=<em>"0.1"</em>>mile-<span style="text-decoration:underline;">scandinavian</span></unitPreference>
-</p>
- </blockquote>
-<p>
- </unitPreferences>
-</p>
-</blockquote>
-<p>
-The intended usage is to take the measure to be formatted, and the desired category, usage, and region and find the best match as follows.
-</p>
-<ul>
-
-<li>First, see if there is an exact match, producing a list of one or more unitPreference elements. For example, length/road/GB has a match above, giving
-<blockquote>
-<p>
- <unitPreference regions=<em>"GB"</em> geq=<em>"0.5"</em>>mile</unitPreference>
-</p>
-<p>
- <unitPreference regions=<em>"GB"</em> geq=<em>"100.0"</em> skeleton=<em>"precision-increment/50"</em>>yard</unitPreference>
-</p>
-<p>
- <unitPreference regions=<em>"GB"</em>>yard</unitPreference>
-</p>
- </blockquote>
-</li>
- <li>If there is no match for the category, then the data is not available.</li>
- <li>Otherwise, given the category: <ul>
-
- <li>If there is an exact match for the usage, but not for the region, try region=”001”.</li></ul>
-
- <li>The specification allows for <a href="https://unicode-org.github.io/cldr-staging/charts/38/supplemental/territory_containment_un_m_49.html">containment regions</a> , <a href="https://unicode-org.github.io/cldr-staging/charts/38/supplemental/territory_subdivisions.html">region subdivisions</a>.
- <li>While in version 37 only 001 is used, in the future the data may contain others.
- <li>The fallback is: subdivision2 ⇒ subdivision1 ⇒ region/country ⇒ subcontinent ⇒ continent ⇒ world
- <li>Example:
-<blockquote>
-<table>
- <tr>
- <td>
-<strong>Region/subdivision</strong>
- </td>
- <td><strong>Code</strong>
- </td>
- </tr>
- <tr>
- <td>Blackpool
- </td>
- <td>gbbpl
- </td>
- </tr>
- <tr>
- <td>England
- </td>
- <td>gbeng
- </td>
- </tr>
- <tr>
- <td>United Kingdom
- </td>
- <td>GB
- </td>
- </tr>
- <tr>
- <td>Northern Europe
- </td>
- <td>154
- </td>
- </tr>
- <tr>
- <td>Europe
- </td>
- <td>150
- </td>
- </tr>
- <tr>
- <td>World
- </td>
- <td>001
- </td>
- </tr>
-</table>
-</blockquote>
-
- <li>If there is an exact match for the region, but not for the usage, <ul>
-
- <li>If the usage has multiple parts (eg land-agriculture-grain) drop the last part (eg land-agriculture)
- <li>Repeat dropping the last part and trying the result (eg land)
- <li>If you eliminate all of them, try usage=”default”.
- <li>If there is no exact match for either one, try usage=”default”, region=”001”. That will always match.</li> </ul>
- </li> </ul>
-
-<p>
-Once you have a list of unitPreference elements, find the applicable unitPreference. For a given category, usage, and set of regions (eg “US GB”), the units are ordered from largest to smallest.
-</p>
-<ul>
-<li>The geq item gives the value for the unit in the element value (or for the largest unit for mixed units). For example,<ul>
- <li>...geq=<em>"0.5"</em>>mile<... means 0.9 kilometers</li>
- <li>...geq=<em>"100.0"</em>>foot:inch<... means 100 feet</li></ul></li>
-<li>If there is no geq attribute, then the implicit value is 1.0.</li>
-<li>Implementations will probably convert the values into the base units, so that the comparison is fast. Thus the above would be converted internally to something like: <ul>
-
- <li>≥ 804.672 meters ⇒ mile</li>
- <li>≥ 30.48 meters ⇒ foot:inch</li></ul></li>
-<li>Search for the first matching unitPreference for the input measure. If there is no match (eg < 100 feet in the above example), take the last unitPreference.
-That is, the last unitPreference is effectively geq="0"</li>
-</ul>
-
-<p>
-Once a matching unitPreference element is found:
-</p><ul>
-
-<li>The unit is the element value
-<li>The skeleton (if there is one) supplies formatting information for the unit. API settings may allow that to be overridden.
- <ul>
- <li>The syntax and semantics for the skeleton value are defined by the <a href="https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html">ICU Number Skeletons</a> document.</li>
- </ul>
-<li>If the unit is mixed (eg foot:inch) the skeleton applies to the final subunit; the higher subunits are formatted as integers.
-<li>If the skeleton is missing, the default is skeleton="<strong>precision-integer/@@*</strong>". However, the client can also override or tune the number formatting.</li></ul>
-
-<h3>Constraints</h3>
-
-<ul>
-
-<li>For a given category, there is always a “default” usage.
-<li>For a given category, and usage: <ul>
-
- <li>There is always a 001 region.
- <li>None of the sets of regions can overlap. That is, you can’t have “US” on one line and “US GB” on another. You <em>can</em> have two lines with “US”, for different sizes of units.</li></ul></li>
-<li>For a given category, usage, and region-set <ul>
- <li>The unitPreferences are in descending order.</li>
- </ul>
- </li>
-</ul>
-
-<h3>Caveats</h3>
- <p>The extended unit support is still being developed further. See the Known Issues on the release page for futher information.</p>
-
- <hr>
- <p class="copyright">Copyright © 2001–2020 Unicode, Inc. All
- Rights Reserved. The Unicode Consortium makes no expressed or
- implied warranty of any kind, and assumes no liability for
- errors or omissions. No liability is assumed for incidental and
- consequential damages in connection with or arising out of the
- use of the information or programs contained or accompanying
- this technical report. The Unicode <a href=
- "https://unicode.org/copyright.html">Terms of Use</a> apply.</p>
- <p class="copyright">Unicode and the Unicode logo are
- trademarks of Unicode, Inc., and are registered in some
- jurisdictions.</p>
- </div>
-</body>
-</html>
diff --git a/docs/ldml/tr35-info.md b/docs/ldml/tr35-info.md
new file mode 100644
index 0000000..872b4cd
--- /dev/null
+++ b/docs/ldml/tr35-info.md
@@ -0,0 +1,1167 @@
+## Unicode Technical Standard #35
+
+# Unicode Locale Data Markup Language (LDML)<br/>Part 6: Supplemental
+
+<!-- HTML: no header -->
+<table><tbody>
+<tr><td>Version</td><td>39</td></tr>
+<tr><td>Editors</td><td>Steven Loomis (<a href="mailto:srl@icu-project.org">srl@icu-project.org</a>) and <a href="tr35.md#Acknowledgments">other CLDR committee members</a></td></tr>
+</tbody></table>
+
+For the full header, summary, and status, see [Part 1: Core](tr35.md).
+
+### _Summary_
+
+This document describes parts of an XML format (_vocabulary_) for the exchange of structured locale data. This format is used in the [Unicode Common Locale Data Repository](https://unicode.org/cldr/).
+
+This is a partial document, describing only those parts of the LDML that are relevant for supplemental data. For the other parts of the LDML see the [main LDML document](tr35.md) and the links above.
+
+### _Status_
+
+_This document has been reviewed by Unicode members and other interested parties, and has been approved for publication by the Unicode Consortium. This is a stable document and may be used as reference material or cited as a normative reference by other specifications._
+
+> _**A Unicode Technical Standard (UTS)** is an independent specification. Conformance to the Unicode Standard does not imply conformance to any UTS._
+
+_Please submit corrigenda and other comments with the CLDR bug reporting form [[Bugs](tr35.md#Bugs)]. Related information that is useful in understanding this document is found in the [References](tr35.md#References). For the latest version of the Unicode Standard see [[Unicode](tr35.md#Unicode)]. For a list of current Unicode Technical Reports see [[Reports](tr35.md#Reports)]. For more information about versions of the Unicode Standard, see [[Versions](tr35.md#Versions)]._
+
+## <a name="Parts" href="#Parts">Parts</a>
+
+The LDML specification is divided into the following parts:
+
+* Part 1: [Core](tr35.md#Contents) (languages, locales, basic structure)
+* Part 2: [General](tr35-general.md#Contents) (display names & transforms, etc.)
+* Part 3: [Numbers](tr35-numbers.md#Contents) (number & currency formatting)
+* Part 4: [Dates](tr35-dates.md#Contents) (date, time, time zone formatting)
+* Part 5: [Collation](tr35-collation.md#Contents) (sorting, searching, grouping)
+* Part 6: [Supplemental](tr35-info.md#Contents) (supplemental data)
+* Part 7: [Keyboards](tr35-keyboards.md#Contents) (keyboard mappings)
+
+## <a name="Contents" href="#Contents">Contents of Part 6, Supplemental</a>
+
+* 1 [Introduction Supplemental Data](#Supplemental_Data)
+* 2 [Territory Data](#Territory_Data)
+ * 2.1 [Supplemental Territory Containment](#Supplemental_Territory_Containment)
+ * 2.2 [Subdivision Containment](#Subdivision_Containment)
+ * 2.3 [Supplemental Territory Information](#Supplemental_Territory_Information)
+ * 2.4 [Territory-Based Preferences](#Territory_Based_Preferences)
+ * 2.4.1 [Preferred Units for Specific Usages](#Preferred_Units_For_Usage)
+ * Table: [Unit Preference](#Unit_Preferences)
+ * 2.5 [\<rgScope>: Scope of the “rg” Locale Key](#rgScope)
+* 3 [Supplemental Language Data](#Supplemental_Language_Data)
+ * 3.1 [Supplemental Language Grouping](#Supplemental_Language_Grouping)
+* 4 [Supplemental Code Mapping](#Supplemental_Code_Mapping)
+* 5 [Telephone Code Data](#Telephone_Code_Data) (Deprecated)
+* 6 [Postal Code Validation (Deprecated)](#Postal_Code_Validation)
+* 7 [Supplemental Character Fallback Data](#Supplemental_Character_Fallback_Data)
+* 8 [Coverage Levels](#Coverage_Levels)
+ * 8.1 [Definitions](#Coverage_Level_Definitions)
+ * 8.2 [Data Requirements](#Coverage_Level_Data_Requirements)
+ * 8.3 [Default Values](#Coverage_Level_Default_Values)
+* 9 [Supplemental Metadata](#Appendix_Supplemental_Metadata)
+ * 9.1 [Supplemental Alias Information](#Supplemental_Alias_Information)
+ * Table: [Alias Attribute Values](#Alias_Attribute_Values)
+ * 9.2 [Supplemental Deprecated Information (Deprecated)](#Supplemental_Deprecated_Information)
+ * 9.3 [Default Content](#Default_Content)
+* 10 [Locale Metadata Elements](#Metadata_Elements)
+* 11 [Version Information](#Version_Information)
+* 12 [Parent Locales](#Parent_Locales)
+* 13 [Unit Conversion](#Unit_Conversion)
+* 14 [Unit Preferences](#Unit_Preferences)
+
+## 1 Introduction <a name="Supplemental_Data" href="#Supplemental_Data">Supplemental Data</a>
+
+The following represents the format for additional supplemental information. This is information that is important for internationalization and proper use of CLDR, but is not contained in the locale hierarchy. It is not localizable, nor is it overridden by locale data. The current CLDR data can be viewed in the [Supplemental Charts](https://unicode-org.github.io/cldr-staging/charts/38/supplemental/index.html).
+
+```xml
+<!ELEMENT supplementalData (version, generation?, cldrVersion?, currencyData?, territoryContainment?, subdivisionContainment?, languageData?, territoryInfo?, postalCodeData?, calendarData?, calendarPreferenceData?, weekData?, timeData?, measurementData?, unitPreferenceData?, timezoneData?, characters?, transforms?, metadata?, codeMappings?, parentLocales?, likelySubtags?, metazoneInfo?, plurals?, telephoneCodeData?, numberingSystems?, bcp47KeywordMappings?, gender?, references?, languageMatching?, dayPeriodRuleSet*, metaZones?, primaryZones?, windowsZones?, coverageLevels?, idValidity?, rgScope?) >
+```
+
+The data in CLDR is presently split into multiple files: supplementalData.xml, supplementalMetadata.xml, characters.xml, likelySubtags.xml, ordinals.xml, plurals.xml, telephoneCodeData.xml, genderList.xml, plus transforms (see _Part 2 Section 10 [Transforms](tr35-general.md#Transforms)_ and _Part 2 Section 10.3 [Transform Rule Syntax](tr35-general.md#Transform_Rules_Syntax)_). The split is just for convenience: logically, they are treated as though they were a single file. Future versions of CLDR may split the data in a different fashion. Do not depend on any specific XML filename or path for supplemental data.
+
+Note that [Chapter 10](#Metadata_Elements) presents information about metadata that is maintained on a per-locale basis. It is included in this section because it is not intended to be used as part of the locale itself.
+
+## 2 <a name="Territory_Data" href="#Territory_Data">Territory Data</a>
+
+### 2.1 <a name="Supplemental_Territory_Containment" href="#Supplemental_Territory_Containment">Supplemental Territory Containment</a>
+
+```xml
+<!ELEMENT territoryContainment ( group* ) >
+<!ELEMENT group EMPTY >
+<!ATTLIST group type NMTOKEN #REQUIRED >
+<!ATTLIST group contains NMTOKENS #IMPLIED >
+<!ATTLIST group grouping ( true | false ) #IMPLIED >
+<!ATTLIST group status ( deprecated, grouping ) #IMPLIED >
+```
+
+The following data provides information that shows groupings of countries (regions). The data is based on the [[UNM49](tr35.md#UNM49)]. There is one special code, `QO` , which is used for outlying areas of Oceania that are typically uninhabited. The territory containment forms a tree with the following levels:
+
++ World
+ + Continent
+ + Subcontinent
+ + Country
+
+Excluding groupings, in this tree:
+
+* All non-overlapping regions form a strict tree rooted at World
+* All leaf-nodes (country) are always at depth 4. Some of these “country” regions are actually parts of other countries, such as Hong Kong (part of China). Such relationships are not part of the containment data.
+
+For a chart showing the relationships (plus the included timezones), see the [Territory Containment Chart](https://unicode-org.github.io/cldr-staging/charts/38/supplemental/territory_containment_un_m_49.html). The XML structure has the following form.
+
+```xml
+<territoryContainment>
+
+ <group type="001" contains="002 009 019 142 150"/> <!--World -->
+ <group type="011" contains="BF BJ CI CV GH GM GN GW LR ML MR NE NG SH SL SN TG"/> <!--Western Africa -->
+ <group type="013" contains="BZ CR GT HN MX NI PA SV"/> <!--Central America -->
+ <group type="014" contains="BI DJ ER ET KE KM MG MU MW MZ RE RW SC SO TZ UG YT ZM ZW"/> <!--Eastern Africa -->
+ <group type="142" contains="030 035 062 145"/> <!--Asia -->
+ <group type="145" contains="AE AM AZ BH CY GE IL IQ JO KW LB OM PS QA SA SY TR YE"/> <!--Western Asia -->
+ <group type="015" contains="DZ EG EH LY MA SD TN"/> <!--Northern Africa -->
+...
+```
+
+There are groupings that don't follow this regular structure, such as:
+
+```xml
+<group type="003" contains="013 021 029" grouping="true"/> <!--North America -->
+```
+
+These are marked with the attribute `grouping="true"`.
+
+When groupings have been deprecated but kept around for backwards compatibility, they are marked with the attribute `status="deprecated"`, like this:
+
+```xml
+<group type="029" contains="AN" status="deprecated"/> <!--Caribbean -->
+```
+
+When the containment relationship itself is a grouping, it is marked with the attribute `status="grouping"`, like this:
+
+```xml
+<group type="150" contains="EU" status="grouping"/> <!--Europe -->
+```
+
+That is, the type value isn’t a grouping, but if you filter out groupings you can drop this containment. In the example above, EU is a grouping, and contained in 150.
+
+### 2.2 <a name="Subdivision_Containment" href="#Subdivision_Containment">Subdivision Containment</a>
+
+```xml
+<!ELEMENT subdivisionContainment ( subgroup* ) >
+
+<!ELEMENT subgroup EMPTY >
+<!ATTLIST subgroup type NMTOKEN #REQUIRED >
+<!ATTLIST subgroup contains NMTOKENS #IMPLIED >
+```
+
+The subdivision containment data is similar to the territory containment. It is based on ISO 3166-2 data, but may diverge from it in the future.
+
+```xml
+<subgroup type="BD" contains="bda bdb bdc bdd bde bdf bdg bdh" />
+<subgroup type="bda" contains="bd02 bd06 bd07 bd25 bd50 bd51" />
+```
+
+The `type` is a [`unicode_region_subtag`](tr35.md#unicode_region_subtag) (territory) identifier for the top level of containment, or a [`unicode_subdivision_id`](tr35.md#unicode_subdivision_subtag) for lower levels of containment when there are multiple levels. The `contains` value is a space-delimited list of one or more [`unicode_subdivision_id`](tr35.md#unicode_subdivision_subtag) values. In the example above, subdivision bda contains other subdivisions bd02, bd06, bd07, bd25, bd50, bd51.
+
+Note: Formerly (in CLDR 28 through 30):
+
+* The `type` attribute could only contain a `unicode_region_subtag`;
+* The `contains` attribute contained `unicode_subdivision_suffix` values; these are not unique across multiple territories, so...
+* For lower containment levels, a now-deprecated subtype `attribute` was used to specify the parent `unicode_subdivision_suffix`.
+
+\* The type attribute contained only a `unicode_region_subtag` `unicode_subdivision_suffix` values were used in the `contains` attribute; these are not unique across multiple territories, so for lower levels a now-deprecated
+
+### 2.3 <a name="Supplemental_Territory_Information" href="#Supplemental_Territory_Information">Supplemental Territory Information</a>
+
+```xml
+<!ELEMENT territory ( languagePopulation* ) >
+<!ATTLIST territory type NMTOKEN #REQUIRED >
+<!ATTLIST territory gdp NMTOKEN #REQUIRED >
+<!ATTLIST territory literacyPercent NMTOKEN #REQUIRED >
+<!ATTLIST territory population NMTOKEN #REQUIRED >
+
+<!ELEMENT languagePopulation EMPTY >
+<!ATTLIST languagePopulation type NMTOKEN #REQUIRED >
+<!ATTLIST languagePopulation literacyPercent NMTOKEN #IMPLIED >
+<!ATTLIST languagePopulation writingPercent NMTOKEN #IMPLIED >
+<!ATTLIST languagePopulation populationPercent NMTOKEN #REQUIRED >
+<!ATTLIST languagePopulation officialStatus (de_facto_official | official | official_regional | official_minority) #IMPLIED >
+```
+
+This data provides testing information for language and territory populations. The main goal is to provide approximate figures for the literate, functional population for each language in each territory: that is, the population that is able to read and write each language, and is comfortable enough to use it with computers. For a chart of this data, see [Territory-Language Information](https://unicode-org.github.io/cldr-staging/charts/38/supplemental/territory_language_information.html).
+
+_Example_
+
+```xml
+<territory type="AO" gdp="175500000000" literacyPercent="70.4" population="19088100"> <!--Angola-->
+ <languagePopulation type="pt" populationPercent="67" officialStatus="official"/> <!--Portuguese-->
+ <languagePopulation type="umb" populationPercent="29"/> <!--Umbundu-->
+ <languagePopulation type="kmb" writingPercent="10" populationPercent="25" references="R1034"/> <!--Kimbundu-->
+ <languagePopulation type="ln" populationPercent="0.67" references="R1010"/> <!--Lingala-->
+</territory>
+```
+
+Note that reliable information is difficult to obtain; the information in CLDR is an estimate culled from different sources, including the World Bank, CIA Factbook, and others. The GDP and country literacy figures are taken from the World Bank where available, otherwise supplemented by FactBook data and other sources. The GDP figures are “PPP (constant 2000 international $)”. Much of the per-language data is taken from the Ethnologue, but is supplemented and processed using many other sources, including per-country census data. (The focus of the Ethnologue is native speakers, which includes people who are not literate, and excludes people who are functional second-language users.) Some references are marked in the XML files, with attributes such as `references="R1010"` .
+
+The percentages may add up to more than 100% due to multilingual populations, or may be less than 100% due to illiteracy or because the data has not yet been gathered or processed. Languages with smaller populations might not be included.
+
+The following describes the meaning of some of these terms—as used in CLDR—in more detail.
+
+<a name="literacy_percent" href="#literacy_percent">literacy percent for the territory</a> — an estimate of the percentage of the country’s population that is functionally literate.
+
+<a name="language_population_percent" href="#language_population_percent">language population percent</a> — an estimate of the number of people who are functional in that language in that country, including both first and second language speakers. The level of fluency is that necessary to use a UI on a computer, smartphone, or similar devices, rather than complete fluency.
+
+<a name="literacy_percent_for_langPop" href="#literacy_percent_for_langPop">literacy percent for language population</a> — Within the set of people who are functional in the corresponding language (as specified by [language population percent](#language_population_percent)), this is an estimate of the percentage of those people who are functionally literate in that language, that is, who are _capable_ of reading or writing in that language, even if they do not regularly use it for reading or writing. If not specified, this defaults to the [literacy percent for the territory](#literacy_percent).
+
+<a name="writing_percent" href="#writing_percent">writing percent</a> — Within the set of people who are functional in the corresponding language (as specified by [language population percent](#language_population_percent)), this is an estimate of the percentage of those people who regularly read or write a significant amount in that language. Ideally, the regularity would be measured as “7-day actives”. If it is known that the language is not widely or commonly written, but there are no solid figures, the value is typically given 1%-5%.
+
+For a language such as Swiss German, which is typically not written, even though nearly the whole native Germanophone population _could_ write in Swiss German, the [literacy percent for language population](#literacy_percent_for_langPop) is high, but the [writing percent](#writing_percent) is low.
+
+<a name="official_language" href="#official_language">official language</a> — as used in CLDR, a language that can generally be used in all communications with a central government. That is, people can expect that essentially all communication from the government is available in that language (ballots, information pamphlets, legal documents, …) and that they can use that language in any communication to the central government (petitions, forms, filing lawsuits,…).
+
+Official languages for a country in this sense are not necessarily the same as those with official legal status in the country. For example, Irish is declared to be an official language in Ireland, but English has no such formal status in the United States. Languages such as the latter are called _de facto_ official languages. As another example, German has legal status in Italy, but cannot be used in all communications with the central government, and is thus not an official language _of Italy_ for CLDR purposes. It is, however, an _official regional language_. Other languages are declared to be official, but can’t actually be used for all communication with any major governmental entity in the country. There is no intention to mark such nominally official languages as “official” in the CLDR data.
+
+<a name="official_regional_language" href="#official_regional_language">official regional language</a> — a language that is official (_de jure_ or _de facto_) in a major region within a country, but does not qualify as an official language of the country as a whole. For example, it can be used in an official petition to a provincial government, but not the central government. The term “major” is meant to distinguish from smaller-scale usage, such as for a town or village.
+
+### 2.4 <a name="Territory_Based_Preferences" href="#Territory_Based_Preferences">Territory-Based Preferences</a>
+
+The default preference for several locale items is based solely on a [unicode_region_subtag](tr35.md#unicode_region_subtag), which may either be specified as part of a [unicode_language_id](tr35.md#unicode_language_id), inferred from other locale ID elements using the [Likely Subtags](tr35.md#Likely_Subtags) mechanism, or provided explicitly using an “rg” [Region Override](tr35.md#RegionOverride) locale key. For more information on this process see [Locale Inheritance and Matching](tr35.md#Locale_Inheritance). The specific items that are handled in this way are:
+
+* Default calendar (see [Calendar Preference Data](tr35-dates.md#Calendar_Preference_Data))
+* Default week conventions (first day of week and weekend days; see [Week Data](tr35-dates.md#Week_Data))
+* Default hour cycle (see [Time Data](tr35-dates.md#Time_Data))
+* Default currency (see [Supplemental Currency Data](tr35-numbers.md#Supplemental_Currency_Data))
+* Default measurement system and paper size (see [Measurement System Data](tr35-general.md#Measurement_System_Data))
+* Default units for specific usage (see [Preferred Units for Specific Usages](#Preferred_Units_For_Usage), below)
+
+#### 2.4.1 <a name="Preferred_Units_For_Usage" href="#Preferred_Units_For_Usage">Preferred Units for Specific Usages</a>
+
+_For information about preferred units and unit conversion, see Section 13 [Unit Conversion](#Unit_Conversion) and Section 14 [Unit Preferences](#Unit_Preferences)._
+
+### 2.5 <a name="rgScope" href="#rgScope">`<rgScope>`: Scope of the “rg” Locale Key</a>
+
+The supplemental `<rgScope>` element specifies the data paths for which the region used for data lookup is determined by the value of any “rg” key present in the locale identifier (see [Region Override](tr35.md#RegionOverride)). If no “rg” key is present, the region used for lookup is determined as usual: from the unicode_region_subtag if present, else inferred from the unicode_language_subtag. The DTD structure is as follows:
+
+```xml
+<!ELEMENT rgScope ( rgPath* ) >
+
+<!ELEMENT rgPath EMPTY >
+<!ATTLIST rgPath path CDATA #REQUIRED >
+```
+
+The `<rgScope>` element contains a list of `<rgPath>` elements, each of which specifies a datapath for which any “rg” key determines the region for lookup. For example:
+
+```xml
+<rgScope>
+ <rgPath path="//supplementalData/currencyData/fractions/info[@iso4217='#'][@digits='*'][@rounding='*'][@cashDigits='*'][@cashRounding='*']" draft="provisional" />
+ <rgPath path="//supplementalData/currencyData/fractions/info[@iso4217='#'][@digits='*'][@rounding='*'][@cashRounding='*']" draft="provisional" />
+ <rgPath path="//supplementalData/currencyData/fractions/info[@iso4217='#'][@digits='*'][@rounding='*']" draft="provisional" />
+ <rgPath path="//supplementalData/calendarPreferenceData/calendarPreference[@territories='#'][@ordering='*']" draft="provisional" />
+ ...
+ <rgPath path="//supplementalData/unitPreferenceData/unitPreferences[@category='*'][@usage='*'][@scope='*']/unitPreference[@regions='#'][@alt='*']" draft="provisional" />
+ <rgPath path="//supplementalData/unitPreferenceData/unitPreferences[@category='*'][@usage='*'][@scope='*']/unitPreference[@regions='#']" draft="provisional" />
+ <rgPath path="//supplementalData/unitPreferenceData/unitPreferences[@category='*'][@usage='*']/unitPreference[@regions='#'][@alt='*']" draft="provisional" />
+ <rgPath path="//supplementalData/unitPreferenceData/unitPreferences[@category='*'][@usage='*']/unitPreference[@regions='#']" draft="provisional" />
+</rgScope>
+```
+
+The exact format of the path is provisional in CLDR 29, but as currently shown:
+
+* An attribute value of `'*'` indicates that the path applies regardless of the value of the attribute.
+* Each path must have exactly one attribute whose value is marked here as `'#'`; in actual data items with this path, the corresponding value is a list of region codes. It is the region codes in this list that are compared with the region specified by the “rg” key to determine which data item to use for this path.
+
+## 3 <a name="Supplemental_Language_Data" href="#Supplemental_Language_Data">Supplemental Language Data</a>
+
+```xml
+<!ELEMENT languageData ( language* ) >
+<!ELEMENT language EMPTY >
+<!ATTLIST language type NMTOKEN #REQUIRED >
+<!ATTLIST language scripts NMTOKENS #IMPLIED >
+<!ATTLIST language territories NMTOKENS #IMPLIED >
+<!ATTLIST language variants NMTOKENS #IMPLIED >
+<!ATTLIST language alt NMTOKENS #IMPLIED >
+```
+
+The language data is used for consistency checking and testing. It provides a list of which languages are used with which scripts and in which countries. To a large extent, however, the territory list has been superseded by the data in _Section 2.2 [Supplemental Territory Information](#Supplemental_Territory_Information)_ .
+
+```xml
+<languageData>
+ <language type="af" scripts="Latn" territories="ZA" />
+ <language type="am" scripts="Ethi" territories="ET" />
+ <language type="ar" scripts="Arab" territories="AE BH DZ EG IN IQ JO KW LB LY MA OM PS QA SA SD SY TN YE" />
+ ...
+```
+
+If the language is not a modern language, or the script is not a modern script, or the language not a major language of the territory, then the `alt` attribute is set to secondary.
+
+```xml
+ <language type="fr" scripts="Latn" territories="IT US" alt="secondary" />
+ ...
+```
+
+## 3.1 <a name="Supplemental_Language_Grouping" href="#Supplemental_Language_Grouping">Supplemental Language Grouping</a>
+
+```xml
+<!ELEMENT languageGroups ( languageGroup* ) >
+<!ELEMENT languageGroup ( #PCDATA ) >
+<!ATTLIST languageGroup parent NMTOKEN #REQUIRED >
+```
+
+The language groups supply language containment. For example, the following indicates that aav is the Unicode language code for a language group that contains caq, crv, etc.
+
+```xml
+<languageGroup parent="fiu">chm et fi fit fkv hu izh kca koi krl kv liv mdf mns mrj myv smi udm vep vot vro</languageGroup>
+```
+
+The vast majority of the languageGroup data is extracted from wikidata, but may be overridden in some cases. The wikidata information is more fine-grained, but makes use of language groups that don't have ISO or Unicode language codes. Those language groups are omitted from the data. For example, wikidata has the following child-parent chain: only the first and last elements are present in the language groups.
+
+| Name | Wikidata Code | Language Code |
+| ------------------------- | ------------------------------------------------ | ------------- |
+| Finnish | [Q1412](https://www.wikidata.org/wiki/Q1412) | fi |
+| Finnic languages | [Q33328](https://www.wikidata.org/wiki/Q33328) |
+| Finno-Samic languages | [Q163652](https://www.wikidata.org/wiki/Q163652) |
+| Finno-Volgaic languages | [Q161236](https://www.wikidata.org/wiki/Q161236) |
+| Finno-Permic languages | [Q161240](https://www.wikidata.org/wiki/Q161240) |
+| Finno-Ugric languages | [Q79890](https://www.wikidata.org/wiki/Q79890) | fiu |
+
+## 4 <a name="Supplemental_Code_Mapping" href="#Supplemental_Code_Mapping">Supplemental Code Mapping</a>
+
+```xml
+<!ELEMENT codeMappings (languageCodes*, territoryCodes*, currencyCodes*) >
+
+<!ELEMENT languageCodes EMPTY >
+<!ATTLIST languageCodes type NMTOKEN #REQUIRED>
+<!ATTLIST languageCodes alpha3 NMTOKEN #REQUIRED>
+
+<!ELEMENT territoryCodes EMPTY >
+<!ATTLIST territoryCodes type NMTOKEN #REQUIRED>
+<!ATTLIST territoryCodes numeric NMTOKEN #REQUIRED>
+<!ATTLIST territoryCodes alpha3 NMTOKEN #REQUIRED>
+<!ATTLIST territoryCodes fips10 NMTOKEN #IMPLIED>
+<!ATTLIST territoryCodes internet NMTOKENS #IMPLIED> [deprecated]
+
+<!ELEMENT currencyCodes EMPTY >
+<!ATTLIST currencyCodes type NMTOKEN #REQUIRED>
+<!ATTLIST currencyCodes numeric NMTOKEN #REQUIRED>
+```
+
+The code mapping information provides mappings between the subtags used in the CLDR locale IDs (from BCP 47) and other coding systems or related information. The language codes are only provided for those codes that have two letters in BCP 47 to their ISO three-letter equivalents. The territory codes provide mappings to numeric (UN M.49 [[UNM49](tr35.md#UNM49)] codes, equivalent to ISO numeric codes), ISO three-letter codes, FIPS 10 codes, and the internet top-level domain codes.
+
+The alphabetic codes are only provided where different from the type. For example:
+
+```xml
+<territoryCodes type="AA" numeric="958" alpha3="AAA" />
+<territoryCodes type="AD" numeric="020" alpha3="AND" fips10="AN" />
+<territoryCodes type="AE" numeric="784" alpha3="ARE" />
+...
+<territoryCodes type="GB" numeric="826" alpha3="GBR" fips10="UK" />
+...
+<territoryCodes type="QU" numeric="967" alpha3="QUU" internet="EU" />
+...
+<territoryCodes type="XK" numeric="983" alpha3="XKK" />
+...
+```
+
+Where there is no corresponding code, sometimes private use codes are used, such as the numeric code for XK.
+
+The currencyCodes are mappings from three letter currency codes to numeric values (ISO 4217 [Current currency & funds code list](https://www.currency-iso.org/en/home/tables/table-a1.html).) The mapping currently covers only current codes and does not include historic currencies. For example:
+
+```xml
+<currencyCodes type="AED" numeric="784" />
+<currencyCodes type="AFN" numeric="971" />
+...
+<currencyCodes type="EUR" numeric="978" />
+...
+<currencyCodes type="ZAR" numeric="710" />
+<currencyCodes type="ZMW" numeric="967" />
+```
+
+## 5 ~~<a name="Telephone_Code_Data" href="#Telephone_Code_Data">Telephone Code Data</a>~~ (Deprecated)
+
+Deprecated in CLDR v34, and data removed.
+
+```xml
+<!ELEMENT telephoneCodeData ( codesByTerritory* ) >
+
+<!ELEMENT codesByTerritory ( telephoneCountryCode+ ) >
+<!ATTLIST codesByTerritory territory NMTOKEN #REQUIRED >
+
+<!ELEMENT telephoneCountryCode EMPTY >
+<!ATTLIST telephoneCountryCode code NMTOKEN #REQUIRED >
+<!ATTLIST telephoneCountryCode from NMTOKEN #IMPLIED >
+<!ATTLIST telephoneCountryCode to NMTOKEN #IMPLIED >
+```
+
+This data specifies the mapping between ITU telephone country codes [[ITUE164](tr35.md#ITUE164)] and CLDR-style territory codes (ISO 3166 2-letter codes or non-corresponding UN M.49 [[UNM49](tr35.md#UNM49)] 3-digit codes). There are several things to note:
+
+* A given telephone country code may map to multiple CLDR territory codes; +1 (North America Numbering Plan) covers the US and Canada, as well as many islands in the Caribbean and some in the Pacific
+* Some telephone country codes are for global services (for example, some satellite services), and thus correspond to territory code 001.
+* The mappings change over time (territories move from one telephone code to another). These changes are usually planned several years in advance, and there may be a period during which either telephone code can be used to reach the territory. While the CLDR telephone code data is not intended to include past changes, it is intended to incorporate known information on planned future changes, using `from` and `to` date attributes to indicate when mappings are valid.
+
+A subset of the telephone code data might look like the following (showing a past mapping change to illustrate the from and to attributes):
+
+```xml
+<codesByTerritory territory="001">
+ <telephoneCountryCode code="800"/> <!-- International Freephone Service -->
+ <telephoneCountryCode code="808"/> <!-- International Shared Cost Services (ISCS) -->
+ <telephoneCountryCode code="870"/> <!-- Inmarsat Single Number Access Service (SNAC) -->
+</codesByTerritory>
+<codesByTerritory territory="AS"> <!-- American Samoa -->
+ <telephoneCountryCode code="1" from="2004-10-02"/> <!-- +1 684 in North America Numbering Plan -->
+ <telephoneCountryCode code="684" to="2005-04-02"/> <!-- +684 now a spare code -->
+</codesByTerritory>
+<codesByTerritory territory="CA">
+ <telephoneCountryCode code="1"/> <!-- North America Numbering Plan -->
+</codesByTerritory>
+```
+
+## 6 ~~<a name="Postal_Code_Validation" href="#Postal_Code_Validation">Postal Code Validation (Deprecated)</a>~~
+
+Deprecated in v27. Please see other services that are kept up to date, such as:
+
+* [https://i18napis.appspot.com/address/data/US](https://i18napis.appspot.com/address/data/US)
+* [https://i18napis.appspot.com/address/data/CH](https://i18napis.appspot.com/address/data/CH)
+* ...
+
+```xml
+<!ELEMENT postalCodeData (postCodeRegex*) >
+<!ELEMENT postCodeRegex (#PCDATA) >
+<!ATTLIST postCodeRegex territoryId NMTOKEN #REQUIRED >
+```
+
+The Postal Code regex information can be used to validate postal codes used in different countries. In some cases, the regex is quite simple, such as for Germany:
+
+```xml
+<postCodeRegex territoryId="DE" >\d{5}</postCodeRegex>
+```
+
+The US code is slightly more complicated, since there is an optional portion:
+
+```xml
+<postCodeRegex territoryId="US" >\d{5}([ \-]\d{4})?</postCodeRegex>
+```
+
+The most complicated currently is the UK.
+
+## 7 <a name="Supplemental_Character_Fallback_Data" href="#Supplemental_Character_Fallback_Data">Supplemental Character Fallback Data</a>
+
+```xml
+<!ELEMENT characters ( character-fallback*) >
+
+<!ELEMENT character-fallback ( character* ) >
+<!ELEMENT character (substitute*) >
+<!ATTLIST character value CDATA #REQUIRED >
+
+<!ELEMENT substitute (#PCDATA) >
+```
+
+The `characters` element provides a way for non-Unicode systems, or systems that only support a subset of Unicode characters, to transform CLDR data. It gives a list of characters with alternative values that can be used if the main value is not available. For example:
+
+```xml
+<characters>
+ <character-fallback>
+ <character value="ß">
+ <substitute>ss</substitute>
+ </character>
+ <character value="Ø">
+ <substitute>Ö</substitute>
+ <substitute>O</substitute>
+ </character>
+ <character value="₧">
+ <substitute>Pts</substitute>
+ </character>
+ <character value="₣">
+ <substitute>Fr.</substitute>
+ </character>
+ </character-fallback>
+</characters>
+```
+
+The ordering of the `substitute` elements indicates the preference among them.
+
+That is, this data provides recommended fallbacks for use when a charset or supported repertoire does not contain a desired character. There is more than one possible fallback: the recommended usage is that when a character _value_ is not in the desired repertoire the following process is used, whereby the first value that is wholly in the desired repertoire is used.
+
+* `toNFC`(_value_)
+* other canonically equivalent sequences, if there are any
+* the explicit _substitutes_ value (in order)
+* `toNFKC`(_value_)
+
+## 8 <a name="Coverage_Levels" href="#Coverage_Levels">Coverage Levels</a>
+
+The following describes the coverage levels used for the current version of CLDR. This list will change between releases of CLDR. Each level adds to what is in the lower level.
+
+| Level | Description | |
+| ----: | ------------- | --- |
+| 0 | undetermined | Does not meet any of the following levels. |
+| 10 | core | The CLDR "core" data, which is defined as the basic information about the language and writing system that is required before other information can be added using the CLDR survey tool. See [http://cldr.unicode.org/index/cldr-spec/minimaldata](http://cldr.unicode.org/index/cldr-spec/minimaldata) |
+| 40 | basic | The minimum amount of locale data deemed necessary to create a "viable" locale in CLDR. Contains names for the languages, scripts, and territories associated with the language, numbering systems used in those languages, date and number formats, plus a few key values such as the values in Section 3.1 [Unknown or Invalid Identifiers](tr35.md#Unknown_or_Invalid_Identifiers). Also contains data associated with the most prominent languages and countries. |
+| 60 | moderate | Contains more types of data and more language and territory names than the basic level. If the language is associated with an EU country, then the moderate level attempts to complete the data as it pertains to all EU member countries. |
+| 80 | modern | Contains all fields in normal modern use, including all country names, and currencies in use. |
+| 100 | comprehensive | Contains complete localizations (or valid inheritance) for every possible field. |
+
+Levels 40 through 80 are based on the definitions and specifications listed in **8.1-8.4**. However, these principles are continually being refined by the CLDR technical committee, and so do not completely reflect the data that is actually used for coverage determination, which is under the XPath **//supplementalData/CoverageLevels**. For a view of the trunk version of this datafile, see [coverageLevels.xml](https://github.com/unicode-org/cldr/releases/tag/latest/common/supplemental/coverageLevels.xml). (As described in the [introduction to Supplemental Data](tr35-info.md#Supplemental_Data), the specific XML filename may change.)
+
+```xml
+<!ELEMENT coverageLevels ( approvalRequirements, coverageVariable*, coverageLevel* ) >
+<!ELEMENT coverageLevel EMPTY >
+<!ATTLIST coverageLevel inLanguage CDATA #IMPLIED >
+<!ATTLIST coverageLevel inScript CDATA #IMPLIED >
+<!ATTLIST coverageLevel inTerritory CDATA #IMPLIED >
+<!ATTLIST coverageLevel value CDATA #REQUIRED >
+<!ATTLIST coverageLevel match CDATA #REQUIRED >
+```
+
+For example, here is an example coverageLevel line.
+
+```xml
+<coverageLevel
+ value="30"
+ inLanguage="(de|fi)"
+ match="localeDisplayNames/types/type[@type='phonebook'][@key='collation']"/>
+```
+
+The `coverageLevel` elements are read in order, and the first match results in a coverage level value. The element matches based on the `inLanguage`, `inScript`, `inTerritory`, and `match` attribute values, which are regular expressions. For example, in the above example, a match occurs if the language is de or fi, and if the path is a locale display name for `collation=phonebook`.
+
+The `match` attribute value logically has `//ldml/` prefixed before it is applied. In addition, the `[@` is automatically quoted. Otherwise standard Perl/Java style regular expression syntax is used.
+
+```xml
+<!ELEMENT coverageVariable EMPTY >
+<!ATTLIST coverageVariable key CDATA #REQUIRED >
+<!ATTLIST coverageVariable value CDATA #REQUIRED >
+```
+
+The `coverageVariable` element allows us to create variables for certain regular expressions that are used frequently in the coverageLevel definitions above. Each coverage varible must contain a `key` / `value` pair of attributes, which can then be used to be substituted into a coverageLevel definition above.
+
+For example, here is an example coverageLevel line using coverageVariable substitution.
+
+```xml
+<coverageVariable key="%dayTypes" value="(sun|mon|tue|wed|thu|fri|sat)">
+<coverageVariable key="%wideAbbr" value="(wide|abbreviated)">
+<coverageLevel value="20" match="dates/calendars/calendar[@type='gregorian']/days/dayContext[@type='format']/dayWidth[@type='%wideAbbr']/day[@type='%dayTypes']"/>
+```
+
+In this example, the coverge variables %dayTypes and %wideAbbr are used to substitute their respective values into the match expression. This allows us to reuse the same variable for other coverageLevel matches that use the same regular expression fragment.
+
+```xml
+<!ELEMENT approvalRequirements ( approvalRequirement* ) >
+<!ELEMENT approvalRequirement EMPTY >
+<!ATTLIST approvalRequirement votes CDATA #REQUIRED >
+<!ATTLIST approvalRequirement locales CDATA #REQUIRED >
+<!ATTLIST approvalRequirement paths CDATA #REQUIRED >
+```
+
+The approvalRequirements allows to specify the number of survey tool votes required for approval, either based on locale, or path, or both. Certain locales require a higher voting threshhold (usually 8 votes instead of 4), in order to promote greater stability in the data. Furthermore, certain fields that are very high visibility fields, such as number formats, require a CLDR TC committee member's vote for approval.
+
+Here is an example of the approvalRequirements section.
+
+```xml
+<approvalRequirements>
+ <!-- "high bar" items -->
+ <approvalRequirement votes="20" locales="*" paths="//ldml/numbers/symbols[^/]++/(decimal|group)"/>
+ <!-- established locales - http://cldr.unicode.org/index/process#TOC-Draft-Status-of-Optimal-Field-Value -->
+ <approvalRequirement votes="8" locales="ar ca cs da de el es fi fr he hi hr hu it ja ko nb nl pl pt pt_PT ro ru sk sl sr sv th tr uk vi zh zh_Hant" paths=""/>
+ <!-- all other items -->
+ <approvalRequirement votes="4" locales="*" paths=""/>
+</approvalRequirements>
+```
+
+This section specifies that a TC vote (20 votes) is required for decimal and grouping separators. Furthermore it specifies that any field in the established locales list (i.e. ar, ca, cs, etc.) requires 8 votes, and that all other locales require 4 votes only.
+
+For more information on the CLDR Voting process, See [http://cldr.unicode.org/index/process](http://cldr.unicode.org/index/process)
+
+### 8.1 <a name="Coverage_Level_Definitions" href="#Coverage_Level_Definitions">Definitions</a>
+
+* _Target-Language_ is the language under consideration.
+* _Target-Territories_ is the list of territories found by looking up _Target-Language_ in the `<languageData>` elements in [Supplemental Language Data](tr35-info.md#Supplemental_Language_Data).
+* _Language-List_ is _Target-Language_, plus
+ * **basic:** Chinese, English, French, German, Italian, Japanese, Portuguese, Russian, Spanish, Unknown (de, en, es, fr, it, ja, pt, ru, zh, und
+ * **moderate:** basic + Arabic, Hindi, Korean, Indonesian, Dutch, Bengali, Turkish, Thai, Polish (ar, hi, ko, in, nl, bn, tr, th, pl). If an EU language, add the remaining official EU languages, currently: Danish, Greek, Finnish, Swedish, Czech, Estonian, Latvian, Lithuanian, Hungarian, Maltese, Slovak, Slovene (da, el, fi, sv, cs, et, lv, lt, hu, mt, sk, sl)
+ * **modern:** all languages that are official or major commercial languages of modern territories
+* _Target-Scripts_ is the list of scripts in which _Target-Language_ can be customarily written (found by looking up _Target-Language_ in the `<languageData>` elements in [Supplemental Language Data](tr35-info.md#Supplemental_Language_Data).)_,_ plus Unknown (Zzzz)_._
+* _Script-List_ is the _Target-Scripts_ plus the major scripts used for multiple languages
+ * Latin, Simplified Chinese, Traditional Chinese, Cyrillic, Arabic (Latn, Hans, Hant, Cyrl, Arab)
+* _Territory-List_ is the list of territories formed by taking the _Target-Territories_ and adding:
+ * **basic:** Brazil, China, France, Germany, India, Italy, Japan, Russia, United Kingdom, United States, Unknown (BR, CN, DE, GB, FR, IN, IT, JP, RU, US, ZZ)
+ * **moderate:** basic + Spain, Canada, Korea, Mexico, Australia, Netherlands, Switzerland, Belgium, Sweden, Turkey, Austria, Indonesia, Saudi Arabia, Norway, Denmark, Poland, South Africa, Greece, Finland, Ireland, Portugal, Thailand, Hong Kong SAR China, Taiwan (ES, BE, SE, TR, AT, ID, SA, NO, DK, PL, ZA, GR, FI, IE, PT, TH, HK, TW). If an EU language, add the remaining member EU countries: Luxembourg, Czech Republic, Hungary, Estonia, Lithuania, Latvia, Slovenia, Slovakia, Malta (LU, CZ, HU, ES, LT, LV, SI, SK, MT).
+ * **modern:** all current ISO 3166 territories, plus the UN M.49 [[UNM49](tr35.md#UNM49)] regions in [Supplemental Territory Containment](tr35-info.md#Supplemental_Territory_Containment).
+* _Currency-List_ is the list of current official currencies used in any of the territories in _Territory-List_, found by looking at the `region` elements in [Supplemental Territory Containment](tr35-info.md#Supplemental_Territory_Containment), plus Unknown (XXX).
+* _Calendar-List_ is the set of calendars in customary use in any of _Target-Territories_, plus Gregorian.
+* _Number-System-List_ is the set of number systems in customary use in the language.
+
+### 8.2 <a name="Coverage_Level_Data_Requirements" href="#Coverage_Level_Data_Requirements">Data Requirements</a>
+
+The required data to qualify for the level is then the following.
+
+1. localeDisplayNames
+ 1. _languages:_ localized names for all languages in _Language-List._
+ 2. _scripts:_ localized names for all scripts in _Script-List_.
+ 3. _territories:_ localized names for all territories in _Territory-List_.
+ 4. _variants, keys, types:_ localized names for any in use in _Target-Territories_; for example, a translation for PHONEBOOK in a German locale.
+
+2. dates: all of the following for each calendar in _Calendar-List_.
+ 1. calendars: localized names
+ 2. month names, day names, era names, and quarter names
+ * context=format and width=narrow, wide, & abbreviated
+ * plus context=standAlone and width=narrow, wide, & abbreviated, _if the grammatical forms of these are different than for context=format._
+ 3. week: minDays, firstDay, weekendStart, weekendEnd
+ * if some of these vary in territories in _Territory-List_, include territory locales for those that do.
+ 4. am, pm, eraNames, eraAbbr
+ 5. dateFormat, timeFormat: full, long, medium, short
+ 6. intervalFormatFallback
+
+3. numbers: symbols, decimalFormats, scientificFormats, percentFormats, currencyFormats for each number system in _Number-System-List_.
+4. currencies: displayNames and symbol for all currencies in _Currency-List_, for all plural forms
+5. transforms: (moderate and above) transliteration between Latin and each other script in _Target-Scripts._
+
+### 8.3 <a name="Coverage_Level_Default_Values" href="#Coverage_Level_Default_Values">Default Values</a>
+
+Items should _only_ be included if they are not the same as the default, which is:
+
+* what is in root, if there is something defined there.
+* for timezone IDs: the name computed according to _[Appendix J: Time Zone Display Names](tr35.md#Time_Zone_Fallback)_
+* for collation sequence, the UCA DUCET (Default Unicode Collation Element Table), as modified by CLDR.
+ * however, in that case the locale must be added to the validSubLocale list in [collation/root.xml](https://github.com/unicode-org/cldr/blob/master/common/collation/root.xml).
+* for currency symbol, language, territory, script names, variants, keys, types, the internal code identifiers, for example,
+ * currencies: EUR, USD, JPY, ...
+ * languages: en, ja, ru, ...
+ * territories: GB, JP, FR, ...
+ * scripts: Latn, Thai, ...
+ * variants: PHONEBOOK,...
+
+## 9 <a name="Appendix_Supplemental_Metadata" href="#Appendix_Supplemental_Metadata">Supplemental Metadata</a>
+
+Note that this section discusses the `<metadata>` element within the `<supplementalData>` element. For the per-locale metadata used in tests and the Survey Tool, see [10: Locale Metadata Element](#Metadata_Elements).
+
+The supplemental metadata contains information about the CLDR file itself, used to test validity and provide information for locale inheritance. A number of these elements are described in
+
+* Appendix I: [Inheritance and Validity](tr35.md#Inheritance_and_Validity)
+* Appendix K: [Valid Attribute Values](tr35.md#Valid_Attribute_Values)
+* Appendix L: [Canonical Form](tr35.md#Canonical_Form)
+* Appendix M: [Coverage Levels](#Coverage_Levels)
+
+### 9.1 <a name="Supplemental_Alias_Information" href="#Supplemental_Alias_Information">Supplemental Alias Information</a>
+
+```xml
+<!ELEMENT alias (languageAlias*,scriptAlias*,territoryAlias*,subdivisionAlias*,variantAlias*,zoneAlias*) >
+```
+
+_The following are common attributes for subelements of `<alias>`:_
+
+```xml
+<!ELEMENT *Alias EMPTY >
+<!ATTLIST *Alias type NMTOKEN #IMPLIED >
+<!ATTLIST *Alias replacement NMTOKEN #IMPLIED >
+<!ATTLIST *Alias reason ( deprecated | overlong ) #IMPLIED >
+```
+
+_The `languageAlias` has additional reasons_
+
+```xml
+<!ATTLIST languageAlias reason ( deprecated | overlong | macrolanguage | legacy | bibliographic ) #IMPLIED >
+```
+
+This element provides information as to parts of locale IDs that should be substituted when accessing CLDR data. This logical substitution should be done to both the locale id, and to any lookup for display names of languages, territories, and so on. The replacement for the language and territory types is more complicated: see _Part 1: [Core](tr35.md#Contents), Section 3.3.1 [BCP 47 Language Tag Conversion](tr35.md#BCP_47_Language_Tag_Conversion)_ for details.
+
+```xml
+<alias>
+ <languageAlias type="in" replacement="id">
+ <languageAlias type="sh" replacement="sr">
+ <languageAlias type="sh_YU" replacement="sr_Latn_YU">
+ ...
+ <territoryAlias type="BU" replacement="MM">
+ ...
+</alias>
+```
+
+Attribute values for the \*Alias values include the following:
+
+##### <a name="Alias_Attribute_Values" href="#Alias_Attribute_Values">Alias Attribute Values</a>
+
+| Attribute | Value | Description |
+| ----------- | ------------- | ----------- |
+| type | NMTOKEN | The code to be replaced |
+| replacement | NMTOKEN | The code(s) to replace it, space-delimited. |
+| reason | deprecated | The code in type is deprecated, such as 'iw' by 'he', or 'CS' by 'RS ME'. |
+| | overlong | The code in type is too long, such as 'eng' by 'en' or 'USA' or '840' by 'US' |
+| | macrolanguage | The code in type is an encompassed language that is replaced by a macrolanguage, such as '[arb'](https://www.sil.org/iso639-3/documentation.asp?id=arb) by 'ar'. |
+| | legacy | The code in type is a legacy code that is replaced by another code for compatiblity with established legacy usage, such as 'sh' by 'sr_Latn' |
+| | bibliographic | The code in type is a [bibliographic code](https://www.loc.gov/standards/iso639-2/langhome.html), which is replaced by a terminology code, such as 'alb' by 'sq'. |
+
+### 9.2 ~~<a name="Supplemental_Deprecated_Information" href="#Supplemental_Deprecated_Information">Supplemental Deprecated Information (Deprecated)</a>~~
+
+```xml
+<!ELEMENT deprecated ( deprecatedItems* ) >
+<!ATTLIST deprecated draft ( approved | contributed | provisional | unconfirmed | true | false ) #IMPLIED > <!-- true and false are deprecated. -->
+
+<!ELEMENT deprecatedItems EMPTY >
+<!ATTLIST deprecatedItems type ( standard | supplemental | ldml | supplementalData | ldmlBCP47 ) #IMPLIED > <!-- standard | supplemental are deprecated -->
+<!ATTLIST deprecatedItems elements NMTOKENS #IMPLIED >
+<!ATTLIST deprecatedItems attributes NMTOKENS #IMPLIED >
+<!ATTLIST deprecatedItems values CDATA #IMPLIED >
+```
+
+The `deprecatedItems` element was used to indicate elements, attributes, and attribute values that are deprecated. This means that the items are valid, but that their usage is strongly discouraged. This element and its subelements have been deprecated in favor of [DTD Annotations](tr35.md#DTD_Annotations).
+
+Where particular values are deprecated (such as territory codes like SU for Soviet Union), the names for such codes may be removed from the common/main translated data after some period of time. However, typically supplemental information for deprecated codes is retained, such as containment, likely subtags, older currency codes usage, etc. The English name may also be retained, for debugging purposes.
+
+### 9.3 <a name="Default_Content" href="#Default_Content">Default Content</a>
+
+```xml
+<!ELEMENT defaultContent EMPTY >
+<!ATTLIST defaultContent locales NMTOKENS #IMPLIED >
+```
+
+In CLDR, locales without territory information (or where needed, script information) provide data appropriate for what is called the _default content locale_. For example, the _en_ locale contains data appropriate for _en-US_, while the _zh_ locale contains content for _zh-Hans-CN_, and the _zh-Hant_ locale contains content for _zh-Hant-TW_. The default content locales themselves thus inherit all of their contents, and are empty.
+
+The choice of content is typically based on the largest literate population of the possible choices. Thus if an implementation only provides the base language (such as _en_), it will still get a complete and consistent set of data appropriate for a locale which is reasonably likely to be the one meant. Where other information is available, such as independent country information, that information can always be used to pick a different locale (such as _en-CA_ for a website targeted at Canadian users).
+
+If an implementation is to use a different default locale, then the data needs to be _pivoted_; all of the data from the CLDR for the current default locale pushed out to the locales that inherit from it, then the new default content locale's data moved into the base. There are tools in CLDR to perform this operation.
+
+For the relationship between Inheritance, DefaultContent, LikelySubtags, and LocaleMatching, see **_Section 4.2.6 [Inheritance vs Related Information](tr35.md#Inheritance_vs_Related)_**.
+
+## 10 <a name="Metadata_Elements" href="#Metadata_Elements">Locale Metadata Elements</a>
+
+Note: This section refers to the per-locale `<metadata>` element, containing metadata about a particular locale. This is in contrast to the [_Supplemental_ Metadata](#Appendix_Supplemental_Metadata), which is in the supplemental tree and is not specific to a locale.
+
+```xml
+<!ELEMENT metadata ( alias | ( casingData?, special* ) ) >
+<!ELEMENT casingData ( alias | ( casingItem*, special* ) ) >
+<!ELEMENT casingItem ( #PCDATA ) >
+<!ATTLIST casingItem type CDATA #REQUIRED >
+<!ATTLIST casingItem override (true | false) #IMPLIED >
+<!ATTLIST casingItem forceError (true | false) #IMPLIED >
+```
+
+The `<metadata>` element contains metadata about the locale for use by the Survey Tool or other tools in checking locale data; this data is not intended for export as part of the locale itself.
+
+The `<casingItem>` element specifies the capitalization intended for the majority of the data in a given category with the locale. The purpose is so that warnings can be issued to translators that anything deviating from that capitalization should be carefully reviewed. Its `type` attribute has one of the values used for the `<contextTransformUsage>` element above, with the exception of the special value "all"; its value is one of the following:
+
+* lowercase
+* titlecase
+
+The `<casingItem>` data is generated by a tool based on the data available in CLDR. In cases where the generated casing information is incorrect and needs to be manually edited, the `override` attribute is set to `true` so that the tool will not override the manual edits. When the casing information is known to be both correct and something that should apply to all elements of the specified type in a given locale, the `forceErr` attribute may be set to `true` to force an error instead of a warning for items that do not match the casing information.
+
+## 11 <a name="Version_Information" href="#Version_Information">Version Information</a>
+
+```xml
+<!ELEMENT version EMPTY >
+<!ATTLIST version cldrVersion CDATA #FIXED "27" >
+<!ATTLIST version unicodeVersion CDATA #FIXED "7.0.0" >
+```
+
+The `cldrVersion` attribute defines the CLDR version for this data, as published on [CLDR Releases/Downloads](http://cldr.unicode.org/index/downloads)
+
+The `unicodeVersion` attribute defines the version of the Unicode standard that is used to interpret data. Specifically, some data elements such as exemplar characters are expressed in terms of UnicodeSets. Since UnicodeSets can be expressed in terms of Unicode properties, their meaning depend on the Unicode version from which property values are derived.
+
+## 12 <a name="Parent_Locales" href="#Parent_Locales">Parent Locales</a>
+
+The parentLocales data is supplemental data, but is described in detail in the [core specification section 4.1.3.](tr35.md#Parent_Locales)
+
+## 13 <a name="Unit_Conversion" href="#Unit_Conversion">Unit Conversion</a>
+
+The unit conversion data ([units.xml](https://github.com/unicode-org/cldr/blob/master/common/supplemental/units.xml)) provides the data for converting all of the cldr unit identifiers to base units, and back. That allows conversion between any two convertible units, such as two units of length. For any two convertible units (such as acre and dunum) the first can be converted to the base unit (square-meter), then that base unit can be converted to the second unit.
+
+Many of the elements allow for a common @description attribute, to disambiguate the main attribute value or to explain the choice of other values. For example:
+```xml
+<unitConstant constant="glucose_molar_mass" value="180.1557"
+ description="derivation from the mean atomic weights according to STANDARD ATOMIC WEIGHTS 2019 on https://ciaaw.org/atomic-weights.htm"/>
+```
+
+```xml
+<!ELEMENT unitConstants ( unitConstant* ) >
+
+<!ELEMENT unitConstant EMPTY >
+
+<!ATTLIST unitConstant constant NMTOKEN #REQUIRED >
+
+<!ATTLIST unitConstant value CDATA #REQUIRED >
+
+<!ATTLIST unitConstant status NMTOKEN #IMPLIED >
+
+<!ATTLIST unitConstant description CDATA #IMPLIED >
+```
+
+### Constants
+
+The data uses a small set of constants for readability, such as:
+
+```xml
+<unitConstant constant="ft_to_m" value="0.3048" />
+<unitConstant constant="ft2_to_m2" value="ft_to_m*ft_to_m" />
+```
+The order of the elements in the file is significant.
+
+Each constant can have a value based on simple expressions using numbers, previous constants, plus the operators * and /. Parentheses are not allowed. The operator * binds more tightly than /, which may be unexpected. Thus a * b / c * d is interpreted as (a * b) / (c * d). A consequent of that is that a * b / c * d = a * b / c / d. In the value, the numbers represent rational values. So 0.3048 is interpreted as exactly 3048 / 10000.
+
+In the above case, ft2-to-m2 is a conversion constant for going from square feet to square meters. The expression evaluates to 0.09290304. Where the constants cannot be expressed as rationals, or where their interpretation is fluid, that is marked with a status value:
+
+```xml
+<unitConstant constant="PI" value="411557987 / 131002976" status='approximate' />
+```
+
+In such cases, software may decide to use different values for accuracy.
+
+An implementation need not use rationals directly for conversion; it could use doubles, for example, if only double accuracy is needed.
+
+### Conversion Data
+
+```xml
+<!ELEMENT convertUnits ( convertUnit* ) >
+
+<!ELEMENT convertUnit EMPTY >
+
+<!ATTLIST convertUnit source NMTOKEN #REQUIRED >
+
+<!ATTLIST convertUnit baseUnit NMTOKEN #REQUIRED >
+
+<!ATTLIST convertUnit factor CDATA #IMPLIED >
+
+<!ATTLIST convertUnit offset CDATA #IMPLIED >
+
+<!ATTLIST convertUnit description CDATA #IMPLIED >
+```
+
+The conversion data provides the data for converting all of the cldr unit identifiers to base units, and back. That allows conversion between any two convertible units, such as two units of length. For any two convertible units (such as acre and dunum) the first can be converted to the base unit (square-meter), then that base unit can be converted to the second unit.
+
+The data is expressed as conversions to the base unit. The information can also be used for the conversion back.
+
+Examples:
+
+```xml
+<convertUnit source='carat' baseUnit='kilogram' factor='0.0002'/>
+
+<convertUnit source='gram' baseUnit='kilogram' factor='0.001'/>
+
+<convertUnit source='ounce' baseUnit='kilogram' factor='lb_to_kg/16' systems="ussystem uksystem"/>
+
+<convertUnit source='fahrenheit' baseUnit='kelvin' factor='5/9' offset='2298.35/9' systems="ussystem uksystem"/>
+```
+
+For example, to convert from 3 carats to kilograms, the factor 0.0002 is used, resulting in 0.0006. To convert between carats and ounces, first the carets are converted to kilograms, then the kilograms to ounces (by reversing the mapping).
+
+The factor and offset use the same structure as in the value in unitConstant ; in particular, * binds more tightly than /.
+
+The conversion may also require an offset, such as the following:
+
+```xml
+<convertUnit source='fahrenheit' baseUnit='kelvin' factor='5/9' offset='2298.35/9' systems="ussystem uksystem"/>
+```
+
+The factor and offset can be simple expressions, just like the values in the unitConstants.
+
+Where a factor is not present, the value is 1; where an offset is not present, the value is 0.
+
+The `systems` attribute indicates the measurement system(s). Multiple values may be given; for example, _minute_ is marked as systems="metric ussystem uksystem"
+
+Attribute Value | Description
+------------ | -------------
+_si_ | the _International System of Units (SI)_
+_metric_ | a superset of the _si_ units, with some non-SI units accepted for use with the SI or simple multiples of metric units, such as pound-metric (= ½ kilogram)
+_ussystem_ | the inch-pound system as used in the US, also called _US Customary Units_
+_uksystem_ | the inch-pound system as used in the UK, also called _British Imperial Units_, differing mostly in units of volume
+
+CLDR follows conversion values where possible from:
+* [NIST Special Publication 1038](https://www.govinfo.gov/content/pkg/GOVPUB-C13-f10c2ff9e7af2091314396a2d53213e4/pdf/GOVPUB-C13-f10c2ff9e7af2091314396a2d53213e4.pdf)
+* [International Astronomical Union General Assembly](https://arxiv.org/pdf/1510.07674.pdf)
+
+See also [NIST Guide to the SI, Chapter 4: The Two Classes of SI Units and the SI Prefixes](https://www.nist.gov/pml/special-publication-811/nist-guide-si-chapter-4-two-classes-si-units-and-si-prefixes)
+
+For complex units, such as _pound-force-per-square-inch_, the conversions are computed by combining the conversions of each of the simple units: _pound-force_ and _inch_. Because the conversions in convertUnit are reversible, the computation can go from complex source unit to complex base unit to complex target units.
+
+Here is an example:
+
+> **50 foot-per-minute ⟹ X mile-per-hour**
+> ⟹ source: 1 foot
+> ⟹ factor: 381 / 1250 = 0.3048 meter
+> ⟹ source: 1 minute
+> ⟹ factor: 60 second
+> ⟹ intermediate: 127 / 500 = 0.254 meter-per-second
+> ⟹ mile-per-hour
+> ⟹ source: 1 mile
+> ⟹ factor: 201168 / 125 = 1609.344 meter
+> ⟹ source: 1 hour
+> ⟹ factor: 3600 second
+> ⟹ target: 25 / 44 ≅ 0.5681818 mile-per-hour
+
+**Reciprocals.** When you convert a complex unit to another complex unit, you typically convert the source to a complex base unit (like _meter-per-cubic-meter_), then convert the latter backwards to the desired target. However, there may not be a matching conversion from that complex base unit to the desired target unit. That is the case for converting from _mile-per-gallon_ (used in the US) to _liter-per-100-kilometer_ (used in Europe and elsewhere). When that happens, the reciprocal of the complex base unit is used, as in the following example:
+
+> **50 mile-per-gallon ⟹ X liter-per-100-kilometer**
+> ⟹ source: 1 mile
+> ⟹ factor: 201168 / 125 = 1609.344 meter
+> ⟹ source: 1 gallon
+> ⟹ factor: 473176473 / 125000000000 ≅ 0.003785412 cubic-meter
+> ⟹ intermediate: 2400000000000 / 112903 ≅ 2.125719E7 meter-per-cubic-meter
+> ⟹ liter-per-100-kilometer
+> ⟹ source: 1 liter
+> ⟹ factor: 1 / 1000 = 0.001 cubic-meter
+> ⟹ source: 1 100-kilometer
+> ⟹ factor: 100000 meter
+> **⟹ 1/intermediate: 112903 / 2400000000000 ≅ 4.704292E-8 cubic-meter-per-meter**
+> ⟹ target: 112903 / 24000 ≅ 4.704292 liter-per-100-kilometer
+
+This applies to more than just these cases: one can convert from any unit to related reciprocals as in the following example:
+
+> **50 foot-per-minute ⟹ X hour-per-mile**
+> ⟹ source: 1 foot
+> ⟹ factor: 381 / 1250 = 0.3048 meter
+> ⟹ source: 1 minute
+> ⟹ factor: 60 second
+> ⟹ intermediate: 127 / 500 = 0.254 meter-per-second
+> ⟹ hour-per-mile
+> ⟹ source: 1 hour
+> ⟹ factor: 3600 second
+> ⟹ source: 1 mile
+> ⟹ factor: 201168 / 125 = 1609.344 meter
+> **⟹ 1/intermediate: 500 / 127 ≅ 3.937008 second-per-meter**
+> ⟹ target: 44 / 25 = 1.76 hour-per-mile
+
+#### Exceptional Cases
+
+##### Identities
+
+For completeness, identity mappings are also provided for the base units themselves, such as:
+
+```xml
+<convertUnit source='meter' baseUnit='meter' />
+```
+
+##### Aliases
+
+In a few instances the old identifiers are deprecated in favor of regular syntax. Implementations should handle both on input:
+
+```xml
+<unitAlias type="meter-per-second-squared" replacement="meter-per-square-second" reason="deprecated"/>
+<unitAlias type="liter-per-100kilometers" replacement="liter-per-100-kilometer" reason="deprecated"/>
+<unitAlias type="pound-foot" replacement="pound-force-foot" reason="deprecated"/>
+<unitAlias type="pound-per-square-inch" replacement="pound-force-per-square-inch" reason="deprecated"/>
+```
+
+These use the standard alias elements in XML, and are also included in the [units.xml](https://github.com/unicode-org/cldr/blob/master/common/supplemental/units.xml) file.
+
+##### “Duplicate” Units
+
+Some CLDR units are provided simply because they have different names in some languages. For example, year and year-person, or foodcalorie and kilocalorie. One CLDR unit is not convertible (temperature-generic) it is only used for the translation (where the exact unit would be understood by context).
+
+##### Discarding Offsets
+
+The temperature units are special. When they represent a scale, they have an offset. But where they represent an amount, such as in complex units, they do not. So celsius-per-second is the same as kelvin-per-second.
+
+#### Unresolved Units
+
+Some SI units contain the same units in the numerator and denominator, so those cannot be resolved. For example, if cubic-meter-per-meter were always resolved, then _consumption_ (like “liter-per-kilometer”) could not be distinguished from _area_ (square-meter).
+
+However, in conversion, it may be necessary to resolve them in order to find a match. For example, kilowatt-hour maps to the base unit kilogram-square-meter-second-per-cubic-second, but that needs to be resolved to kilogram-square-meter-per-square-second in order matched against an _energy._
+
+## Quantities and Base Units
+
+```xml
+<!ELEMENT unitQuantities ( unitQuantity* ) >
+
+<!ELEMENT unitQuantity EMPTY >
+
+<!ATTLIST unitQuantity baseUnit NMTOKEN #REQUIRED >
+
+<!ATTLIST unitQuantity quantity NMTOKENS #REQUIRED >
+
+<!ATTLIST unitQuantity status NMTOKEN #IMPLIED >
+
+<!ATTLIST unitQuantity description CDATA #IMPLIED >
+```
+
+Conversion is supported between comparable units. Those can be simple units, such as length, or more complex ‘derived’ units that are built up from _base units_. The `<unitQuantities>` element provides information on the base units used for conversion. It also supplies information about their _quantity_: mass, length, time, etc., and whether they are simple or not.
+
+Examples:
+
+```xml
+<unitQuantity baseUnit='kilogram' quantity='mass' status='simple'/>
+<unitQuantity baseUnit='meter-per-second' quantity='speed'/>
+```
+
+The order of the elements in the file is significant, since it is used in [Unit_Identifier_Normalization](#Unit_Identifier_Normalization).
+
+The quantity values themselves are informative. Therer mayreflecting that _force per area_ can be referenced as either _pressure_ or _stress_, for example). The quantity for a complex unit that has a reciprocal is formed by prepending “inverse-” to the quantity, such as _inverse-consumption._
+
+The base units for the quantities and the quantities themselves are based on [NIST special publication 811](https://www.nist.gov/pml/special-publication-811) and the earlier [NIST Special Publication 1038](https://www.govinfo.gov/content/pkg/GOVPUB-C13-f10c2ff9e7af2091314396a2d53213e4/pdf/GOVPUB-C13-f10c2ff9e7af2091314396a2d53213e4.pdf). In some cases, a different unit is chosen for the base. For example, a _revolution_ (360°) is chosen for the base unit for angles instead of the SI _radian_, and _item_ instead of the SI _mole_. Additional base units are added where necessary, such as _bit_ and _pixel_.
+
+This data is not necessary for conversion, but is needed for [Unit_Identifier_Normalization](#Unit_Identifier_Normalization). Some of the `unitQuantity` elements are not needed to convert CLDR units, but are included for completeness. Example:
+
+```xml
+<unitQuantity baseUnit='ampere-per-square-meter' quantity='current-density'/>
+```
+
+### UnitType vs Quantity
+
+The unitType (as in “length-meter”) is not the same as the quantity. It is often broader: for example, the unitType _electric_ corresponds to the quantities _electric-current, electric-resistance,_ and _voltage_. The unitType itself is also informative, and can be dropped from a long unit identifier to get a still-unique short unit identifier.
+
+### <a name="Unit_Identifier_Normalization" href="#Unit_Identifier_Normalization">Unit Identifier Normalization</a>
+
+There are many possible ways to construct complex units. For comparison of unit identifiers, an implementation can normalize in the following way:
+
+1. Convert all but the first -per- to simple multiplication. The result then has the format of /numerator ( -per- denominator)?/
+ * foot-per-second-per-second ⇒ foot-per-second-second
+2. Within each of the numerator and denominator:
+3. Convert multiple instances of a unit into the appropriate power.
+ * foot-per-second-second ⇒ foot-per-square-second
+ * kilogram-meter-kilogram ⇒ meter-square-kilogram
+4. For each single unit, disregarding prefixes and powers, get the order of the _simple_ unit among the `unitQuantity` elements in the [units.xml](https://github.com/unicode-org/cldr/blob/master/common/supplemental/units.xml). Sort the single units by that order, using a stable sort. If there are private-use single units, sort them after all the non-private use single units.
+ * meter-square-kilogram => square-kilogram-meter
+ * meter-square-gram ⇒ square-gram-meter
+5. As an edge case, there could be two adjacent single units with the same _simple_ unit but different prefixes, such as _meter-kilometer_. In that case, sort the larger prefixes first, such as _kilometer-meter_ or _kibibyte-kilobyte_
+6. Within private-use single units, sort by the simple unit alphabetically.
+
+The examples in #4 are due to the following ordering of the `unitQuantity` elements:
+
+```xml
+1. <unitQuantity baseUnit='candela' quantity='luminous-intensity' status='simple'/>
+2. <unitQuantity baseUnit='kilogram' quantity='mass' status='simple'/>
+3. <unitQuantity baseUnit='meter' quantity='length' status='simple'/>
+4. …
+```
+
+## Mixed Units
+
+Mixed units, or unit sequences, are units with the same base unit which are listed in sequence. Common examples are feet and inches, meters and centimeters, and hours, minutes, and seconds. Mixed unit identifiers are expressed using the "-and-" infix, as in "foot-and-inch", "meter-and-centimeter", and "hour-and-minute-and-second".
+
+Scalar values for mixed units are expressed in the largest unit, according to the sort order discussed above in "Normalization". For example, numbers for "foot-and-inch" are expressed in feet.
+
+Mixed units are expected to be rendered in the order of the tokens in the identifier. For example, the value 1.25 with the identifier "foot-and-inch" should be rendered as "1 foot and 3 inches" and 1.25 inch-and-foot should be rendered as “3 inches and 1 foot". **NOTE:** the correct application of this may require adding locales to the regions attribute set.
+
+## Testing
+
+The [unitsTest.txt](https://github.com/unicode-org/cldr/blob/master/common/testData/units/unitsTest.txt) file supplies a list of all the CLDR units with conversions, for testing implementations. Instructions for use are supplied in the header of the file.
+
+## 14 <a name="Unit_Preferences" href="#Unit_Preferences">Unit Preferences</a>
+
+Different locales have different preferences for which unit or combination of units is used for a particular usage, such as measuring a person’s height. This is more fine-grained than merely a preference for metric versus US or UK measurement systems. For example, one locale may use meters alone, while another may use centimeters alone or a combination of meters and centimeters; a third may use inches alone, or (informally) a combination of feet and inches.
+
+The CLDR data is intended to map from a particular usage — e.g. measuring the height of a person or the fuel consumption of an automobile — to the unit or combination of units typically used for that usage in a given region. Considerations for such a mapping include:
+
+* The list of possible usages large and open-ended. The intent here is to start with a small set for which there is an urgent need, and expand as necessary.
+* Even for a given usage such a measuring a road distance, there are multiple ranges in use. For example, one set of units may be used for indicating the distance to the next city (kilometers or miles), while another may be used for indicating the distance to the next exit (meters, yards, or feet).
+* There are also differences between more formal usage (official signage, medical records) and more informal usage (conversation, texting).
+* For some usages, the measurement may be expressed using a sequence of units, such as “1 meter, 78 centimeters” or “12 stone, 2 pounds”.
+
+The DTD structure is as follows:
+
+```xml
+<!ELEMENT unitPreferenceData ( unitPreferences* ) >
+
+<!ELEMENT unitPreferences ( unitPreference* ) >
+<!ATTLIST unitPreferences category NMTOKEN #REQUIRED >
+<!ATTLIST unitPreferences usage NMTOKENS #REQUIRED >
+
+<!ELEMENT unitPreference ( #PCDATA ) >
+<!ATTLIST unitPreference regions NMTOKENS #REQUIRED >
+<!ATTLIST unitPreference geq NMTOKEN #IMPLIED >
+<!ATTLIST unitPreference skeleton CDATA #IMPLIED >
+```
+
+<table><tbody>
+<tr><td>category</td><td>A unit quantity, such as “area” or “length”. See Section 13 Unit Conversion</td></tr>
+<tr><td>usage</td><td>A type of usage, such as person-height.</td></tr>
+<tr><td>regions</td><td>One or more region identifiers (macroregions or regions), subdivision identifiers, or language identifiers, such as 001, US, usca, and de-CH.</td></tr>
+<tr><td>geq</td><td>A threshold value, in a unit determined by the unitPreference element value. The unitPreference element is only used for values higher than this value (and lower than any higher value).<br/>The value must be non-negative. For picking negative units (-3 meters), use the absolute value to pick the unit.</td></tr>
+<tr><td>skeleton</td><td>A skeleton in the ICU number format syntax, that can be used to format unit</td></tr>
+</tbody></table>
+
+**Note:** As of CLDR 37, the `<unitPreference>` `geq` attribute replaces the now-deprecated `<unitPreferences>` `scope` attribute.
+
+Example:
+
+```xml
+<unitPreferences category="length" usage="default">
+ <unitPreference regions="001">kilometer</unitPreference>
+ <unitPreference regions="001">meter</unitPreference>
+ <unitPreference regions="001">centimeter</unitPreference>
+ <unitPreference regions="US GB">mile</unitPreference>
+ <unitPreference regions="US GB">foot</unitPreference>
+ <unitPreference regions="US GB">inch</unitPreference>
+</unitPreferences>
+```
+
+The above information says that for default usage, in the US people use mile, foot, and inch, where people in the rest of the world (001) use kilometer, meter, and centimeter. Take another example:
+
+```xml
+<unitPreferences category="length" usage="road">
+ <unitPreference regions="001" geq="0.9">kilometer</unitPreference>
+ <unitPreference regions="001" geq="300.0" skeleton="precision-increment/50">meter</unitPreference>
+ <unitPreference regions="001" skeleton="precision-increment/10">meter</unitPreference>
+ <unitPreference regions="001">meter</unitPreference>
+ <unitPreference regions="US" geq="0.5">mile</unitPreference>
+ <unitPreference regions="US" geq="100.0" skeleton="precision-increment/50">foot</unitPreference>
+ <unitPreference regions="US" skeleton="precision-increment/10">foot</unitPreference>
+ <unitPreference regions="GB" geq="0.5">mile</unitPreference>
+ <unitPreference regions="GB" geq="100.0" skeleton="precision-increment/50">yard</unitPreference>
+ <unitPreference regions="GB">yard</unitPreference>
+ <unitPreference regions="SE" geq="0.1">mile-scandinavian</unitPreference>
+</unitPreferences>
+```
+
+The intended usage is to take the measure to be formatted, and the desired category, usage, and region and find the best match as follows.
+
+* First, see if there is an exact match, producing a list of one or more `unitPreference` elements. For example, length/road/GB has a match above, giving
+
+ ```xml
+ <unitPreference regions="GB" geq="0.5">mile</unitPreference>
+ <unitPreference regions="GB" geq="100.0" skeleton="precision-increment/50">yard</unitPreference>
+ <unitPreference regions="GB">yard</unitPreference>
+ ```
+
+* If there is no match for the category, then the data is not available.
+* Otherwise, given the category:
+ * If there is an exact match for the usage, but not for the region, try region=”001”.
+* The specification allows for [containment regions](https://unicode-org.github.io/cldr-staging/charts/38/supplemental/territory_containment_un_m_49.html) , [region subdivisions](https://unicode-org.github.io/cldr-staging/charts/38/supplemental/territory_subdivisions.html).
+* While in version 37 only 001 is used, in the future the data may contain others.
+* The fallback is: subdivision2 ⇒ subdivision1 ⇒ region/country ⇒ subcontinent ⇒ continent ⇒ world
+* Example:
+
+ | Region/subdivision | Code |
+ | ------------------ | ----- |
+ | Blackpool | gbbpl |
+ | England | gbeng |
+ | United Kingdom | GB |
+ | Northern Europe | 154 |
+ | Europe | 150 |
+ | World | 001 |
+
+* If there is an exact match for the region, but not for the usage,
+ * If the usage has multiple parts (eg land-agriculture-grain) drop the last part (eg land-agriculture)
+ * Repeat dropping the last part and trying the result (eg land)
+ * If you eliminate all of them, try usage=”default”.
+ * If there is no exact match for either one, try usage=”default”, region=”001”. That will always match.
+
+Once you have a list of `unitPreference` elements, find the applicable unitPreference. For a given category, usage, and set of regions (eg “US GB”), the units are ordered from largest to smallest.
+
+* The geq item gives the value for the unit in the element value (or for the largest unit for mixed units). For example,
+ * `...geq="0.5">mile<...` means 0.9 kilometers
+ * `...geq="100.0">foot:inch<...` means 100 feet
+* If there is no `geq` attribute, then the implicit value is 1.0.
+* Implementations will probably convert the values into the base units, so that the comparison is fast. Thus the above would be converted internally to something like:
+ * ≥ 804.672 meters ⇒ mile
+ * ≥ 30.48 meters ⇒ foot:inch
+* Search for the first matching unitPreference for the input measure. If there is no match (eg < 100 feet in the above example), take the last unitPreference. That is, the last unitPreference is effectively geq="0"
+
+Once a matching `unitPreference` element is found:
+
+* The unit is the element value
+* The skeleton (if there is one) supplies formatting information for the unit. API settings may allow that to be overridden.
+ * The syntax and semantics for the skeleton value are defined by the [ICU Number Skeletons](https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html) document.
+* If the unit is mixed (eg foot:inch) the skeleton applies to the final subunit; the higher subunits are formatted as integers.
+* If the skeleton is missing, the default is skeleton="**precision-integer/@@\***". However, the client can also override or tune the number formatting.
+
+### Constraints
+
+* For a given category, there is always a “default” usage.
+* For a given category, and usage:
+ * There is always a 001 region.
+ * None of the sets of regions can overlap. That is, you can’t have “US” on one line and “US GB” on another. You _can_ have two lines with “US”, for different sizes of units.
+* For a given category, usage, and region-set
+ * The unitPreferences are in descending order.
+
+### Caveats
+
+The extended unit support is still being developed further. See the Known Issues on the release page for futher information.
+
+* * *
+
+Copyright © 2001–2021 Unicode, Inc. All Rights Reserved. The Unicode Consortium makes no expressed or implied warranty of any kind, and assumes no liability for errors or omissions. No liability is assumed for incidental and consequential damages in connection with or arising out of the use of the information or programs contained or accompanying this technical report. The Unicode [Terms of Use](https://unicode.org/copyright.html) apply.
+
+Unicode and the Unicode logo are trademarks of Unicode, Inc., and are registered in some jurisdictions.
diff --git a/docs/ldml/tr35-keyboards.html b/docs/ldml/tr35-keyboards.html
deleted file mode 100644
index 47804b0..0000000
--- a/docs/ldml/tr35-keyboards.html
+++ /dev/null
@@ -1,2612 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"https://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
- <meta name="generator" content=
- "HTML Tidy for HTML5 for Apple macOS version 5.6.0">
- <meta http-equiv="Content-Type" content=
- "text/html; charset=utf-8">
- <meta http-equiv="Content-Language" content="en-us">
- <link rel="stylesheet" href=
- "../reports.css" type="text/css">
- <title>UTS #35: Unicode LDML: Keyboards</title>
- <style type="text/css">
- <!--
- .dtd {
- font-family: monospace;
- font-size: 90%;
- background-color: #CCCCFF;
- border-style: dotted;
- border-width: 1px;
- }
-
- .xmlExample {
- font-family: monospace;
- font-size: 80%
- }
-
- .blockedInherited {
- font-style: italic;
- font-weight: bold;
- border-style: dashed;
- border-width: 1px;
- background-color: #FF0000
- }
-
- .inherited {
- font-weight: bold;
- border-style: dashed;
- border-width: 1px;
- background-color: #00FF00
- }
-
- .element {
- font-weight: bold;
- color: red;
- }
-
- .attribute {
- font-weight: bold;
- color: maroon;
- }
-
- .attributeValue {
- font-weight: bold;
- color: blue;
- }
-
- li, p {
- margin-top: 0.5em;
- margin-bottom: 0.5em
- }
-
- h2, h3, h4, table {
- margin-top: 1.5em;
- margin-bottom: 0.5em;
- }
- -->
- </style>
-</head>
-<body>
- <table class="header" width="100%">
- <tr>
- <td class="icon"><a href="https://unicode.org"><img alt=
- "[Unicode]" src="../logo60s2.gif"
- width="34" height="33" style=
- "vertical-align: middle; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px; border-top-width: 0px;"></a>
- <a class="bar" href=
- "https://www.unicode.org/reports/">Technical Reports</a></td>
- </tr>
- <tr>
- <td class="gray"> </td>
- </tr>
- </table>
- <div class="body">
- <h2 style="text-align: center">Unicode Technical Standard #35</h2>
- <h1>Unicode Locale Data Markup Language (LDML)<br>
- Part 7: Keyboards</h1>
- <!-- At least the first row of this header table should be identical across the parts of this UTS. -->
- <table border="1" cellpadding="2" cellspacing="0" class="wide">
- <tr>
- <td>Version</td>
- <td>38</td>
- </tr>
- <tr>
- <td>Editors</td>
- <td>Steven Loomis (<a href=
- "mailto:srl@icu-project.org">srl@icu-project.org</a>) and
- <a href="tr35.html#Acknowledgments">other CLDR committee
- members</a></td>
- </tr>
- </table>
- <p>For the full header, summary, and status, see <a href=
- "tr35.html">Part 1: Core</a></p>
- <h3><i>Summary</i></h3>
- <p>This document describes parts of an XML format
- (<i>vocabulary</i>) for the exchange of structured locale data.
- This format is used in the <a href=
- "https://unicode.org/cldr/">Unicode Common Locale Data
- Repository</a>.</p>
- <p>This is a partial document, describing keyboard mappings.
- For the other parts of the LDML see the <a href=
- "tr35.html">main LDML document</a> and the links above.</p>
- <h3><i>Status</i></h3>
-
- <!-- NOT YET APPROVED
- <p>
- <i class="changed">This is a<b><font color="#ff3333">
- draft </font></b>document which may be updated, replaced, or superseded by
- other documents at any time. Publication does not imply endorsement
- by the Unicode Consortium. This is not a stable document; it is
- inappropriate to cite this document as other than a work in
- progress.
- </i>
- </p>
- END NOT YET APPROVED -->
- <!-- APPROVED -->
- <p><i>This document has been reviewed by Unicode members and
- other interested parties, and has been approved for publication
- by the Unicode Consortium. This is a stable document and may be
- used as reference material or cited as a normative reference by
- other specifications.</i></p>
- <!-- END APPROVED -->
-
- <blockquote>
- <p><i><b>A Unicode Technical Standard (UTS)</b> is an
- independent specification. Conformance to the Unicode
- Standard does not imply conformance to any UTS.</i></p>
- </blockquote>
- <p><i>Please submit corrigenda and other comments with the CLDR
- bug reporting form [<a href="tr35.html#Bugs">Bugs</a>]. Related
- information that is useful in understanding this document is
- found in the <a href="tr35.html#References">References</a>. For
- the latest version of the Unicode Standard see [<a href=
- "tr35.html#Unicode">Unicode</a>]. For a list of current Unicode
- Technical Reports see [<a href=
- "tr35.html#Reports">Reports</a>]. For more information about
- versions of the Unicode Standard, see [<a href=
- "tr35.html#Versions">Versions</a>].</i></p>
- <h2><a name="Parts" href="#Parts" id="Parts">Parts</a></h2>
- <!-- This section of Parts should be identical in all of the parts of this UTS. -->
- <p>The LDML specification is divided into the following
- parts:</p>
- <ul class="toc">
- <li>Part 1: <a href="tr35.html#Contents">Core</a> (languages,
- locales, basic structure)</li>
- <li>Part 2: <a href="tr35-general.html#Contents">General</a>
- (display names & transforms, etc.)</li>
- <li>Part 3: <a href="tr35-numbers.html#Contents">Numbers</a>
- (number & currency formatting)</li>
- <li>Part 4: <a href="tr35-dates.html#Contents">Dates</a>
- (date, time, time zone formatting)</li>
- <li>Part 5: <a href=
- "tr35-collation.html#Contents">Collation</a> (sorting,
- searching, grouping)</li>
- <li>Part 6: <a href=
- "tr35-info.html#Contents">Supplemental</a> (supplemental
- data)</li>
- <li>Part 7: <a href=
- "tr35-keyboards.html#Contents">Keyboards</a> (keyboard
- mappings)</li>
- </ul>
- <h2><a name="Contents" href="#Contents" id="Contents">Contents
- of Part 7, Keyboards</a></h2>
- <!-- START Generated TOC: CheckHtmlFiles -->
- <ul class="toc">
- <li>1 <a href="#Introduction">Keyboards</a></li>
- <li>2 <a href="#Goals_and_Nongoals">Goals and
- Nongoals</a></li>
- <li>3 <a href="#Definitions">Definitions</a></li>
- <li>4 <a href="#File_and_Dir_Structure">File and Directory
- Structure</a></li>
- <li>5 <a href="#Element_Heirarchy_Layout_File">Element
- Hierarchy - Layout File</a>
- <ul class="toc">
- <li>5.1 <a href="#Element_Keyboard">Element:
- keyboard</a></li>
- <li>5.2 <a href="#Element_version">Element:
- version</a></li>
- <li>5.3 <a href="#Element_generation">Element:
- generation</a></li>
- <li>5.4 <a href="#Element_names">Element: names</a></li>
- <li>5.5 <a href="#Element_name">Element: name</a></li>
- <li>5.6 <a href="#Element_settings">Element:
- settings</a></li>
- <li>5.7 <a href="#Element_keyMap">Element: keyMap</a>
- <ul class="toc">
- <li>Table: <a href="#Possible_Modifier_Keys">Possible
- Modifier Keys</a></li>
- </ul>
- </li>
- <li>5.8 <a href="#Element_map">Element: map</a></li>
- <li>5.9 <a href="#Element_import">Element:
- import</a></li>
- <li>5.10 <a href="#Element_displayMap">Element:
- displayMap</a></li>
- <li>5.11 <a href="#Element_display">Element:
- display</a></li>
- <li>5.12 <a href="#Element_layer">Element: layer</a></li>
- <li>5.13 <a href="#Element_row">Element: row</a></li>
- <li>5.14 <a href="#Element_switch">Element:
- switch</a></li>
- <li>5.15 <a href="#Element_vkeys">Element: vkeys</a></li>
- <li>5.16 <a href="#Element_vkey">Element: vkey</a></li>
- <li>5.17 <a href="#Element_transforms">Element:
- transforms</a></li>
- <li>5.18 <a href="#Element_transform">Element:
- transform</a></li>
- <li>5.19 <a href="#Element_reorder">Element:
- reorder</a></li>
- <li>5.20 <a href="#Element_final">Element: final</a></li>
- <li>5.21 <a href="#Element_backspaces">Element:
- backspaces</a></li>
- <li>5.22 <a href="#Element_backspace">Element:
- backspace</a></li>
- </ul>
- </li>
- <li>6 <a href="#Element_Heirarchy_Platform_File">Element
- Hierarchy - Platform File</a>
- <ul class="toc">
- <li>6.1 <a href="#Element_platform">Element:
- platform</a></li>
- <li>6.2 <a href="#Element_hardwareMap">Element:
- hardwareMap</a></li>
- <li>6.3 <a href="#Element_hardwareMap_map">Element:
- map</a></li>
- </ul>
- </li>
- <li>7 <a href="#Invariants">Invariants</a></li>
- <li>8 <a href="#Data_Sources">Data Sources</a>
- <ul class="toc">
- <li>Table: <a href="#Key_Map_Data_Sources">Key Map Data
- Sources</a></li>
- </ul>
- </li>
- <li>9 <a href="#Keyboard_IDs">Keyboard IDs</a>
- <ul class="toc">
- <li>9.1 <a href="#Principles_for_Keyboard_Ids">Principles
- for Keyboard Ids</a></li>
- </ul>
- </li>
- <li>10 <a href="#Platform_Behaviors_in_Edge_Cases">Platform
- Behaviors in Edge Cases</a></li>
- </ul><!-- END Generated TOC: CheckHtmlFiles -->
- <h2>1 <a name="Introduction" href="#Introduction" id=
- "Introduction">Keyboards</a><a name="Keyboards" href=
- "#Keyboards" id="Keyboards"></a></h2>
- <p>The CLDR keyboard format provides for the communication of
- keyboard mapping data between different modules, and the
- comparison of data across different vendors and platforms. The
- standardized identifier for keyboards can be used to
- communicate, internally or externally, a request for a
- particular keyboard mapping that is to be used to transform
- either text or keystrokes. The corresponding data can then be
- used to perform the requested actions.</p>
- <p>For example, a web-based virtual keyboard may transform text
- in the following way. Suppose the user types a key that
- produces a "W" on a qwerty keyboard. A web-based tool using an
- azerty virtual keyboard can map that text ("W") to the text
- that would have resulted from typing a key on an azerty
- keyboard, by transforming "W" to "Z". Such transforms are in
- fact performed in existing web applications.</p>
- <p>The data can also be used in analysis of the capabilities of
- different keyboards. It also allows better interoperability by
- making it easier for keyboard designers to see which characters
- are generally supported on keyboards for given languages.</p>
- <p>To illustrate this specification, here is an abridged layout
- representing the English US 101 keyboard on the Mac OSX
- operating system (with an inserted long-press example). For
- more complete examples, and information collected about
- keyboards, see keyboard data in XML.</p>
- <pre>
- <keyboard locale="en-t-k0-osx"><br> <version platform="10.4" number="$Revision: 8294 $" /><br> <names><br> <name value="U.S." /><br> </names><br> <keyMap><br> <map iso="E00" to="`" /><br> <map iso="E01" to="1" /><br> <map iso="D01" to="q" /><br> <map iso="D02" to="w" /><br> <map iso="D03" to="e" longPress="é è ê ë" /><br> …<br> </keyMap><br> <keyMap modifiers="caps"><br> <map iso="E00" to="`" /><br> <map iso="E01" to="1" /><br> <map iso="D01" to="Q" /><br> <map iso="D02" to="W" /><br> …<br> </keyMap><br> <keyMap modifiers="opt"><br> <map iso="E00" to="`" /><br> <map iso="E01" to="¡" /> <!-- key=1 --><br> <map iso="D01" to="œ" /> <!-- key=Q --><br> <map iso="D02" to="∑" /> <!-- key=W --><br> …<br> </keyMap><br> <transforms type="simple"><br> <transform from="` " to="`" /><br> <transform from="`a" to="à" /><br> <transform from="`A" to="À" /><br> <transform from="´ " to="´" /><br> <transform from="´a" to="á" /><br> <transform from="´A" to="Á" /><br> <transform from="˜ " to="˜" /><br> <transform from="˜a" to="ã" /><br> <transform from="˜A" to="Ã" /><br> …<br> </transforms><br></keyboard></pre>
- <p>And its associated platform file (which includes the
- hardware mapping):</p>
- <pre>
- <platform id="osx"><br> <hardwareMap><br> <map keycode="0" iso="C01" /><br> <map keycode="1" iso="C02" /><br> <map keycode="6" iso="B01" /><br> <map keycode="7" iso="B02" /><br> <map keycode="12" iso="D01" /><br> <map keycode="13" iso="D02" /><br> <map keycode="18" iso="E01" /><br> <map keycode="50" iso="E00" /><br> </hardwareMap><br></platform></pre>
- <h2>2 <a name="Goals_and_Nongoals" href="#Goals_and_Nongoals"
- id="Goals_and_Nongoals">Goals and Nongoals</a></h2>
- <p>Some goals of this format are:</p>
- <ol>
- <li>Make the XML as readable as possible.</li>
- <li>Represent faithfully keyboard data from major platforms:
- it should be possible to create a functionally-equivalent
- data file (such that given any input, it can produce the same
- output).</li>
- <li>Make as much commonality in the data across platforms as
- possible to make comparison easy.</li>
- </ol>
- <p>Some non-goals (outside the scope of the format) currently
- are:</p>
- <ol>
- <li>Display names or symbols for keycaps (eg, the German name
- for "Return"). If that were added to LDML, it would be in a
- different structure, outside the scope of this section.</li>
- <li>Advanced IME features, handwriting recognition, etc.</li>
- <li>Roundtrip mappings—the ability to recover precisely the
- same format as an original platform's representation. In
- particular, the internal structure may have no relation to
- the internal structure of external keyboard source data, the
- only goal is functional equivalence.</li>
- <li>More sophisticated transforms, such as for Indic
- character rearrangement. It is anticipated that these would
- be added to a future version, after working out a reasonable
- representation.</li>
- </ol>
- <p>Note: During development of this section, it was considered
- whether the modifier RAlt (=AltGr) should be merged with
- Option. In the end, they were kept separate, but for comparison
- across platforms implementers may choose to unify them.</p>
- <p>Note that in parts of this document, the format
- <strong>@x</strong> is used to indicate the <em>attribute</em>
- <strong>x</strong>.</p>
- <h2>3 <a name="Definitions" href="#Definitions" id=
- "Definitions">Definitions</a></h2>
- <p><b>Arrangement</b> is the term used to describe the relative
- position of the rectangles that represent keys, either
- physically or virtually. A physical keyboard has a static
- arrangement while a virtual keyboard may have a dynamic
- arrangement that changes per language and/or layer. While the
- arrangement of keys on a keyboard may be fixed, the mapping of
- those keys may vary.</p>
- <p><b>Base character:</b> The character emitted by a particular
- key when no modifiers are active. In ISO terms, this is group
- 1, level 1.</p>
- <p><b>Base map:</b> A mapping from the ISO positions to the
- base characters. There is only one base map per layout. The
- characters on this map can be output by not using any modifier
- keys.</p>
- <p><b>Core keyboard layout:</b> also known as “alpha” block.
- The primary set of key values on a keyboard that are used for
- typing the target language of the keyboard. For example, the
- three rows of letters on a standard US QWERTY keyboard
- (QWERTYUIOP, ASDFGHJKL, ZXCVBNM) together with the most
- significant punctuation keys. Usually this equates to the
- minimal keyset for a language as seen on mobile phone
- keyboards.</p>
- <p><b>Hardware map:</b> A mapping between key codes and ISO
- layout positions.</p>
- <p><b>Input Method Editor (IME):</b> a component or program
- that supports input of large character sets. Typically, IMEs
- employ contextual logic and candidate UI to identify the
- Unicode characters intended by the user.</p>
- <p><b>ISO position:</b> The corresponding position of a key
- using the ISO layout convention where rows are identified by
- letters and columns are identified by numbers. For example,
- "D01" corresponds to the "Q" key on a US keyboard. For the
- purposes of this document, an ISO layout position is depicted
- by a one-letter row identifier followed by a two digit column
- number (like "B03", "E12" or "C00"). The following diagram
- depicts a typical US keyboard layout superimposed with the ISO
- layout indicators (it is important to note that the number of
- keys and their physical placement relative to each-other in
- this diagram is irrelevant, rather what is important is their
- logical placement using the ISO convention):<img src=
- "images/keyPositions.png" alt=
- "keyboard layout example showing ISO key numbering"></p>
- <p>One may also extend the notion of the ISO layout to support
- keys that don't map directly to the diagram above (such as the
- Android device - see diagram). Per the ISO standard, the space
- bar is mapped to "A03", so the period and comma keys are mapped
- to "A02" and "A04" respectively based on their relative
- position to the space bar. Also note that the "E" row does not
- exist on the Android keyboard.</p>
- <p><img src="images/androidKeyboard.png" alt=
- "keyboard layout example showing extension of ISO key numbering"></p>
- <p>If it becomes necessary in the future, the format could
- extend the ISO layout to support keys that are located to the
- left of the "00" column by using negative column numbers "-01",
- "-02" and so on, or 100's complement "99", "98",...</p>
- <p><b>Key:</b> A key on a physical keyboard.</p>
- <p><b>Key code:</b> The integer code sent to the application on
- pressing a key.</p>
- <p><b>Key map:</b> The basic mapping between ISO positions and
- the output characters for each set of modifier combinations
- associated with a particular layout. There may be multiple key
- maps for each layout.</p>
- <p><b>Keyboard:</b> The physical keyboard.</p>
- <p><b>Keyboard layout:</b> A layout is the overall keyboard
- configuration for a particular locale. Within a keyboard
- layout, there is a single base map, one or more key maps and
- zero or more transforms.</p>
- <p><b>Layer</b> is an arrangement of keys on a virtual
- keyboard. Since it is often not intended to use two hands on a
- visual keyboard to allow the pressing of modifier keys.
- Modifier keys are made sticky in that one presses one, the
- visual representation, and even arrangement, of the keys
- change, and you press the key. This visual representation is a
- layer. Thus a virtual keyboard is made up of a set of
- layers.</p>
- <p><b>Long-press key:</b> also known as a “child key”. A
- secondary key that is invoked from a top level key on a
- software keyboard. Secondary keys typically provide access to
- variants of the top level key, such as accented variants (a
- => á, à, ä, ã)</p>
- <p><b>Modifier:</b> A key that is held to change the behavior
- of a keyboard. For example, the "Shift" key allows access to
- upper-case characters on a US keyboard. Other modifier keys
- include but is not limited to: Ctrl, Alt, Option, Command and
- Caps Lock.</p>
- <p><b>Physical keyboard</b> is a keyboard that has individual
- keys that are pressed. Each key has a unique identifier and the
- arrangement doesn't change, even if the mapping of those keys
- does.</p>
- <p><b>Transform:</b>A transform is an element that specifies a
- set of conversions from sequences of code points into one (or
- more) other code points. For example, in most latin keyboards
- hitting the "^" dead-key followed by the "e" key produces
- "ê".</p>
- <p><b>Virtual keyboard</b> is a keyboard that is rendered on a,
- typically, touch surface. It has a dynamic arrangement and
- contrasts with a physical keyboard. This term has many
- synonyms: touch keyboard, software keyboard, SIP (Software
- Input Panel). This contrasts with other uses of the term
- virtual keyboard as an on-screen keyboard for reference or
- accessibility data entry.</p>
- <h2>4 <a name="File_and_Dir_Structure" href=
- "#File_and_Dir_Structure" id="File_and_Dir_Structure">File and
- Directory Structure</a></h2>
- <p>Each platform has its own directory, where a "platform" is a
- designation for a set of keyboards available from a particular
- source, such as Windows or Chromeos. This directory name is the
- platform name (see Table 2 located further in the document).
- Within this directory there are two types of files:</p>
- <ol>
- <li>A single platform file (see XML structure for Platform
- file), this file includes a mapping of hardware key codes to
- the ISO layout positions. This file is also open to expansion
- for any configuration elements that are valid across the
- whole platform and that are not layout specific. This file is
- simply called _platform.xml.</li>
- <li>Multiple layout files named by their locale identifiers.
- (eg. lt-t-k0-chromeos.xml or ne-t-k0-windows.xml).</li>
- </ol>
- <p>Keyboard data that is not supported on a given platform, but
- intended for use with that platform, may be added to the
- directory /und/. For example, there could be a file
- /und/lt-t-k0-chromeos.xml, where the data is intended for use
- with ChromeOS, but does not reflect data that is distributed as
- part of a standard ChromeOS release.</p>
- <h2>5 <a name="Element_Heirarchy_Layout_File" href=
- "#Element_Heirarchy_Layout_File" id=
- "Element_Heirarchy_Layout_File">Element Hierarchy - Layout
- File</a></h2>
- <h3>5.1 <a name="Element_Keyboard" href="#Element_Keyboard" id=
- "Element_Keyboard">Element: keyboard</a></h3>
- <p>This is the top level element. All other elements defined
- below are under this element.</p>
- <p>Syntax</p>
- <p><keyboard locale="{locale ID}"></p>
- <p>{definition of the layout as described by the elements
- defined below}</p>
- <p></keyboard></p>
- <dl>
- <dt>Attribute: locale (required)</dt>
- <dd>This mandatory attribute represents the locale of the
- keyboard using Unicode locale identifiers (see <a href=
- "tr35.html">LDML</a>) - for example 'el' for Greek.
- Sometimes, the locale may not specify the base language. For
- example, a Devanagari keyboard for many languages could be
- specified by BCP-47 code: 'und-Deva'. For details, see
- <a href="#Keyboard_IDs">Keyboard IDs</a> .</dd>
- </dl>
- <p>Examples (for illustrative purposes only, not indicative of
- the real data)</p>
- <pre><keyboard locale="ka-t-k0-qwerty-windows">
- …
-</keyboard>
-<keyboard locale="fr-CH-t-k0-android">
- …
-</keyboard></pre>
- <hr>
- <h3>5.2 <a name="Element_version" href="#Element_version" id=
- "Element_version">Element: version</a></h3>
- <p>Element used to keep track of the source data version.<br>
- <br>
- Syntax</p>
- <p><version platform=".." revision=".."><br></p>
- <dl>
- <dt>Attribute: platform (required)</dt>
- <dd>The platform source version. Specifies what version of
- the platform the data is from. For example, data from Mac OSX
- 10.4 would be specified as platform="10.4". For platforms
- that have unstable version numbers which change frequently
- (like Linux), this field is set to an integer representing
- the iteration of the data starting with "1". This number
- would only increase if there were any significant changes in
- the keyboard data.</dd>
- </dl>
- <dl>
- <dt>Attribute: number (required)</dt>
- <dd>The data revision version.</dd>
- </dl>
- <dl>
- <dt>Attribute: cldrVersion (fixed by DTD)</dt>
- <dd>The CLDR specification version that is associated with
- this data file. This value is fixed and is inherited from the
- DTD file and therefore does not show up directly in the XML
- file.</dd>
- </dl>
- <p>Example</p>
- <p><keyboard locale="..-osx"></p>
- <p>…</p>
- <p><version platform="10.4" number="1"/></p>
- <p>…</p>
- <p></keyboard></p>
- <hr>
- <h3>5.3 <a name="Element_generation" href="#Element_generation"
- id="Element_generation">Element: generation</a></h3>
- <p>The generation element is now deprecated. It was used to
- keep track of the generation date of the data.</p>
- <hr>
- <h3>5.4 <a name="Element_names" href="#Element_names" id=
- "Element_names">Element: names</a></h3>
- <p>Element used to store any names given to the layout by the
- platform.<br>
- <br>
- Syntax</p>
- <p><names></p>
- <p>{set of name elements}</p>
- <p></names><br></p>
- <h3>5.5 <a name="Element_name" href="#Element_name" id=
- "Element_name">Element: name</a></h3>
- <p>A single name given to the layout by the platform.<br>
- <br>
- Syntax</p>
- <p><name value=".."><br></p>
- <dl>
- <dt>Attribute: value (required)</dt>
- <dd>The name of the layout.</dd>
- </dl>
- <p>Example</p>
- <p><keyboard locale="bg-t-k0-windows-phonetic-trad"></p>
- <p>…</p>
- <p><names></p>
- <p><name value="Bulgarian (Phonetic Traditional)"/></p>
- <p></names></p>
- <p>…</p>
- <p></keyboard></p>
- <hr>
- <h3>5.6 <a name="Element_settings" href="#Element_settings" id=
- "Element_settings">Element: settings</a></h3>
- <p>An element used to keep track of layout specific settings.
- This element may or may not show up on a layout. These settings
- reflect the normal practice on the platform. However, an
- implementation using the data may customize the behavior. For
- example, for transformFailures the implementation could ignore
- the setting, or modify the text buffer in some other way (such
- as by emitting backspaces).<br>
- <br>
- Syntax</p>
- <p><settings [fallback="omit"] [transformFailure="omit"]
- [transformPartial="hide"]><br></p>
- <dl>
- <dt>Attribute: fallback="omit" (optional)</dt>
- <dd>The presence of this attribute means that when a modifier
- key combination goes unmatched, no output is produced. The
- default behavior (when this attribute is not present) is to
- fallback to the base map when the modifier key combination
- goes unmatched.</dd>
- </dl>
- <p>If this attribute is present, it must have a value of
- omit.</p>
- <dl>
- <dt>Attribute: transformFailure="omit" (optional)</dt>
- <dd>This attribute describes the behavior of a transform when
- it is escaped (see the transform element in the Layout file
- for more information). A transform is escaped when it can no
- longer continue due to the entry of an invalid key. For
- example, suppose the following set of transforms are
- valid:</dd>
- </dl>
- <blockquote>
- <p>^e → ê</p>
- <p>^a → â</p>
- </blockquote>
- <p>Suppose a user now enters the "^" key then "^" is now stored
- in a buffer and may or may not be shown to the user (see the
- partial attribute).</p>
- <p>If a user now enters d, then the transform has failed and
- there are two options for output.</p>
- <p>1. default behavior - "^d"</p>
- <p>2. omit - "" (nothing and the buffer is cleared)</p>
- <p>The default behavior (when this attribute is not present) is
- to emit the contents of the buffer upon failure of a
- transform.</p>
- <p>If this attribute is present, it must have a value of
- omit.</p>
- <dl>
- <dt>Attribute: transformPartial="hide" (optional)</dt>
- <dd>This attribute describes the behavior the system while in
- a transform. When this attribute is present then don't show
- the values of the buffer as the user is typing a transform
- (this behavior can be seen on Windows or Linux
- platforms).</dd>
- </dl>
- <p>By default (when this attribute is not present), show the
- values of the buffer as the user is typing a transform (this
- behavior can be seen on the Mac OSX platform).</p>
- <p>If this attribute is present, it must have a value of
- hide.</p>
- <p>Example</p>
- <p><keyboard locale="bg-t-k0-windows-phonetic-trad"></p>
- <p>…</p>
- <p><settings fallback="omit" transformPartial="hide"></p>
- <p>…</p>
- <p></keyboard></p>
- <p>Indicates that:</p>
- <ol>
- <li>When a modifier combination goes unmatched, do not output
- anything when a key is pressed.</li>
- <li>If a transform is escaped, output the contents of the
- buffer.</li>
- <li>During a transform, hide the contents of the buffer as
- the user is typing.</li>
- </ol>
- <hr>
- <h3>5.7 <a name="Element_keyMap" href="#Element_keyMap" id=
- "Element_keyMap">Element: keyMap</a></h3>
- <p>This element defines the group of mappings for all the keys
- that use the same set of modifier keys. It contains one or more
- map elements.</p>
- <p>Syntax</p>
- <p><keyMap [modifiers="{Set of Modifier
- Combinations}"]></p>
- <p>{a set of map elements}</p>
- <p></keyMap></p>
- <dl>
- <dt>Attribute: modifiers (optional)</dt>
- <dd>A set of modifier combinations that cause this key map to
- be "active". Each combination is separated by a space. The
- interpretation is that there is a match if any of the
- combinations match, that is, they are ORed. Therefore, the
- order of the combinations within this attribute does not
- matter.<br>
- <br>
- A combination is simply a concatenation of words to represent
- the simultaneous activation of one or more modifier keys. The
- order of the modifier keys within a combination does not
- matter, although don't care cases are generally added to the
- end of the string for readability (see next paragraph). For
- example: "cmd+caps" represents the Caps Lock and Command
- modifier key combination. Some keys have right or left
- variant keys, specified by a 'R' or 'L' suffix. For example:
- "ctrlR+caps" would represent the Right-Control and Caps Lock
- combination. For simplicity, the presence of a modifier
- without a 'R' or 'L' suffix means that either its left or
- right variants are valid. So "ctrl+caps" represents the same
- as "ctrlL+ctrlR?+caps ctrlL?+ctrlR+caps"</dd>
- </dl>
- <p>A modifier key may be further specified to be in a "don't
- care" state using the '?' suffix. The "don't care" state simply
- means that the preceding modifier key may be either ON or OFF.
- For example "ctrl+shift?" could be expanded into "ctrl
- ctrl+shift".</p>
- <p>Within a combination, the presence of a modifier WITHOUT the
- '?' suffix indicates this key MUST be on. The converse is also
- true, the absence of a modifier key means it MUST be off for
- the combination to be active.</p>
- <p>Here is an exhaustive list of all possible modifier
- keys:</p>
- <p>Possible Modifier Keys</p>
- <table>
- <caption>
- <a name="Possible_Modifier_Keys" href=
- "#Possible_Modifier_Keys" id=
- "Possible_Modifier_Keys">Possible Modifier Keys</a>
- </caption>
- <tbody>
- <tr>
- <td>
- <p>Modifier Keys</p>
- </td>
- <td> </td>
- <td>
- <p>Comments</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>altL</p>
- </td>
- <td>
- <p>altR</p>
- </td>
- <td>
- <p>xAlty → xAltR+AltL? xAltR?AltLy</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>ctrlL</p>
- </td>
- <td>
- <p>ctrlR</p>
- </td>
- <td>
- <p>ditto for Ctrl</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>shiftL</p>
- </td>
- <td>
- <p>shiftR</p>
- </td>
- <td>
- <p>ditto for Shift</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>optL</p>
- </td>
- <td>
- <p>optR</p>
- </td>
- <td>
- <p>ditto for Opt</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>caps</p>
- </td>
- <td> </td>
- <td>
- <p>Caps Lock</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>cmd</p>
- </td>
- <td> </td>
- <td>
- <p>Command on the Mac</p>
- </td>
- </tr>
- </tbody>
- </table>
- <p>All sets of modifier combinations within a layout are
- disjoint with no-overlap existing between the key maps. That
- is, for every possible modifier combination, there is at most a
- single match within the layout file. There are thus never
- multiple matches. If no exact match is available, the match
- falls back to the base map unless the fallback="omit" attribute
- in the settings element is set, in which case there would be no
- output at all.</p>
- <p>To illustrate, the following example produces an invalid
- layout because pressing the "Ctrl" modifier key produces an
- indeterminate result:</p>
- <p><keyMap modifiers="ctrl+shift?"></p>
- <p>…</p>
- <p></keyMap></p>
- <p><keyMap modifiers="ctrl"></p>
- <p>…</p>
- <p></keyMap></p>
- <p>Modifier Examples:</p>
- <p><keyMap modifiers="cmd?+opt+caps?+shift" /></p>
- <p>Caps-Lock may be ON or OFF, Option must be ON, Shift must be
- ON and Command may be ON or OFF.</p>
- <p><keyMap modifiers="shift caps" fallback="true" /></p>
- <p>Caps-Lock must be ON OR Shift must be ON. Is also the
- fallback key map.</p>
- <p>If the modifiers attribute is not present on a keyMap then
- that particular key map is the base map.</p>
- <hr>
- <h3>5.8 <a name="Element_map" href="#Element_map" id=
- "Element_map">Element: map</a></h3>
- <p>This element defines a mapping between the base character
- and the output for a particular set of active modifier keys.
- This element must have the keyMap element as its parent.</p>
- <p>If a map element for a particular ISO layout position has
- not been defined then if this key is pressed, no output is
- produced.</p>
- <p>Syntax</p>
- <pre><map
- iso="{the iso position}"
- to="{the output}"
- [longPress="{long press keys}"]
- [transform="no"]
-/><!-- {Comment to improve readability (if needed)} --></pre>
- <dl>
- <dt>Attribute: iso (exactly one of base and iso is
- required)</dt>
- <dd>The iso attribute represents the ISO layout position of
- the key (see the definition at the beginning of the document
- for more information).</dd>
- </dl>
- <dl>
- <dt>Attribute: to (required)</dt>
- <dd>The to attribute contains the output sequence of
- characters that is emitted when pressing this particular key.
- Control characters, whitespace (other than the regular space
- character) and combining marks in this attribute are escaped
- using the \u{...} notation.</dd>
- </dl>
- <dl>
- <dt>Attribute: longPress (optional)</dt>
- <dd>The longPress attribute contains any characters that can
- be emitted by "long-pressing" a key, this feature is
- prominent in mobile devices. The possible sequences of
- characters that can be emitted are whitespace delimited.
- Control characters, combining marks and whitespace (which is
- intended to be a long-press option) in this attribute are
- escaped using the \u{...} notation.</dd>
- </dl>
- <dl>
- <dt>Attribute: transform="no" (optional)</dt>
- <dd>The transform attribute is used to define a key that
- never participates in a transform but its output shows up as
- part of a transform. This attribute is necessary because two
- different keys could output the same characters (with
- different keys or modifier combinations) but only one of them
- is intended to be a dead-key and participate in a transform.
- This attribute value must be no if it is present.</dd>
- </dl>
- <dl>
- <dt>Attribute: multitap (optional)</dt>
- <dd>A space-delimited list of strings, where each successive
- element of the list is produced by the corresponding number
- of quick taps. For example, two taps on the key C01 will
- produce a “c” in the following example.<br>
- <br>
- <em>Example:</em><br>
- <br>
- <map iso="C01" to="a" multitap="bb c d"></dd>
- </dl>
- <dl>
- <dt>Attribute: longPress-status (optional)</dt>
- <dd>Indicates optional longPress values. Must only occur with
- a longPress value. May be suppressed or shown, depending on
- user settings. There can be two map elements that differ only
- by long-press-status, allowing two different sets of
- longpress values.<br>
- <br>
- <em>Example:</em><br>
- <br>
- <map iso="D01" to="a" longPress="à â % æ á ä ã å ā
- ª"/><br>
- <map iso="D01" to="a" longPress="à â á ä ã å ā"
- longPress-status="optional"/></dd>
- </dl>
- <dl>
- <dt>Attribute: optional (optional)</dt>
- <dd>Indicates optional mappings. May be suppressed or shown,
- depending on user settings.</dd>
- </dl>
- <dl>
- <dt>Attribute: hint (optional)</dt>
- <dd>
- Indicates a hint as to long-press contents, such as the
- first character of the longPress value, that can be
- displayed on the key. May be suppressed or shown, depending
- on user Settings.<br>
- <br>
- <i>Example:</i> where the hint is "{":<br>
- <div style='text-align: center'><img alt="keycap hint" src=
- 'images/keycapHint.png'></div>
- </dd>
- </dl>
- <p>For example, suppose there are the following keys, their
- output and one transform:</p>
- <blockquote>
- <p>E00 outputs `</p>
- <p>Option+E00 outputs ` (the dead-version which participates
- in transforms).</p>
- <p>`e → è</p>
- </blockquote>
- <p>Then the first key must be tagged with transform="no" to
- indicate that it should never participate in a transform.</p>
- <p>Comment: US key equivalent, base key, escaped output and
- escaped longpress</p>
- <p>In the generated files, a comment is included to help the
- readability of the document. This comment simply shows the
- English key equivalent (with prefix key=), the base character
- (base=), the escaped output (to=) and escaped long-press keys
- (long=). These comments have been inserted strategically in
- places to improve readability. Not all comments include include
- all components since some of them may be obvious.</p>
- <p>Examples</p>
- <pre>
- <keyboard locale="fr-BE-t-k0-windows"><br> …<br> <keyMap modifiers="shift"><br> <map iso="D01" to="A" /> <!-- key=Q --><br> <map iso="D02" to="Z" /> <!-- key=W --><br> <map iso="D03" to="E" /><br> <map iso="D04" to="R" /><br> <map iso="D05" to="T" /><br> <map iso="D06" to="Y" /><br> …<br> </keyMap><br> …<br></keyboard><br><keyboard locale="ps-t-k0-windows"><br> …<br> <keyMap modifiers='altR+caps? ctrl+alt+caps?'><br> <map iso="D04" to="\u{200e}" /> <!-- key=R base=ق --><br> <map iso="D05" to="\u{200f}" /> <!-- key=T base=ف --><br> <map iso="D08" to="\u{670}" /> <!-- key=I base=ه to= ٰ --><br> …<br> </keyMap><br> …<br></keyboard></pre>
- <h4>5.8.1 <a name="Element_flicks" href="#Element_flicks" id=
- "Element_flicks">Elements: flicks, flick</a></h4>
- <p class='dtd'><!ELEMENT keyMap ( map | flicks )+ ><br>
- <!ELEMENT flick EMPTY><br>
- <!ATTLIST flick directions NMTOKENS><br>
- <!ATTLIST flick to CDATA><br>
- <!--@VALUE--></p>
- <p>The flicks element is used to generate results from a
- "flick" of the finger on a mobile device. The
- <strong>directions</strong> attribute value is a
- space-delimited list of keywords, that describe a path,
- currently restricted to the cardinal and intercardinal
- directions {n e s w ne nw se sw}. The <strong>to</strong>
- attribute value is the result of (one or more) flicks.</p>
- <p>Example: where a flick to the Northeast then South produces
- two code points.</p>
- <pre><flicks iso="C01">
- <flick directions=“ne s” to=“\uABCD\uDCBA”>
-</flicks></pre>
- <hr>
- <h3>5.9 <a name="Element_import" href="#Element_import" id=
- "Element_import">Element: import</a></h3>
- <p>The import element references another file of the same type
- and includes all the subelements of the top level element as
- though the import element were being replaced by those
- elements, in the appropriate section of the XML file. For
- example:</p>
- <pre> <import path="standard_transforms.xml"></pre>
- <dl>
- <dt>Attribute: path (required)</dt>
- <dd>The value is contains a relative path to the included
- ldml file. There is a standard set of directories to be
- searched that an application may provide. This set is always
- prepended with the directory in which the current file being
- read, is stored.</dd>
- </dl>
- <p>If two identical elements, as described below, are defined,
- the later element will take precedence. Thus if a
- hardwareMap/map for the same keycode on the same page is
- defined twice (for example once in an included file), the later
- one will be the resulting mapping.</p>
- <p>Elements are considered to have three attributes that make
- them unique: the tag of the element, the parent and the
- identifying attribute. The parent in its turn is a unique
- element and so on up the chain. If the distinguishing attribute
- is optional, its non-existence is represented with an empty
- value. Here is a list of elements and their defining
- attributes. If an element is not listed then if it is a leaf
- element, only one occurs and it is merely replaced. If it has
- children, then the sub elements are considered, in effect
- merging the element in question.</p>
- <table>
- <!-- nocaption -->
- <tbody>
- <tr>
- <td>
- <p>Element</p>
- </td>
- <td>
- <p>Parent</p>
- </td>
- <td>
- <p>Distinguishing attribute</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>keyMap</p>
- </td>
- <td>
- <p>keyboard</p>
- </td>
- <td>
- <p>@modifiers</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>map</p>
- </td>
- <td>
- <p>keyMap</p>
- </td>
- <td>
- <p>@iso</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>display</p>
- </td>
- <td>
- <p>displayMap</p>
- </td>
- <td>
- <p>@char (new)</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>layout</p>
- </td>
- <td>
- <p>layouts</p>
- </td>
- <td>
- <p>@modifier</p>
- </td>
- </tr>
- </tbody>
- </table>
- <p>In order to help identify mistakes, it is an error if a file
- contains two elements that override each other. All element
- overrides must come as a result of an <include> element
- either for the element overridden or the element
- overriding.</p>
- <p>The following elements are not imported from the source
- file:</p>
- <ul>
- <li>version</li>
- <li>generation</li>
- <li>names</li>
- <li>settings</li>
- </ul>
- <hr>
- <h3>5.10 <a name="Element_displayMap" href=
- "#Element_displayMap" id="Element_displayMap">Element:
- displayMap</a></h3>
- <p>The displayMap can be used to describe what is to be
- displayed on the keytops for various keys. For the most part,
- such explicit information is unnecessary since the @char
- element from the keyMap/map element can be used. But there are
- some characters, such as diacritics, that do not display well
- on their own and so explicit overrides for such characters can
- help. The displayMap consists of a list of display sub
- elements.</p>
- <p>DisplayMaps are designed to be shared across many different
- keyboard layout descriptions, and included in where needed.</p>
- <hr>
- <h3>5.11 <a name="Element_display" href="#Element_display" id=
- "Element_display">Element: display</a></h3>
- <p>The display element describes how a character, that has come
- from a keyMap/map element, should be displayed on a keyboard
- layout where such display is possible.</p>
- <dl>
- <dt>Attribute: mapOutput (required)</dt>
- <dd>Specifies the character or character sequence from the
- keyMap/map element that is to have a special display.</dd>
- </dl>
- <dl>
- <dt>Attribute: display (required)</dt>
- <dd>Required and specifies the character sequence that should
- be displayed on the keytop for any key that generates the
- @mapOutput sequence. (It is an error if the value of the
- display attribute is the same as the value of the char
- attribute.)</dd>
- </dl>
- <pre> <keyboard >
- <keyboardMap>
- <map iso="C01" to="a" longpress="\u0301 \u0300"/>
- </keyboardMap>
- <displayMap>
- <display mapOutput="\u0300" display="u\u02CB"/>
- <display mapOutput="\u0301" display="u\u02CA"/>
- </displayMap><br> </keyboard ></pre>
- <p>To allow displayMaps to be shared across descriptions, there
- is no requirement that @mapOutput matches any @to in any
- keyMap/map element in the keyboard description.</p>
- <hr>
- <h3>5.12 <a name="Element_layer" href="#Element_layer" id=
- "Element_layer">Element: layer</a></h3>
- <p>A layer element describes the configuration of keys on a
- particular layer of a keyboard. It contains row elements to
- describe which keys exist in each row and also switch elements
- that describe how keys in the layer switch the layer to
- another. In addition, for platforms that require a mapping from
- a key to a virtual key (for example Windows or Mac) there is
- also a vkeys element to describe the mapping.</p>
- <dl>
- <dt>Attribute: modifier (required)</dt>
- <dd>This has two roles. It acts as an identifier for the
- layer element and also provides the linkage into a keyMap. A
- modifier is a single modifier combination such that it is
- matched by one of the modifier combinations in one of the
- keyMap/@modifiers attribute. To indicate that no modifiers
- apply the reserved name of "none" is used. For the purposes
- of fallback vkey mapping, the following modifier components
- are reserved: "shift", "ctrl", "alt", "caps", "cmd", "opt"
- along with the "L" and "R" optional single suffixes for the
- first 3 in that list. There must be a keyMap whose @modifiers
- attribute matches the @modifier attribute of the layer
- element. It is an error if there is no such keyMap.</dd>
- </dl>
- <p>The keymap/@modifier often includes multiple combinations
- that match. It is not necessary (or prefered) to include all of
- these. Instead a minimal matching element should be used, such
- that exactly one keymap is matched.</p>
- <p>The following are examples of situations where the
- @modifiers and @modifier do not match, with a different keymap
- definition than above.</p>
- <table>
- <!-- nocaption -->
- <tbody>
- <tr>
- <th>
- <p>keyMap/@modifiers</p>
- </th>
- <th>
- <p>layer/@modifier</p>
- </th>
- </tr>
- <tr>
- <td>
- <p>shiftL</p>
- </td>
- <td>
- <p>shift (ambiguous)</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>altR</p>
- </td>
- <td>
- <p>alt</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>shiftL?+shiftR</p>
- </td>
- <td>
- <p>shift</p>
- </td>
- </tr>
- </tbody>
- </table>
- <p>And these do match:</p>
- <table>
- <!-- nocaption -->
- <tbody>
- <tr>
- <th>
- <p>keyMap/@modifiers</p>
- </th>
- <th>
- <p>layer/@modifier</p>
- </th>
- </tr>
- <tr>
- <td>
- <p>shiftL shiftR</p>
- </td>
- <td>
- <p>shift</p>
- </td>
- </tr>
- </tbody>
- </table>
- <p>The use of @modifier as an identifier for a layer, is
- sufficient since it is always unique among the set of layer
- elements in a keyboard.</p>
- <hr>
- <h3>5.13 <a name="Element_row" href="#Element_row" id=
- "Element_row">Element: row</a></h3>
- <p>A row element describes the keys that are present in the row
- of a keyboard. Row elements are ordered within a layout element
- with the top visual row being stored first. The row element
- introduces the keyId which may be an ISOKey or a specialKey.
- More formally:</p>
- <pre>
- keyId = ISOKey | specialKey<br> ISOKey = [A-Z][0-9][0-9]<br> specialKey = [a-z][a-zA-Z0-9]{2,7}</pre>
- <p>ISOKey denotes a key having an <a href="#Definitions">ISO
- Position</a>. SpecialKey is used to identify functional keys
- occurring on a virtual keyboard layout.</p>
- <dl>
- <dt>Attribute: keys (required)</dt>
- <dd>This is a string that lists the keyId for each of the
- keys in a row. Key ranges may be contracted to
- firstkey-lastkey but only for ISOKey type keyIds. The
- interpolation between the first and last keys names is
- entirely numeric. Thus D00-D03 is equivalent to D00 D01 D02
- D03. It is an error if the first and last keys do not have
- the same alphabetic prefix or the last key numeric component
- is less than or equal to the first key numeric
- component.</dd>
- </dl>
- <p>specialKey type keyIds may take any value within their
- syntactic constraint. But the following specialKeys are
- reserved to allow applications to identify them and give them
- special handling:</p>
- <ul>
- <li>"bksp", "enter", "space", "tab", "esc", "sym", "num"</li>
- <li>all the reserved modifier names</li>
- <li>specialKeys starting with the letter "x" for future
- reserved names.</li>
- </ul>
- <p>Here is an example of a row element:</p>
- <pre> <layer modifier="none">
- <row keys="D01-D10"/>
- <row keys="C01-C09"/>
- <row keys="shift B01-B07 bksp"/>
- <row keys="sym A01 smilies A02-A03 enter"/>
- </layer>
- </pre>
- <hr>
- <h3>5.14 <a name="Element_switch" href="#Element_switch" id=
- "Element_switch">Element: switch</a></h3>
- <p>The switch element describes a function key that has been
- included in the layout. It specifies which layer pressing the
- key switches you to and also what the key looks like.</p>
- <dl>
- <dt>Attribute: iso (required)</dt>
- <dd>The keyId as specified in one of the row elements. This
- must be a specialKey and not an ISOKey.</dd>
- </dl>
- <dl>
- <dt>Attribute: layout (required)</dt>
- <dd>The modifier attribute of the resulting layout element
- that describes the layer the user gets switched to.</dd>
- </dl>
- <dl>
- <dt>Attribute: display (required)</dt>
- <dd>A string to be displayed on the key.</dd>
- </dl>
- <p>Here is an example of a switch element for a shift key:</p>
- <pre> <layer modifier="none">
- <row keys="D01-D10"/>
- <row keys="C01-C09"/>
- <row keys="shift B01-B07 bksp"/>
- <row keys="sym A01 smilies A02-A03 enter"/>
- <switch iso="shift" layout="shift" display="&#x21EA;"/>
- </layer>
- <layer modifier="shift">
- <row keys="D01-D10"/>
- <row keys="C01-C09"/>
- <row keys="shift B01-B07 bksp"/>
- <row keys="sym A01 smilies A02-A03 enter"/>
- <switch iso="shift" layout="none" display="&#x21EA;"/>
- </layer></pre>
- <hr>
- <h3>5.15 <a name="Element_vkeys" href="#Element_vkeys" id=
- "Element_vkeys">Element: vkeys</a></h3>
- <p>On some architectures, applications may directly interact
- with keys before they are converted to characters. The keys are
- identified using a virtual key identifier or vkey. The mapping
- between a physical keyboard key and a vkey is keyboard-layout
- dependent. For example, a French keyboard would identify the
- D01 key as being an 'a' with a vkey of 'a' as opposed to 'q' on
- a US English keyboard. While vkeys are layout dependent, they
- are not modifier dependent. A shifted key always has the same
- vkey as its unshifted counterpart. In effect, a key is
- identified by its vkey and the modifiers active at the time the
- key was pressed.</p>
- <p>For a physical keyboard there is a layout specific default
- mapping of keys to vkeys. These are listed in a vkeys element
- which takes a list of vkey element mappings and is identified
- by a type. There are different vkey mappings required for
- different platforms. While type="windows" vkeys are very
- similar to type="osx" vkeys, they are not identical and require
- their own mapping.</p>
- <p>The most common model for specifying vkeys is to import a
- standard mapping, say to the US layout, and then to add a vkeys
- element to change the mapping appropriately for the specific
- layout.</p>
- <p>In addition to describing physical keyboards, vkeys also get
- used in virtual keyboards. Here the vkey mapping is local to a
- layer and therefore a vkeys element may occur within a layout
- element. In the case where a layout element has no vkeys
- element then the resulting mapping may either be empty (none of
- the keys represent keys that have vkey identifiers) or may
- fallback to the layout wide vkeys mapping. Fallback only occurs
- if the layout's modifier attribute consists only of standard
- modifiers as listed as being reserved in the description of the
- layout/@modifier attribute, and if the modifiers are standard
- for the platform involved. So for Windows, 'cmd' is a reserved
- modifier but it is not standard for Windows. Therefore on
- Windows the vkey mapping for a layout with @modifier="cmd"
- would be empty.</p>
- <p>A vkeys element consists of a list of vkey elements.</p>
- <hr>
- <h3>5.16 <a name="Element_vkey" href="#Element_vkey" id=
- "Element_vkey">Element: vkey</a></h3>
- <p>A vkey element describes a mapping between a key and a vkey
- for a particular platform.</p>
- <dl>
- <dt>Attribute: iso (required)</dt>
- <dd>The ISOkey being mapped.</dd>
- </dl>
- <dl>
- <dt>Attribute: type</dt>
- <dd>Current values: android, chromeos, osx, und,
- windows.</dd>
- </dl>
- <dl>
- <dt>Attribute: vkey (required)</dt>
- <dd>The resultant vkey identifier.</dd>
- </dl>
- <dl>
- <dt>Attribute: modifier</dt>
- <dd>This attribute may only be used if the parent vkeys
- element is a child of a layout element. If present it allows
- an unmodified key from a layer to represent a modified
- virtual key.</dd>
- </dl>
- <p>This example shows some of the mappings for a French
- keyboard layout:</p>
- <pre> <i>shared/win-vkey.xml</i>
- <keyboard>
- <vkeys type="windows">
- <vkey iso="D01" vkey="VK_Q"/>
- <vkey iso="D02" vkey="VK_W"/>
- <vkey iso="C01" vkey="VK_A"/>
- <vkey iso="B01" vkey="VK_Z"/>
- </vkeys>
- </keyboard><br>
- <i>shared/win-fr.xml</i>
- <keyboard>
- <import path="shared/win-vkey.xml">
- <keyMap>
- <map iso="D01" to="a"/>
- <map iso="D02" to="z"/>
- <map iso="C01" to="q"/>
- <map iso="B01" to="w"/>
- </keyMap><br>
- <keyMap modifiers="shift">
- <map iso="D01" to="A"/>
- <map iso="D02" to="Z"/>
- <map iso="C01" to="Q"/>
- <map iso="B01" to="W"/>
- </keyMap><br>
- <vkeys type="windows">
- <vkey iso="D01" vkey="VK_A"/>
- <vkey iso="D02" vkey="VK_Z"/>
- <vkey iso="C01" vkey="VK_Q"/>
- <vkey iso="B01" vkey="VK_W"/>
- </vkeys>
- </keyboard></pre>
- <p>In the context of a virtual keyboard there might be a symbol
- layer with the following layout:</p>
- <pre> <keyboard>
- <keyMap>
- <map iso="D01" to="1"/>
- <map iso="D02" to="2"/>
- ...
- <map iso="D09" to="9"/>
- <map iso="D10" to="0"/>
- <map iso="C01" to="!"/>
- <map iso="C02" to="@"/>
- ...
- <map iso="C09" to="("/>
- <map iso="C10" to=")"/>
- </keyMap><br>
- <layer modifier="sym">
- <row keys="D01-D10"/>
- <row keys="C01-C09"/>
- <row keys="shift B01-B07 bksp"/>
- <row keys="sym A00-A03 enter"/>
- <switch iso="sym" layout="none" display="ABC"/>
- <switch iso="shift" layout="sym+shift" display="&=/<"/>
- <vkeys type="windows">
- <vkey iso="D01" vkey="VK_1"/>
- ...
- <vkey iso="D10" vkey="VK_0"/>
- <vkey iso="C01" vkey="VK_1" modifier="shift"/>
- ...
- <vkey iso="C10" vkey="VK_0" modifier="shift"/>
- </vkeys>
- </layer>
- </keyboard></pre>
- <hr>
- <h3>5.17 <a name="Element_transforms" href=
- "#Element_transforms" id="Element_transforms">Element:
- transforms</a></h3>
- <p>This element defines a group of one or more transform
- elements associated with this keyboard layout. This is used to
- support such as dead-keys using a straightforward structure
- that works for all the keyboards tested, and that results in
- readable source data.</p>
- <p>There can be multiple <transforms> elements</p>
- <p>Syntax</p>
- <p><transforms type="..."></p>
- <p>{a set of transform elements}</p>
- <p></transforms></p>
- <dl>
- <dt>Attribute: type (required)</dt>
- <dd>Current values: simple, final.</dd>
- </dl>
- <hr>
- <h3>5.18 <a name="Element_transform" href="#Element_transform"
- id="Element_transform">Element: transform</a></h3>
- <p>This element must have the transforms element as its parent.
- This element represents a single transform that may be
- performed using the keyboard layout. A transform is an element
- that specifies a set of conversions from sequences of code
- points into one (or more) other code points.. For example, in
- most French keyboards hitting the "^" dead-key followed by the
- "e" key produces "ê".</p>
- <p>Syntax</p>
- <p><transform from="{combination of characters}"
- to="{output}"></p>
- <dl>
- <dt>Attribute: from (required)</dt>
- <dd>The from attribute consists of a sequence of elements.
- Each element matches one character and may consist of a
- codepoint or a UnicodeSet (both as defined in <a href=
- "https://www.unicode.org/reports/tr35/#Unicode_Sets">UTS#35
- section 5.3.3</a>).</dd>
- </dl>
- <p>For example, suppose there are the following transforms:</p>
- <blockquote>
- <p>^e → ê</p>
- <p>^a → â</p>
- <p>^o → ô</p>
- </blockquote>
- <p>If the user types a key that produces "^", the keyboard
- enters a dead state. When the user then types a key that
- produces an "e", the transform is invoked, and "ê" is output.
- Suppose a user presses keys producing "^" then "u". In this
- case, there is no match for the "^u", and the "^" is output if
- the failure attribute in the transform element is set to emit.
- If there is no transform starting with "u", then it is also
- output (again only if failure is set to emit) and the mechanism
- leaves the "dead" state.</p>
- <p>The UI may show an initial sequence of matching characters
- with a special format, as is done with dead-keys on the Mac,
- and modify them as the transform completes. This behavior is
- specified in the partial attribute in the transform
- element.</p>
- <p>Most transforms in practice have only a couple of
- characters. But for completeness, the behavior is defined on
- all strings:</p>
- <ol>
- <li>If there could be a longer match if the user were to type
- additional keys, go into a 'dead' state.</li>
- <li>If there could not be a longer match, find the longest
- actual match, emit the transformed text (if failure is set to
- emit), and start processing again with the remainder.</li>
- <li>If there is no possible match, output the first
- character, and start processing again with the
- remainder.</li>
- </ol>
- <p>Suppose that there is the following transforms:</p>
- <blockquote>
- <p>ab → x</p>
- <p>abc → y</p>
- <p>abef → z</p>
- <p>bc → m</p>
- <p>beq → n</p>
- </blockquote>
- <p>Here's what happens when the user types various sequence
- characters:</p>
- <table>
- <!-- nocaption -->
- <tbody>
- <tr>
- <td>
- <p>Input characters</p>
- </td>
- <td>
- <p>Result</p>
- </td>
- <td>
- <p>Comments</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>ab</p>
- </td>
- <td> </td>
- <td>
- <p>No output, since there is a longer transform with
- this as prefix.</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>abc</p>
- </td>
- <td>
- <p>y</p>
- </td>
- <td>
- <p>Complete transform match.</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>abd</p>
- </td>
- <td>
- <p>xd</p>
- </td>
- <td>
- <p>The longest match is "ab", so that is converted and
- output. The 'd' follows, since it is not the start of
- any transform.</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>abeq</p>
- </td>
- <td>
- <p>xeq</p>
- </td>
- <td>
- <p>"ab" wins over "beq", since it comes first. That is,
- there is no longer possible match starting with
- 'a'.</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>bc</p>
- </td>
- <td>
- <p>m</p>
- </td>
- <td> </td>
- </tr>
- </tbody>
- </table>
- <p>Control characters, combining marks and whitespace in this
- attribute are escaped using the \u{...} notation.</p>
- <dl>
- <dt>Attribute: to (required)</dt>
- <dd>This attribute represents the characters that are output
- from the transform. The output can contain more than one
- character, so you could have <transform from="´A"
- to="Fred"/></dd>
- </dl>
- <p>Control characters, whitespace (other than the regular space
- character) and combining marks in this attribute are escaped
- using the \u{...} notation.</p>
- <p>Examples</p>
- <pre>
- <keyboard locale="fr-CA-t-k0-CSA-osx"><br> <transforms type="simple"><br> <transform from="´a" to="á" /><br> <transform from="´A" to="Á" /><br> <transform from="´e" to="é" /><br> <transform from="´E" to="É" /><br> <transform from="´i" to="í" /><br> <transform from="´I" to="Í" /><br> <transform from="´o" to="ó" /><br> <transform from="´O" to="Ó" /><br> <transform from="´u" to="ú" /><br> <transform from="´U" to="Ú" /><br> </transforms><br> ...<br></keyboard><br><keyboard locale="nl-BE-t-k0-chromeos"><br> <transforms type="simple"><br> <transform from="\u{30c}a" to="ǎ" /> <!-- ̌a → ǎ --><br> <transform from="\u{30c}A" to="Ǎ" /> <!-- ̌A → Ǎ --><br> <transform from="\u{30a}a" to="å" /> <!-- ̊a → å --><br> <transform from="\u{30a}A" to="Å" /> <!-- ̊A → Å --><br> </transforms><br> ...<br></keyboard></pre>
- <dl>
- <dt>Attribute: before (optional)</dt>
- <dd>This attribute consists of a sequence of elements
- (codepoint or UnicodeSet) to match the text up to the current
- position in the text (this is similar to a regex "look
- behind" assertion: (?<=a)b matches a "b" that is preceded
- by an "a"). The attribute must match for the transform to
- apply. If missing, no before constraint is applied. The
- attribute value must not be empty.</dd>
- </dl>
- <dl>
- <dt>Attribute: after (optional)</dt>
- <dd>This attribute consists of a sequence of elements
- (codepoint or UnicodeSet) and matches as a zero-width
- assertion after the @from sequence. The attribute must match
- for the transform to apply. If missing, no after constraint
- is applied. The attribute value must not be empty. When the
- transform is applied, the string matched by the @from
- attribute is replaced by the string in the @to attribute,
- with the text matched by the @after attribute left unchanged.
- After the change, the current position is reset to just after
- the text output from the @to attribute and just before the
- text matched by the @after attribute. Warning: some legacy
- implementations may not be able to make such an adjustment
- and will place the current position after the @after matched
- string.</dd>
- </dl>
- <dl>
- <dt>Attribute: error (optional)</dt>
- <dd>If set this attribute indicates that the keyboarding
- application may indicate an error to the user in some way.
- Processing may stop and rewind to any state before the key
- was pressed. If processing does stop, no further transforms
- on the same input are applied. The @error attribute takes the
- value "fail", or must be absent. If processing continues, the
- @to is used for output as normal. It thus should contain a
- reasonable value.</dd>
- </dl>
- <p>For example:</p>
- <blockquote>
- <transform from="\u037A\u037A" to="\u037A" error="fail"
- />
- </blockquote>
- <p>This indicates that it is an error to type two iota
- subscripts immediately after each other.</p>
- <p>In terms of how these different attributes work in
- processing a sequences of transforms, consider the
- transform:</p>
- <blockquote>
- <transform before="X" from="Y" after="Y" to="B"/>
- </blockquote>
- <p>This would transform the string:</p>
- <blockquote>
- XYZ → XBZ
- </blockquote>
- <p>If we mark where the current match position is before and
- after the transform we see:</p>
- <blockquote>
- X | Y Z → X B | Z
- </blockquote>
- <p>And a subsequent transform could transform the Z string,
- looking back (using @before) to match the B.</p>
- <p>There are other keying behaviors that are needed
- particularly in handling languages and scripts from various
- parts of the world. The behaviors intended to be covered by the
- transforms are:</p>
- <ul>
- <li>Reordering combining marks. The order required for
- underlying storage may differ considerably from the desired
- typing order. In addition, a keyboard may want to allow for
- different typing orders.</li>
- <li>Error indication. Sometimes a keyboard layout will want
- to specify to the application that a particular keying
- sequence in a context is in error and that the application
- should indicate that that particular keypress is
- erroneous.</li>
- <li>Backspace handling. There are various approaches to
- handling the backspace key. An application may treat it as an
- undo of the last key input, or it may simply delete the last
- character in the currently output text, or it may use
- transform rules to tell it how much to delete.</li>
- </ul>
- <p>We consider each transform type in turn and consider
- attributes to the <transforms> element pertinent to that
- type.</p>
- <hr>
- <h3>5.19 <a name="Element_reorder" href="#Element_reorder" id=
- "Element_reorder">Element: reorder</a></h3>
- <p>The reorder transform is applied after all transform except
- for those with type=“final”.</p>
- <p>This transform has the job of reordering sequences of
- characters that have been typed, from their typed order to the
- desired output order. The primary concern in this transform is
- to sort combining marks into their correct relative order after
- a base, as described in this section. The reorder transforms
- can be quite complex, keyboard layouts will almost always
- import them.</p>
- <p>The reordering algorithm consists of four parts:</p>
- <ol>
- <li>Create a sort key for each character in the input string.
- A sort key has 4 parts: (primary, index, tertiary).
- <ul>
- <li>The <b>primary weight</b> is the primary order
- value.</li>
- <li>The <b>secondary weight</b> is the index, a position
- in the input string, usually of the character itself, but
- it may be of a character earlier in the string.</li>
- <li>The <b>tertiary weight</b> is a tertiary order value
- (defaulting to 0).</li>
- <li>The <b>quaternary weight</b> is the index of the
- character in the string. This ensures a stable sort for
- sequences of characters with the same tertiary
- weight.</li>
- </ul>
- </li>
- <li>Mark each character as to whether it is a prebase
- character, one that is typed before the base and logically
- stored after. Thus it will have a primary order > 0.</li>
- <li>Use the sort key and the prebase mark to identify runs. A
- run starts with a prefix that contains any prebase characters
- and a single base character whose primary and tertiary key is
- 0. The run extends until, but not including, the start of the
- prefix of the next run or end of the string.
- <ul>
- <li>run := prebase* (primary=0 && tertiary=0)
- ((primary≠0 || tertiary≠0) && !prebase)*</li>
- </ul>
- </li>
- <li>Sort the character order of each character in the run
- based on its sort key.</li>
- </ol>
- <p>The primary order of a character with the Unicode property
- Combining_Character_Class (ccc) of 0 may well not be 0. In
- addition, a character may receive a different primary order
- dependent on context. For example, in the Devanagari sequence
- ka halant ka, the first ka would have a primary order 0 while
- the halant ka sequence would give both halant and the second ka
- a primary order > 0, for example 2. Note that “base”
- character in this discussion is not a Unicode base character.
- It is instead a character with primary=0.</p>
- <p>In order to get the characters into the correct relative
- order, it is necessary not only to order combining marks
- relative to the base character, but also to order some
- combining marks in a subsequence following another combining
- mark. For example in Devanagari, a nukta may follow consonant
- character, but it may also follow a conjunct consisting of a
- consonant, halant, consonant. Notice that the second consonant
- is not, in this model, the start of a new run because some
- characters may need to be reordered to before the first base,
- for example repha. The repha would get primary < 0, and be
- sorted before the character with order = 0, which is, in the
- case of Devanagari, the initial consonant of the orthographic
- syllable.</p>
- <p>The reorder transform consists of a single element type:
- <reorder> encapsulated in a <reorders> element.
- Each is a rule that matches against a string of characters with
- the action of setting the various ordering attributes (primary,
- tertiary, tertiary_base, prebase) for the matched characters in
- the string.</p>
- <blockquote>
- <p><strong>from</strong> This attribute follows the
- transform/@from attribute and contains a string of elements.
- Each element matches one character and may consist of a
- codepoint or a UnicodeSet (both as defined in UTS#35 section
- 5.3.3). This attribute is required.</p>
- <p><strong>before</strong> This attribute follows the
- transform/@before attribute and contains the element string
- that must match the string immediately preceding the start of
- the string that the @from matches.</p>
- <p><strong>after</strong> This attribute follows the
- transform/@after attribute and contains the element string
- that must match the string immediately following the end of
- the string that the @from matches.</p>
- <p><strong>order</strong> This attribute gives the primary
- order for the elements in the matched string in the @from
- attribute. The value is a simple integer between -128 and
- +127 inclusive, or a space separated list of such integers.
- For a single integer, it is applied to all the elements in
- the matched string. Details of such list type attributes are
- given after all the attributes are described. If missing, the
- order value of all the matched characters is 0. We consider
- the order value for a matched character in the string.</p>
- <ul>
- <li>If the value is 0 and its tertiary value is 0, then the
- character is the base of a new run.</li>
- <li>If the value is 0 and its tertiary value is non-zero,
- then it is a normal character in a run, with ordering
- semantics as described in the @tertiary attribute.</li>
- <li>If the value is negative, then the character is a
- primary character and will reorder to be before the base of
- the run.</li>
- <li>If the value is positive, then the character is a
- primary character and is sorted based on the order value as
- the primary key following a previous base character.</li>
- </ul>
- <p>A character with a zero tertiary value is a primary
- character and receives a sort key consisting of:</p>
- <ul>
- <li>Primary weight is the order value</li>
- <li>Secondary weight is the index of the character. This
- may be any value (character index, codepoint index) such
- that its value is greater than the character before it and
- less than the character after it.</li>
- <li>Tertiary weight is 0.</li>
- <li>Quaternary weight is the same as the secondary
- weight.</li>
- </ul>
- <p><strong>tertiary</strong> This attribute gives the
- tertiary order value to the characters matched. The value is
- a simple integer between -128 and +127 inclusive, or a space
- separated list of such integers. If missing, the value for
- all the characters matched is 0. We consider the tertiary
- value for a matched character in the string.</p>
- <ul>
- <li>If the value is 0 then the character is considered to
- have a primary order as specified in its order value and is
- a primary character.</li>
- <li>If the value is non zero, then the order value must be
- zero otherwise it is an error. The character is considered
- as a tertiary character for the purposes of ordering.</li>
- </ul>
- <p>A tertiary character receives its primary order and index
- from a previous character, which it is intended to sort
- closely after. The sort key for a tertiary character consists
- of:</p>
- <ul>
- <li>Primary weight is the primary weight of the primary
- character</li>
- <li>Secondary weight is the index of the primary character,
- not the tertiary character</li>
- <li>Tertiary weight is the tertiary value for the
- character.</li>
- <li>Quaternary weight is the index of the tertiary
- character.</li>
- </ul>
- <p><strong>tertiary_base</strong> This attribute is a space
- separated list of "true" or "false" values corresponding to
- each character matched. It is illegal for a tertiary
- character to have a true tertiary_base value. For a primary
- character it marks that this character may have tertiary
- characters moved after it. When calculating the secondary
- weight for a tertiary character, the most recently
- encountered primary character with a true tertiary_base
- attribute is used. Primary characters with an @order value of
- 0 automatically are treated as having tertiary_base true
- regardless of what is specified for them.</p>
- <p><strong>prebase</strong> This attribute gives the prebase
- attribute for each character matched. The value may be "true"
- or "false" or a space separated list of such values. If
- missing the value for all the characters matched is false. It
- is illegal for a tertiary character to have a true prebase
- value.</p>
- <p>If a primary character has a true prebase value then the
- character is marked as being typed before the base character
- of a run, even though it is intended to be stored after it.
- The primary order gives the intended position in the order
- after the base character, that the prebase character will end
- up. Thus @primary may not be 0. These characters are part of
- the run prefix. If such characters are typed then, in order
- to give the run a base character after which characters can
- be sorted, an appropriate base character, such as a dotted
- circle, is inserted into the output run, until a real base
- character has been typed. A value of "false" indicates that
- the character is not a prebase.</p>
- </blockquote>
- <p>There is no @error attribute.</p>
- <p>For @from attributes with a match string length greater than
- 1, the sort key information (@order, @tertiary, @tertiary_base,
- @prebase) may consist of a space separated list of values, one
- for each element matched. The last value is repeated to fill
- out any missing values. Such a list may not contain more values
- than there are elements in the @from attribute:</p>
- <pre> if len(@from) < len(@list) then error<br> else
- while len(@from) > len(@list)<br> append lastitem(@list) to @list<br> endwhile
- endif</pre>
- <p>For example, consider the word Northern Thai (nod-Lana)
- word: ᨡ᩠ᩅᩫ᩶ 'roasted'. This is ideally encoded as the
- following:</p>
- <table class='simple'>
- <tr>
- <th>name</th>
- <td><em>ka</em></td>
- <td><em>asat</em></td>
- <td><em>wa</em></td>
- <td><em>o</em></td>
- <td><em>t2</em></td>
- </tr>
- <tr>
- <th>code</th>
- <td>1A21</td>
- <td>1A60</td>
- <td>1A45</td>
- <td>1A6B</td>
- <td>1A76</td>
- </tr>
- <tr>
- <th>ccc</th>
- <td>0</td>
- <td>9</td>
- <td>0</td>
- <td>0</td>
- <td>230</td>
- </tr>
- </table>
- <p>(That sequence is already in NFC format.)</p>
- <p>Some users may type the upper component of the vowel first,
- and the tone before or after the lower component. Thus someone
- might type it as:</p>
- <table class='simple'>
- <tr>
- <th>name</th>
- <td><em>ka</em></td>
- <td><em>o</em></td>
- <td><em>t2</em></td>
- <td><em>asat</em></td>
- <td><em>wa</em></td>
- </tr>
- <tr>
- <th>code</th>
- <td>1A21</td>
- <td>1A6B</td>
- <td>1A76</td>
- <td>1A60</td>
- <td>1A45</td>
- </tr>
- <tr>
- <th>ccc</th>
- <td>0</td>
- <td>0</td>
- <td>230</td>
- <td>9</td>
- <td>0</td>
- </tr>
- </table>
- <p>The Unicode NFC format of that typed value reorders to:</p>
- <table class='simple'>
- <tr>
- <th>name</th>
- <td><em>ka</em></td>
- <td><em>o</em></td>
- <td><em>asat</em></td>
- <td><em>t2</em></td>
- <td><em>wa</em></td>
- </tr>
- <tr>
- <th>code</th>
- <td>1A21</td>
- <td>1A6B</td>
- <td>1A60</td>
- <td>1A76</td>
- <td>1A45</td>
- </tr>
- <tr>
- <th>ccc</th>
- <td>0</td>
- <td>0</td>
- <td>9</td>
- <td>230</td>
- <td>0</td>
- </tr>
- </table>
- <p>Finally, the user might also type in the sequence with the
- tone <em>after</em> the lower component.</p>
- <table class='simple'>
- <tr>
- <th>name</th>
- <td><em>ka</em></td>
- <td><em>o</em></td>
- <td><em>asat</em></td>
- <td><em>wa</em></td>
- <td><em>t2</em></td>
- </tr>
- <tr>
- <th>code</th>
- <td>1A21</td>
- <td>1A6B</td>
- <td>1A60</td>
- <td>1A45</td>
- <td>1A76</td>
- </tr>
- <tr>
- <th>ccc</th>
- <td>0</td>
- <td>0</td>
- <td>9</td>
- <td>0</td>
- <td>230</td>
- </tr>
- </table>
- <p>(That sequence is already in NFC format.)</p>
- <p>We want all of these sequences to end up ordered as the
- first. To do this, we use the following rules:</p>
- <pre>
- <reorder from="\u1A60" order="127"/> <!-- max possible order -->
- <reorder from="\u1A6B" order="42"/>
- <reorder from="[\u1A75-\u1A7C]" order="55"/><br> <reorder before="\u1A6B" from="\u1A60\u1A45" order="10"/><br> <reorder before="\u1A6B[\u1A75-\u1A7C]" from="\u1A60\u1A45" order="10"/><br> <reorder before="\u1A6B" from="\u1A60[\u1A75-\u1A7C]\u1A45" order="10 55 10"/></pre>
- <p>The first reorder is the default ordering for the
- <i>asat</i> which allows for it to be placed anywhere in a
- sequence, but moves any non-consonants that may immediately
- follow it, back before it in the sequence. The next two rules
- give the orders for the top vowel component and tone marks
- respectively. The next three rules give the <i>asat</i> and
- <i>wa</i> characters a primary order that places them before
- the <em>o</em>. Notice particularly the final reorder rule
- where the <i>asat</i>+<i>wa</i> is split by the tone mark. This
- rule is necessary in case someone types into the middle of
- previously normalized text.</p>
- <p><reorder> elements are priority ordered based first on
- the length of string their @from attribute matches and then the
- sum of the lengths of the strings their @before and @after
- attributes match.</p>
- <p>If a layout has two <transforms> elements of type
- reorder, e.g. from importing one and specifying the second,
- then <transform> elements are merged. The @from string in
- a <reorder> element describes a set of strings that it
- matches. This also holds for the @before and @after attributes.
- The intersection of two <reorder> elements consists of
- the intersections of their @from, @before and @after string
- sets. It is illegal for the intersection between any two
- <reorder> elements in the same <transforms> element
- to be non empty, although implementors are encouraged to have
- pity on layout authors when reporting such errors, since they
- can be hard to track down.</p>
- <p>If two <reorder> elements in two different
- <transforms> elements have a non empty intersection, then
- they are split and merged. They are split such that where there
- were two <reorder> elements, there are, in effect (but
- not actuality), three elements consisting of:</p>
- <ul>
- <li>@from, @before, @after that match the intersection of the
- two rules. The other attributes are merged, as described
- below.</li>
- <li>@from, @before, @after that match the set of strings in
- the first rule not in the intersection with the other
- attributes from the first rule.</li>
- <li>@from, @before, @after that match the set of strings in
- the second rule not in the intersection, with the other
- attributes from the second rule.</li>
- </ul>
- <p>When merging the other attributes, the second rule is taken
- to have priority (occurring later in the layout description
- file). Where the second rule does not define the value for a
- character but the first does, it is taken from the first rule,
- otherwise it is taken from the second rule.</p>
- <p>Notice that it is possible for two rules to match the same
- string, but for them not to merge because the distribution of
- the string across @before, @from, and @after is different. For
- example:</p>
- <pre> <reorder before="ab" from="cd" after="e"/></pre>
- <p>would not merge with:</p>
- <pre> <reorder before="a" from="bcd" after="e"/></pre>
- <p>When two <reorders> elements merge as the result of an
- import, the resulting reorder elements are sorted into priority
- order for matching.</p>
- <p>Consider this fragment from a shared reordering for the
- Myanmar script:</p>
- <pre><!-- medial-r -->
- <reorder from="\u103C" order="20"/>
-
-<!-- [medial-wa or shan-medial-wa] -->
- <reorder from="[\u103D\u1082]" order="25"/>
-
-<!-- [medial-ha or shan-medial-wa]+asat = Mon <i>asat</i> --><br> <reorder from="[\u103E\u1082]\u103A" order="27"/>
-
-<!-- [medial-ha or mon-medial-wa] --><br> <reorder from="[\u103E\u1060]" order="27"/>
-
-<!-- [e-vowel or shan-e-vowel] --><br> <reorder from="[\u1031\u1084]" order="30"/>
-<br> <reorder from="[\u102D\u102E\u1033-\u1035\u1071-\u1074\u1085\u109D\uA9E5]" order="35"/></pre>
- <p>A particular Myanmar keyboard layout can have this reorders
- element:</p>
- <pre><reorders type="reorder"><br><!-- Kinzi -->
- <reorder from="\u1004\u103A\u1039" order="-1"/>
-
-<!-- e-vowel -->
- <reorder from="\u1031" prebase="1"/>
-
-<!-- medial-r -->
- <reorder from="\u103C" prebase="1"/><br></reorders></pre>
- <p>The effect of this that the <em>e-vowel</em> will be
- identified as a prebase and will have an order of 30. Likewise
- a <em>medial-r</em> will be identified as a prebase and will
- have an order of 20. Notice that a <em>shan-e-vowel</em> will
- not be identified as a prebase (even if it should be!). The
- <em>kinzi</em> is described in the layout since it moves
- something across a run boundary. By separating such movements
- (prebase or moving to in front of a base) from the shared
- ordering rules, the shared ordering rules become a
- self-contained combining order description that can be used in
- other keyboards or even in other contexts than keyboarding.</p>
- <hr>
- <h3>5.20 <a name="Element_final" href="#Element_final" id=
- "Element_final">Element: final</a></h3>
- <p>The final transform is applied after the reorder transform.
- It executes in a similar way to the simple transform with the
- settings ignored, as if there were no settings in the
- <settings> element.</p>
- <p>This is an example from Khmer where split vowels are
- combined after reordering.</p>
- <pre>
- <transforms type="final">
- <transform from="\u17C1\u17B8" to="\u17BE"/>
- <transform from="\u17C1\u17B6" to="\u17C4"/>
- </transforms></pre>
- <p>Another example allows a keyboard implementation to alert or
- stop people typing two lower vowels in a Burmese cluster:</p>
- <pre>
- <transform from="[\u102F\u1030\u1048\u1059][\u102F\u1030\u1048\u1059]" error="fail"/></pre>
- <hr>
- <h3>5.21 <a name="Element_backspaces" href=
- "#Element_backspaces" id="Element_backspaces">Element:
- backspaces</a></h3>
- <p>The backspace transform is an optional transform that is not
- applied on input of normal characters, but is only used to
- perform extra backspace modifications to previously committed
- text.</p>
- <p>Keyboarding applications typically, but are not required, to
- work in one of two modes:</p>
- <dl>
- <dt><b>text entry</b></dt>
- <dd>text entry happens while a user is typing new text. A
- user typically wants the backspace key to undo whatever they
- last typed, whether or not they typed things in the 'right'
- order.</dd>
- </dl>
- <dl>
- <dt><b>text editing</b></dt>
- <dd>text editing happens when a user moves the cursor into
- some previously entered text which may have been entered by
- someone else. As such, there is no way to know in which order
- things were typed, but a user will still want appropriate
- behaviour when they press backspace. This may involve
- deleting more than one character or replacing a sequence of
- characters with a different sequence.</dd>
- </dl>
- <p>In the text entry mode, there is no need for any special
- description of backspace behaviour. A keyboarding application
- will typically keep a history of previous output states and
- just revert to the previous state when backspace is hit.</p>
- <p>In text editing mode, different keyboard layouts may behave
- differently in the same textual context. The backspace
- transform allows the keyboard layout to specify the effect of
- pressing backspace in a particular textual context. This is
- done by specifying a set of backspace rules that match a string
- before the cursor and replace it with another string. The rules
- are expressed as backspace elements encapsulated in a
- backspaces element.</p>
- <hr>
- <h3>5.22 <a name="Element_backspace" href="#Element_backspace"
- id="Element_backspace">Element: backspace</a></h3>
- <p>The backspace element has the same @before, @from, @after,
- @to, @errors of the transform element. The @to is optional with
- backspace.</p>
- <p>For example, consider deleting a Devanagari ksha:</p>
- <pre>
- <backspaces>
- <backspace from="\u0915\u094D\u0936"/>
- </backspaces></pre>
- <p>Here there is no @to attribute since the whole string is
- being deleted. This is not uncommon in the backspace
- transforms.</p>
- <p>A more complex example comes from a Burmese visually ordered
- keyboard:</p>
- <pre> <backspaces>
-<!-- Kinzi --><br> <backspace from="[\u1004\u101B\u105A]\u103A\u1039"/>
-
-<!-- subjoined consonant --><br> <backspace from="\u1039[\u1000-\u101C\u101E\u1020\u1021\u1050\u1051\u105A-\u105D]"/>
-<br><!-- tone mark -->
- <backspace from="\u102B\u103A"/>
-<br><!-- Handle prebases -->
-<!-- diacritics stored before e-vowel --><br> <backspace from="[\u103A-\u103F\u105E-\u1060\u1082]\u1031" to="\u1031"/>
-
-<!-- diacritics stored before medial r --><br> <backspace from="[\u103A-\u103B\u105E-\u105F]\u103C" to="\u103C"/>
-<br><!-- subjoined consonant before e-vowel -->
- <backspace from="\u1039[\u1000-\u101C\u101E\u1020\u1021]\u1031" to="\u1031"/>
-<br><!-- base consonant before e-vowel -->
- <backspace from="[\u1000-\u102A\u103F-\u1049\u104E]\u1031" to="\uFDDF\u1031"/>
-<br><!-- subjoined consonant before medial r -->
- <backspace from="\u1039[\u1000-\u101C\u101E\u1020\u1021]\u103C" to="\u103C"/>
-<br><!-- base consonant before medial r -->
- <backspace from="[\u1000-\u102A\u103F-\u1049\u104E]\u103C" to="\uFDDF\u103C"/>
-<br><!-- delete lone medial r or e-vowel -->
- <backspace from="\uFDDF[\u1031\u103C]"/><br></backspaces></pre>
- <p>The above example is simplified, and doesn't fully handle
- the interaction between medial-r and e-vowel.</p>
- <p>The character \uFDDF does not represent a literal character,
- but is instead a special placeholder, a "filler string". When a
- keyboard implementation handles a user pressing a key that
- inserts a prebase character, it also has to insert a special
- filler string before the prebase to ensure that the prebase
- character does not combine with the previous cluster. See the
- reorder transform for details. The precise filler string is
- implementation dependent. Rather than requiring keyboard layout
- designers to know what the filler string is, we reserve a
- special character that the keyboard layout designer may use to
- reference this filler string. It is up to the keyboard
- implementation to, in effect, replace that character with the
- filler string.</p>
- <p>The first three transforms above delete various ligatures
- with a single keypress. The other transforms handle prebase
- characters. There are two in this Burmese keyboard. The
- transforms delete the characters preceding the prebase
- character up to base which gets replaced with the prebase
- filler string, which represents a null base. Finally the
- prebase filler string + prebase is deleted as a unit.</p>
- <p>The backspace transform is much like other transforms except
- in its processing model. If we consider the same transform as
- in the simple transform example, but as a backspace:</p>
- <blockquote>
- <backspace before="X" from="Y" after="Z" to="B"/>
- </blockquote>
- <p>This would transform the string:</p>
- <blockquote>
- XYZ → XBZ
- </blockquote>
- <p>If we mark where the current match position is before and
- after the transform we see:</p>
- <blockquote>
- X Y | Z → X B | Z
- </blockquote>
- <p>Whereas a simple or final transform would then run other
- transforms in the transform list, advancing the processing
- position until it gets to the end of the string, the backspace
- transform only matches a single backspace rule and then
- finishes.</p>
- <hr>
- <h2>6 <a name="Element_Heirarchy_Platform_File" href=
- "#Element_Heirarchy_Platform_File" id=
- "Element_Heirarchy_Platform_File">Element Hierarchy - Platform
- File</a></h2>
- <p>There is a separate XML structure for platform-specific
- configuration elements. The most notable component is a mapping
- between the hardware key codes to the ISO layout positions for
- that platform.</p>
- <h3>6.1 <a name="Element_platform" href="#Element_platform" id=
- "Element_platform">Element: platform</a></h3>
- <p>This is the top level element. This element contains a set
- of elements defined below. A document shall only contain a
- single instance of this element.</p>
- <p>Syntax</p>
- <p><platform></p>
- <p>{platform-specific elements}</p>
- <p></platform></p>
- <h3>6.2 <a name="Element_hardwareMap" href=
- "#Element_hardwareMap" id="Element_hardwareMap">Element:
- hardwareMap</a></h3>
- <p>This element must have a platform element as its parent.
- This element contains a set of map elements defined below. A
- document shall only contain a single instance of this
- element.</p>
- <p>Syntax</p>
- <pre><platform>
- <hardwareMap>
- {a set of map elements}
- </hardwareMap>
-</platform></pre>
- <h3>6.3 <a name="Element_hardwareMap_map" href=
- "#Element_hardwareMap_map" id=
- "Element_hardwareMap_map">Element: map</a></h3>
- <p>This element must have a hardwareMap element as its parent.
- This element maps between a hardware keycode and the
- corresponding ISO layout position of the key.</p>
- <p>Syntax</p>
- <p><map keycode="{hardware keycode}" iso="{ISO layout
- position}"/></p>
- <dl>
- <dt>Attribute: keycode (required)</dt>
- <dd>The hardware key code value of the key. This value is an
- integer which is provided by the keyboard driver.</dd>
- </dl>
- <dl>
- <dt>Attribute: iso (required)</dt>
- <dd>The corresponding position of a key using the ISO layout
- convention where rows are identified by letters and columns
- are identified by numbers. For example, "D01" corresponds to
- the "Q" key on a US keyboard. (See the definition at the
- beginning of the document for a diagram).</dd>
- </dl>
- <p>Examples</p>
- <pre>
- <platform><br> <hardwareMap><br> <map keycode="2" iso="E01" /><br> <map keycode="3" iso="E02" /><br> <map keycode="4" iso="E03" /><br> <map keycode="5" iso="E04" /><br> <map keycode="6" iso="E05" /><br> <map keycode="7" iso="E06" /><br> <map keycode="41" iso="E00" /><br> </hardwareMap><br></platform></pre>
- <h2>7 <a name="Invariants" href="#Invariants" id=
- "Invariants">Invariants</a></h2>
- <p>Beyond what the DTD imposes, certain other restrictions on
- the data are imposed on the data.</p>
- <ol>
- <li>For a given platform, every map[@iso] value must be in
- the hardwareMap if there is one (_keycodes.xml)</li>
- <li>Every map[@base] value must also be in base[@base]
- value</li>
- <li>No keyMap[@modifiers] value can overlap with another
- keyMap[@modifiers] value.
- <ul>
- <li>eg you can't have "RAlt Ctrl" in one keyMap, and "Alt
- Shift" in another (because Alt = RAltLAlt).</li>
- </ul>
- </li>
- <li>Every sequence of characters in a transform[@from] value
- must be a concatenation of two or more map[@to] values.
- <ul>
- <li>eg with <transform from="xyz" to="q"> there
- must be some map values to get there, such as <map...
- to="xy"> & <map... to="z"></li>
- </ul>
- </li>
- <li>There must be either 0 or 1 of (keyMap[@fallback] or
- baseMap[@fallback]) attributes</li>
- <li>If the base and chars values for modifiers="" are all
- identical, and there are no longpresses, that keyMap must not
- appear (??)</li>
- <li>There will never be overlaps among modifier values.</li>
- <li>A modifier set will never have ? (optional) on all values
- <ul>
- <li>eg, you'll never have RCtrl?Caps?LShift?</li>
- </ul>
- </li>
- <li>Every base[@base] value must be unique.</li>
- <li>A modifier attribute value will aways be minimal,
- observing the following simplification rules.<br></li>
- </ol>
- <table>
- <!-- nocaption -->
- <tbody>
- <tr>
- <td>
- <p>Notation</p>
- </td>
- <td>
- <p>Notes</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>Lower case character (eg. <i>x</i> )</p>
- </td>
- <td>
- <p>Interpreted as any combination of modifiers.<br>
- (eg. <i>x</i> = CtrlShiftOption)</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>Upper-case character (eg. <i>Y</i> )</p>
- </td>
- <td>
- <p>Interpreted as a single modifier key (which may or
- may not have a L and R variant)<br>
- (eg. <i>Y</i> = Ctrl, <i>RY</i> = RCtrl, etc..)</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>Y? ⇔ Y ∨ ∅</p>
- <p>Y ⇔ LY ∨ RY ∨ LYRY</p>
- </td>
- <td>
- <p>Eg. Opt? ⇔ ROpt ∨ LOpt ∨ ROptLOpt ∨ ∅<br>
- Eg. Opt ⇔ ROpt ∨ LOpt ∨ ROptLOpt</p>
- </td>
- </tr>
- </tbody>
- </table>
- <table>
- <!-- nocaption -->
- <tbody>
- <tr>
- <td>
- <p>Axiom</p>
- </td>
- <td>
- <p>Example</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>xY ∨ x ⇒ xY?</p>
- </td>
- <td>
- <p>OptCtrlShift OptCtrl → OptCtrlShift?</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>xRY ∨ xY? ⇒ xY?</p>
- <p>xLY ∨ xY? ⇒ xY?</p>
- </td>
- <td>
- <p>OptCtrlRShift OptCtrlShift? → OptCtrlShift?</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>xRY? ∨ xY ⇒ xY?</p>
- <p>xLY? ∨ xY ⇒ xY?</p>
- </td>
- <td>
- <p>OptCtrlRShift? OptCtrlShift → OptCtrlShift?</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>xRY? ∨ xY? ⇒ xY?</p>
- <p>xLY? ∨ xY? ⇒ xY?</p>
- </td>
- <td>
- <p>OptCtrlRShift? OptCtrlShift? → OptCtrlShift?</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>xRY ∨ xY ⇒ xY</p>
- <p>xLY ∨ xY ⇒ xY</p>
- </td>
- <td>
- <p>OptCtrlRShift OptCtrlShift → OptCtrlShift?</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>LY?RY?</p>
- </td>
- <td>
- <p>OptRCtrl?LCtrl? → OptCtrl?</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>xLY? ⋁ xLY ⇒ xLY?</p>
- </td>
- <td> </td>
- </tr>
- <tr>
- <td>
- <p>xY? ⋁ xY ⇒ xY?</p>
- </td>
- <td> </td>
- </tr>
- <tr>
- <td>
- <p>xY? ⋁ x ⇒ xY?</p>
- </td>
- <td> </td>
- </tr>
- <tr>
- <td>
- <p>xLY? ⋁ x ⇒ xLY?</p>
- </td>
- <td> </td>
- </tr>
- <tr>
- <td>
- <p>xLY ⋁ x ⇒ xLY?</p>
- </td>
- <td> </td>
- </tr>
- </tbody>
- </table>
- <h2>8 <a name="Data_Sources" href="#Data_Sources" id=
- "Data_Sources">Data Sources</a></h2>
- <p>Here is a list of the data sources used to generate the
- initial key map layouts:</p>
- <table>
- <caption>
- <a name="Key_Map_Data_Sources" href="#Key_Map_Data_Sources"
- id="Key_Map_Data_Sources">Key Map Data Sources</a>
- </caption>
- <tbody>
- <tr>
- <td>
- <p>Platform</p>
- </td>
- <td>
- <p>Source</p>
- </td>
- <td>
- <p>Notes</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>Android</p>
- </td>
- <td>
- <p>Android 4.0 - Ice Cream Sandwich<br>
- (<a href=
- "https://source.android.com/source/downloading.html">https://source.android.com/source/downloading.html</a>)</p>
- </td>
- <td>
- <p>Parsed layout files located in
- packages/inputmethods/LatinIME/java/res</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>ChromeOS</p>
- </td>
- <td>
- <p>XKB (<a href=
- "https://www.x.org/wiki/XKB">https://www.x.org/wiki/XKB</a>)</p>
- </td>
- <td>
- <p>The ChromeOS represents a very small subset of the
- keyboards available from XKB.</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>Mac OSX</p>
- </td>
- <td>
- <p>Ukelele bundled System Keyboards (<a href=
- "https://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=ukelele">https://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=ukelele</a>)</p>
- </td>
- <td>
- <p>These layouts date from Mac OSX 10.4 and are
- therefore a bit outdated</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>Windows</p>
- </td>
- <td>
- <p>Generated .klc files from the Microsoft Keyboard
- Layout Creator (<a href=
- "https://support.microsoft.com/en-us/help/823010/the-microsoft-keyboard-layout-creator">https://support.microsoft.com/en-us/help/823010/the-microsoft-keyboard-layout-creator</a>)</p>
- </td>
- <td>
- <!--waiting for information on the new location for the following-->
- <!--<p>For interactive layouts, see also <a href="xxxx">xxxx</a></p>-->
- </td>
- </tr>
- </tbody>
- </table>
-
- <h2>9 <a name="Keyboard_IDs" href="#Keyboard_IDs" id=
- "Keyboard_IDs">Keyboard IDs</a></h2>
- <p>There is a set of subtags that help identify the keyboards.
- Each of these are used after the "t-k0" subtags to help
- identify the keyboards. The first tag appended is a mandatory
- platform tag followed by zero or more tags that help
- differentiate the keyboard from others with the same locale
- code.</p>
- <h3>9.1 <a name="Principles_for_Keyboard_Ids" href=
- "#Principles_for_Keyboard_Ids" id=
- "Principles_for_Keyboard_Ids">Principles for Keyboard
- Ids</a></h3>
- <p>The following are the design principles for the ids.</p>
- <ol>
- <li>BCP47 compliant.
- <ol>
- <li>Eg, "en-t-k0-extended".</li>
- </ol>
- </li>
- <li>Use the minimal language id based on likelySubtags.
- <ol>
- <li>Eg, instead of en-US-t-k0-xxx, use en-t-k0-xxx.
- Because there is <likelySubtag from="en"
- to="en_Latn_US"/>, en-US → en.</li>
- <li>The data is in <a href=
- "https://github.com/unicode-org/cldr/releases/tag/latest/common/supplemental/likelySubtags.xml">
- https://github.com/unicode-org/cldr/releases/tag/latest/common/supplemental/likelySubtags.xml</a></li>
- </ol>
- </li>
- <li>The platform goes first, if it exists. If a keyboard on
- the platform changes over time, both are dated, eg
- bg-t-k0-chromeos-2011. When selecting, if there is no date,
- it means the latest one.</li>
- <li>Keyboards are only tagged that differ from the "standard
- for each platform". That is, for each language on a platform,
- there will be a keyboard with no subtags other than the
- platform.Subtags with a common semantics across platforms are
- used, such as '-extended', -phonetic, -qwerty, -qwertz,
- -azerty, …</li>
- <li>In order to get to 8 letters, abbreviations are reused
- that are already in <a href=
- "https://github.com/unicode-org/cldr/releases/tag/latest/common/bcp47/">bcp47</a>
- -u/-t extensions and in <a href=
- "https://www.iana.org/assignments/language-subtag-registry">language-subtag-registry</a>
- variants, eg for Traditional use "-trad" or "-traditio" (both
- exist in <a href=
- "https://github.com/unicode-org/cldr/releases/tag/latest/common/bcp47/">bcp47</a>).</li>
- <li>Multiple languages cannot be indicated, so the
- predominant target is used.
- <ol>
- <li>For Finnish + Sami, use fi-t-k0-smi or
- extended-smi</li>
- </ol>
- </li>
- <li>In some cases, there are multiple subtags, like
- en-US-t-k0-chromeos-intl-altgr.xml</li>
- <li>Otherwise, platform names are used as a guide.</li>
- </ol>
- <h2>10 <a name="Platform_Behaviors_in_Edge_Cases" href=
- "#Platform_Behaviors_in_Edge_Cases" id=
- "Platform_Behaviors_in_Edge_Cases">Platform Behaviors in Edge
- Cases</a></h2>
- <table>
- <!-- nocaption -->
- <tbody>
- <tr>
- <td>
- <p>Platform</p>
- </td>
- <td>
- <p>No modifier combination match is available</p>
- </td>
- <td>
- <p>No map match is available for key position</p>
- </td>
- <td>
- <p>Transform fails (ie. if ^d is pressed when that
- transform does not exist)</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>ChromeOS</p>
- </td>
- <td>
- <p>Fall back to base</p>
- </td>
- <td>
- <p>Fall back to character in a keyMap with same "level"
- of modifier combination. If this character does not
- exist, fall back to (n-1) level. (This is handled
- data-generation side).<br>
- In the spec: No output</p>
- </td>
- <td>
- <p>No output at all</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>Mac OSX</p>
- </td>
- <td>
- <p>Fall back to base (unless combination is some sort
- of keyboard shortcut, eg. cmd-c)</p>
- </td>
- <td>
- <p>No output</p>
- </td>
- <td>
- <p>Both keys are output separately</p>
- </td>
- </tr>
- <tr>
- <td>
- <p>Windows</p>
- </td>
- <td>
- <p>No output</p>
- </td>
- <td>
- <p>No output</p>
- </td>
- <td>
- <p>Both keys are output separately</p>
- </td>
- </tr>
- </tbody>
- </table>
- <p> </p>
- <hr>
- <p class="copyright">Copyright © 2001–2020 Unicode, Inc. All
- Rights Reserved. The Unicode Consortium makes no expressed or
- implied warranty of any kind, and assumes no liability for
- errors or omissions. No liability is assumed for incidental and
- consequential damages in connection with or arising out of the
- use of the information or programs contained or accompanying
- this technical report. The Unicode <a href=
- "https://unicode.org/copyright.html">Terms of Use</a> apply.</p>
- <p class="copyright">Unicode and the Unicode logo are
- trademarks of Unicode, Inc., and are registered in some
- jurisdictions.</p>
- </div>
-</body>
-</html>
diff --git a/docs/ldml/tr35-keyboards.md b/docs/ldml/tr35-keyboards.md
new file mode 100644
index 0000000..2b25a60
--- /dev/null
+++ b/docs/ldml/tr35-keyboards.md
@@ -0,0 +1,1516 @@
+## Unicode Technical Standard #35
+
+# Unicode Locale Data Markup Language (LDML)<br/>Part 7: Keyboards
+
+<!-- HTML: no th -->
+<table><tbody>
+<tr><td>Version</td><td>39</td></tr>
+<tr><td>Editors</td><td>Steven Loomis (<a href="mailto:srl@icu-project.org">srl@icu-project.org</a>) and <a href="tr35.md#Acknowledgments">other CLDR committee members</a></td></tr>
+</tbody></table>
+
+For the full header, summary, and status, see [Part 1: Core](tr35.md).
+
+### _Summary_
+
+This document describes parts of an XML format (_vocabulary_) for the exchange of structured locale data. This format is used in the [Unicode Common Locale Data Repository](https://unicode.org/cldr/).
+
+This is a partial document, describing keyboard mappings. For the other parts of the LDML see the [main LDML document](tr35.md) and the links above.
+
+### _Status_
+
+_This document has been reviewed by Unicode members and other interested parties, and has been approved for publication by the Unicode Consortium. This is a stable document and may be used as reference material or cited as a normative reference by other specifications._
+
+> _**A Unicode Technical Standard (UTS)** is an independent specification. Conformance to the Unicode Standard does not imply conformance to any UTS._
+
+_Please submit corrigenda and other comments with the CLDR bug reporting form [[Bugs](tr35.md#Bugs)]. Related information that is useful in understanding this document is found in the [References](tr35.md#References). For the latest version of the Unicode Standard see [[Unicode](tr35.md#Unicode)]. For a list of current Unicode Technical Reports see [[Reports](tr35.md#Reports)]. For more information about versions of the Unicode Standard, see [[Versions](tr35.md#Versions)]._
+
+## <a name="Parts" href="#Parts">Parts</a>
+
+The LDML specification is divided into the following parts:
+
+* Part 1: [Core](tr35.md#Contents) (languages, locales, basic structure)
+* Part 2: [General](tr35-general.md#Contents) (display names & transforms, etc.)
+* Part 3: [Numbers](tr35-numbers.md#Contents) (number & currency formatting)
+* Part 4: [Dates](tr35-dates.md#Contents) (date, time, time zone formatting)
+* Part 5: [Collation](tr35-collation.md#Contents) (sorting, searching, grouping)
+* Part 6: [Supplemental](tr35-info.md#Contents) (supplemental data)
+* Part 7: [Keyboards](tr35-keyboards.md#Contents) (keyboard mappings)
+
+## <a name="Contents" href="#Contents">Contents of Part 7, Keyboards</a>
+
+* 1 [Keyboards](#Introduction)
+* 2 [Goals and Nongoals](#Goals_and_Nongoals)
+* 3 [Definitions](#Definitions)
+* 4 [File and Directory Structure](#File_and_Dir_Structure)
+* 5 [Element Hierarchy - Layout File](#Element_Heirarchy_Layout_File)
+ * 5.1 [Element: keyboard](#Element_Keyboard)
+ * 5.2 [Element: version](#Element_version)
+ * 5.3 [Element: generation](#Element_generation)
+ * 5.4 [Element: names](#Element_names)
+ * 5.5 [Element: name](#Element_name)
+ * 5.6 [Element: settings](#Element_settings)
+ * 5.7 [Element: keyMap](#Element_keyMap)
+ * Table: [Possible Modifier Keys](#Possible_Modifier_Keys)
+ * 5.8 [Element: map](#Element_map)
+ * 5.9 [Element: import](#Element_import)
+ * 5.10 [Element: displayMap](#Element_displayMap)
+ * 5.11 [Element: display](#Element_display)
+ * 5.12 [Element: layer](#Element_layer)
+ * 5.13 [Element: row](#Element_row)
+ * 5.14 [Element: switch](#Element_switch)
+ * 5.15 [Element: vkeys](#Element_vkeys)
+ * 5.16 [Element: vkey](#Element_vkey)
+ * 5.17 [Element: transforms](#Element_transforms)
+ * 5.18 [Element: transform](#Element_transform)
+ * 5.19 [Element: reorder](#Element_reorder)
+ * 5.20 [Element: final](#Element_final)
+ * 5.21 [Element: backspaces](#Element_backspaces)
+ * 5.22 [Element: backspace](#Element_backspace)
+* 6 [Element Hierarchy - Platform File](#Element_Heirarchy_Platform_File)
+ * 6.1 [Element: platform](#Element_platform)
+ * 6.2 [Element: hardwareMap](#Element_hardwareMap)
+ * 6.3 [Element: map](#Element_hardwareMap_map)
+* 7 [Invariants](#Invariants)
+* 8 [Data Sources](#Data_Sources)
+ * Table: [Key Map Data Sources](#Key_Map_Data_Sources)
+* 9 [Keyboard IDs](#Keyboard_IDs)
+ * 9.1 [Principles for Keyboard Ids](#Principles_for_Keyboard_Ids)
+* 10 [Platform Behaviors in Edge Cases](#Platform_Behaviors_in_Edge_Cases)
+
+<a name="Keyboards"></a>
+## 1 <a name="Introduction" href="#Introduction">Keyboards</a>
+
+The CLDR keyboard format provides for the communication of keyboard mapping data between different modules, and the comparison of data across different vendors and platforms. The standardized identifier for keyboards can be used to communicate, internally or externally, a request for a particular keyboard mapping that is to be used to transform either text or keystrokes. The corresponding data can then be used to perform the requested actions.
+
+For example, a web-based virtual keyboard may transform text in the following way. Suppose the user types a key that produces a "W" on a qwerty keyboard. A web-based tool using an azerty virtual keyboard can map that text ("W") to the text that would have resulted from typing a key on an azerty keyboard, by transforming "W" to "Z". Such transforms are in fact performed in existing web applications.
+
+The data can also be used in analysis of the capabilities of different keyboards. It also allows better interoperability by making it easier for keyboard designers to see which characters are generally supported on keyboards for given languages.
+
+To illustrate this specification, here is an abridged layout representing the English US 101 keyboard on the Mac OSX operating system (with an inserted long-press example). For more complete examples, and information collected about keyboards, see keyboard data in XML.
+
+```xml
+<keyboard locale="en-t-k0-osx">
+ <version platform="10.4" number="$Revision: 8294 $" />
+ <names>
+ <name value="U.S." />
+ </names>
+ <keyMap>
+ <map iso="E00" to="`" />
+ <map iso="E01" to="1" />
+ <map iso="D01" to="q" />
+ <map iso="D02" to="w" />
+ <map iso="D03" to="e" longPress="é è ê ë" />
+ …
+ </keyMap>
+ <keyMap modifiers="caps">
+ <map iso="E00" to="`" />
+ <map iso="E01" to="1" />
+ <map iso="D01" to="Q" />
+ <map iso="D02" to="W" />
+ …
+ </keyMap>
+ <keyMap modifiers="opt">
+ <map iso="E00" to="`" />
+ <map iso="E01" to="¡" /> <!-- key=1 -->
+ <map iso="D01" to="œ" /> <!-- key=Q -->
+ <map iso="D02" to="∑" /> <!-- key=W -->
+ …
+ </keyMap>
+ <transforms type="simple">
+ <transform from="` " to="`" />
+ <transform from="`a" to="à" />
+ <transform from="`A" to="À" />
+ <transform from="´ " to="´" />
+ <transform from="´a" to="á" />
+ <transform from="´A" to="Á" />
+ <transform from="˜ " to="˜" />
+ <transform from="˜a" to="ã" />
+ <transform from="˜A" to="Ã" />
+ …
+ </transforms>
+</keyboard>
+```
+
+And its associated platform file (which includes the hardware mapping):
+
+```xml
+<platform id="osx">
+ <hardwareMap>
+ <map keycode="0" iso="C01" />
+ <map keycode="1" iso="C02" />
+ <map keycode="6" iso="B01" />
+ <map keycode="7" iso="B02" />
+ <map keycode="12" iso="D01" />
+ <map keycode="13" iso="D02" />
+ <map keycode="18" iso="E01" />
+ <map keycode="50" iso="E00" />
+ </hardwareMap>
+</platform>
+```
+
+* * *
+
+## 2 <a name="Goals_and_Nongoals" href="#Goals_and_Nongoals">Goals and Nongoals</a>
+
+Some goals of this format are:
+
+1. Make the XML as readable as possible.
+2. Represent faithfully keyboard data from major platforms: it should be possible to create a functionally-equivalent data file (such that given any input, it can produce the same output).
+3. Make as much commonality in the data across platforms as possible to make comparison easy.
+
+Some non-goals (outside the scope of the format) currently are:
+
+1. Display names or symbols for keycaps (eg, the German name for "Return"). If that were added to LDML, it would be in a different structure, outside the scope of this section.
+2. Advanced IME features, handwriting recognition, etc.
+3. Roundtrip mappings—the ability to recover precisely the same format as an original platform's representation. In particular, the internal structure may have no relation to the internal structure of external keyboard source data, the only goal is functional equivalence.
+4. More sophisticated transforms, such as for Indic character rearrangement. It is anticipated that these would be added to a future version, after working out a reasonable representation.
+
+Note: During development of this section, it was considered whether the modifier RAlt (=AltGr) should be merged with Option. In the end, they were kept separate, but for comparison across platforms implementers may choose to unify them.
+
+Note that in parts of this document, the format `@x` is used to indicate the _attribute_ **x**.
+
+* * *
+
+## 3 <a name="Definitions" href="#Definitions">Definitions</a>
+
+**Arrangement** is the term used to describe the relative position of the rectangles that represent keys, either physically or virtually. A physical keyboard has a static arrangement while a virtual keyboard may have a dynamic arrangement that changes per language and/or layer. While the arrangement of keys on a keyboard may be fixed, the mapping of those keys may vary.
+
+**Base character:** The character emitted by a particular key when no modifiers are active. In ISO terms, this is group 1, level 1.
+
+**Base map:** A mapping from the ISO positions to the base characters. There is only one base map per layout. The characters on this map can be output by not using any modifier keys.
+
+**Core keyboard layout:** also known as “alpha” block. The primary set of key values on a keyboard that are used for typing the target language of the keyboard. For example, the three rows of letters on a standard US QWERTY keyboard (QWERTYUIOP, ASDFGHJKL, ZXCVBNM) together with the most significant punctuation keys. Usually this equates to the minimal keyset for a language as seen on mobile phone keyboards.
+
+**Hardware map:** A mapping between key codes and ISO layout positions.
+
+**Input Method Editor (IME):** a component or program that supports input of large character sets. Typically, IMEs employ contextual logic and candidate UI to identify the Unicode characters intended by the user.
+
+**ISO position:** The corresponding position of a key using the ISO layout convention where rows are identified by letters and columns are identified by numbers. For example, "D01" corresponds to the "Q" key on a US keyboard. For the purposes of this document, an ISO layout position is depicted by a one-letter row identifier followed by a two digit column number (like "B03", "E12" or "C00"). The following diagram depicts a typical US keyboard layout superimposed with the ISO layout indicators (it is important to note that the number of keys and their physical placement relative to each-other in this diagram is irrelevant, rather what is important is their logical placement using the ISO convention):
+
+
+
+One may also extend the notion of the ISO layout to support keys that don't map directly to the diagram above (such as the Android device - see diagram). Per the ISO standard, the space bar is mapped to "A03", so the period and comma keys are mapped to "A02" and "A04" respectively based on their relative position to the space bar. Also note that the "E" row does not exist on the Android keyboard.
+
+
+
+If it becomes necessary in the future, the format could extend the ISO layout to support keys that are located to the left of the "00" column by using negative column numbers "-01", "-02" and so on, or 100's complement "99", "98",...
+
+**Key:** A key on a physical keyboard.
+
+**Key code:** The integer code sent to the application on pressing a key.
+
+**Key map:** The basic mapping between ISO positions and the output characters for each set of modifier combinations associated with a particular layout. There may be multiple key maps for each layout.
+
+**Keyboard:** The physical keyboard.
+
+**Keyboard layout:** A layout is the overall keyboard configuration for a particular locale. Within a keyboard layout, there is a single base map, one or more key maps and zero or more transforms.
+
+**Layer** is an arrangement of keys on a virtual keyboard. Since it is often not intended to use two hands on a visual keyboard to allow the pressing of modifier keys. Modifier keys are made sticky in that one presses one, the visual representation, and even arrangement, of the keys change, and you press the key. This visual representation is a layer. Thus a virtual keyboard is made up of a set of layers.
+
+**Long-press key:** also known as a “child key”. A secondary key that is invoked from a top level key on a software keyboard. Secondary keys typically provide access to variants of the top level key, such as accented variants (a => á, à, ä, ã)
+
+**Modifier:** A key that is held to change the behavior of a keyboard. For example, the "Shift" key allows access to upper-case characters on a US keyboard. Other modifier keys include but is not limited to: Ctrl, Alt, Option, Command and Caps Lock.
+
+**Physical keyboard** is a keyboard that has individual keys that are pressed. Each key has a unique identifier and the arrangement doesn't change, even if the mapping of those keys does.
+
+**Transform:** A transform is an element that specifies a set of conversions from sequences of code points into one (or more) other code points. For example, in most latin keyboards hitting the "^" dead-key followed by the "e" key produces "ê".
+
+**Virtual keyboard** is a keyboard that is rendered on a, typically, touch surface. It has a dynamic arrangement and contrasts with a physical keyboard. This term has many synonyms: touch keyboard, software keyboard, SIP (Software Input Panel). This contrasts with other uses of the term virtual keyboard as an on-screen keyboard for reference or accessibility data entry.
+
+* * *
+
+## 4 <a name="File_and_Dir_Structure" href="#File_and_Dir_Structure">File and Directory Structure</a>
+
+Each platform has its own directory, where a "platform" is a designation for a set of keyboards available from a particular source, such as Windows or Chromeos. This directory name is the platform name (see Table 2 located further in the document). Within this directory there are two types of files:
+
+1. A single platform file (see XML structure for Platform file), this file includes a mapping of hardware key codes to the ISO layout positions. This file is also open to expansion for any configuration elements that are valid across the whole platform and that are not layout specific. This file is simply called `_platform.xml`.
+2. Multiple layout files named by their locale identifiers. (eg. `lt-t-k0-chromeos.xml` or `ne-t-k0-windows.xml`).
+
+Keyboard data that is not supported on a given platform, but intended for use with that platform, may be added to the directory `/und/`. For example, there could be a file `/und/lt-t-k0-chromeos.xml`, where the data is intended for use with ChromeOS, but does not reflect data that is distributed as part of a standard ChromeOS release.
+
+* * *
+
+## 5 <a name="Element_Heirarchy_Layout_File" href="#Element_Heirarchy_Layout_File">Element Hierarchy - Layout File</a>
+
+### 5.1 <a name="Element_Keyboard" href="#Element_Keyboard">Element: keyboard</a>
+
+This is the top level element. All other elements defined below are under this element.
+
+Syntax
+```xml
+<keyboard locale="{locale ID}">
+ {definition of the layout as described by the elements defined below}
+</keyboard>
+```
+
+_Attribute:_ `locale` (required)
+
+This mandatory attribute represents the locale of the keyboard using Unicode locale identifiers (see [LDML](tr35.md)) - for example `"el"` for Greek. Sometimes, the locale may not specify the base language. For example, a Devanagari keyboard for many languages could be specified by BCP-47 code: `"und-Deva"`. For details, see [Keyboard IDs](#Keyboard_IDs) .
+
+Examples (for illustrative purposes only, not indicative of the real data)
+
+```xml
+<keyboard locale="ka-t-k0-qwerty-windows">
+ …
+</keyboard>
+<keyboard locale="fr-CH-t-k0-android">
+ …
+</keyboard>
+```
+
+* * *
+
+### 5.2 <a name="Element_version" href="#Element_version">Element: version</a>
+
+Element used to keep track of the source data version.
+
+Syntax
+
+```xml
+<version platform=".." revision="..">
+```
+
+_Attribute:_ `platform` (required)
+
+> The platform source version. Specifies what version of the platform the data is from. For example, data from Mac OSX 10.4 would be specified as `platform="10.4"`. For platforms that have unstable version numbers which change frequently (like Linux), this field is set to an integer representing the iteration of the data starting with `"1"`. This number would only increase if there were any significant changes in the keyboard data.
+
+_Attribute:_ `number` (required)
+
+> The data revision version.
+
+_Attribute:_ `cldrVersion` (fixed by DTD)
+
+> The CLDR specification version that is associated with this data file. This value is fixed and is inherited from the DTD file and therefore does not show up directly in the XML file.
+
+Example
+
+```xml
+<keyboard locale="..-osx">
+ …
+ <version platform="10.4" number="1"/>
+ …
+</keyboard>
+```
+
+* * *
+
+### 5.3 ~~<a name="Element_generation" href="#Element_generation">Element: generation</a>~~
+
+The `generation` element is now deprecated. It was used to keep track of the generation date of the data.
+
+* * *
+
+### 5.4 <a name="Element_names" href="#Element_names">Element: names</a>
+
+Element used to store any names given to the layout by the platform.
+
+Syntax
+
+```xml
+<names>
+ {set of name elements}
+</names>
+```
+
+### 5.5 <a name="Element_name" href="#Element_name">Element: name</a>
+
+A single name given to the layout by the platform.
+
+Syntax
+
+```xml
+<name value="..">
+```
+
+_Attribute:_ `value` (required)
+
+> The name of the layout.
+
+Example
+
+```xml
+<keyboard locale="bg-t-k0-windows-phonetic-trad">
+ …
+ <names>
+ <name value="Bulgarian (Phonetic Traditional)" />
+ </names>
+ …
+</keyboard>
+```
+
+* * *
+
+### 5.6 <a name="Element_settings" href="#Element_settings">Element: settings</a>
+
+An element used to keep track of layout specific settings. This element may or may not show up on a layout. These settings reflect the normal practice on the platform. However, an implementation using the data may customize the behavior. For example, for transformFailures the implementation could ignore the setting, or modify the text buffer in some other way (such as by emitting backspaces).
+
+Syntax
+
+```xml
+<settings [fallback="omit"] [transformFailure="omit"] [transformPartial="hide"] />
+```
+
+_Attribute:_ `fallback="omit"` (optional)
+
+> The presence of this attribute means that when a modifier key combination goes unmatched, no output is produced. The default behavior (when this attribute is not present) is to fallback to the base map when the modifier key combination goes unmatched.
+
+If this attribute is present, it must have a value of omit.
+
+_Attribute:_ `transformFailure="omit"` (optional)
+
+> This attribute describes the behavior of a transform when it is escaped (see the `transform` element in the Layout file for more information). A transform is escaped when it can no longer continue due to the entry of an invalid key. For example, suppose the following set of transforms are valid:
+>
+> ^e → ê
+>
+> ^a → â
+
+Suppose a user now enters the "\^" key then "\^" is now stored in a buffer and may or may not be shown to the user (see the `partial` attribute).
+
+If a user now enters d, then the transform has failed and there are two options for output.
+
+1. default behavior - "^d"
+
+2. omit - "" (nothing and the buffer is cleared)
+
+The default behavior (when this attribute is not present) is to emit the contents of the buffer upon failure of a transform.
+
+If this attribute is present, it must have a value of omit.
+
+_Attribute:_ `transformPartial="hide"` (optional)
+
+> This attribute describes the behavior the system while in a transform. When this attribute is present then don't show the values of the buffer as the user is typing a transform (this behavior can be seen on Windows or Linux platforms).
+
+By default (when this attribute is not present), show the values of the buffer as the user is typing a transform (this behavior can be seen on the Mac OSX platform).
+
+If this attribute is present, it must have a value of hide.
+
+Example
+
+```xml
+<keyboard locale="bg-t-k0-windows-phonetic-trad">
+ …
+ <settings fallback="omit" transformPartial="hide" />
+ …
+</keyboard>
+```
+
+Indicates that:
+
+1. When a modifier combination goes unmatched, do not output anything when a key is pressed.
+2. If a transform is escaped, output the contents of the buffer.
+3. During a transform, hide the contents of the buffer as the user is typing.
+
+* * *
+
+### 5.7 <a name="Element_keyMap" href="#Element_keyMap">Element: keyMap</a>
+
+This element defines the group of mappings for all the keys that use the same set of modifier keys. It contains one or more map elements.
+
+Syntax
+
+```xml
+<keyMap [modifiers="{Set of Modifier Combinations}"]>
+ {a set of map elements}
+</keyMap>
+```
+
+_Attribute:_ `modifiers` (optional)
+
+> A set of modifier combinations that cause this key map to be "active". Each combination is separated by a space. The interpretation is that there is a match if any of the combinations match, that is, they are ORed. Therefore, the order of the combinations within this attribute does not matter.
+
+> A combination is simply a concatenation of words to represent the simultaneous activation of one or more modifier keys. The order of the modifier keys within a combination does not matter, although don't care cases are generally added to the end of the string for readability (see next paragraph). For example: `"cmd+caps"` represents the Caps Lock and Command modifier key combination. Some keys have right or left variant keys, specified by a 'R' or 'L' suffix. For example: `"ctrlR+caps"` would represent the Right-Control and Caps Lock combination. For simplicity, the presence of a modifier without a 'R' or 'L' suffix means that either its left or right variants are valid. So `"ctrl+caps"` represents the same as `"ctrlL+ctrlR?+caps ctrlL?+ctrlR+caps"`.
+
+A modifier key may be further specified to be in a "don't care" state using the '?' suffix. The "don't care" state simply means that the preceding modifier key may be either ON or OFF. For example `"ctrl+shift?"` could be expanded into `"ctrl ctrl+shift"`.
+
+Within a combination, the presence of a modifier WITHOUT the '?' suffix indicates this key MUST be on. The converse is also true, the absence of a modifier key means it MUST be off for the combination to be active.
+
+Here is an exhaustive list of all possible modifier keys:
+
+##### <a name="Possible_Modifier_Keys" href="#Possible_Modifier_Keys">Possible Modifier Keys</a>
+
+| Modifier Keys | | Comments |
+|---------------|----------|---------------------------------|
+| `altL` | `altR` | xAlty → xAltR+AltL? xAltR?AltLy |
+| `altR` | `ctrlR` | ditto for Ctrl |
+| `shiftL` | `shiftR` | ditto for Shift |
+| `optL` | `optR` | ditto for Opt |
+| `caps` | | Caps Lock |
+| `cmd` | | Command on the Mac |
+
+All sets of modifier combinations within a layout are disjoint with no-overlap existing between the key maps. That is, for every possible modifier combination, there is at most a single match within the layout file. There are thus never multiple matches. If no exact match is available, the match falls back to the base map unless the `fallback="omit"` attribute in the `settings` element is set, in which case there would be no output at all.
+
+To illustrate, the following example produces an invalid layout because pressing the "Ctrl" modifier key produces an indeterminate result:
+
+```xml
+<keyMap modifiers="ctrl+shift?">
+ …
+</keyMap>
+```
+
+```xml
+<keyMap modifiers="ctrl">
+ …
+</keyMap>
+```
+
+Modifier Examples:
+
+```xml
+<keyMap modifiers="cmd?+opt+caps?+shift" />
+```
+
+Caps-Lock may be ON or OFF, Option must be ON, Shift must be ON and Command may be ON or OFF.
+
+```xml
+<keyMap modifiers="shift caps" fallback="true" />
+```
+
+Caps-Lock must be ON OR Shift must be ON. Is also the fallback key map.
+
+If the `modifiers` attribute is not present on a `keyMap` then that particular key map is the base map.
+
+* * *
+
+### 5.8 <a name="Element_map" href="#Element_map">Element: map</a>
+
+This element defines a mapping between the base character and the output for a particular set of active modifier keys. This element must have the `keyMap` element as its parent.
+
+If a `map` element for a particular ISO layout position has not been defined then if this key is pressed, no output is produced.
+
+Syntax
+
+```xml
+<map
+ iso="{the iso position}"
+ to="{the output}"
+ [longPress="{long press keys}"]
+ [transform="no"]
+/><!-- {Comment to improve readability (if needed)} -->
+```
+
+_Attribute:_ `iso` (exactly one of base and iso is required)
+
+> The `iso` attribute represents the ISO layout position of the key (see the definition at the beginning of the document for more information).
+
+_Attribute:_ `to` (required)
+
+> The `to` attribute contains the output sequence of characters that is emitted when pressing this particular key. Control characters, whitespace (other than the regular space character) and combining marks in this attribute are escaped using the `\u{...}` notation.
+
+_Attribute:_ `longPress` (optional)
+
+> The `longPress` attribute contains any characters that can be emitted by "long-pressing" a key, this feature is prominent in mobile devices. The possible sequences of characters that can be emitted are whitespace delimited. Control characters, combining marks and whitespace (which is intended to be a long-press option) in this attribute are escaped using the `\u{...}` notation.
+
+_Attribute:_ `transform="no"` (optional)
+
+> The `transform` attribute is used to define a key that never participates in a transform but its output shows up as part of a transform. This attribute is necessary because two different keys could output the same characters (with different keys or modifier combinations) but only one of them is intended to be a dead-key and participate in a transform. This attribute value must be no if it is present.
+
+_Attribute:_ `multitap` (optional)
+
+> A space-delimited list of strings, where each successive element of the list is produced by the corresponding number of quick taps. For example, two taps on the key C01 will produce a “c” in the following example.
+>
+> _Example:_
+>
+> ```xml
+> <map iso="C01" to="a" multitap="bb c d">
+> ```
+
+_Attribute:_ `longPress-status` (optional)
+
+> Indicates optional `longPress` values. Must only occur with a `longPress` value. May be suppressed or shown, depending on user settings. There can be two `map` elements that differ only by `longPress-status`, allowing two different sets of `longPress` values.
+>
+> _Example:_
+>
+> ```xml
+> <map iso="D01" to="a" longPress="à â % æ á ä ã å ā ª" />
+> <map iso="D01" to="a" longPress="à â á ä ã å ā" longPress-status="optional" />
+> ```
+
+_Attribute:_ `optional` (optional)
+
+> Indicates optional mappings. May be suppressed or shown, depending on user settings.
+
+_Attribute:_ `hint` (optional)
+
+> Indicates a hint as to long-press contents, such as the first character of the `longPress` value, that can be displayed on the key. May be suppressed or shown, depending on user Settings.
+>
+> _Example:_ where the hint is "{":
+>
+> 
+
+For example, suppose there are the following keys, their output and one transform:
+
+```
+E00 outputs `
+Option+E00 outputs ` (the dead-version which participates in transforms).
+`e → è
+```
+
+Then the first key must be tagged with `transform="no"` to indicate that it should never participate in a transform.
+
+Comment: US key equivalent, base key, escaped output and escaped longpress
+
+In the generated files, a comment is included to help the readability of the document. This comment simply shows the English key equivalent (with prefix `key=`), the base character (`base=`), the escaped output (`to=`) and escaped long-press keys (`long=`). These comments have been inserted strategically in places to improve readability. Not all comments include include all components since some of them may be obvious.
+
+Examples
+
+```xml
+<keyboard locale="fr-BE-t-k0-windows">
+ …
+ <keyMap modifiers="shift">
+ <map iso="D01" to="A" /> <!-- key=Q -->
+ <map iso="D02" to="Z" /> <!-- key=W -->
+ <map iso="D03" to="E" />
+ <map iso="D04" to="R" />
+ <map iso="D05" to="T" />
+ <map iso="D06" to="Y" />
+ …
+ </keyMap>
+ …
+</keyboard>
+```
+
+```xml
+<keyboard locale="ps-t-k0-windows">
+ …
+ <keyMap modifiers='altR+caps? ctrl+alt+caps?'>
+ <map iso="D04" to="\u{200e}" /> <!-- key=R base=ق -->
+ <map iso="D05" to="\u{200f}" /> <!-- key=T base=ف -->
+ <map iso="D08" to="\u{670}" /> <!-- key=I base=ه to= ٰ -->
+ …
+ </keyMap>
+ …
+</keyboard>
+```
+
+* * *
+
+#### 5.8.1 <a name="Element_flicks" href="#Element_flicks">Elements: flicks, flick</a>
+
+```
+<!ELEMENT keyMap ( map | flicks )+ >
+<!ELEMENT flick EMPTY>
+<!ATTLIST flick directions NMTOKENS>
+<!ATTLIST flick to CDATA>
+<!--@VALUE-->
+```
+
+The `flicks` element is used to generate results from a "flick" of the finger on a mobile device. The `directions` attribute value is a space-delimited list of keywords, that describe a path, currently restricted to the cardinal and intercardinal directions `{n e s w ne nw se sw}`. The `to` attribute value is the result of (one or more) flicks.
+
+Example: where a flick to the Northeast then South produces two code points.
+
+```xml
+<flicks iso="C01">
+ <flick directions="ne s" to="\uABCD\uDCBA" />
+</flicks>
+```
+
+* * *
+
+### 5.9 <a name="Element_import" href="#Element_import">Element: import</a>
+
+The `import` element references another file of the same type and includes all the subelements of the top level element as though the `import` element were being replaced by those elements, in the appropriate section of the XML file. For example:
+
+```xml
+<import path="standard_transforms.xml">
+```
+
+_Attribute:_ `path` (required)
+
+> The value is contains a relative path to the included ldml file. There is a standard set of directories to be searched that an application may provide. This set is always prepended with the directory in which the current file being read, is stored.
+
+If two identical elements, as described below, are defined, the later element will take precedence. Thus if a `hardwareMap/map` for the same keycode on the same page is defined twice (for example once in an included file), the later one will be the resulting mapping.
+
+Elements are considered to have three attributes that make them unique: the tag of the element, the parent and the identifying attribute. The parent in its turn is a unique element and so on up the chain. If the distinguishing attribute is optional, its non-existence is represented with an empty value. Here is a list of elements and their defining attributes. If an element is not listed then if it is a leaf element, only one occurs and it is merely replaced. If it has children, then the sub elements are considered, in effect merging the element in question.
+
+| Element | Parent | Distinguishing attribute |
+|-----------|--------------|--------------------------|
+| `keyMap` | `keyboard` | `@modifiers` |
+| `map` | `keyMap` | `@iso` |
+| `display` | `displayMap` | `@char` (new) |
+| `layout` | `layouts` | `@modifier` |
+
+In order to help identify mistakes, it is an error if a file contains two elements that override each other. All element overrides must come as a result of an `<include>` element either for the element overridden or the element overriding.
+
+The following elements are not imported from the source file:
+
+* `version`
+* `generation`
+* `names`
+* `settings`
+
+* * *
+
+### 5.10 <a name="Element_displayMap" href="#Element_displayMap">Element: displayMap</a>
+
+The displayMap can be used to describe what is to be displayed on the keytops for various keys. For the most part, such explicit information is unnecessary since the `@char` element from the `keyMap/map` element can be used. But there are some characters, such as diacritics, that do not display well on their own and so explicit overrides for such characters can help. The `displayMap` consists of a list of display sub elements.
+
+DisplayMaps are designed to be shared across many different keyboard layout descriptions, and included in where needed.
+
+* * *
+
+### 5.11 <a name="Element_display" href="#Element_display">Element: display</a>
+
+The `display` element describes how a character, that has come from a `keyMap/map` element, should be displayed on a keyboard layout where such display is possible.
+
+_Attribute:_ `mapOutput` (required)
+
+> Specifies the character or character sequence from the `keyMap/map` element that is to have a special display.
+
+_Attribute:_ `display` (required)
+
+> Required and specifies the character sequence that should be displayed on the keytop for any key that generates the `@mapOutput` sequence. (It is an error if the value of the `display` attribute is the same as the value of the `char` attribute.)
+
+```xml
+<keyboard >
+ <keyboardMap>
+ <map iso="C01" to="a" longpress="\u0301 \u0300" />
+ </keyboardMap>
+ <displayMap>
+ <display mapOutput="\u0300" display="u\u02CB" />
+ <display mapOutput="\u0301" display="u\u02CA" />
+ </displayMap>
+</keyboard >
+```
+
+To allow `displayMap`s to be shared across descriptions, there is no requirement that `@mapOutput` matches any `@to` in any `keyMap/map` element in the keyboard description.
+
+* * *
+
+### 5.12 <a name="Element_layer" href="#Element_layer">Element: layer</a>
+
+A `layer` element describes the configuration of keys on a particular layer of a keyboard. It contains `row` elements to describe which keys exist in each `row` and also `switch` elements that describe how keys in the layer switch the layer to another. In addition, for platforms that require a mapping from a key to a virtual key (for example Windows or Mac) there is also a `vkeys` element to describe the mapping.
+
+_Attribute:_ `modifier` (required)
+
+> This has two roles. It acts as an identifier for the `layer` element and also provides the linkage into a keyMap. A modifier is a single modifier combination such that it is matched by one of the modifier combinations in one of the `keyMap/@modifiers` attribute. To indicate that no modifiers apply the reserved name of "none" is used. For the purposes of fallback vkey mapping, the following modifier components are reserved: "shift", "ctrl", "alt", "caps", "cmd", "opt" along with the "L" and "R" optional single suffixes for the first 3 in that list. There must be a `keyMap` whose `@modifiers` attribute matches the `@modifier` attribute of the `layer` element. It is an error if there is no such `keyMap`.
+
+The `keymap/@modifier` often includes multiple combinations that match. It is not necessary (or prefered) to include all of these. Instead a minimal matching element should be used, such that exactly one keymap is matched.
+
+The following are examples of situations where the `@modifiers` and `@modifier` do not match, with a different keymap definition than above.
+
+| `keyMap/@modifiers` | `layer/@modifier` |
+|---------------------|---------------------|
+| `shiftL` | `shift` (ambiguous) |
+| `altR` | `alt` |
+| `shiftL?+shiftR` | `shift` |
+
+And these do match:
+
+| `keyMap/@modifiers` | `layer/@modifier` |
+|---------------------|-------------------|
+| `shiftL shiftR` | `shift` |
+
+The use of `@modifier` as an identifier for a layer, is sufficient since it is always unique among the set of `layer` elements in a keyboard.
+
+* * *
+
+### 5.13 <a name="Element_row" href="#Element_row">Element: row</a>
+
+A `row` element describes the keys that are present in the row of a keyboard. `row` elements are ordered within a `layout` element with the top visual row being stored first. The row element introduces the `keyId` which may be an `ISOKey` or a s`pecialKey`. More formally:
+
+```
+keyId = ISOKey | specialKey
+ISOKey = [A-Z][0-9][0-9]
+specialKey = [a-z][a-zA-Z0-9]{2,7}
+```
+
+ISOKey denotes a key having an [ISO Position](#Definitions). SpecialKey is used to identify functional keys occurring on a virtual keyboard layout.
+
+_Attribute:_ `keys` (required)
+
+> This is a string that lists the `keyId` for each of the keys in a row. Key ranges may be contracted to firstkey-lastkey but only for `ISOKey` type `keyId`s. The interpolation between the first and last keys names is entirely numeric. Thus `D00-D03` is equivalent to `D00 D01 D02 D03`. It is an error if the first and last keys do not have the same alphabetic prefix or the last key numeric component is less than or equal to the first key numeric component.
+
+`specialKey` type `keyId`s may take any value within their syntactic constraint. But the following `specialKey`s are reserved to allow applications to identify them and give them special handling:
+
+* `"bksp"`, `"enter"`, `"space"`, `"tab"`, "`esc"`, `"sym"`, `"num"`
+* all the reserved modifier names
+* specialKeys starting with the letter "x" for future reserved names.
+
+Here is an example of a `row` element:
+
+```xml
+<layer modifier="none">
+ <row keys="D01-D10" />
+ <row keys="C01-C09" />
+ <row keys="shift B01-B07 bksp" />
+ <row keys="sym A01 smilies A02-A03 enter" />
+</layer>
+```
+
+* * *
+
+### 5.14 <a name="Element_switch" href="#Element_switch">Element: switch</a>
+
+The `switch` element describes a function key that has been included in the layout. It specifies which layer pressing the key switches you to and also what the key looks like.
+
+_Attribute:_ `iso` (required)
+
+> The `keyId` as specified in one of the `row` elements. This must be a `specialKey` and not an `ISOKey`.
+
+_Attribute:_ `layout` (required)
+
+> The modifier attribute of the resulting `layout` element that describes the layer the user gets switched to.
+
+_Attribute:_ `display` (required)
+
+> A string to be displayed on the key.
+
+Here is an example of a `switch` element for a shift key:
+
+```xml
+<layer modifier="none">
+ <row keys="D01-D10" />
+ <row keys="C01-C09" />
+ <row keys="shift B01-B07 bksp" />
+ <row keys="sym A01 smilies A02-A03 enter" />
+ <switch iso="shift" layout="shift" display="⇪" />
+</layer>
+<layer modifier="shift">
+ <row keys="D01-D10" />
+ <row keys="C01-C09" />
+ <row keys="shift B01-B07 bksp" />
+ <row keys="sym A01 smilies A02-A03 enter" />
+ <switch iso="shift" layout="none" display="⇪" />
+</layer>
+```
+
+* * *
+
+### 5.15 <a name="Element_vkeys" href="#Element_vkeys">Element: vkeys</a>
+
+On some architectures, applications may directly interact with keys before they are converted to characters. The keys are identified using a virtual key identifier or vkey. The mapping between a physical keyboard key and a vkey is keyboard-layout dependent. For example, a French keyboard would identify the D01 key as being an 'a' with a vkey of 'a' as opposed to 'q' on a US English keyboard. While vkeys are layout dependent, they are not modifier dependent. A shifted key always has the same vkey as its unshifted counterpart. In effect, a key is identified by its vkey and the modifiers active at the time the key was pressed.
+
+For a physical keyboard there is a layout specific default mapping of keys to vkeys. These are listed in a `vkeys` element which takes a list of `vkey` element mappings and is identified by a type. There are different vkey mappings required for different platforms. While `type="windows"` vkeys are very similar to `type="osx"` vkeys, they are not identical and require their own mapping.
+
+The most common model for specifying vkeys is to import a standard mapping, say to the US layout, and then to add a `vkeys` element to change the mapping appropriately for the specific layout.
+
+In addition to describing physical keyboards, vkeys also get used in virtual keyboards. Here the vkey mapping is local to a layer and therefore a `vkeys` element may occur within a `layout` element. In the case where a `layout` element has no `vkeys` element then the resulting mapping may either be empty (none of the keys represent keys that have vkey identifiers) or may fallback to the layout wide vkeys mapping. Fallback only occurs if the layout's `modifier` attribute consists only of standard modifiers as listed as being reserved in the description of the `layout/@modifier` attribute, and if the modifiers are standard for the platform involved. So for Windows, `"cmd"` is a reserved modifier but it is not standard for Windows. Therefore on Windows the vkey mapping for a layout with `@modifier="cmd" `would be empty.
+
+A `vkeys` element consists of a list of `vkey` elements.
+
+* * *
+
+### 5.16 <a name="Element_vkey" href="#Element_vkey">Element: vkey</a>
+
+A `vkey` element describes a mapping between a key and a vkey for a particular platform.
+
+_Attribute:_ `iso` (required)
+
+> The ISOkey being mapped.
+
+_Attribute:_ `type`
+
+> Current values: android, chromeos, osx, und, windows.
+
+_Attribute:_ `vkey` (required)
+
+> The resultant vkey identifier.
+
+_Attribute:_ `modifier`
+
+> This attribute may only be used if the parent `vkeys` element is a child of a `layout` element. If present it allows an unmodified key from a layer to represent a modified virtual key.
+
+This example shows some of the mappings for a French keyboard layout:
+
+ _shared/win-vkey.xml_
+```xml
+<keyboard>
+ <vkeys type="windows">
+ <vkey iso="D01" vkey="VK_Q" />
+ <vkey iso="D02" vkey="VK_W" />
+ <vkey iso="C01" vkey="VK_A" />
+ <vkey iso="B01" vkey="VK_Z" />
+ </vkeys>
+</keyboard>
+```
+
+_shared/win-fr.xml_
+
+```xml
+<keyboard>
+ <import path="shared/win-vkey.xml">
+ <keyMap>
+ <map iso="D01" to="a" />
+ <map iso="D02" to="z" />
+ <map iso="C01" to="q" />
+ <map iso="B01" to="w" />
+ </keyMap>
+ <keyMap modifiers="shift">
+ <map iso="D01" to="A" />
+ <map iso="D02" to="Z" />
+ <map iso="C01" to="Q" />
+ <map iso="B01" to="W" />
+ </keyMap>
+ <vkeys type="windows">
+ <vkey iso="D01" vkey="VK_A" />
+ <vkey iso="D02" vkey="VK_Z" />
+ <vkey iso="C01" vkey="VK_Q" />
+ <vkey iso="B01" vkey="VK_W" />
+ </vkeys>
+</keyboard>
+```
+
+In the context of a virtual keyboard there might be a symbol layer with the following layout:
+
+```xml
+<keyboard>
+ <keyMap>
+ <map iso="D01" to="1" />
+ <map iso="D02" to="2" />
+ ...
+ <map iso="D09" to="9" />
+ <map iso="D10" to="0" />
+ <map iso="C01" to="!" />
+ <map iso="C02" to="@" />
+ ...
+ <map iso="C09" to="(" />
+ <map iso="C10" to=")" />
+ </keyMap>
+ <layer modifier="sym">
+ <row keys="D01-D10" />
+ <row keys="C01-C09" />
+ <row keys="shift B01-B07 bksp"/ >
+ <row keys="sym A00-A03 enter" />
+ <switch iso="sym" layout="none" display="ABC" />
+ <switch iso="shift" layout="sym+shift" display="&=/<" />
+ <vkeys type="windows">
+ <vkey iso="D01" vkey="VK_1" />
+ ...
+ <vkey iso="D10" vkey="VK_0" />
+ <vkey iso="C01" vkey="VK_1" modifier="shift" />
+ ...
+ <vkey iso="C10" vkey="VK_0" modifier="shift" />
+ </vkeys>
+ </layer>
+</keyboard>
+```
+
+* * *
+
+### 5.17 <a name="Element_transforms" href="#Element_transforms">Element: transforms</a>
+
+This element defines a group of one or more `transform` elements associated with this keyboard layout. This is used to support such as dead-keys using a straightforward structure that works for all the keyboards tested, and that results in readable source data.
+
+There can be multiple `<transforms>` elements
+
+Syntax
+
+```xml
+<transforms type="...">
+ {a set of transform elements}
+</transforms>
+```
+
+_Attribute:_ `type` (required)
+
+> Current values: `simple`, `final`.
+
+* * *
+
+### 5.18 <a name="Element_transform" href="#Element_transform">Element: transform</a>
+
+This element must have the `transforms` element as its parent. This element represents a single transform that may be performed using the keyboard layout. A transform is an element that specifies a set of conversions from sequences of code points into one (or more) other code points.. For example, in most French keyboards hitting the "^" dead-key followed by the "e" key produces "ê".
+
+Syntax
+
+```xml
+<transform from="{combination of characters}" to="{output}">
+```
+
+_Attribute:_ `from` (required)
+
+> The `from` attribute consists of a sequence of elements. Each element matches one character and may consist of a codepoint or a UnicodeSet (both as defined in [UTS#35 section 5.3.3](https://www.unicode.org/reports/tr35/#Unicode_Sets)).
+
+For example, suppose there are the following transforms:
+
+```
+^e → ê
+^a → â
+^o → ô
+```
+
+If the user types a key that produces "\^", the keyboard enters a dead state. When the user then types a key that produces an "e", the transform is invoked, and "ê" is output. Suppose a user presses keys producing "\^" then "u". In this case, there is no match for the "\^u", and the "\^" is output if the failure attribute in the `transform` element is set to emit. If there is no transform starting with "u", then it is also output (again only if failure is set to emit) and the mechanism leaves the "dead" state.
+
+The UI may show an initial sequence of matching characters with a special format, as is done with dead-keys on the Mac, and modify them as the transform completes. This behavior is specified in the `partial` attribute in the `transform` element.
+
+Most transforms in practice have only a couple of characters. But for completeness, the behavior is defined on all strings:
+
+1. If there could be a longer match if the user were to type additional keys, go into a 'dead' state.
+2. If there could not be a longer match, find the longest actual match, emit the transformed text (if failure is set to emit), and start processing again with the remainder.
+3. If there is no possible match, output the first character, and start processing again with the remainder.
+
+Suppose that there is the following transforms:
+
+```
+ab → x
+abc → y
+abef → z
+bc → m
+beq → n
+```
+
+Here's what happens when the user types various sequence characters:
+
+| Input characters | Result | Comments |
+|------------------|--------|----------|
+| ab | | No output, since there is a longer transform with this as prefix. |
+| abc | y | Complete transform match. |
+| abd | xd | The longest match is "ab", so that is converted and output. The 'd' follows, since it is not the start of any transform. |
+| abeq | xeq | "ab" wins over "beq", since it comes first. That is, there is no longer possible match starting with 'a'. |
+| bc | m | |
+
+Control characters, combining marks and whitespace in this attribute are escaped using the `\u{...}` notation.
+
+_Attribute:_ `to` (required)
+
+> This attribute represents the characters that are output from the transform. The output can contain more than one character, so you could have `<transform from="´A" to="Fred"/>`
+
+Control characters, whitespace (other than the regular space character) and combining marks in this attribute are escaped using the `\u{...}` notation.
+
+Examples
+
+```xml
+<keyboard locale="fr-CA-t-k0-CSA-osx">
+ <transforms type="simple">
+ <transform from="´a" to="á" />
+ <transform from="´A" to="Á" />
+ <transform from="´e" to="é" />
+ <transform from="´E" to="É" />
+ <transform from="´i" to="í" />
+ <transform from="´I" to="Í" />
+ <transform from="´o" to="ó" />
+ <transform from="´O" to="Ó" />
+ <transform from="´u" to="ú" />
+ <transform from="´U" to="Ú" />
+ </transforms>
+ ...
+</keyboard>
+```
+
+```xml
+<keyboard locale="nl-BE-t-k0-chromeos">
+ <transforms type="simple">
+ <transform from="\u{30c}a" to="ǎ" /> <!-- ̌a → ǎ -->
+ <transform from="\u{30c}A" to="Ǎ" /> <!-- ̌A → Ǎ -->
+ <transform from="\u{30a}a" to="å" /> <!-- ̊a → å -->
+ <transform from="\u{30a}A" to="Å" /> <!-- ̊A → Å -->
+ </transforms>
+ ...
+</keyboard>
+```
+
+_Attribute:_ `before` (optional)
+
+> This attribute consists of a sequence of elements (codepoint or UnicodeSet) to match the text up to the current position in the text (this is similar to a regex "look behind" assertion: `(?<=a)b` matches a "b" that is preceded by an "a"). The attribute must match for the transform to apply. If missing, no before constraint is applied. The attribute value must not be empty.
+
+_Attribute:_ `after` (optional)
+
+> This attribute consists of a sequence of elements (codepoint or UnicodeSet) and matches as a zero-width assertion after the `@from` sequence. The attribute must match for the transform to apply. If missing, no after constraint is applied. The attribute value must not be empty. When the transform is applied, the string matched by the `@from` attribute is replaced by the string in the `@to` attribute, with the text matched by the `@after` attribute left unchanged. After the change, the current position is reset to just after the text output from the `@to` attribute and just before the text matched by the `@after` attribute. Warning: some legacy implementations may not be able to make such an adjustment and will place the current position after the `@after` matched string.
+
+_Attribute:_ `error` (optional)
+
+> If set this attribute indicates that the keyboarding application may indicate an error to the user in some way. Processing may stop and rewind to any state before the key was pressed. If processing does stop, no further transforms on the same input are applied. The `@error` attribute takes the value `"fail"`, or must be absent. If processing continues, the `@to` is used for output as normal. It thus should contain a reasonable value.
+
+For example:
+
+```xml
+<transform from="\u037A\u037A" to="\u037A" error="fail" />
+```
+
+This indicates that it is an error to type two iota subscripts immediately after each other.
+
+In terms of how these different attributes work in processing a sequences of transforms, consider the transform:
+
+```xml
+<transform before="X" from="Y" after="Y" to="B" />
+```
+
+This would transform the string:
+
+```
+XYZ → XBZ
+```
+
+If we mark where the current match position is before and after the transform we see:
+
+```
+X | Y Z → X B | Z
+```
+
+And a subsequent transform could transform the Z string, looking back (using @before) to match the B.
+
+There are other keying behaviors that are needed particularly in handling languages and scripts from various parts of the world. The behaviors intended to be covered by the transforms are:
+
+* Reordering combining marks. The order required for underlying storage may differ considerably from the desired typing order. In addition, a keyboard may want to allow for different typing orders.
+* Error indication. Sometimes a keyboard layout will want to specify to the application that a particular keying sequence in a context is in error and that the application should indicate that that particular keypress is erroneous.
+* Backspace handling. There are various approaches to handling the backspace key. An application may treat it as an undo of the last key input, or it may simply delete the last character in the currently output text, or it may use transform rules to tell it how much to delete.
+
+We consider each transform type in turn and consider attributes to the `<transforms>` element pertinent to that type.
+
+* * *
+
+### 5.19 <a name="Element_reorder" href="#Element_reorder">Element: reorder</a>
+
+The reorder transform is applied after all transform except for those with `type="final"`.
+
+This transform has the job of reordering sequences of characters that have been typed, from their typed order to the desired output order. The primary concern in this transform is to sort combining marks into their correct relative order after a base, as described in this section. The reorder transforms can be quite complex, keyboard layouts will almost always import them.
+
+The reordering algorithm consists of four parts:
+
+1. Create a sort key for each character in the input string. A sort key has 4 parts: (primary, index, tertiary).
+ * The **primary weight** is the primary order value.
+ * The **secondary weight** is the index, a position in the input string, usually of the character itself, but it may be of a character earlier in the string.
+ * The **tertiary weight** is a tertiary order value (defaulting to 0).
+ * The **quaternary weight** is the index of the character in the string. This ensures a stable sort for sequences of characters with the same tertiary weight.
+2. Mark each character as to whether it is a prebase character, one that is typed before the base and logically stored after. Thus it will have a primary order > 0.
+3. Use the sort key and the prebase mark to identify runs. A run starts with a prefix that contains any prebase characters and a single base character whose primary and tertiary key is 0. The run extends until, but not including, the start of the prefix of the next run or end of the string.
+ * `run := prebase* (primary=0 && tertiary=0) ((primary≠0 || tertiary≠0) && !prebase)*`
+4. Sort the character order of each character in the run based on its sort key.
+
+The primary order of a character with the Unicode property Combining_Character_Class (ccc) of 0 may well not be 0. In addition, a character may receive a different primary order dependent on context. For example, in the Devanagari sequence ka halant ka, the first ka would have a primary order 0 while the halant ka sequence would give both halant and the second ka a primary order > 0, for example 2. Note that “base” character in this discussion is not a Unicode base character. It is instead a character with primary=0.
+
+In order to get the characters into the correct relative order, it is necessary not only to order combining marks relative to the base character, but also to order some combining marks in a subsequence following another combining mark. For example in Devanagari, a nukta may follow consonant character, but it may also follow a conjunct consisting of a consonant, halant, consonant. Notice that the second consonant is not, in this model, the start of a new run because some characters may need to be reordered to before the first base, for example repha. The repha would get primary < 0, and be sorted before the character with order = 0, which is, in the case of Devanagari, the initial consonant of the orthographic syllable.
+
+The reorder transform consists of a single element type: `<reorder>` encapsulated in a `<reorders>` element. Each is a rule that matches against a string of characters with the action of setting the various ordering attributes (`primary`, `tertiary`, `tertiary_base`, `prebase`) for the matched characters in the string.
+
+> **from** This attribute follows the `transform/@from` attribute and contains a string of elements. Each element matches one character and may consist of a codepoint or a UnicodeSet (both as defined in UTS#35 section 5.3.3). This attribute is required.
+>
+> **before** This attribute follows the `transform/@before` attribute and contains the element string that must match the string immediately preceding the start of the string that the @from matches.
+>
+> **after** This attribute follows the `transform/@after` attribute and contains the element string that must match the string immediately following the end of the string that the @from matches.
+>
+> **order** This attribute gives the primary order for the elements in the matched string in the `@from` attribute. The value is a simple integer between -128 and +127 inclusive, or a space separated list of such integers. For a single integer, it is applied to all the elements in the matched string. Details of such list type attributes are given after all the attributes are described. If missing, the order value of all the matched characters is 0. We consider the order value for a matched character in the string.
+>
+> * If the value is 0 and its tertiary value is 0, then the character is the base of a new run.
+> * If the value is 0 and its tertiary value is non-zero, then it is a normal character in a run, with ordering semantics as described in the `@tertiary` attribute.
+> * If the value is negative, then the character is a primary character and will reorder to be before the base of the run.
+> * If the value is positive, then the character is a primary character and is sorted based on the order value as the primary key following a previous base character.
+>
+> A character with a zero tertiary value is a primary character and receives a sort key consisting of:
+>
+> * Primary weight is the order value
+> * Secondary weight is the index of the character. This may be any value (character index, codepoint index) such that its value is greater than the character before it and less than the character after it.
+> * Tertiary weight is 0.
+> * Quaternary weight is the same as the secondary weight.
+>
+> **tertiary** This attribute gives the tertiary order value to the characters matched. The value is a simple integer between -128 and +127 inclusive, or a space separated list of such integers. If missing, the value for all the characters matched is 0. We consider the tertiary value for a matched character in the string.
+>
+> * If the value is 0 then the character is considered to have a primary order as specified in its order value and is a primary character.
+> * If the value is non zero, then the order value must be zero otherwise it is an error. The character is considered as a tertiary character for the purposes of ordering.
+>
+> A tertiary character receives its primary order and index from a previous character, which it is intended to sort closely after. The sort key for a tertiary character consists of:
+>
+> * Primary weight is the primary weight of the primary character
+> * Secondary weight is the index of the primary character, not the tertiary character
+> * Tertiary weight is the tertiary value for the character.
+> * Quaternary weight is the index of the tertiary character.
+>
+> **tertiary\_base** This attribute is a space separated list of `"true"` or `"false"` values corresponding to each character matched. It is illegal for a tertiary character to have a true `tertiary_base` value. For a primary character it marks that this character may have tertiary characters moved after it. When calculating the secondary weight for a tertiary character, the most recently encountered primary character with a true `tertiary_base` attribute is used. Primary characters with an `@order` value of 0 automatically are treated as having `tertiary_base` true regardless of what is specified for them.
+>
+> **prebase** This attribute gives the prebase attribute for each character matched. The value may be `"true"` or `"false"` or a space separated list of such values. If missing the value for all the characters matched is false. It is illegal for a tertiary character to have a true prebase value.
+>
+> If a primary character has a true prebase value then the character is marked as being typed before the base character of a run, even though it is intended to be stored after it. The primary order gives the intended position in the order after the base character, that the prebase character will end up. Thus `@primary` may not be 0. These characters are part of the run prefix. If such characters are typed then, in order to give the run a base character after which characters can be sorted, an appropriate base character, such as a dotted circle, is inserted into the output run, until a real base character has been typed. A value of `"false"` indicates that the character is not a prebase.
+
+There is no `@error` attribute.
+
+For `@from` attributes with a match string length greater than 1, the sort key information (`@order`, `@tertiary`, `@tertiary_base`, `@prebase`) may consist of a space separated list of values, one for each element matched. The last value is repeated to fill out any missing values. Such a list may not contain more values than there are elements in the `@from` attribute:
+
+```
+if len(@from) < len(@list) then error
+else
+ while len(@from) > len(@list)
+ append lastitem(@list) to @list
+ endwhile
+endif
+```
+
+For example, consider the word Northern Thai (nod-Lana) word: ᨡ᩠ᩅᩫ᩶ 'roasted'. This is ideally encoded as the following:
+
+| name | _ka_ | _asat_ | _wa_ | _o_ | _t2_ |
+|------|------|--------|------|------|------|
+| code | 1A21 | 1A60 | 1A45 | 1A6B | 1A76 |
+| ccc | 0 | 9 | 0 | 0 | 230 |
+
+(That sequence is already in NFC format.)
+
+Some users may type the upper component of the vowel first, and the tone before or after the lower component. Thus someone might type it as:
+
+| name | _ka_ | _o_ | _t2_ | _asat_ | _wa_ |
+|------|------|------|------|--------|------|
+| code | 1A21 | 1A6B | 1A76 | 1A60 | 1A45 |
+| ccc | 0 | 0 | 230 | 9 | 0 |
+
+The Unicode NFC format of that typed value reorders to:
+
+| name | _ka_ | _o_ | _asat_ | _t2_ | _wa_ |
+|------|------|------|--------|------|------|
+| code | 1A21 | 1A6B | 1A60 | 1A76 | 1A45 |
+| ccc | 0 | 0 | 9 | 230 | 0 |
+
+Finally, the user might also type in the sequence with the tone _after_ the lower component.
+
+
+| name | _ka_ | _o_ | _asat_ | _wa_ | _t2_ |
+|------|------|------|--------|------|------|
+| code | 1A21 | 1A6B | 1A60 | 1A45 | 1A76 |
+| ccc | 0 | 0 | 9 | 0 | 230 |
+
+(That sequence is already in NFC format.)
+
+We want all of these sequences to end up ordered as the first. To do this, we use the following rules:
+
+```xml
+<reorder from="\u1A60" order="127" /> <!-- max possible order -->
+<reorder from="\u1A6B" order="42" />
+<reorder from="[\u1A75-\u1A7C]" order="55" />
+<reorder before="\u1A6B" from="\u1A60\u1A45" order="10" />
+<reorder before="\u1A6B[\u1A75-\u1A7C]" from="\u1A60\u1A45" order="10" />
+<reorder before="\u1A6B" from="\u1A60[\u1A75-\u1A7C]\u1A45" order="10 55 10" />
+```
+
+The first reorder is the default ordering for the _asat_ which allows for it to be placed anywhere in a sequence, but moves any non-consonants that may immediately follow it, back before it in the sequence. The next two rules give the orders for the top vowel component and tone marks respectively. The next three rules give the _asat_ and _wa_ characters a primary order that places them before the _o_. Notice particularly the final reorder rule where the _asat_+_wa_ is split by the tone mark. This rule is necessary in case someone types into the middle of previously normalized text.
+
+`<reorder>` elements are priority ordered based first on the length of string their `@from` attribute matches and then the sum of the lengths of the strings their `@before` and `@after` attributes match.
+
+If a layout has two `<transforms>` elements of type reorder, e.g. from importing one and specifying the second, then `<transform>` elements are merged. The @from string in a `<reorder>` element describes a set of strings that it matches. This also holds for the `@before` and `@after` attributes. The intersection of two `<reorder>` elements consists of the intersections of their `@from`, `@before` and `@after` string sets. It is illegal for the intersection between any two `<reorder>` elements in the same `<transforms>` element to be non empty, although implementors are encouraged to have pity on layout authors when reporting such errors, since they can be hard to track down.
+
+If two `<reorder>` elements in two different `<transforms>` elements have a non empty intersection, then they are split and merged. They are split such that where there were two `<reorder>` elements, there are, in effect (but not actuality), three elements consisting of:
+
+* `@from`, `@before`, `@after` that match the intersection of the two rules. The other attributes are merged, as described below.
+* `@from`, `@before`, `@after` that match the set of strings in the first rule not in the intersection with the other attributes from the first rule.
+* `@from`, `@before`, `@after` that match the set of strings in the second rule not in the intersection, with the other attributes from the second rule.
+
+When merging the other attributes, the second rule is taken to have priority (occurring later in the layout description file). Where the second rule does not define the value for a character but the first does, it is taken from the first rule, otherwise it is taken from the second rule.
+
+Notice that it is possible for two rules to match the same string, but for them not to merge because the distribution of the string across `@before`, `@from`, and `@after` is different. For example:
+
+```xml
+<reorder before="ab" from="cd" after="e" />
+```
+
+would not merge with:
+
+```xml
+<reorder before="a" from="bcd" after="e" />
+```
+
+When two `<reorders>`elements merge as the result of an import, the resulting `reorder` elements are sorted into priority order for matching.
+
+Consider this fragment from a shared reordering for the Myanmar script:
+
+```xml
+<!-- medial-r -->
+<reorder from="\u103C" order="20" />
+
+<!-- [medial-wa or shan-medial-wa] -->
+<reorder from="[\u103D\u1082]" order="25" />
+
+<!-- [medial-ha or shan-medial-wa]+asat = Mon asat -->
+<reorder from="[\u103E\u1082]\u103A" order="27" />
+
+<!-- [medial-ha or mon-medial-wa] -->
+<reorder from="[\u103E\u1060]" order="27" />
+
+<!-- [e-vowel or shan-e-vowel] -->
+<reorder from="[\u1031\u1084]" order="30" />
+
+<reorder from="[\u102D\u102E\u1033-\u1035\u1071-\u1074\u1085\u109D\uA9E5]" order="35" />
+```
+
+A particular Myanmar keyboard layout can have this `reorders` element:
+
+```xml
+<reorders type="reorder">
+ <!-- Kinzi -->
+ <reorder from="\u1004\u103A\u1039" order="-1" />
+
+ <!-- e-vowel -->
+ <reorder from="\u1031" prebase="1" />
+
+ <!-- medial-r -->
+ <reorder from="\u103C" prebase="1" />
+</reorders>
+```
+
+The effect of this that the _e-vowel_ will be identified as a prebase and will have an order of 30. Likewise a _medial-r_ will be identified as a prebase and will have an order of 20. Notice that a _shan-e-vowel_ will not be identified as a prebase (even if it should be!). The _kinzi_ is described in the layout since it moves something across a run boundary. By separating such movements (prebase or moving to in front of a base) from the shared ordering rules, the shared ordering rules become a self-contained combining order description that can be used in other keyboards or even in other contexts than keyboarding.
+
+* * *
+
+### 5.20 <a name="Element_final" href="#Element_final">Element: final</a>
+
+The final transform is applied after the reorder transform. It executes in a similar way to the simple transform with the settings ignored, as if there were no settings in the `<settings>` element.
+
+This is an example from Khmer where split vowels are combined after reordering.
+
+```xml
+<transforms type="final">
+ <transform from="\u17C1\u17B8" to="\u17BE" />
+ <transform from="\u17C1\u17B6" to="\u17C4" />
+</transforms>
+```
+
+Another example allows a keyboard implementation to alert or stop people typing two lower vowels in a Burmese cluster:
+
+```xml
+<transform from="[\u102F\u1030\u1048\u1059][\u102F\u1030\u1048\u1059]" error="fail" />
+```
+
+* * *
+
+### 5.21 <a name="Element_backspaces" href="#Element_backspaces">Element: backspaces</a>
+
+The backspace transform is an optional transform that is not applied on input of normal characters, but is only used to perform extra backspace modifications to previously committed text.
+
+Keyboarding applications typically, but are not required, to work in one of two modes:
+
+**_text entry_**
+
+> text entry happens while a user is typing new text. A user typically wants the backspace key to undo whatever they last typed, whether or not they typed things in the 'right' order.
+
+**_text editing_**
+
+> text editing happens when a user moves the cursor into some previously entered text which may have been entered by someone else. As such, there is no way to know in which order things were typed, but a user will still want appropriate behaviour when they press backspace. This may involve deleting more than one character or replacing a sequence of characters with a different sequence.
+
+In the text entry mode, there is no need for any special description of backspace behaviour. A keyboarding application will typically keep a history of previous output states and just revert to the previous state when backspace is hit.
+
+In text editing mode, different keyboard layouts may behave differently in the same textual context. The backspace transform allows the keyboard layout to specify the effect of pressing backspace in a particular textual context. This is done by specifying a set of backspace rules that match a string before the cursor and replace it with another string. The rules are expressed as `backspace` elements encapsulated in a `backspaces` element.
+
+* * *
+
+### 5.22 <a name="Element_backspace" href="#Element_backspace">Element: backspace</a>
+
+The `backspace` element has the same `@before`, `@from`, `@after`, `@to`,`@errors` of the `transform` element. The `@to` is optional with `backspace`.
+
+For example, consider deleting a Devanagari ksha:
+
+```xml
+<backspaces>
+ <backspace from="\u0915\u094D\u0936"/>
+</backspaces>
+```
+
+Here there is no `@to` attribute since the whole string is being deleted. This is not uncommon in the backspace transforms.
+
+A more complex example comes from a Burmese visually ordered keyboard:
+
+```xml
+<backspaces>
+ <!-- Kinzi -->
+ <backspace from="[\u1004\u101B\u105A]\u103A\u1039" />
+
+ <!-- subjoined consonant -->
+ <backspace from="\u1039[\u1000-\u101C\u101E\u1020\u1021\u1050\u1051\u105A-\u105D]" />
+
+ <!-- tone mark -->
+ <backspace from="\u102B\u103A" />
+
+ <!-- Handle prebases -->
+ <!-- diacritics stored before e-vowel -->
+ <backspace from="[\u103A-\u103F\u105E-\u1060\u1082]\u1031" to="\u1031" />
+
+ <!-- diacritics stored before medial r -->
+ <backspace from="[\u103A-\u103B\u105E-\u105F]\u103C" to="\u103C" />
+
+ <!-- subjoined consonant before e-vowel -->
+ <backspace from="\u1039[\u1000-\u101C\u101E\u1020\u1021]\u1031" to="\u1031" />
+
+ <!-- base consonant before e-vowel -->
+ <backspace from="[\u1000-\u102A\u103F-\u1049\u104E]\u1031" to="\uFDDF\u1031" />
+
+ <!-- subjoined consonant before medial r -->
+ <backspace from="\u1039[\u1000-\u101C\u101E\u1020\u1021]\u103C" to="\u103C" />
+
+ <!-- base consonant before medial r -->
+ <backspace from="[\u1000-\u102A\u103F-\u1049\u104E]\u103C" to="\uFDDF\u103C" />
+
+ <!-- delete lone medial r or e-vowel -->
+ <backspace from="\uFDDF[\u1031\u103C]" />
+</backspaces>
+```
+
+The above example is simplified, and doesn't fully handle the interaction between medial-r and e-vowel.
+
+The character \\uFDDF does not represent a literal character, but is instead a special placeholder, a "filler string". When a keyboard implementation handles a user pressing a key that inserts a prebase character, it also has to insert a special filler string before the prebase to ensure that the prebase character does not combine with the previous cluster. See the reorder transform for details. The precise filler string is implementation dependent. Rather than requiring keyboard layout designers to know what the filler string is, we reserve a special character that the keyboard layout designer may use to reference this filler string. It is up to the keyboard implementation to, in effect, replace that character with the filler string.
+
+The first three transforms above delete various ligatures with a single keypress. The other transforms handle prebase characters. There are two in this Burmese keyboard. The transforms delete the characters preceding the prebase character up to base which gets replaced with the prebase filler string, which represents a null base. Finally the prebase filler string + prebase is deleted as a unit.
+
+The backspace transform is much like other transforms except in its processing model. If we consider the same transform as in the simple transform example, but as a backspace:
+
+```xml
+<backspace before="X" from="Y" after="Z" to="B"/>
+```
+
+This would transform the string:
+
+```
+XYZ → XBZ
+```
+
+If we mark where the current match position is before and after the transform we see:
+
+```
+X Y | Z → X B | Z
+```
+
+Whereas a simple or final transform would then run other transforms in the transform list, advancing the processing position until it gets to the end of the string, the backspace transform only matches a single backspace rule and then finishes.
+
+* * *
+
+## 6 <a name="Element_Heirarchy_Platform_File" href="#Element_Heirarchy_Platform_File">Element Hierarchy - Platform File</a>
+
+There is a separate XML structure for platform-specific configuration elements. The most notable component is a mapping between the hardware key codes to the ISO layout positions for that platform.
+
+### 6.1 <a name="Element_platform" href="#Element_platform">Element: platform</a>
+
+This is the top level element. This element contains a set of elements defined below. A document shall only contain a single instance of this element.
+
+Syntax
+
+```xml
+<platform>
+ {platform-specific elements}
+</platform>
+```
+
+### 6.2 <a name="Element_hardwareMap" href="#Element_hardwareMap">Element: hardwareMap</a>
+
+This element must have a `platform` element as its parent. This element contains a set of map elements defined below. A document shall only contain a single instance of this element.
+
+Syntax
+
+```xml
+<platform>
+ <hardwareMap>
+ {a set of map elements}
+ </hardwareMap>
+</platform>
+```
+
+### 6.3 <a name="Element_hardwareMap_map" href="#Element_hardwareMap_map">Element: map</a>
+
+This element must have a `hardwareMap` element as its parent. This element maps between a hardware keycode and the corresponding ISO layout position of the key.
+
+Syntax
+
+```xml
+<map keycode="{hardware keycode}" iso="{ISO layout position}" />
+```
+
+_Attribute:_ `keycode` (required)
+
+> The hardware key code value of the key. This value is an integer which is provided by the keyboard driver.
+
+_Attribute:_ `iso` (required)
+
+> The corresponding position of a key using the ISO layout convention where rows are identified by letters and columns are identified by numbers. For example, "D01" corresponds to the "Q" key on a US keyboard. (See the definition at the beginning of the document for a diagram).
+
+Examples
+
+```xml
+<platform>
+ <hardwareMap>
+ <map keycode="2" iso="E01" />
+ <map keycode="3" iso="E02" />
+ <map keycode="4" iso="E03" />
+ <map keycode="5" iso="E04" />
+ <map keycode="6" iso="E05" />
+ <map keycode="7" iso="E06" />
+ <map keycode="41" iso="E00" />
+ </hardwareMap>
+</platform>
+```
+
+* * *
+
+## 7 <a name="Invariants" href="#Invariants">Invariants</a>
+
+Beyond what the DTD imposes, certain other restrictions on the data are imposed on the data.
+
+1. For a given platform, every `map[@iso]` value must be in the hardwareMap if there is one (`_keycodes.xml`)
+2. Every `map[@base]` value must also be in `base[@base]` value
+3. No `keyMap[@modifiers]` value can overlap with another `keyMap[@modifiers]` value.
+ * eg you can't have `"RAlt Ctrl"` in one `keyMap`, and `"Alt Shift"` in another (because Alt = RAltLAlt).
+4. Every sequence of characters in a `transform[@from]` value must be a concatenation of two or more `map[@to]` values.
+ * eg with `<transform from="xyz" to="q">` there must be some map values to get there, such as `<map... to="xy">` & `<map... to="z">`
+5. There must be either 0 or 1 of (`keyMap[@fallback]` or `baseMap[@fallback]`) attributes
+6. If the base and chars values for `modifiers=""` are all identical, and there are no longpresses, that `keyMap` must not appear (??)
+7. There will never be overlaps among modifier values.
+8. A modifier set will never have ? (optional) on all values
+ * eg, you'll never have `RCtrl?Caps?LShift?`
+9. Every `base[@base`] value must be unique.
+10. A `modifier` attribute value will aways be minimal, observing the following simplification rules.
+
+| Notation | Notes |
+|------------------------------------------|-------|
+| Lower case character (eg. _x_ ) | Interpreted as any combination of modifiers. <br/> (eg. _x_ = CtrlShiftOption) |
+| Upper-case character (eg. _Y_ ) | Interpreted as a single modifier key (which may or may not have a L and R variant) <br/> (eg. _Y_ = Ctrl, _RY_ = RCtrl, etc..) |
+| Y? ⇔ Y ∨ ∅ <br/> Y ⇔ LY ∨ RY ∨ LYRY | Eg. Opt? ⇔ ROpt ∨ LOpt ∨ ROptLOpt ∨ ∅ <br/> Eg. Opt ⇔ ROpt ∨ LOpt ∨ ROptLOpt |
+
+
+| Axiom | Example |
+|---------------------------------------------|----------------------------------------------|
+| xY ∨ x ⇒ xY? | OptCtrlShift OptCtrl → OptCtrlShift? |
+| xRY ∨ xY? ⇒ xY? <br/> xLY ∨ xY? ⇒ xY? | OptCtrlRShift OptCtrlShift? → OptCtrlShift? |
+| xRY? ∨ xY ⇒ xY? <br/> xLY? ∨ xY ⇒ xY? | OptCtrlRShift? OptCtrlShift → OptCtrlShift? |
+| xRY? ∨ xY? ⇒ xY? <br/> xLY? ∨ xY? ⇒ xY? | OptCtrlRShift? OptCtrlShift? → OptCtrlShift? |
+| xRY ∨ xY ⇒ xY <br/> xLY ∨ xY ⇒ xY | OptCtrlRShift OptCtrlShift → OptCtrlShift? |
+| LY?RY? | OptRCtrl?LCtrl? → OptCtrl? |
+| xLY? ⋁ xLY ⇒ xLY? | |
+| xY? ⋁ xY ⇒ xY? | |
+| xY? ⋁ x ⇒ xY? | |
+| xLY? ⋁ x ⇒ xLY? | |
+| xLY ⋁ x ⇒ xLY? | |
+
+* * *
+
+## 8 <a name="Data_Sources" href="#Data_Sources">Data Sources</a>
+
+Here is a list of the data sources used to generate the initial key map layouts:
+
+##### <a name="Key_Map_Data_Sources" href="#Key_Map_Data_Sources">Key Map Data Sources</a>
+
+| Platform | Source | Notes |
+|----------|--------|-------|
+| Android | Android 4.0 - Ice Cream Sandwich ([https://source.android.com/source/downloading.html](https://source.android.com/source/downloading.html)) | Parsed layout files located in packages/inputmethods/LatinIME/java/res |
+| ChromeOS | XKB ([https://www.x.org/wiki/XKB](https://www.x.org/wiki/XKB)) | The ChromeOS represents a very small subset of the keyboards available from XKB.
+| Mac OSX | Ukelele bundled System Keyboards ([https://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=ukelele](https://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=ukelele)) | These layouts date from Mac OSX 10.4 and are therefore a bit outdated |
+| Windows | Generated .klc files from the Microsoft Keyboard Layout Creator ([https://support.microsoft.com/en-us/help/823010/the-microsoft-keyboard-layout-creator](https://support.microsoft.com/en-us/help/823010/the-microsoft-keyboard-layout-creator)) |
+
+* * *
+
+## 9 <a name="Keyboard_IDs" href="#Keyboard_IDs">Keyboard IDs</a>
+
+There is a set of subtags that help identify the keyboards. Each of these are used after the `"t-k0"` subtags to help identify the keyboards. The first tag appended is a mandatory platform tag followed by zero or more tags that help differentiate the keyboard from others with the same locale code.
+
+### 9.1 <a name="Principles_for_Keyboard_Ids" href="#Principles_for_Keyboard_Ids">Principles for Keyboard Ids</a>
+
+The following are the design principles for the ids.
+
+1. BCP47 compliant.
+ 1. Eg, `en-t-k0-extended`.
+2. Use the minimal language id based on `likelySubtag`s.
+ 1. Eg, instead of `en-US-t-k0-xxx`, use `en-t-k0-xxx`. Because there is `<likelySubtag from="en" to="en_Latn_US"/>`, en-US → en.
+ 2. The data is in [https://github.com/unicode-org/cldr/releases/tag/latest/common/supplemental/likelySubtags.xml](https://github.com/unicode-org/cldr/releases/tag/latest/common/supplemental/likelySubtags.xml)
+3. The platform goes first, if it exists. If a keyboard on the platform changes over time, both are dated, eg `bg-t-k0-chromeos-2011`. When selecting, if there is no date, it means the latest one.
+4. Keyboards are only tagged that differ from the "standard for each platform". That is, for each language on a platform, there will be a keyboard with no subtags other than the platform. Subtags with a common semantics across platforms are used, such as `-extended`, `-phonetic`, `-qwerty`, `-qwertz`, `-azerty`, …
+5. In order to get to 8 letters, abbreviations are reused that are already in [bcp47](https://github.com/unicode-org/cldr/releases/tag/latest/common/bcp47/) -u/-t extensions and in [language-subtag-registry](https://www.iana.org/assignments/language-subtag-registry) variants, eg for Traditional use `-trad` or `-traditio` (both exist in [bcp47](https://github.com/unicode-org/cldr/releases/tag/latest/common/bcp47/)).
+6. Multiple languages cannot be indicated, so the predominant target is used.
+ 1. For Finnish + Sami, use `fi-t-k0-smi` or `extended-smi`
+7. In some cases, there are multiple subtags, like `en-US-t-k0-chromeos-intl-altgr.xml`
+8. Otherwise, platform names are used as a guide.
+
+* * *
+
+## 10 <a name="Platform_Behaviors_in_Edge_Cases" href="#Platform_Behaviors_in_Edge_Cases">Platform Behaviors in Edge Cases</a>
+
+| Platform | No modifier combination match is available | No map match is available for key position | Transform fails (ie. if \^d is pressed when that transform does not exist) |
+|----------|--------------------------------------------|--------------------------------------------|---------------------------------------------------------------------------|
+| ChromeOS | Fall back to base | Fall back to character in a keyMap with same "level" of modifier combination. If this character does not exist, fall back to (n-1) level. (This is handled data-generation side). <br/> In the spec: No output | No output at all |
+| Mac OSX | Fall back to base (unless combination is some sort of keyboard shortcut, eg. cmd-c) | No output | Both keys are output separately |
+| Windows | No output | No output | Both keys are output separately |
+
+* * *
+
+Copyright © 2001–2021 Unicode, Inc. All Rights Reserved. The Unicode Consortium makes no expressed or implied warranty of any kind, and assumes no liability for errors or omissions. No liability is assumed for incidental and consequential damages in connection with or arising out of the use of the information or programs contained or accompanying this technical report. The Unicode [Terms of Use](https://unicode.org/copyright.html) apply.
+
+Unicode and the Unicode logo are trademarks of Unicode, Inc., and are registered in some jurisdictions.
diff --git a/docs/ldml/tr35-numbers.html b/docs/ldml/tr35-numbers.html
deleted file mode 100644
index 6e4ef99..0000000
--- a/docs/ldml/tr35-numbers.html
+++ /dev/null
@@ -1,3226 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"https://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
- <meta name="generator" content=
- "HTML Tidy for HTML5 for Apple macOS version 5.6.0">
- <meta http-equiv="Content-Type" content=
- "text/html; charset=utf-8">
- <meta http-equiv="Content-Language" content="en-us">
- <link rel="stylesheet" href=
- "../reports.css" type="text/css">
- <title>UTS #35: Unicode LDML: Numbers</title>
- <style type="text/css">
- <!--
- .dtd {
- font-family: monospace;
- font-size: 90%;
- background-color: #CCCCFF;
- border-style: dotted;
- border-width: 1px;
- }
-
- .xmlExample {
- font-family: monospace;
- font-size: 80%
- }
-
- .blockedInherited {
- font-style: italic;
- font-weight: bold;
- border-style: dashed;
- border-width: 1px;
- background-color: #FF0000
- }
-
- .inherited {
- font-weight: bold;
- border-style: dashed;
- border-width: 1px;
- background-color: #00FF00
- }
-
- .element {
- font-weight: bold;
- color: red;
- }
-
- .attribute {
- font-weight: bold;
- color: maroon;
- }
-
- .attributeValue {
- font-weight: bold;
- color: blue;
- }
-
- li, p {
- margin-top: 0.5em;
- margin-bottom: 0.5em
- }
-
- h2, h3, h4, table {
- margin-top: 1.5em;
- margin-bottom: 0.5em;
- }
- -->
- </style>
-</head>
-<body>
- <table class="header" width="100%">
- <tr>
- <td class="icon"><a href="https://unicode.org"><img alt=
- "[Unicode]" src="../logo60s2.gif"
- width="34" height="33" style=
- "vertical-align: middle; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px; border-top-width: 0px;"></a>
- <a class="bar" href=
- "https://www.unicode.org/reports/">Technical Reports</a></td>
- </tr>
- <tr>
- <td class="gray"> </td>
- </tr>
- </table>
- <div class="body">
- <h2 style="text-align: center">Unicode Technical Standard #35</h2>
- <h1>Unicode Locale Data Markup Language (LDML)<br>
- Part 3: Numbers</h1>
- <!-- At least the first row of this header table should be identical across the parts of this UTS. -->
- <table border="1" cellpadding="2" cellspacing="0" class="wide">
- <tr>
- <td>Version</td>
- <td>38</td>
- </tr>
- <tr>
- <td>Editors</td>
- <td>John Emmons (<a href=
- "mailto:emmo@us.ibm.com">emmo@us.ibm.com</a>) and <a href=
- "tr35.html#Acknowledgments">other CLDR committee
- members</a></td>
- </tr>
- </table>
- <p>For the full header, summary, and status, see <a href=
- "tr35.html">Part 1: Core</a></p>
- <h3><i>Summary</i></h3>
- <p>This document describes parts of an XML format
- (<i>vocabulary</i>) for the exchange of structured locale data.
- This format is used in the <a href=
- "https://unicode.org/cldr/">Unicode Common Locale Data
- Repository</a>.</p>
- <p>This is a partial document, describing only those parts of
- the LDML that are relevant for number and currency formatting.
- For the other parts of the LDML see the <a href=
- "tr35.html">main LDML document</a> and the links above.</p>
- <h3><i>Status</i></h3>
-
- <!-- NOT YET APPROVED
- <p>
- <i class="changed">This is a<b><font color="#ff3333">
- draft </font></b>document which may be updated, replaced, or superseded by
- other documents at any time. Publication does not imply endorsement
- by the Unicode Consortium. This is not a stable document; it is
- inappropriate to cite this document as other than a work in
- progress.
- </i>
- </p>
- END NOT YET APPROVED -->
- <!-- APPROVED -->
- <p><i>This document has been reviewed by Unicode members and
- other interested parties, and has been approved for publication
- by the Unicode Consortium. This is a stable document and may be
- used as reference material or cited as a normative reference by
- other specifications.</i></p>
- <!-- END APPROVED -->
-
- <blockquote>
- <p><i><b>A Unicode Technical Standard (UTS)</b> is an
- independent specification. Conformance to the Unicode
- Standard does not imply conformance to any UTS.</i></p>
- </blockquote>
- <p><i>Please submit corrigenda and other comments with the CLDR
- bug reporting form [<a href="tr35.html#Bugs">Bugs</a>]. Related
- information that is useful in understanding this document is
- found in the <a href="tr35.html#References">References</a>. For
- the latest version of the Unicode Standard see [<a href=
- "tr35.html#Unicode">Unicode</a>]. For a list of current Unicode
- Technical Reports see [<a href=
- "tr35.html#Reports">Reports</a>]. For more information about
- versions of the Unicode Standard, see [<a href=
- "tr35.html#Versions">Versions</a>].</i></p>
- <!-- This section of Parts should be identical in all of the parts of this UTS. -->
- <h2><a name="Parts" href="#Parts" id="Parts">Parts</a></h2>
- <p>The LDML specification is divided into the following
- parts:</p>
- <ul class="toc">
- <li>Part 1: <a href="tr35.html#Contents">Core</a> (languages,
- locales, basic structure)</li>
- <li>Part 2: <a href="tr35-general.html#Contents">General</a>
- (display names & transforms, etc.)</li>
- <li>Part 3: <a href="tr35-numbers.html#Contents">Numbers</a>
- (number & currency formatting)</li>
- <li>Part 4: <a href="tr35-dates.html#Contents">Dates</a>
- (date, time, time zone formatting)</li>
- <li>Part 5: <a href=
- "tr35-collation.html#Contents">Collation</a> (sorting,
- searching, grouping)</li>
- <li>Part 6: <a href=
- "tr35-info.html#Contents">Supplemental</a> (supplemental
- data)</li>
- <li>Part 7: <a href=
- "tr35-keyboards.html#Contents">Keyboards</a> (keyboard
- mappings)</li>
- </ul>
- <h2><a name="Contents" href="#Contents" id="Contents">Contents
- of Part 3, Numbers</a></h2>
- <!-- START Generated TOC: CheckHtmlFiles -->
- <ul class="toc">
- <li>1 <a href="#Numbering_Systems">Numbering Systems</a></li>
- <li>2 <a href="#Number_Elements">Number Elements</a>
- <ul class="toc">
- <li>2.1 <a href="#defaultNumberingSystem">Default
- Numbering System</a></li>
- <li>2.2 <a href="#otherNumberingSystems">Other Numbering
- Systems</a></li>
- <li>2.3 <a href="#Number_Symbols">Number Symbols</a></li>
- <li>2.4 <a href="#Number_Formats">Number Formats</a>
- <ul class="toc">
- <li>2.4.1 <a href="#Compact_Number_Formats">Compact
- Number Formats</a></li>
- <li>2.4.2 <a href="#Currency_Formats">Currency
- Formats</a></li>
- </ul>
- </li>
- <li>2.5 <a href="#Miscellaneous_Patterns">Miscellaneous
- Patterns</a></li>
- <li>2.6 <a href="#Minimal_Pairs">Minimal Pairs</a></li>
- </ul>
- </li>
- <li>3 <a href="#Number_Format_Patterns">Number Format
- Patterns</a>
- <ul class="toc">
- <li>3.1 <a href="#Number_Patterns">Number Patterns</a>
- <ul class="toc">
- <li>Table: <a href="#Number_Pattern_Examples">Number
- Pattern Examples</a></li>
- </ul>
- </li>
- <li>3.2 <a href="#Special_Pattern_Characters">Special
- Pattern Characters</a>
- <ul class="toc">
- <li>Table: <a href=
- "#Number_Pattern_Character_Definitions">Number
- Pattern Character Definitions</a></li>
- <li>Table: <a href=
- "#Sample_Patterns_and_Results">Sample Patterns and
- Results</a></li>
- <li>Table: <a href=
- "#Examples_of_minimumGroupingDigits">Examples of
- minimumGroupingDigits</a></li>
- <li>3.2.1 <a href="#Explicit_Plus">Explicit Plus
- Signs</a></li>
- </ul>
- </li>
- <li>3.3 <a href="#Formatting">Formatting</a></li>
- <li>3.4 <a href="#sci">Scientific Notation</a></li>
- <li>3.5 <a href="#sigdig">Significant Digits</a>
- <ul class="toc">
- <li>Table: <a href=
- "#Significant_Digits_Examples">Significant Digits
- Examples</a></li>
- </ul>
- </li>
- <li>3.6 <a href="#Padding">Padding</a></li>
- <li>3.7 <a href="#Rounding">Rounding</a></li>
- <li>3.8 <a href="#Quoting_Rules">Quoting Rules</a></li>
- </ul>
- </li>
- <li>4 <a href="#Currencies">Currencies</a>
- <ul class="toc">
- <li>4.1 <a href=
- "#Supplemental_Currency_Data">Supplemental Currency
- Data</a></li>
- </ul>
- </li>
- <li>5 <a href="#Language_Plural_Rules">Language Plural
- Rules</a>
- <ul class="toc">
- <li>5.1 <a href="#Plural_rules_syntax">Plural rules
- syntax</a>
- <ul class="toc">
- <li>5.1.1 <a href="#Operands">Operands</a>
- <ul class="toc">
- <li>Table: <a href=
- "#Plural_Operand_Meanings">Plural Operand
- Meanings</a></li>
- <li>Table: <a href=
- "#Plural_Operand_Examples">Plural Operand
- Examples</a></li>
- </ul>
- </li>
- <li>5.1.2 <a href="#Relations">Relations</a>
- <ul class="toc">
- <li>Table: <a href=
- "#Relations_Examples">Relations Examples</a></li>
- <li>Table: <a href=
- "#Plural_Rules_Examples">Plural Rules
- Examples</a></li>
- </ul>
- </li>
- <li>5.1.3 <a href="#Samples">Samples</a>
- <ul class="toc">
- <li>Table: <a href=
- "#Plural_Samples_Examples">Plural Samples
- Examples</a></li>
- </ul>
- </li>
- <li>5.1.4 <a href="#Using_cardinals">Using
- Cardinals</a></li>
- </ul>
- </li>
- <li>5.2 <a href="#Plural_Ranges">Plural Ranges</a></li>
- </ul>
- </li>
- <li>6 <a href="#Rule-Based_Number_Formatting">Rule-Based
- Number Formatting</a></li>
- <li>7 <a href="#Parsing_Numbers">Parsing Numbers</a></li>
- </ul><!-- END Generated TOC: CheckHtmlFiles -->
- <h2><a name="Numbering_Systems" href="#Numbering_Systems" id=
- "Numbering_Systems">1 Numbering Systems</a></h2>
- <p class="dtd"><!ELEMENT numberingSystems ( numberingSystem*
- ) ><br>
- <!ELEMENT numberingSystem EMPTY ><br>
- <!ATTLIST numberingSystem id NMTOKEN #REQUIRED ><br>
- <!ATTLIST numberingSystem type ( numeric | algorithmic )
- #REQUIRED ><br>
- <!ATTLIST numberingSystem radix NMTOKEN #IMPLIED ><br>
- <!ATTLIST numberingSystem digits CDATA #IMPLIED ><br>
- <!ATTLIST numberingSystem rules CDATA #IMPLIED ><br></p>
- <p>Numbering systems information is used to define different
- representations for numeric values to an end user. Numbering
- systems are defined in CLDR as one of two different types:
- algorithmic and numeric. Numeric systems are simply a decimal
- based system that uses a predefined set of digits to represent
- numbers. Examples are Western ( ASCII digits ), Thai digits,
- Devanagari digits. Algorithmic systems are more complex in
- nature, since the proper formatting and presentation of a
- numeric quantity is based on some algorithm or set of rules.
- Examples are Chinese numerals, Hebrew numerals, or Roman
- numerals. In CLDR, the rules for presentation of numbers in an
- algorithmic system are defined using the RBNF syntax described
- in <i><a href="#Rule-Based_Number_Formatting">Section 6:
- Rule-Based Number Formatting</a></i>.</p>
- <p>Attributes for the <numberingSystem> element are as
- follows:</p>
- <blockquote>
- <p><span class="attribute">id</span> - Specifies the name of
- the numbering system that can be used to designate its use in
- formatting.</p>
- <p><span class="attribute">type</span> - Specifies whether
- the numbering system is algorithmic or numeric.</p>
- <p><span class="attribute">digits</span> - For numeric
- systems, specifies the digits used to represent numbers, in
- order, starting from zero.</p>
- <p><span class="attribute">rules</span> - Specifies the RBNF
- ruleset to be used for formatting numbers from this numbering
- system. The rules specifier can contain simply a ruleset
- name, in which case the ruleset is assumed to be found in the
- rule set grouping "NumberingSystemRules". Alternatively, the
- specifier can denote a specific locale, ruleset grouping, and
- ruleset name, separated by slashes.</p>
- </blockquote>
- <p>Examples:</p>
- <pre>
- <numberingSystem id="latn" type="numeric" digits="0123456789"/>
-<!-- ASCII digits - A numeric system --></pre>
- <pre>
- <numberingSystem id="thai" type="numeric" digits="๐๑๒๓๔๕๖๗๘๙"/>
-<!-- A numeric system using Thai digits --></pre>
- <pre>
- <numberingSystem id="geor" type="algorithmic" rules="georgian"/>
-<!-- An algorithmic system - Georgian numerals , rules found in NumberingSystemRules --></pre>
- <pre>
- <numberingSystem id="hant" type="algorithmic" rules="zh_Hant/SpelloutRules/spellout-cardinal"/>
-<!-- An algorithmic system. Traditional Chinese Numerals -->
-</pre>For general information about the numbering system data,
-including the BCP47 identifiers, see the main document <em>Section
-Q.1.1 <a href="tr35.html#Numbering%20System%20Data">Numbering
-System Data</a>.</em> ) ><br>
- <h2><a name="Number_Elements" href="#Number_Elements" id=
- "Number_Elements">2 Number Elements</a></h2>
- <p class="dtd"><!ELEMENT numbers ( alias | (
- defaultNumberingSystem*, otherNumberingSystems*,
- minimumGroupingDigits*, symbols*, decimalFormats*,
- scientificFormats*, percentFormats*, currencyFormats*,
- currencies?, miscPatterns*, minimalPairs*, special* ) )
- ></p>
- <p>The numbers element supplies information for formatting and
- parsing numbers and currencies. It has the following
- sub-elements: <defaultNumberingSystem>,
- <otherNumberingSystems>, <symbols>,
- <decimalFormats>, <scientificFormats>,
- <percentFormats>, <currencyFormats>, and
- <currencies>. The currency IDs are from [<a href=
- "tr35.html#ISO4217">ISO4217</a>] (plus some additional
- common-use codes). For more information, including the pattern
- structure, see <i><a href="#Number_Format_Patterns">Section 3:
- Number Format Patterns</a></i>.</p>
- <h3>2.1 <a name="defaultNumberingSystem" href=
- "#defaultNumberingSystem" id="defaultNumberingSystem">Default
- Numbering System</a></h3>
- <p><span class="dtd"><!ELEMENT defaultNumberingSystem (
- #PCDATA )></span></p>
- <p>This element indicates which numbering system should be used
- for presentation of numeric quantities in the given locale.</p>
- <h3>2.2 <a name="otherNumberingSystems" href=
- "#otherNumberingSystems" id="otherNumberingSystems">Other
- Numbering Systems</a></h3>
- <p><span class="dtd"><!ELEMENT otherNumberingSystems ( alias
- | ( native*, traditional*, finance*)) ></span></p>
- <p>This element defines general categories of numbering systems
- that are sometimes used in the given locale for formatting
- numeric quantities. These additional numbering systems are
- often used in very specific contexts, such as in calendars or
- for financial purposes. There are currently three defined
- categories, as follows:</p>
- <dl>
- <dt><b>native</b></dt>
- <dd>Defines the numbering system used for the native digits,
- usually defined as a part of the script used to write the
- language. The native numbering system can only be a numeric
- positional decimal-digit numbering system, using digits with
- General_Category=Decimal_Number. Note: In locales where the
- native numbering system is the default, it is assumed that
- the numbering system "latn" ( Western Digits 0-9 ) is always
- acceptable, and can be selected using the -nu keyword as part
- of a Unicode locale identifier.</dd>
- <dt><b>traditional</b></dt>
- <dd>Defines the traditional numerals for a locale. This
- numbering system may be numeric or algorithmic. If the
- traditional numbering system is not defined, applications
- should use the native numbering system as a fallback.</dd>
- <dt><b>finance</b></dt>
- <dd>Defines the numbering system used for financial
- quantities. This numbering system may be numeric or
- algorithmic. This is often used for ideographic languages
- such as Chinese, where it would be easy to alter an amount
- represented in the default numbering system simply by adding
- additional strokes. If the financial numbering system is not
- specified, applications should use the default numbering
- system as a fallback.</dd>
- </dl>
- <p>The categories defined for other numbering systems can be
- used in a Unicode locale identifier to select the proper
- numbering system without having to know the specific numbering
- system by name. For example:</p>
- <ul>
- <li>To select Hindi language using the native digits for
- numeric formatting, use locale ID: "hi-IN-u-nu-native".</li>
- <li>To select Chinese language using the appropriate
- financial numerals, use locale ID: "zh-u-nu-finance".</li>
- <li>To select Tamil language using the traditional Tamil
- numerals, use locale ID: "ta-u-nu-traditio".</li>
- <li>To select Arabic language using western digits 0-9, use
- locale ID: "ar-u-nu-latn".</li>
- </ul>
- <p>For more information on numbering systems and their
- definitions, see <i><a href="#Numbering_Systems">Section 1:
- Numbering Systems</a></i>.</p>
- <h3>2.3 <a name="Number_Symbols" href="#Number_Symbols" id=
- "Number_Symbols">Number Symbols</a></h3>
- <p class="dtd"><!ELEMENT symbols (alias | (decimal*, group*,
- list*, percentSign*, nativeZeroDigit*, patternDigit*,
- plusSign*, minusSign*, approximatelySign*, exponential*,
- superscriptingExponent*, perMille*, infinity*, nan*, currencyDecimal*,
- currencyGroup*, timeSeparator*, special*)) ></p>
- <p>Number symbols define the localized symbols that are
- commonly used when formatting numbers in a given locale. These
- symbols can be referenced using a number formatting pattern as
- defined in <i><a href="#Number_Format_Patterns">Section 3:
- Number Format Patterns</a></i>.</p>
- <p>The available number symbols are as follows:</p>
- <dl>
- <dt><b>decimal</b></dt>
- <dd>- separates the integer and fractional part of the
- number.</dd>
- <dt><b>group</b></dt>
- <dd>- separates clusters of integer digits to make large
- numbers more legible; commonly used for thousands (grouping
- size 3, e.g. "100,000,000") or in some locales, ten-thousands
- (grouping size 4, e.g. "1,0000,0000"). There may be two
- different grouping sizes: The <em>primary grouping size</em>
- used for the least significant integer group, and the
- <em>secondary grouping size</em> used for more significant
- groups; these are not the same in all locales (e.g.
- "12,34,56,789"). If a pattern contains multiple grouping
- separators, the interval between the last one and the end of
- the integer defines the primary grouping size, and the
- interval between the last two defines the secondary grouping
- size. All others are ignored, so "#,##,###,####" ==
- "###,###,####" == "##,#,###,####".</dd>
- <dt><b>list</b></dt>
- <dd>- symbol used to separate numbers in a list intended to
- represent structured data such as an array; must be different
- from the <b>decimal</b> value. This list separator is for
- “non-linguistic” usage as opposed to the listPatterns for
- “linguistic” lists (e.g. “Bob, Carol, and Ted”) described in
- Part 2, <em>Section 11 <a href=
- "tr35-general.html#ListPatterns">List Patterns</a></em>.</dd>
- <dt><b>percentSign</b></dt>
- <dd>- symbol used to indicate a percentage (1/100th) amount.
- (If present, the value is also multiplied by 100 before
- formatting. That way 1.23 → 123%)</dd>
- <dt><b>nativeZeroDigit</b></dt>
- <dd>- Deprecated - do not use.</dd>
- <dt><b>patternDigit</b></dt>
- <dd>- Deprecated. This was formerly used to provide the
- localized pattern character corresponding to '#', but
- localization of the pattern characters themselves has been
- deprecated for some time (determining the locale-specific
- <em>replacements</em> for pattern characters is of course not
- deprecated and is part of normal number formatting).</dd>
- <dt><b>minusSign</b></dt>
- <dd>- Symbol used to denote negative value.</dd>
- <dt><b>plusSign</b></dt>
- <dd>- Symbol used to denote positive value. It can be
- used to produce modified patterns, so that 3.12 is formatted
- as "+3.12", for example. The standard number patterns (except
- for type="accounting") will contain the minusSign, explicitly
- or implicitly. In the explicit pattern, the value of the
- plusSign can be substituted for the value of the minusSign to
- produce a pattern that has an explicit plus sign.</dd>
- <dt><b>approximatelySign</b></dt>
- <dd>- Symbol used to denote a value that is approximate but
- not exact. The symbol is substituted in place of the minusSign
- using the same semantics as plusSign substitution.</dd>
- <dt><b>exponential</b></dt>
- <dd>- Symbol separating the mantissa and exponent
- values.</dd>
- <dt><b>superscriptingExponent</b></dt>
- <dd>- (Programmers are used to the fallback exponent style
- “1.23E4”, but that should not be shown to end-users. Instead,
- the exponential notation superscriptingExponent should be
- used to show a format like “1.23 × 10<sup>4</sup>”. ) The
- superscripting can use markup, such as
- <sup>4</sup> in HTML, or for the special case of
- Latin digits, use the superscript characters: U+207B ( ⁻ ),
- U+2070 ( ⁰ ), U+00B9 ( ¹ ), U+00B2 ( ² ), U+00B3 ( ³ ),
- U+2074 ( ⁴ ) .. U+2079 ( ⁹ ).</dd>
- <dt><b>perMille</b></dt>
- <dd>- symbol used to indicate a per-mille (1/1000th) amount.
- (If present, the value is also multiplied by 1000 before
- formatting. That way 1.23 → 1230 [1/000])</dd>
- <dt><b>infinity</b></dt>
- <dd>- The infinity sign. Corresponds to the IEEE infinity bit
- pattern.</dd>
- <dt><b>nan - Not a number</b></dt>
- <dd>- The NaN sign. Corresponds to the IEEE NaN bit
- pattern.</dd>
- <dt><b>currencyDecimal</b></dt>
- <dd>- Optional. If specified, then for currency
- formatting/parsing this is used as the decimal separator
- instead of using the regular decimal separator; otherwise,
- the regular decimal separator is used.</dd>
- <dt><b>currencyGroup</b></dt>
- <dd>- Optional. If specified, then for currency
- formatting/parsing this is used as the group separator
- instead of using the regular group separator; otherwise, the
- regular group separator is used.</dd>
- <dt><b>timeSeparator</b></dt>
- <dd>
- - This replaces any use of the timeSeparator pattern
- character in a date-time format pattern (no timeSeparator
- pattern character is currently defined, see note below).
- This allows the same time format to be used for multiple
- number systems when the time separator depends on the
- number system. For example, the time format for Arabic
- should be COLON when using the Latin numbering system (0,
- 1, 2, …), but when the Arabic numbering system is used (٠
- - ١ - ٢ …), the traditional time separator in older print
- styles was often ARABIC COMMA.
- <p class="note"><b>Note:</b> In CLDR 26 the timeSeparator
- pattern character was specified to be COLON. This was
- withdrawn in CLDR 28 due to backward compatibility issues,
- and no timeSeparator pattern character is currently
- defined. No CLDR locales are known to have a need to
- specify timeSeparator symbols that depend on number system;
- if this changes in the future a different timeSeparator
- pattern character will be defined. In
- the meantime, since CLDR data consumers can still request
- the timeSeparator symbol. it should match the symbol
- actually used in the
- <a href="tr35-dates.html#timeFormats">timeFormats</a> and
- <a href="tr35-dates.html#availableFormats_appendItems">availableFormats</a>
- items.</p>
- </dd>
- </dl>
- <p>Example:</p>
- <pre><symbols>
- <decimal><span style=
-"color: blue">.</span></decimal>
- <group><span style="color: blue">,</span></group>
- <list><span style="color: blue">;</span></list>
- <percentSign><span style=
-"color: blue">%</span></percentSign>
- <patternDigit><span style=
-"color: blue">#</span></patternDigit>
- <plusSign><span style=
-"color: blue">+</span></plusSign>
- <minusSign><span style=
-"color: blue">-</span></minusSign>
- <approximatelySign><span style=
-"color: blue">~</span></approximatelySign>
- <exponential><span style=
-"color: blue">E</span></exponential>
- <superscriptingExponent><span style=
-"color: blue">×</span></superscriptingExponent>
- <perMille><span style=
-"color: blue">‰</span></perMille>
- <infinity><span style=
-"color: blue">∞</span></infinity>
- <nan><span style="color: blue">☹</span></nan>
- <timeSeparator>:</timeSeparator>
-</symbols></pre>
- <p><span class="dtd"><!ATTLIST symbols numberSystem CDATA
- #IMPLIED ><br></span> The numberSystem attribute is used to
- specify that the given number symbols are to be used when the
- given numbering system is active. Number symbols can only be
- defined for numbering systems of the "numeric" type, since any
- special symbols required for an algorithmic numbering system
- should be specified by the RBNF formatting rules used for that
- numbering system. By default, number symbols without a specific
- numberSystem attribute are assumed to be used for the "latn"
- numbering system, which is western (ASCII) digits. Locales that
- specify a numbering system other than "latn" as the default
- should also specify number formatting symbols that are
- appropriate for use within the context of the given numbering
- system. For example, a locale that uses the Arabic-Indic digits
- as its default would likely use an Arabic comma for the
- grouping separator rather than the ASCII comma.<br>
- For more information on numbering systems and their
- definitions, see <i><a href="#Numbering_Systems">Section 1:
- Numbering Systems</a></i>.</p>
- <h3>2.4 <a name="Number_Formats" href="#Number_Formats" id=
- "Number_Formats">Number Formats</a></h3>
- <p class="dtd"><!ELEMENT decimalFormats (alias | (default*,
- decimalFormatLength*, special*))><br>
- <!ELEMENT decimalFormatLength (alias | (default*,
- decimalFormat*, special*))><br>
- <!ATTLIST decimalFormatLength type ( full | long | medium |
- short ) #IMPLIED ><br>
- <!ELEMENT decimalFormat (alias | (pattern*, special*))
- ><br></p>
- <p>(scientificFormats, percentFormats have the same
- structure)</p>
- <p>Number formats are used to define the rules for formatting
- numeric quantities using the pattern syntax described in
- <i><a href="#Number_Format_Patterns">Section 3: Number Format
- Patterns</a></i>.</p>
- <p>Different formats are provided for different contexts, as
- follows:</p>
- <dl>
- <dt> </dt>
- <dt><b>decimalFormats</b></dt>
- <dd>The normal locale specific way to write a base 10 number.
- Variations of the decimalFormat pattern are provided that
- allow compact number formatting.</dd>
- <dt><b>percentFormats</b></dt>
- <dd>Pattern for use with percentage formatting</dd>
- <dt><b>scientificFormats</b></dt>
- <dd>Pattern for use with scientific (exponent)
- formatting.</dd>
- </dl>
- <p>Example:</p>
- <pre><decimalFormats>
- <decimalFormatLength type="<span style=
-"color: blue">long</span>">
- <decimalFormat>
- <pattern><span style=
-"color: blue">#,##0.###</span></pattern>
- </decimalFormat>
- </decimalFormatLength>
-</decimalFormats></pre>
- <pre><scientificFormats>
- <default type="<span style="color: blue">long</span>"/>
- <scientificFormatLength type="<span style=
-"color: blue">long</span>">
- <scientificFormat>
- <pattern><span style=
-"color: blue">0.000###E+00</span></pattern>
- </scientificFormat>
- </scientificFormatLength>
- <scientificFormatLength type="<span style=
-"color: blue">medium</span>">
- <scientificFormat>
- <pattern><span style=
-"color: blue">0.00##E+00</span></pattern>
- </scientificFormat>
- </scientificFormatLength>
-</scientificFormats></pre>
- <pre><percentFormats>
- <percentFormatLength type="<span style=
-"color: blue">long</span>">
- <percentFormat>
- <pattern><span style=
-"color: blue">#,##0%</span></pattern>
- </percentFormat>
- </percentFormatLength>
-</percentFormats></pre>
- <p><span class="dtd"><!ATTLIST symbols numberSystem CDATA
- #IMPLIED ><br></span> The numberSystem attribute is used to
- specify that the given number formatting pattern(s) are to be
- used when the given numbering system is active. By default,
- number formatting patterns without a specific numberSystem
- attribute are assumed to be used for the "latn" numbering
- system, which is western (ASCII) digits. Locales that specify a
- numbering system other than "latn" as the default should also
- specify number formatting patterns that are appropriate for use
- within the context of the given numbering system.<br>
- For more information on numbering systems and their
- definitions, see <i><a href="#Numbering_Systems">Section 1:
- Numbering Systems</a></i>.</p>
- <h4>2.4.1 <a name="Compact_Number_Formats" href=
- "#Compact_Number_Formats" id="Compact_Number_Formats">Compact
- Number Formats</a></h4>A pattern type attribute is used for
- <em>compact number formats</em>, such as the following:
- <pre>
-<decimalFormatLength type="long"><br> <decimalFormat><br> <pattern type="1000" count="one">0 millier</pattern><br> <pattern type="1000" count="other">0 milliers</pattern><br> <pattern type="10000" count="one">00 mille</pattern><br> <pattern type="10000" count="other">00 mille</pattern><br> <pattern type="100000" count="one">000 mille</pattern><br> <pattern type="100000" count="other">000 mille</pattern><br> <pattern type="1000000" count="one">0 million</pattern><br> <pattern type="1000000" count="other">0 millions</pattern><br> …<br> </decimalFormat><br></decimalFormatLength><br><decimalFormatLength type="short"><br> <decimalFormat><br> <pattern type="1000" count="one">0 K</pattern><br> <pattern type="1000" count="other">0 K</pattern><br> <pattern type="10000" count="one">00 K</pattern><br> <pattern type="10000" count="other">00 K</pattern><br> <pattern type="100000" count="one">000 K</pattern><br> <pattern type="100000" count="other">000 K</pattern><br> <pattern type="1000000" count="one">0 M</pattern><br> <pattern type="1000000" count="other">0 M</pattern><br> …<br> </decimalFormat>
-…
-<currencyFormatLength type="short"><br> <currencyFormat type="standard"><br> <pattern type="1000" count="one">0 K ¤</pattern><br> <pattern type="1000" count="other">0 K ¤</pattern><br> <pattern type="10000" count="one">00 K ¤</pattern><br> <pattern type="10000" count="other">00 K ¤</pattern><br> <pattern type="100000" count="one">000 K ¤</pattern><br> <pattern type="100000" count="other">000 K ¤</pattern><br> <pattern type="1000000" count="one">0 M ¤</pattern><br> <pattern type="1000000" count="other">0 M ¤</pattern></pre>
- <p>Formats can be supplied for numbers (as above) or for
- currencies or other units. They can also be used with ranges of
- numbers, resulting in formatting strings like “$10K” or
- “$3–7M”.</p>
- <p>To format a number N, the greatest type less than or equal
- to N is used, with the appropriate plural category. N is
- divided by the type, after removing the number of zeros in the
- pattern, less 1. APIs supporting this format should provide
- control over the number of significant or fraction digits.</p>
- <p>The default pattern for any type that is not supplied is the
- special value “0”, as in the following. The value “0” must be
- used when a child locale overrides a parent locale to drop the
- compact pattern for that type and use the default pattern.</p>
- <p><code> <pattern type="1"
- count="one">0</pattern></code></p>
- <p>If the value is precisely “0”, either explicit or defaulted,
- then the normal number format pattern for that sort of object
- is supplied — either <decimalFormat> or
- <currencyFormat type="standard"> — with the normal
- formatting for the locale (such as the grouping separators).
- However, for the “0” case by default the signficant digits are
- adjusted for consistency, typically to 2 or 3 digits, and the
- maximum fractional digits are set to 0 (for both currencies and
- plain decimal). Thus the output would be $12, not $12.01. APIs
- may, however, allow these default behaviors to be
- overridden.</p>
- <p>With the data above, N=12345 matches <code><pattern
- type="10000" count="other">00 K</pattern></code> . N
- is divided by 1000 (obtained from10000 after removing "00" and
- restoring one "0". The result is formatted according to the
- normal decimal pattern. With no fractional digits, that yields
- "12 K".</p>
- <p>Formatting 1200 in USD would result in “1.2 K $”, while 990
- implicitly maps to the special value “0”, which maps to
- <currencyFormat
- type="standard"><pattern>#,##0.00 ¤</pattern>,
- and would result in simply “990 $”.</p>
- <p>The short format is designed for UI environments where space
- is at a premium, and should ideally result in a formatted
- string no more than about 6 em wide (with no fractional
- digits).</p>
- <h4>2.4.2 <a name="Currency_Formats" href="#Currency_Formats"
- id="Currency_Formats">Currency Formats</a></h4>
- <p>Pattern for use with currency formatting. This format
- contains a few additional structural options that allow proper
- placement of the currency symbol relative to the numeric
- quantity. Refer to <i><a href="#Currencies">Section 4 -
- Currencies</a></i> for additional information on the use of
- these options.</p>
- <p class="dtd"><!ELEMENT currencyFormats (alias | (default*,
- currencySpacing*, currencyFormatLength*, unitPattern*,
- special*)) ><br>
- <!ELEMENT currencySpacing (alias | (beforeCurrency*,
- afterCurrency*, special*)) ><br>
- <!ELEMENT beforeCurrency (alias | (currencyMatch*,
- surroundingMatch*, insertBetween*)) ><br>
- <!ELEMENT afterCurrency (alias | (currencyMatch*,
- surroundingMatch*, insertBetween*)) ><br>
- <!ELEMENT currencyMatch ( #PCDATA ) ><br>
- <!ELEMENT surroundingMatch ( #PCDATA )) ><br>
- <!ELEMENT insertBetween ( #PCDATA ) ><br>
- <!ELEMENT currencyFormatLength (alias | (default*,
- currencyFormat*, special*)) ><br>
- <!ATTLIST currencyFormatLength type ( full | long | medium |
- short ) #IMPLIED ><br>
- <!ELEMENT currencyFormat (alias | (pattern*, special*))
- ></p>
- <p>In addition to a standard currency format, in which negative
- currency amounts might typically be displayed as something like
- “-$3.27”, locales may provide an "accounting" form, in which
- for "en_US" the same example would appear as “($3.27)”.</p>
- <pre><currencyFormats>
- <currencyFormatLength>
- <currencyFormat type="standard">
- <pattern><span style=
-"color: blue">¤#,##0.00</span></pattern>
- </currencyFormat>
- <currencyFormat type="accounting">
- <pattern><span style=
-"color: blue">¤#,##0.00;(¤#,##0.00)</span></pattern>
- </currencyFormat>
- </currencyFormatLength>
-</currencyFormats></pre>
- <h3>2.5 <a name="Miscellaneous_Patterns" href=
- "#Miscellaneous_Patterns" id=
- "Miscellaneous_Patterns">Miscellaneous Patterns</a></h3>
- <p class="dtd"><!ELEMENT miscPatterns (alias | (default*,
- pattern*, special*)) ><br>
- <!ATTLIST miscPatterns numberSystem CDATA #IMPLIED ></p>
- <p>The miscPatterns supply additional patterns for special
- purposes. The currently defined values are:</p>
- <dl>
- <dt><strong>approximately</strong></dt>
- <dd>indicates an approximate number, such as: “~99”</dd>
- <dt><strong>atMost</strong></dt>
- <dd>indicates a number or lower, such as: “<code>≤</code>99”
- to indicate that there are 99 items or fewer.</dd>
- <dt><strong>atLeast</strong></dt>
- <dd>indicates a number or higher, such as: “99+” to indicate
- that there are 99 items or more.</dd>
- <dt><strong>range</strong></dt>
- <dd>indicates a range of numbers, such as: “99–103” to
- indicate that there are from 99 to 103 items.</dd>
- </dl>
- <p><em>For example:</em></p>
- <p><code><miscPatterns numberSystem="…"><br>
- <pattern
- type="approximately">~{0}</pattern><br>
- <pattern type="atLeast">≥{0}</pattern><br>
- <pattern
- type="atMost">≤{0}</pattern><br>
- <pattern type="range">{0}–{1}</pattern><br>
- </miscPatterns></code></p>
- <h3>2.6 <a name="Minimal_Pairs" href="#Minimal_Pairs" id=
- "Minimal_Pairs">Minimal Pairs</a></h3>
- <p class="dtd"><!ELEMENT minimalPairs ( alias | ( pluralMinimalPairs*, ordinalMinimalPairs*, caseMinimalPairs*, genderMinimalPairs*, special* ) ) ><br>
- </p>
- <p class="dtd"><!ELEMENT pluralMinimalPairs ( #PCDATA )
- ><br>
- <!ATTLIST pluralMinimalPairs count NMTOKEN #IMPLIED ><br>
- </p>
- <p class="dtd"><!ELEMENT ordinalMinimalPairs ( #PCDATA )
- ><br>
- <!ATTLIST ordinalMinimalPairs ordinal NMTOKEN #IMPLIED
- ><br>
- </p>
- <p class="dtd"><!ELEMENT caseMinimalPairs ( #PCDATA ) ><br>
- <!ATTLIST caseMinimalPairs case NMTOKEN #REQUIRED ></p>
- <p class="dtd"><!ELEMENT genderMinimalPairs ( #PCDATA ) > <br>
- <!ATTLIST genderMinimalPairs gender NMTOKEN #REQUIRED ></p>
- <p>Minimal pairs provide examples that justify why multiple
- plural or ordinal categories exist, and for providing contextual
- examples for verifying consistency of translations. The allowable values for the count,
- ordinal, case, and gender attributes are found in the dtd file.</p>
- <p>Examples</p>
- <p><code><minimalPairs><br>
- <pluralMinimalPairs count="one">{0} Tag</pluralMinimalPairs><br>
- <pluralMinimalPairs count="other">{0} Tage</pluralMinimalPairs><br>
-<br>
- <ordinalMinimalPairs ordinal="other">{0}. Abzweigung nach rechts nehmen</ordinalMinimalPairs><br>
-<br>
- <caseMinimalPairs case="accusative">… für {0} …</caseMinimalPairs><br>
- <caseMinimalPairs case="dative">… mit {0} …</caseMinimalPairs><br>
- <caseMinimalPairs case="genitive">Anstatt {0} …</caseMinimalPairs><br>
- <caseMinimalPairs case="nominative">{0} kostet (kosten) € 3,50.</caseMinimalPairs><br>
-<br>
- <genderMinimalPairs gender="feminine">Die {0} ist …</genderMinimalPairs><br>
- <genderMinimalPairs gender="masculine">Der {0} ist …</genderMinimalPairs><br>
- <genderMinimalPairs gender="neuter">Das {0} ist …</genderMinimalPairs><br>
- </minimalPairs></code></p>
- <br>
- <p>For more information, see <a href="http://cldr.unicode.org/index/cldr-spec/plural-rules">Plural Rules</a>
- and
- <a href="http://cldr.unicode.org/translation/grammatical-inflection">Grammatical Inflection</a>.</p>
-
- <h2><a name="Number_Format_Patterns" href=
- "#Number_Format_Patterns" id="Number_Format_Patterns">3 Number
- Format Patterns</a></h2>
- <h3>3.1 <a name="Number_Patterns" href="#Number_Patterns" id=
- "Number_Patterns">Number Patterns</a></h3>
- <p>Number patterns affect how numbers are interpreted in a
- localized context. Here are some examples, based on the French
- locale. The "." shows where the decimal point should go. The
- "," shows where the thousands separator should go. A "0"
- indicates zero-padding: if the number is too short, a zero (in
- the locale's numeric set) will go there. A "#" indicates no
- padding: if the number is too short, nothing goes there. A "¤"
- shows where the currency sign will go. The following
- illustrates the effects of different patterns for the French
- locale, with the number "1234.567". Notice how the pattern
- characters ',' and '.' are replaced by the characters
- appropriate for the locale.</p>
- <blockquote>
- <table cellspacing="0" cellpadding="4" border="1">
- <caption>
- <a name="Number_Pattern_Examples" href=
- "#Number_Pattern_Examples" id=
- "Number_Pattern_Examples">Number Pattern Examples</a>
- </caption>
- <tr bgcolor="#CCCCFF">
- <th width="17%">Pattern</th>
- <th width="16%">Currency</th>
- <th width="33%">Text</th>
- </tr>
- <tr>
- <td width="17%">#,##0.##</td>
- <td width="16%"><i>n/a</i></td>
- <td width="33%">1 234,57</td>
- </tr>
- <tr>
- <td width="17%">#,##0.###</td>
- <td width="16%"><i>n/a</i></td>
- <td width="33%">1 234,567</td>
- </tr>
- <tr>
- <td width="17%">###0.#####</td>
- <td width="16%"><i>n/a</i></td>
- <td width="33%">1234,567</td>
- </tr>
- <tr>
- <td width="17%">###0.0000#</td>
- <td width="16%"><i>n/a</i></td>
- <td width="33%">1234,5670</td>
- </tr>
- <tr>
- <td width="17%">00000.0000</td>
- <td width="16%"><i>n/a</i></td>
- <td width="33%">01234,5670</td>
- </tr>
- <tr>
- <td width="17%" rowspan="2">#,##0.00 ¤</td>
- <td width="16%">EUR</td>
- <td width="33%">1 234,57 €</td>
- </tr>
- <tr>
- <td width="16%">JPY</td>
- <td width="33%">1 235 ¥JP</td>
- </tr>
- </table>
- </blockquote>
- <p>The number of # placeholder characters before the decimal do
- not matter, since no limit is placed on the maximum number of
- digits. There should, however, be at least one zero someplace
- in the pattern. In currency formats, the number of digits after
- the decimal also do not matter, since the information in the
- supplemental data (see <i><a href=
- "#Supplemental_Currency_Data">Supplemental Currency
- Data</a>)</i> is used to override the number of decimal places
- — and the rounding — according to the currency that is being
- formatted. That can be seen in the above chart, with the
- difference between Yen and Euro formatting.</p>
- <p>To ensure correct layout, especially in currency patterns in
- which a a variety of symbols may be used, number patterns may
- contain (invisible) bidirectional text format characters such
- as LRM, RLM, and ALM.</p>
- <p><i>When parsing using a pattern, a lenient parse should be
- used; see <a href="tr35.html#Lenient_Parsing">Lenient
- Parsing</a>.</i> As noted there, lenient parsing should ignore
- bidi format characters.</p>
- <h3>3.2 <a name="Special_Pattern_Characters" href=
- "#Special_Pattern_Characters" id=
- "Special_Pattern_Characters">Special Pattern
- Characters</a></h3>
- <p>Many characters in a pattern are taken literally; they are
- matched during parsing and output unchanged during formatting.
- Special characters, on the other hand, stand for other
- characters, strings, or classes of characters. For example, the
- '#' character is replaced by a localized digit for the chosen
- numberSystem. Often the replacement character is the same as
- the pattern character; in the U.S. locale, the ',' grouping
- character is replaced by ','. However, the replacement is still
- happening, and if the symbols are modified, the grouping
- character changes. Some special characters affect the behavior
- of the formatter by their presence; for example, if the percent
- character is seen, then the value is multiplied by 100 before
- being displayed.</p>
- <p>To insert a special character in a pattern as a literal,
- that is, without any special meaning, the character must be
- quoted. There are some exceptions to this which are noted
- below. The Localized Replacement column shows the replacement
- from <em>Section 2.3 <a href="#Number_Symbols">Number
- Symbols</a></em> or the numberSystem's digits: <em>italic</em>
- indicates a special function.</p>
- <p>Invalid sequences of special characters (such as “¤¤¤¤¤” in
- current CLDR) should be handled for formatting and parsing as
- described in <a href="tr35.html#Invalid_Patterns">Handling
- Invalid Patterns</a>.</p>
- <blockquote>
- <table cellspacing="3" cellpadding="0" summary=
- "Chart showing symbol, location, localized, and meaning."
- border="0">
- <caption>
- <a name="Number_Pattern_Character_Definitions" href=
- "#Number_Pattern_Character_Definitions" id=
- "Number_Pattern_Character_Definitions">Number Pattern
- Character Definitions</a>
- </caption>
- <tr bgcolor="#CCCCFF">
- <th align="left">Symbol</th>
- <th align="left">Location</th>
- <th align="left">Localized Replacement</th>
- <th colspan="2" align="left">Meaning</th>
- </tr>
- <tr valign="top">
- <td>0</td>
- <td>Number</td>
- <td>digit</td>
- <td colspan="2">Digit</td>
- </tr>
- <tr valign="top" bgcolor="#EEEEFF">
- <td>1-9</td>
- <td>Number</td>
- <td>digit</td>
- <td colspan="2">'1' through '9' indicate rounding.</td>
- </tr>
- <tr valign="top">
- <td>@</td>
- <td>Number</td>
- <td>digit</td>
- <td colspan="2">Significant digit</td>
- </tr>
- <tr valign="top" bgcolor="#EEEEFF">
- <td>#</td>
- <td>Number</td>
- <td>digit, <em>nothing</em></td>
- <td colspan="2">Digit, omitting leading/trailing
- zeros</td>
- </tr>
- <tr valign="top">
- <td>.</td>
- <td>Number</td>
- <td>decimal, currencyDecimal</td>
- <td colspan="2">Decimal separator or monetary decimal
- separator</td>
- </tr>
- <tr valign="top" bgcolor="#EEEEFF">
- <td>-</td>
- <td>Number</td>
- <td>minusSign, plusSign, approximatelySign</td>
- <td colspan="2">Minus sign. <strong>Warning:</strong> the
- pattern '-'0.0 is not the same as the pattern -0.0. In
- the former case, the minus sign is a literal. In the
- latter case, it is a special symbol, which is replaced by
- the minusSymbol, and can also be replaced by the
- plusSymbol for a format like +12% as in Section 3.2.1
- <a href="#Explicit_Plus">Explicit Plus Signs</a>.</td>
- </tr>
- <tr valign="top">
- <td>,</td>
- <td>Number</td>
- <td>group, currencyGroup</td>
- <td colspan="2">Grouping separator. May occur in both the
- integer part and the fractional part. The position
- determines the grouping.</td>
- </tr>
- <tr valign="top" bgcolor="#EEEEFF">
- <td>E</td>
- <td>Number</td>
- <td>exponential, superscriptingExponent</td>
- <td colspan="2">Separates mantissa and exponent in
- scientific notation. <em>Need not be quoted in prefix or
- suffix.</em></td>
- </tr>
- <tr valign="top">
- <td>+</td>
- <td>Exponent or Number (for explicit plus)</td>
- <td>plusSign</td>
- <td colspan="2">Prefix positive exponents with localized
- plus sign. Used for explicit plus for numbers as well, as
- described in Section 3.2.1 <a href=
- "#Explicit_Plus">Explicit Plus Signs</a>. <em><br>
- Need not be quoted in prefix or suffix.</em></td>
- </tr>
- <tr valign="top">
- <td>%</td>
- <td>Prefix or suffix</td>
- <td>percentSign</td>
- <td colspan="2">Multiply by 100 and show as
- percentage</td>
- </tr>
- <tr valign="top" bgcolor="#EEEEFF">
- <td>‰<br>
- (U+2030)</td>
- <td>Prefix or suffix</td>
- <td>perMille</td>
- <td colspan="2">Multiply by 1000 and show as per mille
- (aka “basis points”)</td>
- </tr>
- <tr valign="top" bgcolor="#EEEEFF">
- <td>;</td>
- <td>Subpattern boundary</td>
- <td><em>syntax</em></td>
- <td colspan="2">Separates positive and negative
- subpatterns. When there is no explicit negative
- subpattern, an implicit negative subpattern is formed
- from the positive pattern with a prefixed - (ASCII U+002D
- HYPHEN-MINUS).</td>
- </tr>
- <tr valign="top">
- <td rowspan="11">¤ (U+00A4)</td>
- <td rowspan="11">Prefix or suffix</td>
- <td rowspan="11"><em>currency symbol/name from currency
- specified in API</em></td>
- <td colspan="2">Any sequence is replaced by the localized
- currency symbol for the currency being formatted, as in
- the table below. If present in a pattern, the monetary
- decimal separator and grouping separators (if available)
- are used instead of the numeric ones. If data is
- unavailable for a given sequence in a given locale, the
- display may fall back to ¤ or ¤¤. See also the formatting
- forcurrency display names, steps 2 and 4 in <a href=
- "#Currencies">Currencies</a>.</td>
- </tr>
- <tr valign="top">
- <th>No.</th>
- <th>Replacement / Example</th>
- </tr>
- <tr valign="top">
- <td rowspan="2">¤</td>
- <td>Standard currency symbol</td>
- </tr>
- <tr valign="top">
- <td><em>C$12.00</em></td>
- </tr>
- <tr valign="top">
- <td rowspan="2">¤¤</td>
- <td>ISO currency symbol (constant)</td>
- </tr>
- <tr valign="top">
- <td><em>CAD 12.00</em></td>
- </tr>
- <tr valign="top">
- <td rowspan="2">¤¤¤</td>
- <td>Appropriate currency display name for the currency,
- based on the plural rules in effect for the locale</td>
- </tr>
- <tr valign="top">
- <td><em>5.00 Canadian dollars</em></td>
- </tr>
- <tr valign="top">
- <td rowspan="2" nowrap>¤¤¤¤¤</td>
- <td>Narrow currency symbol. The same symbols may be used
- for multiple currencies. Thus the symbol may be
- ambiguous, and should only be used where the context is
- clear.</td>
- </tr>
- <tr valign="top">
- <td><em>$12.00</em></td>
- </tr>
- <tr valign="top">
- <td><em>others</em></td>
- <td><em>Invalid in current CLDR. Reserved for future
- specification</em></td>
- </tr>
- <tr valign="top">
- <td>*</td>
- <td>Prefix or suffix boundary</td>
- <td><em>padding character specified in API</em></td>
- <td colspan="2">Pad escape, precedes pad character</td>
- </tr>
- <tr valign="top" bgcolor="#EEEEFF">
- <td>'</td>
- <td>Prefix or suffix</td>
- <td><em>syntax-only</em></td>
- <td colspan="2">Used to quote special characters in a
- prefix or suffix, for example, <code>"'#'#"</code>
- formats 123 to <code>"#123"</code>. To create a single
- quote itself, use two in a row: <code>"#
- o''clock"</code>.</td>
- </tr>
- </table>
- </blockquote>
- <p>A pattern contains a positive subpattern and may contain a
- negative subpattern, for example, "#,##0.00;(#,##0.00)". Each
- subpattern has a prefix, a numeric part, and a suffix. If there
- is no explicit negative subpattern, the implicit negative
- subpattern is the ASCII minus sign (-) prefixed to the positive
- subpattern. That is, "0.00" alone is equivalent to
- "0.00;-0.00". (The data in CLDR is normalized to remove an
- explicit negative subpattern where it would be identical to the
- implicit form.)</p>
- <p>Note that if an negative subpattern is used as-is: a minus
- sign is <em>not</em> added, eg "0.00;0.00" ≠ "0.00;-0.00".
- Trailing semicolons are ignored, eg "0.00;" = "0.00".
- Whitespace is not ignored, including those around semicolons,
- so "0.00; -0.00" ≠ "0.00; -0.00".</p>
- <p>If there is an explicit negative subpattern, it serves only
- to specify the negative prefix and suffix; the number of
- digits, minimal digits, and other characteristics are ignored
- in the negative subpattern. That means that "#,##0.0#;(#)" has
- precisely the same result as "#,##0.0#;(#,##0.0#)". However in
- the CLDR data, the format is normalized so that the other
- characteristics are preserved, just for readability.</p>
- <blockquote>
- <p><b>Note:</b> The thousands separator and decimal separator
- in patterns are always ASCII ',' and '.'. They are
- substituted by the code with the correct local values
- according to other fields in CLDR. The same is true of the -
- (ASCII minus sign) and other special characters listed
- above.</p>
- </blockquote>
- <p>Below is a sample of patterns, special characters, and
- results:</p>
- <div align="center">
- <table border="0" cellpadding="0" cellspacing="3">
- <caption>
- <a name='Sample_Patterns_and_Results' href=
- '#Sample_Patterns_and_Results' id=
- "Sample_Patterns_and_Results">Sample Patterns and
- Results</a>
- </caption>
- <tr valign="top">
- <th>
- <div align="right">
- explicit pattern:
- </div>
- </th>
- <td colspan="2">
- <div align="center">
- 0.00;-0.00
- </div>
- </td>
- <td colspan="2">
- <div align="center">
- 0.00;0.00-
- </div>
- </td>
- <td colspan="2">
- <div align="center">
- 0.00+;0.00-
- </div>
- </td>
- </tr>
- <tr valign="top">
- <th>
- <div align="right">
- decimalSign:
- </div>
- </th>
- <td colspan="2">
- <div align="center">
- ,
- </div>
- </td>
- <td colspan="2">
- <div align="center">
- ,
- </div>
- </td>
- <td colspan="2">
- <div align="center">
- ,
- </div>
- </td>
- </tr>
- <tr valign="top">
- <th>
- <div align="right">
- minusSign:
- </div>
- </th>
- <td colspan="2">
- <div align="center">
- ∸
- </div>
- </td>
- <td colspan="2">
- <div align="center">
- ∸
- </div>
- </td>
- <td colspan="2">
- <div align="center">
- ∸
- </div>
- </td>
- </tr>
- <tr valign="top">
- <th>
- <div align="right">
- plusSign:
- </div>
- </th>
- <td colspan="2">
- <div align="center">
- ∔
- </div>
- </td>
- <td colspan="2">
- <div align="center">
- ∔
- </div>
- </td>
- <td colspan="2">
- <div align="center">
- ∔
- </div>
- </td>
- </tr>
- <tr valign="top">
- <th>
- <div align="right">
- number:
- </div>
- </th>
- <td>
- <div align="center">
- 3.1415
- </div>
- </td>
- <td>
- <div align="center">
- -3.1415
- </div>
- </td>
- <td>
- <div align="center">
- 3.1415
- </div>
- </td>
- <td>
- <div align="center">
- -3.1415
- </div>
- </td>
- <td>
- <div align="center">
- 3.1415
- </div>
- </td>
- <td>
- <div align="center">
- -3.1415
- </div>
- </td>
- </tr>
- <tr valign="top">
- <th>
- <div align="right">
- formatted:
- </div>
- </th>
- <td>
- <div align="center">
- 3,14
- </div>
- </td>
- <td>
- <div align="center">
- ∸3,14
- </div>
- </td>
- <td>
- <div align="center">
- 3,14
- </div>
- </td>
- <td>
- <div align="center">
- 3,14∸
- </div>
- </td>
- <td>
- <div align="center">
- 3,14∔
- </div>
- </td>
- <td>
- <div align="center">
- 3,14∸
- </div>
- </td>
- </tr>
- </table>
- <p><em>In the above table, ∸ = U+2238 DOT MINUS and ∔ =
- U+2214 DOT PLUS are used for illustration.</em></p>
- </div>
- <p>The prefixes, suffixes, and various symbols used for
- infinity, digits, thousands separators, decimal separators, and
- so on may be set to arbitrary values, and they will appear
- properly during formatting. <i>However, care must be taken that
- the symbols and strings do not conflict, or parsing will be
- unreliable.</i> For example, either the positive and negative
- prefixes or the suffixes must be distinct for any parser using
- this data to be able to distinguish positive from negative
- values. Another example is that the decimal separator and
- thousands separator should be distinct characters, or parsing
- will be impossible.</p>
- <p>The <em>grouping separator</em> is a character that
- separates clusters of integer digits to make large numbers more
- legible. It is commonly used for thousands, but in some locales
- it separates ten-thousands. The <em>grouping size</em> is the
- number of digits between the grouping separators, such as 3 for
- "100,000,000" or 4 for "1 0000 0000". There are actually two
- different grouping sizes: One used for the least significant
- integer digits, the <em>primary grouping size</em>, and one
- used for all others, the <em>secondary grouping size</em>. In
- most locales these are the same, but sometimes they are
- different. For example, if the primary grouping interval is 3,
- and the secondary is 2, then this corresponds to the pattern
- "#,##,##0", and the number 123456789 is formatted as
- "12,34,56,789". If a pattern contains multiple grouping
- separators, the interval between the last one and the end of
- the integer defines the primary grouping size, and the interval
- between the last two defines the secondary grouping size. All
- others are ignored, so "#,##,###,####" == "###,###,####" ==
- "##,#,###,####".</p>
- <p>The grouping separator may also occur in the fractional
- part, such as in “#,##0.###,#”. This is most commonly done
- where the grouping separator character is a thin, non-breaking
- space (U+202F), such as “1.618 033 988 75”. See <a href=
- "https://physics.nist.gov/cuu/Units/checklist.html">physics.nist.gov/cuu/Units/checklist.html</a>.</p>
- <p>For consistency in the CLDR data, the following conventions
- are observed:</p>
- <ul>
- <li>All number patterns should be minimal: there should be no
- leading # marks except to specify the position of the
- grouping separators (for example, avoid
- ##,##0.###).</li>
- <li>All formats should have one 0 before the decimal point
- (for example, avoid #,###.##)</li>
- <li>Decimal formats should have three hash marks in the
- fractional position (for example, #,##0.###).</li>
- <li>Currency formats should have two zeros in the fractional
- position (for example, ¤ #,##0.00).
- <ul>
- <li>The exact number of decimals is overridden with the
- decimal count in supplementary data or by API
- settings.</li>
- </ul>
- </li>
- <li>The only time two thousands separators needs to be used
- is when the number of digits varies, such as for Hindi:
- #,##,##0.</li>
- <li>The <strong>minimumGroupingDigits</strong> can be used to
- suppress groupings below a certain value. This is used for
- languages such as Polish, where one would only write the
- grouping separator for values above 9999. The
- minimumGroupingDigits contains the default for the locale.
- <ul>
- <li>The attribute value is used by adding it to the
- grouping separator value. If the input number has fewer
- integer digits, the grouping separator is
- suppressed.</li>
- <li>
- <table border="1" cellpadding="0" cellspacing="0">
- <caption>
- <a name="Examples_of_minimumGroupingDigits" href=
- "#Examples_of_minimumGroupingDigits" id=
- "Examples_of_minimumGroupingDigits">Examples of
- minimumGroupingDigits</a>
- </caption>
- <tr>
- <th width="25%" scope="col">
- <div align="center">
- minimumGroupingDigits
- </div>
- </th>
- <th width="25%" scope="col">
- <div align="center">
- Pattern Grouping
- </div>
- </th>
- <th width="25%" scope="col">
- <div align="center">
- Input Number
- </div>
- </th>
- <th width="25%" scope="col">
- <div align="center">
- Formatted
- </div>
- </th>
- </tr>
- <tr>
- <td>
- <div align="right">
- 1
- </div>
- </td>
- <td>
- <div align="right">
- 3
- </div>
- </td>
- <td>
- <div align="right">
- 1000
- </div>
- </td>
- <td>
- <div align="right">
- 1,000
- </div>
- </td>
- </tr>
- <tr>
- <td>
- <div align="right">
- 1
- </div>
- </td>
- <td>
- <div align="right">
- 3
- </div>
- </td>
- <td>
- <div align="right">
- 10000
- </div>
- </td>
- <td>
- <div align="right">
- 10,000
- </div>
- </td>
- </tr>
- <tr>
- <td>
- <div align="right">
- 2
- </div>
- </td>
- <td>
- <div align="right">
- 3
- </div>
- </td>
- <td>
- <div align="right">
- 1000
- </div>
- </td>
- <td>
- <div align="right">
- 1000
- </div>
- </td>
- </tr>
- <tr>
- <td>
- <div align="right">
- 2
- </div>
- </td>
- <td>
- <div align="right">
- 3
- </div>
- </td>
- <td>
- <div align="right">
- 10000
- </div>
- </td>
- <td>
- <div align="right">
- 10,000
- </div>
- </td>
- </tr>
- <tr>
- <td>
- <div align="right">
- 1
- </div>
- </td>
- <td>
- <div align="right">
- 4
- </div>
- </td>
- <td>
- <div align="right">
- 10000
- </div>
- </td>
- <td>
- <div align="right">
- 1,0000
- </div>
- </td>
- </tr>
- <tr>
- <td>
- <div align="right">
- 2
- </div>
- </td>
- <td>
- <div align="right">
- 4
- </div>
- </td>
- <td>
- <div align="right">
- 10000
- </div>
- </td>
- <td>
- <div align="right">
- 10000
- </div>
- </td>
- </tr>
- </table>
- </li>
- </ul>
- </li>
- </ul>
- <h4>3.2.1 <a name="Explicit_Plus" href="#Explicit_Plus" id=
- "Explicit_Plus">Explicit Plus Signs</a></h4>
- <p>An explicit "plus" format can be formed, so as to show a
- visible + sign when formatting a non-negative number. The
- displayed plus sign can be an ASCII plus or another character,
- such as + U+FF0B FULLWIDTH PLUS SIGN or ➕ U+2795 HEAVY PLUS
- SIGN; it is taken from whatever is set for plusSign in
- <em>Section 2.3 <a href="#Number_Symbols">Number
- Symbols</a></em>.</p>
- <ol>
- <li>Get the negative subpattern (explicit or implicit).</li>
- <li>Replace any unquoted ASCII minus sign by an ASCII plus
- sign.</li>
- <li>If there are any replacements, use that for the positive
- subpattern.</li>
- </ol>
- <p>For an example, see <a href=
- "#Sample_Patterns_and_Results">Sample Patterns and
- Results</a>.</p>
- <h3>3.3 <a name="Formatting" href="#Formatting" id=
- "Formatting">Formatting</a></h3>
- <p>Formatting is guided by several parameters, all of which can
- be specified either using a pattern or using an external API
- designed for number formatting. The following description
- applies to formats that do not use <a href="#sci">scientific
- notation</a> or <a href="#sigdig">significant digits</a>.</p>
- <ul>
- <li>If the number of actual integer digits exceeds the
- <em>maximum integer digits</em>, then only the least
- significant digits are shown. For example, 1997 is formatted
- as "97" if the maximum integer digits is set to 2.</li>
- <li>If the number of actual integer digits is less than the
- <em>minimum integer digits</em>, then leading zeros are
- added. For example, 1997 is formatted as "01997" if the
- minimum integer digits is set to 5.</li>
- <li>If the number of actual fraction digits exceeds the
- <em>maximum fraction digits</em>, then half-even rounding it
- performed to the maximum fraction digits. For example, 0.125
- is formatted as "0.12" if the maximum fraction digits is 2.
- This behavior can be changed by specifying a rounding
- increment and a rounding mode.</li>
- <li>If the number of actual fraction digits is less than the
- <em>minimum fraction digits</em>, then trailing zeros are
- added. For example, 0.125 is formatted as "0.1250" if the
- minimum fraction digits is set to 4.</li>
- <li>Trailing fractional zeros are not displayed if they occur
- <em>j</em> positions after the decimal, where <em>j</em> is
- less than the maximum fraction digits. For example, 0.10004
- is formatted as "0.1" if the maximum fraction digits is four
- or less.</li>
- </ul>
- <p><strong>Special Values</strong></p>
- <p><code>NaN</code> is represented as a single character,
- typically <code>(U+FFFD)</code> . This character is determined
- by the localized number symbols. This is the only value for
- which the prefixes and suffixes are not used.</p>
- <p>Infinity is represented as a single character, typically
- <font size="3">∞</font> <code>(U+221E)</code> , with the
- positive or negative prefixes and suffixes applied. The
- infinity character is determined by the localized number
- symbols.</p>
- <h3>3.4 <a name="sci" href="#sci" id="sci">Scientific
- Notation</a></h3>
- <p>Numbers in scientific notation are expressed as the product
- of a mantissa and a power of ten, for example, 1234 can be
- expressed as 1.234 x 10<sup>3</sup>. The mantissa is typically
- in the half-open interval [1.0, 10.0) or sometimes [0.0, 1.0),
- but it need not be. In a pattern, the exponent character
- immediately followed by one or more digit characters indicates
- scientific notation. Example: "0.###E0" formats the number 1234
- as "1.234E3".</p>
- <ul>
- <li>The number of digit characters after the exponent
- character gives the minimum exponent digit count. There is no
- maximum. Negative exponents are formatted using the localized
- minus sign, <em>not</em> the prefix and suffix from the
- pattern. This allows patterns such as "0.###E0 m/s". To
- prefix positive exponents with a localized plus sign, specify
- '+' between the exponent and the digits: "0.###E+0" will
- produce formats "1E+1", "1E+0", "1E-1", and so on. (In
- localized patterns, use the localized plus sign rather than
- '+'.)</li>
- <li>The minimum number of integer digits is achieved by
- adjusting the exponent. Example: 0.00123 formatted with
- "00.###E0" yields "12.3E-4". This only happens if there is no
- maximum number of integer digits. If there is a maximum, then
- the minimum number of integer digits is fixed at one.</li>
- <li>The maximum number of integer digits, if present,
- specifies the exponent grouping. The most common use of this
- is to generate <em>engineering notation</em>, in which the
- exponent is a multiple of three, for example, "##0.###E0".
- The number 12345 is formatted using "##0.####E0" as
- "12.345E3".</li>
- <li>
- <p>When using scientific notation, the formatter controls
- the digit counts using logic for significant digits. The
- maximum number of significant digits comes from the
- mantissa portion of the pattern: the string
- of #, 0, and period (".") characters
- immediately preceding the E. To get the maximum number
- of significant digits, use the following algorithm:<br></p>
- <ol>
- <li>If the mantissa pattern contains a period:
- <ol>
- <li>If the mantissa pattern contains at least
- one 0:
- <ul>
- <li>Return the number of 0s before
- the period added to the number
- of #s or 0s after the period</li>
- </ul>
- </li>
- <li>Else:
- <ul>
- <li>Return 1 plus the number of #s after
- the period</li>
- </ul>
- </li>
- </ol>
- </li>
- <li>Else:
- <ol>
- <li>If the mantissa pattern contains at least
- one 0:
- <ul>
- <li>Return the number of 0s.</li>
- </ul>
- </li>
- <li>Else:
- <ul>
- <li>Return positive infinity.</li>
- </ul>
- </li>
- </ol>
- </li>
- </ol>
- <p>Examples:<br></p>
- <ul>
- <li>0.##E0 means a max of 3 significant digits.</li>
- <li>#.##E0 also means a max of 3 significant
- digits.</li>
- <li>#.0#E0 means a max of 2 significant digits.</li>
- <li>0E0 means a max of 1 significant digit.</li>
- <li>#E0 means infinite precision.</li>
- <li>###E0 means engineering notation with infinite
- precision.</li>
- </ul>
- </li>
- <li>Exponential patterns may not contain grouping
- separators.</li>
- </ul>
- <h3>3.5 <a name="sigdig" href="#sigdig" id="sigdig">Significant
- Digits</a></h3>
- <p>There are two ways of controlling how many digits are shows:
- (a) significant digits counts, or (b) integer and fraction
- digit counts. Integer and fraction digit counts are described
- above. When a formatter is using significant digits counts, it
- uses however many integer and fraction digits are required to
- display the specified number of significant digits. It may
- ignore min/max integer/fraction digits, or it may use them to
- the extent possible.</p>
- <blockquote>
- <table cellpadding="0" border="0">
- <caption>
- <a name="Significant_Digits_Examples" href=
- "#Significant_Digits_Examples" id=
- "Significant_Digits_Examples">Significant Digits
- Examples</a>
- </caption>
- <tr bgcolor="#CCCCFF">
- <th align="left">Pattern</th>
- <th align="left">Minimum significant digits</th>
- <th align="left">Maximum significant digits</th>
- <th align="left">Number</th>
- <th align="left">Output</th>
- </tr>
- <tr valign="top">
- <td><code>@@@</code></td>
- <td>3</td>
- <td>3</td>
- <td>12345</td>
- <td><code>12300</code></td>
- </tr>
- <tr valign="top" bgcolor="#EEEEFF">
- <td><code>@@@</code></td>
- <td>3</td>
- <td>3</td>
- <td>0.12345</td>
- <td><code>0.123</code></td>
- </tr>
- <tr valign="top">
- <td><code>@@##</code></td>
- <td>2</td>
- <td>4</td>
- <td>3.14159</td>
- <td><code>3.142</code></td>
- </tr>
- <tr valign="top" bgcolor="#EEEEFF">
- <td><code>@@##</code></td>
- <td>2</td>
- <td>4</td>
- <td>1.23004</td>
- <td><code>1.23</code></td>
- </tr>
- </table>
- </blockquote>
- <ul>
- <li>In order to enable significant digits formatting, use a
- pattern containing the <code>'@'</code> pattern character. In
- order to disable significant digits formatting, use a pattern
- that does not contain the <code>'@'</code> pattern
- character.</li>
- <li>Significant digit counts may be expressed using patterns
- that specify a minimum and maximum number of significant
- digits. These are indicated by the <code>'@'</code> and
- <code>'#'</code> characters. The minimum number of
- significant digits is the number of <code>'@'</code>
- characters. The maximum number of significant digits is the
- number of <code>'@'</code> characters plus the number of
- <code>'#'</code> characters following on the right. For
- example, the pattern <code>"@@@"</code> indicates exactly 3
- significant digits. The pattern <code>"@##"</code> indicates
- from 1 to 3 significant digits. Trailing zero digits to the
- right of the decimal separator are suppressed after the
- minimum number of significant digits have been shown. For
- example, the pattern <code>"@##"</code> formats the number
- 0.1203 as <code>"0.12"</code>.</li>
- <li>Implementations may forbid the use of significant digits
- in combination with min/max integer/fraction digits. In such
- a case, if a pattern uses significant digits, it may not
- contain a decimal separator, nor the <code>'0'</code> pattern
- character. Patterns such as <code>"@00"</code> or
- <code>"@.###"</code> would be disallowed.</li>
- <li>Any number of <code>'#'</code> characters may be
- prepended to the left of the leftmost <code>'@'</code>
- character. These have no effect on the minimum and maximum
- significant digits counts, but may be used to position
- grouping separators. For example, <code>"#,#@#"</code>
- indicates a minimum of one significant digits, a maximum of
- two significant digits, and a grouping size of three.</li>
- <li>The number of significant digits has no effect on
- parsing.</li>
- <li>Significant digits may be used together with exponential
- notation. Such patterns are equivalent to a normal
- exponential pattern with a minimum and maximum integer digit
- count of one, a minimum fraction digit count of <code>Minimum
- Significant Digits - 1</code>, and a maximum fraction digit
- count of <code>Maximum Significant Digits - 1</code>. For
- example, the pattern <code>"@@###E0"</code> is equivalent to
- <code>"0.0###E0"</code>.</li>
- </ul>
- <h3>3.6 <a name="Padding" href="#Padding" id=
- "Padding">Padding</a></h3>
- <p>Patterns support padding the result to a specific width. In
- a pattern the pad escape character, followed by a single pad
- character, causes padding to be parsed and formatted. The pad
- escape character is '*'. For example,
- <code>"$*x#,##0.00"</code> formats 123 to
- <code>"$xx123.00"</code> , and 1234 to <code>"$1,234.00"</code>
- .</p>
- <ul>
- <li>When padding is in effect, the width of the positive
- subpattern, including prefix and suffix, determines the
- format width. For example, in the pattern <code>"* #0
- o''clock"</code>, the format width is 10.</li>
- <li>Some parameters which usually do not matter have meaning
- when padding is used, because the pattern width is
- significant with padding. In the pattern "* ##,##,#,##0.##",
- the format width is 14. The initial characters "##,##," do
- not affect the grouping size or maximum integer digits, but
- they do affect the format width.</li>
- <li>Padding may be inserted at one of four locations: before
- the prefix, after the prefix, before the suffix, or after the
- suffix. No padding can be specified in any other location. If
- there is no prefix, before the prefix and after the prefix
- are equivalent, likewise for the suffix.</li>
- <li>When specified in a pattern, the code point immediately
- following the pad escape is the pad character. This may be
- any character, including a special pattern character. That
- is, the pad escape <em>escapes</em> the following character.
- If there is no character after the pad escape, then the
- pattern is illegal.</li>
- </ul>
- <h3>3.7 <a name="Rounding" href="#Rounding" id=
- "Rounding">Rounding</a></h3>
- <p>Patterns support rounding to a specific increment. For
- example, 1230 rounded to the nearest 50 is 1250.
- Mathematically, rounding to specific increments is performed by
- dividing by the increment, rounding to an integer, then
- multiplying by the increment. To take a more bizarre example,
- 1.234 rounded to the nearest 0.65 is 1.3, as follows:</p>
- <table border="1" cellpadding="0" cellspacing="0" style=
- "border-collapse: collapse">
- <!-- nocaption -->
- <tr>
- <th>Original:</th>
- <td>1.234</td>
- </tr>
- <tr>
- <th>Divide by increment (0.65):</th>
- <td>1.89846…</td>
- </tr>
- <tr>
- <th>Round:</th>
- <td>2</td>
- </tr>
- <tr>
- <th>Multiply by increment (0.65):</th>
- <td>1.3</td>
- </tr>
- </table>
- <p>To specify a rounding increment in a pattern, include the
- increment in the pattern itself. "#,#50" specifies a rounding
- increment of 50. "#,##0.05" specifies a rounding increment of
- 0.05.</p>
- <ul>
- <li>Rounding only affects the string produced by formatting.
- It does not affect parsing or change any numerical
- values.</li>
- <li>An implementation may allow the specification of a
- <em>rounding mode</em> to determine how values are rounded.
- In the absence of such choices, the default is to round
- "half-even", as described in IEEE arithmetic. That is, it
- rounds towards the "nearest neighbor" unless both neighbors
- are equidistant, in which case, it rounds towards the even
- neighbor. Behaves as for round "half-up" if the digit to the
- left of the discarded fraction is odd; behaves as for round
- "half-down" if it's even. Note that this is the rounding mode
- that minimizes cumulative error when applied repeatedly over
- a sequence of calculations.</li>
- <li>Some locales use rounding in their currency formats to
- reflect the smallest currency denomination.</li>
- <li>In a pattern, digits '1' through '9' specify rounding,
- but otherwise behave identically to digit '0'.</li>
- </ul>
- <h3>3.8 <a name="Quoting_Rules" href="#Quoting_Rules" id=
- "Quoting_Rules">Quoting Rules</a></h3>
- <blockquote>
- <p>Single quotes, (<b>'</b>), enclose bits of the pattern
- that should be treated literally. Inside a quoted string, two
- single quotes ('') are replaced with a single one ('). For
- example: <tt><u>'X '</u>#<u>' Q '</u></tt> -> <b>X 1939
- Q</b> (Literal strings <u>underlined</u>.)</p>
- </blockquote>
- <h2><a name="Currencies" href="#Currencies" id="Currencies">4
- Currencies</a></h2>
- <p class="dtd"><!ELEMENT currencies (alias | (default?,
- currency*, special*)) ><br>
- <!ELEMENT currency (alias | (((pattern+, displayName*,
- symbol*) | (displayName+, symbol*, pattern*) | (symbol+,
- pattern*))?, decimal*, group*, special*)) ><br>
- <!ELEMENT symbol ( #PCDATA ) ><br>
- <!ATTLIST symbol choice ( true | false ) #IMPLIED >
- <!-- deprecated --></p>
- <blockquote>
- <p><b>Note:</b> The term "pattern" appears twice in the
- above. The first is for consistency with all other cases of
- pattern + displayName; the second is for backwards
- compatibility.</p>
- </blockquote>
- <pre><currencies>
- <currency type="<span style="color: blue">USD</span>">
- <displayName><span style=
-"color: blue">Dollar</span></displayName>
- <symbol><span style=
-"color: blue">$</span></symbol>
- </currency>
- <currency type ="<span style="color: blue">JPY</span>">
- <displayName><span style=
-"color: blue">Yen</span></displayName>
- <symbol><span style=
-"color: blue">¥</span></symbol>
- </currency>
- <currency type="PTE">
- <displayName><span style=
-"color: blue">Escudo</span></displayName>
- <symbol><span style=
-"color: blue">$</span></symbol>
- </currency>
-</currencies></pre>
- <p>In formatting currencies, the currency number format is used
- with the appropriate symbol from <currencies>, according
- to the currency code. The <currencies> list can contain
- codes that are no longer in current use, such as PTE. The
- choice attribute has been deprecated.</p>
- <p>The count attribute distinguishes the different plural
- forms, such as in the following:</p>
- <pre><currencyFormats>
- <unitPattern count="other">{0} {1}</unitPattern>
- …
-<currencies></pre>
- <pre><currency type="ZWD">
- <displayName>Zimbabwe Dollar</displayName>
- <displayName count="one">Zimbabwe dollar</displayName>
- <displayName count="other">Zimbabwe dollars</displayName>
- <symbol>Z$</symbol>
-</currency></pre>
- <p>To format a particular currency value "ZWD" for a particular
- numeric value <em>n</em> using the (long) display name:</p>
- <ol>
- <li>If the numeric value is exactly 0 or 1, first see if
- there is a count with a matching explicit number (0 or 1). If
- so, use that string (see <a href=
- "#Explicit_0_1_rules">Explicit 0 and 1 rules</a>).</li>
- <li>Otherwise, determine the count value that corresponds to
- <em>n</em> using the rules in <i><a href=
- "#Language_Plural_Rules">Section 5 - Language Plural
- Rules</a></i></li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">Next, get
- the currency unitPattern.
- <ol>
- <li>Look for a unitPattern element that matches the count
- value, starting in the current locale and then following
- the locale fallback chain up to, but not including
- root.</li>
- <li>If no matching unitPattern element was found in the
- previous step, then look for a unitPattern element that
- matches count="other", starting in the current locale and
- then following the locale fallback chain up to root
- (which has a unitPattern element with count="other" for
- every unit type).</li>
- <li>The resulting unitPattern element indicates the
- appropriate positioning of the numeric value and the
- currency display name.</li>
- </ol>
- </li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">Next, get
- the displayName element for the currency.
- <ol>
- <li>Look for a displayName element that matches the count
- value, starting in the current locale and then following
- the locale fallback chain up to, but not including
- root.</li>
- <li>If no matching displayName element was found in the
- previous step, then look for a displayName element that
- matches count="other", starting in the current locale and
- then following the locale fallback chain up to, but not
- including root.</li>
- <li>If no matching displayName element was found in the
- previous step, then look for a displayName element that
- with no count, starting in the current locale and then
- following the locale fallback chain up to root.</li>
- <li>If there is no displayName element, use the currency
- code itself (for example, "ZWD").</li>
- </ol>
- </li>
- <li>Format the numeric value according to the locale. Use the
- locale’s <decimalFormats …> pattern, not the
- <currencyFormats> pattern that is used with the symbol
- (eg, Z$). As when formatting symbol currency values, reset
- the number of decimals according to the supplemental
- <currencyData> and use the currencyDecimal symbol if
- different from the decimal symbol.
- <ol>
- <li>The number of decimals should be overridable in an
- API, so that clients can choose between “2 US dollars”
- and “2.00 US dollars”.</li>
- </ol>
- </li>
- <li>Substitute the formatted numeric value for the {0} in the
- unitPattern, and the currency display name for the {1}.</li>
- </ol>
- <p>While for English this may seem overly complex, for some
- other languages different plural forms are used for different
- unit types; the plural forms for certain unit types may not use
- all of the plural-form tags defined for the language.</p>
- <p>For example, if the the currency is ZWD and the number is
- 1234, then the latter maps to count="other" for English. The
- unit pattern for that is "{0} {1}", and the display name is
- "Zimbabwe dollars". The final formatted number is then "1,234
- Zimbabwe dollars".</p>
- <p>When the currency symbol is substituted into a pattern,
- there may be some further modifications, according to the
- following.</p>
- <pre><currencySpacing>
- <beforeCurrency>
- <currencyMatch>[:^S:]</currencyMatch>
- <surroundingMatch>[:digit:]</surroundingMatch>
- <insertBetween> </insertBetween>
- </beforeCurrency>
- <afterCurrency>
- <currencyMatch>[:^S:]</currencyMatch>
- <surroundingMatch>[:digit:]</surroundingMatch>
- <insertBetween> </insertBetween>
- </afterCurrency>
-</currencySpacing>
-</pre>
- <p>This element controls whether additional characters are
- inserted on the boundary between the symbol and the pattern.
- For example, with the above <i>currencySpacing</i>, inserting
- the symbol "US$" into the pattern "#,##0.00¤" would result in
- an extra <i>no-break space</i> inserted before the symbol, for
- example, "#,##0.00 US$". The <i>beforeCurrency</i> element
- governs this case, since we are looking <i>before</i> the "¤"
- symbol. The <i>currencyMatch</i> is positive, since the "U" in
- "US$" is at the start of the currency symbol being substituted.
- The <i>surroundingMatch</i> is positive, since the character
- just before the "¤" will be a digit. Because these two
- conditions are true, the insertion is made.</p>
- <p>Conversely, look at the pattern "¤#,##0.00" with the symbol
- "US$". In this case, there is no insertion; the result is
- simply "US$#,##0.00". The <i>afterCurrency</i> element governs
- this case, since we are looking <i>after</i> the "¤" symbol.
- The surroundingMatch is positive, since the character just
- after the "¤" will be a digit. However, the currencyMatch is
- <b>not</b> positive, since the "$" in "US$" is at the end of
- the currency symbol being substituted. So the insertion is not
- made.</p>
- <p>For more information on the matching used in the
- currencyMatch and surroundingMatch elements, see the main
- document <i><a href="tr35.html#Unicode_Sets">Appendix E:
- Unicode Sets</a></i>.</p>
- <p>Currencies can also contain optional grouping, decimal data,
- and pattern elements. This data is inherited from the
- <symbols> in the same locale data (if not present in the
- chain up to root), so only the <i>differing</i> data will be
- present. See the main document <i>Section 4.1 <a href=
- "tr35.html#Multiple_Inheritance">Multiple
- Inheritance</a></i>.</p>
- <blockquote>
- <p class="note"><b>Note:</b> <i>Currency values should
- <b>never</b> be interchanged without a known currency code.
- You never want the number 3.5 interpreted as $3.50 by one
- user and €3.50 by another.</i> Locale data contains
- localization information for currencies, not a currency value
- for a country. A currency amount logically consists of a
- numeric value, plus an accompanying currency code (or
- equivalent). The currency code may be implicit in a protocol,
- such as where USD is implicit. But if the raw numeric value
- is transmitted without any context, then it has no definitive
- interpretation.</p>
- </blockquote>
- <p class="note">Notice that the currency code is completely
- independent of the end-user's language or locale. For example,
- BGN is the code for Bulgarian Lev. A currency amount of
- <BGN, 1.23456×10³> would be localized for a Bulgarian
- user into "1 234,56 лв." (using Cyrillic letters). For an
- English user it would be localized into the string "BGN
- 1,234.56" The end-user's language is needed for doing this last
- localization step; but that language is completely orthogonal
- to the currency code needed in the data. After all, the same
- English user could be working with dozens of currencies. Notice
- also that the currency code is also independent of whether
- currency values are inter-converted, which requires more
- interesting financial processing: the rate of conversion may
- depend on a variety of factors.</p>
- <p class="note">Thus logically speaking, once a currency amount
- is entered into a system, it should be logically accompanied by
- a currency code in all processing. This currency code is
- independent of whatever the user's original locale was. Only in
- badly-designed software is the currency code (or equivalent)
- not present, so that the software has to "guess" at the
- currency code based on the user's locale.</p>
- <blockquote>
- <p class="note"><b>Note:</b> The number of decimal places
- <b>and</b> the rounding for each currency is not
- locale-specific data, and is not contained in the Locale Data
- Markup Language format. Those values override whatever is
- given in the currency numberFormat. For more information, see
- <i><a href="#Supplemental_Currency_Data">Supplemental
- Currency Data</a></i>.</p>
- </blockquote>
- <p>For background information on currency names, see [<a href=
- "tr35.html#CurrencyInfo">CurrencyInfo</a>].</p>
- <h3>4.1 <a name="Supplemental_Currency_Data" href=
- "#Supplemental_Currency_Data" id=
- "Supplemental_Currency_Data">Supplemental Currency
- Data</a></h3>
- <p class="dtd"><!ELEMENT currencyData ( fractions*, region+
- ) ><br>
- <!ELEMENT fractions ( info+ ) ><br>
- <br>
- <!ELEMENT info EMPTY ><br>
- <!ATTLIST info iso4217 NMTOKEN #REQUIRED ><br>
- <!ATTLIST info digits NMTOKEN #IMPLIED ><br>
- <!ATTLIST info rounding NMTOKEN #IMPLIED ><br>
- <!ATTLIST info cashDigits NMTOKEN #IMPLIED ><br>
- <!ATTLIST info cashRounding NMTOKEN #IMPLIED ><br>
- <br>
- <!ELEMENT region ( currency* ) ><br>
- <!ATTLIST region iso3166 NMTOKEN #REQUIRED ><br>
- <br>
- <!ELEMENT currency ( alternate* ) ><br>
- <!ATTLIST currency from NMTOKEN #IMPLIED ><br>
- <!ATTLIST currency to NMTOKEN #IMPLIED ><br>
- <!ATTLIST currency iso4217 NMTOKEN #REQUIRED ><br>
- <!ATTLIST currency tender ( true | false ) #IMPLIED ></p>
- <p>Each currencyData element contains one fractions element
- followed by one or more region elements. Here is an example for
- illustration.</p>
- <pre><supplementalData>
- <currencyData>
- <fractions>
- …
- <info iso4217="CHF" digits="2" rounding="5"/>
- …
- <info iso4217="<span style=
-"color: blue">ITL</span>" digits="<span style=
-"color: blue">0</span>"/>
- …
- </fractions>
- …
- <region iso3166="IT">
- <currency iso4217="EUR" from="1999-01-01"/>
- <currency iso4217="ITL" from="1862-8-24" to="2002-02-28"/>
- </region>
- …
- <region iso3166="CS">
- <currency iso4217="EUR" from="2003-02-04"/>
- <currency iso4217="CSD" from="2002-05-15"/>
- <currency iso4217="YUM" from="1994-01-24" to="2002-05-15"/>
- </region>
- …
- </currencyData>
-…
-</supplementalData></pre>
- <p>The fractions element contains any number of info elements,
- with the following attributes:</p>
- <ul>
- <li><b>iso4217:</b> the ISO 4217 code for the currency in
- question. If a particular currency does not occur in the
- fractions list, then it is given the defaults listed for the
- next two attributes.</li>
- <li><b>digits:</b> the minimum and maximum number of decimal
- digits normally formatted. The default is 2. For example, in
- the en_US locale with the default value of 2 digits, the
- value 1 USD would format as "$1.00", and the value 1.123 USD
- would format as → "$1.12".</li>
- <li><b>rounding:</b> the rounding increment, in units of
- 10<sup>-digits</sup>. The default is 0, which means no
- rounding is to be done. Therefore, rounding=0 and rounding=1
- have identical behavior. Thus with fraction digits of 2 and
- rounding increment of 5, numeric values are rounded to the
- nearest 0.05 units in formatting. With fraction digits of 0
- and rounding increment of 50, numeric values are rounded to
- the nearest 50.</li>
- <li><b>cashDigits:</b> the number of decimal digits to be
- used when formatting quantities used in cash transactions (as
- opposed to a quantity that would appear in a more formal
- setting, such as on a bank statement). If absent, the value
- of "digits" should be used as a default.</li>
- <li><b>cashRounding:</b> the cash rounding increment, in
- units of 10<sup>-cashDigits</sup>. The default is 0, which
- means no rounding is to be done; and as with rounding, this
- has the same effect as cashRounding="1". This is the rounding
- increment to be used when formatting quantities used in cash
- transactions (as opposed to a quantity that would appear in a
- more formal setting, such as on a bank statement). If absent,
- the value of "rounding" should be used as a default.</li>
- </ul>
- <p>For example, the following line</p>
- <pre>
- <info iso4217="CZK" digits="2" rounding="0"/></pre>
- <p>should cause the value 2.006 to be displayed as “2.01”, not
- “2.00”.</p>
- <p>Each region element contains one attribute:</p>
- <ul>
- <li><b>iso3166:</b> the ISO 3166 code for the region in
- question. The special value <i>XXX</i> can be used to
- indicate that the region has no valid currency or that the
- circumstances are unknown (usually used in conjunction with
- <i>before</i>, as described below).</li>
- </ul>
- <p>And can have any number of currency elements, with the
- ordered subelements.</p>
- <pre> <region iso3166="IT"> <!-- Italy -->
- <currency iso4217="EUR" from="2002-01-01"/>
- <currency iso4217="ITL" to="2001-12-31"/>
- </region></pre>
- <ul>
- <li><b>iso4217:</b> the ISO 4217 code for the currency in
- question. Note that some additional codes that were in
- widespread usage are included, others such as GHP are not
- included because they were never used.</li>
- <li><b>from:</b> the currency was valid from to the datetime
- indicated by the value. See the main document <i>Section
- 5.2.1 <a href="tr35.html#Date_Ranges">Dates and Date
- Ranges</a></i> .</li>
- <li><b>to:</b> the currency was valid up to the datetime
- indicated by the value of <i>before</i>. See the main
- document <i>Section 5.2.1 <a href=
- "tr35.html#Date_Ranges">Dates and Date Ranges</a></i> .</li>
- <li>
- <p><b>tender:</b> indicates whether or not the ISO currency
- code represents a currency that was or is legal tender in
- some country. The default is "true". Certain ISO codes
- represent things like financial instruments or precious
- metals, and do not represent normally interchanged
- currencies.</p>
- </li>
- </ul>
- <p>That is, each currency element will list an interval in
- which it was valid. The <i>ordering</i> of the elements in the
- list tells us which was the primary currency during any period
- in time. Here is an example of such an overlap:</p>
- <pre><currency iso4217="CSD" to="2002-05-15"/>
-<currency iso4217="YUD" from="1994-01-24" to="2002-05-15"/>
-<currency iso4217="YUN" from="1994-01-01" to="1994-07-22"/></pre>
- <p>The <i>from</i> element is limited by the fact that ISO 4217
- does not go very far back in time, so there may be no ISO code
- for the previous currency.</p>
- <p>Currencies change relatively frequently. There are different
- types of changes:</p>
- <ol>
- <li>YU=>CS (name change)</li>
- <li>CS=>RS+ME (split, different names)</li>
- <li>SD=>SD+SS (split, same name for one // South Sudan
- splits from Sudan)</li>
- <li>DE+DD=>DE (Union, reuses one name // East Germany
- unifies with Germany)</li>
- </ol>
- <p>The
- <a href="https://unstats.un.org/unsd/methodology/m49/">UN
- Information</a> is used to determine dates due to country
- changes.</p><!-- Note: This moved from https://unstats.un.org/unsd/methods/m49/m49chang.htm#ftnq and the UN site now redirects to the above page. -->
- <p>When a code is no longer in use, it is terminated (see #1,
- #2, #4, #5)</p>
- <blockquote>
- <p>Example:</p>
- <ul>
- <li><currency iso4217="EUR" from="2003-02-04"
- to="2006-06-03"/></li>
- </ul>
- </blockquote>
- <p>When codes split, each of the new codes inherits (see #2,
- #3) the previous data. However, some modifications can be made
- if it is clear that currencies were only in use in one of the
- parts.</p>
- <p>When codes merge, the data is copied from the most populous
- part.</p>
- <blockquote>
- <p>Example. When CS split into RS and ME:</p>
- <ul>
- <li>RS & ME copy the former CS, except that the line
- for EUR is dropped from RS</li>
- <li>CS now terminates on Jun 3, 2006 (following the UN
- info)</li>
- </ul>
- </blockquote>
- <h2><a name="Language_Plural_Rules" href=
- "#Language_Plural_Rules" id="Language_Plural_Rules">5 Language
- Plural Rules</a></h2>
- <p class="dtd"><!ELEMENT plurals (pluralRules*,
- pluralRanges*) ><br>
- <!ATTLIST plurals type ( ordinal | cardinal ) #IMPLIED >
- <!-- default is cardinal --><br>
- <br>
- <!ELEMENT pluralRules (pluralRule*) ><br>
- <!ATTLIST pluralRules locales NMTOKENS #REQUIRED ><br>
- <br>
- <!ELEMENT pluralRule ( #PCDATA ) ><br>
- <!ATTLIST pluralRule count (zero | one | two | few | many |
- other) #REQUIRED ></p>
- <p>The plural categories are used to format messages with
- numeric placeholders, expressed as decimal numbers. The
- fundamental rule for determining plural categories is the
- existence of minimal pairs: whenever two different numbers may
- require different versions of the same message, then the
- numbers have different plural categories.</p>
- <p>This happens even if nouns are invariant; even if all
- English nouns were invariant (like “sheep”), English would
- still require 2 plural categories because of subject-verb
- agreement, and pronoun agreement. For example:</p>
- <ol>
- <li>1 sheep <strong>is</strong> here. Do you want to buy
- <strong>it</strong>?</li>
- <li>2 sheep <strong>are</strong> here. Do you want to buy
- <strong>them</strong>?</li>
- </ol>
- <p>For more information, see <a href=
- "http://cldr.unicode.org/index/cldr-spec/plural-rules#TOC-Determining-Plural-Categories">
- Determining-Plural-Categories</a>.</p>
- <p>English does not have a separate plural category for “zero”,
- because it does not require a different message for “0”. For
- example, the same message can be used below, with just the
- numeric placeholder changing.</p>
- <ol>
- <li>
- <p>You have 3 friends online.</p>
- </li>
- <li>
- <p>You have 0 friends online.</p>
- </li>
- </ol>
- <p>However, across many languages it is commonly more natural
- to express "0" messages with a negative (“None of your friends
- are online.”) and "1" messages also with an alternate form “You
- have a friend online.”. Thus pluralized message APIs should
- also offer the ability to specify at least the 0 and 1 cases
- explicitly; developers can use that ability whenever these
- values might occur in a placeholder.</p>
- <p>The CLDR plural rules are not expected to cover all cases.
- For example, strictly speaking, there could be more plural and
- ordinal forms for English. Formally, we have a different plural
- form where a change in digits forces a change in the rest of
- the sentence. There is an edge case in English because of the
- behavior of "a/an".</p>
- <p>For example, in changing from 3 to 8:</p>
- <ul>
- <li>"a 3rd of a loaf" should result in "an 8th of a loaf",
- not "a 8th of a loaf"</li>
- <li>"a 3 foot stick" should result in "an 8 foot stick", not
- "a 8 foot stick"</li>
- </ul>
- <p>So numbers of the following forms could have a special
- plural category and special ordinal category: 8(X), 11(X),
- 18(X), 8x(X), where x is 0..9 and the optional X is 00, 000,
- 00000, and so on.</p>
- <p>On the other hand, the above constructions are relatively
- rare in messages constructed using numeric placeholders, so the
- disruption for implementations currently using CLDR plural
- categories wouldn't be worth the small gain.</p>
- <p>This section defines the types of plural forms that exist in
- a language—namely, the cardinal and ordinal plural forms.
- Cardinal plural forms express units such as time, currency or
- distance, used in conjunction with a number expressed in
- decimal digits (i.e. "2", not "two", and not an indefinite
- number such as "some" or "many"). Ordinal plural forms denote
- the order of items in a set and are always integers. For
- example, English has two forms for cardinals:</p>
- <ul>
- <li>form "one": 1 day</li>
- <li>form "other": 0 days, 2 days, 10 days, 0.3 days</li>
- </ul>
- <p>and four forms for ordinals:</p>
- <ul>
- <li>form "one": 1st floor, 21st floor, 101st floor</li>
- <li>form "two": 2nd floor, 22nd floor, 102nd floor</li>
- <li>form "few": 3rd floor, 23rd floor, 103rd floor</li>
- <li>form "other": 4th floor, 11th floor, 96th floor</li>
- </ul>
- <p>Other languages may have additional forms or only one form
- for each type of plural. CLDR provides the following tags for
- designating the various plural forms of a language; for a given
- language, only the tags necessary for that language are
- defined, along with the specific numeric ranges covered by each
- tag (for example, the plural form "few" may be used for the
- numeric range 2–4 in one language and 3–9 in another):</p>
- <ul>
- <li>zero (see also plural case “0”, described in <a href=
- "#Explicit_0_1_rules">Explicit 0 and 1 rules</a>)</li>
- <li>one (see also plural case “1”, described in <a href=
- "#Explicit_0_1_rules">Explicit 0 and 1 rules</a>)</li>
- <li>two</li>
- <li>few</li>
- <li>many</li>
- </ul>
- <p>In addition, an "other" tag is always implicitly defined to
- cover the forms not explicitly designated by the tags defined
- for a language. This "other" tag is also used for languages
- that only have a single form (in which case no plural-form tags
- are explicitly defined for the language). For a more complex
- example, consider the cardinal rules for Russian and certain
- other languages:</p>
- <pre><pluralRules locales="hr ru sr uk">
- <pluralRules count="one"><span style=
-"color: blue">n mod 10 is 1 and n mod 100 is not 11</span></pluralRule>
- <pluralRules count="few"><span style=
-"color: blue">n mod 10 in 2..4 and n mod 100 not in 12..14</span></pluralRule>
-</pluralRules></pre>
- <p>These rules specify that Russian has a "one" form (for 1,
- 21, 31, 41, 51, …), a "few" form (for 2–4, 22–24, 32–34, …),
- and implicitly an "other" form (for everything else: 0, 5–20,
- 25–30, 35–40, …, decimals). Russian does not need additional
- separate forms for zero, two, or many, so these are not
- defined.</p>
- <p>A source number represents the visual appearance of the digits of the result. In text, it can be represented by the EBNF for decimalValue. Note that the same double number can be represented by multiple source numbers. For example, "1.0" and "1.00" are different source numbers, but there is only one double number that they correspond to: 1.0d == 1.00d. As another example, 1e3d == 1000d, but the source numbers "1e3" and "1000" are different, and can have different plural categories. So the input to the plural rules carries more information than a computer double. The plural category for negative numbers is calculated
- according to the absolute value of the source number, and leading integer digits don't have any effect on the plural category calculation. (This may change
- in the future, if we find languages that have different
- behavior.)</p>
- <p>Plural categories may also differ according to the visible
- decimals. For example, here are some of the behaviors exhibited
- by different languages:</p>
- <div dir="ltr">
- <table>
- <!-- nocaption -->
- <tr>
- <th>Behavior</th>
- <th>Description</th>
- <th>Example</th>
- </tr>
- <tr>
- <td>Base</td>
- <td>The fractions are ignored; the category is the same
- as the category of the integer.</td>
- <td>1.13 has the same plural category as 1.</td>
- </tr>
- <tr>
- <td>Separate</td>
- <td>All fractions by value are in one category (typically
- ‘other’ = ‘plural’).</td>
- <td>1.01 gets the same class as 9;<br>
- 1.00 gets the same category as 1.</td>
- </tr>
- <tr>
- <td>Visible</td>
- <td>All visible fractions are in one category (typically
- ‘other’ = ‘plural).</td>
- <td>1.00, 1.01, 3.5 all get the same category.</td>
- </tr>
- <tr>
- <td>Digits</td>
- <td>The visible fraction determines the category.</td>
- <td>1.13 gets the same class as 13.</td>
- </tr>
- </table>
- </div><br>
- <p>There are also variants of the above: for example, short
- fractions may have the Digits behavior, but longer fractions
- may just look at the final digit of the fraction.</p>
- <h4><a name="Explicit_0_1_rules" href="#Explicit_0_1_rules" id=
- "Explicit_0_1_rules">Explicit 0 and 1 rules</a></h4>
- <p>Some types of CLDR data (such as <a href=
- "tr35-general.html#Unit_Elements">unitPatterns</a> and <a href=
- "#Currencies">currency displayNames</a>) allow specification of
- plural rules for explicit cases “0” and “1”, in addition to the
- language-specific plural cases specified above: “zero”, “one”,
- “two” ... “other”. For the language-specific plural rules:</p>
- <ul>
- <li>The rules depend on language; for a given language, only
- a subset of the cases may be defined. For example, English
- only defines “one” and “other”, cases like “two” and “few”
- cannot be used in plurals for English CLDR items.</li>
- <li>Each plural case may cover multiple numeric values, and
- may depend on the formatting of those values. For example, in
- French the “one” case covers 0.0 through 1.99.</li>
- <li>The “one” case, if defined, includes at least some
- formatted forms of the numeric value 1; the “zero” case, if
- defined, includes at least some formatted forms of the
- numeric value 0.</li>
- </ul>
- <p>By contrast, for the explicit cases “0” and “1”:</p>
- <ul>
- <li>The explicit “0” and “1” cases are not defined by
- language-specific rules, and are available in any language
- for the CLDR data items that accept them.</li>
- <li>The explicit “0” and “1” cases apply to the exact numeric
- values 0 and 1 respectively. These cases are typically used
- for plurals of items that do not have fractional value, like
- books or files.</li>
- <li>The explicit “0” and “1” cases have precedence over the
- “zero” and “one” cases. For example, if for a particular
- element CLDR data includes values for both the “1” and “one”
- cases, then the “1” value is used for numeric values of
- exactly 1, while the “one” value is used for any other
- formatted numeric values matching the “one” plural rule for
- the language.</li>
- </ul>
- <p>Usage example: In English (which only defines
- language-specific rules for “one” and “other”) this can be used
- to have special behavior for 0:</p>
- <ul>
- <li>count=“0”: no books</li>
- <li>count=“one”: {0} book, e.g. “1 book”</li>
- <li>count=“other”: {0} books, e.g. “3 books”</li>
- </ul>
- <h3>5.1 <a name="Plural_rules_syntax" href=
- "#Plural_rules_syntax" id="Plural_rules_syntax">Plural rules
- syntax</a></h3>
- <p>The xml value for each pluralRule is a <em>condition</em>
- with a boolean result that specifies whether that rule (i.e.
- that plural form) applies to a given numeric value <em>n</em>,
- where n can be expressed as a decimal fraction or with compact decimal formatting, denoted by a special notation in the syntax, e.g., “1.2c6” for “1.2M”. Clients of CLDR
- may express all the rules for a locale using the following
- syntax:</p>
- <pre>
-rules = rule (';' rule)*
-rule = keyword ':' condition samples
- | 'other' ':' samples
-keyword = [a-z]+
-keyword = [a-z]+
- </pre>
- <p>In CLDR, the keyword is the attribute value of 'count'.
- Those values in CLDR are currently limited to just what is in
- the DTD, but clients may support other values.</p>
- <p>The conditions themselves have the following syntax.</p>
- <pre>condition = and_condition ('or' and_condition)*
-samples = ('@integer' sampleList)?
- ('@decimal' sampleList)?
-and_condition = relation ('and' relation)*
-relation = is_relation | in_relation | within_relation
-is_relation = expr 'is' ('not')? value
-in_relation = expr (('not')? 'in' | '=' | '!=') range_list
-within_relation = expr ('not')? 'within' range_list
-expr = operand (('mod' | '%') value)?
-operand = 'n' | 'i' | 'f' | 't' | 'v' | 'w' | 'c' | 'e'
-range_list = (range | value) (',' range_list)*
-range = value'..'value
-value = digit+
-sampleList = sampleRange (',' sampleRange)* (',' ('…'|'...'))?
-sampleRange = sampleValue ('~' sampleValue)?
-sampleValue = value ('.' digit+)? ([ce] digitPos digit+)?
-digit = [0-9]
-digitPos = [1-9]
- </pre>
- <ul>
- <li>Whitespace (defined as Unicode <a href=
- "https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5Cp%7BPattern_White_Space%7D">
- Pattern_White_Space</a>) can occur between or around any of
- the above tokens, with the exception of the tokens in value,
- digit, and decimalValue.</li>
- <li>In the syntax, <strong>and</strong> binds more tightly
- than <strong>or</strong>. So <strong>X or Y and Z</strong> is
- interpreted as <strong>(X or (Y and Z))</strong>.</li>
- <li>Each plural rule must be written to be self-contained,
- and not depend on the ordering. Thus rules must be mutually
- exclusive; for a given numeric value, only one rule can apply
- (i.e., the condition can only be true for one of the
- pluralRule elements. Each keyword can have at most one
- condition. The 'other' keyword must have an empty condition:
- it is only present for samples.</li>
- <li>The samples should be included, since they are used by
- client software for samples and determining whether the
- keyword has finite values or not.</li>
- <li>The 'other' keyword must have no condition, and all other
- keywords must have a condition.</li>
- </ul>
- <h4><a name="Operands" href="#Operands" id="Operands">5.1.1
- Operands</a></h4>
- <p>The operands correspond to features of the source number, and have the following meanings. </p>
- <div dir="ltr">
- <table class='simple'>
- <caption>
- <a name="Plural_Operand_Meanings" href=
- "#Plural_Operand_Meanings" id=
- "Plural_Operand_Meanings">Plural Operand Meanings</a>
- </caption>
- <tr>
- <th>Symbol</th>
- <th>Value</th>
- </tr>
- <tr>
- <td>n</td>
- <td>absolute value of the source number.</td>
- </tr>
- <tr>
- <td>i</td>
- <td>integer digits of n.</td>
- </tr>
- <tr>
- <td>v</td>
- <td>number of visible fraction digits in n, <em>with</em>
- trailing zeros.*</td>
- </tr>
- <tr>
- <td>w</td>
- <td>number of visible fraction digits in n,
- <em>without</em> trailing zeros.*</td>
- </tr>
- <tr>
- <td>f</td>
- <td>visible fraction digits in n, <em>with</em>
- trailing zeros.*</td>
- </tr>
- <tr>
- <td>t</td>
- <td>visible fraction digits in n, <em>without</em>
- trailing zeros.*</td>
- </tr>
- <tr>
- <td>c</td>
- <td>compact decimal exponent value: exponent of the power of 10 used in compact decimal formatting.</td>
- </tr>
- <tr>
- <td>e</td>
- <td>currently, synonym for ‘c’. however, may be redefined in the future.</td>
- </tr>
- </table>
- </div>
- <p>* If there is a compact decimal exponent value (‘c’), then the f, t, v, and w values are computed <em>after</em> shifting the decimal point in the original by the ‘c’ value. So for 1.2c3, the f, t, v, and w values are the same as those of 1200: i=1200 and f=0. Similarly, for 1.2005c3 has i=1200 and f=5 (corresponding to 1200.5).</p>
- <div dir="ltr">
- <table class='simple' width='30em'>
- <caption>
- <a name="Plural_Operand_Examples" href=
- "#Plural_Operand_Examples" id=
- "Plural_Operand_Examples">Plural Operand Examples</a>
- </caption>
-<tr>
-<th style='text-align: right'>source</th>
- <th style='text-align: right'>n</th>
- <th style='text-align: right'>i</th>
- <th style='text-align: right'>v</th>
- <th style='text-align: right'>w</th>
- <th style='text-align: right'>f</th>
- <th style='text-align: right'>t</th>
- <th style='text-align: right'>e</th>
-</tr>
-<tr>
-<td style='text-align: right'>1</td>
- <td style='text-align:right'>1</td>
- <td style='text-align: right'>1</td>
- <td style='text-align: right'>0</td>
- <td style='text-align: right'>0</td>
- <td style='text-align: right'>0</td>
- <td style='text-align: right'>0</td>
- <td style='text-align:right'>0</td>
-</tr>
-<tr>
-<td style='text-align: right'>1.0</td>
- <td style='text-align:right'>1</td>
- <td style='text-align: right'>1</td>
- <td style='text-align: right'>1</td>
- <td style='text-align: right'>0</td>
- <td style='text-align: right'>0</td>
- <td style='text-align: right'>0</td>
- <td style='text-align:right'>0</td>
-</tr>
-<tr>
-<td style='text-align: right'>1.00</td>
- <td style='text-align:right'>1</td>
- <td style='text-align: right'>1</td>
- <td style='text-align: right'>2</td>
- <td style='text-align: right'>0</td>
- <td style='text-align: right'>0</td>
- <td style='text-align: right'>0</td>
- <td style='text-align:right'>0</td>
-</tr>
-<tr>
-<td style='text-align: right'>1.3</td>
- <td style='text-align:right'>1.3</td>
- <td style='text-align: right'>1</td>
- <td style='text-align: right'>1</td>
- <td style='text-align: right'>1</td>
- <td style='text-align: right'>3</td>
- <td style='text-align: right'>3</td>
- <td style='text-align:right'>0</td>
-</tr>
-<tr>
-<td style='text-align: right'>1.30</td>
- <td style='text-align:right'>1.3</td>
- <td style='text-align: right'>1</td>
- <td style='text-align: right'>2</td>
- <td style='text-align: right'>1</td>
- <td style='text-align: right'>30</td>
- <td style='text-align: right'>3</td>
- <td style='text-align:right'>0</td>
-</tr>
-<tr>
-<td style='text-align: right'>1.03</td>
- <td style='text-align:right'>1.03</td>
- <td style='text-align: right'>1</td>
- <td style='text-align: right'>2</td>
- <td style='text-align: right'>2</td>
- <td style='text-align: right'>3</td>
- <td style='text-align: right'>3</td>
- <td style='text-align:right'>0</td>
-</tr>
-<tr>
-<td style='text-align: right'>1.230</td>
- <td style='text-align:right'>1.23</td>
- <td style='text-align: right'>1</td>
- <td style='text-align: right'>3</td>
- <td style='text-align: right'>2</td>
- <td style='text-align: right'>230</td>
- <td style='text-align: right'>23</td>
- <td style='text-align:right'>0</td>
-</tr>
-<tr>
-<td style='text-align:right'>1200000</td>
- <td style='text-align:right'>1200000</td>
- <td style='text-align:right'>1200000</td>
- <td style='text-align:right'>0</td>
- <td style='text-align:right'>0</td>
- <td style='text-align:right'>0</td>
- <td style='text-align:right'>0</td>
- <td style='text-align:right'>0</td>
-</tr>
-<tr>
-<td style='text-align:right'>1.2c6</td>
- <td style='text-align:right'>1200000</td>
- <td style='text-align:right'>1200000</td>
- <td style='text-align:right'>0</td>
- <td style='text-align:right'>0</td>
- <td style='text-align:right'>0</td>
- <td style='text-align:right'>0</td>
- <td style='text-align:right'>6</td>
-</tr>
-<tr>
-<td style='text-align:right'>123c6</td>
- <td style='text-align:right'>123000000</td>
- <td style='text-align:right'>123000000</td>
- <td style='text-align:right'>0</td>
- <td style='text-align:right'>0</td>
- <td style='text-align:right'>0</td>
- <td style='text-align:right'>0</td>
- <td style='text-align:right'>6</td>
-</tr>
-<tr>
-<td style='text-align:right'>123c5</td>
- <td style='text-align:right'>12300000</td>
- <td style='text-align:right'>12300000</td>
- <td style='text-align:right'>0</td>
- <td style='text-align:right'>0</td>
- <td style='text-align:right'>0</td>
- <td style='text-align:right'>0</td>
- <td style='text-align:right'>5</td>
-</tr>
-<tr>
-<td style='text-align:right'>1200.50</td>
- <td style='text-align:right'>1200.5</td>
- <td style='text-align:right'>1200</td>
- <td style='text-align:right'>2</td>
- <td style='text-align:right'>1</td>
- <td style='text-align:right'>50</td>
- <td style='text-align:right'>5</td>
- <td style='text-align:right'>0</td>
-</tr>
-<tr>
-<td style='text-align:right'>1.20050c3</td>
- <td style='text-align:right'>1200.5</td>
- <td style='text-align:right'>1200</td>
- <td style='text-align:right'>2</td>
- <td style='text-align:right'>1</td>
- <td style='text-align:right'>50</td>
- <td style='text-align:right'>5</td>
- <td style='text-align:right'>3</td>
-</tr>
- </table>
- </div><br>
- <h4><a name="Relations" href="#Relations" id="Relations">5.1.2
- Relations</a></h4>
- <p>The positive relations are of the format <strong>x =
- y</strong> and <strong>x = y mod z</strong>. The
- <strong>y</strong> value can be a comma-separated list, such as
- <strong>n = 3, 5, 7..15</strong>, and is treated as if each
- relation were expanded into an OR statement. The range value
- <strong>a..b</strong> is equivalent to listing all the
- <em><strong>integers</strong></em> between <strong>a</strong>
- and <strong>b</strong>, inclusive. When <strong>!=</strong> is
- used, it means the entire relation is negated.</p>
- <table class='simple'>
- <caption>
- <a name="Relations_Examples" href="#Relations_Examples" id=
- "Relations_Examples">Relations Examples</a>
- </caption>
- <tr>
- <th>Expression</th>
- <th>Meaning</th>
- </tr>
- <tr>
- <td>x = 2..4, 15</td>
- <td>x = 2 OR x = 3 OR x = 4 OR x = 15</td>
- </tr>
- <tr>
- <td>x != 2..4, 15</td>
- <td>NOT (x = 2 OR x = 3 OR x = 4 OR x = 15)</td>
- </tr>
- </table><br>
- <table class='simple'>
- <!-- nocaption -->
- <tr>
- <th>Expression</th>
- <th>Value</th>
- </tr>
- <tr>
- <td>3.5 = 2..4, 15</td>
- <td>false</td>
- </tr>
- <tr>
- <td nowrap>3.5 != 2..4, 15</td>
- <td>true</td>
- </tr>
- <tr>
- <td>3 = 2..4, 15</td>
- <td>true</td>
- </tr>
- <tr>
- <td>3 != 2..4, 15</td>
- <td>false</td>
- </tr>
- </table>
- <blockquote>
- <p>The old keywords 'mod', 'in', 'is', and 'within' are
- present only for backwards compatibility. The preferred form
- is to use '%' for modulo, and '=' or '!=' for the relations,
- with the operand 'i' instead of within. (The difference
- between <strong>in</strong> and <strong>within</strong> is
- that <strong>in</strong> only includes integers in the
- specified range, while <strong>within</strong> includes all
- values.)</p>
- </blockquote>
- <p dir="ltr">The modulus (% or <strong>mod</strong>) is a
- remainder operation as defined in Java; for example, where
- <strong>n</strong> = 4.3 the result of <strong>n mod 3</strong>
- is 1.3.</p>
- <p>The values of relations are defined according to the operand
- as follows. Importantly, the results may depend on the visible
- decimals in the source, including trailing zeros, and the compact decimal exponent.</p>
- <ol>
- <li>Let the base value BV be computed from absolute value of
- the original source number according to the operand.</li>
- <li>Let R be false when the comparison contains ‘not’.</li>
- <li>Let R be !R if the comparison contains ‘within’ and
- the source number is not an integer.</li>
- <li>If there is a module value MV, let BV be BV -
- floor(BV/MV).</li>
- <li>Let CR be the list of comparison ranges, normalized that
- overlapping ranges are merged. Single values in the rule are
- represented by a range with identical <start<sub>i</sub>,
- end<sub>i</sub>> values.</li>
- <li>Iterate through CR:
- <ul>
- <li>if start<sub>i</sub> ≤ BV ≤ end<sub>i</sub> then
- return R.</li>
- </ul>
- </li>
- <li>Otherwise return !R.</li>
- </ol>
- <table border="1">
- <caption>
- <a name="Plural_Rules_Examples" href=
- "#Plural_Rules_Examples" id="Plural_Rules_Examples">Plural
- Rules Examples</a>
- </caption>
- <tr>
- <th>Rules</th>
- <th>Comments</th>
- </tr>
- <tr>
- <td nowrap>one: n = 1<br>
- few: n = 2..4</td>
- <td>This defines two rules, for 'one' and 'few'. The
- condition for 'one' is "n = 1" which means that the number
- must be equal to 1 for this condition to pass. The
- condition for 'few' is "n = 2..4" which means that the
- number must be between 2 and 4 inclusive for this condition
- to pass. All other numbers are assigned the keyword 'other'
- by the default rule.</td>
- </tr>
- <tr>
- <td nowrap>zero: n = 0 or n != 1 and n mod 100 = 1..19<br>
- one: n = 1</td>
- <td>Each rule must not overlap with other rules. Also note
- that a modulus is applied to n in the last rule, thus its
- condition holds for 119, 219, 319…</td>
- </tr>
- <tr>
- <td nowrap>one: n = 1<br>
- few: n mod 10 = 2..4 and n mod 100 != 12..14</td>
- <td>This illustrates conjunction and negation. The
- condition for 'few' has two parts, both of which must be
- met: "n mod 10 = 2..4" and "n mod 100 != 12..14". The first
- part applies a modulus to n before the test as in the
- previous example. The second part applies a different
- modulus and also uses negation, thus it matches all numbers
- <em>not</em> in 12, 13, 14, 112, 113, 114, 212, 213,
- 214…</td>
- </tr>
- </table>
- <h4><a name="Samples" href="#Samples" id="Samples">5.1.3
- Samples</a></h4>
- <p>Samples are provided if sample indicator (@integer or
- @decimal) is present on any rule. (CLDR always provides
- samples.)</p>
- <p>Where samples are provided, the absence of one of the sample
- indicators indicates that no numeric values can satisify that
- rule. For example, the rule "i = 1 and v = 0" can only have
- integer samples, so @decimal must not occur. The @integer samples have no visible fraction digits, while @decimal samples have visible fraction digits; both can have compact decimal exponent values (if the 'e' operand occurs).</p>
- <p>The sampleRanges have a special notation:
- <strong>start</strong>~<strong>end</strong>. The
- <strong>start</strong> and <strong>end</strong> values must
- have the same number of decimal digits, and the same compact decimal exponent values (or neither have compact decimal exponent values). The range encompasses
- all and only values those value <strong>v</strong> where
- <strong>start ≤ v ≤ end</strong>, and where <strong>v</strong>
- has the same number of decimal places as <strong>start</strong>
- and <strong>end</strong>, and the same compact decimal exponent values.</p>
- <p>Samples must indicate whether they are infinite or not. The
- '…' marker must be present if and only infinitely many values
- (integer or decimal) can satisfy the rule. If a set is not
- infinite, it must list all the possible values.</p>
- <table border="1">
- <caption>
- <a name="Plural_Samples_Examples" href=
- "#Plural_Samples_Examples" id=
- "Plural_Samples_Examples">Plural Samples Examples</a>
- </caption>
- <tr>
- <th>Rules</th>
- <th>Comments</th>
- </tr>
- <tr>
- <td nowrap>@integer 1, 3~5</td>
- <td>1, 3, 4, 5.</td>
- </tr>
- <tr>
- <td nowrap>@integer 3~5, 103~105, …</td>
- <td>Infinite set: 3, 4, 5, 103, 104, 105, …</td>
- </tr>
- <tr>
- <td nowrap>@decimal 1.3~1.5, 1.03~1.05, …</td>
- <td>Infinite set: 1.3, 1.4, 1.5, 1.03, 1.04, 1.05, …</td>
- </tr>
- </table><br>
- <p>In determining whether a set of samples is infinite, leading
- zero integer digits and trailing zero decimals are not
- significant. Thus "i = 1000 and f = 0" is satisfied by 01000, 1000, 1000.0,
- 1000.00, 1000.000, 01c3 etc. but is still considered finite.</p>
- <h4><a name="Using_cardinals" href="#Using_cardinals" id=
- "Using_cardinals">5.1.4 Using Cardinals</a></h4>
- <p>Elements such as <currencyFormats>, <currency>
- and <unit> provide selection among subelements
- designating various localized cardinal plural forms by tagging
- each of the relevant subelements with a different count value,
- or with no count value in some cases. Note that the plural
- forms for a specific currencyFormat, unit type, or currency
- type may not use all of the different plural-form tags defined
- for the language. To format a currency or unit type for a
- particular numeric value, determine the count value according
- to the plural rules for the language, then select the
- appropriate display form for the currency format, currency type
- or unit type using the rules in those sections:</p>
- <ul>
- <li>2.3 <a href="#Number_Symbols">Number Symbols</a> (for
- currencyFormats elements)</li>
- <li>Section 4 <a href="#Currencies">Currencies</a> (for
- currency elements)</li>
- <li>The main document section 5.11 <a href=
- "tr35.html#Unit_Elements">Unit Elements</a></li>
- </ul>
- <h3>5.2 <a name="Plural_Ranges" href="#Plural_Ranges" id=
- "Plural_Ranges">Plural Ranges</a></h3>
- <p class="dtd"><!ELEMENT pluralRanges (pluralRange*)
- ><br>
- <!ATTLIST pluralRanges locales NMTOKENS #REQUIRED ><br>
- <br>
- <!ELEMENT pluralRange ( #PCDATA ) ><br>
- <!ATTLIST pluralRange start (zero|one|two|few|many|other)
- #IMPLIED ><br>
- <!ATTLIST pluralRange end (zero|one|two|few|many|other)
- #IMPLIED ><br>
- <!ATTLIST pluralRange result (zero|one|two|few|many|other)
- #REQUIRED ></p>
- <p>Often ranges of numbers are presented to users, such as in
- “Length: 3.2–4.5 centimeters”. This means any length from 3.2
- cm to 4.5 cm, inclusive. However, different languages have
- different conventions for the pluralization given to a range:
- should it be “0–1 centimeter” or “0–1 centimeters”? This
- becomes much more complicated for languages that have many
- different plural forms, such as Russian or Arabic.</p>
- <p>The <strong>pluralRanges</strong> element provides
- information allowing an implementation to derive the plural
- category of a range from the plural categories of the
- <em>start</em> and <em>end</em> values. If there is no value
- for a <em><start,end></em> pair, the default result is
- <em>end</em>. However, where that result has been verified for
- a given language, it is included in the CLDR data.</p>
- <p>The data has been gathered presuming that in any usage, the
- start value is strictly less than the end value, and that no
- values are negative. Results for any cases that do not meet
- these criteria are undefined.</p>
- <h2>6 <a name="Rule-Based_Number_Formatting" href=
- "#Rule-Based_Number_Formatting" id=
- "Rule-Based_Number_Formatting">Rule-Based Number
- Formatting</a></h2>
- <p class="dtd"><!ELEMENT rbnf ( alias | rulesetGrouping*)
- ><br>
- <br>
- <!ELEMENT rulesetGrouping ( alias | ruleset*) ><br>
- <!ATTLIST rulesetGrouping type NMTOKEN #REQUIRED><br>
- <br>
- <!ELEMENT ruleset ( alias | rbnfrule*) ><br>
- <!ATTLIST ruleset type NMTOKEN #REQUIRED><br>
- <!ATTLIST ruleset access ( public | private ) #IMPLIED
- ><br>
- <br>
- <!ELEMENT rbnfrule ( #PCDATA ) ><br>
- <!ATTLIST rbnfrule value CDATA #REQUIRED ><br>
- <!ATTLIST rbnfrule radix CDATA #IMPLIED ><br>
- <!ATTLIST rbnfrule decexp CDATA #IMPLIED ></p>
- <p>The rule-based number format (RBNF) encapsulates a set of
- rules for mapping binary numbers to and from a readable
- representation. They are typically used for spelling out
- numbers, but can also be used for other number systems like
- roman numerals, Chinese numerals, or for ordinal numbers (1st,
- 2nd, 3rd,…).</p>
- <p>Where, however, the CLDR plurals or ordinals can be used,
- their usage is recommended in preference to the RBNF data.
- First, the RBNF data is not completely fleshed out over all
- languages that otherwise have modern coverage. Secondly, the
- alternate forms are neither complete, nor useful without
- additional information. For example, for German there is
- spellout-cardinal-masculine, and spellout-cardinal-feminine.
- But a complete solution would have all genders
- (masculine/feminine/neuter), all cases (nominative, accusative,
- dative, genitive), plus context (with strong or weak determiner
- or none). Moreover, even for the alternate forms that do exist,
- CLDR does not supply any data for when to use one vs another
- (eg, when to use spellout-cardinal-masculine vs
- spellout-cardinal-feminine). So these data are inappropriate
- for general purpose software.</p>
- <p>There are 4 common spellout rules. Some languages may
- provide more than these 4 types:<br></p>
- <ul>
- <li><strong>numbering:</strong> This is the default used when
- there is no context for the number. For many languages, this
- may also be used for enumeration of objects, like used when
- pronouncing "table number one" and "table number two". It can
- also be used for pronouncing a math equation, like "2 - 3 =
- -1".</li>
- <li><strong>numbering-year:</strong> This is used for cases
- where years are pronounced or written a certain way. An
- example in English is the year 1999, which comes out as
- "nineteen ninety-nine" instead of the numbering value "one
- thousand nine hundred ninety-nine". The rules for this type
- have undefined behavior for non-integer numbers, and values
- less than 1.</li>
- <li><strong>cardinal:</strong> This is used when providing
- the quantity of the number of objects. For many languages,
- there may not be a default cardinal type. Many languages
- require the notion of the gender and other grammatical
- properties so that the number and the objects being
- referenced are in grammatical agreement. An example of its
- usage is "one e-mail", "two people" or "three kilometers".
- Some languages may not have dedicated words for 0 or negative
- numbers for cardinals. In those cases, the words from the
- numbering type can be reused.</li>
- <li><strong>ordinal:</strong> This is used when providing the
- order of the number of objects. For many languages, there may
- not be a default ordinal type. Many languages also require
- the notion of the gender for ordinal so that the ordinal
- number and the objects being referenced are in grammatical
- agreement. An example of its usage is "first place", "second
- e-mail" or "third house on the right". The rules for this
- type have undefined behavior for non-integer numbers, and
- values less than 1.</li>
- </ul>
- <p>In addition to the spellout rules, there are also a
- numbering system rules. Even though they may be derived from a
- specific culture, they are typically not translated and the
- rules are in <strong>root</strong>. An example of these rules
- are the Roman numerals where the value 8 comes out as
- VIII.<br></p>
- <p>With regards to the number range supported for all these
- number types, the largest possible number range tries to be
- supported, but some languages may not have words for large
- numbers. For example, the old Roman numbering system can't
- support the value 5000 and beyond. For those unsupported cases,
- the default number format from CLDR is used.<br></p>
- <p>Any rules marked as <strong>private</strong> should never be
- referenced externally. Frequently they only support a subrange
- of numbers that are used in the public rules.<br></p>
- <p>The syntax used in the CLDR representation of rules is
- intended to be simply a transcription of ICU based RBNF rules
- into an XML compatible syntax. The rules are fairly
- sophisticated; for details see <i>Rule-Based Number
- Formatter</i> [<a href="tr35.html#RBNF">RBNF</a>].</p>
- <p class="dtd"><ruleSetGrouping></p>
- <p>Used to group rules into functional sets for use with ICU.
- Currently, the valid types of rule set groupings are
- "SpelloutRules", "OrdinalRules", and
- "NumberingSystemRules".</p>
- <p class="dtd"><ruleset></p>
- <p>This element denotes a specific rule set to the number
- formatter. The ruleset is assumed to be a public ruleset unless
- the attribute type="private" is specified.</p>
- <p class="dtd"><rule></p>
- <p>Contains the actual formatting rule for a particular number
- or sequence of numbers. The "value" attribute is used to
- indicate the starting number to which the rule applies. The
- actual text of the rule is identical to the ICU syntax, with
- the exception that Unicode left and right arrow characters are
- used to replace < and > in the rule text, since < and
- > are reserved characters in XML. The "radix" attribute is
- used to indicate an alternate radix to be used in calculating
- the prefix and postfix values for number formatting. Alternate
- radix values are typically used for formatting year numbers in
- formal documents, such as "nineteen hundred seventy-six"
- instead of "one thousand nine hundred seventy-six".</p>
- <h2><a name="Parsing_Numbers" href="#Parsing_Numbers" id=
- "Parsing_Numbers">7 Parsing Numbers</a></h2>
- <p>The following elements are relevant to determining the value
- of a parsed number:</p>
- <ul>
- <li>A possible prefix or suffix, indicating sign</li>
- <li>A possible currency symbol or code</li>
- <li>Decimal digits</li>
- <li>A possible decimal separator</li>
- <li>A possible exponent</li>
- <li>A possible percent or per mille character</li>
- </ul>
- <p>Other characters should either be ignored, or indicate the
- end of input, depending on the application. The key point is to
- disambiguate the sets of characters that might serve in more
- than one position, based on context. For example, a period
- might be either the decimal separator, or part of a currency
- symbol (for example, "NA f."). Similarly, an "E" could be an
- exponent indicator, or a currency symbol (the Swaziland
- Lilangeni uses "E" in the "en" locale). An apostrophe might be
- the decimal separator, or might be the grouping separator.</p>
- <p>Here is a set of heuristic rules that may be helpful:</p>
- <ul>
- <li>Any character with the decimal digit property is
- unambiguous and should be accepted.
- <p><b>Note:</b> In some environments, applications may
- independently wish to restrict the decimal digit set to
- prevent security problems. See [<a href=
- "https://www.unicode.org/reports/tr41/#UTR36">UTR36</a>].</p>
- </li>
- <li>The exponent character can only be interpreted as such if
- it occurs after at least one digit, and if it is followed by
- at least one digit, with only an optional sign in between. A
- regular expression may be helpful here.</li>
- <li>For the sign, decimal separator, percent, and per mille,
- use a set of all possible characters that can serve those
- functions. For example, the decimal separator set could
- include all of [.,']. (The actual set of characters can be
- derived from the number symbols in the By-Type charts
- <a href="tr35.html#ByType">[ByType]</a>, which list all of
- the values in CLDR.) To disambiguate, the decimal separator
- for the locale must be removed from the "ignore" set, and the
- grouping separator for the locale must be removed from the
- decimal separator set. The same principle applies to all sets
- and symbols: any symbol must appear in at most one set.</li>
- <li>Since there are a wide variety of currency symbols and
- codes, this should be tried before the less ambiguous
- elements. It may be helpful to develop a set of characters
- that can appear in a symbol or code, based on the currency
- symbols in the locale.</li>
- <li>Otherwise, a character should be ignored unless it is in
- the "stop" set. This includes even characters that are
- meaningful for formatting, for example, the grouping
- separator.</li>
- <li>If more than one sign, currency symbol, exponent, or
- percent/per mille occurs in the input, the first found should
- be used.</li>
- <li>A currency symbol in the input should be interpreted as
- the longest match found in the set of possible currency
- symbols.</li>
- <li>Especially in cases of ambiguity, the user's input should
- be echoed back, properly formatted according to the locale,
- before it is actually used for anything.</li>
- </ul>
- <hr>
- <p class="copyright">Copyright © 2001–2020 Unicode, Inc. All
- Rights Reserved. The Unicode Consortium makes no expressed or
- implied warranty of any kind, and assumes no liability for
- errors or omissions. No liability is assumed for incidental and
- consequential damages in connection with or arising out of the
- use of the information or programs contained or accompanying
- this technical report. The Unicode <a href=
- "https://unicode.org/copyright.html">Terms of Use</a> apply.</p>
- <p class="copyright">Unicode and the Unicode logo are
- trademarks of Unicode, Inc., and are registered in some
- jurisdictions.</p>
- </div>
-</body>
-</html>
diff --git a/docs/ldml/tr35-numbers.md b/docs/ldml/tr35-numbers.md
new file mode 100644
index 0000000..cc58d76
--- /dev/null
+++ b/docs/ldml/tr35-numbers.md
@@ -0,0 +1,1325 @@
+## Unicode Technical Standard #35
+
+# Unicode Locale Data Markup Language (LDML)<br/>Part 3: Numbers
+
+<!-- HTML: no th -->
+<table><tbody>
+<tr><td>Version</td><td>39</td></tr>
+<tr><td>Editors</td><td>John Emmons (<a href="mailto:emmo@us.ibm.com">emmo@us.ibm.com</a>) and <a href="tr35.md#Acknowledgments">other CLDR committee members</a></td></tr>
+</tbody></table>
+
+For the full header, summary, and status, see [Part 1: Core](tr35.md).
+
+### _Summary_
+
+This document describes parts of an XML format (_vocabulary_) for the exchange of structured locale data. This format is used in the [Unicode Common Locale Data Repository](https://unicode.org/cldr/).
+
+This is a partial document, describing only those parts of the LDML that are relevant for number and currency formatting. For the other parts of the LDML see the [main LDML document](tr35.md) and the links above.
+
+### _Status_
+
+_This document has been reviewed by Unicode members and other interested parties, and has been approved for publication by the Unicode Consortium. This is a stable document and may be used as reference material or cited as a normative reference by other specifications._
+
+> _**A Unicode Technical Standard (UTS)** is an independent specification. Conformance to the Unicode Standard does not imply conformance to any UTS._
+
+_Please submit corrigenda and other comments with the CLDR bug reporting form [[Bugs](tr35.md#Bugs)]. Related information that is useful in understanding this document is found in the [References](tr35.md#References). For the latest version of the Unicode Standard see [[Unicode](tr35.md#Unicode)]. For a list of current Unicode Technical Reports see [[Reports](tr35.md#Reports)]. For more information about versions of the Unicode Standard, see [[Versions](tr35.md#Versions)]._
+
+## <a name="Parts" href="#Parts">Parts</a>
+
+The LDML specification is divided into the following parts:
+
+* Part 1: [Core](tr35.md#Contents) (languages, locales, basic structure)
+* Part 2: [General](tr35-general.md#Contents) (display names & transforms, etc.)
+* Part 3: [Numbers](tr35-numbers.md#Contents) (number & currency formatting)
+* Part 4: [Dates](tr35-dates.md#Contents) (date, time, time zone formatting)
+* Part 5: [Collation](tr35-collation.md#Contents) (sorting, searching, grouping)
+* Part 6: [Supplemental](tr35-info.md#Contents) (supplemental data)
+* Part 7: [Keyboards](tr35-keyboards.md#Contents) (keyboard mappings)
+
+## <a name="Contents" href="#Contents">Contents of Part 3, Numbers</a>
+
+* 1 [Numbering Systems](#Numbering_Systems)
+* 2 [Number Elements](#Number_Elements)
+ * 2.1 [Default Numbering System](#defaultNumberingSystem)
+ * 2.2 [Other Numbering Systems](#otherNumberingSystems)
+ * 2.3 [Number Symbols](#Number_Symbols)
+ * 2.4 [Number Formats](#Number_Formats)
+ * 2.4.1 [Compact Number Formats](#Compact_Number_Formats)
+ * 2.4.2 [Currency Formats](#Currency_Formats)
+ * 2.5 [Miscellaneous Patterns](#Miscellaneous_Patterns)
+ * 2.6 [Minimal Pairs](#Minimal_Pairs)
+* 3 [Number Format Patterns](#Number_Format_Patterns)
+ * 3.1 [Number Patterns](#Number_Patterns)
+ * Table: [Number Pattern Examples](#Number_Pattern_Examples)
+ * 3.2 [Special Pattern Characters](#Special_Pattern_Characters)
+ * Table: [Number Pattern Character Definitions](#Number_Pattern_Character_Definitions)
+ * Table: [Sample Patterns and Results](#Sample_Patterns_and_Results)
+ * Table: [Examples of minimumGroupingDigits](#Examples_of_minimumGroupingDigits)
+ * 3.2.1 [Explicit Plus Signs](#Explicit_Plus)
+ * 3.3 [Formatting](#Formatting)
+ * 3.4 [Scientific Notation](#sci)
+ * 3.5 [Significant Digits](#sigdig)
+ * Table: [Significant Digits Examples](#Significant_Digits_Examples)
+ * 3.6 [Padding](#Padding)
+ * 3.7 [Rounding](#Rounding)
+ * 3.8 [Quoting Rules](#Quoting_Rules)
+* 4 [Currencies](#Currencies)
+ * 4.1 [Supplemental Currency Data](#Supplemental_Currency_Data)
+* 5 [Language Plural Rules](#Language_Plural_Rules)
+ * 5.1 [Plural rules syntax](#Plural_rules_syntax)
+ * 5.1.1 [Operands](#Operands)
+ * Table: [Plural Operand Meanings](#Plural_Operand_Meanings)
+ * Table: [Plural Operand Examples](#Plural_Operand_Examples)
+ * 5.1.2 [Relations](#Relations)
+ * Table: [Relations Examples](#Relations_Examples)
+ * Table: [Plural Rules Examples](#Plural_Rules_Examples)
+ * 5.1.3 [Samples](#Samples)
+ * Table: [Plural Samples Examples](#Plural_Samples_Examples)
+ * 5.1.4 [Using Cardinals](#Using_cardinals)
+ * 5.2 [Plural Ranges](#Plural_Ranges)
+* 6 [Rule-Based Number Formatting](#Rule-Based_Number_Formatting)
+* 7 [Parsing Numbers](#Parsing_Numbers)
+
+## 1 <a name="Numbering_Systems" href="#Numbering_Systems">Numbering Systems</a>
+
+```xml
+<!ELEMENT numberingSystems ( numberingSystem* ) >
+<!ELEMENT numberingSystem EMPTY >
+<!ATTLIST numberingSystem id NMTOKEN #REQUIRED >
+<!ATTLIST numberingSystem type ( numeric | algorithmic ) #REQUIRED >
+<!ATTLIST numberingSystem radix NMTOKEN #IMPLIED >
+<!ATTLIST numberingSystem digits CDATA #IMPLIED >
+<!ATTLIST numberingSystem rules CDATA #IMPLIED >
+```
+
+Numbering systems information is used to define different representations for numeric values to an end user. Numbering systems are defined in CLDR as one of two different types: algorithmic and numeric. Numeric systems are simply a decimal based system that uses a predefined set of digits to represent numbers. Examples are Western ( ASCII digits ), Thai digits, Devanagari digits. Algorithmic systems are more complex in nature, since the proper formatting and presentation of a numeric quantity is based on some algorithm or set of rules. Examples are Chinese numerals, Hebrew numerals, or Roman numerals. In CLDR, the rules for presentation of numbers in an algorithmic system are defined using the RBNF syntax described in _[Section 6: Rule-Based Number Formatting](#Rule-Based_Number_Formatting)_.
+
+Attributes for the `<numberingSystem>` element are as follows:
+
+> `id` - Specifies the name of the numbering system that can be used to designate its use in formatting.
+>
+> `type` - Specifies whether the numbering system is algorithmic or numeric.
+>
+> `digits` - For numeric systems, specifies the digits used to represent numbers, in order, starting from zero.
+>
+> `rules` - Specifies the RBNF ruleset to be used for formatting numbers from this numbering system. The rules specifier can contain simply a ruleset name, in which case the ruleset is assumed to be found in the rule set grouping "NumberingSystemRules". Alternatively, the specifier can denote a specific locale, ruleset grouping, and ruleset name, separated by slashes.
+
+Examples:
+
+```xml
+<numberingSystem id="latn" type="numeric" digits="0123456789"/>
+<!-- ASCII digits - A numeric system -->
+
+<numberingSystem id="thai" type="numeric" digits="๐๑๒๓๔๕๖๗๘๙"/>
+<!-- A numeric system using Thai digits -->
+
+<numberingSystem id="geor" type="algorithmic" rules="georgian"/>
+<!-- An algorithmic system - Georgian numerals , rules found in NumberingSystemRules -->
+
+<numberingSystem id="hant" type="algorithmic" rules="zh_Hant/SpelloutRules/spellout-cardinal"/>
+<!-- An algorithmic system. Traditional Chinese Numerals -->
+```
+
+For general information about the numbering system data, including the BCP47 identifiers, see the main document _Section Q.1.1 [Numbering System Data](tr35.md#Numbering%20System%20Data)._
+
+## 2 <a name="Number_Elements" href="#Number_Elements">Number Elements</a>
+
+```xml
+<!ELEMENT numbers ( alias | ( defaultNumberingSystem*, otherNumberingSystems*, minimumGroupingDigits*, symbols*, decimalFormats*, scientificFormats*, percentFormats*, currencyFormats*, currencies?, miscPatterns*, minimalPairs*, special* ) ) >
+```
+
+The numbers element supplies information for formatting and parsing numbers and currencies. It has the following sub-elements: `<defaultNumberingSystem>`, `<otherNumberingSystems>`, `<symbols>`, `<decimalFormats>`, `<scientificFormats>`, `<percentFormats>`, `<currencyFormats>`, and `<currencies>`. The currency IDs are from [[ISO4217](tr35.md#ISO4217)] (plus some additional common-use codes). For more information, including the pattern structure, see _[Section 3: Number Format Patterns](#Number_Format_Patterns)_.
+
+### 2.1 <a name="defaultNumberingSystem" href="#defaultNumberingSystem">Default Numbering System</a>
+
+```xml
+<!ELEMENT defaultNumberingSystem ( #PCDATA )>
+```
+
+This element indicates which numbering system should be used for presentation of numeric quantities in the given locale.
+
+### 2.2 <a name="otherNumberingSystems" href="#otherNumberingSystems">Other Numbering Systems</a>
+
+```xml
+<!ELEMENT otherNumberingSystems ( alias | ( native*, traditional*, finance*)) >
+```
+
+This element defines general categories of numbering systems that are sometimes used in the given locale for formatting numeric quantities. These additional numbering systems are often used in very specific contexts, such as in calendars or for financial purposes. There are currently three defined categories, as follows:
+
+**native**
+
+> Defines the numbering system used for the native digits, usually defined as a part of the script used to write the language. The native numbering system can only be a numeric positional decimal-digit numbering system, using digits with General_Category=Decimal_Number. Note: In locales where the native numbering system is the default, it is assumed that the numbering system "latn" ( Western Digits 0-9 ) is always acceptable, and can be selected using the -nu keyword as part of a Unicode locale identifier.
+
+**traditional**
+
+> Defines the traditional numerals for a locale. This numbering system may be numeric or algorithmic. If the traditional numbering system is not defined, applications should use the native numbering system as a fallback.
+
+**finance**
+
+> Defines the numbering system used for financial quantities. This numbering system may be numeric or algorithmic. This is often used for ideographic languages such as Chinese, where it would be easy to alter an amount represented in the default numbering system simply by adding additional strokes. If the financial numbering system is not specified, applications should use the default numbering system as a fallback.
+
+The categories defined for other numbering systems can be used in a Unicode locale identifier to select the proper numbering system without having to know the specific numbering system by name. For example:
+
+* To select Hindi language using the native digits for numeric formatting, use locale ID: "hi-IN-u-nu-native".
+* To select Chinese language using the appropriate financial numerals, use locale ID: "zh-u-nu-finance".
+* To select Tamil language using the traditional Tamil numerals, use locale ID: "ta-u-nu-traditio".
+* To select Arabic language using western digits 0-9, use locale ID: "ar-u-nu-latn".
+
+For more information on numbering systems and their definitions, see _[Section 1: Numbering Systems](#Numbering_Systems)_.
+
+### 2.3 <a name="Number_Symbols" href="#Number_Symbols">Number Symbols</a>
+
+```xml
+<!ELEMENT symbols (alias | (decimal*, group*, list*, percentSign*, nativeZeroDigit*, patternDigit*, plusSign*, minusSign*, approximatelySign*, exponential*, superscriptingExponent*, perMille*, infinity*, nan*, currencyDecimal*, currencyGroup*, timeSeparator*, special*)) >
+```
+
+Number symbols define the localized symbols that are commonly used when formatting numbers in a given locale. These symbols can be referenced using a number formatting pattern as defined in _[Section 3: Number Format Patterns](#Number_Format_Patterns)_.
+
+The available number symbols are as follows:
+
+**decimal**
+
+> separates the integer and fractional part of the number.
+
+**group**
+
+> separates clusters of integer digits to make large numbers more legible; commonly used for thousands (grouping size 3, e.g. "100,000,000") or in some locales, ten-thousands (grouping size 4, e.g. "1,0000,0000"). There may be two different grouping sizes: The _primary grouping size_ used for the least significant integer group, and the _secondary grouping size_ used for more significant groups; these are not the same in all locales (e.g. "12,34,56,789"). If a pattern contains multiple grouping separators, the interval between the last one and the end of the integer defines the primary grouping size, and the interval between the last two defines the secondary grouping size. All others are ignored, so "#,##,###,####" == "###,###,####" == "##,#,###,####".
+
+**list**
+
+> symbol used to separate numbers in a list intended to represent structured data such as an array; must be different from the **decimal** value. This list separator is for “non-linguistic” usage as opposed to the listPatterns for “linguistic” lists (e.g. “Bob, Carol, and Ted”) described in Part 2, _Section 11 [List Patterns](tr35-general.md#ListPatterns)_.
+
+**percentSign**
+
+> symbol used to indicate a percentage (1/100th) amount. (If present, the value is also multiplied by 100 before formatting. That way 1.23 → 123%)
+
+~~**nativeZeroDigit**~~
+
+> Deprecated - do not use.
+
+~~**patternDigit**~~
+
+> Deprecated. This was formerly used to provide the localized pattern character corresponding to '#', but localization of the pattern characters themselves has been deprecated for some time (determining the locale-specific _replacements_ for pattern characters is of course not deprecated and is part of normal number formatting).
+
+**minusSign**
+
+> Symbol used to denote negative value.
+
+**plusSign**
+
+> Symbol used to denote positive value. It can be used to produce modified patterns, so that 3.12 is formatted as "+3.12", for example. The standard number patterns (except for type="accounting") will contain the minusSign, explicitly or implicitly. In the explicit pattern, the value of the plusSign can be substituted for the value of the minusSign to produce a pattern that has an explicit plus sign.
+
+**approximatelySign**
+
+> Symbol used to denote a value that is approximate but not exact. The symbol is substituted in place of the minusSign using the same semantics as plusSign substitution.
+
+**exponential**
+
+> Symbol separating the mantissa and exponent values.
+
+**superscriptingExponent**
+
+> (Programmers are used to the fallback exponent style “1.23E4”, but that should not be shown to end-users. Instead, the exponential notation superscriptingExponent should be used to show a format like “1.23 × 104”. ) The superscripting can use markup, such as `<sup>4</sup>` in HTML, or for the special case of Latin digits, use the superscript characters: U+207B ( ⁻ ), U+2070 ( ⁰ ), U+00B9 ( ¹ ), U+00B2 ( ² ), U+00B3 ( ³ ), U+2074 ( ⁴ ) .. U+2079 ( ⁹ ).
+
+**perMille**
+
+> symbol used to indicate a per-mille (1/1000th) amount. (If present, the value is also multiplied by 1000 before formatting. That way 1.23 → 1230 [1/000])
+
+**infinity**
+
+> The infinity sign. Corresponds to the IEEE infinity bit pattern.
+
+**nan - Not a number**
+
+> The NaN sign. Corresponds to the IEEE NaN bit pattern.
+
+**currencyDecimal**
+
+> Optional. If specified, then for currency formatting/parsing this is used as the decimal separator instead of using the regular decimal separator; otherwise, the regular decimal separator is used.
+
+**currencyGroup**
+
+> Optional. If specified, then for currency formatting/parsing this is used as the group separator instead of using the regular group separator; otherwise, the regular group separator is used.
+
+**timeSeparator**
+
+> This replaces any use of the timeSeparator pattern character in a date-time format pattern (no timeSeparator pattern character is currently defined, see note below). This allows the same time format to be used for multiple number systems when the time separator depends on the number system. For example, the time format for Arabic should be COLON when using the Latin numbering system (0, 1, 2, …), but when the Arabic numbering system is used (٠ - ١ - ٢ …), the traditional time separator in older print styles was often ARABIC COMMA.
+>
+> **Note:** In CLDR 26 the timeSeparator pattern character was specified to be COLON. This was withdrawn in CLDR 28 due to backward compatibility issues, and no timeSeparator pattern character is currently defined. No CLDR locales are known to have a need to specify timeSeparator symbols that depend on number system; if this changes in the future a different timeSeparator pattern character will be defined. In the meantime, since CLDR data consumers can still request the timeSeparator symbol. it should match the symbol actually used in the [timeFormats](tr35-dates.md#timeFormats) and [availableFormats](tr35-dates.md#availableFormats_appendItems) items.
+
+Example:
+
+```xml
+<symbols>
+ <decimal>.</decimal>
+ <group>,</group>
+ <list>;</list>
+ <percentSign>%</percentSign>
+ <patternDigit>#</patternDigit>
+ <plusSign>+</plusSign>
+ <minusSign>-</minusSign>
+ <approximatelySign>~</approximatelySign>
+ <exponential>E</exponential>
+ <superscriptingExponent>×</superscriptingExponent>
+ <perMille>‰</perMille>
+ <infinity>∞</infinity>
+ <nan>☹</nan>
+ <timeSeparator>:</timeSeparator>
+</symbols>
+```
+
+```xml
+<!ATTLIST symbols numberSystem CDATA #IMPLIED >
+```
+The `numberSystem` attribute is used to specify that the given number symbols are to be used when the given numbering system is active. Number symbols can only be defined for numbering systems of the "numeric" type, since any special symbols required for an algorithmic numbering system should be specified by the RBNF formatting rules used for that numbering system. By default, number symbols without a specific `numberSystem` attribute are assumed to be used for the "latn" numbering system, which is western (ASCII) digits. Locales that specify a numbering system other than "latn" as the default should also specify number formatting symbols that are appropriate for use within the context of the given numbering system. For example, a locale that uses the Arabic-Indic digits as its default would likely use an Arabic comma for the grouping separator rather than the ASCII comma.
+For more information on numbering systems and their definitions, see _[Section 1: Numbering Systems](#Numbering_Systems)_.
+
+### 2.4 <a name="Number_Formats" href="#Number_Formats">Number Formats</a>
+
+```xml
+<!ELEMENT decimalFormats (alias | (default*, decimalFormatLength*, special*)) >
+<!ELEMENT decimalFormatLength (alias | (default*, decimalFormat*, special*)) >
+<!ATTLIST decimalFormatLength type ( full | long | medium | short ) #IMPLIED >
+<!ELEMENT decimalFormat (alias | (pattern*, special*)) >
+```
+
+(scientificFormats, percentFormats have the same structure)
+
+Number formats are used to define the rules for formatting numeric quantities using the pattern syntax described in _[Section 3: Number Format Patterns](#Number_Format_Patterns)_.
+
+Different formats are provided for different contexts, as follows:
+
+**decimalFormats**
+
+> The normal locale specific way to write a base 10 number. Variations of the decimalFormat pattern are provided that allow compact number formatting.
+
+**percentFormats**
+
+> Pattern for use with percentage formatting
+
+**scientificFormats**
+
+> Pattern for use with scientific (exponent) formatting.
+
+Example:
+
+```xml
+<decimalFormats>
+ <decimalFormatLength type="long">
+ <decimalFormat>
+ <pattern>#,##0.###</pattern>
+ </decimalFormat>
+ </decimalFormatLength>
+</decimalFormats>
+
+<scientificFormats>
+ <default type="long"/>
+ <scientificFormatLength type="long">
+ <scientificFormat>
+ <pattern>0.000###E+00</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+ <scientificFormatLength type="medium">
+ <scientificFormat>
+ <pattern>0.00##E+00</pattern>
+ </scientificFormat>
+ </scientificFormatLength>
+</scientificFormats>
+
+<percentFormats>
+ <percentFormatLength type="long">
+ <percentFormat>
+ <pattern>#,##0%</pattern>
+ </percentFormat>
+ </percentFormatLength>
+</percentFormats>
+```
+
+```xml
+<!ATTLIST symbols numberSystem CDATA #IMPLIED >
+```
+
+The `numberSystem` attribute is used to specify that the given number formatting pattern(s) are to be used when the given numbering system is active. By default, number formatting patterns without a specific `numberSystem` attribute are assumed to be used for the "latn" numbering system, which is western (ASCII) digits. Locales that specify a numbering system other than "latn" as the default should also specify number formatting patterns that are appropriate for use within the context of the given numbering system.
+For more information on numbering systems and their definitions, see _[Section 1: Numbering Systems](#Numbering_Systems)_.
+
+#### 2.4.1 <a name="Compact_Number_Formats" href="#Compact_Number_Formats">Compact Number Formats</a>
+
+A pattern `type` attribute is used for _compact number formats_, such as the following:
+
+```xml
+<decimalFormatLength type="long">
+ <decimalFormat>
+ <pattern type="1000" count="one">0 millier</pattern>
+ <pattern type="1000" count="other">0 milliers</pattern>
+ <pattern type="10000" count="one">00 mille</pattern>
+ <pattern type="10000" count="other">00 mille</pattern>
+ <pattern type="100000" count="one">000 mille</pattern>
+ <pattern type="100000" count="other">000 mille</pattern>
+ <pattern type="1000000" count="one">0 million</pattern>
+ <pattern type="1000000" count="other">0 millions</pattern>
+ …
+ </decimalFormat>
+</decimalFormatLength>
+<decimalFormatLength type="short">
+ <decimalFormat>
+ <pattern type="1000" count="one">0 K</pattern>
+ <pattern type="1000" count="other">0 K</pattern>
+ <pattern type="10000" count="one">00 K</pattern>
+ <pattern type="10000" count="other">00 K</pattern>
+ <pattern type="100000" count="one">000 K</pattern>
+ <pattern type="100000" count="other">000 K</pattern>
+ <pattern type="1000000" count="one">0 M</pattern>
+ <pattern type="1000000" count="other">0 M</pattern>
+ …
+ </decimalFormat>
+…
+<currencyFormatLength type="short">
+ <currencyFormat type="standard">
+ <pattern type="1000" count="one">0 K ¤</pattern>
+ <pattern type="1000" count="other">0 K ¤</pattern>
+ <pattern type="10000" count="one">00 K ¤</pattern>
+ <pattern type="10000" count="other">00 K ¤</pattern>
+ <pattern type="100000" count="one">000 K ¤</pattern>
+ <pattern type="100000" count="other">000 K ¤</pattern>
+ <pattern type="1000000" count="one">0 M ¤</pattern>
+ <pattern type="1000000" count="other">0 M ¤</pattern>
+```
+
+Formats can be supplied for numbers (as above) or for currencies or other units. They can also be used with ranges of numbers, resulting in formatting strings like “$10K” or “$3–7M”.
+
+To format a number N, the greatest type less than or equal to N is used, with the appropriate plural category. N is divided by the type, after removing the number of zeros in the pattern, less 1. APIs supporting this format should provide control over the number of significant or fraction digits.
+
+The default pattern for any type that is not supplied is the special value “0”, as in the following. The value “0” must be used when a child locale overrides a parent locale to drop the compact pattern for that type and use the default pattern.
+
+ `<pattern type="1" count="one">0</pattern>`
+
+If the value is precisely “0”, either explicit or defaulted, then the normal number format pattern for that sort of object is supplied — either `<decimalFormat>` or `<currencyFormat type="standard">` — with the normal formatting for the locale (such as the grouping separators). However, for the “0” case by default the signficant digits are adjusted for consistency, typically to 2 or 3 digits, and the maximum fractional digits are set to 0 (for both currencies and plain decimal). Thus the output would be $12, not $12.01. APIs may, however, allow these default behaviors to be overridden.
+
+With the data above, N=12345 matches `<pattern type="10000" count="other">00 K</pattern>`. N is divided by 1000 (obtained from10000 after removing "00" and restoring one "0". The result is formatted according to the normal decimal pattern. With no fractional digits, that yields "12 K".
+
+Formatting 1200 in USD would result in “1.2 K $”, while 990 implicitly maps to the special value “0”, which maps to `<currencyFormat type="standard"><pattern>#,##0.00 ¤</pattern>`, and would result in simply “990 $”.
+
+The short format is designed for UI environments where space is at a premium, and should ideally result in a formatted string no more than about 6 em wide (with no fractional digits).
+
+#### 2.4.2 <a name="Currency_Formats" href="#Currency_Formats">Currency Formats</a>
+
+Pattern for use with currency formatting. This format contains a few additional structural options that allow proper placement of the currency symbol relative to the numeric quantity. Refer to _[Section 4 - Currencies](#Currencies)_ for additional information on the use of these options.
+
+```xml
+<!ELEMENT currencyFormats (alias | (default*, currencySpacing*, currencyFormatLength*, unitPattern*, special*)) >
+<!ELEMENT currencySpacing (alias | (beforeCurrency*, afterCurrency*, special*)) >
+<!ELEMENT beforeCurrency (alias | (currencyMatch*, surroundingMatch*, insertBetween*)) >
+<!ELEMENT afterCurrency (alias | (currencyMatch*, surroundingMatch*, insertBetween*)) >
+<!ELEMENT currencyMatch ( #PCDATA ) >
+<!ELEMENT surroundingMatch ( #PCDATA )) >
+<!ELEMENT insertBetween ( #PCDATA ) >
+<!ELEMENT currencyFormatLength (alias | (default*, currencyFormat*, special*)) >
+<!ATTLIST currencyFormatLength type ( full | long | medium | short ) #IMPLIED >
+<!ELEMENT currencyFormat (alias | (pattern*, special*)) >
+```
+
+In addition to a standard currency format, in which negative currency amounts might typically be displayed as something like “-$3.27”, locales may provide an "accounting" form, in which for "en_US" the same example would appear as “($3.27)”.
+
+```xml
+<currencyFormats>
+ <currencyFormatLength>
+ <currencyFormat type="standard">
+ <pattern>¤#,##0.00</pattern>
+ </currencyFormat>
+ <currencyFormat type="accounting">
+ <pattern>¤#,##0.00;(¤#,##0.00)</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+</currencyFormats>
+```
+
+### 2.5 <a name="Miscellaneous_Patterns" href="#Miscellaneous_Patterns">Miscellaneous Patterns</a>
+
+```xml
+<!ELEMENT miscPatterns (alias | (default*, pattern*, special*)) >
+<!ATTLIST miscPatterns numberSystem CDATA #IMPLIED >
+```
+
+The miscPatterns supply additional patterns for special purposes. The currently defined values are:
+
+**approximately**
+
+> indicates an approximate number, such as: “~99”
+
+**atMost**
+
+> indicates a number or lower, such as: “`≤`99” to indicate that there are 99 items or fewer.
+
+**atLeast**
+
+> indicates a number or higher, such as: “99+” to indicate that there are 99 items or more.
+
+**range**
+
+> indicates a range of numbers, such as: “99–103” to indicate that there are from 99 to 103 items.
+
+_For example:_
+
+```xml
+<miscPatterns numberSystem="…">
+ <pattern type="approximately">~{0}</pattern>
+ <pattern type="atLeast">≥{0}</pattern>
+ <pattern type="atMost">≤{0}</pattern>
+ <pattern type="range">{0}–{1}</pattern>
+</miscPatterns>
+```
+
+### 2.6 <a name="Minimal_Pairs" href="#Minimal_Pairs">Minimal Pairs</a>
+
+```xml
+<!ELEMENT minimalPairs ( alias | ( pluralMinimalPairs*, ordinalMinimalPairs*, caseMinimalPairs*, genderMinimalPairs*, special* ) ) >
+```
+```xml
+<!ELEMENT pluralMinimalPairs ( #PCDATA ) >
+<!ATTLIST pluralMinimalPairs count NMTOKEN #IMPLIED >
+```
+```xml
+<!ELEMENT ordinalMinimalPairs ( #PCDATA ) >
+<!ATTLIST ordinalMinimalPairs ordinal NMTOKEN #IMPLIED >
+```
+
+```xml
+<!ELEMENT caseMinimalPairs ( #PCDATA ) >
+<!ATTLIST caseMinimalPairs case NMTOKEN #REQUIRED >
+```
+
+```xml
+<!ELEMENT genderMinimalPairs ( #PCDATA ) >
+<!ATTLIST genderMinimalPairs gender NMTOKEN #REQUIRED >
+```
+
+Minimal pairs provide examples that justify why multiple plural or ordinal categories exist, and for providing contextual examples for verifying consistency of translations. The allowable values for the `count`, `ordinal`, `case`, and `gender` attributes are found in the dtd file.
+
+Examples
+
+```xml
+<minimalPairs>
+ <pluralMinimalPairs count="one">{0} Tag</pluralMinimalPairs>
+ <pluralMinimalPairs count="other">{0} Tage</pluralMinimalPairs>
+
+ <ordinalMinimalPairs ordinal="other">{0}. Abzweigung nach rechts nehmen</ordinalMinimalPairs>
+
+ <caseMinimalPairs case="accusative">… für {0} …</caseMinimalPairs>
+ <caseMinimalPairs case="dative">… mit {0} …</caseMinimalPairs>
+ <caseMinimalPairs case="genitive">Anstatt {0} …</caseMinimalPairs>
+ <caseMinimalPairs case="nominative">{0} kostet (kosten) € 3,50.</caseMinimalPairs>
+
+ <genderMinimalPairs gender="feminine">Die {0} ist …</genderMinimalPairs>
+ <genderMinimalPairs gender="masculine">Der {0} ist …</genderMinimalPairs>
+ <genderMinimalPairs gender="neuter">Das {0} ist …</genderMinimalPairs>
+</minimalPairs>
+```
+
+
+For more information, see [Plural Rules](http://cldr.unicode.org/index/cldr-spec/plural-rules) and [Grammatical Inflection](http://cldr.unicode.org/translation/grammatical-inflection).
+
+## 3 <a name="Number_Format_Patterns" href="#Number_Format_Patterns">Number Format Patterns</a>
+
+### 3.1 <a name="Number_Patterns" href="#Number_Patterns">Number Patterns</a>
+
+Number patterns affect how numbers are interpreted in a localized context. Here are some examples, based on the French locale. The "." shows where the decimal point should go. The "," shows where the thousands separator should go. A "0" indicates zero-padding: if the number is too short, a zero (in the locale's numeric set) will go there. A "#" indicates no padding: if the number is too short, nothing goes there. A "¤" shows where the currency sign will go. The following illustrates the effects of different patterns for the French locale, with the number "1234.567". Notice how the pattern characters ',' and '.' are replaced by the characters appropriate for the locale.
+
+##### <a name="Number_Pattern_Examples" href="#Number_Pattern_Examples">Number Pattern Examples</a>
+
+| Pattern | Currency | Text |
+| --- | --- | --- |
+| #,##0.## | _n/a_ | 1 234,57 |
+| #,##0.### | _n/a_ | 1 234,567 |
+| ###0.##### | _n/a_ | 1234,567 |
+| ###0.0000# | _n/a_ | 1234,5670 |
+| 00000.0000 | _n/a_ | 01234,5670 |
+| #,##0.00 ¤ | EUR | 1 234,57 € |
+|| JPY | 1 235 ¥JP |
+
+The number of # placeholder characters before the decimal do not matter, since no limit is placed on the maximum number of digits. There should, however, be at least one zero someplace in the pattern. In currency formats, the number of digits after the decimal also do not matter, since the information in the supplemental data (see _[Supplemental Currency Data](#Supplemental_Currency_Data))_ is used to override the number of decimal places — and the rounding — according to the currency that is being formatted. That can be seen in the above chart, with the difference between Yen and Euro formatting.
+
+To ensure correct layout, especially in currency patterns in which a a variety of symbols may be used, number patterns may contain (invisible) bidirectional text format characters such as LRM, RLM, and ALM.
+
+_When parsing using a pattern, a lenient parse should be used; see [Lenient Parsing](tr35.md#Lenient_Parsing)._ As noted there, lenient parsing should ignore bidi format characters.
+
+### 3.2 <a name="Special_Pattern_Characters" href="#Special_Pattern_Characters">Special Pattern Characters</a>
+
+Many characters in a pattern are taken literally; they are matched during parsing and output unchanged during formatting. Special characters, on the other hand, stand for other characters, strings, or classes of characters. For example, the '#' character is replaced by a localized digit for the chosen numberSystem. Often the replacement character is the same as the pattern character; in the U.S. locale, the ',' grouping character is replaced by ','. However, the replacement is still happening, and if the symbols are modified, the grouping character changes. Some special characters affect the behavior of the formatter by their presence; for example, if the percent character is seen, then the value is multiplied by 100 before being displayed.
+
+To insert a special character in a pattern as a literal, that is, without any special meaning, the character must be quoted. There are some exceptions to this which are noted below. The Localized Replacement column shows the replacement from _Section 2.3 [Number Symbols](#Number_Symbols)_ or the numberSystem's digits: _italic_ indicates a special function.
+
+Invalid sequences of special characters (such as “¤¤¤¤¤” in current CLDR) should be handled for formatting and parsing as described in [Handling Invalid Patterns](tr35.md#Invalid_Patterns).
+
+##### <a name="Number_Pattern_Character_Definitions" href="#Number_Pattern_Character_Definitions">Number Pattern Character Definitions</a>
+
+| Symbol | Location | Localized Replacement | Meaning |
+| :-- | :-- | :-- | :-- |
+| 0 | Number | digit | Digit |
+| 1-9 | Number | digit | '1' through '9' indicate rounding. |
+| @ | Number | digit | Significant digit |
+| # | Number | digit, _nothing_ | Digit, omitting leading/trailing zeros |
+| . | Number | decimal, currencyDecimal | Decimal separator or monetary decimal separator |
+| - | Number | minusSign, plusSign, approximatelySign | Minus sign. **Warning:** the pattern '-'0.0 is not the same as the pattern -0.0. In the former case, the minus sign is a literal. In the latter case, it is a special symbol, which is replaced by the minusSymbol, and can also be replaced by the plusSymbol for a format like +12% as in Section 3.2.1 [Explicit Plus Signs](#Explicit_Plus). |
+| , | Number | group, currencyGroup | Grouping separator. May occur in both the integer part and the fractional part. The position determines the grouping. |
+| E | Number | exponential, superscriptingExponent | Separates mantissa and exponent in scientific notation. _Need not be quoted in prefix or suffix._ |
+| + | Exponent or Number (for explicit plus) | plusSign | Prefix positive exponents with localized plus sign. Used for explicit plus for numbers as well, as described in Section 3.2.1 [Explicit Plus Signs](#Explicit_Plus). _Need not be quoted in prefix or suffix._ |
+| % | Prefix or suffix | percentSign | Multiply by 100 and show as percentage |
+| ‰ (U+2030) | Prefix or suffix | perMille | Multiply by 1000 and show as per mille (aka “basis points”) |
+| ; | Subpattern boundary | _syntax_ | Separates positive and negative subpatterns. When there is no explicit negative subpattern, an implicit negative subpattern is formed from the positive pattern with a prefixed - (ASCII U+002D HYPHEN-MINUS). |
+| ¤ (U+00A4) | Prefix or suffix | _currency symbol/name from currency specified in API_ | Any sequence is replaced by the localized currency symbol for the currency being formatted, as in the table below. If present in a pattern, the monetary decimal separator and grouping separators (if available) are used instead of the numeric ones. If data is unavailable for a given sequence in a given locale, the display may fall back to ¤ or ¤¤. See also the formatting forcurrency display names, steps 2 and 4 in [Currencies](#Currencies). <table><tr><th>No.</th><th>Replacement / Example</th></tr><tr><td rowspan="2">¤</td><td>Standard currency symbol</td></tr><tr><td>_C$12.00_</td></tr><tr><td rowspan="2">¤</td><td>ISO currency symbol (constant)</td></tr><tr><td>_CAD 12.00_</td></tr><tr><td rowspan="2">¤¤¤</td><td>Appropriate currency display name for the currency,based on the plural rules in effect for the locale</td></tr><tr><td>_5.00 Canadian dollars_</td></tr><tr><td rowspan="2" >¤¤¤¤</td><td>Narrow currency symbol. The same symbols may be used for multiple currencies. Thus the symbol may be ambiguous, and should only be where the context is clear.</td></tr><tr><td>_$12.00_</td></tr><tr><td>_others_</td><td>_Invalid in current CLDR. Reserved for future specification_</td></tr></table> |
+| * | Prefix or suffix boundary | _padding character specified in API_ | Pad escape, precedes pad character |
+| ' | Prefix or suffix | _syntax-only_ | Used to quote special characters in a prefix or suffix, for example, `"'#'#"` formats 123 to `"#123"`. To create a single quote itself, use two in a row: `"# o''clock"`. |
+
+A pattern contains a positive subpattern and may contain a negative subpattern, for example, "#,##0.00;(#,##0.00)". Each subpattern has a prefix, a numeric part, and a suffix. If there is no explicit negative subpattern, the implicit negative subpattern is the ASCII minus sign (-) prefixed to the positive subpattern. That is, "0.00" alone is equivalent to "0.00;-0.00". (The data in CLDR is normalized to remove an explicit negative subpattern where it would be identical to the implicit form.)
+
+Note that if an negative subpattern is used as-is: a minus sign is _not_ added, eg "0.00;0.00" ≠ "0.00;-0.00". Trailing semicolons are ignored, eg "0.00;" = "0.00". Whitespace is not ignored, including those around semicolons, so "0.00; -0.00" ≠ "0.00; -0.00".
+
+If there is an explicit negative subpattern, it serves only to specify the negative prefix and suffix; the number of digits, minimal digits, and other characteristics are ignored in the negative subpattern. That means that "#,##0.0#;(#)" has precisely the same result as "#,##0.0#;(#,##0.0#)". However in the CLDR data, the format is normalized so that the other characteristics are preserved, just for readability.
+
+> **Note:** The thousands separator and decimal separator in patterns are always ASCII ',' and '.'. They are substituted by the code with the correct local values according to other fields in CLDR. The same is true of the - (ASCII minus sign) and other special characters listed above.
+
+A currency decimal pattern normally contains a currency symbol placeholder (¤, ¤¤, ¤¤¤, or ¤¤¤¤¤). The currency symbol placeholder may occur before the first digit, after the last digit symbol, or where the decimal symbol would otherwise be placed (for formats such as "12€50", as in "12€50 pour une omelette").
+
+Placement | Examples
+-------|-------
+Before|"¤#,##0.00" "¤ #,##0.00" "¤-#,##0.00" "¤ -#,##0.00" "-¤#,##0.00" "-¤ #,##0.00" …
+After|"#,##0.00¤" "#,##0.00 ¤" "#,##0.00-¤" "#,##0.00- ¤" "#,##0.00¤-" "#,##0.00 ¤-" …
+Decimal|"#,##0¤00"
+
+Below is a sample of patterns, special characters, and results:
+
+##### <a name="Sample_Patterns_and_Results" href="#Sample_Patterns_and_Results">Sample Patterns and Results</a>
+
+<table><tbody>
+<tr><th>explicit pattern:</th><td colspan="2">0.00;-0.00</td><td colspan="2">0.00;0.00-</td><td colspan="2">0.00+;0.00-</td></tr>
+<tr><th>decimalSign:</th><td colspan="2">,</td><td colspan="2">,</td><td colspan="2">,</td></tr>
+<tr><th>minusSign:</th><td colspan="2">∸</td><td colspan="2">∸</td><td colspan="2">∸</td></tr>
+<tr><th>plusSign:</th><td colspan="2">∔</td><td colspan="2">∔</td><td colspan="2">∔</td></tr>
+<tr><th>number:</th><td>3.1415</td><td>-3.1415</td><td>3.1415</td><td>-3.1415</td><td>3.1415</td><td>-3.1415</td></tr>
+<tr><th>formatted:</th><td>3,14</td><td>∸3,14</td><td>3,14</td><td>3,14∸</td><td>3,14∔</td><td>3,14∸</td></tr>
+</tbody></table>
+
+_In the above table, ∸ = U+2238 DOT MINUS and ∔ = U+2214 DOT PLUS are used for illustration._
+
+The prefixes, suffixes, and various symbols used for infinity, digits, thousands separators, decimal separators, and so on may be set to arbitrary values, and they will appear properly during formatting. _However, care must be taken that the symbols and strings do not conflict, or parsing will be unreliable._ For example, either the positive and negative prefixes or the suffixes must be distinct for any parser using this data to be able to distinguish positive from negative values. Another example is that the decimal separator and thousands separator should be distinct characters, or parsing will be impossible.
+
+The _grouping separator_ is a character that separates clusters of integer digits to make large numbers more legible. It is commonly used for thousands, but in some locales it separates ten-thousands. The _grouping size_ is the number of digits between the grouping separators, such as 3 for "100,000,000" or 4 for "1 0000 0000". There are actually two different grouping sizes: One used for the least significant integer digits, the _primary grouping size_, and one used for all others, the _secondary grouping size_. In most locales these are the same, but sometimes they are different. For example, if the primary grouping interval is 3, and the secondary is 2, then this corresponds to the pattern "#,##,##0", and the number 123456789 is formatted as "12,34,56,789". If a pattern contains multiple grouping separators, the interval between the last one and the end of the integer defines the primary grouping size, and the interval between the last two defines the secondary grouping size. All others are ignored, so "#,##,###,####" == "###,###,####" == "##,#,###,####".
+
+The grouping separator may also occur in the fractional part, such as in “#,##0.###,#”. This is most commonly done where the grouping separator character is a thin, non-breaking space (U+202F), such as “1.618 033 988 75”. See [physics.nist.gov/cuu/Units/checklist.html](https://physics.nist.gov/cuu/Units/checklist.html).
+
+For consistency in the CLDR data, the following conventions are observed:
+
+* All number patterns should be minimal: there should be no leading # marks except to specify the position of the grouping separators (for example, avoid ##,##0.###).
+* All formats should have one 0 before the decimal point (for example, avoid #,###.##)
+* Decimal formats should have three hash marks in the fractional position (for example, #,##0.###).
+* Currency formats should have two zeros in the fractional position (for example, ¤ #,##0.00).
+ * The exact number of decimals is overridden with the decimal count in supplementary data or by API settings.
+* The only time two thousands separators needs to be used is when the number of digits varies, such as for Hindi: #,##,##0.
+* The **minimumGroupingDigits** can be used to suppress groupings below a certain value. This is used for languages such as Polish, where one would only write the grouping separator for values above 9999. The minimumGroupingDigits contains the default for the locale.
+ * The attribute value is used by adding it to the grouping separator value. If the input number has fewer integer digits, the grouping separator is suppressed.
+ * ##### <a name="Examples_of_minimumGroupingDigits" href="#Examples_of_minimumGroupingDigits">Examples of minimumGroupingDigits</a>
+
+ | minimumGroupingDigits | Pattern Grouping | Input Number | Formatted |
+ | ---: | ---: | ---: | ---: |
+ | 1 | 3 | 1000 | 1,000 |
+ | 1 | 3 | 10000 | 10,000 |
+ | 2 | 3 | 1000 | 1000 |
+ | 2 | 3 | 10000 | 10,000 |
+ | 1 | 4 | 10000 | 1,0000 |
+ | 2 | 4 | 10000 | 10000 |
+
+#### 3.2.1 <a name="Explicit_Plus" href="#Explicit_Plus">Explicit Plus Signs</a>
+
+An explicit "plus" format can be formed, so as to show a visible + sign when formatting a non-negative number. The displayed plus sign can be an ASCII plus or another character, such as + U+FF0B FULLWIDTH PLUS SIGN or ➕ U+2795 HEAVY PLUS SIGN; it is taken from whatever is set for plusSign in _Section 2.3 [Number Symbols](#Number_Symbols)_.
+
+1. Get the negative subpattern (explicit or implicit).
+2. Replace any unquoted ASCII minus sign by an ASCII plus sign.
+3. If there are any replacements, use that for the positive subpattern.
+
+For an example, see [Sample Patterns and Results](#Sample_Patterns_and_Results).
+
+### 3.3 <a name="Formatting" href="#Formatting">Formatting</a>
+
+Formatting is guided by several parameters, all of which can be specified either using a pattern or using an external API designed for number formatting. The following description applies to formats that do not use [scientific notation](#sci) or [significant digits](#sigdig).
+
+* If the number of actual integer digits exceeds the _maximum integer digits_, then only the least significant digits are shown. For example, 1997 is formatted as "97" if the maximum integer digits is set to 2.
+* If the number of actual integer digits is less than the _minimum integer digits_, then leading zeros are added. For example, 1997 is formatted as "01997" if the minimum integer digits is set to 5.
+* If the number of actual fraction digits exceeds the _maximum fraction digits_, then half-even rounding it performed to the maximum fraction digits. For example, 0.125 is formatted as "0.12" if the maximum fraction digits is 2. This behavior can be changed by specifying a rounding increment and a rounding mode.
+* If the number of actual fraction digits is less than the _minimum fraction digits_, then trailing zeros are added. For example, 0.125 is formatted as "0.1250" if the minimum fraction digits is set to 4.
+* Trailing fractional zeros are not displayed if they occur _j_ positions after the decimal, where _j_ is less than the maximum fraction digits. For example, 0.10004 is formatted as "0.1" if the maximum fraction digits is four or less.
+
+**Special Values**
+
+`NaN` is represented as a single character, typically `(U+FFFD)` . This character is determined by the localized number symbols. This is the only value for which the prefixes and suffixes are not used.
+
+Infinity is represented as a single character, typically ∞ `(U+221E)` , with the positive or negative prefixes and suffixes applied. The infinity character is determined by the localized number symbols.
+
+### 3.4 <a name="sci" href="#sci">Scientific Notation</a>
+
+Numbers in scientific notation are expressed as the product of a mantissa and a power of ten, for example, 1234 can be expressed as 1.234 x 103. The mantissa is typically in the half-open interval [1.0, 10.0) or sometimes [0.0, 1.0), but it need not be. In a pattern, the exponent character immediately followed by one or more digit characters indicates scientific notation. Example: "0.###E0" formats the number 1234 as "1.234E3".
+
+* The number of digit characters after the exponent character gives the minimum exponent digit count. There is no maximum. Negative exponents are formatted using the localized minus sign, _not_ the prefix and suffix from the pattern. This allows patterns such as "0.###E0 m/s". To prefix positive exponents with a localized plus sign, specify '+' between the exponent and the digits: "0.###E+0" will produce formats "1E+1", "1E+0", "1E-1", and so on. (In localized patterns, use the localized plus sign rather than '+'.)
+* The minimum number of integer digits is achieved by adjusting the exponent. Example: 0.00123 formatted with "00.###E0" yields "12.3E-4". This only happens if there is no maximum number of integer digits. If there is a maximum, then the minimum number of integer digits is fixed at one.
+* The maximum number of integer digits, if present, specifies the exponent grouping. The most common use of this is to generate _engineering notation_, in which the exponent is a multiple of three, for example, "##0.###E0". The number 12345 is formatted using "##0.####E0" as "12.345E3".
+* When using scientific notation, the formatter controls the digit counts using logic for significant digits. The maximum number of significant digits comes from the mantissa portion of the pattern: the string of #, 0, and period (".") characters immediately preceding the E. To get the maximum number of significant digits, use the following algorithm:
+
+ 1. If the mantissa pattern contains a period:
+ 1. If the mantissa pattern contains at least one 0:
+ * Return the number of 0s before the period added to the number of #s or 0s after the period
+ 2. Else:
+ * Return 1 plus the number of #s after the period
+ 2. Else:
+ 1. If the mantissa pattern contains at least one 0:
+ * Return the number of 0s.
+ 2. Else:
+ * Return positive infinity.
+
+ Examples:
+
+ * 0.##E0 means a max of 3 significant digits.
+ * #.##E0 also means a max of 3 significant digits.
+ * #.0#E0 means a max of 2 significant digits.
+ * 0E0 means a max of 1 significant digit.
+ * #E0 means infinite precision.
+ * ###E0 means engineering notation with infinite precision.
+* Exponential patterns may not contain grouping separators.
+
+### 3.5 <a name="sigdig" href="#sigdig">Significant Digits</a>
+
+There are two ways of controlling how many digits are shows: (a) significant digits counts, or (b) integer and fraction digit counts. Integer and fraction digit counts are described above. When a formatter is using significant digits counts, it uses however many integer and fraction digits are required to display the specified number of significant digits. It may ignore min/max integer/fraction digits, or it may use them to the extent possible.
+
+##### <a name="Significant_Digits_Examples" href="#Significant_Digits_Examples">Significant Digits Examples</a>
+
+| Pattern | Minimum significant digits | Maximum significant digits | Number | Output |
+| :-- | :-- | :-- | :-- | :-- |
+| `@@@` | 3 | 3 | 12345 | `12300` |
+| `@@@` | 3 | 3 | 0.12345 | `0.123` |
+| `@@##` | 2 | 4 | 3.14159 | `3.142` |
+| `@@##` | 2 | 4 | 1.23004 | `1.23` |
+
+* In order to enable significant digits formatting, use a pattern containing the `'@'` pattern character. In order to disable significant digits formatting, use a pattern that does not contain the `'@'` pattern character.
+* Significant digit counts may be expressed using patterns that specify a minimum and maximum number of significant digits. These are indicated by the `'@'` and `'#'` characters. The minimum number of significant digits is the number of `'@'` characters. The maximum number of significant digits is the number of `'@'` characters plus the number of `'#'` characters following on the right. For example, the pattern `"@@@"` indicates exactly 3 significant digits. The pattern `"@##"` indicates from 1 to 3 significant digits. Trailing zero digits to the right of the decimal separator are suppressed after the minimum number of significant digits have been shown. For example, the pattern `"@##"` formats the number 0.1203 as `"0.12"`.
+* Implementations may forbid the use of significant digits in combination with min/max integer/fraction digits. In such a case, if a pattern uses significant digits, it may not contain a decimal separator, nor the `'0'` pattern character. Patterns such as `"@00"` or `"@.###"` would be disallowed.
+* Any number of `'#'` characters may be prepended to the left of the leftmost `'@'` character. These have no effect on the minimum and maximum significant digits counts, but may be used to position grouping separators. For example, `"#,#@#"` indicates a minimum of one significant digits, a maximum of two significant digits, and a grouping size of three.
+* The number of significant digits has no effect on parsing.
+* Significant digits may be used together with exponential notation. Such patterns are equivalent to a normal exponential pattern with a minimum and maximum integer digit count of one, a minimum fraction digit count of `Minimum Significant Digits - 1`, and a maximum fraction digit count of `Maximum Significant Digits - 1`. For example, the pattern `"@@###E0"` is equivalent to `"0.0###E0"`.
+
+### 3.6 <a name="Padding" href="#Padding">Padding</a>
+
+Patterns support padding the result to a specific width. In a pattern the pad escape character, followed by a single pad character, causes padding to be parsed and formatted. The pad escape character is '*'. For example, `"$*x#,##0.00"` formats 123 to `"$xx123.00"` , and 1234 to `"$1,234.00"` .
+
+* When padding is in effect, the width of the positive subpattern, including prefix and suffix, determines the format width. For example, in the pattern `"* #0 o''clock"`, the format width is 10.
+* Some parameters which usually do not matter have meaning when padding is used, because the pattern width is significant with padding. In the pattern "* ##,##,#,##0.##", the format width is 14. The initial characters "##,##," do not affect the grouping size or maximum integer digits, but they do affect the format width.
+* Padding may be inserted at one of four locations: before the prefix, after the prefix, before the suffix, or after the suffix. No padding can be specified in any other location. If there is no prefix, before the prefix and after the prefix are equivalent, likewise for the suffix.
+* When specified in a pattern, the code point immediately following the pad escape is the pad character. This may be any character, including a special pattern character. That is, the pad escape _escapes_ the following character. If there is no character after the pad escape, then the pattern is illegal.
+
+### 3.7 <a name="Rounding" href="#Rounding">Rounding</a>
+
+Patterns support rounding to a specific increment. For example, 1230 rounded to the nearest 50 is 1250. Mathematically, rounding to specific increments is performed by dividing by the increment, rounding to an integer, then multiplying by the increment. To take a more bizarre example, 1.234 rounded to the nearest 0.65 is 1.3, as follows:
+
+<table><tbody>
+<tr><th>Original:</th><td>1.234</td></tr>
+<tr><th>Divide by increment (0.65):</th><td>1.89846…</td></tr>
+<tr><th>Round:</th><td>2</td></tr>
+<tr><th>Multiply by increment (0.65):</th><td>1.3</td></tr>
+</tbody></table>
+
+To specify a rounding increment in a pattern, include the increment in the pattern itself. "#,#50" specifies a rounding increment of 50. "#,##0.05" specifies a rounding increment of 0.05.
+
+* Rounding only affects the string produced by formatting. It does not affect parsing or change any numerical values.
+* An implementation may allow the specification of a _rounding mode_ to determine how values are rounded. In the absence of such choices, the default is to round "half-even", as described in IEEE arithmetic. That is, it rounds towards the "nearest neighbor" unless both neighbors are equidistant, in which case, it rounds towards the even neighbor. Behaves as for round "half-up" if the digit to the left of the discarded fraction is odd; behaves as for round "half-down" if it's even. Note that this is the rounding mode that minimizes cumulative error when applied repeatedly over a sequence of calculations.
+* Some locales use rounding in their currency formats to reflect the smallest currency denomination.
+* In a pattern, digits '1' through '9' specify rounding, but otherwise behave identically to digit '0'.
+
+### 3.8 <a name="Quoting_Rules" href="#Quoting_Rules">Quoting Rules</a>
+
+Single quotes, (**'**), enclose bits of the pattern that should be treated literally. Inside a quoted string, two single quotes ('') are replaced with a single one ('). For example: `'X '`#`' Q '` -> **X 1939 Q** (Literal strings `shaded`.)
+
+## 4 <a name="Currencies" href="#Currencies">Currencies</a>
+
+```xml
+<!ELEMENT currencies (alias | (default?, currency*, special*)) >
+<!ELEMENT currency (alias | (((pattern+, displayName*, symbol*) | (displayName+, symbol*, pattern*) | (symbol+, pattern*))?, decimal*, group*, special*)) >
+<!ELEMENT symbol ( #PCDATA ) >
+<!ATTLIST symbol choice ( true | false ) #IMPLIED > <!-- deprecated -->
+```
+
+> **Note:** The term "pattern" appears twice in the above. The first is for consistency with all other cases of pattern + displayName; the second is for backwards compatibility.
+
+```xml
+<currencies>
+ <currency type="USD">
+ <displayName>Dollar</displayName>
+ <symbol>$</symbol>
+ </currency>
+ <currency type ="JPY">
+ <displayName>Yen</displayName>
+ <symbol>¥</symbol>
+ </currency>
+ <currency type="PTE">
+ <displayName>Escudo</displayName>
+ <symbol>$</symbol>
+ </currency>
+</currencies>
+```
+
+In formatting currencies, the currency number format is used with the appropriate symbol from `<currencies>`, according to the currency code. The `<currencies>` list can contain codes that are no longer in current use, such as PTE. The `choice` attribute has been deprecated.
+
+The `count` attribute distinguishes the different plural forms, such as in the following:
+
+```xml
+<currencyFormats>
+ <unitPattern count="other">{0} {1}</unitPattern>
+ …
+<currencies>
+```
+
+```xml
+<currency type="ZWD">
+ <displayName>Zimbabwe Dollar</displayName>
+ <displayName count="one">Zimbabwe dollar</displayName>
+ <displayName count="other">Zimbabwe dollars</displayName>
+ <symbol>Z$</symbol>
+</currency>
+```
+
+Note on displayNames:
+* In general the region portion of the displayName should match the territory name, see **Part 2** _Section 1.2 [Locale Display Name Fields](tr35-general.md#locale_display_name_fields)_.
+* As a result, the English currency displayName in CLDR may not match the name in ISO 4217.
+
+To format a particular currency value "ZWD" for a particular numeric value _n_ using the (long) display name:
+
+1. If the numeric value is exactly 0 or 1, first see if there is a count with a matching explicit number (0 or 1). If so, use that string (see [Explicit 0 and 1 rules](#Explicit_0_1_rules)).
+2. Otherwise, determine the `count` value that corresponds to _n_ using the rules in _[Section 5 - Language Plural Rules](#Language_Plural_Rules)_
+3. Next, get the currency unitPattern.
+ 1. Look for a `unitPattern` element that matches the `count` value, starting in the current locale and then following the locale fallback chain up to, but not including root.
+ 2. If no matching `unitPattern` element was found in the previous step, then look for a `unitPattern` element that matches `count="other"`, starting in the current locale and then following the locale fallback chain up to root (which has a `unitPattern` element with `count="other"` for every unit type).
+ 3. The resulting unitPattern element indicates the appropriate positioning of the numeric value and the currency display name.
+4. Next, get the `displayName` element for the currency.
+ 1. Look for a `displayName` element that matches the `count` value, starting in the current locale and then following the locale fallback chain up to, but not including root.
+ 2. If no matching `displayName` element was found in the previous step, then look for a `displayName` element that matches `count="other"`, starting in the current locale and then following the locale fallback chain up to, but not including root.
+ 3. If no matching `displayName` element was found in the previous step, then look for a `displayName` element that with no count, starting in the current locale and then following the locale fallback chain up to root.
+ 4. If there is no `displayName` element, use the currency code itself (for example, "ZWD").
+5. Format the numeric value according to the locale. Use the locale’s `<decimalFormats …>` pattern, not the `<currencyFormats>` pattern that is used with the symbol (eg, Z$). As when formatting symbol currency values, reset the number of decimals according to the supplemental `<currencyData>` and use the currencyDecimal symbol if different from the decimal symbol.
+ 1. The number of decimals should be overridable in an API, so that clients can choose between “2 US dollars” and “2.00 US dollars”.
+6. Substitute the formatted numeric value for the {0} in the `unitPattern`, and the currency display name for the {1}.
+
+While for English this may seem overly complex, for some other languages different plural forms are used for different unit types; the plural forms for certain unit types may not use all of the plural-form tags defined for the language.
+
+For example, if the the currency is ZWD and the number is 1234, then the latter maps to `count="other"` for English. The unit pattern for that is "{0} {1}", and the display name is "Zimbabwe dollars". The final formatted number is then "1,234 Zimbabwe dollars".
+
+When the currency symbol is substituted into a pattern, there may be some further modifications, according to the following.
+
+```xml
+<currencySpacing>
+ <beforeCurrency>
+ <currencyMatch>[:^S:]</currencyMatch>
+ <surroundingMatch>[:digit:]</surroundingMatch>
+ <insertBetween> </insertBetween>
+ </beforeCurrency>
+ <afterCurrency>
+ <currencyMatch>[:^S:]</currencyMatch>
+ <surroundingMatch>[:digit:]</surroundingMatch>
+ <insertBetween> </insertBetween>
+ </afterCurrency>
+</currencySpacing>
+```
+
+This element controls whether additional characters are inserted on the boundary between the symbol and the pattern. For example, with the above `currencySpacing`, inserting the symbol "US$" into the pattern "#,##0.00¤" would result in an extra _no-break space_ inserted before the symbol, for example, "#,##0.00 US$". The `beforeCurrency` element governs this case, since we are looking _before_ the "¤" symbol. The `currencyMatch` is positive, since the "U" in "US$" is at the start of the currency symbol being substituted. The `surroundingMatch` is positive, since the character just before the "¤" will be a digit. Because these two conditions are true, the insertion is made.
+
+Conversely, look at the pattern "¤#,##0.00" with the symbol "US$". In this case, there is no insertion; the result is simply "US$#,##0.00". The `afterCurrency` element governs this case, since we are looking _after_ the "¤" symbol. The `surroundingMatch` is positive, since the character just after the "¤" will be a digit. However, the `currencyMatch` is **not** positive, since the "\$" in "US\$" is at the end of the currency symbol being substituted. So the insertion is not made.
+
+For more information on the matching used in the `currencyMatch` and `surroundingMatch` elements, see the main document _[Appendix E: Unicode Sets](tr35.md#Unicode_Sets)_.
+
+Currencies can also contain optional grouping, decimal data, and pattern elements. This data is inherited from the `<symbols>` in the same locale data (if not present in the chain up to root), so only the _differing_ data will be present. See the main document _Section 4.1 [Multiple Inheritance](tr35.md#Multiple_Inheritance)_.
+
+> **Note:** _Currency values should **never** be interchanged without a known currency code. You never want the number 3.5 interpreted as $3.50 by one user and €3.50 by another._ Locale data contains localization information for currencies, not a currency value for a country. A currency amount logically consists of a numeric value, plus an accompanying currency code (or equivalent). The currency code may be implicit in a protocol, such as where USD is implicit. But if the raw numeric value is transmitted without any context, then it has no definitive interpretation.
+
+Notice that the currency code is completely independent of the end-user's language or locale. For example, BGN is the code for Bulgarian Lev. A currency amount of <BGN, 1.23456×10³> would be localized for a Bulgarian user into "1 234,56 лв." (using Cyrillic letters). For an English user it would be localized into the string "BGN 1,234.56" The end-user's language is needed for doing this last localization step; but that language is completely orthogonal to the currency code needed in the data. After all, the same English user could be working with dozens of currencies. Notice also that the currency code is also independent of whether currency values are inter-converted, which requires more interesting financial processing: the rate of conversion may depend on a variety of factors.
+
+Thus logically speaking, once a currency amount is entered into a system, it should be logically accompanied by a currency code in all processing. This currency code is independent of whatever the user's original locale was. Only in badly-designed software is the currency code (or equivalent) not present, so that the software has to "guess" at the currency code based on the user's locale.
+
+> **Note:** The number of decimal places **and** the rounding for each currency is not locale-specific data, and is not contained in the Locale Data Markup Language format. Those values override whatever is given in the currency numberFormat. For more information, see _[Supplemental Currency Data](#Supplemental_Currency_Data)_.
+
+For background information on currency names, see [[CurrencyInfo](tr35.md#CurrencyInfo)].
+
+### 4.1 <a name="Supplemental_Currency_Data" href="#Supplemental_Currency_Data">Supplemental Currency Data</a>
+
+```xml
+<!ELEMENT currencyData ( fractions*, region+ ) >
+<!ELEMENT fractions ( info+ ) >
+
+<!ELEMENT info EMPTY >
+<!ATTLIST info iso4217 NMTOKEN #REQUIRED >
+<!ATTLIST info digits NMTOKEN #IMPLIED >
+<!ATTLIST info rounding NMTOKEN #IMPLIED >
+<!ATTLIST info cashDigits NMTOKEN #IMPLIED >
+<!ATTLIST info cashRounding NMTOKEN #IMPLIED >
+
+<!ELEMENT region ( currency* ) >
+<!ATTLIST region iso3166 NMTOKEN #REQUIRED >
+
+<!ELEMENT currency ( alternate* ) >
+<!ATTLIST currency from NMTOKEN #IMPLIED >
+<!ATTLIST currency to NMTOKEN #IMPLIED >
+<!ATTLIST currency iso4217 NMTOKEN #REQUIRED >
+<!ATTLIST currency tender ( true | false ) #IMPLIED >
+```
+
+Each `currencyData` element contains one `fractions` element followed by one or more `region` elements. Here is an example for illustration.
+
+```xml
+<supplementalData>
+ <currencyData>
+ <fractions>
+ …
+ <info iso4217="CHF" digits="2" rounding="5"/>
+ …
+ <info iso4217="ITL" digits="0"/>
+ …
+ </fractions>
+ …
+ <region iso3166="IT">
+ <currency iso4217="EUR" from="1999-01-01"/>
+ <currency iso4217="ITL" from="1862-8-24" to="2002-02-28"/>
+ </region>
+ …
+ <region iso3166="CS">
+ <currency iso4217="EUR" from="2003-02-04"/>
+ <currency iso4217="CSD" from="2002-05-15"/>
+ <currency iso4217="YUM" from="1994-01-24" to="2002-05-15"/>
+ </region>
+ …
+ </currencyData>
+ …
+</supplementalData>
+```
+
+The `fractions` element contains any number of `info` elements, with the following attributes:
+
+* **iso4217:** the ISO 4217 code for the currency in question. If a particular currency does not occur in the fractions list, then it is given the defaults listed for the next two attributes.
+* **digits:** the minimum and maximum number of decimal digits normally formatted. The default is 2. For example, in the en_US locale with the default value of 2 digits, the value 1 USD would format as "$1.00", and the value 1.123 USD would format as → "$1.12".
+* **rounding:** the rounding increment, in units of 10<sup>-digits</sup>. The default is 0, which means no rounding is to be done. Therefore, rounding=0 and rounding=1 have identical behavior. Thus with fraction digits of 2 and rounding increment of 5, numeric values are rounded to the nearest 0.05 units in formatting. With fraction digits of 0 and rounding increment of 50, numeric values are rounded to the nearest 50.
+* **cashDigits:** the number of decimal digits to be used when formatting quantities used in cash transactions (as opposed to a quantity that would appear in a more formal setting, such as on a bank statement). If absent, the value of "digits" should be used as a default.
+* **cashRounding:** the cash rounding increment, in units of 10-cashDigits. The default is 0, which means no rounding is to be done; and as with rounding, this has the same effect as cashRounding="1". This is the rounding increment to be used when formatting quantities used in cash transactions (as opposed to a quantity that would appear in a more formal setting, such as on a bank statement). If absent, the value of "rounding" should be used as a default.
+
+For example, the following line
+
+```xml
+<info iso4217="CZK" digits="2" rounding="0"/>
+```
+
+should cause the value 2.006 to be displayed as “2.01”, not “2.00”.
+
+Each `region` element contains one attribute:
+
+* **iso3166:** the ISO 3166 code for the region in question. The special value _XXX_ can be used to indicate that the region has no valid currency or that the circumstances are unknown (usually used in conjunction with _before_, as described below).
+
+And can have any number of `currency` elements, with the `ordered` subelements.
+
+```xml
+<region iso3166="IT"> <!-- Italy -->
+ <currency iso4217="EUR" from="2002-01-01"/>
+ <currency iso4217="ITL" to="2001-12-31"/>
+</region>
+```
+
+* **iso4217:** the ISO 4217 code for the currency in question. Note that some additional codes that were in widespread usage are included, others such as GHP are not included because they were never used.
+* **from:** the currency was valid from to the datetime indicated by the value. See the main document _Section 5.2.1 [Dates and Date Ranges](tr35.md#Date_Ranges)_.
+* **to:** the currency was valid up to the datetime indicated by the value of _before_. See the main document _Section 5.2.1 [Dates and Date Ranges](tr35.md#Date_Ranges)_.
+* **tender:** indicates whether or not the ISO currency code represents a currency that was or is legal tender in some country. The default is "true". Certain ISO codes represent things like financial instruments or precious metals, and do not represent normally interchanged currencies.
+
+
+That is, each `currency` element will list an interval in which it was valid. The _ordering_ of the elements in the list tells us which was the primary currency during any period in time. Here is an example of such an overlap:
+
+```xml
+<currency iso4217="CSD" to="2002-05-15"/>
+<currency iso4217="YUD" from="1994-01-24" to="2002-05-15"/>
+<currency iso4217="YUN" from="1994-01-01" to="1994-07-22"/>
+```
+
+The `from` element is limited by the fact that ISO 4217 does not go very far back in time, so there may be no ISO code for the previous currency.
+
+Currencies change relatively frequently. There are different types of changes:
+
+1. YU=>CS (name change)
+2. CS=>RS+ME (split, different names)
+3. SD=>SD+SS (split, same name for one // South Sudan splits from Sudan)
+4. DE+DD=>DE (Union, reuses one name // East Germany unifies with Germany)
+
+The [UN Information](https://unstats.un.org/unsd/methodology/m49/) is used to determine dates due to country changes.
+
+When a code is no longer in use, it is terminated (see #1, #2, #4, #5)
+
+> Example:
+>
+> * ```<currency iso4217="EUR" from="2003-02-04" to="2006-06-03"/>```
+
+When codes split, each of the new codes inherits (see #2, #3) the previous data. However, some modifications can be made if it is clear that currencies were only in use in one of the parts.
+
+When codes merge, the data is copied from the most populous part.
+
+> Example. When CS split into RS and ME:
+>
+> * RS & ME copy the former CS, except that the line for EUR is dropped from RS
+> * CS now terminates on Jun 3, 2006 (following the UN info)
+
+## 5 <a name="Language_Plural_Rules" href="#Language_Plural_Rules">Language Plural Rules</a>
+
+```xml
+<!ELEMENT plurals (pluralRules*, pluralRanges*) >
+<!ATTLIST plurals type ( ordinal | cardinal ) #IMPLIED > <!-- default is cardinal -->
+
+<!ELEMENT pluralRules (pluralRule*) >
+<!ATTLIST pluralRules locales NMTOKENS #REQUIRED >
+
+<!ELEMENT pluralRule ( #PCDATA ) >
+<!ATTLIST pluralRule count (zero | one | two | few | many | other) #REQUIRED >
+```
+
+The plural categories are used to format messages with numeric placeholders, expressed as decimal numbers. The fundamental rule for determining plural categories is the existence of minimal pairs: whenever two different numbers may require different versions of the same message, then the numbers have different plural categories.
+
+This happens even if nouns are invariant; even if all English nouns were invariant (like “sheep”), English would still require 2 plural categories because of subject-verb agreement, and pronoun agreement. For example:
+
+1. 1 sheep **is** here. Do you want to buy **it**?
+2. 2 sheep **are** here. Do you want to buy **them**?
+
+For more information, see [Determining-Plural-Categories](http://cldr.unicode.org/index/cldr-spec/plural-rules#TOC-Determining-Plural-Categories).
+
+English does not have a separate plural category for “zero”, because it does not require a different message for “0”. For example, the same message can be used below, with just the numeric placeholder changing.
+
+1. You have 3 friends online.
+2. You have 0 friends online.
+
+However, across many languages it is commonly more natural to express "0" messages with a negative (“None of your friends are online.”) and "1" messages also with an alternate form “You have a friend online.”. Thus pluralized message APIs should also offer the ability to specify at least the 0 and 1 cases explicitly; developers can use that ability whenever these values might occur in a placeholder.
+
+The CLDR plural rules are not expected to cover all cases. For example, strictly speaking, there could be more plural and ordinal forms for English. Formally, we have a different plural form where a change in digits forces a change in the rest of the sentence. There is an edge case in English because of the behavior of "a/an".
+
+For example, in changing from 3 to 8:
+
+* "a 3rd of a loaf" should result in "an 8th of a loaf", not "a 8th of a loaf"
+* "a 3 foot stick" should result in "an 8 foot stick", not "a 8 foot stick"
+
+So numbers of the following forms could have a special plural category and special ordinal category: 8(X), 11(X), 18(X), 8x(X), where x is 0..9 and the optional X is 00, 000, 00000, and so on.
+
+On the other hand, the above constructions are relatively rare in messages constructed using numeric placeholders, so the disruption for implementations currently using CLDR plural categories wouldn't be worth the small gain.
+
+This section defines the types of plural forms that exist in a language—namely, the cardinal and ordinal plural forms. Cardinal plural forms express units such as time, currency or distance, used in conjunction with a number expressed in decimal digits (i.e. "2", not "two", and not an indefinite number such as "some" or "many"). Ordinal plural forms denote the order of items in a set and are always integers. For example, English has two forms for cardinals:
+
+* form "one": 1 day
+* form "other": 0 days, 2 days, 10 days, 0.3 days
+
+and four forms for ordinals:
+
+* form "one": 1st floor, 21st floor, 101st floor
+* form "two": 2nd floor, 22nd floor, 102nd floor
+* form "few": 3rd floor, 23rd floor, 103rd floor
+* form "other": 4th floor, 11th floor, 96th floor
+
+Other languages may have additional forms or only one form for each type of plural. CLDR provides the following tags for designating the various plural forms of a language; for a given language, only the tags necessary for that language are defined, along with the specific numeric ranges covered by each tag (for example, the plural form "few" may be used for the numeric range 2–4 in one language and 3–9 in another):
+
+* zero (see also plural case “0”, described in [Explicit 0 and 1 rules](#Explicit_0_1_rules))
+* one (see also plural case “1”, described in [Explicit 0 and 1 rules](#Explicit_0_1_rules))
+* two
+* few
+* many
+
+In addition, an "other" tag is always implicitly defined to cover the forms not explicitly designated by the tags defined for a language. This "other" tag is also used for languages that only have a single form (in which case no plural-form tags are explicitly defined for the language). For a more complex example, consider the cardinal rules for Russian and certain other languages:
+
+```xml
+<pluralRules locales="hr ru sr uk">
+ <pluralRules count="one">n mod 10 is 1 and n mod 100 is not 11</pluralRule>
+ <pluralRules count="few">n mod 10 in 2..4 and n mod 100 not in 12..14</pluralRule>
+</pluralRules>
+```
+
+These rules specify that Russian has a "one" form (for 1, 21, 31, 41, 51, …), a "few" form (for 2–4, 22–24, 32–34, …), and implicitly an "other" form (for everything else: 0, 5–20, 25–30, 35–40, …, decimals). Russian does not need additional separate forms for zero, two, or many, so these are not defined.
+
+A source number represents the visual appearance of the digits of the result. In text, it can be represented by the EBNF for decimalValue. Note that the same double number can be represented by multiple source numbers. For example, "1.0" and "1.00" are different source numbers, but there is only one double number that they correspond to: 1.0d == 1.00d. As another example, 1e3d == 1000d, but the source numbers "1e3" and "1000" are different, and can have different plural categories. So the input to the plural rules carries more information than a computer double. The plural category for negative numbers is calculated according to the absolute value of the source number, and leading integer digits don't have any effect on the plural category calculation. (This may change in the future, if we find languages that have different behavior.)
+
+Plural categories may also differ according to the visible decimals. For example, here are some of the behaviors exhibited by different languages:
+
+| Behavior | Description | Example |
+| --- | --- | --- |
+| Base | The fractions are ignored; the category is the same as the category of the integer. | 1.13 has the same plural category as 1. |
+| Separate | All fractions by value are in one category (typically ‘other’ = ‘plural’). | 1.01 gets the same class as 9; <br/> 1.00 gets the same category as 1. |
+| Visible | All visible fractions are in one category (typically ‘other’ = ‘plural). | 1.00, 1.01, 3.5 all get the same category. |
+| Digits | The visible fraction determines the category. | 1.13 gets the same class as 13. |
+
+There are also variants of the above: for example, short fractions may have the Digits behavior, but longer fractions may just look at the final digit of the fraction.
+
+#### <a name="Explicit_0_1_rules" href="#Explicit_0_1_rules">Explicit 0 and 1 rules</a>
+
+Some types of CLDR data (such as [unitPatterns](tr35-general.md#Unit_Elements) and [currency displayNames](#Currencies)) allow specification of plural rules for explicit cases “0” and “1”, in addition to the language-specific plural cases specified above: “zero”, “one”, “two” ... “other”. For the language-specific plural rules:
+
+* The rules depend on language; for a given language, only a subset of the cases may be defined. For example, English only defines “one” and “other”, cases like “two” and “few” cannot be used in plurals for English CLDR items.
+* Each plural case may cover multiple numeric values, and may depend on the formatting of those values. For example, in French the “one” case covers 0.0 through 1.99.
+* The “one” case, if defined, includes at least some formatted forms of the numeric value 1; the “zero” case, if defined, includes at least some formatted forms of the numeric value 0.
+
+By contrast, for the explicit cases “0” and “1”:
+
+* The explicit “0” and “1” cases are not defined by language-specific rules, and are available in any language for the CLDR data items that accept them.
+* The explicit “0” and “1” cases apply to the exact numeric values 0 and 1 respectively. These cases are typically used for plurals of items that do not have fractional value, like books or files.
+* The explicit “0” and “1” cases have precedence over the “zero” and “one” cases. For example, if for a particular element CLDR data includes values for both the “1” and “one” cases, then the “1” value is used for numeric values of exactly 1, while the “one” value is used for any other formatted numeric values matching the “one” plural rule for the language.
+
+Usage example: In English (which only defines language-specific rules for “one” and “other”) this can be used to have special behavior for 0:
+
+* count=“0”: no books
+* count=“one”: {0} book, e.g. “1 book”
+* count=“other”: {0} books, e.g. “3 books”
+
+### 5.1 <a name="Plural_rules_syntax" href="#Plural_rules_syntax">Plural rules syntax</a>
+
+The xml value for each pluralRule is a _condition_ with a boolean result that specifies whether that rule (i.e. that plural form) applies to a given numeric value _n_, where n can be expressed as a decimal fraction or with compact decimal formatting, denoted by a special notation in the syntax, e.g., “1.2c6” for “1.2M”. Clients of CLDR may express all the rules for a locale using the following syntax:
+
+```
+rules = rule (';' rule)*
+rule = keyword ':' condition samples
+ | 'other' ':' samples
+keyword = [a-z]+
+keyword = [a-z]+
+```
+
+In CLDR, the keyword is the attribute value of 'count'. Those values in CLDR are currently limited to just what is in the DTD, but clients may support other values.
+
+The conditions themselves have the following syntax.
+
+```
+condition = and_condition ('or' and_condition)*
+samples = ('@integer' sampleList)?
+ ('@decimal' sampleList)?
+and_condition = relation ('and' relation)*
+relation = is_relation | in_relation | within_relation
+is_relation = expr 'is' ('not')? value
+in_relation = expr (('not')? 'in' | '=' | '!=') range_list
+within_relation = expr ('not')? 'within' range_list
+expr = operand (('mod' | '%') value)?
+operand = 'n' | 'i' | 'f' | 't' | 'v' | 'w' | 'c' | 'e'
+range_list = (range | value) (',' range_list)*
+range = value'..'value
+value = digit+
+sampleList = sampleRange (',' sampleRange)* (',' ('…'|'...'))?
+sampleRange = sampleValue ('~' sampleValue)?
+sampleValue = value ('.' digit+)? ([ce] digitPos digit+)?
+digit = [0-9]
+digitPos = [1-9]
+```
+
+* Whitespace (defined as Unicode [Pattern_White_Space](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5Cp%7BPattern_White_Space%7D)) can occur between or around any of the above tokens, with the exception of the tokens in value, digit, and decimalValue.
+* In the syntax, **and** binds more tightly than **or**. So **X or Y and Z** is interpreted as **(X or (Y and Z))**.
+* Each plural rule must be written to be self-contained, and not depend on the ordering. Thus rules must be mutually exclusive; for a given numeric value, only one rule can apply (i.e., the condition can only be true for one of the pluralRule elements. Each keyword can have at most one condition. The 'other' keyword must have an empty condition: it is only present for samples.
+* The samples should be included, since they are used by client software for samples and determining whether the keyword has finite values or not.
+* The 'other' keyword must have no condition, and all other keywords must have a condition.
+
+#### 5.1.1 <a name="Operands" href="#Operands">Operands</a>
+
+The operands correspond to features of the source number, and have the following meanings.
+
+##### <a name="Plural_Operand_Meanings" href="#Plural_Operand_Meanings">Plural Operand Meanings</a>
+
+| Symbol | Value |
+| --- | --- |
+| n | absolute value of the source number. |
+| i | integer digits of n. |
+| v | number of visible fraction digits in n, _with_ trailing zeros.* |
+| w | number of visible fraction digits in n, _without_ trailing zeros.* |
+| f | visible fraction digits in n, _with_ trailing zeros.* |
+| t | visible fraction digits in n, _without_ trailing zeros.* |
+| c | compact decimal exponent value: exponent of the power of 10 used in compact decimal formatting. |
+| e | currently, synonym for ‘c’. however, may be redefined in the future. |
+
+\* If there is a compact decimal exponent value (‘c’), then the f, t, v, and w values are computed _after_ shifting the decimal point in the original by the ‘c’ value. So for 1.2c3, the f, t, v, and w values are the same as those of 1200: i=1200 and f=0. Similarly, for 1.2005c3 has i=1200 and f=5 (corresponding to 1200.5).
+
+##### <a name="Plural_Operand_Examples" href="#Plural_Operand_Examples">Plural Operand Examples</a>
+
+| source | n | i | v | w | f | t | e |
+| ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
+| 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
+| 1.0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
+| 1.00 | 1 | 1 | 2 | 0 | 0 | 0 | 0 |
+| 1.3 | 1.3 | 1 | 1 | 1 | 3 | 3 | 0 |
+| 1.30 | 1.3 | 1 | 2 | 1 | 30 | 3 | 0 |
+| 1.03 | 1.03 | 1 | 2 | 2 | 3 | 3 | 0 |
+| 1.230 | 1.23 | 1 | 3 | 2 | 230 | 23 | 0 |
+| 1200000 | 1200000 | 1200000 | 0 | 0 | 0 | 0 | 0 |
+| 1.2c6 | 1200000 | 1200000 | 0 | 0 | 0 | 0 | 6 |
+| 123c6 | 123000000 | 123000000 | 0 | 0 | 0 | 0 | 6 |
+| 123c5 | 12300000 | 12300000 | 0 | 0 | 0 | 0 | 5 |
+| 1200.50 | 1200.5 | 1200 | 2 | 1 | 50 | 5 | 0 |
+| 1.20050c3 | 1200.5 | 1200 | 2 | 1 | 50 | 5 | 3 |
+
+
+#### 5.1.2 <a name="Relations" href="#Relations">Relations</a>
+
+The positive relations are of the format **x = y** and **x = y mod z**. The **y** value can be a comma-separated list, such as **n = 3, 5, 7..15**, and is treated as if each relation were expanded into an OR statement. The range value **a..b** is equivalent to listing all the _**integers**_ between **a** and **b**, inclusive. When **!=** is used, it means the entire relation is negated.
+
+##### <a name="Relations_Examples" href="#Relations_Examples">Relations Examples</a>
+
+| Expression | Meaning |
+| --- | --- |
+| x = 2..4, 15 | x = 2 OR x = 3 OR x = 4 OR x = 15 |
+| x != 2..4, 15 | NOT (x = 2 OR x = 3 OR x = 4 OR x = 15) |
+
+| Expression | Value |
+| --- | --- |
+| 3.5 = 2..4, 15 | false |
+| 3.5 != 2..4, 15 | true |
+| 3 = 2..4, 15 | true |
+| 3 != 2..4, 15 | false |
+
+> The old keywords 'mod', 'in', 'is', and 'within' are present only for backwards compatibility. The preferred form is to use '%' for modulo, and '=' or '!=' for the relations, with the operand 'i' instead of within. (The difference between **in** and **within** is that **in** only includes integers in the specified range, while **within** includes all values.)
+
+The modulus (% or **mod**) is a remainder operation as defined in Java; for example, where **n** = 4.3 the result of **n mod 3** is 1.3.
+
+The values of relations are defined according to the operand as follows. Importantly, the results may depend on the visible decimals in the source, including trailing zeros, and the compact decimal exponent.
+
+1. Let the base value BV be computed from absolute value of the original source number according to the operand.
+2. Let R be false when the comparison contains ‘not’.
+3. Let R be !R if the comparison contains ‘within’ and the source number is not an integer.
+4. If there is a module value MV, let BV be BV - floor(BV/MV).
+5. Let CR be the list of comparison ranges, normalized that overlapping ranges are merged. Single values in the rule are represented by a range with identical \<starti, endi> values.
+6. Iterate through CR:
+ * if starti ≤ BV ≤ endi then return R.
+7. Otherwise return !R.
+
+##### <a name="Plural_Rules_Examples" href="#Plural_Rules_Examples">Plural Rules Examples</a>
+
+| Rules | Comments |
+| --- | --- |
+| one: n = 1 <br/> few: n = 2..4 | This defines two rules, for 'one' and 'few'. The condition for 'one' is "n = 1" which means that the number must be equal to 1 for this condition to pass. The condition for 'few' is "n = 2..4" which means that the number must be between 2 and 4 inclusive for this condition to pass. All other numbers are assigned the keyword 'other' by the default rule. |
+| zero: n = 0 or n != 1 and n mod 100 = 1..19 <br/> one: n = 1 | Each rule must not overlap with other rules. Also note that a modulus is applied to n in the last rule, thus its condition holds for 119, 219, 319… |
+| one: n = 1 <br/> few: n mod 10 = 2..4 and n mod 100 != 12..14 | This illustrates conjunction and negation. The condition for 'few' has two parts, both of which must be met: "n mod 10 = 2..4" and "n mod 100 != 12..14". The first part applies a modulus to n before the test as in the previous example. The second part applies a different modulus and also uses negation, thus it matches all numbers _not_ in 12, 13, 14, 112, 113, 114, 212, 213, 214… |
+
+#### 5.1.3 <a name="Samples" href="#Samples">Samples</a>
+
+Samples are provided if sample indicator (@integer or @decimal) is present on any rule. (CLDR always provides samples.)
+
+Where samples are provided, the absence of one of the sample indicators indicates that no numeric values can satisify that rule. For example, the rule "i = 1 and v = 0" can only have integer samples, so @decimal must not occur. The @integer samples have no visible fraction digits, while @decimal samples have visible fraction digits; both can have compact decimal exponent values (if the 'e' operand occurs).
+
+The sampleRanges have a special notation: **start**~**end**. The **start** and **end** values must have the same number of decimal digits, and the same compact decimal exponent values (or neither have compact decimal exponent values). The range encompasses all and only values those value **v** where **start ≤ v ≤ end**, and where **v** has the same number of decimal places as **start** and **end**, and the same compact decimal exponent values.
+
+Samples must indicate whether they are infinite or not. The '…' marker must be present if and only infinitely many values (integer or decimal) can satisfy the rule. If a set is not infinite, it must list all the possible values.
+
+##### <a name="Plural_Samples_Examples" href="#Plural_Samples_Examples">Plural Samples Examples</a>
+
+| Rules | Comments |
+| --- | --- |
+| @integer 1, 3~5 | 1, 3, 4, 5. |
+| @integer 3\~5, 103\~105, … | Infinite set: 3, 4, 5, 103, 104, 105, … |
+| @decimal 1.3\~1.5, 1.03\~1.05, … | Infinite set: 1.3, 1.4, 1.5, 1.03, 1.04, 1.05, … |
+
+In determining whether a set of samples is infinite, leading zero integer digits and trailing zero decimals are not significant. Thus "i = 1000 and f = 0" is satisfied by 01000, 1000, 1000.0, 1000.00, 1000.000, 01c3 etc. but is still considered finite.
+
+#### 5.1.4 <a name="Using_cardinals" href="#Using_cardinals">Using Cardinals</a>
+
+Elements such as `<currencyFormats>`, `<currency>` and `<unit>` provide selection among subelements designating various localized cardinal plural forms by tagging each of the relevant subelements with a different count value, or with no count value in some cases. Note that the plural forms for a specific currencyFormat, unit type, or currency type may not use all of the different plural-form tags defined for the language. To format a currency or unit type for a particular numeric value, determine the count value according to the plural rules for the language, then select the appropriate display form for the currency format, currency type or unit type using the rules in those sections:
+
+* 2.3 [Number Symbols](#Number_Symbols) (for `currencyFormat`s elements)
+* Section 4 [Currencies](#Currencies) (for `currency` elements)
+* The main document section 5.11 [Unit Elements](tr35.md#Unit_Elements)
+
+### 5.2 <a name="Plural_Ranges" href="#Plural_Ranges">Plural Ranges</a>
+
+```xml
+<!ELEMENT pluralRanges (pluralRange*) >
+<!ATTLIST pluralRanges locales NMTOKENS #REQUIRED >
+
+<!ELEMENT pluralRange ( #PCDATA ) >
+<!ATTLIST pluralRange start (zero|one|two|few|many|other) #IMPLIED >
+<!ATTLIST pluralRange end (zero|one|two|few|many|other) #IMPLIED >
+<!ATTLIST pluralRange result (zero|one|two|few|many|other) #REQUIRED >
+```
+
+Often ranges of numbers are presented to users, such as in “Length: 3.2–4.5 centimeters”. This means any length from 3.2 cm to 4.5 cm, inclusive. However, different languages have different conventions for the pluralization given to a range: should it be “0–1 centimeter” or “0–1 centimeters”? This becomes much more complicated for languages that have many different plural forms, such as Russian or Arabic.
+
+The `pluralRanges` element provides information allowing an implementation to derive the plural category of a range from the plural categories of the `start` and `end` values. If there is no value for a _<`start`,`end`>_ pair, the default result is `end`. However, where that result has been verified for a given language, it is included in the CLDR data.
+
+The data has been gathered presuming that in any usage, the start value is strictly less than the end value, and that no values are negative. Results for any cases that do not meet these criteria are undefined.
+
+## 6 <a name="Rule-Based_Number_Formatting" href="#Rule-Based_Number_Formatting">Rule-Based Number Formatting</a>
+
+```xml
+<!ELEMENT rbnf ( alias | rulesetGrouping*) >
+
+<!ELEMENT rulesetGrouping ( alias | ruleset*) >
+<!ATTLIST rulesetGrouping type NMTOKEN #REQUIRED>
+
+<!ELEMENT ruleset ( alias | rbnfrule*) >
+<!ATTLIST ruleset type NMTOKEN #REQUIRED>
+<!ATTLIST ruleset access ( public | private ) #IMPLIED >
+
+<!ELEMENT rbnfrule ( #PCDATA ) >
+<!ATTLIST rbnfrule value CDATA #REQUIRED >
+<!ATTLIST rbnfrule radix CDATA #IMPLIED >
+<!ATTLIST rbnfrule decexp CDATA #IMPLIED >
+```
+
+The rule-based number format (RBNF) encapsulates a set of rules for mapping binary numbers to and from a readable representation. They are typically used for spelling out numbers, but can also be used for other number systems like roman numerals, Chinese numerals, or for ordinal numbers (1st, 2nd, 3rd,…).
+
+Where, however, the CLDR plurals or ordinals can be used, their usage is recommended in preference to the RBNF data. First, the RBNF data is not completely fleshed out over all languages that otherwise have modern coverage. Secondly, the alternate forms are neither complete, nor useful without additional information. For example, for German there is spellout-cardinal-masculine, and spellout-cardinal-feminine. But a complete solution would have all genders (masculine/feminine/neuter), all cases (nominative, accusative, dative, genitive), plus context (with strong or weak determiner or none). Moreover, even for the alternate forms that do exist, CLDR does not supply any data for when to use one vs another (eg, when to use spellout-cardinal-masculine vs spellout-cardinal-feminine). So these data are inappropriate for general purpose software.
+
+There are 4 common spellout rules. Some languages may provide more than these 4 types:
+
+* **numbering:** This is the default used when there is no context for the number. For many languages, this may also be used for enumeration of objects, like used when pronouncing "table number one" and "table number two". It can also be used for pronouncing a math equation, like "2 - 3 = -1".
+* **numbering-year:** This is used for cases where years are pronounced or written a certain way. An example in English is the year 1999, which comes out as "nineteen ninety-nine" instead of the numbering value "one thousand nine hundred ninety-nine". The rules for this type have undefined behavior for non-integer numbers, and values less than 1.
+* **cardinal:** This is used when providing the quantity of the number of objects. For many languages, there may not be a default cardinal type. Many languages require the notion of the gender and other grammatical properties so that the number and the objects being referenced are in grammatical agreement. An example of its usage is "one e-mail", "two people" or "three kilometers". Some languages may not have dedicated words for 0 or negative numbers for cardinals. In those cases, the words from the numbering type can be reused.
+* **ordinal:** This is used when providing the order of the number of objects. For many languages, there may not be a default ordinal type. Many languages also require the notion of the gender for ordinal so that the ordinal number and the objects being referenced are in grammatical agreement. An example of its usage is "first place", "second e-mail" or "third house on the right". The rules for this type have undefined behavior for non-integer numbers, and values less than 1.
+
+In addition to the spellout rules, there are also a numbering system rules. Even though they may be derived from a specific culture, they are typically not translated and the rules are in **root**. An example of these rules are the Roman numerals where the value 8 comes out as VIII.
+
+With regards to the number range supported for all these number types, the largest possible number range tries to be supported, but some languages may not have words for large numbers. For example, the old Roman numbering system can't support the value 5000 and beyond. For those unsupported cases, the default number format from CLDR is used.
+
+Any rules marked as **private** should never be referenced externally. Frequently they only support a subrange of numbers that are used in the public rules.
+
+The syntax used in the CLDR representation of rules is intended to be simply a transcription of ICU based RBNF rules into an XML compatible syntax. The rules are fairly sophisticated; for details see _Rule-Based Number Formatter_ [[RBNF](tr35.md#RBNF)].
+
+```xml
+<ruleSetGrouping>
+```
+
+Used to group rules into functional sets for use with ICU. Currently, the valid types of rule set groupings are "SpelloutRules", "OrdinalRules", and "NumberingSystemRules".
+
+```xml
+<ruleset>
+```
+
+This element denotes a specific rule set to the number formatter. The ruleset is assumed to be a public ruleset unless the attribute type="private" is specified.
+
+```xml
+<rule>
+```
+
+Contains the actual formatting rule for a particular number or sequence of numbers. The `value` attribute is used to indicate the starting number to which the rule applies. The actual text of the rule is identical to the ICU syntax, with the exception that Unicode left and right arrow characters are used to replace < and > in the rule text, since < and > are reserved characters in XML. The `radix` attribute is used to indicate an alternate radix to be used in calculating the prefix and postfix values for number formatting. Alternate radix values are typically used for formatting year numbers in formal documents, such as "nineteen hundred seventy-six" instead of "one thousand nine hundred seventy-six".
+
+## 7 <a name="Parsing_Numbers" href="#Parsing_Numbers">Parsing Numbers</a>
+
+The following elements are relevant to determining the value of a parsed number:
+
+* A possible prefix or suffix, indicating sign
+* A possible currency symbol or code
+* Decimal digits
+* A possible decimal separator
+* A possible exponent
+* A possible percent or per mille character
+
+Other characters should either be ignored, or indicate the end of input, depending on the application. The key point is to disambiguate the sets of characters that might serve in more than one position, based on context. For example, a period might be either the decimal separator, or part of a currency symbol (for example, "NA f."). Similarly, an "E" could be an exponent indicator, or a currency symbol (the Swaziland Lilangeni uses "E" in the "en" locale). An apostrophe might be the decimal separator, or might be the grouping separator.
+
+Here is a set of heuristic rules that may be helpful:
+
+* Any character with the decimal digit property is unambiguous and should be accepted.
+
+ **Note:** In some environments, applications may independently wish to restrict the decimal digit set to prevent security problems. See [[UTR36](https://www.unicode.org/reports/tr41/#UTR36)].
+
+* The exponent character can only be interpreted as such if it occurs after at least one digit, and if it is followed by at least one digit, with only an optional sign in between. A regular expression may be helpful here.
+* For the sign, decimal separator, percent, and per mille, use a set of all possible characters that can serve those functions. For example, the decimal separator set could include all of [.,']. (The actual set of characters can be derived from the number symbols in the By-Type charts [[ByType](tr35.md#ByType)], which list all of the values in CLDR.) To disambiguate, the decimal separator for the locale must be removed from the "ignore" set, and the grouping separator for the locale must be removed from the decimal separator set. The same principle applies to all sets and symbols: any symbol must appear in at most one set.
+* Since there are a wide variety of currency symbols and codes, this should be tried before the less ambiguous elements. It may be helpful to develop a set of characters that can appear in a symbol or code, based on the currency symbols in the locale.
+* Otherwise, a character should be ignored unless it is in the "stop" set. This includes even characters that are meaningful for formatting, for example, the grouping separator.
+* If more than one sign, currency symbol, exponent, or percent/per mille occurs in the input, the first found should be used.
+* A currency symbol in the input should be interpreted as the longest match found in the set of possible currency symbols.
+* Especially in cases of ambiguity, the user's input should be echoed back, properly formatted according to the locale, before it is actually used for anything.
+
+* * *
+
+Copyright © 2001–2021 Unicode, Inc. All Rights Reserved. The Unicode Consortium makes no expressed or implied warranty of any kind, and assumes no liability for errors or omissions. No liability is assumed for incidental and consequential damages in connection with or arising out of the use of the information or programs contained or accompanying this technical report. The Unicode [Terms of Use](https://unicode.org/copyright.html) apply.
+
+Unicode and the Unicode logo are trademarks of Unicode, Inc., and are registered in some jurisdictions.
diff --git a/docs/ldml/tr35.html b/docs/ldml/tr35.html
deleted file mode 100644
index 4ecdb6e..0000000
--- a/docs/ldml/tr35.html
+++ /dev/null
@@ -1,9385 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"https://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
- <meta name="generator" content=
- "HTML Tidy for HTML5 for Apple macOS version 5.6.0">
- <meta http-equiv="Content-Type" content=
- "text/html; charset=utf-8">
- <meta http-equiv="Content-Language" content="en-us">
- <link rel="stylesheet" href=
- "../reports.css" type="text/css">
- <title>UTS #35: Unicode Locale Data Markup Language</title>
- <style type="text/css">
- <!--
- .dtd {
- font-family: monospace;
- font-size: 90%;
- background-color: #CCCCFF;
- border-style: dotted;
- border-width: 1px;
- }
-
- .xmlExample {
- font-family: monospace;
- font-size: 80%
- }
-
- .blockedInherited {
- font-style: italic;
- font-weight: bold;
- border-style: dashed;
- border-width: 1px;
- background-color: #FF0000
- }
-
- .inherited {
- font-weight: bold;
- border-style: dashed;
- border-width: 1px;
- background-color: #00FF00
- }
-
- .element {
- font-weight: bold;
- color: red;
- }
-
- .attribute {
- font-weight: bold;
- color: maroon;
- }
-
- .attributeValue {
- font-weight: bold;
- color: blue;
- }
-
- li, p {
- margin-top: 0.5em;
- margin-bottom: 0.5em
- }
-
- h2, h3, h4, h5, table {
- margin-top: 1.5em;
- margin-bottom: 0.5em;
- }
-
- h5 {
- font-size: medium;
- font-style: italic
- }
- -->
- </style>
-</head>
-<body>
- <table class="header" width="100%">
- <tr>
- <td class="icon"><a href="https://unicode.org"><img alt=
- "[Unicode]" src="../logo60s2.gif"
- width="34" height="33" style=
- "vertical-align: middle; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px; border-top-width: 0px;"></a>
- <a class="bar" href=
- "https://www.unicode.org/reports/">Technical Reports</a></td>
- </tr>
- <tr>
- <td class="gray"> </td>
- </tr>
- </table>
- <div class="body">
- <h2 style="text-align: center">Unicode Technical Standard #35</h2>
- <h1>Unicode Locale Data Markup Language (LDML)</h1>
- <!-- At least the first row of this header table should be identical across the parts of this UTS. -->
- <table border="1" cellpadding="2" cellspacing="0" class="wide">
- <tr>
- <td>Version</td>
- <td>38</td>
- </tr>
- <tr>
- <td>Editors</td>
- <td>Mark Davis (<a href="mailto:markdavis@google.com">markdavis@google.com</a>) and
- <a href="tr35.html#Acknowledgments">other CLDR committee members</a></td>
- </tr>
- <tr>
- <td>Date</td>
- <td>2020-10-23</td>
- </tr>
- <tr>
- <!-- This link must be made live when posting the final version but is disabled during proposed update stage. -->
- <td>This Version</td>
- <td>
- <a href="https://www.unicode.org/reports/tr35/tr35-61/tr35.html">
- https://www.unicode.org/reports/tr35/tr35-61/tr35.html</a></td>
- </tr>
- <tr>
- <td>Previous Version</td>
- <td>
- <a href="https://www.unicode.org/reports/tr35/tr35-60/tr35.html">
- https://www.unicode.org/reports/tr35/tr35-60/tr35.html</a></td>
- </tr>
- <tr>
- <td>Latest Version</td>
- <td><a href=
- "https://www.unicode.org/reports/tr35/">https://www.unicode.org/reports/tr35/</a></td>
- </tr>
- <tr>
- <td>Corrigenda</td>
- <td><a href=
- "http://unicode.org/cldr/corrigenda.html">http://unicode.org/cldr/corrigenda.html</a></td>
- </tr>
- <tr>
- <td>Latest Proposed Update</td>
- <td><a href=
- "https://www.unicode.org/reports/tr35/proposed.html">https://www.unicode.org/reports/tr35/proposed.html</a></td>
- </tr>
- <tr>
- <td>Namespace</td>
- <td><a href=
- "https://unicode.org/cldr/">https://unicode.org/cldr/</a></td>
- </tr>
- <tr>
- <td>DTDs</td>
- <td><a href="https://github.com/unicode-org/cldr/tree/maint/maint-38/common/dtd">
- http://unicode.org/cldr/dtd/38/</a></td>
- </tr>
- <tr>
- <td>Revision</td>
- <td><a href="#Modifications">61</a></td>
- </tr>
- </table>
- <h3><i>Summary</i></h3>
- <p>This document describes an XML format (<i>vocabulary</i>)
- for the exchange of structured locale data. This format is used
- in the <a href="https://unicode.org/cldr/">Unicode Common Locale
- Data Repository</a>.</p>
- <h3><i>Status</i></h3>
-
- <!-- NOT YET APPROVED
- <p>
- <i class="changed">This is a<b><font color="#ff3333">
- draft </font></b>document which may be updated, replaced, or superseded by
- other documents at any time. Publication does not imply endorsement
- by the Unicode Consortium. This is not a stable document; it is
- inappropriate to cite this document as other than a work in
- progress.
- </i>
- </p>
- END NOT YET APPROVED -->
- <!-- APPROVED -->
- <p><i>This document has been reviewed by Unicode members and
- other interested parties, and has been approved for publication
- by the Unicode Consortium. This is a stable document and may be
- used as reference material or cited as a normative reference by
- other specifications.</i></p>
- <!-- END APPROVED -->
-
- <blockquote>
- <p><i><b>A Unicode Technical Standard (UTS)</b> is an
- independent specification. Conformance to the Unicode
- Standard does not imply conformance to any UTS.</i></p>
- </blockquote>
- <p><i>Please submit corrigenda and other comments with the CLDR
- bug reporting form [<a href=
- "http://cldr.unicode.org/index/bug-reports">Bugs</a>]. Related
- information that is useful in understanding this document is
- found in the <a href="#References">References</a>. For the
- latest version of the Unicode Standard see [<a href=
- "https://www.unicode.org/versions/latest/">Unicode</a>]. For a
- list of current Unicode Technical Reports see [<a href=
- "https://www.unicode.org/reports/">Reports</a>]. For more
- information about versions of the Unicode Standard, see
- [<a href=
- "https://www.unicode.org/versions/">Versions</a>].</i></p><!-- This section of Parts should be identical in all of the parts of this UTS. -->
- <h2><a name="Parts" href="#Parts" id="Parts">Parts</a></h2>
- <p>The LDML specification is divided into the following
- parts:</p>
- <ul class="toc">
- <li>Part 1: <a href="tr35.html#Contents">Core</a> (languages,
- locales, basic structure)</li>
- <li>Part 2: <a href="tr35-general.html#Contents">General</a>
- (display names & transforms, etc.)</li>
- <li>Part 3: <a href="tr35-numbers.html#Contents">Numbers</a>
- (number & currency formatting)</li>
- <li>Part 4: <a href="tr35-dates.html#Contents">Dates</a>
- (date, time, time zone formatting)</li>
- <li>Part 5: <a href=
- "tr35-collation.html#Contents">Collation</a> (sorting,
- searching, grouping)</li>
- <li>Part 6: <a href=
- "tr35-info.html#Contents">Supplemental</a> (supplemental
- data)</li>
- <li>Part 7: <a href=
- "tr35-keyboards.html#Contents">Keyboards</a> (keyboard
- mappings)</li>
- </ul>
- <h2><a name="Contents" href="#Contents" id="Contents">Contents
- of Part 1, Core</a></h2>
- <!-- START Generated TOC: CheckHtmlFiles -->
- <ul class="toc">
- <li>1 <a href="#Introduction">Introduction</a>
- <ul class="toc">
- <li>1.1 <a href="#Conformance">Conformance</a></li>
- </ul>
- </li>
- <li>2 <a href="#Locale">What is a Locale?</a></li>
- <li>3 <a href="#Identifiers">Unicode Language and Locale
- Identifiers</a>
- <ul class="toc">
- <li>3.1 <a href="#Unicode_language_identifier">Unicode
- Language Identifier</a></li>
- <li>3.2 <a href="#Unicode_locale_identifier">Unicode
- Locale Identifier</a>
- <ul class='toc'>
- <li><a href="#Canonical_Unicode_Locale_Identifiers">3.2.1 Canonical Unicode Locale Identifiers</a></li>
- </ul>
- </li>
- <li>3.3 <a href="#BCP_47_Conformance">BCP 47
- Conformance</a>
- <ul class="toc">
- <li>3.3.1 <a href=
- "#BCP_47_Language_Tag_Conversion">BCP 47 Language Tag
- Conversion</a></li>
- </ul>
- </li>
- <li>3.4 <a href="#Field_Definitions">Language Identifier
- Field Definitions</a>
- <ul class="toc">
- <li>Table: <a href=
- "#Language_Locale_Field_Definitions">Language
- Identifier Field Definitions</a></li>
- </ul>
- </li>
- <li>3.5 <a href="#Special_Codes">Special Codes</a>
- <ul class="toc">
- <li>3.5.1 <a href=
- "#Unknown_or_Invalid_Identifiers">Unknown or Invalid
- Identifiers</a></li>
- <li>3.5.2 <a href="#Numeric_Codes">Numeric
- Codes</a></li>
- <li>3.5.3 <a href="#Private_Use_Codes">Private Use
- Codes</a>
- <ul class="toc">
- <li>Table: <a href="#Private_Use_CLDR">Private
- Use Codes in CLDR</a></li>
- </ul>
- </li>
- </ul>
- </li>
- <li>3.6 <a href=
- "#Locale_Extension_Key_and_Type_Data">Unicode BCP 47 U
- Extension</a>
- <ul class="toc">
- <li>3.6.1 <a href="#Key_And_Type_Definitions_">Key
- And Type Definitions</a>
- <ul class="toc">
- <li>Table: <a href=
- "#Key_Type_Definitions">Key/Type
- Definitions</a></li>
- </ul>
- </li>
- <li>3.6.2 <a href=
- "#Numbering%20System%20Data">Numbering System
- Data</a></li>
- <li>3.6.3 <a href="#Time_Zone_Identifiers">Time Zone
- Identifiers</a></li>
- <li>3.6.4 <a href=
- "#Unicode_Locale_Extension_Data_Files">U Extension
- Data Files</a></li>
- <li>3.6.5 <a href=
- "#Unicode_Subdivision_Codes">Subdivision Codes</a>
- <ul class="toc">
- <li>3.6.5.1 <a href="#Validity">Validity</a></li>
- </ul>
- </li>
- </ul>
- </li>
- <li>3.7 <a href="#t_Extension">Unicode BCP 47 T
- Extension</a>
- <ul class="toc">
- <li>3.7.1 <a href="#Transformed_Content_Data_File">T
- Extension Data Files</a></li>
- </ul>
- </li>
- <li>3.8 <a href="#Compatibility_with_Older_Identifiers">
- Compatibility with Older Identifiers</a>
- <ul class="toc">
- <li>3.8.1 <a href="#Old_Locale_Extension_Syntax">Old
- Locale Extension Syntax</a>
- <ul class="toc">
- <li>Table: <a href=
- "#Locale_Extension_Mappings">Locale Extension
- Mappings</a></li>
- </ul>
- </li>
- <li>3.8.2 <a href="#Legacy_Variants">Legacy
- Variants</a>
- <ul class="toc">
- <li>Table: <a href=
- "#Legacy_Variant_Mappings">Legacy Variant
- Mappings</a></li>
- </ul>
- </li>
- <li>3.8.3 <a href="#Relation_to_OpenI18n">Relation to
- OpenI18n</a></li>
- </ul>
- </li>
- <li>3.9 <a href=
- "#Transmitting_Locale_Information">Transmitting Locale
- Information</a>
- <ul class="toc">
- <li>3.9.1 <a href=
- "#Message_Formatting_and_Exceptions">Message
- Formatting and Exceptions</a></li>
- </ul>
- </li>
- <li>3.10 <a href="#Language_and_Locale_IDs">Unicode
- Language and Locale IDs</a>
- <ul class="toc">
- <li>3.10.1 <a href="#Written_Language">Written
- Language</a></li>
- <li>3.10.2 <a href="#Hybrid_Locale">Hybrid Locale
- Identifiers</a></li>
- </ul>
- </li>
- <li>3.11 <a href="#Validity_Data">Validity Data</a></li>
- </ul>
- </li>
- <li>4 <a href="#Locale_Inheritance">Locale Inheritance and
- Matching</a>
- <ul class="toc">
- <li>4.1 <a href="#Lookup">Lookup</a>
- <ul class="toc">
- <li>4.1.1 <a href="#Bundle_vs_Item_Lookup">Bundle vs
- Item Lookup</a>
- <ul class="toc">
- <li>Table: <a href="#Lookup-Differences">Lookup
- Differences</a></li>
- </ul>
- </li>
- <li>4.1.2 <a href="#Multiple_Inheritance">Lateral
- Inheritance</a>
- <ul class="toc">
- <li>Table: <a href="#Count_Fallback_normal">Count
- Fallback: normal</a></li>
- <li>Table: <a href=
- "#Count_Fallback_currency">Count Fallback:
- currency</a></li>
- </ul>
- </li>
- <li>4.1.3 <a href="#Parent_Locales">Parent
- Locales</a></li>
- </ul>
- </li>
- <li>4.2 <a href="#Inheritance_and_Validity">Inheritance
- and Validity</a>
- <ul class="toc">
- <li>4.2.1 <a href="#Definitions">Definitions</a></li>
- <li>4.2.2 <a href="#Resolved_Data_File">Resolved Data
- File</a></li>
- <li>4.2.3 <a href="#Valid_Data">Valid Data</a></li>
- <li>4.2.4 <a href=
- "#Checking_for_Draft_Status">Checking for Draft
- Status</a></li>
- <li>4.2.5 <a href=
- "#Keyword_and_Default_Resolution">Keyword and Default
- Resolution</a></li>
- <li>4.2.6 <a href=
- "#Inheritance_vs_Related">Inheritance vs Related
- Information</a></li>
- </ul>
- </li>
- <li>4.3 <a href="#Likely_Subtags">Likely Subtags</a></li>
- <li>4.4 <a href="#LanguageMatching">Language Matching</a>
- <ul class='toc'>
- <li>4.4.1 <a href=
- "#EnhancedLanguageMatching">Enhanced Language
- Matching</a></li>
- </ul>
- </li>
- </ul>
- </li>
- <li>5 <a href="#XML_Format">XML Format</a>
- <ul class="toc">
- <li>5.1 <a href="#Common_Elements">Common Elements</a>
- <ul class="toc">
- <li>5.1.1 <a href="#special">Element special</a>
- <ul class="toc">
- <li>5.1.1.1 <a href=
- "#Sample_Special_Elements">Sample Special
- Elements</a></li>
- </ul>
- </li>
- <li>5.1.2 <a href="#Alias_Elements">Element alias</a>
- <ul class="toc">
- <li>Table: <a href=
- "#Inheritance_with_source_locale_">Inheritance
- with source="locale"</a></li>
- </ul>
- </li>
- <li>5.1.3 <a href="#Element_displayName">Element
- displayName</a></li>
- <li>5.1.4 <a href="#Escaping_Characters">Escaping
- Characters</a></li>
- </ul>
- </li>
- <li>5.2 <a href="#Common_Attributes">Common
- Attributes</a>
- <ul class="toc">
- <li>5.2.1 <a href="#Attribute_type">Attribute
- type</a></li>
- <li>5.2.2 <a href="#Attribute_draft">Attribute
- draft</a></li>
- <li>5.2.3 <a href="#alt_attribute">Attribute
- alt</a></li>
- </ul>
- </li>
- <li>5.3 <a href="#Common_Structures">Common
- Structures</a>
- <ul class="toc">
- <li>5.3.1 <a href="#Date_Ranges">Date and Date
- Ranges</a></li>
- <li>5.3.2 <a href="#Text_Directionality">Text
- Directionality</a></li>
- <li>5.3.3 <a href="#Unicode_Sets">Unicode Sets</a>
- <ul class="toc">
- <li>5.3.3.1 <a href="#Lists_of_Code_Points">Lists
- of Code Points</a></li>
- <li>5.3.3.2 <a href="#Unicode_Properties">Unicode
- Properties</a></li>
- <li>5.3.3.3 <a href="#Boolean_Operations">Boolean
- Operations</a></li>
- <li>5.3.3.4 <a href=
- "#UnicodeSet_Examples">UnicodeSet
- Examples</a></li>
- </ul>
- </li>
- <li>5.3.4 <a href="#String_Range">String
- Range</a></li>
- </ul>
- </li>
- <li>5.4 <a href="#Identity_Elements">Identity
- Elements</a></li>
- <li>5.5 <a href="#Valid_Attribute_Values">Valid Attribute
- Values</a></li>
- <li>5.6 <a href="#Canonical_Form">Canonical Form</a>
- <ul class="toc">
- <li>5.6.1 <a href="#Content">Content</a></li>
- <li>5.6.2 <a href="#Ordering">Ordering</a></li>
- <li>5.6.3 <a href="#Comments">Comments</a></li>
- </ul>
- </li>
- <li>5.7 <a href="#DTD_Annotations">DTD
- Annotations</a>
- <ul class='toc'>
- <li>5.7.1 <a href="#match_expressions" >Attribute Value Constraints</a></li>
- </ul>
- </li>
- </ul>
- </li>
- <li>6 <a href="#Property_Data">Property Data</a>
- <ul class="toc">
- <li>6.1 <a href="#Script_Metadata">Script
- Metadata</a></li>
- <li>6.2 <a href="#Extended_Pictographic">Extended
- Pictographic</a></li>
- <li>6.3 <a href="#Labels.txt">Labels.txt</a></li>
- <li><a href="#Segmentation_Tests">6.4 Segmentation Tests</a></li>
- </ul>
- </li>
- <li>7 <a href="#Format_Parse_Issues">Issues in Formatting and
- Parsing</a>
- <ul class="toc">
- <li>7.1 <a href="#Lenient_Parsing">Lenient Parsing</a>
- <ul class="toc">
- <li>7.1.1 <a href="#Motivation">Motivation</a></li>
- <li>7.1.2 <a href="#Loose_Matching">Loose
- Matching</a></li>
- </ul>
- </li>
- <li>7.2 <a href="#Invalid_Patterns">Handling Invalid
- Patterns</a></li>
- </ul>
- </li>
- <li>Annex A <a href="#Deprecated_Structure">Deprecated
- Structure</a>
- <ul class="toc">
- <li>A.1 <a href="#Fallback_Elements">Element
- fallback</a></li>
- <li>A.2 <a href="#BCP47_Keyword_Mapping">BCP 47 Keyword
- Mapping</a></li>
- <li>A.3 <a href="#Choice_Patterns">Choice
- Patterns</a></li>
- <li>A.4 <a href="#Element_default">Element
- default</a></li>
- <li>A.5 <a href=
- "#Deprecated_Common_Attributes">Deprecated Common
- Attributes</a>
- <ul>
- <li>A.5.1 <a href="#Attribute_standard">Attribute
- standard</a></li>
- <li>A.5.2 <a href=
- "#Attribute_draft_nonLeaf">Attribute draft in
- non-leaf elements</a></li>
- </ul>
- </li>
- <li>A.6 <a href="#Element_base">Element base</a></li>
- <li>A.7 <a href="#Element_rules">Element rules</a></li>
- <li>A.8 <a href=
- "#Deprecated_subelements_of_dates">Deprecated subelements
- of <dates></a></li>
- <li>A.9 <a href=
- "#Deprecated_subelements_of_calendars">Deprecated
- subelements of <calendars></a></li>
- <li>A.10 <a href=
- "#Deprecated_subelements_of_timeZoneNames">Deprecated
- subelements of <timeZoneNames></a></li>
- <li>A.11 <a href=
- "#Deprecated_subelements_of_zone_metazone">Deprecated
- subelements of <zone> and <metazone></a></li>
- <li>A.12 <a href=
- "#Renamed_attribute_values_for_contextTransformUsage">Renamed
- attribute values for <contextTransformUsage>
- element</a></li>
- <li>A.13 <a href=
- "#Deprecated_subelements_of_segmentations">Deprecated
- subelements of <segmentations></a></li>
- <li>A.14 <a href="#Element_cp">Element cp</a></li>
- <li>A.15 <a href="#validSubLocales">Attribute
- validSubLocales</a></li>
- <li>A.16 <a href="#postCodeElements">Elements
- postalCodeData, postCodeRegex</a></li>
- <li>A.17 <a href="#telephoneCodeData">Element
- telephoneCodeData</a></li>
- </ul>
- </li>
- <li>Annex B <a href="#Links_to_Other_Parts">Links to Other
- Parts</a>
- <ul class="toc">
- <li>Table: <a href="#Part_2_Links">Part 2 Links: General
- (display names & transforms, etc.)</a></li>
- <li>Table: <a href="#Part_3_Links">Part 3 Links: Numbers
- (number & currency formatting)</a></li>
- <li>Table: <a href="#Part_4_Links">Part 4 Links: Dates
- (date, time, time zone formatting)</a></li>
- <li>Table: <a href="#Part_5_Links">Part 5 Links:
- Collation (sorting, searching, grouping)</a></li>
- <li>Table: <a href="#Part_6_Links">Part 6 Links:
- Supplemental (supplemental data)</a></li>
- <li>Table: <a href="#Part_7_Links">Part 7 Links:
- Keyboards (keyboard mappings)</a></li>
- </ul>
- </li>
- <li>Annex C. <a href="#LocaleId_Canonicalization" >LocaleId Canonicalization</a></li>
- <li><a href="#References">References</a></li>
- <li><a href="#Acknowledgments">Acknowledgments</a></li>
- <li><a href="#Modifications">Modifications</a></li>
- </ul><!-- END Generated TOC: CheckHtmlFiles -->
- <h2><a name="Introduction" href="#Introduction" id=
- "Introduction">1 Introduction</a></h2>
- <p>Not long ago, computer systems were like separate worlds,
- isolated from one another. The internet and related events have
- changed all that. A single system can be built of many
- different components, hardware and software, all needing to
- work together. Many different technologies have been important
- in bridging the gaps; in the internationalization arena,
- Unicode has provided a lingua franca for communicating textual
- data. However, there remain differences in the locale data used
- by different systems.</p>
- <p>The best practice for internationalization is to store and
- communicate language-neutral data, and format that data for the
- client. This formatting can take place on any of a number of
- the components in a system; a server might format data based on
- the user's locale, or it could be that a client machine does
- the formatting. The same goes for parsing data, and
- locale-sensitive analysis of data.</p>
- <p>But there remain significant differences across systems and
- applications in the locale-sensitive data used for such
- formatting, parsing, and analysis. Many of those differences
- are simply gratuitous; all within acceptable limits for human
- beings, but yielding different results. In many other cases
- there are outright errors. Whatever the cause, the differences
- can cause discrepancies to creep into a heterogeneous system.
- This is especially serious in the case of collation
- (sort-order), where different collation caused not only
- ordering differences, but also different results of queries!
- That is, with a query of customers with names between "Abbot,
- Cosmo" and "Arnold, James", if different systems have different
- sort orders, different lists will be returned. (For comparisons
- across systems formatted as HTML tables, see [<a href=
- "#Comparisons">Comparisons</a>].)</p>
- <blockquote>
- <p class="note"><b>Note:</b> There are many different equally
- valid ways in which data can be judged to be "correct" for a
- particular locale. The goal for the common locale data is to
- make it as consistent as possible with existing locale data,
- and acceptable to users in that locale.</p>
- </blockquote>
- <p>This document specifies an XML format for the communication
- of locale data: the Unicode Locale Data Markup Language (LDML).
- This provides a common format for systems to interchange locale
- data so that they can get the same results in the services
- provided by internationalization libraries. It also provides a
- standard format that can allow users to customize the behavior
- of a system. With it, for example, collation (sorting) rules
- can be exchanged, allowing two implementations to exchange a
- specification of tailored collation rules. Using the same
- specification, the two implementations will achieve the same
- results in comparing strings. Unicode LDML can also be used to
- let a user encapsulate specialized sorting behavior for a
- specific domain, or create a customized locale for a minority
- language. Unicode LDML is also used in the Unicode Common
- Locale Data Repository (CLDR). CLDR uses an open process for
- reconciling differences between the locale data used on
- different systems and validating the data, to produce with a
- useful, common, consistent base of locale data.</p>
- <p>For more information, see the Common Locale Data Repository
- project page [<a href="#localeProject">LocaleProject</a>].</p>
- <p>As LDML is an interchange format, it was designed for ease
- of maintenance and simplicity of transformation into other
- formats, above efficiency of run-time lookup and use.
- Implementations should consider converting LDML data into a
- more compact format prior to use.</p>
- <h3><a name="Conformance" href="#Conformance" id=
- "Conformance">1.1 Conformance</a></h3>
- <p>There are many ways to use the Unicode LDML format and the
- data in CLDR, and the Unicode Consortium does not restrict the
- ways in which the format or data are used. However, an
- implementation may also claim conformance to LDML or to CLDR,
- as follows:</p>
- <p> </p>
- <p><i><b>UAX35-C1.</b></i> An implementation that claims
- conformance to this specification shall:</p>
- <ol>
- <li>Identify the sections of the specification that it
- conforms to.
- <ul>
- <li>For example, an implementation might claim
- conformance to all LDML features except for
- <i>transforms</i> and <i>segments</i>.</li>
- </ul>
- </li>
- <li>Interpret the relevant elements and attributes of LDML
- documents in accordance with the descriptions in those
- sections.
- <ul>
- <li>For example, an implementation that claims
- conformance to the date format patterns must interpret
- the characters in such patterns according to <a href=
- "tr35-dates.html#Date_Field_Symbol_Table">Date Field
- Symbol Table</a>.</li>
- </ul>
- </li>
- <li>Declare which types of CLDR data that it uses.
- <ul>
- <li>For example, an implementation might declare that it
- only uses language names, and those with a <i>draft</i>
- status of <i>contributed</i> or <i>approved</i>.</li>
- </ul>
- </li>
- </ol>
- <p><i><b>UAX35-C2.</b></i> An implementation that claims
- conformance to Unicode locale or language identifiers
- shall:</p>
- <ol>
- <li>Specify whether Unicode locale extensions are
- allowed</li>
- <li>Specify the canonical form used for identifiers in terms
- of casing and field separator characters.</li>
- </ol>
- <p>External specifications may also reference particular
- components of Unicode locale or language identifiers, such
- as:</p>
- <blockquote>
- <p><i>Field X can contain any Unicode region subtag values as
- given in Unicode Technical Standard #35: Unicode Locale Data
- Markup Language (LDML), excluding grouping codes.</i></p>
- </blockquote>
- <h2><a name="Locale" href="#Locale" id="Locale">2 What is a
- Locale?</a></h2>
- <p>Before diving into the XML structure, it is helpful to
- describe the model behind the structure. People do not have to
- subscribe to this model to use data in LDML, but they do need
- to understand it so that the data can be correctly translated
- into whatever model their implementation uses.</p>
- <p>The first issue is basic: <i>what is a locale?</i> In this
- model, a locale is an identifier (id) that refers to a set of
- user preferences that tend to be shared across significant
- swaths of the world. Traditionally, the data associated with
- this id provides support for formatting and parsing of dates,
- times, numbers, and currencies; for measurement units, for
- sort-order (collation), plus translated names for time zones,
- languages, countries, and scripts. The data can also include
- support for text boundaries (character, word, line, and
- sentence), text transformations (including transliterations),
- and other services.</p>
- <p>Locale data is not cast in stone: the data used on someone's
- machine generally may reflect the US format, for example, but
- preferences can typically set to override particular items,
- such as setting the date format for 2002.03.15, or using metric
- or Imperial measurement units. In the abstract, locales are
- simply one of many sets of preferences that, say, a website may
- want to remember for a particular user. Depending on the
- application, it may want to also remember the user's time zone,
- preferred currency, preferred character set, smoker/non-smoker
- preference, meal preference (vegetarian, kosher, and so on),
- music preference, religion, party affiliation, favorite
- charity, and so on.</p>
- <p>Locale data in a system may also change over time: country
- boundaries change; governments (and currencies) come and go:
- committees impose new standards; bugs are found and fixed in
- the source data; and so on. Thus the data needs to be versioned
- for stability over time.</p>
- <p>In general terms, the locale id is a parameter that is
- supplied to a particular service (date formatting, sorting,
- spell-checking, and so on). The format in this document does
- not attempt to represent all the data that could conceivably be
- used by all possible services. Instead, it collects together
- data that is in common use in systems and internationalization
- libraries for basic services. The main difference among locales
- is in terms of language; there may also be some differences
- according to different countries or regions. However, the line
- between <i>locales</i> and <i>languages</i>, as commonly used
- in the industry, are rather fuzzy. Note also that the vast
- majority of the locale data in CLDR is in fact language data;
- all non-linguistic data is separated out into a separate tree.
- For more information, see <i><a href=
- "#Language_and_Locale_IDs">Section 3.10 Language and Locale
- IDs</a></i>.</p>
- <p>We will speak of data as being "in locale X". That does not
- imply that a locale <i>is</i> a collection of data; it is
- simply shorthand for "the set of data associated with the
- locale id X". Each individual piece of data is called a
- <i>resource</i> or <i>field</i>, and a tag indicating the key
- of the resource is called a <i>resource tag.</i></p>
- <h2><a name="Identifiers" href="#Identifiers" id=
- "Identifiers"></a> <a name=
- "Unicode_Language_and_Locale_Identifiers" href=
- "#Unicode_Language_and_Locale_Identifiers" id=
- "Unicode_Language_and_Locale_Identifiers">3 Unicode Language
- and Locale Identifiers</a></h2>
- <p>Unicode LDML uses stable identifiers based on [<a href=
- "#BCP47">BCP47</a>] for distinguishing among languages,
- locales, regions, currencies, time zones, transforms, and so
- on. There are many systems for identifiers for these entities.
- The Unicode LDML identifiers may not match the identifiers used
- on a particular target system. If so, some process of
- identifier translation may be required when using LDML
- data.</p>
- <p>The BCP 47 extensions (-u- and -t-) are described in
- <em>Section 3.6 <a href="#u_Extension">Unicode BCP 47 U
- Extension</a></em> and <em>Section 3.7 <a href=
- "#BCP47_T_Extension">Unicode BCP 47 T Extension</a></em>.</p>
- <h3><i><a name="Unicode_language_identifier" href=
- "#Unicode_language_identifier" id=
- "Unicode_language_identifier">3.1 Unicode Language
- Identifier</a></i></h3>
- <p>A <i>Unicode language identifier</i> has the following
- structure (provided in EBNF (Perl-based)). The following table defines
- syntactically well-formed identifiers: they are not necessarily
- valid identifiers. For additional validity criteria, see the
- links on the right.</p>
- <table>
- <tr>
- <th> </th>
- <th>
- <div align="center">
- EBNF
- </div>
- </th>
- <th>
- <div align="center">
- Validity / Comments
- </div>
- </th>
- </tr>
- <tr>
- <td><code><a href="#unicode_language_id" name=
- "unicode_language_id" id=
- "unicode_language_id">unicode_language_id</a></code></td>
- <td><code>= "root"<br>
- | (unicode_language_subtag<br>
- (sep unicode_script_subtag)?<br>
- | unicode_script_subtag)<br>
- (sep unicode_region_subtag)?<br>
- (sep unicode_variant_subtag)* ;</code></td>
- <td>"root" is treated as a special
- <code>unicode_language_subtag</code></td>
- </tr>
- <tr>
- <td><code><a href="#unicode_language_subtag" name=
- "unicode_language_subtag" id=
- "unicode_language_subtag">unicode_language_subtag</a></code></td>
- <td><code>= alpha{2,3} | alpha{5,8};</code></td>
- <td><code><a href=
- '#unicode_language_subtag_validity'>validity</a><br>
- <a href=
- 'https://github.com/unicode-org/cldr/blob/maint/maint-38/common/validity/language.xml'>
- latest-data</a></code></td>
- </tr>
- <tr>
- <td><code><a href="#unicode_script_subtag" name=
- "unicode_script_subtag" id=
- "unicode_script_subtag">unicode_script_subtag</a></code></td>
- <td><code>= alpha{4} ;</code></td>
- <td><code><a href=
- '#unicode_script_subtag_validity'>validity</a><br>
- <a href=
- 'https://github.com/unicode-org/cldr/blob/maint/maint-38/common/validity/script.xml'>
- latest-data</a></code></td>
- </tr>
- <tr>
- <td><code><a href="#unicode_region_subtag" name=
- "unicode_region_subtag" id=
- "unicode_region_subtag">unicode_region_subtag</a></code></td>
- <td><code>= (alpha{2} | digit{3}) ;</code></td>
- <td><code><a href=
- '#unicode_language_subtag_validity'>validity</a><br>
- <a href=
- 'https://github.com/unicode-org/cldr/blob/maint/maint-38/common/validity/region.xml'>
- latest-data</a></code></td>
- </tr>
- <tr>
- <td><code><a href="#unicode_variant_subtag" name=
- "unicode_variant_subtag" id=
- "unicode_variant_subtag">unicode_variant_subtag</a></code></td>
- <td><code>= (alphanum{5,8}<br>
- | digit alphanum{3}) ;</code></td>
- <td><code><a href=
- '#unicode_language_subtag_validity'>validity</a><br>
- <a href=
- 'https://github.com/unicode-org/cldr/blob/maint/maint-38/common/validity/variant.xml'>
- latest-data</a></code></td>
- </tr>
- <tr>
- <td><code>sep</code></td>
- <td><code>= [-_] ;</code></td>
- </tr>
- <tr>
- <td><code>digit</code></td>
- <td><code>= [0-9] ;</code></td>
- </tr>
- <tr>
- <td><code>alpha</code></td>
- <td><code>= [A-Z a-z] ;</code></td>
- </tr>
- <tr>
- <td><code>alphanum</code></td>
- <td><code>= [0-9 A-Z a-z] ;</code></td>
- </tr>
- </table>
- <p>The semantics of the various subtags is explained in
- <em>Section 3.4 <a href="#Field_Definitions">Language
- Identifier Field Definitions</a></em> ; there are also direct
- links from <code><a href=
- "#unicode_language_subtag">unicode_language_subtag</a></code> ,
- etc. While theoretically the <code><a href=
- "#unicode_language_subtag">unicode_language_subtag</a></code>
- may have more than 3 letters through the IANA registration
- process, in practice that has not occurred. The <code><a href=
- "#unicode_language_subtag">unicode_language_subtag</a></code>
- "und" may be omitted when there is a <code><a href=
- "#unicode_script_subtag">unicode_script_subtag</a></code> ; for
- that reason <code><a href=
- "#unicode_language_subtag">unicode_language_subtag</a></code>
- values with 4 letters are not permitted. However, such
- <code><a href=
- "#unicode_language_id">unicode_language_id</a></code> values
- are not intended for general interchange, because they are not
- valid BCP 47 tags. Instead, they are intended for certain
- protocols such as the identification of transliterators or font
- ScriptLangTag values. For more information on language subtags with 4 letters, see <a href=
- "#Language_Tag_to_Locale_Identifier" >BCP 47 Language Tag to
- Unicode BCP 47 Locale Identifier</a>.</p>
- <p>For example, "en-US" (American English), "en_GB" (British
- English), "es-419" (Latin American Spanish), and "uz-Cyrl"
- (Uzbek in Cyrillic) are all valid Unicode language
- identifiers.</p>
- <h3><i><a name="Unicode_locale_identifier" href=
- "#Unicode_locale_identifier" id="Unicode_locale_identifier">3.2
- Unicode Locale Identifier</a></i></h3>
- <p>A <i>Unicode locale identifier</i> is composed of a Unicode
- language identifier plus (optional) locale extensions. It has
- the following structure. The semantics of the U and T
- extensions are explained in <em>Section 3.6 <a href=
- "#u_Extension">Unicode BCP 47 U Extension</a></em> and
- <em>Section 3.7 <a href="#BCP47_T_Extension">Unicode BCP 47 T
- Extension</a></em>. Other extensions and private use extensions
- are supported for pass-through. The following table defines
- syntactically <em>well-formed</em> identifiers: they are not
- necessarily <em>valid</em> identifiers. For additional validity
- criteria, see the links on the right. </p>
- <p>As is often the case, the complete syntactic constraints are not easily captured by ABNF, so there is a further condition: There cannot be more than one extension with the
- same singleton (-a-, …, -t-, -u-, …). Note that the private use extension (-x-) must
- come after all other extensions. </p>
- <table border="0">
- <tr>
- <th> </th>
- <th>
- <div align="center">
- EBNF
- </div>
- </th>
- <th>
- <div align="center">
- Validity
- </div>
- </th>
- </tr>
- <tr>
- <td><code><a href="#unicode_locale_id" name=
- "unicode_locale_id" id=
- "unicode_locale_id">unicode_locale_id</a></code></td>
- <td><code>= unicode_language_id<br>
- extensions*<br>
- pu_extensions? ;</code></td>
- </tr>
- <tr>
- <td><code><a href="#extensions" name="extensions" id=
- "extensions">extensions</a></code></td>
- <td><code>= unicode_locale_extensions<br>
- | transformed_extensions<br>
- | other_extensions ;</code></td>
- </tr>
- <tr>
- <td><code><a href="#unicode_locale_extensions" name=
- "unicode_locale_extensions" id=
- "unicode_locale_extensions">unicode_locale_extensions</a></code></td>
- <td><code>= sep [uU]<br>
- ((sep keyword)+<br>
- |(sep attribute)+ (sep keyword)*) ;</code></td>
- </tr>
- <tr>
- <td><code><a href="#transformed_extensions" name=
- "transformed_extensions" id=
- "transformed_extensions">transformed_extensions</a></code></td>
- <td><code>= sep [tT]<br>
- ((sep tlang (sep tfield)*)<br>
- | (sep tfield)+) ;</code></td>
- </tr>
- <tr>
- <td><code><a href="#pu_extensions" name="pu_extensions" id=
- "pu_extensions">pu_extensions</a></code></td>
- <td><code>= sep [xX]<br>
- (sep alphanum{1,8})+ ;</code></td>
- </tr>
- <tr>
- <td><code><a href="#other_extensions" name=
- "other_extensions" id=
- "other_extensions">other_extensions</a></code></td>
- <td><code>= sep [alphanum-[tTuUxX]]<br>
- (sep alphanum{2,8})+ ;</code></td>
- </tr>
- <tr>
- <td><code>keyword</code><br>
- (Also known as <code>uvalue</code>)</td>
- <td><code>= key (sep type)? ;</code></td>
- </tr>
- <tr>
- <td><code>key</code><br>
- (Also known as <code>ukey</code>)</td>
- <td><code>= alphanum alpha ;</code><br>
- (Note that this is narrower than in [<a href="https://www.ietf.org/rfc/rfc6067.txt" title="https://www.ietf.org/rfc/rfc6067.txt">RFC6067</a>], so that it is disjoint with tkey.)</td>
- <td><code><a href="#Key_Type_Definitions">validity</a><br>
- <a href=
- 'https://github.com/unicode-org/cldr/blob/maint/maint-38/common/bcp47'>latest-data</a></code></td>
- </tr>
- <tr>
- <td><code>type</code><br>
- (Also known as <code>uvalue</code>)</td>
- <td><code>= alphanum{3,8}<br>
- (sep alphanum{3,8})* ;</code></td>
- <td><code><a href="#Key_Type_Definitions">validity</a><br>
- <a href=
- 'https://github.com/unicode-org/cldr/blob/maint/maint-38/common/bcp47'>latest-data</a></code></td>
- </tr>
- <tr>
- <td><code>attribute</code></td>
- <td><code>= alphanum{3,8} ;</code></td>
- </tr>
- <tr>
- <td><code><a name="unicode_subdivision_id" href=
- "#unicode_subdivision_id" id=
- "unicode_subdivision_id">unicode_subdivision_id</a><a name=
- "unicode_subdivision_subtag" id=
- "unicode_subdivision_subtag"></a><a name=
- "subdivision_attribute" id=
- "subdivision_attribute"></a></code></td>
- <td><code>= <a href=
- "#unicode_region_subtag">unicode_region_subtag</a>
- unicode_subdivision_suffix ;</code></td>
- <td><code><a href=
- '#unicode_subdivision_subtag_validity'>validity</a><br>
- <a href=
- 'https://github.com/unicode-org/cldr/blob/maint/maint-38/common/validity/subdivision.xml'>
- latest-data</a></code></td>
- </tr>
- <tr>
- <td><code>unicode_subdivision_suffix</code></td>
- <td><code>= alphanum{1,4} ;</code></td>
- </tr>
- <tr>
- <td><code><a name="unicode_measure_unit" href=
- "#unicode_measure_unit" id=
- "unicode_measure_unit">unicode_measure_unit</a></code></td>
- <td><code>= alphanum{3,8}<br>
- (sep alphanum{3,8})* ;</code></td>
- <td><code><a href='#Validity_Data'>validity</a><br>
- <a href=
- 'https://github.com/unicode-org/cldr/blob/maint/maint-38/common/validity/unit.xml'>latest-data</a></code></td>
- </tr>
- <tr>
- <td><code>tlang</code></td>
- <td><code>= unicode_language_subtag<br>
- (sep unicode_script_subtag)?<br>
- (sep unicode_region_subtag)?<br>
- (sep unicode_variant_subtag)* ;</code></td>
- </tr>
- <tr>
- <td><code>tfield</code></td>
- <td><code>= tkey tvalue;</code></td>
- <td><code><a href="#BCP47_T_Extension">validity</a><br>
- <a href=
- 'https://github.com/unicode-org/cldr/blob/maint/maint-38/common/bcp47'>latest-data</a></code></td>
- </tr>
- <tr>
- <td><code>tkey</code></td>
- <td><code>= alpha digit ;</code></td>
- </tr>
- <tr>
- <td><code>tvalue</code></td>
- <td><code>= (sep alphanum{3,8})+ ;</code></td>
- </tr>
- </table>
- <p>For historical reasons, this is called a Unicode locale
- identifier. However, it really functions (with few exceptions)
- as a <span class="st">language</span> identifier, and accesses
- <span class="st">language</span>-based data. Except where it
- would be unclear, this document uses the term "locale" data
- loosely to encompass both types of data: for more information,
- see <i><a href="#Language_and_Locale_IDs">Section 3.10 Language
- and Locale IDs</a></i>.</p>
- <p>As of the release of this specification, there were no
- other_extensions defined. The other_extensions are present in
- the syntax to allow implementations to preserve that
- information.</p>
- <p>As for terminology, the term <i>code</i> may also be used
- instead of "subtag", and "territory" instead of "region". The
- primary language subtag is also called the <i>base language
- code</i>. For example, the base language code for "en-US"
- (American English) is "en" (English). The <i>type</i> may also
- be referred to as a <i>value</i> or <i>key-value</i>.</p>
- <p>The identifiers can vary in case and in the separator
- characters. The "-" and "_" separators are treated as
- equivalent, although "-" is preferred.</p>
- <p>All identifier field values are case-insensitive. Although
- case distinctions do not carry any special meaning, an
- implementation of LDML should use the casing recommendations in
- [<a href="#BCP47">BCP47</a>], especially when a Unicode locale
- identifier is used for locale data exchange in software
- protocols.</p>
- <h4><a name="Canonical_Unicode_Locale_Identifiers" href="#Canonical_Unicode_Locale_Identifiers">3.2.1 Canonical Unicode Locale Identifiers</a></h4>
- <p>A <code><a href=
- "#unicode_locale_id">unicode_locale_id</a></code> has <em>canonical syntax</em> when:</p>
- <ul>
- <li>It starts with a language subtag (those beginning with a script subtag are only for specialized use)</li>
- <li>Casing
- <ul>
- <li>Any script subtag is in title case (eg, Hant)</li>
- <li>Any region subtag is in uppercase (eg, DE)</li>
- <li>All other subtags are in lowercase (eg, en, fonipa)</li>
- </ul>
- </li>
- <li>Order
- <ul>
- <li>Any variants are in alphabetical order (eg, en-fonipa-scouse,
- not en-scouse-fonipa)</li>
- <li>Any extensions are in alphabetical order by their singleton
- (eg, en-t-xxx-u-yyy, not en-u-yyy-t-xxx)</li>
- <li>All attributes are sorted in alphabetical order.</li>
- <li>All keywords and tfields are sorted by alphabetical order of their keys, within their respective extensions.</li>
- <li>Any type or tfield value "true" is removed.</li>
- </ul>
- </li>
- </ul>
- <p>For example, the canonical form of
- "en-u-foo-bar-nu-thai-ca-buddhist-kk-true" is
- "en-u-bar-foo-ca-buddhist-kk-nu-thai". The attributes "foo" and
- "bar" in this example are provided only for illustration; no
- attribute subtags are defined by the current CLDR
- specification.</p>
- <p><b>Note:</b> The current version of CLDR data uses some
- non-preferred <em>syntax</em> for backward compatibility. This might be
- changed in future CLDR releases.</p>
- <ul>
- <li>It uses uppercase letters for variant subtags, while the
- preferred forms are all lowercase.</li>
- <li>It uses "_" as the separator, while the preferred form of
- the separator is "-".</li>
- <li>It uses "root", while the preferred form is "und".</li>
- </ul>
-
- <p>A <code><a href=
- "#unicode_locale_id">unicode_locale_id</a></code> is in <em>canonical form</em> when it has canonical syntax and contains no aliased subtags. A <code><a href=
- "#unicode_locale_id">unicode_locale_id</a></code> can be transformed into canonical form according to <a href="#LocaleId_Canonicalization" >Annex C. LocaleId Canonicalization</a>.</p>
-
-
- <p>A <code><a href=
- "#unicode_locale_id">unicode_locale_id</a></code> is <em>maximal</em> when the <code><a href=
- "#unicode_language_id">unicode_language_id</a></code> and tlang (if any) have been transformed by the Add Likely Subtags operation in <em>Section 4.3 <a href="#Likely_Subtags">Likely Subtags</a></em>, excluding "und". </p>
- <blockquote><em>Example:</em> the maxmal form of ja-Kana-t-it is ja-Kana-JP-t-it-Latn-IT</blockquote>
- <p>Two <code><a href=
- "#unicode_locale_id">unicode_locale_ids</a></code> are <em>equivalent</em> when their maximal canonical forms are identical.</p>
- <blockquote>
- <p><em>Example:</em> "IW-HEBR-u-ms-imperial" ~ "he-u-ms-uksystem"</p>
- </blockquote>
- <p>The equivalence relationship may change over time, such as when subtags are deprecated or likely subtag mappings change. For example, if two countries were to merge, then various subtags would become deprecated. These kinds of changes are generally very infrequent.</p>
-
- <h3><a name="BCP_47_Conformance" href="#BCP_47_Conformance" id=
- "BCP_47_Conformance">3.3 BCP 47 Conformance</a></h3>
- <p>Unicode language and locale identifiers inherit the design
- and the repertoire of subtags from [<a href="#BCP47">BCP47</a>]
- Language Tags. There are some extensions and restrictions made
- for the use of the Unicode locale identifier in CLDR:</p>
- <ul>
- <li>It does not allow for the full syntax of [<a href=
- "#BCP47">BCP47</a>]:
- <ul>
- <li>No extlang subtags are allowed (as in the BCP 47
- canonical form, see BCP 47 <a href=
- "https://tools.ietf.org/html/bcp47#section-4.5">Section
- 4.5</a> and <a href=
- "https://tools.ietf.org/html/bcp47#section-3.1.7" target=
- "_blank">Section 3.1.7</a>)</li>
- <li>No irregular BCP 47 legacy language tags
- (marked as “Type: grandfathered” in BCP 47) are allowed
- (these are all deprecated in BCP 47)</li>
- <li>A tag must not start with the subtag "x": thus a
- <em>privateuse</em> (eg x-abc) can only be after a
- language subtag, like "und"</li>
- </ul>
- </li>
- <li>It allows for certain semantic additions and constraints:
- <ul>
- <li>Certain codes that are private-use in BCP-47 and ISO
- are given semantics by LDML</li>
- <li>Each macrolanguage has an identified primary
- encompassed language, which is treated as an alias for
- the macrolanguage, and thus is replaced when
- canonicalizing (as allowed by BCP 47, see <a href=
- "https://tools.ietf.org/html/bcp47#section-4.1.2">Section
- 4.1.2</a>)</li>
- </ul>
- </li>
- <li>It allows certain syntax for backwards compatibility (not
- BCP 47-compatible):
- <ul>
- <li>The "_" character for field separator characters, as
- well as the "-" used in [<a href="#BCP47">BCP47</a>]
- (however, the canonical form is with "-")</li>
- <li>The subtag "root" to indicate the generic locale used
- as the parent of all languages in the CLDR data model
- ("und" can be used instead)</li>
- <li>The language tag may begin with a script subtag
- rather than a language subtag. This is specialized use
- only, and not required for CLDR conformance.</li>
- </ul>
- </li>
- </ul>
- <p>There are thus two subtypes of Unicode locale
- identifiers:</p>
- <ul>
- <li>the term <em>Unicode CLDR locale identifier</em> applies
- where the backwards compatibility syntax is used.</li>
- <li>the term <em>Unicode BCP 47 locale identifier</em>
- applies otherwise. A <em>Unicode BCP 47 locale
- identifier</em> is also a valid BCP 47 language tag.</li>
- </ul>
- <h4><a name="BCP_47_Language_Tag_Conversion" href=
- "#BCP_47_Language_Tag_Conversion" id=
- "BCP_47_Language_Tag_Conversion">3.3.1 BCP 47 Language Tag
- Conversion</a></h4>
- <p>The different identifiers can be converted to one another as
- described in this section.</p>
- <h5><a name="Language_Tag_to_Locale_Identifier" href=
- "#Language_Tag_to_Locale_Identifier" id=
- "Language_Tag_to_Locale_Identifier">BCP 47 Language Tag to
- Unicode BCP 47 Locale Identifier</a></h5>
- <p>A valid [<a href="#BCP47">BCP47</a>] language tag can be
- converted to a valid Unicode BCP 47 locale identifier according to <a href="#LocaleId_Canonicalization" >Annex C. LocaleId Canonicalization</a></p>
-
- <p>The result is a Unicode BCP 47 locale identifier, in
- canonical form. It is both a BCP 47 language tag and a Unicode
- locale identifier. Because the process maps from all BCP 47
- language tags into a subset of BCP 47 language tags, the format
- changes are not reversible, much as a lowercase transformation
- of the string “McGowan” is not reversible.</p><br>
- <p><em>Examples</em></p>
- <table>
- <tr>
- <th style='width:10em'>BCP 47 language tag</th>
- <th style='width:10em'>Unicode BCP 47 locale
- identifier</th>
- <th>Comments</th>
- </tr>
- <tr>
- <td><code>en-US</code></td>
- <td><code>en-US</code></td>
- <td>no changes</td>
- </tr>
- <tr>
- <td><code>iw-FX</code></td>
- <td><code>he-FR</code></td>
- <td>BCP 47 canonicalization [1]</td>
- </tr>
- <tr>
- <td><code>cmn-TW</code></td>
- <td><code>zh-TW</code></td>
- <td>language alias [2]</td>
- </tr>
- <tr>
- <td><code>zh-cmn-TW</code></td>
- <td><code>zh-TW</code></td>
- <td>BCP 47 canonicalization [1], then language alias
- [2]</td>
- </tr>
- <tr>
- <td><code>sr-CS</code></td>
- <td><code>sr-RS</code></td>
- <td>territory alias [3]</td>
- </tr>
- <tr>
- <td><code>sh</code></td>
- <td><code>sr-Latn</code></td>
- <td>multiple replacement subtags [2.1]</td>
- </tr>
- <tr>
- <td><code>sh-Cyrl</code></td>
- <td><code>sr-Cyrl</code></td>
- <td>no replacement with multiple replacement subtags [2.1
- doesn't apply]</td>
- </tr>
- <tr>
- <td><code>hy-SU</code></td>
- <td><code>hy-AM</code></td>
- <td>multiple territory values [3.2]<br>
- <code><territoryAlias type="SU" replacement="RU AM AZ BY
- EE GE KZ KG LV LT MD TJ TM UA UZ" …/></code></td>
- </tr>
- <tr>
- <td><code>i-enochian</code></td>
- <td><code>und-x-i-enochian</code></td>
- <td>prefix any legacy language tags
- (marked as “Type: grandfathered” in BCP 47) with "und-x-" [4]</td>
- </tr>
- <tr>
- <td><code>x-abc</code></td>
- <td><code>und-x-abc</code></td>
- <td>prefix with "und-", so that there is always a base
- language subtag [5]</td>
- </tr>
- </table>
- <p> </p>
- <h5><a name="Unicode_Locale_Identifier_CLDR_to_BCP_47" href=
- "#Unicode_Locale_Identifier_CLDR_to_BCP_47" id=
- "Unicode_Locale_Identifier_CLDR_to_BCP_47">Unicode Locale
- Identifier: CLDR to BCP 47</a></h5>
- <p>A Unicode CLDR locale identifier can be converted to a valid
- [<a href="#BCP47">BCP47</a>] language tag (which is also a
- Unicode BCP 47 locale identifier) by performing the following
- transformation.</p>
- <ol>
- <li>Replace the "_" separators with "-"</li>
- <li>Replace the special language identifier "root" with the
- BCP 47 primary language tag "und"</li>
- <li>Add an initial "und" primary language subtag if the first
- subtag is a script.</li>
- </ol>
- <p><em>Examples:</em></p>
- <table>
- <tr>
- <th style='width:10em'>Unicode CLDR locale identifier</th>
- <th style='width:10em'>BCP 47 language tag</th>
- <th>Comments</th>
- </tr>
- <tr>
- <td><code>en_US</code></td>
- <td><code>en-US</code></td>
- <td>change separator [1]</td>
- </tr>
- <tr>
- <td><code>de_DE_u_co_phonebk</code></td>
- <td><code>de-DE-u-co-phonebk</code></td>
- <td>change separator [1]</td>
- </tr>
- <tr>
- <td><code>root</code></td>
- <td><code>und</code></td>
- <td>change to "und" [2]</td>
- </tr>
- <tr>
- <td><code>root_u_cu_usd</code></td>
- <td><code>und-u-cu-usd</code></td>
- <td>change to "und" [1, 2]</td>
- </tr>
- <tr>
- <td><code>Latn_DE</code></td>
- <td><code>und-Latn-DE</code></td>
- <td>add "und" [1, 3]</td>
- </tr>
- </table><br>
- <h5><a name="Unicode_Locale_Identifier_BCP_47_to_CLDR" href=
- "#Unicode_Locale_Identifier_BCP_47_to_CLDR" id=
- "Unicode_Locale_Identifier_BCP_47_to_CLDR">Unicode Locale
- Identifier: BCP 47 to CLDR</a></h5>
- <p>A Unicode BCP 47 locale identifier can be transformed into a
- Unicode CLDR locale identifier by performing the following
- transformation.</p>
- <ol>
- <li>the separator is changed to "_"</li>
- <li>the primary language subtag "und" is replaced with "root"
- if no script, region, or variant subtags are present.</li>
- </ol>
- <p><em>Examples:</em></p>
- <table>
- <tr>
- <th style='width:10em'>BCP 47 language tag</th>
- <th style='width:10em'>Unicode CLDR locale identifier</th>
- <th>Comments</th>
- </tr>
- <tr>
- <td><code>en-US</code></td>
- <td><code>en_US</code></td>
- <td>changes separator [1]</td>
- </tr>
- <tr>
- <td><code>und</code></td>
- <td><code>root</code></td>
- <td>changes to "root", because no script, region, or
- variant tag is present [2]</td>
- </tr>
- <tr>
- <td><code>und-US</code></td>
- <td><code>und_US</code></td>
- <td>no change to "und", because a region subtag is present
- [1]</td>
- </tr>
- <tr>
- <td nowrap><code>und-u-cu-USD</code></td>
- <td nowrap><code>root_u_cu_usd</code></td>
- <td>changes to "root", because no script, region, or
- variant tag is present [1, 2]</td>
- </tr>
- </table>
- <h3><a name="Field_Definitions" href="#Field_Definitions" id=
- "Field_Definitions">3.4 Language Identifier Field
- Definitions</a></h3>
- <p>Unicode language and locale identifier field values are
- provided in the following table. Note that some private-use BCP
- 47 field values are given specific meanings in CLDR. While
- field values are based on [<a href="#BCP47">BCP47</a>] subtag
- values, their validity status in CLDR is specified by means of
- machine-readable files in the <a href=
- 'https://github.com/unicode-org/cldr/releases/tag/latest/common/validity/'>common/validity/</a>
- subdirectory, such as language.xml. For the format of those
- files and more information, see <em><a href=
- '#Validity_Data'>Section 3.11 Validity Data</a></em>.</p>
- <table>
- <caption>
- <a name="Language_Locale_Field_Definitions" href=
- "#Language_Locale_Field_Definitions" id=
- "Language_Locale_Field_Definitions">Language Identifier
- Field Definitions</a>
- </caption>
- <tr>
- <th>Field</th>
- <th>Valid values</th>
- </tr>
- <tr>
- <td>
- <a href="#unicode_language_subtag_validity" name=
- "unicode_language_subtag_validity" id=
- "unicode_language_subtag_validity">unicode_language_subtag</a>
- <p>(also known as a <i>Unicode base language
- code)</i></p>
- </td>
- <td>
- Subtags in the language.xml file (see <em>Section 3.11
- <a href="#Validity_Data">Validity Data</a></em> ). These
- are based on [<a href="#BCP47">BCP47</a>] subtag values
- marked as <b>Type: language</b>
- <p>ISO 639-3 introduces the notion of "macrolanguages",
- where certain ISO 639-1 or ISO 639-2 codes are given
- broad semantics, and additional codes are given for the
- narrower semantics. For backwards compatibility, Unicode
- language identifiers retain use of the narrower semantics
- for these codes. For example:</p>
- <table border="1" cellspacing="0" cellpadding="2" style=
- "margin: 0.5em">
- <tr>
- <th>For</th>
- <th>Use</th>
- <th><i>Not</i></th>
- </tr>
- <tr>
- <td>Standard Chinese (Mandarin)</td>
- <td><code>zh</code></td>
- <td><code>cmn</code></td>
- </tr>
- <tr>
- <td>Standard Arabic</td>
- <td><code>ar</code></td>
- <td><code>arb</code></td>
- </tr>
- <tr>
- <td>Standard Malay</td>
- <td><code>ms</code></td>
- <td><code>zsm</code></td>
- </tr>
- <tr>
- <td>Standard Swahili</td>
- <td><code>sw</code></td>
- <td><code>swh</code></td>
- </tr>
- <tr>
- <td>Standard Uzbek</td>
- <td><code>uz</code></td>
- <td><code>uzn</code></td>
- </tr>
- <tr>
- <td>Standard Konkani</td>
- <td><code>kok</code></td>
- <td><code>knn</code></td>
- </tr>
- <tr>
- <td>Northern Kurdish</td>
- <td><code>ku</code></td>
- <td><code>kmr</code></td>
- </tr>
- </table>
- <p>If a language subtag matches the type attribute of a
- languageAlias element, then the replacement value is used
- instead. For example, because "swh" occurs in
- <tt><languageAlias type="swh"
- replacement="sw"/></tt> , "sw" must be used instead of
- "swh". Thus Unicode language identifiers use "ar-EG" for
- Standard Arabic (Egypt), not "arb-EG"; they use "zh-TW"
- for Mandarin Chinese (Taiwan), not "cmn-TW".</p>
- <p>The private use codes listed as
- <strong>excluded</strong> in <em>Section 3.5.3 <a href=
- "#Private_Use_Codes">Private Use Codes</a></em> will never be
- given specific semantics in Unicode identifiers, and are
- thus safe for use for other purposes by other
- applications.</p>
- <p>The CLDR provides data for normalizing language/locale
- codes, including mapping overlong codes like "eng-840" or
- "eng-USA" to the correct code "en-US"; see the
- <strong><a href=
- "https://unicode-org.github.io/cldr-staging/charts/38/supplemental/aliases.html">
- Aliases</a></strong> Chart.</p>
- <p>The following are special language subtags:</p>
- <table class="simple" border="1" cellspacing="0"
- cellpadding="2">
- <tr>
- <td> </td>
- <td><strong>Name</strong></td>
- <td><strong>Comment</strong></td>
- </tr>
- <tr>
- <td><code>mis</code></td>
- <td>Uncoded languages</td>
- <td>The content is in a language that doesn't yet
- have an ISO 639 code.</td>
- </tr>
- <tr>
- <td><code>mul</code></td>
- <td>Multiple languages</td>
- <td>The content contains more than one language or
- text that is simultaneously in multiple languages
- (such as brand names).</td>
- </tr>
- <tr>
- <td><code>zxx</code></td>
- <td>No linguistic content</td>
- <td>The content is not in any particular languages
- (such as images, symbols, etc.)</td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td>
- <a href="#unicode_script_subtag_validity" name=
- "unicode_script_subtag_validity" id=
- "unicode_script_subtag_validity">unicode_script_subtag</a>
- <p>(also known as a <i>Unicode script code)</i></p>
- </td>
- <td>
- Subtags in the script.xml file (see <em>Section 3.11
- <a href="#Validity_Data">Validity Data</a></em>). These
- are based on [<a href="#BCP47">BCP47</a>] subtag values
- marked as <b>Type: script</b>
- <p>In most cases the script is not necessary, since the
- language is only customarily written in a single script.
- Examples of cases where it is used are:</p>
- <table border="1" cellspacing="0" cellpadding="2" style=
- "margin: 0.5em">
- <tr>
- <td><code>az_Arab</code></td>
- <td>Azerbaijani in Arabic script</td>
- </tr>
- <tr>
- <td><code>az_Cyrl</code></td>
- <td>Azerbaijani in Cyrillic script</td>
- </tr>
- <tr>
- <td><code>az_Latn</code></td>
- <td>Azerbaijani in Latin script</td>
- </tr>
- <tr>
- <td><code>zh_Hans</code></td>
- <td>Chinese, in simplified script (=zh, zh-Hans,
- zh-CN, zh-Hans-CN)</td>
- </tr>
- <tr>
- <td><code>zh_Hant</code></td>
- <td>Chinese, in traditional script</td>
- </tr>
- </table>
- <p>Unicode identifiers give specific semantics to certain
- Unicode Script values. For more information, see also
- [<a href=
- "https://www.unicode.org/reports/tr41/#UAX24">UAX24</a>]:</p>
- <table cellspacing="0" cellpadding="2" border="1" style=
- "margin: 0.5em">
- <tr>
- <td><code>Qaag</code></td>
- <td>Zawgyi</td>
- <td colspan="2">Qaag is a special script code for
- identifying the non-standard use of Myanmar
- characters for display with the Zawgyi font. The
- purpose of the code is to enable migration to
- standard, interoperable use of Unicode by providing
- an identifier for Zawgyi for tagging text,
- applications, input methods, font tables,
- transformations, and other mechanisms used for
- migration.</td>
- </tr>
- <tr>
- <td><code>Qaai</code></td>
- <td>Inherited</td>
- <td colspan="2"><strong>deprecated</strong>: the
- <em>canonicalized</em> form is Zinh</td>
- </tr>
- <tr>
- <td><code>Zinh</code></td>
- <td>Inherited</td>
- <td colspan="2"> </td>
- </tr>
- <tr>
- <td><code>Zsye</code></td>
- <td>Emoji Style</td>
- <td colspan="2">Prefer emoji style for characters
- that have both text and emoji styles available.</td>
- </tr>
- <tr>
- <td><code>Zsym</code></td>
- <td>Text Style</td>
- <td colspan="2">Prefer text style for characters that
- have both text and emoji styles available.</td>
- </tr>
- <tr>
- <td rowspan="7"><code>Zxxx</code></td>
- <td rowspan="7">Unwritten</td>
- <td colspan="2">Indicates spoken or otherwise
- unwritten content. For example:</td>
- </tr>
- <tr>
- <th>Sample(s)</th>
- <th>Description</th>
- </tr>
- <tr>
- <td>uz</td>
- <td>either written or spoken content</td>
- </tr>
- <tr>
- <td>uz-Latn <em>or</em> uz-Arab</td>
- <td>written-only content (particular script)</td>
- </tr>
- <tr>
- <td>uz-Zyyy</td>
- <td>written-only content (unspecified script)</td>
- </tr>
- <tr>
- <td>uz-Zxxx</td>
- <td>spoken-only content</td>
- </tr>
- <tr>
- <td>uz-Latn, uz-Zxxx</td>
- <td>both specific written and spoken content (using a
- <em>language list</em>)</td>
- </tr>
- <tr>
- <td><code>Zyyy</code></td>
- <td>Common</td>
- <td colspan="2"> </td>
- </tr>
- <tr>
- <td><code>Zzzz</code></td>
- <td>Unknown</td>
- <td colspan="2"> </td>
- </tr>
- </table>
- <p>The private use subtags listed as
- <strong>excluded</strong> in <em>Section 3.5.3 <a href=
- "#Private_Use_Codes">Private Use Codes</a></em> will never be
- given specific semantics in Unicode identifiers, and are
- thus safe for use for other purposes by other
- applications.</p>
- </td>
- </tr>
- <tr>
- <td>
- <a href="#unicode_region_subtag_validity" name=
- "unicode_region_subtag_validity" id=
- "unicode_region_subtag_validity">unicode_region_subtag</a>
- <p>(also known as a <i>Unicode region code,</i> or <i>a
- Unicode territory code)</i></p>
- </td>
- <td>
- Subtags in the region.xml file (see <em>Section 3.11
- <a href="#Validity_Data">Validity Data</a></em>). These
- are based on [<a href="#BCP47">BCP47</a>] subtag values
- marked as <b>Type: region</b>
- <p>Unicode identifiers give specific semantics to the
- following subtags:</p>
- <table border="1" cellspacing="0" cellpadding="2">
- <tr>
- <td> </td>
- <td><strong>Name</strong></td>
- <td><strong>Comment</strong></td>
- <td><strong>ISO 3166-1 status</strong></td>
- </tr>
- <tr>
- <td><code>QO</code></td>
- <td>Outlying Oceania</td>
- <td>countries in Oceania [009] that do not have a
- <a href=
- "https://unicode-org.github.io/cldr-staging/charts/38/supplemental/territory_containment_un_m_49.html">
- subcontinent</a>.</td>
- <td>private use</td>
- </tr>
- <tr>
- <td><code>QU</code></td>
- <td>European Union</td>
- <td><strong>deprecated</strong>: the
- <em>canonicalized</em> form is EU</td>
- <td>private use</td>
- </tr>
- <tr>
- <td><code>UK</code></td>
- <td>United Kingdom</td>
- <td><strong>deprecated</strong>: the
- <em>canonicalized</em> form is GB</td>
- <td>exceptionally reserved</td>
- </tr>
- <tr>
- <td><code>XA</code></td>
- <td>Pseudo-Accents</td>
- <td>special code indicating derived testing locale
- with English + added accents and lengthened</td>
- <td>private use</td>
- </tr>
- <tr>
- <td><code>XB</code></td>
- <td>Pseudo-Bidi</td>
- <td>special code indicating derived testing locale
- with forced RTL English</td>
- <td>private use</td>
- </tr>
- <tr>
- <td><code>XK</code></td>
- <td>Kosovo</td>
- <td>industry practice</td>
- <td>private use</td>
- </tr>
- <tr>
- <td><code>ZZ</code></td>
- <td>Unknown or Invalid Territory</td>
- <td>used in APIs or as replacement for invalid
- code</td>
- <td>private use</td>
- </tr>
- </table>
- <p>The private use subtags listed as
- <strong>excluded</strong> in <em>Section 3.5.3 <a href=
- "#Private_Use_Codes">Private Use Codes</a></em> will normally
- never be given specific semantics in Unicode identifiers,
- and are thus safe for use for other purposes by other
- applications. However, LDML may follow widespread
- industry practice in the use of some of these codes, such
- as for XK.</p>
- <p>The CLDR provides data for normalizing
- territory/region codes, including mapping overlong codes
- like "eng-840" or "eng-USA" to the correct code
- "en-US".</p>
- <p>Special Codes:</p>
- <ul>
- <li>The territory code 'UK' has a special status in
- ISO, and is used for the domain name instead of GB. It
- is thus recognized by CLDR as being an alternate
- (unnormalized) form of 'GB'.</li>
- <li>The territory code '001' (the World) is used to
- indicate a standardized form, such as "ar-001" for
- Modern Standard Arabic.</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>
- <a href="#unicode_variant_subtag_validity" name=
- "unicode_variant_subtag_validity" id=
- "unicode_variant_subtag_validity">unicode_variant_subtag</a>
- <p>(also known as a <i>Unicode language variant
- code)</i></p>
- </td>
- <td>
- Subtags in the variant.xml file (see <em>Section 3.11
- <a href="#Validity_Data">Validity Data</a></em> ). These
- are based on [<a href="#BCP47">BCP47</a>] subtag values
- marked as <b>Type: variant</b>
- <p>CLDR provides data for normalizing variant codes.
- About handling of the "POSIX" variant see <i>Section
- 3.8.2, <a href="#Legacy_Variants">Legacy
- Variants</a></i>.</p>
- </td>
- </tr>
- </table>
- <p><i>Examples:</i></p>
- <blockquote>
- <pre>en
-fr_BE
-zh-Hant-HK</pre>
- </blockquote>
- <p><em>Deprecated</em> codes—such as QU above—are valid, but
- strongly discouraged.</p>
- <p>A locale that only has a language subtag (and optionally a
- script subtag) is called a <i>language locale</i>; one with
- both language and territory subtag is called a <i>territory
- locale</i> (or <i>country locale</i>).</p>
- <h3><a name="Special_Codes" href="#Special_Codes" id=
- "Special_Codes">3.5 Special Codes</a></h3>
- <h4><a name="Unknown_or_Invalid_Identifiers" href=
- "#Unknown_or_Invalid_Identifiers" id=
- "Unknown_or_Invalid_Identifiers">3.5.1 Unknown or Invalid
- Identifiers</a></h4>
- <p>The following identifiers are used to indicate an unknown or
- invalid code in Unicode language and locale identifiers. For
- Unicode identifiers, the region code uses a private use ISO
- 3166 code, and Time Zone code uses an additional code; the
- others are defined by the relevant standards. When these codes
- are used in APIs connected with Unicode identifiers, the
- meaning is that either there was no identifier available, or
- that at some point an input identifier value was determined to
- be invalid or ill-formed.</p>
- <table border="1" cellspacing="0" cellpadding="4" style=
- "margin-top: 0.5em; margin-bottom: 0.5em" id="table4">
- <tr>
- <th>Code Type</th>
- <th>Value</th>
- <th>Description in Referenced Standards</th>
- </tr>
- <tr>
- <td>Language</td>
- <td><code>und</code></td>
- <td>Undetermined language, also used for “root”</td>
- </tr>
- <tr>
- <td>Script</td>
- <td><code>Zzzz</code></td>
- <td>Code for uncoded script, Unknown [<a href=
- "https://www.unicode.org/reports/tr41/#UAX24">UAX24</a>]</td>
- </tr>
- <tr>
- <td>Region </td>
- <td><code>ZZ</code></td>
- <td>Unknown or Invalid Territory</td>
- </tr>
- <tr>
- <td>Currency</td>
- <td><code>XXX</code></td>
- <td>The codes assigned for transactions where no currency
- is involved</td>
- </tr>
- <tr>
- <td>Time Zone</td>
- <td><code>unk</code></td>
- <td>Unknown or Invalid Time Zone</td>
- </tr>
- <tr>
- <td>Subdivision</td>
- <td><em><region></em>zzzz</td>
- <td>Unknown or Invalid Subdivision</td>
- </tr>
- </table>
- <p>When only the script or region are known, then a locale ID
- will use "und" as the language subtag portion. Thus the locale
- tag "und_Grek" represents the Greek script; "und_US" represents
- the US territory.</p>
- <h4><a name="Numeric_Codes" href="#Numeric_Codes" id=
- "Numeric_Codes">3.5.2 Numeric Codes</a></h4>
- <p>For region codes, ISO and the UN establish a mapping to
- three-letter codes and numeric codes. However, this does not
- extend to the private use codes, which are the codes 900-999
- (total: 100), and AAA, QMA-QZZ, XAA-XZZ, and ZZZ (total: 1092).
- Unicode identifiers supply a standard mapping to these: for the
- numeric codes, it uses the top of the numeric private use
- range; for the 3-letter codes it doubles the final letter.
- These are the resulting mappings for all of the private use
- region codes:</p>
- <table border="1" cellspacing="0" cellpadding="4" style=
- "margin-top: 0.5em; margin-bottom: 0.5em" id="table19">
- <tr>
- <th>Region</th>
- <th>UN/ISO Numeric</th>
- <th>ISO 3-Letter</th>
- </tr>
- <tr>
- <td><code>AA</code></td>
- <td><code>958</code></td>
- <td><code>AAA</code></td>
- </tr>
- <tr>
- <td><code>QM..QZ</code></td>
- <td><code>959..972</code></td>
- <td><code>QMM..QZZ</code></td>
- </tr>
- <tr>
- <td><code>XA..XZ</code></td>
- <td><code>973..998</code></td>
- <td><code>XAA..XZZ</code></td>
- </tr>
- <tr>
- <td><code>ZZ</code></td>
- <td><code>999</code></td>
- <td><code>ZZZ</code></td>
- </tr>
- </table>
- <p>For script codes, ISO 15924 supplies a mapping (however, the
- numeric codes are not in common use):</p>
- <table border="1" cellspacing="0" cellpadding="4" style=
- "margin-top: 0.5em; margin-bottom: 0.5em" id="table21">
- <tr>
- <th>Script</th>
- <th>Numeric</th>
- </tr>
- <tr>
- <td><code>Qaaa..Qabx</code></td>
- <td><code>900..949</code></td>
- </tr>
- </table><br>
- <h4>3.5.3 <a name="Private_Use_Codes" href="#Private_Use_Codes" id=
- "Private_Use_Codes">Private Use Codes</a></h4>
- <p>Private use codes fall into three groups.</p>
- <ul>
- <li><strong>defined:</strong> those that are given particular
- semantics currently in CLDR</li>
- <li><strong>reserved:</strong> those that may be given
- particular semantics in future versions of CLDR</li>
- <li><strong>excluded:</strong> those that will never be given
- particular CLDR semantics in the future, and thus can
- normally be used by applications without worrying about
- collisions. However, CLDR may follow widespread industry
- practice in the use of some of these codes, such as for XA,
- XB, and XK.</li>
- </ul>
- <table>
- <caption>
- <a name="Private_Use_CLDR" href="#Private_Use_CLDR" id=
- "Private_Use_CLDR">Private Use Codes in CLDR</a>
- </caption>
- <tr>
- <th>category</th>
- <th>status</th>
- <th>codes</th>
- </tr>
- <tr>
- <td rowspan="3">base language</td>
- <td>defined</td>
- <td>none</td>
- </tr>
- <tr>
- <td>reserved</td>
- <td>qaa..qfy</td>
- </tr>
- <tr>
- <td>excluded</td>
- <td>qfz..qtz</td>
- </tr>
- <tr>
- <td rowspan="3">script</td>
- <td>defined</td>
- <td>Qaai (obsolete), Qaag</td>
- </tr>
- <tr>
- <td>reserved</td>
- <td>Qaaa..Qaaf Qaah Qaaj..Qaap</td>
- </tr>
- <tr>
- <td>excluded</td>
- <td>Qaaq..Qabx</td>
- </tr>
- <tr>
- <td rowspan="3">region</td>
- <td>defined</td>
- <td>QO, QU, UK, XA, XB, XK, ZZ</td>
- </tr>
- <tr>
- <td>reserved</td>
- <td>AA QM..QN QP..QT QV..QZ</td>
- </tr>
- <tr>
- <td>excluded</td>
- <td>XC..XJ, XL..XZ</td>
- </tr>
- <tr>
- <td rowspan="3">timezone</td>
- <td>defined</td>
- <td>IANA: Etc/Unknown<br>
- bcp47: as listed in bcp47/timezone.xml</td>
- </tr>
- <tr>
- <td>reserved</td>
- <td>bcp47: all non-5 letter codes not starting with x</td>
- </tr>
- <tr>
- <td>excluded</td>
- <td>bcp47: all non-5 letter codes starting with x</td>
- </tr>
- </table>
- <p>See also <em>Section 3.5.1 <a href=
- "#Unknown_or_Invalid_Identifiers">Unknown or Invalid
- Identifiers</a></em>.</p>
- <h3><a name="Locale_Extension_Key_and_Type_Data" id=
- "Locale_Extension_Key_and_Type_Data"></a><a name="u_Extension"
- href="#u_Extension" id="u_Extension">3.6 Unicode BCP 47 U
- Extension</a></h3>
- <p>[<a href="#BCP47">BCP47</a>] Language Tags provides a
- mechanism for extending language tags for use in various
- applications by extension subtags. Each extension subtag is
- identified by a single alphanumeric character subtag assigned
- by IANA.</p>
- <p>The Unicode Consortium has registered and is the maintaining
- authority for two BCP 47 language tag extensions: the extension
- 'u' for Unicode locale extension [<a href=
- "#RFC6067">RFC6067</a>] and extension 't' for transformed
- content [<a href="#RFC6497">RFC6497</a>]. The Unicode BCP 47
- extension data defines the complete list of valid subtags.</p>
- <p>These subtags are all in lowercase (that is the canonical
- casing for these subtags), however, subtags are
- case-insensitive and casing does not carry any specific
- meaning. All subtags within the Unicode extensions are
- alphanumeric characters in length of two to eight that meet the
- rule <code>extension</code> in the [<a href=
- "#BCP47">BCP47</a>]</p>
- <p><strong>The -u- Extension.</strong> The syntax of 'u'
- extension subtags is defined by the rule
- <code>unicode_locale_extensions</code> in <a href=
- "#Unicode_locale_identifier">Section 3.2 Unicode locale
- identifier</a>, except the separator of subtags
- <code>sep</code> must be always hyphen '-' when the extension
- is used as a part of BCP 47 language tag.</p>
- <p>A 'u' extension may contain multiple <code>attribute</code>
- s or <code>keyword</code> s as defined in <a href=
- "#Unicode_locale_identifier">Section 3.2 Unicode locale
- identifier</a>. The canonical syntax is defined as in <a href="#Canonical_Unicode_Locale_Identifiers">3.2.1 Canonical Unicode Locale Identifiers</a>. </p>
- <p><em>See also <a href=
- "http://cldr.unicode.org/index/bcp47-extension">Unicode
- Extensions for BCP 47</a> on the CLDR site.</em></p>
- <h4><a href="#Key_And_Type_Definitions_" name=
- "Key_And_Type_Definitions_" id=
- "Key_And_Type_Definitions_">3.6.1 Key And Type
- Definitions</a></h4>
- <p>The following chart contains a set of U extension key values
- that are currently available, with a description or sampling of
- the U extension type values. Each category is associated with
- an XML file in the bcp47 directory.</p>
- <p>For the complete list of valid keys and types defined for
- Unicode locale extensions, see <a href=
- "#Unicode_Locale_Extension_Data_Files">Section 3.6.4 U
- Extension Data Files</a>. For information on the process for
- adding new <i>key</i>/<i>type</i>, see [<a href=
- "#localeProject">LocaleProject</a>].</p>
- <p>Most type values are represented by a single subtag in the
- current version of CLDR. There are exceptions, such as types
- used for key "ca" (calendar) and "kr" (collation reordering).
- If the type is not included, then the type value "true" is
- assumed. Note that the default for key with a possible "true"
- value is often "false", but may not always be. Note also that
- "true"/"True" is not a valid script code, since <a href=
- "https://www.unicode.org/iso15924/codelists.html">the ISO 15924
- Registration Authority has exceptionally reserved it</a>, which
- means that it will not be assigned for any purpose.</p>
- <p>The BCP 47 form for keys and types is the canonical form,
- and recommended. Other aliases are included for backwards
- compatibility.</p>
- <table>
- <caption>
- <a name="Key_Type_Definitions" href="#Key_Type_Definitions"
- id="Key_Type_Definitions">Key/Type Definitions</a>
- </caption>
- <tr>
- <th>key<br>
- (old key name)</th>
- <th>key description</th>
- <th>example type<br>
- (old type name)</th>
- <th>type description</th>
- </tr>
- <tr>
- <td colspan="4"><strong>A <a href=
- "#UnicodeCalendarIdentifier" name=
- "UnicodeCalendarIdentifier" id=
- "UnicodeCalendarIdentifier">Unicode Calendar Identifier</a>
- defines a type of calendar. The valid values are those
- <em>name</em> attribute values in the <em>type</em>
- elements of key name="ca" in bcp47/<a target="_blank" href=
- "https://github.com/unicode-org/cldr/tree/latest/common/bcp47/calendar.xml">calendar.xml</a></strong>.</td>
- </tr>
- <tr>
- <td rowspan="10">"ca"<br>
- (calendar)</td>
- <td rowspan="10">Calendar algorithm<br>
- <br>
- <i>(For information on the calendar algorithms associated
- with the data used with these, see [<a href=
- "#Calendars">Calendars</a>].)</i></td>
- <td>"buddhist"</td>
- <td>Thai Buddhist calendar (same as Gregorian except for
- the year)</td>
- </tr>
- <tr>
- <td>"chinese"</td>
- <td>Traditional Chinese calendar</td>
- </tr>
- <tr>
- <td colspan="2">…</td>
- </tr>
- <tr>
- <td>"gregory"<br>
- (gregorian)</td>
- <td>Gregorian calendar</td>
- </tr>
- <tr>
- <td colspan="2">…</td>
- </tr>
- <tr>
- <td>"islamic"</td>
- <td>Islamic calendar</td>
- </tr>
- <tr>
- <td>"islamic-civil"</td>
- <td>Islamic calendar, tabular (intercalary years
- [2,5,7,10,13,16,18,21,24,26,29] - civil epoch)</td>
- </tr>
- <tr>
- <td>"islamic-umalqura"</td>
- <td>Islamic calendar, Umm al-Qura</td>
- </tr>
- <tr>
- <td colspan="2">…</td>
- </tr>
- <tr>
- <td colspan="2"><b>Note:</b> <i>Some calendar types are
- represented by two subtags. In such cases, the first subtag
- specifies a generic calendar type and the second subtag
- specifies a calendar algorithm variant. The CLDR uses
- generic calendar types (single subtag types) for tagging
- data when calendar algorithm variations within a generic
- calendar type are irrelevant. For example, type "islamic"
- is used for specifying Islamic calendar formatting data for
- all Islamic calendar types, including "islamic-civil" and
- "islamic-umalqura".</i></td>
- </tr>
- <tr>
- <td colspan="4"><strong>A <a href=
- "#UnicodeCurrencyFormatIdentifier" name=
- "UnicodeCurrencyFormatIdentifier" id=
- "UnicodeCurrencyFormatIdentifier">Unicode Currency Format
- Identifier</a> defines a style for currency formatting. The
- valid values are those <em>name</em> attribute values in
- the <em>type</em> elements of key name="cf" in
- bcp47/<a target="_blank" href=
- "https://github.com/unicode-org/cldr/tree/latest/common/bcp47/currency.xml">currency.xml</a></strong>.</td>
- </tr>
- <tr>
- <td rowspan="2">"cf"</td>
- <td rowspan="2">Currency Format style</td>
- <td>"standard"</td>
- <td>Negative numbers use the minusSign symbol (the
- default).</td>
- </tr>
- <tr>
- <td>"account"</td>
- <td>Negative numbers use parentheses or equivalent.</td>
- </tr>
- <tr>
- <td colspan="4"><strong>A <a href=
- "#UnicodeCollationIdentifier" name=
- "UnicodeCollationIdentifier" id=
- "UnicodeCollationIdentifier">Unicode Collation
- Identifier</a> defines a type of collation (sort order).
- The valid values are those <em>name</em> attribute values
- in the <em>type</em> elements of bcp47/<a target="_blank"
- href=
- "https://github.com/unicode-org/cldr/tree/latest/common/bcp47/collation.xml">collation.xml</a></strong>.</td>
- </tr>
- <tr>
- <td colspan="4"><i>For information on each collation
- setting parameter, from <strong>ka</strong> to
- <strong>vt</strong>, see <a href=
- "tr35-collation.html#Setting_Options">Setting
- Options</a></i></td>
- </tr>
- <tr>
- <td rowspan="9">"co"<br>
- (collation)</td>
- <td rowspan="9">Collation type</td>
- <td>"standard"</td>
- <td>The default ordering for each language. For root it is
- based on the [<a href="#DUCET">DUCET</a>] (Default Unicode
- Collation Element Table): see <em><a href=
- "tr35-collation.html#Root_Collation">Root
- Collation</a></em>. Each other locale is based on that,
- except for appropriate modifications to certain characters
- for that language.</td>
- </tr>
- <tr>
- <td>"search"</td>
- <td>A special collation type dedicated for string search—it
- is not used to determine the relative order of two strings,
- but only to determine whether they should be considered
- equivalent for the specified strength, using the string
- search matching rules appropriate for the language.
- Compared to the normal collator for the language, this may
- add or remove primary equivalences, may make additional
- characters ignorable or change secondary equivalences, and
- may modify contractions to allow matching within them,
- depending on the desired behavior. For example, in Czech,
- the distinction between ‘a’ and ‘á’ is secondary for normal
- collation, but primary for search; a search for ‘a’ should
- never match ‘á’ and vice versa. A search collator is
- normally used with strength set to PRIMARY or SECONDARY
- (should be SECONDARY if using “asymmetric” search as
- described in the [<a href=
- "https://www.unicode.org/reports/tr41/#UTS10">UCA</a>]
- section Asymmetric Search). The search collator in root
- supplies matching rules that are appropriate for most
- languages (and which are different than the root collation
- behavior); language-specific search collators may be
- provided to override the matching rules for a given
- language as necessary.</td>
- </tr>
- <tr>
- <td colspan="2">
- <p>Other keywords provide additional choices for certain
- locales; <i>they only have effect in certain
- locales.</i></p>
- </td>
- </tr>
- <tr>
- <td colspan="2">…</td>
- </tr>
- <tr>
- <td>"phonetic"</td>
- <td>Requests a phonetic variant if available, where text is
- sorted based on pronunciation. It may interleave different
- scripts, if multiple scripts are in common use.</td>
- </tr>
- <tr>
- <td>"pinyin"</td>
- <td>Pinyin ordering for Latin and for CJK characters; that
- is, an ordering for CJK characters based on a
- character-by-character transliteration into a pinyin. (used
- in Chinese)</td>
- </tr>
- <tr>
- <td>"reformed"</td>
- <td>Reformed collation (such as in Swedish)</td>
- </tr>
- <tr>
- <td>"searchjl"</td>
- <td>Special collation type for a modified string search in
- which a pattern consisting of a sequence of Hangul initial
- consonants (jamo lead consonants) will match a sequence of
- Hangul syllable characters whose initial consonants match
- the pattern. The jamo lead consonants can be represented
- using conjoining or compatibility jamo. This search
- collator is best used at SECONDARY strength with an
- "asymmetric" search as described in the [<a href=
- "https://www.unicode.org/reports/tr41/#UTS10">UCA</a>]
- section Asymmetric Search and obtained, for example, using
- ICU4C's usearch facility with attribute
- USEARCH_ELEMENT_COMPARISON set to value
- USEARCH_PATTERN_BASE_WEIGHT_IS_WILDCARD; this ensures that
- a full Hangul syllable in the search pattern will only
- match the same syllable in the searched text (instead of
- matching any syllable with the same initial consonant),
- while a Hangul initial consonant in the search pattern will
- match any Hangul syllable in the searched text with the
- same initial consonant.</td>
- </tr>
- <tr>
- <td colspan="2">…</td>
- </tr>
- <tr>
- <td colspan="4"><strong>A <a href=
- "#UnicodeCurrencyIdentifier" name=
- "UnicodeCurrencyIdentifier" id=
- "UnicodeCurrencyIdentifier">Unicode Currency Identifier</a>
- defines a type of currency. The valid values are those
- <em>name</em> attribute values in the <em>type</em>
- elements of key name="cu" in bcp47/<a target="_blank" href=
- "https://github.com/unicode-org/cldr/tree/latest/common/bcp47/currency.xml">currency.xml</a>.</strong></td>
- </tr>
- <tr>
- <td>"cu"<br>
- (currency)</td>
- <td>Currency type</td>
- <td>
- <i>ISO 4217 code,</i>
- <p><i>plus others in common use</i></p>
- </td>
- <td>
- <p>Codes consisting of 3 ASCII letters that are or have
- been valid in ISO 4217, plus certain additional codes
- that are or have been in common use. The list of
- countries and time periods associated with each currency
- value is available in <a href=
- "tr35-numbers.html#Supplemental_Currency_Data">Supplemental
- Currency Data</a>, plus the default number of
- decimals.</p>
- <p>The XXX code is given a broader interpretation as
- <em>Unknown or Invalid Currency</em>.</p>
- </td>
- </tr>
- <tr>
- <td colspan="4"><strong>A <a href=
- "#UnicodeDictionaryBreakExclusionIdentifier" name=
- "UnicodeDictionaryBreakExclusionIdentifier" id=
- "UnicodeDictionaryBreakExclusionIdentifier">Unicode Dictionary Break Exclusion Identifier</a>
- specifies scripts to be excluded from dictionary-based text break (for words and lines).
- The valid values are of one or more items of type SCRIPT_CODE as specified in the
- <em>name</em> attribute value in the <em>type</em>
- element of key name="dx" in bcp47/<a target="_blank" href=
- "https://github.com/unicode-org/cldr/tree/latest/common/bcp47/segmentation.xml">segmentation.xml</a>.</strong></td>
- </tr>
- <tr>
- <td>"dx"</td>
- <td>Dictionary break script exclusions</td>
- <td>
- <i><code><a href="#unicode_script_subtag">unicode_script_subtag</a></code> values</i>
- </td>
- <td>
- <p>One or more items of type SCRIPT_CODE, which are valid
- <code><a href="#unicode_script_subtag">unicode_script_subtag</a></code> values.</p>
- <p>The code Zyyy (Common) can be specified to exclude all scripts, in which case
- it should be the only SCRIPT_CODE value specified.</p>
- </td>
- </tr>
- <tr>
- <td colspan="4"><strong>A <a href=
- "#UnicodeEmojiPresentationStyleIdentifier" name=
- "UnicodeEmojiPresentationStyleIdentifier" id=
- "UnicodeEmojiPresentationStyleIdentifier">Unicode Emoji
- Presentation Style Identifier</a> specifies a request for
- the preferred emoji presentation style. This can be used as
- part of the value for an HTML lang attribute, for example
- <code><html lang="sr-Latn-u-em-emoji"></code>. The
- valid values are those <em>name</em> attribute values in
- the <em>type</em> elements of key name="em" in
- bcp47/<a target="_blank" href=
- "https://github.com/unicode-org/cldr/tree/latest/common/bcp47/variant.xml">variant.xml</a></strong>.</td>
- </tr>
- <tr>
- <td rowspan="3">"em"</td>
- <td rowspan="3">Emoji presentation style</td>
- <td>"emoji"</td>
- <td>Use an emoji presentation for emoji characters if
- possible.</td>
- </tr>
- <tr>
- <td>"text"</td>
- <td>Use a text presentation for emoji characters if
- possible.</td>
- </tr>
- <tr>
- <td>"default"</td>
- <td>Use the default presentation for emoji characters as
- specified in UTR #51 Section 4, <a href=
- "https://www.unicode.org/reports/tr51/#Presentation_Style">Presentation
- Style</a>.</td>
- </tr>
- <tr>
- <td colspan="4"><strong>A <a href=
- "#UnicodeFirstDayIdentifier" name=
- "UnicodeFirstDayIdentifier" id=
- "UnicodeFirstDayIdentifier">Unicode First Day
- Identifier</a> defines the preferred first day of the week
- for calendar display. Specifying "fw" in a locale
- identifier overrides the default value specified by
- supplemental week data (see Part 4 Dates, section 4.3
- <a href="tr35-dates.html#Week_Data">Week Data</a>). The
- valid values are those <em>name</em> attribute values in
- the <em>type</em> elements of key name="fw" in
- bcp47/<a target="_blank" href=
- "https://github.com/unicode-org/cldr/tree/latest/common/bcp47/calendar.xml">calendar.xml</a></strong>.</td>
- </tr>
- <tr>
- <td rowspan="4">"fw"</td>
- <td rowspan="4">First day of week</td>
- <td>"sun"</td>
- <td>Sunday</td>
- </tr>
- <tr>
- <td>"mon"</td>
- <td>Monday</td>
- </tr>
- <tr>
- <td colspan="2">…</td>
- </tr>
- <tr>
- <td>"sat"</td>
- <td>Saturday</td>
- </tr>
- <tr>
- <td colspan="4"><strong>A <a href=
- "#UnicodeHourCycleIdentifier" name=
- "UnicodeHourCycleIdentifier" id=
- "UnicodeHourCycleIdentifier">Unicode Hour Cycle
- Identifier</a> defines the preferred time cycle. Specifying
- "hc" in a locale identifier overrides the default value
- specified by supplemental time data (see Part 4 Dates,
- section 4.4 <a href="tr35-dates.html#Time_Data">Time
- Data</a>). The valid values are those <em>name</em>
- attribute values in the <em>type</em> elements of key
- name="hc" in bcp47/<a target="_blank" href=
- "https://github.com/unicode-org/cldr/tree/latest/common/bcp47/calendar.xml">calendar.xml</a></strong>.</td>
- </tr>
- <tr>
- <td rowspan="4">"hc"</td>
- <td rowspan="4">Hour cycle</td>
- <td>"h12"</td>
- <td>Hour system using 1–12; corresponds to 'h' in
- patterns</td>
- </tr>
- <tr>
- <td>"h23"</td>
- <td>Hour system using 0–23; corresponds to 'H' in
- patterns</td>
- </tr>
- <tr>
- <td>"h11"</td>
- <td>Hour system using 0–11; corresponds to 'K' in
- patterns</td>
- </tr>
- <tr>
- <td>"h24"</td>
- <td>Hour system using 1–24; corresponds to 'k' in
- pattern</td>
- </tr>
- <tr>
- <td colspan="4"><strong>A <a href=
- "#UnicodeLineBreakStyleIdentifier" name=
- "UnicodeLineBreakStyleIdentifier" id=
- "UnicodeLineBreakStyleIdentifier">Unicode Line Break Style
- Identifier</a> defines a preferred line break style
- corresponding to the CSS level 3 <a href=
- "https://drafts.csswg.org/css-text/#line-break-property">line-break
- option</a>. Specifying "lb" in a locale identifier
- overrides the locale‘s default style (which may correspond
- to "normal" or "strict"). The valid values are those
- <em>name</em> attribute values in the <em>type</em>
- elements of key name="lb" in bcp47/<a target="_blank" href=
- "https://github.com/unicode-org/cldr/tree/latest/common/bcp47/segmentation.xml">segmentation.xml</a></strong>.</td>
- </tr>
- <tr>
- <td rowspan="3">"lb"</td>
- <td rowspan="3">Line break style</td>
- <td>"strict"</td>
- <td>CSS level 3 line-break=strict, e.g. treat CJ as NS</td>
- </tr>
- <tr>
- <td>"normal"</td>
- <td>CSS level 3 line-break=normal, e.g. treat CJ as ID,
- break before hyphens for ja,zh</td>
- </tr>
- <tr>
- <td>"loose"</td>
- <td>CSS lev 3 line-break=loose</td>
- </tr>
- <tr>
- <td colspan="4"><strong>A <a href=
- "#UnicodeLineBreakWordIdentifier" name=
- "UnicodeLineBreakWordIdentifier" id=
- "UnicodeLineBreakWordIdentifier">Unicode Line Break Word
- Identifier</a> defines preferred line break word handling
- behavior corresponding to the CSS level 3 <a href=
- "https://drafts.csswg.org/css-text/#word-break-property">word-break
- option</a>. The valid values are those <em>name</em>
- attribute values in the <em>type</em> elements of key
- name="lw" in bcp47/<a target="_blank" href=
- "https://github.com/unicode-org/cldr/tree/latest/common/bcp47/segmentation.xml">segmentation.xml</a></strong>.</td>
- </tr>
- <tr>
- <td rowspan="3">"lw"</td>
- <td rowspan="3">Line break word handling</td>
- <td>"normal"</td>
- <td>CSS level 3 word-break=normal, normal script/language
- behavior for midword breaks</td>
- </tr>
- <tr>
- <td>"breakall"</td>
- <td>CSS level 3 word-break=break-all, allow midword breaks
- unless forbidden by lb setting</td>
- </tr>
- <tr>
- <td>"keepall"</td>
- <td>CSS level 3 word-break=keep-all, prohibit midword
- breaks except for dictionary breaks</td>
- </tr>
- <tr>
- <td colspan="4"><strong>A <a href=
- "#UnicodeMeasurementSystemIdentifier" name=
- "UnicodeMeasurementSystemIdentifier" id=
- "UnicodeMeasurementSystemIdentifier">Unicode Measurement
- System Identifier</a> defines a preferred measurement
- system. Specifying "ms" in a locale identifier overrides
- the default value specified by supplemental measurement
- system data (see Part 2 General, section 5 <a href=
- "tr35-general.html#Measurement_System_Data">Measurement
- System Data</a>). The valid values are those <em>name</em>
- attribute values in the <em>type</em> elements of key
- name="ms" in bcp47/<a target="_blank" href=
- "https://github.com/unicode-org/cldr/tree/latest/common/bcp47/measure.xml">measure.xml</a></strong>.</td>
- </tr>
- <tr>
- <td rowspan="3">"ms"</td>
- <td rowspan="3">Measurement system</td>
- <td>"metric"</td>
- <td>Metric System</td>
- </tr>
- <tr>
- <td>"ussystem"</td>
- <td>US System of measurement: feet, pints, etc.; pints are
- 16oz</td>
- </tr>
- <tr>
- <td>"uksystem"</td>
- <td>UK System of measurement: feet, pints, etc.; pints are
- 20oz</td>
- </tr>
- <tr>
- <td colspan="4"><strong>A <a href=
- "#UnicodeNumberSystemIdentifier" name=
- "UnicodeNumberSystemIdentifier" id=
- "UnicodeNumberSystemIdentifier">Unicode Number System
- Identifier</a> defines a type of number system. The valid
- values are those <em>name</em> attribute values in the
- <em>type</em> elements of bcp47/<a target="_blank" href=
- "https://github.com/unicode-org/cldr/tree/latest/common/bcp47/number.xml">number.xml</a>.</strong></td>
- </tr>
- <tr>
- <td rowspan="7">"nu"<br>
- (numbers)</td>
- <td rowspan="7">Numbering system</td>
- <td><i>Unicode script subtag</i></td>
- <td>
- <p>Four-letter types indicating the primary numbering
- system for the corresponding script represented in
- Unicode. Unless otherwise specified, it is a decimal
- numbering system using digits [:GeneralCategory=Nd:]. For
- example, "latn" refers to the ASCII / Western digits 0-9,
- while "taml" is an algorithmic (non-decimal) numbering
- system. (The code "tamldec" is indicates the "modern
- Tamil decimal digits".)<br></p>
- <p class="note">For more information, see <a href=
- "tr35-numbers.html#Numbering_Systems">Numbering
- Systems</a>.</p>
- </td>
- </tr>
- <tr>
- <td>"arabext"</td>
- <td>Extended Arabic-Indic digits ("arab" means the base
- Arabic-Indic digits)</td>
- </tr>
- <tr>
- <td>"armnlow"</td>
- <td>Armenian lowercase numerals</td>
- </tr>
- <tr>
- <td colspan="2">…</td>
- </tr>
- <tr>
- <td>"roman"</td>
- <td>Roman numerals</td>
- </tr>
- <tr>
- <td>"romanlow"</td>
- <td>Roman lowercase numerals</td>
- </tr>
- <tr>
- <td>"tamldec"</td>
- <td>Modern Tamil decimal digits</td>
- </tr>
- <tr>
- <td colspan="4"><strong>A <a href="#RegionOverride" name=
- "RegionOverride" id="RegionOverride">Region Override</a>
- specifies an alternate region to use for obtaining certain
- region-specific default values (those specified by the
- <a href="tr35-info.html#rgScope"><rgScope></a>
- element), instead of using the region specified by the
- <a href="#unicode_region_subtag">unicode_region_subtag</a>
- in the Unicode Language Identifier (or inferred from the
- <a href=
- "#unicode_language_subtag">unicode_language_subtag</a>).</strong></td>
- </tr>
- <tr>
- <td rowspan="2">"rg"</td>
- <td rowspan="2">Region Override</td>
- <td>"uszzzz"<br>
- <br></td>
- <td rowspan="2">The value is a <a
- href= "#unicode_subdivision_id">unicode_subdivision_id</a>
- of type “unknown” or “regular”; this consists of a
- <a href=
- "#unicode_region_subtag">unicode_region_subtag</a> for a
- regular region (not a macroregion), suffixed
- either by “zzzz” (case is not
- significant) to designate the region
- as a whole, or by a unicode_subdivision_suffix to provide
- more specificity. For example, “en-GB-u-rg-uszzzz”
- represents a locale for British English but with
- region-specific defaults set to US for items such as
- default currency, default calendar and week data, default
- time cycle, and default measurement system and unit
- preferences.</td>
- </tr>
- <tr>
- <td>…</td>
- </tr>
- <tr>
- <td colspan="4"><strong>A <a name=
- "unicode_subdivision_subtag_validity" id=
- "unicode_subdivision_subtag_validity"></a><a href=
- "#UnicodeSubdivisionIdentifier" name=
- "UnicodeSubdivisionIdentifier" id=
- "UnicodeSubdivisionIdentifier">Unicode Subdivision
- Identifier</a> defines a regional subdivision used for
- locales. The valid values are based on the
- <em>subdivisionContainment</em> element as described in
- <em>Section <a href="#Unicode_Subdivision_Codes">3.6.5
- Subdivision Codes</a></em>.</strong></td>
- </tr>
- <tr>
- <td rowspan="2">"sd"</td>
- <td rowspan="2">Regional Subdivision</td>
- <td>"gbsct"<br>
- <br></td>
- <td rowspan="2">A <a href=
- "#unicode_subdivision_id">unicode_subdivision_id</a>, which
- is a <a href=
- "#unicode_region_subtag">unicode_region_subtag</a>
- concatenated with a unicode_subdivision_suffix.<br>
- For example, <em>gbsct</em> is “gb”+“sct” (where sct
- represents the subdivision code for Scotland). Thus
- “en-GB-u-sd-gbsct” represents the language variant “English
- as used in Scotland”. And both “en-u-sd-usca” and
- “en-US-u-sd-usca” represent “English as used in
- California”. See <strong><em><a href=
- "#Unicode_Subdivision_Codes">3.6.5 Subdivision
- Codes</a></em></strong>.</td>
- </tr>
- <tr>
- <td>…</td>
- </tr>
- <tr>
- <td colspan="4"><strong>A <a href=
- "#UnicodeSentenceBreakSuppressionsIdentifier" name=
- "UnicodeSentenceBreakSuppressionsIdentifier" id=
- "UnicodeSentenceBreakSuppressionsIdentifier">Unicode
- Sentence Break Suppressions Identifier</a> defines a set of
- data to be used for suppressing certain sentence breaks
- that would otherwise be found by UAX #14 rules. The valid
- values are those <em>name</em> attribute values in the
- <em>type</em> elements of key name="ss" in bcp47/<a target=
- "_blank" href=
- "https://github.com/unicode-org/cldr/tree/latest/common/bcp47/segmentation.xml">segmentation.xml</a></strong>.</td>
- </tr>
- <tr>
- <td rowspan="2">"ss"</td>
- <td rowspan="2">Sentence break suppressions</td>
- <td>"none"</td>
- <td>Don’t use sentence break suppressions data (the
- default).</td>
- </tr>
- <tr>
- <td>"standard"</td>
- <td>Use sentence break suppressions data of type
- "standard"</td>
- </tr>
- <tr>
- <td colspan="4"><strong>A <a href=
- "#UnicodeTimezoneIdentifier" name=
- "UnicodeTimezoneIdentifier" id=
- "UnicodeTimezoneIdentifier">Unicode Timezone Identifier</a>
- defines a timezone. The valid values are those name
- attribute values in the <em>type</em> elements of
- bcp47/<a target="_blank" href=
- "https://github.com/unicode-org/cldr/tree/latest/common/bcp47/timezone.xml">timezone.xml</a>.</strong></td>
- </tr>
- <tr>
- <td>"tz"<br>
- (timezone)</td>
- <td>Time zone</td>
- <td><i>Unicode short time zone IDs</i></td>
- <td>
- <p>Short identifiers defined in terms of a TZ time zone
- database [<a href="#Olson">Olson</a>] identifier in the
- file common/bcp47/timezone.xml file, plus a few extra
- values.</p>
- <p>For more information, see <a href=
- "#Time_Zone_Identifiers">Section 3.7.1.2 Time Zone
- Identifiers</a>.</p>
- <p>CLDR provides data for normalizing timezone codes.</p>
- </td>
- </tr>
- <tr>
- <td colspan="4"><strong>A <a href=
- "#UnicodeVariantIdentifier" name="UnicodeVariantIdentifier"
- id="UnicodeVariantIdentifier">Unicode Variant
- Identifier</a> defines a special variant used for locales.
- The valid values are those name attribute values in the
- <em>type</em> elements of bcp47/<a target="_blank" href=
- "https://github.com/unicode-org/cldr/tree/latest/common/bcp47/variant.xml">variant.xml</a>.</strong></td>
- </tr>
- <tr>
- <td>"va"</td>
- <td>Common variant type</td>
- <td>"posix"</td>
- <td>POSIX style locale variant. About handling of the
- "POSIX" variant see <i>Section 3.8.2, <a href=
- "#Legacy_Variants">Legacy Variants</a></i>.</td>
- </tr>
- </table>
- <p>For more information on the allowed keys and types, see the
- specific elements below, and <a href=
- "#Unicode_Locale_Extension_Data_Files">Section 3.6.4 U
- Extension Data Files</a>.</p>
- <p>Additional keys or types might be added in future versions.
- Implementations of LDML should be robust to handle any
- syntactically valid key or type values.</p>
- <h4><a href="#Numbering%20System%20Data" name=
- "Numbering System Data">3.6.2 Numbering System Data</a></h4>
- <p>LDML supports multiple numbering systems. The identifiers
- for those numbering systems are defined in the file
- <strong>bcp47/number.xml</strong>. For example, for the 'trunk'
- version of the data see <a href=
- "https://github.com/unicode-org/cldr/releases/tag/latest/common/bcp47/number.xml">
- bcp47/number.xml</a>.<br></p>
- <p>Details about those numbering systems are defined in
- <strong>supplemental/numberingSystems.xml</strong>. For
- example, for the 'trunk' version of the data see <a href=
- "https://github.com/unicode-org/cldr/releases/tag/latest/common/supplemental/numberingSystems.xml">
- supplemental/numberingSystems.xml</a>.<br></p>
- <p>LDML makes certain stability guarantees on this
- data: <br></p>
- <ol>
- <li>Like other BCP 47 identifiers, once a numeric identifier
- is added to <strong>bcp47/number.xml</strong> or
- <strong>numberingSystems.xml</strong>, it will never be
- removed from either of those files.</li>
- <li>If an identifier has type="numeric" in
- numberingSystems.xml, then
- <ol>
- <li>It is a decimal, positional numbering system with an
- attribute digits=X, where X is a string with the 10
- digits in order used by the numbering system.</li>
- <li>The values of the type and digits will never
- change.</li>
- </ol>
- </li>
- </ol>
- <h4><a href="#Time_Zone_Identifiers" name=
- "Time_Zone_Identifiers" id="Time_Zone_Identifiers">3.6.3 Time
- Zone Identifiers</a></h4>
- <p>LDML inherits time zone IDs from the tz database [<a href=
- "#Olson">Olson</a>]. Because these IDs from the tz database do
- not satisfy the BCP 47 language subtag syntax requirements,
- CLDR defines short identifiers for the use in the Unicode
- locale extension. The short identifiers are defined in the file
- <strong>common/bcp47/timezone.xml</strong>.</p>
- <p>The short identifiers use UN/LOCODE [<a href=
- "#LOCODE">LOCODE</a>] (excluding a space character) codes where
- possible. For example, the short identifier for
- "America/Los_Angeles" is "uslax" (the LOCODE for Los Angeles,
- US is "US LAX"). Identifiers of length not equal to 5 are used
- where there is no corresponding UN/LOCODE, such as "usnavajo"
- for "America/Shiprock", or "utcw01" for "Etc/GMT+1", so that
- they do not overlap with future UN/LOCODE.</p>
- <p>Although the first two letters of a short identifier may
- match an ISO 3166 two-letter country code, a user should not
- assume that the time zone belongs to the country. The first two
- letters in an identifier of length not equal to 5 has no
- meaning. Also, the identifiers are stabilized, meaning that
- they will not change no matter what changes happen in the base
- standard. So if Hawaii leaves the US and joins Canada as a new
- province, the short time zone identifier "ushnl" would not
- change in CLDR even if the UN/LOCODE changes to "cahnl" or
- something else.</p>
- <p>There is a special code "unk" for an Unknown or Invalid time
- zone. This can be expressed in the tz database style ID
- "Etc/Unknown", although it is not defined in the tz
- database.</p>
- <p><b>Stability of Time Zone Identifiers</b></p>
- <p>Although the short time zone identifiers are guaranteed to
- be stable, the preferred IDs in the tz database (as those found
- in <strong>zone.tab</strong> file) might be changed time to
- time. For example, "Asia/Culcutta" was replaced with
- "Asia/Kolkata" and moved to <strong>backward</strong> file in
- the tz database. CLDR contains locale data using a time zone ID
- from the tz database as the key, stability of the IDs is
- cirtical.</p>
- <p>To maintain the stability of "long" IDs (for those inherited
- from the tz database), a special rule applied to the
- <i>alias</i> attribute in the <type> element for "tz" -
- the first "long" ID is the CLDR canonical "long" time zone
- ID.</p>
- <p>For example:</p>
- <blockquote>
- <type name="inccu" alias="Asia/Calcutta Asia/Kolkata"
- description="Kolkata, India"/>
- </blockquote>
- <p>Above <type> element defines the short time zone ID
- "inccu" (for the use in the Unicode locale extension),
- corresponding <em>CLDR canonical "long" ID</em>
- "Asia/Culcutta", and an alias "Asia/Kolkata".</p>
- <h4><a href="#Unicode_Locale_Extension_Data_Files" name=
- "Unicode_Locale_Extension_Data_Files" id=
- "Unicode_Locale_Extension_Data_Files">3.6.4 U Extension Data
- Files</a></h4>
- <p>The 'u' extension data is stored in multiple XML files
- located under common/bcp47 directory in CLDR. Each file
- contains the locale extension key/type values and their
- backward compatibility mappings appropriate for a particular
- domain. <a href=
- "https://github.com/unicode-org/cldr/releases/tag/latest/common/bcp47/collation.xml">
- common/bcp47/collation.xml</a> contains key/type values for
- collation, including optional collation parameters and valid
- type values for each key.</p>
- <p>The 't' extension data is stored in <a href=
- "https://github.com/unicode-org/cldr/releases/tag/latest/common/bcp47/transform.xml">
- common/bcp47/transform.xml</a>.</p>
- <p class="dtd"><!ELEMENT keyword ( key* )></p>
- <p class="dtd"><!ELEMENT key ( type* )><br>
- <!ATTLIST key extension NMTOKEN #IMPLIED><br>
- <!ATTLIST key name NMTOKEN #REQUIRED><br>
- <!ATTLIST key description CDATA #IMPLIED><br>
- <!ATTLIST key deprecated ( true | false ) "false"><br>
- <!ATTLIST key preferred NMTOKEN #IMPLIED><br>
- <!ATTLIST key alias NMTOKEN #IMPLIED><br>
- <!ATTLIST key valueType (single | multiple | incremental |
- any) #IMPLIED ><br>
- <!ATTLIST key since CDATA #IMPLIED></p>
- <p class="dtd"><!ELEMENT type EMPTY><br>
- <!ATTLIST type name NMTOKEN #REQUIRED><br>
- <!ATTLIST type description CDATA #IMPLIED><br>
- <!ATTLIST type deprecated ( true | false ) "false"><br>
- <!ATTLIST type preferred NMTOKEN #IMPLIED><br>
- <!ATTLIST type alias CDATA #IMPLIED><br>
- <!ATTLIST type since CDATA #IMPLIED></p>
- <p class="dtd"><!ELEMENT attribute EMPTY><br>
- <!ATTLIST attribute name NMTOKEN #REQUIRED><br>
- <!ATTLIST attribute description CDATA #IMPLIED><br>
- <!ATTLIST attribute deprecated ( true | false )
- "false"><br>
- <!ATTLIST attribute preferred NMTOKEN #IMPLIED><br>
- <!ATTLIST attribute since CDATA #IMPLIED></p>
- <p>The extension attribute in <key> element specifies the
- BCP 47 language tag extension type. The default value of the
- extension attribute is "u" (Unicode locale extension). The
- <type> element is only applicable to the enclosing
- <key>.</p>
- <p>In the Unicode locale extension 'u' and 't' data files, the
- common attributes for the <key>, <type> and
- <attribute> elements are as follows:</p>
- <dl>
- <dt><b>name</b></dt>
- <dd>
- <p>The key or type name used by Unicode locale extension
- with <a href="#Unicode_locale_identifier">'u' extension
- syntax</a> or the 't' extensions syntax. When <i>alias</i>
- below is absent, this name can be also used with the old
- style <a href="#Old_Locale_Extension_Syntax">"@key=type"
- syntax</a>.</p>
- <p>Most type names are <strong>literal type names</strong>,
- which match exactly the same value. All of these have at
- least one lowercase letter, such as "buddhist". There are a
- small number of <strong>indirect type names</strong>, such
- as "RG_KEY_VALUE". These have no lowercase letters. The
- interpretation of each one is listed below.</p>
- <h5><a name="CODEPOINTS" href="#CODEPOINTS" id=
- "CODEPOINTS">CODEPOINTS</a></h5>
- <p>The type name <strong>"CODEPOINTS"</strong> is reserved
- for a variable representing Unicode code point(s). The
- syntax is:</p>
- <table border="0">
- <tr>
- <th> </th>
- <th>
- <div align="center">
- EBNF
- </div>
- </th>
- </tr>
- <tr>
- <td>
- <pre>codepoints</pre>
- </td>
- <td>
- <pre>= codepoint (sep codepoint)?</pre>
- </td>
- </tr>
- <tr>
- <td>
- <pre>codepoint</pre>
- </td>
- <td>
- <pre>= [0-9 A-F a-f]{4,6}</pre>
- </td>
- </tr>
- </table>
- <p>In addition, no codepoint may exceed 10FFFF. For
- example, "00A0", "300b", "10D40C" and "00C1-00E1" are
- valid, but "A0", "U060C" and "110000" are not.</p>
- <p>In the current version of CLDR, the type "CODEPOINTS" is
- only used for the deprecated locale extension key "vt"
- (variableTop). The subtags forming the type for "vt"
- represent an arbitrary string of characters. There is no
- formal limit in the number of characters, although
- practically anything above 1 will be rare, and anything
- longer than 4 might be useless. Repetition is allowed, for
- example, 0061-0061 ("aa") is a Valid type value for "vt",
- since the sequence may be a collating element. Order is
- vital: 0061-0062 ("ab") is different than 0062-0061 ("ba").
- Note that for variableTop any character sequence must be a
- contraction which yields exactly one primary weight.</p>
- <p>For example,</p>
- <blockquote>
- <p><strong>en-u-vt-00A4</strong> : this indicates
- English, with any characters sorting at or below " ¤" (at
- a primary level) considered Variable.</p>
- </blockquote>
- <p>By default in UCA, variable characters are ignored in
- sorting at a primary, secondary, and tertiary level. But in
- CLDR, they are not ignorable by default. For more
- information, see <a href=
- "tr35-collation.html#Setting_Options">Collation: Section
- 3.3 <em>Setting Options</em></a> .</p>
- <h5><a name="REORDER_CODE" href="#REORDER_CODE" id=
- "REORDER_CODE">REORDER_CODE</a></h5>
- <p>The type name <strong>"REORDER_CODE"</strong> is
- reserved for reordering block names (e.g. "latn", "digit"
- and "others") defined in the <i><a href=
- "tr35-collation.html#Root_Collation">Root
- Collation</a></i>. The type "REORDER_CODE" is used for
- locale extension key "kr" (colReorder). The value of type
- for "kr" is represented by one or more reordering block
- names such as "latn-digit". For more information, see
- <a href="tr35-collation.html#Script_Reordering">Collation:
- Section 3.12 <em>Collation Reordering</em></a> .</p>
- <h5><a name="RG_KEY_VALUE" href="#RG_KEY_VALUE" id=
- "RG_KEY_VALUE">RG_KEY_VALUE</a></h5>
- <p>The type name <strong>"RG_KEY_VALUE"</strong> is
- reserved for region codes in the format required by the
- "rg" key; this is a subdivision
- code with idStatus='unknown' or 'regular' from the
- idValidity data in common/validity/subdivision.xml.</p>
- <h5><a name="SCRIPT_CODE" href="#SCRIPT_CODE" id=
- "SCRIPT_CODE">SCRIPT_CODE</a></h5>
- <p>The type name <strong>"SCRIPT_CODE"</strong> is
- reserved for <code><a href="#unicode_script_subtag">unicode_script_subtag</a></code>
- values (e.g. "thai", "laoo").
- The type "SCRIPT_CODE" is used for locale extension key "dx".
- The value of type for "dx" is represented by one or more SCRIPT_CODEs,
- such as "thai-laoo".</p>
- <h5><a name="SUBDIVISION_CODE" href="#SUBDIVISION_CODE" id=
- "SUBDIVISION_CODE">SUBDIVISION_CODE</a></h5>
- <p>The type name <strong>"SUBDIVISION_CODE"</strong> is
- reserved for subdivision codes in the format required by
- the "sd" key; this is a subdivision code from the
- idValidity data in common/validity/subdivision.xml,
- excluding those with idStatus='unknown'. Codes with
- idStatus='deprecated' should not be generated, and those
- with idStatus='private_use' are only to be used with prior
- agreement.</p>
- <h5><a name="PRIVATE_USE" href="#PRIVATE_USE" id=
- "PRIVATE_USE">PRIVATE_USE</a></h5>
- <p>The type name <strong>"PRIVATE_USE"</strong> is reserved
- for private use types. A valid type value is composed of
- one or more subtags separated by hyphens and each subtag
- consists of three to eight ASCII alphanumeric characters.
- In the current version of CLDR,
- <strong>"PRIVATE_USE"</strong> is only used for transform
- extension "x0".</p>
- </dd>
- <dt><b>valueType</b></dt>
- <dd>
- <p>The valueType attribute indicates how many subtags are
- valid for a given key:</p>
- <table class='simple' width="100%" border="1">
- <tbody>
- <tr>
- <th>single</th>
- <td>Either exactly one type value, or no type value
- (but only if the value of "true" would be valid).
- This is the default if no valueType attribute is
- present.</td>
- </tr>
- <tr>
- <th>incremental</th>
- <td>Multiple type values are allowed, but only if a
- prefix is also present, and the sequence is
- explicitly listed. Each successive type value
- indicates a refinement of its prefix. For
- example:<br>
- <key name="ca" description="Calendar algorithm
- key" <strong>valueType="incremental"</strong>><br>
- <type name="islamic"
- description="Islamic calendar"/><br>
- <type name="islamic-umalqura"
- description="Islamic calendar, Umm al-Qura"/><br>
- Thus <em>ca-islamic-umalqura</em> is valid. However,
- <em>ca-gregory-japanese</em> is not valid, because
- "gregory-japanese" is not listed as a type.</td>
- </tr>
- <tr>
- <th>multiple</th>
- <td>Multiple type values are allowed, but each may
- only occur once. For example:<br>
- <key name="kr" description="Collation reorder
- codes" <strong>valueType="multiple"</strong>><br>
- <type name="REORDER_CODE" …/></td>
- </tr>
- <tr>
- <th>any</th>
- <td>Any number of type values are allowed, with none
- of the above restrictions. For example:<br>
- <key extension="t" name="x0" description="Private
- use transform type key."
- <strong>valueType="any"</strong>><br>
- <type name="PRIVATE_USE" …/></td>
- </tr>
- </tbody>
- </table>
- </dd>
- <dt><b>description</b></dt>
- <dd>
- <p>The description of the key, type or attribute element.
- There is also some informative text about certain keys and
- types in the Section 3.5 <a href=
- "#Key_And_Type_Definitions_">Key And Type
- Definitions</a>.</p>
- </dd>
- <dt><b>deprecated</b></dt>
- <dd>
- <p>The deprecation status of the key, type or attribute
- element. The value "true" indicates the element is
- deprecated and no longer used in the version of CLDR. The
- default value is "false".</p>
- </dd>
- <dt><b>preferred</b></dt>
- <dd>
- <p>The preferred value of the deprecated key, type or
- attribute element. When a key, type or attribute element is
- deprecated, this attribute is used for specifying a new
- canonical form if available.</p>
- </dd>
- <dt><b>alias</b> (Not applicable to <attribute>)</dt>
- <dd>
- <p>The BCP 47 form is the canonical form, and recommended.
- Other aliases are included only for backwards
- compatibility.</p>
- </dd>
- <dd><em>Example:</em></dd>
- <dd>
- <p><type name="phonebk"
- <strong>alias="phonebook"</strong> description="Phonebook
- style ordering (such as in German)"/><br></p>The
- preferred term, and the only one to be used in BCP 47, is
- the name: in this example, "phonebk".<br>
- </dd>
- <dd>
- <p>The alias is a key or type name used by Unicode locale
- extensions with the old <a href=
- "#Old_Locale_Extension_Syntax">"@key=type" syntax</a>. The
- attribute value for type may contain multiple names
- delimited by ASCII space characters. Of those aliases, the
- first name is the preferred value.</p>
- </dd>
- <dt><b>since</b></dt>
- <dd>The version of CLDR in which this key or type was
- introduced. Absence of this attribute value implies the key
- or type was available in CLDR 1.7.2.</dd>
- </dl>
- <p><em>Note: There are no values defined for the locale
- extension attribute in the current CLDR release.</em></p>
- <p>For example,</p>
- <pre>
-<key name="co" alias="collation" description="Collation type key">
- <type name="pinyin" description="Pinyin ordering for Latin and for CJK characters (used in Chinese)"/>
-</key>
-
-<key name="ka" alias="colAlternate" description="Collation parameter key for alternate handling">
- <type name="noignore" alias="non-ignorable" description="Variable collation elements are not reset to ignorable"/>
- <type name="shifted" description="Variable collation elements are reset to zero at levels one through three"/>
-</key>
-
-<key name="tz" alias="timezone">
- ...
- <type name="aumel" alias="Australia/Melbourne Australia/Victoria" description="Melbourne, Australia"/>
- <type name="aumqi" alias="Antarctica/Macquarie" description="Macquarie Island Station, Macquarie Island" since="1.8.1"/>
- ...
-</key>
- </pre>The data above indicates:
- <ul>
- <li>type "pinyin" is valid for key "co", thus "u-co-pinyin"
- is a valid Unicode locale extension.</li>
- <li>type "pinyin" is not valid for key "ka", thus
- "u-ka-pinyin" is not a valid Unicode locale extension.</li>
- <li>type "pinyin" has no <i>alias</i>, so
- "zh@collation=pinyin" is a valid Unicode locale identifier
- according to the old syntax.</li>
- <li>type "noignore" has an alias attribute, so
- "en@colAlternate=noignore" is not a valid Unicode locale
- identifier according to the old syntax.</li>
- <li>type "aumel" is valid for key "tz", supported by CLDR
- 1.7.2 (default value) or later versions.</li>
- <li>type "aumqi" is valid for key "tz", supported by CLDR
- 1.8.1 or later versions.</li>
- </ul>
- <p>It is strongly recommended that all API methods accept all
- possible aliases for keywords and types, but generate the
- canonical form. For example, "ar-u-ca-islamicc" would be
- equivalent to "ar-u-ca-islamic-civil" on input, but the latter
- should be output. The one exception is where an alias would
- only be well-formed with the old syntax, such as "gregorian"
- (for "gregory").</p>
- <h4><a href="#Unicode_Subdivision_Codes" name=
- "Unicode_Subdivision_Codes" id=
- "Unicode_Subdivision_Codes">3.6.5 Subdivision Codes</a></h4>
- <p>The subdivision codes designate a subdivision of a country
- or region. They are called various names, such as a
- <em>state</em> in the United States, or a <em>province</em> in
- Canada. The codes in CLDR are based on ISO 3166-2 subdivision
- codes. The ISO codes have a region code followed by a hyphen,
- then a suffix consisting of 1..3 ASCII letters or digits.</p>
- <p>The CLDR codes are designed to work in a <a href=
- '#unicode_locale_id'>unicode_locale_id</a> (BCP47), and are
- thus all lowercase, with no hyphen. For example, the following
- are valid, and mean “English as used in California, USA”.</p>
- <ul>
- <li>en-u-sd-<strong>usca</strong></li>
- <li>en-US-u-sd-<strong>usca</strong></li>
- </ul>
- <p>CLDR has additional subdivision codes. These may start with
- a 3-digit region code or use a suffix of 4 ASCII letters or
- digits, so they will not collide with the ISO codes.
- Subdivision codes for unknown values are the region code plus
- "zzzz", such as "uszzzz" for an unknown subdivision of the US.
- Other codes may be added for stability.</p>
- <p>Like BCP 47, CLDR requires stable codes, which are not
- guaranteed for ISO 3166-2 (nor have the ISO 3166-2 codes been
- stable in the past). If an ISO 3166-2 code is removed, it
- remains valid (though marked as deprecated) in CLDR. If an ICU
- 3166-2 code is reused (for the same region), then CLDR will
- define a new equivalent code using these a 4-character
- suffixes.</p>
- <h5><a name="Validity" href="#Validity" id="Validity">3.6.5.1
- Validity</a></h5>
- <p>A <a href=
- "#unicode_subdivision_id">unicode_subdivision_id</a> is only
- valid when it is present in the subdivision.xml file as
- described in <em>Section 3.11 <a href="#Validity_Data">Validity
- Data</a></em>. The data is in a compressed form, and thus needs
- to be expanded before such a test is made.</p>
- <p><em>Examples:<br></em></p>
- <ul>
- <li><strong>usca</strong> is valid — there is an
- <strong>id</strong>
- element<code><id type="subdivision"…>… usca
- …</id></code></li>
- <li><strong>ussct</strong> is invalid — there is no
- <strong>id</strong> element
- <code><id type="subdivision"…>… ussct
- …</id></code></li>
- </ul>
- <p>If a <a href='#unicode_locale_id'>unicode_locale_id</a>
- contains both a <a href=
- "#unicode_region_subtag">unicode_region_subtag</a> and a
- <a href="#unicode_subdivision_id">unicode_subdivision_id</a>,
- it is only valid if the <a href=
- "#unicode_subdivision_id">unicode_subdivision_id</a> starts
- with the <a href=
- "#unicode_region_subtag">unicode_region_subtag</a>
- (case-insensitively).<br></p>
- <p>It is recommended that a <a href=
- '#unicode_locale_id'>unicode_locale_id</a> contain a <a href=
- "#unicode_region_subtag">unicode_region_subtag</a> if it
- contains a <a href=
- "#unicode_subdivision_id">unicode_subdivision_id</a> and the
- region would not be added by adding likely subtags. That
- produces better behavior if the <a href=
- "#unicode_subdivision_id">unicode_subdivision_id</a> is ignored
- by an implementation or if the language tag is truncated.</p>
- <p>Examples:<br></p>
- <ul>
- <li>en-<strong>US</strong>-u-sd-<strong>us</strong>ca is
- valid — the region "US" matches the first part of "usca"</li>
- <li>en-u-sd-<strong>us</strong>ca is valid — it still works
- after adding likely subtags.</li>
- <li>en-<strong>CA</strong>-u-sd-<strong>gb</strong>sct is
- invalid — the region "CA" does not match the first part of
- "gbsct". An implementation should disregard the subdivision
- id (or return an error).</li>
- <li>en-u-sd-<strong>gb</strong>sct is valid but not
- recommended — an implementation that ignores the <a href=
- "#unicode_subdivision_id">unicode_subdivision_id</a> can get
- the wrong fallback behavior, or could add likely subtags and
- get the invalid
- en<strong>-Latn-US</strong>-u-sd-<strong>gb</strong>sct</li>
- </ul>
- <p>In version 28.0, the subdivisions in the validity files used
- the ISO format, uppercase with a hyphen separating two
- components, instead of the BCP 47 format.</p>
- <h3><a name="t_Extension" id="t_Extension"></a><a name=
- "BCP47_T_Extension" href="#BCP47_T_Extension" id=
- "BCP47_T_Extension">3.7 Unicode BCP 47 T Extension</a></h3>
- <p>The Unicode Consortium has registered and is the maintaining
- authority for two BCP 47 language tag extensions: the extension
- 'u' for Unicode locale extension [<a href=
- "#RFC6067">RFC6067</a>] and extension 't' for transformed
- content [<a href="#RFC6497">RFC6497</a>]. The Unicode BCP 47
- extension data defines the complete list of valid subtags.
- While the title of the RFC is “Transformed Content”, the
- abstract makes it clear that the scope is broader than the term
- "transformed" might indicate to a casual
- reader: “including content that has been transliterated,
- transcribed, or translated, or <em>in some other way
- influenced by the source. It also provides for additional
- information used for identification.</em>”</p>
- <p><strong>The -t- Extension.</strong> The syntax of 't'
- extension subtags is defined by the rule
- <code>unicode_locale_extensions</code> in <a href=
- "#Unicode_locale_identifier"><em>Section 3.2 Unicode locale
- identifier</em></a>, except the separator of subtags
- <code>sep</code> must be always hyphen '-' when the extension
- is used as a part of BCP 47 language tag. For information about
- the registration process, meaning, and usage of the 't'
- extension, see [<a href="#RFC6497">RFC6497</a>].</p>
- <p>These subtags are all in lowercase (that is the canonical
- casing for these subtags), however, subtags are
- case-insensitive and casing does not carry any specific
- meaning. All subtags within the Unicode extensions are
- alphanumeric characters in length of two to eight that meet the
- rule <code>extension</code> in the [<a href=
- "#BCP47">BCP47</a>].</p>
- <p>The following keys are defined for the -t- extension:</p>
- <table class='simple'>
- <tbody>
- <tr>
- <th>Keys</th>
- <th>Description</th>
- <th>Values in latest release</th>
- </tr>
- <tr>
- <td>m0</td>
- <td><strong>Transform extension mechanism:</strong> to
- reference an authority or rules for a type of
- transformation</td>
- <td><a href=
- "https://github.com/unicode-org/cldr/releases/tag/latest/common/bcp47/transform.xml">
- transform.xml</a></td>
- </tr>
- <tr>
- <td nowrap>s0, d0</td>
- <td><strong>Transform source/destination:</strong> for
- non-languages/scripts, such as fullwidth-halfwidth
- conversion.</td>
- <td><a href=
- "https://github.com/unicode-org/cldr/releases/tag/latest/common/bcp47/transform-destination.xml">
- transform-destination.xml</a></td>
- </tr>
- <tr>
- <td>i0</td>
- <td><strong>Input Method Engine transform:</strong> Used
- to indicate an input method transformation, such as one
- used by a client-side input method. The first subfield in
- a sequence would typically be a 'platform' or vendor
- designation.</td>
- <td><a href=
- "https://github.com/unicode-org/cldr/releases/tag/latest/common/bcp47/transform_ime.xml">
- transform_ime.xml</a></td>
- </tr>
- <tr>
- <td>k0</td>
- <td><strong>Keyboard transform:</strong> Used to indicate
- a keyboard transformation, such as one used by a
- client-side virtual keyboard. The first subfield in a
- sequence would typically be a 'platform' designation,
- representing the platform that the keyboard is intended
- for. The keyboard might or might not correspond to a
- keyboard mapping shipped by the vendor for the platform.
- One or more subsequent fields may occur, but are only
- added where needed to distinguish from others.</td>
- <td><a href=
- "https://github.com/unicode-org/cldr/releases/tag/latest/common/bcp47/transform_keyboard.xml">
- transform_keyboard.xml</a></td>
- </tr>
- <tr>
- <td>t0</td>
- <td><strong>Machine Translation:</strong> Used to
- indicate content that has been machine translated, or a
- request for a particular type of machine translation of
- content. The first subfield in a sequence would typically
- be a 'platform' or vendor designation.</td>
- <td><a href=
- "https://github.com/unicode-org/cldr/releases/tag/latest/common/bcp47/transform_mt.xml">
- transform_mt.xml</a></td>
- </tr>
- <tr>
- <td nowrap>h0</td>
- <td><strong>Hybrid Locale Identifiers:</strong> h0 with
- the value 'hybrid' indicates that the -t- value is a
- language that is mixed into the main language tag to form
- a hybrid. For more information, and examples, see
- <em>Section 3.10.2 <a href="#Hybrid_Locale">Hybrid Locale
- Identifiers</a>.</em></td>
- <td><a href=
- "https://github.com/unicode-org/cldr/releases/tag/latest/common/bcp47/transform_hybrid.xml">
- transform_hybrid.xml</a></td>
- </tr>
- <tr>
- <td>x0</td>
- <td><strong>Private use transform</strong></td>
- <td><a href=
- "https://github.com/unicode-org/cldr/releases/tag/latest/common/bcp47/transform_private_use.xml">
- transform_private_use.xml</a></td>
- </tr>
- </tbody>
- </table>
- <h4><a href="#Transformed_Content_Data_File" name=
- "Transformed_Content_Data_File" id=
- "Transformed_Content_Data_File">3.7.1 T Extension Data
- Files</a></h4>
- <p>The overall structure of the data files is the similar to
- the U Extension, with the following exceptions.</p>
- <p>In the transformed content 't' data file, the name attribute
- in a <key> element defines a valid field separator
- subtag. The name attribute in an enclosed <type> element
- defines a valid field subtag for the field separator subtag.
- For example:</p>
- <pre>
-<key extension="t" name="m0"
- description="Transform extension mechanism">
- <type name="ungegn"
- description="United Nations Group of Experts on Geographical Names"
- since="21"/>
-<key>
-</pre>The data above indicates:
- <ul>
- <li>"m0" is a valid field separator for the transformed
- content extension 't'.</li>
- <li>field subtag "ungegn" is valid for field separator
- "m0".</li>
- <li>field subtag "ungegn" was introduced in CLDR 21.</li>
- </ul>
- <p>The attributes are:</p>
- <dl>
- <dt><b>name</b></dt>
- <dd>The name of the mechanism, limited to 3-8 characters (or
- sequences of them). Any indirect type names are listed in
- 3.6.4 <a href="#Unicode_Locale_Extension_Data_Files">U
- Extension Data Files</a>.</dd>
- <dt><b>description</b></dt>
- <dd>A description of the name, with all and only that
- information necessary to distinguish one name from | American
- Library others with which it might be confused. Descriptions
- are not intended to provide general background
- information.</dd>
- <dt><b>since</b></dt>
- <dd>Indicates the first version of CLDR where the name
- appears. (Required for new items.)</dd>
- <dt> </dt>
- <dt><b>alias</b></dt>
- <dd>Alternative name, not limited in number of characters.
- Aliases are intended for compatibility, not to provide all
- possible alternate names or designations.
- <em>(Optional)</em></dd>
- </dl>
- <p>For information about the registration process, meaning, and
- usage of the 't' extension, see [<a href=
- "#RFC6497">RFC6497</a>].</p>
- <h3><a name="Compatibility_with_Older_Identifiers" href=
- "#Compatibility_with_Older_Identifiers" id=
- "Compatibility_with_Older_Identifiers">3.8 Compatibility with
- Older Identifiers</a></h3>
- <p>LDML version before 1.7.2 used slightly different syntax for
- variant subtags and locale extensions. Implementations of LDML
- may provide backward compatible identifier support as described
- in following sections.</p>
- <h4><a name="Old_Locale_Extension_Syntax" href=
- "#Old_Locale_Extension_Syntax" id=
- "Old_Locale_Extension_Syntax">3.8.1 Old Locale Extension
- Syntax</a></h4>
- <p>LDML 1.7 or older specification used different syntax for
- representing unicode locale extensions. The previous definition
- of Unicode locale extensions had the following structure:</p>
- <table border="0">
- <tr>
- <th> </th>
- <th>
- <div align="center">
- EBNF
- </div>
- </th>
- </tr>
- <tr>
- <td>old_unicode_locale_extensions</td>
- <td>
- <pre>= "@" old_key "=" old_type
- (";" old_key "=" old_type)*</pre>
- </td>
- </tr>
- </table>
- <p>The new specification mandates keys to be two alphanumeric
- characters and types to be three to eight alphanumeric
- characters. As the result, new codes were assigned to all
- existing keys and some types. For example, a new key "co"
- replaced the previous key "collation", a new type "phonebk"
- replaced the previous type "phonebook". However, the existing
- collation type "big5han" already satisfied the new requirement,
- so no new type code was assigned to the type. All new keys and
- types introduced after LDML 1.7 satisfy the new requirement, so
- they do not have aliases dedicated for the old syntax, except
- time zone types. The conversion between old types and new types
- can be done regardless of key, with one known exception (old
- type "traditional" is mapped to new type "trad" for collation
- and "traditio" for numbering system), and this relationship
- will be maintained in the future versions unless otherwise
- noted.</p>
- <p>The new specification introduced a new field
- <code>attribute</code> in addition to key/type pairs in the
- Unicode locale extension. When it is necessary to map a new
- Unicode locale identifier with <code>attribute</code> field to
- a well-formed old locale identifier, a special key name
- <i>attribute</i> with the value of entire
- <code>attribute</code> subtags in the new identifier is used.
- For example, a new identifier
- <code>ja-u-xxx-yyy-ca-japanese</code> is mapped to an old
- identifier <code>ja@attribute=xxx-yyy;calendar=japanese</code>
- .</p>
- <p>The chart below shows some example mappings between the new
- syntax and the old syntax.</p>
- <table>
- <caption>
- <a name="Locale_Extension_Mappings" href=
- "#Locale_Extension_Mappings" id=
- "Locale_Extension_Mappings">Locale Extension Mappings</a>
- </caption>
- <tr>
- <th>Old (LDML 1.7 or older)</th>
- <th>New</th>
- </tr>
- <tr>
- <td>de_DE@collation=phonebook</td>
- <td>de_DE_u_co_phonebk</td>
- </tr>
- <tr>
- <td>zh_Hant_TW@collation=big5han</td>
- <td>zh_Hant_TW_u_co_big5han</td>
- </tr>
- <tr>
- <td>th_TH@calendar=gregorian;numbers=thai</td>
- <td>th_TH_u_ca_gregory_nu_thai</td>
- </tr>
- <tr>
- <td>en_US_POSIX@timezone=America/Los_Angeles</td>
- <td>en_US_u_tz_uslax_va_posix</td>
- </tr>
- </table>
- <p>Where the old API is supplied the bcp47 language code, or
- vice versa, the recommendation is to:</p>
- <ol>
- <li>Have all methods that take the old syntax also take the
- new syntax, interpreted correctly. For example,
- "zh-TW-u-co-pinyin" and "zh_TW@collation=pinyin" would both
- be interpreted as meaning the same.</li>
- <li>Have all methods (both for old and new syntax) accept all
- possible aliases for keywords and types. For example,
- "ar-u-ca-islamicc" would be equivalent to
- "ar-u-ca-islamic-civil".
- <ul>
- <li>The one exception is where an alias would only be
- well-formed with the old syntax, such as "gregorian" (for
- "gregory").</li>
- </ul>
- </li>
- <li>Where an API cannot successfully accept the alternate
- syntax, throw an exception (or otherwise indicate an error)
- so that people can detect that they are using the wrong
- method (or wrong input).</li>
- <li>Provide a method that tests a purported locale ID string
- to determine its status:
- <ol>
- <li><strong>well-formed</strong> - syntactically
- correct</li>
- <li><strong>valid</strong> - well-formed and only uses
- registered language subtags, extensions, keywords,
- types...</li>
- <li><strong>canonical</strong> - valid and no deprecated
- codes or structure.</li>
- </ol>
- </li>
- </ol>
- <h4><a name="Legacy_Variants" href="#Legacy_Variants" id=
- "Legacy_Variants">3.8.2 Legacy Variants</a></h4>
- <p>Old LDML specification allowed codes other than registered
- [<a href="#BCP47">BCP47</a>] variant subtags used in Unicode
- language and locale identifiers for representing variations of
- locale data. Unicode locale identifiers including such variant
- codes can be converted to the new [<a href="#BCP47">BCP47</a>]
- compatible identifiers by following the descriptions below:</p>
- <table>
- <caption>
- <a name="Legacy_Variant_Mappings" href=
- "#Legacy_Variant_Mappings" id=
- "Legacy_Variant_Mappings">Legacy Variant Mappings</a>
- </caption>
- <tr>
- <th>Variant Code</th>
- <th>Description</th>
- </tr>
- <tr>
- <td>AALAND</td>
- <td>Åland, variant of "sv" Swedish used in Finland. Use
- "sv_AX" to indicate this.</td>
- </tr>
- <tr>
- <td>BOKMAL</td>
- <td>Bokmål, variant of "no" Norwegian. Use primary language
- subtag "nb" to indicate this.</td>
- </tr>
- <tr>
- <td>NYNORSK</td>
- <td>Nynorsk, variant of "no" Norwegian. Use primary
- language subtag "nn" to indicate this.</td>
- </tr>
- <tr>
- <td>POSIX</td>
- <td>POSIX variation of locale data. Use Unicode locale
- extension "-u-va-posix" to indicate this.</td>
- </tr>
- <tr>
- <td>POLYTONI</td>
- <td>Polytonic, variant of "el" Greek. Use [<a href=
- "#BCP47">BCP47</a>] variant subtag "polyton" to indicate
- this.</td>
- </tr>
- <tr>
- <td>SAAHO</td>
- <td>The Saaho variant of Afar. Use primary language subtag
- "ssy" to indicated this.</td>
- </tr>
- </table>
- <p>When converting to old syntax, the Unicode locale extension
- "-u-va-posix" should be converted to the "POSIX" variant,
- <i>not</i> to old extension syntax like "@va=posix". This is an
- exception: The other mappings above should not be reversed.</p>
- <p>Examples:</p>
- <ul>
- <li>en_US_POSIX ↔ en-US-u-va-posix</li>
- <li>en_US_POSIX@colNumeric=yes ↔ en-US-u-kn-va-posix</li>
- <li>en-US-POSIX-u-kn-true → en-US-u-kn-va-posix</li>
- <li>en-US-POSIX-u-kn-va-posix → en-US-u-kn-va-posix</li>
- </ul>
- <h4><a name="Relation_to_OpenI18n" href="#Relation_to_OpenI18n"
- id="Relation_to_OpenI18n">3.8.3 Relation to OpenI18n</a></h4>
- <p>The locale id format generally follows the description in
- the <i>OpenI18N Locale Naming Guideline</i> [<a href=
- "#NamingGuideline">NamingGuideline</a>], with some
- enhancements. The main differences from the those guidelines
- are that the locale id:</p>
- <ol type="a">
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">does not
- include a charset (since the data in LDML format always
- provides a representation of all Unicode characters. The
- repository is stored in UTF-8, although that can be
- transcoded to other encodings as well.),</li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">adds the
- ability to have a variant, as in Java</li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">adds the
- ability to discriminate the written language by script (or
- script variant).</li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">is a
- superset of [<a href="#BCP47">BCP47</a>] codes.</li>
- </ol>
- <h3><a name="Transmitting_Locale_Information" href=
- "#Transmitting_Locale_Information" id=
- "Transmitting_Locale_Information">3.9 Transmitting Locale
- Information</a></h3>
- <p>In a world of on-demand software components, with arbitrary
- connections between those components, it is important to get a
- sense of where localization should be done, and how to transmit
- enough information so that it can be done at that appropriate
- place. End-users need to get messages localized to their
- languages, messages that not only contain a translation of
- text, but also contain variables such as date, time, number
- formats, and currencies formatted according to the users'
- conventions. The strategy for doing the so-called <i>JIT
- localization</i> is made up of two parts:</p>
- <ol>
- <li>Store and transmit <i>neutral-format</i> data wherever
- possible.
- <ul>
- <li>Neutral-format data is data that is kept in a
- standard format, no matter what the local user's
- environment is. Neutral-format is also (loosely) called
- <i>binary data</i>, even though it actually could be
- represented in many different ways, including a textual
- representation such as in XML.</li>
- <li>Such data should use accepted standards where
- possible, such as for currency codes.</li>
- <li>Textual data should also be in a uniform character
- set (Unicode/10646) to avoid possible data corruption
- problems when converting between encodings.</li>
- </ul>
- </li>
- <li>Localize that data as "<i>close</i>" to the end-user as
- possible.</li>
- </ol>
- <p>There are a number of advantages to this strategy. The
- longer the data is kept in a neutral format, the more flexible
- the entire system is. On a practical level, if transmitted data
- is neutral-format, then it is much easier to manipulate the
- data, debug the processing of the data, and maintain the
- software connections between components.</p>
- <p>Once data has been localized into a given language, it can
- be quite difficult to programmatically convert that data into
- another format, if required. This is especially true if the
- data contains a mixture of translated text and formatted
- variables. Once information has been localized into, say,
- Romanian, it is much more difficult to localize that data into,
- say, French. Parsing is more difficult than formatting, and may
- run up against different ambiguities in interpreting text that
- has been localized, even if the original translated message
- text is available (which it may not be).</p>
- <p>Moreover, the closer we are to end-user, the more we know
- about that user's preferred formats. If we format dates, for
- example, at the user's machine, then it can easily take into
- account any customizations that the user has specified. If the
- formatting is done elsewhere, either we have to transmit
- whatever user customizations are in play, or we only transmit
- the user's locale code, which may only approximate the desired
- format. Thus the closer the localization is to the end user,
- the less we need to ship all of the user's preferences around
- to all the places that localization could possibly need to be
- done.</p>
- <p>Even though localization should be done as close to the
- end-user as possible, there will be cases where different
- components need to be aware of whatever settings are
- appropriate for doing the localization. Thus information such
- as a locale code or time zone needs to be communicated between
- different components.</p>
- <h4><a name="Message_Formatting_and_Exceptions" href=
- "#Message_Formatting_and_Exceptions" id=
- "Message_Formatting_and_Exceptions">3.9.1 Message Formatting
- and Exceptions</a></h4>
- <p>Windows (<a href=
- "https://msdn.microsoft.com/en-us/library/ms679351.aspx">FormatMessage</a>,
- <a href=
- "https://msdn.microsoft.com/en-us/library/aa331875.aspx">String.Format</a>),
- Java (<a href=
- "https://docs.oracle.com/javase/7/docs/api/java/text/MessageFormat.html">MessageFormat</a>)
- and ICU (<a href=
- "http://www.icu-project.org/apiref/icu4c/classMessageFormat.html">MessageFormat</a>,
- <a href=
- "http://www.icu-project.org/apiref/icu4c/umsg_8h.html">umsg</a>)
- all provide methods of formatting variables (dates, times, etc)
- and inserting them at arbitrary positions in a string. This
- avoids the manual string concatenation that causes severe
- problems for localization. The question is, where to do this?
- It is especially important since the original code site that
- originates a particular message may be far down in the bowels
- of a component, and passed up to the top of the component with
- an exception. So we will take that case as representative of
- this class of issues.</p>
- <p>There are circumstances where the message can be
- communicated with a language-neutral code, such as a numeric
- error code or mnemonic string key, that is understood outside
- of the component. If there are arguments that need to accompany
- that message, such as a number of files or a datetime, those
- need to accompany the numeric code so that when the
- localization is finally at some point, the full information can
- be presented to the end-user. This is the best case for
- localization.</p>
- <p>More often, the exact messages that could originate from
- within the component are not known outside of the component
- itself; or at least they may not be known by the component that
- is finally displaying text to the user. In such a case, the
- information as to the user's locale needs to be communicated in
- some way to the component that is doing the localization. That
- locale information does not necessarily need to be communicated
- deep within the component; ideally, any exceptions should
- bundle up some language-neutral message ID, plus the arguments
- needed to format the message (for example, datetime), but not
- do the localization at the throw site. This approach has the
- advantages noted above for JIT localization.</p>
- <p>In addition, exceptions are often caught at a higher level;
- they do not end up being displayed to any end-user at all. By
- avoiding the localization at the throw site, it the cost of
- doing formatting, when that formatting is not really necessary.
- In fact, in many running programs most of the exceptions that
- are thrown at a low level never end up being presented to an
- end-user, so this can have considerable performance
- benefits.</p>
- <h3><a name="Language_and_Locale_IDs" href=
- "#Language_and_Locale_IDs" id="Language_and_Locale_IDs">3.10
- Unicode Language and Locale IDs</a></h3>
- <p>People have very slippery notions of what distinguishes a
- language code versus a locale code. The problem is that both
- are somewhat nebulous concepts.</p>
- <p>In practice, many people use [<a href="#BCP47">BCP47</a>]
- codes to mean locale codes instead of strictly language codes.
- It is easy to see why this came about; because [<a href=
- "#BCP47">BCP47</a>] includes an explicit region (territory)
- code, for most people it was sufficient for use as a locale
- code as well. For example, when typical web software receives
- an [<a href="#BCP47">BCP47</a>] code, it will use it as a
- locale code. Other typical software will do the same: in
- practice, language codes and locale codes are treated
- interchangeably. Some people recommend distinguishing on the
- basis of "-" versus "_" (for example, <i>zh-TW</i> for language
- code, <i>zh_TW</i> for locale code), but in practice that does
- not work because of the free variation out in the world in the
- use of these separators. Notice that Windows, for example, uses
- "-" as a separator in its locale codes. So pragmatically one is
- forced to treat "-" and "_" as equivalent when interpreting
- either one on input.</p>
- <p>Another reason for the conflation of these codes is that
- <i>very</i> little data in most systems is distinguished by
- region alone; currency codes and measurement systems being some
- of the few. Sometimes date or number formats are mentioned as
- regional, but that really does not make much sense. If people
- see the sentence "You will have to adjust the value to
- १,२३४.५६७ from ૭૧,૨૩૪.૫૬" (using Indic digits), they would say
- that sentence is simply not English. Number format is far more
- closely associated with language than it is with region. The
- same is true for date formats: people would never expect to see
- intermixed a date in the format "2003年4月1日" (using Kanji) in
- text purporting to be purely English. There are regional
- differences in date and number format — differences which can
- be important — but those are different in kind than other
- language differences between regions.</p>
- <p>As far as we are concerned — <i>as a completely practical
- matter</i> — two languages are different if they require
- substantially different localized resources. Distinctions
- according to spoken form are important in some contexts, but
- the written form is by far and away the most important issue
- for data interchange. Unfortunately, this is not the principle
- used in [<a href="#ISO639">ISO639</a>], which has the fairly
- unproductive notion (for data interchange) that only spoken
- language matters (it is also not completely consistent about
- this, however).</p>
- <p>[<a href="#BCP47">BCP47</a>] <i><b>can</b></i> express a
- difference if the use of written languages happens to
- correspond to region boundaries expressed as [<a href=
- "#ISO3166">ISO3166</a>] region codes, and has recently added
- codes that allow it to express some important cases that are
- not distinguished by [<a href="#ISO3166">ISO3166</a>] codes.
- These written languages include simplified and traditional
- Chinese (both used in Hong Kong S.A.R.); Serbian in Latin
- script; Azerbaijani in Arab script, and so on.</p>
- <p>Notice also that <i>currency codes</i> are different than
- <i>currency localizations</i>. The currency localizations
- should largely be in the language-based resource bundles, not
- in the territory-based resource bundles. Thus, the resource
- bundle <i>en</i> contains the localized mappings in English for
- a range of different currency codes: USD → US$, RUR → Rub, AUD
- → $A and so on. Of course, some currency symbols are used for
- more than one currency, and in such cases specializations
- appear in the territory-based bundles. Continuing the example,
- <i>en_US</i> would have USD → $, while <i>en_AU</i> would have
- AUD → $. (In protocols, the currency codes should always
- accompany any currency amounts; otherwise the data is
- ambiguous, and software is forced to use the user's territory
- to guess at the currency. For some informal discussion of this,
- see <a href=
- "http://source.icu-project.org/repos/icu/icuhtml/trunk/design/jit_localization.html">
- JIT Localization</a>.)</p>
- <h4><a name="Written_Language" href="#Written_Language" id=
- "Written_Language">3.10.1 Written Language</a></h4>
- <p>Criteria for what makes a written language should be purely
- pragmatic; <i>what would copy-editors say?</i> If one gave them
- text like the following, they would respond that is far from
- acceptable English for publication, and ask for it to be
- redone:</p>
- <ol>
- <li type="A">"Theatre Center News: The date of the last
- version of this document was 2003年3月20日. A copy can be
- obtained for $50,0 or 1.234,57 грн. We would like to
- acknowledge contributions by the following authors (in
- alphabetical order): Alaa Ghoneim, Behdad Esfahbod, Ahmed
- Talaat, Eric Mader, Asmus Freytag, Avery Bishop, and Doug
- Felt."</li>
- </ol>
- <p>So one would change it to either B or C below, depending on
- which orthographic variant of English was the target for the
- publication:</p>
- <ol type="A" start="2">
- <li>"Theater Center News: The date of the last version of
- this document was 3/20/2003. A copy can be obtained for
- $50.00 or 1,234.57 Ukrainian Hryvni. We would like to
- acknowledge contributions by the following authors (in
- alphabetical order): Alaa Ghoneim, Ahmed Talaat, Asmus
- Freytag, Avery Bishop, Behdad Esfahbod, Doug Felt, Eric
- Mader."</li>
- <li>"Theatre Centre News: The date of the last version of
- this document was 20/3/2003. A copy can be obtained for
- $50.00 or 1,234.57 Ukrainian Hryvni. We would like to
- acknowledge contributions by the following authors (in
- alphabetical order): Alaa Ghoneim, Ahmed Talaat, Asmus
- Freytag, Avery Bishop, Behdad Esfahbod, Doug Felt, Eric
- Mader."</li>
- </ol>
- <p>Clearly there are many acceptable variations on this text.
- For example, copy editors might still quibble with the use of
- first versus last name sorting in the list, but clearly the
- first list was <i>not</i> acceptable English alphabetical
- order. And in quoting a name, like "Theatre Centre News", one
- may leave it in the source orthography even if it differs from
- the publication target orthography. And so on. However, just as
- clearly, there limits on what is acceptable English, and
- "2003年3月20日", for example, is <i>not</i>.</p>
- <p>Note that the language of locale data may differ from the
- language of localized software or web sites, when those latter
- are not localized into the user's preferred language. In such
- cases, the kind of incongruous juxtapositions described above
- may well appear, but this situation is usually preferable to
- forcing unfamiliar date or number formats on the user as
- well.</p>
- <h4><a name="Hybrid_Locale" href="#Hybrid_Locale" id=
- "Hybrid_Locale">3.10.2 Hybrid Locale Identifiers</a></h4>
- <p>Hybrid locales have intermixed content from 2 (or more)
- languages, often with one language's grammatical structure
- applied to words in another. These are commonly referred to
- with portmanteau words such as <em>Franglais, <a href=
- "https://en.oxforddictionaries.com/definition/spanglish">Spanglish</a></em>
- or <em>Denglish</em>. Hybrid locales do not <em>not</em>
- reference text simply containing two languages: a book of
- parallel text containing English and French, such as the
- following, is not Franglais:</p>
- <table style='margin-left:2em; margin-right:2em'>
- <tbody>
- <tr>
- <td width='50%' style='font-family:serif'>On the 24th of
- May, 1863, my uncle, Professor Liedenbrock, rushed into
- his little house, No. 19 Königstrasse, one of the oldest
- streets in the oldest portion of the city of
- Hamburg…</td>
- <td style='font-family:serif'>Le 24 mai 1863, un
- dimanche, mon oncle, le professeur Lidenbrock, revint
- précipitamment vers sa petite maison située au numéro 19
- de Königstrasse, l’une des plus anciennes rues du vieux
- quartier de Hambourg…</td>
- </tr>
- </tbody>
- </table>
- <p>While text in a document can be tagged as partly in one
- language and partly in another, that is not the same having a
- hybrid locale. There is a difference between having a Spanglish
- document, and a Spanish document that has some passages quoted
- in English. Fine-grained tagging doesn't handle grammatical
- combinations like Denglisch “<a href=
- "https://www.duden.de/rechtschreibung/downloaden">gedownloadet</a>”,
- which is neither English nor German — similarly the Franglais
- “<a href=
- 'https://www.le-dictionnaire.com/definition.php?mot=downloader'>downloadé</a>”.
- More importantly, it doesn’t work for the very common use case
- for a <a href="#unicode_locale_id">unicode_locale_id</a>:
- <i>locale selection</i>.</p>
- <p>To communicate requests for localized content and
- internationalization services, locales are used. When people
- pick a language from a menu, internally they are picking a
- locale (en-GB, es-419, etc.). To allow an application to
- support Spanglish or Hinglish locale selection, <a href=
- "#unicode_locale_id">unicode_locale_id</a>s can represent
- hybrid locales using the T extension key-value 'h0-hybrid'.
- (For more information on the T extension, see <em>Section 3.7
- <a href="#t_Extension">Unicode BCP 47 T
- Extension</a>.</em>)</p>
- <p>Examples:</p>
- <table class='simple'>
- <tbody>
- <tr>
- <td>hi-t-<u>en-h0-hybrid</u></td>
- <td>Hinglish</td>
- <td>Hindi-English hybrid locale</td>
- </tr>
- <tr>
- <td>ta-t-<u>en-h0-hybrid</u></td>
- <td>Tanglish</td>
- <td>Tamil-English hybrid locale</td>
- </tr>
- <tr>
- <td>ba-t-<u>en-h0-hybrid</u></td>
- <td>Banglish</td>
- <td>Bangla-English hybrid locale</td>
- </tr>
- <tr>
- <td colspan="3">…</td>
- </tr>
- <tr>
- <td>en-t-<u>hi-h0-hybrid</u></td>
- <td>Hinglish</td>
- <td>English-Hindi hybrid locale</td>
- </tr>
- <tr>
- <td>en-t-<u>zh-h0-hybrid</u></td>
- <td>Chinglish</td>
- <td>English-Chinese hybrid locale</td>
- </tr>
- <tr>
- <td colspan="3">…</td>
- </tr>
- </tbody>
- </table>
- <blockquote>
- <p><em>Note: The <a href=
- "#unicode_language_id">unicode_language_id</a> should be the
- language used as the ‘scaffold’: for the fallback locale for
- internationalization services, typically used for more of the
- core vocabulary/structure in the content. Thus Hinglish
- should be represented as hi-t-h0-en where Hindi is the
- scaffold, and as en-t-h0-hi where English is.</em></p>
- </blockquote>
- <p>The value of -t- is a full <em><a href=
- "#unicode_language_id">unicode_language_id</a></em>, and can
- contain subtags for script or region where it is important to
- include them, as in the following. It may be useful in order to
- emphasize the script, even where it is the default script for
- the language, if it is not the same as the script of the main
- language tag.</p>
- <table class='simple'>
- <tbody>
- <tr>
- <td>ru-t<u>-en-latn-gb-h0-hybrid</u></td>
- <td>Runglish</td>
- <td>Russian with an admixture of British English in Latin
- script</td>
- </tr>
- <tr>
- <td>ru-t-<u>en-cyrl-gb-h0-hybrid</u></td>
- <td>Runglish</td>
- <td>Russian with an admixture of British English in
- Cyrillic script</td>
- </tr>
- </tbody>
- </table>
- <p>Should there ever be strong need for hybrids of more than
- two languages or for other purposes such as hybrid languages as
- the source of translated content, additional structure could be
- added.</p>
- <h3><a name="Validity_Data" href="#Validity_Data" id=
- "Validity_Data">3.11 Validity Data</a></h3>
- <p class='dtd'><!ELEMENT idValidity (id*) ><br>
- <!ELEMENT id ( #PCDATA ) ><br>
- <!ATTLIST id type NMTOKEN #REQUIRED ><br>
- <!ATTLIST id idStatus NMTOKEN #REQUIRED ></p>
- <p>The directory <a href=
- 'https://github.com/unicode-org/cldr/releases/tag/latest/common/validity/'>common/validity</a>
- contains machine-readable data for validating the language,
- region, script, and variant subtags, as well as currency,
- subdivisions and measure units. Each file contains a number of
- subtags with the following <strong>idStatus</strong>
- values:</p>
- <ul>
- <li><strong>regular</strong> — the standard codes used for
- the specific type of subtag</li>
- <li><strong>special</strong> — certain exceptional language
- codes like 'mul' <em>(languages only)</em></li>
- <li><strong>unknown</strong> — the code used to indicate the
- "unknown", "undetermined" or "invalid" values. For more
- information, see <em>Section 3.5.1 <a href=
- "#Unknown_or_Invalid_Identifiers">Unknown or Invalid
- Identifiers</a></em>.</li>
- <li>
- <strong>macroregion</strong> — the standard codes that are
- macroregions <em>(for regions only).</em>
- <ul>
- <li>Note that some two-letter region codes are
- macroregions, and (in the future) some three-digit codes
- may be regular codes.</li>
- <li>For details as to which regions are contained within
- which macroregions, see the
- <strong><containment></strong> element of the
- supplemental data.</li>
- </ul>
- </li>
- <li><strong>deprecated</strong> — codes that should not be
- used. The <strong><alias></strong> element in the
- supplementalMeta file contains more information about these
- codes, and which codes should be used instead.</li>
- <li><strong>private_use</strong> — codes that, for CLDR, are
- considered private use. Note that some private-use
- codes in a source standard such as BCP47 have defined CLDR semantics, and are considered regular
- codes. For more information, see <em>Section 3.5.3 <a href=
- "#Private_Use_Codes">Private Use Codes</a>.</em></li>
- <li><strong>reserved</strong> — codes that are private use in a source standard, but are reserved for future use as regular codes by CLDR.</li>
- </ul>
- <p>The list of subtags for each idStatus use a compact format
- as a space-delimited list of StringRanges, as defined in
- <em>Section <a href="#String_Range">5.3.4 String
- Range</a>.</em> The separator for each StringRange is a
- "~".</p>
- <p>Each measure unit is a sequence of subtags, such as
- “angle-arc-minute”. The first subtag provides a general
- “category” of the unit.</p>
- <p>In version 28.0, the subdivisions in the validity files used
- the ISO format, uppercase with a hyphen separating two
- components, instead of the BCP 47 format.</p>
- <h2><a name="Locale_Inheritance" href="#Locale_Inheritance" id=
- "Locale_Inheritance">4 Locale Inheritance and Matching</a></h2>
- <p>The XML format relies on an inheritance model, whereby the
- resources are collected into <i>bundles</i>, and the bundles
- organized into a tree. Data for the many Spanish locales does
- not need to be duplicated across all of the countries having
- Spanish as a national language. Instead, common data is
- collected in the Spanish language locale, and territory locales
- only need to supply differences. The parent of all of the
- language locales is a generic locale known as <i>root</i>.
- Wherever possible, the resources in the root are language &
- territory neutral. For example, the collation (sorting) order
- in the root is based on the [<a href="#DUCET">DUCET</a>]
- (see<em><a href="tr35-collation.html#Root_Collation">Root
- Collation</a></em>). Since English language collation has the
- same ordering as the root locale, the 'en' locale data does not
- need to supply any collation data, nor do the 'en_US', 'en_GB'
- or the any of the various other locales that use English.</p>
- <p>Given a particular locale id "en_US_someVariant", the search
- chain for a particular resource is the following.</p>
- <blockquote>
- <pre>en_US_someVariant
-en_US
-en
-root</pre>
- </blockquote>
- <p><em>The inheritance is often not simple truncation, as will
- be seen later in this section.</em></p>
- <p>If a type and key are supplied in the locale id, then
- logically the chain from that id to the root is searched for a
- resource tag with a given type, all the way up to root. If no
- resource is found with that tag and type, then the chain is
- searched again without the type.</p>
- <p>Thus the data for any given locale will only contain
- resources that are different from the parent locale. For
- example, most territory locales will inherit the bulk of their
- data from the language locale: "en" will contain the bulk of
- the data: "en_IE" will only contain a few items like currency.
- All data that is inherited from a parent is presumed to be
- valid, just as valid as if it were physically present in the
- file. This provides for much smaller resource bundles, and much
- simpler (and less error-prone) maintenance. At the script or
- region level, the "primary" child locale will be empty, since
- its parent will contain all of the appropriate resources for
- it. For more information see <i>CLDR Information : Section 9.3
- <a href="tr35-info.html#Default_Content">Default
- Content</a>.</i></p>
- <p>Certain data items depend only on the region specified in a
- locale id (by a <a href=
- "#unicode_region_subtag_validity">unicode_region_subtag</a> or
- an “rg” <a href="#RegionOverride">Region Override</a> key) ,
- and are obtained from supplemental data rather than through
- locale resources. For example:</p>
- <ul>
- <li>The currency for the specified region (see <a href=
- "tr35-numbers.html#Supplemental_Currency_Data">Supplemental
- Currency Data</a>)</li>
- <li>The measurement system for the specified region (see
- <a href=
- "tr35-general.html#Measurement_System_Data">Measurement
- System Data</a>)</li>
- <li>The week conventions for the specified region (see
- <a href="tr35-dates.html#Week_Data">Week Data</a>)</li>
- </ul>
- <p>(For more information on the specific items handled this
- way, see <a href=
- "tr35-info.html#Territory_Based_Preferences">Territory-Based
- Preferences</a>.) These items will be correct for the specified
- region regardless of whether a locale bundle actually exists
- with the same combination of language and region as in the
- locale id. For example, suppose data is requested for the
- locale id "fr_US" and there is no bundle for that combination.
- Data obtained via locale inheritance, such as currency patterns
- and currency symbols, will be obtained from the parent locale
- "fr". However, currency amounts would be formatted by default
- using US dollars, just displayed in the manner governed by the
- locale "fr". When a locale id does not specify a region, the
- region-specific items such as those above are obtained from the
- likely region for the locale (obtained via <a href=
- "#Likely_Subtags">Likely Subtags</a>).</p>
- <p>For the relationship between Inheritance, DefaultContent,
- LikelySubtags, and LocaleMatching, see Section 4.2.6 <a href=
- "tr35.html#Inheritance_vs_Related">Inheritance vs Related
- Information</a>.</p>
- <h3><a href="#Lookup" name="Lookup" id="Lookup">4.1
- Lookup</a></h3>
- <p>If a language has more than one script in customary modern
- use, then the CLDR file structure in common/main follows the
- following model:</p>
- <blockquote>
- <p>lang<br>
- lang_script<br>
- lang_script_region<br>
- lang_region <i>(aliases to lang_script_region)</i></p>
- </blockquote>
- <h4><a href="#Bundle_vs_Item_Lookup" name=
- "Bundle_vs_Item_Lookup" id="Bundle_vs_Item_Lookup">4.1.1 Bundle
- vs Item Lookup</a></h4>
- <p>There are actually two different kinds of inheritance
- fallback: <em>resource bundle lookup</em> and
- <em>resource item lookup</em>. For the former, a
- process is looking to find the first, best resource bundle it
- can; for the later, it is fallback within bundles on
- individual items, like the translated name for the region "CN"
- in Breton.</p>
- <p>These are closely related, but distinct, processes. They are
- illustrated in the table <a href="#Lookup-Differences">Lookup
- Differences</a>, where "key" stands for zero or more key/type
- pairs. Logically speaking, when looking up an item for a given
- locale, you first do a resource bundle lookup to find the best
- bundle for the locale, then you do a inherited item lookup
- starting with that resource bundle.</p>
- <p>The table <a href="#Lookup-Differences">Lookup
- Differences</a> uses the naïve resource bundle lookup for
- illustration. More sophisticated systems will get far better
- results for resource bundle lookup if they use the algorithm
- described in <em>Section 4.4 <a href=
- "#LanguageMatching">Language Matching</a></em>. That algorithm
- takes into account both the user’s desired locale(s) and the
- application’s supported locales, in order to get the best
- match.</p>
- <p>If the naïve resource bundle lookup is used, the desired
- locale needs to be canonicalized using 4.3 <a href=
- "#Likely_Subtags">Likely Subtags</a> and the supplemental alias
- information, so that locales that CLDR considers identical are
- treated as such. Thus eng-Latn-GB should be mapped to en-GB,
- and cmn-TW mapped to zh-Hant-TW.</p>
- <p>For the purposes of CLDR, everything with the <ldml>
- dtd is treated logically as if it is one resource bundle, even
- if the implementation separates data into separate physical
- resource bundles. For example, suppose that there is a main XML
- file for Nama (naq), but there are no <unit> elements for
- it because the units are all inherited from root. If the
- <unit> elements are separated into a separate data tree
- for modularity in the implementation, the Nama <unit>
- resource bundle would be empty. However, for purposes of
- resource-bundle lookup the resource bundle lookup still stops
- at naq.xml.</p>
- <div id="iqaw2" style="margin-top: 0px; margin-bottom: 0px;">
- <table class='simple' id="a1bn" border="1" cellpadding="3"
- cellspacing="0">
- <caption>
- <a href="#Lookup-Differences" name="Lookup-Differences"
- id="Lookup-Differences">Lookup Differences</a>
- </caption>
- <tbody id="iqaw3">
- <tr id="x40y0">
- <th id="x40y1" style="vertical-align: top;" nowrap>
- Lookup Type</th>
- <th id="x40y3" style="vertical-align: top;" nowrap>
- Example</th>
- <th id="x40y5" style="vertical-align: top;">
- Comments</th>
- </tr>
- <tr id="iqaw4">
- <td id="iqaw5" style="vertical-align: top;" nowrap>
- <p id="rkc40"><strong>Resource bundle</strong>
- lookup</p>
- </td>
- <td id="iqaw7" style="vertical-align: top;" nowrap>
- <p>se-FI →</p>
- <p>se →</p>
- <p><em>default-locale* →</em></p>
- <p>root</p>
- </td>
- <td id="rkc41" style="vertical-align: top;">
- <p>* The default-locale may have its own inheritance
- change; for example, it may be "en-GB → en"
- In that case, the chain is expanded by inserting the
- chain, resulting in:</p>
- <blockquote>
- <p>se-FI →</p>
- <p>se →</p>
- <p>fi →</p>
- <p><em>en-GB →</em></p>
- <p><em>en →</em></p>
- <p>root</p>
- </blockquote>
- </td>
- </tr>
- <tr id="iqaw9">
- <td id="iqaw10" style="vertical-align: top;" nowrap>
- <p><strong>Inherited item</strong> lookup</p>
- </td>
- <td id="iqaw12" style="vertical-align: top;" nowrap>
- <p>se-FI+key →</p>
- <p>se+key →</p>
- <p><em>root_alias*+key </em></p>
- <p>→ root+key</p>
- </td>
- <td id="rkc43" style="vertical-align: top;">
- <p>* If there is a root_alias to another key or
- locale, then insert that entire chain. For example,
- suppose that months for another calendar system have
- a root alias to Gregorian months. In that case, the
- root alias would change the key, and retry from se-FI
- downward. This can happen multiple times.</p>
- <blockquote>
- <p>se-FI+key →</p>
- <p>se+key →</p>
- <p>root_alias*+key →</p>
- <p><em>se-FI+key2 →</em></p>
- <p><em>se+key2 →</em></p>
- <p>root_alias*+key2 →</p>
- <p>root+key2</p>
- </blockquote>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <p>Both the resource bundle inheritance and the inherited item
- inheritance use the parentLocale data, where available, instead
- of simple trunctation.</p>
- <p>The fallback is a bit different for these two cases;
- internal aliases and keys are are not involved in the bundle
- lookup, and the default locale is not involved in the item
- lookup. If the default-locale were used in the resource-item
- lookup, then strange results will occur. For example, suppose
- that the default locale is Swedish, and there is a Nama locale
- but no specific inherited item for collation. If the
- default-locale were used in resource-item lookup, it would
- produce odd and unexpected results for Nama sorting.</p>
- <p>The default locale is not even always used in resource
- bundle inheritance. For the following services, the fallback is
- always directly to the root locale rather than through default
- locale.</p>
- <ul>
- <li>collation</li>
- <li>break iteration</li>
- <li>case mapping</li>
- <li>transliteration
- <ul>
- <li>The lookup for transliteration is yet more
- complicated because of the interplay of source and target
- locales: see <em>Part 2 General, Section
- 10.1 <a href=
- "https://www.unicode.org/reports/tr35/tr35-general.html#Inheritance">Inheritance.</a></em></li>
- </ul>
- </li>
- </ul>
- <p>Thus if there is no Akan locale, for example, asking for a
- collation for Akan should produce the root collation, <em>not
- the Swedish collation.</em></p>
- <p>The inherited item lookup must remain stable, because the
- resources are built with a certain fallback in mind; changing
- the core fallback order can render the bundle structure
- incoherent.</p>
- <p>Resource bundle lookup, on the other hand, is more flexible;
- changes in the view of the "best" match between the input
- request and the output bundle are more tolerant, when represent
- overall improvements for users. For more information, see
- <i><a href="#Fallback_Elements">A.1 Element
- fallback</a></i>.</p>
- <p>Where the LDML inheritance relationship does not match a
- target system, such as POSIX, the data logically should be
- fully resolved in converting to a format for use by that
- system, by adding <i>all</i> inherited data to each locale data
- set.</p>
- <p>For a more complete description of how inheritance applies
- to data, and the use of keywords, see <i><a href=
- "#Inheritance_and_Validity">Section 4.2 Inheritance</a></i>
- .</p>
- <p>The locale data does not contain general character
- properties that are derived from the <i>Unicode Character
- Database</i> [<a href=
- "https://unicode.org/reports/tr41/#UAX44">UAX44</a>]. That data
- being common across locales, it is not duplicated in the
- bundles. Constructing a POSIX locale from the CLDR data
- requires use of UCD data. In addition, POSIX locales may also
- specify the character encoding, which requires the data to be
- transformed into that target encoding.</p>
- <p><b>Warning:</b> If a locale has a different script than its
- parent (for example, sr_Latn), then special attention must be
- paid to make sure that all inheritance is covered. For example,
- auxiliary exemplar characters may need to be empty ("[]") to
- block inheritance.</p>
- <p><strong>Empty Override:</strong> There is one special value
- reserved in LDML to indicate that a child locale is to have no
- value for a path, even if the parent locale has a value for
- that path. That value is "∅∅∅". For example, if there is no
- phrase for "two days ago" in a language, that can be indicated
- with:</p>
- <pre><field type="day">
- <relative type="-2">∅∅∅</relative>
-</pre>
- <h4><a name="Multiple_Inheritance" id=
- "Multiple_Inheritance"></a><a name="Lateral_Inheritance" href=
- "#Lateral_Inheritance" id="Lateral_Inheritance">4.1.2 Lateral
- Inheritance</a></h4>
- <p>In the following instances, resources may inherit from
- within the same locale, <em>before inheriting from the parent</em>. </p>
-
- <table border="1" cellpadding="3" cellspacing=
- "0" class='simple' >
- <tbody>
- <tr>
- <th nowrap style="vertical-align: top;">Element</th>
- <th nowrap style="vertical-align: top;">Source</th>
- <th nowrap style="vertical-align: top;">Context</th>
- </tr>
- <tr>
- <td style="vertical-align: top;">currency/pattern</td>
- <td style="vertical-align: top;">currencyFormat</td>
- <td style="vertical-align: top;">numberSystem = defaultNumberingSystem, unless otherwise specified*<br>
- currencyFormatLength type=none, unless otherwise specified<br>
- currencyFormat type="standard", unless otherwise specified</td>
- </tr>
- <tr>
- <td style="vertical-align: top;">currency/decimal</td>
- <td style="vertical-align: top;">symbols/decimal</td>
- <td style="vertical-align: top;">numberSystem = defaultNumberingSystem, unless otherwise specified</td>
- </tr>
- <tr>
- <td style="vertical-align: top;">currency/group</td>
- <td style="vertical-align: top;">symbols/group</td>
- <td style="vertical-align: top;">numberSystem = defaultNumberingSystem, unless otherwise specified</td>
- </tr>
- </tbody>
- </table>
- <p>* The "unless otherwise specified" clause is for when an API or other context indicates a different choice, such as <span style="vertical-align: top;">currencyFormat type="accounting"</span>. </p>
- <p>For example, with /currency [@type="CVE"], the decimal symbol for almost all locales is the value from symbols/decimal, but for pt_CV it is explicitly <decimal>$</decimal>.</p>
- <p> </p>
- <p>The following attributes use lateral inheritance for all elements with the DTD root = ldml, except where otherwise noted. The process is applied recursively.</p>
- <table border="1" cellpadding="3" cellspacing=
- "0" class='simple' >
- <tbody>
- <tr>
- <th nowrap style="vertical-align: top;">Atttribute</th>
- <th nowrap style="vertical-align: top;">Fallback</th>
- <th nowrap style="vertical-align: top;">Exception Elements</th>
- </tr>
- <tr>
- <td style="vertical-align: top;">case</td>
- <td style="vertical-align: top;">"nominative" → ∅</td>
- <td style="vertical-align: top;">caseMinimalPairs</td>
- </tr>
- <tr>
- <td style="vertical-align: top;">gender</td>
- <td style="vertical-align: top;">default_gender(locale) → ∅</td>
- <td style="vertical-align: top;">genderMinimalPairs</td>
- </tr>
- <tr>
- <td style="vertical-align: top;">count</td>
- <td style="vertical-align: top;">plural_rules(locale, x) → "other" → ∅</td>
- <td style="vertical-align: top;">minDays, pluralMinimalPairs</td>
- </tr>
- <tr>
- <td style="vertical-align: top;">ordinal</td>
- <td style="vertical-align: top;">plural_rules(locale, x) → "other" → ∅</td>
- <td style="vertical-align: top;">ordinalMinimalPairs</td>
- </tr>
- </tbody>
- </table>
- <p>The gender fallback is to neuter if the locale has a neuter gender, otherwise masculine. This may be extended in the future if necessary. See also <a href="tr35-general.html#Grammatical_Features">Part 2, Section 15, Grammatical Features</a>.</p>
-
- <p>For example, if there is no value for a path, and that path has a
- [@count="x"] attribute and value, then:</p>
- <ol>
- <li>If "x" is numeric, the path falls back to the path with [@count=«the plural rules category for x for that locale»], within that the same locale.
- <ol>
- <li>For example, [@count="0"] for English falls back to @count="other"], while for French falls back to [@count="one"].</li>
- </ol>
- </li>
- <li>If "x" is anything but "other", it falls back to
- a path [@count="other"], within that the same locale.</li>
- <li>If "x" is "other",
- it falls back to the path
- that is completely missing the count item, within that the same locale.</li>
- <li>If there is no value for that path the same locale, the same
- process is used for the original path in the parent locale.</li>
- </ol>
-
- <p>A path may have multiple attributes with lateral inheritance. In such a case, all of the combinations are tried, and in the order supplied above. For example (this is the very worst case):</p>
- <p> /compoundUnitPattern1[@count="few"][@gender="feminine"][@case="accusative">]<span style="vertical-align: top;"> →</span></p>
- <p>/compoundUnitPattern1[@count="few"][@gender="feminine"][@case="nominative">]<span style="vertical-align: top;"> →</span> </p>
- <p>/compoundUnitPattern1[@count="few"][@gender="feminine"]<span style="vertical-align: top;"> →</span></p>
- <p>/compoundUnitPattern1[@count="few"][@gender="neuter"][@case="accusative">]<span style="vertical-align: top;"> →</span></p>
- <p>/compoundUnitPattern1[@count="few"][@gender="neuter"][@case="nominative">]<span style="vertical-align: top;"> →</span></p>
- <p>/compoundUnitPattern1[@count="few"][@gender="neuter"]<span style="vertical-align: top;"> →</span></p>
- <p>/compoundUnitPattern1[@count="few"][@case="accusative">]<span style="vertical-align: top;"> →</span></p>
- <p>/compoundUnitPattern1[@count="few"][@case="nominative">]<span style="vertical-align: top;"> →</span></p>
- <p>/compoundUnitPattern1[@count="few"]<span style="vertical-align: top;"> →</span></p>
- <p> </p>
- <p>/compoundUnitPattern1[@count="other"][@gender="feminine"][@case="accusative">]<span style="vertical-align: top;"> →</span></p>
- <p>/compoundUnitPattern1[@count="other"][@gender="feminine"][@case="nominative">]<span style="vertical-align: top;"> →</span></p>
- <p>/compoundUnitPattern1[@count="other"][@gender="feminine"]<span style="vertical-align: top;"> →</span></p>
- <p>/compoundUnitPattern1[@count="other"][@gender="neuter"][@case="accusative">]<span style="vertical-align: top;"> →</span></p>
- <p>/compoundUnitPattern1[@count="other"][@gender="neuter"][@case="nominative">]<span style="vertical-align: top;"> →</span></p>
- <p>/compoundUnitPattern1[@count="other"][@gender="neuter"]<span style="vertical-align: top;"> →</span></p>
- <p>/compoundUnitPattern1[@count="other"][@case="accusative">]<span style="vertical-align: top;"> →</span></p>
- <p>/compoundUnitPattern1[@count="other"][@case="nominative">]<span style="vertical-align: top;"> →</span></p>
- <p>/compoundUnitPattern1[@count="other"]<span style="vertical-align: top;"> →</span></p>
- <p> </p>
- <p>/compoundUnitPattern1[@gender="feminine"][@case="accusative">]<span style="vertical-align: top;"> →</span></p>
- <p>/compoundUnitPattern1[@gender="feminine"][@case="nominative">]<span style="vertical-align: top;"> →</span></p>
- <p>/compoundUnitPattern1[@gender="feminine"]<span style="vertical-align: top;"> →</span></p>
- <p>/compoundUnitPattern1[@gender="neuter"][@case="accusative">]<span style="vertical-align: top;"> →</span></p>
- <p>/compoundUnitPattern1[@gender="neuter"][@case="nominative">]<span style="vertical-align: top;"> →</span></p>
- <p>/compoundUnitPattern1[@gender="neuter"]<span style="vertical-align: top;"> →</span></p>
- <p>/compoundUnitPattern1[@case="accusative">]<span style="vertical-align: top;"> →</span></p>
- <p>/compoundUnitPattern1[@case="nominative">]<span style="vertical-align: top;"> →</span></p>
- <p>/compoundUnitPattern1</p>
-
- <p> </p>
- <p><em>Examples:</em></p>
- <table class='simple' border="1" cellpadding="3" cellspacing=
- "0" id="a1bn3">
- <caption>
- <a name="Count_Fallback_normal" href=
- "#Count_Fallback_normal" id="Count_Fallback_normal">Count
- Fallback: normal</a>
- </caption>
- <tbody>
- <tr>
- <th nowrap style="vertical-align: top;">Locale</th>
- <th nowrap style="vertical-align: top;">Path</th>
- </tr>
- <tr>
- <td nowrap style="vertical-align: top;">fr-CA</td>
- <td nowrap id="iqaw" style="vertical-align: top;">
- <code>//ldml/units/unitLength[@type="<strong>narrow</strong>"]/unit[@type="mass-gram"]/unitPattern<strong>[@count="x"]</strong></code></td>
- </tr>
- <tr>
- <td nowrap style="vertical-align: top;">fr-CA</td>
- <td nowrap id="iqaw16" style="vertical-align: top;">
- <code>//ldml/units/unitLength[@type="<strong>narrow</strong>"]/unit[@type="mass-gram"]/unitPattern<strong>[@count="other"]</strong></code></td>
- </tr>
- <tr>
- <td nowrap style="vertical-align: top;">fr</td>
- <td nowrap id="iqaw19" style="vertical-align: top;">
- <code>//ldml/units/unitLength[@type="<strong>narrow</strong>"]/unit[@type="mass-gram"]/unitPattern<strong>[@count="x"]</strong></code></td>
- </tr>
- <tr>
- <td nowrap style="vertical-align: top;">fr</td>
- <td nowrap id="iqaw18" style="vertical-align: top;">
- <code>//ldml/units/unitLength[@type="<strong>narrow</strong>"]/unit[@type="mass-gram"]/unitPattern<strong>[@count="other"]</strong></code></td>
- </tr>
- <tr>
- <td nowrap style="vertical-align: top;">root</td>
- <td nowrap id="iqaw21" style="vertical-align: top;">
- <code>//ldml/units/unitLength[@type="<strong>narrow</strong>"]/unit[@type="mass-gram"]/unitPattern<strong>[@count="x"]</strong></code></td>
- </tr>
- <tr>
- <td nowrap style="vertical-align: top;">root</td>
- <td nowrap id="iqaw20" style="vertical-align: top;">
- <code>//ldml/units/unitLength[@type="<strong>narrow</strong>"]/unit[@type="mass-gram"]/unitPattern<strong>[@count="other"]</strong></code></td>
- </tr>
- </tbody>
- </table>
- <p>Note that there may be an alias in root that changes the
- path and starts again from the requested locale, such as:</p>
- <p><code><unitLength type="<strong>narrow</strong>"><br>
- <alias source="locale"
- path="../unitLength[@type='<strong>short</strong>']"/><br>
- </unitLength></code></p>
- <table class='simple' border="1" cellpadding="3" cellspacing=
- "0" id="a1bn2">
- <caption>
- <a name="Count_Fallback_currency" href=
- "#Count_Fallback_currency" id=
- "Count_Fallback_currency">Count Fallback: currency</a>
- </caption>
- <tbody>
- <tr>
- <th nowrap style="vertical-align: top;">Locale</th>
- <th nowrap style="vertical-align: top;">Path</th>
- </tr>
- <tr>
- <td nowrap style="vertical-align: top;">fr-CA</td>
- <td nowrap id="iqaw11" style="vertical-align: top;">
- <code>//ldml/numbers/currencies/currency[@type="CAD"]/displayName<strong>[@count="x"]</strong></code></td>
- </tr>
- <tr>
- <td nowrap style="vertical-align: top;">fr-CA</td>
- <td nowrap id="iqaw6" style="vertical-align: top;">
- <code>//ldml/numbers/currencies/currency[@type="CAD"]/displayName<strong>[@count="other"]</strong></code></td>
- </tr>
- <tr>
- <td nowrap style="vertical-align: top;">fr-CA</td>
- <td nowrap id="iqaw8" style="vertical-align: top;">
- <code>//ldml/numbers/currencies/currency[@type="CAD"]/displayName</code></td>
- </tr>
- <tr>
- <td nowrap style="vertical-align: top;">fr</td>
- <td nowrap id="iqaw15" style="vertical-align: top;">
- <code>//ldml/numbers/currencies/currency[@type="CAD"]/displayName<strong>[@count="x"]</strong></code></td>
- </tr>
- <tr>
- <td nowrap style="vertical-align: top;">fr</td>
- <td nowrap id="iqaw14" style="vertical-align: top;">
- <code>//ldml/numbers/currencies/currency[@type="CAD"]/displayName<strong>[@count="other"]</strong></code></td>
- </tr>
- <tr>
- <td nowrap style="vertical-align: top;">fr</td>
- <td nowrap id="iqaw13" style="vertical-align: top;">
- <code>//ldml/numbers/currencies/currency[@type="CAD"]/displayName</code></td>
- </tr>
- <tr>
- <td nowrap style="vertical-align: top;">root</td>
- <td nowrap id="iqaw25" style="vertical-align: top;">
- <code>//ldml/numbers/currencies/currency[@type="CAD"]/displayName<strong>[@count="x"]</strong></code></td>
- </tr>
- <tr>
- <td nowrap style="vertical-align: top;">root</td>
- <td nowrap id="iqaw24" style="vertical-align: top;">
- <code>//ldml/numbers/currencies/currency[@type="CAD"]/displayName<strong>[@count="other"]</strong></code></td>
- </tr>
- <tr>
- <td nowrap style="vertical-align: top;">root</td>
- <td nowrap id="iqaw23" style="vertical-align: top;">
- <code>//ldml/numbers/currencies/currency[@type="CAD"]/displayName</code></td>
- </tr>
- </tbody>
- </table><br>
- <h4><a name="Parent_Locales" href="#Parent_Locales" id=
- "Parent_Locales">4.1.3 Parent Locales</a></h4>
- <p class="dtd"><!ELEMENT parentLocales ( parentLocale* )
- ><br>
- <!ELEMENT parentLocale EMPTY ><br>
- <!ATTLIST parentLocale parent NMTOKEN #REQUIRED ><br>
- <!ATTLIST parentLocale locales NMTOKENS #REQUIRED ></p>
- <p>In some cases, the normal truncation inheritance does not
- function well. This happens when:</p>
- <ol>
- <li>The child locale is of a different script. In this case,
- mixing elements from the parent into the child data results
- in a mishmash.</li>
- <li>A large number of child locales behave similarly, and
- differently from the truncation parent.</li>
- </ol>
- <p>The <span class="element">parentLocale</span> element is
- used to override the normal inheritance when accessing CLDR
- data.</p>
- <p>For case 1, the children are script locales, and the parent
- is "root". For example:</p>
- <pre>
- <parentLocale parent="root" locales="az_Cyrl ha_Arab … zh_Hant"/></pre>
- <p>For case 2, the children and parent share the same primary
- language, but the region is changed. For example:</p>
- <pre>
- <parentLocale parent="es_419" locales="es_AR es_BO … es_UY es_VE"/></pre>
- <p>Collation data, however, is an exception. Since collation
- rules do not truly inherit data from the parent, the
- parentLocale element is not necessary and not used for
- collation. Thus, for a locale like zh_Hant in the example
- above, the parentLocale element would dictate the parent as
- "root" when referring to main locale data, but for collation
- data, the parent locale would still be "zh", even though the
- parentLocale element is present for that locale.</p>
- <p>Since parentLocale information is not localizable on a per
- locale basis, the parentLocale information is contained in
- CLDR’s <a href="tr35-info.html">supplemental data.</a></p>
- <p>When a <span class="element">parentLocale</span> element is
- used to override normal inheritance, the following invariants
- must always be true:</p>
- <ol>
- <li>If X is the parentLocale of Y, then either X is the root
- locale, or X has the same base language code as Y. For
- example, the parent of "en" cannot be "fr", and the parent of
- "en_YY" cannot be "fr" or "fr_XX".</li>
- <li>If X is the parentLocale of Y, Y must not be a base
- language locale. For example, the parent of "en" cannot be
- "en_XX".</li>
- <li>There can never be cycles, such as: X parent of Y ...
- parent of X.</li>
- </ol>
- <h3><a name="Inheritance_and_Validity" href=
- "#Inheritance_and_Validity" id="Inheritance_and_Validity">4.2
- Inheritance and Validity</a></h3>
- <p>The following describes in more detail how to determine the
- exact inheritance of elements, and the validity of a given
- element in LDML.</p>
- <h4><a name="Definitions" href="#Definitions" id=
- "Definitions">4.2.1 Definitions</a></h4>
- <p><i>Blocking</i> elements are those whose subelements do not
- inherit from parent locales. For example, a <collation>
- element is a blocking element: everything in a
- <collation> element is treated as a single lump of data,
- as far as inheritance is concerned. For more information, see
- <a href="#Valid_Attribute_Values">Section 5.5 Valid Attribute
- Values</a>.</p>
- <p>Attributes that serve to distinguish multiple elements at
- the same level are called <i>distinguishing</i> attributes. For
- example, the <i>type</i> attribute distinguishes different
- elements in lists of translations, such as:</p>
- <pre><language type="aa">Afar</language>
-<language type="ab">Abkhazian</language></pre>
- <p>Distinguishing attributes affect inheritance; two elements
- with different distinguishing attributes are treated as
- different for purposes of inheritance. For more information,
- see <a href="#Valid_Attribute_Values">Section 5.5 Valid
- Attribute Values</a>. Other attributes are called
- nondistinguishing (or informational) attributes. These carry
- separate information, and do not affect inheritance.</p>
- <p>For any element in an XML file, <i>an element chain</i> is a
- resolved [<a href="#XPath">XPath</a>] leading from the root to
- an element, with attributes on each element in alphabetical
- order. So in, say, <a href=
- "https://github.com/unicode-org/cldr/blob/master/common/main/el.xml">https://github.com/unicode-org/cldr/blob/master/common/main/el.xml</a>
- we may have:</p>
- <pre><ldml>
- <identity>
- <version number="1.1" />
- <language type="el" />
- </identity>
- <localeDisplayNames>
- <languages>
- <language type="ar">Αραβικά</language>
-...</pre>
- <p>Which gives the following element chains (among others):</p>
- <ul>
- <li>//ldml/identity/version[@number="1.1"]</li>
- <li>
- //ldml/localeDisplayNames/languages/language[@type="ar"]</li>
- </ul>
- <p>An element chain A is an <i>extension</i> of an element
- chain B if B is equivalent to an initial portion of A. For
- example, #2 below is an extension of #1. (Equivalent, depending
- on the tree, may not be "identical to". See below for an
- example.)</p>
- <ol>
- <li>//ldml/localeDisplayNames</li>
- <li>
- //ldml/localeDisplayNames/languages/language[@type="ar"]</li>
- </ol>
- <p>An LDML file can be thought of as an ordered list of
- <i>element pairs</i>: <element chain, data>, where the
- element chains are all the chains for the end-nodes. (This
- works because of restrictions on the structure of LDML,
- including that it does not allow mixed content.) The ordering
- is the ordering that the element chains are found in the file,
- and thus determined by the DTD.</p>
- <p>For example, some of those pairs would be the following.
- Notice that the first has the null string as element
- contents.</p>
- <ul>
- <li><b><</b>//ldml/identity/version[@number="1.1"]<b>,</b>
- ""<b>></b></li>
- <li>
- <b><</b>//ldml/localeDisplayNames/languages/language[@type="ar"]<b>,</b>
- "Αραβικά"<b>></b></li>
- </ul>
- <blockquote>
- <p><b>Note:</b> There are two exceptions to this:</p>
- <ol>
- <li>Blocking nodes and their contents are treated as a
- single end node.</li>
- <li>In terms of computing inheritance, the element pair
- consists of the element chain plus all distinguishing
- attributes; the value consists of the value (if any) plus
- any nondistinguishing attributes.</li>
- </ol>
- <blockquote>
- <p>Thus instead of the element pair being (a) below, it is
- (b):</p>
- <ol type="a">
- <li>
- <b><</b>//ldml/dates/calendars/calendar[@type='gregorian']/week/weekendStart[@day='sun'][@time='00:00']<b>,</b><br>
-
- <b>""></b></li>
- <li>
- <b><</b>//ldml/dates/calendars/calendar[@type='gregorian']/week/weekendStart<b>,</b><br>
-
- [@day='sun'][@time='00:00']<b>></b></li>
- </ol>
- </blockquote>
- </blockquote>
- <p>Two LDML element chains are <i>equivalent</i> when they
- would be identical if all attributes and their values were
- removed — except for distinguishing attributes. Thus the
- following are equivalent:</p>
- <ul>
- <li>
- <code>//ldml/localeDisplayNames/languages/language[@type="ar"]</code></li>
- <li>
- <code>//ldml/localeDisplayNames/languages/language[@type="ar"][@draft="unconfirmed"]</code></li>
- </ul>
- <p>For any locale ID, an <i>locale chain</i> is an ordered list
- starting with the root and leading down to the ID. For
- example:</p>
- <blockquote>
- <p><root, de, de_DE, de_DE_xxx></p>
- </blockquote>
- <h4><a name="Resolved_Data_File" href="#Resolved_Data_File" id=
- "Resolved_Data_File">4.2.2 Resolved Data File</a></h4>
- <p>To produce fully resolved locale data file from CLDR for a
- locale ID L, you start with L, and successively add unique
- items from the parent locales until you get up to root. More
- formally, this can be expressed as the following procedure.</p>
- <ol>
- <li>Let Result be initially L.</li>
- <li>For each Li in the locale chain for L, starting at L and
- going up to root:
- <ol>
- <li>Let Temp be a copy of the pairs in the LDML file for
- Li</li>
- <li>Replace each alias in Temp by the resolved list of
- pairs it points to.
- <ol>
- <li>The resolved list of pairs is obtained by
- recursively applying this procedure.</li>
- <li>That alias now blocks any inheritance from the
- parent. (See <i><a href="#Common_Elements">Section
- 5.1 Common Elements</a></i> for an example.)</li>
- </ol>
- </li>
- <li>For each element pair P in Temp:
- <ol>
- <li>If P does not contain a blocking element, and
- Result does not have an element pair Q with an
- equivalent element chain, add P to Result.</li>
- </ol>
- </li>
- </ol>
- </li>
- </ol>
- <p><b>Notes:</b></p>
- <ul>
- <li>When adding an element pair to a result, it has to go in
- the right order for it to be valid according to the DTD.</li>
- <li>The identity element and its children are unaffected by
- resolution.</li>
- <li>The LDML data must be constructed so as to avoid
- circularity in step 2.2.</li>
- </ul>
- <h4><a name="Valid_Data" href="#Valid_Data" id=
- "Valid_Data">4.2.3 Valid Data</a></h4>
- <p>The attribute <i>draft="x"</i> in LDML means that the data
- has not been approved by the subcommittee. (For more
- information, see <a href=
- "http://cldr.unicode.org/index/process">Process</a>). However,
- some data that is not explicitly marked as <i>draft</i> may be
- implicitly <i>draft</i>, either because it inherits it from a
- parent, or from an enclosing element.</p>
- <p><b>Example 2.</b> Suppose that new locale data is added for
- af (Afrikaans). To indicate that all of the data is
- <i>unconfirmed</i>, the attribute can be added to the top
- level.</p>
- <p><code><ldml version="1.1" draft="unconfirmed"><br>
- <identity><br>
- <version number="1.1" /><br>
- <language type="af" /><br>
- </identity><br>
- <characters>...</characters><br>
- <localeDisplayNames>...</localeDisplayNames><br>
-
- </ldml></code></p>
- <p>Any data can be added to that file, and the status will all
- be draft=<i>unconfirmed</i>. Once an item is vetted—<i>whether
- it is inherited or explicitly in the file</i>—then its status
- can be changed to <i>approved</i>. This can be done either by
- leaving draft="unconfirmed" on the enclosing element and
- marking the child with draft="approved", such as:</p>
- <p><code><ldml version="1.1" draft="unconfirmed"><br>
- <identity><br>
- <version number="1.1" /><br>
- <language type="af" /><br>
- </identity><br>
- <characters
- draft="approved">...</characters><br>
- <localeDisplayNames>...</localeDisplayNames><br>
-
- <dates/><br>
- <numbers/><br>
- <collations/><br>
- </ldml></code></p>
- <p>However, normally the draft attributes should be
- canonicalized, which means they are pushed down to leaf nodes
- as described in <i><a href="#Canonical_Form">Section 5.6
- Canonical Form</a></i>. If an LDML file does has draft
- attributes that are not on leaf nodes, the file should be
- interpreted as if it were the canonicalized version of that
- file.</p>
- <p>More formally, here is how to determine whether data for an
- element chain E is implicitly or explicitly draft, given a
- locale L. Sections 1, 2, and 4 are simply formalizations of
- what is in LDML already. Item 3 adds the new element.</p>
- <h4><a name="Checking_for_Draft_Status" href=
- "#Checking_for_Draft_Status" id=
- "Checking_for_Draft_Status">4.2.4 Checking for Draft
- Status</a></h4>
- <ol>
- <li>
- <b>Parent Locale Inheritance</b>
- <ol>
- <li>Walk through the locale chain until you find a locale
- ID L' with a data file D. (L' may equal L).</li>
- <li>Produce the fully resolved data file D' for D.</li>
- <li>In D', find the first element pair whose element
- chain E' is either equivalent to or an extension of
- E.</li>
- <li>If there is no such E', return <i>true</i></li>
- <li>If E' is not equivalent to E, truncate E' to the
- length of E.</li>
- </ol>
- </li>
- <li>
- <b>Enclosing Element Inheritance</b>
- <ol>
- <li>Walk through the elements in E', from back to front.
- <ol>
- <li>If you ever encounter draft=<i>x</i>, return
- <i>x</i></li>
- </ol>
- </li>
- <li>If L' = L, return <i>false</i></li>
- </ol>
- </li>
- <li>
- <b>Missing File Inheritance</b>
- <ol>
- <li>Otherwise, walk again through the elements in E',
- from back to front.
- <ol>
- <li>If you encounter a validSubLocales attribute
- (deprecated):
- <ol>
- <li>If L is in the attribute value, return
- <i>false</i></li>
- <li>Otherwise return <i>true</i></li>
- </ol>
- </li>
- </ol>
- </li>
- </ol>
- </li>
- <li>
- <b>Otherwise</b>
- <ol>
- <li>Return <i>true</i></li>
- </ol>
- </li>
- </ol>
- <p>The validSubLocales in the most specific (farthest from root
- file) locale file "wins" through the full resolution step (data
- from more specific files replacing data from less specific
- ones).</p>
- <h4><a name="Keyword_and_Default_Resolution" href=
- "#Keyword_and_Default_Resolution" id=
- "Keyword_and_Default_Resolution">4.2.5 Keyword and Default
- Resolution</a></h4>
- <p>When accessing data based on keywords, the following process
- is used. Consider the following example:</p>
- <ul>
- <li>The locale 'de' has collation types A, B, C, and no
- <default> element</li>
- <li>The locale 'de_CH' has <default type='B'></li>
- </ul>
- <p>Here are the searches for various combinations.</p>
- <table class='simple' border="1" cellpadding="0" cellspacing=
- "0">
- <tr>
- <td><strong>User Input</strong></td>
- <td><strong>Lookup in Locale</strong></td>
- <td><strong>For</strong></td>
- <td><strong>Comment</strong></td>
- </tr>
- <tr>
- <td rowspan="3">de_CH<br>
- <em>no keyword</em></td>
- <td>de_CH</td>
- <td>default collation type</td>
- <td>finds "B"</td>
- </tr>
- <tr>
- <td>de_CH</td>
- <td>collation type=B</td>
- <td>not found</td>
- </tr>
- <tr>
- <td>de</td>
- <td>collation type=B</td>
- <td><em>found</em></td>
- </tr>
- <tr>
- <td rowspan="4">de<br>
- <em>no keyword</em></td>
- <td>de</td>
- <td>default collation type</td>
- <td>not found</td>
- </tr>
- <tr>
- <td>root</td>
- <td>default collation type</td>
- <td>finds "standard"</td>
- </tr>
- <tr>
- <td>de</td>
- <td>collation type=standard</td>
- <td>not found</td>
- </tr>
- <tr>
- <td>root</td>
- <td>collation type=standard</td>
- <td><i>found</i></td>
- </tr>
- <tr>
- <td>de_u_co_A</td>
- <td>de</td>
- <td>collation type=A</td>
- <td><i>found</i></td>
- </tr>
- <tr>
- <td rowspan="2">de_u_co_standard</td>
- <td>de</td>
- <td>collation type=standard</td>
- <td>not found</td>
- </tr>
- <tr>
- <td>root</td>
- <td>collation type=standard</td>
- <td><i>found</i></td>
- </tr>
- <tr>
- <td rowspan="6">de_u_co_foobar</td>
- <td>de</td>
- <td>collation type=foobar</td>
- <td>not found</td>
- </tr>
- <tr>
- <td>root</td>
- <td>collation type=foobar</td>
- <td>not found, starts looking for default</td>
- </tr>
- <tr>
- <td>de</td>
- <td>default collation type</td>
- <td>not found</td>
- </tr>
- <tr>
- <td>root</td>
- <td>default collation type</td>
- <td>finds "standard"</td>
- </tr>
- <tr>
- <td>de</td>
- <td>collation type=standard</td>
- <td>not found</td>
- </tr>
- <tr>
- <td>root</td>
- <td>collation type=standard</td>
- <td><i>found</i></td>
- </tr>
- </table>
- <p>Examples of "search" collator lookup; 'de' has a
- language-specific version, but 'en' does not:</p>
- <table class='simple' border="1" cellpadding="0" cellspacing=
- "0">
- <tr>
- <td><strong>User Input</strong></td>
- <td><strong>Lookup in Locale</strong></td>
- <td><strong>For</strong></td>
- <td><strong>Comment</strong></td>
- </tr>
- <tr>
- <td rowspan="2">de_CH_u_co_search</td>
- <td>de_CH</td>
- <td>collation type=search</td>
- <td>not found</td>
- </tr>
- <tr>
- <td>de</td>
- <td>collation type=search</td>
- <td><i>found</i></td>
- </tr>
- <tr>
- <td rowspan="3">en_US_u_co_search</td>
- <td>en_US</td>
- <td>collation type=search</td>
- <td>not found</td>
- </tr>
- <tr>
- <td>en</td>
- <td>collation type=search</td>
- <td>not found</td>
- </tr>
- <tr>
- <td>root</td>
- <td>collation type=search</td>
- <td><i>found</i></td>
- </tr>
- </table>
- <p>Examples of lookup for Chinese collation types. Note:</p>
- <ul>
- <li>All of the Chinese-specific collation types are provided
- in the 'zh' locale</li>
- <li>For 'zh' the <default> element specifies "pinyin";
- for 'zh_Hant' the <default> element specifies "stroke".
- However any of the available Chinese collation types can be
- explicitly requested for any Chinese locale.</li>
- </ul>
- <table class='simple' border="1" cellpadding="0" cellspacing=
- "0">
- <tr>
- <td><strong>User Input</strong></td>
- <td><strong>Lookup in Locale</strong></td>
- <td><strong>For</strong></td>
- <td><strong>Comment</strong></td>
- </tr>
- <tr>
- <td rowspan="3">zh_Hant<br>
- <em>no keyword</em></td>
- <td>zh_Hant</td>
- <td>default collation type</td>
- <td>finds "stroke"</td>
- </tr>
- <tr>
- <td>zh_Hant</td>
- <td>collation type=stroke</td>
- <td>not found</td>
- </tr>
- <tr>
- <td>zh</td>
- <td>collation type=stroke</td>
- <td><i>found</i></td>
- </tr>
- <tr>
- <td rowspan="3">zh_Hant_HK_u_co_pinyin</td>
- <td>zh_Hant_HK</td>
- <td>collation type=pinyin</td>
- <td>not found</td>
- </tr>
- <tr>
- <td>zh_Hant</td>
- <td>collation type=pinyin</td>
- <td>not found</td>
- </tr>
- <tr>
- <td>zh</td>
- <td>collation type=pinyin</td>
- <td><i>found</i></td>
- </tr>
- <tr>
- <td rowspan="2">zh<br>
- <em>no keyword</em></td>
- <td>zh</td>
- <td>default collation type</td>
- <td>finds "pinyin"</td>
- </tr>
- <tr>
- <td>zh</td>
- <td>collation type=pinyin</td>
- <td><i>found</i></td>
- </tr>
- </table>
- <blockquote>
- <p><b>Note:</b> It is an invariant that the default in root
- for a given element must<br>
- always be a value that exists in root. So you can not have
- the following in root:</p>
- </blockquote>
- <p><code><someElements><br>
- <default type='a'/><br>
- <someElement type='b'>...</someElement><br>
- <someElement type='c'>...</someElement><br>
- <b> <!-- no 'a' --></b><br>
- </someElements></code></p>
- <p>For identifiers, such as language codes, script codes,
- region codes, variant codes, types, keywords, currency symbols
- or currency display names, the default value is the identifier
- itself whenever if no value is found in the root. Thus if there
- is no display name for the region code 'QA' in root, then the
- display name is simply 'QA'.</p>
- <h4><a name="Inheritance_vs_Related" href=
- "#Inheritance_vs_Related" id="Inheritance_vs_Related">4.2.6
- Inheritance vs Related Information</a></h4>
- <p>There are related types of data and processing that are easy
- to confuse:</p>
- <table class='simple'>
- <tr>
- <td rowspan="4">
- <p><strong>Inheritance</strong></p>
- </td>
- <td colspan="2">Part of the internal mechanism used by CLDR
- to organize and manage locale data. This is used to share
- common resources, and ease maintenance, and provide the
- best fallback behavior in the absence of data. <em>Should
- not be used for locale matching or likely
- subtags.</em></td>
- </tr>
- <tr>
- <td><em>Example:</em></td>
- <td>parent(en_AU) ⇒ en_001<br>
- parent(en_001) ⇒ en<br>
- parent(en) ⇒ root</td>
- </tr>
- <tr>
- <td><em>Data:</em></td>
- <td>supplementalData.xml <parentLocale></td>
- </tr>
- <tr>
- <td><em>Spec:</em></td>
- <td><strong>Section <a href="#Inheritance_and_Validity">4.2
- Inheritance and Validity</a></strong></td>
- </tr>
- <tr>
- <td rowspan="4"><strong>DefaultContent</strong></td>
- <td colspan="2">Part of the internal mechanism used by CLDR
- to manage locale data. A particular sublocale is designated
- the defaultContent for a parent, so that the parent
- exhibits consistent behavior. <em>Should not be used for
- locale matching or likely subtags.</em></td>
- </tr>
- <tr>
- <td><em>Example:</em></td>
- <td>addLikelySubtags(sr-ME) ⇒ sr-Latn-ME,
- minimize(de-Latn-DE) ⇒ de</td>
- </tr>
- <tr>
- <td><em>Data:</em></td>
- <td>supplementalMetadata.xml <defaultContent></td>
- </tr>
- <tr>
- <td><em>Spec:</em></td>
- <td><strong>Part 6: Section 9.3 <a href=
- "tr35-info.html#Default_Content">Default
- Content</a></strong></td>
- </tr>
- <tr>
- <td rowspan="4"><strong>LikelySubtags</strong></td>
- <td colspan="2">Provides most likely full subtag (script
- and region) in the absence of other information. A core
- component of LocaleMatching.</td>
- </tr>
- <tr>
- <td><em>Example:</em></td>
- <td>addLikelySubtags(zh) ⇒ zh-Hans-CN<br>
- addLikelySubtags(zh-TW) ⇒ zh-Hant-TW<br>
- minimize(zh-Hans, favorRegion) ⇒ zh-TW</td>
- </tr>
- <tr>
- <td><em>Data:</em></td>
- <td>likelySubtags.xml <likelySubtags></td>
- </tr>
- <tr>
- <td><em>Spec:</em></td>
- <td><strong>Section <a href="#Likely_Subtags">4.3 Likely
- Subtags</a></strong></td>
- </tr>
- <tr>
- <td rowspan="4"><strong>LocaleMatching</strong></td>
- <td colspan="2">Provides the best match for the user’s
- language(s) among an application’s supported
- languages.</td>
- </tr>
- <tr>
- <td><em>Example:</em></td>
- <td>bestLocale(userLangs=<en, fr>,
- appLangs=<fr-CA, ru>) ⇒ fr-CA</td>
- </tr>
- <tr>
- <td><em>Data:</em></td>
- <td>languageInfo.xml <languageMatching></td>
- </tr>
- <tr>
- <td><em>Spec:</em></td>
- <td><strong>Section <a href="#LanguageMatching">4.4
- Language Matching</a></strong></td>
- </tr>
- </table>
- <h3><a name="Likely_Subtags" href="#Likely_Subtags" id=
- "Likely_Subtags">4.3 Likely Subtags</a></h3>
- <p class="dtd"><!ELEMENT likelySubtag EMPTY ><br>
- <!ATTLIST likelySubtag from NMTOKEN #REQUIRED><br>
- <!ATTLIST likelySubtag to NMTOKEN #REQUIRED></p>
- <p>There are a number of situations where it is useful to be
- able to find the most likely language, script, or region. For
- example, given the language "zh" and the region "TW", what is
- the most likely script? Given the script "Thai" what is the
- most likely language or region? Given the region TW, what is
- the most likely language and script?</p>
- <p>Conversely, given a locale, it is useful to find out which
- fields (language, script, or region) may be superfluous, in the
- sense that they contain the likely tags. For example, "en_Latn"
- can be simplified down to "en" since "Latn" is the likely
- script for "en"; "ja_Jpan_JP" can be simplified down to
- "ja".</p>
- <p>The <i>likelySubtag</i> supplemental data provides default
- information for computing these values. This data is based on
- the default content data, the population data, and the
- suppress-script data in [<a href="#BCP47">BCP47</a>]. It is
- heuristically derived, and may change over time.</p>
- <p>For the relationship between Inheritance, DefaultContent,
- LikelySubtags, and LocaleMatching, see <strong><em>Section
- 4.2.6 <a href="tr35.html#Inheritance_vs_Related">Inheritance vs
- Related Information</a></em></strong>.</p>
- <p>To look up data in the table, see if a locale matches one of
- the <b>from</b> attribute values. If so, fetch the
- corresponding <b>to</b> attribute value. For example, the
- Chinese data looks like the following:</p>
- <blockquote>
- <p class="example"><likelySubtag from="zh"
- to="zh_Hans_CN"/><br>
- <likelySubtag from="zh_HK" to="zh_Hant_HK"/><br>
- <likelySubtag from="zh_Hani" to="zh_Hani_CN"/><br>
- <likelySubtag from="zh_Hant" to="zh_Hant_TW"/><br>
- <likelySubtag from="zh_MO" to="zh_Hant_MO"/><br>
- <likelySubtag from="zh_TW" to="zh_Hant_TW"/></p>
- </blockquote>
- <p>So looking up "zh_TW" returns "zh_Hant_TW", while looking up
- "zh" returns "zh_Hans_CN".</p>
- <p>In more detail, the data is designed to be used in the
- following operations.</p>
- <p>Note that as of CLDR v24, any field present in the 'from'
- field, is also present in the 'to' field, so an input field
- will not change in "Add Likely Subtags" operation. The data and
- operations can also be used with language tags using [<a href=
- "#BCP47">BCP47</a>] syntax, with the appropriate changes. In
- addition, certain common 'denormalized' language subtags such
- as 'iw' (for 'he') may occur in both the 'from' and 'to'
- fields. This allows for implementations that use those
- denormalized subtags to use the data with only minor changes to
- the operations.</p>
- <p>An implementation may choose exclude language tags with the language subtag "und" from the following operation. In such a case, only the canonicalization is done. An implementation can declare that it is doing the exclusion, or can take a parameter that controls whether or not to do it.</p>
- <p> </p>
- <p><i><b>Add Likely Subtags:</b></i> <em>Given a source locale
- X, to return a locale Y where the empty subtags have been
- filled in by the most likely subtags.</em> This is written as X
- ⇒ Y ("X maximizes to Y").</p>
- <p>A subtag is called <em>empty</em> if it is a missing script
- or region subtag, or it is a base language subtag with the
- value "und". In the description below, a subscript on a subtag
- <em>x</em> indicates which tag it is from:
- <em>x<sub>s</sub></em> is in the source,
- <em>x<sub>m</sub></em>is in a match, and <em>x<sub>r</sub></em>
- is in the final result.</p>
- <p>This operation is performed in the following way.</p>
- <ol>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">
- <strong>Canonicalize.</strong>
- <ol>
- <li>Make sure the input locale is in canonical form: uses
- the right separator, and has the right casing.</li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">
- Replace any deprecated subtags with their canonical
- values using the <alias> data in supplemental
- metadata. Use the first value in the replacement list, if
- it exists. Language tag replacements may have multiple
- parts, such as "sh" ➞ "sr_Latn" or mo" ➞ "ro_MD". In such
- a case, the original script and/or region are retained if
- there is one. Thus "sh_Arab_AQ" ➞ "sr_Arab_AQ", not
- "sr_Latn_AQ".</li>
- <li>If the tag is a legacy language tag
- (marked as “Type: grandfathered” in BCP 47; see <variable
- id="$grandfathered" type="choice"> in the supplemental
- data), then return it.</li>
- <li>Remove the script code 'Zzzz' and the region code
- 'ZZ' if they occur.</li>
- <li>Get the components of the cleaned-up source tag
- <em>(language<sub>s</sub>, script<sub>s</sub>,</em> and
- <em>region<sub>s</sub></em>), plus any variants and
- extensions.</li>
- </ol>
- </li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">
- <strong>Lookup.</strong> Lookup each of the following in
- order, and stop on the first match:
- <ol>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">
- <em>language<sub>s</sub>_script<sub>s</sub>_region<sub>s</sub></em></li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">
- <em>language<sub>s</sub>_region<sub>s</sub></em></li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">
- <em>language<sub>s</sub>_script<sub>s</sub></em></li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">
- <em><em>language<sub>s</sub></em></em></li>
- <li>und<em>_script<sub>s</sub></em> </li>
- </ol>
- </li>
- <li>
- <strong>Return</strong>
- <ol>
- <li>If there is no match,either return
- <ol>
- <li>an error value, or</li>
- <li>the match for "und" (in APIs where a valid
- language tag is required).</li>
- </ol>
- </li>
- <li>Otherwise there is a match = <span style=
- "margin-top: 0.5em; margin-bottom: 0.5em"><em>language<sub>m</sub>_script<sub>m</sub>_region<sub>m</sub></em></span></li>
- <li>Let x<sub>r</sub> = x<sub>s</sub> if x<sub>s</sub> is
- not empty, and x<sub>m</sub> otherwise.</li>
- <li>R<span style=
- "margin-top: 0.5em; margin-bottom: 0.5em">eturn the
- language tag composed of <em>language<sub>r</sub> _
- script<sub>r</sub> _ region<sub>r</sub></em> + variants +
- extensions</span> .</li>
- </ol>
- </li>
- </ol>
- <p>The lookup can be optimized. For example, if any of the tags
- in Step 2 are the same as previous ones in that list, they do
- not need to be tested.</p>
- <p><i>Example1:</i></p>
- <ul>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">
- <p>Input is ZH-ZZZZ-SG.</p>
- </li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">
- <p>Normalize to zh_SG.</p>
- </li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">
- <p>Lookup in table. No match.</p>
- </li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">
- <p>Lookup zh, and get the match (zh_Hans_CN). Substitute
- SG, and return zh_Hans_SG.</p>
- </li>
- </ul>
- <p>To find the most likely language for a country, or language
- for a script, use "und" as the language subtag. For example,
- looking up "und_TW" returns zh_Hant_TW.</p>
- <p>A goal of the algorithm is that if X ⇒ Y, and X' results
- from replacing an empty subtag in X by the corresponding
- subtag in Y, then X' ⇒ Y. For example, if und_AF ⇒ fa_Arab_AF,
- then:</p>
- <ul>
- <li>fa_Arab_AF ⇒ fa_Arab_AF</li>
- <li>und_Arab_AF ⇒ fa_Arab_AF</li>
- <li>fa_AF ⇒ fa_Arab_AF</li>
- </ul>
- <p>There are a small number of exceptions to this goal in the
- current data, where X ∈ {und_Bopo, und_Brai, und_Cakm,
- und_Limb, und_Shaw}.</p>
- <p><b><i>Remove</i></b> <i><b>Likely Subtags:</b> Given a
- locale, remove any fields that Add Likely Subtags would
- add.</i></p>
- <p>The reverse operation removes fields that would be added by
- the first operation.</p>
- <ol>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">First get
- max = AddLikelySubtags(inputLocale). If an error is signaled,
- return it.</li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">Remove
- the variants from max.</li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">Get the
- components of the max (<em>language<sub>max</sub></em>,
- <em>script<sub>max</sub></em>, <em>region<sub>max</sub></em>).</li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">Then for
- <i>trial</i> in {<em>language<sub>max</sub></em>,
- <em>language<sub>max</sub>_region<sub>max</sub></em>,
- <em>language<sub>max</sub>_script<sub>max</sub></em>}
- <ul>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">If
- AddLikelySubtags(<i>trial</i>) = max, then return
- <i>trial</i> + variants.</li>
- </ul>
- </li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">If you do
- not get a match, return max + variants.</li>
- </ol>
- <p>Example:</p>
- <ul>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">
- <p>Input is zh_Hant. Maximize to get zh_Hant_TW.</p>
- </li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">
- <p>zh => zh_Hans_CN. No match, so continue.</p>
- </li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">
- <p>zh_TW => zh_Hant_TW. Matches, so return zh_TW.</p>
- </li>
- </ul>
- <p>A variant of this favors the script over the region, thus
- using {language, language_script, language_region} in the
- above. If that variant is used, then the result in this example
- would be zh_Hant instead of zh_TW.</p>
- <h3><a name="LanguageMatching" href="#LanguageMatching" id=
- "LanguageMatching">4.4 Language Matching</a></h3>
- <p class="dtd"><!ELEMENT languageMatching ( languageMatches*
- ) ><br>
- <!ELEMENT languageMatches ( paradigmLocales*,
- matchVariable*, languageMatch* ) ><br>
- <!ATTLIST languageMatches type NMTOKEN #REQUIRED ></p>
- <p class="dtd"><!ELEMENT languageMatch EMPTY ><br>
- <!ATTLIST languageMatch desired CDATA #REQUIRED ><br>
- <!ATTLIST languageMatch supported CDATA #REQUIRED ><br>
- <!ATTLIST languageMatch percent NMTOKEN #REQUIRED ><br>
- <!ATTLIST languageMatch distance NMTOKEN #IMPLIED ><br>
- <!ATTLIST languageMatch oneway ( true | false ) #IMPLIED
- ></p>
- <p class="dtd"><!ELEMENT languageMatches ( paradigmLocales*,
- matchVariable*, languageMatch* ) ><br>
- <!ATTLIST languageMatches type NMTOKEN #REQUIRED ></p>
- <p class="dtd"><!ELEMENT paradigmLocales EMPTY ><br>
- <!ATTLIST paradigmLocales locales NMTOKENS #REQUIRED
- ></p>
- <p>Implementers are often faced with the issue of how to match
- the user's requested languages with their product's supported
- languages. For example, suppose that a product supports {ja-JP,
- de, zh-TW}. If the user understands written American English,
- German, French, Swiss German, and Italian, then
- <strong>de</strong> would be the best match; if s/he
- understands only Chinese (zh), then zh-TW would be the best
- match.</p>
- <p>The standard truncation-fallback algorithm does not work
- well when faced with the complexities of natural language. The
- language matching data is designed to fill that gap. Stated in
- those terms, language matching can have the effect of a more
- complex fallback, such as:</p>
- <p>sr-Cyrl-RS<br>
- sr-Cyrl<br>
- sr-Latn-RS<br>
- sr-Latn<br>
- sr<br>
- hr-Latn<br>
- hr</p>
- <p>Language matching is used to find the best supported locale
- ID given a requested list of languages. The requested list
- could come from different sources, such as such as the user's
- list of preferred languages in the OS Settings, or from a
- browser Accept-Language list. For example, if my native tongue
- is English, I can understand Swiss German and German, my French
- is rusty but usable, and Italian basic, ideally an
- implementation would allow me to select {gsw, de, fr} as my
- preferred list of languages, skipping Italian because my
- comprehension is not good enough for arbitrary content.</p>
- <p>Language Matching can also be used to get fallback data
- elements. In many cases, there may not be full data for a
- particular locale. For example, for a Breton speaker, the best
- fallback if data is unavailable might be French. That is,
- suppose we have found a Breton bundle, but it does not contain
- translation for the key "CN" (for the country China). It is
- best to return "chine", rather than falling back to the value
- default language such as Russian and getting "Кітай". The
- language matching data can be used to get the closest fallback
- locales (of those supported) to a given language.</p>
- <p>For the relationship between Inheritance, DefaultContent,
- LikelySubtags, and LocaleMatching, see <strong><em>Section
- 4.2.6 <a href="tr35.html#Inheritance_vs_Related">Inheritance vs
- Related Information</a></em></strong>.</p>
- <p>When such fallback is used for inherited item lookup, the
- normal order of inheritance is used for inherited item lookup,
- except that before using any data from <strong>root</strong>,
- the data for the fallback locales would be used if available.
- Language matching does not interact with the fallback of
- resources <em>within the locale-parent chain</em>. For
- example, suppose that we are looking for the value for a
- particular path <strong>P</strong> in <strong>nb-NO</strong>.
- In the absence of aliases, normally the following lookup is
- used.</p>
- <blockquote>
- <p><strong>nb-NO</strong> → <strong>nb</strong> →
- <strong>root</strong></p>
- </blockquote>
- <p>That is, we first look in <strong>nb-NO</strong>. If there
- is no value for <strong>P</strong> there, then we look in
- <strong>nb</strong>. If there is no value for
- <strong>P</strong> there, we return the value for
- <strong>P</strong> in root (or a code value, if there is
- nothing there). Remember that if there is an alias element
- along this path, then the lookup may restart with a different
- path in <strong>nb-NO</strong> (or another locale).</p>
- <p>However, suppose that <strong>nb-NO</strong> has the
- fallback values <strong>[nn da sv en]</strong>, derived from
- language matching. In that case, an implementation <em>may</em>
- progressively lookup each of the listed locales, with the
- appropriate substitutions, returning the first value that is
- not found in <strong>root</strong>. This follows roughly the
- following pseudocode:</p>
- <ul>
- <li>value = lookup(P, nb-NO); if (locationFound != root)
- return value;</li>
- <li>value = lookup(P, nn-NO); if (locationFound != root)
- return value;</li>
- <li>value = lookup(P, da-NO); if (locationFound != root)
- return value;</li>
- <li>value = lookup(P, sv-NO); if (locationFound != root)
- return value;</li>
- <li>value = lookup(P, en-NO); return value;</li>
- </ul>
- <p>The locales in the fallback list are not used recursively.
- For example, for the lookup of a path in nb-NO, if
- <strong>fr</strong> were a fallback value for
- <strong>da</strong>, it would not matter for the above process.
- Only the original language matters.</p>
- <p>The language matching data is intended to be used according
- to the following algorithm. This is a logical description, and
- can be optimized for production in many ways. In this
- algorithm, the languageMatching data is interpreted as an
- ordered list.</p>
- <p>Distances between given pair of subtags can be larger or smaller than the typical distances. For example, the distance between en and en-GB can be greater than those between en-GB and en-IE. In some cases, language and/or script differences can be as small as the typical region difference. (Example: sr-Latn vs. sr-Cyrl).</p>
- <p>The distances resulting from the table are not linear, but are rather chosen to produce expected results. So a distance of 10 is not necessarily twice as "bad" as a distance of 5. Implementations may want to have a mode where script distances should swamp language distances. The tables are built such that this can be accomplished by multiplying the language distance by 0.25.</p>
- <p>The language matching algorithm takes a list of a user’s
- desired languages, and a list of the application’s supported
- languages.</p>
- <ul>
- <li>Set the best weighted distance BWD to ∞</li>
- <li>Set the best desired language BD to null</li>
- <li>Set the best supported language BS to null</li>
- <li>For each desired language D
- <ul>
- <li>Compute a demotion value F, based on the position in
- the list.
- <ul>
- <li>This demotion value is up to the implementation,
- but is typically a positive value that increases
- according to how far D is from the start of the
- desired language list.</li>
- </ul>
- </li>
- <li>For each supported language S
- <ul>
- <li>Find the matching distance MD as described
- below.</li>
- <li>Compute the weighted distance as F + MD</li>
- <li>If WD < BD
- <ul>
- <li>BWD = WD</li>
- <li>BD = D</li>
- <li>BS = S</li>
- </ul>
- </li>
- </ul>
- </li>
- </ul>
- </li>
- <li>If the BWD is less than a threshold, return <BD, BS>
- <ul>
- <li>The threshold is implementation-defined, typically
- set to greater than a default region difference, and less
- than a default script difference.</li>
- </ul>
- </li>
- <li>Otherwise BD = the default supported language (like
- English); return <BD, null></li>
- </ul>
- <p>To find the matching distance MD between any two languages,
- perform the following steps.</p>
- <ol>
- <li>Maximize each language using Section 4.3 <a href=
- "#Likely_Subtags">Likely Subtags</a>.
- <ul>
- <li>und is a special case: see below.</li>
- </ul>
- </li>
- <li>Set the match-distance MD to 0</li>
- <li>For each subtag in {language, script, region}
-<ol>
- <li>If respective subtags in each language tag are
- identical, remove the subtag from each (logically) and
- continue.</li>
- <li>Traverse the languageMatching data until a match is
- found.
- <ul>
- <li>* matches any field.</li>
- <li>If the oneway flag is false, then the match is
- symmetric; otherwise only match one direction.</li>
- <li>For region matching, use the mechanisms in <strong>Section 4.4.1 <a href=
- "#EnhancedLanguageMatching">Enhanced Language
- Matching</a></strong>.</li>
- </ul>
- </li>
- <li>Add the <strong>distance</strong> attribute value to MD.
- <ul>
- <li>This used to be a <strong>percent</strong> attribute value, which was 100 - the distance attribute value.</li>
- </ul>
- </li>
- <li>Remove the subtag from each (logically)</li>
- </ol>
- </li>
- <li>Return MD</li>
- </ol>
- <p>It is typically useful to set the discount factor between
- successive elements of the desired languages list to be
- slightly greater than the default region difference. That
- avoids the following problem:<br></p>
- <p><em>Supported languages:</em> "de, fr, ja"<br></p>
- <p><em>User's desired languages:</em> "de-AT, fr"</p>
- <p>This user would expect to get "de", not "fr". In practice,
- when a user selects a list of preferred languages, they don't
- include all the regional variants ahead of their second base
- language. Yet while the user's desired languages really doesn't
- tell us the priority ranking among their languages, normally
- the fall-off between the user's languages is substantially
- greater than regional variants. But unless F is greater than
- the distance between de-AT and de-DE, then the user’s
- second-choice language would be returned.</p>
- <p>The base language subtag "und" is a special case. Suppose we
- have the following situation:</p>
- <ul>
- <li>desired languages: {und, it}</li>
- <li>supported languages: {en, it}</li>
- <li>resulting language: en<br></li>
- </ul>
- <p>Part of this is because 'und' has a special function in BCP
- 47; it stands in for 'no supplied base language'. To prevent
- this from happening, if the desired base language is und, the
- language matcher should not apply likely subtags to
- it. </p>
- <p>Examples:</p>
- <p>For example, suppose that nn-DE and nb-FR are being
- compared. They are first maximized to nn-Latn-DE and
- nb-Latn-FR, respectively. The list is searched. The first match
- is with "*-*-*", for a match of 96%. The languages are
- truncated to nn-Latn and nb-Latn, then to nn and nb. The first
- match is also for a value of 96%, so the result is 92%.</p>
- <p>Note that language matching is orthogonal to the how closely
- two languages are related linguistically. For example, Breton
- is more closely related to Welsh than to French, but French is
- the better match (because it is more likely that a Breton
- reader will understand French than Welsh). This also
- illustrates that the matches are often asymmetric: it is not
- likely that a French reader will understand Breton.</p>
- <p>The "*" acts as a wild card, as shown in the following
- example:</p>
- <p class="example"><languageMatch desired="es-*-ES"
- supported="es-*-ES" percent="100"/><br>
- <!-- Latin American Spanishes are closer to each other.
- Approximate by having es-ES be further from everything
- else.--></p>
- <p> </p>
- <p class="example"><languageMatch desired="es-*-ES"
- supported="es-*-*" percent="93"/></p>
- <p class="example"><br>
- <languageMatch desired="*" supported="*"
- percent="1"/><br>
- <!-- [Default value - must be at end!] Normally there is no
- comprehension of different languages.--></p>
- <p class="example"><br>
- <languageMatch desired="*-*" supported="*-*"
- percent="20"/><br>
- <!-- [Default value - must be at end!] Normally there is
- little comprehension of different scripts.--></p>
- <p class="example"><br>
- <languageMatch desired="*-*-*" supported="*-*-*"
- percent="96"/><br>
- <!-- [Default value - must be at end!] Normally there are
- small differences across regions.--></p>
- <p>When the language+region is not matched, and there is
- otherwise no reason to pick among the supported regions for
- that language, then some measure of geographic "closeness" can
- be used. The results may be more understandable by users.
- Looking for en-SK, for example, should fall back to something
- within Europe (eg en-GB) in preference to something far away
- and unrelated (eg en-SG). Such a closeness metric does not need
- to be exact; a small amount of data can be used to give an
- approximate distance between any two regions. However, any such
- data must be used carefully; although Hong Kong is closer to
- India than to the UK, it is unlikely that en-IN would be a
- better match to en-HK than en-GB would.</p>
- <h4><a name="EnhancedLanguageMatching" href=
- "#EnhancedLanguageMatching" id="EnhancedLanguageMatching">4.4.1
- Enhanced Language Matching</a></h4>
- <p>The enhanced format for language matching adds structure to
- enable better matching of languages. It is distinguished by
- having a suffix "_new" on the type, as in the example below.
- The extended structure allows matching to take into account
- broad similarities that would give better results. For example,
- for English the regions that are or inherit from US
- (AS|GU|MH|MP|PR|UM|VI|US) form a “cluster”. Each region in that
- cluster should be closer to each other than to any other
- region. And a region outside the cluster should be closer to
- another region outside that cluster than to one inside. We get
- this issue with the “world languages” like English, Spanish,
- Portuguese, Arabic, etc.</p>
- <p><em>Example:</em></p>
- <pre>
- <languageMatches type="written_new"><br> <paradigmLocales locales="en en-GB es es-419 pt-BR pt-PT"/><br> <matchVariable id="$enUS" value="AS+GU+MH+MP+PR+UM+US+VI"/><br> <matchVariable id="$cnsar" value="HK+MO"/><br> <matchVariable id="$americas" value="019"/><br> <matchVariable id="$maghreb" value="MA+DZ+TN+LY+MR+EH"/><br> <languageMatch desired="no" supported="nb" distance="1"/><!-- no ⇒ nb --><br>…
- <languageMatch desired="ar_*_$maghreb" supported="ar_*_$maghreb" distance="4"/>
- <!-- ar; *; $maghreb ⇒ ar; *; $maghreb -->
- <languageMatch desired="ar_*_$!maghreb" supported="ar_*_$!maghreb" distance="4"/>
- <!-- ar; *; $!maghreb ⇒ ar; *; $!maghreb --><br>…</pre>
- <p>The <strong>matchVariable</strong> allows for a rule to
- matche to multiple regions, as illustrated by
- <strong>$maghreb</strong>. The syntax is simple: it allows for
- + for <em>union</em> and - for <em>set difference</em>, but no
- precedence. So A+B-A+D is interpreted as (((A+B)-A)+D), not as
- (A+B)-(A+D). The variable <strong>id</strong> has a value of
- the form [$][a-zA-Z0-9]+. If $X is defined, then $!X
- automatically means all those regions that are not in $X.</p>
- <p dir="ltr">When the set is interpreted, then macrolanguages
- are (logically) transformed into a list of their contents, so
- “053+GB” → “AU+GB+NF+NZ”. This is done recursively, so 009 →
- “053+054+057+061+QO” → “AU+NF+NZ+FJ+NC+PG+SB +VU...”. Note that
- we use 019 for all of the Americas in the variables above,
- because en-US should be in the same cluster as es-419 and its
- contents.</p>
- <p>In the rules, the percent value (100..0) is replaced by a
- <strong>distance</strong> value, which is the inverse
- (0..100).</p>
- <p dir="ltr">These new variables and rules divide up the world
- into clusters, where items in the same clusters (for specific
- languages) get the normal regional difference, and items in
- different clusters get different weights.</p><br>
- <p dir="ltr">Each cluster can have one or more associated
- <strong>paradigmLocales</strong>. These are locales that are
- preferred within a cluster. So when matching desired=[en-SA]
- against [en-GU en en-IN en-GB], the value en-GB is returned.
- Both of {en-GU en} are in a different cluster. While {en-IN
- en-GB} are in the same cluster, and the same distance from
- en-SA, the preference is given to en-GB because it is in the
- paradigm locales. It would be possible to express this in
- rules, but using this mechanism handles these very common cases
- without bulking up the tables.<br></p>
- <p dir="ltr">The <strong>paradigmLocales</strong> also allow
- matching to macroregions. For example, desired=[es-419] should
- match to {es-MX} more closely than to {es}, and vice versa:
- {es-MX} should match more closely to {es-419} than to {es}. But
- es-MX should match more closely to es-419 than to any of the
- other es-419 sublocales. In general, in the absence of other
- distance data, there is a ‘paradigm’ in each cluster that the
- others should match more closely to: en(-US), en-GB, es(-ES),
- es-419, ru(-RU)...</p>
- <h2><a name="XML_Format" href="#XML_Format" id="XML_Format">5
- XML Format</a></h2>
- <p>There are two kinds of data that can be expressed in LDML:
- language-dependent data and supplementary data. In either case,
- data can be split across multiple files, which can be in
- multiple directory trees.</p>
- <p>For example, the language-dependent data for Japanese in
- CLDR is present in the following files:</p>
- <ul>
- <li>common/collation/ja.xml</li>
- <li>common/main/ja.xml</li>
- <li>common/rbnf/ja.xml</li>
- <li>common/segmentations/ja.xml</li>
- </ul>
- <p>Data for cased languages such as French are in files
- like:</p>
- <ul>
- <li>common/casing/fr.xml</li>
- </ul>
- <p>The status of the data is the same, whether or not data is
- split. That is, for the purpose of validation and lookup, all
- of the data for the above ja.xml files is treated as if it was
- in a single file. These files have the <ldml> root
- element and use ldml.dtd. The file name must match the identity
- element. For example, the <ldml> file pa_Arab_PK.xml must
- contain the following elements:</p>
- <pre>
- <strong><ldml></strong><br> <identity><br> …<br> <strong><language type="pa"/><br> <script type="Arab"/><br> <territory type="PK"/></strong><br> </identity>
-…</pre>
- <p>Supplemental data can have different root elements,
- currently: ldmlBCP47, supplementalData, keyboard, and platform.
- Keyboard and platform files are considered distinct. The
- ldmlBCP47 files and supplementalData files that have the same
- root are all logically part of the same file; they are simply
- split into separate files for convenience. Implementations may
- split the files in different ways, also for their convenience.
- The files in /properties are also supplemental data files, but
- are structured like UCD properties.</p>
- <p>For example, supplemental data relating to Japan or the
- Japanese writing are in:</p>
- <ul>
- <li>common/supplemental/ (in many files, such as
- supplementalData.xml)</li>
- <li>common/transforms/Hiragana-Katakana.xml</li>
- <li>common/transforms/Hiragana-Latin.xml</li>
- <li>common/properties/scriptMetadata.txt</li>
- <li>common/bcp47/calendar.xml</li>
- <li>uca/allkeys_CLDR.txt (sorting)</li>
- <li>/keyboards/chromeos/ja-t-k0-chromeos.xml</li>
- <li>...</li>
- </ul>
- <p>Like the <ldml> files, the keyboard file names must
- match internal data: in particular, the locale attribute on the
- keyboard element must have a value that corresponds to the file
- name, such as <keyboard locale="af-t-k0-android"> for the
- file af-t-k0-android.xml.</p>
- <p>The following sections describe the structure of the XML
- format for language-dependent data. The more precise syntax is
- in the ldml.dtd file<i>; however, the DTD does not describe all
- the constraints on the structure.</i></p>
- <p>To start with, the root element is <ldml>, with the
- following DTD entry:</p>
- <p class='dtd'><!ELEMENT ldml
- (identity,(alias|(fallback*,localeDisplayNames?,layout?,contextTransforms?,characters?,<br>
-
- delimiters?,measurement?,dates?,numbers?,units?,listPatterns?,collations?,posix?,<br>
-
- segmentations?,rbnf?,annotations?,metadata?,references?,special*)))></p>
- <p>The XML structure is stable over releases. Elements and
- attributes may be deprecated: they are retained in the DTD but
- their usage is strongly discouraged. In most cases, an
- alternate structure is provided for expressing the information.
- There is only one exception: newer DTDs cannot be used with
- version 1.1 files, without some modification.</p>
- <p>In general, all translatable text in this format is in
- element contents, while attributes are reserved for types and
- non-translated information (such as numbers or dates). The
- reason that attributes are not used for translatable text is
- that spaces are not preserved, and we cannot predict where
- spaces may be significant in translated material.</p>
- <p>There are two kinds of elements in LDML: <i>rule</i>
- elements and <i>structure</i> elements. For structure elements,
- there are restrictions to allow for effective inheritance and
- processing:</p>
- <ol>
- <li>There is no "mixed" content: if an element has textual
- content, then it cannot contain any elements.</li>
- <li>The [<a href="#XPath">XPath</a>] leading to the content
- is unique; no two different pieces of textual content have
- the same [<a href="#XPath">XPath</a>].</li>
- </ol>
- <p>Rule elements do not have this restriction, but also do not
- inherit, except as an entire block. The rule elements are
- listed in serialElements in the supplemental metadata. See also
- <i><a href="#Inheritance_and_Validity">Section 4.2 Inheritance
- and Validity</a></i>. For more technical details, see <a href=
- "http://cldr.unicode.org/development/updating-dtds">Updating-DTDs</a>.</p>
- <p>Note that the data in examples given below is purely
- illustrative, and does not match any particular language. For a
- more detailed example of this format, see [<a href=
- "#LDML">Example</a>]. There is also a DTD for this format, but
- <i>remember that the DTD alone is not sufficient to understand
- the semantics, the constraints, nor the
- interrelationships between the different elements and
- attributes</i>. You may wish to have copies of each of these to
- hand as you proceed through the rest of this document.</p>
- <p>In particular, all elements allow for draft versions to
- coexist in the file at the same time. Thus most elements are
- marked in the DTD as allowing multiple instances. However,
- unless an element is listed as a serialElement, or has a
- distinguishing attribute, it can only occur once as a
- subelement of a given element. Thus, for example, the following
- is illegal even though allowed by the DTD:</p>
- <p><languages><br>
- <language type="aa">...</language><br>
- <language type="aa">..</language></p>
- <p>There must be only one instance of these per parent, unless
- there are other distinguishing attributes (such as an alt
- element).</p>
- <p>In general, LDML data should be in NFC format. However,
- certain elements may need to contain characters that are not in
- NFC, including exemplars, transforms, segmentations, and
- p/s/t/i/pc/sc/tc/ic rules in collation. These elements must not
- be normalized (either to NFC or NFD), or their meaning may be
- changed. Thus LDML documents must not be normalized as a whole.
- To prevent problems with normalization, no element value can
- start with a combining slash (U+0338 COMBINING LONG SOLIDUS
- OVERLAY).</p>
- <p>Lists, such as <span class=
- "attribute">singleCountries</span> are space-delimited. That
- means that they are separated by one or more XML whitespace
- characters,</p>
- <ul>
- <li>singleCountries</li>
- <li>preferenceOrdering</li>
- <li>references</li>
- </ul>
- <h3><a name="Common_Elements" href="#Common_Elements" id=
- "Common_Elements">5.1 Common Elements</a></h3>
- <p>At any level in any element, two special elements are
- allowed.</p>
- <h4><a name="special" href="#special" id="special">5.1.1
- Element special</a></h4>
- <p>This element is designed to allow for arbitrary additional
- annotation and data that is product-specific. It has one
- required attribute <span class="attribute">xmlns</span>, which
- specifies the XML <a href=
- "https://www.w3.org/TR/REC-xml-names/">namespace</a> of the
- special data. For example, the following used the version 1.0
- POSIX special element.</p>
- <pre><!DOCTYPE ldml SYSTEM "<span style=
- "color: blue">https://unicode.org/cldr/dtd/1.0/ldml.dtd</span>" [
- <!ENTITY % posix SYSTEM "<span style=
-"color: blue">https://unicode.org/cldr/dtd/1.0/ldmlPOSIX.dtd</span>">
-<span style="color: blue">%posix;</span>
-]>
-<ldml>
-...
-<special xmlns:posix="<span style=
-"color: blue">https://www.opengroup.org/regproducts/xu.htm</span>">
- <span style=
-"color: green"><!-- old abbreviations for pre-GUI days --></span>
- <posix:messages>
- <posix:yesstr><span style=
-"color: blue">Yes</span></posix:yesstr>
- <posix:nostr><span style=
-"color: blue">No</span></posix:nostr>
- <posix:yesexpr><span style=
-"color: blue">^[Yy].*</span></posix:yesexpr>
- <posix:noexpr><span style=
-"color: blue">^[Nn].*</span></posix:noexpr>
- </posix:messages>
- </special>
-</ldml>
-</pre>
- <h5><a name="Sample_Special_Elements" href=
- "#Sample_Special_Elements" id="Sample_Special_Elements">5.1.1.1
- Sample Special Elements</a></h5>
- <p>The elements in this section are <i><b>not</b></i> part of
- the Locale Data Markup Language 1.0 specification. Instead,
- they are special elements used for application-specific data to
- be stored in the Common Locale Repository. They may change or
- be removed future versions of this document, and are present
- her more as examples of how to extend the format. (Some of
- these items may move into a future version of the Locale Data
- Markup Language specification.)</p>
- <ul>
- <li><a href=
- "https://unicode.org/cldr/dtd/1.1/ldmlICU.dtd">https://unicode.org/cldr/dtd/1.1/ldmlICU.dtd</a></li>
- <li><a href=
- "https://unicode.org/cldr/dtd/1.1/ldmlOpenOffice.dtd">https://unicode.org/cldr/dtd/1.1/ldmlOpenOffice.dtd</a></li>
- </ul>
- <p>The above examples are old versions: consult the
- documentation for the specific application to see which should
- be used.</p>
- <p>These DTDs use namespaces and the special element. To
- include one or more, use the following pattern to import the
- special DTDs that are used in the file:</p>
- <pre><?xml version="<span style=
- "color: blue">1.0</span>" encoding="<span style=
- "color: blue">UTF-8</span>" ?>
-<!DOCTYPE ldml SYSTEM "<span style=
-"color: blue">https://unicode.org/cldr/dtd/1.1/ldml.dtd</span>" [
- <!ENTITY % <span style=
-"color: blue">icu</span> SYSTEM "<span style=
-"color: blue">https://unicode.org/cldr/dtd/1.1/ldmlICU.dtd</span>">
- <!ENTITY % <span style=
-"color: blue">openOffice</span> SYSTEM "<span style=
-"color: blue">https://unicode.org/cldr/dtd/1.1/ldmlOpenOffice.dtd</span>">
-<span style="color: blue">%icu;
-%openOffice;
-</span>]></pre>
- <p>Thus to include just the ICU DTD, one uses:</p>
- <pre><?xml version="<span style=
- "color: blue">1.0</span>" encoding="<span style=
- "color: blue">UTF-8</span>" ?>
-<!DOCTYPE ldml SYSTEM "<span style=
-"color: blue">https://unicode.org/cldr/dtd/1.1/ldml.dtd</span>" [
- <!ENTITY % icu SYSTEM "<span style=
-"color: blue">https://unicode.org/cldr/dtd/1.1/ldmlICU.dtd</span>">
-<span style="color: blue">%icu;
-</span>]></pre>
- <blockquote>
- <p><b>Note:</b> A previous version of this document contained
- a special element for <a href=
- "http://www.open-std.org/jtc1/sc22/wg20/docs/n897-14652w25.pdf">
- ISO TR 14652</a> compatibility data. That element has been
- withdrawn, pending further investigation, since 14652 is a
- Type 1 TR: "when the required support cannot be obtained for
- the publication of an International Standard, despite
- repeated effort". See the ballot comments on <a href=
- "http://www.open-std.org/jtc1/sc22/wg20/docs/n948-J1N6769-14652.pdf">
- 14652 Comments</a> for details on the 14652 defects. For
- example, most of these patterns make little provision for
- substantial changes in format when elements are empty, so are
- not particularly useful in practice. Compare, for example,
- the mail-merge capabilities of production software such as
- Microsoft Word or OpenOffice.</p>
- <p><b>Note:</b> While the CLDR specification guarantees
- backwards compatibility, the definition of specials is up to
- other organizations. Any assurance of backwards compatibility
- is up to those organizations.</p>
- </blockquote>
- <p>A number of the elements above can have extra information
- for <a name="OpenOffice" href="#OpenOffice" id=
- "OpenOffice">openoffice.org</a>, such as the following
- example:</p>
- <pre> <special xmlns:openOffice="<span style=
- "color: blue">https://www.openoffice.org</span>">
- <openOffice:search>
- <openOffice:searchOptions>
- <openOffice:transliterationModules><span style="color: blue">IGNORE_CASE</span></openOffice:transliterationModules>
- </openOffice:searchOptions>
- </openOffice:search>
- </special>
-</pre>
- <h4><a name="Alias_Elements" href="#Alias_Elements" id=
- "Alias_Elements">5.1.2 Element alias</a></h4>
- <p class="dtd"><!ELEMENT alias (special*) ><br>
- <!ATTLIST alias source NMTOKEN #REQUIRED ><br>
- <!ATTLIST alias path CDATA #IMPLIED></p>
- <p>The contents of any element in root can be replaced by an
- alias, which points to the path where the data can be
- found.</p>
- <p>Aliases will only ever appear in root with the form
- //ldml/.../alias[@source="locale"][@path="..."].</p>
- <p>Consider the following example in root:</p>
- <pre>
- <calendar type="gregorian"><br> <months><br> <default choice="format"/><br> <monthContext type="format"><br> <default choice="wide"/><br> <monthWidth type="abbreviated"><br> <strong><alias source="locale" path="../monthWidth[@type='wide']"/></strong><br> </monthWidth></pre>
- <p>If the locale "de_DE" is being accessed for a month name for
- format/abbreviated, then a resource bundle at "de_DE" will be
- searched for a resource element at the that path. If not found
- there, then the resource bundle at "de" will be searched, and
- so on. When the alias is found in root, then the search is
- restarted, but searching for format/<strong>wide</strong>
- element instead of format/abbreviated.</p>
- <p>If the <b>path</b> attribute is present, then its value is
- an [<a href="#XPath">XPath</a>] that points to a different node
- in the tree. For example:</p>
- <pre>
- <alias source="locale" path="../monthWidth[@type='wide']"/></pre>
- <p>The default value if the path is not present is the same
- position in the tree. All of the attributes in the [<a href=
- "#XPath">XPath</a>] must be <i>distinguishing</i> elements. For
- more details, see <a href="#Inheritance_and_Validity">Section
- 4.2 Inheritance and Validity</a>.</p>
- <p>There is a special value for the source attribute, the
- constant <b>source="locale"</b>. This special value is
- equivalent to the locale being resolved. For example, consider
- the following example, where locale data for 'de' is being
- resolved:</p>
- <div align="center">
- <center>
- <table border="1" cellpadding="0" cellspacing="1">
- <caption>
- <a name="Inheritance_with_source_locale_" href=
- "#Inheritance_with_source_locale_" id=
- "Inheritance_with_source_locale_">Inheritance with
- source="locale"</a>
- </caption>
- <tr>
- <th>Root</th>
- <th>de</th>
- <th bgcolor="#C0C0C0">Resolved</th>
- </tr>
- <tr>
- <td><code><x><br>
- <a>1</a><br>
- <b>2</b><br>
- <c>3</c><br>
- <br>
- </x></code></td>
- <td><code><x><br>
- <a>11</a><br>
- <b>12</b><br>
- <br>
- <d>14</d><br>
- </x></code></td>
- <td bgcolor="#C0C0C0"><code><x><br>
- <a>11</a><br>
- <b>12</b><br>
- <span style=
- "background-color: #FFFF00"><span class=
- "inherited"><span style=
- "font-weight: 400;"><c>3</c></span></span></span><br>
-
- <d>14</d><br>
- </x></code></td>
- </tr>
- <tr>
- <td><code><y><br>
- <alias source="locale" path="../x"><br>
- </y></code></td>
- <td><code><y><br>
- <br>
- <b>22</b><br>
- <br>
- <br>
- <e>25</e><br>
- </y></code></td>
- <td bgcolor="#C0C0C0"><code><y><br>
- <span style=
- "background-color: #FFFF00"><span class=
- "inherited"><span style=
- "font-weight: 400;"><a>11</a></span></span></span><br>
-
- <b>22</b><br>
- <span style=
- "background-color: #FFFF00"><span class=
- "inherited"><span style=
- "font-weight: 400;"><c>3</c></span></span></span><br>
-
- <span style=
- "background-color: #FFFF00"><span class=
- "inherited"><span style=
- "font-weight: 400;"><d>14</d></span></span></span><br>
-
- <e>25</e><br>
- </y></code></td>
- </tr>
- </table>
- </center>
- </div>
- <p>The first row shows the inheritance within the <x>
- element, whereby <c> is inherited from root. The second
- shows the inheritance within the <y> element, whereby
- <a>, <c>, and <d> are inherited also from
- root, but from an alias there. The alias in root is logically
- replaced not by the elements in root itself, but by elements in
- the 'target' locale.</p>
- <p>For more details on data resolution, see <a href=
- "#Inheritance_and_Validity">Section 4.2 Inheritance and
- Validity</a>.</p>
- <p>Aliases must be resolved recursively. An alias may point to
- another path that results in another alias being found, and so
- on. For example, looking up Thai buddhist abbreviated months
- for the locale <strong>xx-YY</strong> may result in the
- following chain of aliases being followed:</p>
- <blockquote>
- <p>
- ../../calendar[@type="buddhist"]/months/monthContext[@type="format"]/monthWidth[@type="abbreviated"]</p>
- <p>xx-YY → xx → root // finds alias that changes path to:</p>
- <p>
- ../../calendar[@type="gregorian"]/months/monthContext[@type="format"]/monthWidth[@type="abbreviated"]</p>
- <p>xx-YY → xx → root // finds alias that changes path to:</p>
- <p>
- ../../calendar[@type="gregorian"]/months/monthContext[@type="format"]/monthWidth[@type="wide"]</p>
- <p>xx-YY → xx // finds value here</p>
- </blockquote>
- <p>It is an error to have a circular chain of aliases. That is,
- a collection of LDML XML documents must not have situations
- where a sequence of alias lookups (including inheritance and
- lateral inheritance) can be followed indefinitely without
- terminating.</p>
- <h4><a name="Element_displayName" href="#Element_displayName"
- id="Element_displayName">5.1.3 Element displayName</a></h4>
- <p>Many elements can have a display name. This is a translated
- name that can be presented to users when discussing the
- particular service. For example, a number format, used to
- format numbers using the conventions of that locale, can have
- translated name for presentation in GUIs.</p>
- <pre> <numberFormat>
- <displayName><span style=
-"color: blue">Prozentformat</span></displayName>
-...
- <numberFormat></pre>
- <p>Where present, the display names must be unique; that is,
- two distinct code would not get the same display name.
- (There is one exception to this: in time zones, where parsing
- results would give the same GMT offset, the standard and
- daylight display names can be the same across different time
- zone IDs.) Any translations should follow customary practice
- for the locale in question. For more information, see [<a href=
- "#DataFormats">Data Formats</a>].</p>
- <h4><a name="Escaping_Characters" href="#Escaping_Characters"
- id="Escaping_Characters">5.1.4 Escaping Characters</a></h4>
- <p>Unfortunately, XML does not have the capability to contain
- all Unicode code points. Due to this, in certain instances
- extra syntax is required to represent those code points that
- cannot be otherwise represented in element content. The
- escaping syntax is only defined on a few types of elements,
- such as in collation or exemplar sets, and uses the appropriate
- syntax for that type.</p>
- <p>The element <cp>, which was formerly used for this
- purpose, has been deprecated.</p>
- <h3><a name="Common_Attributes" href="#Common_Attributes" id=
- "Common_Attributes">5.2 Common Attributes</a></h3>
- <h4><a name="Attribute_type" href="#Attribute_type" id=
- "Attribute_type">5.2.1 Attribute type</a></h4>
- <p>The attribute <i>type</i> is also used to indicate an
- alternate resource that can be selected with a matching
- type=option in the locale id modifiers, or be referenced by a
- default element. For example:</p>
- <pre><ldml>
- ...
- <currencies>
- <currency><span style=
-"color: blue">...</span></currency>
- <currency type="<span style=
-"color: blue">preEuro</span>"><span style=
-"color: blue">...</span></currency>
- </currencies>
-</ldml></pre>
- <h4><a name="Attribute_draft" href="#Attribute_draft" id=
- "Attribute_draft">5.2.2 Attribute draft</a></h4>
- <p>If this attribute is present, it indicates the status of all
- the data in this element and any subelements (unless they have
- a contrary <i>draft</i> value), as per the following:</p>
- <ul>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">
- <i>approved:</i> fully approved by the technical committee
- (equals the CLDR 1.3 value of <i>false</i>, or an absent
- <i>draft</i> attribute). This does not mean that the data is
- guaranteed to be error-free—this is the best judgment of the
- committee.</li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">
- <i>contributed</i>: partially approved by the technical
- committee.</li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">
- <i>provisional</i>: partially confirmed. Implementations may
- choose to accept the provisional data, especially if there is
- no translated alternative.</li>
- <li style="margin-top: 0.5em; margin-bottom: 0.5em">
- <i>unconfirmed</i>: no confirmation available.</li>
- </ul>
- <p>For more information on precisely how these values are
- computed for any given release, see
- <a href=
- "http://cldr.unicode.org/index/process#TOC-Data--Submission-and-Vetting">
- Data Submission and Vetting Process</a> on the CLDR
- website.</p>
- <p>The draft attribute should only occur on "leaf" elements,
- and is deprecated elsewhere. For a more formal description of
- how elements are inherited, and what their draft status is, see
- <i><a href="#Inheritance_and_Validity">Section 4.2 Inheritance
- and Validity</a></i>.</p>
- <h4><a name="alt_attribute" href="#alt_attribute" id=
- "alt_attribute">5.2.3 Attribute alt</a></h4>
- <p>This attribute labels an alternative value for an element.
- The value is a <i>descriptor</i> indicates what kind of
- alternative it is, and takes one of the following</p>
- <ul>
- <li><i>variantname</i> meaning that the value is a variant of
- the normal value, and may be used in its place in certain
- circumstances. If a variant value is absent for a particular
- locale, the normal value is used. The variant mechanism
- should only be used when such a fallback is acceptable.</li>
- <li><span style="color: blue">proposed</span>, optionally
- followed by a number, indicating that the value is a proposed
- replacement for an existing value.</li>
- <li><i>variantname</i><span style=
- "color: blue">-proposed</span>, optionally followed by a
- number, indicating that the value is a proposed replacement
- variant value.</li>
- </ul>
- <p>"<span style="color: blue">proposed</span>" should only be
- present if the draft status is not "approved". It indicates
- that the data is proposed replacement data that has been added
- provisionally until the differences between it and the other
- data can be vetted. For example, suppose that the translation
- for September for some language is "Settembru", and a bug
- report is filed that that should be "Settembro". The new data
- can be entered in, but marked as <i>alt="proposed"</i> until it
- is vetted.</p>
- <pre>...
-<month type="9">Settembru</month>
-<month type="9" draft="unconfirmed" alt="proposed">Settembro</month>
-<month type="10">...</pre>
- <p>Now assume another bug report comes in, saying that the
- correct form is actually "Settembre". Another alternative can
- be added:</p>
- <pre>...
-<month type="9" draft="unconfirmed" alt="proposed2">Settembre</month>
-...</pre>
- <p>The values for <i>variantname</i> at this time include
- "<span style="color: blue">variant</span>", "<span style=
- "color: blue">list</span>", "<span style=
- "color: blue">email</span>", "<span style=
- "color: blue">www</span>", "<span class=
- "attributeValue">short</span>", and "<span style=
- "color: blue">secondary</span>".</p>
- <p>For a more complete description of how draft applies to
- data, see <i><a href="#Inheritance_and_Validity">Section 4.2
- Inheritance and Validity</a></i>.</p>
- <p class="element2">Attribute <a name="references_attribute"
- href="#references_attribute" id=
- "references_attribute">references</a></p>
- <p>The value of this attribute is a token representing a
- reference for the information in the element, including
- standards that it may conform to. <references>. (In older
- versions of CLDR, the value of the attribute was freeform text.
- That format is deprecated.)</p>
- <p><i>Example:</i></p>
- <p class="example"><territory type="UM"
- references="R222">USAs yttre öar</territory></p>
- <p>The reference element may be inherited. Thus, for example,
- R222 may be used in sv_SE.xml even though it is not defined
- there, if it is defined in sv.xml.</p>
- <p><... allow="verbatim" ...> (deprecated)</p>
- <p>This attribute was originally intended for use in marking
- display names whose capitalization differed from what was
- indicated by the now-deprecated <inText> element
- (perhaps, for example, because the names included a proper
- noun). It was never supported in the dtd and is not needed for
- use with the new <contextTransforms> element.</p>
- <h3><a name="Common_Structures" href="#Common_Structures" id=
- "Common_Structures">5.3 Common Structures</a></h3>
- <h4><a name="Date_Ranges" href="#Date_Ranges" id=
- "Date_Ranges">5.3.1 Date and Date Ranges</a></h4>
- <p>When attribute specify date ranges, it is usually done with
- attributes <i>from</i> and <i>to</i>. The <i>from</i> attribute
- specifies the starting point, and the <i>to</i> attribute
- specifies the end point. The deprecated <i>time</i> attribute
- was formerly used to specify time with the deprecated
- weekEndStart and weekEndEnd elements, which were themselves
- inherently <i>from</i> or <i>to</i>.</p>
- <p>The data format is a restricted ISO 8601 format, restricted
- to the fields <i>year, month, day, hour, minute,</i> and
- <i>second</i> in that order, with "-" used as a separator
- between date fields, a space used as the separator between the
- date and the time fields, and ":" used as a separator between
- the time fields. If the minute or minute and second are absent,
- they are interpreted as zero. If the hour is also missing, then
- it is interpreted based on whether the attribute is <i>from</i>
- or <i>to</i>.</p>
- <ul>
- <li>
- <p class="note"><i>from</i> defaults to "00:00:00"
- (midnight at the start of the day).</p>
- </li>
- <li>
- <p class="note"><i>to</i> defaults to "24:00:00" (midnight
- at the end of the day).</p>
- </li>
- </ul>
- <p class="note">That is, Friday at 24:00:00 is the same time as
- Saturday at 00:00:00. Thus when the hour is missing, the
- <i>from and to</i> are interpreted inclusively: the range
- includes all of the day mentioned.</p>
- <p class="note">For example, the following are equivalent:</p>
- <table style="margin-top: 0.5em; margin-bottom: 0.5em" id=
- "table25">
- <tr>
- <td><usesMetazone from="1991-10-27" to="2006-04-02"
- .../></td>
- </tr>
- <tr>
- <td><usesMetazone from="1991-10-27 00:00:00"
- to="2006-04-02 24:00:00" .../></td>
- </tr>
- <tr>
- <td><usesMetazone from="1991-10-<font color=
- "#FF0000"><b>26 24</b></font>:00:00"
- to="2006-04-<font color="#FF0000"><b>03
- 00</b></font>:00:00" .../></td>
- </tr>
- </table>
- <p>If the <i>from</i> element is missing, it is assumed to be
- as far backwards in time as there is data for; if the <i>to</i>
- element is missing, then it is from this point onwards, with no
- known end point.</p>
- <p>The dates and times are specified in local time, unless
- otherwise noted. (In particular, the metazone values are in UTC
- (also known as GMT).</p>
- <h4><a name="Text_Directionality" href="#Text_Directionality"
- id="Text_Directionality">5.3.2 Text Directionality</a></h4>
- <p>The content of certain elements, such as date or number
- formats, may consist of several sub-elements with an inherent
- order (for example, the year, month, and day for dates). In
- some cases, the order of these sub-elements may be changed
- depending on the bidirectional context in which the element is
- embedded.</p>
- <p>For example, short date formats in languages such as Arabic
- may contain neutral or weak characters at the beginning or end
- of the element content. In such a case, the overall order of
- the sub-elements may change depending on the surrounding
- text.</p>
- <p>Element content whose display may be affected in this way
- should include an explicit direction mark, such as U+200E
- LEFT-TO-RIGHT MARK or U+200F RIGHT-TO-LEFT MARK, at the
- beginning or end of the element content, or both.</p>
- <h4><a name="Unicode_Sets" href="#Unicode_Sets" id=
- "Unicode_Sets">5.3.3 Unicode Sets</a></h4>
- <p>Some attribute values or element contents use
- <em>UnicodeSet</em> notation. A UnicodeSet represents a finite
- set of Unicode code points and strings, and is defined by lists
- of code points and strings, Unicode property sets, and set
- operators, all bounded by square brackets. In this context, a
- code point means a string consisting of exactly one code
- point.</p>
- <p>A UnicodeSet implements the semantics in <i>UTS #18: Unicode
- Regular Expressions</i> [<a href=
- "https://www.unicode.org/reports/tr41/#UTS18">UTS18</a>] Levels
- 1 & 2 that are relevant to determining sets of characters.
- Note however that it may deviate from the syntax provided in
- [<a href=
- "https://www.unicode.org/reports/tr41/#UTS18">UTS18</a>], which
- is illustrative rather than a requirement. There is one
- exception to the supported semantics, Section <a href=
- "https://unicode.org/reports/tr18/#RL2.6">RL2.6</a>
- <em>Wildcards in Property Values</em>. That feature can be
- supported in clients such as ICU by implementing a “hook” as is
- done in the <a href=
- "https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5Cp%7Bname%3D%2FAPPLE%2F%7D">
- online UnicodeSet utilities</a>.</p>
- <p>A UnicodeSet may be cited in specifications outside of the
- domain of LDML. In such a case, the specification may specify a
- subset of the syntax provided here.</p>
- <p>The following provides EBNF syntax for a UnicodeSet:</p>
- <div align='center'>
- <table class='simple'>
- <tr>
- <th>Symbol</th>
- <th>Expression</th>
- <th>Examples</th>
- </tr>
- <tr>
- <th>root</th>
- <td><code>= prop<br>
- | '[-]'<br>
- | '[' [\-\^]? s seq+ ']'</code></td>
- <td>\p{x=y},<br>
- [abc]</td>
- </tr>
- <tr>
- <th>seq</th>
- <td><code>= root (s [\&\-] s root)* s<br>
- | range s</code></td>
- <td>[abc]-[cde], a<br></td>
- </tr>
- <tr>
- <th>range</th>
- <td><code>= char ('-' char)?<br>
- | '{' (s char)+ s '}'</code></td>
- <td>a, a-c, {abc}</td>
- </tr>
- <tr>
- <th>prop</th>
- <td><code>= '\' [pP] '{' propName ([≠=] s value1+)?
- '}'<br>
- | '[:' '^'? propName ([≠=] s value2+)? ':]'</code></td>
- <td>\p{x=y}, [:x=y:]<br></td>
- </tr>
- <tr>
- <th>propName</th>
- <td><code>= s [A-Za-z0-9] [A-Za-z0-9_\x20]* s</code></td>
- <td>General_Category,<br>
- General Category</td>
- </tr>
- <tr>
- <th>value1</th>
- <td><code>= [^\}]<br>
- | '\' quoted</code></td>
- <td>Lm,<br>
- \n,<br>
- \}</td>
- </tr>
- <tr>
- <th>value2</th>
- <td><code>= [^:]<br>
- | '\' quoted</code></td>
- <td>Lm,<br>
- \n,<br>
- \:</td>
- </tr>
- <tr>
- <th>char</th>
- <td><code>= [^\& \- \[ \[ \] \\ \} \{ [:Pat_WS:]]<br>
- | '\' quoted</code></td>
- <td>a, b, c, \n</td>
- </tr>
- <tr>
- <th>quoted</th>
- <td><code>= 'u' (hex{4} | bracketedHex)<br>
- | 'x' (hex{2} | bracketedHex)<br>
- | 'U00' ('0' hex{5} | '10' hex{4})<br>
- | 'N{' propName '}'<br>
- | [[\u0000-\U00010FFFF]-[uxUN]]</code></td>
- <td><em><strong>error</strong> if lengths not exact</em></td>
- </tr>
- <tr>
- <th>charName</th>
- <td><code>= s [A-Za-z0-9] [-A-Za-z0-9_\x20]* s</code></td>
- <td>TIBETAN LETTER -A</td>
- </tr>
- <tr>
- <th>bracketedHex</th>
- <td><code>= '{' s hexCodePoint (s hexCodePoint)* s
- '}'</code></td>
- <td>{61 2019 62}</td>
- </tr>
- <tr>
- <th>hexCodePoint</th>
- <td><code>= hex{1,5} | '10' hex{4}</code></td>
- <td> </td>
- </tr>
- <tr>
- <th>hex</th>
- <td><code>= [0-9A-Fa-f]</code></td>
- <td> </td>
- </tr>
- <tr>
- <th>s</th>
- <td><code>= [:Pattern_White_Space:]*</code></td>
- <td>optional whitespace</td>
- </tr>
- </table>
- </div>
- <p>Some constraints on UnicodeSet syntax are not captured by
- this EBNF. Notably, property names and values are restricted to
- those supported by the implementation, and have additional constraints imposed by
- [<a href="https://unicode.org/reports/tr41/#UAX44">UAX44</a>]. In addition, quoted
- values that resolve to more than one code point are disallowed in ranges of the form
- <code>char '-' char</code>.</p>
- <p>The syntax characters are listed in the table below:</p>
- <table>
- <tbody>
- <tr>
- <th>Char</th>
- <th>Hex</th>
- <th>Name</th>
- <th>Usage</th>
- </tr>
- <tr>
- <td>$</td>
- <td>U+0024</td>
- <td>DOLLAR SIGN</td>
- <td>Equivalent of \uFFFF (This is for implementations
- that return \uFFFF when accessing before the first or
- after the last character)</td>
- </tr>
- <tr>
- <td>&</td>
- <td>U+0026</td>
- <td>AMPERSAND</td>
- <td>Intersecting UnicodeSets</td>
- </tr>
- <tr>
- <td>-</td>
- <td>U+002D</td>
- <td>HYPHEN-MINUS</td>
- <td>Ranges of characters; also set difference.</td>
- </tr>
- <tr>
- <td>:</td>
- <td>U+003A</td>
- <td>COLON</td>
- <td>POSIX-style property syntax</td>
- </tr>
- <tr>
- <td>[</td>
- <td>U+005B</td>
- <td>LEFT SQUARE BRACKET</td>
- <td>Grouping; POSIX property syntax</td>
- </tr>
- <tr>
- <td>]</td>
- <td>U+005D</td>
- <td>RIGHT SQUARE BRACKET</td>
- <td>Grouping; POSIX property syntax</td>
- </tr>
- <tr>
- <td>\</td>
- <td>U+005C</td>
- <td>REVERSE SOLIDUS</td>
- <td>Escaping</td>
- </tr>
- <tr>
- <td>^</td>
- <td>U+005E</td>
- <td>CIRCUMFLEX ACCENT</td>
- <td>Posix negation syntax</td>
- </tr>
- <tr>
- <td>{</td>
- <td>U+007B</td>
- <td>LEFT CURLY BRACKET</td>
- <td>Strings in set; Perl property syntax</td>
- </tr>
- <tr>
- <td>}</td>
- <td>U+007D</td>
- <td>RIGHT CURLY BRACKET</td>
- <td>Strings in set; Perl property syntax</td>
- </tr>
- <tr>
- <td> </td>
- <td>U+0020 U+0009..U+000D U+0085<br>
- U+200E U+200F<br>
- U+2028 U+2029</td>
- <td>ASCII whitespace,<br>
- LRM, RLM,<br>
- LINE/PARAGRAPH SEPARATOR</td>
- <td>Ignored except when escaped</td>
- </tr>
- </tbody>
- </table><br>
- <h5><a href="#Lists_of_Code_Points" name="Lists_of_Code_Points"
- id="Lists_of_Code_Points">5.3.3.1 Lists of Code Points</a></h5>
- <p>Lists are a sequence of strings that may include ranges,
- which are indicated by a '-' between two code points, as in
- "a-z". The sequence <em>start-end</em> specifies the range of
- all code points from the start to end, inclusive, in Unicode
- order. For example, <b>[a c d-f m]</b> is equivalent to <b>[a c
- d e f m]</b>. Whitespace can be freely used for clarity, as
- <b>[a c d-f m]</b> means the same as <b>[acd-fm]</b>.</p>
- <p>A string with multiple code points is represented in a list
- by being surrounded by curly braces, such as in <strong>[a-z
- {ch}]</strong>. It can be used with the range notation, as
- described in <em>Section <a href="#String_Range">5.3.4 String
- Range</a></em> . There is an additional restriction on string
- ranges in a UnicodeSet: the number of codepoints in the first
- string of the range must be identical to the number in the
- second. Thus [{ab}-{c}] and [{ab}-c] are invalid.</p>
- <p>In UnicodeSets, there are two ways to quote syntax code
- points:</p>
- <p><a name="Backslash_Escapes" id=
- "Backslash_Escapes"></a>Outside of single quotes, certain
- backslashed code point sequences can be used to quote code
- points:</p>
- <table class='simple'>
- <tr>
- <td>\x{h...h}<br>
- \u{h...h}</td>
- <td>list of 1-6 hex digits ([0-9A-Fa-f]), separated by
- spaces</td>
- </tr>
- <tr>
- <td>\xhh</td>
- <td>2 hex digits</td>
- </tr>
- <tr>
- <td>\uhhhh</td>
- <td>Exactly 4 hex digits</td>
- </tr>
- <tr>
- <td>\Uhhhhhhhh</td>
- <td>Exactly 8 hex digits</td>
- </tr>
- <tr>
- <td>\a</td>
- <td>U+0007 (BEL / ALERT)</td>
- </tr>
- <tr>
- <td>\b</td>
- <td>U+0008 (BACKSPACE)</td>
- </tr>
- <tr>
- <td>\t</td>
- <td>U+0009 (TAB / CHARACTER TABULATION)</td>
- </tr>
- <tr>
- <td>\n</td>
- <td>U+000A (LINE FEED)</td>
- </tr>
- <tr>
- <td>\v</td>
- <td>U+000B (LINE TABULATION)</td>
- </tr>
- <tr>
- <td>\f</td>
- <td>U+000C (FORM FEED)</td>
- </tr>
- <tr>
- <td>\r</td>
- <td>U+000D (CARRIAGE RETURN)</td>
- </tr>
- <tr>
- <td>\\</td>
- <td>U+005C (BACKSLASH / REVERSE SOLIDUS)</td>
- </tr>
- <tr>
- <td>\N{name}</td>
- <td>The Unicode code point named "name".</td>
- </tr>
- <tr>
- <td>\p{…},\P{…}</td>
- <td>Unicode property (see below)</td>
- </tr>
- </table><br>
- <p>Anything else following a backslash is mapped to itself,
- except the property syntax described below, or in an
- environment where it is defined to have some special
- meaning.</p>
- <p>Any code point formed as the result of a backslash escape
- loses any special meaning and is treated as a literal. In
- particular, note that \x, \u and \U escapes create literal code
- points. (In contrast, Java treats Unicode escapes as just a way
- to represent arbitrary code points in an ASCII source file, and
- any resulting code points are <i><b>not</b></i> tagged as
- literals.)</p>
- <p>Unicode property sets are defined as described as described
- in <i>UTS #18: Unicode Regular Expressions</i> [<a href=
- "https://www.unicode.org/reports/tr41/#UTS18">UTS18</a>], Level
- 1 and RL2.5, including the syntax where given. For an example
- of a concrete implementation of this, see [<a href=
- "#ICUUnicodeSet">ICUUnicodeSet</a>].</p>
- <h5><a href="#Unicode_Properties" name="Unicode_Properties" id=
- "Unicode_Properties">5.3.3.2 Unicode Properties</a></h5>
- <p>Briefly, Unicode property sets are specified by any Unicode
- property and a value of that property, such as
- <b>[:General_Category=Letter:]</b>. for Unicode letters or
- <b>\p{uppercase}</b> is the set of upper case letters in
- Unicode. The property names are defined by the
- PropertyAliases.txt file and the property values by the
- PropertyValueAliases.txt file. For more information, see
- [<a href="https://unicode.org/reports/tr41/#UAX44">UAX44</a>].
- The syntax for specifying the property sets is an extension of
- either POSIX or Perl syntax, by the addition of
- "=<value>". For example, you can match letters by using
- the POSIX-style syntax:</p>
- <p><b>[:General_Category=Letter:]</b></p>
- <p>or by using the Perl-style syntax</p>
- <p><b>\p{General_Category=Letter}</b>.</p>
- <p>Property names and values are case-insensitive, and
- whitespace, "-", and "_" are ignored. The property name can be
- omitted for the <strong>General_Category</strong> and
- <strong>Script</strong> properties, but is required for other
- properties. If the property value is omitted, it is assumed to
- represent a boolean property with the value "true". Thus
- <b>[:Letter:]</b> is equivalent to
- <b>[:General_Category=Letter:]</b>, and <b>[:Wh-ite-s
- pa_ce:]</b> is equivalent to <b>[:Whitespace=true:]</b>.</p>
- <p>The table below shows the two kinds of syntax: POSIX and
- Perl style. Also, the table shows the "Negative" version, which
- is a property that excludes all code points of a given kind.
- For example, <b>[:^Letter:]</b> matches all code points that
- are not <b>[:Letter:]</b>.</p>
- <table>
- <tr>
- <th> </th>
- <th>Positive</th>
- <th>Negative</th>
- </tr>
- <tr>
- <td>POSIX-style Syntax</td>
- <td>[:type=value:]</td>
- <td>[:^type=value:]</td>
- </tr>
- <tr>
- <td>Perl-style Syntax</td>
- <td>\p{type=value}</td>
- <td>\P{type=value}</td>
- </tr>
- </table>
- <h5><a href="#Boolean_Operations" name="Boolean_Operations" id=
- "Boolean_Operations">5.3.3.3 Boolean Operations</a></h5>
- <p>The low-level lists or properties then can be freely
- combined with the normal set operations (union, inverse,
- difference, and intersection):</p>
- <ul>
- <li>To union two sets, simply concatenate them. For example,
- <b>[[:letter:] [:number:]]</b></li>
- <li>To intersect two sets, use the '&' operator. For
- example, <b>[[:letter:] & [a-z]]</b></li>
- <li>To take the set-difference of two sets, use the '-'
- operator. For example, <b>[[:letter:] - [a-z]]</b></li>
- <li>To invert a set, place a '^' immediately after the
- opening '['. For example, <b>[^a-z]</b>. In any other
- location, the '^' does not have a special meaning. The
- inversion [^X] is equivalent to [[\x{0}-\x{10FFFF}]-[X]].
- Thus multi-code point strings are discarded.</li>
- <li>Symmetric difference (~) is not supported.</li>
- </ul>
- <p>The binary operators '&', '-', and the implicit union
- have equal precedence and bind left-to-right. Thus
- <b>[[:letter:]-[a-z]-[\u0100-\u01FF]]</b> is equal to
- <b>[[[:letter:]-[a-z]]-[\u0100-\u01FF]]</b>. Another example is
- the set <b>[[ace][bdf] - [abc][def]]</b>, which is not the
- empty set, but instead equal to <b>[[[[ace] [bdf]] - [abc]]
- [def]]</b>, which equals <b>[[[abcdef] - [abc]] [def]]</b>,
- which equals <b>[[def] [def]]</b>, which equals
- <b>[def]</b>.</p>
- <p><strong>One caution:</strong> the '&' and '-' operators
- operate between sets. That is, they must be immediately
- preceded and immediately followed by a set. For example, the
- pattern <b>[[:Lu:]-A]</b> is illegal, since it is interpreted
- as the set <b>[:Lu:]</b> followed by the incomplete range
- <b>-A</b>. To specify the set of upper case letters except for
- 'A', enclose the 'A' in brackets: <b>[[:Lu:]-[A]]</b>.</p>
- <h5><a href="#UnicodeSet_Examples" name="UnicodeSet_Examples"
- id="UnicodeSet_Examples">5.3.3.4 UnicodeSet Examples</a></h5>
- <p>The following table summarizes the syntax that can be
- used.</p>
- <table style="margin-top: 0.5em; margin-bottom: 0.5em" id=
- "table18">
- <tr>
- <th>Example</th>
- <th>Description</th>
- </tr>
- <tr>
- <td nowrap>[a]</td>
- <td>The set containing 'a' alone</td>
- </tr>
- <tr>
- <td nowrap>[a-z]</td>
- <td>The set containing 'a' through 'z' and all letters in
- between, in Unicode order.<br>
- Thus it is the same as [\u0061-\u007A].</td>
- </tr>
- <tr>
- <td nowrap>[^a-z]</td>
- <td>The set containing all code points but 'a' through
- 'z'.<br>
- Thus it is the same as [\u0000-\u0060
- \u007B-\x{10FFFF}].</td>
- </tr>
- <tr>
- <td nowrap>[[pat1][pat2]]</td>
- <td>The union of sets specified by pat1 and pat2</td>
- </tr>
- <tr>
- <td nowrap>[[pat1]&[pat2]]</td>
- <td>The intersection of sets specified by pat1 and
- pat2</td>
- </tr>
- <tr>
- <td nowrap>[[pat1]-[pat2]]</td>
- <td>The asymmetric difference of sets specified by pat1 and
- pat2</td>
- </tr>
- <tr>
- <td nowrap>[a {ab} {ac}]</td>
- <td>The code point 'a' and the multi-code point strings
- "ab" and "ac"</td>
- </tr>
- <tr>
- <td nowrap>[x\u{61 2019 62}y]</td>
- <td>Equivalent to [x\u0061\u2019\u0062y] (= [xa’by])</td>
- </tr>
- <tr>
- <td nowrap>[{ax}-{bz}]</td>
- <td>The set containing [{ax} {ay} {az} {bx} {by} {bz}],
- using the range syntax to get all the strings from {ax} to
- {bz} as described in <em>Section <a href=
- "#String_Range">5.3.4 String Range</a></em>.</td>
- </tr>
- <tr>
- <td nowrap>[:Lu:]</td>
- <td>The set of code points with a given property value, as
- defined by PropertyValueAliases.txt. In this case, these
- are the Unicode upper case letters. The long form for this
- is <b>[:General_Category=Uppercase_Letter:]</b>.</td>
- </tr>
- <tr>
- <td nowrap>[:L:]</td>
- <td>The set of code points belonging to all Unicode
- categories starting with 'L', that is,
- <b>[[:Lu:][:Ll:][:Lt:][:Lm:][:Lo:]]</b>. The long form for
- this is <b>[:General_Category=Letter:]</b>.</td>
- </tr>
- </table><br>
- <h4><a name="String_Range" href="#String_Range" id=
- "String_Range">5.3.4 String Range</a></h4>
- <p>A String Range is a compact format for specifying a list of
- strings.</p>
- <p><strong>Syntax:<br></strong></p>
- <blockquote>
- <p>X <em>sep</em> Y<br></p>
- </blockquote>
- <p>The separator and the format of strings X, Y may vary
- depending on the domain. For example,</p>
- <ul>
- <li>for the validity files the separator is ~,</li>
- <li>for UnicodeSet the separator is -, and any
- multi-codepoint string is enclosed in {…}.</li>
- </ul>
- <p><strong>Validity: <br></strong></p>
- <blockquote>
- <p>A string range X <em>sep</em> Y is valid iff len(X) ≥
- len(Y) > 0, where len(X) is the length of X in code
- points.</p>
- <p><em>There may be additional, domain-specific requirements
- for validity of the expansion of the string range.</em></p>
- </blockquote>
- <p><strong>Interpretation:<br></strong></p>
- <ol>
- <li>Break X into P and S, where len(S) = len(Y)
- <ul>
- <li>Note that P will be an empty string if the lengths of
- X and Y are equal.</li>
- </ul>
- </li>
- <li>Form the combinations of all
- P+(s₀..y₀)+(s₁..y₁)+...(sₙ..yₙ)
- <ul>
- <li>s₀ is the first code point in S, etc.</li>
- </ul>
- </li>
- </ol>
- <p><strong>Examples:</strong></p>
- <table>
- <tbody>
- <tr>
- <td>ab-ad</td>
- <td>→</td>
- <td>ab ac ad</td>
- </tr>
- <tr>
- <td>ab-d</td>
- <td>→</td>
- <td>ab ac ad</td>
- </tr>
- <tr>
- <td>ab-cd</td>
- <td>→</td>
- <td>ab ac ad bb bc bd cb cc cd</td>
- </tr>
- <tr>
- <td>👦🏻-👦🏿</td>
- <td>→</td>
- <td>👦🏻 👦🏼 👦🏽 👦🏾 👦🏿</td>
- </tr>
- <tr>
- <td>👦🏻-🏿</td>
- <td>→</td>
- <td>👦🏻 👦🏼 👦🏽 👦🏾 👦🏿</td>
- </tr>
- </tbody>
- </table><br>
- <h3><a name="Identity_Elements" href="#Identity_Elements" id=
- "Identity_Elements">5.4 Identity Elements</a></h3>
- <p class="dtd"><!ELEMENT identity (alias | (version,
- generation?, language, script?, territory?, variant?, special*)
- ) ></p>
- <p>The identity element contains information identifying the
- target locale for this data, and general information about the
- version of this data.</p>
- <p class="element2"><version number="<u>$</u>Revision: 1.227
- <u>$</u>"></p>
- <p>The version element provides, in an attribute, the version
- of this file. The contents of the element can contain
- textual notes about the changes between this version and the
- last. For example:</p>
- <blockquote>
- <pre><version number="<span style=
- "color: blue">1.1</span>"><span style=
- "color: blue">Various notes and changes in version 1.1</span></version></pre>
- <p>This is not to be confused with the version attribute on
- the ldml element, which tracks the dtd version.</p>
- </blockquote>
- <p class="element2"><generation date="<u>$</u>Date:
- 2007/07/17 23:41:16 <u>$</u>" /></p>
- <p>The generation element is now deprecated. It was used to
- contain the last modified date for the data. This could be in
- two formats: ISO 8601 format, or CVS format (illustrated by the
- example above).</p>
- <p class="element2"><language type="<span style=
- "color: blue">en</span>"/></p>
- <p>The language code is the primary part of the specification
- of the locale id, with values as described above.</p>
- <p class="element2"><script type="<span style=
- "color: blue">Latn</span>" /></p>
- <p>The script code may be used in the identification of written
- languages, with values described above.</p>
- <p class="element2"><territory type="<span style=
- "color: blue">US</span>"/></p>
- <p>The territory code is a common part of the specification of
- the locale id, with values as described above.</p>
- <p class="element2"><variant type="<span class=
- "attributeValue">NYNORSK</span>"/></p>
- <p>The variant code is the tertiary part of the specification
- of the locale id, with values as described above.</p>
- <p>When combined according to the rules described in
- <i><a href="#Unicode_Language_and_Locale_Identifiers">Section
- 3, Unicode Language and Locale Identifiers</a></i>, the
- language element, along with any of the optional script,
- territory, and variant elements, must identify a known, stable
- locale identifier. Otherwise, it is an error.</p>
- <h3><a name="Valid_Attribute_Values" href=
- "#Valid_Attribute_Values" id="Valid_Attribute_Values">5.5 Valid
- Attribute Values</a></h3>
- <p>The <a href="#DTD_Annotations">DTD Annotations</a> in Section 5.7 are used to determine whether elements, attributes, or attribute values are valid (or deprecated).</p>
-
- <h3><a name="Canonical_Form" href="#Canonical_Form" id=
- "Canonical_Form">5.6 Canonical Form</a></h3>
- <p>The following are restrictions on the format of LDML files
- to allow for easier parsing and comparison of files.</p>
- <p>Peer elements have consistent order. That is, if the DTD or
- this specification requires the following order in an element
- <strong>foo</strong>:</p>
- <pre><foo>
- <pattern>
- <somethingElse>
-</foo></pre>
- <p>It can never require the reverse order in a different
- element <strong>bar</strong>.</p>
- <pre><bar>
- <somethingElse>
- <pattern>
-</bar></pre>
- <p>Note that there was one case that had to be corrected in
- order to make this true. For that reason, pattern occurs twice
- under currency:</p>
- <pre class="dtd">
- <!ELEMENT currency (alias | (pattern*, displayName?, symbol?, pattern*,
-decimal?, group?, special*)) ></pre>
- <p><a href="https://www.w3.org/TR/REC-xml/">XML</a> files can
- have a wide variation in textual form, while representing
- precisely the same data. By putting the LDML files in the
- repository into a canonical form, this allows us to use the
- simple diff tools used widely (and in CVS) to detect
- differences when vetting changes, without those tools being
- confused. This is not a requirement on other uses of LDML; just
- simply a way to manage repository data more easily.</p>
- <h4><a name="Content" href="#Content" id="Content">5.6.1
- Content</a></h4>
- <ol>
- <li>All start elements are on their own line, indented by
- <i>depth</i> tabs.</li>
- <li>All end elements (except for leaf nodes) are on their own
- line, indented by <i>depth</i> tabs.</li>
- <li>Any leaf node with empty content is in the form
- <foo/>.</li>
- <li>There are no blank lines except within comments or
- content.</li>
- <li>Spaces are used within a start element. There are no
- extra spaces within elements.
- <ul>
- <li><code><version number="1.2"/></code>, not
- <code><version number = "1.2" /></code></li>
- <li><code></identity></code>, not
- <code></identity ></code></li>
- </ul>
- </li>
- <li>All attribute values use double quote ("), not single
- (').</li>
- <li>There are no CDATA sections, and no escapes except those
- absolutely required.
- <ul>
- <li>no &apos; since it is not necessary</li>
- <li>no '&#x61;', it would be just 'a'</li>
- </ul>
- </li>
- <li>All attributes with defaulted values are suppressed.</li>
- <li>The draft and alt="proposed.*" attributes are only on
- leaf elements.</li>
- <li>The tzid are canonicalized in the following way:
- <ol>
- <li type="a">All tzids as of as CLDR 1.1 (2004.06.08) in
- zone.tab are canonical.</li>
- <li>After that point, the first time a tzid is
- introduced, that is the canonical form.</li>
- </ol>
- <p>That is, new IDs are added, but existing ones keep the
- original form. The <i>TZ</i> timezone database keeps a set
- of equivalences in the "backward" file. These are used to
- map other tzids to the canonical form. For example, when
- <code>America/Argentina/Catamarca</code> was introduced as
- the new name for the previous
- <code>America/Catamarca</code> , a link was added in the
- backward file.</p>
- <p><code>Link America/Argentina/Catamarca
- America/Catamarca</code></p>
- </li>
- </ol>
- <p><i>Example:</i></p>
- <pre><ldml draft="unconfirmed" >
- <identity>
- <version number="1.2"/>
- <language type="en"/>
- <territory type="AS"/>
- </identity>
- <numbers>
- <currencyFormats>
- <currencyFormatLength>
- <currencyFormat>
- <pattern>¤#,##0.00;(¤#,##0.00)</pattern>
- </currencyFormat>
- </currencyFormatLength>
- </currencyFormats>
- </numbers>
-</ldml></pre>
- <h4><a name="Ordering" href="#Ordering" id="Ordering">5.6.2
- Ordering</a></h4>
- <p>An element is ordered first by the element name, and then if
- the element names are identical, by the sorted set of
- attribute-value pairs. For the latter, compare the first pair
- in each (in sorted order by attribute pair). If not identical,
- go to the second pair, and so on.</p>
- <p>Elements and attributes are ordered according to their order
- in the respective DTDs. Attribute value comparison is a bit
- more complicated, and may depend on the attribute and type.
- This is currently done with specific ordering tables.</p>
- <p>Any future additions to the DTD must be structured so as to
- allow compatibility with this ordering. See also <a href=
- "#Valid_Attribute_Values">Section 5.5 Valid Attribute
- Values.</a></p>
- <h4><a name="Comments" href="#Comments" id="Comments">5.6.3
- Comments</a></h4>
- <ol>
- <li>Comments are of the form <!-- <i>stuff</i>
- -->.</li>
- <li>They are logically attached to a node. There are 4 kinds:
- <ol>
- <li>Inline always appear after a leaf node, on the same
- line at the end. These are a single line.</li>
- <li>Preblock comments always precede the attachment node,
- and are indented on the same level.</li>
- <li>Postblock comments always follow the attachment node,
- and are indented on the same level.</li>
- <li>Final comment, after </ldml></li>
- </ol>
- </li>
- <li>Multiline comments (except the final comment) have each
- line after the first indented to one deeper level.</li>
- </ol>
- <p><b>Examples:</b></p>
- <pre><eraAbbr>
- <era type="0">BC</era> <!-- might add alternate BDE in the future -->
-...
-<timeZoneNames>
- <!-- Note: zones that do not use daylight time need further work -->
- <zone type="America/Los_Angeles">
- ...
- <!-- Note: the following is known to be sparse,
- and needs to be improved in the future -->
- <zone type="Asia/Jerusalem"></pre>
- <h3><a name="DTD_Annotations" href="#DTD_Annotations" id=
- "DTD_Annotations">5.7 DTD Annotations</a></h3>
- <p>The information in a standard DTD is insufficient for use in
- CLDR. To make up for that, DTD annotations are added. These are
- of the form<br>
- <!--@...--><br>
- and are included below the !ELEMENT or !ATTLIST line that they
- apply to. The current annotations are:</p>
- <table>
- <tr>
- <th>Type</th>
- <th>Description</th>
- </tr>
- <tr>
- <td><!--@VALUE--></td>
- <td>The attribute is not distinguishing, and is treated
- like an element value</td>
- </tr>
- <tr>
- <td><!--@METADATA--></td>
- <td>The attribute is a “comment” on the data, like the
- draft status. It is not typically used in
- implementations.</td>
- </tr>
- <tr>
- <td><!--@ORDERED--></td>
- <td>The element's children are ordered, and do not
- inherit.</td>
- </tr>
- <tr>
- <td><!--@DEPRECATED--></td>
- <td>The element or attribute is deprecated, and should not
- be used.</td>
- </tr>
- <tr>
- <td><!--@DEPRECATED: attribute-value1,
- attribute-value2--></td>
- <td>The attribute values are deprecated, and should not be
- used. Spaces between tokens are not significant.</td>
- </tr>
- <tr>
- <td><!--@MATCH:{attribute value constraint}--></td>
- <td>Requires the attribute value to match the constraint.</td>
- </tr>
- </table>
- <p>There is additional information in the
- attributeValueValidity.xml file that is used internally for
- testing. For example, the following line indicates that the
- 'currency' element in the ldml dtd must have values from the
- bcp47 'cu' type.</p>
- <p class='example'><attributeValues dtds='ldml'
- elements='currency'
- attributes='type'>$_bcp47_cu</attributeValues></p>
- <p>The element values may be literals, regular expressions, or
- variables (some of which are set programmatically according to
- other CLDR data, such as the above. However, the information as
- this point does not cover all attribute values, is used only
- for testing, and should not be used in implementations since
- the structure may change without notice.</p>
- <h4>5.7.1<a href="#match_expressions" name="match_expressions">Attribute Value Constraints</a></h4>
- <p>The following are constraints on the attribute values. Note: in future versions, the format may change, and/or the constaints may be tightened.</p>
- <table class='simple'>
- <tbody>
- <tr>
- <th>Constraint</th>
- <th colspan="2">Comments</th>
- </tr>
- <tr>
- <td>any</td>
- <td colspan="2">any string value</td>
- </tr>
- <tr>
- <td>any/TODO</td>
- <td colspan="2">placeholder for future constraints</td>
- </tr>
- <tr>
- <td>bcp47/anykey</td>
- <td colspan="2">any bcp47 key or tkey</td>
- </tr>
- <tr>
- <td>bcp47/anyvalue</td>
- <td colspan="2">any bcp47 value (type) or tvalue</td>
- </tr>
- <tr>
- <td>literal/{literal values}</td>
- <td colspan="2">comma separated</td>
- </tr>
- <tr>
- <td>regex/{regex expression}</td>
- <td colspan="2">valid regex expression</td>
- </tr>
- <tr>
- <td>bcp47/{key or tkey}</td>
- <td colspan="2">matches possible values for that key or tkey</td>
- </tr>
- <tr>
- <td>metazone</td>
- <td colspan="2">valid metazone</td>
- </tr>
- <tr>
- <td>range/{start_number~{end_number}}</td>
- <td colspan="2">number between (inclusive) start and end</td>
- </tr>
- <tr>
- <td>time/{time or date or date-time pattern}</td>
- <td colspan="2">eg HH:mm</td>
- </tr>
- <tr>
- <td>unicodeset/{unicodeset pattern}</td>
- <td colspan="2">valid unicodeset</td>
- </tr>
- <tr>
- <td rowspan="4">validity/{field}</td>
- <td colspan="2">currency, language, locale, region, script, subdivision, short-unit, unit, variant</td>
- </tr>
- <tr>
- <td colspan="2">The field can be qualified by particular enums, such as:</td>
- </tr>
- <tr>
- <td>validity/unit/regular deprecated</td>
- <td>matches only <em>deprecated</em> and <em>regular</em></td>
- </tr>
- <tr>
- <td>validity/unit/!deprecated</td>
- <td>matches all but <em>deprecated</em></td>
- </tr>
- <tr>
- <td>version</td>
- <td colspan="2">1 to 4 digit field version, such as 35.3.9</td>
- </tr>
- <tr>
- <td>set/{match}</td>
- <td colspan="2">set of elements that match {match}</td>
- </tr>
- <tr>
- <td>or/{match1}XX{match2}…</td>
- <td colspan="2">matches at least one of {match1}, etc</td>
- </tr>
- </tbody>
- </table><br>
- <h2><a name="Property_Data" href="#Property_Data" id=
- "Property_Data">6 Property Data</a></h2>
- <p>Some data in CLDR does not use an XML format, but rather a
- semicolon-delimited format derived from that of the Unicode
- Character Database. That is because the data is more likely to
- be parsed by implementations that already parse UCD data. Those
- files are present in the common/properties directory.</p>
- <p>Each file has a header that explains the format and usage of
- the data.</p>
- <h3><a name="Script_Metadata" href="#Script_Metadata" id=
- "Script_Metadata">6.1 Script Metadata</a></h3>
- <p><code>scriptMetadata.txt</code></p>
- <p>This file provides general information about scripts that
- may be useful to implementations processing text. The
- information is the best currently available, and may change
- between versions of CLDR. The format is similar to Unicode
- Character Database property file, and is documented in the
- header of the data file.</p>
- <h3><a name="Extended_Pictographic" href=
- "#Extended_Pictographic" id="Extended_Pictographic">6.2
- Extended Pictographic</a></h3>
- <p><code>ExtendedPictographic.txt</code></p>
- <p>This file was used to define the ExtendedPictographic data
- used for “future-proofing” emoji behavior, especially in
- segmentation. As of Emoji version 11.0, the set of
- Extended_Pictographic is incorporated into the emoji data files
- found at <a href=
- "https://unicode.org/Public/emoji/">unicode.org/Public/emoji/</a>.</p>
- <h3><a name="Labels.txt" href="#Labels.txt" id="Labels.txt">6.3
- Labels.txt</a></h3>
- <p><code>labels.txt</code></p>
- <p>This file provides general information about associations of
- labels to characters that may be useful to implementations of
- character-picking applications. The information is the best
- currently available, and may change between versions of CLDR.
- The format is similar to Unicode Character Database property
- file, and is documented in the header of the data file.</p>
- <p>Initially, the contents are focused on emoji, but may be
- expanded in the future to other types of characters. Note that
- a character may have multiple labels.</p>
- <h3><a name="Segmentation_Tests" href="#Segmentation_Tests">6.4
- Segmentation Tests</a></h3>
- <p>CLDR provides a tailoring to the <a href="https://unicode.org/reports/tr29/">Grapheme Cluster Break (gcb)</a> algorithm to avoid splitting Indic aksaras. The corresponding test files for that are located in common/properties/segments/, along with a readme.txt that provides more details. There are also specific test files for the supported Indic scripts in the unittest directory.</p>
- <h2><a name="Format_Parse_Issues" href="#Format_Parse_Issues"
- id="Format_Parse_Issues">7 Issues in Formatting and
- Parsing</a></h2>
- <h3><a name="Lenient_Parsing" href="#Lenient_Parsing" id=
- "Lenient_Parsing">7.1 Lenient Parsing</a></h3>
- <h4><a name="Motivation" href="#Motivation" id=
- "Motivation">7.1.1 Motivation</a></h4>
- <p>User input is frequently messy. Attempting to parse it by
- matching it exactly against a pattern is likely to be
- unsuccessful, even when the meaning of the input is clear to a
- human being. For example, for a date pattern of "MM/dd/yy", the
- input "June 1, 2006" will fail.</p>
- <p>The goal of lenient parsing is to accept user input whenever
- it is possible to decipher what the user intended. Doing so
- requires using patterns as data to guide the parsing process,
- rather than an exact template that must be matched. This
- informative section suggests some heuristics that may be useful
- for lenient parsing of dates, times, and numbers.</p>
- <h4><a name="Loose_Matching" href="#Loose_Matching" id=
- "Loose_Matching">7.1.2 Loose Matching</a></h4>
- <p>Loose matching ignores attributes of the strings being
- compared that are not important to matching. It involves the
- following steps:</p>
- <ul>
- <li>Remove "." from currency symbols and other fields used
- for matching, and also from the input string unless:
- <ul>
- <li>"." is in the decimal set, and</li>
- <li>its position in the input string is immediately
- before a decimal digit</li>
- </ul>
- </li>
- <li>Ignore all format characters: in particular, ignore any
- RLM, LRM or ALM used to control BIDI formatting.</li>
- <li>Ignore all characters in [:Zs:] unless they occur between
- letters. (In the heuristics below, even those between letters
- are ignored except to delimit fields)</li>
- <li>Map all characters in [:Dash:] to U+002D
- HYPHEN-MINUS</li>
- <li>Use the data in the <character-fallback> element to
- map equivalent characters (for example, curly to straight
- apostrophes). Other apostrophe-like characters should also be
- treated as equivalent, especially if the character actually
- used in a format may be unavailable on some keyboards. For
- example:
- <ul>
- <li>U+02BB MODIFIER LETTER TURNED COMMA (ʻ) might be
- typed instead as U+2018 LEFT SINGLE QUOTATION MARK
- (‘).</li>
- <li>U+02BC MODIFIER LETTER APOSTROPHE (ʼ) might be typed
- instead as U+2019 RIGHT SINGLE QUOTATION MARK (’), U+0027
- APOSTROPHE, etc.</li>
- <li>U+05F3 HEBREW PUNCTUATION GERESH (׳) might be typed
- instead as U+0027 APOSTROPHE.</li>
- </ul>
- </li>
- <li>Apply mappings particular to the domain (i.e., for dates
- or for numbers, discussed in more detail below)</li>
- <li>Apply case folding (possibly including language-specific
- mappings such as Turkish i)</li>
- <li>Normalize to NFKC; thus <i>no-break space</i> will map to
- <i>space</i>; half-width <i>katakana</i> will map to
- full-width.</li>
- </ul>
- <p>Loose matching involves (logically) applying the above
- transform to both the input text and to each of the field
- elements used in matching, before applying the specific
- heuristics below. For example, if the input number text is " -
- NA f. 1,000.00", then it is mapped to "-naf1,000.00" before
- processing. The currency signs are also transformed, so "NA f."
- is converted to "naf" for purposes of matching. As with other
- Unicode algorithms, this is a logical statement of the process;
- actual implementations can optimize, such as by applying the
- transform incrementally during matching.</p>
- <h3><a name="Invalid_Patterns" href="#Invalid_Patterns" id=
- "Invalid_Patterns">7.2 Handling Invalid Patterns</a></h3>
- <p>Processes sometimes encounter invalid number or date
- patterns, such as a number pattern with “¤¤¤¤¤” (valid pattern
- character but invalid length in current CLDR), a date pattern
- with “nn” (invalid pattern character in current CLDR), or a
- date pattern with “MMMMMM” (invalid length in current CLDR).
- The recommended behavior for handling such an invalid pattern
- field is:</p>
- <ul>
- <li>For a field using a currently-invalid length for a valid
- pattern character:
- <ul>
- <li>In <strong>formatting,</strong> emit U+FFFD
- REPLACEMENT CHARACTER for the invalid field.</li>
- <li>In <strong>parsing,</strong> the field may be parsed
- as if it had a valid length.</li>
- </ul>
- </li>
- <li>For a pattern that contains a currently-invalid pattern
- character (applies only to date patterns, for which A-Za-z
- are reserved as pattern characters but not all defined as
- valid):
- <ul>
- <li>Produce an error (set an error code or throw an
- exception) when an attempt is made to create a formatter
- with such a pattern or to apply such a pattern to an
- existing formatter.</li>
- </ul>
- </li>
- </ul>
- <h2><a name="Deprecated_Structure" href="#Deprecated_Structure"
- id="Deprecated_Structure">Annex A Deprecated Structure</a></h2>
- <p>The <a href="#DTD_Annotations">DTD Annotations</a> in Section 5.7 are used to determine whether elements, attributes, or attribute values are deprecated.</p>
- <p>While valid LDML, they are strongly
- discouraged, and no longer used in CLDR.</p>
- <p>The remainder of this section describes selected cases of
- deprecated structure that were present in previous versions of
- CLDR.</p>
- <h3><a name="Fallback_Elements" href="#Fallback_Elements" id=
- "Fallback_Elements">A.1 Element fallback</a></h3>
- <p class="dtd"><!ELEMENT fallback (#PCDATA) ></p>
- <p>The fallback element is deprecated. Implementations should
- use instead the information in <em><a href=
- "#LanguageMatching">Section 4.4 Language Matching</a></em> for
- doing language fallback.</p>
- <h3><a name="BCP47_Keyword_Mapping" href=
- "#BCP47_Keyword_Mapping" id="BCP47_Keyword_Mapping">A.2 BCP 47
- Keyword Mapping</a></h3>
- <p><b>Note:</b> <i>This structure is deprecated and replaced
- with <a href="#Unicode_Locale_Extension_Data_Files">Section
- 3.6.4 U Extension Data Files</a>.</i></p>
- <p class="dtd"><!ELEMENT bcp47KeywordMappings ( mapKeys?,
- mapTypes* ) ><br>
- <!ELEMENT mapKeys ( keyMap* ) ><br>
- <!ELEMENT keyMap EMPTY ><br>
- <!ATTLIST keyMap type NMTOKEN #REQUIRED ><br>
- <!ATTLIST keyMap bcp47 NMTOKEN #REQUIRED ><br>
- <!ELEMENT mapTypes ( typeMap* ) ><br>
- <!ATTLIST mapTypes type NMTOKEN #REQUIRED ><br>
- <!ELEMENT typeMap EMPTY ><br>
- <!ATTLIST typeMap type CDATA #REQUIRED ><br>
- <!ATTLIST typeMap bcp47 NMTOKEN #REQUIRED ><br></p>
- <p>This section defines mappings between old Unicode locale
- identifier key/type values and their BCP 47 'u' extension
- subtag representations. The 'u' extension syntax described in
- <a href="#u_Extension">Section 3.6 Unicode BCP 47 U
- Extension</a> restricts a key to two ASCII alphanumerics and a
- type to three to eight ASCII alphanumerics. A key or a type
- which does not meet that syntax requirement is converted
- according to the mapping data defined by the mapKeys or
- mapTypes elements. For example, a keyword "collation=phonebook"
- is converted to BCP 47 'u' extension subtags "co-phonebk" by
- the mapping data below:</p>
- <pre> <mapKeys>
- ...
- <keyMap type="collation" bcp47="co"/>
- ...
- </mapKeys>
- <mapTypes type="collation">
- ...
- <typeMap type="phonebook" bcp47="phonebk"/>
- ...
- </mapTypes>
- </pre>
- <h3><a name="Choice_Patterns" href="#Choice_Patterns" id=
- "Choice_Patterns">A.3 Choice Patterns</a></h3>
- <p><b>Note:</b> <i>This structure is deprecated and replaced
- with count attributes.</i></p>
- <p>A choice pattern is a string that chooses among a number of
- strings, based on numeric value. It has the following form:</p>
- <p><choice_pattern> = <choice> ( '|' <choice>
- )*<br>
- <choice> =
- <number><relation><string><br>
- <number> = ('+' | '-')? (<font size="3">'∞' | [0-9]+ ('.'
- [0-9]+)?)<br>
- <relation> = '<' | '</font> <span style=
- "color: blue">≤'</span></p>
- <p>The interpretation of a choice pattern is that given a
- number N, the pattern is scanned from right to left, for each
- choice evaluating <number> <relation> N. The first
- choice that matches results in the corresponding string. If no
- match is found, then the first string is used. For example:</p>
- <table border="1" cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%">Pattern</td>
- <td width="33%">N</td>
- <td width="34%">Result</td>
- </tr>
- <tr>
- <td width="33%" rowspan="4">0≤Rf|1≤Ru|1<Re</td>
- <td width="33%">-<font size="3">∞,</font> -3, -1,
- -0.000001</td>
- <td width="34%">Rf (defaulted to first string)</td>
- </tr>
- <tr>
- <td width="33%">0, 0.01, 0.9999</td>
- <td width="34%">Rf</td>
- </tr>
- <tr>
- <td width="33%">1</td>
- <td width="34%">Ru</td>
- </tr>
- <tr>
- <td width="33%">1.00001, 5, 99, <font size=
- "3">∞</font></td>
- <td width="34%">Re</td>
- </tr>
- </table>
- <p>Quoting is done using ' characters, as in date or number
- formats.</p>
- <h3><a name="Element_default" href="#Element_default" id=
- "Element_default">A.4 Element default</a></h3>
- <p><b>Note:</b> <i>This structure is deprecated.</i> Use
- replacement structure instead, for example:</p>
- <ul>
- <li>For <collations>, now use the
- <defaultCollation> element.</li>
- <li>For <calendars>, the default calendar type for a
- locale is now specified by <i><a href=
- "tr35-dates.html#Calendar_Preference_Data">Calendar
- Preference Data</a></i>.</li>
- </ul>
- <p>In some cases, a number of elements are present. The default
- element can be used to indicate which of them is the default,
- in the absence of other information. The value of the choice
- attribute is to match the value of the type attribute for the
- selected item.</p>
- <pre><timeFormats>
- <default choice="<span style="color: red">medium</span>" />
- <timeFormatLength type="<span style=
-"color: blue">full</span>">
- <timeFormat type="<span style=
-"color: blue">standard</span>">
- <pattern type="<span style=
-"color: blue">standard</span>"><span style=
-"color: blue">h:mm:ss a z</span></pattern>
- </timeFormat>
- </timeFormatLength>
- <timeFormatLength type="<span style=
-"color: blue">long</span>">
- <timeFormat type="<span style=
-"color: blue">standard</span>">
- <pattern type="<span style=
-"color: blue">standard</span>"><span style=
-"color: blue">h:mm:ss a z</span></pattern>
- </timeFormat>
- </timeFormatLength>
- <timeFormatLength type="<span style=
-"color: red">medium</span>">
- <timeFormat type="<span style=
-"color: blue">standard</span>">
- <pattern type="<span style=
-"color: blue">standard</span>"><span style=
-"color: blue">h:mm:ss a</span></pattern>
- </timeFormat>
- </timeFormatLength>
-...</pre>
- <p>Like all other elements, the <default> element is
- inherited. Thus, it can also refer to inherited resources. For
- example, suppose that the above resources are present in fr,
- and that in fr_BE we have the following:</p>
- <pre><timeFormats>
- <default choice="<span style="color: red">long</span>"/>
-</timeFormats></pre>
- <p>In that case, the default time format for fr_BE would be the
- inherited "long" resource from fr. Now suppose that we had in
- fr_CA:</p>
- <pre> <timeFormatLength type="<span style=
- "color: red">medium</span>">
- <timeFormat type="<span style=
-"color: blue">standard</span>">
- <pattern type="<span style=
-"color: blue">standard</span>"><span style=
-"color: blue">...</span></pattern>
- </timeFormat>
- </timeFormatLength>
- </pre>
- <p>In this case, the <default> is inherited from fr, and
- has the value "medium". It thus refers to this new "medium"
- pattern in this resource bundle.</p>
- <h3><a name="Deprecated_Common_Attributes" href=
- "#Deprecated_Common_Attributes" id=
- "Deprecated_Common_Attributes">A.5 Deprecated Common
- Attributes</a></h3>
- <h4><a name="Attribute_standard" href="#Attribute_standard" id=
- "Attribute_standard">A.5.1 Attribute standard</a></h4>
- <p class="element2"><b>Note:</b> This attribute is deprecated.
- Instead, use a reference element with the attribute
- standard="true".</p>
- <p>The value of this attribute is a list of strings
- representing standards: international, national, organization,
- or vendor standards. The presence of this attribute indicates
- that the data in this element is compliant with the indicated
- standards. Where possible, for uniqueness, the string should be
- a URL that represents that standard. The strings are separated
- by commas; leading or trailing spaces on each string are not
- significant. Examples:</p>
- <p><code><collation standard="<span style="color: blue">MSA
- 200:2002</span>"><br>
- ...<br>
- <dateFormatStyle
- standard=”https://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=26780&amp;ICS1=1&amp;ICS2=140&amp;ICS3=30”></code></p>
- <h4><a name="Attribute_draft_nonLeaf" href=
- "#Attribute_draft_nonLeaf" id="Attribute_draft_nonLeaf">A.5.2
- Attribute draft in non-leaf elements</a></h4>
- <p>The draft attribute is deprecated except in leaf elements
- (elements that do not have any subelements)</p>
- <h3><a name="Element_base" href="#Element_base" id=
- "Element_base">A.6 Element base</a></h3>
- <p><b>Note:</b> <i>This element is deprecated.</i> Use the
- collation <import> element instead.</p>
- <p>The optional base element <code><base><span style=
- "color: blue">...</span></base></code> , contains an
- alias element that points to another data source that defines a
- <i>base</i> collation. If present, it indicates that the
- settings and rules in the collation are modifications applied
- on <i>top of the</i> respective elements in the base collation.
- That is, any successive settings, where present, override what
- is in the base as described in <a href=
- "tr35-collation.html#Setting_Options">Setting Options</a>. Any
- successive rules are concatenated to the end of the rules in
- the base. The results of multiple rules applying to the same
- characters is covered in <a href=
- "tr35-collation.html#Orderings">Orderings</a>.</p>
- <h3><a name="Element_rules" href="#Element_rules" id=
- "Element_rules">A.7 Element rules</a></h3>
- <p><b>Note:</b> <i>The XML collation syntax is deprecated; this
- includes the <rules> element and its subelements, except
- that the <import> element has been moved up to be a
- subelement of <collation>.</i> Use the basic collation
- syntax with the <a href="tr35-collation.html#Rules"><cr>
- element</a> instead.</p>
- <p class="dtd"><!ELEMENT rules (alias | ( ( reset | import
- ), ( reset | import | p | pc | s | sc | t | tc | i | ic | x)*
- )) ></p>
- <h3><a name="Deprecated_subelements_of_dates" href=
- "#Deprecated_subelements_of_dates" id=
- "Deprecated_subelements_of_dates">A.8 Deprecated subelements of
- <dates></a></h3>
- <ul>
- <li><localizedPatternChars></li>
- <li><dateRangePattern>, replaced by
- <intervalFormats>.</li>
- </ul>
- <h3><a name="Deprecated_subelements_of_calendars" href=
- "#Deprecated_subelements_of_calendars" id=
- "Deprecated_subelements_of_calendars">A.9 Deprecated
- subelements of <calendars></a></h3>
- <ul>
- <li><monthNames> and <monthAbbr>; month name
- forms are specified in the <months> element. The older
- monthNames, monthAbbr are equivalent to: using the months
- element with the context type="<span style=
- "color: blue">format</span>" and the width type="<span style=
- "color: blue">wide</span>" (for ...Names) and
- type="<span style="color: blue">narrow</span>" (for ...Abbr),
- respectively.</li>
- <li><dayNames> and <dayAbbr>; weekday name forms
- are specified in the <days> element. The older
- dayNames, dayAbbr are equivalent to: using the days element
- with the context type="<span style=
- "color: blue">format</span>" and the width type="<span style=
- "color: blue">wide</span>" (for ...Names) and
- type="<span style="color: blue">narrow</span>" (for ...Abbr),
- respectively.</li>
- <li><a name="week" href="#week" id="week"><week></a> is
- deprecated in the main LDML files, because the data is more
- appropriately organized as connected to territories, not to
- linguistic data. Use the supplemental <weekData>
- element instead.</li>
- <li><am> and <pm>; these are now included as part
- of the <dayPeriods> element</li>
- <li><fields> is deprecated as a subelement of
- <calendars> instead, a <fields> element should be
- located just under a <dates> element. See <a href=
- "tr35-dates.html#Calendar_Fields">Calendar Fields</a>.</li>
- </ul>
- <h3><a name="Deprecated_subelements_of_timeZoneNames" href=
- "#Deprecated_subelements_of_timeZoneNames" id=
- "Deprecated_subelements_of_timeZoneNames">A.10 Deprecated
- subelements of <timeZoneNames></a></h3>
- <ul>
- <li><hoursFormat> e.g. "{0}/{1}" for "-0800/-0700"</li>
- <li><a name="fallbackRegionFormat" href=
- "#fallbackRegionFormat" id=
- "fallbackRegionFormat"><fallbackRegionFormat></a>
- (deprecated), e.g. "{0} Time ({1})" for "United States
- Time (New York)"</li>
- <li><abbreviationFallback></li>
- <li><preferenceOrdering>, a preference ordering among
- modern zones; use metazones instead.</li>
- <li><singleCountries>, use <a href=
- "tr35-dates.html#Primary_Zones">Primary Zones</a></li>
- </ul>
- <h3><a name="Deprecated_subelements_of_zone_metazone" href=
- "#Deprecated_subelements_of_zone_metazone" id=
- "Deprecated_subelements_of_zone_metazone">A.11 Deprecated
- subelements of <zone> and <metazone></a></h3>
- <ul>
- <li><commonlyUsed>, formerly used to indicate whether a
- zone was commonly used in the locale.</li>
- </ul>
- <h3><a name=
- "Renamed_attribute_values_for_contextTransformUsage" href=
- "#Renamed_attribute_values_for_contextTransformUsage" id=
- "Renamed_attribute_values_for_contextTransformUsage">A.12
- Renamed attribute values for <contextTransformUsage>
- element</a></h3>
- <p>The <contextTransformUsage> element was introduced in
- CLDR 21. The values for its <em>type</em> attribute are
- documented in <a href=
- "tr35-general.html#contextTransformUsage_type_attribute_values">
- <contextTransformUsage> type attribute values</a>. In
- CLDR 25, some of these values were renamed from their previous
- values for improved clarity:</p>
- <ul>
- <li>"type" was renamed to "keyValue"</li>
- <li>"displayName" was renamed to "currencyName"</li>
- <li>"displayName-count" was renamed to
- "currencyName-count"</li>
- <li>"tense" was renamed to "relative"</li>
- </ul>
- <h3><a name="Deprecated_subelements_of_segmentations" href=
- "#Deprecated_subelements_of_segmentations" id=
- "Deprecated_subelements_of_segmentations">A.13 Deprecated
- subelements of <segmentations></a></h3>
- <ul>
- <li><exceptions> and <exceptions> were deprecated
- and replaced with <suppressions> and
- <suppression>.</li>
- </ul>
- <h3><a name="Element_cp" href="#Element_cp" id=
- "Element_cp">A.14 Element cp</a></h3>
- <p>The cp element was used to escape characters that cannot be
- represented in XML, even with NCRs. These escapes were only
- allowed in certain elements, according to the DTD.</p>
- <p>However, this mechanism is very clumsy, and was replaced by
- specialized syntax.</p>
- <table>
- <tr>
- <th>Code Point</th>
- <th>XML Example</th>
- </tr>
- <tr>
- <td><code>U+0000</code></td>
- <td><code><cp hex="0"></code></td>
- </tr>
- </table>
- <p> </p>
- <h3><a name="validSubLocales" href="#validSubLocales" id=
- "validSubLocales">A.15 Attribute validSubLocales</a></h3>
- <p>The attribute <i>validSubLocales</i> allowed sublocales in a
- given tree to be treated as though a file for them were present
- when there was not one. It only had an effect for locales that
- inherit from the current file where a file is missing.</p>
- <p><b>Example 1.</b> Suppose that in a particular LDML tree,
- there are no region locales for German, for example, there is a
- de.xml file, but no files for de_AT.xml, de_CH.xml, or
- de_DE.xml. Then no elements are valid for any of those region
- locales. If we want to mark one of those files as having valid
- elements, then we introduce an empty file, such as the
- following.</p>
- <p><code><ldml version="1.1"><br>
- <identity><br>
- <version number="1.1" /><br>
- <language type="de" /><br>
- <territory type="AT" /><br>
- </identity><br>
- </ldml></code></p>
- <p>With the <i>validSubLocales</i> attribute, instead of adding
- the empty files for de_AT.xml, de_CH.xml, and de_DE.xml, in the
- de file we could add to the parent locale a list of the child
- locales that should behave as if files were present.</p>
- <p><code><ldml version="1.1" validSubLocales="de_AT de_CH
- de_DE"><br>
- <identity><br>
- <version number="1.1" /><br>
- <language type="de" /><br>
- </identity><br>
- ...<br>
- </ldml></code></p>
- <p>Now that the <i>validSubLocales</i> attribute has been
- deprecated, it is recommended to simply add empty files to
- specify which sublocales are valid. This convention is used
- throughout the CLDR.</p>
- <h3><a name="postCodeElements" href="#postCodeElements" id=
- "postCodeElements">A.16 Elements postalCodeData,
- postCodeRegex</a></h3>
- <p>The postal code validation data has been deprecated. Please
- see other services that are kept up to date, such as:</p>
- <ul>
- <li><a href=
- "https://i18napis.appspot.com/address/data/US">https://i18napis.appspot.com/address/data/US</a></li>
- <li><a href=
- "https://i18napis.appspot.com/address/data/CH">https://i18napis.appspot.com/address/data/CH</a></li>
- <li>...</li>
- </ul>
- <p>See <a href="tr35-info.html#Postal_Code_Validation">Postal
- Code Validation</a></p>
- <h3><a name="telephoneCodeData" href="#telephoneCodeData" id=
- "telephoneCodeData">A.17 Element telephoneCodeData</a></h3>
- <p>The element <telephoneCodeData> and its subelements
- have been deprecated and the data removed.</p>
- <hr>
- <h2><a name="Links_to_Other_Parts" href="#Links_to_Other_Parts"
- id="Links_to_Other_Parts">Annex B Links to Other Parts</a></h2>
- <p>The LDML specification is split into several <a href=
- "#Parts">parts</a> by topic, with one HTML document per part.
- The following tables provide redirects for links to specific
- topics. Please update your links and bookmarks.</p>
- <p>Part 1 Links: Core (this document): No redirects needed.</p>
- <table cellspacing="0" cellpadding="2" border="1" width="100%">
- <caption>
- <a href="#Part_2_Links" name="Part_2_Links" id=
- "Part_2_Links">Part 2 Links</a>: <a href=
- "tr35-general.html">General</a> (display names &
- transforms, etc.)
- </caption>
- <tr>
- <th>Old section</th>
- <th>Section in new part</th>
- </tr>
- <tr>
- <td>5.4 <a name="Display_Name_Elements" href=
- "#Display_Name_Elements" id="Display_Name_Elements">Display
- Name Elements</a></td>
- <td>1 <a href=
- "tr35-general.html#Display_Name_Elements">Display Name
- Elements</a></td>
- </tr>
- <tr>
- <td>5.5 <a name="Layout_Elements" href="#Layout_Elements"
- id="Layout_Elements">Layout Elements</a></td>
- <td>2 <a href="tr35-general.html#Layout_Elements">Layout
- Elements</a></td>
- </tr>
- <tr>
- <td>5.6 <a name="Character_Elements" href=
- "#Character_Elements" id="Character_Elements">Character
- Elements</a></td>
- <td>3 <a href=
- "tr35-general.html#Character_Elements">Character
- Elements</a></td>
- </tr>
- <tr>
- <td>5.6.1 <a name="ExemplarSyntax" href="#ExemplarSyntax"
- id="ExemplarSyntax">Exemplar Syntax</a></td>
- <td>3.1 <a href="tr35-general.html#ExemplarSyntax">Exemplar
- Syntax</a></td>
- </tr>
- <tr>
- <td>5.6.2 Restrictions</td>
- <td>3.1 <a href="tr35-general.html#ExemplarSyntax">Exemplar
- Syntax</a></td>
- </tr>
- <tr>
- <td>5.6.3 Mapping</td>
- <td>3.2 <a href=
- "tr35-general.html#Character_Mapping">Mapping</a></td>
- </tr>
- <tr>
- <td>5.6.4 <a name="IndexLabels" href="#IndexLabels" id=
- "IndexLabels">Index Labels</a></td>
- <td>3.3 <a href="tr35-general.html#IndexLabels">Index
- Labels</a></td>
- </tr>
- <tr>
- <td>5.6.5 Ellipsis</td>
- <td>3.4 <a href=
- "tr35-general.html#Ellipsis">Ellipsis</a></td>
- </tr>
- <tr>
- <td>5.6.6 More Information</td>
- <td>3.5 <a href=
- "tr35-general.html#Character_More_Info">More
- Information</a></td>
- </tr>
- <tr>
- <td>5.7 <a name="Delimiter_Elements" href=
- "#Delimiter_Elements" id="Delimiter_Elements">Delimiter
- Elements</a></td>
- <td>4 <a href=
- "tr35-general.html#Delimiter_Elements">Delimiter
- Elements</a></td>
- </tr>
- <tr>
- <td>C.6 <a name="Measurement_System_Data" href=
- "#Measurement_System_Data" id=
- "Measurement_System_Data">Measurement System Data</a></td>
- <td>5 <a href=
- "tr35-general.html#Measurement_System_Data">Measurement
- System Data</a></td>
- </tr>
- <tr>
- <td>5.8 <a name="Measurement_Elements" href=
- "#Measurement_Elements" id=
- "Measurement_Elements">Measurement Elements
- (deprecated)</a></td>
- <td>5.1 <a href=
- "tr35-general.html#Measurement_Elements">Measurement
- Elements (deprecated)</a></td>
- </tr>
- <tr>
- <td>5.11 <a name="Unit_Elements" href="#Unit_Elements" id=
- "Unit_Elements">Unit Elements</a></td>
- <td>6 <a href="tr35-general.html#Unit_Elements">Unit
- Elements</a></td>
- </tr>
- <tr>
- <td>5.12 <a name="POSIX_Elements" href="#POSIX_Elements"
- id="POSIX_Elements">POSIX Elements</a></td>
- <td>7 <a href="tr35-general.html#POSIX_Elements">POSIX
- Elements</a></td>
- </tr>
- <tr>
- <td>5.13 <a name="Reference_Elements" href=
- "#Reference_Elements" id="Reference_Elements">Reference
- Element</a></td>
- <td>8 <a href=
- "tr35-general.html#Reference_Elements">Reference
- Element</a></td>
- </tr>
- <tr>
- <td>5.15 <a name="Segmentations" href="#Segmentations" id=
- "Segmentations">Segmentations</a></td>
- <td>9 <a href=
- "tr35-general.html#Segmentations">Segmentations</a></td>
- </tr>
- <tr>
- <td>5.15.1 <a name="Segmentation_Inheritance" href=
- "#Segmentation_Inheritance" id=
- "Segmentation_Inheritance">Segmentation
- Inheritance</a></td>
- <td>9.1 <a href=
- "tr35-general.html#Segmentation_Inheritance">Segmentation
- Inheritance</a></td>
- </tr>
- <tr>
- <td>5.16 <a name="Transforms" href="#Transforms" id=
- "Transforms">Transforms</a></td>
- <td>10 <a href=
- "tr35-general.html#Transforms">Transforms</a></td>
- </tr>
- <tr>
- <td>N <a name="Transform_Rules" href="#Transform_Rules" id=
- "Transform_Rules">Transform Rules</a></td>
- <td>10.3 <a href=
- "tr35-general.html#Transform_Rules_Syntax">Transform Rules
- Syntax</a></td>
- </tr>
- <tr>
- <td>5.18 <a name="ListPatterns" href="#ListPatterns" id=
- "ListPatterns">List Patterns</a></td>
- <td>11 <a href="tr35-general.html#ListPatterns">List
- Patterns</a></td>
- </tr>
- <tr>
- <td>C.20 <a name="List_Gender" href="#List_Gender" id=
- "List_Gender">Gender of Lists</a></td>
- <td>11.1 <a href="tr35-general.html#List_Gender">Gender of
- Lists</a></td>
- </tr>
- <tr>
- <td>5.19 <a name="Context_Transform_Elements" href=
- "#Context_Transform_Elements" id=
- "Context_Transform_Elements">ContextTransform
- Elements</a></td>
- <td>12 <a href=
- "tr35-general.html#Context_Transform_Elements">ContextTransform
- Elements</a></td>
- </tr>
- <tr>
- <td></td>
- <td><a href="tr35-general.html#"></a></td>
- </tr>
- </table>
- <table cellspacing="0" cellpadding="2" border="1" width="100%">
- <caption>
- <a href="#Part_3_Links" name="Part_3_Links" id=
- "Part_3_Links">Part 3 Links</a>: <a href=
- "tr35-numbers.html">Numbers</a> (number & currency
- formatting)
- </caption>
- <tr>
- <th>Old section</th>
- <th>Section in new part</th>
- </tr>
- <tr>
- <td>C.13 <a name="Numbering_Systems" href=
- "#Numbering_Systems" id="Numbering_Systems">Numbering
- Systems</a></td>
- <td>1 <a href=
- "tr35-numbers.html#Numbering_Systems">Numbering
- Systems</a></td>
- </tr>
- <tr>
- <td>5.10 <a name="Number_Elements" href="#Number_Elements"
- id="Number_Elements">Number Elements</a></td>
- <td>2 <a href="tr35-numbers.html#Number_Elements">Number
- Elements</a></td>
- </tr>
- <tr>
- <td>5.10.1 <a name="Number_Symbols" href="#Number_Symbols"
- id="Number_Symbols">Number Symbols</a></td>
- <td>2.3 <a href="tr35-numbers.html#Number_Symbols">Number
- Symbols</a></td>
- </tr>
- <tr>
- <td>G <a name="Number_Format_Patterns" href=
- "#Number_Format_Patterns" id=
- "Number_Format_Patterns">Number Format Patterns</a></td>
- <td>3 <a href=
- "tr35-numbers.html#Number_Format_Patterns">Number Format
- Patterns</a></td>
- </tr>
- <tr>
- <td>5.10.2 <a name="Currencies" href="#Currencies" id=
- "Currencies">Currencies</a></td>
- <td>4 <a href=
- "tr35-numbers.html#Currencies">Currencies</a></td>
- </tr>
- <tr>
- <td>C.1 <a name="Supplemental_Currency_Data" href=
- "#Supplemental_Currency_Data" id=
- "Supplemental_Currency_Data">Supplemental Currency
- Data</a></td>
- <td>4.1 <a href=
- "tr35-numbers.html#Supplemental_Currency_Data">Supplemental
- Currency Data</a></td>
- </tr>
- <tr>
- <td>C.11 <a name="Language_Plural_Rules" href=
- "#Language_Plural_Rules" id=
- "Language_Plural_Rules">Language Plural Rules</a></td>
- <td>5 <a href=
- "tr35-numbers.html#Language_Plural_Rules">Language Plural
- Rules</a></td>
- </tr>
- <tr>
- <td>5.17 <a name="Rule-Based_Number_Formatting" href=
- "#Rule-Based_Number_Formatting" id=
- "Rule-Based_Number_Formatting">Rule-Based Number
- Formatting</a></td>
- <td>6 <a href=
- "tr35-numbers.html#Rule-Based_Number_Formatting">Rule-Based
- Number Formatting</a></td>
- </tr>
- </table>
- <table cellspacing="0" cellpadding="2" border="1" width="100%">
- <caption>
- <a href="#Part_4_Links" name="Part_4_Links" id=
- "Part_4_Links">Part 4 Links</a>: <a href=
- "tr35-dates.html">Dates</a> (date, time, time zone
- formatting)
- </caption>
- <tr>
- <th>Old section</th>
- <th>Section in new part</th>
- </tr>
- <tr>
- <td><a name="Date_Elements" href="#Date_Elements" id=
- "Date_Elements">5.9 Date Elements</a></td>
- <td>1 <a href=
- "tr35-dates.html#Overview_Dates_Element_Supplemental">Overview:
- Dates Element, Supplemental Date and Calendar
- Information</a></td>
- </tr>
- <tr>
- <td><a name="Calendar_Elements" href="#Calendar_Elements"
- id="Calendar_Elements">5.9.1 Calendar Elements</a></td>
- <td>2 <a href="tr35-dates.html#Calendar_Elements">Calendar
- Elements</a></td>
- </tr>
- <tr>
- <td><a name="months_days_quarters_eras" href=
- "#months_days_quarters_eras" id=
- "months_days_quarters_eras">Elements months, days,
- quarters, eras</a></td>
- <td>2.1 <a href=
- "tr35-dates.html#months_days_quarters_eras">Elements
- months, days, quarters, eras</a></td>
- </tr>
- <tr>
- <td><a name="monthPatterns_cyclicNameSets" href=
- "#monthPatterns_cyclicNameSets" id=
- "monthPatterns_cyclicNameSets">Elements monthPatterns,
- cyclicNameSets</a></td>
- <td>2.2 <a href=
- "tr35-dates.html#monthPatterns_cyclicNameSets">Elements
- monthPatterns, cyclicNameSets</a></td>
- </tr>
- <tr>
- <td><a name="dayPeriods" href="#dayPeriods" id=
- "dayPeriods">Element dayPeriods</a></td>
- <td>2.3 <a href="tr35-dates.html#dayPeriods">Element
- dayPeriods</a></td>
- </tr>
- <tr>
- <td><a name="dateFormats" href="#dateFormats" id=
- "dateFormats">Element dateFormats</a></td>
- <td>2.4 <a href="tr35-dates.html#dateFormats">Element
- dateFormats</a></td>
- </tr>
- <tr>
- <td><a name="timeFormats" href="#timeFormats" id=
- "timeFormats">Element timeFormats</a></td>
- <td>2.5 <a href="tr35-dates.html#timeFormats">Element
- timeFormats</a></td>
- </tr>
- <tr>
- <td><a name="dateTimeFormats" href="#dateTimeFormats" id=
- "dateTimeFormats">Element dateTimeFormats</a></td>
- <td>2.6 <a href="tr35-dates.html#dateTimeFormats">Element
- dateTimeFormats</a></td>
- </tr>
- <tr>
- <td><a name="Calendar_Fields" href="#Calendar_Fields" id=
- "Calendar_Fields">5.9.2 Calendar Fields</a></td>
- <td>3 <a href="tr35-dates.html#Calendar_Fields">Calendar
- Fields</a></td>
- </tr>
- <tr>
- <td>5.9.3 <a name="Timezone_Names" href="#Timezone_Names"
- id="Timezone_Names">Time Zone Names</a></td>
- <td>5 <a href="tr35-dates.html#Time_Zone_Names">Time Zone
- Names</a></td>
- </tr>
- <tr>
- <td><a name="Supplemental_Calendar_Data" href=
- "#Supplemental_Calendar_Data" id=
- "Supplemental_Calendar_Data">C.5 Supplemental Calendar
- Data</a></td>
- <td>4 <a href=
- "tr35-dates.html#Supplemental_Calendar_Data">Supplemental
- Calendar Data</a></td>
- </tr>
- <tr>
- <td><a name="Supplemental_Timezone_Data" href=
- "#Supplemental_Timezone_Data" id=
- "Supplemental_Timezone_Data">C.7 Supplemental Time Zone
- Data</a></td>
- <td>6 <a href=
- "tr35-dates.html#Supplemental_Time_Zone_Data">Supplemental
- Time Zone Data</a></td>
- </tr>
- <tr>
- <td><a name="Calendar_Preference_Data" href=
- "#Calendar_Preference_Data" id=
- "Calendar_Preference_Data">C.15 Calendar Preference
- Data</a></td>
- <td>4.2 <a href=
- "tr35-dates.html#Calendar_Preference_Data">Calendar
- Preference Data</a></td>
- </tr>
- <tr>
- <td><a name="DayPeriodRules" href="#DayPeriodRules" id=
- "DayPeriodRules">C.17 DayPeriod Rules</a></td>
- <td>4.5 <a href="tr35-dates.html#Day_Period_Rules">Day
- Period Rules</a></td>
- </tr>
- <tr>
- <td><a name="Date_Format_Patterns" href=
- "#Date_Format_Patterns" id="Date_Format_Patterns">Appendix
- F: Date Format Patterns</a></td>
- <td>8 <a href="tr35-dates.html#Date_Format_Patterns">Date
- Format Patterns</a></td>
- </tr>
- <tr>
- <td><a name="Date_Field_Symbol_Table" href=
- "#Date_Field_Symbol_Table" id=
- "Date_Field_Symbol_Table">Date Field Symbol Table</a></td>
- <td><a href="tr35-dates.html#Date_Field_Symbol_Table">Date
- Field Symbol Table</a></td>
- </tr>
- <tr>
- <td><a name="Localized_Pattern_Characters" href=
- "#Localized_Pattern_Characters" id=
- "Localized_Pattern_Characters">F.1 Localized Pattern
- Characters (deprecated)</a></td>
- <td>8.1 <a href=
- "tr35-dates.html#Localized_Pattern_Characters">Localized
- Pattern Characters (deprecated)</a></td>
- </tr>
- <tr>
- <td><a name="Time_Zone_Fallback" href="#Time_Zone_Fallback"
- id="Time_Zone_Fallback">Appendix J: Time Zone Display
- Names</a></td>
- <td>7 <a href="tr35-dates.html#Using_Time_Zone_Names">Using
- Time Zone Names</a></td>
- </tr>
- <tr>
- <td><a name="fallbackFormat" href="#fallbackFormat" id=
- "fallbackFormat"><b>fallbackFormat</b>:</a></td>
- <td><a href=
- "tr35-dates.html#fallbackFormat"><b>fallbackFormat</b>:</a></td>
- </tr>
- <tr>
- <td>O.4 Parsing Dates and Times</td>
- <td>9 <a href="tr35-dates.html#Parsing_Dates_Times">Parsing
- Dates and Times</a></td>
- </tr>
- </table>
- <table cellspacing="0" cellpadding="2" border="1" width="100%">
- <caption>
- <a href="#Part_5_Links" name="Part_5_Links" id=
- "Part_5_Links">Part 5 Links</a>: <a href=
- "tr35-collation.html">Collation</a> (sorting, searching,
- grouping)
- </caption>
- <tr>
- <th>Old section</th>
- <th>Section in new part</th>
- </tr>
- <tr>
- <td>5.14 <a name="Collation_Elements" href=
- "#Collation_Elements" id="Collation_Elements">Collation
- Elements</a></td>
- <td>3 <a href=
- "tr35-collation.html#Collation_Tailorings">Collation
- Tailorings</a></td>
- </tr>
- <tr>
- <td>5.14.1 <a name="Collation_Version" href=
- "#Collation_Version" id=
- "Collation_Version">Version</a></td>
- <td>3.1 <a href=
- "tr35-collation.html#Collation_Version">Version</a></td>
- </tr>
- <tr>
- <td>5.14.2 <a name="Collation_Element" href=
- "#Collation_Element" id="Collation_Element">Collation
- Element</a></td>
- <td>3.2 <a href=
- "tr35-collation.html#Collation_Element">Collation
- Element</a></td>
- </tr>
- <tr>
- <td>5.14.3 <a name="Setting_Options" href=
- "#Setting_Options" id="Setting_Options">Setting
- Options</a></td>
- <td>3.3 <a href=
- "tr35-collation.html#Setting_Options">Setting
- Options</a></td>
- </tr>
- <tr>
- <td>Table <a name="Collation_Settings" href=
- "#Collation_Settings" id="Collation_Settings">Collation
- Settings</a></td>
- <td>Table <a href=
- "tr35-collation.html#Collation_Settings">Collation
- Settings</a></td>
- </tr>
- <tr>
- <td>5.14.4 <a name="Rules" href="#Rules" id=
- "Rules">Collation Rule Syntax</a></td>
- <td>3.4 <a href="tr35-collation.html#Rules">Collation Rule
- Syntax</a></td>
- </tr>
- <tr>
- <td>5.14.5 <a name="Orderings" href="#Orderings" id=
- "Orderings">Orderings</a></td>
- <td>3.5 <a href=
- "tr35-collation.html#Orderings">Orderings</a></td>
- </tr>
- <tr>
- <td>5.14.6 <a name="Contractions" href="#Contractions" id=
- "Contractions">Contractions</a></td>
- <td>3.6 <a href=
- "tr35-collation.html#Contractions">Contractions</a></td>
- </tr>
- <tr>
- <td>5.14.7 <a name="Expansions" href="#Expansions" id=
- "Expansions">Expansions</a></td>
- <td>3.7 <a href=
- "tr35-collation.html#Expansions">Expansions</a></td>
- </tr>
- <tr>
- <td>5.14.8 <a name="Context_Before" href="#Context_Before"
- id="Context_Before">Context Before</a></td>
- <td>3.8 <a href=
- "tr35-collation.html#Context_Before">Context
- Before</a></td>
- </tr>
- <tr>
- <td>5.14.9 <a name="Placing_Characters_Before_Others" href=
- "#Placing_Characters_Before_Others" id=
- "Placing_Characters_Before_Others">Placing Characters
- Before Others</a></td>
- <td>3.9 <a href=
- "tr35-collation.html#Placing_Characters_Before_Others">Placing
- Characters Before Others</a></td>
- </tr>
- <tr>
- <td>5.14.10 <a name="Logical_Reset_Positions" href=
- "#Logical_Reset_Positions" id=
- "Logical_Reset_Positions">Logical Reset Positions</a></td>
- <td>3.10 <a href=
- "tr35-collation.html#Logical_Reset_Positions">Logical Reset
- Positions</a></td>
- </tr>
- <tr>
- <td>5.14.11 <a name="Special_Purpose_Commands" href=
- "#Special_Purpose_Commands" id=
- "Special_Purpose_Commands">Special-Purpose
- Commands</a></td>
- <td>3.11 <a href=
- "tr35-collation.html#Special_Purpose_Commands">Special-Purpose
- Commands</a></td>
- </tr>
- <tr>
- <td>5.14.12 <a name="Script_Reordering" href=
- "#Script_Reordering" id="Script_Reordering">Collation
- Reordering</a></td>
- <td>3.12 <a href=
- "tr35-collation.html#Script_Reordering">Collation
- Reordering</a></td>
- </tr>
- <tr>
- <td>5.14.13 <a name="Case_Parameters" href=
- "#Case_Parameters" id="Case_Parameters">Case
- Parameters</a></td>
- <td>3.13 <a href="tr35-collation.html#Case_Parameters">Case
- Parameters</a></td>
- </tr>
- <tr>
- <td>Definition: <a name="UncasedExceptions" href=
- "#UncasedExceptions" id=
- "UncasedExceptions">UncasedExceptions</a></td>
- <td>removed: see 3.13 <a href=
- "tr35-collation.html#Case_Parameters">Case
- Parameters</a></td>
- </tr>
- <tr>
- <td>Definition: <a name="LowerExceptions" href=
- "#LowerExceptions" id=
- "LowerExceptions">LowerExceptions</a></td>
- <td>removed: see 3.13 <a href=
- "tr35-collation.html#Case_Parameters">Case
- Parameters</a></td>
- </tr>
- <tr>
- <td>Definition: <a name="UpperExceptions" href=
- "#UpperExceptions" id=
- "UpperExceptions">UpperExceptions</a></td>
- <td>removed: see 3.13 <a href=
- "tr35-collation.html#Case_Parameters">Case
- Parameters</a></td>
- </tr>
- <tr>
- <td>5.14.14 <a name="Visibility" href="#Visibility" id=
- "Visibility">Visibility</a></td>
- <td>3.14 <a href=
- "tr35-collation.html#Visibility">Visibility</a></td>
- </tr>
- </table>
- <table cellspacing="0" cellpadding="2" border="1" width="100%">
- <caption>
- <a href="#Part_6_Links" name="Part_6_Links" id=
- "Part_6_Links">Part 6 Links</a>: <a href=
- "tr35-info.html">Supplemental</a> (supplemental data)
- </caption>
- <tr>
- <th>Old section</th>
- <th>Section in new part</th>
- </tr>
- <tr>
- <td>C <a name="Supplemental_Data" href="#Supplemental_Data"
- id="Supplemental_Data">Supplemental Data</a></td>
- <td>Introduction <a href=
- "tr35-info.html#Supplemental_Data">Supplemental
- Data</a></td>
- </tr>
- <tr>
- <td>C.2 <a name="Supplemental_Territory_Containment" href=
- "#Supplemental_Territory_Containment" id=
- "Supplemental_Territory_Containment">Supplemental Territory
- Containment</a></td>
- <td>1.1 <a href=
- "tr35-info.html#Supplemental_Territory_Containment">Supplemental
- Territory Containment</a></td>
- </tr>
- <tr>
- <td>C.4 <a name="Supplemental_Territory_Information" href=
- "#Supplemental_Territory_Information" id=
- "Supplemental_Territory_Information">Supplemental Territory
- Information</a></td>
- <td>1.2 <a href=
- "tr35-info.html#Supplemental_Territory_Information">Supplemental
- Territory Information</a></td>
- </tr>
- <tr>
- <td>C.3 <a name="Supplemental_Language_Data" href=
- "#Supplemental_Language_Data" id=
- "Supplemental_Language_Data">Supplemental Language
- Data</a></td>
- <td>2 <a href=
- "tr35-info.html#Supplemental_Language_Data">Supplemental
- Language Data</a></td>
- </tr>
- <tr>
- <td>C.9 <a name="Supplemental_Code_Mapping" href=
- "#Supplemental_Code_Mapping" id=
- "Supplemental_Code_Mapping">Supplemental Code
- Mapping</a></td>
- <td>4 <a href=
- "tr35-info.html#Supplemental_Code_Mapping">Supplemental
- Code Mapping</a></td>
- </tr>
- <tr>
- <td>C.12 <a name="Telephone_Code_Data" href=
- "#Telephone_Code_Data" id="Telephone_Code_Data">Telephone
- Code Data</a></td>
- <td>5 <a href=
- "tr35-info.html#Telephone_Code_Data">Telephone Code
- Data</a></td>
- </tr>
- <tr>
- <td>C.14 <a name="Postal_Code_Validation" href=
- "#Postal_Code_Validation" id=
- "Postal_Code_Validation">Postal Code Validation</a></td>
- <td>6 <a href=
- "tr35-info.html#Postal_Code_Validation">Postal Code
- Validation</a></td>
- </tr>
- <tr>
- <td>C.8 <a name="Supplemental_Character_Fallback_Data"
- href="#Supplemental_Character_Fallback_Data" id=
- "Supplemental_Character_Fallback_Data">Supplemental
- Character Fallback Data</a></td>
- <td>7 <a href=
- "tr35-info.html#Supplemental_Character_Fallback_Data">Supplemental
- Character Fallback Data</a></td>
- </tr>
- <tr>
- <td>M <a name="Coverage_Levels" href="#Coverage_Levels" id=
- "Coverage_Levels">Coverage Levels</a></td>
- <td>8 <a href="tr35-info.html#Coverage_Levels">Coverage
- Levels</a></td>
- </tr>
- <tr>
- <td>5.20 <a name="Metadata_Elements" href=
- "tr35-info.html#Metadata_Elements" id=
- "Metadata_Elements">Metadata Elements</a></td>
- <td>10 <a href="tr35-info.html#Metadata_Elements">Locale
- Metadata Element</a></td>
- </tr>
- <tr>
- <td>P <a name="Appendix_Supplemental_Metadata" href=
- "tr35-info.html#Appendix_Supplemental_Metadata" id=
- "Appendix_Supplemental_Metadata">Supplemental
- Metadata</a><br>
- P.1 <a name="Supplemental_Alias_Information" href=
- "tr35-info.html#Supplemental_Alias_Information" id=
- "Supplemental_Alias_Information">Supplemental Alias
- Information</a><br>
- P.2 <a name="Supplemental_Deprecated_Information" href=
- "tr35-info.html#Supplemental_Deprecated_Information" id=
- "Supplemental_Deprecated_Information">Supplemental
- Deprecated Information</a><br>
- P.3 <a name="Default_Content" href=
- "tr35-info.html#Default_Content" id=
- "Default_Content">Default Content</a></td>
- <td>9 <a href=
- "tr35-info.html#Appendix_Supplemental_Metadata">Supplemental
- Metadata</a><br>
- 9.1 <a href=
- "tr35-info.html#Supplemental_Alias_Information">Supplemental
- Alias Information</a><br>
- 9.2 <a href=
- "tr35-info.html#Supplemental_Deprecated_Information">Supplemental
- Deprecated Information</a><br>
- 9.3 <a href="tr35-info.html#Default_Content">Default
- Content</a></td>
- </tr>
- </table>
- <table cellspacing="0" cellpadding="2" border="1" width="100%">
- <caption>
- <a href="#Part_7_Links" name="Part_7_Links" id=
- "Part_7_Links">Part 7 Links</a>: <a href=
- "tr35-keyboards.html">Keyboards</a> (keyboard mappings)
- </caption>
- <tr>
- <th>Old section</th>
- <th>Section in new part</th>
- </tr>
- <tr>
- <td>S <a name="Keyboards" href="#Keyboards" id=
- "Keyboards">Keyboards</a></td>
- <td>1 <a href=
- "tr35-keyboards.html#Keyboards">Keyboards</a></td>
- </tr>
- <tr>
- <td>S <a name="Goals_and_Nongoals" href=
- "#Goals_and_Nongoals" id="Goals_and_Nongoals">Goals and
- Nongoals</a></td>
- <td><a href="tr35-keyboards.html#Goals_and_Nongoals">Goals
- and Nongoals</a></td>
- </tr>
- <tr>
- <td>S <a name="File_and_Dir_Structure" href=
- "#File_and_Dir_Structure" id="File_and_Dir_Structure">File
- and Directory Structure</a></td>
- <td><a href=
- "tr35-keyboards.html#File_and_Dir_Structure">File and
- Directory Structure</a></td>
- </tr>
- <tr>
- <td>S <a name="Element_Heirarchy_Layout_File" href=
- "#Element_Heirarchy_Layout_File" id=
- "Element_Heirarchy_Layout_File">Element Hierarchy - Layout
- File</a></td>
- <td><a href=
- "tr35-keyboards.html#Element_Heirarchy_Layout_File">Element
- Hierarchy - Layout File</a></td>
- </tr>
- <tr>
- <td>S <a name="Element_Heirarchy_Platform_File" href=
- "#Element_Heirarchy_Platform_File" id=
- "Element_Heirarchy_Platform_File">Element Hierarchy -
- Platform File</a></td>
- <td><a href=
- "tr35-keyboards.html#Element_Heirarchy_Platform_File">Element
- Hierarchy - Platform File</a></td>
- </tr>
- <tr>
- <td>S <a name="Invariants" href="#Invariants" id=
- "Invariants">Invariants</a></td>
- <td><a href=
- "tr35-keyboards.html#Invariants">Invariants</a></td>
- </tr>
- <tr>
- <td>S <a name="Data_Sources" href="#Data_Sources" id=
- "Data_Sources">Data Sources</a></td>
- <td><a href="tr35-keyboards.html#Data_Sources">Data
- Sources</a></td>
- </tr>
- <tr>
- <td>S <a name="Keyboard_IDs" href="#Keyboard_IDs" id=
- "Keyboard_IDs">Keyboard IDs</a></td>
- <td><a href="tr35-keyboards.html#Keyboard_IDs">Keyboard
- IDs</a></td>
- </tr>
- <tr>
- <td>S <a name="Platform_Behaviors_in_Edge_Cases" href=
- "#Platform_Behaviors_in_Edge_Cases" id=
- "Platform_Behaviors_in_Edge_Cases">Platform Behaviors in
- Edge Cases</a></td>
- <td><a href=
- "tr35-keyboards.html#Platform_Behaviors_in_Edge_Cases">Platform
- Behaviors in Edge Cases</a></td>
- </tr>
- <tr>
- <td>S <a name="Element_Keyboard" href="#Element_Keyboard"
- id="Element_Keyboard">Element: keyboard</a></td>
- <td><a href="tr35-keyboards.html#Element_Keyboard">Element:
- keyboard</a></td>
- </tr>
- <tr>
- <td>S <a name="Element_version" href="#Element_version" id=
- "Element_version">Element: version</a></td>
- <td><a href="tr35-keyboards.html#Element_version">Element:
- version</a></td>
- </tr>
- <tr>
- <td>S <a name="Element_generation" href=
- "#Element_generation" id="Element_generation">Element:
- generation</a></td>
- <td><a href=
- "tr35-keyboards.html#Element_generation">Element:
- generation</a></td>
- </tr>
- <tr>
- <td>S <a name="Element_names" href="#Element_names" id=
- "Element_names">Element: names</a></td>
- <td><a href="tr35-keyboards.html#Element_names">Element:
- names</a></td>
- </tr>
- <tr>
- <td>S <a name="Element_name" href="#Element_name" id=
- "Element_name">Element: name</a></td>
- <td><a href="tr35-keyboards.html#Element_name">Element:
- name</a></td>
- </tr>
- <tr>
- <td>S <a name="Element_settings" href="#Element_settings"
- id="Element_settings">Element: settings</a></td>
- <td><a href="tr35-keyboards.html#Element_settings">Element:
- settings</a></td>
- </tr>
- <tr>
- <td>S <a name="Element_keyMap" href="#Element_keyMap" id=
- "Element_keyMap">Element: keyMap</a></td>
- <td><a href="tr35-keyboards.html#Element_keyMap">Element:
- keyMap</a></td>
- </tr>
- <tr>
- <td>S <a name="Element_map" href="#Element_map" id=
- "Element_map">Element: map</a></td>
- <td><a href="tr35-keyboards.html#Element_map">Element:
- map</a></td>
- </tr>
- <tr>
- <td>S <a name="Element_transforms" href=
- "#Element_transforms" id="Element_transforms">Element:
- transforms</a></td>
- <td><a href=
- "tr35-keyboards.html#Element_transforms">Element:
- transforms</a></td>
- </tr>
- <tr>
- <td>S <a name="Element_transform" href="#Element_transform"
- id="Element_transform">Element: transform</a></td>
- <td><a href=
- "tr35-keyboards.html#Element_transform">Element:
- transform</a></td>
- </tr>
- <tr>
- <td>S <a name="Element_platform" href="#Element_platform"
- id="Element_platform">Element: platform</a></td>
- <td><a href="tr35-keyboards.html#Element_platform">Element:
- platform</a></td>
- </tr>
- <tr>
- <td>S <a name="Element_hardwareMap" href=
- "#Element_hardwareMap" id="Element_hardwareMap">Element:
- hardwareMap</a></td>
- <td><a href=
- "tr35-keyboards.html#Element_hardwareMap">Element:
- hardwareMap</a></td>
- </tr>
- <tr>
- <td>S <a name="Principles_for_Keyboard_Ids" href=
- "#Principles_for_Keyboard_Ids" id=
- "Principles_for_Keyboard_Ids">Principles for Keyboard
- Ids</a></td>
- <td><a href=
- "tr35-keyboards.html#Principles_for_Keyboard_Ids">Principles
- for Keyboard Ids</a></td>
- </tr>
- </table>
- <hr>
-
- <h2><a href="#LocaleId_Canonicalization" name="LocaleId_Canonicalization">Annex C. LocaleId Canonicalization</a></h2>
- <p> </p>
- <p>The languageAlias, scriptAlias, territoryAlias, and variantAlias elements are used as rules to transform an input <em>source localeId</em>. The first step is to transform the <em>languageId</em> portion of the localeId. <br>
- </p>
- <blockquote>Note: in the following discussion, the separator '-' is used. That is also used in examples of XML alias data, even though for compatibility reasons that alias data actually uses '_' as a separator. The processing can also be applied to syntax while maintaining the separator '_', <em>mutatis mutandis</em>. CLDR also uses “territory” and “region” interchangeably.</blockquote>
- <h3 >Definitions</h3>
- <h4 >1. Multimap interpretation</h4>
- <p>Interpret each languageId as a multimap from a <em>fieldId</em> (language, script, region, variants) to a <strong>set</strong> of field values.</p>
- <p><em>Examples:</em></p>
- <a ></a><a ></a>
- <table class='simple'>
- <tbody>
- <tr>
- <td colspan="1" rowspan="2"><p> </p>
- <p><strong>Source</strong></p></td>
- <td colspan="4" rowspan="1"><p><strong>Fields</strong></p></td>
- </tr>
- <tr>
- <td colspan="1" rowspan="1"><p><strong>Language</strong></p></td>
- <td colspan="1" rowspan="1"><p><strong>Script</strong></p></td>
- <td colspan="1" rowspan="1"><p><strong>Region</strong></p></td>
- <td colspan="1" rowspan="1"><p><strong>Variants</strong></p></td>
- </tr>
- <tr>
- <td colspan="1" rowspan="1"><p>en-GB</p></td>
- <td colspan="1" rowspan="1"><p>{en}</p></td>
- <td colspan="1" rowspan="1"><p>{}</p></td>
- <td colspan="1" rowspan="1"><p>{GB}</p></td>
- <td colspan="1" rowspan="1"><p>{}</p></td>
- </tr>
- <tr>
- <td colspan="1" rowspan="1"><p>und-GB</p></td>
- <td colspan="1" rowspan="1"><p>{}</p></td>
- <td colspan="1" rowspan="1"><p>{}</p></td>
- <td colspan="1" rowspan="1"><p>{GB}</p></td>
- <td colspan="1" rowspan="1"><p>{}</p></td>
- </tr>
- <tr>
- <td colspan="1" rowspan="1"><p>ja-Latn-YU-hepburn-heploc</p></td>
- <td colspan="1" rowspan="1"><p>{ja}</p></td>
- <td colspan="1" rowspan="1"><p>{Latn}</p></td>
- <td colspan="1" rowspan="1"><p>{YU}</p></td>
- <td colspan="1" rowspan="1"><p>{hepburn, heploc}</p></td>
- </tr>
- </tbody>
- </table>
- <p> </p>
- <ul>
- <li>This can be represented as an abbreviated format: {L={ja}, S={Latn}, R={YU}, V={hepburn, heploc}}, skipping empty sets.</li>
- <li>“und” is a special language code that is treated as an empty set.</li>
- <li>Of course, only the Variants can contain more than one item: the others are either empty or contain exactly 1 item.</li>
- </ul>
- <h4 >2. Alias elements</h4>
- <p>For the languageAlias elements, the <em>type</em> and <em>replacements</em> are languageIds.</p>
- <p>For the script-, territory- (aka region), and variant- Alias elements, the type and replacements are interpreted as a languageIds, <em>after</em> prefixing with “und-”. Thus</p>
- <code><territoryAlias type="AN" replacement="CW SX BQ" reason="deprecated"/></code>
- <p>is interpreted as:</p>
- <code><territoryAlias type="und-AN" replacement="und-CW und-SX und-BQ" reason="deprecated"/></code>
- <p>Note that for the case of territoryAlias, there may be multiple replacement values separated by spaces in the text (such as replacement="und-CW und-SX und-BQ"); other rules only ever have a single replacement value.</p>
- <p> </p>
- <h4 >3. Matches</h4>
- <p>A rule matches a source if and only for all fields, each <em>source</em> field ⊇ <em>type</em> field.</p>
- <blockquote>
- <p><em>Examples:</em></p>
- <p>source=“ja-heploc-hepburn” and type=”und-hepburn”</p>
- <table class='simple'>
- <tbody>
- <tr>
- <td colspan="1" rowspan="1"><p>{ja} ⊇ {} </p></td>
- <td colspan="1" rowspan="1"><p>success, und = {}</p></td>
- </tr>
- <tr>
- <td colspan="1" rowspan="1"><p>{hepburn, heploc} ⊇ {hepburn}</p></td>
- <td colspan="1" rowspan="1"><p><strong>success</strong></p></td>
- </tr>
- </tbody>
- </table>
- <p>so the rule matches the source. (Note that order of variants is immaterial to matching)</p>
- <p> </p>
- <p> </p>
- <p>source=“ja-hepburn” and type=”und-hepburn-heploc”</p>
- <table class='simple'>
- <tbody>
- <tr>
- <td colspan="1" rowspan="1"><p>{ja} ⊇ {} </p></td>
- <td colspan="1" rowspan="1"><p>success, und = {}</p></td>
- </tr>
- <tr>
- <td colspan="1" rowspan="1"><p>{hepburn} ⊉ {hepburn, heploc}</p></td>
- <td colspan="1" rowspan="1"><p><strong>failure</strong></p></td>
- </tr>
- </tbody>
- </table>
- <p>so the rule does not match the source.</p></blockquote>
- <h4 >4. Replacement</h4>
- <p>A matching rule can be used to transform the source fields as follows</p>
- <ul>
- <li>if type.field ≠ {}
- <ul>
- <li>source.field = (source.field - type.field) ∪ replacement.field</li>
- </ul>
- </li>
-
- <li>else if source.field = {} and replacement.field ≠ {}
- <ul>
- <li>source.field = replacement.field</li>
- </ul>
- </li>
- </ul>
- <p><em>Example:</em></p>
- <blockquote><p>source=ja-Latn-fonipa-hepburn-heploc</p>
- <p>rule =”<languageAlias type="und-hepburn-heploc"</p>
- <p>replacement="und-alalc97">”</p>
- <p> </p>
- <p>result=”ja-Latn-alalc97-fonipa” // note that CLDR canonical order of variants is alphabetical</p></blockquote>
- <h5 >Territory Exception</h5>
- <p>If the field = territory, and the replacement.field has more than one value, then look up the most likely territory* for the base language code (and script, if there is one). If that likely territory is in the list of replacements, use it. Otherwise, use the first territory in the list.</p>
- <p><em>Example:</em></p>
- <blockquote><p>source=ja-Latn-fonipa-hepburn-heploc</p>
- <p>rule =”<languageAlias type="und-hepburn-heploc"</p>
- <p>replacement="und-alalc97">”</p>
- <p> </p>
- <p>result=”ja-Latn-alalc97-fonipa” <em>// note that CLDR canonical order of variants is alphabetical</em></p>
- </blockquote>
- <h4>5. Canonicalizing Syntax</h4>
- <p>To canonicalize the syntax of <em>source</em>: </p>
- <ul>
- <li>Initial Script Subtag
- <ul>
- <li>If the first subtag has 4 letters, prepend the source with "und-"</li>
- <li>Note: These are only for specialized use.</li>
- </ul>
- </li>
- <li>Casing
- <ul>
- <li>Put any script subtag into title case (eg, Hant)</li>
- <li>Put any region subtag int uppercase (eg, DE)</li>
- <li>Put all other subtags into lowercase (eg, en, fonipa)</li>
- </ul>
- </li>
- <li>Order
- <ul>
- <li>Put any variants into alphabetical order (eg, en-fonipa-scouse, not en-scouse-fonipa)</li>
- <li>Put any extensions into alphabetical order by their singleton (eg, en-t-xxx-u-yyy, not en-u-yyy-t-xxx)</li>
- <li>Put all attributes into alphabetical order.</li>
- <li>Put all <keywords, tfields> pairs into alphabetical order of their keys, within their respective extensions.</li>
- <li>Remove any type or tfield value of "true"</li>
- </ul>
- </li>
- <li>Separator
- <ul>
- <li>Replace '_' by '-' </li>
- </ul>
- </li>
- </ul>
- <h3 >Preprocessing</h3>
- <p>The data from supplementalMetadata is (logically) preprocessed as follows.</p>
- <ol start="1">
- <li>Load the rules from supplementalMetadata.xml, replacing '_' by '-', and adding “und-” as described in <em>Definition 2. Alias Elements</em>.</li>
- <li>Capture all languageAlias rules where the <em>type</em> is an invalid languageId into a set of <strong>BCP47 LegacyRules</strong>. Example:
- <ol>
- <li><languageAlias type="i-mingo" replacement="see-x-i-mingo" reason="legacy"/></li>
- </ol>
- </li>
- <li>Discard all rules where the <em>type</em> is an invalid languageId. Examples are
-<ol>
- <li><languageAlias type="i-mingo" replacement="see-x-i-mingo" reason="legacy"/></li>
- <li><territoryAlias type="und-AAA" replacement="und-AA" reason="overlong"/></li>
- </ol>
- </li>
- <li>Change the <em>type</em> and <em>replacement</em> values in the remaining rules into multimap rules, as per <em>Definition 1. Multimap Interpretation</em>.
- <ol>
- <li>Note that the “und” value disappears.</li>
- </ol>
- </li>
-
- <li>Order the set of rules by
- <ol>
- <li>the size of the union of all field value sets, with largest size first</li>
- <li>and then alphabetically by field.</li>
- </ol>
- </li>
-
- <li>The result is the set of <strong>Alias Rules</strong></li>
- </ol>
- <p> </p>
- <p>So using the examples above, we get the following order:</p>
- <table class='simple'>
- <tbody>
- <tr>
- <td colspan="1" rowspan="1"><p><strong>languageId</strong></p></td>
- <td colspan="1" rowspan="1"><p><strong>size of union</strong></p></td>
- <td colspan="1" rowspan="1"><p><strong>Alpha</strong></p></td>
- </tr>
- <tr>
- <td colspan="1" rowspan="1"><p>{V={hepburn, heploc}}</p></td>
- <td colspan="1" rowspan="1"><p>2</p></td>
- <td colspan="1" rowspan="1"><p>n/a</p></td>
- </tr>
- <tr>
- <td colspan="1" rowspan="1"><p>{L={en}, R={GB}}</p></td>
- <td colspan="1" rowspan="1"><p>2</p></td>
- <td colspan="1" rowspan="2"><p>en < fr</p></td>
- </tr>
- <tr>
- <td colspan="1" rowspan="1"><p>{L={fr}, R={CA}}</p></td>
- <td colspan="1" rowspan="1"><p>2</p></td>
- </tr>
- <tr>
- <td colspan="1" rowspan="1"><p>{R={CA}}</p></td>
- <td colspan="1" rowspan="1"><p>1</p></td>
- <td colspan="1" rowspan="1"><p>n/a</p></td>
- </tr>
- </tbody>
- </table>
- <p> </p>
- <blockquote><strong>Note: </strong>The secondary sort order in Preprocessing step 5.2 is only to ensure determinant results when two rules “of the same length” could apply.</blockquote>
- <h3 >Processing LanguageIds</h3>
- <p>To canonicalize a given <em>source</em>:</p>
- <ol start="1">
- <li>Canonicalize the syntax of <em>source</em> as per <em>Definition 5. Canonicalizing Syntax</em>.</li>
- <li>Where the <em>source</em> could be an arbitrary BCP 47 language tag, first process as follows:
-<ol>
- <li>If the source is identical to one of the types in the BCP47 LegacyRules, replace the entire source by the replacement value.</li>
- <li>Else if there is an extlang subtag, then apply Step 3 of <a href="https://www.google.com/url?q=https://tools.ietf.org/html/bcp47%23section-4.5&sa=D&ust=1600829915065000&usg=AOvVaw12vD5EzoVl3VFzEyrECMj-">https://tools.ietf.org/html/bcp47#section-4.5</a> to remove the extlang subtag (possibly adjusting the language subtag).
- <ol>
- <li>Don’t apply any of the other canonicalization steps in that section, however.</li>
- </ol>
- </li>
- <li>Else if the first subtag is "x", prefix by "und-".</li>
- <li><strong>Note: </strong>there are currently no valid 4-letter primary language subtags. While it is extremely unlikely that BCP47 would ever register them, if so then <i>languageAlias</i> mappings will be supplied for them, mapping to defined CLDR language subtags (from the idStatus="reserved" set).</li>
- </ol>
- </li>
- <li>Find the first matching rule in <strong>Alias Rules</strong> (from <strong>Preprocessing</strong>)
-<ol>
- <li>If there are none, return <em>source</em></li>
- </ol>
- </li>
- <li>Transform <em>source</em> according to that rule</li>
- <li>loop (goto #3)</li>
- </ol>
- <h2 >Processing LocaleIds</h2>
- <p>The canonicalization of localeIds is done by first canonicalizing the languageId portion, then handling extensions in the following way:</p>
- <ol start="1">
- <li>Replace any <em>tlang</em> languageId value by its canonicalization.</li>
- <li>Use the bcp47 data to replace keys, types, tfields, and tvalues by their canonical forms. See <strong>Section 3.6.4 U Extension Data Files</strong> and <strong>Section 3.7.1 T Extension Data Files</strong>. The matches are in the alias attribute value, while the canonical replacement is in the name attribute value. For example:
- <ol>
- <li>Because of the following bcp47 data:<br>
- <code><key name="ms"…>…<type name="uksystem" … alias="imperial" … />…</key></code></li>
- <li>We get the following transformation:<br>
- <code>en-u-ms-imperial ⇒ en-u-ms-uksystem</code></li>
- </ol>
- </li>
-
- <li>If there is an 'sd' or 'rg' key, replace any subdivision alias in its value in the same way, using subdivisionAlias data.</li>
- </ol>
- <h2 >Optimizations</h2>
- <p>The above algorithm is a logical statement of the process, but would obviously not be directly suited to production code. Production-level code can use many optimizations for efficiency while achieving the same result. For example, the Alias Rules can be further preprocessed to avoid indefinite looping, instead doing a rule lookup once per subtag. As another example, the small number of <strong>Territory Exceptions</strong> can be preprocessed to avoid the likely subtags processing.</p>
- <p> </p>
-
- <hr>
- <h2><a name="References" href="#References" id=
- "References">References</a></h2>
- <table cellpadding="4" cellspacing="0" class="noborder" border=
- "0">
- <tr>
- <th class="noborder" width="148">Ancillary Information</th>
- <td class="noborder" width="730"><i>To properly localize,
- parse, and format data requires ancillary information,
- which is not expressed in Locale Data Markup Language. Some
- of the formats for values used in Locale Data Markup
- Language are constructed according to external
- specifications. The sources for this data and/or formats
- include the following:<br>
- </i></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="Bugs" href=
- "#Bugs" id="Bugs">Bugs</a>]</td>
- <td class="noborder" width="730">CLDR Bug Reporting
- form<br>
- <a href=
- "http://cldr.unicode.org/index/bug-reports">http://cldr.unicode.org/index/bug-reports</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="Charts" href=
- "#Charts" id="Charts">Charts</a>]</td>
- <td class="noborder" width="730">The online code charts can
- be found at <a href=
- "https://unicode.org/charts/">https://unicode.org/charts/</a>
- An index to character names with links to the corresponding
- chart is found at <a href=
- "https://unicode.org/charts/charindex.html">https://unicode.org/charts/charindex.html</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="DUCET" href=
- "#DUCET" id="DUCET">DUCET</a>]</td>
- <td class="noborder" width="730">The Default Unicode
- Collation Element Table (DUCET)<br>
- For the base-level collation, of which all the collation
- tables in this document are tailorings.<br>
- <a href=
- "https://unicode.org/reports/tr10/#Default_Unicode_Collation_Element_Table">
- https://unicode.org/reports/tr10/#Default_Unicode_Collation_Element_Table</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="FAQ" href="#FAQ"
- id="FAQ">FAQ</a>]</td>
- <td class="noborder" valign="top" width="730">Unicode
- Frequently Asked Questions<br>
- <a href=
- "https://unicode.org/faq/">https://unicode.org/faq/<br></a>
- <i>For answers to common questions on technical
- issues.</i></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="FCD" href="#FCD"
- id="FCD">FCD</a>]</td>
- <td class="noborder" width="730">As defined in UTN #5
- Canonical Equivalences in Applications<br>
- <a href=
- "https://unicode.org/notes/tn5/">https://unicode.org/notes/tn5/</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="Glossary" href=
- "#Glossary" id="Glossary">Glossary</a>]</td>
- <td class="noborder" width="730">Unicode Glossary<a href=
- "https://unicode.org/glossary/"><br>
- https://unicode.org/glossary/<br></a> <i>For explanations of
- terminology used in this and other documents.</i></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="JavaChoice"
- href="#JavaChoice" id="JavaChoice">JavaChoice</a>]</td>
- <td class="noborder" width="730">Java ChoiceFormat<br>
- <a href=
- "https://docs.oracle.com/javase/7/docs/api/java/text/ChoiceFormat.html">
- https://docs.oracle.com/javase/7/docs/api/java/text/ChoiceFormat.html</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="Olson" href=
- "#Olson" id="Olson">Olson</a>]</td>
- <td class="noborder" width="730">The <i>TZ</i>ID Database
- (aka Olson timezone database)<br>
- Time zone and daylight savings information.<br>
- <a href=
- "https://www.iana.org/time-zones">https://www.iana.org/time-zones</a><br>
-
- For archived data, see <br>
- <a href=
- "ftp://ftp.iana.org/tz/releases/">ftp://ftp.iana.org/tz/releases/</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="Reports" href=
- "#Reports" id="Reports">Reports</a>]</td>
- <td class="noborder" width="730">Unicode Technical
- Reports<br>
- <a href=
- "https://unicode.org/reports/">https://unicode.org/reports/<br>
- </a> <i>For information on the status and development
- process for technical reports, and for a list of technical
- reports.</i></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="Unicode" href=
- "#Unicode" id="Unicode">Unicode</a>]</td>
- <td class="noborder" width="730">The Unicode Consortium, <i>The Unicode Standard, Version 13.0.0</i><br>
- (Mountain View, CA: The Unicode Consortium, 2020. ISBN 978-1-936213-26-9)<br>
- <a href="https://www.unicode.org/versions/Unicode13.0.0/">https://www.unicode.org/versions/Unicode13.0.0/</a>
- </td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="Versions" href=
- "#Versions" id="Versions">Versions</a>]</td>
- <td class="noborder" width="730">Versions of the Unicode
- Standard<br>
- <a href=
- "https://www.unicode.org/versions/">https://www.unicode.org/versions/</a><br>
-
- <i>For information on version numbering, and citing and
- referencing the Unicode Standard, the Unicode Character
- Database, and Unicode Technical Reports.</i></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="XPath" href=
- "#XPath" id="XPath">XPath</a>]</td>
- <td class="noborder" width="730"><a href=
- "https://www.w3.org/TR/xpath/">https://www.w3.org/TR/xpath/</a></td>
- </tr>
- <tr>
- <th class="noborder" width="148">Other Standards</th>
- <td class="noborder" width="730"><i>Various standards
- define codes that are used as keys or values in Locale Data
- Markup Language. These include:</i></td>
- </tr>
- <tr>
- <td class="noborder">[<a name="BCP47" href="#BCP47" id=
- "BCP47">BCP47</a>]</td>
- <td class="noborder">
- <a href=
- "https://www.rfc-editor.org/rfc/bcp/bcp47.txt">https://www.rfc-editor.org/rfc/bcp/bcp47.txt</a>
- <p>The Registry<br>
- <a href=
- "https://www.iana.org/assignments/language-subtag-registry">
- https://www.iana.org/assignments/language-subtag-registry</a></p>
- </td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="ISO639" href=
- "#ISO639" id="ISO639">ISO639</a>]</td>
- <td class="noborder" width="730">ISO Language Codes<br>
- <a href=
- "https://www.loc.gov/standards/iso639-2/">https://www.loc.gov/standards/iso639-2/</a><br>
-
- Actual List<br>
- <a href=
- "https://www.loc.gov/standards/iso639-2/langcodes.html">https://www.loc.gov/standards/iso639-2/langcodes.html</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="ISO1000" href=
- "#ISO1000" id="ISO1000">ISO1000</a>]</td>
- <td class="noborder" width="730">ISO 1000: SI units and
- recommendations for the use of their multiples and of
- certain other units, International Organization for
- Standardization, 1992.<br>
- <a href=
- "https://www.iso.org/iso/catalogue_detail?csnumber=5448">https://www.iso.org/iso/catalogue_detail?csnumber=5448</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="ISO3166" href=
- "#ISO3166" id="ISO3166">ISO3166</a>]</td>
- <td class="noborder" width="730">ISO Region Codes<br>
- <a href=
- "https://www.iso.org/iso/country_codes">https://www.iso.org/iso/country_codes</a><br>
-
- Actual List<br>
- <a href=
- "https://www.iso.org/obp/ui/#search">https://www.iso.org/obp/ui/#search</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="ISO4217" href=
- "#ISO4217" id="ISO4217">ISO4217</a>]</td>
- <td class="noborder" width="730">
- ISO Currency Codes<br>
- <a href=
- "https://www.iso.org/iso/home/standards/currency_codes.htm">
- https://www.iso.org/iso/home/standards/currency_codes.htm</a>
- <p><i>(Note that as of this point, there are significant
- problems with this list. The supplemental data file
- contains the best compendium of currency information
- available.)</i></p>
- </td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="ISO8601" href=
- "#ISO8601" id="ISO8601">ISO8601</a>]</td>
- <td class="noborder" width="730">ISO Date and Time
- Format<br>
- <a href=
- "https://www.iso.org/iso/iso8601">https://www.iso.org/iso/iso8601</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="ISO15924" href=
- "#ISO15924" id="ISO15924">ISO15924</a>]</td>
- <td class="noborder" width="730">ISO Script Codes<br>
- <a href=
- "https://www.unicode.org/iso15924/index.html">https://www.unicode.org/iso15924/index.html</a><br>
-
- Actual List<br>
- <a href=
- "https://www.unicode.org/iso15924/codelists.html">https://www.unicode.org/iso15924/codelists.html</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="LOCODE" href=
- "#LOCODE" id="LOCODE">LOCODE</a>]</td>
- <td class="noborder" width="730">United Nations Code for
- Trade and Transport Locations, commonly known as
- "UN/LOCODE"<br>
- <a href=
- "https://www.unece.org/cefact/locode/welcome.html">https://www.unece.org/cefact/locode/welcome.html</a><br>
-
- Download at: <a href=
- "https://www.unece.org/cefact/codesfortrade/codes_index.htm"> https://www.unece.org/cefact/codesfortrade/codes_index.htm</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="RFC6067" href=
- "#RFC6067" id="RFC6067">RFC6067</a>]</td>
- <td class="noborder" width="730">BCP 47 Extension U<br>
- <a href=
- "https://www.ietf.org/rfc/rfc6067.txt">https://www.ietf.org/rfc/rfc6067.txt</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="RFC6497" href=
- "#RFC6497" id="RFC6497">RFC6497</a>]</td>
- <td class="noborder" width="730">BCP 47 Extension T -
- Transformed Content<br>
- <a href=
- "https://www.ietf.org/rfc/rfc6497.txt">https://www.ietf.org/rfc/rfc6497.txt</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="UNM49" href=
- "#UNM49" id="UNM49">UNM49</a>]</td>
- <td class="noborder" width="730">
- UN M.49: UN Statistics Division
- <p>Country or area & region codes<br>
- <a href=
- "https://unstats.un.org/unsd/methods/m49/m49.htm">https://unstats.un.org/unsd/methods/m49/m49.htm</a></p>
- <p>Composition of macro geographical (continental)
- regions, geographical sub-regions, and selected economic
- and other groupings<br>
- <a href=
- "https://unstats.un.org/unsd/methods/m49/m49regin.htm">https://unstats.un.org/unsd/methods/m49/m49regin.htm</a></p>
- </td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="XMLSchema" href=
- "#XMLSchema" id="XMLSchema">XML Schema</a>]</td>
- <td class="noborder" width="730">W3C XML Schema<br>
- <a href=
- "https://www.w3.org/XML/Schema">https://www.w3.org/XML/Schema</a></td>
- </tr>
- <tr>
- <th class="noborder" width="148">General</th>
- <td class="noborder" width="730"><i>The following are
- general references from the text:</i></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="ByType" href=
- "#ByType" id="ByType">ByType</a>]</td>
- <td class="noborder" width="730">CLDR Comparison Charts<br>
- <a href=
- "https://www.unicode.org/cldr/comparison_charts.html">https://www.unicode.org/cldr/comparison_charts.html</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="Calendars" href=
- "#Calendars" id="Calendars">Calendars</a>]</td>
- <td class="noborder" width="730">Calendrical Calculations:
- The Millennium Edition by Edward M. Reingold, Nachum
- Dershowitz; Cambridge University Press; Book and CD-ROM
- edition (July 1, 2001); ISBN: 0521777526. Note that the
- algorithms given in this book are copyrighted.</td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="Comparisons"
- href="#Comparisons" id="Comparisons">Comparisons</a>]</td>
- <td class="noborder" width="730">Comparisons between locale
- data from different sources<br>
- <a href=
- "https://unicode-org.github.io/cldr-staging/charts/38/supplemental/dtd_deltas.html">https://unicode-org.github.io/cldr-staging/charts/38/supplemental/dtd_deltas.html</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="CurrencyInfo"
- href="#CurrencyInfo" id=
- "CurrencyInfo">CurrencyInfo</a>]</td>
- <td class="noborder" width="730">UNECE Currency Data<br>
- <a href=
- "https://www.currency-iso.org/en/home/tables.html">https://www.currency-iso.org/en/home/tables.html</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="DataFormats"
- href="#DataFormats" id="DataFormats">DataFormats</a>]</td>
- <td class="noborder" width="730">CLDR Translation
- Guidelines<br>
- <a href=
- "http://cldr.unicode.org/translation">http://cldr.unicode.org/translation</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="LDML" href=
- "#LDML" id="LDML">Example</a>]</td>
- <td class="noborder" width="730">A sample in Locale Data
- Markup Language<br>
- <a href=
- "https://unicode.org/cldr/dtd/1.1/ldml-example.xml">https://unicode.org/cldr/dtd/1.1/ldml-example.xml</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="ICUCollation"
- href="#ICUCollation" id=
- "ICUCollation">ICUCollation</a>]</td>
- <td class="noborder" width="730">ICU rule syntax<br>
- <a href=
- "https://unicode-org.github.io/icu/userguide/collation/customization/">
- https://unicode-org.github.io/icu/userguide/collation/customization/</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="ICUTransforms"
- href="#ICUTransforms" id=
- "ICUTransforms">ICUTransforms</a>]</td>
- <td class="noborder" width="730">Transforms<br>
- <a href=
- "https://unicode-org.github.io/icu/userguide/transforms/">
- https://unicode-org.github.io/icu/userguide/transforms/</a><br>
-
- Transforms Demo<br>
- <a href=
- "http://demo.icu-project.org/icu-bin/translit/">http://demo.icu-project.org/icu-bin/translit/</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="ICUUnicodeSet"
- href="#ICUUnicodeSet" id=
- "ICUUnicodeSet">ICUUnicodeSet</a>]</td>
- <td class="noborder" width="730">ICU UnicodeSet<br>
- <a href=
- "https://unicode-org.github.io/icu/userguide/strings/unicodeset.html">https://unicode-org.github.io/icu/userguide/strings/unicodeset.html<br>
- </a> API<br>
- <a href=
- "https://unicode-org.github.io/icu-docs/apidoc/released/icu4j/com/ibm/icu/text/UnicodeSet.html">
- https://unicode-org.github.io/icu-docs/apidoc/released/icu4j/com/ibm/icu/text/UnicodeSet.html</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="ITUE164" href=
- "#ITUE164" id="ITUE164">ITUE164</a>]</td>
- <td class="noborder" width="730">International
- Telecommunication Union: List Of ITU Recommendation E.164
- Assigned Country Codes<br>
- available at <a href=
- "https://www.itu.int/opb/publications.aspx?parent=T-SP&view=T-SP2">
- https://www.itu.int/opb/publications.aspx?parent=T-SP&view=T-SP2</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="LocaleExplorer"
- href="#LocaleExplorer" id=
- "LocaleExplorer">LocaleExplorer</a>]</td>
- <td class="noborder" width="730">ICU Locale Explorer<br>
- <a href=
- "http://demo.icu-project.org/icu-bin/locexp">http://demo.icu-project.org/icu-bin/locexp</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="localeProject"
- href="#localeProject" id=
- "localeProject">LocaleProject</a>]</td>
- <td class="noborder" width="730">Common Locale Data
- Repository Project<br>
- <a href=
- "https://unicode.org/cldr/">https://unicode.org/cldr/</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="NamingGuideline"
- href="#NamingGuideline" id=
- "NamingGuideline">NamingGuideline</a>]</td>
- <td class="noborder" width="730">OpenI18N Locale Naming
- Guideline<br>
- formerly at
- https://www.openi18n.org/docs/text/LocNameGuide-V10.txt</td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="RBNF" href=
- "#RBNF" id="RBNF">RBNF</a>]</td>
- <td class="noborder" width="730">Rule-Based Number
- Format<br>
- <a href=
- "https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/classicu_1_1RuleBasedNumberFormat.html">
- https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/classicu_1_1RuleBasedNumberFormat.html</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="RBBI" href=
- "#RBBI" id="RBBI">RBBI</a>]</td>
- <td class="noborder" width="730">Rule-Based Break
- Iterator<br>
- <a href=
- "https://unicode-org.github.io/icu/userguide/boundaryanalysis">
- https://unicode-org.github.io/icu/userguide/boundaryanalysis</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="UCAChart" href=
- "#UCAChart" id="UCAChart">UCAChart</a>]</td>
- <td class="noborder" width="730">Collation Chart<a href=
- "https://unicode.org/charts/collation/"><br>
- https://unicode.org/charts/collation/</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="UTCInfo" href=
- "#UTCInfo" id="UTCInfo">UTCInfo</a>]</td>
- <td class="noborder" width="730">NIST Time and Frequency
- Division Home Page<br>
- <a href="https://tf.nist.gov/">https://tf.nist.gov/<br></a>
- U.S. Naval Observatory: What is Universal Time?<br>
- <a href=
- "https://www.usno.navy.mil/USNO/time/master-clock/systems-of-time">https://www.usno.navy.mil/USNO/time/master-clock/systems-of-time</a></td>
- </tr>
- <tr>
- <td class="noborder" width="148">[<a name="WindowsCulture"
- href="#WindowsCulture" id=
- "WindowsCulture">WindowsCulture</a>]</td>
- <td class="noborder" width="730">Windows Culture Info
- (with mappings from [<a href=
- "#BCP47">BCP47</a>]-style codes to LCIDs)<br>
- <a href=
- "https://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo(vs.71).aspx">
- http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo(vs.71).aspx</a></td>
- </tr>
- </table>
- <h2><a name="Acknowledgments" href="#Acknowledgments" id=
- "Acknowledgments">Acknowledgments</a></h2>
- <p>Special thanks to the following people for their continuing
- overall contributions to the CLDR project, and for their
- specific contributions in the following areas. These
- descriptions only touch on the many contributions that they
- have made.</p>
- <ul>
- <li>Mark
- Davis for creating the initial version of LDML, and
- adding to and maintaining this specification, and for his
- work on the LDML code and tests, much of the supplemental
- data and overall structure, and transforms and
- keyboards.</li>
- <li>John Emmons for the POSIX conversion tool and
- metazones.</li>
- <li>Deborah Goldsmith for her contributions to LDML
- architecture and this specification.</li>
- <li>Chris Hansten for coordinating and managing data
- submissions and vetting.</li>
- <li>Erkki Kolehmainen and his team for their work on
- Finnish.</li>
- <li>Steven R. Loomis for development of the survey tool and
- database management.</li>
- <li>Peter Nugent for his contributions to the POSIX tool and
- from Open Office, and for coordinating and managing data
- submissions and vetting.</li>
- <li>George Rhoten for his work on currencies.</li>
- <li>Roozbeh Pournader (روزبه پورنادر) for his work on South
- Asian countries.</li>
- <li>Ram Viswanadha (రఘురామ్ విశ్వనాధ) for all of his work on
- LDML code and data integration, and for coordinating and
- managing data submissions and vetting.</li>
- <li>Vladimir Weinstein (Владимир Вајнштајн) for his work on
- collation.</li>
- <li>Yoshito Umaoka (馬岡 由人) for his work on the timezone
- architecture.</li>
- <li>Rick McGowan for his work gathering language, script and
- region data.</li>
- <li>Xiaomei Ji (吉晓梅) for her work on time intervals and
- plural formatting.</li>
- <li>David Bertoni for his contributions to the conversion
- tools.</li>
- <li>Mike Tardif for reviewing this specification and for
- coordinating and vetting data submissions.</li>
- <li>Peter Edberg for work on this specification,
- monthPatterns, cyclicNameSets, contextTransforms and other
- items.</li>
- <li>Raymond Wainman and Cibu Johny for their work on
- keyboards.</li>
- <li>Jennifer Chye for her contributions to the conversion
- tools.</li>
- <li>Markus Scherer for a major rewrite of Part 5, Collation.</li>
- <li><a href="https://www.sffc.xyz/">Shane Carr</a> for his work on numbers and measurement units.</li>
- <li>Robin Leroy for his work on compact plurals: Part 3, Section 5, <a href="tr35-numbers.html#Language_Plural_Rules">Language Plural
- Rules</a></li>
- </ul>
- <p>Other contributors to CLDR are listed on the <a href=
- "https://www.unicode.org/cldr/">CLDR Project Page</a>.</p>
-
-
- <h2><a name="Modifications" href="#Modifications" id=
- "Modifications">Modifications</a></h2>
-
- <p><b>Revision 61</b></p>
- <ul>
- <li><b>Reissued</b> for CLDR 38.</li>
-
- <li><strong>Part 1: <a href="tr35.html#Contents">Core</a> (languages, locales, basic structure)</strong>
- <ul>
- <li><strong>Section 3.2.1 <a href="#Canonical_Unicode_Locale_Identifiers">Canonical Unicode Locale Identifiers</a></strong>: replaced text by a reference to <strong>Annex C. <a href="#LocaleId_Canonicalization" >LocaleId Canonicalization</a></strong>
- <li><strong>Section 3.3.1 <a href=
- "#BCP_47_Language_Tag_Conversion" >BCP 47 Language Tag
- Conversion</a>:</strong> replaced text by a reference to <strong>Annex C. <a href="#LocaleId_Canonicalization" >LocaleId Canonicalization</a></strong></li>
- <li><strong>Section 3.6.1 <a href="#Key_And_Type_Definitions_" >Key And Type Definitions</a></strong>:
- added new key “dx”, for <a href="#UnicodeDictionaryBreakExclusionIdentifier" >Unicode Dictionary Break Exclusion Identifier</a>.</li>
- <li><strong>Section 3.6.4 <a href="#Unicode_Locale_Extension_Data_Files" >U Extension Data Files</a></strong>:
- added description of <a href="#SCRIPT_CODE" >SCRIPT_CODE</a> value for key “dx”.</li>
- <li><strong>Section 4.1.2 <a href="#Lateral_Inheritance">Lateral Inheritance</a>: </strong>specified lateral inheritance in more detail, added case and gender.</li>
- <li><strong>Annex C. <a href="#LocaleId_Canonicalization" >LocaleId Canonicalization</a></strong>
- <ul>
- <li>Added new Annex, replacing text in <strong>Section 3.2.1 <a href="#Canonical_Unicode_Locale_Identifiers">Canonical Unicode Locale Identifiers</a></strong> and <strong>Section 3.3.1 <a href=
- "#BCP_47_Language_Tag_Conversion" >BCP 47 Language Tag
- Conversion</a></strong></li>
- <li>Cleans up ambiguities in the previous specification of canonicalization. (This was done in concert with fixes to the alias data to work better with the specification.)</li>
- </ul>
- </li>
- </ul>
- </li>
- <li><strong>Part 2: <a href="tr35-general.html#Contents">General</a> (display names &transforms, etc.)</strong>
- <ul>
- <li><strong>Section 6 <a href="tr35-general.html#Unit_Elements">Unit Elements</a></strong>
- <ul>
- <li>Added new element compoundUnitPattern1</li>
- <li>Added case attribute to compoundUnitPattern</li>
- <li>Provided full description of compound unit components</li>
- </ul>
- </li>
-
- <li><strong>Section 14.2 <a href="tr35-general.html#Character_Labels">Annotations Character Labels</a></strong>
- <ul>
- <li>Added new characterLabelPattern type attribute values subscript and superscript.</li>
- </ul>
- </li>
-
- <li><strong>Section 16 <a href="tr35-general.html#Grammatical_Derivations">Grammatical Derivations</a></strong> — new</li>
- </ul>
- </li>
- <li><strong>Part 3: <a href="tr35-numbers.html#Contents">Numbers</a> (number & currency formatting)</strong>
- <ul>
- <li><strong>Section 2.3 <a href="tr35-numbers.html#Number_Symbols">Number Symbols</a>:</strong>
- added approximatelySign.</li>
- <li><strong>Section 2.6 <a href="tr35-numbers.html#Minimal_Pairs">Minimal Pairs</a>:</strong> added case and
- gender minimal pairs. Removed the alt/draft ATTLIST since those are documented elsewhere and just obfuscate
- the text.</li>
- <li><strong>Section 5 <a href="tr35-numbers.html#Language_Plural_Rules">Language Plural Rules</a>:</strong>
- added the 'e' operand for use in certain compact number formatting.</li>
- </ul>
- </li>
- <li><strong>Part 6: <a href="tr35-info.html#Contents">Supplemental</a> (supplemental data)</strong>
- <ul>
- <li><strong>Section 14 <a href="tr35-info.html#Unit_Preferences">Unit Preferences</a></strong>: defined the
- userPreferences skeleton more precisely.</li>
- </ul>
- </li>
- <li><strong>Throughout: </strong>Where possible, use “legacy” (for language tag or unit) instead of “grandfathered”.</li>
- </ul>
-
-
- <p> </p>
-
- <p>Modifications in previous versions are listed in those
- respective versions. Click on <strong>Previous Version</strong>
- in the header until you get to the desired version.</p>
- <hr>
- <p class="copyright">Copyright © 2001–2020 Unicode, Inc. All
- Rights Reserved. The Unicode Consortium makes no expressed or
- implied warranty of any kind, and assumes no liability for
- errors or omissions. No liability is assumed for incidental and
- consequential damages in connection with or arising out of the
- use of the information or programs contained or accompanying
- this technical report. The Unicode <a href=
- "https://unicode.org/copyright.html">Terms of Use</a> apply.</p>
- <p class="copyright">Unicode and the Unicode logo are
- trademarks of Unicode, Inc., and are registered in some
- jurisdictions.</p>
- </div>
-</body>
-</html>
diff --git a/docs/ldml/tr35.md b/docs/ldml/tr35.md
new file mode 100644
index 0000000..7eb8d90
--- /dev/null
+++ b/docs/ldml/tr35.md
@@ -0,0 +1,3737 @@
+## Unicode Technical Standard #35
+
+# Unicode Locale Data Markup Language (LDML)
+
+<!-- HTML: no header -->
+<table><tbody>
+<tr><td>Version</td><td>39</td></tr>
+<tr><td>Editors</td><td>Mark Davis (<a href="mailto:markdavis@google.com">markdavis@google.com</a>) and <a href="tr35.md#Acknowledgments">other CLDR committee members</a></td></tr>
+<tr><td>Date</td><td>2021-04-06</td></tr>
+<tr><td>This Version</td><td><a href="https://www.unicode.org/reports/tr35/tr35-63/tr35.html">https://www.unicode.org/reports/tr35/tr35-63/tr35.html</a></td></tr>
+<tr><td>Previous Version</td><td><a href="https://www.unicode.org/reports/tr35/tr35-61/tr35.html">https://www.unicode.org/reports/tr35/tr35-61/tr35.html</a></td></tr>
+<tr><td>Latest Version</td><td><a href="https://www.unicode.org/reports/tr35/">https://www.unicode.org/reports/tr35/</a></td></tr>
+<tr><td>Corrigenda</td><td><a href="http://unicode.org/cldr/corrigenda.html">http://unicode.org/cldr/corrigenda.html</a></td></tr>
+<tr><td>Latest Proposed Update</td><td><a href="https://unicode-org.github.io/cldr/ldml/tr35.html">https://unicode-org.github.io/cldr/ldml/tr35.html</a></td></tr>
+<tr><td>Namespace</td><td><a href="https://unicode.org/cldr/">https://unicode.org/cldr/</a></td></tr>
+<tr><td>DTDs</td><td><a href="https://github.com/unicode-org/cldr/tree/maint/maint-39/common/dtd">http://unicode.org/cldr/dtd/39/</a></td></tr>
+<tr><td>Revision</td><td><a href="#Modifications">63</a></td></tr>
+</tbody></table>
+
+### _Summary_
+
+This document describes an XML format (_vocabulary_) for the exchange of structured locale data. This format is used in the [Unicode Common Locale Data Repository](https://unicode.org/cldr/).
+
+### _Status_
+
+_This document has been reviewed by Unicode members and other interested parties, and has been approved for publication by the Unicode Consortium. This is a stable document and may be used as reference material or cited as a normative reference by other specifications._
+
+> _**A Unicode Technical Standard (UTS)** is an independent specification. Conformance to the Unicode Standard does not imply conformance to any UTS._
+
+_Please submit corrigenda and other comments with the CLDR bug reporting form [[Bugs](http://cldr.unicode.org/index/bug-reports)]. Related information that is useful in understanding this document is found in the [References](#References). For the latest version of the Unicode Standard see [[Unicode](https://www.unicode.org/versions/latest/)]. For a list of current Unicode Technical Reports see [[Reports](https://www.unicode.org/reports/)]. For more information about versions of the Unicode Standard, see [[Versions](https://www.unicode.org/versions/)]._
+
+>**_NOTE: The source for the LDML specification has been converted to Github Markdown (GFM) instead of HTML. The formatting is now simpler, but some features — such as formatting for table captions — may not be complete by the release date. Improvements in the formatting for the v39 specification are planned for after the release, but no substantive changes would be made to the content._**
+
+## <a name="Parts" href="#Parts">Parts</a>
+
+The LDML specification is divided into the following parts:
+
+* Part 1: [Core](tr35.md#Contents) (languages, locales, basic structure)
+* Part 2: [General](tr35-general.md#Contents) (display names & transforms, etc.)
+* Part 3: [Numbers](tr35-numbers.md#Contents) (number & currency formatting)
+* Part 4: [Dates](tr35-dates.md#Contents) (date, time, time zone formatting)
+* Part 5: [Collation](tr35-collation.md#Contents) (sorting, searching, grouping)
+* Part 6: [Supplemental](tr35-info.md#Contents) (supplemental data)
+* Part 7: [Keyboards](tr35-keyboards.md#Contents) (keyboard mappings)
+
+## <a name="Contents" href="#Contents">Contents of Part 1, Core</a>
+
+* 1 [Introduction](#Introduction)
+ * 1.1 [Conformance](#Conformance)
+* 2 [What is a Locale?](#Locale)
+* 3 [Unicode Language and Locale Identifiers](#Identifiers)
+ * 3.1 [Unicode Language Identifier](#Unicode_language_identifier)
+ * 3.2 [Unicode Locale Identifier](#Unicode_locale_identifier)
+ * [3.2.1 Canonical Unicode Locale Identifiers](#Canonical_Unicode_Locale_Identifiers)
+ * 3.3 [BCP 47 Conformance](#BCP_47_Conformance)
+ * 3.3.1 [BCP 47 Language Tag Conversion](#BCP_47_Language_Tag_Conversion)
+ * 3.4 [Language Identifier Field Definitions](#Field_Definitions)
+ * Table: [Language Identifier Field Definitions](#Language_Locale_Field_Definitions)
+ * 3.5 [Special Codes](#Special_Codes)
+ * 3.5.1 [Unknown or Invalid Identifiers](#Unknown_or_Invalid_Identifiers)
+ * 3.5.2 [Numeric Codes](#Numeric_Codes)
+ * 3.5.3 [Private Use Codes](#Private_Use_Codes)
+ * Table: [Private Use Codes in CLDR](#Private_Use_CLDR)
+ * 3.6 [Unicode BCP 47 U Extension](#Locale_Extension_Key_and_Type_Data)
+ * 3.6.1 [Key And Type Definitions](#Key_And_Type_Definitions_)
+ * Table: [Key/Type Definitions](#Key_Type_Definitions)
+ * 3.6.2 [Numbering System Data](#Numbering%20System%20Data)
+ * 3.6.3 [Time Zone Identifiers](#Time_Zone_Identifiers)
+ * 3.6.4 [U Extension Data Files](#Unicode_Locale_Extension_Data_Files)
+ * 3.6.5 [Subdivision Codes](#Unicode_Subdivision_Codes)
+ * 3.6.5.1 [Validity](#Validity)
+ * 3.7 [Unicode BCP 47 T Extension](#t_Extension)
+ * 3.7.1 [T Extension Data Files](#Transformed_Content_Data_File)
+ * 3.8 [Compatibility with Older Identifiers](#Compatibility_with_Older_Identifiers)
+ * 3.8.1 [Old Locale Extension Syntax](#Old_Locale_Extension_Syntax)
+ * Table: [Locale Extension Mappings](#Locale_Extension_Mappings)
+ * 3.8.2 [Legacy Variants](#Legacy_Variants)
+ * Table: [Legacy Variant Mappings](#Legacy_Variant_Mappings)
+ * 3.8.3 [Relation to OpenI18n](#Relation_to_OpenI18n)
+ * 3.9 [Transmitting Locale Information](#Transmitting_Locale_Information)
+ * 3.9.1 [Message Formatting and Exceptions](#Message_Formatting_and_Exceptions)
+ * 3.10 [Unicode Language and Locale IDs](#Language_and_Locale_IDs)
+ * 3.10.1 [Written Language](#Written_Language)
+ * 3.10.2 [Hybrid Locale Identifiers](#Hybrid_Locale)
+ * 3.11 [Validity Data](#Validity_Data)
+* 4 [Locale Inheritance and Matching](#Locale_Inheritance)
+ * 4.1 [Lookup](#Lookup)
+ * 4.1.1 [Bundle vs Item Lookup](#Bundle_vs_Item_Lookup)
+ * Table: [Lookup Differences](#Lookup-Differences)
+ * 4.1.2 [Lateral Inheritance](#Multiple_Inheritance)
+ * Table: [Count Fallback: normal](#Count_Fallback_normal)
+ * Table: [Count Fallback: currency](#Count_Fallback_currency)
+ * 4.1.3 [Parent Locales](#Parent_Locales)
+ * 4.2 [Inheritance and Validity](#Inheritance_and_Validity)
+ * 4.2.1 [Definitions](#Definitions)
+ * 4.2.2 [Resolved Data File](#Resolved_Data_File)
+ * 4.2.3 [Valid Data](#Valid_Data)
+ * 4.2.4 [Checking for Draft Status](#Checking_for_Draft_Status)
+ * 4.2.5 [Keyword and Default Resolution](#Keyword_and_Default_Resolution)
+ * 4.2.6 [Inheritance vs Related Information](#Inheritance_vs_Related)
+ * 4.3 [Likely Subtags](#Likely_Subtags)
+ * 4.4 [Language Matching](#LanguageMatching)
+ * 4.4.1 [Enhanced Language Matching](#EnhancedLanguageMatching)
+* 5 [XML Format](#XML_Format)
+ * 5.1 [Common Elements](#Common_Elements)
+ * 5.1.1 [Element special](#special)
+ * 5.1.1.1 [Sample Special Elements](#Sample_Special_Elements)
+ * 5.1.2 [Element alias](#Alias_Elements)
+ * Table: [Inheritance with source="locale"](#Inheritance_with_source_locale_)
+ * 5.1.3 [Element displayName](#Element_displayName)
+ * 5.1.4 [Escaping Characters](#Escaping_Characters)
+ * 5.2 [Common Attributes](#Common_Attributes)
+ * 5.2.1 [Attribute type](#Attribute_type)
+ * 5.2.2 [Attribute draft](#Attribute_draft)
+ * 5.2.3 [Attribute alt](#alt_attribute)
+ * 5.3 [Common Structures](#Common_Structures)
+ * 5.3.1 [Date and Date Ranges](#Date_Ranges)
+ * 5.3.2 [Text Directionality](#Text_Directionality)
+ * 5.3.3 [Unicode Sets](#Unicode_Sets)
+ * 5.3.3.1 [Lists of Code Points](#Lists_of_Code_Points)
+ * 5.3.3.2 [Unicode Properties](#Unicode_Properties)
+ * 5.3.3.3 [Boolean Operations](#Boolean_Operations)
+ * 5.3.3.4 [UnicodeSet Examples](#UnicodeSet_Examples)
+ * 5.3.4 [String Range](#String_Range)
+ * 5.4 [Identity Elements](#Identity_Elements)
+ * 5.5 [Valid Attribute Values](#Valid_Attribute_Values)
+ * 5.6 [Canonical Form](#Canonical_Form)
+ * 5.6.1 [Content](#Content)
+ * 5.6.2 [Ordering](#Ordering)
+ * 5.6.3 [Comments](#Comments)
+ * 5.7 [DTD Annotations](#DTD_Annotations)
+ * 5.7.1 [Attribute Value Constraints](#match_expressions)
+* 6 [Property Data](#Property_Data)
+ * 6.1 [Script Metadata](#Script_Metadata)
+ * 6.2 [Extended Pictographic](#Extended_Pictographic)
+ * 6.3 [Labels.txt](#Labels.txt)
+ * [6.4 Segmentation Tests](#Segmentation_Tests)
+* 7 [Issues in Formatting and Parsing](#Format_Parse_Issues)
+ * 7.1 [Lenient Parsing](#Lenient_Parsing)
+ * 7.1.1 [Motivation](#Motivation)
+ * 7.1.2 [Loose Matching](#Loose_Matching)
+ * 7.2 [Handling Invalid Patterns](#Invalid_Patterns)
+* Annex A [Deprecated Structure](#Deprecated_Structure)
+ * A.1 [Element fallback](#Fallback_Elements)
+ * A.2 [BCP 47 Keyword Mapping](#BCP47_Keyword_Mapping)
+ * A.3 [Choice Patterns](#Choice_Patterns)
+ * A.4 [Element default](#Element_default)
+ * A.5 [Deprecated Common Attributes](#Deprecated_Common_Attributes)
+ * A.5.1 [Attribute standard](#Attribute_standard)
+ * A.5.2 [Attribute draft in non-leaf elements](#Attribute_draft_nonLeaf)
+ * A.6 [Element base](#Element_base)
+ * A.7 [Element rules](#Element_rules)
+ * A.8 [Deprecated subelements of \<dates>](#Deprecated_subelements_of_dates)
+ * A.9 [Deprecated subelements of \<calendars>](#Deprecated_subelements_of_calendars)
+ * A.10 [Deprecated subelements of \<timeZoneNames>](#Deprecated_subelements_of_timeZoneNames)
+ * A.11 [Deprecated subelements of \<zone> and \<metazone>](#Deprecated_subelements_of_zone_metazone)
+ * A.12 [Renamed attribute values for \<contextTransformUsage> element](#Renamed_attribute_values_for_contextTransformUsage)
+ * A.13 [Deprecated subelements of \<segmentations>](#Deprecated_subelements_of_segmentations)
+ * A.14 [Element cp](#Element_cp)
+ * A.15 [Attribute validSubLocales](#validSubLocales)
+ * A.16 [Elements postalCodeData, postCodeRegex](#postCodeElements)
+ * A.17 [Element telephoneCodeData](#telephoneCodeData)
+* Annex B [Links to Other Parts](#Links_to_Other_Parts)
+ * Table: [Part 2 Links: General (display names & transforms, etc.)](#Part_2_Links)
+ * Table: [Part 3 Links: Numbers (number & currency formatting)](#Part_3_Links)
+ * Table: [Part 4 Links: Dates (date, time, time zone formatting)](#Part_4_Links)
+ * Table: [Part 5 Links: Collation (sorting, searching, grouping)](#Part_5_Links)
+ * Table: [Part 6 Links: Supplemental (supplemental data)](#Part_6_Links)
+ * Table: [Part 7 Links: Keyboards (keyboard mappings)](#Part_7_Links)
+* Annex C. [LocaleId Canonicalization](#LocaleId_Canonicalization)
+* [References](#References)
+* [Acknowledgments](#Acknowledgments)
+* [Modifications](#Modifications)
+
+## <a name="Introduction" href="#Introduction">1 Introduction</a>
+
+Not long ago, computer systems were like separate worlds, isolated from one another. The internet and related events have changed all that. A single system can be built of many different components, hardware and software, all needing to work together. Many different technologies have been important in bridging the gaps; in the internationalization arena, Unicode has provided a lingua franca for communicating textual data. However, there remain differences in the locale data used by different systems.
+
+The best practice for internationalization is to store and communicate language-neutral data, and format that data for the client. This formatting can take place on any of a number of the components in a system; a server might format data based on the user's locale, or it could be that a client machine does the formatting. The same goes for parsing data, and locale-sensitive analysis of data.
+
+But there remain significant differences across systems and applications in the locale-sensitive data used for such formatting, parsing, and analysis. Many of those differences are simply gratuitous; all within acceptable limits for human beings, but yielding different results. In many other cases there are outright errors. Whatever the cause, the differences can cause discrepancies to creep into a heterogeneous system. This is especially serious in the case of collation (sort-order), where different collation caused not only ordering differences, but also different results of queries! That is, with a query of customers with names between "Abbot, Cosmo" and "Arnold, James", if different systems have different sort orders, different lists will be returned. (For comparisons across systems formatted as HTML tables, see [[Comparisons](#Comparisons)].)
+
+> **Note:** There are many different equally valid ways in which data can be judged to be "correct" for a particular locale. The goal for the common locale data is to make it as consistent as possible with existing locale data, and acceptable to users in that locale.
+
+This document specifies an XML format for the communication of locale data: the Unicode Locale Data Markup Language (LDML). This provides a common format for systems to interchange locale data so that they can get the same results in the services provided by internationalization libraries. It also provides a standard format that can allow users to customize the behavior of a system. With it, for example, collation (sorting) rules can be exchanged, allowing two implementations to exchange a specification of tailored collation rules. Using the same specification, the two implementations will achieve the same results in comparing strings. Unicode LDML can also be used to let a user encapsulate specialized sorting behavior for a specific domain, or create a customized locale for a minority language. Unicode LDML is also used in the Unicode Common Locale Data Repository (CLDR). CLDR uses an open process for reconciling differences between the locale data used on different systems and validating the data, to produce with a useful, common, consistent base of locale data.
+
+For more information, see the Common Locale Data Repository project page [[LocaleProject](#localeProject)].
+
+As LDML is an interchange format, it was designed for ease of maintenance and simplicity of transformation into other formats, above efficiency of run-time lookup and use. Implementations should consider converting LDML data into a more compact format prior to use.
+
+### <a name="Conformance" href="#Conformance">1.1 Conformance</a>
+
+There are many ways to use the Unicode LDML format and the data in CLDR, and the Unicode Consortium does not restrict the ways in which the format or data are used. However, an implementation may also claim conformance to LDML or to CLDR, as follows:
+
+_**UAX35-C1.**_ An implementation that claims conformance to this specification shall:
+
+1. Identify the sections of the specification that it conforms to.
+ * For example, an implementation might claim conformance to all LDML features except for _transforms_ and _segments_.
+2. Interpret the relevant elements and attributes of LDML documents in accordance with the descriptions in those sections.
+ * For example, an implementation that claims conformance to the date format patterns must interpret the characters in such patterns according to [Date Field Symbol Table](tr35-dates.md#Date_Field_Symbol_Table).
+3. Declare which types of CLDR data that it uses.
+ * For example, an implementation might declare that it only uses language names, and those with a _draft_ status of _contributed_ or _approved_.
+
+_**UAX35-C2.**_ An implementation that claims conformance to Unicode locale or language identifiers shall:
+
+1. Specify whether Unicode locale extensions are allowed
+2. Specify the canonical form used for identifiers in terms of casing and field separator characters.
+
+External specifications may also reference particular components of Unicode locale or language identifiers, such as:
+
+> _Field X can contain any Unicode region subtag values as given in Unicode Technical Standard #35: Unicode Locale Data Markup Language (LDML), excluding grouping codes._
+
+
+
+## <a name="Locale" href="#Locale">2 What is a Locale?</a>
+
+Before diving into the XML structure, it is helpful to describe the model behind the structure. People do not have to subscribe to this model to use data in LDML, but they do need to understand it so that the data can be correctly translated into whatever model their implementation uses.
+
+The first issue is basic: _what is a locale?_ In this model, a locale is an identifier (id) that refers to a set of user preferences that tend to be shared across significant swaths of the world. Traditionally, the data associated with this id provides support for formatting and parsing of dates, times, numbers, and currencies; for measurement units, for sort-order (collation), plus translated names for time zones, languages, countries, and scripts. The data can also include support for text boundaries (character, word, line, and sentence), text transformations (including transliterations), and other services.
+
+Locale data is not cast in stone: the data used on someone's machine generally may reflect the US format, for example, but preferences can typically set to override particular items, such as setting the date format for 2002.03.15, or using metric or Imperial measurement units. In the abstract, locales are simply one of many sets of preferences that, say, a website may want to remember for a particular user. Depending on the application, it may want to also remember the user's time zone, preferred currency, preferred character set, smoker/non-smoker preference, meal preference (vegetarian, kosher, and so on), music preference, religion, party affiliation, favorite charity, and so on.
+
+Locale data in a system may also change over time: country boundaries change; governments (and currencies) come and go: committees impose new standards; bugs are found and fixed in the source data; and so on. Thus the data needs to be versioned for stability over time.
+
+In general terms, the locale id is a parameter that is supplied to a particular service (date formatting, sorting, spell-checking, and so on). The format in this document does not attempt to represent all the data that could conceivably be used by all possible services. Instead, it collects together data that is in common use in systems and internationalization libraries for basic services. The main difference among locales is in terms of language; there may also be some differences according to different countries or regions. However, the line between _locales_ and _languages_, as commonly used in the industry, are rather fuzzy. Note also that the vast majority of the locale data in CLDR is in fact language data; all non-linguistic data is separated out into a separate tree. For more information, see _[Section 3.10 Language and Locale IDs](#Language_and_Locale_IDs)_.
+
+We will speak of data as being "in locale X". That does not imply that a locale _is_ a collection of data; it is simply shorthand for "the set of data associated with the locale id X". Each individual piece of data is called a _resource_ or _field_, and a tag indicating the key of the resource is called a _resource tag._
+
+
+<a name="Identifiers"></a>
+## <a name="Unicode_Language_and_Locale_Identifiers" href="#Unicode_Language_and_Locale_Identifiers">3 Unicode Language and Locale Identifiers</a>
+
+Unicode LDML uses stable identifiers based on [[BCP47](#BCP47)] for distinguishing among languages, locales, regions, currencies, time zones, transforms, and so on. There are many systems for identifiers for these entities. The Unicode LDML identifiers may not match the identifiers used on a particular target system. If so, some process of identifier translation may be required when using LDML data.
+
+The BCP 47 extensions (-u- and -t-) are described in _Section 3.6 [Unicode BCP 47 U Extension](#u_Extension)_ and _Section 3.7 [Unicode BCP 47 T Extension](#BCP47_T_Extension)_.
+
+### _<a name="Unicode_language_identifier" href="#Unicode_language_identifier">3.1 Unicode Language Identifier</a>_
+
+A _Unicode language identifier_ has the following structure (provided in EBNF (Perl-based)). The following table defines syntactically well-formed identifiers: they are not necessarily valid identifiers. For additional validity criteria, see the links on the right.
+
+<table>
+<tbody>
+ <tr><th></th><th>EBNF</th><th>Validity / Comments</th></tr>
+<tr>
+ <td><a name="unicode_language_id" href="#unicode_language_id"><code>unicode_language_id</code></a></td>
+ <td><pre><code>= "root"
+| (unicode_language_subtag
+ (sep unicode_script_subtag)?
+ | unicode_script_subtag)
+ (sep unicode_region_subtag)?
+ (sep unicode_variant_subtag)* ;</code></pre></td>
+ <td>"root" is treated as a special <code>unicode_language_subtag</code></td>
+</tr>
+<tr>
+ <td><a name="unicode_language_subtag" href="#unicode_language_subtag"><code>unicode_language_subtag</code></a></td>
+ <td><pre>= alpha{2,3} | alpha{5,8};</pre></td>
+ <td><a href="#unicode_language_subtag_validity">validity</a><br/>
+ <a href="https://github.com/unicode-org/cldr/blob/maint/maint-38/common/validity/language.xml">latest-data</a></td>
+</tr>
+<tr>
+ <td><a name="unicode_script_subtag" href="#unicode_script_subtag"><code>unicode_script_subtag</code></a></td>
+ <td><pre>= alpha{4} ;</pre></td>
+ <td><a href="#unicode_script_subtag_validity">validity</a><br/>
+ <a href="https://github.com/unicode-org/cldr/blob/maint/maint-38/common/validity/script.xml">latest-data</a></td>
+</tr>
+<tr>
+ <td><a name="unicode_region_subtag" href="#unicode_region_subtag"><code>unicode_region_subtag</code></a>
+ <td><pre>= (alpha{2} | digit{3}) ;</pre></td>
+ <td><a href="#unicode_region_subtag_validity">validity</a><br/>
+ <a href="https://github.com/unicode-org/cldr/blob/maint/maint-38/common/validity/region.xml">latest-data</a></td>
+</tr>
+<tr>
+ <td><a name="unicode_variant_subtag" href="#unicode_variant_subtag"><code>unicode_variant_subtag</code></a>
+ <td><pre>= (alphanum{5,8}<br/>| digit alphanum{3}) ;</pre></td>
+ <td><a href="#unicode_variant_subtag_validity">validity</a><br/>
+ <a href="https://github.com/unicode-org/cldr/blob/maint/maint-38/common/validity/vairant.xml">latest-data</a></td>
+</tr>
+ <tr><td><code>sep</code></td> <td><pre>= [-_] ;</pre></td></tr>
+<tr><td><code>digit</code></td> <td><pre>= [0-9] ;</pre></td></tr>
+<tr><td><code>alpha</code></td> <td><pre>= [A-Z a-z] ;</pre></td></tr>
+<tr><td><code>alphanum</code></td><td><pre>= [0-9 A-Z a-z] ;</pre></td></tr>
+</tbody></table>
+
+The semantics of the various subtags is explained in _Section 3.4 [Language Identifier Field Definitions](#Field_Definitions)_ ; there are also direct links from [`unicode_language_subtag`](#unicode_language_subtag) , etc. While theoretically the [`unicode_language_subtag`](#unicode_language_subtag) may have more than 3 letters through the IANA registration process, in practice that has not occurred. The [`unicode_language_subtag`](#unicode_language_subtag) "und" may be omitted when there is a [`unicode_script_subtag`](#unicode_script_subtag) ; for that reason [`unicode_language_subtag`](#unicode_language_subtag) values with 4 letters are not permitted. However, such [`unicode_language_id`](#unicode_language_id) values are not intended for general interchange, because they are not valid BCP 47 tags. Instead, they are intended for certain protocols such as the identification of transliterators or font ScriptLangTag values. For more information on language subtags with 4 letters, see [BCP 47 Language Tag to Unicode BCP 47 Locale Identifier](#Language_Tag_to_Locale_Identifier).
+
+For example, "en-US" (American English), "en_GB" (British English), "es-419" (Latin American Spanish), and "uz-Cyrl" (Uzbek in Cyrillic) are all valid Unicode language identifiers.
+
+### _<a name="Unicode_locale_identifier" href="#Unicode_locale_identifier">3.2 Unicode Locale Identifier</a>_
+
+A _Unicode locale identifier_ is composed of a Unicode language identifier plus (optional) locale extensions. It has the following structure. The semantics of the U and T extensions are explained in _Section 3.6 [Unicode BCP 47 U Extension](#u_Extension)_ and _Section 3.7 [Unicode BCP 47 T Extension](#BCP47_T_Extension)_. Other extensions and private use extensions are supported for pass-through. The following table defines syntactically _well-formed_ identifiers: they are not necessarily _valid_ identifiers. For additional validity criteria, see the links on the right.
+
+As is often the case, the complete syntactic constraints are not easily captured by ABNF, so there is a further condition: There cannot be more than one extension with the same singleton (-a-, …, -t-, -u-, …). Note that the private use extension (-x-) must come after all other extensions.
+
+| | EBNF | Validity / Comments |
+| ----------------------------------------------------------------------------------------------------- | ----------------------------------------------- | ------------------- |
+| <a name="unicode_locale_id" href="#unicode_locale_id">`unicode_locale_id`</a> | `= unicode_language_id`<br/> `extensions*`<br/> `pu_extensions? ;` |
+| <a name="extensions" href="#extensions">`extensions`</a> | `= unicode_locale_extensions`<br/>`\| transformed_extensions`<br/>` \| other_extensions ;` |
+| <a name="unicode_locale_extensions" href="#unicode_locale_extensions">`unicode_locale_extensions`</a> | `= sep [uU]`<br/> `((sep keyword)+`<br/> `\|(sep attribute)+ (sep keyword)*) ;` |
+| <a name="transformed_extensions" href="#transformed_extensions">`transformed_extensions`</a> | `= sep [tT]`<br/> `((sep tlang (sep tfield)*)`<br/> `\| (sep tfield)+) ;` |
+| <a name="pu_extensions" href="#pu_extensions">`pu_extensions`</a> | `= sep [xX]`<br/>` (sep alphanum{1,8})+ ;` |
+| <a name="other_extensions" href="#other_extensions">`other_extensions`</a> | `= sep [alphanum-[tTuUxX]]`<br/>` (sep alphanum{2,8})+ ;` |
+| `keyword`<br/>(Also known as `ufield`) | `= key (sep type)? ;` |
+| `key`<br/>(Also known as `ukey`) | `= alphanum alpha ;`<br/>(Note that this is narrower than in [[RFC6067](https://www.ietf.org/rfc/rfc6067.txt)], so that it is disjoint with tkey.) | [`validity`](#Key_Type_Definitions)<br/>[`latest-data`](https://github.com/unicode-org/cldr/blob/maint/maint-38/common/bcp47) |
+| `type`<br/>(Also known as `uvalue`) | `= alphanum{3,8}`<br/>` (sep alphanum{3,8})* ;` | [`validity`](#Key_Type_Definitions)<br/>[`latest-data`](https://github.com/unicode-org/cldr/blob/maint/maint-38/common/bcp47) |
+| `attribute` | `= alphanum{3,8} ;` |
+| <a name="unicode_subdivision_id" href="#unicode_subdivision_id">`unicode_subdivision_id`</a> | `= `[`unicode_region_subtag`](#unicode_region_subtag)` unicode_subdivision_suffix ;` | [`validity`](#unicode_subdivision_subtag_validity)<br/>[`latest-data`](https://github.com/unicode-org/cldr/blob/maint/maint-38/common/validity/subdivision.xml) |
+| `unicode_subdivision_suffix` | `= alphanum{1,4} ;` |
+| <a name="unicode_measure_unit" href="#unicode_measure_unit">`unicode_measure_unit`</a> | `= alphanum{3,8}`<br/>` (sep alphanum{3,8})* ;` | [`validity`](#Validity_Data)<br/>[`latest-data`](https://github.com/unicode-org/cldr/blob/maint/maint-38/common/validity/unit.xml) |
+| `tlang` | `= unicode_language_subtag`<br/>` (sep unicode_script_subtag)?`<br/>` (sep unicode_region_subtag)?`<br/>` (sep unicode_variant_subtag)* ;` | same as in unicode_language_id |
+| `tfield` | `= tkey tvalue;` | [`validity`](#BCP47_T_Extension)<br/>[`latest-data`](https://github.com/unicode-org/cldr/blob/maint/maint-38/common/bcp47) |
+| `tkey` | `= alpha digit ;` |
+| `tvalue` | `= (sep alphanum{3,8})+ ;` |
+
+For historical reasons, this is called a Unicode locale identifier. However, it really functions (with few exceptions) as a language identifier, and accesses language-based data. Except where it would be unclear, this document uses the term "locale" data loosely to encompass both types of data: for more information, see _[Section 3.10 Language and Locale IDs](#Language_and_Locale_IDs)_.
+
+As of the release of this specification, there were no other_extensions defined. The other_extensions are present in the syntax to allow implementations to preserve that information.
+
+As for terminology, the term _code_ may also be used instead of "subtag", and "territory" instead of "region". The primary language subtag is also called the _base language code_. For example, the base language code for "en-US" (American English) is "en" (English). The _type_ may also be referred to as a _value_ or _key-value_.
+
+The identifiers can vary in case and in the separator characters. The "-" and "\_" separators are treated as equivalent, although "-" is preferred.
+
+All identifier field values are case-insensitive. Although case distinctions do not carry any special meaning, an implementation of LDML should use the casing recommendations in [[BCP47](#BCP47)], especially when a Unicode locale identifier is used for locale data exchange in software protocols.
+
+#### <a name="Canonical_Unicode_Locale_Identifiers" href="#Canonical_Unicode_Locale_Identifiers">3.2.1 Canonical Unicode Locale Identifiers</a>
+
+A [`unicode_locale_id`](#unicode_locale_id) has _canonical syntax_ when:
+
+* It starts with a language subtag (those beginning with a script subtag are only for specialized use)
+* Casing
+ * Any script subtag inside unicode_language_id is in title case (eg, Hant)
+ * Any region subtag inside unicode_language_id is in uppercase (eg, DE)
+ * All other subtags are in lowercase (eg, en, fonipa)
+* Order
+ * Any variants are in alphabetical order (eg, en-fonipa-scouse, not en-scouse-fonipa)
+ * Any extensions are in alphabetical order by their singleton (eg, en-t-xxx-u-yyy, not en-u-yyy-t-xxx)
+ * All attributes are sorted in alphabetical order.
+ * All keywords and tfields are sorted by alphabetical order of their keys, within their respective extensions.
+ * Any type or tfield value "true" is removed.
+
+For example, the canonical form of "en-u-foo-bar-nu-thai-ca-buddhist-kk-true" is "en-u-bar-foo-ca-buddhist-kk-nu-thai". The attributes `"foo"` and `"bar"` in this example are provided only for illustration; no attribute subtags are defined by the current CLDR specification.
+
+**Note:** The current version of CLDR data uses some non-preferred _syntax_ for backward compatibility. This might be changed in future CLDR releases.
+
+* It uses uppercase letters for variant subtags, while the preferred forms are all lowercase.
+* It uses "\_" as the separator, while the preferred form of the separator is "-".
+* It uses "root", while the preferred form is "und".
+
+A [`unicode_locale_id`](#unicode_locale_id) is in _canonical form_ when it has canonical syntax and contains no aliased subtags. A [`unicode_locale_id`](#unicode_locale_id) can be transformed into canonical form according to [Annex C. LocaleId Canonicalization](#LocaleId_Canonicalization).
+
+A [`unicode_locale_id`](#unicode_locale_id) is _maximal_ when the [`unicode_language_id`](#unicode_language_id) and tlang (if any) have been transformed by the Add Likely Subtags operation in _Section 4.3 [Likely Subtags](#Likely_Subtags)_, excluding "und".
+
+> _Example:_ the maxmal form of ja-Kana-t-it is ja-Kana-JP-t-it-latn-it
+
+Note that the _latn_ and final _it_ don't use any uppercase characters, since they are not inside unicode_language_id.
+
+Two [`unicode_locale_ids`](#unicode_locale_id) are _equivalent_ when their maximal canonical forms are identical.
+
+> _Example:_ "IW-HEBR-u-ms-imperial" ~ "he-u-ms-uksystem"
+
+The equivalence relationship may change over time, such as when subtags are deprecated or likely subtag mappings change. For example, if two countries were to merge, then various subtags would become deprecated. These kinds of changes are generally very infrequent.
+
+### <a name="BCP_47_Conformance" href="#BCP_47_Conformance">3.3 BCP 47 Conformance</a>
+
+Unicode language and locale identifiers inherit the design and the repertoire of subtags from [[BCP47](#BCP47)] Language Tags. There are some extensions and restrictions made for the use of the Unicode locale identifier in CLDR:
+
+* It does not allow for the full syntax of [[BCP47](#BCP47)]:
+ * No extlang subtags are allowed (as in the BCP 47 canonical form, see BCP 47 [Section 4.5](https://tools.ietf.org/html/bcp47#section-4.5) and [Section 3.1.7](https://tools.ietf.org/ml/bcp47#section-3.1.7))
+ * No irregular BCP 47 legacy language tags (marked as “Type: grandfathered” in BCP 47) are allowed (these are all deprecated in BCP 47)
+ * A tag must not start with the subtag "x": thus a _privateuse_ (eg x-abc) can only be after a language subtag, like "und"
+* It allows for certain semantic additions and constraints:
+ * Certain codes that are private-use in BCP-47 and ISO are given semantics by LDML
+ * Each macrolanguage has an identified primary encompassed language, which is treated as an alias for the macrolanguage, and thus is replaced when canonicalizing (as allowed by BCP 47, see [Section 4.1.2](https://tools.ietf.org/html/bcp47#section-4.1.2))
+* It allows certain syntax for backwards compatibility (not BCP 47-compatible):
+ * The "\_" character for field separator characters, as well as the "-" used in [[BCP47](#BCP47)] (however, the canonical form is with "-")
+ * The subtag "root" to indicate the generic locale used as the parent of all languages in the CLDR data model ("und" can be used instead)
+ * The language tag may begin with a script subtag rather than a language subtag. This is specialized use only, and not required for CLDR conformance.
+
+There are thus two subtypes of Unicode locale identifiers:
+
+* the term _Unicode CLDR locale identifier_ applies where the backwards compatibility syntax is used.
+* the term _Unicode BCP 47 locale identifier_ applies otherwise. A _Unicode BCP 47 locale identifier_ is also a valid BCP 47 language tag.
+
+#### <a name="BCP_47_Language_Tag_Conversion" href="#BCP_47_Language_Tag_Conversion">3.3.1 BCP 47 Language Tag Conversion</a>
+
+The different identifiers can be converted to one another as described in this section.
+
+##### <a name="Language_Tag_to_Locale_Identifier" href="#Language_Tag_to_Locale_Identifier">BCP 47 Language Tag to Unicode BCP 47 Locale Identifier</a>
+
+A valid [[BCP47](#BCP47)] language tag can be converted to a valid Unicode BCP 47 locale identifier according to [Annex C. LocaleId Canonicalization](#LocaleId_Canonicalization)
+
+The result is a Unicode BCP 47 locale identifier, in canonical form. It is both a BCP 47 language tag and a Unicode locale identifier. Because the process maps from all BCP 47 language tags into a subset of BCP 47 language tags, the format changes are not reversible, much as a lowercase transformation of the string “McGowan” is not reversible.
+
+_Examples_
+
+| BCP 47 language tag | Unicode BCP 47 locale identifier | Comments |
+| ------------------- | -------------------------------- | -------- |
+| `en-US` | `en-US` | no changes |
+| `iw-FX` | `he-FR` | BCP 47 canonicalization [1] |
+| `cmn-TW` | `zh-TW` | language alias [2] |
+| `zh-cmn-TW` | `zh-TW` | BCP 47 canonicalization [1], then language alias [2] |
+| `sr-CS` | `sr-RS` | territory alias [3] |
+| `sh` | `sr-Latn` | multiple replacement subtags [2.1] |
+| `sh-Cyrl` | `sr-Cyrl` | no replacement with multiple replacement subtags [2.1 doesn't apply] |
+| `hy-SU` | `hy-AM` | multiple territory values [3.2]<br/>`<territoryAlias type="SU" replacement="RU AM AZ BY EE GE KZ KG LV LT MD TJ TM UA UZ" …/>` |
+| `i-enochian` | `und-x-i-enochian` | prefix any legacy language tags (marked as “Type: grandfathered” in BCP 47) with "und-x-" [4] |
+| `x-abc` | `und-x-abc` | prefix with "und-", so that there is always a base language subtag [5] |
+
+##### <a name="Unicode_Locale_Identifier_CLDR_to_BCP_47" href="#Unicode_Locale_Identifier_CLDR_to_BCP_47">Unicode Locale Identifier: CLDR to BCP 47</a>
+
+A Unicode CLDR locale identifier can be converted to a valid [[BCP47](#BCP47)] language tag (which is also a Unicode BCP 47 locale identifier) by performing the following transformation.
+
+1. Replace the "\_" separators with "-"
+2. Replace the special language identifier "root" with the BCP 47 primary language tag "und"
+3. Add an initial "und" primary language subtag if the first subtag is a script.
+
+_Examples:_
+
+| Unicode CLDR locale identifier | BCP 47 language tag | Comments |
+| ------------------------------ | -------------------- | ---------------------- |
+| `en_US` | `en-US` | change separator [1] |
+| `de_DE_u_co_phonebk` | `de-DE-u-co-phonebk` | change separator [1] |
+| `root` | `und` | change to "und" [2] |
+| `root_u_cu_usd` | `und-u-cu-usd` | change to "und" [1, 2] |
+| `Latn_DE` | `und-Latn-DE` | add "und" [1, 3] |
+
+##### <a name="Unicode_Locale_Identifier_BCP_47_to_CLDR" href="#Unicode_Locale_Identifier_BCP_47_to_CLDR">Unicode Locale Identifier: BCP 47 to CLDR</a>
+
+A Unicode BCP 47 locale identifier can be transformed into a Unicode CLDR locale identifier by performing the following transformation.
+
+1. the separator is changed to "\_"
+2. the primary language subtag "und" is replaced with "root" if no script, region, or variant subtags are present.
+
+_Examples:_
+
+| BCP 47 language tag | Unicode CLDR locale identifier | Comments |
+| ------------------- | ------------------------------ | -------- |
+| `en-US` | `en_US` | changes separator [1] |
+| `und` | `root` | changes to "root", because no script, region, or variant tag is present [2] |
+| `und-US` | `und_US` | no change to "und", because a region subtag is present [1] |
+| `und-u-cu-USD` | `root_u_cu_usd` | changes to "root", because no script, region, or variant tag is present [1, 2] |
+
+### <a name="Field_Definitions" href="#Field_Definitions">3.4 Language Identifier Field Definitions</a>
+
+Unicode language and locale identifier field values are provided in the following table. Note that some private-use BCP 47 field values are given specific meanings in CLDR. While field values are based on [[BCP47](#BCP47)] subtag values, their validity status in CLDR is specified by means of machine-readable files in the [common/validity/](https://github.com/unicode-org/cldr-staging/tree/master/production/common/validity) subdirectory, such as language.xml. For the format of those files and more information, see _[Section 3.11 Validity Data](#Validity_Data)_.
+
+##### <a name="Language_Locale_Field_Definitions" href="#Language_Locale_Field_Definitions">Language Identifier Field Definitions</a>
+
+#### <a name="unicode_language_subtag_validity" href="#unicode_language_subtag_validity">`unicode_language_subtag`</a> (also known as a _Unicode base language code_)
+
+Subtags in the language.xml file (see _Section 3.11 [Validity Data](#Validity_Data)_ ). These are based on [[BCP47](#BCP47)] subtag values marked as **Type: language**
+
+ISO 639-3 introduces the notion of "macrolanguages", where certain ISO 639-1 or ISO 639-2 codes are given broad semantics, and additional codes are given for the narrower semantics. For backwards compatibility, Unicode language identifiers retain use of the narrower semantics for these codes. For example:
+
+| For | Use | _Not_ |
+| --------------------------- | ----- | ----- |
+| Standard Chinese (Mandarin) | `zh` | `cmn` |
+| Standard Arabic | `ar` | `arb` |
+| Standard Malay | `ms` | `zsm` |
+| Standard Swahili | `sw` | `swh` |
+| Standard Uzbek | `uz` | `uzn` |
+| Standard Konkani | `kok` | `knn` |
+| Northern Kurdish | `ku` | `kmr` |
+
+If a language subtag matches the `type` attribute of a `languageAlias` element, then the replacement value is used instead. For example, because "swh" occurs in `<languageAlias type="swh" replacement="sw" />` , "sw" must be used instead of "swh". Thus Unicode language identifiers use "ar-EG" for Standard Arabic (Egypt), not "arb-EG"; they use "zh-TW" for Mandarin Chinese (Taiwan), not "cmn-TW".
+
+The private use codes listed as **excluded** in _Section 3.5.3 [Private Use Codes](#Private_Use_Codes)_ will never be given specific semantics in Unicode identifiers, and are thus safe for use for other purposes by other applications.
+
+The CLDR provides data for normalizing language/locale codes, including mapping overlong codes like "eng-840" or "eng-USA" to the correct code "en-US"; see the **[Aliases](https://unicode-org.github.io/cldr-staging/charts/38/supplemental/aliases.html)** Chart.
+
+The following are special language subtags:
+
+| | Name | Comment |
+| ----- | --------------------- | ------- |
+| `mis` | Uncoded languages | The content is in a language that doesn't yet have an ISO 639 code. |
+| `mul` | Multiple languages | The content contains more than one language or text that is simultaneously in multiple languages (such as brand names). |
+| `zxx` | No linguistic content | The content is not in any particular languages (such as images, symbols, etc.) |
+
+#### <a name="unicode_script_subtag_validity" href="#unicode_script_subtag_validity">`unicode_script_subtag`</a> (also known as a _Unicode script code_)
+
+Subtags in the script.xml file (see _Section 3.11 [Validity Data](#Validity_Data)_). These are based on [[BCP47](#BCP47)] subtag values marked as **Type: script**
+
+In most cases the script is not necessary, since the language is only customarily written in a single script. Examples of cases where it is used are:
+
+| Subtag | Description |
+| --------- | ----------- |
+| `az_Arab` | Azerbaijani in Arabic script |
+| `az_Cyrl` | Azerbaijani in Cyrillic script |
+| `az_Latn` | Azerbaijani in Latin script |
+| `zh_Hans` | Chinese, in simplified script (=zh, zh-Hans, zh-CN, zh-Hans-CN) |
+| `zh_Hant` | Chinese, in traditional script |
+
+Unicode identifiers give specific semantics to certain Unicode Script values. For more information, see also [[UAX24](https://www.unicode.org/reports/tr41/#UAX24)]:
+
+<!-- HTML: rospan, colspan -->
+<table><tbody>
+<tr><td><code>Qaag</code></td>
+ <td>Zawgyi</td>
+ <td colspan="2">Qaag is a special script code for identifying the non-standard use of Myanmar characters for display with the Zawgyi font. The purpose of the code is to enable migration to standard, interoperable use of Unicode by providing an identifier for Zawgyi for tagging text, applications, input methods, font tables, transformations, and other mechanisms used for migration.</td></tr>
+<tr><td><code>Qaai</code></td>
+ <td>Inherited</td>
+ <td colspan="2"><b>deprecated</b>: the <i>canonicalized</i> form is Zinh</td></tr>
+<tr><td><code>Zinh</code></td>
+ <td>Inherited</td>
+ <td colspan="2"> </td></tr>
+<tr><td><code>Zsye</code></td>
+ <td>Emoji Style</td>
+ <td colspan="2">Prefer emoji style for characters that have both text and emoji styles available.</td></tr>
+<tr><td><code>Zsym</code></td>
+ <td>Text Style</td>
+ <td colspan="2">Prefer text style for characters that have both text and emoji styles available.</td></tr>
+<tr><td rowspan="7"><code>Zxxx</code></td>
+ <td rowspan="7">Unwritten</td>
+ <td colspan="2">Indicates spoken or otherwise unwritten content. For example:</td></tr>
+
+<tr><th>Sample(s)</th><th>Description</th></tr>
+<tr><td>uz</td><td>either written or spoken content</td></tr>
+<tr><td>uz-Latn <i>or</i> uz-Arab</td><td>written-only content (particular script)</td></tr>
+<tr><td>uz-Zyyy</td><td>written-only content (unspecified script)</td></tr>
+<tr><td>uz-Zxxx</td><td>spoken-only content</td></tr>
+<tr><td>uz-Latn, uz-Zxxx</td><td>both specific written and spoken content (using a <i>language list</i>)</td></tr>
+
+<tr><td><code>Zyyy</code></td>
+ <td>Common</td>
+ <td colspan="2"> </td></tr>
+<tr><td><code>Zzzz</code></td>
+ <td>Unknown</td>
+<td colspan="2"> </td></tr>
+</tbody></table>
+
+The private use subtags listed as **excluded** in _Section 3.5.3 [Private Use Codes](#Private_Use_Codes)_ will never be given specific semantics in Unicode identifiers, and are thus safe for use for other purposes by other applications.
+
+#### <a name="unicode_region_subtag_validity" href="#unicode_region_subtag_validity">`unicode_region_subtag`</a> (also known as a _Unicode region code,_ or _a Unicode territory code)
+
+Subtags in the region.xml file (see _Section 3.11 [Validity Data](#Validity_Data)_). These are based on [[BCP47](#BCP47)] subtag values marked as **Type: region**
+
+Unicode identifiers give specific semantics to the following subtags:
+
+| | Name | Comment | ISO 3166-1 status |
+| ---- | ---------------------------- | ------- | ----------------- |
+| `QO` | Outlying Oceania | countries in Oceania [009] that do not have a [subcontinent](https://unicode-org.github.io/cldr-staging/charts/38/supplemental/territory_containment_un_m_49.html). | private use |
+| `QU` | European Union | **deprecated**: the _canonicalized_ form is EU | private use |
+| `UK` | United Kingdom | **deprecated**: the _canonicalized_ form is GB | exceptionally reserved |
+| `XA` | Pseudo-Accents | special code indicating derived testing locale with English + added accents and lengthened | private use |
+| `XB` | Pseudo-Bidi | special code indicating derived testing locale with forced RTL English | private use |
+| `XK` | Kosovo | industry practice | private use |
+| `ZZ` | Unknown or Invalid Territory | used in APIs or as replacement for invalid code | private use |
+
+
+The private use subtags listed as **excluded** in _Section 3.5.3 [Private Use Codes](#Private_Use_Codes)_ will normally never be given specific semantics in Unicode identifiers, and are thus safe for use for other purposes by other applications. However, LDML may follow widespread industry practice in the use of some of these codes, such as for XK.
+
+The CLDR provides data for normalizing territory/region codes, including mapping overlong codes like "eng-840" or "eng-USA" to the correct code "en-US".
+
+Special Codes:
+
+* The territory code 'UK' has a special status in ISO, and is used for the domain name instead of GB. It is thus recognized by CLDR as being an alternate (unnormalized) form of 'GB'.
+* The territory code '001' (the World) is used to indicate a standardized form, such as "ar-001" for Modern Standard Arabic.
+
+#### <a name="unicode_variant_subtag_validity" href="#unicode_variant_subtag_validity">`unicode_variant_subtag`</a> (also known as a _Unicode language variant code_)
+
+Subtags in the variant.xml file (see _Section 3.11 [Validity Data](#Validity_Data)_). These are based on [[BCP47](#BCP47)] subtag values marked as **Type: variant**. The sequence of variant tags must not have any duplicates: thus de-1996-fonipa-1996 is invalid, while de-1996-fonipa and de-fonipa-1996 are both valid.
+
+CLDR provides data for normalizing variant codes. About handling of the "POSIX" variant see _Section 3.8.2, [Legacy Variants](#Legacy_Variants)_.
+
+_Examples:_
+
+```
+en
+fr_BE
+zh-Hant-HK
+```
+
+_Deprecated_ codes—such as QU above—are valid, but strongly discouraged.
+
+A locale that only has a language subtag (and optionally a script subtag) is called a _language locale_; one with both language and territory subtag is called a _territory locale_ (or _country locale_).
+
+### <a name="Special_Codes" href="#Special_Codes">3.5 Special Codes</a>
+
+#### <a name="Unknown_or_Invalid_Identifiers" href="#Unknown_or_Invalid_Identifiers">3.5.1 Unknown or Invalid Identifiers</a>
+
+The following identifiers are used to indicate an unknown or invalid code in Unicode language and locale identifiers. For Unicode identifiers, the region code uses a private use ISO 3166 code, and Time Zone code uses an additional code; the others are defined by the relevant standards. When these codes are used in APIs connected with Unicode identifiers, the meaning is that either there was no identifier available, or that at some point an input identifier value was determined to be invalid or ill-formed.
+
+| Code Type | Value | Description in Referenced Standards |
+| ----------- | ------ | ----------------------------------- |
+| Language | `und` | Undetermined language, also used for “root” |
+| Script | `Zzzz` | Code for uncoded script, Unknown [[UAX24](https://www.unicode.org/reports/tr41/#UAX24)] |
+| Region | `ZZ` | Unknown or Invalid Territory |
+| Currency | `XXX` | The codes assigned for transactions where no currency is involved |
+| Time Zone | `unk` | Unknown or Invalid Time Zone |
+| Subdivision | _\<region>zzzz_ | Unknown or Invalid Subdivision |
+
+When only the script or region are known, then a locale ID will use "und" as the language subtag portion. Thus the locale tag "und_Grek" represents the Greek script; "und_US" represents the US territory.
+
+#### <a name="Numeric_Codes" href="#Numeric_Codes">3.5.2 Numeric Codes</a>
+
+For region codes, ISO and the UN establish a mapping to three-letter codes and numeric codes. However, this does not extend to the private use codes, which are the codes 900-999 (total: 100), and AAA, QMA-QZZ, XAA-XZZ, and ZZZ (total: 1092). Unicode identifiers supply a standard mapping to these: for the numeric codes, it uses the top of the numeric private use range; for the 3-letter codes it doubles the final letter. These are the resulting mappings for all of the private use region codes:
+
+| Region | UN/ISO Numeric | ISO 3-Letter |
+| -------- | -------------- | ------------ |
+| `AA` | `958` | `AAA` |
+| `QM..QZ` | `959..972` | `QMM..QZZ` |
+| `XA..XZ` | `973..998` | `XAA..XZZ` |
+| `ZZ` | `999` | `ZZZ` |
+
+For script codes, ISO 15924 supplies a mapping (however, the numeric codes are not in common use):
+
+| Script | Numeric |
+| ------------ | ---------- |
+| `Qaaa..Qabx` | `900..949` |
+
+#### 3.5.3 <a name="Private_Use_Codes" href="#Private_Use_Codes">Private Use Codes</a>
+
+Private use codes fall into three groups.
+
+* **defined:** those that are given particular semantics currently in CLDR
+* **reserved:** those that may be given particular semantics in future versions of CLDR
+* **excluded:** those that will never be given particular CLDR semantics in the future, and thus can normally be used by applications without worrying about collisions. However, CLDR may follow widespread industry practice in the use of some of these codes, such as for XA, XB, and XK.
+
+###### <a name="Private_Use_CLDR" href="#Private_Use_CLDR">Private Use Codes in CLDR</a>
+
+| category | status | codes |
+| ------------- | -------- | ----- |
+| base language | defined | none |
+| | reserved | qaa..qfy |
+| | excluded | qfz..qtz |
+| script | defined | Qaai (obsolete), Qaag |
+| | reserved | Qaaa..Qaaf Qaah Qaaj..Qaap |
+| | excluded | Qaaq..Qabx |
+| region | defined | QO, QU, UK, XA, XB, XK, ZZ |
+| | reserved | AA QM..QN QP..QT QV..QZ |
+| | excluded | XC..XJ, XL..XZ |
+| timezone | defined | IANA: Etc/Unknown<br/>bcp47: as listed in bcp47/timezone.xml |
+| | reserved | bcp47: all non-5 letter codes not starting with x |
+| | excluded | bcp47: all non-5 letter codes starting with x |
+
+See also _Section 3.5.1 [Unknown or Invalid Identifiers](#Unknown_or_Invalid_Identifiers)_.
+
+<a name="Locale_Extension_Key_and_Type_Data"></a>
+### <a name="u_Extension" href="#u_Extension">3.6 Unicode BCP 47 U Extension</a>
+
+[[BCP47](#BCP47)] Language Tags provides a mechanism for extending language tags for use in various applications by extension subtags. Each extension subtag is identified by a single alphanumeric character subtag assigned by IANA.
+
+The Unicode Consortium has registered and is the maintaining authority for two BCP 47 language tag extensions: the extension 'u' for Unicode locale extension [[RFC6067](#RFC6067)] and extension 't' for transformed content [[RFC6497](#RFC6497)]. The Unicode BCP 47 extension data defines the complete list of valid subtags.
+
+These subtags are all in lowercase (that is the canonical casing for these subtags), however, subtags are case-insensitive and casing does not carry any specific meaning. All subtags within the Unicode extensions are alphanumeric characters in length of two to eight that meet the rule `extension` in the [[BCP47](#BCP47)]
+
+**The -u- Extension.** The syntax of 'u' extension subtags is defined by the rule `unicode_locale_extensions` in [Section 3.2 Unicode locale identifier](#Unicode_locale_identifier), except the separator of subtags `sep` must be always hyphen '-' when the extension is used as a part of BCP 47 language tag.
+
+A 'u' extension may contain multiple `attribute` s or `keyword` s as defined in [Section 3.2 Unicode locale identifier](#Unicode_locale_identifier). The canonical syntax is defined as in [3.2.1 Canonical Unicode Locale Identifiers](#Canonical_Unicode_Locale_Identifiers).
+
+_See also [Unicode Extensions for BCP 47](http://cldr.unicode.org/index/bcp47-extension) on the CLDR site._
+
+#### <a name="Key_And_Type_Definitions_" href="#Key_And_Type_Definitions_">3.6.1 Key And Type Definitions</a>
+
+The following chart contains a set of U extension key values that are currently available, with a description or sampling of the U extension type values. Each category is associated with an XML file in the bcp47 directory.
+
+For the complete list of valid keys and types defined for Unicode locale extensions, see [Section 3.6.4 U Extension Data Files](#Unicode_Locale_Extension_Data_Files). For information on the process for adding new _key_/_type_, see [[LocaleProject](#localeProject)].
+
+Most type values are represented by a single subtag in the current version of CLDR. There are exceptions, such as types used for key "ca" (calendar) and "kr" (collation reordering). If the type is not included, then the type value "true" is assumed. Note that the default for key with a possible "true" value is often "false", but may not always be. Note also that "true"/"True" is not a valid script code, since [the ISO 15924 Registration Authority has exceptionally reserved it](https://www.unicode.org/iso15924/codelists.html), which means that it will not be assigned for any purpose.
+
+Note that canonicalization does not change invalid locales to valid locales. For example, und-u-ka canonicalizes to und-u-ka-true, but:
+
+1. "und-u-ka-true" — is invalid, since ‘yes’ is not a valid value for ka
+2. "und-u-ka" — is invalid, since the value “true” is assumed whenever there is no value, and ‘true’ is not a valid value for ka
+
+The BCP 47 form for keys and types is the canonical form, and recommended. Other aliases are included for backwards compatibility.
+
+##### <a name="Key_Type_Definitions" href="#Key_Type_Definitions">Key/Type Definitions</a>
+
+<!-- HTML: rowspan, colspan -->
+<table><tbody>
+<tr><th>key<br>(old key name)</th><th>key description</th><th>example type<br>(old type name)</th><th>type description</th></tr>
+
+<tr><td colspan="4"><b>A <a name="UnicodeCalendarIdentifier" id="UnicodeCalendarIdentifier" href="#UnicodeCalendarIdentifier">Unicode Calendar Identifier</a> defines a type of calendar. The valid values are those <i>name</i> attribute values in the <i>type</i> elements of key name="ca" in bcp47/<a href="https://github.com/unicode-org/cldr/tree/latest/common/bcp47/calendar.xml" target="_blank">calendar.xml</a></b>.</td></tr>
+<tr><td rowspan="10">"ca"<br>(calendar)</td>
+ <td rowspan="10">Calendar algorithm<br><br><i>(For information on the calendar algorithms associated with the data used with these, see [<a href="#Calendars">Calendars</a>].)</i></td>
+ <td>"buddhist"</td>
+ <td>Thai Buddhist calendar (same as Gregorian except for the year)</td></tr>
+ <tr><td>"chinese"</td>
+ <td>Traditional Chinese calendar</td></tr>
+ <tr><td colspan="2">…</td></tr>
+ <tr><td>"gregory"<br>(gregorian)</td>
+ <td>Gregorian calendar</td></tr>
+ <tr><td colspan="2">…</td></tr>
+ <tr><td>"islamic"</td>
+ <td>Islamic calendar</td></tr>
+ <tr><td>"islamic-civil"</td>
+ <td>Islamic calendar, tabular (intercalary years [2,5,7,10,13,16,18,21,24,26,29] - civil epoch)</td></tr>
+ <tr><td>"islamic-umalqura"</td>
+ <td>Islamic calendar, Umm al-Qura</td></tr>
+ <tr><td colspan="2">…</td></tr>
+ <tr><td colspan="2"><b>Note:</b> <i>Some calendar types are represented by two subtags. In such cases, the first subtag specifies a generic calendar type and the second subtag specifies a calendar algorithm variant. The CLDR uses generic calendar types (single subtag types) for tagging data when calendar algorithm variations within a generic calendar type are irrelevant. For example, type "islamic" is used for specifying Islamic calendar formatting data for all Islamic calendar types, including "islamic-civil" and "islamic-umalqura".</i></td></tr>
+
+<tr><td colspan="4"><b>A <a name="UnicodeCurrencyFormatIdentifier" id="UnicodeCurrencyFormatIdentifier" href="#UnicodeCurrencyFormatIdentifier">Unicode Currency Format Identifier</a> defines a style for currency formatting. The valid values are those <i>name</i> attribute values in the <i>type</i> elements of key name="cf" in bcp47/<a href="https://github.com/unicode-org/cldr/tree/latest/common/bcp47/currency.xml" target="_blank">currency.xml</a></b>.</td></tr>
+<tr><td rowspan="2">"cf"</td>
+ <td rowspan="2">Currency Format style</td>
+ <td>"standard"</td><td>Negative numbers use the minusSign symbol (the default).</td></tr>
+ <tr><td>"account"</td><td>Negative numbers use parentheses or equivalent.</td></tr>
+
+<tr><td colspan="4"><b>A <a name="UnicodeCollationIdentifier" id="UnicodeCollationIdentifier" href="#UnicodeCollationIdentifier">Unicode Collation Identifier</a> defines a type of collation (sort order). The valid values are those <i>name</i> attribute values in the <i>type</i> elements of bcp47/<a href="https://github.com/unicode-org/cldr/tree/latest/common/bcp47/collation.xml" target="_blank">collation.xml</a></b>.</td></tr>
+<tr><td colspan="4"><i>For information on each collation setting parameter, from <b>ka</b> to <b>vt</b>, see <a href="tr35-collation.md#Setting_Options">Setting Options</a></i></td></tr>
+<tr><td rowspan="9">"co"<br>(collation)</td>
+ <td rowspan="9">Collation type</td>
+ <td>"standard"</td>
+ <td>The default ordering for each language. For root it is based on the [<a href="#DUCET">DUCET</a>] (Default Unicode Collation Element Table): see <i><a href="tr35-collation.md#Root_Collation">Root Collation</a></i>. Each other locale is based on that, except for appropriate modifications to certain characters for that language.</td></tr>
+ <tr><td>"search"</td>
+ <td>A special collation type dedicated for string search—it is not used to determine the relative order of two strings, but only to determine whether they should be considered equivalent for the specified strength, using the string search matching rules appropriate for the language. Compared to the normal collator for the language, this may add or remove primary equivalences, may make additional characters ignorable or change secondary equivalences, and may modify contractions to allow matching within them, depending on the desired behavior. For example, in Czech, the distinction between ‘a’ and ‘á’ is secondary for normal collation, but primary for search; a search for ‘a’ should never match ‘á’ and vice versa. A search collator is normally used with strength set to PRIMARY or SECONDARY (should be SECONDARY if using “asymmetric” search as described in the [<a href="https://www.unicode.org/reports/tr41/#UTS10">UCA</a>] section Asymmetric Search). The search collator in root supplies matching rules that are appropriate for most languages (and which are different than the root collation behavior); language-specific search collators may be provided to override the matching rules for a given language as necessary.</td></tr>
+ <tr><td colspan="2"><p>Other keywords provide additional choices for certain locales; <i>they only have effect in certain locales.</i></p></td></tr>
+ <tr><td colspan="2">…</td></tr>
+ <tr><td>"phonetic"</td>
+ <td>Requests a phonetic variant if available, where text is sorted based on pronunciation. It may interleave different scripts, if multiple scripts are in common use.</td></tr>
+ <tr><td>"pinyin"</td>
+ <td>Pinyin ordering for Latin and for CJK characters; that is, an ordering for CJK characters based on a character-by-character transliteration into a pinyin. (used in Chinese)</td></tr>
+ <tr><td>"reformed"</td><td>Reformed collation (such as in Swedish)</td></tr>
+ <tr><td>"searchjl"</td>
+ <td>Special collation type for a modified string search in which a pattern consisting of a sequence of Hangul initial consonants (jamo lead consonants) will match a sequence of Hangul syllable characters whose initial consonants match the pattern. The jamo lead consonants can be represented using conjoining or compatibility jamo. This search collator is best used at SECONDARY strength with an "asymmetric" search as described in the [<a href="https://www.unicode.org/reports/tr41/#UTS10">UCA</a>] section Asymmetric Search and obtained, for example, using ICU4C's usearch facility with attribute USEARCH_ELEMENT_COMPARISON set to value USEARCH_PATTERN_BASE_WEIGHT_IS_WILDCARD; this ensures that a full Hangul syllable in the search pattern will only match the same syllable in the searched text (instead of matching any syllable with the same initial consonant), while a Hangul initial consonant in the search pattern will match any Hangul syllable in the searched text with the same initial consonant.</td></tr>
+ <tr><td colspan="2">…</td></tr>
+
+<tr><td colspan="4"><b>A <a name="UnicodeCurrencyIdentifier" id="UnicodeCurrencyIdentifier" href="#UnicodeCurrencyIdentifier">Unicode Currency Identifier</a> defines a type of currency. The valid values are those <i>name</i> attribute values in the <i>type</i> elements of key name="cu" in bcp47/<a href="https://github.com/unicode-org/cldr/tree/latest/common/bcp47/currency.xml" target="_blank">currency.xml</a>.</b></td></tr>
+<tr><td>"cu"<br>(currency)</td>
+ <td>Currency type</td>
+ <td><i>ISO 4217 code,</i><p><i>plus others in common use</i></p></td>
+ <td><p>Codes consisting of 3 ASCII letters that are or have been valid in ISO 4217, plus certain additional codes that are or have been in common use. The list of countries and time periods associated with each currency value is available in <a href="tr35-numbers.md#Supplemental_Currency_Data">Supplemental Currency Data</a>, plus the default number of decimals.</p><p>The XXX code is given a broader interpretation as <i>Unknown or Invalid Currency</i>.</p></td></tr>
+
+<tr><td colspan="4"><b>A <a name="UnicodeDictionaryBreakExclusionIdentifier" id="UnicodeDictionaryBreakExclusionIdentifier" href="#UnicodeDictionaryBreakExclusionIdentifier">Unicode Dictionary Break Exclusion Identifier</a> specifies scripts to be excluded from dictionary-based text break (for words and lines). The valid values are of one or more items of type SCRIPT_CODE as specified in the <i>name</i> attribute value in the <i>type</i> element of key name="dx" in bcp47/<a href="https://github.com/unicode-org/cldr/tree/latest/common/bcp47/segmentation.xml" target="_blank">segmentation.xml</a>.</b></td></tr>
+<tr><td>"dx"</td>
+ <td>Dictionary break script exclusions</td>
+ <td><i><code><a href="#unicode_script_subtag">unicode_script_subtag</a></code> values</i></td>
+ <td><p>One or more items of type SCRIPT_CODE, which are valid <code><a href="#unicode_script_subtag">unicode_script_subtag</a></code> values.</p>
+ <p>The code Zyyy (Common) can be specified to exclude all scripts, in which case it should be the only SCRIPT_CODE value specified.</p></td></tr>
+
+<tr><td colspan="4"><b>A <a name="UnicodeEmojiPresentationStyleIdentifier" id="UnicodeEmojiPresentationStyleIdentifier" href="#UnicodeEmojiPresentationStyleIdentifier">Unicode Emoji Presentation Style Identifier</a> specifies a request for the preferred emoji presentation style. This can be used as part of the value for an HTML lang attribute, for example <code><html lang="sr-Latn-u-em-emoji"></code>. The valid values are those <i>name</i> attribute values in the <i>type</i> elements of key name="em" in bcp47/<a href="https://github.com/unicode-org/cldr/tree/latest/common/bcp47/variant.xml" target="_blank">variant.xml</a></b>.</td></tr>
+<tr><td rowspan="3">"em"</td>
+ <td rowspan="3">Emoji presentation style</td>
+ <td>"emoji"</td>
+ <td>Use an emoji presentation for emoji characters if possible.</td></tr>
+ <tr><td>"text"</td>
+ <td>Use a text presentation for emoji characters if possible.</td></tr>
+ <tr><td>"default"</td><td>Use the default presentation for emoji characters as specified in UTR #51 Section 4, <a href="https://www.unicode.org/reports/tr51/#Presentation_Style">Presentation Style</a>.</td></tr>
+
+<tr><td colspan="4"><b>A <a name="UnicodeFirstDayIdentifier" id="UnicodeFirstDayIdentifier" href="#UnicodeFirstDayIdentifier">Unicode First Day Identifier</a> defines the preferred first day of the week for calendar display. Specifying "fw" in a locale identifier overrides the default value specified by supplemental week data (see Part 4 Dates, section 4.3 <a href="tr35-dates.md#Week_Data">Week Data</a>). The valid values are those <i>name</i> attribute values in the <i>type</i> elements of key name="fw" in bcp47/<a href="https://github.com/unicode-org/cldr/tree/latest/common/bcp47/calendar.xml" target="_blank">calendar.xml</a></b>.</td></tr>
+<tr><td rowspan="4">"fw"</td>
+ <td rowspan="4">First day of week</td>
+ <td>"sun"</td>
+ <td>Sunday</td></tr>
+ <tr><td>"mon"</td>
+ <td>Monday</td></tr>
+ <tr><td colspan="2">…</td></tr>
+ <tr><td>"sat"</td>
+ <td>Saturday</td></tr>
+
+<tr><td colspan="4"><b>A <a name="UnicodeHourCycleIdentifier" id="UnicodeHourCycleIdentifier" href="#UnicodeHourCycleIdentifier">Unicode Hour Cycle Identifier</a> defines the preferred time cycle. Specifying "hc" in a locale identifier overrides the default value specified by supplemental time data (see Part 4 Dates, section 4.4 <a href="tr35-dates.md#Time_Data">Time Data</a>). The valid values are those <i>name</i> attribute values in the <i>type</i> elements of key name="hc" in bcp47/<a href="https://github.com/unicode-org/cldr/tree/latest/common/bcp47/calendar.xml" target="_blank">calendar.xml</a></b>.</td></tr>
+<tr><td rowspan="4">"hc"</td>
+ <td rowspan="4">Hour cycle</td>
+ <td>"h12"</td>
+ <td>Hour system using 1–12; corresponds to 'h' in patterns</td></tr>
+ <tr><td>"h23"</td>
+ <td>Hour system using 0–23; corresponds to 'H' in patterns</td></tr>
+ <tr><td>"h11"</td>
+ <td>Hour system using 0–11; corresponds to 'K' in patterns</td></tr>
+ <tr><td>"h24"</td>
+ <td>Hour system using 1–24; corresponds to 'k' in pattern</td></tr>
+
+<tr><td colspan="4"><b>A <a name="UnicodeLineBreakStyleIdentifier" id="UnicodeLineBreakStyleIdentifier" href="#UnicodeLineBreakStyleIdentifier">Unicode Line Break Style Identifier</a> defines a preferred line break style corresponding to the CSS level 3 <a href="https://drafts.csswg.org/css-text/#line-break-property">line-break option</a>. Specifying "lb" in a locale identifier overrides the locale‘s default style (which may correspond to "normal" or "strict"). The valid values are those <i>name</i> attribute values in the <i>type</i> elements of key name="lb" in bcp47/<a href="https://github.com/unicode-org/cldr/tree/latest/common/bcp47/segmentation.xml" target="_blank">segmentation.xml</a></b>.</td></tr>
+<tr><td rowspan="3">"lb"</td>
+ <td rowspan="3">Line break style</td>
+ <td>"strict"</td>
+ <td>CSS level 3 line-break=strict, e.g. treat CJ as NS</td></tr>
+ <tr><td>"normal"</td>
+ <td>CSS level 3 line-break=normal, e.g. treat CJ as ID, break before hyphens for ja,zh</td></tr>
+ <tr><td>"loose"</td>
+ <td>CSS lev 3 line-break=loose</td></tr>
+
+<tr><td colspan="4"><b>A <a name="UnicodeLineBreakWordIdentifier" id="UnicodeLineBreakWordIdentifier" href="#UnicodeLineBreakWordIdentifier">Unicode Line Break Word Identifier</a> defines preferred line break word handling behavior corresponding to the CSS level 3 <a href="https://drafts.csswg.org/css-text/#word-break-property">word-break option</a>. The valid values are those <i>name</i> attribute values in the <i>type</i> elements of key name="lw" in bcp47/<a href="https://github.com/unicode-org/cldr/tree/latest/common/bcp47/segmentation.xml" target="_blank">segmentation.xml</a></b>.</td></tr>
+<tr><td rowspan="3">"lw"</td>
+ <td rowspan="3">Line break word handling</td>
+ <td>"normal"</td>
+ <td>CSS level 3 word-break=normal, normal script/language behavior for midword breaks</td></tr>
+ <tr><td>"breakall"</td>
+ <td>CSS level 3 word-break=break-all, allow midword breaks unless forbidden by lb setting</td></tr>
+ <tr><td>"keepall"</td>
+ <td>CSS level 3 word-break=keep-all, prohibit midword breaks except for dictionary breaks</td></tr>
+
+<tr><td colspan="4"><b>A <a name="UnicodeMeasurementSystemIdentifier" id="UnicodeMeasurementSystemIdentifier" href="#UnicodeMeasurementSystemIdentifier">Unicode Measurement System Identifier</a> defines a preferred measurement system. Specifying "ms" in a locale identifier overrides the default value specified by supplemental measurement system data (see Part 2 General, section 5 <a href="tr35-general.md#Measurement_System_Data">Measurement System Data</a>). The valid values are those <i>name</i> attribute values in the <i>type</i> elements of key name="ms" in bcp47/<a href="https://github.com/unicode-org/cldr/tree/latest/common/bcp47/measure.xml" target="_blank">measure.xml</a></b>.</td></tr>
+<tr><td rowspan="3">"ms"</td>
+ <td rowspan="3">Measurement system</td>
+ <td>"metric"</td>
+ <td>Metric System</td></tr>
+ <tr><td>"ussystem"</td>
+ <td>US System of measurement: feet, pints, etc.; pints are 16oz</td></tr>
+ <tr><td>"uksystem"</td>
+ <td>UK System of measurement: feet, pints, etc.; pints are 20oz</td></tr>
+
+<tr><td colspan="4"><b>A <a name="UnicodeNumberSystemIdentifier" id="UnicodeNumberSystemIdentifier" href="#UnicodeNumberSystemIdentifier">Unicode Number System Identifier</a> defines a type of number system. The valid values are those <i>name</i> attribute values in the <i>type</i> elements of bcp47/<a href="https://github.com/unicode-org/cldr/tree/latest/common/bcp47/number.xml" target="_blank">number.xml</a>.</b></td></tr>
+<tr><td rowspan="7">"nu"<br>(numbers)</td>
+ <td rowspan="7">Numbering system</td>
+ <td><i>Unicode script subtag</i></td>
+ <td><p>Four-letter types indicating the primary numbering system for the corresponding script represented in Unicode. Unless otherwise specified, it is a decimal numbering system using digits [:GeneralCategory=Nd:]. For example, "latn" refers to the ASCII / Western digits 0-9, while "taml" is an algorithmic (non-decimal) numbering system. (The code "tamldec" is indicates the "modern Tamil decimal digits".)</p>
+ <p class="note">For more information, see <a href="tr35-numbers.md#Numbering_Systems">Numbering Systems</a>.</p></td></tr>
+ <tr><td>"arabext"</td>
+ <td>Extended Arabic-Indic digits ("arab" means the base Arabic-Indic digits)</td></tr>
+ <tr><td>"armnlow"</td>
+ <td>Armenian lowercase numerals</td></tr>
+ <tr><td colspan="2">…</td></tr>
+ <tr><td>"roman"</td>
+ <td>Roman numerals</td></tr>
+ <tr><td>"romanlow"</td>
+ <td>Roman lowercase numerals</td></tr>
+ <tr><td>"tamldec"</td>
+ <td>Modern Tamil decimal digits</td></tr>
+
+<tr><td colspan="4"><b>A <a name="RegionOverride" id="RegionOverride" href="#RegionOverride">Region Override</a> specifies an alternate region to use for obtaining certain region-specific default values (those specified by the <a href="tr35-info.md#rgScope"><rgScope></a> element), instead of using the region specified by the <a href="#unicode_region_subtag">unicode_region_subtag</a> in the Unicode Language Identifier (or inferred from the <a href="#unicode_language_subtag">unicode_language_subtag</a>).</b></td></tr>
+<tr><td rowspan="2">"rg"</td>
+ <td rowspan="2">Region Override</td><td>"uszzzz"<br><br></td><td rowspan="2">The value is a <a href="#unicode_subdivision_id">unicode_subdivision_id</a> of type “unknown” or “regular”; this consists of a <a href="#unicode_region_subtag">unicode_region_subtag</a> for a regular region (not a macroregion), suffixed either by “zzzz” (case is not significant) to designate the region as a whole, or by a unicode_subdivision_suffix to provide more specificity. For example, “en-GB-u-rg-uszzzz” represents a locale for British English but with region-specific defaults set to US for items such as default currency, default calendar and week data, default time cycle, and default measurement system and unit preferences.</td></tr>
+ <tr><td>…</td></tr>
+
+<tr><td colspan="4"><b>A <a name="unicode_subdivision_subtag_validity"></a><a name="UnicodeSubdivisionIdentifier" id="UnicodeSubdivisionIdentifier" href="#UnicodeSubdivisionIdentifier">Unicode Subdivision Identifier</a> defines a regional subdivision used for locales. The valid values are based on the <i>subdivisionContainment</i> element as described in <i>Section <a href="#Unicode_Subdivision_Codes">3.6.5 Subdivision Codes</a></i>.</b></td></tr>
+<tr><td rowspan="2">"sd"</td>
+ <td rowspan="2">Regional Subdivision</td>
+ <td>"gbsct"</td>
+ <td rowspan="2">A <a href="#unicode_subdivision_id">unicode_subdivision_id</a>, which is a <a href="#unicode_region_subtag">unicode_region_subtag</a> concatenated with a unicode_subdivision_suffix.<br>For example, <i>gbsct</i> is “gb”+“sct” (where sct represents the subdivision code for Scotland). Thus “en-GB-u-sd-gbsct” represents the language variant “English as used in Scotland”. And both “en-u-sd-usca” and “en-US-u-sd-usca” represent “English as used in California”. See <b><i><a href="#Unicode_Subdivision_Codes">3.6.5 Subdivision Codes</a></i></b>.</td></tr>
+ <tr><td>…</td></tr>
+
+<tr><td colspan="4"><b>A <a name="UnicodeSentenceBreakSuppressionsIdentifier" id="UnicodeSentenceBreakSuppressionsIdentifier" href="#UnicodeSentenceBreakSuppressionsIdentifier">Unicode Sentence Break Suppressions Identifier</a> defines a set of data to be used for suppressing certain sentence breaks that would otherwise be found by UAX #14 rules. The valid values are those <i>name</i> attribute values in the <i>type</i> elements of key name="ss" in bcp47/<a href="https://github.com/unicode-org/cldr/tree/latest/common/bcp47/segmentation.xml" target="_blank">segmentation.xml</a></b>.</td></tr>
+<tr><td rowspan="2">"ss"</td>
+ <td rowspan="2">Sentence break suppressions</td>
+ <td>"none"</td>
+ <td>Don’t use sentence break suppressions data (the default).</td></tr>
+ <tr><td>"standard"</td>
+ <td>Use sentence break suppressions data of type "standard"</td></tr>
+
+<tr><td colspan="4"><b>A <a name="UnicodeTimezoneIdentifier" id="UnicodeTimezoneIdentifier" href="#UnicodeTimezoneIdentifier">Unicode Timezone Identifier</a> defines a timezone. The valid values are those name attribute values in the <i>type</i> elements of bcp47/<a href="https://github.com/unicode-org/cldr/tree/latest/common/bcp47/timezone.xml" target="_blank">timezone.xml</a>.</b></td></tr>
+<tr><td>"tz"<br>(timezone)</td>
+ <td>Time zone</td>
+ <td><i>Unicode short time zone IDs</i></td>
+ <td><p>Short identifiers defined in terms of a TZ time zone database [<a href="#Olson">Olson</a>] identifier in the file common/bcp47/timezone.xml file, plus a few extra values.</p>
+ <p>For more information, see <a href="#Time_Zone_Identifiers">Section 3.7.1.2 Time Zone Identifiers</a>.</p>
+ <p>CLDR provides data for normalizing timezone codes.</p></td></tr>
+
+<tr><td colspan="4"><b>A <a name="UnicodeVariantIdentifier" id="UnicodeVariantIdentifier" href="#UnicodeVariantIdentifier">Unicode Variant Identifier</a> defines a special variant used for locales. The valid values are those name attribute values in the <i>type</i> elements of bcp47/<a href="https://github.com/unicode-org/cldr/tree/latest/common/bcp47/variant.xml" target="_blank">variant.xml</a>.</b></td></tr>
+<tr><td>"va"</td>
+ <td>Common variant type</td>
+ <td>"posix"</td>
+ <td>POSIX style locale variant. About handling of the "POSIX" variant see <i>Section 3.8.2, <a href="#Legacy_Variants">Legacy Variants</a></i>.</td></tr>
+
+</tbody></table>
+
+For more information on the allowed keys and types, see the specific elements below, and [Section 3.6.4 U Extension Data Files](#Unicode_Locale_Extension_Data_Files).
+
+Additional keys or types might be added in future versions. Implementations of LDML should be robust to handle any syntactically valid key or type values.
+
+#### <a name="Numbering%20System%20Data" href="#Numbering%20System%20Data">3.6.2 Numbering System Data</a>
+
+LDML supports multiple numbering systems. The identifiers for those numbering systems are defined in the file **bcp47/number.xml**. For example, for the 'trunk' version of the data see [bcp47/number.xml](https://github.com/unicode-org/cldr/releases/tag/latest/common/bcp47/number.xml).
+
+Details about those numbering systems are defined in **supplemental/numberingSystems.xml**. For example, for the 'trunk' version of the data see [supplemental/numberingSystems.xml](https://github.com/unicode-org/cldr/releases/tag/latest/common/supplemental/numberingSystems.xml).
+
+LDML makes certain stability guarantees on this data:
+
+1. Like other BCP 47 identifiers, once a numeric identifier is added to **bcp47/number.xml** or **numberingSystems.xml**, it will never be removed from either of those files.
+2. If an identifier has type="numeric" in numberingSystems.xml, then
+ 1. It is a decimal, positional numbering system with an attribute `digits=X`, where `X` is a string with the 10 digits in order used by the numbering system.
+ 2. The values of the type and digits will never change.
+
+#### <a name="Time_Zone_Identifiers" href="#Time_Zone_Identifiers">3.6.3 Time Zone Identifiers</a>
+
+LDML inherits time zone IDs from the tz database [[Olson](#Olson)]. Because these IDs from the tz database do not satisfy the BCP 47 language subtag syntax requirements, CLDR defines short identifiers for the use in the Unicode locale extension. The short identifiers are defined in the file **common/bcp47/timezone.xml**.
+
+The short identifiers use UN/LOCODE [[LOCODE](#LOCODE)] (excluding a space character) codes where possible. For example, the short identifier for "America/Los_Angeles" is "uslax" (the LOCODE for Los Angeles, US is "US LAX"). Identifiers of length not equal to 5 are used where there is no corresponding UN/LOCODE, such as "usnavajo" for "America/Shiprock", or "utcw01" for "Etc/GMT+1", so that they do not overlap with future UN/LOCODE.
+
+Although the first two letters of a short identifier may match an ISO 3166 two-letter country code, a user should not assume that the time zone belongs to the country. The first two letters in an identifier of length not equal to 5 has no meaning. Also, the identifiers are stabilized, meaning that they will not change no matter what changes happen in the base standard. So if Hawaii leaves the US and joins Canada as a new province, the short time zone identifier "ushnl" would not change in CLDR even if the UN/LOCODE changes to "cahnl" or something else.
+
+There is a special code "unk" for an Unknown or Invalid time zone. This can be expressed in the tz database style ID "Etc/Unknown", although it is not defined in the tz database.
+
+**Stability of Time Zone Identifiers**
+
+Although the short time zone identifiers are guaranteed to be stable, the preferred IDs in the tz database (as those found in **zone.tab** file) might be changed time to time. For example, "Asia/Culcutta" was replaced with "Asia/Kolkata" and moved to **backward** file in the tz database. CLDR contains locale data using a time zone ID from the tz database as the key, stability of the IDs is cirtical.
+
+To maintain the stability of "long" IDs (for those inherited from the tz database), a special rule applied to the `alias` attribute in the `<type>` element for "tz" - the first "long" ID is the CLDR canonical "long" time zone ID.
+
+For example:
+
+```xml
+<type name="inccu" alias="Asia/Calcutta Asia/Kolkata" description="Kolkata, India"/>
+```
+
+Above `<type>` element defines the short time zone ID "inccu" (for the use in the Unicode locale extension), corresponding _CLDR canonical "long" ID_ "Asia/Culcutta", and an alias "Asia/Kolkata".
+
+#### <a name="Unicode_Locale_Extension_Data_Files" href="#Unicode_Locale_Extension_Data_Files">3.6.4 U Extension Data Files</a>
+
+The 'u' extension data is stored in multiple XML files located under common/bcp47 directory in CLDR. Each file contains the locale extension key/type values and their backward compatibility mappings appropriate for a particular domain. [common/bcp47/collation.xml](https://github.com/unicode-org/cldr/releases/tag/latest/common/bcp47/collation.xml) contains key/type values for collation, including optional collation parameters and valid type values for each key.
+
+The 't' extension data is stored in [common/bcp47/transform.xml](https://github.com/unicode-org/cldr/releases/tag/latest/common/bcp47/transform.xml).
+
+```xml
+<!ELEMENT keyword ( key* )>
+
+<!ELEMENT key ( type* )>
+<!ATTLIST key extension NMTOKEN #IMPLIED>
+<!ATTLIST key name NMTOKEN #REQUIRED>
+<!ATTLIST key description CDATA #IMPLIED>
+<!ATTLIST key deprecated ( true | false ) "false">
+<!ATTLIST key preferred NMTOKEN #IMPLIED>
+<!ATTLIST key alias NMTOKEN #IMPLIED>
+<!ATTLIST key valueType (single | multiple | incremental | any) #IMPLIED >
+<!ATTLIST key since CDATA #IMPLIED>
+
+<!ELEMENT type EMPTY>
+<!ATTLIST type name NMTOKEN #REQUIRED>
+<!ATTLIST type description CDATA #IMPLIED>
+<!ATTLIST type deprecated ( true | false ) "false">
+<!ATTLIST type preferred NMTOKEN #IMPLIED>
+<!ATTLIST type alias CDATA #IMPLIED>
+<!ATTLIST type since CDATA #IMPLIED>
+
+<!ELEMENT attribute EMPTY>
+<!ATTLIST attribute name NMTOKEN #REQUIRED>
+<!ATTLIST attribute description CDATA #IMPLIED>
+<!ATTLIST attribute deprecated ( true | false ) "false">
+<!ATTLIST attribute preferred NMTOKEN #IMPLIED>
+<!ATTLIST attribute since CDATA #IMPLIED>
+```
+
+The extension attribute in `<key>` element specifies the BCP 47 language tag extension type. The default value of the extension attribute is "u" (Unicode locale extension). The `<type>` element is only applicable to the enclosing `<key>`.
+
+In the Unicode locale extension 'u' and 't' data files, the common attributes for the `<key>`, `<type>` and `<attribute>` elements are as follows:
+
+**name**
+
+> The key or type name used by Unicode locale extension with ['u' extension syntax](#Unicode_locale_identifier) or the 't' extensions syntax. When _alias_ below is absent, this name can be also used with the old style ["@key=type" syntax](#Old_Locale_Extension_Syntax).
+>
+> Most type names are **literal type names**, which match exactly the same value. All of these have at least one lowercase letter, such as "buddhist". There are a small number of **indirect type names**, such as "RG_KEY_VALUE". These have no lowercase letters. The interpretation of each one is listed below.
+>
+> ##### <a name="CODEPOINTS" href="#CODEPOINTS">CODEPOINTS</a>
+>
+> The type name **"CODEPOINTS"** is reserved for a variable representing Unicode code point(s). The syntax is:
+>
+> | | EBNF |
+> | ---------- | ---- |
+> | codepoints | `= codepoint (sep codepoint)?` |
+> | codepoint | `= [0-9 A-F a-f]{4,6}` |
+>
+> In addition, no codepoint may exceed 10FFFF. For example, "00A0", "300b", "10D40C" and "00C1-00E1" are valid, but "A0", "U060C" and "110000" are not.
+>
+> In the current version of CLDR, the type "CODEPOINTS" is only used for the deprecated locale extension key "vt" (variableTop). The subtags forming the type for "vt" represent an arbitrary string of characters. There is no formal limit in the number of characters, although practically anything above 1 will be rare, and anything longer than 4 might be useless. Repetition is allowed, for example, 0061-0061 ("aa") is a Valid type value for "vt", since the sequence may be a collating element. Order is vital: 0061-0062 ("ab") is different than 0062-0061 ("ba"). Note that for variableTop any character sequence must be a contraction which yields exactly one primary weight.
+>
+> For example,
+>
+> > **en-u-vt-00A4** : this indicates English, with any characters sorting at or below " ¤" (at a primary level) considered Variable.
+>
+> By default in UCA, variable characters are ignored in sorting at a primary, secondary, and tertiary level. But in CLDR, they are not ignorable by default. For more information, see [Collation: Section 3.3 _Setting Options_](tr35-collation.md#Setting_Options) .
+>
+> ##### <a name="REORDER_CODE" href="#REORDER_CODE">REORDER_CODE</a>
+>
+> The type name **"REORDER_CODE"** is reserved for reordering block names (e.g. "latn", "digit" and "others") defined in the _[Root Collation](tr35-collation.md#Root_Collation)_. The type "REORDER_CODE" is used for locale extension key "kr" (colReorder). The value of type for "kr" is represented by one or more reordering block names such as "latn-digit". For more information, see [Collation: Section 3.12 _Collation Reordering_](tr35-collation.md#Script_Reordering) .
+>
+> ##### <a name="RG_KEY_VALUE" href="#RG_KEY_VALUE">RG_KEY_VALUE</a>
+>
+> The type name **"RG_KEY_VALUE"** is reserved for region codes in the format required by the "rg" key; this is a subdivision code with idStatus='unknown' or 'regular' from the idValidity data in common/validity/subdivision.xml.
+>
+> ##### <a name="SCRIPT_CODE" href="#SCRIPT_CODE">SCRIPT_CODE</a>
+>
+> The type name **"SCRIPT_CODE"** is reserved for [`unicode_script_subtag`](#unicode_script_subtag) values (e.g. "thai", "laoo"). The type "SCRIPT_CODE" is used for locale extension key "dx". The value of type for "dx" is represented by one or more SCRIPT_CODEs, such as "thai-laoo".
+>
+> ##### <a name="SUBDIVISION_CODE" href="#SUBDIVISION_CODE">SUBDIVISION_CODE</a>
+>
+> The type name **"SUBDIVISION_CODE"** is reserved for subdivision codes in the format required by the "sd" key; this is a subdivision code from the idValidity data in common/validity/subdivision.xml, excluding those with idStatus='unknown'. Codes with idStatus='deprecated' should not be generated, and those with idStatus='private_use' are only to be used with prior agreement.
+>
+> ##### <a name="PRIVATE_USE" href="#PRIVATE_USE">PRIVATE_USE</a>
+>
+> The type name **"PRIVATE_USE"** is reserved for private use types. A valid type value is composed of one or more subtags separated by hyphens and each subtag consists of three to eight ASCII alphanumeric characters. In the current version of CLDR, **"PRIVATE_USE"** is only used for transform extension "x0".
+
+**valueType**
+
+> The `valueType` attribute indicates how many subtags are valid for a given key:
+>
+> | Value | Description |
+> | ------------- | ----------- |
+> | `single` | Either exactly one type value, or no type value (but only if the value of "true" would be valid). This is the default if no valueType attribute is present. |
+> | `incremental` | Multiple type values are allowed, but only if a prefix is also present, and the sequence is explicitly listed. Each successive type value indicates a refinement of its prefix. For example:<br/>`<key name="ca" description="Calendar algorithm key" valueType="incremental">`<br/>` <type name="islamic" description="Islamic calendar"/>`<br/>` <type name="islamic-umalqura" description="Islamic calendar, Umm al-Qura"/>`<br/>Thus _ca-islamic-umalqura_ is valid. However, _ca-gregory-japanese_ is not valid, because "gregory-japanese" is not listed as a type. |
+> | `multiple` | Multiple type values are allowed, but each may only occur once. For example:<br/>`<key name="kr" description="Collation reorder codes" valueType="multiple">`<br/>` <type name="REORDER_CODE" …/>` |
+> | `any` | Any number of type values are allowed, with none of the above restrictions. For example:<br/>`<key extension="t" name="x0" description="Private use transform type key." valueType="any">`<br/>` <type name="PRIVATE_USE" …/>` |
+
+**description**
+
+> The description of the `key`, `type` or `attribute` element. There is also some informative text about certain keys and types in the Section 3.5 [Key And Type Definitions](#Key_And_Type_Definitions_).
+
+**deprecated**
+
+> The deprecation status of the `key`, `type` or `attribute` element. The value `"true"` indicates the element is deprecated and no longer used in the version of CLDR. The default value is `"false"`.
+
+**preferred**
+
+> The preferred value of the deprecated `key`, `type` or `attribute` element. When a `key`, `type` or `attribute` element is deprecated, this attribute is used for specifying a new canonical form if available.
+
+**alias** (Not applicable to `<attribute>`)
+
+> The BCP 47 form is the canonical form, and recommended. Other aliases are included only for backwards compatibility.
+>
+> _Example:_
+>
+> ```xml
+> <type name="phonebk" alias="phonebook" description="Phonebook style ordering (such as in German)"/>
+> ```
+>
+> The preferred term, and the only one to be used in BCP 47, is the name: in this example, "phonebk".
+>
+> The alias is a key or type name used by Unicode locale extensions with the old ["@key=type" syntax](#Old_Locale_Extension_Syntax). The attribute value for type may contain multiple names delimited by ASCII space characters. Of those aliases, the first name is the preferred value.
+
+**since**
+
+> The version of CLDR in which this key or type was introduced. Absence of this attribute value implies the key or type was available in CLDR 1.7.2.
+
+_Note: There are no values defined for the locale extension attribute in the current CLDR release._
+
+For example,
+
+```xml
+<key name="co" alias="collation" description="Collation type key">
+ <type name="pinyin" description="Pinyin ordering for Latin and for CJK characters (used in Chinese)"/>
+</key>
+
+<key name="ka" alias="colAlternate" description="Collation parameter key for alternate handling">
+ <type name="noignore" alias="non-ignorable" description="Variable collation elements are not reset to ignorable"/>
+ <type name="shifted" description="Variable collation elements are reset to zero at levels one through three"/>
+</key>
+
+<key name="tz" alias="timezone">
+ ...
+ <type name="aumel" alias="Australia/Melbourne Australia/Victoria" description="Melbourne, Australia"/>
+ <type name="aumqi" alias="Antarctica/Macquarie" description="Macquarie Island Station, Macquarie Island" since="1.8.1"/>
+ ...
+</key>
+```
+
+The data above indicates:
+
+* type "pinyin" is valid for key "co", thus "u-co-pinyin" is a valid Unicode locale extension.
+* type "pinyin" is not valid for key "ka", thus "u-ka-pinyin" is not a valid Unicode locale extension.
+* type "pinyin" has no _alias_, so "zh@collation=pinyin" is a valid Unicode locale identifier according to the old syntax.
+* type "noignore" has an alias attribute, so "en@colAlternate=noignore" is not a valid Unicode locale identifier according to the old syntax.
+* type "aumel" is valid for key "tz", supported by CLDR 1.7.2 (default value) or later versions.
+* type "aumqi" is valid for key "tz", supported by CLDR 1.8.1 or later versions.
+
+It is strongly recommended that all API methods accept all possible aliases for keywords and types, but generate the canonical form. For example, "ar-u-ca-islamicc" would be equivalent to "ar-u-ca-islamic-civil" on input, but the latter should be output. The one exception is where an alias would only be well-formed with the old syntax, such as "gregorian" (for "gregory").
+
+#### <a name="Unicode_Subdivision_Codes" href="#Unicode_Subdivision_Codes">3.6.5 Subdivision Codes</a>
+
+The subdivision codes designate a subdivision of a country or region. They are called various names, such as a _state_ in the United States, or a _province_ in Canada. The codes in CLDR are based on ISO 3166-2 subdivision codes. The ISO codes have a region code followed by a hyphen, then a suffix consisting of 1..3 ASCII letters or digits.
+
+The CLDR codes are designed to work in a [unicode_locale_id](#unicode_locale_id) (BCP47), and are thus all lowercase, with no hyphen. For example, the following are valid, and mean “English as used in California, USA”.
+
+* en-u-sd-**usca**
+* en-US-u-sd-**usca**
+
+CLDR has additional subdivision codes. These may start with a 3-digit region code or use a suffix of 4 ASCII letters or digits, so they will not collide with the ISO codes. Subdivision codes for unknown values are the region code plus "zzzz", such as "uszzzz" for an unknown subdivision of the US. Other codes may be added for stability.
+
+Like BCP 47, CLDR requires stable codes, which are not guaranteed for ISO 3166-2 (nor have the ISO 3166-2 codes been stable in the past). If an ISO 3166-2 code is removed, it remains valid (though marked as deprecated) in CLDR. If an ICU 3166-2 code is reused (for the same region), then CLDR will define a new equivalent code using these a 4-character suffixes.
+
+##### <a name="Validity" href="#Validity">3.6.5.1 Validity</a>
+
+A [unicode_subdivision_id](#unicode_subdivision_id) is only valid when it is present in the subdivision.xml file as described in _Section 3.11 [Validity Data](#Validity_Data)_. The data is in a compressed form, and thus needs to be expanded before such a test is made.
+
+_Examples:_
+
+* **usca** is valid — there is an `id` element `<id type="subdivision"…>… usca …</id>`
+* **ussct** is invalid — there is no `id` element `<id type="subdivision"…>… ussct …</id>`
+
+If a [unicode_locale_id](#unicode_locale_id) contains both a [unicode_region_subtag](#unicode_region_subtag) and a [unicode_subdivision_id](#unicode_subdivision_id), it is only valid if the [unicode_subdivision_id](#unicode_subdivision_id) starts with the [unicode_region_subtag](#unicode_region_subtag) (case-insensitively).
+
+It is recommended that a [unicode_locale_id](#unicode_locale_id) contain a [unicode_region_subtag](#unicode_region_subtag) if it contains a [unicode_subdivision_id](#unicode_subdivision_id) and the region would not be added by adding likely subtags. That produces better behavior if the [unicode_subdivision_id](#unicode_subdivision_id) is ignored by an implementation or if the language tag is truncated.
+
+Examples:
+
+* en-**US**-u-sd-**us**ca is valid — the region "US" matches the first part of "usca"
+* en-u-sd-**us**ca is valid — it still works after adding likely subtags.
+* en-**CA**-u-sd-**gb**sct is invalid — the region "CA" does not match the first part of "gbsct". An implementation should disregard the subdivision id (or return an error).
+* en-u-sd-**gb**sct is valid but not recommended — an implementation that ignores the [unicode_subdivision_id](#unicode_subdivision_id) can get the wrong fallback behavior, or could add likely subtags and get the invalid en-**Latn-US**-u-sd-**gb**sct
+
+In version 28.0, the subdivisions in the validity files used the ISO format, uppercase with a hyphen separating two components, instead of the BCP 47 format.
+
+<a name="t_Extension"></a>
+### <a name="BCP47_T_Extension" href="#BCP47_T_Extension">3.7 Unicode BCP 47 T Extension</a>
+
+The Unicode Consortium has registered and is the maintaining authority for two BCP 47 language tag extensions: the extension 'u' for Unicode locale extension [[RFC6067](#RFC6067)] and extension 't' for transformed content [[RFC6497](#RFC6497)]. The Unicode BCP 47 extension data defines the complete list of valid subtags. While the title of the RFC is “Transformed Content”, the abstract makes it clear that the scope is broader than the term "transformed" might indicate to a casual reader: “including content that has been transliterated, transcribed, or translated, or _in some other way influenced by the source. It also provides for additional information used for identification._”
+
+**The -t- Extension.** The syntax of 't' extension subtags is defined by the rule `unicode_locale_extensions` in [_Section 3.2 Unicode locale identifier_](#Unicode_locale_identifier), except the separator of subtags `sep` must be always hyphen '-' when the extension is used as a part of BCP 47 language tag. For information about the registration process, meaning, and usage of the 't' extension, see [[RFC6497](#RFC6497)].
+
+These subtags are all in lowercase (that is the canonical casing for these subtags), however, subtags are case-insensitive and casing does not carry any specific meaning. All subtags within the Unicode extensions are alphanumeric characters in length of two to eight that meet the rule `extension` in the [[BCP47](#BCP47)].
+
+The following keys are defined for the -t- extension:
+
+| Keys | Description | Values in latest release |
+| ------ | ----------- | ------------------------ |
+| m0 | **Transform extension mechanism:** to reference an authority or rules for a type of transformation | [transform.xml](https://github.com/unicode-org/cldr/releases/tag/latest/common/bcp47/transform.xml) |
+| s0, d0 | **Transform source/destination:** for non-languages/scripts, such as fullwidth-halfwidth conversion. | [transform-destination.xml](https://github.com/unicode-org/cldr/releases/tag/latest/common/bcp47/transform-destination.xml) |
+| i0 | **Input Method Engine transform:** Used to indicate an input method transformation, such as one used by a client-side input method. The first subfield in a sequence would typically be a 'platform' or vendor designation. | [transform_ime.xml](https://github.com/unicode-org/cldr/releases/tag/latest/common/bcp47/transform_ime.xml) |
+| k0 | **Keyboard transform:** Used to indicate a keyboard transformation, such as one used by a client-side virtual keyboard. The first subfield in a sequence would typically be a 'platform' designation, representing the platform that the keyboard is intended for. The keyboard might or might not correspond to a keyboard mapping shipped by the vendor for the platform. One or more subsequent fields may occur, but are only added where needed to distinguish from others. | [transform_keyboard.xml](https://github.com/unicode-org/cldr/releases/tag/latest/common/bcp47/transform_keyboard.xml) |
+| t0 | **Machine Translation:** Used to indicate content that has been machine translated, or a request for a particular type of machine translation of content. The first subfield in a sequence would typically be a 'platform' or vendor designation. | [transform_mt.xml](https://github.com/unicode-org/cldr/releases/tag/latest/common/bcp47/transform_mt.xml) |
+| h0 | **Hybrid Locale Identifiers:** h0 with the value 'hybrid' indicates that the -t- value is a language that is mixed into the main language tag to form a hybrid. For more information, and examples, see _Section 3.10.2 [Hybrid Locale Identifiers](#Hybrid_Locale)._ | [transform_hybrid.xml](https://github.com/unicode-org/cldr/releases/tag/latest/common/bcp47/transform_hybrid.xml) |
+| x0 | **Private use transform** | [transform_private_use.xml](https://github.com/unicode-org/cldr/releases/tag/latest/common/bcp47/transform_private_use.xml) |
+
+#### <a name="Transformed_Content_Data_File" href="#Transformed_Content_Data_File">3.7.1 T Extension Data Files</a>
+
+The overall structure of the data files is the similar to the U Extension, with the following exceptions.
+
+In the transformed content 't' data file, the `name` attribute in a `<key>` element defines a valid field separator subtag. The `name` attribute in an enclosed `<type>` element defines a valid field subtag for the field separator subtag. For example:
+
+```xml
+<key extension="t" name="m0" description="Transform extension mechanism">
+ <type name="ungegn" description="United Nations Group of Experts on Geographical Names" since="21"/>
+<key>
+```
+
+The data above indicates:
+
+* "m0" is a valid field separator for the transformed content extension 't'.
+* field subtag "ungegn" is valid for field separator "m0".
+* field subtag "ungegn" was introduced in CLDR 21.
+
+The attributes are:
+
+**name**
+
+> The name of the mechanism, limited to 3-8 characters (or sequences of them). Any indirect type names are listed in 3.6.4 [U Extension Data Files](#Unicode_Locale_Extension_Data_Files).
+
+**description**
+
+> A description of the name, with all and only that information necessary to distinguish one name from | American Library others with which it might be confused. Descriptions are not intended to provide general background information.
+
+**since**
+
+> Indicates the first version of CLDR where the name appears. (Required for new items.)
+
+**alias**
+
+> Alternative name, not limited in number of characters. Aliases are intended for compatibility, not to provide all possible alternate names or designations. _(Optional)_
+
+For information about the registration process, meaning, and usage of the 't' extension, see [[RFC6497](#RFC6497)].
+
+### <a name="Compatibility_with_Older_Identifiers" href="#Compatibility_with_Older_Identifiers">3.8 Compatibility with Older Identifiers</a>
+
+LDML version before 1.7.2 used slightly different syntax for variant subtags and locale extensions. Implementations of LDML may provide backward compatible identifier support as described in following sections.
+
+#### <a name="Old_Locale_Extension_Syntax" href="#Old_Locale_Extension_Syntax">3.8.1 Old Locale Extension Syntax</a>
+
+LDML 1.7 or older specification used different syntax for representing unicode locale extensions. The previous definition of Unicode locale extensions had the following structure:
+
+| | EBNF |
+| ----------------------------- | ---- |
+| old_unicode_locale_extensions | `= "@" old_key "=" old_type`<br/>`(";" old_key "=" old_type)*` |
+
+The new specification mandates keys to be two alphanumeric characters and types to be three to eight alphanumeric characters. As the result, new codes were assigned to all existing keys and some types. For example, a new key "co" replaced the previous key "collation", a new type "phonebk" replaced the previous type "phonebook". However, the existing collation type "big5han" already satisfied the new requirement, so no new type code was assigned to the type. All new keys and types introduced after LDML 1.7 satisfy the new requirement, so they do not have aliases dedicated for the old syntax, except time zone types. The conversion between old types and new types can be done regardless of key, with one known exception (old type "traditional" is mapped to new type "trad" for collation and "traditio" for numbering system), and this relationship will be maintained in the future versions unless otherwise noted.
+
+The new specification introduced a new field `attribute` in addition to key/type pairs in the Unicode locale extension. When it is necessary to map a new Unicode locale identifier with `attribute` field to a well-formed old locale identifier, a special key name _attribute_ with the value of entire `attribute` subtags in the new identifier is used. For example, a new identifier `ja-u-xxx-yyy-ca-japanese` is mapped to an old identifier `ja@attribute=xxx-yyy;calendar=japanese` .
+
+The chart below shows some example mappings between the new syntax and the old syntax.
+
+##### <a name="Locale_Extension_Mappings" href="#Locale_Extension_Mappings">Locale Extension Mappings</a>
+
+| Old (LDML 1.7 or older) | New |
+| ------------------------------------------ | ---------------------------- |
+| `de_DE@collation=phonebook` | `de_DE_u_co_phonebk` |
+| `zh_Hant_TW@collation=big5han` | `zh_Hant_TW_u_co_big5han` |
+| `th_TH@calendar=gregorian;numbers=thai` | `th_TH_u_ca_gregory_nu_thai` |
+| `en_US_POSIX@timezone=America/Los_Angeles` | `en_US_u_tz_uslax_va_posix` |
+
+Where the old API is supplied the bcp47 language code, or vice versa, the recommendation is to:
+
+1. Have all methods that take the old syntax also take the new syntax, interpreted correctly. For example, "zh-TW-u-co-pinyin" and "zh_TW@collation=pinyin" would both be interpreted as meaning the same.
+2. Have all methods (both for old and new syntax) accept all possible aliases for keywords and types. For example, "ar-u-ca-islamicc" would be equivalent to "ar-u-ca-islamic-civil".
+ * The one exception is where an alias would only be well-formed with the old syntax, such as "gregorian" (for "gregory").
+3. Where an API cannot successfully accept the alternate syntax, throw an exception (or otherwise indicate an error) so that people can detect that they are using the wrong method (or wrong input).
+4. Provide a method that tests a purported locale ID string to determine its status:
+ 1. **well-formed** - syntactically correct
+ 2. **valid** - well-formed and only uses registered language subtags, extensions, keywords, types...
+ 3. **canonical** - valid and no deprecated codes or structure.
+
+#### <a name="Legacy_Variants" href="#Legacy_Variants">3.8.2 Legacy Variants</a>
+
+Old LDML specification allowed codes other than registered [[BCP47](#BCP47)] variant subtags used in Unicode language and locale identifiers for representing variations of locale data. Unicode locale identifiers including such variant codes can be converted to the new [[BCP47](#BCP47)] compatible identifiers by following the descriptions below:
+
+##### <a name="Legacy_Variant_Mappings" href="#Legacy_Variant_Mappings">Legacy Variant Mappings</a>
+
+| Variant Code | Description |
+| ------------ | ----------- |
+| `AALAND` | Åland, variant of "sv" Swedish used in Finland. Use "sv_AX" to indicate this. |
+| `BOKMAL` | Bokmål, variant of "no" Norwegian. Use primary language subtag "nb" to indicate this. |
+| `NYNORSK` | Nynorsk, variant of "no" Norwegian. Use primary language subtag "nn" to indicate this. |
+| `POSIX` | POSIX variation of locale data. Use Unicode locale extension "-u-va-posix" to indicate this. |
+| `POLYTONI` | Polytonic, variant of "el" Greek. Use [[BCP47](#BCP47)] variant subtag "polyton" to indicate this. |
+| `SAAHO` | The Saaho variant of Afar. Use primary language subtag "ssy" to indicated this. |
+
+When converting to old syntax, the Unicode locale extension "-u-va-posix" should be converted to the "POSIX" variant, _not_ to old extension syntax like "@va=posix". This is an exception: The other mappings above should not be reversed.
+
+Examples:
+
+* en_US_POSIX ↔ en-US-u-va-posix
+* en_US_POSIX@colNumeric=yes ↔ en-US-u-kn-va-posix
+* en-US-POSIX-u-kn-true → en-US-u-kn-va-posix
+* en-US-POSIX-u-kn-va-posix → en-US-u-kn-va-posix
+
+#### <a name="Relation_to_OpenI18n" href="#Relation_to_OpenI18n">3.8.3 Relation to OpenI18n</a>
+
+The locale id format generally follows the description in the _OpenI18N Locale Naming Guideline_ [[NamingGuideline](#NamingGuideline)], with some enhancements. The main differences from the those guidelines are that the locale id:
+
+1. does not include a charset (since the data in LDML format always provides a representation of all Unicode characters. The repository is stored in UTF-8, although that can be transcoded to other encodings as well.)
+2. adds the ability to have a variant, as in Java
+3. adds the ability to discriminate the written language by script (or script variant).
+4. is a superset of [[BCP47](#BCP47)] codes.
+
+### <a name="Transmitting_Locale_Information" href="#Transmitting_Locale_Information">3.9 Transmitting Locale Information</a>
+
+In a world of on-demand software components, with arbitrary connections between those components, it is important to get a sense of where localization should be done, and how to transmit enough information so that it can be done at that appropriate place. End-users need to get messages localized to their languages, messages that not only contain a translation of text, but also contain variables such as date, time, number formats, and currencies formatted according to the users' conventions. The strategy for doing the so-called _JIT localization_ is made up of two parts:
+
+1. Store and transmit _neutral-format_ data wherever possible.
+ * Neutral-format data is data that is kept in a standard format, no matter what the local user's environment is. Neutral-format is also (loosely) called _binary data_, even though it actually could be represented in many different ways, including a textual representation such as in XML.
+ * Such data should use accepted standards where possible, such as for currency codes.
+ * Textual data should also be in a uniform character set (Unicode/10646) to avoid possible data corruption problems when converting between encodings.
+2. Localize that data as "_close_" to the end-user as possible.
+
+There are a number of advantages to this strategy. The longer the data is kept in a neutral format, the more flexible the entire system is. On a practical level, if transmitted data is neutral-format, then it is much easier to manipulate the data, debug the processing of the data, and maintain the software connections between components.
+
+Once data has been localized into a given language, it can be quite difficult to programmatically convert that data into another format, if required. This is especially true if the data contains a mixture of translated text and formatted variables. Once information has been localized into, say, Romanian, it is much more difficult to localize that data into, say, French. Parsing is more difficult than formatting, and may run up against different ambiguities in interpreting text that has been localized, even if the original translated message text is available (which it may not be).
+
+Moreover, the closer we are to end-user, the more we know about that user's preferred formats. If we format dates, for example, at the user's machine, then it can easily take into account any customizations that the user has specified. If the formatting is done elsewhere, either we have to transmit whatever user customizations are in play, or we only transmit the user's locale code, which may only approximate the desired format. Thus the closer the localization is to the end user, the less we need to ship all of the user's preferences around to all the places that localization could possibly need to be done.
+
+Even though localization should be done as close to the end-user as possible, there will be cases where different components need to be aware of whatever settings are appropriate for doing the localization. Thus information such as a locale code or time zone needs to be communicated between different components.
+
+#### <a name="Message_Formatting_and_Exceptions" href="#Message_Formatting_and_Exceptions">3.9.1 Message Formatting and Exceptions</a>
+
+Windows ([FormatMessage](https://msdn.microsoft.com/en-us/library/ms679351.aspx), [String.Format](https://msdn.microsoft.com/en-us/library/aa331875.aspx)), Java ([MessageFormat](https://docs.oracle.com/javase/7/docs/api/java/text/MessageFormat.html)) and ICU ([MessageFormat](http://www.icu-project.org/apiref/icu4c/classMessageFormat.html), [umsg](http://www.icu-project.org/apiref/icu4c/umsg_8h.html)) all provide methods of formatting variables (dates, times, etc) and inserting them at arbitrary positions in a string. This avoids the manual string concatenation that causes severe problems for localization. The question is, where to do this? It is especially important since the original code site that originates a particular message may be far down in the bowels of a component, and passed up to the top of the component with an exception. So we will take that case as representative of this class of issues.
+
+There are circumstances where the message can be communicated with a language-neutral code, such as a numeric error code or mnemonic string key, that is understood outside of the component. If there are arguments that need to accompany that message, such as a number of files or a datetime, those need to accompany the numeric code so that when the localization is finally at some point, the full information can be presented to the end-user. This is the best case for localization.
+
+More often, the exact messages that could originate from within the component are not known outside of the component itself; or at least they may not be known by the component that is finally displaying text to the user. In such a case, the information as to the user's locale needs to be communicated in some way to the component that is doing the localization. That locale information does not necessarily need to be communicated deep within the component; ideally, any exceptions should bundle up some language-neutral message ID, plus the arguments needed to format the message (for example, datetime), but not do the localization at the throw site. This approach has the advantages noted above for JIT localization.
+
+In addition, exceptions are often caught at a higher level; they do not end up being displayed to any end-user at all. By avoiding the localization at the throw site, it the cost of doing formatting, when that formatting is not really necessary. In fact, in many running programs most of the exceptions that are thrown at a low level never end up being presented to an end-user, so this can have considerable performance benefits.
+
+### <a name="Language_and_Locale_IDs" href="#Language_and_Locale_IDs">3.10 Unicode Language and Locale IDs</a>
+
+People have very slippery notions of what distinguishes a language code versus a locale code. The problem is that both are somewhat nebulous concepts.
+
+In practice, many people use [[BCP47](#BCP47)] codes to mean locale codes instead of strictly language codes. It is easy to see why this came about; because [[BCP47](#BCP47)] includes an explicit region (territory) code, for most people it was sufficient for use as a locale code as well. For example, when typical web software receives an [[BCP47](#BCP47)] code, it will use it as a locale code. Other typical software will do the same: in practice, language codes and locale codes are treated interchangeably. Some people recommend distinguishing on the basis of "-" versus "\_" (for example, _zh-TW_ for language code, _zh_TW_ for locale code), but in practice that does not work because of the free variation out in the world in the use of these separators. Notice that Windows, for example, uses "-" as a separator in its locale codes. So pragmatically one is forced to treat "-" and "\_" as equivalent when interpreting either one on input.
+
+Another reason for the conflation of these codes is that _very_ little data in most systems is distinguished by region alone; currency codes and measurement systems being some of the few. Sometimes date or number formats are mentioned as regional, but that really does not make much sense. If people see the sentence "You will have to adjust the value to १,२३४.५६७ from ૭૧,૨૩૪.૫૬" (using Indic digits), they would say that sentence is simply not English. Number format is far more closely associated with language than it is with region. The same is true for date formats: people would never expect to see intermixed a date in the format "2003年4月1日" (using Kanji) in text purporting to be purely English. There are regional differences in date and number format — differences which can be important — but those are different in kind than other language differences between regions.
+
+As far as we are concerned — _as a completely practical matter_ — two languages are different if they require substantially different localized resources. Distinctions according to spoken form are important in some contexts, but the written form is by far and away the most important issue for data interchange. Unfortunately, this is not the principle used in [[ISO639](#ISO639)], which has the fairly unproductive notion (for data interchange) that only spoken language matters (it is also not completely consistent about this, however).
+
+[[BCP47](#BCP47)] _**can**_ express a difference if the use of written languages happens to correspond to region boundaries expressed as [[ISO3166](#ISO3166)] region codes, and has recently added codes that allow it to express some important cases that are not distinguished by [[ISO3166](#ISO3166)] codes. These written languages include simplified and traditional Chinese (both used in Hong Kong S.A.R.); Serbian in Latin script; Azerbaijani in Arab script, and so on.
+
+Notice also that _currency codes_ are different than _currency localizations_. The currency localizations should largely be in the language-based resource bundles, not in the territory-based resource bundles. Thus, the resource bundle _en_ contains the localized mappings in English for a range of different currency codes: USD → US$, RUR → Rub, AUD → $A and so on. Of course, some currency symbols are used for more than one currency, and in such cases specializations appear in the territory-based bundles. Continuing the example, _en_US_ would have USD → $, while _en_AU_ would have AUD → $. (In protocols, the currency codes should always accompany any currency amounts; otherwise the data is ambiguous, and software is forced to use the user's territory to guess at the currency. For some informal discussion of this, see [JIT Localization](http://source.icu-project.org/repos/icu/icuhtml/trunk/design/jit_localization.html).)
+
+#### <a name="Written_Language" href="#Written_Language">3.10.1 Written Language</a>
+
+Criteria for what makes a written language should be purely pragmatic; _what would copy-editors say?_ If one gave them text like the following, they would respond that is far from acceptable English for publication, and ask for it to be redone:
+
+1. "Theatre Center News: The date of the last version of this document was 2003年3月20日. A copy can be obtained for $50,0 or 1.234,57 грн. We would like to acknowledge contributions by the following authors (in alphabetical order): Alaa Ghoneim, Behdad Esfahbod, Ahmed Talaat, Eric Mader, Asmus Freytag, Avery Bishop, and Doug Felt."
+
+So one would change it to either B or C below, depending on which orthographic variant of English was the target for the publication:
+
+2. "Theater Center News: The date of the last version of this document was 3/20/2003. A copy can be obtained for $50.00 or 1,234.57 Ukrainian Hryvni. We would like to acknowledge contributions by the following authors (in alphabetical order): Alaa Ghoneim, Ahmed Talaat, Asmus Freytag, Avery Bishop, Behdad Esfahbod, Doug Felt, Eric Mader."
+3. "Theatre Centre News: The date of the last version of this document was 20/3/2003. A copy can be obtained for $50.00 or 1,234.57 Ukrainian Hryvni. We would like to acknowledge contributions by the following authors (in alphabetical order): Alaa Ghoneim, Ahmed Talaat, Asmus Freytag, Avery Bishop, Behdad Esfahbod, Doug Felt, Eric Mader."
+
+Clearly there are many acceptable variations on this text. For example, copy editors might still quibble with the use of first versus last name sorting in the list, but clearly the first list was _not_ acceptable English alphabetical order. And in quoting a name, like "Theatre Centre News", one may leave it in the source orthography even if it differs from the publication target orthography. And so on. However, just as clearly, there limits on what is acceptable English, and "2003年3月20日", for example, is _not_.
+
+Note that the language of locale data may differ from the language of localized software or web sites, when those latter are not localized into the user's preferred language. In such cases, the kind of incongruous juxtapositions described above may well appear, but this situation is usually preferable to forcing unfamiliar date or number formats on the user as well.
+
+#### <a name="Hybrid_Locale" href="#Hybrid_Locale">3.10.2 Hybrid Locale Identifiers</a>
+
+Hybrid locales have intermixed content from 2 (or more) languages, often with one language's grammatical structure applied to words in another. These are commonly referred to with portmanteau words such as _Franglais, [Spanglish](https://en.oxforddictionaries.com/definition/spanglish)_ or _Denglish_. Hybrid locales do not _not_ reference text simply containing two languages: a book of parallel text containing English and French, such as the following, is not Franglais:
+
+<!-- HTML: no header -->
+<table><tbody><tr>
+ <td>On the 24th of May, 1863, my uncle, Professor Liedenbrock, rushed into his little house, No. 19 Königstrasse, one of the oldest streets in the oldest portion of the city of Hamburg…</td>
+ <td>Le 24 mai 1863, un dimanche, mon oncle, le professeur Lidenbrock, revint précipitamment vers sa petite maison située au numéro 19 de Königstrasse, l’une des plus anciennes rues du vieux quartier de Hambourg…</td>
+</tr></tbody></table>
+
+While text in a document can be tagged as partly in one language and partly in another, that is not the same having a hybrid locale. There is a difference between having a Spanglish document, and a Spanish document that has some passages quoted in English. Fine-grained tagging doesn't handle grammatical combinations like Denglisch “[gedownloadet](https://www.duden.de/rechtschreibung/downloaden)”, which is neither English nor German — similarly the Franglais “[downloadé](https://www.le-dictionnaire.com/definition.php?mot=downloader)”. More importantly, it doesn’t work for the very common use case for a [unicode_locale_id](#unicode_locale_id): _locale selection_.
+
+To communicate requests for localized content and internationalization services, locales are used. When people pick a language from a menu, internally they are picking a locale (en-GB, es-419, etc.). To allow an application to support Spanglish or Hinglish locale selection, [unicode_locale_id](#unicode_locale_id)s can represent hybrid locales using the T extension key-value 'h0-hybrid'. (For more information on the T extension, see _Section 3.7 [Unicode BCP 47 T Extension](#t_Extension)._)
+
+Examples:
+
+<!-- HTML: no header, colspan -->
+<table><tbody>
+<tr><td>hi-t-<u>en-h0-hybrid</u></td> <td>Hinglish</td> <td>Hindi-English hybrid locale</td></tr>
+<tr><td>ta-t-<u>en-h0-hybrid</u></td> <td>Tanglish</td> <td>Tamil-English hybrid locale</td></tr>
+<tr><td>ba-t-<u>en-h0-hybrid</u></td> <td>Banglish</td> <td>Bangla-English hybrid locale</td></tr>
+<tr><td colspan="3">…</td></tr>
+<tr><td>en-t-<u>hi-h0-hybrid</u></td> <td>Hinglish</td> <td>English-Hindi hybrid locale</td></tr>
+<tr><td>en-t-<u>zh-h0-hybrid</u></td> <td>Chinglish</td> <td>English-Chinese hybrid locale</td></tr>
+<tr><td colspan="3">…</td></tr>
+</tbody></table>
+
+> _Note: The [unicode_language_id](#unicode_language_id) should be the language used as the ‘scaffold’: for the fallback locale for internationalization services, typically used for more of the core vocabulary/structure in the content. Thus Hinglish should be represented as hi-t-h0-en where Hindi is the scaffold, and as en-t-h0-hi where English is._
+
+The value of -t- is a full _[unicode_language_id](#unicode_language_id)_, and can contain subtags for script or region where it is important to include them, as in the following. It may be useful in order to emphasize the script, even where it is the default script for the language, if it is not the same as the script of the main language tag.
+
+<!-- HTML: no header -->
+<table><tbody>
+<tr><td>ru-t<u>-en-latn-gb-h0-hybrid</u></td> <td>Runglish</td> <td>Russian with an admixture of British English in Latin script</td></tr>
+<tr><td>ru-t-<u>en-cyrl-gb-h0-hybrid</u></td> <td>Runglish</td> <td>Russian with an admixture of British English in Cyrillic script</td></tr>
+</tbody></table>
+
+Should there ever be strong need for hybrids of more than two languages or for other purposes such as hybrid languages as the source of translated content, additional structure could be added.
+
+### <a name="Validity_Data" href="#Validity_Data">3.11 Validity Data</a>
+
+```xml
+<!ELEMENT idValidity (id*) >
+<!ELEMENT id ( #PCDATA ) >
+<!ATTLIST id type NMTOKEN #REQUIRED >
+<!ATTLIST id idStatus NMTOKEN #REQUIRED >
+```
+
+The directory [common/validity](https://github.com/unicode-org/cldr/releases/tag/latest/common/validity/) contains machine-readable data for validating the language, region, script, and variant subtags, as well as currency, subdivisions and measure units. Each file contains a number of subtags with the following **idStatus** values:
+
+* **regular** — the standard codes used for the specific type of subtag
+* **special** — certain exceptional language codes like 'mul' _(languages only)_
+* **unknown** — the code used to indicate the "unknown", "undetermined" or "invalid" values. For more information, see _Section 3.5.1 [Unknown or Invalid Identifiers](#Unknown_or_Invalid_Identifiers)_.
+* **macroregion** — the standard codes that are macroregions _(for regions only)._
+ * Note that some two-letter region codes are macroregions, and (in the future) some three-digit codes may be regular codes.
+ * For details as to which regions are contained within which macroregions, see the `<containment>` element of the supplemental data.
+* **deprecated** — codes that should not be used. The `<alias>` element in the supplementalMeta file contains more information about these codes, and which codes should be used instead.
+* **private_use** — codes that, for CLDR, are considered private use. Note that some private-use codes in a source standard such as BCP47 have defined CLDR semantics, and are considered regular codes. For more information, see _Section 3.5.3 [Private Use Codes](#Private_Use_Codes)._
+* **reserved** — codes that are private use in a source standard, but are reserved for future use as regular codes by CLDR.
+
+The list of subtags for each idStatus use a compact format as a space-delimited list of StringRanges, as defined in _Section [5.3.4 String Range](#String_Range)._ The separator for each StringRange is a "~".
+
+Each measure unit is a sequence of subtags, such as “angle-arc-minute”. The first subtag provides a general “category” of the unit.
+
+In version 28.0, the subdivisions in the validity files used the ISO format, uppercase with a hyphen separating two components, instead of the BCP 47 format.
+
+
+
+## <a name="Locale_Inheritance" href="#Locale_Inheritance">4 Locale Inheritance and Matching</a>
+
+The XML format relies on an inheritance model, whereby the resources are collected into _bundles_, and the bundles organized into a tree. Data for the many Spanish locales does not need to be duplicated across all of the countries having Spanish as a national language. Instead, common data is collected in the Spanish language locale, and territory locales only need to supply differences. The parent of all of the language locales is a generic locale known as _root_. Wherever possible, the resources in the root are language & territory neutral. For example, the collation (sorting) order in the root is based on the [[DUCET](#DUCET)] (see _[Root Collation](tr35-collation.md#Root_Collation)_). Since English language collation has the same ordering as the root locale, the 'en' locale data does not need to supply any collation data, nor do the 'en_US', 'en_GB' or the any of the various other locales that use English.
+
+Given a particular locale id "en_US_someVariant", the search chain for a particular resource is the following.
+
+```
+en_US_someVariant
+en_US
+en
+root
+```
+
+_The inheritance is often not simple truncation, as will be seen later in this section._
+
+If a type and key are supplied in the locale id, then logically the chain from that id to the root is searched for a resource tag with a given type, all the way up to root. If no resource is found with that tag and type, then the chain is searched again without the type.
+
+Thus the data for any given locale will only contain resources that are different from the parent locale. For example, most territory locales will inherit the bulk of their data from the language locale: "en" will contain the bulk of the data: "en_IE" will only contain a few items like currency. All data that is inherited from a parent is presumed to be valid, just as valid as if it were physically present in the file. This provides for much smaller resource bundles, and much simpler (and less error-prone) maintenance. At the script or region level, the "primary" child locale will be empty, since its parent will contain all of the appropriate resources for it. For more information see _CLDR Information: Section 9.3 [Default Content](tr35-info.md#Default_Content)._
+
+Certain data items depend only on the region specified in a locale id (by a [unicode_region_subtag](#unicode_region_subtag_validity) or an “rg” [Region Override](#RegionOverride) key) , and are obtained from supplemental data rather than through locale resources. For example:
+
+* The currency for the specified region (see [Supplemental Currency Data](tr35-numbers.md#Supplemental_Currency_Data))
+* The measurement system for the specified region (see [Measurement System Data](tr35-general.md#Measurement_System_Data))
+* The week conventions for the specified region (see [Week Data](tr35-dates.md#Week_Data))
+
+(For more information on the specific items handled this way, see [Territory-Based Preferences](tr35-info.md#Territory_Based_Preferences).) These items will be correct for the specified region regardless of whether a locale bundle actually exists with the same combination of language and region as in the locale id. For example, suppose data is requested for the locale id "fr_US" and there is no bundle for that combination. Data obtained via locale inheritance, such as currency patterns and currency symbols, will be obtained from the parent locale "fr". However, currency amounts would be formatted by default using US dollars, just displayed in the manner governed by the locale "fr". When a locale id does not specify a region, the region-specific items such as those above are obtained from the likely region for the locale (obtained via [Likely Subtags](#Likely_Subtags)).
+
+For the relationship between Inheritance, DefaultContent, LikelySubtags, and LocaleMatching, see Section 4.2.6 [Inheritance vs Related Information](tr35.md#Inheritance_vs_Related).
+
+### <a name="Lookup" href="#Lookup">4.1 Lookup</a>
+
+If a language has more than one script in customary modern use, then the CLDR file structure in common/main follows the following model:
+
+```
+lang
+lang_script
+lang_script_region
+lang_region (aliases to lang_script_region)
+```
+
+#### <a name="Bundle_vs_Item_Lookup" href="#Bundle_vs_Item_Lookup">4.1.1 Bundle vs Item Lookup</a>
+
+There are actually two different kinds of inheritance fallback: _resource bundle lookup_ and _resource item lookup_. For the former, a process is looking to find the first, best resource bundle it can; for the later, it is fallback within bundles on individual items, like the translated name for the region "CN" in Breton.
+
+These are closely related, but distinct, processes. They are illustrated in the table [Lookup Differences](#Lookup-Differences), where "key" stands for zero or more key/type pairs. Logically speaking, when looking up an item for a given locale, you first do a resource bundle lookup to find the best bundle for the locale, then you do a inherited item lookup starting with that resource bundle.
+
+The table [Lookup Differences](#Lookup-Differences) uses the naïve resource bundle lookup for illustration. More sophisticated systems will get far better results for resource bundle lookup if they use the algorithm described in _Section 4.4 [Language Matching](#LanguageMatching)_. That algorithm takes into account both the user’s desired locale(s) and the application’s supported locales, in order to get the best match.
+
+If the naïve resource bundle lookup is used, the desired locale needs to be canonicalized using 4.3 [Likely Subtags](#Likely_Subtags) and the supplemental alias information, so that locales that CLDR considers identical are treated as such. Thus eng-Latn-GB should be mapped to en-GB, and cmn-TW mapped to zh-Hant-TW.
+
+For the purposes of CLDR, everything with the `<ldml>` dtd is treated logically as if it is one resource bundle, even if the implementation separates data into separate physical resource bundles. For example, suppose that there is a main XML file for Nama (naq), but there are no `<unit>` elements for it because the units are all inherited from root. If the `<unit>` elements are separated into a separate data tree for modularity in the implementation, the Nama `<unit>` resource bundle would be empty. However, for purposes of resource-bundle lookup the resource bundle lookup still stops at naq.xml.
+
+##### <a name="Lookup-Differences" href="#Lookup-Differences">Lookup Differences</a>
+
+
+<!-- HTML: readability -->
+<table><thead>
+<tr>
+ <th>Lookup Type</th>
+ <th>Example</th>
+ <th>Comments</th>
+</tr>
+</thead><tbody>
+<tr>
+ <td><b>Resource bundle</b> lookup</td>
+ <td>
+ se-FI → <br/>
+ se → <br/>
+ <i>default‑locale* →</i><br/>
+ root
+ </td>
+ <td><p>* The default-locale may have its own inheritance change; for example, it may be "en-GB → en" In that case, the chain is expanded by inserting the chain, resulting in:</p>
+ <p>
+ se-FI → <br/>
+ se → <br/>
+ fi → <br/>
+ <i>en-GB →</i> <br/>
+ <i>en →</i> <br/>
+ root
+ </p>
+ </td>
+<tr>
+ <td><b>Inherited item</b> lookup</td>
+ <td>
+ se-FI+key → <br/>
+ se+key → <br/>
+ <i>root_alias*+key</i> <br/>
+ → root+key
+ </td>
+ <td><p>* If there is a root_alias to another key or locale, then insert that entire chain. For example, suppose that months for another calendar system have a root alias to Gregorian months. In that case, the root alias would change the key, and retry from se-FI downward. This can happen multiple times.</p>
+ <p>
+ se-FI+key → <br/>
+ se+key → <br/>
+ root_alias*+key → <br/>
+ <i>se-FI+key2 →</i> <br/>
+ <i>se+key2 →</i> <br/>
+ root_alias*+key2 → <br/>
+ root+key2
+ </p>
+ </td>
+</tr>
+</tbody></table>
+
+Both the resource bundle inheritance and the inherited item inheritance use the parentLocale data, where available, instead of simple trunctation.
+
+The fallback is a bit different for these two cases; internal aliases and keys are are not involved in the bundle lookup, and the default locale is not involved in the item lookup. If the default-locale were used in the resource-item lookup, then strange results will occur. For example, suppose that the default locale is Swedish, and there is a Nama locale but no specific inherited item for collation. If the default-locale were used in resource-item lookup, it would produce odd and unexpected results for Nama sorting.
+
+The default locale is not even always used in resource bundle inheritance. For the following services, the fallback is always directly to the root locale rather than through default locale.
+
+* collation
+* break iteration
+* case mapping
+* transliteration
+ * The lookup for transliteration is yet more complicated because of the interplay of source and target locales: see _Part 2 General, Section 10.1 [Inheritance.](https://www.unicode.org/reports/tr35/tr35-general.md#Inheritance)_
+
+Thus if there is no Akan locale, for example, asking for a collation for Akan should produce the root collation, _not the Swedish collation._
+
+The inherited item lookup must remain stable, because the resources are built with a certain fallback in mind; changing the core fallback order can render the bundle structure incoherent.
+
+Resource bundle lookup, on the other hand, is more flexible; changes in the view of the "best" match between the input request and the output bundle are more tolerant, when represent overall improvements for users. For more information, see _[A.1 Element fallback](#Fallback_Elements)_.
+
+Where the LDML inheritance relationship does not match a target system, such as POSIX, the data logically should be fully resolved in converting to a format for use by that system, by adding _all_ inherited data to each locale data set.
+
+For a more complete description of how inheritance applies to data, and the use of keywords, see _[Section 4.2 Inheritance](#Inheritance_and_Validity)_ .
+
+The locale data does not contain general character properties that are derived from the _Unicode Character Database_ [[UAX44](https://unicode.org/reports/tr41/#UAX44)]. That data being common across locales, it is not duplicated in the bundles. Constructing a POSIX locale from the CLDR data requires use of UCD data. In addition, POSIX locales may also specify the character encoding, which requires the data to be transformed into that target encoding.
+
+**Warning:** If a locale has a different script than its parent (for example, sr_Latn), then special attention must be paid to make sure that all inheritance is covered. For example, auxiliary exemplar characters may need to be empty ("[]") to block inheritance.
+
+**Empty Override:** There is one special value reserved in LDML to indicate that a child locale is to have no value for a path, even if the parent locale has a value for that path. That value is "∅∅∅". For example, if there is no phrase for "two days ago" in a language, that can be indicated with:
+
+```xml
+<field type="day">
+ <relative type="-2">∅∅∅</relative>
+```
+
+<a name="Multiple_Inheritance"></a>
+#### <a name="Lateral_Inheritance" href="#Lateral_Inheritance">4.1.2 Lateral Inheritance</a>
+
+__Lateral Inheritance__ is where resources are inherited from within the same locale, _before inheriting from the parent_. This is used for the following element@attribute instances:
+
+| Element @Attribute | Source | Context |
+| ---------------- | ------ | ------- |
+| currency @pattern | currencyFormat | numberSystem = defaultNumberingSystem, unless otherwise specified*<br/>currencyFormatLength type=none, unless otherwise specified<br/>currencyFormat type="standard", unless otherwise specified |
+| currency @decimal | symbols @decimal | numberSystem = defaultNumberingSystem, unless otherwise specified |
+| currency @group | symbols @group | numberSystem = defaultNumberingSystem, unless otherwise specified |
+
+>\* The "unless otherwise specified" clause is for when an API or other context indicates a different choice, such as currencyFormat type="accounting".
+
+For example, with /currency [@type="CVE"], the decimal symbol for almost all locales is the value from symbols/decimal, but for pt_CV it is explicitly `<decimal>$</decimal>`.
+
+The following attributes use lateral inheritance for **all elements** with the DTD root = ldml, except where otherwise noted. The process is applied recursively.
+
+| Atttribute | Fallback | Exception Elements |
+| ---------- | -------------------------------------- | --------------------------- |
+| alt | __no alt attribute__ | <none> |
+| case | "nominative" → ∅ | caseMinimalPairs |
+| gender | default_gender(locale) → ∅ | genderMinimalPairs |
+| count | plural_rules(locale, x) → "other" → ∅ | minDays, pluralMinimalPairs |
+| ordinal | plural_rules(locale, x) → "other" → ∅ | ordinalMinimalPairs |
+
+The gender fallback is to neuter if the locale has a neuter gender, otherwise masculine. This may be extended in the future if necessary. See also [Part 2, Section 15, Grammatical Features](tr35-general.md#Grammatical_Features).
+
+For example, if there is no value for a path, and that path has a [@count="x"] attribute and value, then:
+
+1. If "x" is numeric, the path falls back to the path with [@count=«the plural rules category for x for that locale»], within that the same locale.
+ 1. For example, [@count="0"] for English falls back to [@count="other"], while for French falls back to [@count="one"].
+2. If "x" is anything but "other", it falls back to a path [@count="other"], within that the same locale.
+3. If "x" is "other", it falls back to the path that is completely missing the count item, within that the same locale.
+4. If there is no value for that path the same locale, the same process is used for the **original path** in the parent locale.
+
+A path may have multiple attributes with lateral inheritance. In such a case, all of the combinations are tried, and in the order supplied above. For example (this is an extreme case):
+
+```
+/compoundUnitPattern1[@count="few"][@gender="feminine"][@case="accusative">] →
+/compoundUnitPattern1[@count="few"][@gender="feminine"][@case="nominative">] →
+/compoundUnitPattern1[@count="few"][@gender="feminine"] →
+/compoundUnitPattern1[@count="few"][@gender="neuter"][@case="accusative">] →
+/compoundUnitPattern1[@count="few"][@gender="neuter"][@case="nominative">] →
+/compoundUnitPattern1[@count="few"][@gender="neuter"] →
+/compoundUnitPattern1[@count="few"][@case="accusative">] →
+/compoundUnitPattern1[@count="few"][@case="nominative">] →
+/compoundUnitPattern1[@count="few"] →
+
+/compoundUnitPattern1[@count="other"][@gender="feminine"][@case="accusative">] →
+/compoundUnitPattern1[@count="other"][@gender="feminine"][@case="nominative">] →
+/compoundUnitPattern1[@count="other"][@gender="feminine"] →
+/compoundUnitPattern1[@count="other"][@gender="neuter"][@case="accusative">] →
+/compoundUnitPattern1[@count="other"][@gender="neuter"][@case="nominative">] →
+/compoundUnitPattern1[@count="other"][@gender="neuter"] →
+/compoundUnitPattern1[@count="other"][@case="accusative">] →
+/compoundUnitPattern1[@count="other"][@case="nominative">] →
+/compoundUnitPattern1[@count="other"] →
+
+/compoundUnitPattern1[@gender="feminine"][@case="accusative">] →
+/compoundUnitPattern1[@gender="feminine"][@case="nominative">] →
+/compoundUnitPattern1[@gender="feminine"] →
+/compoundUnitPattern1[@gender="neuter"][@case="accusative">] →
+/compoundUnitPattern1[@gender="neuter"][@case="nominative">] →
+/compoundUnitPattern1[@gender="neuter"] →
+/compoundUnitPattern1[@case="accusative">] →
+/compoundUnitPattern1[@case="nominative">] →
+/compoundUnitPattern1
+```
+
+_Examples:_
+
+##### <a name="Count_Fallback_normal" href="#Count_Fallback_normal">Count Fallback: normal</a>
+
+| Locale | Path |
+| ------ | ---- |
+| fr-CA | `//ldml/units/unitLength[@type="narrow"]/unit[@type="mass-gram"]/unitPattern[@count="x"]` |
+| fr-CA | `//ldml/units/unitLength[@type="narrow"]/unit[@type="mass-gram"]/unitPattern[@count="other"]` |
+| fr | `//ldml/units/unitLength[@type="narrow"]/unit[@type="mass-gram"]/unitPattern[@count="x"]` |
+| fr | `//ldml/units/unitLength[@type="narrow"]/unit[@type="mass-gram"]/unitPattern[@count="other"]` |
+| root | `//ldml/units/unitLength[@type="narrow"]/unit[@type="mass-gram"]/unitPattern[@count="x"]` |
+| root | `//ldml/units/unitLength[@type="narrow"]/unit[@type="mass-gram"]/unitPattern[@count="other"]` |
+
+> Note that there may also be an alias in root that changes the path and starts again from the requested locale, such as:
+
+```xml
+<unitLength type="narrow">
+ <alias source="locale" path="../unitLength[@type='short']"/>
+</unitLength>
+```
+
+##### <a name="Count_Fallback_currency" href="#Count_Fallback_currency">Count Fallback: currency</a>
+
+| Locale | Path |
+| ------ | ---- |
+| fr-CA | `//ldml/numbers/currencies/currency[@type="CAD"]/displayName[@count="x"]` |
+| fr-CA | `//ldml/numbers/currencies/currency[@type="CAD"]/displayName[@count="other"]` |
+| fr-CA | `//ldml/numbers/currencies/currency[@type="CAD"]/displayName` |
+| fr | `//ldml/numbers/currencies/currency[@type="CAD"]/displayName[@count="x"]` |
+| fr | `//ldml/numbers/currencies/currency[@type="CAD"]/displayName[@count="other"]` |
+| fr | `//ldml/numbers/currencies/currency[@type="CAD"]/displayName` |
+| root | `//ldml/numbers/currencies/currency[@type="CAD"]/displayName[@count="x"]` |
+| root | `//ldml/numbers/currencies/currency[@type="CAD"]/displayName[@count="other"]` |
+| root | `//ldml/numbers/currencies/currency[@type="CAD"]/displayName` |
+
+
+#### <a name="Parent_Locales" href="#Parent_Locales">4.1.3 Parent Locales</a>
+
+```xml
+<!ELEMENT parentLocales ( parentLocale* ) >
+<!ELEMENT parentLocale EMPTY >
+<!ATTLIST parentLocale parent NMTOKEN #REQUIRED >
+<!ATTLIST parentLocale locales NMTOKENS #REQUIRED >
+```
+
+In some cases, the normal truncation inheritance does not function well. This happens when:
+
+1. The child locale is of a different script. In this case, mixing elements from the parent into the child data results in a mishmash.
+2. A large number of child locales behave similarly, and differently from the truncation parent.
+
+The `parentLocale` element is used to override the normal inheritance when accessing CLDR data.
+
+For case 1, the children are script locales, and the parent is "root". For example:
+
+```xml
+<parentLocale parent="root" locales="az_Cyrl ha_Arab … zh_Hant"/>
+```
+
+For case 2, the children and parent share the same primary language, but the region is changed. For example:
+
+```xml
+<parentLocale parent="es_419" locales="es_AR es_BO … es_UY es_VE"/>
+```
+
+Collation data, however, is an exception. Since collation rules do not truly inherit data from the parent, the `parentLocale` element is not necessary and not used for collation. Thus, for a locale like zh_Hant in the example above, the `parentLocale` element would dictate the parent as "root" when referring to main locale data, but for collation data, the parent locale would still be "zh", even though the `parentLocale` element is present for that locale.
+
+Since parentLocale information is not localizable on a per locale basis, the parentLocale information is contained in CLDR’s [supplemental data.](tr35-info.md)
+
+When a `parentLocale` element is used to override normal inheritance, the following invariants must always be true:
+
+1. If X is the parentLocale of Y, then either X is the root locale, or X has the same base language code as Y. For example, the parent of "en" cannot be "fr", and the parent of "en_YY" cannot be "fr" or "fr_XX".
+2. If X is the parentLocale of Y, Y must not be a base language locale. For example, the parent of "en" cannot be "en_XX".
+3. There can never be cycles, such as: X parent of Y ... parent of X.
+
+### <a name="Inheritance_and_Validity" href="#Inheritance_and_Validity">4.2 Inheritance and Validity</a>
+
+The following describes in more detail how to determine the exact inheritance of elements, and the validity of a given element in LDML.
+
+#### <a name="Definitions" href="#Definitions">4.2.1 Definitions</a>
+
+_Blocking_ elements are those whose subelements do not inherit from parent locales. For example, a `<collation>` element is a blocking element: everything in a `<collation>` element is treated as a single lump of data, as far as inheritance is concerned. For more information, see [Section 5.5 Valid Attribute Values](#Valid_Attribute_Values).
+
+Attributes that serve to distinguish multiple elements at the same level are called _distinguishing_ attributes. For example, the `type` attribute distinguishes different elements in lists of translations, such as:
+
+```xml
+<language type="aa">Afar</language>
+<language type="ab">Abkhazian</language>
+```
+
+Distinguishing attributes affect inheritance; two elements with different distinguishing attributes are treated as different for purposes of inheritance. For more information, see [Section 5.5 Valid Attribute Values](#Valid_Attribute_Values). Other attributes are called nondistinguishing (or informational) attributes. These carry separate information, and do not affect inheritance.
+
+For any element in an XML file, _an element chain_ is a resolved [[XPath](#XPath)] leading from the root to an element, with attributes on each element in alphabetical order. So in, say, [https://github.com/unicode-org/cldr/blob/master/common/main/el.xml](https://github.com/unicode-org/cldr/blob/master/common/main/el.xml) we may have:
+
+```xml
+<ldml>
+ <identity>
+ <version number="1.1" />
+ <language type="el" />
+ </identity>
+ <localeDisplayNames>
+ <languages>
+ <language type="ar">Αραβικά</language>
+...
+```
+
+Which gives the following element chains (among others):
+
+* `//ldml/identity/version[@number="1.1"]`
+* `//ldml/localeDisplayNames/languages/language[@type="ar"]`
+
+An element chain A is an _extension_ of an element chain B if B is equivalent to an initial portion of A. For example, #2 below is an extension of #1. (Equivalent, depending on the tree, may not be "identical to". See below for an example.)
+
+1. `//ldml/localeDisplayNames`
+2. `//ldml/localeDisplayNames/languages/language[@type="ar"]`
+
+An LDML file can be thought of as an ordered list of _element pairs_: <element chain, data>, where the element chains are all the chains for the end-nodes. (This works because of restrictions on the structure of LDML, including that it does not allow mixed content.) The ordering is the ordering that the element chains are found in the file, and thus determined by the DTD.
+
+For example, some of those pairs would be the following. Notice that the first has the null string as element contents.
+
+* <`//ldml/identity/version[@number="1.1"]`,` ""`>
+* <`//ldml/localeDisplayNames/languages/language[@type="ar"]`, `"Αραβικά"`>
+
+> Note: There are two exceptions to this:
+>
+> 1. Blocking nodes and their contents are treated as a single end node.
+> 2. In terms of computing inheritance, the element pair consists of the element chain plus all distinguishing attributes; the value consists of the value (if any) plus any nondistinguishing attributes.
+>
+> > Thus instead of the element pair being (a) below, it is (b):
+> >
+> > 1. <`//ldml/dates/calendars/calendar[@type='gregorian']/week/weekendStart[@day='sun'][@time='00:00']`,`""`>
+> > 2. <`//ldml/dates/calendars/calendar[@type='gregorian']/week/weekendStart`,`[@day='sun'][@time='00:00']`>
+
+Two LDML element chains are _equivalent_ when they would be identical if all attributes and their values were removed — except for distinguishing attributes. Thus the following are equivalent:
+
+* `//ldml/localeDisplayNames/languages/language[@type="ar"]`
+* `//ldml/localeDisplayNames/languages/language[@type="ar"][@draft="unconfirmed"]`
+
+For any locale ID, an _locale chain_ is an ordered list starting with the root and leading down to the ID. For example:
+
+> <root, de, de_DE, de_DE_xxx>
+
+#### <a name="Resolved_Data_File" href="#Resolved_Data_File">4.2.2 Resolved Data File</a>
+
+To produce fully resolved locale data file from CLDR for a locale ID L, you start with L, and successively add unique items from the parent locales until you get up to root. More formally, this can be expressed as the following procedure.
+
+1. Let Result be initially L.
+2. For each Li in the locale chain for L, starting at L and going up to root:
+ 1. Let Temp be a copy of the pairs in the LDML file for Li
+ 2. Replace each alias in Temp by the resolved list of pairs it points to.
+ 1. The resolved list of pairs is obtained by recursively applying this procedure.
+ 2. That alias now blocks any inheritance from the parent. (See _[Section 5.1 Common Elements](#Common_Elements)_ for an example.)
+ 3. For each element pair P in Temp:
+ 1. If P does not contain a blocking element, and Result does not have an element pair Q with an equivalent element chain, add P to Result.
+
+**Notes:**
+
+* When adding an element pair to a result, it has to go in the right order for it to be valid according to the DTD.
+* The identity element and its children are unaffected by resolution.
+* The LDML data must be constructed so as to avoid circularity in step 2.2.
+
+#### <a name="Valid_Data" href="#Valid_Data">4.2.3 Valid Data</a>
+
+The attribute `draft="x"` in LDML means that the data has not been approved by the subcommittee. (For more information, see [Process](http://cldr.unicode.org/index/process)). However, some data that is not explicitly marked as `draft` may be implicitly `draft`, either because it inherits it from a parent, or from an enclosing element.
+
+**Example 2.** Suppose that new locale data is added for af (Afrikaans). To indicate that all of the data is _unconfirmed_, the attribute can be added to the top level.
+
+```xml
+<ldml version="1.1" draft="unconfirmed">
+ <identity>
+ <version number="1.1" />
+ <language type="af" />
+ </identity>
+ <characters>...</characters>
+ <localeDisplayNames>...</localeDisplayNames>
+</ldml>
+```
+
+Any data can be added to that file, and the status will all be `draft="unconfirmed"`. Once an item is vetted—_whether it is inherited or explicitly in the file_—then its status can be changed to _approved_. This can be done either by leaving `draft="unconfirmed"` on the enclosing element and marking the child with `draft="approved"`, such as:
+
+```xml
+<ldml version="1.1" draft="unconfirmed">
+ <identity>
+ <version number="1.1" />
+ <language type="af" />
+ </identity>
+ <characters draft="approved">...</characters>
+ <localeDisplayNames>...</localeDisplayNames>
+ <dates />
+ <numbers />
+ <collations />
+</ldml>
+```
+
+However, normally the draft attributes should be canonicalized, which means they are pushed down to leaf nodes as described in _[Section 5.6 Canonical Form](#Canonical_Form)_. If an LDML file does has draft attributes that are not on leaf nodes, the file should be interpreted as if it were the canonicalized version of that file.
+
+More formally, here is how to determine whether data for an element chain E is implicitly or explicitly draft, given a locale L. Sections 1, 2, and 4 are simply formalizations of what is in LDML already. Item 3 adds the new element.
+
+#### <a name="Checking_for_Draft_Status" href="#Checking_for_Draft_Status">4.2.4 Checking for Draft Status</a>
+
+1. **Parent Locale Inheritance**
+ 1. Walk through the locale chain until you find a locale ID L' with a data file D. (L' may equal L).
+ 2. Produce the fully resolved data file D' for D.
+ 3. In D', find the first element pair whose element chain E' is either equivalent to or an extension of E.
+ 4. If there is no such E', return _true_
+ 5. If E' is not equivalent to E, truncate E' to the length of E.
+2. **Enclosing Element Inheritance**
+ 1. Walk through the elements in E', from back to front.
+ 1. If you ever encounter draft=_x_, return _x_
+ 2. If L' = L, return _false_
+3. **Missing File Inheritance**
+ 1. Otherwise, walk again through the elements in E', from back to front.
+ 1. If you encounter a `validSubLocales` attribute (deprecated):
+ 1. If L is in the attribute value, return _false_
+ 2. Otherwise return _true_
+4. **Otherwise**
+ 1. Return _true_
+
+The `validSubLocales` in the most specific (farthest from root file) locale file "wins" through the full resolution step (data from more specific files replacing data from less specific ones).
+
+#### <a name="Keyword_and_Default_Resolution" href="#Keyword_and_Default_Resolution">4.2.5 Keyword and Default Resolution</a>
+
+When accessing data based on keywords, the following process is used. Consider the following example:
+
+* The locale 'de' has collation types A, B, C, and no `<default>` element
+* The locale 'de_CH' has `<default type='B'>`
+
+Here are the searches for various combinations.
+
+<!-- HTML: rowspan -->
+<table><thead>
+<tr><th>User Input</th> <th>Lookup in Locale</th> <th>For</th> <th>Comment</th></tr>
+</thead><tbody>
+<tr><td rowspan="3">de_CH<br/><i>no keyword</i></td> <td>de_CH</td> <td>default collation type</td> <td>finds "B"</td></tr>
+<tr> <td>de_CH</td> <td>collation type=B</td> <td>not found</td></tr>
+<tr> <td>de</td> <td>collation type=B</td> <td><i>found</i></td></tr>
+<tr><td rowspan="4">de<br/><i>no keyword</i></td> <td>de</td> <td>default collation type</td> <td>not found</td></tr>
+<tr> <td>root</td> <td>default collation type</td> <td>finds "standard"</td></tr>
+<tr> <td>de</td> <td>collation type=standard</td> <td>not found</td></tr>
+<tr> <td>root</td> <td>collation type=standard</td> <td><i>found</i></td></tr>
+<tr><td>de_u_co_A</td> <td>de</td> <td>collation type=A</td> <td><i>found</i></td></tr>
+<tr><td rowspan="2">de_u_co_standard</td> <td>de</td> <td>collation type=standard</td> <td>not found</td></tr>
+<tr> <td>root</td> <td>collation type=standard</td> <td><i>found</i></td></tr>
+<tr><td rowspan="6">de_u_co_foobar</td> <td>de</td> <td>collation type=foobar</td> <td>not found</td></tr>
+<tr> <td>root</td> <td>collation type=foobar</td> <td>not found, starts looking for default</td></tr>
+<tr> <td>de</td> <td>default collation type</td> <td>not found</td></tr>
+<tr> <td>root</td> <td>default collation type</td> <td>finds "standard"</td></tr>
+<tr> <td>de</td> <td>collation type=standard</td> <td>not found</td></tr>
+<tr> <td>root</td> <td>collation type=standard</td> <td><i>found</i></td></tr>
+</tbody></table>
+
+Examples of "search" collator lookup; 'de' has a language-specific version, but 'en' does not:
+
+<!-- HTML: rowspan -->
+<table><thead>
+<tr><th>User Input</th> <th>Lookup in Locale</th> <th>For</th> <th>Comment</th></tr>
+</thead><tbody>
+<tr><td rowspan="2">de_CH_u_co_search</td> <td>de_CH</td> <td>collation type=search</td> <td>not found</td></tr>
+<tr> <td>de</td> <td>collation type=search</td> <td><i>found</i></td></tr>
+<tr><td rowspan="3">en_US_u_co_search</td> <td>en_US</td> <td>collation type=search</td> <td>not found</td></tr>
+<tr> <td>en</td> <td>collation type=search</td> <td>not found</td></tr>
+<tr> <td>root</td> <td>collation type=search</td> <td><i>found</i></td></tr>
+</tbody></table>
+
+Examples of lookup for Chinese collation types. Note:
+
+* All of the Chinese-specific collation types are provided in the 'zh' locale
+* For 'zh' the `<default>` element specifies "pinyin"; for 'zh_Hant' the `<default>` element specifies "stroke". However any of the available Chinese collation types can be explicitly requested for any Chinese locale.
+
+<!-- HTML: rowspan -->
+<table><thead>
+<tr><th>User Input</th> <th>Lookup in Locale</th> <th>For</th> <th>Comment</th></tr>
+</thead><tbody>
+<tr><td rowspan="3">zh_Hant<br/><i>no keyword</i></td> <td>zh_Hant</td> <td>default collation type</td> <td>finds "stroke"</td></tr>
+<tr> <td>zh_Hant</td> <td>collation type=stroke</td> <td>not found</td></tr>
+<tr> <td>zh</td> <td>collation type=stroke</td> <td><i>found</i></td></tr>
+<tr><td rowspan="3">zh_Hant_HK_u_co_pinyin</td> <td>zh_Hant_HK</td> <td>collation type=pinyin</td> <td>not found</td></tr>
+<tr> <td>zh_Hant</td> <td>collation type=pinyin</td> <td>not found</td></tr>
+<tr> <td>zh</td> <td>collation type=pinyin</td> <td><i>found</i></td></tr>
+<tr><td rowspan="2">zh<br/><i>no keyword</i></td> <td>zh</td> <td>default collation type</td> <td>finds "pinyin"</td></tr>
+<tr> <td>zh</td> <td>collation type=pinyin</td> <td><i>found</i></td></tr>
+</tbody></table>
+
+> **Note:** It is an invariant that the default in root for a given element must
+> always be a value that exists in root. So you can not have the following in root:
+
+```
+<someElements>
+ <default type='a'/>
+ <someElement type='b'>...</someElement>
+ <someElement type='c'>...</someElement>
+ <!-- no 'a' -->
+</someElements>
+```
+
+For identifiers, such as language codes, script codes, region codes, variant codes, types, keywords, currency symbols or currency display names, the default value is the identifier itself whenever if no value is found in the root. Thus if there is no display name for the region code 'QA' in root, then the display name is simply 'QA'.
+
+#### <a name="Inheritance_vs_Related" href="#Inheritance_vs_Related">4.2.6 Inheritance vs Related Information</a>
+
+There are related types of data and processing that are easy to confuse:
+
+<!-- HTML: rowspan, colspan, col th -->
+<table class="simple"><tbody>
+<tr><th rowspan="4">Inheritance</th>
+ <td colspan="2">Part of the internal mechanism used by CLDR to organize and manage locale data. This is used to share common resources, and ease maintenance, and provide the best fallback behavior in the absence of data. <i>Should not be used for locale matching or likely subtags.</i></td></tr>
+ <tr><td><i>Example:</i></td>
+ <td>parent(en_AU) ⇒ en_001<br/>
+ parent(en_001) ⇒ en<br/>
+ parent(en) ⇒ root</td></tr>
+ <tr><td><i>Data:</i></td>
+ <td>supplementalData.xml <parentLocale></td></tr>
+ <tr><td><i>Spec:</i></td>
+ <td><b>Section <a href="#Inheritance_and_Validity">4.2 Inheritance and Validity</a></b></td></tr>
+
+<tr><th rowspan="4">DefaultContent</th>
+ <td colspan="2">Part of the internal mechanism used by CLDR to manage locale data. A particular sublocale is designated the defaultContent for a parent, so that the parent exhibits consistent behavior. <i>Should not be used for locale matching or likely subtags.</i></td></tr>
+ <tr><td><i>Example:</i></td>
+ <td>addLikelySubtags(sr-ME) ⇒ sr-Latn-ME, minimize(de-Latn-DE) ⇒ de</td></tr>
+ <tr><td><i>Data:</i></td>
+ <td>supplementalMetadata.xml <defaultContent></td></tr>
+ <tr><td><i>Spec:</i></td
+ ><td><b>Part 6: Section 9.3 <a href="tr35-info.md#Default_Content">Default Content</a></b></td></tr>
+
+<tr><th rowspan="4">LikelySubtags</th>
+ <td colspan="2">Provides most likely full subtag (script and region) in the absence of other information. A core component of LocaleMatching.</td></tr>
+ <tr><td><i>Example:</i></td>
+ <td>addLikelySubtags(zh) ⇒ zh-Hans-CN<br/>addLikelySubtags(zh-TW) ⇒ zh-Hant-TW<br/>minimize(zh-Hans, favorRegion) ⇒ zh-TW</td></tr>
+ <tr><td><i>Data:</i></td>
+ <td>likelySubtags.xml <likelySubtags></td></tr>
+ <tr><td><i>Spec:</i></td>
+ <td><b>Section <a href="#Likely_Subtags">4.3 Likely Subtags</a></b></td></tr>
+
+<tr><th rowspan="4">LocaleMatching</th>
+ <td colspan="2">Provides the best match for the user’s language(s) among an application’s supported languages.</td></tr>
+ <tr><td><i>Example:</i></td>
+ <td>bestLocale(userLangs=<en, fr>, appLangs=<fr-CA, ru>) ⇒ fr-CA</td></tr>
+ <tr><td><i>Data:</i></td>
+ <td>languageInfo.xml <languageMatching></td></tr>
+ <tr><td><i>Spec:</i></td>
+ <td><b>Section <a href="#LanguageMatching">4.4 Language Matching</a></b></td></tr>
+
+</tbody></table>
+
+### <a name="Likely_Subtags" href="#Likely_Subtags">4.3 Likely Subtags</a>
+
+```xml
+<!ELEMENT likelySubtag EMPTY >
+<!ATTLIST likelySubtag from NMTOKEN #REQUIRED>
+<!ATTLIST likelySubtag to NMTOKEN #REQUIRED>
+```
+
+There are a number of situations where it is useful to be able to find the most likely language, script, or region. For example, given the language "zh" and the region "TW", what is the most likely script? Given the script "Thai" what is the most likely language or region? Given the region TW, what is the most likely language and script?
+
+Conversely, given a locale, it is useful to find out which fields (language, script, or region) may be superfluous, in the sense that they contain the likely tags. For example, "en_Latn" can be simplified down to "en" since "Latn" is the likely script for "en"; "ja_Jpan_JP" can be simplified down to "ja".
+
+The _likelySubtag_ supplemental data provides default information for computing these values. This data is based on the default content data, the population data, and the suppress-script data in [[BCP47](#BCP47)]. It is heuristically derived, and may change over time.
+
+For the relationship between Inheritance, DefaultContent, LikelySubtags, and LocaleMatching, see **_Section 4.2.6 [Inheritance vs Related Information](tr35.md#Inheritance_vs_Related)_**.
+
+To look up data in the table, see if a locale matches one of the `from` attribute values. If so, fetch the corresponding `to` attribute value. For example, the Chinese data looks like the following:
+
+```xml
+<likelySubtag from="zh" to="zh_Hans_CN" />
+<likelySubtag from="zh_HK" to="zh_Hant_HK" />
+<likelySubtag from="zh_Hani" to="zh_Hani_CN" />
+<likelySubtag from="zh_Hant" to="zh_Hant_TW" />
+<likelySubtag from="zh_MO" to="zh_Hant_MO" />
+<likelySubtag from="zh_TW" to="zh_Hant_TW" />
+```
+
+So looking up "zh_TW" returns "zh_Hant_TW", while looking up "zh" returns "zh_Hans_CN".
+
+In more detail, the data is designed to be used in the following operations.
+
+Note that as of CLDR v24, any field present in the 'from' field, is also present in the 'to' field, so an input field will not change in "Add Likely Subtags" operation. The data and operations can also be used with language tags using [[BCP47](#BCP47)] syntax, with the appropriate changes. In addition, certain common 'denormalized' language subtags such as 'iw' (for 'he') may occur in both the 'from' and 'to' fields. This allows for implementations that use those denormalized subtags to use the data with only minor changes to the operations.
+
+An implementation may choose exclude language tags with the language subtag "und" from the following operation. In such a case, only the canonicalization is done. An implementation can declare that it is doing the exclusion, or can take a parameter that controls whether or not to do it.
+
+_**Add Likely Subtags:**_ _Given a source locale X, to return a locale Y where the empty subtags have been filled in by the most likely subtags._ This is written as X ⇒ Y ("X maximizes to Y").
+
+A subtag is called _empty_ if it is a missing script or region subtag, or it is a base language subtag with the value "und". In the description below, a subscript on a subtag _x_ indicates which tag it is from: _xs_ is in the source, _xm_ is in a match, and _xr_ is in the final result.
+
+This operation is performed in the following way.
+
+1. **Canonicalize.**
+ 1. Make sure the input locale is in canonical form: uses the right separator, and has the right casing.
+ 2. Replace any deprecated subtags with their canonical values using the `<alias>` data in supplemental metadata. Use the first value in the replacement list, if it exists. Language tag replacements may have multiple parts, such as "sh" ➞ "sr_Latn" or mo" ➞ "ro_MD". In such a case, the original script and/or region are retained if there is one. Thus "sh_Arab_AQ" ➞ "sr_Arab_AQ", not "sr_Latn_AQ".
+ 3. If the tag is a legacy language tag (marked as “Type: grandfathered” in BCP 47; see `<variable id="$grandfathered" type="choice">` in the supplemental data), then return it.
+ 4. Remove the script code 'Zzzz' and the region code 'ZZ' if they occur.
+ 5. Get the components of the cleaned-up source tag _(languages, scripts,_ and _regions_), plus any variants and extensions.
+2. **Lookup.** Lookup each of the following in order, and stop on the first match:
+ 1. _languages_scripts_regions_
+ 2. _languages_regions_
+ 3. _languages_scripts_
+ 4. __languages__
+ 5. und\__scripts_
+3. **Return**
+ 1. If there is no match,either return
+ 1. an error value, or
+ 2. the match for "und" (in APIs where a valid language tag is required).
+ 2. Otherwise there is a match = _languagem_scriptm_regionm_
+ 3. Let xr = xs if xs is not empty, and xm otherwise.
+ 4. Return the language tag composed of _languager _ scriptr _ regionr_ + variants + extensions .
+
+The lookup can be optimized. For example, if any of the tags in Step 2 are the same as previous ones in that list, they do not need to be tested.
+
+_Example1:_
+
+* Input is ZH-ZZZZ-SG.
+* Normalize to zh_SG.
+* Lookup in table. No match.
+* Lookup zh, and get the match (zh_Hans_CN). Substitute SG, and return zh_Hans_SG.
+
+To find the most likely language for a country, or language for a script, use "und" as the language subtag. For example, looking up "und_TW" returns zh_Hant_TW.
+
+A goal of the algorithm is that if X ⇒ Y, and X' results from replacing an empty subtag in X by the corresponding subtag in Y, then X' ⇒ Y. For example, if und_AF ⇒ fa_Arab_AF, then:
+
+* fa_Arab_AF ⇒ fa_Arab_AF
+* und_Arab_AF ⇒ fa_Arab_AF
+* fa_AF ⇒ fa_Arab_AF
+
+There are a small number of exceptions to this goal in the current data, where X ∈ {und_Bopo, und_Brai, und_Cakm, und_Limb, und_Shaw}.
+
+**_Remove_** _**Likely Subtags:** Given a locale, remove any fields that Add Likely Subtags would add._
+
+The reverse operation removes fields that would be added by the first operation.
+
+1. First get max = AddLikelySubtags(inputLocale). If an error is signaled, return it.
+2. Remove the variants from max.
+3. Get the components of the max (_languagemax_, _scriptmax_, _regionmax_).
+4. Then for _trial_ in {_languagemax_, _languagemax_regionmax_, _languagemax_scriptmax_}
+ * If AddLikelySubtags(_trial_) = max, then return _trial_ + variants.
+5. If you do not get a match, return max + variants.
+
+Example:
+
+* Input is zh_Hant. Maximize to get zh_Hant_TW.
+* zh => zh_Hans_CN. No match, so continue.
+* zh_TW => zh_Hant_TW. Matches, so return zh_TW.
+
+A variant of this favors the script over the region, thus using {language, language_script, language_region} in the above. If that variant is used, then the result in this example would be zh_Hant instead of zh_TW.
+
+### <a name="LanguageMatching" href="#LanguageMatching">4.4 Language Matching</a>
+
+```xml
+<!ELEMENT languageMatching ( languageMatches* ) >
+<!ELEMENT languageMatches ( paradigmLocales*, matchVariable*, languageMatch* ) >
+<!ATTLIST languageMatches type NMTOKEN #REQUIRED >
+
+<!ELEMENT languageMatch EMPTY >
+<!ATTLIST languageMatch desired CDATA #REQUIRED >
+<!ATTLIST languageMatch supported CDATA #REQUIRED >
+<!ATTLIST languageMatch percent NMTOKEN #REQUIRED >
+<!ATTLIST languageMatch distance NMTOKEN #IMPLIED >
+<!ATTLIST languageMatch oneway ( true | false ) #IMPLIED >
+
+<!ELEMENT languageMatches ( paradigmLocales*, matchVariable*, languageMatch* ) >
+<!ATTLIST languageMatches type NMTOKEN #REQUIRED >
+
+<!ELEMENT paradigmLocales EMPTY >
+<!ATTLIST paradigmLocales locales NMTOKENS #REQUIRED >
+```
+
+Implementers are often faced with the issue of how to match the user's requested languages with their product's supported languages. For example, suppose that a product supports \{ja-JP, de, zh-TW}. If the user understands written American English, German, French, Swiss German, and Italian, then **de** would be the best match; if s/he understands only Chinese (zh), then zh-TW would be the best match.
+
+The standard truncation-fallback algorithm does not work well when faced with the complexities of natural language. The language matching data is designed to fill that gap. Stated in those terms, language matching can have the effect of a more complex fallback, such as:
+
+```
+sr-Cyrl-RS
+sr-Cyrl
+sr-Latn-RS
+sr-Latn
+sr
+hr-Latn
+hr
+```
+
+Language matching is used to find the best supported locale ID given a requested list of languages. The requested list could come from different sources, such as such as the user's list of preferred languages in the OS Settings, or from a browser Accept-Language list. For example, if my native tongue is English, I can understand Swiss German and German, my French is rusty but usable, and Italian basic, ideally an implementation would allow me to select {gsw, de, fr} as my preferred list of languages, skipping Italian because my comprehension is not good enough for arbitrary content.
+
+Language Matching can also be used to get fallback data elements. In many cases, there may not be full data for a particular locale. For example, for a Breton speaker, the best fallback if data is unavailable might be French. That is, suppose we have found a Breton bundle, but it does not contain translation for the key "CN" (for the country China). It is best to return "chine", rather than falling back to the value default language such as Russian and getting "Китай". The language matching data can be used to get the closest fallback locales (of those supported) to a given language.
+
+For the relationship between Inheritance, DefaultContent, LikelySubtags, and LocaleMatching, see **_Section 4.2.6 [Inheritance vs Related Information](tr35.md#Inheritance_vs_Related)_**.
+
+When such fallback is used for inherited item lookup, the normal order of inheritance is used for inherited item lookup, except that before using any data from **root**, the data for the fallback locales would be used if available. Language matching does not interact with the fallback of resources _within the locale-parent chain_. For example, suppose that we are looking for the value for a particular path **P** in **nb-NO**. In the absence of aliases, normally the following lookup is used.
+
+> **nb-NO** → **nb** → **root**
+
+That is, we first look in **nb-NO**. If there is no value for **P** there, then we look in **nb**. If there is no value for **P** there, we return the value for **P** in root (or a code value, if there is nothing there). Remember that if there is an `alias` element along this path, then the lookup may restart with a different path in **nb-NO** (or another locale).
+
+However, suppose that **nb-NO** has the fallback values **[nn da sv en]**, derived from language matching. In that case, an implementation _may_ progressively lookup each of the listed locales, with the appropriate substitutions, returning the first value that is not found in **root**. This follows roughly the following pseudocode:
+
+```c
+value = lookup(P, nb-NO); if (locationFound != root) return value;
+value = lookup(P, nn-NO); if (locationFound != root) return value;
+value = lookup(P, da-NO); if (locationFound != root) return value;
+value = lookup(P, sv-NO); if (locationFound != root) return value;
+value = lookup(P, en-NO); return value;
+```
+
+The locales in the fallback list are not used recursively. For example, for the lookup of a path in nb-NO, if **fr** were a fallback value for **da**, it would not matter for the above process. Only the original language matters.
+
+The language matching data is intended to be used according to the following algorithm. This is a logical description, and can be optimized for production in many ways. In this algorithm, the languageMatching data is interpreted as an ordered list.
+
+Distances between given pair of subtags can be larger or smaller than the typical distances. For example, the distance between en and en-GB can be greater than those between en-GB and en-IE. In some cases, language and/or script differences can be as small as the typical region difference. (Example: sr-Latn vs. sr-Cyrl).
+
+The distances resulting from the table are not linear, but are rather chosen to produce expected results. So a distance of 10 is not necessarily twice as "bad" as a distance of 5. Implementations may want to have a mode where script distances should swamp language distances. The tables are built such that this can be accomplished by multiplying the language distance by 0.25.
+
+The language matching algorithm takes a list of a user’s desired languages, and a list of the application’s supported languages.
+
+* Set the best weighted distance BWD to ∞
+* Set the best desired language BD to null
+* Set the best supported language BS to null
+* For each desired language D
+ * Compute a demotion value F, based on the position in the list.
+ * This demotion value is up to the implementation, but is typically a positive value that increases according to how far D is from the start of the desired language list.
+ * For each supported language S
+ * Find the matching distance MD as described below.
+ * Compute the weighted distance as F + MD
+ * If WD < BD
+ * BWD = WD
+ * BD = D
+ * BS = S
+* If the BWD is less than a threshold, return <BD, BS>
+ * The threshold is implementation-defined, typically set to greater than a default region difference, and less than a default script difference.
+* Otherwise BD = the default supported language (like English); return <BD, null>
+
+To find the matching distance MD between any two languages, perform the following steps.
+
+1. Maximize each language using Section 4.3 [Likely Subtags](#Likely_Subtags).
+ * und is a special case: see below.
+2. Set the match-distance MD to 0
+3. For each subtag in {language, script, region}
+ 1. If respective subtags in each language tag are identical, remove the subtag from each (logically) and continue.
+ 2. Traverse the languageMatching data until a match is found.
+ * * matches any field.
+ * If the oneway flag is false, then the match is symmetric; otherwise only match one direction.
+ * For region matching, use the mechanisms in **Section 4.4.1 [Enhanced Language Matching](#EnhancedLanguageMatching)**.
+ 3. Add the `distance` attribute value to MD.
+ * This used to be a `percent` attribute value, which was 100 - the `distance` attribute value.
+ 4. Remove the subtag from each (logically)
+4. Return MD
+
+It is typically useful to set the discount factor between successive elements of the desired languages list to be slightly greater than the default region difference. That avoids the following problem:
+
+_Supported languages:_ "de, fr, ja"
+
+_User's desired languages:_ "de-AT, fr"
+
+This user would expect to get "de", not "fr". In practice, when a user selects a list of preferred languages, they don't include all the regional variants ahead of their second base language. Yet while the user's desired languages really doesn't tell us the priority ranking among their languages, normally the fall-off between the user's languages is substantially greater than regional variants. But unless F is greater than the distance between de-AT and de-DE, then the user’s second-choice language would be returned.
+
+The base language subtag "und" is a special case. Suppose we have the following situation:
+
+* desired languages: \{und, it}
+* supported languages: \{en, it}
+* resulting language: en
+
+Part of this is because 'und' has a special function in BCP 47; it stands in for 'no supplied base language'. To prevent this from happening, if the desired base language is und, the language matcher should not apply likely subtags to it.
+
+Examples:
+
+For example, suppose that nn-DE and nb-FR are being compared. They are first maximized to nn-Latn-DE and nb-Latn-FR, respectively. The list is searched. The first match is with "\*-\*-\*", for a match of 96%. The languages are truncated to nn-Latn and nb-Latn, then to nn and nb. The first match is also for a value of 96%, so the result is 92%.
+
+Note that language matching is orthogonal to the how closely two languages are related linguistically. For example, Breton is more closely related to Welsh than to French, but French is the better match (because it is more likely that a Breton reader will understand French than Welsh). This also illustrates that the matches are often asymmetric: it is not likely that a French reader will understand Breton.
+
+The "\*" acts as a wild card, as shown in the following example:
+
+```xml
+<languageMatch desired="es-*-ES" supported="es-*-ES" percent="100" />
+<!-- Latin American Spanishes are closer to each other. Approximate by having es-ES be further from everything else. -->
+
+<languageMatch desired="es-*-ES" supported="es-*-*" percent="93" />
+
+<languageMatch desired="*" supported="*" percent="1" />
+<!-- [Default value - must be at end!] Normally there is no comprehension of different languages. -->
+
+<languageMatch desired="*-*" supported="*-*" percent="20" />
+<!-- [Default value - must be at end!] Normally there is little comprehension of different scripts. -->
+
+<languageMatch desired="*-*-*" supported="*-*-*" percent="96" />
+<!-- [Default value - must be at end!] Normally there are small differences across regions. -->
+```
+
+When the language+region is not matched, and there is otherwise no reason to pick among the supported regions for that language, then some measure of geographic "closeness" can be used. The results may be more understandable by users. Looking for en-SK, for example, should fall back to something within Europe (eg en-GB) in preference to something far away and unrelated (eg en-SG). Such a closeness metric does not need to be exact; a small amount of data can be used to give an approximate distance between any two regions. However, any such data must be used carefully; although Hong Kong is closer to India than to the UK, it is unlikely that en-IN would be a better match to en-HK than en-GB would.
+
+#### <a name="EnhancedLanguageMatching" href="#EnhancedLanguageMatching">4.4.1 Enhanced Language Matching</a>
+
+The enhanced format for language matching adds structure to enable better matching of languages. It is distinguished by having a suffix "\_new" on the type, as in the example below. The extended structure allows matching to take into account broad similarities that would give better results. For example, for English the regions that are or inherit from US (AS|GU|MH|MP|PR|UM|VI|US) form a “cluster”. Each region in that cluster should be closer to each other than to any other region. And a region outside the cluster should be closer to another region outside that cluster than to one inside. We get this issue with the “world languages” like English, Spanish, Portuguese, Arabic, etc.
+
+_Example:_
+
+```xml
+<languageMatches type="written_new">
+ <paradigmLocales locales="en en-GB es es-419 pt-BR pt-PT" />
+ <matchVariable id="$enUS" value="AS+GU+MH+MP+PR+UM+US+VI" />
+ <matchVariable id="$cnsar" value="HK+MO" />
+ <matchVariable id="$americas" value="019" />
+ <matchVariable id="$maghreb" value="MA+DZ+TN+LY+MR+EH" />
+ <languageMatch desired="no" supported="nb" distance="1" /><!-- no ⇒ nb -->
+ …
+ <languageMatch desired="ar_*_$maghreb" supported="ar_*_$maghreb" distance="4" />
+ <!-- ar; *; $maghreb ⇒ ar; *; $maghreb -->
+ <languageMatch desired="ar_*_$!maghreb" supported="ar_*_$!maghreb" distance="4" />
+ <!-- ar; *; $!maghreb ⇒ ar; *; $!maghreb -->
+ …
+```
+
+The **matchVariable** allows for a rule to matche to multiple regions, as illustrated by **\$maghreb**. The syntax is simple: it allows for + for _union_ and - for _set difference_, but no precedence. So A+B-A+D is interpreted as (((A+B)-A)+D), not as (A+B)-(A+D). The variable **id** has a value of the form [$][a-zA-Z0-9]+. If $X is defined, then $!X automatically means all those regions that are not in $X.
+
+When the set is interpreted, then macrolanguages are (logically) transformed into a list of their contents, so “053+GB” → “AU+GB+NF+NZ”. This is done recursively, so 009 → “053+054+057+061+QO” → “AU+NF+NZ+FJ+NC+PG+SB +VU...”. Note that we use 019 for all of the Americas in the variables above, because en-US should be in the same cluster as es-419 and its contents.
+
+In the rules, the percent value (100..0) is replaced by a **distance** value, which is the inverse (0..100).
+
+These new variables and rules divide up the world into clusters, where items in the same clusters (for specific languages) get the normal regional difference, and items in different clusters get different weights.
+
+Each cluster can have one or more associated **paradigmLocales**. These are locales that are preferred within a cluster. So when matching desired=[en-SA] against [en-GU en en-IN en-GB], the value en-GB is returned. Both of \{en-GU en} are in a different cluster. While \{en-IN en-GB} are in the same cluster, and the same distance from en-SA, the preference is given to en-GB because it is in the paradigm locales. It would be possible to express this in rules, but using this mechanism handles these very common cases without bulking up the tables.
+
+The **paradigmLocales** also allow matching to macroregions. For example, desired=[es-419] should match to \{es-MX} more closely than to \{es}, and vice versa: \{es-MX} should match more closely to \{es-419} than to \{es}. But es-MX should match more closely to es-419 than to any of the other es-419 sublocales. In general, in the absence of other distance data, there is a ‘paradigm’ in each cluster that the others should match more closely to: en(-US), en-GB, es(-ES), es-419, ru(-RU)...
+
+
+
+## <a name="XML_Format" href="#XML_Format">5 XML Format</a>
+
+There are two kinds of data that can be expressed in LDML: language-dependent data and supplementary data. In either case, data can be split across multiple files, which can be in multiple directory trees.
+
+For example, the language-dependent data for Japanese in CLDR is present in the following files:
+
+* common/collation/ja.xml
+* common/main/ja.xml
+* common/rbnf/ja.xml
+* common/segmentations/ja.xml
+
+Data for cased languages such as French are in files like:
+
+* common/casing/fr.xml
+
+The status of the data is the same, whether or not data is split. That is, for the purpose of validation and lookup, all of the data for the above ja.xml files is treated as if it was in a single file. These files have the `<ldml>` root element and use ldml.dtd. The file name must match the identity element. For example, the `<ldml>` file pa_Arab_PK.xml must contain the following elements:
+
+```xml
+<ldml>
+ <identity>
+ …
+ <language type="pa" />
+ <script type="Arab" />
+ <territory type="PK" />
+ </identity>
+ …
+```
+
+Supplemental data can have different root elements, currently: `ldmlBCP47`, `supplementalData`, `keyboard`, and `platform`. Keyboard and platform files are considered distinct. The ldmlBCP47 files and supplementalData files that have the same root are all logically part of the same file; they are simply split into separate files for convenience. Implementations may split the files in different ways, also for their convenience. The files in /properties are also supplemental data files, but are structured like UCD properties.
+
+For example, supplemental data relating to Japan or the Japanese writing are in:
+
+* common/supplemental/ (in many files, such as supplementalData.xml)
+* common/transforms/Hiragana-Katakana.xml
+* common/transforms/Hiragana-Latin.xml
+* common/properties/scriptMetadata.txt
+* common/bcp47/calendar.xml
+* uca/allkeys_CLDR.txt (sorting)
+* /keyboards/chromeos/ja-t-k0-chromeos.xml
+* ...
+
+Like the `<ldml>` files, the keyboard file names must match internal data: in particular, the `locale` attribute on the keyboard element must have a value that corresponds to the file name, such as `<keyboard locale="af-t-k0-android">` for the file af-t-k0-android.xml.
+
+The following sections describe the structure of the XML format for language-dependent data. The more precise syntax is in the ldml.dtd file; _however, the DTD does not describe all the constraints on the structure._
+
+To start with, the root element is `<ldml>`, with the following DTD entry:
+
+```xml
+<!ELEMENT ldml (identity,(alias|(fallback*,localeDisplayNames?,layout?,contextTransforms?,characters?,
+delimiters?,measurement?,dates?,numbers?,units?,listPatterns?,collations?,posix?,
+segmentations?,rbnf?,annotations?,metadata?,references?,special*)))>
+```
+
+The XML structure is stable over releases. Elements and attributes may be deprecated: they are retained in the DTD but their usage is strongly discouraged. In most cases, an alternate structure is provided for expressing the information. There is only one exception: newer DTDs cannot be used with version 1.1 files, without some modification.
+
+In general, all translatable text in this format is in element contents, while attributes are reserved for types and non-translated information (such as numbers or dates). The reason that attributes are not used for translatable text is that spaces are not preserved, and we cannot predict where spaces may be significant in translated material.
+
+There are two kinds of elements in LDML: _rule_ elements and _structure_ elements. For structure elements, there are restrictions to allow for effective inheritance and processing:
+
+1. There is no "mixed" content: if an element has textual content, then it cannot contain any elements.
+2. The [[XPath](#XPath)] leading to the content is unique; no two different pieces of textual content have the same [[XPath](#XPath)].
+
+Rule elements do not have this restriction, but also do not inherit, except as an entire block. The rule elements are listed in serialElements in the supplemental metadata. See also _[Section 4.2 Inheritance and Validity](#Inheritance_and_Validity)_. For more technical details, see [Updating-DTDs](http://cldr.unicode.org/development/updating-dtds).
+
+Note that the data in examples given below is purely illustrative, and does not match any particular language. For a more detailed example of this format, see [[Example](#LDML)]. There is also a DTD for this format, but _remember that the DTD alone is not sufficient to understand the semantics, the constraints, nor the interrelationships between the different elements and attributes_. You may wish to have copies of each of these to hand as you proceed through the rest of this document.
+
+In particular, all elements allow for draft versions to coexist in the file at the same time. Thus most elements are marked in the DTD as allowing multiple instances. However, unless an element is listed as a serialElement, or has a distinguishing attribute, it can only occur once as a subelement of a given element. Thus, for example, the following is illegal even though allowed by the DTD:
+
+```xml
+<languages>
+ <language type="aa">...</language>
+ <language type="aa">..</language>
+```
+
+There must be only one instance of these per parent, unless there are other distinguishing attributes (such as an `alt` element).
+
+In general, LDML data should be in NFC format. However, certain elements may need to contain characters that are not in NFC, including exemplars, transforms, segmentations, and p/s/t/i/pc/sc/tc/ic rules in collation. These elements must not be normalized (either to NFC or NFD), or their meaning may be changed. Thus LDML documents must not be normalized as a whole. To prevent problems with normalization, no element value can start with a combining slash (U+0338 COMBINING LONG SOLIDUS OVERLAY).
+
+Lists, such as singleCountries are space-delimited. That means that they are separated by one or more XML whitespace characters,
+
+* singleCountries
+* preferenceOrdering
+* references
+
+### <a name="Common_Elements" href="#Common_Elements">5.1 Common Elements</a>
+
+At any level in any element, two special elements are allowed.
+
+#### <a name="special" href="#special">5.1.1 Element special</a>
+
+This element is designed to allow for arbitrary additional annotation and data that is product-specific. It has one required attribute `xmlns`, which specifies the XML [namespace](https://www.w3.org/TR/REC-xml-names/) of the special data. For example, the following used the version 1.0 POSIX special element.
+
+```xml
+<!DOCTYPE ldml SYSTEM "https://unicode.org/cldr/dtd/1.0/ldml.dtd" [
+ <!ENTITY % posix SYSTEM "https://unicode.org/cldr/dtd/1.0/ldmlPOSIX.dtd">
+%posix;
+]>
+<ldml>
+...
+ <special xmlns:posix="https://www.opengroup.org/regproducts/xu.htm">
+ <!-- old abbreviations for pre-GUI days -->
+ <posix:messages>
+ <posix:yesstr>Yes</posix:yesstr>
+ <posix:nostr>No</posix:nostr>
+ <posix:yesexpr>^[Yy].*</posix:yesexpr>
+ <posix:noexpr>^[Nn].*</posix:noexpr>
+ </posix:messages>
+ </special>
+</ldml>
+```
+
+##### <a name="Sample_Special_Elements" href="#Sample_Special_Elements">5.1.1.1 Sample Special Elements</a>
+
+The elements in this section are _**not**_ part of the Locale Data Markup Language 1.0 specification. Instead, they are special elements used for application-specific data to be stored in the Common Locale Repository. They may change or be removed future versions of this document, and are present her more as examples of how to extend the format. (Some of these items may move into a future version of the Locale Data Markup Language specification.)
+
+* [https://unicode.org/cldr/dtd/1.1/ldmlICU.dtd](https://unicode.org/cldr/dtd/1.1/ldmlICU.dtd)
+* [https://unicode.org/cldr/dtd/1.1/ldmlOpenOffice.dtd](https://unicode.org/cldr/dtd/1.1/ldmlOpenOffice.dtd)
+
+The above examples are old versions: consult the documentation for the specific application to see which should be used.
+
+These DTDs use namespaces and the special element. To include one or more, use the following pattern to import the special DTDs that are used in the file:
+
+```xml
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE ldml SYSTEM "https://unicode.org/cldr/dtd/1.1/ldml.dtd" [
+ <!ENTITY % icu SYSTEM "https://unicode.org/cldr/dtd/1.1/ldmlICU.dtd">
+ <!ENTITY % openOffice SYSTEM "https://unicode.org/cldr/dtd/1.1/ldmlOpenOffice.dtd">
+%icu;
+%openOffice; ]>
+```
+
+Thus to include just the ICU DTD, one uses:
+
+```xml
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE ldml SYSTEM "https://unicode.org/cldr/dtd/1.1/ldml.dtd" [
+ <!ENTITY % icu SYSTEM "https://unicode.org/cldr/dtd/1.1/ldmlICU.dtd">
+%icu; ]>
+```
+
+> **Note:** A previous version of this document contained a special element for [ISO TR 14652](http://www.open-std.org/jtc1/sc22/wg20/docs/n897-14652w25.pdf) compatibility data. That element has been withdrawn, pending further investigation, since 14652 is a Type 1 TR: "when the required support cannot be obtained for the publication of an International Standard, despite repeated effort". See the ballot comments on [14652 Comments](http://www.open-std.org/jtc1/sc22/wg20/docs/n948-J1N6769-14652.pdf) for details on the 14652 defects. For example, most of these patterns make little provision for substantial changes in format when elements are empty, so are not particularly useful in practice. Compare, for example, the mail-merge capabilities of production software such as Microsoft Word or OpenOffice.
+>
+> **Note:** While the CLDR specification guarantees backwards compatibility, the definition of specials is up to other organizations. Any assurance of backwards compatibility is up to those organizations.
+
+A number of the elements above can have extra information for <a name="OpenOffice" href="#OpenOffice">openoffice.org</a>, such as the following example:
+
+```xml
+<special xmlns:openOffice="https://www.openoffice.org">
+ <openOffice:search>
+ <openOffice:searchOptions>
+ <openOffice:transliterationModules>IGNORE_CASE</openOffice:transliterationModules>
+ </openOffice:searchOptions>
+ </openOffice:search>
+</special>
+```
+
+#### <a name="Alias_Elements" href="#Alias_Elements">5.1.2 Element alias</a>
+
+```xml
+<!ELEMENT alias (special*) >
+<!ATTLIST alias source NMTOKEN #REQUIRED >
+<!ATTLIST alias path CDATA #IMPLIED>
+```
+
+The contents of any element in root can be replaced by an alias, which points to the path where the data can be found.
+
+Aliases will only ever appear in root with the form `//ldml/.../alias[@source="locale"][@path="..."]`.
+
+Consider the following example in root:
+
+```xml
+<calendar type="gregorian">
+ <months>
+ <default choice="format" />
+ <monthContext type="format">
+ <default choice="wide" />
+ <monthWidth type="abbreviated">
+ <alias source="locale" path="../monthWidth[@type='wide']"/>
+ </monthWidth>
+```
+
+If the locale "de_DE" is being accessed for a month name for format/abbreviated, then a resource bundle at "de_DE" will be searched for a resource element at the that path. If not found there, then the resource bundle at "de" will be searched, and so on. When the alias is found in root, then the search is restarted, but searching for format/**wide** element instead of format/abbreviated.
+
+If the `path` attribute is present, then its value is an [[XPath](#XPath)] that points to a different node in the tree. For example:
+
+```xml
+<alias source="locale" path="../monthWidth[@type='wide']"/>
+```
+
+The default value if the path is not present is the same position in the tree. All of the attributes in the [[XPath](#XPath)] must be _distinguishing_ elements. For more details, see [Section 4.2 Inheritance and Validity](#Inheritance_and_Validity).
+
+There is a special value for the source attribute, the constant `source="locale"`. This special value is equivalent to the locale being resolved. For example, consider the following example, where locale data for 'de' is being resolved:
+
+##### <a name="Inheritance_with_source_locale_" href="#Inheritance_with_source_locale_">Inheritance with `source="locale"`</a>
+
+<!-- HTML: multiline, readability -->
+<table><thead>
+<tr><th>Root</th><th>de</th><th>Resolved</th></tr>
+</thead><tbody>
+<tr>
+<td>
+
+```xml
+<x>
+ <a>1</a>
+ <b>2</b>
+ <c>3</c>
+
+</x>
+```
+</td><td>
+
+```xml
+<x>
+ <a>11</a>
+ <b>12</b>
+
+ <d>14</d>
+</x>
+```
+</td><td>
+
+```xml
+<x>
+ <a>11</a>
+ <b>12</b>
+ <c>3</c>
+ <d>14</d>
+</x>
+```
+</td></tr>
+<tr><td>
+
+```xml
+<y>
+ <alias source="locale" path="../x">
+</y>
+
+
+
+
+
+```
+</td><td>
+
+```xml
+<y>
+
+ <b>22</b>
+
+
+ <e>25</e>
+</y>
+```
+</td><td>
+
+```xml
+<y>
+ <a>11</a>
+ <b>22</b>
+ <c>3</c>
+ <d>14</d>
+ <e>25</e>
+</y>
+```
+</td></tr>
+</tbody></table>
+
+The first row shows the inheritance within the `<x>` element, whereby `<c>` is inherited from root. The second shows the inheritance within the `<y>` element, whereby `<a>`, `<c>`, and `<d>` are inherited also from root, but from an alias there. The alias in root is logically replaced not by the elements in root itself, but by elements in the 'target' locale.
+
+For more details on data resolution, see [Section 4.2 Inheritance and Validity](#Inheritance_and_Validity).
+
+Aliases must be resolved recursively. An alias may point to another path that results in another alias being found, and so on. For example, looking up Thai buddhist abbreviated months for the locale **xx-YY** may result in the following chain of aliases being followed:
+
+> `../../calendar[@type="buddhist"]/months/monthContext[@type="format"]/monthWidth[@type="abbreviated"]`
+>
+> xx-YY → xx → root // finds alias that changes path to:
+>
+> `../../calendar[@type="gregorian"]/months/monthContext[@type="format"]/monthWidth[@type="abbreviated"]`
+>
+> xx-YY → xx → root // finds alias that changes path to:
+>
+> `../../calendar[@type="gregorian"]/months/monthContext[@type="format"]/monthWidth[@type="wide"]`
+>
+> xx-YY → xx // finds value here
+
+
+It is an error to have a circular chain of aliases. That is, a collection of LDML XML documents must not have situations where a sequence of alias lookups (including inheritance and lateral inheritance) can be followed indefinitely without terminating.
+
+#### <a name="Element_displayName" href="#Element_displayName">5.1.3 Element displayName</a>
+
+Many elements can have a display name. This is a translated name that can be presented to users when discussing the particular service. For example, a number format, used to format numbers using the conventions of that locale, can have translated name for presentation in GUIs.
+
+```xml
+<numberFormat>
+ <displayName>Prozentformat</displayName>
+ ...
+<numberFormat>
+```
+
+Where present, the display names must be unique; that is, two distinct code would not get the same display name. (There is one exception to this: in time zones, where parsing results would give the same GMT offset, the standard and daylight display names can be the same across different time zone IDs.) Any translations should follow customary practice for the locale in question. For more information, see [[Data Formats](#DataFormats)].
+
+#### <a name="Escaping_Characters" href="#Escaping_Characters">5.1.4 Escaping Characters</a>
+
+Unfortunately, XML does not have the capability to contain all Unicode code points. Due to this, in certain instances extra syntax is required to represent those code points that cannot be otherwise represented in element content. The escaping syntax is only defined on a few types of elements, such as in collation or exemplar sets, and uses the appropriate syntax for that type.
+
+The element `<cp>`, which was formerly used for this purpose, has been deprecated.
+
+### <a name="Common_Attributes" href="#Common_Attributes">5.2 Common Attributes</a>
+
+#### <a name="Attribute_type" href="#Attribute_type">5.2.1 Attribute type</a>
+
+The attribute `type` is also used to indicate an alternate resource that can be selected with a matching `type=option` in the locale id modifiers, or be referenced by a default element. For example:
+
+```xml
+<ldml>
+ ...
+ <currencies>
+ <currency>...</currency>
+ <currency type="preEuro">...</currency>
+ </currencies>
+</ldml>
+```
+
+#### <a name="Attribute_draft" href="#Attribute_draft">5.2.2 Attribute draft</a>
+
+If this attribute is present, it indicates the status of all the data in this element and any subelements (unless they have a contrary `draft` value), as per the following:
+
+* `approved`: fully approved by the technical committee (equals the CLDR 1.3 value of `false`, or an absent `draft` attribute). This does not mean that the data is guaranteed to be error-free—this is the best judgment of the committee.
+* `contributed`: partially approved by the technical committee.
+* `provisional`: partially confirmed. Implementations may choose to accept the provisional data, especially if there is no translated alternative.
+* `unconfirmed`: no confirmation available.
+
+For more information on precisely how these values are computed for any given release, see [Data Submission and Vetting Process](http://cldr.unicode.org/index/process#TOC-Data--Submission-and-Vetting) on the CLDR website.
+
+The `draft` attribute should only occur on "leaf" elements, and is deprecated elsewhere. For a more formal description of how elements are inherited, and what their draft status is, see _[Section 4.2 Inheritance and Validity](#Inheritance_and_Validity)_.
+
+#### <a name="alt_attribute" href="#alt_attribute">5.2.3 Attribute alt</a>
+
+This attribute labels an alternative value for an element. The value is a _descriptor_ indicates what kind of alternative it is, and takes one of the following
+
+* `variantname` meaning that the value is a variant of the normal value, and may be used in its place in certain circumstances. If a variant value is absent for a particular locale, the normal value is used. The variant mechanism should only be used when such a fallback is acceptable.
+* `proposed`, optionally followed by a number, indicating that the value is a proposed replacement for an existing value.
+* `variantname-proposed`, optionally followed by a number, indicating that the value is a proposed replacement variant value.
+
+`proposed` should only be present if the draft status is not `approved`. It indicates that the data is proposed replacement data that has been added provisionally until the differences between it and the other data can be vetted. For example, suppose that the translation for September for some language is "Settembru", and a bug report is filed that that should be "Settembro". The new data can be entered in, but marked as `alt="proposed"` until it is vetted.
+
+```xml
+...
+<month type="9">Settembru</month>
+<month type="9" draft="unconfirmed" alt="proposed">Settembro</month>
+<month type="10">...
+```
+
+Now assume another bug report comes in, saying that the correct form is actually "Settembre". Another alternative can be added:
+
+```xml
+...
+<month type="9" draft="unconfirmed" alt="proposed2">Settembre</month>
+...
+```
+
+The values for _variantname_ at this time include "variant", "list", "email", "www", "short", and "secondary".
+
+For a more complete description of how draft applies to data, see _[Section 4.2 Inheritance and Validity](#Inheritance_and_Validity)_.
+
+#### <a name="references_attribute" href="#references_attribute">5.2.4 Attribute references</a>
+
+The value of this attribute is a token representing a reference for the information in the element, including standards that it may conform to. `<references>`. (In older versions of CLDR, the value of the attribute was freeform text. That format is deprecated.)
+
+_Example:_
+
+```xml
+<territory type="UM" references="R222">USAs yttre öar</territory>
+```
+
+The `reference` element may be inherited. Thus, for example, R222 may be used in sv_SE.xml even though it is not defined there, if it is defined in sv.xml.
+
+```xml
+<... allow="verbatim" ...> (deprecated)
+```
+
+This attribute was originally intended for use in marking display names whose capitalization differed from what was indicated by the now-deprecated `<inText>` element (perhaps, for example, because the names included a proper noun). It was never supported in the dtd and is not needed for use with the new `<contextTransforms>` element.
+
+### <a name="Common_Structures" href="#Common_Structures">5.3 Common Structures</a>
+
+#### <a name="Date_Ranges" href="#Date_Ranges">5.3.1 Date and Date Ranges</a>
+
+When attribute specify date ranges, it is usually done with attributes `from` and `to`. The `from` attribute specifies the starting point, and the `to` attribute specifies the end point. The deprecated `time` attribute was formerly used to specify time with the deprecated `weekEndStart` and `weekEndEnd` elements, which were themselves inherently `from` or `to`.
+
+The data format is a restricted ISO 8601 format, restricted to the fields `year`, `month`, `day`, `hour`, `minute`, and `second` in that order, with "-" used as a separator between date fields, a space used as the separator between the date and the time fields, and `:` used as a separator between the time fields. If the `minute` or `minute` and `second` are absent, they are interpreted as zero. If the `hour` is also missing, then it is interpreted based on whether the attribute is `from` or `to`.
+
+* `from` defaults to "00:00:00" (midnight at the start of the day).
+* `to` defaults to "24:00:00" (midnight at the end of the day).
+
+That is, Friday at 24:00:00 is the same time as Saturday at 00:00:00. Thus when the `hour` is missing, the `from` and `to` are interpreted inclusively: the range includes all of the day mentioned.
+
+For example, the following are equivalent:
+
+```xml
+<usesMetazone from="1991-10-27" to="2006-04-02" .../>
+<usesMetazone from="1991-10-27 00:00:00" to="2006-04-02 24:00:00" .../>
+<usesMetazone from="1991-10-26 24:00:00" to="2006-04-03 00:00:00" .../>
+```
+
+If the `from` element is missing, it is assumed to be as far backwards in time as there is data for; if the `to` element is missing, then it is from this point onwards, with no known end point.
+
+The dates and times are specified in local time, unless otherwise noted. (In particular, the metazone values are in UTC (also known as GMT).
+
+#### <a name="Text_Directionality" href="#Text_Directionality">5.3.2 Text Directionality</a>
+
+The content of certain elements, such as date or number formats, may consist of several sub-elements with an inherent order (for example, the year, month, and day for dates). In some cases, the order of these sub-elements may be changed depending on the bidirectional context in which the element is embedded.
+
+For example, short date formats in languages such as Arabic may contain neutral or weak characters at the beginning or end of the element content. In such a case, the overall order of the sub-elements may change depending on the surrounding text.
+
+Element content whose display may be affected in this way should include an explicit direction mark, such as U+200E LEFT-TO-RIGHT MARK or U+200F RIGHT-TO-LEFT MARK, at the beginning or end of the element content, or both.
+
+#### <a name="Unicode_Sets" href="#Unicode_Sets">5.3.3 Unicode Sets</a>
+
+Some attribute values or element contents use _UnicodeSet_ notation. A UnicodeSet represents a finite set of Unicode code points and strings, and is defined by lists of code points and strings, Unicode property sets, and set operators, all bounded by square brackets. In this context, a code point means a string consisting of exactly one code point.
+
+A UnicodeSet implements the semantics in _UTS #18: Unicode Regular Expressions_ [[UTS18](https://www.unicode.org/reports/tr41/#UTS18)] Levels 1 & 2 that are relevant to determining sets of characters. Note however that it may deviate from the syntax provided in [[UTS18](https://www.unicode.org/reports/tr41/#UTS18)], which is illustrative rather than a requirement. There is one exception to the supported semantics, Section [RL2.6](https://unicode.org/reports/tr18/#RL2.6) _Wildcards in Property Values_. That feature can be supported in clients such as ICU by implementing a “hook” as is done in the [online UnicodeSet utilities](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5Cp%7Bname%3D%2FAPPLE%2F%7D).
+
+A UnicodeSet may be cited in specifications outside of the domain of LDML. In such a case, the specification may specify a subset of the syntax provided here.
+
+The following provides EBNF syntax for a UnicodeSet:
+
+| Symbol | Expression | Examples |
+| -------------- | -------------------------------------------------------------- | --------------------------------------- |
+| `root` | <pre>= prop<br/>\| '[-]'<br/>\| '[' [\\-\\^]? s seq+ ']'</pre> | \\p{x=y},<br/>[abc] |
+| `seq` | <pre>= root (s [\\&\\-] s root)* s<br/>\| range s</pre> | [abc]-[cde], a |
+| `range` | <pre>= char ('-' char)?<br/>\| '{' (s char)+ s '}'</pre> | a, a-c, \{abc} |
+| `prop` | <pre>= '\\' [pP] '{' propName ([≠=] s value1+)? '}'<br/>\| '[:' '^'? propName ([≠=] s value2+)? ':]'</pre> | \\p\{x=y}, [:x=y:]<br/> |
+| `propName` | <pre>= s [A-Za-z0-9] [A-Za-z0-9_\\x20]* s</pre> | General_Category,<br/>General Category |
+| `value1` | <pre>= [^\\}]<br/>\| '\\' quoted</pre> | Lm,<br/>\\n,<br/>\\} |
+| `value2` | <pre>= [^:]<br/>\| '\\' quoted</pre> | Lm,<br/>\\n,<br/>\\: |
+| `char` | <pre>= [^\\& \\- \\[ \\[ \\] \\\\ \\} \\{ [:Pat_WS:]]<br/>\| '\\' quoted</pre> | a, b, c, \\n |
+| `quoted` | <pre>= 'u' (hex{4} \| bracketedHex)<br/>\| 'x' (hex{2} \| bracketedHex)<br/>\| 'U00' ('0' hex{5} \| '10' hex{4})<br/>\| 'N{' propName '}'<br/>\| [[\u0000-\U00010FFFF]-[uxUN]]</pre> | _**error** if lengths not exact_ |
+| `charName` | <pre>= s [A-Za-z0-9] [-A-Za-z0-9_\x20]* s</pre> | TIBETAN LETTER -A |
+| `bracketedHex` | <pre>= '{' s hexCodePoint (s hexCodePoint)* s '}'</pre> | \{61 2019 62} |
+| `hexCodePoint` | <pre>= hex{1,5} \| '10' hex{4}</pre> | |
+| `hex` | <pre>= [0-9A-Fa-f]</pre> | |
+| `s` | <pre>= [:Pattern_White_Space:]*</pre> | optional whitespace |
+
+Some constraints on UnicodeSet syntax are not captured by this EBNF. Notably, property names and values are restricted to those supported by the implementation, and have additional constraints imposed by [[UAX44](https://unicode.org/reports/tr41/#UAX44)]. In addition, quoted values that resolve to more than one code point are disallowed in ranges of the form `char '-' char`.
+
+The syntax characters are listed in the table below:
+
+| Char | Hex | Name | Usage |
+| ---- | ------ | -------------------- | ------------------------------------------ |
+| $ | U+0024 | DOLLAR SIGN | Equivalent of \\uFFFF (This is for implementations that return \\uFFFF when accessing before the first or after the last character) |
+| & | U+0026 | AMPERSAND | Intersecting UnicodeSets |
+| - | U+002D | HYPHEN-MINUS | Ranges of characters; also set difference. |
+| : | U+003A | COLON | POSIX-style property syntax |
+| [ | U+005B | LEFT SQUARE BRACKET | Grouping; POSIX property syntax |
+| ] | U+005D | RIGHT SQUARE BRACKET | Grouping; POSIX property syntax |
+| \\ | U+005C | REVERSE SOLIDUS | Escaping |
+| ^ | U+005E | CIRCUMFLEX ACCENT | Posix negation syntax |
+| { | U+007B | LEFT CURLY BRACKET | Strings in set; Perl property syntax |
+| } | U+007D | RIGHT CURLY BRACKET | Strings in set; Perl property syntax |
+| | U+0020 U+0009..U+000D U+0085<br/>U+200E U+200F<br/>U+2028 U+2029 | ASCII whitespace,<br/>LRM, RLM,<br/>LINE/PARAGRAPH SEPARATOR | Ignored except when escaped |
+
+##### <a name="Lists_of_Code_Points" href="#Lists_of_Code_Points">5.3.3.1 Lists of Code Points</a>
+
+Lists are a sequence of strings that may include ranges, which are indicated by a '-' between two code points, as in "a-z". The sequence _start-end_ specifies the range of all code points from the start to end, inclusive, in Unicode order. For example, **[a c d-f m]** is equivalent to **[a c d e f m]**. Whitespace can be freely used for clarity, as **[a c d-f m]** means the same as **[acd-fm]**.
+
+A string with multiple code points is represented in a list by being surrounded by curly braces, such as in **[a-z \{ch}]**. It can be used with the range notation, as described in _Section [5.3.4 String Range](#String_Range)_ . There is an additional restriction on string ranges in a UnicodeSet: the number of codepoints in the first string of the range must be identical to the number in the second. Thus [\{ab}-\{c}] and [\{ab}-c] are invalid.
+
+In UnicodeSets, there are two ways to quote syntax code points:
+
+<a name="Backslash_Escapes"></a>
+Outside of single quotes, certain backslashed code point sequences can be used to quote code points:
+
+| Sequence | Code point |
+| --------------- | ------------------------------------ |
+| \\x\{h...h}<br/>\\u\{h...h} | list of 1-6 hex digits ([0-9A-Fa-f]), separated by spaces |
+| \\xhh | 2 hex digits |
+| \\uhhhh | Exactly 4 hex digits |
+| \\Uhhhhhhhh | Exactly 8 hex digits |
+| \\a | U+0007 (BEL / ALERT) |
+| \\b | U+0008 (BACKSPACE) |
+| \\t | U+0009 (TAB / CHARACTER TABULATION) |
+| \\n | U+000A (LINE FEED) |
+| \\v | U+000B (LINE TABULATION) |
+| \\f | U+000C (FORM FEED) |
+| \\r | U+000D (CARRIAGE RETURN) |
+| \\\\ | U+005C (BACKSLASH / REVERSE SOLIDUS) |
+| \\N\{name} | The Unicode code point named "name". |
+| \\p\{…},\\P\{…} | Unicode property (see below) |
+
+Anything else following a backslash is mapped to itself, except the property syntax described below, or in an environment where it is defined to have some special meaning.
+
+Any code point formed as the result of a backslash escape loses any special meaning and is treated as a literal. In particular, note that \\x, \\u and \\U escapes create literal code points. (In contrast, Java treats Unicode escapes as just a way to represent arbitrary code points in an ASCII source file, and any resulting code points are _**not**_ tagged as literals.)
+
+Unicode property sets are defined as described as described in _UTS #18: Unicode Regular Expressions_ [[UTS18](https://www.unicode.org/reports/tr41/#UTS18)], Level 1 and RL2.5, including the syntax where given. For an example of a concrete implementation of this, see [[ICUUnicodeSet](#ICUUnicodeSet)].
+
+##### <a name="Unicode_Properties" href="#Unicode_Properties">5.3.3.2 Unicode Properties</a>
+
+Briefly, Unicode property sets are specified by any Unicode property and a value of that property, such as **[:General_Category=Letter:]**. for Unicode letters or **\\p\{uppercase}** is the set of upper case letters in Unicode. The property names are defined by the PropertyAliases.txt file and the property values by the PropertyValueAliases.txt file. For more information, see [[UAX44](https://unicode.org/reports/tr41/#UAX44)]. The syntax for specifying the property sets is an extension of either POSIX or Perl syntax, by the addition of `"=<value>"`. For example, you can match letters by using the POSIX-style syntax:
+
+**[:General_Category=Letter:]**
+
+or by using the Perl-style syntax
+
+**\\p\{General_Category=Letter}**.
+
+Property names and values are case-insensitive, and whitespace, "-", and "\_" are ignored. The property name can be omitted for the **General_Category** and **Script** properties, but is required for other properties. If the property value is omitted, it is assumed to represent a boolean property with the value "true". Thus **[:Letter:]** is equivalent to **[:General_Category=Letter:]**, and **[:Wh-ite-s pa_ce:]** is equivalent to **[:Whitespace=true:]**.
+
+The table below shows the two kinds of syntax: POSIX and Perl style. Also, the table shows the "Negative" version, which is a property that excludes all code points of a given kind. For example, **[:^Letter:]** matches all code points that are not **[:Letter:]**.
+
+| | Positive | Negative |
+| ------------------ | ---------------- | ----------------- |
+| POSIX-style Syntax | [:type=value:] | [:^type=value:] |
+| Perl-style Syntax | \\p\{type=value} | \\P\{type=value} |
+
+##### <a name="Boolean_Operations" href="#Boolean_Operations">5.3.3.3 Boolean Operations</a>
+
+The low-level lists or properties then can be freely combined with the normal set operations (union, inverse, difference, and intersection):
+
+* To union two sets, simply concatenate them. For example, **[[:letter:] [:number:]]**
+* To intersect two sets, use the '&' operator. For example, **[[:letter:] & [a-z]]**
+* To take the set-difference of two sets, use the '-' operator. For example, **[[:letter:] - [a-z]]**
+* To invert a set, place a '\^' immediately after the opening '['. For example, **[\^a-z]**. In any other location, the '\^' does not have a special meaning. The inversion [\^X] is equivalent to [[\\x{0}-\\x{10FFFF}]-[X]]. Thus multi-code point strings are discarded.
+* Symmetric difference (~) is not supported.
+
+The binary operators '&', '-', and the implicit union have equal precedence and bind left-to-right. Thus **[[:letter:]-[a-z]-[\\u0100-\\u01FF]]** is equal to **[[[:letter:]-[a-z]]-[\\u0100-\\u01FF]]**. Another example is the set **[[ace][bdf] - [abc][def]]**, which is not the empty set, but instead equal to **[[[[ace] [bdf]] - [abc]] [def]]**, which equals **[[[abcdef] - [abc]] [def]]**, which equals **[[def] [def]]**, which equals **[def]**.
+
+**One caution:** the '&' and '-' operators operate between sets. That is, they must be immediately preceded and immediately followed by a set. For example, the pattern **[[:Lu:]-A]** is illegal, since it is interpreted as the set **[:Lu:]** followed by the incomplete range **-A**. To specify the set of upper case letters except for 'A', enclose the 'A' in brackets: **[[:Lu:]-[A]]**.
+
+##### <a name="UnicodeSet_Examples" href="#UnicodeSet_Examples">5.3.3.4 UnicodeSet Examples</a>
+
+The following table summarizes the syntax that can be used.
+
+| Example | Description |
+| -------------------- | ----------- |
+| [a] | The set containing 'a' alone |
+| [a-z] | The set containing 'a' through 'z' and all letters in between, in Unicode order.<br/>Thus it is the same as [\\u0061-\\u007A]. |
+| [^a-z] | The set containing all code points but 'a' through 'z'.<br/>Thus it is the same as [\\u0000-\\u0060 \\u007B-\\x{10FFFF}]. |
+| [[pat1][pat2]] | The union of sets specified by pat1 and pat2 |
+| [[pat1]&[pat2]] | The intersection of sets specified by pat1 and pat2 |
+| [[pat1]-[pat2]] | The asymmetric difference of sets specified by pat1 and pat2 |
+| [a \{ab} \{ac}] | The code point 'a' and the multi-code point strings "ab" and "ac" |
+| [x\\u\{61 2019 62}y] | Equivalent to [x\\u0061\\u2019\\u0062y] (= [xa’by]) |
+| [\{ax}-\{bz}] | The set containing [\{ax} \{ay} \{az} \{bx} \{by} \{bz}], using the range syntax to get all the strings from \{ax} to \{bz} as described in _Section [5.3.4 String Range](#String_Range)_. |
+| [:Lu:] | The set of code points with a given property value, as defined by PropertyValueAliases.txt. In this case, these are the Unicode upper case letters. The long form for this is **[:General_Category=Uppercase_Letter:]**. |
+| [:L:] | The set of code points belonging to all Unicode categories starting with 'L', that is, **[[:Lu:][:Ll:][:Lt:][:Lm:][:Lo:]]**. The long form for this is **[:General_Category=Letter:]**. |
+
+#### <a name="String_Range" href="#String_Range">5.3.4 String Range</a>
+
+A String Range is a compact format for specifying a list of strings.
+
+**Syntax:**
+
+> X _sep_ Y
+
+The separator and the format of strings X, Y may vary depending on the domain. For example,
+
+* for the validity files the separator is ~,
+* for UnicodeSet the separator is -, and any multi-codepoint string is enclosed in {…}.
+
+**Validity:**
+
+> A string range X _sep_ Y is valid iff len(X) ≥ len(Y) > 0, where len(X) is the length of X in code points.
+>
+> _There may be additional, domain-specific requirements for validity of the expansion of the string range._
+
+**Interpretation:**
+
+1. Break X into P and S, where len(S) = len(Y)
+ * Note that P will be an empty string if the lengths of X and Y are equal.
+2. Form the combinations of all P+(s₀..y₀)+(s₁..y₁)+...(sₙ..yₙ)
+ * s₀ is the first code point in S, etc.
+
+**Examples:**
+
+<!-- HTML: no th -->
+<table><tbody>
+<tr><td>ab-ad</td><td>→</td><td>ab ac ad</td></tr>
+<tr><td>ab-d</td><td>→</td><td>ab ac ad</td></tr>
+<tr><td>ab-cd</td><td>→</td><td>ab ac ad bb bc bd cb cc cd</td></tr>
+<tr><td>👦🏻-👦🏿</td><td>→</td><td>👦🏻 👦🏼 👦🏽 👦🏾 👦🏿</td></tr>
+<tr><td>👦🏻-🏿</td><td>→</td><td>👦🏻 👦🏼 👦🏽 👦🏾 👦🏿</td></tr>
+</tbody></table>
+
+### <a name="Identity_Elements" href="#Identity_Elements">5.4 Identity Elements</a>
+
+```xml
+<!ELEMENT identity (alias | (version, generation?, language, script?, territory?, variant?, special*) ) >
+```
+
+The `identity` element contains information identifying the target locale for this data, and general information about the version of this data.
+
+```xml
+<version number="$Revision: 1.227 $">
+```
+
+The `version` element provides, in an attribute, the version of this file. The contents of the element can contain textual notes about the changes between this version and the last. For example:
+
+> ```xml
+> <version number="1.1">Various notes and changes in version 1.1</version>
+> ```
+>
+> This is not to be confused with the `version` attribute on the `ldml` element, which tracks the dtd version.
+
+```xml
+<generation date="$Date: 2007/07/17 23:41:16 $" />
+```
+
+The `generation` element is now deprecated. It was used to contain the last modified date for the data. This could be in two formats: ISO 8601 format, or CVS format (illustrated by the example above).
+
+```xml
+<language type="en" />
+```
+
+The language code is the primary part of the specification of the locale id, with values as described above.
+
+```xml
+<script type="Latn" />
+```
+
+The script code may be used in the identification of written languages, with values described above.
+
+```xml
+<territory type="US" />
+```
+
+The territory code is a common part of the specification of the locale id, with values as described above.
+
+```xml
+<variant type="NYNORSK" />
+```
+
+The variant code is the tertiary part of the specification of the locale id, with values as described above.
+
+When combined according to the rules described in _[Section 3, Unicode Language and Locale Identifiers](#Unicode_Language_and_Locale_Identifiers)_, the `language` element, along with any of the optional `script`, `territory`, and `variant` elements, must identify a known, stable locale identifier. Otherwise, it is an error.
+
+### <a name="Valid_Attribute_Values" href="#Valid_Attribute_Values">5.5 Valid Attribute Values</a>
+
+The [DTD Annotations](#DTD_Annotations) in Section 5.7 are used to determine whether elements, attributes, or attribute values are valid (or deprecated).
+
+### <a name="Canonical_Form" href="#Canonical_Form">5.6 Canonical Form</a>
+
+The following are restrictions on the format of LDML files to allow for easier parsing and comparison of files.
+
+Peer elements have consistent order. That is, if the DTD or this specification requires the following order in an element `foo`:
+
+```xml
+<foo>
+ <pattern>
+ <somethingElse>
+</foo>
+```
+
+It can never require the reverse order in a different element `bar`.
+
+```xml
+<bar>
+ <somethingElse>
+ <pattern>
+</bar>
+```
+
+Note that there was one case that had to be corrected in order to make this true. For that reason, pattern occurs twice under currency:
+
+```xml
+<!ELEMENT currency (alias | (pattern*, displayName?, symbol?, pattern*, decimal?, group?, special*)) >
+```
+
+[XML](https://www.w3.org/TR/REC-xml/) files can have a wide variation in textual form, while representing precisely the same data. By putting the LDML files in the repository into a canonical form, this allows us to use the simple diff tools used widely (and in CVS) to detect differences when vetting changes, without those tools being confused. This is not a requirement on other uses of LDML; just simply a way to manage repository data more easily.
+
+#### <a name="Content" href="#Content">5.6.1 Content</a>
+
+1. All start elements are on their own line, indented by _depth_ tabs.
+2. All end elements (except for leaf nodes) are on their own line, indented by _depth_ tabs.
+3. Any leaf node with empty content is in the form `<foo/>`.
+4. There are no blank lines except within comments or content.
+5. Spaces are used within a start element. There are no extra spaces within elements.
+ * `<version number="1.2"/>`, not `<version number = "1.2" />`
+ * `</identity>`, not `</identity >`
+6. All attribute values use double quote ("), not single (').
+7. There are no CDATA sections, and no escapes except those absolutely required.
+ * no `'` since it is not necessary
+ * no `'a'`, it would be just `'a'`
+8. All attributes with defaulted values are suppressed.
+9. The draft and `alt="proposed.*"` attributes are only on leaf elements.
+10. The tzid are canonicalized in the following way:
+ * All tzids as of as CLDR 1.1 (2004.06.08) in zone.tab are canonical.
+ * After that point, the first time a tzid is introduced, that is the canonical form.
+
+ That is, new IDs are added, but existing ones keep the original form. The _TZ_ timezone database keeps a set of equivalences in the "backward" file. These are used to map other tzids to the canonical form. For example, when `America/Argentina/Catamarca` was introduced as the new name for the previous `America/Catamarca` , a link was added in the backward file.
+
+ `Link America/Argentina/Catamarca America/Catamarca`
+
+_Example:_
+
+```xml
+<ldml draft="unconfirmed" >
+ <identity>
+ <version number="1.2" />
+ <language type="en" />
+ <territory type="AS" />
+ </identity>
+ <numbers>
+ <currencyFormats>
+ <currencyFormatLength>
+ <currencyFormat>
+ <pattern>¤#,##0.00;(¤#,##0.00)</pattern>
+ </currencyFormat>
+ </currencyFormatLength>
+ </currencyFormats>
+ </numbers>
+</ldml>
+```
+
+#### <a name="Ordering" href="#Ordering">5.6.2 Ordering</a>
+
+An element is ordered first by the element name, and then if the element names are identical, by the sorted set of attribute-value pairs. For the latter, compare the first pair in each (in sorted order by attribute pair). If not identical, go to the second pair, and so on.
+
+Elements and attributes are ordered according to their order in the respective DTDs. Attribute value comparison is a bit more complicated, and may depend on the attribute and type. This is currently done with specific ordering tables.
+
+Any future additions to the DTD must be structured so as to allow compatibility with this ordering. See also [Section 5.5 Valid Attribute Values.](#Valid_Attribute_Values)
+
+#### <a name="Comments" href="#Comments">5.6.3 Comments</a>
+
+1. Comments are of the form `<!-- stuff -->`.
+2. They are logically attached to a node. There are 4 kinds:
+ 1. Inline always appear after a leaf node, on the same line at the end. These are a single line.
+ 2. Preblock comments always precede the attachment node, and are indented on the same level.
+ 3. Postblock comments always follow the attachment node, and are indented on the same level.
+ 4. Final comment, after `</ldml>`
+3. Multiline comments (except the final comment) have each line after the first indented to one deeper level.
+
+**Examples:**
+
+```xml
+<eraAbbr>
+ <era type="0">BC</era> <!-- might add alternate BDE in the future -->
+...
+<timeZoneNames>
+ <!-- Note: zones that do not use daylight time need further work -->
+ <zone type="America/Los_Angeles">
+ ...
+ <!-- Note: the following is known to be sparse,
+ and needs to be improved in the future -->
+ <zone type="Asia/Jerusalem">
+```
+
+### <a name="DTD_Annotations" href="#DTD_Annotations">5.7 DTD Annotations</a>
+
+The information in a standard DTD is insufficient for use in CLDR. To make up for that, DTD annotations are added. These are of the form
+
+```xml
+<!--@...-->
+```
+
+and are included below the !ELEMENT or !ATTLIST line that they apply to. The current annotations are:
+
+| Type | Description |
+| ---------------------| ----------- |
+| `<!--@VALUE-->` | The attribute is not distinguishing, and is treated like an element value |
+| `<!--@METADATA-->` | The attribute is a “comment” on the data, like the draft status. It is not typically used in implementations. |
+| `<!--@ORDERED-->` | The element's children are ordered, and do not inherit. |
+| `<!--@DEPRECATED-->` | The element or attribute is deprecated, and should not be used. |
+| `<!--@DEPRECATED: attribute-value1, attribute-value2-->` | The attribute values are deprecated, and should not be used. Spaces between tokens are not significant. |
+| `<!--@MATCH:{attribute value constraint}-->` | Requires the attribute value to match the constraint. |
+
+There is additional information in the attributeValueValidity.xml file that is used internally for testing. For example, the following line indicates that the 'currency' element in the ldml dtd must have values from the bcp47 'cu' type.
+
+```xml
+<attributeValues dtds='ldml' elements='currency' attributes='type'>$_bcp47_cu</attributeValues>
+```
+
+The element values may be literals, regular expressions, or variables (some of which are set programmatically according to other CLDR data, such as the above. However, the information as this point does not cover all attribute values, is used only for testing, and should not be used in implementations since the structure may change without notice.
+
+#### 5.7.1 <a name="match_expressions" href="#match_expressions">Attribute Value Constraints</a>
+
+The following are constraints on the attribute values. Note: in future versions, the format may change, and/or the constaints may be tightened.
+
+| Constraint | Comments |
+| ------------------------- | -------- |
+| any | any string value |
+| any/TODO | placeholder for future constraints |
+| bcp47/anykey | any bcp47 key or tkey |
+| bcp47/anyvalue | any bcp47 value (type) or tvalue |
+| literal/\{literal values} | comma separated |
+| regex/\{regex expression} | valid regex expression |
+| bcp47/\{key or tkey} | matches possible values for that key or tkey |
+| metazone | valid metazone |
+| range/\{start_number~{end_number}} | number between (inclusive) start and end |
+| time/\{time or date or date-time pattern} | eg HH:mm |
+| unicodeset/\{unicodeset pattern} | valid unicodeset |
+| validity/\{field} | currency, language, locale, region, script, subdivision, short-unit, unit, variant<br/>The field can be qualified by particular enums, such as:<br/>`validity/unit/regular deprecated`: matches only _deprecated_ and _regular_<br/>`validity/unit/!deprecated`: matches all but _deprecated_ |
+| version | 1 to 4 digit field version, such as 35.3.9 |
+| set/\{match} | set of elements that match \{match} |
+| or/\{match1}XX\{match2}… | matches at least one of \{match1}, etc |
+
+
+
+## <a name="Property_Data" href="#Property_Data">6 Property Data</a>
+
+Some data in CLDR does not use an XML format, but rather a semicolon-delimited format derived from that of the Unicode Character Database. That is because the data is more likely to be parsed by implementations that already parse UCD data. Those files are present in the common/properties directory.
+
+Each file has a header that explains the format and usage of the data.
+
+### <a name="Script_Metadata" href="#Script_Metadata">6.1 Script Metadata</a>
+
+`scriptMetadata.txt`
+
+This file provides general information about scripts that may be useful to implementations processing text. The information is the best currently available, and may change between versions of CLDR. The format is similar to Unicode Character Database property file, and is documented in the header of the data file.
+
+### <a name="Extended_Pictographic" href="#Extended_Pictographic">6.2 Extended Pictographic</a>
+
+`ExtendedPictographic.txt`
+
+This file was used to define the ExtendedPictographic data used for “future-proofing” emoji behavior, especially in segmentation. As of Emoji version 11.0, the set of Extended_Pictographic is incorporated into the emoji data files found at [unicode.org/Public/emoji/](https://unicode.org/Public/emoji/).
+
+### <a name="Labels.txt" href="#Labels.txt">6.3 Labels.txt</a>
+
+`labels.txt`
+
+This file provides general information about associations of labels to characters that may be useful to implementations of character-picking applications. The information is the best currently available, and may change between versions of CLDR. The format is similar to Unicode Character Database property file, and is documented in the header of the data file.
+
+Initially, the contents are focused on emoji, but may be expanded in the future to other types of characters. Note that a character may have multiple labels.
+
+### <a name="Segmentation_Tests" href="#Segmentation_Tests">6.4 Segmentation Tests</a>
+
+CLDR provides a tailoring to the [Grapheme Cluster Break (gcb)](https://unicode.org/reports/tr29/) algorithm to avoid splitting Indic aksaras. The corresponding test files for that are located in common/properties/segments/, along with a readme.txt that provides more details. There are also specific test files for the supported Indic scripts in the unittest directory.
+
+
+
+## <a name="Format_Parse_Issues" href="#Format_Parse_Issues">7 Issues in Formatting and Parsing</a>
+
+### <a name="Lenient_Parsing" href="#Lenient_Parsing">7.1 Lenient Parsing</a>
+
+#### <a name="Motivation" href="#Motivation">7.1.1 Motivation</a>
+
+User input is frequently messy. Attempting to parse it by matching it exactly against a pattern is likely to be unsuccessful, even when the meaning of the input is clear to a human being. For example, for a date pattern of "MM/dd/yy", the input "June 1, 2006" will fail.
+
+The goal of lenient parsing is to accept user input whenever it is possible to decipher what the user intended. Doing so requires using patterns as data to guide the parsing process, rather than an exact template that must be matched. This informative section suggests some heuristics that may be useful for lenient parsing of dates, times, and numbers.
+
+#### <a name="Loose_Matching" href="#Loose_Matching">7.1.2 Loose Matching</a>
+
+Loose matching ignores attributes of the strings being compared that are not important to matching. It involves the following steps:
+
+* Remove "." from currency symbols and other fields used for matching, and also from the input string unless:
+ * "." is in the decimal set, and
+ * its position in the input string is immediately before a decimal digit
+* Ignore all format characters: in particular, ignore any RLM, LRM or ALM used to control BIDI formatting.
+* Ignore all characters in [:Zs:] unless they occur between letters. (In the heuristics below, even those between letters are ignored except to delimit fields)
+* Map all characters in [:Dash:] to U+002D HYPHEN-MINUS
+* Use the data in the `<character-fallback>` element to map equivalent characters (for example, curly to straight apostrophes). Other apostrophe-like characters should also be treated as equivalent, especially if the character actually used in a format may be unavailable on some keyboards. For example:
+ * U+02BB MODIFIER LETTER TURNED COMMA (ʻ) might be typed instead as U+2018 LEFT SINGLE QUOTATION MARK (‘).
+ * U+02BC MODIFIER LETTER APOSTROPHE (ʼ) might be typed instead as U+2019 RIGHT SINGLE QUOTATION MARK (’), U+0027 APOSTROPHE, etc.
+ * U+05F3 HEBREW PUNCTUATION GERESH (׳) might be typed instead as U+0027 APOSTROPHE.
+* Apply mappings particular to the domain (i.e., for dates or for numbers, discussed in more detail below)
+* Apply case folding (possibly including language-specific mappings such as Turkish i)
+* Normalize to NFKC; thus _no-break space_ will map to _space_; half-width _katakana_ will map to full-width.
+
+Loose matching involves (logically) applying the above transform to both the input text and to each of the field elements used in matching, before applying the specific heuristics below. For example, if the input number text is " - NA f. 1,000.00", then it is mapped to "-naf1,000.00" before processing. The currency signs are also transformed, so "NA f." is converted to "naf" for purposes of matching. As with other Unicode algorithms, this is a logical statement of the process; actual implementations can optimize, such as by applying the transform incrementally during matching.
+
+### <a name="Invalid_Patterns" href="#Invalid_Patterns">7.2 Handling Invalid Patterns</a>
+
+Processes sometimes encounter invalid number or date patterns, such as a number pattern with “¤¤¤¤¤” (valid pattern character but invalid length in current CLDR), a date pattern with “nn” (invalid pattern character in current CLDR), or a date pattern with “MMMMMM” (invalid length in current CLDR). The recommended behavior for handling such an invalid pattern field is:
+
+* For a field using a currently-invalid length for a valid pattern character:
+ * In **formatting,** emit U+FFFD REPLACEMENT CHARACTER for the invalid field.
+ * In **parsing,** the field may be parsed as if it had a valid length.
+* For a pattern that contains a currently-invalid pattern character (applies only to date patterns, for which A-Za-z are reserved as pattern characters but not all defined as valid):
+ * Produce an error (set an error code or throw an exception) when an attempt is made to create a formatter with such a pattern or to apply such a pattern to an existing formatter.
+
+* * *
+
+## <a name="Deprecated_Structure" href="#Deprecated_Structure">Annex A Deprecated Structure</a>
+
+The [DTD Annotations](#DTD_Annotations) in Section 5.7 are used to determine whether elements, attributes, or attribute values are deprecated.
+
+While valid LDML, they are strongly discouraged, and no longer used in CLDR.
+
+The remainder of this section describes selected cases of deprecated structure that were present in previous versions of CLDR.
+
+### <a name="Fallback_Elements" href="#Fallback_Elements">A.1 Element fallback</a>
+
+```xml
+<!ELEMENT fallback (#PCDATA) >
+```
+
+The `fallback` element is deprecated. Implementations should use instead the information in _[Section 4.4 Language Matching](#LanguageMatching)_ for doing language fallback.
+
+### <a name="BCP47_Keyword_Mapping" href="#BCP47_Keyword_Mapping">A.2 BCP 47 Keyword Mapping</a>
+
+**Note:** _This structure is deprecated and replaced with [Section 3.6.4 U Extension Data Files](#Unicode_Locale_Extension_Data_Files)._
+
+```xml
+<!ELEMENT bcp47KeywordMappings ( mapKeys?, mapTypes* ) >
+<!ELEMENT mapKeys ( keyMap* ) >
+<!ELEMENT keyMap EMPTY >
+<!ATTLIST keyMap type NMTOKEN #REQUIRED >
+<!ATTLIST keyMap bcp47 NMTOKEN #REQUIRED >
+<!ELEMENT mapTypes ( typeMap* ) >
+<!ATTLIST mapTypes type NMTOKEN #REQUIRED >
+<!ELEMENT typeMap EMPTY >
+<!ATTLIST typeMap type CDATA #REQUIRED >
+<!ATTLIST typeMap bcp47 NMTOKEN #REQUIRED >
+```
+
+This section defines mappings between old Unicode locale identifier key/type values and their BCP 47 'u' extension subtag representations. The 'u' extension syntax described in [Section 3.6 Unicode BCP 47 U Extension](#u_Extension) restricts a key to two ASCII alphanumerics and a type to three to eight ASCII alphanumerics. A key or a type which does not meet that syntax requirement is converted according to the mapping data defined by the `mapKeys` or `mapTypes` elements. For example, a keyword `"collation=phonebook"` is converted to BCP 47 'u' extension subtags "co-phonebk" by the mapping data below:
+
+```xml
+<mapKeys>
+ ...
+ <keyMap type="collation" bcp47="co" />
+ ...
+</mapKeys>
+<mapTypes type="collation">
+ ...
+ <typeMap type="phonebook" bcp47="phonebk" />
+ ...
+</mapTypes>
+```
+
+### <a name="Choice_Patterns" href="#Choice_Patterns">A.3 Choice Patterns</a>
+
+**Note:** _This structure is deprecated and replaced with count attributes._
+
+A choice pattern is a string that chooses among a number of strings, based on numeric value. It has the following form:
+
+```
+<choice_pattern> = <choice> ( '|' <choice> )*
+<choice> = <number><relation><string>
+<number> = ('+' | '-')? ('∞' | [0-9]+ ('.' [0-9]+)?)
+<relation> = '<' | ' ≤'
+```
+
+The interpretation of a choice pattern is that given a number N, the pattern is scanned from right to left, for each choice evaluating \<number> \<relation> N. The first choice that matches results in the corresponding string. If no match is found, then the first string is used. For example:
+
+<!-- HTML: rowspan -->
+<table><thead>
+<tr><th>Pattern</th><th>N</th><th>Result</th>
+</thead><tbody>
+<tr><td rowspan="4">0≤Rf|1≤Ru|1<Re</td>
+ <td>-∞, -3, -1, -0.000001</td> <td>Rf (defaulted to first string)</td></tr>
+<tr><td>0, 0.01, 0.9999</td> <td>Rf</td></tr>
+<tr><td>1</td> <td>Ru</td></tr>
+<tr><td>1.00001, 5, 99, ∞</td> <td>Re</td></tr>
+</tbody></table>
+
+Quoting is done using ' characters, as in date or number formats.
+
+### <a name="Element_default" href="#Element_default">A.4 Element default</a>
+
+**Note:** _This structure is deprecated._ Use replacement structure instead, for example:
+
+* For `<collations>`, now use the `<defaultCollation>` element.
+* For `<calendars>`, the default calendar type for a locale is now specified by _[Calendar Preference Data](tr35-dates.md#Calendar_Preference_Data)_.
+
+In some cases, a number of elements are present. The default element can be used to indicate which of them is the default, in the absence of other information. The value of the `choice` attribute is to match the value of the `type` attribute for the selected item.
+
+```xml
+<timeFormats>
+ <default choice="medium" />
+ <timeFormatLength type="full">
+ <timeFormat type="standard">
+ <pattern type="standard">h:mm:ss a z</pattern>
+ </timeFormat>
+ </timeFormatLength>
+ <timeFormatLength type="long">
+ <timeFormat type="standard">
+ <pattern type="standard">h:mm:ss a z</pattern>
+ </timeFormat>
+ </timeFormatLength>
+ <timeFormatLength type="medium">
+ <timeFormat type="standard">
+ <pattern type="standard">h:mm:ss a</pattern>
+ </timeFormat>
+ </timeFormatLength>
+ ...
+```
+
+Like all other elements, the `<default>` element is inherited. Thus, it can also refer to inherited resources. For example, suppose that the above resources are present in fr, and that in fr_BE we have the following:
+
+```xml
+<timeFormats>
+ <default choice="long" />
+</timeFormats>
+```
+
+In that case, the default time format for fr_BE would be the inherited "long" resource from fr. Now suppose that we had in fr_CA:
+
+```xml
+<timeFormatLength type="medium">
+ <timeFormat type="standard">
+ <pattern type="standard">...</pattern>
+ </timeFormat>
+</timeFormatLength>
+```
+
+In this case, the `<default>` is inherited from fr, and has the value "medium". It thus refers to this new "medium" pattern in this resource bundle.
+
+### <a name="Deprecated_Common_Attributes" href="#Deprecated_Common_Attributes">A.5 Deprecated Common Attributes</a>
+
+#### <a name="Attribute_standard" href="#Attribute_standard">A.5.1 Attribute standard</a>
+
+**Note:** This attribute is deprecated. Instead, use a `reference` element with the attribute `standard="true"`.
+
+The value of this attribute is a list of strings representing standards: international, national, organization, or vendor standards. The presence of this attribute indicates that the data in this element is compliant with the indicated standards. Where possible, for uniqueness, the string should be a URL that represents that standard. The strings are separated by commas; leading or trailing spaces on each string are not significant. Examples:
+
+```xml
+<collation standard="MSA 200:2002">
+ ...
+ <dateFormatStyle standard=”https://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=26780&ICS1=1&ICS2=140&ICS3=30”>
+```
+
+#### <a name="Attribute_draft_nonLeaf" href="#Attribute_draft_nonLeaf">A.5.2 Attribute draft in non-leaf elements</a>
+
+The `draft` attribute is deprecated except in leaf elements (elements that do not have any subelements)
+
+### <a name="Element_base" href="#Element_base">A.6 Element base</a>
+
+**Note:** _This element is deprecated._ Use the collation `<import>` element instead.
+
+The optional base element `<base>...</base>` , contains an `alias` element that points to another data source that defines a _base_ collation. If present, it indicates that the settings and rules in the collation are modifications applied on _top of the_ respective elements in the base collation. That is, any successive settings, where present, override what is in the base as described in [Setting Options](tr35-collation.md#Setting_Options). Any successive rules are concatenated to the end of the rules in the base. The results of multiple rules applying to the same characters is covered in [Orderings](tr35-collation.md#Orderings).
+
+### <a name="Element_rules" href="#Element_rules">A.7 Element rules</a>
+
+**Note:** _The XML collation syntax is deprecated; this includes the `<rules>` element and its subelements, except that the `<import>` element has been moved up to be a subelement of `<collation>`._ Use the basic collation syntax with the [`<cr>` element](tr35-collation.md#Rules) instead.
+
+```xml
+<!ELEMENT rules (alias | ( ( reset | import ), ( reset | import | p | pc | s | sc | t | tc | i | ic | x)* )) >
+```
+
+### <a name="Deprecated_subelements_of_dates" href="#Deprecated_subelements_of_dates">A.8 Deprecated subelements of `<dates>`</a>
+
+* `<localizedPatternChars>`
+* `<dateRangePattern>`, replaced by `<intervalFormats>`.
+
+### <a name="Deprecated_subelements_of_calendars" href="#Deprecated_subelements_of_calendars">A.9 Deprecated subelements of `<calendars>`</a>
+
+* `<monthNames>` and `<monthAbbr>`; month name forms are specified in the `<months>` element. The older `monthNames`, `monthAbbr` are equivalent to: using the `months` element with the context `type="format"` and the width `type="wide"` (for ...Names) and `type="narrow"` (for ...Abbr), respectively.
+* `<dayNames>` and `<dayAbbr>`; weekday name forms are specified in the `<days>` element. The older dayNames, dayAbbr are equivalent to: using the `days` element with the context `type="format"` and the width `type="wide"` (for ...Names) and `type="narrow"` (for ...Abbr), respectively.
+* <a name="week" href="#week">`<week>`</code></a> is deprecated in the main LDML files, because the data is more appropriately organized as connected to territories, not to linguistic data. Use the supplemental `<weekData>` element instead.
+* `<am>` and `<pm>`; these are now included as part of the `<dayPeriods>` element
+* `<fields>` is deprecated as a subelement of `<calendars>` instead, a `<fields>` element should be located just under a `<dates>` element. See [Calendar Fields](tr35-dates.md#Calendar_Fields).
+
+### <a name="Deprecated_subelements_of_timeZoneNames" href="#Deprecated_subelements_of_timeZoneNames">A.10 Deprecated subelements of `<timeZoneNames>`</a>
+
+* `<hoursFormat>` e.g. "{0}/{1}" for "-0800/-0700"
+* <a name="fallbackRegionFormat" href="#fallbackRegionFormat">`<fallbackRegionFormat>`</a> (deprecated), e.g. "{0} Time ({1})" for "United States Time (New York)"
+* `<abbreviationFallback>`
+* `<preferenceOrdering>`, a preference ordering among modern zones; use metazones instead.
+* `<singleCountries>`, use [Primary Zones](tr35-dates.md#Primary_Zones)
+
+### <a name="Deprecated_subelements_of_zone_metazone" href="#Deprecated_subelements_of_zone_metazone">A.11 Deprecated subelements of `<zone>` and `<metazone>`</a>
+
+* `<commonlyUsed>`, formerly used to indicate whether a zone was commonly used in the locale.
+
+### <a name="Renamed_attribute_values_for_contextTransformUsage" href="#Renamed_attribute_values_for_contextTransformUsage">A.12 Renamed attribute values for `<contextTransformUsage>` element</a>
+
+The `<contextTransformUsage>` element was introduced in CLDR 21. The values for its `type` attribute are documented in [`<contextTransformUsage>` type attribute values](tr35-general.md#contextTransformUsage_type_attribute_values). In CLDR 25, some of these values were renamed from their previous values for improved clarity:
+
+* `type` was renamed to `keyValue`
+* `displayName` was renamed to `currencyName`
+* `displayName-count` was renamed to `currencyName-count`
+* `tense` was renamed to `relative`
+
+### <a name="Deprecated_subelements_of_segmentations" href="#Deprecated_subelements_of_segmentations">A.13 Deprecated subelements of `<segmentations>`</a>
+
+* `<exceptions>` and `<exceptions>` were deprecated and replaced with `<suppressions>` and `<suppression>`.
+
+### <a name="Element_cp" href="#Element_cp">A.14 Element cp</a>
+
+The `cp` element was used to escape characters that cannot be represented in XML, even with NCRs. These escapes were only allowed in certain elements, according to the DTD.
+
+However, this mechanism is very clumsy, and was replaced by specialized syntax.
+
+| Code Point | XML Example |
+| ---------- | -------------- |
+| `U+0000` | `<cp hex="0">` |
+
+### <a name="validSubLocales" href="#validSubLocales">A.15 Attribute validSubLocales</a>
+
+The attribute `validSubLocales` allowed sublocales in a given tree to be treated as though a file for them were present when there was not one. It only had an effect for locales that inherit from the current file where a file is missing.
+
+**Example 1.** Suppose that in a particular LDML tree, there are no region locales for German, for example, there is a de.xml file, but no files for de_AT.xml, de_CH.xml, or de_DE.xml. Then no elements are valid for any of those region locales. If we want to mark one of those files as having valid elements, then we introduce an empty file, such as the following.
+
+```xml
+<ldml version="1.1">
+ <identity>
+ <version number="1.1" />
+ <language type="de" />
+ <territory type="AT" />
+ </identity>
+</ldml>
+```
+
+With the `validSubLocales` attribute, instead of adding the empty files for de_AT.xml, de_CH.xml, and de_DE.xml, in the de file we could add to the parent locale a list of the child locales that should behave as if files were present.
+
+```xml
+<ldml version="1.1" validSubLocales="de_AT de_CH de_DE">
+ <identity>
+ <version number="1.1" />
+ <language type="de" />
+ </identity>
+ ...
+</ldml>
+```
+
+Now that the `validSubLocales` attribute has been deprecated, it is recommended to simply add empty files to specify which sublocales are valid. This convention is used throughout the CLDR.
+
+### <a name="postCodeElements" href="#postCodeElements">A.16 Elements postalCodeData, postCodeRegex</a>
+
+The postal code validation data has been deprecated. Please see other services that are kept up to date, such as:
+
+* [https://i18napis.appspot.com/address/data/US](https://i18napis.appspot.com/address/data/US)
+* [https://i18napis.appspot.com/address/data/CH](https://i18napis.appspot.com/address/data/CH)
+* ...
+
+See [Postal Code Validation](tr35-info.md#Postal_Code_Validation)
+
+### <a name="telephoneCodeData" href="#telephoneCodeData">A.17 Element telephoneCodeData</a>
+
+The element `<telephoneCodeData>` and its subelements have been deprecated and the data removed.
+
+* * *
+
+## <a name="Links_to_Other_Parts" href="#Links_to_Other_Parts">Annex B Links to Other Parts</a>
+
+The LDML specification is split into several [parts](#Parts) by topic, with one HTML document per part. The following tables provide redirects for links to specific topics. Please update your links and bookmarks.
+
+Part 1 Links: Core (this document): No redirects needed.
+
+##### <a name="Part_2_Links" href="#Part_2_Links">Part 2 Links</a>: [General](tr35-general.md) (display names & transforms, etc.)
+
+| Old section | Section in new part |
+| ----------------------------------------------------------------------------------------------------------- | ------------------- |
+| 5.4 <a name="Display_Name_Elements" href="#Display_Name_Elements">Display Name Elements</a> | 1 [Display Name Elements](tr35-general.md#Display_Name_Elements) |
+| 5.5 <a name="Layout_Elements" href="#Layout_Elements">Layout Elements</a> | 2 [Layout Elements](tr35-general.md#Layout_Elements) |
+| 5.6 <a name="Character_Elements" href="#Character_Elements">Character Elements</a> | 3 [Character Elements](tr35-general.md#Character_Elements) |
+| 5.6.1 <a name="ExemplarSyntax" href="#ExemplarSyntax">Exemplar Syntax</a> | 3.1 [Exemplar Syntax](tr35-general.md#ExemplarSyntax) |
+| 5.6.2 Restrictions | 3.1 [Exemplar Syntax](tr35-general.md#ExemplarSyntax) |
+| 5.6.3 Mapping | 3.2 [Mapping](tr35-general.md#Character_Mapping) |
+| 5.6.4 <a name="IndexLabels" href="#IndexLabels">Index Labels</a> | 3.3 [Index Labels](tr35-general.md#IndexLabels) |
+| 5.6.5 Ellipsis | 3.4 [Ellipsis](tr35-general.md#Ellipsis) |
+| 5.6.6 More Information | 3.5 [More Information](tr35-general.md#Character_More_Info) |
+| 5.7 <a name="Delimiter_Elements" href="#Delimiter_Elements">Delimiter Elements</a> | 4 [Delimiter Elements](tr35-general.md#Delimiter_Elements) |
+| C.6 <a name="Measurement_System_Data" href="#Measurement_System_Data">Measurement System Data</a> | 5 [Measurement System Data](tr35-general.md#Measurement_System_Data) |
+| 5.8 <a name="Measurement_Elements" href="#Measurement_Elements">Measurement Elements (deprecated)</a> | 5.1 [Measurement Elements (deprecated)](tr35-general.md#Measurement_Elements) |
+| 5.11 <a name="Unit_Elements" href="#Unit_Elements">Unit Elements</a> | 6 [Unit Elements](tr35-general.md#Unit_Elements) |
+| 5.12 <a name="POSIX_Elements" href="#POSIX_Elements">POSIX Elements</a> | 7 [POSIX Elements](tr35-general.md#POSIX_Elements) |
+| 5.13 <a name="Reference_Elements" href="#Reference_Elements">Reference Element</a> | 8 [Reference Element](tr35-general.md#Reference_Elements) |
+| 5.15 <a name="Segmentations" href="#Segmentations">Segmentations</a> | 9 [Segmentations](tr35-general.md#Segmentations) |
+| 5.15.1 <a name="Segmentation_Inheritance" href="#Segmentation_Inheritance">Segmentation Inheritance</a> | 9.1 [Segmentation Inheritance](tr35-general.md#Segmentation_Inheritance) |
+| 5.16 <a name="Transforms" href="#Transforms">Transforms</a> | 10 [Transforms](tr35-general.md#Transforms) |
+| N <a name="Transform_Rules" href="#Transform_Rules">Transform Rules</a> | 10.3 [Transform Rules Syntax](tr35-general.md#Transform_Rules_Syntax) |
+| 5.18 <a name="ListPatterns" href="#ListPatterns">List Patterns</a> | 11 [List Patterns](tr35-general.md#ListPatterns) |
+| C.20 <a name="List_Gender" href="#List_Gender">Gender of Lists</a> | 11.1 [Gender of Lists](tr35-general.md#List_Gender) |
+| 5.19 <a name="Context_Transform_Elements" href="#Context_Transform_Elements">ContextTransform Elements</a> | 12 [ContextTransform Elements](tr35-general.md#Context_Transform_Elements) |
+
+##### <a name="Part_3_Links" href="#Part_3_Links">Part 3 Links</a>: [Numbers](tr35-numbers.md) (number & currency formatting)
+
+| Old section | Section in new part |
+| ----------------------------------------------------------------------------------------------------------------- | ------------------- |
+| C.13 <a name="Numbering_Systems" href="#Numbering_Systems">Numbering Systems</a> | 1 [Numbering Systems](tr35-numbers.md#Numbering_Systems) |
+| 5.10 <a name="Number_Elements" href="#Number_Elements">Number Elements</a> | 2 [Number Elements](tr35-numbers.md#Number_Elements) |
+| 5.10.1 <a name="Number_Symbols" href="#Number_Symbols">Number Symbols</a> | 2.3 [Number Symbols](tr35-numbers.md#Number_Symbols) |
+| G <a name="Number_Format_Patterns" href="#Number_Format_Patterns">Number Format Patterns</a> | 3 [Number Format Patterns](tr35-numbers.md#Number_Format_Patterns) |
+| 5.10.2 <a name="Currencies" href="#Currencies">Currencies</a> | 4 [Currencies](tr35-numbers.md#Currencies) |
+| C.1 <a name="Supplemental_Currency_Data" href="#Supplemental_Currency_Data">Supplemental Currency Data</a> | 4.1 [Supplemental Currency Data](tr35-numbers.md#Supplemental_Currency_Data) |
+| C.11 <a name="Language_Plural_Rules" href="#Language_Plural_Rules">Language Plural Rules</a> | 5 [Language Plural Rules](tr35-numbers.md#Language_Plural_Rules) |
+| 5.17 <a name="Rule-Based_Number_Formatting" href="#Rule-Based_Number_Formatting">Rule-Based Number Formatting</a> | 6 [Rule-Based Number Formatting](tr35-numbers.md#Rule-Based_Number_Formatting) |
+
+##### <a name="Part_4_Links" href="#Part_4_Links">Part 4 Links</a>: [Dates](tr35-dates.md) (date, time, time zone formatting)
+
+| Old section | Section in new part |
+| ----------------------------------------------------------------------------------------------------------------------------- | ------------------- |
+| <a name="Date_Elements" href="#Date_Elements">5.9 Date Elements</a> | 1 [Overview: Dates Element, Supplemental Date and Calendar Information](tr35-dates.md#Overview_Dates_Element_Supplemental) |
+| <a name="Calendar_Elements" href="#Calendar_Elements">5.9.1 Calendar Elements</a> | 2 [Calendar Elements](tr35-dates.md#Calendar_Elements) |
+| <a name="months_days_quarters_eras" href="#months_days_quarters_eras">Elements months, days, quarters, eras</a> | 2.1 [Elements months, days, quarters, eras](tr35-dates.md#months_days_quarters_eras) |
+| <a name="monthPatterns_cyclicNameSets" href="#monthPatterns_cyclicNameSets">Elements monthPatterns, cyclicNameSets</a> | 2.2 [Elements monthPatterns, cyclicNameSets](tr35-dates.md#monthPatterns_cyclicNameSets) |
+| <a name="dayPeriods" href="#dayPeriods">Element dayPeriods</a> | 2.3 [Element dayPeriods](tr35-dates.md#dayPeriods) |
+| <a name="dateFormats" href="#dateFormats">Element dateFormats</a> | 2.4 [Element dateFormats](tr35-dates.md#dateFormats) |
+| <a name="timeFormats" href="#timeFormats">Element timeFormats</a> | 2.5 [Element timeFormats](tr35-dates.md#timeFormats) |
+| <a name="dateTimeFormats" href="#dateTimeFormats">Element dateTimeFormats</a> | 2.6 [Element dateTimeFormats](tr35-dates.md#dateTimeFormats) |
+| <a name="Calendar_Fields" href="#Calendar_Fields">5.9.2 Calendar Fields</a> | 3 [Calendar Fields](tr35-dates.md#Calendar_Fields) |
+| 5.9.3 <a name="Timezone_Names" href="#Timezone_Names">Time Zone Names</a> | 5 [Time Zone Names](tr35-dates.md#Time_Zone_Names) |
+| <a name="Supplemental_Calendar_Data" href="#Supplemental_Calendar_Data">C.5 Supplemental Calendar Data</a> | 4 [Supplemental Calendar Data](tr35-dates.md#Supplemental_Calendar_Data) |
+| <a name="Supplemental_Timezone_Data" href="#Supplemental_Timezone_Data">C.7 Supplemental Time Zone Data</a> | 6 [Supplemental Time Zone Data](tr35-dates.md#Supplemental_Time_Zone_Data) |
+| <a name="Calendar_Preference_Data" href="#Calendar_Preference_Data">C.15 Calendar Preference Data</a> | 4.2 [Calendar Preference Data](tr35-dates.md#Calendar_Preference_Data) |
+| <a name="DayPeriodRules" href="#DayPeriodRules">C.17 DayPeriod Rules</a> | 4.5 [Day Period Rules](tr35-dates.md#Day_Period_Rules) |
+| <a name="Date_Format_Patterns" href="#Date_Format_Patterns">Appendix F: Date Format Patterns</a> | 8 [Date Format Patterns](tr35-dates.md#Date_Format_Patterns) |
+| <a name="Date_Field_Symbol_Table" href="#Date_Field_Symbol_Table">Date Field Symbol Table</a> | [Date Field Symbol Table](tr35-dates.md#Date_Field_Symbol_Table) |
+| <a name="Localized_Pattern_Characters" href="#Localized_Pattern_Characters">F.1 Localized Pattern Characters (deprecated)</a> | 8.1 [Localized Pattern Characters (deprecated)](tr35-dates.md#Localized_Pattern_Characters) |
+| <a name="Time_Zone_Fallback" href="#Time_Zone_Fallback">Appendix J: Time Zone Display Names</a> | 7 [Using Time Zone Names](tr35-dates.md#Using_Time_Zone_Names) |
+| <a name="fallbackFormat" href="#fallbackFormat">**fallbackFormat**:</a> | [**fallbackFormat**:](tr35-dates.md#fallbackFormat) |
+| O.4 Parsing Dates and Times | 9 [Parsing Dates and Times](tr35-dates.md#Parsing_Dates_Times) |
+
+##### <a name="Part_5_Links" href="#Part_5_Links">Part 5 Links</a>: [Collation](tr35-collation.md) (sorting, searching, grouping)
+
+| Old section | Section in new part |
+| ------------------------------------------------------------------------------------------------------------------------------- | ------------------- |
+| 5.14 <a name="Collation_Elements" href="#Collation_Elements">Collation Elements</a> | 3 [Collation Tailorings](tr35-collation.md#Collation_Tailorings) |
+| 5.14.1 <a name="Collation_Version" href="#Collation_Version">Version</a> | 3.1 [Version](tr35-collation.md#Collation_Version) |
+| 5.14.2 <a name="Collation_Element" href="#Collation_Element">Collation Element</a> | 3.2 [Collation Element](tr35-collation.md#Collation_Element) |
+| 5.14.3 <a name="Setting_Options" href="#Setting_Options">Setting Options</a> | 3.3 [Setting Options](tr35-collation.md#Setting_Options) |
+| Table <a name="Collation_Settings" href="#Collation_Settings">Collation Settings</a> | Table [Collation Settings](tr35-collation.md#Collation_Settings) |
+| 5.14.4 <a name="Rules" href="#Rules">Collation Rule Syntax</a> | 3.4 [Collation Rule Syntax](tr35-collation.md#Rules) |
+| 5.14.5 <a name="Orderings" href="#Orderings">Orderings</a> | 3.5 [Orderings](tr35-collation.md#Orderings) |
+| 5.14.6 <a name="Contractions" href="#Contractions">Contractions</a> | 3.6 [Contractions](tr35-collation.md#Contractions) |
+| 5.14.7 <a name="Expansions" href="#Expansions">Expansions</a> | 3.7 [Expansions](tr35-collation.md#Expansions) |
+| 5.14.8 <a name="Context_Before" href="#Context_Before">Context Before</a> | 3.8 [Context Before](tr35-collation.md#Context_Before) |
+| 5.14.9 <a name="Placing_Characters_Before_Others" href="#Placing_Characters_Before_Others">Placing Characters Before Others</a> | 3.9 [Placing Characters Before Others](tr35-collation.md#Placing_Characters_Before_Others) |
+| 5.14.10 <a name="Logical_Reset_Positions" href="#Logical_Reset_Positions">Logical Reset Positions</a> | 3.10 [Logical Reset Positions](tr35-collation.md#Logical_Reset_Positions) |
+| 5.14.11 <a name="Special_Purpose_Commands" href="#Special_Purpose_Commands">Special-Purpose Commands</a> | 3.11 [Special-Purpose Commands](tr35-collation.md#Special_Purpose_Commands) |
+| 5.14.12 <a name="Script_Reordering" href="#Script_Reordering">Collation Reordering</a> | 3.12 [Collation Reordering](tr35-collation.md#Script_Reordering) |
+| 5.14.13 <a name="Case_Parameters" href="#Case_Parameters">Case Parameters</a> | 3.13 [Case Parameters](tr35-collation.md#Case_Parameters) |
+| Definition: <a name="UncasedExceptions" href="#UncasedExceptions">UncasedExceptions</a> | removed: see 3.13 [Case Parameters](tr35-collation.md#Case_Parameters) |
+| Definition: <a name="LowerExceptions" href="#LowerExceptions">LowerExceptions</a> | removed: see 3.13 [Case Parameters](tr35-collation.md#Case_Parameters) |
+| Definition: <a name="UpperExceptions" href="#UpperExceptions">UpperExceptions</a> | removed: see 3.13 [Case Parameters](tr35-collation.md#Case_Parameters) |
+| 5.14.14 <a name="Visibility" href="#Visibility">Visibility</a> | 3.14 [Visibility](tr35-collation.md#Visibility) |
+
+##### <a name="Part_6_Links" href="#Part_6_Links">Part 6 Links</a>: [Supplemental](tr35-info.md) (supplemental data)
+
+| Old section | Section in new part |
+| ---------------------------------------------------------------------------------------------------------------------------------------- | ------------------- |
+| C <a name="Supplemental_Data" href="#Supplemental_Data">Supplemental Data</a> | Introduction [Supplemental Data](tr35-info.md#Supplemental_Data) |
+| C.2 <a name="Supplemental_Territory_Containment" href="#Supplemental_Territory_Containment">Supplemental Territory Containment</a> | 1.1 [Supplemental Territory Containment](tr35-info.md#Supplemental_Territory_Containment) |
+| C.4 <a name="Supplemental_Territory_Information" href="#Supplemental_Territory_Information">Supplemental Territory Information</a> | 1.2 [Supplemental Territory Information](tr35-info.md#Supplemental_Territory_Information) |
+| C.3 <a name="Supplemental_Language_Data" href="#Supplemental_Language_Data">Supplemental Language Data</a> | 2 [Supplemental Language Data](tr35-info.md#Supplemental_Language_Data) |
+| C.9 <a name="Supplemental_Code_Mapping" href="#Supplemental_Code_Mapping">Supplemental Code Mapping</a> | 4 [Supplemental Code Mapping](tr35-info.md#Supplemental_Code_Mapping) |
+| C.12 <a name="Telephone_Code_Data" href="#Telephone_Code_Data">Telephone Code Data</a> | 5 [Telephone Code Data](tr35-info.md#Telephone_Code_Data) |
+| C.14 <a name="Postal_Code_Validation" href="#Postal_Code_Validation">Postal Code Validation</a> | 6 [Postal Code Validation](tr35-info.md#Postal_Code_Validation) |
+| C.8 <a name="Supplemental_Character_Fallback_Data" href="#Supplemental_Character_Fallback_Data">Supplemental Character Fallback Data</a> | 7 [Supplemental Character Fallback Data](tr35-info.md#Supplemental_Character_Fallback_Data) |
+| M <a name="Coverage_Levels" href="#Coverage_Levels">Coverage Levels</a> | 8 [Coverage Levels](tr35-info.md#Coverage_Levels) |
+| 5.20 [Metadata Elements](tr35-info.md#Metadata_Elements) | 10 [Locale Metadata Element](tr35-info.md#Metadata_Elements) |
+| P [Supplemental Metadata](tr35-info.md#Appendix_Supplemental_Metadata) | 9 [Supplemental Metadata](tr35-info.md#Appendix_Supplemental_Metadata)
+| P.1 [Supplemental Alias Information](tr35-info.md#Supplemental_Alias_Information) | 9.1 [Supplemental Alias Information](tr35-info.md#Supplemental_Alias_Information)
+| P.2 [Supplemental Deprecated Information](tr35-info.md#Supplemental_Deprecated_Information) | 9.2 [Supplemental Deprecated Information](tr35-info.md#Supplemental_Deprecated_Information)
+| P.3 [Default Content](tr35-info.md#Default_Content) | 9.3 [Default Content](tr35-info.md#Default_Content) |
+
+##### <a name="Part_7_Links" href="#Part_7_Links">Part 7 Links</a>: [Keyboards](tr35-keyboards.md) (keyboard mappings)
+
+| Old section | Section in new part |
+| -------------------------------------------------------------------------------------------------------------------------- | ------------------- |
+| S <a name="Keyboards" href="#Keyboards">Keyboards</a> | 1 [Keyboards](tr35-keyboards.md#Keyboards) |
+| S <a name="Goals_and_Nongoals" href="#Goals_and_Nongoals">Goals and Nongoals</a> | [Goals and Nongoals](tr35-keyboards.md#Goals_and_Nongoals) |
+| S <a name="File_and_Dir_Structure" href="#File_and_Dir_Structure">File and Directory Structure</a> | [File and Directory Structure](tr35-keyboards.md#File_and_Dir_Structure) |
+| S <a name="Element_Heirarchy_Layout_File" href="#Element_Heirarchy_Layout_File">Element Hierarchy - Layout File</a> | [Element Hierarchy - Layout File](tr35-keyboards.md#Element_Heirarchy_Layout_File) |
+| S <a name="Element_Heirarchy_Platform_File" href="#Element_Heirarchy_Platform_File">Element Hierarchy - Platform File</a> | [Element Hierarchy - Platform File](tr35-keyboards.md#Element_Heirarchy_Platform_File) |
+| S <a name="Invariants" href="#Invariants">Invariants</a> | [Invariants](tr35-keyboards.md#Invariants) |
+| S <a name="Data_Sources" href="#Data_Sources">Data Sources</a> | [Data Sources](tr35-keyboards.md#Data_Sources) |
+| S <a name="Keyboard_IDs" href="#Keyboard_IDs">Keyboard IDs</a> | [Keyboard IDs](tr35-keyboards.md#Keyboard_IDs) |
+| S <a name="Platform_Behaviors_in_Edge_Cases" href="#Platform_Behaviors_in_Edge_Cases">Platform Behaviors in Edge Cases</a> | [Platform Behaviors in Edge Cases](tr35-keyboards.md#Platform_Behaviors_in_Edge_Cases) |
+| S <a name="Element_Keyboard" href="#Element_Keyboard">Element: keyboard</a> | [Element: keyboard](tr35-keyboards.md#Element_Keyboard) |
+| S <a name="Element_version" href="#Element_version">Element: version</a> | [Element: version](tr35-keyboards.md#Element_version) |
+| S <a name="Element_generation" href="#Element_generation">Element: generation</a> | [Element: generation](tr35-keyboards.md#Element_generation) |
+| S <a name="Element_names" href="#Element_names">Element: names</a> | [Element: names](tr35-keyboards.md#Element_names) |
+| S <a name="Element_name" href="#Element_name">Element: name</a> | [Element: name](tr35-keyboards.md#Element_name) |
+| S <a name="Element_settings" href="#Element_settings">Element: settings</a> | [Element: settings](tr35-keyboards.md#Element_settings) |
+| S <a name="Element_keyMap" href="#Element_keyMap">Element: keyMap</a> | [Element: keyMap](tr35-keyboards.md#Element_keyMap) |
+| S <a name="Element_map" href="#Element_map">Element: map</a> | [Element: map](tr35-keyboards.md#Element_map) |
+| S <a name="Element_transforms" href="#Element_transforms">Element: transforms</a> | [Element: transforms](tr35-keyboards.md#Element_transforms) |
+| S <a name="Element_transform" href="#Element_transform">Element: transform</a> | [Element: transform](tr35-keyboards.md#Element_transform) |
+| S <a name="Element_platform" href="#Element_platform">Element: platform</a> | [Element: platform](tr35-keyboards.md#Element_platform) |
+| S <a name="Element_hardwareMap" href="#Element_hardwareMap">Element: hardwareMap</a> | [Element: hardwareMap](tr35-keyboards.md#Element_hardwareMap) |
+| S <a name="Principles_for_Keyboard_Ids" href="#Principles_for_Keyboard_Ids">Principles for Keyboard Ids</a> | [Principles for Keyboard Ids](tr35-keyboards.md#Principles_for_Keyboard_Ids) |
+
+* * *
+
+## <a name="LocaleId_Canonicalization" href="#LocaleId_Canonicalization">Annex C. LocaleId Canonicalization</a>
+
+The `languageAlias`, `scriptAlias`, `territoryAlias`, and `variantAlias` elements are used as rules to transform an input _source localeId_. The first step is to transform the _languageId_ portion of the localeId.
+
+> Note: in the following discussion, the separator '-' is used. That is also used in examples of XML alias data, even though for compatibility reasons that alias data actually uses '\_' as a separator. The processing can also be applied to syntax while maintaining the separator '\_', _mutatis mutandis_. CLDR also uses “territory” and “region” interchangeably.
+
+### Definitions
+
+#### 1. Multimap interpretation
+
+Interpret each languageId as a multimap from a _fieldId_ (language, script, region, variants) to a **set** of field values.
+
+_Examples:_
+
+<!-- HTML: rowspan, colspan -->
+<table><thead>
+<tr><th rowspan="1">Source</th> <th colspan="4">Fields</th></tr>
+<tr> <th>Language</th> <th>Script</th> <th>Region</th> <th>Variants</th></tr>
+</thead><tbody>
+<tr><td>en-GB</td> <td>{en}</td> <td>{}</td> <td>{GB}</td> <td>{}</td></tr>
+<tr><td>und-GB</td> <td>{}</td> <td>{}</td> <td>{GB}</td> <td>{}</td></tr>
+<tr><td>ja-Latn-YU-hepburn-heploc</td> <td>{ja}</td> <td>{Latn}</td> <td>{YU}</td> <td>{hepburn, heploc}</td></tr>
+</tbody></table>
+
+* This can be represented as an abbreviated format: \{L=\{ja}, S=\{Latn}, R=\{YU}, V=\{hepburn, heploc}}, skipping empty sets.
+* “und” is a special language code that is treated as an empty set.
+* Of course, only the Variants can contain more than one item: the others are either empty or contain exactly 1 item.
+
+#### 2. Alias elements
+
+For the `languageAlias` elements, the _type_ and _replacements_ are languageIds.
+
+For the script-, territory- (aka region), and variant- Alias elements, the type and replacements are interpreted as a languageIds, _after_ prefixing with “und-”. Thus
+
+```xml
+<territoryAlias type="AN" replacement="CW SX BQ" reason="deprecated" />
+```
+
+is interpreted as:
+
+```xml
+<territoryAlias type="und-AN" replacement="und-CW und-SX und-BQ" reason="deprecated" />
+```
+
+Note that for the case of territoryAlias, there may be multiple replacement values separated by spaces in the text (such as replacement="und-CW und-SX und-BQ"); other rules only ever have a single replacement value.
+
+#### 3. Matches
+
+A rule matches a source if and only for all fields, each _source_ field ⊇ _type_ field.
+
+_Examples:_
+
+`source=“ja-heploc-hepburn”` and `type=”und-hepburn”`
+
+<table class="simple"><tbody>
+<tr><td>{ja} ⊇ {}</td><td>success, und = {}</td></tr>
+<tr><td>{hepburn, heploc} ⊇ {hepburn}</td><td><b>success</b></td></tr>
+</tbody></table>
+
+so the rule matches the source. (Note that order of variants is immaterial to matching)
+
+`source=“ja-hepburn”` and `type=”und-hepburn-heploc”`
+
+<table class="simple"><tbody>
+<tr><td>{ja} ⊇ {}</td><td>success, und = {}</td></tr>
+<tr><td>{hepburn} ⊉ {hepburn, heploc}</td><td><b>failure</b></td></tr>
+</tbody></table>
+
+so the rule does not match the source.
+
+#### 4. Replacement
+
+A matching rule can be used to transform the source fields as follows
+
+* if type.field ≠ \{}
+ * source.field = (source.field - type.field) ∪ replacement.field
+* else if source.field = \{} and replacement.field ≠ \{}
+ * source.field = replacement.field
+
+_Example:_
+
+> source=ja-Latn-fonipa-hepburn-heploc
+>
+> rule =”\<languageAlias type="und-hepburn-heploc"
+>
+> replacement="und-alalc97">”
+>
+> result=”ja-Latn-alalc97-fonipa” // note that CLDR canonical order of variants is alphabetical
+
+##### Territory Exception
+
+If the field = territory, and the replacement.field has more than one value, then look up the most likely territory\* for the base language code (and script, if there is one). If that likely territory is in the list of replacements, use it. Otherwise, use the first territory in the list.
+
+#### 5. Canonicalizing Syntax
+
+To canonicalize the syntax of _source_:
+
+* Initial Script Subtag
+ * If the first subtag has 4 letters, prepend the source with "und-"
+ * Note: These are only for specialized use.
+* Casing
+ * Put any script subtag inside unicode_language_id into title case (eg, Hant)
+ * Put any region subtag inside unicode_language_id int uppercase (eg, DE)
+ * Put all other subtags into lowercase (eg, en, fonipa)
+* Order
+ * Put any variants into alphabetical order (eg, en-fonipa-scouse, not en-scouse-fonipa)
+ * Put any extensions into alphabetical order by their singleton (eg, en-t-xxx-u-yyy, not en-u-yyy-t-xxx)
+ * Put all attributes into alphabetical order.
+ * Put all ufields (<ukey, uvalue>) and tfields (<tkey, tvalue>) into alphabetical order according to their keys (ukey or tkey), within their respective extensions.
+ * Remove any uvalue (aka type) equal to "true". Note that "true" values cannot be removed from tvalues.
+* Separator
+ * Replace '\_' by '-'
+
+### Preprocessing
+
+The data from supplementalMetadata is (logically) preprocessed as follows.
+
+1. Load the rules from supplementalMetadata.xml, replacing '\_' by '-', and adding “und-” as described in _Definition 2. Alias Elements_.
+2. Capture all languageAlias rules where the _type_ is an invalid languageId into a set of **BCP47 LegacyRules**. Example:
+ 1. `<languageAlias type="i-mingo" replacement="see-x-i-mingo" reason="legacy" />`
+3. Discard all rules where the _type_ is an invalid languageId. Examples are
+ 1. `<languageAlias type="i-mingo" replacement="see-x-i-mingo" reason="legacy" />`
+ 2. `<territoryAlias type="und-AAA" replacement="und-AA" reason="overlong" />`
+4. Change the _type_ and _replacement_ values in the remaining rules into multimap rules, as per _Definition 1. Multimap Interpretation_.
+ 1. Note that the “und” value disappears.
+5. Order the set of rules by
+ 1. the size of the union of all field value sets, with largest size first
+ 2. and then alphabetically by field.
+6. The result is the set of **Alias Rules**
+
+So using the examples above, we get the following order:
+
+<!-- HTML: rowspan -->
+<table><thead>
+<tr><th>languageId</th> <th>size of union</th> <th>Alpha</th></tr>
+</thead><tbody>
+<tr><td>{V={hepburn, heploc}}</td> <td>2</td> <td>n/a</td></tr>
+<tr><td>{L={en}, R={GB}}</td> <td>2</td> <td rowspan="2" colspan="1">en < fr</td></tr>
+<tr><td>{L={fr}, R={CA}}</td> <td>2</td></tr>
+<tr><td>{R={CA}}</td> <td>1</td> <td>n/a</td></tr>
+</tbody></table>
+
+> **Note:** The secondary sort order in Preprocessing step 5.2 is only to ensure determinant results when two rules “of the same length” could apply.
+
+### Processing LanguageIds
+
+To canonicalize a given _source_:
+
+1. Canonicalize the syntax of _source_ as per _Definition 5. Canonicalizing Syntax_.
+2. Where the _source_ could be an arbitrary BCP 47 language tag, first process as follows:
+ 1. If the source is identical to one of the types in the BCP47 LegacyRules, replace the entire source by the replacement value.
+ 2. Else if there is an extlang subtag, then apply Step 3 of [https://tools.ietf.org/html/bcp47#section-4.5](https://www.google.com/url?q=https://tools.ietf.org/html/bcp47%23section-4.5&sa=D&ust=1600829915065000&usg=AOvVaw12vD5EzoVl3VFzEyrECMj-) to remove the extlang subtag (possibly adjusting the language subtag).
+ 1. Don’t apply any of the other canonicalization steps in that section, however.
+ 3. Else if the first subtag is "x", prefix by "und-".
+ 4. **Note:** there are currently no valid 4-letter primary language subtags. While it is extremely unlikely that BCP47 would ever register them, if so then _languageAlias_ mappings will be supplied for them, mapping to defined CLDR language subtags (from the `idStatus="reserved"` set).
+3. Find the first matching rule in **Alias Rules** (from **Preprocessing**)
+ 1. If there are none, return _source_
+4. Transform _source_ according to that rule
+5. loop (goto #3)
+
+## Processing LocaleIds
+
+The canonicalization of localeIds is done by first canonicalizing the languageId portion, then handling extensions in the following way:
+
+1. Replace any _tlang_ languageId value by its canonicalization.
+2. Use the bcp47 data to replace keys, types, tfields, and tvalues by their canonical forms. See **Section 3.6.4 U Extension Data Files** and **Section 3.7.1 T Extension Data Files**. The matches are in the `alias` attribute value, while the canonical replacement is in the `name` attribute value. For example:
+ 1. Because of the following bcp47 data:
+ `<key name="ms"…>…<type name="uksystem" … alias="imperial" … />…</key>`
+ 2. We get the following transformation:
+ `en-u-ms-imperial ⇒ en-u-ms-uksystem`
+3. Replace any unicode_subdivision_id that is a subdivision alias by its replacement value in the same way, using subdivisionAlias data. This applies, for example, to the values for the 'sd' and 'rg' keys. However, where the replacement value is a two-letter region code, also append zzzz so that the result is syntactically correct. For example:
+ 1. Because of the following bcp47 data:
+ `<subdivisionAlias type="fi01" replacement="AX"…`
+ 2. We get the following transformation:
+ `en-u-rg-fi01 ⇒ en-u-rg-axzzzz`
+
+## Optimizations
+
+The above algorithm is a logical statement of the process, but would obviously not be directly suited to production code. Production-level code can use many optimizations for efficiency while achieving the same result. For example, the Alias Rules can be further preprocessed to avoid indefinite looping, instead doing a rule lookup once per subtag. As another example, the small number of **Territory Exceptions** can be preprocessed to avoid the likely subtags processing.
+
+* * *
+
+## <a name="References" href="#References">References</a>
+
+| Ancillary Information | To properly localize, parse, and format data requires ancillary information, which is not expressed in Locale Data Markup Language. Some of the formats for values used in Locale Data Markup Language are constructed according to external specifications. The sources for this data and/or formats include the following: |
+| -------------------------------------------------------- | --- |
+| [<a name="Bugs" href="#Bugs">Bugs</a>] | CLDR Bug Reporting form<br/>[http://cldr.unicode.org/index/bug-reports](http://cldr.unicode.org/index/bug-reports) |
+| [<a name="Charts" href="#Charts">Charts</a>] | The online code charts can be found at [https://unicode.org/charts/](https://unicode.org/charts/) An index to character names with links to the corresponding chart is found at [https://unicode.org/charts/charindex.html](https://unicode.org/charts/charindex.html) |
+| [<a name="DUCET" href="#DUCET">DUCET</a>] | The Default Unicode Collation Element Table (DUCET)<br/>For the base-level collation, of which all the collation tables in this document are tailorings.<br/>[https://unicode.org/reports/tr10/#Default_Unicode_Collation_Element_Table](https://unicode.org/reports/tr10/#Default_Unicode_Collation_Element_Table) |
+| [<a name="FAQ" href="#FAQ">FAQ</a>] | Unicode Frequently Asked Questions<br/>[https://unicode.org/faq/<br/>](https://unicode.org/faq/)_For answers to common questions on technical issues._ |
+| [<a name="FCD" href="#FCD">FCD</a>] | As defined in UTN #5 Canonical Equivalences in Applications<br/>[https://unicode.org/notes/tn5/](https://unicode.org/notes/tn5/) |
+| [<a name="Glossary" href="#Glossary">Glossary</a>] | Unicode Glossary[<br/>https://unicode.org/glossary/<br/>](https://unicode.org/glossary/)_For explanations of terminology used in this and other documents._ |
+| [<a name="JavaChoice" href="#JavaChoice">JavaChoice</a>] | Java ChoiceFormat<br/>[https://docs.oracle.com/javase/7/docs/api/java/text/ChoiceFormat.html](https://docs.oracle.com/javase/7/docs/api/java/text/ChoiceFormat.html) |
+| [<a name="Olson" href="#Olson">Olson</a>] | The TZID Database (aka Olson timezone database)<br/>Time zone and daylight savings information.<br/>[https://www.iana.org/time-zones](https://www.iana.org/time-zones)<br/>For archived data, see <br/>[ftp://ftp.iana.org/tz/releases/](ftp://ftp.iana.org/tz/releases/) |
+| [<a name="Reports" href="#Reports">Reports</a>] | Unicode Technical Reports<br/>[https://unicode.org/reports/<br/>](https://unicode.org/reports/)_For information on the status and development process for technical reports, and for a list of technical reports._ |
+| [<a name="Unicode" href="#Unicode">Unicode</a>] | The Unicode Consortium, _The Unicode Standard, Version 13.0.0_<br/>(Mountain View, CA: The Unicode Consortium, 2020. ISBN 978-1-936213-26-9)<br/>[https://www.unicode.org/versions/Unicode13.0.0/](https://www.unicode.org/versions/Unicode13.0.0/) |
+| [<a name="Versions" href="#Versions">Versions</a>] | Versions of the Unicode Standard<br/>[https://www.unicode.org/versions/](https://www.unicode.org/versions/)<br/>_For information on version numbering, and citing and referencing the Unicode Standard, the Unicode Character Database, and Unicode Technical Reports._ |
+| [<a name="XPath" href="#XPath">XPath</a>] | [https://www.w3.org/TR/xpath/](https://www.w3.org/TR/xpath/) |
+| Other Standards | _Various standards define codes that are used as keys or values in Locale Data Markup Language. These include:_ |
+| [<a name="BCP47" href="#BCP47">BCP47</a>] | [https://www.rfc-editor.org/rfc/bcp/bcp47.txt](https://www.rfc-editor.org/rfc/bcp/bcp47.txt)<br/>The Registry<br/>[https://www.iana.org/assignments/language-subtag-registry](https://www.iana.org/assignments/language-subtag-registry) |
+| [<a name="ISO639" href="#ISO639">ISO639</a>] | ISO Language Codes<br/>[https://www.loc.gov/standards/iso639-2/](https://www.loc.gov/standards/iso639-2/)<br/>Actual List<br/>[https://www.loc.gov/standards/iso639-2/langcodes.html](https://www.loc.gov/standards/iso639-2/langcodes.html) |
+| [<a name="ISO1000" href="#ISO1000">ISO1000</a>] | ISO 1000: SI units and recommendations for the use of their multiples and of certain other units, International Organization for Standardization, 1992.<br/>[https://www.iso.org/iso/catalogue_detail?csnumber=5448](https://www.iso.org/iso/catalogue_detail?csnumber=5448) |
+| [<a name="ISO3166" href="#ISO3166">ISO3166</a>] | ISO Region Codes<br/>[https://www.iso.org/iso/country_codes](https://www.iso.org/iso/country_codes)<br/>Actual List<br/>[https://www.iso.org/obp/ui/#search](https://www.iso.org/obp/ui/#search) |
+| [<a name="ISO4217" href="#ISO4217">ISO4217</a>] | ISO Currency Codes<br/>[https://www.iso.org/iso/home/standards/currency_codes.htm](https://www.iso.org/iso/home/standards/currency_codes.htm)<br/>_(Note that as of this point, there are significant problems with this list. The supplemental data file contains the best compendium of currency information available.)_ |
+| [<a name="ISO8601" href="#ISO8601">ISO8601</a>] | ISO Date and Time Format<br/>[https://www.iso.org/iso/iso8601](https://www.iso.org/iso/iso8601) |
+| [<a name="ISO15924" href="#ISO15924">ISO15924</a>] | ISO Script Codes<br/>[https://www.unicode.org/iso15924/index.html](https://www.unicode.org/iso15924/index.html)<br/>Actual List<br/>[https://www.unicode.org/iso15924/codelists.html](https://www.unicode.org/iso15924/codelists.html) |
+| [<a name="LOCODE" href="#LOCODE">LOCODE</a>] | United Nations Code for Trade and Transport Locations, commonly known as "UN/LOCODE"<br/>[https://www.unece.org/cefact/locode/welcome.html](https://www.unece.org/cefact/locode/welcome.html)<br/>Download at: [https://www.unece.org/cefact/codesfortrade/codes_index.htm](https://www.unece.org/cefact/codesfortrade/codes_index.htm) |
+| [<a name="RFC6067" href="#RFC6067">RFC6067</a>] | BCP 47 Extension U<br/>[https://www.ietf.org/rfc/rfc6067.txt](https://www.ietf.org/rfc/rfc6067.txt) |
+| [<a name="RFC6497" href="#RFC6497">RFC6497</a>] | BCP 47 Extension T - Transformed Content<br/>[https://www.ietf.org/rfc/rfc6497.txt](https://www.ietf.org/rfc/rfc6497.txt) |
+| [<a name="UNM49" href="#UNM49">UNM49</a>] | UN M.49: UN Statistics Division<br/>Country or area & region codes<br/>[https://unstats.un.org/unsd/methods/m49/m49.htm](https://unstats.un.org/unsd/methods/m49/m49.htm)<br/>Composition of macro geographical (continental) regions, geographical sub-regions, and selected economic and other groupings<br/>[https://unstats.un.org/unsd/methods/m49/m49regin.htm](https://unstats.un.org/unsd/methods/m49/m49regin.htm) |
+| [<a name="XMLSchema" href="#XMLSchema">XML Schema</a>] | W3C XML Schema<br/>[https://www.w3.org/XML/Schema](https://www.w3.org/XML/Schema) |
+| General | _The following are general references from the text:_ |
+| [<a name="ByType" href="#ByType">ByType</a>] | CLDR Comparison Charts<br/>[https://www.unicode.org/cldr/comparison_charts.html](https://www.unicode.org/cldr/comparison_charts.html) |
+| [<a name="Calendars" href="#Calendars">Calendars</a>] | Calendrical Calculations: The Millennium Edition by Edward M. Reingold, Nachum Dershowitz; Cambridge University Press; Book and CD-ROM edition (July 1, 2001); ISBN: 0521777526. Note that the algorithms given in this book are copyrighted. |
+| [<a name="Comparisons" href="#Comparisons">Comparisons</a>] | Comparisons between locale data from different sources<br/>[https://unicode-org.github.io/cldr-staging/charts/38/supplemental/dtd_deltas.html](https://unicode-org.github.io/cldr-staging/charts/38/supplemental/dtd_deltas.html) |
+| [<a name="CurrencyInfo" href="#CurrencyInfo">CurrencyInfo</a>] | UNECE Currency Data<br/>[https://www.currency-iso.org/en/home/tables.html](https://www.currency-iso.org/en/home/tables.html) |
+| [<a name="DataFormats" href="#DataFormats">DataFormats</a>] | CLDR Translation Guidelines<br/>[http://cldr.unicode.org/translation](http://cldr.unicode.org/translation) |
+| [<a name="LDML" href="#LDML">Example</a>] | A sample in Locale Data Markup Language<br/>[https://unicode.org/cldr/dtd/1.1/ldml-example.xml](https://unicode.org/cldr/dtd/1.1/ldml-example.xml) |
+| [<a name="ICUCollation" href="#ICUCollation">ICUCollation</a>] | ICU rule syntax<br/>[https://unicode-org.github.io/icu/userguide/collation/customization/](https://unicode-org.github.io/icu/userguide/collation/customization/) |
+| [<a name="ICUTransforms" href="#ICUTransforms">ICUTransforms</a>] | Transforms<br/>[https://unicode-org.github.io/icu/userguide/transforms/](https://unicode-org.github.io/icu/userguide/transforms/)<br/>Transforms Demo<br/>[http://demo.icu-project.org/icu-bin/translit/](http://demo.icu-project.org/icu-bin/translit/) |
+| [<a name="ICUUnicodeSet" href="#ICUUnicodeSet">ICUUnicodeSet</a>] | ICU UnicodeSet<br/>[https://unicode-org.github.io/icu/userguide/strings/unicodeset.html<br/>](https://unicode-org.github.io/icu/userguide/strings/unicodeset.html)API<br/>[https://unicode-org.github.io/icu-docs/apidoc/released/icu4j/com/ibm/icu/text/UnicodeSet.html](https://unicode-org.github.io/icu-docs/apidoc/released/icu4j/com/ibm/icu/text/UnicodeSet.html) |
+| [<a name="ITUE164" href="#ITUE164">ITUE164</a>] | International Telecommunication Union: List Of ITU Recommendation E.164 Assigned Country Codes<br/>available at [https://www.itu.int/opb/publications.aspx?parent=T-SP&view=T-SP2](https://www.itu.int/opb/publications.aspx?parent=T-SP&view=T-SP2) |
+| [<a name="LocaleExplorer" href="#LocaleExplorer">LocaleExplorer</a>] | ICU Locale Explorer<br/>[http://demo.icu-project.org/icu-bin/locexp](http://demo.icu-project.org/icu-bin/locexp) |
+| [<a name="localeProject" href="#localeProject">LocaleProject</a>] | Common Locale Data Repository Project<br/>[https://unicode.org/cldr/](https://unicode.org/cldr/) |
+| [<a name="NamingGuideline" href="#NamingGuideline">NamingGuideline</a>] | OpenI18N Locale Naming Guideline<br/>formerly at https://www.openi18n.org/docs/text/LocNameGuide-V10.txt |
+| [<a name="RBNF" href="#RBNF">RBNF</a>] | Rule-Based Number Format<br/>[https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/classicu_1_1RuleBasedNumberFormat.html](https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/classicu_1_1RuleBasedNumberFormat.html) |
+| [<a name="RBBI" href="#RBBI">RBBI</a>] | Rule-Based Break Iterator<br/>[https://unicode-org.github.io/icu/userguide/boundaryanalysis](https://unicode-org.github.io/icu/userguide/boundaryanalysis) |
+| [<a name="UCAChart" href="#UCAChart">UCAChart</a>] | Collation Chart[<br/>https://unicode.org/charts/collation/](https://unicode.org/charts/collation/) |
+| [<a name="UTCInfo" href="#UTCInfo">UTCInfo</a>] | NIST Time and Frequency Division Home Page<br/>[https://tf.nist.gov/<br/>](https://tf.nist.gov/)U.S. Naval Observatory: What is Universal Time?<br/>[https://www.usno.navy.mil/USNO/time/master-clock/systems-of-time](https://www.usno.navy.mil/USNO/time/master-clock/systems-of-time) |
+| [<a name="WindowsCulture" href="#WindowsCulture">WindowsCulture</a>] | Windows Culture Info (with mappings from [[BCP47](#BCP47)]-style codes to LCIDs)<br/>[http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo(vs.71).aspx](https://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo(vs.71).aspx) |
+
+
+## <a name="Acknowledgments" href="#Acknowledgments">Acknowledgments</a>
+
+Special thanks to the following people for their continuing overall contributions to the CLDR project, and for their specific contributions in the following areas. These descriptions only touch on the many contributions that they have made.
+
+* Mark Davis for creating the initial version of LDML, and adding to and maintaining this specification, and for his work on the LDML code and tests, much of the supplemental data and overall structure, and transforms and keyboards.
+* John Emmons for the POSIX conversion tool and metazones.
+* Deborah Goldsmith for her contributions to LDML architecture and this specification.
+* Chris Hansten for coordinating and managing data submissions and vetting.
+* Erkki Kolehmainen and his team for their work on Finnish.
+* Steven R. Loomis for development of the survey tool and database management.
+* Peter Nugent for his contributions to the POSIX tool and from Open Office, and for coordinating and managing data submissions and vetting.
+* George Rhoten for his work on currencies.
+* Roozbeh Pournader (روزبه پورنادر) for his work on South Asian countries.
+* Ram Viswanadha (రఘురామ్ విశ్వనాధ) for all of his work on LDML code and data integration, and for coordinating and managing data submissions and vetting.
+* Vladimir Weinstein (Владимир Вајнштајн) for his work on collation.
+* Yoshito Umaoka (馬岡 由人) for his work on the timezone architecture.
+* Rick McGowan for his work gathering language, script and region data.
+* Xiaomei Ji (吉晓梅) for her work on time intervals and plural formatting.
+* David Bertoni for his contributions to the conversion tools.
+* Mike Tardif for reviewing this specification and for coordinating and vetting data submissions.
+* Peter Edberg for work on this specification, monthPatterns, cyclicNameSets, contextTransforms and other items.
+* Raymond Wainman and Cibu Johny for their work on keyboards.
+* Jennifer Chye for her contributions to the conversion tools.
+* Markus Scherer for a major rewrite of Part 5, Collation.
+* [Shane Carr](https://www.sffc.xyz/) for his work on numbers and measurement units.
+* Robin Leroy for his work on compact plurals: Part 3, Section 5, [Language Plural Rules](tr35-numbers.md#Language_Plural_Rules)
+
+Other contributors to CLDR are listed on the [CLDR Project Page](https://www.unicode.org/cldr/).
+
+## <a name="Modifications" href="#Modifications">Modifications</a>
+
+**Revision 62**
+> TBD: The following is a list of changes that have yet to be incorporated into the Modifications.
+> * Locales
+> * The algorithm for generating display names for locales has been modified to handle aliased subtags **ALREADY INCLUDED BELOW**
+> * The tvalues of true are not removed in canonicalization **Part 1, Core; Annex C. LocaleId Canonicalization**
+> * The variantAlias replacements that are region codes are converted to subdivision codes in rg and sd kvalues (by appending "zzzz") **Part 1, Core; Annex C. LocaleId Canonicalization**
+> * The status of the kvalues of true and missing kvalues is clarified **Part 1, Core; 3.6.1 Key And Type Definitions**
+> * A duplicate example was removed below "Territory Exception" **Part 1, Core; Annex C. LocaleId Canonicalization**
+> * The text for keyword and tfield ordering in canonicalization has been clarified **Part 1, Core; Annex C. LocaleId Canonicalization**
+> * Duplicate variants in tlang fields are clearly disallowed **Part 1, Core; 3.2 Unicode Locale Identifier**
+> * The use of uppercase letters in the canonical syntax of locales is now consistent (as only used in the Unicode language identifier) **Part 1, Core; 3.2.1 Canonical Unicode Locale Identifiers, 3.4 Language Identifier Field Definitions**
+> * Units
+> * The text for inverse unit handling has been clarified **Part 6: Supplemental, 13 Unit Conversion**
+> * The ordering of units in a normalized unit identifier has been fixed to correspond to data ordering changes **Part 6: Supplemental, 13 Unit Conversion**
+> * The EBNF for unit identifiers is expanded for binary prefixes **Part 2: General; Section 6.2 Unit Identifiers**
+> * The new description attribute and unit systems attribute values (metric, si, other) are documented **Part 6: Supplemental, 13 Unit Conversion**
+> * Deriving gender in the unusual case of no denominator in the per compound is described **Part 2: General, Section 16.1 Deriving the Gender of Compound Units**
+> * Currency
+> * The policies for use of region (territory) names in currency names are included **ALREADY INCLUDED BELOW**
+> * Currency patterns allow for the currency symbols (¤, ¤¤, ...) at the decimal position, for formats such as "12€50", as in "12€50 pour une omelette" **Part 3: Numbers — 3.2 Special Pattern Characters**
+> * Linebreak
+> * A description is provided for using delimiter information in linebreaking **ALREADY INCLUDED BELOW**
+> * Grammatical Features
+> * The targets, scope, and locales attributes are documented **Part 2: General, Section 15 Grammatical Features**
+> * Additional grammatical case values are documented, such as abessive **Part 2: General, Section 15 Grammatical Features**
+> * Inheritance
+> * The special behavior of the 'alt' value in inheritance is described **Part 1, Core; 4.1.2 Lateral Inheritance**
+
+* **Part 2: [General](tr35-general.md#Contents) (display names &transforms, etc.)**
+ * **Section 1.1 [Locale Display Name Algorithm](tr35-general.md#locale_display_name_algorithm)**
+ * Revised to clarify that first lookup should be with locale identifier in *canonical syntax*, but if there is no match for language code, the identifier should then be converted to *canonical form* and the lookup retried.
+ * **Section 1.2 [Locale Display Name Fields](tr35-general.md#locale_display_name_fields)**
+ * Added notes on considerations for territory display names.
+ * **Section 4.1 [Tailoring Linebreak Using Delimiters](tr35-general.md#Tailor_Linebreak_With_Delimiters)**
+ * Added new section on use of delimiter data for linebreak tailoring.
+* **Part 3: [Numbers](tr35-numbers.md#Contents) (number & currency formatting)**
+ * **Section 4 [Currencies](tr35-numbers.md#Currencies):**
+ * Added notes on considerations for currency display names.
+
+Note that small changes such as typos and link fixes are not listed above.
+
+Modifications in previous versions are listed in those respective versions. Click on **Previous Version** in the header until you get to the desired version.
+
+* * *
+
+Copyright © 2001–2021 Unicode, Inc. All Rights Reserved. The Unicode Consortium makes no expressed or implied warranty of any kind, and assumes no liability for errors or omissions. No liability is assumed for incidental and consequential damages in connection with or arising out of the use of the information or programs contained or accompanying this technical report. The Unicode [Terms of Use](https://unicode.org/copyright.html) apply.
+
+Unicode and the Unicode logo are trademarks of Unicode, Inc., and are registered in some jurisdictions.
diff --git a/keyboards/dtd/ldmlKeyboard.dtd b/keyboards/dtd/ldmlKeyboard.dtd
index 7c951d0..c40eab4 100644
--- a/keyboards/dtd/ldmlKeyboard.dtd
+++ b/keyboards/dtd/ldmlKeyboard.dtd
@@ -21,7 +21,7 @@
<!ATTLIST version number CDATA #REQUIRED >
<!--@MATCH:regex/\$Revision.*\$-->
<!--@METADATA-->
-<!ATTLIST version cldrVersion CDATA #FIXED "38.1" >
+<!ATTLIST version cldrVersion CDATA #FIXED "39" >
<!--@MATCH:version-->
<!--@METADATA-->
diff --git a/keyboards/und/ccp-IN-t-k0-windows.xml b/keyboards/und/ccp-IN-t-k0-windows.xml
index fe9b2b5..c3c0665 100644
--- a/keyboards/und/ccp-IN-t-k0-windows.xml
+++ b/keyboards/und/ccp-IN-t-k0-windows.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE keyboard SYSTEM "../dtd/ldmlKeyboard.dtd">
<keyboard locale="ccp-IN-t-k0-windows">
<version platform="1.0" number="$Revision$" />
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..15fc8b5
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.unicode.cldr</groupId>
+ <artifactId>cldr-data</artifactId>
+ <version>39.0-SNAPSHOT</version>
+ <name>CLDR Top Level and Data</name>
+ <packaging>pom</packaging>
+ <licenses>
+ <license>
+ <name>Unicode-DFS-2016</name>
+ </license>
+ </licenses>
+ <properties>
+ </properties>
+
+ <modules>
+ <module>tools</module>
+ </modules>
+
+ <distributionManagement>
+ <repository>
+ <id>githubcldr</id>
+ <name>Maven@unicode-org/cldr</name>
+ <url>https://maven.pkg.github.com/unicode-org/cldr</url>
+ </repository>
+ </distributionManagement>
+</project>
diff --git a/readme.html b/readme.html
index 0f183d0..e158400 100644
--- a/readme.html
+++ b/readme.html
@@ -4,24 +4,24 @@
<head>
<meta http-equiv="Content-Type" content= "text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="en-us">
- <meta name="COPYRIGHT" content= "Copyright (c) 1991-2020 Unicode, Inc. All rights reserved.">
+ <meta name="COPYRIGHT" content= "Copyright (c) 1991-2021 Unicode, Inc. All rights reserved.">
<meta name="DESCRIPTION" content= "Readme for Unicode CLDR with version number and other information.">
<title>ReadMe for Unicode CLDR</title>
</head>
<body>
<h2>Unicode Common Locale Data Repository (CLDR)</h2>
- <h3>ReadMe for Unicode <abbr title="Common Locale Data Repository">CLDR</abbr> version 38.1</h3>
- <p>Last updated: 2020-Dec-09</p>
+ <h3>ReadMe for Unicode <abbr title="Common Locale Data Repository">CLDR</abbr> version 39</h3>
+ <p>Last updated: 2021-Mar-30</p>
- <!--<p><b>Note:</b> CLDR 38.1 is in development and not recommended for use at this stage.</p>-->
- <!--<p><b>Note:</b> This is the milestone 1 version of CLDR 38.1, intended for those wishing to do pre-release testing.
+ <!--<p><b>Note:</b> CLDR 39 is in development and not recommended for use at this stage.</p>-->
+ <!--<p><b>Note:</b> This is the milestone 1 version of CLDR 39, intended for those wishing to do pre-release testing.
It is not recommended for production use.</p>-->
- <!--<p><b>Note:</b> This is a preliminary version of CLDR 38.1, intended for those wishing to do pre-release testing.
+ <!--<p><b>Note:</b> This is a preliminary version of CLDR 39, intended for those wishing to do pre-release testing.
It is not recommended for production use.</p>-->
- <!--<p><b>Note:</b> This is a pre-release candidate version of CLDR 38.1, intended for testing.
+ <!--<p><b>Note:</b> This is a pre-release candidate version of CLDR 39, intended for testing.
It is not recommended for production use.</p>-->
- <p>This is the final release version of CLDR 38.1.</p>
+ <p>This is the final release version of CLDR 39.</p>
<p><strong>Important notes for CLDR 36 and later:</strong></p>
<ul>
@@ -43,35 +43,15 @@
<li>Information about <a href="http://cldr.unicode.org/tools">Building and running CLDR Tools</a></li>
</ul>
<p>Tools Quickstart:</p>
- <ol>
- <li>Build <code>cldr.jar</code>:<br>
- <code><b>ant -f tools/java/build.xml jar</b></code>
- </li>
- <li>List available tools:<br>
- <code><b>java -jar tools/java/cldr.jar</b></code>
- </li>
- <li>List less-than-documented tools:<br>
- <code><b>java -jar tools/java/cldr.jar -l</b></code>
- </li>
- <li>Run the XML Validator against some <code>file.xml</code>:<br>
- <code><b>java -jar tools/java/cldr.jar validate <i>../path/to/your/file.xml</i></b></code>
- </li>
- <li>Run some other tool that doesn't have a nice short alias like 'validate':<br>
- <code><b>java -jar tools/java/cldr.jar <i>org.unicode.cldr.draft.NormalizedIdentifierParser</i></b></code>
- </li>
- <li>Convert LDML to JSON data:<br>
- <code><b>java -DCLDR_DIR=<i>/path/to/cldr/data</i> -jar tools/java/cldr.jar ldml2json -r true</b></code>
- </li>
- <li>More info:<br>
- <a href="http://cldr.unicode.org/tools">CLDR Tools Website</a>
- </li>
- </ol>
+ <ul>
+ <li>See the <a href="http://cldr.unicode.org/tools">CLDR Tools Website</a></li>
+ </ul>
<p>Licenses:</p>
<ul>
<li>Usage of CLDR data and software is governed by the <a href="http://www.unicode.org/copyright.html">Unicode Terms of Use</a>,
a copy of which is included as unicode-license.txt.</li>
- <li>Some CLDR tools depend on libraries in tools/java/libs/; use of these libraries is governed by separate license agreements.
+ <li>Some CLDR tools depend on libraries in tools/cldr-code/libs/; use of these libraries is governed by separate license agreements.
<ul>
<li>Use of the ICU libraries is subject to the
<a href="https://github.com/unicode-org/icu/blob/master/icu4j/main/shared/licenses/LICENSE">ICU License</a>,
@@ -84,7 +64,7 @@
</ul>
<hr>
- <p>Copyright © 1991-2020 Unicode, Inc.<br>
+ <p>Copyright © 1991-2021 Unicode, Inc.<br>
All rights reserved.<br>
<a href="http://www.unicode.org/copyright.html">Terms of use</a></p>
</body>
diff --git a/seed/annotations/und.xml b/seed/annotations/und.xml
deleted file mode 100644
index b8c886d..0000000
--- a/seed/annotations/und.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
-For terms of use, see http://www.unicode.org/copyright.html
-Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
-
-Proper interpretation of these files requires synthesis of missing items, as per
-http://unicode.org/repos/cldr/trunk/specs/ldml/tr35-general.html#Annotations
-Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ for derived annotations.
--->
-<ldml>
- <identity>
- <version number="$Revision$"/>
- <language type="und"/>
- </identity>
-</ldml>
diff --git a/seed/annotations/und_ZZ.xml b/seed/annotations/und_ZZ.xml
deleted file mode 100644
index 1ed5710..0000000
--- a/seed/annotations/und_ZZ.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
-For terms of use, see http://www.unicode.org/copyright.html
-Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
-
-Proper interpretation of these files requires synthesis of missing items, as per
-http://unicode.org/repos/cldr/trunk/specs/ldml/tr35-general.html#Annotations
-Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ for derived annotations.
--->
-<ldml>
- <identity>
- <version number="$Revision$"/>
- <language type="und"/>
- <territory type="ZZ"/>
- </identity>
-</ldml>
diff --git a/seed/main/bgn.xml b/seed/main/bgn.xml
index f8a4dcf..0820975 100644
--- a/seed/main/bgn.xml
+++ b/seed/main/bgn.xml
@@ -303,7 +303,6 @@
<language type="ro">رومانی</language>
<language type="ro_MD">مالداوی</language>
<language type="rof">رومبویی</language>
- <language type="root">رووٹی</language>
<language type="ru">اوروسی</language>
<language type="rup">آرومانی</language>
<language type="rw">کینیارواندی</language>
diff --git a/seed/main/en_Dsrt.xml b/seed/main/en_Dsrt.xml
index a27c0e7..78c27c1 100644
--- a/seed/main/en_Dsrt.xml
+++ b/seed/main/en_Dsrt.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -740,9 +740,6 @@
<gmtFormat>𐐘𐐣𐐓 {0}</gmtFormat>
<gmtZeroFormat>𐐘𐐣𐐓</gmtZeroFormat>
<regionFormat>{0} 𐐓𐐴𐑋</regionFormat>
- <zone type="Pacific/Honolulu">
- <exemplarCity>𐐐𐐪𐑌𐐲𐑊𐐭𐑊𐐭</exemplarCity>
- </zone>
<zone type="Etc/Unknown">
<exemplarCity>𐐊𐑌𐑌𐐬𐑌</exemplarCity>
</zone>
@@ -758,6 +755,9 @@
<zone type="America/Nome">
<exemplarCity>𐐤𐐬𐑋</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity>𐐐𐐪𐑌𐐲𐑊𐐭𐑊𐐭</exemplarCity>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity>𐐖𐐪𐑌𐑅𐐻𐐲𐑌</exemplarCity>
</zone>
diff --git a/seed/main/gaa.xml b/seed/main/gaa.xml
index 00723cb..f698c50 100644
--- a/seed/main/gaa.xml
+++ b/seed/main/gaa.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -1229,12 +1229,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity draft="unconfirmed">Ŋmeŋme Ni Ekumɔ</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity draft="unconfirmed">Kurrie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity draft="unconfirmed">↑↑↑</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity draft="unconfirmed">Kurrie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity draft="unconfirmed">↑↑↑</exemplarCity>
</zone>
diff --git a/seed/main/hi_Latn.xml b/seed/main/hi_Latn.xml
index 266c4ab..1ad8037 100644
--- a/seed/main/hi_Latn.xml
+++ b/seed/main/hi_Latn.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -1235,7 +1235,7 @@
<unitPattern count="one">{0} ct</unitPattern>
<unitPattern count="other">{0} ct</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0} mg/dl</unitPattern>
<unitPattern count="other">{0} mg/dl</unitPattern>
@@ -1571,9 +1571,9 @@
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µmetres</displayName>
- <unitPattern count="one">{0} µm</unitPattern>
- <unitPattern count="other">{0} µm</unitPattern>
+ <displayName>μmetres</displayName>
+ <unitPattern count="one">{0} μm</unitPattern>
+ <unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -1685,9 +1685,9 @@
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0} µg</unitPattern>
- <unitPattern count="other">{0} µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0} μg</unitPattern>
+ <unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>tons</displayName>
@@ -2092,7 +2092,7 @@
<unitPattern count="one">{0}kt</unitPattern>
<unitPattern count="other">{0}kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dl</displayName>
<unitPattern count="one">{0}mg/dl</unitPattern>
<unitPattern count="other">{0}mg/dl</unitPattern>
@@ -2413,9 +2413,9 @@
<unitPattern count="other">{0}mm</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName>µm</displayName>
- <unitPattern count="one">{0}µm</unitPattern>
- <unitPattern count="other">{0}µm</unitPattern>
+ <displayName>μm</displayName>
+ <unitPattern count="one">{0}μm</unitPattern>
+ <unitPattern count="other">{0}μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -2523,9 +2523,9 @@
<unitPattern count="other">{0}mg</unitPattern>
</unit>
<unit type="mass-microgram">
- <displayName>µg</displayName>
- <unitPattern count="one">{0}µg</unitPattern>
- <unitPattern count="other">{0}µg</unitPattern>
+ <displayName>μg</displayName>
+ <unitPattern count="one">{0}μg</unitPattern>
+ <unitPattern count="other">{0}μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>ton</displayName>
diff --git a/seed/main/oc.xml b/seed/main/oc.xml
index fc6446e..ba89fe4 100644
--- a/seed/main/oc.xml
+++ b/seed/main/oc.xml
@@ -1737,7 +1737,7 @@
<displayName draft="unconfirmed">↑↑↑</displayName>
<unitPattern count="other" draft="unconfirmed">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName draft="unconfirmed">miligramas per decilitre</displayName>
<unitPattern count="other" draft="unconfirmed">{0} miligramas per decilitre</unitPattern>
</unit>
@@ -2572,7 +2572,7 @@
<displayName draft="unconfirmed">↑↑↑</displayName>
<unitPattern count="other" draft="unconfirmed">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName draft="unconfirmed">↑↑↑</displayName>
<unitPattern count="other" draft="unconfirmed">↑↑↑</unitPattern>
</unit>
diff --git a/seed/main/sc.xml b/seed/main/sc.xml
index 7b4fb4c..c237c01 100644
--- a/seed/main/sc.xml
+++ b/seed/main/sc.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -207,7 +207,6 @@
<language type="ro" draft="unconfirmed">rumenu</language>
<language type="ro_MD" draft="unconfirmed">moldavu</language>
<language type="rof" draft="unconfirmed">rombo</language>
- <language type="root" draft="unconfirmed">raighina</language>
<language type="ru" draft="unconfirmed">russu</language>
<language type="rw" draft="unconfirmed">kinyarwanda</language>
<language type="rwk" draft="unconfirmed">rwa</language>
@@ -7913,13 +7912,6 @@
<regionFormat type="daylight" draft="unconfirmed">Ora legale: {0}</regionFormat>
<regionFormat type="standard" draft="unconfirmed">Ora istandard: {0}</regionFormat>
<fallbackFormat draft="unconfirmed">↑↑↑</fallbackFormat>
- <zone type="Pacific/Honolulu">
- <short>
- <generic draft="unconfirmed">OIH</generic>
- <standard draft="unconfirmed">OIH</standard>
- <daylight draft="unconfirmed">OLH</daylight>
- </short>
- </zone>
<zone type="Etc/UTC">
<long>
<standard draft="unconfirmed">Tempus coordinadu universale</standard>
@@ -8042,10 +8034,10 @@
<zone type="Australia/Broken_Hill">
<exemplarCity draft="unconfirmed">↑↑↑</exemplarCity>
</zone>
- <zone type="Australia/Currie">
+ <zone type="Australia/Melbourne">
<exemplarCity draft="unconfirmed">↑↑↑</exemplarCity>
</zone>
- <zone type="Australia/Melbourne">
+ <zone type="Australia/Currie">
<exemplarCity draft="unconfirmed">↑↑↑</exemplarCity>
</zone>
<zone type="Australia/Hobart">
@@ -9080,6 +9072,13 @@
<zone type="America/Nome">
<exemplarCity draft="unconfirmed">↑↑↑</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <short>
+ <generic draft="unconfirmed">OIH</generic>
+ <standard draft="unconfirmed">OIH</standard>
+ <daylight draft="unconfirmed">OLH</daylight>
+ </short>
+ </zone>
<zone type="Pacific/Johnston">
<exemplarCity draft="unconfirmed">↑↑↑</exemplarCity>
</zone>
@@ -14883,7 +14882,7 @@
<unitPattern count="one" draft="unconfirmed">{0} caratu</unitPattern>
<unitPattern count="other" draft="unconfirmed">{0} caratos</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName draft="unconfirmed">milligrammos pro detzìlitru</displayName>
<unitPattern count="one" draft="unconfirmed">{0} milligrammu pro detzìlitru</unitPattern>
<unitPattern count="other" draft="unconfirmed">{0} milligrammos pro detzìlitru</unitPattern>
@@ -15892,7 +15891,7 @@
<unitPattern count="one" draft="unconfirmed">{0} ct</unitPattern>
<unitPattern count="other" draft="unconfirmed">{0} ct</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName draft="unconfirmed">mg/dl</displayName>
<unitPattern count="one" draft="unconfirmed">{0} mg/dl</unitPattern>
<unitPattern count="other" draft="unconfirmed">{0} mg/dl</unitPattern>
@@ -16901,7 +16900,7 @@
<unitPattern count="one" draft="unconfirmed">{0}ct</unitPattern>
<unitPattern count="other" draft="unconfirmed">{0}ct</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName draft="unconfirmed">mg/dl</displayName>
<unitPattern count="one" draft="unconfirmed">{0}mg/dl</unitPattern>
<unitPattern count="other" draft="unconfirmed">{0}mg/dl</unitPattern>
@@ -17248,8 +17247,8 @@
</unit>
<unit type="length-micrometer">
<displayName draft="unconfirmed">↑↑↑</displayName>
- <unitPattern count="one" draft="unconfirmed">{0}µm</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0}µm</unitPattern>
+ <unitPattern count="one" draft="unconfirmed">{0}μm</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0}μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName draft="unconfirmed">↑↑↑</displayName>
@@ -17372,8 +17371,8 @@
</unit>
<unit type="mass-microgram">
<displayName draft="unconfirmed">↑↑↑</displayName>
- <unitPattern count="one" draft="unconfirmed">{0}µg</unitPattern>
- <unitPattern count="other" draft="unconfirmed">{0}µg</unitPattern>
+ <unitPattern count="one" draft="unconfirmed">{0}μg</unitPattern>
+ <unitPattern count="other" draft="unconfirmed">{0}μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName draft="unconfirmed">↑↑↑</displayName>
diff --git a/seed/main/szl.xml b/seed/main/szl.xml
index 02b567e..c7ec6fe 100644
--- a/seed/main/szl.xml
+++ b/seed/main/szl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -199,7 +199,6 @@
<language type="ro" draft="unconfirmed">rumuński</language>
<language type="ro_MD" draft="unconfirmed">mołdawski</language>
<language type="rof" draft="unconfirmed">rōmbo</language>
- <language type="root" draft="unconfirmed">jynzyk rdzynny</language>
<language type="ru" draft="unconfirmed">ruski</language>
<language type="rw" draft="unconfirmed">kinya-ruanda</language>
<language type="rwk" draft="unconfirmed">rwa</language>
@@ -2196,12 +2195,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity draft="unconfirmed">Broken Hill</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity draft="unconfirmed">Currie</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity draft="unconfirmed">Melbourne</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity draft="unconfirmed">Currie</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity draft="unconfirmed">Hobart</exemplarCity>
</zone>
@@ -4268,7 +4267,7 @@
<displayName draft="unconfirmed">karaty</displayName>
<unitPattern count="other" draft="unconfirmed">{0} karata</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName draft="unconfirmed">miligramy na decyliter</displayName>
<unitPattern count="other" draft="unconfirmed">{0} miligrama na decyliter</unitPattern>
</unit>
@@ -4965,7 +4964,7 @@
<displayName draft="unconfirmed">karaty</displayName>
<unitPattern count="other" draft="unconfirmed">↑↑↑</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName draft="unconfirmed">mg/dl</displayName>
<unitPattern count="other" draft="unconfirmed">{0} mg/dl</unitPattern>
</unit>
diff --git a/seed/main/trv.xml b/seed/main/trv.xml
index 1f42894..a07b07d 100644
--- a/seed/main/trv.xml
+++ b/seed/main/trv.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -369,9 +369,6 @@
<hourFormat draft="provisional">+HH:mm;-HH:mm</hourFormat>
<gmtFormat draft="provisional">JQG{0}</gmtFormat>
<regionFormat draft="provisional">Jikan {0}</regionFormat>
- <zone type="Pacific/Honolulu">
- <exemplarCity draft="provisional">Jikan alang Honoruru</exemplarCity>
- </zone>
<zone type="Etc/Unknown">
<exemplarCity draft="provisional">Ini klayi ka Jikan hini</exemplarCity>
</zone>
@@ -384,6 +381,9 @@
<zone type="America/Sao_Paulo">
<exemplarCity draft="provisional">Jikan alang Snpaurow</exemplarCity>
</zone>
+ <zone type="Pacific/Honolulu">
+ <exemplarCity draft="provisional">Jikan alang Honoruru</exemplarCity>
+ </zone>
<zone type="America/Anchorage">
<exemplarCity draft="provisional">Jikan alang Ankriji</exemplarCity>
</zone>
diff --git a/seed/main/trw.xml b/seed/main/trw.xml
index e923d08..d4a028d 100644
--- a/seed/main/trw.xml
+++ b/seed/main/trw.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
+<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -1395,12 +1395,12 @@
<zone type="Australia/Broken_Hill">
<exemplarCity draft="unconfirmed">بروکن ہِل</exemplarCity>
</zone>
- <zone type="Australia/Currie">
- <exemplarCity draft="unconfirmed">کیوری</exemplarCity>
- </zone>
<zone type="Australia/Melbourne">
<exemplarCity draft="unconfirmed">ملبورن</exemplarCity>
</zone>
+ <zone type="Australia/Currie">
+ <exemplarCity draft="unconfirmed">کیوری</exemplarCity>
+ </zone>
<zone type="Australia/Hobart">
<exemplarCity draft="unconfirmed">ہوبارٹ</exemplarCity>
</zone>
@@ -4564,7 +4564,7 @@
<displayName draft="unconfirmed">قیراط</displayName>
<unitPattern count="other" draft="unconfirmed">{0} قیراط</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName draft="unconfirmed">ملی گرام فی ڈیسی لیٹر</displayName>
<unitPattern count="other" draft="unconfirmed">{0} ملی گرام فی ڈیسی لیٹر</unitPattern>
</unit>
@@ -5415,7 +5415,7 @@
<displayName draft="unconfirmed">قیراط</displayName>
<unitPattern count="other" draft="unconfirmed">{0} kt</unitPattern>
</unit>
- <unit type="concentr-milligram-per-deciliter">
+ <unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName draft="unconfirmed">↑↑↑</displayName>
<unitPattern count="other" draft="unconfirmed">↑↑↑</unitPattern>
</unit>
@@ -5694,8 +5694,8 @@
<unitPattern count="other" draft="unconfirmed">{0} ملیمیٹر</unitPattern>
</unit>
<unit type="length-micrometer">
- <displayName draft="unconfirmed">µm</displayName>
- <unitPattern count="other" draft="unconfirmed">{0} µm</unitPattern>
+ <displayName draft="unconfirmed">μm</displayName>
+ <unitPattern count="other" draft="unconfirmed">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName draft="unconfirmed">nm</displayName>
diff --git a/seed/main/und.xml b/seed/main/und.xml
deleted file mode 100644
index 1fc695c..0000000
--- a/seed/main/und.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
-For terms of use, see http://www.unicode.org/copyright.html
-Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
-
-Proper interpretation of these files requires synthesis of missing items, as per
-http://unicode.org/repos/cldr/trunk/specs/ldml/tr35-general.html#Annotations
-Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ for derived annotations.
--->
-<ldml>
- <identity>
- <version number="$Revision$"/>
- <language type="und"/>
- </identity>
- <localeDisplayNames>
- <languages>
- <language type="und">Name of your language as written in your language</language>
- </languages>
- </localeDisplayNames>
- <characters>
- <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]</exemplarCharacters>
- <exemplarCharacters type="auxiliary">[]</exemplarCharacters>
- <exemplarCharacters type="index">[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]</exemplarCharacters>
- <!-- Sandbox locale. DO NOT MODIFY.
- This file is listed as 'scratch' in SpecialLocales.txt. If your tool modified this file, it is in error.
- -->
- </characters>
-</ldml>
diff --git a/seed/main/und_ZZ.xml b/seed/main/und_ZZ.xml
deleted file mode 100644
index 1fe3136..0000000
--- a/seed/main/und_ZZ.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
-<!-- Copyright © 1991-2020 Unicode, Inc.
-For terms of use, see http://www.unicode.org/copyright.html
-Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
-
-Proper interpretation of these files requires synthesis of missing items, as per
-http://unicode.org/repos/cldr/trunk/specs/ldml/tr35-general.html#Annotations
-Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ for derived annotations.
--->
-<ldml>
- <identity>
- <version number="$Revision$"/>
- <language type="und"/>
- <territory type="ZZ"/>
- <!-- Sandbox locale. DO NOT MODIFY.
- This file is listed as 'scratch' in SpecialLocales.txt. If your tool modified this file, it is in error.
- -->
- </identity>
-</ldml>
diff --git a/seed/rbnf/vec.xml b/seed/rbnf/vec.xml
new file mode 100644
index 0000000..23bbd39
--- /dev/null
+++ b/seed/rbnf/vec.xml
@@ -0,0 +1,423 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
+<!--
+Copyright © 1991-2021 Unicode, Inc.
+CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
+For terms of use, see http://www.unicode.org/copyright.html
+-->
+<ldml>
+ <identity>
+ <version number="$Revision$"/>
+ <language type="vec"/>
+ </identity>
+ <rbnf>
+ <rulesetGrouping type="SpelloutRules">
+ <ruleset type="spellout-numbering-year">
+ <rbnfrule value="x.x">=0.0=;</rbnfrule>
+ <rbnfrule value="0">=%spellout-numbering=;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-numbering">
+ <rbnfrule value="-x">manca →→;</rbnfrule>
+ <rbnfrule value="x.x">←← vìrgoła →→;</rbnfrule>
+ <rbnfrule value="0">zero;</rbnfrule>
+ <rbnfrule value="1">uno;</rbnfrule>
+ <rbnfrule value="2">do;</rbnfrule>
+ <rbnfrule value="3">tre;</rbnfrule>
+ <rbnfrule value="4">cuatro;</rbnfrule>
+ <rbnfrule value="5">sincue;</rbnfrule>
+ <rbnfrule value="6">sie;</rbnfrule>
+ <rbnfrule value="7">sete;</rbnfrule>
+ <rbnfrule value="8">oto;</rbnfrule>
+ <rbnfrule value="9">nove;</rbnfrule>
+ <rbnfrule value="10">dieze;</rbnfrule>
+ <rbnfrule value="11">ùndeze;</rbnfrule>
+ <rbnfrule value="12">dódeze;</rbnfrule>
+ <rbnfrule value="13">trèdeze;</rbnfrule>
+ <rbnfrule value="14">cuatòrdeze;</rbnfrule>
+ <rbnfrule value="15">cuìndeze;</rbnfrule>
+ <rbnfrule value="16">sédeze;</rbnfrule>
+ <rbnfrule value="17">disete;</rbnfrule>
+ <rbnfrule value="18">dizdoto;</rbnfrule>
+ <rbnfrule value="19">diznove;</rbnfrule>
+ <rbnfrule value="20">vint→%%msco-with-i→;</rbnfrule>
+ <rbnfrule value="30">trent→%%msco-with-a→;</rbnfrule>
+ <rbnfrule value="40">cuarant→%%msco-with-a→;</rbnfrule>
+ <rbnfrule value="50">sincuant→%%msco-with-a→;</rbnfrule>
+ <rbnfrule value="60">sesant→%%msco-with-a→;</rbnfrule>
+ <rbnfrule value="70">setant→%%msco-with-a→;</rbnfrule>
+ <rbnfrule value="80">otant→%%msco-with-a→;</rbnfrule>
+ <rbnfrule value="90">novant→%%msco-with-a→;</rbnfrule>
+ <rbnfrule value="100">sent→%%msco-with-o→;</rbnfrule>
+ <rbnfrule value="200">←←zent→%%msco-with-o→;</rbnfrule>
+ <rbnfrule value="400">←←sent→%%msco-with-o→;</rbnfrule>
+ <rbnfrule value="1000">miłe[→→];</rbnfrule>
+ <rbnfrule value="2000">←%%msc-no-final←miła[→→];</rbnfrule>
+ <rbnfrule value="1000000">un miłion[ →→];</rbnfrule>
+ <rbnfrule value="2000000">←%spellout-cardinal-masculine← miłioni[ →→];</rbnfrule>
+ <rbnfrule value="1000000000">un miliardo[ →→];</rbnfrule>
+ <rbnfrule value="2000000000">←%spellout-cardinal-masculine← miłiardi[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000">un bilione[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000">←%spellout-cardinal-masculine← biłioni[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000">un biliardo[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000000">←%spellout-cardinal-masculine← biłiardi[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
+ </ruleset>
+ <ruleset type="msco-with-i" access="private">
+ <rbnfrule value="0">i;</rbnfrule>
+ <rbnfrule value="1">iun;</rbnfrule>
+ <rbnfrule value="2">idó;</rbnfrule>
+ <rbnfrule value="3">itrè;</rbnfrule>
+ <rbnfrule value="4">i=%spellout-numbering=;</rbnfrule>
+ </ruleset>
+ <ruleset type="msco-with-a" access="private">
+ <rbnfrule value="0">a;</rbnfrule>
+ <rbnfrule value="1">aun;</rbnfrule>
+ <rbnfrule value="2">adó;</rbnfrule>
+ <rbnfrule value="3">atrè;</rbnfrule>
+ <rbnfrule value="4">a=%spellout-numbering=;</rbnfrule>
+ </ruleset>
+ <ruleset type="msco-with-o" access="private">
+ <rbnfrule value="0">o;</rbnfrule>
+ <rbnfrule value="1">oun;</rbnfrule>
+ <rbnfrule value="2">odó;</rbnfrule>
+ <rbnfrule value="3">otrè;</rbnfrule>
+ <rbnfrule value="4">o=%spellout-numbering=;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-cardinal-masculine">
+ <rbnfrule value="-x">manca →→;</rbnfrule>
+ <rbnfrule value="x.x">←← vìrgoła →→;</rbnfrule>
+ <rbnfrule value="0">zero;</rbnfrule>
+ <rbnfrule value="1">un;</rbnfrule>
+ <rbnfrule value="2">du;</rbnfrule>
+ <rbnfrule value="3">tri;</rbnfrule>
+ <rbnfrule value="4">=%spellout-numbering=;</rbnfrule>
+ <rbnfrule value="20">vint→%%msc-with-i→;</rbnfrule>
+ <rbnfrule value="30">trent→%%msc-with-a→;</rbnfrule>
+ <rbnfrule value="40">cuarant→%%msc-with-a→;</rbnfrule>
+ <rbnfrule value="50">sincuant→%%msc-with-a→;</rbnfrule>
+ <rbnfrule value="60">sesant→%%msc-with-a→;</rbnfrule>
+ <rbnfrule value="70">setant→%%msc-with-a→;</rbnfrule>
+ <rbnfrule value="80">otant→%%msc-with-a→;</rbnfrule>
+ <rbnfrule value="90">novant→%%msc-with-a→;</rbnfrule>
+ <rbnfrule value="100">sent→%%msc-with-o→;</rbnfrule>
+ <rbnfrule value="200">←←zent→%%msc-with-o→;</rbnfrule>
+ <rbnfrule value="400">←←sent→%%msc-with-o→;</rbnfrule>
+ <rbnfrule value="1000">miłe[→→];</rbnfrule>
+ <rbnfrule value="2000">←%%msc-no-final←miła[→→];</rbnfrule>
+ <rbnfrule value="1000000">un miłion[ →→];</rbnfrule>
+ <rbnfrule value="2000000">←%spellout-cardinal-masculine← miłioni[ →→];</rbnfrule>
+ <rbnfrule value="1000000000">un miliardo[ →→];</rbnfrule>
+ <rbnfrule value="2000000000">←%spellout-cardinal-masculine← miłiardi[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000">un bilione[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000">←%spellout-cardinal-masculine← biłioni[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000">un biliardo[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000000">←%spellout-cardinal-masculine← biłiardi[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
+ </ruleset>
+ <ruleset type="msc-with-i" access="private">
+ <rbnfrule value="0">i;</rbnfrule>
+ <rbnfrule value="1">iun;</rbnfrule>
+ <rbnfrule value="2">idù;</rbnfrule>
+ <rbnfrule value="3">itrì;</rbnfrule>
+ <rbnfrule value="4">=%%msco-with-i=;</rbnfrule>
+ </ruleset>
+ <ruleset type="msc-with-a" access="private">
+ <rbnfrule value="0">a;</rbnfrule>
+ <rbnfrule value="1">aun;</rbnfrule>
+ <rbnfrule value="2">adù;</rbnfrule>
+ <rbnfrule value="3">atrì;</rbnfrule>
+ <rbnfrule value="4">=%%msco-with-a=;</rbnfrule>
+ </ruleset>
+ <ruleset type="msc-with-o" access="private">
+ <rbnfrule value="0">o;</rbnfrule>
+ <rbnfrule value="1">oun;</rbnfrule>
+ <rbnfrule value="2">odù;</rbnfrule>
+ <rbnfrule value="3">otrì;</rbnfrule>
+ <rbnfrule value="4">o=%spellout-numbering=;</rbnfrule>
+ </ruleset>
+ <ruleset type="msc-no-final" access="private">
+ <rbnfrule value="0">=%spellout-cardinal-masculine=;</rbnfrule>
+ <rbnfrule value="20">vint→%%msc-with-i-nofinal→;</rbnfrule>
+ <rbnfrule value="30">trent→%%msc-with-a-nofinal→;</rbnfrule>
+ <rbnfrule value="40">cuarant→%%msc-with-a-nofinal→;</rbnfrule>
+ <rbnfrule value="50">sincuant→%%msc-with-a-nofinal→;</rbnfrule>
+ <rbnfrule value="60">sesant→%%msc-with-a-nofinal→;</rbnfrule>
+ <rbnfrule value="70">setant→%%msc-with-a-nofinal→;</rbnfrule>
+ <rbnfrule value="80">otant→%%msc-with-a-nofinal→;</rbnfrule>
+ <rbnfrule value="90">novant→%%msc-with-a-nofinal→;</rbnfrule>
+ <rbnfrule value="100">sent→%%msc-with-o-nofinal→;</rbnfrule>
+ <rbnfrule value="200">←←zent→%%msc-with-o-nofinal→;</rbnfrule>
+ <rbnfrule value="400">←←sent→%%msc-with-o-nofinal→;</rbnfrule>
+ </ruleset>
+ <ruleset type="msc-with-i-nofinal" access="private">
+ <rbnfrule value="0">=%%msc-with-i=;</rbnfrule>
+ <rbnfrule value="1">iun;</rbnfrule>
+ <rbnfrule value="2">idù;</rbnfrule>
+ <rbnfrule value="3">itrì;</rbnfrule>
+ <rbnfrule value="4">=%%msc-with-i=;</rbnfrule>
+ </ruleset>
+ <ruleset type="msc-with-a-nofinal" access="private">
+ <rbnfrule value="0">=%%msc-with-a=;</rbnfrule>
+ <rbnfrule value="1">aun;</rbnfrule>
+ <rbnfrule value="2">adù;</rbnfrule>
+ <rbnfrule value="3">atrì;</rbnfrule>
+ <rbnfrule value="4">=%%msc-with-a=;</rbnfrule>
+ </ruleset>
+ <ruleset type="msc-with-o-nofinal" access="private">
+ <rbnfrule value="0">=%%msc-with-o=;</rbnfrule>
+ <rbnfrule value="1">oun;</rbnfrule>
+ <rbnfrule value="2">odù;</rbnfrule>
+ <rbnfrule value="3">otrì;</rbnfrule>
+ <rbnfrule value="4">=%%msc-with-o=;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-cardinal-feminine">
+ <rbnfrule value="-x">manca →→;</rbnfrule>
+ <rbnfrule value="x.x">←← vìrgoła →→;</rbnfrule>
+ <rbnfrule value="0">zero;</rbnfrule>
+ <rbnfrule value="1">una;</rbnfrule>
+ <rbnfrule value="2">=%spellout-numbering=;</rbnfrule>
+ <rbnfrule value="20">vent→%%fem-with-i→;</rbnfrule>
+ <rbnfrule value="30">trent→%%fem-with-a→;</rbnfrule>
+ <rbnfrule value="40">cuarant→%%fem-with-a→;</rbnfrule>
+ <rbnfrule value="50">sincuant→%%fem-with-a→;</rbnfrule>
+ <rbnfrule value="60">sesant→%%fem-with-a→;</rbnfrule>
+ <rbnfrule value="70">settant→%%fem-with-a→;</rbnfrule>
+ <rbnfrule value="80">otant→%%fem-with-a→;</rbnfrule>
+ <rbnfrule value="90">novant→%%fem-with-a→;</rbnfrule>
+ <rbnfrule value="100">sent→%%fem-with-o→;</rbnfrule>
+ <rbnfrule value="200">←←zent→%%fem-with-o→;</rbnfrule>
+ <rbnfrule value="400">←←sent→%%fem-with-o→;</rbnfrule>
+ <rbnfrule value="1000">miłe[→→];</rbnfrule>
+ <rbnfrule value="2000">←%%msc-no-final←miła[→→];</rbnfrule>
+ <rbnfrule value="1000000">un miłion[ →→];</rbnfrule>
+ <rbnfrule value="2000000">←%spellout-cardinal-masculine← miłioni[ →→];</rbnfrule>
+ <rbnfrule value="1000000000">un miliardo[ →→];</rbnfrule>
+ <rbnfrule value="2000000000">←%spellout-cardinal-masculine← miłiardi[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000">un bilione[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000">←%spellout-cardinal-masculine← biłioni[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000">un biliardo[ →→];</rbnfrule>
+ <rbnfrule value="2000000000000000">←%spellout-cardinal-masculine← biłiardi[ →→];</rbnfrule>
+ <rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
+ </ruleset>
+ <ruleset type="fem-with-i" access="private">
+ <rbnfrule value="0">i;</rbnfrule>
+ <rbnfrule value="1">iuna;</rbnfrule>
+ <rbnfrule value="2">idó;</rbnfrule>
+ <rbnfrule value="3">itrè;</rbnfrule>
+ <rbnfrule value="4">=%%msco-with-i=;</rbnfrule>
+ </ruleset>
+ <ruleset type="fem-with-a" access="private">
+ <rbnfrule value="0">a;</rbnfrule>
+ <rbnfrule value="1">auna;</rbnfrule>
+ <rbnfrule value="2">adó;</rbnfrule>
+ <rbnfrule value="3">atrè;</rbnfrule>
+ <rbnfrule value="4">=%%msco-with-a=;</rbnfrule>
+ </ruleset>
+ <ruleset type="fem-with-o" access="private">
+ <rbnfrule value="0">o;</rbnfrule>
+ <rbnfrule value="1">ouna;</rbnfrule>
+ <rbnfrule value="2">odó;</rbnfrule>
+ <rbnfrule value="3">otrè;</rbnfrule>
+ <rbnfrule value="4">=%%msco-with-o=;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-ordinal-masculine">
+ <rbnfrule value="-x">manca →→;</rbnfrule>
+ <rbnfrule value="x.x">=#,##0.#=;</rbnfrule>
+ <rbnfrule value="0">zerèzemo;</rbnfrule>
+ <rbnfrule value="1">primo;</rbnfrule>
+ <rbnfrule value="2">segondo;</rbnfrule>
+ <rbnfrule value="3">terso;</rbnfrule>
+ <rbnfrule value="4">cuarto;</rbnfrule>
+ <rbnfrule value="5">cuinto;</rbnfrule>
+ <rbnfrule value="6">sesto;</rbnfrule>
+ <rbnfrule value="7">sètemo;</rbnfrule>
+ <rbnfrule value="8">otavo;</rbnfrule>
+ <rbnfrule value="9">nono;</rbnfrule>
+ <rbnfrule value="10">dèzemo;</rbnfrule>
+ <rbnfrule value="11">undezèzemo;</rbnfrule>
+ <rbnfrule value="12">dodezèzemo;</rbnfrule>
+ <rbnfrule value="13">tredezèzemo;</rbnfrule>
+ <rbnfrule value="14">cuatordezèzemo;</rbnfrule>
+ <rbnfrule value="15">cuindezèzemo;</rbnfrule>
+ <rbnfrule value="16">sedezèzemo;</rbnfrule>
+ <rbnfrule value="17">disetèzemo;</rbnfrule>
+ <rbnfrule value="18">dizdotèzemo;</rbnfrule>
+ <rbnfrule value="19">diznovèzemo;</rbnfrule>
+ <rbnfrule value="20">vent→%%ordinal-ezemo-with-i→;</rbnfrule>
+ <rbnfrule value="30">trent→%%ordinal-ezemo-with-a→;</rbnfrule>
+ <rbnfrule value="40">cuarant→%%ordinal-ezemo-with-a→;</rbnfrule>
+ <rbnfrule value="50">sincuant→%%ordinal-ezemo-with-a→;</rbnfrule>
+ <rbnfrule value="60">sesant→%%ordinal-ezemo-with-a→;</rbnfrule>
+ <rbnfrule value="70">setant→%%ordinal-ezemo-with-a→;</rbnfrule>
+ <rbnfrule value="80">otant→%%ordinal-ezemo-with-a→;</rbnfrule>
+ <rbnfrule value="90">novant→%%ordinal-ezemo-with-a→;</rbnfrule>
+ <rbnfrule value="100">sent→%%ordinal-ezemo-with-o→;</rbnfrule>
+ <rbnfrule value="200">←%spellout-cardinal-masculine←zent→%%ordinal-ezemo-with-o→;</rbnfrule>
+ <rbnfrule value="400">←%spellout-cardinal-masculine←sent→%%ordinal-ezemo-with-o→;</rbnfrule>
+ <rbnfrule value="1000">miłe→%%ordinal-ezemo→;</rbnfrule>
+ <rbnfrule value="2000">←%spellout-cardinal-masculine←miłe→%%ordinal-ezemo→;</rbnfrule>
+ <rbnfrule value="2001">←%spellout-cardinal-masculine←miła→%%ordinal-ezemo→;</rbnfrule>
+ <rbnfrule value="1000000">miłion→%%ordinal-ezemo→;</rbnfrule>
+ <rbnfrule value="2000000">←%spellout-cardinal-masculine←miłion→%%ordinal-ezemo→;</rbnfrule>
+ <rbnfrule value="1000000000">miłiard→%%ordinal-ezemo-with-o→;</rbnfrule>
+ <rbnfrule value="2000000000">←%spellout-cardinal-masculine←miłiard→%%ordinal-ezemo-with-o→;</rbnfrule>
+ <rbnfrule value="1000000000000">biłion→%%ordinal-ezemo→;</rbnfrule>
+ <rbnfrule value="2000000000000">←%spellout-cardinal-masculine←biłion→%%ordinal-ezemo→;</rbnfrule>
+ <rbnfrule value="1000000000000000">biłiard→%%ordinal-ezemo-with-o→;</rbnfrule>
+ <rbnfrule value="2000000000000000">←%spellout-cardinal-masculine←biłiard→%%ordinal-ezemo-with-o→;</rbnfrule>
+ <rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
+ </ruleset>
+ <ruleset type="ordinal-ezemo" access="private">
+ <rbnfrule value="0">èzemo;</rbnfrule>
+ <rbnfrule value="1">unèzemo;</rbnfrule>
+ <rbnfrule value="2">duèzemo;</rbnfrule>
+ <rbnfrule value="3">treèzemo;</rbnfrule>
+ <rbnfrule value="4">cuatrèzemo;</rbnfrule>
+ <rbnfrule value="5">sincuèzemo;</rbnfrule>
+ <rbnfrule value="6">sièzemo;</rbnfrule>
+ <rbnfrule value="7">setèzemo;</rbnfrule>
+ <rbnfrule value="8">otèzemo;</rbnfrule>
+ <rbnfrule value="9">novèzemo;</rbnfrule>
+ <rbnfrule value="10">=%spellout-ordinal-masculine=;</rbnfrule>
+ </ruleset>
+ <ruleset type="ordinal-ezemo-with-i" access="private">
+ <rbnfrule value="0">èzemo;</rbnfrule>
+ <rbnfrule value="1">iunèzemo;</rbnfrule>
+ <rbnfrule value="2">iduèzemo;</rbnfrule>
+ <rbnfrule value="3">itreèzemo;</rbnfrule>
+ <rbnfrule value="4">icuatrèzemo;</rbnfrule>
+ <rbnfrule value="5">isincuèzemo;</rbnfrule>
+ <rbnfrule value="6">isièzemo;</rbnfrule>
+ <rbnfrule value="7">isetèzemo;</rbnfrule>
+ <rbnfrule value="8">iotèzemo;</rbnfrule>
+ <rbnfrule value="9">inovèzemo;</rbnfrule>
+ <rbnfrule value="10">=%spellout-ordinal-masculine=;</rbnfrule>
+ </ruleset>
+ <ruleset type="ordinal-ezemo-with-a" access="private">
+ <rbnfrule value="0">èzemo;</rbnfrule>
+ <rbnfrule value="1">aunèzemo;</rbnfrule>
+ <rbnfrule value="2">aduèzemo;</rbnfrule>
+ <rbnfrule value="3">atreèzemo;</rbnfrule>
+ <rbnfrule value="4">acuatrèzemo;</rbnfrule>
+ <rbnfrule value="5">asincuèzemo;</rbnfrule>
+ <rbnfrule value="6">asièzemo;</rbnfrule>
+ <rbnfrule value="7">asetèzemo;</rbnfrule>
+ <rbnfrule value="8">aotèzemo;</rbnfrule>
+ <rbnfrule value="9">anovèzemo;</rbnfrule>
+ <rbnfrule value="10">=%spellout-ordinal-masculine=;</rbnfrule>
+ </ruleset>
+ <ruleset type="ordinal-ezemo-with-o" access="private">
+ <rbnfrule value="0">èzemo;</rbnfrule>
+ <rbnfrule value="1">ounèzemo;</rbnfrule>
+ <rbnfrule value="2">oduèzemo;</rbnfrule>
+ <rbnfrule value="3">otreèzemo;</rbnfrule>
+ <rbnfrule value="4">ocuatrèzemo;</rbnfrule>
+ <rbnfrule value="5">osincuèzemo;</rbnfrule>
+ <rbnfrule value="6">osièzemo;</rbnfrule>
+ <rbnfrule value="7">osetèzemo;</rbnfrule>
+ <rbnfrule value="8">ootèzemo;</rbnfrule>
+ <rbnfrule value="9">onovèzemo;</rbnfrule>
+ <rbnfrule value="10">o=%spellout-ordinal-masculine=;</rbnfrule>
+ </ruleset>
+ <ruleset type="spellout-ordinal-feminine">
+ <rbnfrule value="-x">manca →→;</rbnfrule>
+ <rbnfrule value="x.x">=#,##0.#=;</rbnfrule>
+ <rbnfrule value="0">zerèzema;</rbnfrule>
+ <rbnfrule value="1">prima;</rbnfrule>
+ <rbnfrule value="2">segonda;</rbnfrule>
+ <rbnfrule value="3">tersa;</rbnfrule>
+ <rbnfrule value="4">cuarta;</rbnfrule>
+ <rbnfrule value="5">cuinta;</rbnfrule>
+ <rbnfrule value="6">sesta;</rbnfrule>
+ <rbnfrule value="7">sètema;</rbnfrule>
+ <rbnfrule value="8">otava;</rbnfrule>
+ <rbnfrule value="9">nona;</rbnfrule>
+ <rbnfrule value="10">dèzema;</rbnfrule>
+ <rbnfrule value="11">undezèzema;</rbnfrule>
+ <rbnfrule value="12">dodezèzema;</rbnfrule>
+ <rbnfrule value="13">tredezèzema;</rbnfrule>
+ <rbnfrule value="14">cuatordezèzema;</rbnfrule>
+ <rbnfrule value="15">cuindezèzema;</rbnfrule>
+ <rbnfrule value="16">sedezèzema;</rbnfrule>
+ <rbnfrule value="17">disetèzema;</rbnfrule>
+ <rbnfrule value="18">dizdotèzema;</rbnfrule>
+ <rbnfrule value="19">diznovèzema;</rbnfrule>
+ <rbnfrule value="20">vent→%%ordinal-ezema-with-i→;</rbnfrule>
+ <rbnfrule value="30">trent→%%ordinal-ezema-with-a→;</rbnfrule>
+ <rbnfrule value="40">cuarant→%%ordinal-ezema-with-a→;</rbnfrule>
+ <rbnfrule value="50">sincuant→%%ordinal-ezema-with-a→;</rbnfrule>
+ <rbnfrule value="60">sesant→%%ordinal-ezema-with-a→;</rbnfrule>
+ <rbnfrule value="70">setant→%%ordinal-ezema-with-a→;</rbnfrule>
+ <rbnfrule value="80">otant→%%ordinal-ezema-with-a→;</rbnfrule>
+ <rbnfrule value="90">novant→%%ordinal-ezema-with-a→;</rbnfrule>
+ <rbnfrule value="100">sent→%%ordinal-ezema-with-o→;</rbnfrule>
+ <rbnfrule value="200">←%spellout-cardinal-feminine←zent→%%ordinal-ezema-with-o→;</rbnfrule>
+ <rbnfrule value="400">←%spellout-cardinal-feminine←sent→%%ordinal-ezema-with-o→;</rbnfrule>
+ <rbnfrule value="1000">miłe→%%ordinal-ezema→;</rbnfrule>
+ <rbnfrule value="2000">←%spellout-cardinal-feminine←miłe→%%ordinal-ezema→;</rbnfrule>
+ <rbnfrule value="2001">←%spellout-cardinal-feminine←miła→%%ordinal-ezema→;</rbnfrule>
+ <rbnfrule value="1000000">miłion→%%ordinal-ezema→;</rbnfrule>
+ <rbnfrule value="2000000">←%spellout-cardinal-feminine←miłion→%%ordinal-ezema→;</rbnfrule>
+ <rbnfrule value="1000000000">miłiard→%%ordinal-ezema-with-o→;</rbnfrule>
+ <rbnfrule value="2000000000">←%spellout-cardinal-feminine←miłiard→%%ordinal-ezema-with-o→;</rbnfrule>
+ <rbnfrule value="1000000000000">biłione→%%ordinal-ezema→;</rbnfrule>
+ <rbnfrule value="2000000000000">←%spellout-cardinal-feminine←biłion→%%ordinal-ezema→;</rbnfrule>
+ <rbnfrule value="1000000000000000">biłiard→%%ordinal-ezema-with-o→;</rbnfrule>
+ <rbnfrule value="2000000000000000">←%spellout-cardinal-feminine←biłiard→%%ordinal-ezema-with-o→;</rbnfrule>
+ <rbnfrule value="1000000000000000000">=#,##0=;</rbnfrule>
+ </ruleset>
+ <ruleset type="ordinal-ezema" access="private">
+ <rbnfrule value="0">èzema;</rbnfrule>
+ <rbnfrule value="1">unèzema;</rbnfrule>
+ <rbnfrule value="2">doèzema;</rbnfrule>
+ <rbnfrule value="3">treèzema;</rbnfrule>
+ <rbnfrule value="4">cuatrèzema;</rbnfrule>
+ <rbnfrule value="5">sincuèzema;</rbnfrule>
+ <rbnfrule value="6">sièzema;</rbnfrule>
+ <rbnfrule value="7">setèzema;</rbnfrule>
+ <rbnfrule value="8">otèzema;</rbnfrule>
+ <rbnfrule value="9">novèzema;</rbnfrule>
+ <rbnfrule value="10">=%spellout-ordinal-feminine=;</rbnfrule>
+ </ruleset>
+ <ruleset type="ordinal-ezema-with-i" access="private">
+ <rbnfrule value="0">èzema;</rbnfrule>
+ <rbnfrule value="1">iunèzema;</rbnfrule>
+ <rbnfrule value="2">idoèzema;</rbnfrule>
+ <rbnfrule value="3">itreèzema;</rbnfrule>
+ <rbnfrule value="4">icuatrèzema;</rbnfrule>
+ <rbnfrule value="5">isincuèzema;</rbnfrule>
+ <rbnfrule value="6">isièzema;</rbnfrule>
+ <rbnfrule value="7">isetèzema;</rbnfrule>
+ <rbnfrule value="8">iotèzema;</rbnfrule>
+ <rbnfrule value="9">inovèzema;</rbnfrule>
+ <rbnfrule value="10">=%spellout-ordinal-feminine=;</rbnfrule>
+ </ruleset>
+ <ruleset type="ordinal-ezema-with-a" access="private">
+ <rbnfrule value="0">èzema;</rbnfrule>
+ <rbnfrule value="1">aunèzema;</rbnfrule>
+ <rbnfrule value="2">adoèzema;</rbnfrule>
+ <rbnfrule value="3">atreèzema;</rbnfrule>
+ <rbnfrule value="4">acuatrèzema;</rbnfrule>
+ <rbnfrule value="5">asincuèzema;</rbnfrule>
+ <rbnfrule value="6">asièzema;</rbnfrule>
+ <rbnfrule value="7">asetèzema;</rbnfrule>
+ <rbnfrule value="8">aotèzema;</rbnfrule>
+ <rbnfrule value="9">anovèzema;</rbnfrule>
+ <rbnfrule value="10">=%spellout-ordinal-feminine=;</rbnfrule>
+ </ruleset>
+ <ruleset type="ordinal-ezema-with-o" access="private">
+ <rbnfrule value="0">èzema;</rbnfrule>
+ <rbnfrule value="1">ounèzema;</rbnfrule>
+ <rbnfrule value="2">odoèzema;</rbnfrule>
+ <rbnfrule value="3">otreèzema;</rbnfrule>
+ <rbnfrule value="4">ocuatrèzema;</rbnfrule>
+ <rbnfrule value="5">osincuèzema;</rbnfrule>
+ <rbnfrule value="6">osièzema;</rbnfrule>
+ <rbnfrule value="7">osetèzema;</rbnfrule>
+ <rbnfrule value="8">ootèzema;</rbnfrule>
+ <rbnfrule value="9">onovèzema;</rbnfrule>
+ <rbnfrule value="10">o=%spellout-ordinal-feminine=;</rbnfrule>
+ </ruleset>
+ </rulesetGrouping>
+ </rbnf>
+</ldml>
\ No newline at end of file
diff --git a/tools/cldr-unittest/.settings/org.eclipse.core.resources.prefs b/tools/.settings/org.eclipse.core.resources.prefs
similarity index 100%
rename from tools/cldr-unittest/.settings/org.eclipse.core.resources.prefs
rename to tools/.settings/org.eclipse.core.resources.prefs
diff --git a/tools/.settings/org.eclipse.m2e.core.prefs b/tools/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/tools/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/tools/build.xml b/tools/build.xml
deleted file mode 100644
index 3b81928..0000000
--- a/tools/build.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-<project name="CLDR Distribution" default="all" basedir=".">
- <target name="init">
- <tstamp/>
- <property name="version" value="38.1"/>
- <property name="dist.dir" value="dist"/>
- <property name="dist.conf.dir" value="dist.conf"/>
- <property name="excludes.file" value="${dist.conf.dir}/distExcludes.txt"/>
- <property name="includes.common.file" value="${dist.conf.dir}/includes-common.txt"/>
- <property name="includes.tools.file" value="${dist.conf.dir}/includes-tools.txt"/>
- <property name="includes.keyboards.file" value="${dist.conf.dir}/includes-keyboards.txt"/>
- </target>
-
- <target name="all" depends="dist-common,dist-tools,dist-keyboards"/>
-
- <target name="clean" depends="init" description="Clean out the distribution directory">
- <delete dir="${dist.dir}"/>
- </target>
-
- <target name="dist-excludes" depends="init">
- <exec dir="scripts" executable="bash">
- <arg line="distUpdateExcludes.sh"/>
- </exec>
- </target>
-
- <target name="dist-dir">
- <mkdir dir="${dist.dir}"/>
- </target>
-
- <target name="dist-common" depends="init,dist-dir,dist-excludes">
- <zip destfile="${dist.dir}/core.zip"
- compress="yes">
- <fileset
- excludesfile="${excludes.file}"
- dir=".."
- includesfile="${includes.common.file}"
- />
- </zip>
- <symlink link="${dist.dir}/cldr-common-${version}.zip" resource="core.zip"/>
- </target>
-
- <target name="dist-tools" depends="init,dist-dir,dist-excludes">
- <zip destfile="${dist.dir}/tools.zip"
- compress="yes">
- <fileset
- excludesfile="${excludes.file}"
- dir=".."
- includesfile="${includes.tools.file}"
- />
- </zip>
- <symlink link="${dist.dir}/cldr-tools-${version}.zip" resource="tools.zip"/>
- </target>
- <target name="dist-keyboards" depends="init,dist-dir,dist-excludes">
- <zip destfile="${dist.dir}/keyboards.zip"
- compress="yes">
- <fileset
- excludesfile="${excludes.file}"
- dir=".."
- includesfile="${includes.keyboards.file}"
- />
- </zip>
- <symlink link="${dist.dir}/cldr-keyboards-${version}.zip" resource="keyboards.zip"/>
- </target>
-</project>
diff --git a/tools/cldr-code/.settings/org.eclipse.core.resources.prefs b/tools/cldr-code/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..29abf99
--- /dev/null
+++ b/tools/cldr-code/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1
+encoding//src/main/java=UTF-8
+encoding//src/main/resources=UTF-8
+encoding//src/test/java=UTF-8
+encoding//src/test/resources=UTF-8
+encoding/<project>=UTF-8
diff --git a/tools/java/.settings/org.eclipse.jdt.core.prefs b/tools/cldr-code/.settings/org.eclipse.jdt.core.prefs
similarity index 93%
rename from tools/java/.settings/org.eclipse.jdt.core.prefs
rename to tools/cldr-code/.settings/org.eclipse.jdt.core.prefs
index dcfdd86..abfeaa4 100644
--- a/tools/java/.settings/org.eclipse.jdt.core.prefs
+++ b/tools/cldr-code/.settings/org.eclipse.jdt.core.prefs
@@ -8,9 +8,14 @@
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
+org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.8
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_annotations_on_field=1585
org.eclipse.jdt.core.formatter.alignment_for_annotations_on_field.count_dependent=1585|-1|1585
org.eclipse.jdt.core.formatter.alignment_for_annotations_on_local_variable=1585
@@ -36,8 +41,8 @@
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression.count_dependent=16|-1|16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
org.eclipse.jdt.core.formatter.alignment_for_binary_expression.count_dependent=16|-1|16
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_cascading_method_invocation_with_arguments=16
org.eclipse.jdt.core.formatter.alignment_for_cascading_method_invocation_with_arguments.count_dependent=16|-1|16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
@@ -51,9 +56,11 @@
org.eclipse.jdt.core.formatter.alignment_for_generic_type_arguments=16
org.eclipse.jdt.core.formatter.alignment_for_generic_type_arguments.count_dependent=16|-1|16
org.eclipse.jdt.core.formatter.alignment_for_local_variable_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields.count_dependent=16|-1|16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_new_anonymous_class=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration.count_dependent=16|-1|16
@@ -62,6 +69,7 @@
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation.count_dependent=16|-1|16
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration.count_dependent=16|-1|16
@@ -153,11 +161,12 @@
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
@@ -189,6 +198,8 @@
org.eclipse.jdt.core.formatter.insert_space_after_comment_prefix=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
@@ -213,13 +224,17 @@
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
@@ -267,6 +282,8 @@
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
@@ -303,9 +320,12 @@
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
@@ -331,8 +351,12 @@
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_on_off_tags=true
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_comment_inline_tags=false
org.eclipse.jdt.core.formatter.wrap_non_simple_local_variable_annotation=true
org.eclipse.jdt.core.formatter.wrap_non_simple_member_annotation=true
diff --git a/tools/java/.settings/org.eclipse.jdt.ui.prefs b/tools/cldr-code/.settings/org.eclipse.jdt.ui.prefs
similarity index 100%
rename from tools/java/.settings/org.eclipse.jdt.ui.prefs
rename to tools/cldr-code/.settings/org.eclipse.jdt.ui.prefs
diff --git a/tools/cldr-code/.settings/org.eclipse.m2e.core.prefs b/tools/cldr-code/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/tools/cldr-code/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/tools/cldr-code/.settings/org.eclipse.wst.common.component b/tools/cldr-code/.settings/org.eclipse.wst.common.component
new file mode 100644
index 0000000..ec8686c
--- /dev/null
+++ b/tools/cldr-code/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+ <wb-module deploy-name="cldr">
+ <wb-resource deploy-path="/" source-path="/src/main/java"/>
+ <wb-resource deploy-path="/" source-path="/src/main/resources"/>
+ </wb-module>
+</project-modules>
diff --git a/tools/cldr-code/.settings/org.eclipse.wst.validation.prefs b/tools/cldr-code/.settings/org.eclipse.wst.validation.prefs
new file mode 100644
index 0000000..04cad8c
--- /dev/null
+++ b/tools/cldr-code/.settings/org.eclipse.wst.validation.prefs
@@ -0,0 +1,2 @@
+disabled=06target
+eclipse.preferences.version=1
diff --git a/tools/java/how_to_notes.txt b/tools/cldr-code/how_to_notes.txt
similarity index 100%
rename from tools/java/how_to_notes.txt
rename to tools/cldr-code/how_to_notes.txt
diff --git a/tools/java/pom.xml b/tools/cldr-code/pom.xml
similarity index 66%
rename from tools/java/pom.xml
rename to tools/cldr-code/pom.xml
index f604b6a..eefe9e6 100644
--- a/tools/java/pom.xml
+++ b/tools/cldr-code/pom.xml
@@ -5,7 +5,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
- <artifactId>cldr</artifactId>
+ <artifactId>cldr-code</artifactId>
<name>CLDR Java Tools</name>
@@ -22,10 +22,9 @@
<parent>
<groupId>org.unicode.cldr</groupId>
<artifactId>cldr-all</artifactId>
- <version>38.0-SNAPSHOT</version>
+ <version>39.0-SNAPSHOT</version>
</parent>
-
<dependencies>
<dependency>
<groupId>com.ibm.icu</groupId>
@@ -81,42 +80,22 @@
</dependencies>
<build>
- <testSourceDirectory>${project.basedir}/../cldr-unittest/src</testSourceDirectory>
- <sourceDirectory>.</sourceDirectory> <!-- TODO: fix by refactoring source dirs, CLDR-11585 -->
- <resources>
- <resource>
- <directory>.</directory>
- <includes>
- <include>org/unicode/cldr/icu/*.html</include>
- <include>org/unicode/cldr/icu/*.txt</include>
- <include>org/unicode/cldr/json/*.txt</include>
- <include>org/unicode/cldr/tool/*.css</include>
- <include>org/unicode/cldr/tool/*.html</include>
- <include>org/unicode/cldr/tool/*.txt</include>
- <include>org/unicode/cldr/tool/*.xml</include>
- <include>org/unicode/cldr/util/data/**/*</include>
- </includes>
- </resource>
- </resources>
- <testResources>
- <testResource>
- <directory>${project.basedir}/../cldr-unittest/src</directory>
- <includes>
- <include>org/unicode/cldr/unittest/*.txt</include>
- <include>org/unicode/cldr/unittest/data/**/*</include>
- </includes>
- </testResource>
- </testResources>
-
<plugins>
<plugin>
- <artifactId>maven-compiler-plugin</artifactId>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>license-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>download-licenses</id>
+ <phase>package</phase>
+ <goals>
+ <goal>add-third-party</goal>
+ </goals>
+ </execution>
+ </executions>
<configuration>
- <!-- TODO: fix by refactoring source dirs, CLDR-11585 -->
- <includes>
- <include>com/**/*.java</include>
- <include>org/**/*.java</include>
- </includes>
+ <excludedScopes>system,test</excludedScopes>
+ <useMissingFile>true</useMissingFile>
</configuration>
</plugin>
<plugin>
@@ -141,16 +120,27 @@
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
- <configuration>
- <descriptorRefs>
- <descriptorRef>jar-with-dependencies</descriptorRef>
- </descriptorRefs>
+ <configuration>
+ <attach>false</attach>
+ <finalName>cldr-code</finalName>
+ <appendAssemblyId>false</appendAssemblyId>
+ <descriptors>
+ <descriptor>src/main/assembly/cldr-code.xml</descriptor>
+ </descriptors>
<archive>
<manifest>
<mainClass>${mainClass}</mainClass>
</manifest>
</archive>
</configuration>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ </execution>
+ </executions>
</plugin>
</plugins>
</build>
diff --git a/tools/cldr-code/readme.txt b/tools/cldr-code/readme.txt
new file mode 100644
index 0000000..a8517bc
--- /dev/null
+++ b/tools/cldr-code/readme.txt
@@ -0,0 +1,6 @@
+CLDR Tools ReadMe
+-----------------
+
+This directory contains tools, tests, and utilities for dealing with CLDR data.
+
+See: ../../CONTRIBUTING.md
diff --git a/tools/cldr-code/src/license/THIRD-PARTY.properties b/tools/cldr-code/src/license/THIRD-PARTY.properties
new file mode 100644
index 0000000..462b277
--- /dev/null
+++ b/tools/cldr-code/src/license/THIRD-PARTY.properties
@@ -0,0 +1,16 @@
+# Generated by org.codehaus.mojo.license.AddThirdPartyMojo
+#-------------------------------------------------------------------------------
+# Already used licenses in project :
+# - Apache 2.0
+# - Apache License, Version 2.0
+# - The Apache Software License, Version 2.0
+# - The MIT License
+# - The SAX License
+# - The W3C License
+#-------------------------------------------------------------------------------
+# Please fill the missing licenses for dependencies :
+#
+#
+#Tue Mar 09 21:33:58 PST 2021
+com.ibm.icu--icu4j-for-cldr--69.1-SNAPSHOT-cldr-2021-03-09=
+com.ibm.icu--utilities-for-cldr--69.1-SNAPSHOT-cldr-2021-03-09=
diff --git a/tools/cldr-code/src/main/assembly/cldr-code.xml b/tools/cldr-code/src/main/assembly/cldr-code.xml
new file mode 100644
index 0000000..6d01c89
--- /dev/null
+++ b/tools/cldr-code/src/main/assembly/cldr-code.xml
@@ -0,0 +1,41 @@
+<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.1.0 http://maven.apache.org/xsd/assembly-2.1.0.xsd">
+ <id>foo</id>
+ <formats>
+ <format>jar</format>
+ </formats>
+ <includeBaseDirectory>false</includeBaseDirectory>
+ <dependencySets>
+ <dependencySet>
+ <outputDirectory>/</outputDirectory>
+ <useProjectArtifact>true</useProjectArtifact>
+ <unpack>true</unpack>
+ <scope>runtime</scope>
+ </dependencySet>
+ </dependencySets>
+ <fileSets>
+ <fileSet>
+ <directory>${project.basedir}/target/generated-sources/license/</directory>
+ <outputDirectory>/</outputDirectory>
+ <includes>
+ <include>THIRD-PARTY.txt</include>
+ </includes>
+ </fileSet>
+ <fileSet>
+ <directory>${project.basedir}/target/generated-resources/licenses</directory>
+ <outputDirectory>/licenses</outputDirectory>
+ <includes>
+ <include>*</include>
+ </includes>
+ </fileSet>
+ <fileSet>
+ <directory>${project.basedir}/../../</directory>
+ <outputDirectory>/licenses</outputDirectory>
+ <includes>
+ <include>ICU-LICENSE</include>
+ <include>unicode-license.txt</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+</assembly>
diff --git a/tools/java/com/ibm/icu/dev/test/AbstractTestLog.java b/tools/cldr-code/src/main/java/com/ibm/icu/dev/test/AbstractTestLog.java
similarity index 100%
rename from tools/java/com/ibm/icu/dev/test/AbstractTestLog.java
rename to tools/cldr-code/src/main/java/com/ibm/icu/dev/test/AbstractTestLog.java
diff --git a/tools/java/com/ibm/icu/dev/test/GenderInfoTest.java b/tools/cldr-code/src/main/java/com/ibm/icu/dev/test/GenderInfoTest.java
similarity index 100%
rename from tools/java/com/ibm/icu/dev/test/GenderInfoTest.java
rename to tools/cldr-code/src/main/java/com/ibm/icu/dev/test/GenderInfoTest.java
diff --git a/tools/java/com/ibm/icu/dev/test/ListFormatTest.java b/tools/cldr-code/src/main/java/com/ibm/icu/dev/test/ListFormatTest.java
similarity index 100%
rename from tools/java/com/ibm/icu/dev/test/ListFormatTest.java
rename to tools/cldr-code/src/main/java/com/ibm/icu/dev/test/ListFormatTest.java
diff --git a/tools/java/com/ibm/icu/dev/test/TestFmwk.java b/tools/cldr-code/src/main/java/com/ibm/icu/dev/test/TestFmwk.java
similarity index 98%
rename from tools/java/com/ibm/icu/dev/test/TestFmwk.java
rename to tools/cldr-code/src/main/java/com/ibm/icu/dev/test/TestFmwk.java
index e491c85..d4de662 100644
--- a/tools/java/com/ibm/icu/dev/test/TestFmwk.java
+++ b/tools/cldr-code/src/main/java/com/ibm/icu/dev/test/TestFmwk.java
@@ -116,7 +116,7 @@
errln(ex.toString() + '\n' + msg);
}
} else {
- errln(ex.toString() + '\n' + msg);
+ errln(sourceLocation(ex) + ex.toString() + '\n' + msg);
}
}
// use this instead of new random so we get a consistent seed
@@ -1989,20 +1989,33 @@
return obj.getClass().getName() + "<" + obj + ">";
}
- // Return the source code location of the caller located callDepth frames up the stack.
+ // Return the source code location of the calling test
+ // or "" if not found
public static String sourceLocation() {
+ return sourceLocation(new Throwable());
+ }
+
+ // Return the source code location of the specified throwable's calling test
+ // returns "" if not found
+ public static String sourceLocation(Throwable forThrowable) {
// Walk up the stack to the first call site outside this file
for (StackTraceElement st : new Throwable().getStackTrace()) {
String source = st.getFileName();
- if (source != null && !source.equals("TestFmwk.java") && !source.equals("AbstractTestLog.java")) {
+ if(source == null || source.equals("TestShim.java")) {
+ return ""; // hit the end of helpful stack traces
+ } else if (source != null && !source.equals("TestFmwk.java")
+ && !source.equals("AbstractTestLog.java")) {
String methodName = st.getMethodName();
+ if(methodName != null && methodName.startsWith("lambda$")) { // unpack inner lambda
+ methodName = methodName.substring("lambda$".length()); // lambda$TestValid$0 -> TestValid$0
+ }
if (methodName != null &&
(methodName.startsWith("Test") || methodName.startsWith("test") || methodName.equals("main"))) {
- return "(" + source + ":" + st.getLineNumber() + ") ";
+ return "(" + source + ":" + st.getLineNumber() + ") ";
}
}
}
- throw new InternalError();
+ return ""; // not found
}
diff --git a/tools/java/com/ibm/icu/dev/test/TestLog.java b/tools/cldr-code/src/main/java/com/ibm/icu/dev/test/TestLog.java
similarity index 100%
rename from tools/java/com/ibm/icu/dev/test/TestLog.java
rename to tools/cldr-code/src/main/java/com/ibm/icu/dev/test/TestLog.java
diff --git a/tools/java/com/ibm/icu/dev/test/TestLogWriter.java b/tools/cldr-code/src/main/java/com/ibm/icu/dev/test/TestLogWriter.java
similarity index 100%
rename from tools/java/com/ibm/icu/dev/test/TestLogWriter.java
rename to tools/cldr-code/src/main/java/com/ibm/icu/dev/test/TestLogWriter.java
diff --git a/tools/java/com/ibm/icu/dev/test/TestUtil.java b/tools/cldr-code/src/main/java/com/ibm/icu/dev/test/TestUtil.java
similarity index 100%
rename from tools/java/com/ibm/icu/dev/test/TestUtil.java
rename to tools/cldr-code/src/main/java/com/ibm/icu/dev/test/TestUtil.java
diff --git a/tools/java/com/ibm/icu/dev/test/UTF16Util.java b/tools/cldr-code/src/main/java/com/ibm/icu/dev/test/UTF16Util.java
similarity index 100%
rename from tools/java/com/ibm/icu/dev/test/UTF16Util.java
rename to tools/cldr-code/src/main/java/com/ibm/icu/dev/test/UTF16Util.java
diff --git a/tools/java/com/ibm/icu/text/FixedDecimal.java b/tools/cldr-code/src/main/java/com/ibm/icu/text/FixedDecimal.java
similarity index 100%
rename from tools/java/com/ibm/icu/text/FixedDecimal.java
rename to tools/cldr-code/src/main/java/com/ibm/icu/text/FixedDecimal.java
diff --git a/tools/java/com/ibm/icu/text/GenderInfo.java b/tools/cldr-code/src/main/java/com/ibm/icu/text/GenderInfo.java
similarity index 100%
rename from tools/java/com/ibm/icu/text/GenderInfo.java
rename to tools/cldr-code/src/main/java/com/ibm/icu/text/GenderInfo.java
diff --git a/tools/java/com/ibm/icu/text/ListFormat.java b/tools/cldr-code/src/main/java/com/ibm/icu/text/ListFormat.java
similarity index 100%
rename from tools/java/com/ibm/icu/text/ListFormat.java
rename to tools/cldr-code/src/main/java/com/ibm/icu/text/ListFormat.java
diff --git a/tools/java/com/ibm/icu/text/ListFormatData.java b/tools/cldr-code/src/main/java/com/ibm/icu/text/ListFormatData.java
similarity index 98%
rename from tools/java/com/ibm/icu/text/ListFormatData.java
rename to tools/cldr-code/src/main/java/com/ibm/icu/text/ListFormatData.java
index d289db2..a463adf 100644
--- a/tools/java/com/ibm/icu/text/ListFormatData.java
+++ b/tools/cldr-code/src/main/java/com/ibm/icu/text/ListFormatData.java
@@ -47,9 +47,9 @@
ListFormat.add("ml", "{0} കൂടാതെ {1}", "{0}, {1}", "{0}, {1}", "{0}, {1} എന്നിവ");
ListFormat.add("mr", "{0} आणि {1}", "{0}, {1}", "{0}, {1}", "{0} आणि {1}");
ListFormat.add("ms", "{0} dan {1}", "{0}, {1}", "{0}, {1}", "{0}, dan {1}");
- ListFormat.add("nb", "{0} og {1}", "{0}, {1}", "{0}, {1}", "{0} og {1}");
ListFormat.add("nl", "{0} en {1}", "{0}, {1}", "{0}, {1}", "{0} en {1}");
ListFormat.add("nn", "{0} og {1}", "{0}, {1}", "{0}, {1}", "{0} og {1}");
+ ListFormat.add("no", "{0} og {1}", "{0}, {1}", "{0}, {1}", "{0} og {1}");
ListFormat.add("pl", "{0} i {1}", "{0}; {1}", "{0}; {1}", "{0} i {1}");
ListFormat.add("pt", "{0} e {1}", "{0}, {1}", "{0}, {1}", "{0} e {1}");
ListFormat.add("ro", "{0} şi {1}", "{0}, {1}", "{0}, {1}", "{0} şi {1}");
diff --git a/tools/java/com/ibm/icu/util/LocaleMatcher.java b/tools/cldr-code/src/main/java/com/ibm/icu/util/LocaleMatcher.java
similarity index 100%
rename from tools/java/com/ibm/icu/util/LocaleMatcher.java
rename to tools/cldr-code/src/main/java/com/ibm/icu/util/LocaleMatcher.java
diff --git a/tools/java/org/unicode/cldr/api/AttributeKey.java b/tools/cldr-code/src/main/java/org/unicode/cldr/api/AttributeKey.java
similarity index 100%
rename from tools/java/org/unicode/cldr/api/AttributeKey.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/api/AttributeKey.java
diff --git a/tools/java/org/unicode/cldr/api/CldrData.java b/tools/cldr-code/src/main/java/org/unicode/cldr/api/CldrData.java
similarity index 100%
rename from tools/java/org/unicode/cldr/api/CldrData.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/api/CldrData.java
diff --git a/tools/java/org/unicode/cldr/api/CldrDataSupplier.java b/tools/cldr-code/src/main/java/org/unicode/cldr/api/CldrDataSupplier.java
similarity index 96%
rename from tools/java/org/unicode/cldr/api/CldrDataSupplier.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/api/CldrDataSupplier.java
index 93936e5..ba78b70 100644
--- a/tools/java/org/unicode/cldr/api/CldrDataSupplier.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/api/CldrDataSupplier.java
@@ -50,14 +50,14 @@
*
* <p>Note that because the distinguishing paths associated with a {@link CldrValue} are unique per
* visitation, the special "version" path/value must be omitted (e.g. "//ldml/version") since it
- * would otherwise appear multiple times. This should be fine, since the version is always available
- * via {@link #getCldrVersionString()} and this mechanism is scheduled for deprecation anyway.
+ * would otherwise appear multiple times. It's also possible that the data being processed by this
+ * library has a different version to the library itself.
*/
public abstract class CldrDataSupplier {
/**
- * Returns the current CLDR version string (e.g. {@code "36"}). This is just wrapping the
- * underlying CLDR version string to avoid users needing to import anything from outside the
- * "api" package.
+ * Returns the default CLDR version string (e.g. {@code "36"}) that is compiled into the CLDR
+ * API library. Note that users of this API may need to specify a different version string when
+ * processing data that is out-of-sync with the current library version.
*/
public static String getCldrVersionString() {
return CLDRFile.GEN_VERSION;
diff --git a/tools/java/org/unicode/cldr/api/CldrDataType.java b/tools/cldr-code/src/main/java/org/unicode/cldr/api/CldrDataType.java
similarity index 100%
rename from tools/java/org/unicode/cldr/api/CldrDataType.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/api/CldrDataType.java
diff --git a/tools/java/org/unicode/cldr/api/CldrDraftStatus.java b/tools/cldr-code/src/main/java/org/unicode/cldr/api/CldrDraftStatus.java
similarity index 100%
rename from tools/java/org/unicode/cldr/api/CldrDraftStatus.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/api/CldrDraftStatus.java
diff --git a/tools/java/org/unicode/cldr/api/CldrFileDataSource.java b/tools/cldr-code/src/main/java/org/unicode/cldr/api/CldrFileDataSource.java
similarity index 100%
rename from tools/java/org/unicode/cldr/api/CldrFileDataSource.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/api/CldrFileDataSource.java
diff --git a/tools/java/org/unicode/cldr/api/CldrPath.java b/tools/cldr-code/src/main/java/org/unicode/cldr/api/CldrPath.java
similarity index 100%
rename from tools/java/org/unicode/cldr/api/CldrPath.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/api/CldrPath.java
diff --git a/tools/java/org/unicode/cldr/api/CldrPaths.java b/tools/cldr-code/src/main/java/org/unicode/cldr/api/CldrPaths.java
similarity index 100%
rename from tools/java/org/unicode/cldr/api/CldrPaths.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/api/CldrPaths.java
diff --git a/tools/java/org/unicode/cldr/api/CldrValue.java b/tools/cldr-code/src/main/java/org/unicode/cldr/api/CldrValue.java
similarity index 100%
rename from tools/java/org/unicode/cldr/api/CldrValue.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/api/CldrValue.java
diff --git a/tools/java/org/unicode/cldr/api/FilteredData.java b/tools/cldr-code/src/main/java/org/unicode/cldr/api/FilteredData.java
similarity index 100%
rename from tools/java/org/unicode/cldr/api/FilteredData.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/api/FilteredData.java
diff --git a/tools/java/org/unicode/cldr/api/InMemoryData.java b/tools/cldr-code/src/main/java/org/unicode/cldr/api/InMemoryData.java
similarity index 100%
rename from tools/java/org/unicode/cldr/api/InMemoryData.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/api/InMemoryData.java
diff --git a/tools/java/org/unicode/cldr/api/LocaleIds.java b/tools/cldr-code/src/main/java/org/unicode/cldr/api/LocaleIds.java
similarity index 100%
rename from tools/java/org/unicode/cldr/api/LocaleIds.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/api/LocaleIds.java
diff --git a/tools/java/org/unicode/cldr/api/PathMatcher.java b/tools/cldr-code/src/main/java/org/unicode/cldr/api/PathMatcher.java
similarity index 100%
rename from tools/java/org/unicode/cldr/api/PathMatcher.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/api/PathMatcher.java
diff --git a/tools/java/org/unicode/cldr/api/PrefixVisitorHost.java b/tools/cldr-code/src/main/java/org/unicode/cldr/api/PrefixVisitorHost.java
similarity index 98%
rename from tools/java/org/unicode/cldr/api/PrefixVisitorHost.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/api/PrefixVisitorHost.java
index 887f8be..4063ea7 100644
--- a/tools/java/org/unicode/cldr/api/PrefixVisitorHost.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/api/PrefixVisitorHost.java
@@ -144,8 +144,7 @@
};
private PrefixVisitorHost(PrefixVisitor visitor) {
- this.visitorStack.push(VisitorState.of(visitor, v -> {
- }, null));
+ this.visitorStack.push(VisitorState.of(visitor, v -> {}, null));
}
// Called after visitation is complete to close out the last visited value path.
diff --git a/tools/java/org/unicode/cldr/api/XmlDataSource.java b/tools/cldr-code/src/main/java/org/unicode/cldr/api/XmlDataSource.java
similarity index 100%
rename from tools/java/org/unicode/cldr/api/XmlDataSource.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/api/XmlDataSource.java
diff --git a/tools/java/org/unicode/cldr/draft/Array2D.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/Array2D.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/Array2D.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/Array2D.java
diff --git a/tools/java/org/unicode/cldr/draft/CharData.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/CharData.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/CharData.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/CharData.java
diff --git a/tools/java/org/unicode/cldr/draft/CharEncoder.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/CharEncoder.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/CharEncoder.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/CharEncoder.java
diff --git a/tools/java/org/unicode/cldr/draft/CharacterListCompressor.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/CharacterListCompressor.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/CharacterListCompressor.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/CharacterListCompressor.java
diff --git a/tools/java/org/unicode/cldr/draft/CodePoints.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/CodePoints.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/CodePoints.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/CodePoints.java
diff --git a/tools/java/org/unicode/cldr/draft/Compacter.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/Compacter.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/Compacter.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/Compacter.java
diff --git a/tools/java/org/unicode/cldr/draft/CompoundTransform.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/CompoundTransform.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/CompoundTransform.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/CompoundTransform.java
diff --git a/tools/java/org/unicode/cldr/draft/EnumLookup.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/EnumLookup.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/EnumLookup.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/EnumLookup.java
diff --git a/tools/java/org/unicode/cldr/draft/ExemplarInfo.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/ExemplarInfo.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/ExemplarInfo.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/ExemplarInfo.java
diff --git a/tools/java/org/unicode/cldr/draft/ExtractCountItems.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/ExtractCountItems.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/ExtractCountItems.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/ExtractCountItems.java
diff --git a/tools/java/org/unicode/cldr/draft/FileUtilities.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/FileUtilities.java
similarity index 92%
rename from tools/java/org/unicode/cldr/draft/FileUtilities.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/FileUtilities.java
index 2da3047..720ba2d 100644
--- a/tools/java/org/unicode/cldr/draft/FileUtilities.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/FileUtilities.java
@@ -15,13 +15,13 @@
import java.io.PrintWriter;
import java.net.URL;
import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.regex.Pattern;
import org.unicode.cldr.util.CldrUtility;
-import org.unicode.cldr.util.PathUtilities;
import org.unicode.cldr.util.PatternCache;
import org.unicode.cldr.util.With;
import org.unicode.cldr.util.With.SimpleIterator;
@@ -61,10 +61,14 @@
}
public static PrintWriter openUTF8Writer(String dir, String filename) throws IOException {
- return openWriter(dir, filename, "UTF-8");
+ return openWriter(dir, filename, StandardCharsets.UTF_8);
}
- public static PrintWriter openWriter(String dir, String filename, String encoding) throws IOException {
+ public static PrintWriter openUTF8Writer(File dir, String filename) throws IOException {
+ return openWriter(dir, filename, StandardCharsets.UTF_8);
+ }
+
+ public static PrintWriter openWriter(File dir, String filename, Charset encoding) throws IOException {
File file = new File(dir, filename);
if (SHOW_FILES && log != null) {
log.println("Creating File: " + getNormalizedPathString(file));
@@ -82,6 +86,14 @@
4 * 1024));
}
+ public static PrintWriter openWriter(String dir, String filename, String encoding) throws IOException {
+ return openWriter(new File(dir), filename, Charset.forName(encoding));
+ }
+
+ public static PrintWriter openWriter(String dir, String filename, Charset encoding) throws IOException {
+ return openWriter(new File(dir), filename, encoding);
+ }
+
public static abstract class SemiFileReader extends FileProcessor {
public final static Pattern SPLIT = PatternCache.get("\\s*;\\s*");
@@ -159,7 +171,7 @@
public FileProcessor process(String fileName) {
try {
FileInputStream fileStream = new FileInputStream(fileName);
- InputStreamReader reader = new InputStreamReader(fileStream, UTF8);
+ InputStreamReader reader = new InputStreamReader(fileStream, StandardCharsets.UTF_8);
BufferedReader bufferedReader = new BufferedReader(reader, 1024 * 64);
return process(bufferedReader, fileName);
} catch (Exception e) {
@@ -170,7 +182,7 @@
public FileProcessor process(String directory, String fileName) {
try {
FileInputStream fileStream = new FileInputStream(directory + File.separator + fileName);
- InputStreamReader reader = new InputStreamReader(fileStream, UTF8);
+ InputStreamReader reader = new InputStreamReader(fileStream, StandardCharsets.UTF_8);
BufferedReader bufferedReader = new BufferedReader(reader, 1024 * 64);
return process(bufferedReader, fileName);
} catch (Exception e) {
@@ -218,7 +230,7 @@
// return handler.process(classLocation, fileName);
// }
public static BufferedReader openFile(Class<?> class1, String file) {
- return openFile(class1, file, UTF8);
+ return openFile(class1, file, StandardCharsets.UTF_8);
}
public static BufferedReader openFile(Class<?> class1, String file, Charset charset) {
@@ -237,7 +249,7 @@
final InputStream resourceAsStream = class1.getResourceAsStream(file);
// String foo = class1.getResource(".").toString();
if (charset == null) {
- charset = UTF8;
+ charset = StandardCharsets.UTF_8;
}
InputStreamReader reader = new InputStreamReader(resourceAsStream, charset);
BufferedReader bufferedReader = new BufferedReader(reader, 1024 * 64);
@@ -274,15 +286,13 @@
}
public static BufferedReader openFile(File file) {
- return openFile(file, UTF8);
+ return openFile(file, StandardCharsets.UTF_8);
}
public static BufferedReader openFile(String directory, String file) {
- return openFile(directory, file, UTF8);
+ return openFile(directory, file, StandardCharsets.UTF_8);
}
- public static final Charset UTF8 = Charset.forName("utf-8");
-
public static String[] splitCommaSeparated(String line) {
// items are separated by ','
// each item is of the form abc...
@@ -321,11 +331,11 @@
}
public static void appendFile(Class<?> class1, String filename, PrintWriter out) {
- appendFile(class1, filename, UTF8, null, out);
+ appendFile(class1, filename, StandardCharsets.UTF_8, null, out);
}
public static void appendFile(Class<?> class1, String filename, String[] replacementList, PrintWriter out) {
- appendFile(class1, filename, UTF8, replacementList, out);
+ appendFile(class1, filename, StandardCharsets.UTF_8, replacementList, out);
}
public static void appendFile(Class<?> class1, String filename, Charset charset, String[] replacementList,
@@ -421,7 +431,7 @@
public static void copyFile(Class<?> class1, String sourceFile, String targetDirectory, String newName, String[] replacementList) {
try {
PrintWriter out = openUTF8Writer(targetDirectory, newName);
- appendFile(class1, sourceFile, UTF8, replacementList, out);
+ appendFile(class1, sourceFile, StandardCharsets.UTF_8, replacementList, out);
out.close();
} catch (IOException e) {
throw new ICUUncheckedIOException(e); // dang'd checked exceptions
@@ -450,7 +460,7 @@
*
*/
public static Iterable<String> in(Class<?> class1, String file) {
- return With.in(new FileLines(openFile(class1, file, UTF8)));
+ return With.in(new FileLines(openFile(class1, file, StandardCharsets.UTF_8)));
}
/**
@@ -476,7 +486,7 @@
*
*/
public static Iterable<String> in(String directory, String file) {
- return With.in(new FileLines(openFile(directory, file, UTF8)));
+ return With.in(new FileLines(openFile(directory, file, StandardCharsets.UTF_8)));
}
/**
@@ -575,6 +585,6 @@
}
public static Iterable<String> in(File file) {
- return With.in(new FileLines(openFile(file, UTF8)));
+ return With.in(new FileLines(openFile(file, StandardCharsets.UTF_8)));
}
}
diff --git a/tools/java/org/unicode/cldr/draft/FilteredTransform.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/FilteredTransform.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/FilteredTransform.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/FilteredTransform.java
diff --git a/tools/java/org/unicode/cldr/draft/FixArchaic.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/FixArchaic.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/FixArchaic.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/FixArchaic.java
diff --git a/tools/java/org/unicode/cldr/draft/GapString.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/GapString.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/GapString.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/GapString.java
diff --git a/tools/java/org/unicode/cldr/draft/GapStringTest.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/GapStringTest.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/GapStringTest.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/GapStringTest.java
diff --git a/tools/java/org/unicode/cldr/draft/GenerateLanguageData.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/GenerateLanguageData.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/GenerateLanguageData.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/GenerateLanguageData.java
diff --git a/tools/java/org/unicode/cldr/draft/IdentifierInfo.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/IdentifierInfo.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/IdentifierInfo.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/IdentifierInfo.java
diff --git a/tools/java/org/unicode/cldr/draft/IntDistanceNode.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/IntDistanceNode.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/IntDistanceNode.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/IntDistanceNode.java
diff --git a/tools/java/org/unicode/cldr/draft/Iterables.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/Iterables.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/Iterables.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/Iterables.java
diff --git a/tools/java/org/unicode/cldr/draft/JsonConverter.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/JsonConverter.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/JsonConverter.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/JsonConverter.java
diff --git a/tools/java/org/unicode/cldr/draft/Keyboard.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/Keyboard.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/Keyboard.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/Keyboard.java
diff --git a/tools/java/org/unicode/cldr/draft/KeyboardModifierSet.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/KeyboardModifierSet.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/KeyboardModifierSet.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/KeyboardModifierSet.java
diff --git a/tools/java/org/unicode/cldr/draft/MainCache.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/MainCache.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/MainCache.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/MainCache.java
diff --git a/tools/java/org/unicode/cldr/draft/Misc.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/Misc.java
similarity index 99%
rename from tools/java/org/unicode/cldr/draft/Misc.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/Misc.java
index 25c3a41..b7062a7 100644
--- a/tools/java/org/unicode/cldr/draft/Misc.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/Misc.java
@@ -59,7 +59,7 @@
doNFC();
showPlurals();
- String[] locales = "zh en es hi fr ar pt ru id bn ur ja de fil sw pa jv ko tr vi it te mr th fa ta pl lah gu my ms uk zh_Hant kn su ml nl az or ro uz bho ps ha ku mad yo ig si mg sd hu am om kk el ne be mai sr cs km as sv mag mwr sn ny ca bg hne tg bgc ii he dcc ug fuv qu rw min af zu mn bjn so ki hr ak tk fi sq da bya sk gn bal nb lua xh bs ht syl ka bjj ban sat hy za luy rn bug bem luo wtm st lo gl ti shn ceb ks mfa ace lt ky bm lg shi tn bcl glk war kok bew kln kam umb bo suk ee kmb ay pam bhk sas bbc swv nso tpi rjb gbm lmn ff kab sl ts ba cv kri gon ndc guz wo tzm mak kfy ln ljp mk efi ibb doi awa mos nyn vmw mer kru lv sid pag gno sck tcy wbq nd lrc ss cgg brh xog nn sg xnr dyu rmt teo kxm mdh hno lu eu khn wbr tsg rej rif brx ilo kbd et ce kg fy hil kj cy ast av ve udm ga tt sah myv tet gaa ady mt dv fj nr is mdf kum kha sm kpv lez pap krc inh oc se tyv zdj dz bi gag to koi lbe mi ab os ty kl gil iu ch fo rm mh chk haw pon lb pau tvl sa kos na ho yap gd uli niu la tkl eo kl"
+ String[] locales = "zh en es hi fr ar pt ru id bn ur ja de fil sw pa jv ko tr vi it te mr th fa ta pl lah gu my ms uk zh_Hant kn su ml nl az or ro uz bho ps ha ku mad yo ig si mg sd hu am om kk el ne be mai sr cs km as sv mag mwr sn ny ca bg hne tg bgc ii he dcc ug fuv qu rw min af zu mn bjn so ki hr ak tk fi sq da bya sk gn bal no lua xh bs ht syl ka bjj ban sat hy za luy rn bug bem luo wtm st lo gl ti shn ceb ks mfa ace lt ky bm lg shi tn bcl glk war kok bew kln kam umb bo suk ee kmb ay pam bhk sas bbc swv nso tpi rjb gbm lmn ff kab sl ts ba cv kri gon ndc guz wo tzm mak kfy ln ljp mk efi ibb doi awa mos nyn vmw mer kru lv sid pag gno sck tcy wbq nd lrc ss cgg brh xog nn sg xnr dyu rmt teo kxm mdh hno lu eu khn wbr tsg rej rif brx ilo kbd et ce kg fy hil kj cy ast av ve udm ga tt sah myv tet gaa ady mt dv fj nr is mdf kum kha sm kpv lez pap krc inh oc se tyv zdj dz bi gag to koi lbe mi ab os ty kl gil iu ch fo rm mh chk haw pon lb pau tvl sa kos na ho yap gd uli niu la tkl eo kl"
.split(" ");
SupplementalDataInfo sdi = SupplementalDataInfo.getInstance();
Set<String> scripts = new LinkedHashSet<>();
diff --git a/tools/java/org/unicode/cldr/draft/NormalizedIdentifierParser.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/NormalizedIdentifierParser.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/NormalizedIdentifierParser.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/NormalizedIdentifierParser.java
diff --git a/tools/java/org/unicode/cldr/draft/Parser.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/Parser.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/Parser.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/Parser.java
diff --git a/tools/java/org/unicode/cldr/draft/PatternFixer.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/PatternFixer.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/PatternFixer.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/PatternFixer.java
diff --git a/tools/java/org/unicode/cldr/draft/RegexTransform.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/RegexTransform.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/RegexTransform.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/RegexTransform.java
diff --git a/tools/java/org/unicode/cldr/draft/RegexTransformBuilder.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/RegexTransformBuilder.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/RegexTransformBuilder.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/RegexTransformBuilder.java
diff --git a/tools/java/org/unicode/cldr/draft/RegexTransformState.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/RegexTransformState.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/RegexTransformState.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/RegexTransformState.java
diff --git a/tools/java/org/unicode/cldr/draft/Rule.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/Rule.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/Rule.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/Rule.java
diff --git a/tools/java/org/unicode/cldr/draft/ScriptMetadata.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/ScriptMetadata.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/ScriptMetadata.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/ScriptMetadata.java
diff --git a/tools/java/org/unicode/cldr/draft/ShortestCanonicalForm.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/ShortestCanonicalForm.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/ShortestCanonicalForm.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/ShortestCanonicalForm.java
diff --git a/tools/java/org/unicode/cldr/draft/StateMachine.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/StateMachine.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/StateMachine.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/StateMachine.java
diff --git a/tools/java/org/unicode/cldr/draft/StateMachineBuilder.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/StateMachineBuilder.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/StateMachineBuilder.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/StateMachineBuilder.java
diff --git a/tools/java/org/unicode/cldr/draft/StateMachineTest.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/StateMachineTest.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/StateMachineTest.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/StateMachineTest.java
diff --git a/tools/java/org/unicode/cldr/draft/TestMixedScript.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/TestMixedScript.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/TestMixedScript.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/TestMixedScript.java
diff --git a/tools/java/org/unicode/cldr/draft/TransformTest.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/TransformTest.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/TransformTest.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/TransformTest.java
diff --git a/tools/java/org/unicode/cldr/draft/Typology.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/Typology.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/Typology.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/Typology.java
diff --git a/tools/java/org/unicode/cldr/draft/UnicodeMapBuilder.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/UnicodeMapBuilder.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/UnicodeMapBuilder.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/UnicodeMapBuilder.java
diff --git a/tools/java/org/unicode/cldr/draft/UnicodeSetBuilder.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/UnicodeSetBuilder.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/UnicodeSetBuilder.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/UnicodeSetBuilder.java
diff --git a/tools/java/org/unicode/cldr/draft/UnicodeSetFilteredTransform.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/UnicodeSetFilteredTransform.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/UnicodeSetFilteredTransform.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/UnicodeSetFilteredTransform.java
diff --git a/tools/java/org/unicode/cldr/draft/UnicodeSetFormat.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/UnicodeSetFormat.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/UnicodeSetFormat.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/UnicodeSetFormat.java
diff --git a/tools/java/org/unicode/cldr/draft/UnmodifiableBitSet.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/UnmodifiableBitSet.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/UnmodifiableBitSet.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/UnmodifiableBitSet.java
diff --git a/tools/java/org/unicode/cldr/draft/XLikelySubtags.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/XLikelySubtags.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/XLikelySubtags.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/XLikelySubtags.java
diff --git a/tools/java/org/unicode/cldr/draft/XLocaleDistance.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/XLocaleDistance.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/XLocaleDistance.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/XLocaleDistance.java
diff --git a/tools/java/org/unicode/cldr/draft/XLocaleMatcher.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/XLocaleMatcher.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/XLocaleMatcher.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/XLocaleMatcher.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/CharacterMap.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/CharacterMap.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/CharacterMap.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/CharacterMap.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/IsoLayoutPosition.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/IsoLayoutPosition.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/IsoLayoutPosition.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/IsoLayoutPosition.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/KeyMap.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/KeyMap.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/KeyMap.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/KeyMap.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/Keyboard.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/Keyboard.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/Keyboard.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/Keyboard.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/KeyboardBuilder.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/KeyboardBuilder.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/KeyboardBuilder.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/KeyboardBuilder.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/KeyboardId.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/KeyboardId.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/KeyboardId.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/KeyboardId.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/KeyboardIdMap.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/KeyboardIdMap.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/KeyboardIdMap.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/KeyboardIdMap.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/KeyboardSettings.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/KeyboardSettings.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/KeyboardSettings.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/KeyboardSettings.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/KeyboardTool.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/KeyboardTool.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/KeyboardTool.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/KeyboardTool.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/KeycodeMap.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/KeycodeMap.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/KeycodeMap.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/KeycodeMap.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/ModifierKey.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/ModifierKey.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/ModifierKey.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/ModifierKey.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/ModifierKeyCombination.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/ModifierKeyCombination.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/ModifierKeyCombination.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/ModifierKeyCombination.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/ModifierKeyCombinationSet.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/ModifierKeyCombinationSet.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/ModifierKeyCombinationSet.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/ModifierKeyCombinationSet.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/ModifierKeySimplifier.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/ModifierKeySimplifier.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/ModifierKeySimplifier.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/ModifierKeySimplifier.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/Transform.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/Transform.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/Transform.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/Transform.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/osx/KeylayoutParser.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/osx/KeylayoutParser.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/osx/KeylayoutParser.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/osx/KeylayoutParser.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/osx/TransformTree.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/osx/TransformTree.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/osx/TransformTree.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/osx/TransformTree.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/out/KeyboardToXml.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/out/KeyboardToXml.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/out/KeyboardToXml.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/out/KeyboardToXml.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/out/KeycodeMapToXml.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/out/KeycodeMapToXml.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/out/KeycodeMapToXml.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/out/KeycodeMapToXml.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/out/XmlWriter.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/out/XmlWriter.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/out/XmlWriter.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/out/XmlWriter.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/test/CharacterMapTest.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/CharacterMapTest.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/test/CharacterMapTest.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/CharacterMapTest.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/test/IsoLayoutPositionTest.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/IsoLayoutPositionTest.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/test/IsoLayoutPositionTest.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/IsoLayoutPositionTest.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/test/KeyMapTest.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/KeyMapTest.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/test/KeyMapTest.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/KeyMapTest.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/test/KeyboardIdTest.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/KeyboardIdTest.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/test/KeyboardIdTest.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/KeyboardIdTest.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/test/KeyboardSettingsTest.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/KeyboardSettingsTest.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/test/KeyboardSettingsTest.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/KeyboardSettingsTest.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/test/KeyboardTest.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/KeyboardTest.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/test/KeyboardTest.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/KeyboardTest.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/test/KeycodeMapTest.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/KeycodeMapTest.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/test/KeycodeMapTest.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/KeycodeMapTest.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/test/ModifierKeyCombinationSetTest.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/ModifierKeyCombinationSetTest.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/test/ModifierKeyCombinationSetTest.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/ModifierKeyCombinationSetTest.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/test/ModifierKeyCombinationTest.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/ModifierKeyCombinationTest.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/test/ModifierKeyCombinationTest.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/ModifierKeyCombinationTest.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/test/ModifierKeySimplifierTest.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/ModifierKeySimplifierTest.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/test/ModifierKeySimplifierTest.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/ModifierKeySimplifierTest.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/test/ModifierKeyTest.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/ModifierKeyTest.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/test/ModifierKeyTest.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/ModifierKeyTest.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/test/RunTests.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/RunTests.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/test/RunTests.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/RunTests.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/test/TransformTest.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/TransformTest.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/test/TransformTest.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/TransformTest.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/test/windows/KlcParserTest.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/windows/KlcParserTest.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/test/windows/KlcParserTest.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/test/windows/KlcParserTest.java
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/windows/KlcParser.java b/tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/windows/KlcParser.java
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/windows/KlcParser.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/draft/keyboard/windows/KlcParser.java
diff --git a/tools/java/org/unicode/cldr/icu/ExtractICUData.java b/tools/cldr-code/src/main/java/org/unicode/cldr/icu/ExtractICUData.java
similarity index 100%
rename from tools/java/org/unicode/cldr/icu/ExtractICUData.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/icu/ExtractICUData.java
diff --git a/tools/java/org/unicode/cldr/icu/FixEras.java b/tools/cldr-code/src/main/java/org/unicode/cldr/icu/FixEras.java
similarity index 100%
rename from tools/java/org/unicode/cldr/icu/FixEras.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/icu/FixEras.java
diff --git a/tools/java/org/unicode/cldr/icu/GenerateISO639LanguageTables.java b/tools/cldr-code/src/main/java/org/unicode/cldr/icu/GenerateISO639LanguageTables.java
similarity index 100%
rename from tools/java/org/unicode/cldr/icu/GenerateISO639LanguageTables.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/icu/GenerateISO639LanguageTables.java
diff --git a/tools/java/org/unicode/cldr/icu/ICUID.java b/tools/cldr-code/src/main/java/org/unicode/cldr/icu/ICUID.java
similarity index 100%
rename from tools/java/org/unicode/cldr/icu/ICUID.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/icu/ICUID.java
diff --git a/tools/java/org/unicode/cldr/icu/ICUResourceWriter.java b/tools/cldr-code/src/main/java/org/unicode/cldr/icu/ICUResourceWriter.java
similarity index 100%
rename from tools/java/org/unicode/cldr/icu/ICUResourceWriter.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/icu/ICUResourceWriter.java
diff --git a/tools/java/org/unicode/cldr/icu/LDML2ICUBinaryWriter.java b/tools/cldr-code/src/main/java/org/unicode/cldr/icu/LDML2ICUBinaryWriter.java
similarity index 100%
rename from tools/java/org/unicode/cldr/icu/LDML2ICUBinaryWriter.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/icu/LDML2ICUBinaryWriter.java
diff --git a/tools/java/org/unicode/cldr/icu/LDMLComparator.java b/tools/cldr-code/src/main/java/org/unicode/cldr/icu/LDMLComparator.java
similarity index 100%
rename from tools/java/org/unicode/cldr/icu/LDMLComparator.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/icu/LDMLComparator.java
diff --git a/tools/java/org/unicode/cldr/icu/LDMLConstants.java b/tools/cldr-code/src/main/java/org/unicode/cldr/icu/LDMLConstants.java
similarity index 100%
rename from tools/java/org/unicode/cldr/icu/LDMLConstants.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/icu/LDMLConstants.java
diff --git a/tools/java/org/unicode/cldr/icu/ListNumbers.java b/tools/cldr-code/src/main/java/org/unicode/cldr/icu/ListNumbers.java
similarity index 100%
rename from tools/java/org/unicode/cldr/icu/ListNumbers.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/icu/ListNumbers.java
diff --git a/tools/java/org/unicode/cldr/icu/RBNFWriter.java b/tools/cldr-code/src/main/java/org/unicode/cldr/icu/RBNFWriter.java
similarity index 100%
rename from tools/java/org/unicode/cldr/icu/RBNFWriter.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/icu/RBNFWriter.java
diff --git a/tools/java/org/unicode/cldr/icu/SimpleConverter.java b/tools/cldr-code/src/main/java/org/unicode/cldr/icu/SimpleConverter.java
similarity index 100%
rename from tools/java/org/unicode/cldr/icu/SimpleConverter.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/icu/SimpleConverter.java
diff --git a/tools/java/org/unicode/cldr/icu/TestCldr.java b/tools/cldr-code/src/main/java/org/unicode/cldr/icu/TestCldr.java
similarity index 100%
rename from tools/java/org/unicode/cldr/icu/TestCldr.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/icu/TestCldr.java
diff --git a/tools/java/org/unicode/cldr/icu/UDataInfo.java b/tools/cldr-code/src/main/java/org/unicode/cldr/icu/UDataInfo.java
similarity index 100%
rename from tools/java/org/unicode/cldr/icu/UDataInfo.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/icu/UDataInfo.java
diff --git a/tools/java/org/unicode/cldr/icu/XPPUtil.java b/tools/cldr-code/src/main/java/org/unicode/cldr/icu/XPPUtil.java
similarity index 100%
rename from tools/java/org/unicode/cldr/icu/XPPUtil.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/icu/XPPUtil.java
diff --git a/tools/java/org/unicode/cldr/json/CldrItem.java b/tools/cldr-code/src/main/java/org/unicode/cldr/json/CldrItem.java
similarity index 82%
rename from tools/java/org/unicode/cldr/json/CldrItem.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/json/CldrItem.java
index 092f408..6a30d87 100644
--- a/tools/java/org/unicode/cldr/json/CldrItem.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/json/CldrItem.java
@@ -2,6 +2,8 @@
import java.text.ParseException;
import java.util.ArrayList;
+import java.util.Set;
+import java.util.TreeSet;
import org.unicode.cldr.json.LdmlConvertRules.SplittableAttributeSpec;
import org.unicode.cldr.util.DtdData;
@@ -89,6 +91,15 @@
*/
private String untransformedPath;
+ protected String getUntransformedPath() {
+ return untransformedPath;
+ }
+
+ @Override
+ public String toString() {
+ return "[CldrItem " + getUntransformedPath()+"]";
+ }
+
/**
* The value of this CLDR item.
*/
@@ -222,7 +233,7 @@
* <calendarPreference territories="CN" ordering="gregorian chinese"/>
* <calendarPreference territories="CX" ordering="gregorian chinese"/>
*
- * @return Array of CldrItem if it can be split, otherwise null.
+ * @return Array of CldrItem if it can be split, otherwise null if nothing to split.
*/
public CldrItem[] split() {
XPathParts xpp = XPathParts.getFrozenInstance(path);
@@ -230,13 +241,19 @@
XPathParts untransformedxpp = XPathParts.getFrozenInstance(untransformedPath);
XPathParts untransformedfullxpp = XPathParts.getFrozenInstance(untransformedFullPath);
- for (SplittableAttributeSpec s : LdmlConvertRules.SPLITTABLE_ATTRS) {
+ for (SplittableAttributeSpec s : LdmlConvertRules.getSplittableAttrs()) {
if (fullxpp.containsElement(s.element) && fullxpp.containsAttribute(s.attribute)) {
ArrayList<CldrItem> list = new ArrayList<>();
String wordString = fullxpp.findAttributeValue(s.element, s.attribute);
- String[] words = null;
- words = wordString.trim().split("\\s+");
+ String[] words = wordString.trim().split("\\s+");
+ Set<String> hadWords = new TreeSet<>();
for (String word : words) {
+ if(hadWords.add(word) == false) {
+ System.err.println("Warning: Duplicate attribute " + word + " in " + fullPath);
+ continue;
+ }
+ // TODO: Ideally, there would be a separate post-split path transform.
+
XPathParts newxpp = xpp.cloneAsThawed();
XPathParts newfullxpp = fullxpp.cloneAsThawed();
XPathParts untransformednewxpp = untransformedxpp.cloneAsThawed();
@@ -265,7 +282,7 @@
return list.toArray(new CldrItem[list.size()]);
}
}
- return null;
+ return null; // nothing to split
}
/**
@@ -345,7 +362,50 @@
}
result = DtdData.getInstance(fileDtdType).getDtdComparator(null).compare(untransformedPath, otherItem.untransformedPath);
return result;
- //return CLDRFile.getLdmlComparator().compare(path, otherItem.path);
- //return path.compareTo(otherItem.path);
+ }
+
+ void adjustRbnfPath() {
+ XPathParts xpp = XPathParts.getFrozenInstance(getFullPath());
+ final String sub = xpp.findAttributeValue("rbnfrule", "value");
+ if(sub != null){
+ xpp = xpp.cloneAsThawed();
+ final String value = getValue();
+ xpp.removeAttribute(-1, "value");
+ xpp.addAttribute(sub, value);
+ setFullPath(xpp.toString());
+ setValue("");
+ }
+ // ADJUST ACCESS=PRIVATE/PUBLIC BASED ON ICU RULE
+ String fullpath = getFullPath();
+ if (fullpath.contains("/ruleset")) {
+ int ruleStartIndex = fullpath.indexOf("/ruleset[");
+ String checkString = fullpath.substring(ruleStartIndex);
+
+ int ruleEndIndex = 0;
+ if (checkString.contains("/")) {
+ ruleEndIndex = fullpath.indexOf("/", ruleStartIndex + 1);
+ }
+ if (ruleEndIndex > ruleStartIndex) {
+ String oldRulePath = fullpath.substring(ruleStartIndex, ruleEndIndex);
+
+ String newRulePath = oldRulePath;
+ if (newRulePath.contains("@type")) {
+ int typeIndexStart = newRulePath.indexOf("\"", newRulePath.indexOf("@type"));
+ int typeIndexEnd = newRulePath.indexOf("\"", typeIndexStart + 1);
+ String type = newRulePath.substring(typeIndexStart + 1, typeIndexEnd);
+
+ String newType = "";
+ if (newRulePath.contains("@access")) {
+ newType = "%%" + type;
+ } else {
+ newType = "%" + type;
+ }
+ newRulePath = newRulePath.replace(type, newType);
+ setPath(getPath().replace(type, newType));
+ }
+ fullpath = fullpath.replace(oldRulePath, newRulePath);
+ setFullPath(fullpath);
+ }
+ }
}
}
diff --git a/tools/java/org/unicode/cldr/json/CldrNode.java b/tools/cldr-code/src/main/java/org/unicode/cldr/json/CldrNode.java
similarity index 84%
rename from tools/java/org/unicode/cldr/json/CldrNode.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/json/CldrNode.java
index a4559eb..6c6ba4a 100644
--- a/tools/java/org/unicode/cldr/json/CldrNode.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/json/CldrNode.java
@@ -142,8 +142,9 @@
public Map<String, String> getAttrAsValueMap() {
Map<String, String> attributesAsValues = new HashMap<>();
for (String key : distinguishingAttributes.keySet()) {
- String keyStr = parent + ":" + name + ":" + key;
- if (LdmlConvertRules.ATTR_AS_VALUE_SET.contains(keyStr)) {
+ String keyStr = LdmlConvertRules.getKeyStr(getParent(), name, key);
+ String keyStr2 = LdmlConvertRules.getKeyStr(name, key);
+ if (LdmlConvertRules.ATTR_AS_VALUE_SET.contains(keyStr) || LdmlConvertRules.ATTR_AS_VALUE_SET.contains(keyStr2)) {
if (LdmlConvertRules.COMPACTABLE_ATTR_AS_VALUE_SET.contains(keyStr)) {
attributesAsValues.put(LdmlConvertRules.ANONYMOUS_KEY,
distinguishingAttributes.get(key));
@@ -157,7 +158,7 @@
if (LdmlConvertRules.IGNORABLE_NONDISTINGUISHING_ATTR_SET.contains(key)) {
continue;
}
- String keyStr = parent + ":" + name + ":" + key;
+ String keyStr = LdmlConvertRules.getKeyStr(getParent(), name, key);
if (LdmlConvertRules.COMPACTABLE_ATTR_AS_VALUE_SET.contains(keyStr)) {
attributesAsValues.put(LdmlConvertRules.ANONYMOUS_KEY,
nondistinguishingAttributes.get(key));
@@ -165,6 +166,20 @@
attributesAsValues.put(key, nondistinguishingAttributes.get(key));
}
}
+
+ // ADJUST RADIX BASED ON ICU RULE
+ final String radixValue = attributesAsValues.get("radix");
+ if(radixValue != null) {
+ attributesAsValues.remove("radix");
+ for (Map.Entry<String, String> attributes : attributesAsValues.entrySet()) {
+ String oldKey = attributes.getKey();
+ String newValue = attributes.getValue();
+ String newKey = oldKey + "/" + radixValue;
+ attributesAsValues.remove(oldKey);
+ attributesAsValues.put(newKey, newValue);
+
+ }
+ }
return attributesAsValues;
}
@@ -212,12 +227,15 @@
// decide the main name
StringBuffer strbuf = new StringBuffer();
+ String lastKey = null; // for err message
for (String key : distinguishingAttributes.keySet()) {
- String attrIdStr = parent + ":" + name + ":" + key;
+ String attrIdStr = LdmlConvertRules.getKeyStr(getParent(), name, key);
+ String attrIdStr2 = LdmlConvertRules.getKeyStr(name, key);
if (LdmlConvertRules.IsSuppresedAttr(attrIdStr)) {
continue;
}
- if (LdmlConvertRules.ATTR_AS_VALUE_SET.contains(attrIdStr)) {
+ if (LdmlConvertRules.ATTR_AS_VALUE_SET.contains(attrIdStr)
+ || LdmlConvertRules.ATTR_AS_VALUE_SET.contains(attrIdStr2)) { // with *
continue;
}
@@ -226,10 +244,11 @@
if (strbuf.length() != 0) {
throw new IllegalArgumentException(
"Can not have more than 1 key values in name: " +
- "both '" + strbuf + "' and '" + distinguishingAttributes.get(key) +
- "'. attrIdStr=" + attrIdStr + " - check LdmlConvertRules.java");
+ "both '" + strbuf + "' ("+lastKey+") and '" + distinguishingAttributes.get(key) +
+ "' ("+key+"). attrIdStr=" + attrIdStr + " - check LdmlConvertRules.java#NAME_PART_DISTINGUISHING_ATTR_SET");
}
strbuf.append(distinguishingAttributes.get(key));
+ lastKey = key;
}
}
if (strbuf.length() == 0) {
@@ -238,11 +257,12 @@
// append distinguishing attributes
for (String key : distinguishingAttributes.keySet()) {
- String attrIdStr = parent + ":" + name + ":" + key;
+ String attrIdStr = LdmlConvertRules.getKeyStr(getParent(), name, key);
+ String attrIdStr2 = LdmlConvertRules.getKeyStr(name, key);
if (LdmlConvertRules.IsSuppresedAttr(attrIdStr)) {
continue;
}
- if (LdmlConvertRules.ATTR_AS_VALUE_SET.contains(attrIdStr)) {
+ if (LdmlConvertRules.ATTR_AS_VALUE_SET.contains(attrIdStr) || LdmlConvertRules.ATTR_AS_VALUE_SET.contains(attrIdStr2)) {
continue;
}
@@ -298,4 +318,13 @@
public boolean isTimezoneType() {
return LdmlConvertRules.TIMEZONE_ELEMENT_NAME_SET.contains(name);
}
+
+ @Override
+ public String toString() {
+ return "[CldrNode "+getParent()+"/"+getNodeDistinguishingName()+"]";
+ }
+
+ public String getParent() {
+ return parent;
+ }
}
diff --git a/tools/java/org/unicode/cldr/json/Ldml2JsonConverter.java b/tools/cldr-code/src/main/java/org/unicode/cldr/json/Ldml2JsonConverter.java
similarity index 73%
rename from tools/java/org/unicode/cldr/json/Ldml2JsonConverter.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/json/Ldml2JsonConverter.java
index 8086035..d43ef43 100644
--- a/tools/java/org/unicode/cldr/json/Ldml2JsonConverter.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/json/Ldml2JsonConverter.java
@@ -8,14 +8,18 @@
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.LinkedList;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
+import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import java.util.stream.Collectors;
import org.unicode.cldr.draft.FileUtilities;
import org.unicode.cldr.draft.ScriptMetadata;
@@ -27,6 +31,7 @@
import org.unicode.cldr.util.CLDRFile.DraftStatus;
import org.unicode.cldr.util.CLDRPaths;
import org.unicode.cldr.util.CLDRTool;
+import org.unicode.cldr.util.CLDRURLS;
import org.unicode.cldr.util.CldrUtility;
import org.unicode.cldr.util.CoverageInfo;
import org.unicode.cldr.util.DtdData;
@@ -35,6 +40,7 @@
import org.unicode.cldr.util.FileProcessor;
import org.unicode.cldr.util.Level;
import org.unicode.cldr.util.LocaleIDParser;
+import org.unicode.cldr.util.Pair;
import org.unicode.cldr.util.PatternCache;
import org.unicode.cldr.util.StandardCodes;
import org.unicode.cldr.util.SupplementalDataInfo;
@@ -47,6 +53,12 @@
import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;
import com.google.gson.stream.JsonWriter;
+import com.ibm.icu.number.IntegerWidth;
+import com.ibm.icu.number.LocalizedNumberFormatter;
+import com.ibm.icu.number.NumberFormatter;
+import com.ibm.icu.number.Precision;
+import com.ibm.icu.util.ICUUncheckedIOException;
+import com.ibm.icu.util.NoUnit;
/**
* Utility methods to extract data from CLDR repository and export it in JSON
@@ -56,10 +68,30 @@
*/
@CLDRTool(alias = "ldml2json", description = "Convert CLDR data to JSON")
public class Ldml2JsonConverter {
+ private static final String CLDR_PKG_PREFIX = "cldr-";
+ private static final String FULL_TIER_SUFFIX = "-full";
+ private static final String MODERN_TIER_SUFFIX = "-modern";
private static boolean DEBUG = false;
private enum RunType {
- main, supplemental, segments, rbnf, annotations, annotationsDerived
+ main,
+ supplemental(false), // aka 'core'
+ segments, rbnf(false), annotations, annotationsDerived;
+
+ private final boolean isTiered;
+ RunType() {
+ this.isTiered = true;
+ }
+ RunType(boolean isTiered) {
+ this.isTiered = isTiered;
+ }
+ /**
+ * Is it split into modern/full?
+ * @return
+ */
+ public boolean tiered() {
+ return isTiered;
+ }
}
private static final StandardCodes sc = StandardCodes.make();
@@ -100,7 +132,8 @@
"Whether to group data files into installable packages")
.add("identity", 'i', "(true|false)", "true",
"Whether to copy the identity info into all sections containing data")
- .add("konfig", 'k', ".*", null, "LDML to JSON configuration file");
+ .add("konfig", 'k', ".*", null, "LDML to JSON configuration file")
+ .add("pkgversion", 'V', ".*", getDefaultVersion(), "Version to be used in writing package files");
public static void main(String[] args) throws Exception {
options.parse(args, true);
@@ -114,7 +147,8 @@
options.get("coverage").getValue(),
options.get("match").getValue(),
Boolean.parseBoolean(options.get("packages").getValue()),
- options.get("konfig").getValue());
+ options.get("konfig").getValue(),
+ options.get("pkgversion").getValue());
long start = System.currentTimeMillis();
DraftStatus status = DraftStatus.valueOf(options.get("draftstatus").getValue());
@@ -138,7 +172,7 @@
// Whether we should write output files into installable packages
private boolean writePackages;
// Type of run for this converter: main, supplemental, or segments
- private RunType type;
+ final private RunType type;
private class JSONSection implements Comparable<JSONSection> {
public String section;
@@ -155,9 +189,10 @@
private Map<String, String> dependencies;
private List<JSONSection> sections;
private Set<String> packages;
+ final private String pkgVersion;
public Ldml2JsonConverter(String cldrDir, String outputDir, String runType, boolean fullNumbers, boolean resolve, String coverage, String match,
- boolean writePackages, String configFile) {
+ boolean writePackages, String configFile, String pkgVersion) {
this.cldrCommonDir = cldrDir;
this.outputDir = outputDir;
this.type = RunType.valueOf(runType);
@@ -166,6 +201,9 @@
this.match = match;
this.writePackages = writePackages;
this.coverageValue = Level.get(coverage).getLevel();
+ this.pkgVersion = pkgVersion;
+
+ LdmlConvertRules.addVersionHandler(pkgVersion.split("\\.")[0]);
sections = new ArrayList<>();
packages = new TreeSet<>();
@@ -234,7 +272,7 @@
myReader.process(Ldml2JsonConverter.class, "JSON_config_rbnf.txt");
break;
default:
- myReader.process(Ldml2JsonConverter.class, "JSON_config_"+type.name()+".txt");
+ myReader.process(Ldml2JsonConverter.class, "JSON_config_" + type.name() + ".txt");
}
}
@@ -250,6 +288,7 @@
* @see XPathParts#addInternal
*/
static final Pattern ANNOTATION_CP_REMAP = PatternCache.get("^(.*)\\[@cp=\"(\\[|\\]|'|\"|@|/|=)\"\\](.*)$");
+
/**
* Transform the path by applying PATH_TRANSFORMATIONS rules.
*
@@ -262,13 +301,13 @@
// handle annotation cp value
Matcher cpm = ANNOTATION_CP_REMAP.matcher(result);
- if( cpm.matches() ) {
+ if (cpm.matches()) {
// We need to avoid breaking the syntax not just of JSON, but of XPATH.
final String badCodepointRange = cpm.group(2);
StringBuilder sb = new StringBuilder(cpm.group(1))
.append("[@cp=\"");
// JSON would handle a wide range of things if escaped, but XPATH will not.
- if(badCodepointRange.codePointCount(0, badCodepointRange.length()) != 1) {
+ if (badCodepointRange.codePointCount(0, badCodepointRange.length()) != 1) {
// forbid more than one U+ (because we will have to unescape it.)
throw new IllegalArgumentException("Need exactly one codepoint in the @cp string, but got " + badCodepointRange + " in xpath " + pathStr);
}
@@ -280,17 +319,7 @@
if (DEBUG) {
System.out.println(" IN pathStr : " + result);
}
- Matcher m;
- for (int i = 0; i < LdmlConvertRules.PATH_TRANSFORMATIONS.length; i++) {
- m = LdmlConvertRules.PATH_TRANSFORMATIONS[i].pattern.matcher(result);
- if (m.matches()) {
- if (DEBUG) {
- System.out.println(LdmlConvertRules.PATH_TRANSFORMATIONS[i].pattern);
- }
- result = m.replaceFirst(LdmlConvertRules.PATH_TRANSFORMATIONS[i].replacement);
- break;
- }
- }
+ result = LdmlConvertRules.PathTransformSpec.applyAll(result);
result = result.replaceFirst("/ldml/", pathPrefix);
result = result.replaceFirst("/supplementalData/", pathPrefix);
@@ -300,7 +329,7 @@
result.contains("likelySubtags") ||
result.contains("parentLocale") ||
result.contains("locales=")) {
- result = result.replaceAll("_", "-");
+ result = localeIdToLangTag(result);
}
if (DEBUG) {
System.out.println("OUT pathStr : " + result);
@@ -313,7 +342,7 @@
}
private Map<JSONSection, List<CldrItem>> mapPathsToSections(AtomicInteger readCount, int totalCount,
- CLDRFile file, String pathPrefix, SupplementalDataInfo sdi)
+ CLDRFile file, String pathPrefix, SupplementalDataInfo sdi)
throws IOException, ParseException {
final Map<JSONSection, List<CldrItem>> sectionItems = new TreeMap<>();
@@ -386,7 +415,7 @@
String transformedPath = transformPath(path, pathPrefix);
String transformedFullPath = transformPath(fullPath, pathPrefix);
- if(transformedPath.isEmpty()) {
+ if (transformedPath.isEmpty()) {
continue; // skip this path
}
@@ -447,18 +476,30 @@
* The file name used to save JSON data.
* @throws IOException
* @throws ParseException
+ * @return total items written in all files. (if 0, file had no effect)
*/
- private void convertCldrItems(AtomicInteger readCount, int totalCount,
- String dirName, String filename, String pathPrefix,
- final Map<JSONSection, List<CldrItem>> sectionItems)
+ private int convertCldrItems(AtomicInteger readCount, int totalCount,
+ String dirName, String filename, String pathPrefix,
+ final Map<JSONSection, List<CldrItem>> sectionItems)
throws IOException, ParseException {
// zone and timezone items are queued for sorting first before they are
// processed.
+ int totalItemsInFile = 0;
+
+ List<Pair<String,Integer>> outputProgress = new LinkedList<>();
+
for (JSONSection js : sections) {
+ if (js.section.equals("IGNORE")) {
+ continue;
+ }
String outFilename;
+ final String filenameAsLangTag = localeIdToLangTag(filename);
if (type == RunType.rbnf) {
- outFilename = filename.replaceAll("_", "-") + ".json";
+ outFilename = filenameAsLangTag + ".json";
+ } else if(js.section.equals("other")) {
+ // If you see other-___.json, it means items that were missing from JSON_config_*.txt
+ outFilename = js.section + "-" + filenameAsLangTag + ".json";
} else {
outFilename = js.section + ".json";
}
@@ -469,40 +510,40 @@
} else {
StringBuilder outputDirname = new StringBuilder(outputDir);
if (writePackages) {
- if (type != RunType.supplemental && type != RunType.rbnf) {
+ if (type.tiered()) {
LocaleIDParser lp = new LocaleIDParser();
lp.set(filename);
if (defaultContentLocales.contains(filename) &&
lp.getRegion().length() > 0) {
if (type == RunType.main) {
- skippedDefaultContentLocales.add(filename.replaceAll("_", "-"));
+ skippedDefaultContentLocales.add(filenameAsLangTag);
}
continue;
}
- Level localeCoverageLevel = sc.getLocaleCoverageLevel("Cldr", filename);
- if (localeCoverageLevel == Level.MODERN || filename.equals("root")) {
- tier = "-modern";
+ final boolean isModernTier = localeIsModernTier(filename);
+ if (isModernTier) {
+ tier = MODERN_TIER_SUFFIX;
if (type == RunType.main) {
- avl.modern.add(filename.replaceAll("_", "-"));
+ avl.modern.add(filenameAsLangTag);
}
} else {
- tier = "-full";
+ tier = FULL_TIER_SUFFIX;
}
if (type == RunType.main) {
- avl.full.add(filename.replaceAll("_", "-"));
+ avl.full.add(filenameAsLangTag);
}
} else if (type == RunType.rbnf) {
js.packageName = "rbnf";
tier = "";
}
if (js.packageName != null) {
- String packageName = "cldr-" + js.packageName + tier;
+ String packageName = CLDR_PKG_PREFIX + js.packageName + tier;
outputDirname.append("/" + packageName);
packages.add(packageName);
}
outputDirname.append("/" + dirName + "/");
- if (type != RunType.supplemental && type != RunType.rbnf) {
- outputDirname.append(filename.replaceAll("_", "-"));
+ if (type.tiered()) {
+ outputDirname.append(filenameAsLangTag);
}
if (DEBUG) {
System.out.println("outDir: " + outputDirname);
@@ -517,21 +558,26 @@
if (!dir.exists()) {
dir.mkdirs();
}
+ assert(tier.isEmpty() == !type.tiered());
List<String> outputDirs = new ArrayList<>();
outputDirs.add(outputDirname.toString());
- if (writePackages && type == RunType.main && tier.equals("-modern")) {
- outputDirs.add(outputDirname.toString().replaceFirst("-modern", "-full"));
+ if (writePackages && tier.equals(MODERN_TIER_SUFFIX) && js.packageName != null) {
+ // if it is in 'modern', add it to 'full' also.
+ outputDirs.add(outputDirname.toString().replaceFirst(MODERN_TIER_SUFFIX, FULL_TIER_SUFFIX));
+ // Also need to make sure that the full package is added
+ packages.add(CLDR_PKG_PREFIX + js.packageName + FULL_TIER_SUFFIX);
}
for (String outputDir : outputDirs) {
List<CldrItem> theItems = sectionItems.get(js);
if (theItems == null || theItems.size() == 0) {
- System.out.println(">"+progressPrefix(readCount, totalCount) +
- outputDir + " - no items to write");
+ if (DEBUG) System.out.println(">" + progressPrefix(readCount, totalCount) +
+ outputDir + " - no items to write in " + js.section); // mostly noise
continue;
}
- System.out.println("?"+progressPrefix(readCount, totalCount) + outputDir + " - " + theItems.size() + " item(s) to write.");
+ if(DEBUG) System.out
+ .print("?" + progressPrefix(readCount, totalCount, filename, js.section) + " - " + theItems.size() + " item(s)" + "\r");
PrintWriter outf = FileUtilities.openUTF8Writer(outputDir, outFilename);
JsonWriter out = new JsonWriter(outf);
out.setIndent(" ");
@@ -545,64 +591,12 @@
int valueCount = 0;
String previousIdentityPath = null;
for (CldrItem item : theItems) {
- if(item.getPath().isEmpty()) {
- throw new IllegalArgumentException("empty xpath in " + filename + " section " + js.packageName+"/"+js.section);
+ if (item.getPath().isEmpty()) {
+ throw new IllegalArgumentException("empty xpath in " + filename + " section " + js.packageName + "/" + js.section);
}
if (type == RunType.rbnf) {
- item.setValue(item.getValue().replace('→', '>'));
- item.setValue(item.getValue().replace('←', '<'));
- if (item.getFullPath().contains("@value")) {
- int indexStart = item.getFullPath().indexOf("@value") + 8;
- int indexEnd = item.getFullPath().indexOf("]", indexStart) - 1;
- if (indexStart >= 0 && indexEnd >= 0 && indexEnd > indexStart) {
- String sub = item.getFullPath().substring(indexStart, indexEnd);
- /* System.out.println("sub: " + sub);
- System.out.println("full: " + item.getFullPath());
- System.out.println("val: " + item.getValue());*/
- item.setFullPath(item.getFullPath().replace(sub, item.getValue()));
- item.setFullPath(item.getFullPath().replaceAll("@value", "@" + sub));
- //System.out.println("modifyfull: " + item.getFullPath());
- item.setValue("");
- }
- }
-
+ item.adjustRbnfPath();
}
- // ADJUST ACCESS=PRIVATE/PUBLIC BASED ON ICU RULE -- START
- if (type == RunType.rbnf) {
- String fullpath = item.getFullPath();
- if (fullpath.contains("/ruleset")) {
- int ruleStartIndex = fullpath.indexOf("/ruleset[");
- String checkString = fullpath.substring(ruleStartIndex);
-
- int ruleEndIndex = 0;
- if (checkString.contains("/")) {
- ruleEndIndex = fullpath.indexOf("/", ruleStartIndex + 1);
- }
- if (ruleEndIndex > ruleStartIndex) {
- String oldRulePath = fullpath.substring(ruleStartIndex, ruleEndIndex);
-
- String newRulePath = oldRulePath;
- if (newRulePath.contains("@type")) {
- int typeIndexStart = newRulePath.indexOf("\"", newRulePath.indexOf("@type"));
- int typeIndexEnd = newRulePath.indexOf("\"", typeIndexStart + 1);
- String type = newRulePath.substring(typeIndexStart + 1, typeIndexEnd);
-
- String newType = "";
- if (newRulePath.contains("@access")) {
- newType = "%%" + type;
- } else {
- newType = "%" + type;
- }
- newRulePath = newRulePath.replace(type, newType);
- item.setPath(item.getPath().replace(type, newType));
- }
- fullpath = fullpath.replace(oldRulePath, newRulePath);
- item.setFullPath(fullpath);
-
- }
- }
- }
- // ADJUST ACCESS=PRIVATE/PUBLIC BASED ON ICU RULE -- END
// items in the identity section of a file should only ever contain the lowest level, even if using
// resolving source, so if we have duplicates ( caused by attributes used as a value ) then suppress
@@ -624,13 +618,21 @@
// some items need to be split to multiple item before processing. None
// of those items need to be sorted.
+ // Applies to SPLITTABLE_ATTRS attributes.
CldrItem[] items = item.split();
if (items == null) {
+ // Nothing to split. Make it a 1-element array.
items = new CldrItem[1];
items[0] = item;
}
valueCount += items.length;
+ // Hard code this part.
+ if (item.getUntransformedPath().contains("unitPreference")) {
+ // Need to do more transforms on this one, so just output version/etc here.
+ continue;
+ }
+
for (CldrItem newItem : items) {
// alias will be dropped in conversion, don't count it.
if (newItem.isAliasItem()) {
@@ -654,6 +656,7 @@
lastLeadingArrayItemPath = leadingArrayItemPath;
arrayItems.add(newItem);
} else {
+ // output a single item
resolveSortingItems(out, nodesForLastItem, sortingItems);
resolveArrayItems(out, nodesForLastItem, arrayItems);
outputCldrItem(out, nodesForLastItem, newItem);
@@ -665,14 +668,149 @@
resolveSortingItems(out, nodesForLastItem, sortingItems);
resolveArrayItems(out, nodesForLastItem, arrayItems);
- System.out.println(">"+progressPrefix(readCount, totalCount) + String.format(".../%s/%s\t= %d values",
- dir.getPath().substring(this.outputDir.length()+1), outFilename, valueCount));
+ if (js.section.contains("unitPreferenceData")) {
+ outputUnitPreferenceData(js, theItems, out, nodesForLastItem);
+ }
+
closeNodes(out, nodesForLastItem.size() - 2, 0);
+
outf.println();
out.close();
+
+ String outPath = new File(outputDir.substring(this.outputDir.length()), outFilename).getPath();
+ outputProgress.add(Pair.of(js.section+' '+outPath, valueCount));
+ if(DEBUG) {
+ String outStr = ">" + progressPrefix(readCount, totalCount, filename, js.section) + String.format("…%s (%d values)",
+ outPath, valueCount);
+ synchronized(readCount) { // to prevent interleaved output
+ System.out.println(outStr);
+ }
+ }
+
+ totalItemsInFile += valueCount;
}
}
+
+ } // this is the only normal output with debug off
+ StringBuilder outStr = new StringBuilder();
+ if(!outputProgress.isEmpty()) {
+ // Put these first, so the percent is at the end.
+ for(final Pair<String, Integer> outputItem : outputProgress) {
+ outStr.append(String.format("\t%s (%d)\n", outputItem.getFirst(), outputItem.getSecond()));
+ }
+ outStr.append(String.format("%s%s (%d values in %d sections)\n",
+ progressPrefix(readCount, totalCount), filename,
+ totalItemsInFile, outputProgress.size()));
+ } else {
+ outStr.append(String.format("%s%s (no items output)\n", progressPrefix(readCount, totalCount), filename));
}
+ synchronized(readCount) { // to prevent interleaved output
+ System.out.print(outStr);
+ }
+ return totalItemsInFile;
+ }
+
+ private boolean localeIsModernTier(String filename) {
+ boolean isModernTier;
+ {
+ final Level localeCoverageLevel = sc.getLocaleCoverageLevel("Cldr", filename);
+ isModernTier = localeCoverageLevel == Level.MODERN || filename.equals("root");
+ }
+ return isModernTier;
+ }
+
+ private String localeIdToLangTag(String filename) {
+ return filename.replaceAll("_", "-");
+ }
+
+ private void outputUnitPreferenceData(JSONSection js, List<CldrItem> theItems, JsonWriter out, ArrayList<CldrNode> nodesForLastItem)
+ throws ParseException, IOException {
+ // handle these specially.
+ // redo earlier loop somewhat.
+ CldrNode unitPrefNode = CldrNode.createNode("supplemental", js.section, js.section);
+ startNonleafNode(out, unitPrefNode, 1);
+ // Computer, switch to 'manual' navigation
+ // We'll directly write to 'out'
+
+ // Unit preference sorting is a bit more complicated, so we're going to use the CldrItems,
+ // but collect the results more directly.
+
+ Map<Pair<String, String>, Map<String, List<CldrItem>>> catUsagetoRegionItems = new TreeMap<>();
+
+ for (CldrItem item : theItems) {
+ if (!item.getUntransformedPath().contains("unitPref")) {
+ continue;
+ }
+ CldrItem[] items = item.split();
+ if (items == null) {
+ throw new IllegalArgumentException("expected unit pref to split: " + item);
+ }
+ for (final CldrItem subItem : items) {
+ // step 1: make sure the category/usage is there
+ final XPathParts xpp = XPathParts.getFrozenInstance(subItem.getPath());
+ final String category = xpp.findFirstAttributeValue("category");
+ final String usage = xpp.findFirstAttributeValue("usage");
+ final String region = xpp.findFirstAttributeValue("regions"); // actually one region (split)
+ Pair<String, String> key = Pair.of(category, usage);
+ Map<String, List<CldrItem>> regionMap = catUsagetoRegionItems.computeIfAbsent(key, ignored -> new TreeMap<>());
+ List<CldrItem> perRegion = regionMap.computeIfAbsent(region, ignored -> new ArrayList<>());
+ perRegion.add(subItem);
+ }
+ }
+
+ // OK, now start outputting
+ // Traverse categories/usage/regions
+ // unitPreferenceData is already open {
+ catUsagetoRegionItems.keySet().stream().map(p -> p.getFirst()).distinct() // for each category
+ .forEach(category -> {
+ try {
+ out.name(category).beginObject();
+ catUsagetoRegionItems.entrySet().stream().filter(p -> p.getKey().getFirst().equals(category))
+ .forEach(ent -> {
+ final String usage = ent.getKey().getSecond();
+ try {
+ out.name(usage);
+ out.beginObject();
+
+ ent.getValue().forEach((region, list) -> {
+ try {
+ out.name(region);
+ out.beginArray();
+ list.forEach(item -> {
+ try {
+ final XPathParts xpp = XPathParts.getFrozenInstance(item.getPath());
+ out.beginObject();
+ out.name("unit");
+ out.value(item.getValue());
+ if (xpp.containsAttribute("geq")) {
+ out.name("geq");
+ out.value(Double.parseDouble(xpp.findFirstAttributeValue("geq")));
+ }
+ out.endObject();
+ } catch (IOException e) {
+ throw (new ICUUncheckedIOException(e));
+ }
+ });
+ out.endArray();
+ } catch (IOException e) {
+ throw (new ICUUncheckedIOException(e));
+ }
+ });
+ out.endObject();
+ } catch (IOException e) {
+ throw (new ICUUncheckedIOException(e));
+ }
+ });
+ out.endObject();
+ } catch (IOException e) {
+ e.printStackTrace();
+ throw (new ICUUncheckedIOException(e));
+ }
+ });
+
+ // Computer, switch to 'automatic' navigation
+ // We'll let closeNodes take over.
+ nodesForLastItem.add(unitPrefNode); // unitPreferenceData }
}
/**
@@ -689,11 +827,7 @@
public void writeBasicInfo(JsonObject obj, String packageName, boolean isNPM) {
obj.addProperty("name", packageName);
- String versionString = CLDRFile.GEN_VERSION;
- while (versionString.split("\\.").length < 3) {
- versionString = versionString + ".0";
- }
- obj.addProperty("version", versionString);
+ obj.addProperty("version", pkgVersion);
String[] packageNameParts = packageName.split("-");
String dependency = dependencies.get(packageNameParts[1]);
@@ -703,19 +837,31 @@
if (dependency.equals("core")) {
dependentPackageNames[0] = "cldr-core";
} else {
- dependentPackageNames[0] = "cldr-" + dependency + "-" + tier;
+ dependentPackageNames[0] = CLDR_PKG_PREFIX + dependency + "-" + tier;
}
JsonObject dependencies = new JsonObject();
for (String dependentPackageName : dependentPackageNames) {
if (dependentPackageName != null) {
- dependencies.addProperty(dependentPackageName, versionString);
+ dependencies.addProperty(dependentPackageName, pkgVersion);
}
}
obj.add(isNPM ? "peerDependencies" : "dependencies", dependencies);
}
}
+ /**
+ * Default for version string
+ * @return
+ */
+ private static String getDefaultVersion() {
+ String versionString = CLDRFile.GEN_VERSION;
+ while (versionString.split("\\.").length < 3) {
+ versionString = versionString + ".0";
+ }
+ return versionString;
+ }
+
public void writePackageJson(String outputDir, String packageName) throws IOException {
PrintWriter outf = FileUtilities.openUTF8Writer(outputDir + "/" + packageName, "package.json");
System.out.println("Creating packaging file => " + outputDir + File.separator + packageName + File.separator + "package.json");
@@ -725,23 +871,23 @@
JsonArray maintainers = new JsonArray();
JsonObject primaryMaintainer = new JsonObject();
- obj.addProperty("homepage", "http://cldr.unicode.org");
- obj.addProperty("author", "The Unicode Consortium");
+ obj.addProperty("homepage", CLDRURLS.CLDR_HOMEPAGE);
+ obj.addProperty("author", CLDRURLS.UNICODE_CONSORTIUM);
primaryMaintainer.addProperty("name", "John Emmons");
primaryMaintainer.addProperty("email", "emmo@us.ibm.com");
primaryMaintainer.addProperty("url", "https://github.com/JCEmmons");
+
maintainers.add(primaryMaintainer);
obj.add("maintainers", maintainers);
JsonObject repository = new JsonObject();
repository.addProperty("type", "git");
- repository.addProperty("url", "git://github.com/unicode-cldr/" + packageName + ".git");
+ repository.addProperty("url", "git://github.com/unicode-cldr/cldr-json.git");
obj.add("repository", repository);
- obj.addProperty("license", "Unicode-DFS-2016");
-
- obj.addProperty("bugs", "https://unicode-org.atlassian.net/projects/CLDR/issues");
+ obj.addProperty("license", CLDRURLS.UNICODE_SPDX);
+ obj.addProperty("bugs", CLDRURLS.CLDR_NEWTICKET_URL);
outf.println(gson.toJson(obj));
outf.close();
@@ -755,7 +901,7 @@
if (type == RunType.supplemental) {
JsonArray mainPaths = new JsonArray();
mainPaths.add(new JsonPrimitive("availableLocales.json"));
- mainPaths.add(new JsonPrimitive("defaultContent.json"));
+ mainPaths.add(new JsonPrimitive("defaultContent.json")); // Handled specially
mainPaths.add(new JsonPrimitive("scriptMetadata.json"));
mainPaths.add(new JsonPrimitive(type.toString() + "/*.json"));
obj.add("main", mainPaths);
@@ -769,6 +915,7 @@
ignorePaths.add(new JsonPrimitive(".gitattributes"));
ignorePaths.add(new JsonPrimitive("README.md"));
obj.add("ignore", ignorePaths);
+ obj.addProperty("license", CLDRURLS.UNICODE_SPDX);
outf.println(gson.toJson(obj));
outf.close();
@@ -868,7 +1015,6 @@
ArrayList<CldrNode> nodesForLastItem,
ArrayList<CldrItem> arrayItems)
throws IOException, ParseException {
- boolean rbnfFlag = false;
if (!arrayItems.isEmpty()) {
CldrItem firstItem = arrayItems.get(0);
if (firstItem.needsSort()) {
@@ -887,26 +1033,16 @@
nodesForLastItem.remove(len - 1);
len--;
}
- if (arrayItems.get(0).getFullPath().contains("rbnfrule")) {
- rbnfFlag = true;
- out.beginObject();
- }
for (CldrItem insideItem : arrayItems) {
outputArrayItem(out, insideItem, nodesForLastItem, arrayLevel);
}
- if (rbnfFlag) {
- out.endObject();
- }
-
arrayItems.clear();
int lastLevel = nodesForLastItem.size() - 1;
closeNodes(out, lastLevel, arrayLevel);
- if (!rbnfFlag) {
- out.endArray();
- }
+ out.endArray();
for (int i = arrayLevel - 1; i < lastLevel; i++) {
nodesForLastItem.remove(i);
}
@@ -965,9 +1101,7 @@
String objName = nodesInPath.get(i).getNodeKeyName();
out.name(objName);
- if (!item.getFullPath().contains("rbnfrule")) {
- out.beginArray();
- }
+ out.beginArray();
}
/**
@@ -1063,8 +1197,8 @@
Map<String, String> attrAsValueMap = node.getAttrAsValueMap();
- if( type == RunType.annotations || type == RunType.annotationsDerived ) {
- if(objName.startsWith("U+")) {
+ if (type == RunType.annotations || type == RunType.annotationsDerived) {
+ if (objName.startsWith("U+")) {
// parse U+22 -> " etc
out.name(com.ibm.icu.text.UTF16.valueOf(Integer.parseInt(objName.substring(2), 16)));
} else {
@@ -1120,6 +1254,8 @@
// case 1
int diff = findFirstDiffNodeIndex(nodesForLastItem, nodesInPath);
+ CldrNode cldrNode = nodesInPath.get(nodesNum - 1);
+
if (diff > arrayLevel) {
// close previous nodes
closeNodes(out, nodesForLastItem.size() - 1, diff + 1);
@@ -1127,7 +1263,7 @@
for (int i = diff; i < nodesNum - 1; i++) {
startNonleafNode(out, nodesInPath.get(i), i + 1);
}
- writeLeafNode(out, nodesInPath.get(nodesNum - 1), value, nodesNum);
+ writeLeafNode(out, cldrNode, value, nodesNum);
return;
}
@@ -1138,42 +1274,24 @@
closeNodes(out, nodesForLastItem.size() - 1, arrayLevel);
}
- String objName = nodesInPath.get(nodesNum - 1).getNodeKeyName();
+ String objName = cldrNode.getNodeKeyName();
int pos = objName.indexOf('-');
if (pos > 0) {
objName = objName.substring(0, pos);
}
- Map<String, String> attrAsValueMap = nodesInPath.get(nodesNum - 1).getAttrAsValueMap();
-
- // ADJUST RADIX BASED ON ICU RULE -- BEGIN
- if (attrAsValueMap.containsKey("radix")) {
- String radixValue = attrAsValueMap.get("radix");
- attrAsValueMap.remove("radix");
- for (Map.Entry<String, String> attributes : attrAsValueMap.entrySet()) {
- String oldKey = attributes.getKey();
- String newValue = attributes.getValue();
- String newKey = oldKey + "/" + radixValue;
- attrAsValueMap.remove(oldKey);
- attrAsValueMap.put(newKey, newValue);
-
- }
- }
- // ADJUST RADIX BASED ON ICU RULE -- END
+ Map<String, String> attrAsValueMap = cldrNode.getAttrAsValueMap();
if (attrAsValueMap.isEmpty()) {
out.beginObject();
out.name(objName).value(value);
out.endObject();
+ } else if (objName.equals("rbnfrule")) {
+ writeRbnfLeafNode(out, item, attrAsValueMap);
} else {
- if (!objName.equals("rbnfrule")) {
- out.beginObject();
- }
- writeLeafNode(out, objName, attrAsValueMap, value, nodesNum);
- if (!objName.equals("rbnfrule")) {
- out.endObject();
- }
-
+ out.beginObject();
+ writeLeafNode(out, objName, attrAsValueMap, value, nodesNum, cldrNode.getName(), cldrNode.getParent());
+ out.endObject();
}
// the last node is closed, remove it.
nodesInPath.remove(nodesNum - 1);
@@ -1203,13 +1321,24 @@
for (int i = arrayLevel + 1; i < nodesInPath.size() - 1; i++) {
startNonleafNode(out, nodesInPath.get(i), i + 1);
}
- writeLeafNode(out, nodesInPath.get(nodesNum - 1), value, nodesNum);
+ writeLeafNode(out, cldrNode, value, nodesNum);
}
nodesForLastItem.clear();
nodesForLastItem.addAll(nodesInPath);
}
+ private void writeRbnfLeafNode(JsonWriter out, CldrItem item, Map<String, String> attrAsValueMap) throws IOException {
+ if(attrAsValueMap.size() != 1) {
+ throw new IllegalArgumentException("Error, attributes seem wrong for RBNF " + item.getUntransformedPath());
+ }
+ Entry<String, String> entry = attrAsValueMap.entrySet().iterator().next();
+ out.beginArray()
+ .value(entry.getKey())
+ .value(entry.getValue())
+ .endArray();
+ }
+
/**
* Compare two nodes list, find first index that the two list have different
* nodes and return it.
@@ -1233,12 +1362,27 @@
return i;
}
+ private String progressPrefix(AtomicInteger readCount, int totalCount, String filename, String section) {
+ return progressPrefix(readCount.get(), totalCount, filename, section);
+ }
+
+ private String progressPrefix(int readCount, int totalCount, String filename, String section) {
+ return progressPrefix(readCount, totalCount) + filename + "\t" + section + "\t";
+ }
+
private final String progressPrefix(AtomicInteger readCount, int totalCount) {
return progressPrefix(readCount.get(), totalCount);
}
+ LocalizedNumberFormatter percentFormatter = NumberFormatter
+ .withLocale(Locale.ENGLISH)
+ .unit(NoUnit.PERCENT)
+ .integerWidth(IntegerWidth.zeroFillTo(3))
+ .precision(Precision.integer());
+
private final String progressPrefix(int readCount, int totalCount) {
- return String.format("[%d/%d]:\t", readCount, totalCount);
+ double asPercent = ((double)readCount/(double)totalCount) * 100.0;
+ return String.format("[%s]:\t", percentFormatter.format(asPercent));
}
/**
@@ -1256,61 +1400,74 @@
SupplementalDataInfo sdi = SupplementalDataInfo.getInstance(cldrCommonDir + "supplemental");
Factory cldrFactory = Factory.make(
cldrCommonDir + dirName + "/", ".*");
- Set<String> files = cldrFactory.getAvailable();
+ Set<String> files = cldrFactory.getAvailable()
+ // filter these out early so our work count is correct
+ .stream().filter(filename ->
+ filename.matches(match) &&
+ !LdmlConvertRules.IGNORE_FILE_SET.contains(filename))
+ .collect(Collectors.toSet());
final int total = files.size();
AtomicInteger readCount = new AtomicInteger(0);
Map<String, Throwable> errs = new TreeMap<>();
- files
+
+ // This takes a long time (minutes, in 2020), so run it in parallel forkJoinPool threads.
+ // The result of this pipeline is an array of toString()-able filenames of XML files which
+ // produced no JSON output, just as a warning.
+ System.out.println(progressPrefix(0, total) + " Beginning parallel process of " + total + " file(s)");
+ Object noOutputFiles[] = files
.parallelStream()
.unordered()
- .forEach(filename -> {
-
- if (LdmlConvertRules.IGNORE_FILE_SET.contains(filename)) {
- return;
- }
- if (!filename.matches(match)) {
- return;
- }
-
+ .map(filename -> {
String pathPrefix;
CLDRFile file = cldrFactory.make(filename, resolve && type == RunType.main, minimalDraftStatus);
// Print 'reading' after the make, to stagger the output a little bit.
// Otherwise, the printout happens before any work happens, and is easily out of order.
- System.out.println("<"+progressPrefix(readCount.incrementAndGet(), total) +
- "Reading " + dirName + "/" + filename);
+ readCount.incrementAndGet();
+ if(DEBUG) System.out.print("<" + progressPrefix(readCount, total, dirName, filename) + "\r");
if (type == RunType.main) {
- pathPrefix = "/cldr/" + dirName + "/" + filename.replaceAll("_", "-") + "/";
+ pathPrefix = "/cldr/" + dirName + "/" + localeIdToLangTag(filename) + "/";
} else {
pathPrefix = "/cldr/" + dirName + "/";
}
-
+ int totalForThisFile = 0;
try {
- convertCldrItems(readCount, total, dirName, filename, pathPrefix,
+ totalForThisFile = convertCldrItems(readCount, total, dirName, filename, pathPrefix,
mapPathsToSections(readCount, total, file, pathPrefix, sdi));
- } catch(IOException | ParseException t) {
+ } catch (IOException | ParseException t) {
t.printStackTrace();
- System.err.println("!"+progressPrefix(readCount.incrementAndGet(), total)+filename + " - err - " + t);
+ System.err.println("!" + progressPrefix(readCount, total) + filename + " - err - " + t);
errs.put(filename, t);
} finally {
- System.out.println("."+progressPrefix(readCount, total) +
+ if(DEBUG) System.out.println("." + progressPrefix(readCount, total) +
"Completing " + dirName + "/" + filename);
}
- });
+ return new Pair<>(dirName + "/" + filename, totalForThisFile);
+ })
+ .filter(p -> p.getSecond() == 0)
+ .map(p -> p.getFirst())
+ .toArray();
+ System.out.println(progressPrefix(total, total) + " Completed parallel process of " + total + " file(s)");
+ if (noOutputFiles.length > 0) {
+ System.err.println("WARNING: These " + noOutputFiles.length + " file(s) did not produce any output (check JSON config):");
+ for (final Object f : noOutputFiles) {
+ System.err.println("\t- " + f.toString());
+ }
+ }
- if(!errs.isEmpty()) {
+ if (!errs.isEmpty()) {
System.err.println("Errors in these files:");
- for(Map.Entry<String,Throwable> e : errs.entrySet()) {
+ for (Map.Entry<String, Throwable> e : errs.entrySet()) {
System.err.println(e.getKey() + " - " + e.getValue());
}
// rethrow
- for(Map.Entry<String,Throwable> e : errs.entrySet()) {
- if(e.getValue() instanceof IOException ) {
- throw (IOException)e.getValue(); // throw the first one
- } else if(e.getValue() instanceof ParseException ) {
- throw (ParseException)e.getValue(); // throw the first one
+ for (Map.Entry<String, Throwable> e : errs.entrySet()) {
+ if (e.getValue() instanceof IOException) {
+ throw (IOException) e.getValue(); // throw the first one
+ } else if (e.getValue() instanceof ParseException) {
+ throw (ParseException) e.getValue(); // throw the first one
} else {
- throw new RuntimeException("Other exception thrown: " + e.getValue());
+ throw new RuntimeException("Other exception thrown: " + e.getValue());
}
/* NOTREACHED */
}
@@ -1370,7 +1527,7 @@
String objName = node.getNodeKeyName();
Map<String, String> attrAsValueMaps = node.getAttrAsValueMap();
- writeLeafNode(out, objName, attrAsValueMaps, value, level);
+ writeLeafNode(out, objName, attrAsValueMaps, value, level, node.getName(), node.getParent());
}
/**
@@ -1386,22 +1543,30 @@
* The value part for this element.
* @param level
* Indent level.
+ * @param nodeName the original nodeName (not distinguished)
* @throws IOException
*/
private void writeLeafNode(JsonWriter out, String objName,
- Map<String, String> attrAsValueMap, String value, int level)
+ Map<String, String> attrAsValueMap, String value, int level, final String nodeName,
+ String parent)
throws IOException {
if (objName == null) {
return;
}
value = escapeValue(value);
+ final boolean valueIsSpacesepArray = LdmlConvertRules.valueIsSpacesepArray(nodeName, parent);
if (attrAsValueMap.isEmpty()) {
out.name(objName);
if (value.isEmpty()) {
- out.beginObject();
- out.endObject();
- } else if (type == RunType.annotations ||
+ if (valueIsSpacesepArray) {
+ out.beginArray();
+ out.endArray();
+ } else {
+ out.beginObject();
+ out.endObject();
+ }
+ } else if (type == RunType.annotations ||
type == RunType.annotationsDerived) {
out.beginArray();
// split this, so "a | b | c" becomes ["a","b","c"]
@@ -1409,6 +1574,8 @@
out.value(s);
}
out.endArray();
+ } else if(valueIsSpacesepArray) {
+ outputSpaceSepArray(out, value);
} else {
// normal value
out.value(value);
@@ -1420,13 +1587,17 @@
// simplify the output.
if (value.isEmpty() &&
attrAsValueMap.containsKey(LdmlConvertRules.ANONYMOUS_KEY)) {
- out.name(objName).value(attrAsValueMap.get(LdmlConvertRules.ANONYMOUS_KEY));
+ String v = attrAsValueMap.get(LdmlConvertRules.ANONYMOUS_KEY);
+ out.name(objName);
+ if (valueIsSpacesepArray) {
+ outputSpaceSepArray(out, v);
+ } else {
+ out.value(v);
+ }
return;
}
- if (!objName.equals("rbnfrule")) {
- out.name(objName);
- out.beginObject();
- }
+ out.name(objName);
+ out.beginObject();
if (!value.isEmpty()) {
out.name("_value").value(value);
@@ -1437,24 +1608,27 @@
// attribute is prefixed with "_" when being used as key.
if (LdmlConvertRules.ATTRVALUE_AS_ARRAY_SET.contains(key)) {
String[] strings = attrValue.trim().split("\\s+");
- if (type != RunType.rbnf) {
- out.name("_" + key);
- } else {
- out.name(key);
- }
+ out.name("_" + key);
out.beginArray();
for (String s : strings) {
out.value(s);
}
out.endArray();
- } else if (type != RunType.rbnf) {
- out.name("_" + key).value(attrValue);
} else {
- out.name(key).value(attrValue);
+ out.name("_" + key).value(attrValue);
}
}
- if (!objName.equals("rbnfrule")) {
- out.endObject();
+ out.endObject();
+ }
+
+ private void outputSpaceSepArray(JsonWriter out, String v) throws IOException {
+ out.beginArray();
+ // split this, so "a b c" becomes ["a","b","c"]
+ for (final String s : v.trim().split(" ")) {
+ if(!s.isEmpty()) {
+ out.value(s);
+ }
}
+ out.endArray();
}
}
diff --git a/tools/java/org/unicode/cldr/json/LdmlConvertRules.java b/tools/cldr-code/src/main/java/org/unicode/cldr/json/LdmlConvertRules.java
similarity index 61%
rename from tools/java/org/unicode/cldr/json/LdmlConvertRules.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/json/LdmlConvertRules.java
index b45185a..36207f5 100644
--- a/tools/java/org/unicode/cldr/json/LdmlConvertRules.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/json/LdmlConvertRules.java
@@ -1,11 +1,17 @@
package org.unicode.cldr.json;
+import java.util.ArrayList;
import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
import java.util.Set;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.unicode.cldr.util.Builder;
import org.unicode.cldr.util.CLDRFile;
+import org.unicode.cldr.util.FileProcessor;
import org.unicode.cldr.util.PatternCache;
import com.google.common.collect.ImmutableSet;
@@ -13,8 +19,8 @@
class LdmlConvertRules {
/** File sets that will not be processed in JSON transformation. */
- public static final ImmutableSet<String> IGNORE_FILE_SET = ImmutableSet.of("attributeValueValidity", "coverageLevels", "grammaticalFeatures", "postalCodeData",
- "subdivisions", "units");
+ public static final ImmutableSet<String> IGNORE_FILE_SET = ImmutableSet.of("attributeValueValidity", "coverageLevels", "postalCodeData",
+ "subdivisions");
/**
* The attribute list that should become part of the name in form of
@@ -55,7 +61,20 @@
"weekData:firstDay:territories",
"weekData:weekendStart:territories",
"weekData:weekendEnd:territories",
+ "supplemental:dayPeriodRuleSet:type",
+ // units
"unitPreferenceDataData:unitPreferences:category",
+ // grammatical features
+ // in common/supplemental/grammaticalFeatures.xml
+ "grammaticalData:grammaticalFeatures:targets",
+ "grammaticalGenderData:grammaticalFeatures:targets",
+ "grammaticalFeatures:grammaticalCase:scope",
+ "grammaticalFeatures:grammaticalGender:scope",
+ "grammaticalDerivations:deriveCompound:structure",
+ "grammaticalDerivations:deriveCompound:feature",
+ "grammaticalDerivations:deriveComponent:feature",
+ "grammaticalDerivations:deriveComponent:structure",
+ // measurement
"measurementData:measurementSystem:category",
"supplemental:plurals:type",
"pluralRanges:pluralRange:start",
@@ -125,6 +144,14 @@
// in common/supplemental/windowsZones.xml
"mapTimezones:mapZone:other",
+ // in common/supplemental/units.xml
+ "*:unitPreference:geq",
+ "*:unitPreference:skeleton",
+
+ // in common/supplemental/grammaticalFeatures.xml
+ "grammaticalDerivations:deriveComponent:value0",
+ "grammaticalDerivations:deriveComponent:value1",
+
// in common/bcp47/*.xml
"keyword:key:alias",
"key:type:alias",
@@ -150,13 +177,14 @@
* element_name: { attribute: value}
* to
* element_name: value
- * With a solid example,
+ * With a solid example, (likelySubtags:likelySubtag:to)
* <likelySubtag from="zh" to="zh_Hans_CN" />
* distinguishing attr "from" will become the key, its better to
* omit "to" and have this simple mapping:
* "zh" : "zh_Hans_CN",
*/
static final ImmutableSet<String> COMPACTABLE_ATTR_AS_VALUE_SET = ImmutableSet.of(
+ // parent:element:attribute
// common/main
"calendars:default:choice",
"dateFormats:default:choice",
@@ -187,7 +215,14 @@
"identity:language:type",
"identity:script:type",
"identity:territory:type",
- "identity:variant:type");
+ "identity:variant:type",
+
+ "grammaticalFeatures:grammaticalGender:values",
+ "grammaticalFeatures:grammaticalDefiniteness:values",
+ "grammaticalFeatures:grammaticalCase:values",
+ "grammaticalDerivations:deriveCompound:value"
+
+ );
/**
* The set of attributes that should be treated as value, and reduce to
@@ -218,7 +253,7 @@
/**
* List of attributes that should be suppressed.
- * This list comes form cldr/common/supplemental/supplementalMetadata. Each
+ * This list comes from cldr/common/supplemental/supplementalMetadata. Each
* three of them is a group, they are for element, value and attribute.
* If the specified attribute appears in specified element with specified =
* value, it should be suppressed.
@@ -265,7 +300,7 @@
* <weekendStart day="thu" territories="AF"/>
* <weekendStart day="thu" territories="IR"/>
*/
- public static final SplittableAttributeSpec[] SPLITTABLE_ATTRS = {
+ private static final SplittableAttributeSpec[] SPLITTABLE_ATTRS = {
new SplittableAttributeSpec("calendarPreference", "territories", null),
new SplittableAttributeSpec("pluralRanges", "locales", null),
new SplittableAttributeSpec("pluralRules", "locales", null),
@@ -273,7 +308,9 @@
new SplittableAttributeSpec("firstDay", "territories", "day"),
new SplittableAttributeSpec("weekendStart", "territories", "day"),
new SplittableAttributeSpec("weekendEnd", "territories", "day"),
+ new SplittableAttributeSpec("weekOfPreference", "locales", "ordering"),
new SplittableAttributeSpec("measurementSystem", "territories", "type"),
+ // this is deprecated, so no need to generalize this exception.
new SplittableAttributeSpec("measurementSystem-category-temperature", "territories", "type"),
new SplittableAttributeSpec("paperSize", "territories", "type"),
new SplittableAttributeSpec("parentLocale", "locales", "parent"),
@@ -281,7 +318,9 @@
new SplittableAttributeSpec("dayPeriodRules", "locales", null),
// new SplittableAttributeSpec("group", "contains", "group"),
new SplittableAttributeSpec("personList", "locales", "type"),
- new SplittableAttributeSpec("unitPreference", "regions", null)
+ new SplittableAttributeSpec("unitPreference", "regions", null),
+ new SplittableAttributeSpec("grammaticalFeatures", "locales", null),
+ new SplittableAttributeSpec("grammaticalDerivations", "locales", null),
};
/**
@@ -296,7 +335,7 @@
* as a single string.
*/
public static final Set<String> ATTRVALUE_AS_ARRAY_SET = Builder.with(new HashSet<String>())
- .add("territories").add("scripts").add("contains").freeze();
+ .add("territories").add("scripts").add("contains").add("systems").freeze();
/**
* Following is the list of elements that need to be sorted before output.
@@ -321,6 +360,7 @@
"|.*/rbnfrule[^/]*/" +
"|.*/ruleset[^/]*/" +
"|.*/languageMatching[^/]*/languageMatches[^/]*/" +
+ "|.*/unitPreferences/[^/]*/[^/]*/" +
"|.*/windowsZones[^/]*/mapTimezones[^/]*/" +
"|.*/metaZones[^/]*/mapTimezones[^/]*/" +
"|.*/segmentation[^/]*/variables[^/]*/" +
@@ -336,6 +376,17 @@
")(.*)");
/**
+ * These objects values should be output as arrays.
+ */
+ public static final Pattern VALUE_IS_SPACESEP_ARRAY = PatternCache.get(
+ "(grammaticalCase|grammaticalGender|grammaticalDefiniteness)"
+ );
+ public static final Set<String> CHILD_VALUE_IS_SPACESEP_ARRAY = ImmutableSet.of(
+ "weekOfPreference",
+ "calendarPreferenceData"
+ );
+
+ /**
* Number elements without a numbering system are there only for compatibility purposes.
* We automatically suppress generation of JSON objects for them.
*/
@@ -361,112 +412,189 @@
* A simple class to hold the specification of a path transformation.
*/
public static class PathTransformSpec {
+
+ final private boolean DEBUG_TRANSFORMS = false;
public Pattern pattern;
public String replacement;
+ public String patternStr;
+ public String comment = "";
+ private AtomicInteger use = new AtomicInteger();
- PathTransformSpec(String patternStr, String replacement) {
+ PathTransformSpec(String patternStr, String replacement, String comment) {
+ this.patternStr = patternStr;
pattern = PatternCache.get(patternStr);
this.replacement = replacement;
+ this.comment = comment;
+ if(this.comment == null) this.comment = "";
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append('\n')
+ .append("# ").append(comment.replace('\n', ' ')).append('\n')
+ .append("< ").append(patternStr).append('\n')
+ .append("> ").append(replacement).append('\n');
+ return sb.toString();
+ }
+
+ /**
+ * Apply this rule to a string
+ * @param result input string
+ * @return result, or null if unchanged
+ */
+ public String apply(String result) {
+ Matcher m = pattern.matcher(result);
+ if (m.matches()) {
+ final String newResult = m.replaceFirst(replacement);
+ final int count = this.use.incrementAndGet();
+ if(DEBUG_TRANSFORMS) {
+ System.err.println(result + " => " + newResult + " count " + count + " << " + this.toString());
+ }
+ return newResult;
+ }
+ return null;
+ }
+ public static void dumpAll() {
+ System.out.println("# Path Transformations");
+ for (final PathTransformSpec ts : getPathTransformations()) {
+ System.out.append(ts.toString());
+ }
+ System.out.println();
+ }
+
+ public static final String applyAll(String result) {
+ for (final PathTransformSpec ts : getPathTransformations()) {
+ final String changed = ts.apply(result);
+ if(changed != null) {
+ result = changed;
+ break;
+ }
+ }
+ return result;
}
}
+ public static final Iterable<PathTransformSpec> getPathTransformations() {
+ return PathTransformSpecHelper.INSTANCE;
+ }
+
/**
- * Some special transformation, like add an additional layer, can be easily
- * done by transforming the path. Following rules covers these kind of
- * transformation.
- * Note: It is important to keep the order for these rules. Whenever a
- * rule matches, further rules won't be applied.
+ * Add a path transform for the //ldml/identity/version element to the specific number
+ * @param version
*/
- public static final PathTransformSpec PATH_TRANSFORMATIONS[] = {
- // Add "standard" as type attribute to exemplarCharacter element if there
- // is none, and separate them to two layers.
- new PathTransformSpec(
- "(.*ldml/exemplarCharacters)\\[@type=\"([^\"]*)\"\\](.*)", "$1/$2$3"),
- new PathTransformSpec("(.*ldml/exemplarCharacters)(.*)$", "$1/standard$2"),
+ public static final void addVersionHandler(String version) {
+ if(!CLDRFile.GEN_VERSION.equals(version)) {
+ PathTransformSpecHelper.INSTANCE.prependVersionTransforms(version);
+ }
+ }
- // Add cldrVersion attribute
- new PathTransformSpec("(.+)/identity/version\\[@number=\"([^\"]*)\"\\]", "$1" + "/identity/version\\[@cldrVersion=\""
- + CLDRFile.GEN_VERSION + "\"\\]"),
- // Add cldrVersion attribute to supplemental data
- new PathTransformSpec("(.+)/version\\[@number=\"([^\"]*)\"\\]\\[@unicodeVersion=\"([^\"]*\")(\\])", "$1" + "/version\\[@cldrVersion=\""
- + CLDRFile.GEN_VERSION + "\"\\]" + "\\[@unicodeVersion=\"" + "$3" + "\\]"),
+ public static final class PathTransformSpecHelper extends FileProcessor implements Iterable<PathTransformSpec> {
+ static final PathTransformSpecHelper INSTANCE = make();
- // Transform underscore to hyphen-minus in language keys
- new PathTransformSpec("(.*/language\\[@type=\"[a-z]{2,3})_([^\"]*\"\\](\\[@alt=\"short\"])?)", "$1-$2"),
+ static final PathTransformSpecHelper make() {
+ final PathTransformSpecHelper helper = new PathTransformSpecHelper();
+ helper.process(PathTransformSpecHelper.class, "pathTransforms.txt");
+ return helper;
+ }
- // Separate "ellipsis" from its type as another layer.
- new PathTransformSpec("(.*/ellipsis)\\[@type=\"([^\"]*)\"\\](.*)$",
- "$1/$2$3"),
+ private PathTransformSpecHelper() {}
+ private List<PathTransformSpec> data = new ArrayList<>();
+ private String lastComment = "";
+ private String lastPattern = null;
+ private String lastReplacement = null;
- // Remove unnecessary dateFormat/pattern
- new PathTransformSpec(
- "(.*/calendars)/calendar\\[@type=\"([^\"]*)\"\\](.*)Length\\[@type=\"([^\"]*)\"\\]/(date|time|dateTime)Format\\[@type=\"([^\"]*)\"\\]/pattern\\[@type=\"([^\"]*)\"\\](.*)",
- "$1/$2/$5Formats/$4$8"),
+ @Override
+ protected
+ void handleStart() {
+ // Add these to the beginning because of the dynamic version
+ String version = CLDRFile.GEN_VERSION;
+ prependVersionTransforms(version);
+ }
- // Separate calendar type
- new PathTransformSpec("(.*/calendars)/calendar\\[@type=\"([^\"]*)\"\\](.*)$",
- "$1/$2$3"),
+ /**
+ * Prepend version transform.
+ * If called twice, the LAST caller will be used.
+ * @param version
+ */
+ public void prependVersionTransforms(String version) {
+ data.add(0, new PathTransformSpec("(.+)/identity/version\\[@number=\"([^\"]*)\"\\]", "$1" + "/identity/version\\[@cldrVersion=\""
+ + version + "\"\\]", "added by code"));
+ // Add cldrVersion attribute to supplemental data
+ data.add(0, new PathTransformSpec("(.+)/version\\[@number=\"([^\"]*)\"\\]\\[@unicodeVersion=\"([^\"]*\")(\\])", "$1" + "/version\\[@cldrVersion=\""
+ + version + "\"\\]" + "\\[@unicodeVersion=\"" + "$3" + "\\]", "added by code"));
+ }
- // Separate "metazone" from its type as another layer.
- new PathTransformSpec("(.*/metazone)\\[@type=\"([^\"]*)\"\\]/(.*)$", "$1/$2/$3"),
+ @Override
+ protected boolean handleLine(int lineCount, String line) {
+ if(line.isEmpty()) return true;
+ if(line.startsWith("<")) {
+ lastReplacement = null;
+ if(lastPattern != null) {
+ throw new IllegalArgumentException("line " + lineCount+": two <'s in a row");
+ }
+ lastPattern = line.substring(1).trim();
+ if(lastPattern.isEmpty()) {
+ throw new IllegalArgumentException("line " + lineCount+": empty < pattern");
+ }
+ } else if(line.startsWith(">")) {
+ if(lastPattern == null) {
+ throw new IllegalArgumentException("line " + lineCount+": need < line before > line");
+ }
+ lastReplacement = line.substring(1).trim();
+ data.add(new PathTransformSpec(lastPattern, lastReplacement, lastComment));
+ reset();
+ }
+ return true;
+ }
- // Split out types into its various fields
- new PathTransformSpec("(.*)/types/type\\[@key=\"([^\"]*)\"\\]\\[@type=\"([^\"]*)\"\\](.*)$",
- "$1/types/$2/$3$4"),
+ @Override
+ protected
+ void handleEnd() {
+ if(lastPattern != null) {
+ throw new IllegalArgumentException("ended with a < but no >");
+ }
+ }
- // Typographic
- new PathTransformSpec("(.*)/(typographicNames)/(axisName|featureName)\\[@type=\"([^\"]*)\"\\](.*)$",
- "$1/$2/$3s/$4$5"),
- new PathTransformSpec("(.*)/(typographicNames)/(styleName)(.*)$",
- "$1/$2/$3s/$3$4"),
+ private void reset() {
+ this.lastComment = "";
+ this.lastPattern = null;
+ this.lastReplacement = null;
+ }
- // put CharacterLabelPatterns under CharacterLabelPatterns
- new PathTransformSpec("(.*)/(characterLabels)/(characterLabelPattern)(.*)$",
- "$1/characterLabelPatterns/$3$4"),
+ @Override
+ public void handleComment(String line, int commentCharPosition) {
+ lastComment = line.substring(commentCharPosition+1).trim();
+ }
- new PathTransformSpec(
- "(.*/numbers/(decimal|scientific|percent|currency)Formats\\[@numberSystem=\"([^\"]*)\"\\])/(decimal|scientific|percent|currency)FormatLength/(decimal|scientific|percent|currency)Format\\[@type=\"standard\"]/pattern.*$",
- "$1/standard"),
+ @Override
+ public Iterator<PathTransformSpec> iterator() {
+ return data.iterator();
+ }
+ }
- new PathTransformSpec(
- "(.*/numbers/currencyFormats\\[@numberSystem=\"([^\"]*)\"\\])/currencyFormatLength/currencyFormat\\[@type=\"accounting\"]/pattern.*$",
- "$1/accounting"),
- // Add "type" attribute with value "standard" if there is no "type" in
- // "decimalFormatLength".
- new PathTransformSpec(
- "(.*/numbers/(decimal|scientific|percent)Formats\\[@numberSystem=\"([^\"]*)\"\\]/(decimal|scientific|percent)FormatLength)/(.*)$",
- "$1[@type=\"standard\"]/$5"),
- new PathTransformSpec(
- "(.*/listPattern)/(.*)$", "$1[@type=\"standard\"]/$2"),
+ public static void main(String args[]) {
+ // for debugging / verification
+ PathTransformSpec.dumpAll();
+ }
- new PathTransformSpec("(.*/languagePopulation)\\[@type=\"([^\"]*)\"\\](.*)",
- "$1/$2$3"),
+ public final static String getKeyStr(String name, String key) {
+ String keyStr2 = "*:" + name + ":" + key;
+ return keyStr2;
+ }
- new PathTransformSpec("(.*/languageAlias)\\[@type=\"([^\"]*)\"\\](.*)", "$1/$2$3"),
- new PathTransformSpec("(.*/scriptAlias)\\[@type=\"([^\"]*)\"\\](.*)", "$1/$2$3"),
- new PathTransformSpec("(.*/territoryAlias)\\[@type=\"([^\"]*)\"\\](.*)", "$1/$2$3"),
- new PathTransformSpec("(.*/subdivisionAlias)\\[@type=\"([^\"]*)\"\\](.*)", "$1/$2$3"),
- new PathTransformSpec("(.*/variantAlias)\\[@type=\"([^\"]*)\"\\](.*)", "$1/$2$3"),
- new PathTransformSpec("(.*/zoneAlias)\\[@type=\"([^\"]*)\"\\](.*)", "$1/$2$3"),
- new PathTransformSpec("(.*/alias)(.*)", "$1/alias$2"),
+ public final static String getKeyStr(String parent, String name, String key) {
+ String keyStr = parent + ":" + name + ":" + key;
+ return keyStr;
+ }
- new PathTransformSpec("(.*currencyData/region)(.*)", "$1/region$2"),
+ public static SplittableAttributeSpec[] getSplittableAttrs() {
+ return SPLITTABLE_ATTRS;
+ }
- // Skip exemplar city in /etc/GMT or UTC timezones, since they don't have them.
- new PathTransformSpec("(.*(GMT|UTC).*/exemplarCity)(.*)", ""),
-
- new PathTransformSpec("(.*/transforms/transform[^/]*)/(.*)", "$1/tRules/$2"),
- new PathTransformSpec("(.*)\\[@territories=\"([^\"]*)\"\\](.*)\\[@alt=\"variant\"\\](.*)", "$1\\[@territories=\"$2-alt-variant\"\\]"),
- new PathTransformSpec("(.*)/weekData/(.*)\\[@alt=\"variant\"\\](.*)", "$1/weekData/$2$3"),
- new PathTransformSpec("(.*)/unitPreferenceData/unitPreferences\\[@category=\"([^\"]*)\"\\]\\[@usage=\"([^\"]*)\"\\](.*)",
- "$1/unitPreferenceData/unitPreferences/$2/$3$4"),
-
- // Annotations
- // If there is a type, move that into a sibling value
- new PathTransformSpec("(.*)/(annotations)/(annotation)\\[@cp=\"([^\"]*)\"\\]\\[@type=\"([^\"]*)\"\\](.*)$",
- "$1/$2/$4/$5$6"),
- new PathTransformSpec("(.*)/(annotations)/(annotation)\\[@cp=\"([^\"]*)\"\\](.*)$",
- "$1/$2/$4/default$5"),
- };
+ public static final boolean valueIsSpacesepArray(final String nodeName, String parent) {
+ return VALUE_IS_SPACESEP_ARRAY.matcher(nodeName).matches()
+ || (parent!=null && CHILD_VALUE_IS_SPACESEP_ARRAY.contains(parent));
+ }
}
diff --git a/tools/java/org/unicode/cldr/posix/GenerateCharmap.java b/tools/cldr-code/src/main/java/org/unicode/cldr/posix/GenerateCharmap.java
similarity index 100%
rename from tools/java/org/unicode/cldr/posix/GenerateCharmap.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/posix/GenerateCharmap.java
diff --git a/tools/java/org/unicode/cldr/posix/GeneratePOSIX.java b/tools/cldr-code/src/main/java/org/unicode/cldr/posix/GeneratePOSIX.java
similarity index 100%
rename from tools/java/org/unicode/cldr/posix/GeneratePOSIX.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/posix/GeneratePOSIX.java
diff --git a/tools/java/org/unicode/cldr/posix/POSIXLocale.java b/tools/cldr-code/src/main/java/org/unicode/cldr/posix/POSIXLocale.java
similarity index 100%
rename from tools/java/org/unicode/cldr/posix/POSIXLocale.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/posix/POSIXLocale.java
diff --git a/tools/java/org/unicode/cldr/posix/POSIXUtilities.java b/tools/cldr-code/src/main/java/org/unicode/cldr/posix/POSIXUtilities.java
similarity index 100%
rename from tools/java/org/unicode/cldr/posix/POSIXUtilities.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/posix/POSIXUtilities.java
diff --git a/tools/java/org/unicode/cldr/posix/POSIXVariant.java b/tools/cldr-code/src/main/java/org/unicode/cldr/posix/POSIXVariant.java
similarity index 100%
rename from tools/java/org/unicode/cldr/posix/POSIXVariant.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/posix/POSIXVariant.java
diff --git a/tools/java/org/unicode/cldr/posix/POSIX_LCCollate.java b/tools/cldr-code/src/main/java/org/unicode/cldr/posix/POSIX_LCCollate.java
similarity index 100%
rename from tools/java/org/unicode/cldr/posix/POSIX_LCCollate.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/posix/POSIX_LCCollate.java
diff --git a/tools/java/org/unicode/cldr/posix/POSIX_LCCtype.java b/tools/cldr-code/src/main/java/org/unicode/cldr/posix/POSIX_LCCtype.java
similarity index 100%
rename from tools/java/org/unicode/cldr/posix/POSIX_LCCtype.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/posix/POSIX_LCCtype.java
diff --git a/tools/java/org/unicode/cldr/posix/POSIX_LCMessages.java b/tools/cldr-code/src/main/java/org/unicode/cldr/posix/POSIX_LCMessages.java
similarity index 100%
rename from tools/java/org/unicode/cldr/posix/POSIX_LCMessages.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/posix/POSIX_LCMessages.java
diff --git a/tools/java/org/unicode/cldr/posix/POSIX_LCMonetary.java b/tools/cldr-code/src/main/java/org/unicode/cldr/posix/POSIX_LCMonetary.java
similarity index 100%
rename from tools/java/org/unicode/cldr/posix/POSIX_LCMonetary.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/posix/POSIX_LCMonetary.java
diff --git a/tools/java/org/unicode/cldr/posix/POSIX_LCNumeric.java b/tools/cldr-code/src/main/java/org/unicode/cldr/posix/POSIX_LCNumeric.java
similarity index 100%
rename from tools/java/org/unicode/cldr/posix/POSIX_LCNumeric.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/posix/POSIX_LCNumeric.java
diff --git a/tools/java/org/unicode/cldr/posix/POSIX_LCTime.java b/tools/cldr-code/src/main/java/org/unicode/cldr/posix/POSIX_LCTime.java
similarity index 100%
rename from tools/java/org/unicode/cldr/posix/POSIX_LCTime.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/posix/POSIX_LCTime.java
diff --git a/tools/java/org/unicode/cldr/test/BuildIcuCompactDecimalFormat.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/BuildIcuCompactDecimalFormat.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/BuildIcuCompactDecimalFormat.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/BuildIcuCompactDecimalFormat.java
diff --git a/tools/java/org/unicode/cldr/test/CLDRTest.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CLDRTest.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/CLDRTest.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/CLDRTest.java
diff --git a/tools/java/org/unicode/cldr/test/CasingInfo.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CasingInfo.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/CasingInfo.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/CasingInfo.java
diff --git a/tools/java/org/unicode/cldr/test/CheckAlt.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckAlt.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/CheckAlt.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckAlt.java
diff --git a/tools/java/org/unicode/cldr/test/CheckAttributeValues.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckAttributeValues.java
similarity index 98%
rename from tools/java/org/unicode/cldr/test/CheckAttributeValues.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckAttributeValues.java
index 209b0fb..a517d33 100644
--- a/tools/java/org/unicode/cldr/test/CheckAttributeValues.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckAttributeValues.java
@@ -538,19 +538,16 @@
Predicate<String> territory = variables.get("$territory").matcher;
Predicate<String> variant = variables.get("$variant").matcher;
LocaleIDParser lip = new LocaleIDParser();
- static LocaleMatcher singleton = null;
- static Object sync = new Object();
- private LocaleMatcher(boolean b) {
+ private LocaleMatcher() {
+ }
+
+ private static final class LocaleMatcherHelper {
+ static LocaleMatcher SINGLETON = new LocaleMatcher();
}
public static LocaleMatcher make() {
- synchronized (sync) {
- if (singleton == null) {
- singleton = new LocaleMatcher(true);
- }
- }
- return singleton;
+ return LocaleMatcherHelper.SINGLETON;
}
@Override
diff --git a/tools/java/org/unicode/cldr/test/CheckCLDR.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckCLDR.java
similarity index 99%
rename from tools/java/org/unicode/cldr/test/CheckCLDR.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckCLDR.java
index 4bbf23b..bb18e10 100644
--- a/tools/java/org/unicode/cldr/test/CheckCLDR.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckCLDR.java
@@ -638,7 +638,9 @@
* @param possibleErrors
* @return
* @see #setCldrFileToCheck(CLDRFile, Options, List)
+ * @deprecated
*/
+ @Deprecated
final public CheckCLDR setCldrFileToCheck(CLDRFile cldrFileToCheck, Map<String, String> options,
List<CheckStatus> possibleErrors) {
return setCldrFileToCheck(cldrFileToCheck, new Options(options), possibleErrors);
@@ -722,6 +724,7 @@
@Override
public String toString() {
+ // converts "thisThisThis" to "this this this"
return TO_STRING.matcher(name()).replaceAll(" $1").toLowerCase();
}
diff --git a/tools/java/org/unicode/cldr/test/CheckCasing.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckCasing.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/CheckCasing.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckCasing.java
diff --git a/tools/java/org/unicode/cldr/test/CheckChildren.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckChildren.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/CheckChildren.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckChildren.java
diff --git a/tools/java/org/unicode/cldr/test/CheckConsistentCasing.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckConsistentCasing.java
similarity index 98%
rename from tools/java/org/unicode/cldr/test/CheckConsistentCasing.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckConsistentCasing.java
index c5d9964..d3db41a 100644
--- a/tools/java/org/unicode/cldr/test/CheckConsistentCasing.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckConsistentCasing.java
@@ -20,6 +20,7 @@
import org.unicode.cldr.util.PathStarrer;
import org.unicode.cldr.util.PatternCache;
import org.unicode.cldr.util.RegexLookup;
+import org.unicode.cldr.util.SpecialLocales;
import com.google.common.base.Joiner;
import com.ibm.icu.lang.UCharacter;
@@ -69,7 +70,7 @@
// we are better off with an empty map here
types = Collections.emptyMap();
}
- if (types == null || types.isEmpty()) {
+ if ((types == null || types.isEmpty()) && !SpecialLocales.isScratchLocale(locale)) {
possibleErrors.add(new CheckStatus().setCause(this)
.setMainType(CheckStatus.warningType)
.setSubtype(Subtype.incorrectCasing)
diff --git a/tools/java/org/unicode/cldr/test/CheckCoverage.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckCoverage.java
similarity index 97%
rename from tools/java/org/unicode/cldr/test/CheckCoverage.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckCoverage.java
index 03b2a9b..9963eaf 100644
--- a/tools/java/org/unicode/cldr/test/CheckCoverage.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckCoverage.java
@@ -15,6 +15,7 @@
import org.unicode.cldr.util.InternalCldrException;
import org.unicode.cldr.util.LanguageTagParser;
import org.unicode.cldr.util.Level;
+import org.unicode.cldr.util.SpecialLocales;
import org.unicode.cldr.util.SupplementalDataInfo;
import org.unicode.cldr.util.SupplementalDataInfo.PluralInfo;
import org.unicode.cldr.util.SupplementalDataInfo.PluralType;
@@ -130,7 +131,8 @@
supplementalData = SupplementalDataInfo.getInstance(cldrFileToCheck.getSupplementalDirectory());
coverageLevel = CoverageLevel2.getInstance(supplementalData, localeID);
PluralInfo pluralInfo = supplementalData.getPlurals(PluralType.cardinal, localeID);
- if (pluralInfo == supplementalData.getPlurals(PluralType.cardinal, "root")) {
+ if (pluralInfo == supplementalData.getPlurals(PluralType.cardinal, "root")
+ && !SpecialLocales.isScratchLocale(localeID)) {
possibleErrors.add(new CheckStatus()
.setCause(this).setMainType(CheckStatus.warningType).setSubtype(Subtype.missingPluralInfo)
.setMessage("Missing Plural Information - see supplemental plural charts to file bug.",
diff --git a/tools/java/org/unicode/cldr/test/CheckCurrencies.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckCurrencies.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/CheckCurrencies.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckCurrencies.java
diff --git a/tools/java/org/unicode/cldr/test/CheckDates.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckDates.java
similarity index 99%
rename from tools/java/org/unicode/cldr/test/CheckDates.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckDates.java
index 0f1efc3..8ae384b 100644
--- a/tools/java/org/unicode/cldr/test/CheckDates.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckDates.java
@@ -1029,7 +1029,7 @@
}
static final Set<String> YgLanguages = new HashSet<>(Arrays.asList(
- "ar", "cs", "da", "de", "en", "es", "fa", "fi", "fr", "he", "hr", "id", "it", "nb", "nl", "pt", "ru", "sv", "tr"));
+ "ar", "cs", "da", "de", "en", "es", "fa", "fi", "fr", "he", "hr", "id", "it", "nl", "no", "pt", "ru", "sv", "tr"));
private GyState getExpectedGy(String localeID) {
// hack for now
diff --git a/tools/java/org/unicode/cldr/test/CheckDisplayCollisions.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckDisplayCollisions.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/CheckDisplayCollisions.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckDisplayCollisions.java
diff --git a/tools/java/org/unicode/cldr/test/CheckExemplars.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckExemplars.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/CheckExemplars.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckExemplars.java
diff --git a/tools/java/org/unicode/cldr/test/CheckForCopy.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckForCopy.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/CheckForCopy.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckForCopy.java
diff --git a/tools/java/org/unicode/cldr/test/CheckForExemplars.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckForExemplars.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/CheckForExemplars.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckForExemplars.java
diff --git a/tools/java/org/unicode/cldr/test/CheckForInheritanceMarkers.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckForInheritanceMarkers.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/CheckForInheritanceMarkers.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckForInheritanceMarkers.java
diff --git a/tools/java/org/unicode/cldr/test/CheckLogicalGroupings.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckLogicalGroupings.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/CheckLogicalGroupings.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckLogicalGroupings.java
diff --git a/tools/java/org/unicode/cldr/test/CheckMetazones.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckMetazones.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/CheckMetazones.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckMetazones.java
diff --git a/tools/java/org/unicode/cldr/test/CheckNames.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckNames.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/CheckNames.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckNames.java
diff --git a/tools/java/org/unicode/cldr/test/CheckNew.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckNew.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/CheckNew.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckNew.java
diff --git a/tools/java/org/unicode/cldr/test/CheckNumbers.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckNumbers.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/CheckNumbers.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckNumbers.java
diff --git a/tools/java/org/unicode/cldr/test/CheckPlaceHolders.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckPlaceHolders.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/CheckPlaceHolders.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckPlaceHolders.java
diff --git a/tools/java/org/unicode/cldr/test/CheckQuotes.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckQuotes.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/CheckQuotes.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckQuotes.java
diff --git a/tools/java/org/unicode/cldr/test/CheckUnits.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckUnits.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/CheckUnits.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckUnits.java
diff --git a/tools/java/org/unicode/cldr/test/CheckWidths.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckWidths.java
similarity index 98%
rename from tools/java/org/unicode/cldr/test/CheckWidths.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckWidths.java
index d508d52..b3ae4a9 100644
--- a/tools/java/org/unicode/cldr/test/CheckWidths.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckWidths.java
@@ -317,9 +317,10 @@
})
;
- static {
- System.out.println("EMs: " + ApproximateWidth.getWidth("grinning cat face with smiling eyes"));
- }
+// Quell noisy printout
+// static {
+// System.out.println("EMs: " + ApproximateWidth.getWidth("grinning cat face with smiling eyes"));
+// }
Set<Limit> found = new LinkedHashSet<>();
diff --git a/tools/java/org/unicode/cldr/test/CheckZones.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckZones.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/CheckZones.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckZones.java
diff --git a/tools/java/org/unicode/cldr/test/ConsoleCheckCLDR.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/ConsoleCheckCLDR.java
similarity index 99%
rename from tools/java/org/unicode/cldr/test/ConsoleCheckCLDR.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/ConsoleCheckCLDR.java
index 8465b76..c8740ee 100644
--- a/tools/java/org/unicode/cldr/test/ConsoleCheckCLDR.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/test/ConsoleCheckCLDR.java
@@ -270,7 +270,7 @@
// }
String factoryFilter = options[FILE_FILTER].value;
if (factoryFilter.equals("key")) {
- factoryFilter = "(en|ru|nl|fr|de|it|pl|es|tr|th|ja|zh|ko|ar|bg|sr|uk|ca|hr|cs|da|fil|fi|hu|id|lv|lt|nb|pt|ro|sk|sl|sv|vi|el|he|fa|hi|am|af|et|is|ms|sw|zu|bn|mr|ta|eu|gl|ur|gu|kn|ml|te|zh_Hant|pt_PT|en_GB)";
+ factoryFilter = "(en|ru|nl|fr|de|it|pl|es|tr|th|ja|zh|ko|ar|bg|sr|uk|ca|hr|cs|da|fil|fi|hu|id|lv|lt|no|pt|ro|sk|sl|sv|vi|el|he|fa|hi|am|af|et|is|ms|sw|zu|bn|mr|ta|eu|gl|ur|gu|kn|ml|te|zh_Hant|pt_PT|en_GB)";
}
String checkFilter = options[TEST_FILTER].value;
String subtypeFilterString = options[SUBTYPE_FILTER].value;
@@ -472,7 +472,7 @@
String lastBaseLanguage = "";
PathHeader.Factory pathHeaderFactory = PathHeader.getFactory(english);
- final List<String> specialPurposeLocales = new ArrayList<>(Arrays.asList("en_US_POSIX", "en_ZZ", "und", "und_ZZ"));
+ final List<String> specialPurposeLocales = new ArrayList<>(Arrays.asList("en_US_POSIX", "en_ZZ"));
for (String localeID : locales) {
if (CLDRFile.isSupplementalName(localeID)) continue;
if (supplementalDataInfo.getDefaultContentLocales().contains(localeID)) {
diff --git a/tools/java/org/unicode/cldr/test/CoverageLevel2.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CoverageLevel2.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/CoverageLevel2.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/CoverageLevel2.java
diff --git a/tools/java/org/unicode/cldr/test/DateOrder.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/DateOrder.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/DateOrder.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/DateOrder.java
diff --git a/tools/java/org/unicode/cldr/test/DisplayAndInputProcessor.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/DisplayAndInputProcessor.java
similarity index 89%
rename from tools/java/org/unicode/cldr/test/DisplayAndInputProcessor.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/DisplayAndInputProcessor.java
index e35bac4..9599cdc 100644
--- a/tools/java/org/unicode/cldr/test/DisplayAndInputProcessor.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/test/DisplayAndInputProcessor.java
@@ -81,14 +81,31 @@
+ "numbers/(decimal|currency|percent|scientific)Formats.+/(decimal|currency|percent|scientific)Format.*)");
private static final Pattern INTERVAL_FORMAT_PATHS = PatternCache.get("//ldml/dates/.+/intervalFormatItem.*");
private static final Pattern NON_DECIMAL_PERIOD = PatternCache.get("(?<![0#'])\\.(?![0#'])");
- private static final Pattern WHITESPACE_NO_NBSP_TO_NORMALIZE = PatternCache.get("\\s+"); // string of whitespace not
- // including NBSP, i.e. [
- // \t\n\r]+
- private static final Pattern WHITESPACE_AND_NBSP_TO_NORMALIZE = PatternCache.get("[\\s\\u00A0]+"); // string of
- // whitespace
- // including NBSP,
- // i.e. [
- // \u00A0\t\n\r]+
+
+ /**
+ * string of whitespace not including NBSP, i.e. [\t\n\r]+
+ */
+ private static final Pattern WHITESPACE_NO_NBSP_TO_NORMALIZE = PatternCache.get("\\s+"); //
+
+ /**
+ * string of whitespace including NBSP, i.e. [\u00A0\t\n\r]+
+ */
+ private static final Pattern WHITESPACE_AND_NBSP_TO_NORMALIZE = PatternCache.get("[\\s\\u00A0]+");
+
+ /**
+ * one or more NBSP followed by one or more regular spaces
+ */
+ private static final Pattern NBSP_PLUS_SPACE_TO_NORMALIZE = PatternCache.get("\\u00A0+\\u0020+");
+
+ /**
+ * one or more regular spaces followed by one or more NBSP
+ */
+ private static final Pattern SPACE_PLUS_NBSP_TO_NORMALIZE = PatternCache.get("\\u0020+\\u00A0+");
+
+ private static final Pattern INITIAL_NBSP = PatternCache.get("^\\u00A0+");
+ private static final Pattern FINAL_NBSP = PatternCache.get("\\u00A0+$");
+ private static final Pattern MULTIPLE_NBSP = PatternCache.get("\\u00A0\\u00A0+");
+
private static final UnicodeSet UNICODE_WHITESPACE = new UnicodeSet("[:whitespace:]").freeze();
private static final CLDRLocale MALAYALAM = CLDRLocale.getInstance("ml");
@@ -316,6 +333,8 @@
String original = value;
value = stripProblematicControlCharacters(value);
value = Normalizer.compose(value, false); // Always normalize all input to NFC.
+ value = value.replace('\u00B5', '\u03BC'); // use the right Greek mu character
+
if (internalException != null) {
internalException[0] = null;
}
@@ -581,37 +600,6 @@
return value;
}
- private String normalizeWhitespace(String path, String value) {
- // turn all whitespace sequences (including tab and newline, and NBSP for certain paths)
- // into a single space or a single NBSP depending on path.
- if ((path.contains("/dateFormatLength") && path.contains("/pattern")) ||
- path.contains("/availableFormats/dateFormatItem") ||
- (path.startsWith("//ldml/dates/timeZoneNames/metazone") && path.contains("/long")) ||
- path.startsWith("//ldml/dates/timeZoneNames/regionFormat") ||
- path.startsWith("//ldml/localeDisplayNames/codePatterns/codePattern") ||
- path.startsWith("//ldml/localeDisplayNames/languages/language") ||
- path.startsWith("//ldml/localeDisplayNames/territories/territory") ||
- path.startsWith("//ldml/localeDisplayNames/types/type") ||
- (path.startsWith("//ldml/numbers/currencies/currency") && path.contains("/displayName")) ||
- (path.contains("/decimalFormatLength[@type=\"long\"]") && path.contains("/pattern")) ||
- path.startsWith("//ldml/posix/messages") ||
- (path.startsWith("//ldml/units/uni") && path.contains("/unitPattern "))) {
- value = WHITESPACE_AND_NBSP_TO_NORMALIZE.matcher(value).replaceAll(" "); // replace with regular space
- } else if ((path.contains("/currencies/currency") && (path.contains("/group") || path.contains("/pattern")))
- ||
- (path.contains("/currencyFormatLength") && path.contains("/pattern")) ||
- (path.contains("/currencySpacing") && path.contains("/insertBetween")) ||
- (path.contains("/decimalFormatLength") && path.contains("/pattern")) || // i.e. the non-long ones
- (path.contains("/percentFormatLength") && path.contains("/pattern")) ||
- (path.startsWith("//ldml/numbers/symbols") && (path.contains("/group") || path.contains("/nan")))) {
- value = WHITESPACE_AND_NBSP_TO_NORMALIZE.matcher(value).replaceAll("\u00A0"); // replace with NBSP
- } else {
- // in this case don't normalize away NBSP
- value = WHITESPACE_NO_NBSP_TO_NORMALIZE.matcher(value).replaceAll(" "); // replace with regular space
- }
- return value;
- }
-
private String normalizeCurrencyDisplayName(String value) {
StringBuilder result = new StringBuilder();
boolean inParentheses = false;
@@ -1013,4 +1001,99 @@
return posixDigitCount;
}
}
+
+ /**
+ * Turn all whitespace sequences (including tab and newline, and NBSP for certain paths)
+ * into a single space or a single NBSP depending on path.
+ * Also trim initial/final NBSP, unless the value is only the one character, "\u00A0"
+ *
+ * @param path
+ * @param value
+ * @return the normalized value
+ */
+ private String normalizeWhitespace(String path, String value) {
+ PathSpaceType pst = PathSpaceType.get(path);
+ if (pst == PathSpaceType.allowSp) {
+ value = WHITESPACE_AND_NBSP_TO_NORMALIZE.matcher(value).replaceAll(" "); // replace with regular space
+ } else if (pst == PathSpaceType.allowNbsp) {
+ value = WHITESPACE_AND_NBSP_TO_NORMALIZE.matcher(value).replaceAll("\u00A0"); // replace with NBSP
+ value = trimNBSP(value);
+ } else if (pst == PathSpaceType.allowSpOrNbsp) {
+ /*
+ * in this case don't normalize away NBSP
+ */
+ value = WHITESPACE_NO_NBSP_TO_NORMALIZE.matcher(value).replaceAll(" "); // replace with regular space
+ /*
+ * if any NBSP and regular space are adjacent, replace with NBSP
+ */
+ value = NBSP_PLUS_SPACE_TO_NORMALIZE.matcher(value).replaceAll("\u00A0");
+ value = SPACE_PLUS_NBSP_TO_NORMALIZE.matcher(value).replaceAll("\u00A0");
+ value = MULTIPLE_NBSP.matcher(value).replaceAll("\u00A0");
+ value = trimNBSP(value);
+ } else {
+ throw new IllegalArgumentException("Unknown PathSpaceType " + pst);
+ }
+ return value;
+ }
+
+ /**
+ * Delete any initial or final NBSP, unless the value is just NBSP
+ *
+ * @param value
+ * @return the trimmed value
+ */
+ private String trimNBSP(String value) {
+ if (!"\u00A0".equals(value)) {
+ value = INITIAL_NBSP.matcher(value).replaceAll("");
+ value = FINAL_NBSP.matcher(value).replaceAll("");
+ }
+ return value;
+ }
+
+ /**
+ * Categorize xpaths according to whether they allow space, NBSP, or both
+ */
+ public enum PathSpaceType {
+ allowSp, allowNbsp, allowSpOrNbsp;
+
+ public static PathSpaceType get(String path) {
+ if (wantsRegularSpace(path)) {
+ return allowSp;
+ } else if (wantsNBSP(path)) {
+ return allowNbsp;
+ } else {
+ return allowSpOrNbsp;
+ }
+ }
+
+ private static boolean wantsRegularSpace(String path) {
+ if ((path.contains("/dateFormatLength") && path.contains("/pattern")) ||
+ path.contains("/availableFormats/dateFormatItem") ||
+ (path.startsWith("//ldml/dates/timeZoneNames/metazone") && path.contains("/long")) ||
+ path.startsWith("//ldml/dates/timeZoneNames/regionFormat") ||
+ path.startsWith("//ldml/localeDisplayNames/codePatterns/codePattern") ||
+ path.startsWith("//ldml/localeDisplayNames/languages/language") ||
+ path.startsWith("//ldml/localeDisplayNames/territories/territory") ||
+ path.startsWith("//ldml/localeDisplayNames/types/type") ||
+ (path.startsWith("//ldml/numbers/currencies/currency") && path.contains("/displayName")) ||
+ (path.contains("/decimalFormatLength[@type=\"long\"]") && path.contains("/pattern")) ||
+ path.startsWith("//ldml/posix/messages") ||
+ (path.startsWith("//ldml/units/uni") && path.contains("/unitPattern "))) {
+ return true;
+ }
+ return false;
+ }
+
+ private static boolean wantsNBSP(String path) {
+ if ((path.contains("/currencies/currency") && (path.contains("/group") || path.contains("/pattern"))) ||
+ (path.contains("/currencyFormatLength") && path.contains("/pattern")) ||
+ (path.contains("/currencySpacing") && path.contains("/insertBetween")) ||
+ (path.contains("/decimalFormatLength") && path.contains("/pattern")) || // i.e. the non-long ones
+ (path.contains("/percentFormatLength") && path.contains("/pattern")) ||
+ (path.startsWith("//ldml/numbers/symbols") && (path.contains("/group") || path.contains("/nan")))) {
+ return true;
+ }
+ return false;
+ }
+ }
}
diff --git a/tools/java/org/unicode/cldr/test/EmojiSubdivisionNames.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/EmojiSubdivisionNames.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/EmojiSubdivisionNames.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/EmojiSubdivisionNames.java
diff --git a/tools/java/org/unicode/cldr/test/ExampleCache.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/ExampleCache.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/ExampleCache.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/ExampleCache.java
diff --git a/tools/java/org/unicode/cldr/test/ExampleDependencies.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/ExampleDependencies.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/ExampleDependencies.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/ExampleDependencies.java
diff --git a/tools/java/org/unicode/cldr/test/ExampleGenerator.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/ExampleGenerator.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/ExampleGenerator.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/ExampleGenerator.java
diff --git a/tools/java/org/unicode/cldr/test/FactoryCheckCLDR.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/FactoryCheckCLDR.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/FactoryCheckCLDR.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/FactoryCheckCLDR.java
diff --git a/tools/java/org/unicode/cldr/test/FlexibleDateFromCLDR.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/FlexibleDateFromCLDR.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/FlexibleDateFromCLDR.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/FlexibleDateFromCLDR.java
diff --git a/tools/java/org/unicode/cldr/test/FlexibleDateTime.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/FlexibleDateTime.java
similarity index 99%
rename from tools/java/org/unicode/cldr/test/FlexibleDateTime.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/FlexibleDateTime.java
index 620bf13..7630b6a 100644
--- a/tools/java/org/unicode/cldr/test/FlexibleDateTime.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/test/FlexibleDateTime.java
@@ -144,7 +144,6 @@
}
// special hack for OpenOffice
territoryAlias.put("CB", "029");
- languageAlias.put("no", "nb");
}
LocaleIDParser lip = new LocaleIDParser();
diff --git a/tools/java/org/unicode/cldr/test/HelpMessages.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/HelpMessages.java
similarity index 97%
rename from tools/java/org/unicode/cldr/test/HelpMessages.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/HelpMessages.java
index adca8ed..754c150 100644
--- a/tools/java/org/unicode/cldr/test/HelpMessages.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/test/HelpMessages.java
@@ -45,10 +45,10 @@
* The file has to be in the format of a table of <keyRegex,htmlText> pairs,
* where the key is a keyRegex expression and htmlText is arbitrary HTML text. For example:
* <p>
- * {@link http://unicode.org/cldr/data/tools/java/org/unicode/cldr/util/data/chart_messages.html} is used for
+ * {@link http://unicode.org/cldr/data/tools/cldr-code/org/unicode/cldr/util/data/chart_messages.html} is used for
* chart messages, where the key is the name of the chart.
* <p>
- * {@link http://unicode.org/cldr/data/tools/java/org/unicode/cldr/util/data/test_help_messages.html} is used
+ * {@link http://unicode.org/cldr/data/tools/cldr-code/org/unicode/cldr/util/data/test_help_messages.html} is used
* for help messages in the survey tool, where the key is an xpath.
*
* @param filename
diff --git a/tools/java/org/unicode/cldr/test/OutdatedPaths.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/OutdatedPaths.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/OutdatedPaths.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/OutdatedPaths.java
diff --git a/tools/java/org/unicode/cldr/test/PrintTransitions.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/PrintTransitions.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/PrintTransitions.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/PrintTransitions.java
diff --git a/tools/java/org/unicode/cldr/test/QuickCheck.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/QuickCheck.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/QuickCheck.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/QuickCheck.java
diff --git a/tools/java/org/unicode/cldr/test/SubmissionLocales.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/SubmissionLocales.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/SubmissionLocales.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/SubmissionLocales.java
diff --git a/tools/java/org/unicode/cldr/test/TestCLDRTests.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/TestCLDRTests.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/TestCLDRTests.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/TestCLDRTests.java
diff --git a/tools/java/org/unicode/cldr/test/TestCache.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/TestCache.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/TestCache.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/TestCache.java
diff --git a/tools/java/org/unicode/cldr/test/TestMetadata.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/TestMetadata.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/TestMetadata.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/TestMetadata.java
diff --git a/tools/java/org/unicode/cldr/test/TestMetazones.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/TestMetazones.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/TestMetazones.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/TestMetazones.java
diff --git a/tools/java/org/unicode/cldr/test/TestMisc.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/TestMisc.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/TestMisc.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/TestMisc.java
diff --git a/tools/java/org/unicode/cldr/test/TestSupplementalData.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/TestSupplementalData.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/TestSupplementalData.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/TestSupplementalData.java
diff --git a/tools/java/org/unicode/cldr/test/TestTransforms.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/TestTransforms.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/TestTransforms.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/TestTransforms.java
diff --git a/tools/java/org/unicode/cldr/test/TestTransformsSimple.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/TestTransformsSimple.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/TestTransformsSimple.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/TestTransformsSimple.java
diff --git a/tools/java/org/unicode/cldr/test/XPathToMenu.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/XPathToMenu.java
similarity index 100%
rename from tools/java/org/unicode/cldr/test/XPathToMenu.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/test/XPathToMenu.java
diff --git a/tools/java/org/unicode/cldr/tool/AddPopulationData.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/AddPopulationData.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/AddPopulationData.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/AddPopulationData.java
diff --git a/tools/java/org/unicode/cldr/tool/CLDRCompare.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CLDRCompare.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/CLDRCompare.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/CLDRCompare.java
diff --git a/tools/java/org/unicode/cldr/tool/CLDRFilePseudolocalizer.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CLDRFilePseudolocalizer.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/CLDRFilePseudolocalizer.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/CLDRFilePseudolocalizer.java
diff --git a/tools/java/org/unicode/cldr/tool/CLDRFileTransformer.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CLDRFileTransformer.java
similarity index 98%
rename from tools/java/org/unicode/cldr/tool/CLDRFileTransformer.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/CLDRFileTransformer.java
index 0a12fff..7d06e31 100644
--- a/tools/java/org/unicode/cldr/tool/CLDRFileTransformer.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CLDRFileTransformer.java
@@ -6,6 +6,7 @@
import java.util.concurrent.ConcurrentHashMap;
import org.unicode.cldr.draft.FileUtilities;
+import org.unicode.cldr.test.DisplayAndInputProcessor;
import org.unicode.cldr.util.CLDRFile;
import org.unicode.cldr.util.CLDRPaths;
import org.unicode.cldr.util.CLDRTransforms;
@@ -188,6 +189,7 @@
outputParent = factory.make(localeTransform.getInputLocale(), false);
XMLSource outputSource = new SimpleXMLSource(localeTransform.toString());
+ DisplayAndInputProcessor daip = new DisplayAndInputProcessor(output, true);
for (String xpath : input) {
String value = input.getStringValue(xpath);
if (CldrUtility.INHERITANCE_MARKER.equals(value)) {
@@ -201,6 +203,7 @@
String parentValue = outputParent.getStringValue(xpath);
value = transformValue(transliterator, localeTransform, xpath, value, oldValue, parentValue);
if (value != null && !CldrUtility.INHERITANCE_MARKER.equals(value)) {
+ value = daip.processInput(xpath, value, null);
outputSource.putValueAtPath(fullPath, value);
}
}
diff --git a/tools/java/org/unicode/cldr/tool/CLDRFormat.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CLDRFormat.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/CLDRFormat.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/CLDRFormat.java
diff --git a/tools/java/org/unicode/cldr/tool/CLDRModify.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CLDRModify.java
similarity index 86%
rename from tools/java/org/unicode/cldr/tool/CLDRModify.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/CLDRModify.java
index 9713254..fda9225 100644
--- a/tools/java/org/unicode/cldr/tool/CLDRModify.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CLDRModify.java
@@ -52,7 +52,6 @@
// import org.unicode.cldr.util.Log;
import org.unicode.cldr.util.LogicalGrouping;
import org.unicode.cldr.util.PathChecker;
-import org.unicode.cldr.util.PathHeader;
import org.unicode.cldr.util.PatternCache;
import org.unicode.cldr.util.RegexLookup;
import org.unicode.cldr.util.SimpleFactory;
@@ -89,7 +88,6 @@
@CLDRTool(alias = "modify",
description = "Tool for applying modifications to the CLDR files. Use -h to see the options.")
public class CLDRModify {
- private static final boolean DEBUG = false;
static final String DEBUG_PATHS = null; // ".*currency.*";
static final boolean COMMENT_REMOVALS = false; // append removals as comments
static final UnicodeSet whitespace = new UnicodeSet("[:whitespace:]").freeze();
@@ -280,8 +278,6 @@
+ "\tr\t replace contents (otherwise new data will be draft=\"unconfirmed\")"
+ XPathParts.NEWLINE
+ "\tc\t ignore comments in <merge_dir> files"
-// + XPathParts.NEWLINE
-// + "-r\t to minimize the results (removing items that inherit from parent)."
+ XPathParts.NEWLINE
+ "-v\t incorporate vetting information, and generate diff files."
+ XPathParts.NEWLINE
@@ -324,8 +320,6 @@
String recurseOnDirectories = options[ALL_DIRS].value;
boolean makeResolved = options[RESOLVE].doesOccur; // Utility.COMMON_DIRECTORY + "main/";
- // String sourceDir = "C:\\ICU4C\\locale\\common\\main\\";
-
sourceInput = options[SOURCEDIR].value;
String destInput = options[DESTDIR].value;
if (recurseOnDirectories != null) {
@@ -352,7 +346,6 @@
String sourceDir = sourceDirBase + dir;
if (!new File(sourceDir).isDirectory()) continue;
String targetDir = targetDirBase + dir;
- // Log.setLog(targetDir + "/diff", "log.txt");
try {
Factory cldrFactory = Factory.make(sourceDir, ".*");
@@ -379,18 +372,6 @@
}
mergeFactory = Factory.make(mergeDir, ".*");
}
- /*
- * Factory cldrFactory = Factory.make(sourceDir, ".*");
- * Set testSet = cldrFactory.getAvailable();
- * String[] quicktest = new String[] {
- * "de"
- * //"ar", "dz_BT",
- * // "sv", "en", "de"
- * };
- * if (quicktest.length > 0) {
- * testSet = new TreeSet(Arrays.asList(quicktest));
- * }
- */
Set<String> locales = new TreeSet<>(cldrFactory.getAvailable());
if (mergeFactory != null) {
Set<String> temp = new TreeSet<>(mergeFactory.getAvailable());
@@ -404,9 +385,6 @@
}
new CldrUtility.MatcherFilter(options[MATCH].value).retainAll(locales);
- RetainWhenMinimizing retainIfTrue = null;
- PathHeader.Factory pathHeaderFactory = null;
-
fixList.handleSetup();
long lastTime = System.currentTimeMillis();
@@ -423,24 +401,14 @@
lastTime = now;
}
}
- // testJavaSemantics();
// TODO parameterize the directory and filter
- // System.out.println("C:\\ICU4C\\locale\\common\\main\\fr.xml");
- CLDRFile k = cldrFactory.make(test, makeResolved).cloneAsThawed();
- // HashSet<String> set = Builder.with(new HashSet<String>()).addAll(k).get();
- // System.out.format("Locale\t%s, Size\t%s\n", test, set.size());
- // if (k.isNonInheriting()) continue; // for now, skip supplementals
+ final CLDRFile originalCldrFile = cldrFactory.make(test, makeResolved);
+ CLDRFile k = originalCldrFile.cloneAsThawed();
if (DEBUG_PATHS != null) {
System.out.println("Debug1 (" + test + "):\t" + k.toString(DEBUG_PATHS));
}
- // System.out.println(k);
- // String s1 =
- // "//ldml/segmentations/segmentation[@type=\"LineBreak\"]/variables/variable[@_q=\"0061\"][@id=\"$CB\"] ";
- // String s2 =
- // "//ldml/segmentations/segmentation[@type=\"LineBreak\"]/variables/variable[@_q=\"003A\"][@id=\"$CB\"]";
- // System.out.println(k.ldmlComparator.compare(s1, s2));
if (mergeFactory != null) {
int mergeOption = CLDRFile.MERGE_ADD_ALTERNATE;
CLDRFile toMergeIn = mergeFactory.make(join_prefix + test + join_postfix, false)
@@ -470,50 +438,6 @@
if (DEBUG_PATHS != null) {
System.out.println("Debug3 (" + test + "):\t" + k.toString(DEBUG_PATHS));
}
-// if (options[MINIMIZE].doesOccur) {
-// if (pathHeaderFactory == null) {
-// pathHeaderFactory = PathHeader.getFactory(cldrFactory.make("en", true));
-// }
-// // TODO, fix identity
-// String parent = LocaleIDParser.getParent(test);
-// if (parent != null) {
-// CLDRFile toRemove = cldrFactory.make(parent, true);
-// // remove the items that are language codes, script codes, or region codes
-// // since they may be real translations.
-// if (retainIfTrue == null) {
-// retainIfTrue = new RetainWhenMinimizing();
-// }
-// retainIfTrue.setParentFile(toRemove);
-// List<String> removed = DEBUG ? null : new ArrayList<String>();
-// k.removeDuplicates(toRemove, COMMENT_REMOVALS, retainIfTrue, removed);
-// if (removed != null && removed.size() != 0) {
-// totalRemoved += removed.size();
-// Set<PathHeader> sorted = new TreeSet<PathHeader>();
-// for (String path : removed) {
-// sorted.add(pathHeaderFactory.fromPath(path));
-// }
-// for (PathHeader pathHeader : sorted) {
-// System.out.println("\t# " + test + "\t" + pathHeader + "\t" + pathHeader.getOriginalPath());
-// }
-// System.out.println("\t# " + test + "\t# Removed:\t" + removed.size());
-// }
-// }
-// }
- // System.out.println(CLDRFile.getAttributeOrder());
-
- /*
- * if (false) {
- * Map tempComments = k.getXpath_comments();
- *
- * for (Iterator it2 = tempComments.keySet().iterator(); it2.hasNext();) {
- * String key = (String) it2.next();
- * String comment = (String) tempComments.get(key);
- * Log.logln("Writing extra comment: " + key);
- * System.out.println(key + "\t comment: " + comment);
- * }
- * }
- */
-
if (DEBUG_PATHS != null) {
System.out.println("Debug4 (" + test + "):\t" + k.toString(DEBUG_PATHS));
}
@@ -524,17 +448,14 @@
System.out.println("Printing Raw File:");
testPath = "//ldml/dates/calendars/calendar[@type=\"persian\"]/months/monthContext[@type=\"format\"]/monthWidth[@type=\"abbreviated\"]/alias";
System.out.println(k.getStringValue(testPath));
- // System.out.println(k.getFullXPath(testPath));
TreeSet s = new TreeSet();
k.forEach(s::add);
System.out.println(k.getStringValue(testPath));
- // if (true) return;
Set orderedSet = new TreeSet(k.getComparator());
k.forEach(orderedSet::add);
for (Iterator it3 = orderedSet.iterator(); it3.hasNext();) {
String path = (String) it3.next();
- // System.out.println(path);
if (path.equals(testPath)) {
System.out.println("huh?");
}
@@ -547,27 +468,19 @@
}
k.write(pw);
- // pw.println();
pw.close();
+
+ File oldFile = new File(sourceDir, test + ".xml");
+ File newFile = new File(targetDir, test + ".xml");
+ if (!oldFile.equals(newFile) // only skip if the source & target are different.
+ && equalsSkippingCopyright(oldFile, newFile)) {
+ newFile.delete();
+ continue;
+ }
+
if (options[CHECK].doesOccur) {
QuickCheck.check(new File(targetDir, test + ".xml"));
}
-
- // JCE: I don't think anyone really uses the .bat files from CLDRModify any more, since
- // Eclipse provides a decent file comparison program. You can comment this back in if
- // you need it, but I found that sometimes having this here clobbers the real output
- // file, which we definitely don't want.
- // ToolUtilities.generateBat(sourceDir, test + ".xml", targetDir, test + ".xml", lineComparer);
-
- /*
- * boolean ok = Utility.areFileIdentical(sourceDir + test + ".xml",
- * targetDir + test + ".xml", failureLines, Utility.TRIM + Utility.SKIP_SPACES);
- * if (!ok) {
- * System.out.println("Found differences at: ");
- * System.out.println("\t" + failureLines[0]);
- * System.out.println("\t" + failureLines[1]);
- * }
- */
}
if (totalSkeletons.size() != 0) {
System.out.println("Total Skeletons" + totalSkeletons);
@@ -577,13 +490,35 @@
}
} finally {
fixList.handleCleanup();
- // Log.close();
System.out.println("Done -- Elapsed time: " + ((System.currentTimeMillis() - startTime) / 60000.0)
+ " minutes");
}
}
}
+ public static boolean equalsSkippingCopyright(File oldFile, File newFile) {
+ Iterator<String> oldIterator = FileUtilities.in(oldFile).iterator();
+ Iterator<String> newIterator = FileUtilities.in(newFile).iterator();
+ while (true) {
+ boolean oldHasNext = oldIterator.hasNext();
+ boolean newHasNext = newIterator.hasNext();
+ if (oldHasNext != newHasNext) {
+ return false;
+ }
+ if (!oldHasNext) {
+ return true;
+ }
+ String oldLine = oldIterator.next();
+ String newLine = newIterator.next();
+ if (!oldLine.equals(newLine)) {
+ if (oldLine.startsWith("<!-- Copyright ©") && newLine.startsWith("<!-- Copyright ©")) {
+ continue;
+ }
+ return false;
+ }
+ }
+ }
+
private static String removeSuffix(String value, String... suffices) {
for (String suffix : suffices) {
if (value.endsWith(suffix)) {
@@ -601,7 +536,6 @@
private CLDRFile file;
private CLDRLocale c;
private boolean isArabicSublocale;
- // Status status = new Status(); // no need to have, was unused
public RetainWhenMinimizing setParentFile(CLDRFile file) {
this.file = file;
@@ -631,9 +565,6 @@
static final Splitter COMMA_SEMI = Splitter.on(Pattern.compile("[,;|]")).trimResults().omitEmptyStrings();
protected static final boolean NUMBER_SYSTEM_HACK = true;
- /**
- *
- */
private static void checkSuboptions(UOption givenOptions, UnicodeSet allowedOptions) {
if (givenOptions.doesOccur && !allowedOptions.containsAll(givenOptions.value)) {
throw new IllegalArgumentException("Illegal sub-options for "
@@ -644,9 +575,6 @@
}
}
- /**
- *
- */
private static void removePosix(CLDRFile toMergeIn) {
Set<String> toRemove = new HashSet<>();
for (String xpath : toMergeIn) {
@@ -655,60 +583,8 @@
toMergeIn.removeAll(toRemove, false);
}
- // private static class References {
- // static Map<String,Map<String,String>> locale_oldref_newref = new TreeMap<String,Map<String,String>>();
- //
- // static String[][] keys = {{"standard", "S", "[@standard=\"true\"]"}, {"references", "R", ""}};
- // UnicodeSet digits = new UnicodeSet("[0-9]");
- // int referenceCounter = 0;
- // Map references_token = new TreeMap();
- // Set tokenSet = new HashSet();
- // String[] keys2;
- // boolean isStandard;
- // References(boolean standard) {
- // isStandard = standard;
- // keys2 = standard ? keys[0] : keys[1];
- // }
- // /**
- // *
- // */
- // public void reset(CLDRFile k) {
- // }
- // /**
- // *
- // */
- // // Samples:
- // // <language type="ain" references="RP1">阿伊努文</language>
- // // <reference type="R1" uri="http://www.info.gov.hk/info/holiday_c.htm">二零零五年公眾假期刊登憲報</reference>
- // private int fix(Map attributes, CLDRFile replacements) {
- // // we have to have either a references element or attributes.
- // String references = (String) attributes.get(keys2[0]);
- // int result = 0;
- // if (references != null) {
- // references = references.trim();
- // if (references.startsWith("S") || references.startsWith("R")) {
- // if (digits.containsAll(references.substring(1))) return 0;
- // }
- // String token = (String) references_token.get(references);
- // if (token == null) {
- // while (true) {
- // token = keys2[1] + (++referenceCounter);
- // if (!tokenSet.contains(token)) break;
- // }
- // references_token.put(references, token);
- // System.out.println("Adding: " + token + "\t" + references);
- // replacements.add("//ldml/references/reference[@type=\"" + token + "\"]" + keys2[2], references);
- // result = 1;
- // }
- // attributes.put(keys2[0], token);
- // }
- // return result;
- // }
- // }
-
static PathChecker pathChecker = new PathChecker();
-
abstract static class CLDRFilter {
protected CLDRFile cldrFileToFilter;
protected CLDRFile cldrFileToFilterResolved;
@@ -763,8 +639,6 @@
public void remove(String path, String reason) {
if (toBeRemoved.contains(path)) return;
toBeRemoved.add(path);
-// System.out.println("%" + localeID + "\t" + reason + "\tRemoving:\t«"
-// + cldrFileToFilter.getStringValue(path) + "»\t at:\t" + path);
String oldValueOldPath = cldrFileToFilter.getStringValue(path);
showAction(reason, "Removing", oldValueOldPath, null, null, path, path);
}
@@ -945,7 +819,6 @@
}
void handlePath(String xpath) {
- //options = options.toLowerCase();
for (int i = 0; i < inputOptions.length(); ++i) {
char c = inputOptions.charAt(i);
if (filters[c] != null) {
@@ -1154,7 +1027,6 @@
if (m == null) {
m = PatternCache.get(options[PATH].value).matcher("");
}
- //String v = cldrFileToFilter.getStringValue(xpath);
String fullXPath = cldrFileToFilter.getFullXPath(xpath);
if (!m.reset(fullXPath).matches()) {
remove(xpath);
@@ -1162,34 +1034,6 @@
}
});
-// fixList.add('_', "remove superfluous compound language translations", new CLDRFilter() {
-// private CLDRFile resolved;
-//
-// public void handleStart() {
-// resolved = factory.make(cldrFileToFilter.getLocaleID(), true);
-// }
-//
-// public void handlePath(String xpath) {
-// if (!xpath.contains("_")) return;
-// if (!xpath.contains("/language")) return;
-// XPathParts parts = XPathParts.getFrozenInstance(xpath);
-// String languageCode = parts.findAttributeValue("language", "type");
-// String v = resolved.getStringValue(xpath);
-// if (v.equals(languageCode)) {
-// remove(xpath, "same as language code");
-// return;
-// }
-// String generatedTranslation = resolved.getName(languageCode, true);
-// if (v.equals(generatedTranslation)) {
-// remove(xpath, "superfluous compound language");
-// }
-// String spacelessGeneratedTranslation = generatedTranslation.replace(" ", "");
-// if (v.equals(spacelessGeneratedTranslation)) {
-// remove(xpath, "superfluous compound language (after removing space)");
-// }
-// }
-// });
-
fixList.add('l', "change language code", new CLDRFilter() {
private CLDRFile resolved;
@@ -1215,25 +1059,6 @@
}
});
-// fixList.add('m', "remove multiple alt-variants", new CLDRFilter() {
-//
-// public void handleStart() {
-// }
-//
-// public void handlePath(String xpath) {
-// XPathParts parts = XPathParts.getFrozenInstance(xpath);
-// if (!parts.containsAttributeValue("alt", "variant")) {
-// return;
-// }
-// String variantValue = cldrFileToFilter.getStringValue(xpath);
-// String nonVariantXpath = xpath.replaceAll("\\[\\@alt=\"variant\"\\]", "");
-// String nonVariantValue = cldrFileToFilter.getStringValue(nonVariantXpath);
-// if (variantValue.equals(nonVariantValue)) {
-// remove(xpath, "removing superfluous alt-variant value");
-// }
-// }
-// });
-
fixList.add('g', "Swap alt/non-alt values for Czechia", new CLDRFilter() {
@Override
@@ -1287,7 +1112,6 @@
@Override
public void handlePath(String xpath) {
-
if (xpath.indexOf("count") < 0) {
return;
}
@@ -1400,9 +1224,6 @@
@Override
public void handlePath(String xpath) {
String value = cldrFileToFilter.getStringValue(xpath);
- if (!value.equals(value.trim())) {
- value = value; // for debugging
- }
String newValue = inputProcessor.processInput(xpath, value, null);
if (value.equals(newValue)) {
return;
@@ -1453,21 +1274,6 @@
});
fixList.add('v', "remove illegal codes", new CLDRFilter() {
-
- /*
- * Set legalCurrencies;
- * }
- * {
- * StandardCodes sc = StandardCodes.make();
- * legalCurrencies = new TreeSet(sc.getAvailableCodes("currency"));
- * // first remove non-ISO
- * for (Iterator it = legalCurrencies.iterator(); it.hasNext();) {
- * String code = (String) it.next();
- * List data = sc.getFullData("currency", code);
- * if ("X".equals(data.get(3))) it.remove();
- * }
- * }
- */
StandardCodes sc = StandardCodes.make();
String[] codeTypes = { "language", "script", "territory", "currency" };
@@ -1546,7 +1352,6 @@
@Override
public void handlePath(String xpath) {
- // timeFormatLength type="full"
if (xpath.contains("timeFormatLength") && xpath.contains("full")) {
String fullpath = cldrFileToFilter.getFullXPath(xpath);
String value = cldrFileToFilter.getStringValue(xpath);
@@ -1617,9 +1422,6 @@
fixList.add('y', "fix years to be y (with exceptions)", new CLDRFilter() {
DateTimeCanonicalizer dtc = new DateTimeCanonicalizer(true);
-
- DateTimePatternGenerator dateTimePatternGenerator = DateTimePatternGenerator.getEmptyInstance();
- DateTimePatternGenerator.FormatParser formatParser = new DateTimePatternGenerator.FormatParser();
Map<String, Set<String>> seenSoFar = new HashMap<>();
@Override
@@ -1632,22 +1434,16 @@
DateTimePatternType datetimePatternType = DateTimePatternType.fromPath(xpath);
// check to see if we need to change the value
-
if (!DateTimePatternType.STOCK_AVAILABLE_INTERVAL_PATTERNS.contains(datetimePatternType)) {
return;
}
String oldValue = cldrFileToFilter.getStringValue(xpath);
String value = dtc.getCanonicalDatePattern(xpath, oldValue, datetimePatternType);
-
String fullPath = cldrFileToFilter.getFullXPath(xpath);
- // Deleted code to canonicalize id for availableFormats items (cldrbug 5760)
-
if (value.equals(oldValue)) {
return;
}
-
// made it through the gauntlet, so replace
-
replace(xpath, fullPath, value);
}
});
@@ -1694,8 +1490,6 @@
String newEraValue = eraValue.concat(appendYearRange);
String fullpath = cldrFileToFilter.getFullXPath(xpath);
replace(xpath, fullpath, newEraValue);
- // System.out.println("CLDRModify fj: rootEraValue: \"" + rootEraValue + "\", eraValue: \"" + eraValue +
- // "\", rangeMarker: \"" + rangeMarker + "\"");
}
});
@@ -1704,11 +1498,6 @@
Map<String, TreeMap<String, String>> locale_oldref_newref = new TreeMap<>();
TreeMap<String, String> oldref_newref;
- //LanguageTagParser ltp = new LanguageTagParser();
-
- // References standards = new References(true);
- // References references = new References(false);
-
@Override
public void handleStart() {
String locale = cldrFileToFilter.getLocaleID();
@@ -1719,12 +1508,9 @@
}
}
- // // Samples:
- // // <language type="ain" references="RP1">阿伊努文</language>
- // // <reference type="R1" uri="http://www.info.gov.hk/info/holiday_c.htm">二零零五年公眾假期刊登憲報</reference>
@Override
public void handlePath(String xpath) {
- // must be minimised for this to work.
+ // must be minimized for this to work.
String fullpath = cldrFileToFilter.getFullXPath(xpath);
if (!fullpath.contains("reference")) return;
String value = cldrFileToFilter.getStringValue(xpath);
@@ -1868,8 +1654,6 @@
if (!sourceLocaleId.equals(XMLSource.ROOT_ID) && !sourceLocaleId.equals(XMLSource.CODE_FALLBACK_ID)) {
items = Annotations.splitter.splitToList(keywordValue);
sorted.addAll(items);
- } else {
- int debug = 0;
}
DisplayAndInputProcessor.filterCoveredKeywords(sorted);
String newKeywordValue = Joiner.on(" | ").join(sorted);
@@ -1903,7 +1687,6 @@
hackAllowOnly.add(numberingSystem);
}
}
- int debug = 0;
}
}
@@ -1955,7 +1738,6 @@
new CLDRFilter() {
private Map<ConfigMatch, LinkedHashSet<Map<ConfigKeys, ConfigMatch>>> locale2keyValues;
private LinkedHashSet<Map<ConfigKeys, ConfigMatch>> keyValues = new LinkedHashSet<>();
- private Matcher draftMatcher = Pattern.compile("\\[@draft=\"[^\"]+\"]").matcher("");
@Override
public void handleStart() {
@@ -1979,7 +1761,6 @@
System.out.println("# Checking entries & changing:\t" + keyValues.size());
for (Map<ConfigKeys, ConfigMatch> entry : keyValues) {
ConfigMatch action = entry.get(ConfigKeys.action);
- //ConfigMatch locale = entry.get(ConfigKeys.locale);
ConfigMatch pathMatch = entry.get(ConfigKeys.path);
ConfigMatch valueMatch = entry.get(ConfigKeys.value);
ConfigMatch newPath = entry.get(ConfigKeys.new_path);
@@ -2035,9 +1816,6 @@
@Override
protected boolean handleLine(int lineCount, String line) {
line = line.trim();
-// if (line.isEmpty()) {
-// return true;
-// }
String[] lineParts = line.split("\\s*;\\s*");
Map<ConfigKeys, ConfigMatch> keyValue = new EnumMap<>(
ConfigKeys.class);
@@ -2076,9 +1854,6 @@
public void handlePath(String xpath) {
// slow method; could optimize
for (Map<ConfigKeys, ConfigMatch> entry : keyValues) {
- if (xpath.equals("AKUAPEM")) {
- int debug = 0;
- }
ConfigMatch pathMatch = entry.get(ConfigKeys.path);
if (pathMatch != null && !pathMatch.matches(xpath)) {
continue;
@@ -2152,9 +1927,6 @@
}
for (String xpath : vxmlCommonMainFile) {
- if (xpath.contains("/language[@type=\"aa\"")) {
- int debug = 0;
- }
String vxmlValue = vxmlCommonMainFile.getStringValue(xpath);
if (vxmlValue == null) {
continue;
@@ -2171,14 +1943,6 @@
}
}
// at this point, the vxmlValue is ^^^ and the trunk value is either null or == baileyValue
-
-
- // special hack to avoid combined locale names like //ldml/localeDisplayNames/languages/language[@type="en_AU"][@draft="contributed"]
-
-// if (xpath.startsWith("//ldml/localeDisplayNames/languages/language[@type=") && xpath.contains("_")) {
-// continue;
-// }
-
String fullPath = resolved.getFullXPath(xpath); // get the draft status, etc.
if (fullPath == null) { // debugging
fullPath = vxmlCommonMainFile.getFullXPath(xpath);
@@ -2285,7 +2049,6 @@
return pathElements[pathElements.length-2] + "/" + pathElements[pathElements.length-1] + "/";
}
-
// references="http://www.stat.fi/tk/tt/luokitukset/lk/kieli_02.html"
private static class ValuePair {
@@ -2349,29 +2112,6 @@
static void fixAltProposed() {
throw new IllegalArgumentException();
- // throw out any alt=proposed values that are the same as the main
- // HashSet toRemove = new HashSet();
- // for (Iterator it = dataSource.iterator(); it.hasNext();) {
- // String cpath = (String) it.next();
- // if (cpath.indexOf("[@alt=") < 0) continue;
- // String cpath2 = getNondraftNonaltXPath(cpath);
- // String value = getStringValue(cpath);
- // String value2 = getStringValue(cpath2);
- // if (!value.equals(value2)) continue;
- // // have to worry about cases where the info is not in the value!!
- // //fix this; values are the same!!
- // String fullpath = getNondraftNonaltXPath(getFullXPath(cpath));
- // String fullpath2 = getNondraftNonaltXPath(getFullXPath(cpath2));
- // if (!fullpath.equals(fullpath2)) continue;
- // Log.logln(getLocaleID() + "\tRemoving redundant alternate: " + getFullXPath(cpath) + " ;\t" + value);
- // Log.logln("\t\tBecause of: " + getFullXPath(cpath2) + " ;\t" + value2);
- // if (getFullXPath(cpath2).indexOf("[@references=") >= 0) {
- // System.out.println("Warning: removing references: " + getFullXPath(cpath2));
- // }
- // toRemove.add(cpath);
- // }
- // dataSource.removeAll(toRemove);
-
}
/**
@@ -2445,35 +2185,4 @@
setWithCaseInsensitive.removeAll(plainSet);
System.out.println("S1 removeAll S2 is empty?\t" + setWithCaseInsensitive.isEmpty());
}
-
- // <localizedPatternChars>GyMdkHmsSEDFwWahKzYeugAZ</localizedPatternChars>
- /*
- * <localizedPattern>
- * <map type="era">G</map>
- * <map type="year">y</map>
- * <map type="year_iso">Y</map>
- * <map type="year_uniform">u</map>
- * <map type="month">M</map>
- * <map type="week_in_year">w</map>
- * <map type="week_in_month">W</map>
- * <map type="day">d</map>
- * <map type="day_of_year">D</map>
- * <map type="day_of_week_in_month">F</map>
- * <map type="day_julian">g</map>
- * <map type="day_of_week">E</map>
- * <map type="day_of_week_local">e</map>
- * <map type="period_in_day">a</map>
- * <map type="hour_1_12">h</map>
- * <map type="hour_0_23">H</map>
- * <map type="hour_0_11">K</map>
- * <map type="hour_1_24">k</map>
- * <map type="minute">m</map>
- * <map type="second">s</map>
- * <map type="fractions_of_second">S</map>
- * <map type="milliseconds_in_day">A</map>
- * <map type="timezone">z</map>
- * <map type="timezone_gmt">Z</map>
- * </localizedPattern>
- */
-
}
diff --git a/tools/java/org/unicode/cldr/tool/Chart.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/Chart.java
similarity index 97%
rename from tools/java/org/unicode/cldr/tool/Chart.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/Chart.java
index 752b064..3e1a53a 100644
--- a/tools/java/org/unicode/cldr/tool/Chart.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/Chart.java
@@ -7,6 +7,7 @@
import org.unicode.cldr.tool.FormattedFileWriter.Anchors;
import org.unicode.cldr.util.CLDRConfig;
import org.unicode.cldr.util.CLDRFile;
+import org.unicode.cldr.util.CLDRURLS;
import org.unicode.cldr.util.SupplementalDataInfo;
import com.ibm.icu.text.ListFormatter;
@@ -27,7 +28,7 @@
public static final String PREV_CHART_VERSION_DIRECTORY = ToolConstants.getBaseDirectory(ToolConstants.PREV_CHART_VERSION);
public static final String CHART_VERSION_DIRECTORY = ToolConstants.getBaseDirectory(ToolConstants.CHART_VERSION);
- private static final String GITHUB_ROOT = "https://github.com/unicode-org/cldr/blob/master/";
+ private static final String GITHUB_ROOT = CLDRURLS.CLDR_REPO_ROOT + "/blob/master/";
private static final String LDML_SPEC = "https://unicode.org/reports/tr35/";
public static String dataScrapeMessage(String specPart, String testFile, String... dataFiles) {
diff --git a/tools/java/org/unicode/cldr/tool/ChartAnnotations.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ChartAnnotations.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/ChartAnnotations.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ChartAnnotations.java
diff --git a/tools/java/org/unicode/cldr/tool/ChartCollation.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ChartCollation.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/ChartCollation.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ChartCollation.java
diff --git a/tools/java/org/unicode/cldr/tool/ChartDayPeriods.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ChartDayPeriods.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/ChartDayPeriods.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ChartDayPeriods.java
diff --git a/tools/java/org/unicode/cldr/tool/ChartDelta.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ChartDelta.java
similarity index 86%
rename from tools/java/org/unicode/cldr/tool/ChartDelta.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ChartDelta.java
index a478a8f..01c5215 100644
--- a/tools/java/org/unicode/cldr/tool/ChartDelta.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ChartDelta.java
@@ -410,9 +410,6 @@
Output<Boolean> hasReformattedValue = new Output<>();
for (String path : paths) {
- if (highLevelOnly && !HighLevelPaths.pathIsHighLevel(path, locale)) {
- continue;
- }
if (path.startsWith("//ldml/identity")
|| path.endsWith("/alias")
|| path.startsWith("//ldml/segmentations") // do later
@@ -452,6 +449,9 @@
oldValue = old.getConstructedBaileyValue(path, null, null);
}
}
+ if (highLevelOnly && new SuspiciousChange(oldValue, currentValue, path, locale).isDisruptive() == false) {
+ continue;
+ }
// handle non-distinguishing attributes
addPathDiff(sourceDir, old, current, locale, ph, diff);
@@ -465,8 +465,6 @@
writeDiffs(diffAll);
writeCounter(tsvCountFile, "Count", counts);
- //tsvFile.println("# EOF");
- //tsvCountFile.println("# EOF");
}
}
@@ -1105,6 +1103,102 @@
}
/**
+ * Determine when changes to the values for paths should be treated as
+ * potentially "disruptive" for the purpose of "churn" reporting
+ */
+ private class SuspiciousChange {
+ /**
+ * the old and new values, such as "HH:mm–HH:mm v" and "HH:mm – HH:mm v"
+ */
+ private String oldValue, newValue;
+
+ /**
+ * the path, such as //ldml/dates/calendars/calendar[@type="gregorian"]/dateTimeFormats/intervalFormats/intervalFormatItem[@id="Hmv"]/greatestDifference[@id="H"]
+ */
+ private String path;
+
+ /**
+ * the locale (such as "doi") in which the path was found, or null, or possibly
+ * the base file name without extension, like "xx" if the file name is "xx.xml",
+ * where "xx" may or may not be a locale; e.g., "supplementalData"
+ */
+ private String locale;
+
+ SuspiciousChange(String oldValue, String newValue, String path, String locale) {
+ this.oldValue = oldValue;
+ this.newValue = newValue;
+ this.path = path;
+ this.locale = locale;
+ }
+
+ /**
+ * Is the change from the old value to the new value, for this path and locale, potentially disruptive?
+ *
+ * @return true or false
+ */
+ public boolean isDisruptive() {
+ /*
+ * OR, not AND: certain changes in value are disruptive even for paths not
+ * otherwise treated as high-level, and changes for high-level paths are
+ * disruptive even if the changes in values themselves are not identified
+ * as disruptive.
+ */
+ return valueChangeIsDisruptive() || HighLevelPaths.pathIsHighLevel(path, locale);
+ }
+
+ /**
+ * Is the change from the old value to the current value potentially disruptive, based (primarily) on
+ * the values themselves?
+ *
+ * @return true or false
+ */
+ private boolean valueChangeIsDisruptive() {
+ if (oldValue == null || newValue == null || oldValue.equals(newValue)) {
+ return false;
+ }
+ if (valueChangeIsDisruptiveWhitespaceOnly()) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Is the change disruptive whitespace only?
+ * Per design doc, "Format changes: second to none on the disruptiveness scale are changes involving spaces such as SPACE -> NBSP
+ * or NBSP -> Narrow NBSP. Or adding a space somewhere in the format where previously there was none."
+ *
+ * @return true or false
+ */
+ private boolean valueChangeIsDisruptiveWhitespaceOnly() {
+ /*
+ * annotations often have changes like "pop gorn", "popgorn", not treated as disruptive
+ */
+ if (path.startsWith("//ldml/annotations")) {
+ return false;
+ }
+ if (removeWhitespace(oldValue).equals(removeWhitespace(newValue))) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Remove whitespace from the given string
+ *
+ * Remove whitespace as defined by regex \s, and also
+ * U+00A0 NO-BREAK SPACE
+ * U+2007 FIGURE SPACE
+ * U+202F NARROW NO-BREAK SPACE
+ *
+ * @param s the string
+ * @return the modified string
+ */
+ private String removeWhitespace(String s) {
+ return s.replaceAll("[\\s\\u00A0\\u2007\\u202F]", "");
+ }
+ }
+
+ /**
* Determine which paths are considered "high-level" paths, i.e.,
* paths for which any changes have high potential to cause disruptive "churn".
* Whether a path is high-level sometimes depends on the locale or xml file in
@@ -1118,18 +1212,9 @@
/**
* A set of paths to be treated as "high-level".
* These are complete paths to be matched exactly.
- * (Other paths are recognized by special functions like isHighLevelTerritoryName.)
+ * Other paths are recognized by special functions like isHighLevelTerritoryName.
*
- * The ordering and comments for are based on the design spec.
- *
- * Possibilities for improvement: read from file; maybe use RegexLookup;
- * distinguish these types:
- * (1) complete paths to be matched exactly;
- * (2) paths recognized by special functions like isHighLevelTerritoryName
- * (3) prefixes that could match with startsWith();
- * (4) RegexLookup or other regex
- * (5) "starred" paths
- * Currently we only have type (1) in this array, and all others are of type (2).
+ * The ordering and comments are based on the design spec.
*/
final private static Set<String> highLevelPaths = new HashSet<>(Arrays.asList(
/*
@@ -1160,8 +1245,8 @@
"//ldml/dates/fields/field[@type=\"minute\"]/displayName",
"//ldml/dates/fields/field[@type=\"second\"]/displayName",
/*
- * TODO: First day of week: /supplemental.xml firstDay
- * TODO: First week of year: /supplementalData/weekData/firstDay[not(\@alt)
+ * First day of week: firstDay in supplementalData.xml; see isHighLevelFirstDay
+ * First week of year: see isHighLevelWeekOfPreference
*/
"//ldml/dates/calendars/calendar[@type=\"gregorian\"]/dateFormats/dateFormatLength[@type=\"full\"]/dateFormat[@type=\"standard\"]/pattern[@type=\"standard\"]",
"//ldml/dates/calendars/calendar[@type=\"gregorian\"]/dateFormats/dateFormatLength[@type=\"long\"]/dateFormat[@type=\"standard\"]/pattern[@type=\"standard\"]",
@@ -1184,25 +1269,20 @@
* Currency (English and Native) -- see isHighLevelCurrencyName
* E.g., //ldml/numbers/currencies/currency[@type=\"KRW\"]/displayName"
*
- * TODO: per design spec, "ISO Currency Code: SupplementalData.xml match <region iso3166>"
+ * ISO Currency Code: SupplementalData.xml match <region iso3166> -- see isHighLevelCurrencyCode
*/
/*
* Currency Formats
* a. Currency thousand separator
- * TODO: See pt_CV.xml example <numbers><currencies><currency><symbol>
* b. Currency decimal separator
- * TODO: See pt_CV.xml example <numbers><currencies><currency><decimal>
- * c. Currency Symbol//ldml/numbers/currencies/currency[@type="CNY"]/symbol
- * d. Currency Symbol Narrow
+ * c. Currency Symbol //ldml/numbers/currencies/currency[@type="CNY"]/symbol
+ * d. Currency Symbol Narrow //ldml/numbers/currencies/currency[@type=\"CNY\"]/symbol[@alt=\"narrow\"]"
+ *
+ * See isHighLevelCurrencySeparatorOrSymbol
*/
"//ldml/numbers/currencyFormats[@numberSystem=\"latn\"]/currencyFormatLength/currencyFormat[@type=\"standard\"]/pattern[@type=\"standard\"]",
"//ldml/numbers/currencyFormats[@numberSystem=\"arab\"]/currencyFormatLength/currencyFormat[@type=\"standard\"]/pattern[@type=\"standard\"]",
/*
- * Currency symbols
- */
- "//ldml/numbers/currencies/currency[@type=\"CNY\"]/symbol",
- "//ldml/numbers/currencies/currency[@type=\"CNY\"]/symbol[@alt=\"narrow\"]",
- /*
* Number Symbols
*/
"//ldml/numbers/minimumGroupingDigits",
@@ -1232,8 +1312,11 @@
* E.g., //supplementalData/territoryContainment/group[@type="003"][@contains="013 021 029"]
*/
/*
- * TODO: per design doc, "Format changes: second to none on the disruptiveness scale are changes involving spaces such as SPACE -> NBSP
- * or NBSP -> Narrow NBSP. Or adding a space somewhere in the format where previously there was none."
+ * Format changes: second to none on the disruptiveness scale are changes involving spaces such as SPACE -> NBSP
+ * or NBSP -> Narrow NBSP. Or adding a space somewhere in the format where previously there was none.
+ * -- see SuspiciousChange.valueChangeIsDisruptiveWhitespaceOnly
+ */
+ /*
* TODO: per design doc, "Adding a timezone"
* TODO: per design doc, "Changes of symbols or codes that are cross-locale in some way such as the unknown
* currency symbol change '???' -> '¤'."
@@ -1242,86 +1325,102 @@
*/
));
+ static Pattern currencyPattern = Pattern.compile("^//ldml/numbers/currencies/currency.*/displayName.*");
+
/**
- * Should the given path be taken into account for generating "churn" reports?
+ * Should the given path in the given locale be taken into account for generating "churn" reports?
*
* @param path the path of interest
* @param locale the locale in which the path was found, or null, or possibly
* the base file name without extension, like "xx" if the file name is "xx.xml",
- * where "xx" may or may not be a locale
+ * where "xx" may or may not be a locale; e.g., "supplementalData"
* @return true if it counts, else false to ignore
*/
private static boolean pathIsHighLevel(String path, String locale) {
if (path == null || locale == null) {
return false;
}
- if (!localeIsHighLevel(locale)) { // this should normally be caught at a higher level
- System.out.println("locale [" + locale + "] failed localeIsHighLevel in pathIsHighLevel; path = " + path);
- return false;
+ if (!localeIsHighLevel(locale)) { // for efficiency, this should be caught at a higher level
+ System.out.println("locale [" + locale + "] failed localeIsHighLevel in pathIsHighLevel; path = " + path);
+ return false;
}
- if (highLevelPaths.contains(path)) {
- recordHighLevelMatch(path);
- return true;
- } else if (isHighLevelTerritoryName(path, locale)) {
+ if (pathIsReallyHighLevel(path, locale)) {
if (verboseHighLevelReporting) {
recordHighLevelMatch(path);
}
return true;
- } else if (isHighLevelLangName(path, locale)) {
- if (verboseHighLevelReporting) {
- recordHighLevelMatch(path);
- }
- return true;
- } else if (isHighLevelCurrencyName(path, locale)) {
- if (verboseHighLevelReporting) {
- recordHighLevelMatch(path);
- }
- return true;
- } else if (isHighLevelLangAlias(path, locale)) {
- // if (verboseHighLevelReporting) {
- recordHighLevelMatch(path);
- // }
- return true;
- } else if (isHighLevelTerritoryContainment(path, locale)) {
- // if (verboseHighLevelReporting) {
- recordHighLevelMatch(path);
- // }
- return true;
}
return false;
}
- private static boolean localeIsHighLevel(String locale) {
- return SubmissionLocales.CLDR_LOCALES.contains(locale);
+ private static boolean pathIsReallyHighLevel(String path, String locale) {
+ if (highLevelPaths.contains(path)) {
+ return true;
+ } else if (isHighLevelTerritoryName(path, locale)) {
+ return true;
+ } else if (isHighLevelLangName(path, locale)) {
+ return true;
+ } else if (isHighLevelCurrencyName(path, locale)) {
+ return true;
+ } else if (isHighLevelCurrencyCode(path, locale)) {
+ return true;
+ } else if (isHighLevelCurrencySeparatorOrSymbol(path, locale)) {
+ return true;
+ } else if (isHighLevelLangAlias(path, locale)) {
+ return true;
+ } else if (isHighLevelTerritoryContainment(path, locale)) {
+ return true;
+ } else if (isHighLevelFirstDay(path, locale)) {
+ return true;
+ } else if (isHighLevelWeekOfPreference(path, locale)) {
+ return true;
+ }
+ return false;
}
/**
- * Changes to language aliases (supplementalMetaData)
+ * Is the given locale, or base name, to be considered for "high level" churn report?
+ *
+ * @param locale the locale string, or base name like "supplementalData" as in "supplementalData.xml"
+ * @return true or false
+ */
+ private static boolean localeIsHighLevel(String locale) {
+ return SubmissionLocales.CLDR_LOCALES.contains(locale)
+ || "supplementalData".equals(locale);
+ }
+
+ /**
+ * Changes to language aliases (supplemental metadata)
* E.g., //supplementalData/metadata/alias/languageAlias[@type="aar"]
*
* @param path
- * @param locale
+ * @param locale must be "supplementalData" to match
* @return true or false
*/
private static boolean isHighLevelLangAlias(String path, String locale) {
- // TODO Implement isHighLevelLangAlias
+ if ("supplementalData".equals(locale)) {
+ if (path.startsWith("//supplementalData/metadata/alias/languageAlias")) {
+ return true;
+ }
+ }
return false;
}
/**
- * Changes in the containment graph -- see isHighLevelTerritoryContainment
+ * Changes in the containment graph
* Data mostly (or entirely?) from M49 standard, thus CLDR has limited control.
* Users use the containment graph in a variety of ways.
* E.g., //supplementalData/territoryContainment/group[@type="003"][@contains="013 021 029"]
*
* @param path
- * @param locale
+ * @param locale must be "supplementalData" to match
* @return true or false
*/
private static boolean isHighLevelTerritoryContainment(String path, String locale) {
- // TODO Implement isHighLevelTerritoryContainment
- if (path.startsWith("//supplementalData/territoryContainment")) {
- System.out.println("isHighLevelTerritoryContainment got " + path);
+ if ("supplementalData".equals(locale)) {
+ if (path.startsWith("//supplementalData/territoryContainment")) {
+ return true;
+ }
}
return false;
}
@@ -1349,7 +1448,7 @@
}
CoverageVariableInfo cvi = SUPPLEMENTAL_DATA_INFO.getCoverageVariableInfo(locale);
if (cvi != null) {
- for (String type: cvi.targetTerritories) {
+ for (String type : cvi.targetTerritories) {
if (path.contains("[@type=\"" + type + "\"]")) {
return true;
}
@@ -1399,20 +1498,20 @@
* Native: check each currency type AAA corresponding to the given locale
*
* Do NOT exclude "alt"; e.g.,
- * //ldml/numbers/currencies/currency[@type="KRW"]/symbol[@alt="narrow"]
+ * //ldml/numbers/currencies/currency[@type="ADP"]/displayName[@alt="proposed-u167-1"]
*
* @param path
* @param locale
* @return true or false
*/
private static boolean isHighLevelCurrencyName(String path, String locale) {
- if (path.startsWith("//ldml/numbers/currencies/currency")) {
+ if (currencyPattern.matcher(path).matches()) {
if ("en".equals(locale)) {
return true;
}
CoverageVariableInfo cvi = SUPPLEMENTAL_DATA_INFO.getCoverageVariableInfo(locale);
if (cvi != null) {
- for (String type: cvi.targetCurrencies) {
+ for (String type : cvi.targetCurrencies) {
if (path.contains("[@type=\"" + type + "\"]")) {
return true;
}
@@ -1423,6 +1522,80 @@
}
/**
+ * Is the given path a high-level currency code path in the given locale?
+ *
+ * E.g., //supplementalData/currencyData/region[@iso3166="AC"]/currency[@iso4217="SHP"][@from="1976-01-01"]
+ *
+ * @param path
+ * @param locale must be "supplementalData" to match
+ * @return true or false
+ */
+ private static boolean isHighLevelCurrencyCode(String path, String locale) {
+ if ("supplementalData".equals(locale)) {
+ if (path.contains("iso3166")) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Is the given path a high-level currency thousands-separator or decimal-separator path in the given locale?
+ *
+ * E.g., //ldml/numbers/currencies/currency[@type="ESP"]/group
+ * //ldml/numbers/currencies/currency[@type="ESP"]/decimal
+ * //ldml/numbers/currencies/currency[@type="CNY"]/symbol
+ * //ldml/numbers/currencies/currency[@type="CNY"]/symbol[@alt="narrow"]"
+ *
+ * @param path
+ * @param locale
+ * @return true or false
+ */
+ private static boolean isHighLevelCurrencySeparatorOrSymbol(String path, String locale) {
+ if (path.startsWith("//ldml/numbers/currencies/currency")
+ && (path.contains("group") || path.contains("decimal") || path.contains("symbol"))) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Is the given path a high-level weekData/firstDay in the given locale?
+ *
+ * E.g.,//supplementalData/weekData/firstDay[@day="fri"][@territories="MV"]
+ *
+ * @param path
+ * @param locale must be "supplementalData" to match
+ * @return true or false
+ */
+ private static boolean isHighLevelFirstDay(String path, String locale) {
+ if ("supplementalData".equals(locale)) {
+ if (path.startsWith("//supplementalData/weekData/firstDay")) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Is the given path a high-level weekOfPreference in the given locale?
+ *
+ * E.g., //supplementalData/weekData/weekOfPreference[@ordering="weekOfYear"][@locales="und"]
+ *
+ * @param path
+ * @param locale must be "supplementalData" to match
+ * @return true or false
+ */
+ private static boolean isHighLevelWeekOfPreference(String path, String locale) {
+ if ("supplementalData".equals(locale)) {
+ if (path.startsWith("//supplementalData/weekData/weekOfPreference")) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
* For debugging, testing
*/
private static Set<String> highLevelPathMatched = null;
@@ -1439,20 +1612,21 @@
* For debugging, report on any paths in highLevelPaths that never matched
*/
private static void reportHighLevelPathUsage() {
+ if (!verboseHighLevelReporting) {
+ return;
+ }
if (highLevelPathMatched == null) {
System.out.println("Zero high-level paths were matched!");
return;
}
- for (String path: highLevelPaths) {
+ for (String path : highLevelPaths) {
if (!highLevelPathMatched.contains(path)) {
System.out.println("Unmatched high-level path: " + path);
}
}
- if (verboseHighLevelReporting || true) {
- for (String path: highLevelPathMatched) {
- if (!highLevelPaths.contains(path)) {
- System.out.println("Special matched high-level path: " + path);
- }
+ for (String path : highLevelPathMatched) {
+ if (!highLevelPaths.contains(path)) {
+ System.out.println("Special matched high-level path: " + path);
}
}
}
diff --git a/tools/java/org/unicode/cldr/tool/ChartDtdDelta.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ChartDtdDelta.java
similarity index 98%
rename from tools/java/org/unicode/cldr/tool/ChartDtdDelta.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ChartDtdDelta.java
index 31162c6..8b9de1e 100644
--- a/tools/java/org/unicode/cldr/tool/ChartDtdDelta.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ChartDtdDelta.java
@@ -13,6 +13,7 @@
import java.util.Set;
import java.util.regex.Matcher;
+import org.unicode.cldr.tool.ToolConstants.ChartStatus;
import org.unicode.cldr.util.CLDRConfig;
import org.unicode.cldr.util.CldrUtility;
import org.unicode.cldr.util.DtdData;
@@ -101,7 +102,7 @@
String last = null;
- for (String current : ToolConstants.CLDR_RELEASE_AND_DEV_VERSION_SET) {
+ for (String current : ToolConstants.CHART_STATUS == ChartStatus.beta ? ToolConstants.CLDR_RELEASE_AND_DEV_VERSION_SET : ToolConstants.CLDR_RELEASE_VERSION_SET) {
System.out.println("DTD delta: " + current);
final boolean finalVersion = current.equals(ToolConstants.DEV_VERSION);
String currentName = finalVersion ? ToolConstants.CHART_DISPLAY_VERSION : current;
diff --git a/tools/java/org/unicode/cldr/tool/ChartGrammaticalForms.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ChartGrammaticalForms.java
similarity index 87%
rename from tools/java/org/unicode/cldr/tool/ChartGrammaticalForms.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ChartGrammaticalForms.java
index 56b900b..6d9f6c8 100644
--- a/tools/java/org/unicode/cldr/tool/ChartGrammaticalForms.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ChartGrammaticalForms.java
@@ -3,6 +3,7 @@
import java.io.IOException;
import java.util.Arrays;
import java.util.Collection;
+import java.util.Comparator;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
@@ -29,12 +30,10 @@
import org.unicode.cldr.util.GrammarInfo.GrammaticalTarget;
import org.unicode.cldr.util.ICUServiceBuilder;
import org.unicode.cldr.util.LanguageTagParser;
-import org.unicode.cldr.util.MapComparator;
import org.unicode.cldr.util.Pair;
import org.unicode.cldr.util.Rational;
import org.unicode.cldr.util.Rational.FormatStyle;
import org.unicode.cldr.util.StandardCodes.LstrType;
-import org.unicode.cldr.util.SupplementalDataInfo;
import org.unicode.cldr.util.SupplementalDataInfo.PluralInfo;
import org.unicode.cldr.util.SupplementalDataInfo.PluralInfo.Count;
import org.unicode.cldr.util.SupplementalDataInfo.PluralType;
@@ -45,6 +44,7 @@
import org.unicode.cldr.util.UnitPathType;
import org.unicode.cldr.util.Validity;
+import com.google.common.base.Joiner;
import com.google.common.collect.ComparisonChain;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
@@ -100,6 +100,80 @@
writeSubcharts(anchors);
pw.setIndex("Main Chart Index", "../index.html");
pw.write(anchors.toString());
+ showInfo(pw);
+ }
+
+ private void showInfo(FormattedFileWriter pw) throws IOException {
+ pw.append("<h2>Grammatical Features Info</h2>");
+ pw.append("<p>The following lists the available information about grammatical features for locales. "
+ + "Note that only the above locales have localized data, at this time. "
+ + "Current information is only for nominal forms. "
+ + "For the meanings of the values, see "
+ + "<a target='spec' href='https://unicode.org/reports/tr35/tr35-general.html#Grammatical_Features'>LDML Grammatical Features</a>.</p>");
+ if (GrammaticalTarget.values().length > 1) {
+ throw new IllegalArgumentException("Needs adjustment for additional GrammaticalTarget.values()");
+ }
+
+ TablePrinter tablePrinter = new TablePrinter()
+ .addColumn("Locale", "class='source' width='1%'", CldrUtility.getDoubleLinkMsg(), "class='source'", true)
+ .setSortPriority(0)
+ .setBreakSpans(true)
+ .addColumn("Feature", "class='source' width='1%'", null, "class='source'", true)
+ .setSortPriority(1)
+ .setBreakSpans(true)
+ .addColumn("Usage", "class='source'", null, "class='source'", true)
+ .addColumn("Values", "class='source'", null, "class='source'", true)
+ ;
+ for (String locale : SDI.hasGrammarInfo()) {
+ GrammarInfo grammarInfo = SDI.getGrammarInfo(locale, false);
+ for (GrammaticalFeature feature : GrammaticalFeature.values()) {
+ Map<GrammaticalScope, Set<String>> scopeToValues = grammarInfo.get(GrammaticalTarget.nominal, feature);
+ if (scopeToValues.isEmpty()) {
+ continue;
+ }
+
+ Set<String> values = null;
+ boolean multiline = false;
+ for (Entry<GrammaticalScope, Set<String>> entry : scopeToValues.entrySet()) {
+ if (values == null) {
+ values = entry.getValue();
+ } else if (!values.equals(entry.getValue())) {
+ multiline = true;
+ break;
+ }
+ }
+ Set<String> sortedValues = new TreeSet(feature.getValueComparator());
+ if (multiline) {
+ for (GrammaticalScope usage : GrammaticalScope.values()) {
+ values = scopeToValues.get(usage);
+ if (values.isEmpty()) {
+ continue;
+ }
+ sortedValues.clear();
+ sortedValues.addAll(values);
+ addRow(tablePrinter, locale, feature, usage.toString(), Joiner.on(", ").join(sortedValues));
+ }
+ } else {
+ try {
+ sortedValues.addAll(values);
+ addRow(tablePrinter, locale, feature, Joiner.on(", ").join(scopeToValues.keySet()),
+ Joiner.on(", ").join(sortedValues));
+ } catch (Exception e) {
+ int debug = 0;
+ }
+ }
+ }
+ }
+ pw.append(tablePrinter.toString());
+ }
+
+ public void addRow(TablePrinter tablePrinter, String locale, GrammaticalFeature feature, String usage, final String valueString) {
+ tablePrinter.addRow()
+ .addCell(locale)
+ .addCell(feature)
+ .addCell(usage)
+ .addCell(valueString)
+ .finishRow();
}
static final UnitConverter uc = SDI.getUnitConverter();
@@ -198,13 +272,10 @@
//ImmutableSet<String> casesNominativeOnly = ImmutableSet.of(GrammaticalFeature.grammaticalCase.getDefault(null));
Factory factory = CLDRConfig.getInstance().getCldrFactory();
- MapComparator<String> caseOrder = new MapComparator<>(new String[] {
- "nominative", "vocative", "accusative", "oblique",
- "genitive", "dative", "locative", "instrumental"});
+ Comparator<String> caseOrder = GrammarInfo.CaseValues.COMPARATOR;
Set<String> sortedCases = new TreeSet<>(caseOrder);
- MapComparator<String> genderOrder = new MapComparator<>(new String[] {
- "masculine", "inanimate", "animate", "common", "feminine", "neuter"});
+ Comparator<String> genderOrder = GrammarInfo.GenderValues.COMPARATOR;
Set<String> sortedGenders = new TreeSet<>(genderOrder);
Output<Double> sizeInBaseUnits = new Output<>();
@@ -244,7 +315,7 @@
if (!region.isEmpty()) {
continue;
}
- GrammarInfo grammarInfo = SupplementalDataInfo.getInstance().getGrammarInfo(locale, true);
+ GrammarInfo grammarInfo = SDI.getGrammarInfo(locale, true);
if (grammarInfo == null || !grammarInfo.hasInfo(GrammaticalTarget.nominal)) {
continue;
}
@@ -266,7 +337,7 @@
//Collection<String> nomCases = rawCases.isEmpty() ? casesNominativeOnly : rawCases;
- PluralInfo plurals = SupplementalDataInfo.getInstance().getPlurals(PluralType.cardinal, locale);
+ PluralInfo plurals = SDI.getPlurals(PluralType.cardinal, locale);
if (plurals == null) {
System.err.println("No " + PluralType.cardinal + " plurals for " + locale);
}
@@ -341,7 +412,7 @@
}
info.put("Unit Case Info", new TablePrinterWithHeader(
"<p>This table has rows contains unit forms appropriate for different grammatical cases and plural forms. "
- + "Each plural form has a sample value such as <i>(1.2)</i> or <i>2</i>. "
+ + "Each plural form has a sample value such as <i>(1.2)</i> or <i>(2)</i>. "
+ "That value is used with the localized unit pattern to form a formatted measure, such as “2,0 Stunden”. "
+ "That formatted measure is in turn substituted into a "
+ "<b><a target='doc-minimal-pairs' href='http://cldr.unicode.org/translation/grammatical-inflection#TOC-Miscellaneous-Minimal-Pairs'>case minimal pair pattern</a></b>. "
@@ -426,10 +497,10 @@
try {
combined = UnitConverter.combineLowercasing(new ULocale(locale), "long", localizedPowerPattern, localizedUnitPattern);
} catch (Exception e) {
- throw new IllegalArgumentException(locale + ") Can't combine "
- + "localizedPowerPattern=«" + localizedPowerPattern
- + "» with localizedUnitPattern=«"+ localizedUnitPattern + "»"
- );
+ throw new IllegalArgumentException(locale + ") Can't combine "
+ + "localizedPowerPattern=«" + localizedPowerPattern
+ + "» with localizedUnitPattern=«"+ localizedUnitPattern + "»"
+ );
}
String combinedWithPlaceholder = UnitConverter.addPlaceholder(combined, placeholderPattern, placeholderPosition);
diff --git a/tools/java/org/unicode/cldr/tool/ChartLanguageGroups.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ChartLanguageGroups.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/ChartLanguageGroups.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ChartLanguageGroups.java
diff --git a/tools/java/org/unicode/cldr/tool/ChartLanguageMatching.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ChartLanguageMatching.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/ChartLanguageMatching.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ChartLanguageMatching.java
diff --git a/tools/java/org/unicode/cldr/tool/ChartSubdivisionNames.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ChartSubdivisionNames.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/ChartSubdivisionNames.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ChartSubdivisionNames.java
diff --git a/tools/java/org/unicode/cldr/tool/ChartSubdivisions.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ChartSubdivisions.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/ChartSubdivisions.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ChartSubdivisions.java
diff --git a/tools/java/org/unicode/cldr/tool/ChartUnitConversions.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ChartUnitConversions.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/ChartUnitConversions.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ChartUnitConversions.java
diff --git a/tools/java/org/unicode/cldr/tool/ChartUnitPreferences.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ChartUnitPreferences.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/ChartUnitPreferences.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ChartUnitPreferences.java
diff --git a/tools/java/org/unicode/cldr/tool/CheckAnnotations.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CheckAnnotations.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/CheckAnnotations.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/CheckAnnotations.java
diff --git a/tools/java/org/unicode/cldr/tool/CheckEnglishCurrencyNames.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CheckEnglishCurrencyNames.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/CheckEnglishCurrencyNames.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/CheckEnglishCurrencyNames.java
diff --git a/tools/java/org/unicode/cldr/tool/CheckHtmlFiles.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CheckHtmlFiles.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/CheckHtmlFiles.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/CheckHtmlFiles.java
diff --git a/tools/java/org/unicode/cldr/tool/CheckLangTagBNF.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CheckLangTagBNF.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/CheckLangTagBNF.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/CheckLangTagBNF.java
diff --git a/tools/java/org/unicode/cldr/tool/CheckLanguageNameCoverage.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CheckLanguageNameCoverage.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/CheckLanguageNameCoverage.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/CheckLanguageNameCoverage.java
diff --git a/tools/java/org/unicode/cldr/tool/CldrVersion.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CldrVersion.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/CldrVersion.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/CldrVersion.java
diff --git a/tools/java/org/unicode/cldr/tool/CollectExemplars.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CollectExemplars.java
similarity index 97%
rename from tools/java/org/unicode/cldr/tool/CollectExemplars.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/CollectExemplars.java
index 9bce5c4..f28e827 100644
--- a/tools/java/org/unicode/cldr/tool/CollectExemplars.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CollectExemplars.java
@@ -9,7 +9,7 @@
public class CollectExemplars {
public static void main(String[] args) {
- final String stock = "en|ar|de|es|fr|it|ja|ko|nl|pl|ru|th|tr|pt|zh|zh_Hant|bg|ca|cs|da|el|fa|fi|fil|hi|hr|hu|id|lt|lv|ro|sk|sl|sr|sv|uk|vi|he|nb|et|ms|am|bn|gu|is|kn|ml|mr|sw|ta|te|ur|eu|gl|af|zu|en_GB|es_419|pt_PT|fr_CA|zh_HK";
+ final String stock = "en|ar|de|es|fr|it|ja|ko|nl|pl|ru|th|tr|pt|zh|zh_Hant|bg|ca|cs|da|el|fa|fi|fil|hi|hr|hu|id|lt|lv|ro|sk|sl|sr|sv|uk|vi|he|no|et|ms|am|bn|gu|is|kn|ml|mr|sw|ta|te|ur|eu|gl|af|zu|en_GB|es_419|pt_PT|fr_CA|zh_HK";
final HashSet<String> REGION_LOCALES = new HashSet<>(Arrays.asList(stock.split("\\|")));
UnicodeSet target = new UnicodeSet();
add("special", null, new UnicodeSet("[㐀-䶵一-鿌﨎﨏﨑﨓﨔﨟﨡﨣﨤﨧-﨩𠀀-𪛖 𪜀-𫜴𫝀-𫠝]"), target);
diff --git a/tools/java/org/unicode/cldr/tool/CompareData.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CompareData.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/CompareData.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/CompareData.java
diff --git a/tools/java/org/unicode/cldr/tool/CompareEn.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CompareEn.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/CompareEn.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/CompareEn.java
diff --git a/tools/java/org/unicode/cldr/tool/CompareFilesBetweenReleases2.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CompareFilesBetweenReleases2.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/CompareFilesBetweenReleases2.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/CompareFilesBetweenReleases2.java
diff --git a/tools/java/org/unicode/cldr/tool/CompareHanTransliterators.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CompareHanTransliterators.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/CompareHanTransliterators.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/CompareHanTransliterators.java
diff --git a/tools/java/org/unicode/cldr/tool/CompareIso3166_1Status.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CompareIso3166_1Status.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/CompareIso3166_1Status.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/CompareIso3166_1Status.java
diff --git a/tools/java/org/unicode/cldr/tool/CompareOyster.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CompareOyster.java
similarity index 97%
rename from tools/java/org/unicode/cldr/tool/CompareOyster.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/CompareOyster.java
index d232e88..cfb9e98 100644
--- a/tools/java/org/unicode/cldr/tool/CompareOyster.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CompareOyster.java
@@ -358,25 +358,24 @@
{ "lv", "SC" },
{ "lv", "SJ" },
{ "lv", "ZA" },
- { "nb", "BA" },
- { "nb", "BL" },
- { "nb", "BN" },
- { "nb", "IM" },
- { "nb", "IO" },
- { "nb", "KN" },
- { "nb", "NF" },
- { "nb", "SA" },
- { "nb", "TD" },
- { "nb", "YE" },
{ "nl", "BL" },
{ "nl", "IO" },
{ "nl", "MF" },
{ "nl", "MP" },
{ "nl", "PM" },
{ "nl", "TF" },
- { "nb", "BL" },
- { "nb", "GS" },
- { "nb", "HM" },
+ { "no", "BA" },
+ { "no", "BL" },
+ { "no", "BN" },
+ { "no", "GS" },
+ { "no", "HM" },
+ { "no", "IM" },
+ { "no", "IO" },
+ { "no", "KN" },
+ { "no", "NF" },
+ { "no", "SA" },
+ { "no", "TD" },
+ { "no", "YE" },
{ "pl", "DO" },
{ "pl", "FM" },
{ "pl", "GG" },
diff --git a/tools/java/org/unicode/cldr/tool/CompareStockDatetime.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CompareStockDatetime.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/CompareStockDatetime.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/CompareStockDatetime.java
diff --git a/tools/java/org/unicode/cldr/tool/CompareSuppress.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CompareSuppress.java
similarity index 98%
rename from tools/java/org/unicode/cldr/tool/CompareSuppress.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/CompareSuppress.java
index 46c0db6..c5fd033 100644
--- a/tools/java/org/unicode/cldr/tool/CompareSuppress.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CompareSuppress.java
@@ -26,7 +26,6 @@
public static void main(String[] args) {
CLDRConfig config = CLDRConfig.getInstance();
- config.getStandardCodes();
Map<LstrType, Map<String, Map<LstrField, String>>> lstr = StandardCodes.getEnumLstreg();
Map<String, Map<LstrField, String>> langData = lstr.get(LstrType.language);
LanguageTagParser ltp = new LanguageTagParser();
diff --git a/tools/java/org/unicode/cldr/tool/ConvertLanguageData.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ConvertLanguageData.java
similarity index 99%
rename from tools/java/org/unicode/cldr/tool/ConvertLanguageData.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ConvertLanguageData.java
index 15510e6..539248e 100644
--- a/tools/java/org/unicode/cldr/tool/ConvertLanguageData.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ConvertLanguageData.java
@@ -74,7 +74,7 @@
private static final boolean DEBUG = false;
// change this if you need to override what is generated for the default contents.
- private static final List<String> defaultOverrides = Arrays.asList("es_ES".split("\\s+")); // und_ZZ
+ private static final List<String> defaultOverrides = Arrays.asList("es_ES".split("\\s+"));
public static final boolean SHOW_DIFF = false;
@@ -1696,7 +1696,7 @@
static Set<String> languagesNeeded = new TreeSet<>(
Arrays
- .asList("ab ba bh bi bo fj fy gd ha ht ik iu ks ku ky lg mi na nb rm sa sd sg si sm sn su tg tk to tw vo yi za lb dv chr syr kha sco gv"
+ .asList("ab ba bh bi bo fj fy gd ha ht ik iu ks ku ky lg mi na no rm sa sd sg si sm sn su tg tk to tw vo yi za lb dv chr syr kha sco gv"
.split("\\s")));
static void generateIso639_2Data() {
@@ -1883,11 +1883,7 @@
private static boolean checkCode(LstrType type, String code, List<String> sourceLine) {
Status validity = VALIDITY.getCodeToStatus(type).get(code);
if (validity == Status.regular) {
- if (type == LstrType.language && code.equals("no")) {
- validity = Status.invalid;
- } else {
- return true;
- }
+ return true;
} else if (validity == Status.unknown && type == LstrType.region) {
return true;
}
diff --git a/tools/java/org/unicode/cldr/tool/ConvertXTB.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ConvertXTB.java
similarity index 99%
rename from tools/java/org/unicode/cldr/tool/ConvertXTB.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ConvertXTB.java
index f484529..0aff729 100644
--- a/tools/java/org/unicode/cldr/tool/ConvertXTB.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ConvertXTB.java
@@ -410,7 +410,7 @@
// HACKETY HACK: The wsb files use old langauge codes with hyphens
// instead of CLDR's underscores.
// The xtb files use hyphens but differ yet again from the CLDR and xtb
- // language codes, e.g. xtb and wsb use "no" but CLDR uses "nb", and
+ // language codes, e.g.
// wsb uses "iw" but xtb and CLDR use "he". This means that we can't
// convert the locale to the CLDR standard until after reading in the
// xtb/wsb files. Sigh.
diff --git a/tools/java/org/unicode/cldr/tool/CopySubdivisionsIntoMain.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CopySubdivisionsIntoMain.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/CopySubdivisionsIntoMain.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/CopySubdivisionsIntoMain.java
diff --git a/tools/java/org/unicode/cldr/tool/CountItems.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CountItems.java
similarity index 99%
rename from tools/java/org/unicode/cldr/tool/CountItems.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/CountItems.java
index 5e02094..0448efc 100644
--- a/tools/java/org/unicode/cldr/tool/CountItems.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CountItems.java
@@ -430,7 +430,7 @@
public static void writeMetazonePrettyPath() {
CLDRConfig testInfo = ToolConfig.getToolInstance();
Map<String, Map<String, String>> map = testInfo.getSupplementalDataInfo().getMetazoneToRegionToZone();
- Map zoneToCountry = testInfo.getStandardCodes().getZoneToCounty();
+ Map zoneToCountry = StandardCodes.make().getZoneToCounty();
Set<Pair<String, String>> results = new TreeSet<>();
Map<String, String> countryToContinent = getCountryToContinent(testInfo.getSupplementalDataInfo(),
testInfo.getEnglish());
diff --git a/tools/java/org/unicode/cldr/tool/CountryCodeConverter.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/CountryCodeConverter.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/CountryCodeConverter.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/CountryCodeConverter.java
diff --git a/tools/java/org/unicode/cldr/tool/DeriveScripts.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/DeriveScripts.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/DeriveScripts.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/DeriveScripts.java
diff --git a/tools/java/org/unicode/cldr/tool/DiffCldr.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/DiffCldr.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/DiffCldr.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/DiffCldr.java
diff --git a/tools/java/org/unicode/cldr/tool/DiffWithParent.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/DiffWithParent.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/DiffWithParent.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/DiffWithParent.java
diff --git a/tools/java/org/unicode/cldr/tool/DumpCoverage.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/DumpCoverage.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/DumpCoverage.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/DumpCoverage.java
diff --git a/tools/java/org/unicode/cldr/tool/ExtractIsoCurrencyData.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ExtractIsoCurrencyData.java
similarity index 98%
rename from tools/java/org/unicode/cldr/tool/ExtractIsoCurrencyData.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ExtractIsoCurrencyData.java
index 9dd0fd1..78874b5 100644
--- a/tools/java/org/unicode/cldr/tool/ExtractIsoCurrencyData.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ExtractIsoCurrencyData.java
@@ -1,6 +1,7 @@
package org.unicode.cldr.tool;
import java.io.BufferedReader;
+import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;
@@ -39,7 +40,7 @@
// NOTE: UTIL_DATA_DIR is required here because it is used as an output directory.
final String outputFile = CldrUtility.getProperty("output", CLDRPaths.UTIL_DATA_DIR
+ "/currencycodeslist.txt");
- PrintWriter out = FileUtilities.openUTF8Writer(null, outputFile);
+ PrintWriter out = FileUtilities.openUTF8Writer((File)null, outputFile);
try {
String version = null;
String[][] parts = new String[5][5];
diff --git a/tools/java/org/unicode/cldr/tool/ExtractListInfo.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ExtractListInfo.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/ExtractListInfo.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ExtractListInfo.java
diff --git a/tools/java/org/unicode/cldr/tool/ExtractMessages.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ExtractMessages.java
similarity index 99%
rename from tools/java/org/unicode/cldr/tool/ExtractMessages.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ExtractMessages.java
index ea2efc5..4976aa4 100644
--- a/tools/java/org/unicode/cldr/tool/ExtractMessages.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ExtractMessages.java
@@ -271,7 +271,6 @@
{ "in", "id" },
{ "iw", "he" },
{ "jw", "jv" },
- { "no", "nb" },
{ "ku", "ku_Arab" },
});
diff --git a/tools/java/org/unicode/cldr/tool/FallbackIterator.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/FallbackIterator.java
similarity index 98%
rename from tools/java/org/unicode/cldr/tool/FallbackIterator.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/FallbackIterator.java
index 134ec3d..f7c2f83 100644
--- a/tools/java/org/unicode/cldr/tool/FallbackIterator.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/FallbackIterator.java
@@ -155,9 +155,9 @@
"cmn(-.*)?;zh$1",
"uzn(-.*)?;uz$1",
- // special cases: no, sh
+ // special cases: sh (no longer for nb/no)
- "no(-.*)?;nb$1",
+ //"nb(-.*)?;no$1",
"sh(?!-[a-zA-Z]{4}(?:-.*)?)(-.*)?;sr-Latn$1", // insert if no script
"sh(-[a-zA-Z]{4}-.*);sr$1",
@@ -183,7 +183,7 @@
//"zh-Hant-HK(-.*)?;zh-HK$1",
//"zh-Hans;zh-CN",
//"zh-CN;zh-Hans",
- "nb(-.*)?;no$1",
+ //"no(-.*)?;nb$1",
};
// do this way to emulate reading from file
diff --git a/tools/java/org/unicode/cldr/tool/FallbackIteratorDataGenerator.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/FallbackIteratorDataGenerator.java
similarity index 97%
rename from tools/java/org/unicode/cldr/tool/FallbackIteratorDataGenerator.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/FallbackIteratorDataGenerator.java
index a4edf72..9649c50 100644
--- a/tools/java/org/unicode/cldr/tool/FallbackIteratorDataGenerator.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/FallbackIteratorDataGenerator.java
@@ -13,7 +13,7 @@
static CLDRConfig testInfo = ToolConfig.getToolInstance();
public static void main(String[] args) {
- final StandardCodes sc = testInfo.getStandardCodes();
+ final StandardCodes sc = StandardCodes.make();
List<String> decanonicalizeList = new ArrayList<>();
System.out.println();
System.out.println("\t\t\"canonicalize\",\t\t// mechanically generated");
diff --git a/tools/java/org/unicode/cldr/tool/FilterCharacterFallbacks.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/FilterCharacterFallbacks.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/FilterCharacterFallbacks.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/FilterCharacterFallbacks.java
diff --git a/tools/java/org/unicode/cldr/tool/FilterFactory.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/FilterFactory.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/FilterFactory.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/FilterFactory.java
diff --git a/tools/java/org/unicode/cldr/tool/FindAttributeValueDifferences.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/FindAttributeValueDifferences.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/FindAttributeValueDifferences.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/FindAttributeValueDifferences.java
diff --git a/tools/java/org/unicode/cldr/tool/FindHardInheritance.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/FindHardInheritance.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/FindHardInheritance.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/FindHardInheritance.java
diff --git a/tools/java/org/unicode/cldr/tool/FindPluralDifferences.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/FindPluralDifferences.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/FindPluralDifferences.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/FindPluralDifferences.java
diff --git a/tools/java/org/unicode/cldr/tool/FindPreferredHours.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/FindPreferredHours.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/FindPreferredHours.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/FindPreferredHours.java
diff --git a/tools/java/org/unicode/cldr/tool/FindWidths.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/FindWidths.java
similarity index 96%
rename from tools/java/org/unicode/cldr/tool/FindWidths.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/FindWidths.java
index a6eaad3..b7ca45d 100644
--- a/tools/java/org/unicode/cldr/tool/FindWidths.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/FindWidths.java
@@ -13,6 +13,7 @@
import org.unicode.cldr.util.PathHeader.Factory;
import org.unicode.cldr.util.PathHeader.PageId;
import org.unicode.cldr.util.PathHeader.SectionId;
+import org.unicode.cldr.util.StandardCodes;
import com.ibm.icu.text.NumberFormat;
@@ -47,7 +48,7 @@
Factory phf = PathHeader.getFactory(english);
Map<PathHeader, Integer> englishWidths = new HashMap<>();
Map<PathHeader, Data> maxWidths = new TreeMap<>();
- Set<String> sampleLocales = testInfo.getStandardCodes().getLocaleCoverageLocales("google");
+ Set<String> sampleLocales = StandardCodes.make().getLocaleCoverageLocales("google");
for (String path : english) {
PathHeader ph = phf.fromPath(path);
diff --git a/tools/java/org/unicode/cldr/tool/FixDelimiters.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/FixDelimiters.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/FixDelimiters.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/FixDelimiters.java
diff --git a/tools/java/org/unicode/cldr/tool/FixTransformNames.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/FixTransformNames.java
similarity index 98%
rename from tools/java/org/unicode/cldr/tool/FixTransformNames.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/FixTransformNames.java
index 99f4562..1178611 100644
--- a/tools/java/org/unicode/cldr/tool/FixTransformNames.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/FixTransformNames.java
@@ -18,6 +18,7 @@
import org.unicode.cldr.util.CLDRTransforms.ParsedTransformID;
import org.unicode.cldr.util.CLDRTransforms.Visibility;
import org.unicode.cldr.util.LanguageTagParser;
+import org.unicode.cldr.util.StandardCodes;
import org.unicode.cldr.util.StandardCodes.CodeType;
import org.unicode.cldr.util.With;
@@ -41,7 +42,7 @@
private void run(String[] args) {
CLDRFile file = testInfo.getEnglish();
- for (String lang : testInfo.getStandardCodes().getAvailableCodes(CodeType.language)) {
+ for (String lang : StandardCodes.make().getAvailableCodes(CodeType.language)) {
String name = file.getName(lang);
if (!name.equals(lang)) {
fieldToCode.put(name, lang);
diff --git a/tools/java/org/unicode/cldr/tool/FormattedFileWriter.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/FormattedFileWriter.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/FormattedFileWriter.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/FormattedFileWriter.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateAliases.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateAliases.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateAliases.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateAliases.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateAllCharts.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateAllCharts.java
similarity index 83%
rename from tools/java/org/unicode/cldr/tool/GenerateAllCharts.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateAllCharts.java
index 2517be7..8c56f9f 100644
--- a/tools/java/org/unicode/cldr/tool/GenerateAllCharts.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateAllCharts.java
@@ -6,6 +6,11 @@
import org.unicode.cldr.util.VerifyCompactNumbers;
import org.unicode.cldr.util.VerifyZones;
+/**
+ * Use -DCHART_VERSION=38.1 (for example) to get a specific version
+ * @author markdavis
+ *
+ */
public class GenerateAllCharts {
public static void main(String[] args) throws Exception {
FileCopier.copy(GenerateAllCharts.class, "index.css", CLDRPaths.CHART_DIRECTORY);
@@ -14,6 +19,10 @@
ShowLanguages.main(args);
+ if (ToolConstants.CHART_VERSION.compareTo("37") >= 0) {
+ new ChartGrammaticalForms().writeChart(null);
+ }
+
new ChartAnnotations().writeChart(null);
new ChartSubdivisionNames().writeChart(null);
GenerateBcp47Text.main(args);
diff --git a/tools/java/org/unicode/cldr/tool/GenerateApproximateWidths.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateApproximateWidths.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateApproximateWidths.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateApproximateWidths.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateAttributeList.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateAttributeList.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateAttributeList.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateAttributeList.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateBcp47Bits.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateBcp47Bits.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateBcp47Bits.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateBcp47Bits.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateBcp47Tests.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateBcp47Tests.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateBcp47Tests.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateBcp47Tests.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateBcp47Text.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateBcp47Text.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateBcp47Text.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateBcp47Text.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateBirth.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateBirth.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateBirth.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateBirth.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateCasingChart.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateCasingChart.java
similarity index 97%
rename from tools/java/org/unicode/cldr/tool/GenerateCasingChart.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateCasingChart.java
index 255ef74..1fbb3b5 100644
--- a/tools/java/org/unicode/cldr/tool/GenerateCasingChart.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateCasingChart.java
@@ -19,6 +19,7 @@
import org.unicode.cldr.util.ChainedMap.M3;
import org.unicode.cldr.util.Factory;
import org.unicode.cldr.util.Level;
+import org.unicode.cldr.util.StandardCodes;
import org.unicode.cldr.util.XPathParts;
import com.google.common.base.Splitter;
@@ -97,7 +98,7 @@
new LinkedHashMap<ContextTransformType, Object>(),
ContextTransformValue.class);
- Level level = CLDRConfig.getInstance().getStandardCodes().getLocaleCoverageLevel("cldr", locale);
+ Level level = StandardCodes.make().getLocaleCoverageLevel("cldr", locale);
boolean hasCasedLetters = changesUpper.containsSome(exemplars);
Set<String> items = new LinkedHashSet<>();
cldrFile.iterator("//ldml/contextTransforms").forEachRemaining(items::add);
diff --git a/tools/java/org/unicode/cldr/tool/GenerateChangeChart.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateChangeChart.java
similarity index 98%
rename from tools/java/org/unicode/cldr/tool/GenerateChangeChart.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateChangeChart.java
index dedcd93..d4aaf9a 100644
--- a/tools/java/org/unicode/cldr/tool/GenerateChangeChart.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateChangeChart.java
@@ -25,6 +25,7 @@
import org.unicode.cldr.util.PathHeader;
import org.unicode.cldr.util.PathHeader.PageId;
import org.unicode.cldr.util.PathHeader.SectionId;
+import org.unicode.cldr.util.StandardCodes;
import org.unicode.cldr.util.SupplementalDataInfo;
import org.unicode.cldr.util.XMLSource;
@@ -51,7 +52,7 @@
CLDRFile currentRoot = current.make("root", true);
CLDRFile oldRoot = old.make("root", true);
- Set<String> locales = CONFIG.getStandardCodes().getLocaleCoverageLocales(Organization.cldr, EnumSet.of(Level.MODERN));
+ Set<String> locales = StandardCodes.make().getLocaleCoverageLocales(Organization.cldr, EnumSet.of(Level.MODERN));
String dir = CLDRPaths.CHART_DIRECTORY + "changes/";
CoverageInfo coverage = CONFIG.getCoverageInfo();
EnumSet<SectionId> sections = EnumSet.noneOf(SectionId.class);
diff --git a/tools/java/org/unicode/cldr/tool/GenerateComparison.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateComparison.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateComparison.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateComparison.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateCoverageLevels.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateCoverageLevels.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateCoverageLevels.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateCoverageLevels.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateDayPeriodChart.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateDayPeriodChart.java
similarity index 98%
rename from tools/java/org/unicode/cldr/tool/GenerateDayPeriodChart.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateDayPeriodChart.java
index 4d9d7cf..202f275 100644
--- a/tools/java/org/unicode/cldr/tool/GenerateDayPeriodChart.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateDayPeriodChart.java
@@ -24,7 +24,7 @@
public class GenerateDayPeriodChart {
static final SupplementalDataInfo SUP = CLDRConfig.getInstance().getSupplementalDataInfo();
static final CLDRFile ENGLISH = CLDRConfig.getInstance().getEnglish();
- static final StandardCodes SC = CLDRConfig.getInstance().getStandardCodes();
+ static final StandardCodes SC = StandardCodes.make();
static final int MINUTE = 60 * 1000;
static final int HOUR = 60 * MINUTE;
diff --git a/tools/java/org/unicode/cldr/tool/GenerateDayPeriods.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateDayPeriods.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateDayPeriods.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateDayPeriods.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateDecompCollationRules.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateDecompCollationRules.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateDecompCollationRules.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateDecompCollationRules.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateDerivedAnnotations.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateDerivedAnnotations.java
similarity index 98%
rename from tools/java/org/unicode/cldr/tool/GenerateDerivedAnnotations.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateDerivedAnnotations.java
index aaebeef..2f9eefa 100644
--- a/tools/java/org/unicode/cldr/tool/GenerateDerivedAnnotations.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateDerivedAnnotations.java
@@ -28,6 +28,7 @@
import org.unicode.cldr.util.Level;
import org.unicode.cldr.util.Organization;
import org.unicode.cldr.util.SimpleXMLSource;
+import org.unicode.cldr.util.StandardCodes;
import org.unicode.cldr.util.XPathParts.Comments.CommentType;
import com.google.common.base.Joiner;
@@ -185,7 +186,7 @@
}
failures.freeze();
if (!failures.isEmpty()) {
- Level level = CLDR_CONFIG.getStandardCodes().getLocaleCoverageLevel(Organization.cldr, locale);
+ Level level = StandardCodes.make().getLocaleCoverageLevel(Organization.cldr, locale);
System.out.println("Failures\t" + locale
+ "\t" + level
+ "\t" + english.getName(locale)
diff --git a/tools/java/org/unicode/cldr/tool/GenerateDtd.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateDtd.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateDtd.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateDtd.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateEnglishChanged.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateEnglishChanged.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateEnglishChanged.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateEnglishChanged.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateEnums.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateEnums.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateEnums.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateEnums.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateG2xG2.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateG2xG2.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateG2xG2.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateG2xG2.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateIndexCharacters.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateIndexCharacters.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateIndexCharacters.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateIndexCharacters.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateItemCounts.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateItemCounts.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateItemCounts.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateItemCounts.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateKaraList.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateKaraList.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateKaraList.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateKaraList.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateLanguageData.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateLanguageData.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateLanguageData.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateLanguageData.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateLanguageMatches.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateLanguageMatches.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateLanguageMatches.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateLanguageMatches.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateLikelySubtagTests.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateLikelySubtagTests.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateLikelySubtagTests.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateLikelySubtagTests.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateLocaleIDTestData.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateLocaleIDTestData.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateLocaleIDTestData.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateLocaleIDTestData.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateMaximalLocales.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateMaximalLocales.java
similarity index 95%
rename from tools/java/org/unicode/cldr/tool/GenerateMaximalLocales.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateMaximalLocales.java
index 3b5441d..199b529 100644
--- a/tools/java/org/unicode/cldr/tool/GenerateMaximalLocales.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateMaximalLocales.java
@@ -39,13 +39,17 @@
import org.unicode.cldr.util.PatternCache;
import org.unicode.cldr.util.SimpleFactory;
import org.unicode.cldr.util.StandardCodes;
+import org.unicode.cldr.util.StandardCodes.LstrType;
import org.unicode.cldr.util.SupplementalDataInfo;
import org.unicode.cldr.util.SupplementalDataInfo.BasicLanguageData;
import org.unicode.cldr.util.SupplementalDataInfo.BasicLanguageData.Type;
import org.unicode.cldr.util.SupplementalDataInfo.OfficialStatus;
import org.unicode.cldr.util.SupplementalDataInfo.PopulationData;
+import org.unicode.cldr.util.Validity;
+import org.unicode.cldr.util.Validity.Status;
import com.google.common.base.Joiner;
+import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.ibm.icu.impl.Relation;
@@ -71,6 +75,8 @@
*/
public class GenerateMaximalLocales {
+ private static final Map<String, Status> LANGUAGE_CODE_TO_STATUS = Validity.getInstance().getCodeToStatus(LstrType.language);
+
private static final String TEMP_UNKNOWN_REGION = "XZ";
private static final String DEBUG_ADD_KEY = "und_Latn_ZA";
@@ -155,6 +161,8 @@
"blt_Tavt_VN",
"rhg_Arab_MM",
"rhg_Rohg_MM",
+
+ "no_Latn_NO",
};
/**
@@ -284,7 +292,7 @@
// {"bsq", "bsq_Bass_LR"},
// {"ccp", "ccp_Cakm_BD"},
// {"blt", "blt_Tavt_VN"},
- { "mis_Medf", "mis_Medf_NG" },
+// { "mis_Medf", "mis_Medf_NG" },
{ "ku_Yezi", "ku_Yezi_GE" },
{ "und_EU", "en_Latn_IE" },
@@ -549,7 +557,7 @@
// also CLDR-target locales
final Set<String> CLDRMainLanguages = new TreeSet<>(StandardCodes.make().getLocaleCoverageLocales(Organization.cldr));
-
+
for (String territory : supplementalData.getTerritoriesWithPopulationData()) {
PopulationData territoryPop = supplementalData.getPopulationDataForTerritory(territory);
double territoryPopulation = territoryPop.getLiteratePopulation();
@@ -706,6 +714,22 @@
set.add(new RowData(status, territory, population));
}
+ /**
+ * In computing the defaultContents, no and nb require special handling.
+ */
+ static final Map<String, String> SPECIAL_CHILD_TO_PARENT = ImmutableMap.of("nb", "no", "nb_NO", "nb");
+
+ /*
+ * Compute the defaultContent values for supplemental data.
+ * It uses the maximization data and the simpleParent (truncation).
+ * We can't use the normal "getParent" because that messes up the logic
+ * used to handle inconsistencies in scripts in CLDR.<br>
+ * That is, there are three situations: <ul>
+ * <li>all children have explicit scripts; </li>
+ * <li>no children have scripts; and </li>
+ * <li>some do and some don't</li></ul>
+ */
+
private static void printDefaultContent(Map<String, String> toMaximized) throws IOException {
Set<String> defaultLocaleContent = new TreeSet<>();
@@ -713,11 +737,11 @@
// go through all the cldr locales, and add default contents
// now computed from toMaximized
Set<String> available = factory.getAvailable();
- Relation<String, String> toChildren = Relation.of(new TreeMap<String, Set<String>>(), TreeSet.class);
+ Relation<String, String> toSimpleChildren = Relation.of(new TreeMap<String, Set<String>>(), TreeSet.class);
LanguageTagParser ltp = new LanguageTagParser();
// System.out.println(maximize("az_Latn_AZ", toMaximized));
- Set<String> hasScript = new TreeSet<>();
+ Set<String> hasSimpleChildWithScript = new TreeSet<>();
// first get a mapping to children
for (String locale : available) {
@@ -727,14 +751,18 @@
if (ltp.set(locale).getVariants().size() != 0) {
continue;
}
- String parent = LocaleIDParser.getSimpleParent(locale);
+ String parent = SPECIAL_CHILD_TO_PARENT.get(locale);
+ if (parent == null) {
+ parent = LocaleIDParser.getSimpleParent(locale); // we can't use the regular getParent (see above)
+ }
+
if (ltp.getScript().length() != 0) {
- hasScript.add(parent);
+ hasSimpleChildWithScript.add(parent);
}
if (parent.equals("root")) {
continue;
}
- toChildren.put(parent, locale);
+ toSimpleChildren.put(parent, locale);
}
// Suppress script for locales for which we only have one locale in common/main. See ticket #7834.
@@ -749,9 +777,9 @@
// if any have a script, then throw out any that don't have a script (unless they're specifically included.)
Set<String> toRemove = new TreeSet<>();
- for (String locale : hasScript) {
+ for (String locale : hasSimpleChildWithScript) {
toRemove.clear();
- Set<String> children = toChildren.getAll(locale);
+ Set<String> children = toSimpleChildren.getAll(locale);
for (String child : children) {
if (ltp.set(child).getScript().length() == 0 && !suppressScriptLocales.contains(child)) {
toRemove.add(child);
@@ -759,18 +787,18 @@
}
if (toRemove.size() != 0) {
System.out.println("\tRemoving:\t" + locale + "\t" + toRemove + "\tfrom\t" + children);
- toChildren.removeAll(locale, toRemove);
+ toSimpleChildren.removeAll(locale, toRemove);
}
}
// we add a child as a default locale if it has the same maximization
- main: for (String locale : toChildren.keySet()) {
+ main: for (String locale : toSimpleChildren.keySet()) {
String maximized = maximize(locale, toMaximized);
if (maximized == null) {
if (SHOW_ADD) System.out.println("Missing maximized:\t" + locale);
continue;
}
- Set<String> children = toChildren.getAll(locale);
+ Set<String> children = toSimpleChildren.getAll(locale);
Map<String, String> debugStuff = new TreeMap<>();
for (String child : children) {
String maximizedChild = maximize(child, toMaximized);
@@ -784,7 +812,11 @@
+ "\tin\t" + debugStuff);
}
- defaultLocaleContent.remove("und_ZZ"); // und_ZZ isn't ever a real locale.
+ for (String specialChild : SPECIAL_CHILD_TO_PARENT.keySet()) {
+ defaultLocaleContent.add(specialChild);
+ }
+ defaultLocaleContent.remove("und_ZZ"); // und_ZZ isn't ever a real locale. (old sandbox)
+ defaultLocaleContent.remove("mul_ZZ"); // mul_ZZ isn't ever a real locale.
showDefaultContentDifferencesAndFix(defaultLocaleContent);
@@ -883,7 +915,7 @@
* @param order
*/
void add(String language, String script, String region, Double order) {
- if (language.equals("cpp")) {
+ if (SHOW_ADD && language.equals("mis")) {
System.out.println(language + "\t" + script + "\t" + region + "\t" + -order);
}
languages.put(language, Row.of(order, script, region));
@@ -1177,10 +1209,14 @@
// get the script info from metadata as fallback
+
TreeSet<String> sorted = new TreeSet<>(ScriptMetadata.getScripts());
for (String script : sorted) {
Info i = ScriptMetadata.getInfo(script);
String likelyLanguage = i.likelyLanguage;
+ if (LANGUAGE_CODE_TO_STATUS.get(likelyLanguage) == Status.special) {
+ likelyLanguage = "und";
+ }
String originCountry = i.originCountry;
final String result = likelyLanguage + "_" + script + "_" + originCountry;
add("und_" + script, result, toMaximized, "S->LR•",
@@ -1193,6 +1229,35 @@
for (String key : LANGUAGE_OVERRIDES.keySet()) {
add(key, LANGUAGE_OVERRIDES.get(key), toMaximized, "OVERRIDE", LocaleOverride.REPLACE_EXISTING, true);
}
+
+ // Make sure that the mapping is Idempotent. If we have A ==> B, we must never have B ==> C
+ // We run this check until we get no problems.
+ Set<List<String>> problems = new HashSet<>();
+
+ while (true) {
+ problems.clear();
+ for (Entry<String, String> entry : toMaximized.entrySet()) {
+ String source = entry.getKey();
+ String target = entry.getValue();
+ if (target.contains("_Zzzz") || target.contains("_ZZ")) { // these are special cases
+ continue;
+ }
+ String idempotentCandidate = LikelySubtags.maximize(target, toMaximized);
+
+ if (idempotentCandidate == null) {
+ System.out.println("Can't maximize " + target);
+ } else if (!idempotentCandidate.equals(target)) {
+ problems.add(ImmutableList.of(source, target, idempotentCandidate));
+ }
+ }
+ if (problems.isEmpty()) {
+ break;
+ }
+ for (List<String> row : problems) {
+ System.out.println("Idempotence: dropping mapping " + row.get(0) + " to " + row.get(1) + " since the target maps further to " + row.get(2));
+ toMaximized.remove(row.get(0));
+ }
+ }
}
public static String shorten(Object data) {
@@ -1350,6 +1415,9 @@
private static void add(String key, String value, Map<String, String> toAdd, String kind, LocaleOverride override,
boolean showAction) {
+ if (SHOW_ADD && key.startsWith("mis")) {
+ int debug = 1;
+ }
if (key.equals(DEBUG_ADD_KEY)) {
System.out.println("*debug*");
}
@@ -1645,8 +1713,8 @@
}
private static final String[][] ALT_REVERSAL = {
- { "nb", "no" },
- { "no", "nb" },
+ //{ "no", "nb" },
+ //{ "nb", "no" },
{ "he", "iw" },
{ "iw", "he" },
};
diff --git a/tools/java/org/unicode/cldr/tool/GeneratePluralConfirmation.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GeneratePluralConfirmation.java
similarity index 98%
rename from tools/java/org/unicode/cldr/tool/GeneratePluralConfirmation.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GeneratePluralConfirmation.java
index 652829e..3c1a42e 100644
--- a/tools/java/org/unicode/cldr/tool/GeneratePluralConfirmation.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GeneratePluralConfirmation.java
@@ -30,7 +30,7 @@
private static final CLDRConfig testInfo = ToolConfig.getToolInstance();
- private static final StandardCodes STANDARD_CODES = testInfo.getStandardCodes();
+ private static final StandardCodes STANDARD_CODES = StandardCodes.make();
private static final SupplementalDataInfo SUPPLEMENTAL = testInfo.getSupplementalDataInfo();
diff --git a/tools/java/org/unicode/cldr/tool/GeneratePluralList.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GeneratePluralList.java
similarity index 99%
rename from tools/java/org/unicode/cldr/tool/GeneratePluralList.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GeneratePluralList.java
index 7121bbc..da3bc28 100644
--- a/tools/java/org/unicode/cldr/tool/GeneratePluralList.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GeneratePluralList.java
@@ -27,7 +27,7 @@
import com.ibm.icu.util.ULocale;
public class GeneratePluralList {
- static final String stock = "km|lo|ne|br|dz|nl|si|en|ar|de|es|fr|it|ja|ko|nl|pl|ru|th|tr|pt|zh|zh_Hant|bg|ca|cs|da|el|fa|fi|fil|hi|hr|hu|id|lt|lv|ro|sk|sl|sr|sv|uk|vi|he|nb|et|ms|am|bn|gu|is|kn|ml|mr|sw|ta|te|ur|eu|gl|af|zu|en_GB|es_419|pt_PT|fr_CA|zh_Hant_HK";
+ static final String stock = "km|lo|ne|br|dz|nl|si|en|ar|de|es|fr|it|ja|ko|nl|pl|ru|th|tr|pt|zh|zh_Hant|bg|ca|cs|da|el|fa|fi|fil|hi|hr|hu|id|lt|lv|ro|sk|sl|sr|sv|uk|vi|he|no|et|ms|am|bn|gu|is|kn|ml|mr|sw|ta|te|ur|eu|gl|af|zu|en_GB|es_419|pt_PT|fr_CA|zh_Hant_HK";
private static final Map<String, Integer> keywordIndex = Builder.with(new HashMap<String, Integer>())
.put("zero", 0)
.put("one", 1)
diff --git a/tools/java/org/unicode/cldr/tool/GeneratePluralRanges.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GeneratePluralRanges.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GeneratePluralRanges.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GeneratePluralRanges.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateProductionData.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateProductionData.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateProductionData.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateProductionData.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateReformattedXml.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateReformattedXml.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateReformattedXml.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateReformattedXml.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateScriptMetadata.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateScriptMetadata.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateScriptMetadata.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateScriptMetadata.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateSeedDurations.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateSeedDurations.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateSeedDurations.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateSeedDurations.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateSidewaysView.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateSidewaysView.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateSidewaysView.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateSidewaysView.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateStatistics.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateStatistics.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateStatistics.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateStatistics.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateSupplementalZoneData.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateSupplementalZoneData.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateSupplementalZoneData.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateSupplementalZoneData.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateTempDateData.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateTempDateData.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateTempDateData.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateTempDateData.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateTransform.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateTransform.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateTransform.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateTransform.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateTransformCharts.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateTransformCharts.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateTransformCharts.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateTransformCharts.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateUnicodeCounts.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateUnicodeCounts.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateUnicodeCounts.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateUnicodeCounts.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateValidityXml.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateValidityXml.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateValidityXml.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateValidityXml.java
diff --git a/tools/java/org/unicode/cldr/tool/GenerateXMB.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateXMB.java
similarity index 99%
rename from tools/java/org/unicode/cldr/tool/GenerateXMB.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateXMB.java
index f7dd199..78f3a92 100644
--- a/tools/java/org/unicode/cldr/tool/GenerateXMB.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateXMB.java
@@ -93,7 +93,7 @@
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
DATE = dateFormat.format(new Date());
}
- static final String stock = "en|ar|de|es|fr|it|ja|ko|nl|pl|ru|th|tr|pt|zh|zh_Hant|bg|ca|cs|da|el|fa|fi|fil|hi|hr|hu|id|lt|lv|ro|sk|sl|sr|sv|uk|vi|he|nb|et|ms|am|bn|gu|is|kn|ml|mr|sw|ta|te|ur|eu|gl|af|zu|en_GB|es_419|pt_PT|fr_CA|zh_Hant_HK";
+ static final String stock = "en|ar|de|es|fr|it|ja|ko|nl|pl|ru|th|tr|pt|zh|zh_Hant|bg|ca|cs|da|el|fa|fi|fil|hi|hr|hu|id|lt|lv|ro|sk|sl|sr|sv|uk|vi|he|no|et|ms|am|bn|gu|is|kn|ml|mr|sw|ta|te|ur|eu|gl|af|zu|en_GB|es_419|pt_PT|fr_CA|zh_Hant_HK";
private static final HashSet<String> REGION_LOCALES = new HashSet<>(Arrays.asList(stock.split("\\|")));
final static Options myOptions = new Options("In normal usage, you set the -t option for the target.")
diff --git a/tools/java/org/unicode/cldr/tool/GeneratedPluralSamples.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GeneratedPluralSamples.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GeneratedPluralSamples.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GeneratedPluralSamples.java
diff --git a/tools/java/org/unicode/cldr/tool/GetChanges.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GetChanges.java
similarity index 98%
rename from tools/java/org/unicode/cldr/tool/GetChanges.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GetChanges.java
index 3c1e704..a5ba389 100644
--- a/tools/java/org/unicode/cldr/tool/GetChanges.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GetChanges.java
@@ -21,6 +21,7 @@
import org.unicode.cldr.util.Organization;
import org.unicode.cldr.util.PathHeader;
import org.unicode.cldr.util.PatternCache;
+import org.unicode.cldr.util.StandardCodes;
import org.unicode.cldr.util.XMLSource;
import com.google.common.collect.ImmutableSet;
@@ -229,7 +230,7 @@
Multimap<String,PathHeader> missing = TreeMultimap.create();
- Set<String> locales = testInfo.getStandardCodes().getLocaleCoverageLocales(Organization.cldr, Collections.singleton(Level.MODERN));
+ Set<String> locales = StandardCodes.make().getLocaleCoverageLocales(Organization.cldr, Collections.singleton(Level.MODERN));
LanguageTagParser ltp = new LanguageTagParser();
for (String locale : locales) {
diff --git a/tools/java/org/unicode/cldr/tool/GetDescriptions.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GetDescriptions.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GetDescriptions.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GetDescriptions.java
diff --git a/tools/java/org/unicode/cldr/tool/GetLanguageData.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GetLanguageData.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GetLanguageData.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/GetLanguageData.java
diff --git a/tools/java/org/unicode/cldr/tool/IdToPath.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/IdToPath.java
similarity index 99%
rename from tools/java/org/unicode/cldr/tool/IdToPath.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/IdToPath.java
index aa074f3..8653d61 100644
--- a/tools/java/org/unicode/cldr/tool/IdToPath.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/IdToPath.java
@@ -1642,7 +1642,7 @@
{ "6975719401355475710", "//ldml/localeDisplayNames/languages/language[@type=\"ms\"]", "Malay" },
{ "1379022090747041849", "//ldml/localeDisplayNames/languages/language[@type=\"mt\"]", "Maltese" },
{ "382298639414141611", "//ldml/localeDisplayNames/languages/language[@type=\"my\"]", "Burmese" },
- { "2695122373745130774", "//ldml/localeDisplayNames/languages/language[@type=\"nb\"]", "Norwegian Bokmål" },
+ { "2695122373745130774", "//ldml/localeDisplayNames/languages/language[@type=\"nb\"]", "Norwegian (Bokmål)" },
{ "3652620070491093951", "//ldml/localeDisplayNames/languages/language[@type=\"ne\"]", "Nepali" },
{ "4723956394995438352", "//ldml/localeDisplayNames/languages/language[@type=\"nl\"]", "Dutch" },
{ "4516896518115501034", "//ldml/localeDisplayNames/languages/language[@type=\"nl_BE\"]", "Flemish" },
diff --git a/tools/java/org/unicode/cldr/tool/KeymanCheck.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/KeymanCheck.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/KeymanCheck.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/KeymanCheck.java
diff --git a/tools/java/org/unicode/cldr/tool/LanguageCodeConverter.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/LanguageCodeConverter.java
similarity index 99%
rename from tools/java/org/unicode/cldr/tool/LanguageCodeConverter.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/LanguageCodeConverter.java
index 5d66a1b..ff94039 100644
--- a/tools/java/org/unicode/cldr/tool/LanguageCodeConverter.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/LanguageCodeConverter.java
@@ -39,7 +39,7 @@
public static final Map<String, String> GOOGLE_CLDR = Builder.with(new LinkedHashMap<String, String>()) // preserve order
.put("iw", "he")
.put("jw", "jv")
- .put("no", "nb")
+ //.put("nb", "no")
.put("tl", "fil")
.put("pt-BR", "pt")
.put("xx-bork", "x_bork")
diff --git a/tools/java/org/unicode/cldr/tool/LikelySubtags.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/LikelySubtags.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/LikelySubtags.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/LikelySubtags.java
diff --git a/tools/java/org/unicode/cldr/tool/ListCoverageLevels.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ListCoverageLevels.java
similarity index 99%
rename from tools/java/org/unicode/cldr/tool/ListCoverageLevels.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ListCoverageLevels.java
index 64fed3a..3305119 100644
--- a/tools/java/org/unicode/cldr/tool/ListCoverageLevels.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ListCoverageLevels.java
@@ -42,7 +42,7 @@
public class ListCoverageLevels {
public static void main(String[] args) {
CLDRConfig config = CLDRConfig.getInstance();
- StandardCodes sc = config.getStandardCodes();
+ StandardCodes sc = StandardCodes.make();
SupplementalDataInfo sdi = config.getSupplementalDataInfo();
LanguageTagParser ltp = new LanguageTagParser();
Set<String> defaultContents = sdi.getDefaultContentLocales();
diff --git a/tools/java/org/unicode/cldr/tool/ListRedundantUnicodeSets.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ListRedundantUnicodeSets.java
similarity index 98%
rename from tools/java/org/unicode/cldr/tool/ListRedundantUnicodeSets.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ListRedundantUnicodeSets.java
index 1fab28f..904cabd 100644
--- a/tools/java/org/unicode/cldr/tool/ListRedundantUnicodeSets.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ListRedundantUnicodeSets.java
@@ -47,7 +47,7 @@
Factory cldrFactory = CLDRConfig.getInstance().getCldrFactory();
SupplementalDataInfo sdi = CLDRConfig.getInstance().getSupplementalDataInfo();
- StandardCodes sdc = CLDRConfig.getInstance().getStandardCodes();
+ StandardCodes sdc = StandardCodes.make();
for (String localeID : cldrFactory.getAvailable()) {
Level localeCoverageLevel = sdc.getLocaleCoverageLevel(Organization.cldr, localeID);
diff --git a/tools/java/org/unicode/cldr/tool/ListUnits.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ListUnits.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/ListUnits.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ListUnits.java
diff --git a/tools/java/org/unicode/cldr/tool/LocaleReplacements.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/LocaleReplacements.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/LocaleReplacements.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/LocaleReplacements.java
diff --git a/tools/cldr-code/src/main/java/org/unicode/cldr/tool/Main.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/Main.java
new file mode 100644
index 0000000..0e5eec5
--- /dev/null
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/Main.java
@@ -0,0 +1,280 @@
+package org.unicode.cldr.tool;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Set;
+import java.util.TreeSet;
+
+import org.unicode.cldr.util.CLDRFile;
+import org.unicode.cldr.util.CLDRTool;
+import org.unicode.cldr.util.CLDRURLS;
+
+/**
+ * Implement a 'main' for the cldr-code jar.
+ */
+@CLDRTool(alias = "main",
+ description = "The 'main' class invoked when java -jar or double-clicking the jar.",
+ hidden = "Hidden so as not to list itself",
+ url = CLDRURLS.TOOLSURL)
+class Main {
+ private static final String CLASS_SUFFIX = ".class";
+ private static final String MAIN = "main";
+ private static final boolean DEBUG = false;
+
+ public static void main(String args[]) throws Throwable {
+ if (args.length == 0) {
+ printUsage();
+ // To be friendly to the user, go ahead and list out classes while we're at it.
+ listClasses(false);
+ } else if (args.length == 1 && args[0].equals("-l")) {
+ listClasses(true);
+ } else {
+ final String mainClass = args[0];
+ final String args2[] = new String[args.length - 1];
+ System.arraycopy(args, 1, args2, 0, args2.length);
+
+ Class<?> c = findMainClass(mainClass);
+
+ if (c == Main.class) {
+ throw new IllegalArgumentException("Main doesn’t need to invoke Main.");
+ }
+
+ System.err.println(">> " + c.getName());
+
+ tryCurrentDirAsCldrDir();
+ invoke(c, args2);
+ }
+ }
+
+ public static void invoke(Class<?> c, final String[] args2)
+ throws NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException {
+ final Method main = getStaticMain(c);
+ if(main == null) {
+ throw new NullPointerException("No static main() found in " + c.getSimpleName());
+ }
+ main.invoke(null, (Object) args2);
+ }
+
+ public static Class<?> findMainClass(final String mainClass) throws IllegalArgumentException, IOException {
+ Class<?> c = null;
+ try {
+ // This shortcut allows operation even out of a jar context.
+ c = Class.forName(mainClass);
+ } catch (ClassNotFoundException e) {
+ // not found
+ }
+ if (c == null) {
+ c = findMainClass(mainClass, getMainClassList());
+ }
+ if (c == null) {
+ throw new IllegalArgumentException("Class not found and not an alias: " + mainClass);
+ }
+ return c;
+ }
+
+ /**
+ * If CLDR_DIR is not set as a system property, try to set it.
+ * This does not invoke the CLDRConfig mechanism, and so would be ignored
+ * if run from (say) the SurveyTool environment.
+ */
+ public static void tryCurrentDirAsCldrDir() {
+ try {
+ if(System.getProperty("CLDR_DIR") == null) {
+ if(new File("./common/main/root.xml").exists()) {
+ System.err.println("Note: CLDR_DIR was unset but you seem to be in a CLDR directory. Setting -DCLDR_DIR=.");
+ System.setProperty("CLDR_DIR", ".");
+ }
+ }
+ } catch(SecurityException t) {
+ // ignore
+ }
+ }
+
+ public static void printUsage() {
+ System.out.println("Usage: [ -l | [class|alias] args ...]");
+ System.out.println("Example usage:");
+ System.out.println(" (java -jar cldr-code.jar ) -l -- prints a list of ALL tool/util/test classes with a 'main()' function.");
+ System.out.println(" (java -jar cldr-code.jar ) org.unicode.cldr.util.XMLValidator somefile.xml ...");
+ System.out.println(" (java -jar cldr-code.jar ) validate somefile.xml ...");
+ System.out.println("For more info: " + CLDRURLS.TOOLSURL);
+ System.out.println("CLDRFile.GEN_VERSION=" + CLDRFile.GEN_VERSION);
+ System.out.println("(Use the -l option to list hidden/undocumented tools)");
+ System.out.println();
+ }
+
+ /**
+ * Print out classes
+ * @param includeHidden
+ */
+ private static void listClasses(boolean includeHidden) throws IOException {
+ for(final ClassEntry e : getMainClassList()) {
+ if(!includeHidden && e.isHidden()) {
+ if(DEBUG) System.err.println("Skipping: " + e.fullName());
+ continue; // skip these
+ }
+ final CLDRTool annotation = e.getAnnotation();
+ if (annotation != null) {
+ System.out.println(e.alias() + " - " + annotation.description());
+ if (annotation.url().length() > 0) {
+ System.out.println(" <" + annotation.url() + ">");
+ } else {
+ System.out.println(" <" + CLDRURLS.TOOLSURL + annotation.alias() + ">");
+ }
+ if (e.isHidden()) {
+ System.out.println(" HIDDEN: " + annotation.hidden());
+ }
+ } else {
+ System.out.println(e.name() + " - " + "(no @CLDRTool annotation)");
+ }
+ System.out.println(" = " + e.fullName());
+ }
+ }
+
+ private static Class<?> findMainClass(String mainClass, Set<ClassEntry> mainClassList) {
+ for(final ClassEntry e : mainClassList) {
+ if (mainClass.equalsIgnoreCase(e.name()) ||
+ mainClass.equalsIgnoreCase(e.alias())) {
+ return e.theClass; // match the classname
+ }
+ }
+ return null;
+ }
+
+ /**
+ * A candidate class with a main in it
+ */
+ public static class ClassEntry implements Comparable<ClassEntry> {
+ public Class<?> theClass;
+ public CLDRTool annotation;
+
+ @Override
+
+ public int compareTo(ClassEntry o) {
+ return theClass.getSimpleName().compareTo(o.theClass.getSimpleName());
+ }
+
+ public ClassEntry(Class<?> c) {
+ this.theClass = c;
+ this.annotation = c.getAnnotation(CLDRTool.class);
+ }
+
+ public CLDRTool getAnnotation() {
+ return annotation;
+ }
+
+ /**
+ * is this class hidden from the usual list?
+ * @return
+ */
+ public boolean isHidden() {
+ return (annotation == null || // no annotation
+ !annotation.hidden().isEmpty()); // hidden≠""
+ }
+
+ public String name() {
+ return this.theClass.getSimpleName();
+ }
+
+ String alias() {
+ if( annotation != null) {
+ return annotation.alias();
+ } else {
+ return "";
+ }
+ }
+
+ private String fullName() {
+ return theClass.getName();
+ }
+ }
+
+ /**
+ * Get a list of classes which have a static main
+ * @throws IOException
+ * @throws FileNotFoundException
+ */
+ public static Set<ClassEntry> getMainClassList() throws IOException, FileNotFoundException {
+ final Set<ClassEntry> theList = new TreeSet<>();
+ final java.util.jar.JarInputStream jis = getJarInputStream();
+ final ClassLoader classLoader = Main.class.getClassLoader();
+ if (jis == null) {
+ throw new NullPointerException("could not get Jar InputStream");
+ }
+ java.util.jar.JarEntry je;
+ while ((je = jis.getNextJarEntry()) != null) {
+ final String name = je.getName();
+ if (inOuterClass(name)) {
+ final String className = filenameToClassName(name);
+ if(!isCldrClassName(className)) {
+ if(DEBUG) {
+ System.err.println("Skipping non-CLDR " + className);
+ }
+ continue; // skip non-CLDR things
+ }
+ try {
+ final Class<?> c = java.lang.Class.forName(className, false, classLoader);
+
+ if (getStaticMain(c) != null) {
+ // skip classes w/o static method - even if they have an annotation.
+ theList.add(new ClassEntry(c));
+ }
+ } catch (ClassNotFoundException | NoSuchMethodException | NoClassDefFoundError t) {
+ // ignore uninstantiable.
+ }
+ }
+ }
+ return theList;
+ }
+
+ public static boolean isCldrClassName(final String className) {
+ return className.startsWith("org.unicode.cldr");
+ }
+
+ /**
+ * @param c
+ * @return
+ * @throws NoSuchMethodException
+ */
+ public static Method getStaticMain(final Class<?> c) throws NoSuchMethodException {
+ return c.getMethod(MAIN, String[].class);
+ }
+
+ /**
+ * @param name
+ * @return
+ */
+ public static String filenameToClassName(final String name) {
+ return name.substring(0, name.length() - (CLASS_SUFFIX.length()))
+ .replaceAll("/", ".");
+ }
+
+ /**
+ * @param name
+ * @return
+ */
+ public static boolean inOuterClass(final String name) {
+ return name.endsWith(CLASS_SUFFIX) &&
+ !name.contains("$");
+ }
+
+ /**
+ * Fetch the whole jar as an input stream
+ * @return
+ * @throws IOException
+ * @throws FileNotFoundException
+ */
+ public static java.util.jar.JarInputStream getJarInputStream() throws IOException, FileNotFoundException {
+ final java.net.URL url = Main.class.getProtectionDomain().getCodeSource().getLocation();
+ if (!url.getPath().endsWith(".jar")) {
+ System.out.println("(Not inside a .jar file - no listing available.)");
+ return null;
+ }
+ if (DEBUG) System.out.println("Classes in " + url.getPath());
+ final java.util.jar.JarInputStream jis = new java.util.jar.JarInputStream(new java.io.FileInputStream(url.getPath()));
+ java.util.jar.JarEntry je = null;
+ return jis;
+ }
+}
diff --git a/tools/java/org/unicode/cldr/tool/MakeAnnotationHistogram.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/MakeAnnotationHistogram.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/MakeAnnotationHistogram.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/MakeAnnotationHistogram.java
diff --git a/tools/java/org/unicode/cldr/tool/MakeTransliterator.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/MakeTransliterator.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/MakeTransliterator.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/MakeTransliterator.java
diff --git a/tools/java/org/unicode/cldr/tool/MatchStrings.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/MatchStrings.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/MatchStrings.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/MatchStrings.java
diff --git a/tools/java/org/unicode/cldr/tool/MinimizeRegex.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/MinimizeRegex.java
similarity index 92%
rename from tools/java/org/unicode/cldr/tool/MinimizeRegex.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/MinimizeRegex.java
index da98d7f..ad9a67c 100644
--- a/tools/java/org/unicode/cldr/tool/MinimizeRegex.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/MinimizeRegex.java
@@ -31,7 +31,7 @@
.thenComparing(Comparator.naturalOrder());
public static void main(String[] args) {
- String defaultArg = "zxx|zu|zh|zgh|yue|yo|yi|yav|xog|xh|wo|wae|vun|vo|vi|vai|uz|ur|und|uk|ug|tzm|twq|tt|tr|to|tk|ti|th|tg|teo|te|ta|sw|sv|su|st|sr|sq|so|sn|smn|sm|sl|sk|si|shi|sg|ses|seh|se|sd|sbp|saq|sah|sa|rwk|rw|ru|rof|ro|rn|rm|qu|pt|ps|prg|pl|pa|os|or|om|nyn|ny|nus|nnh|nn|nmg|nl|ne|nds|nd|nb|naq|mzn|my|mul|mua|mt|ms|mr|mn|ml|mk|mi|mgo|mgh|mg|mfe|mer|mas|lv|luy|luo|lu|lt|lrc|lo|ln|lkt|lg|lb|lag|la|ky|kw|ku|ksh|ksf|ksb|ks|kok|ko|kn|km|kln|kl|kkj|kk|ki|khq|kea|kde|kam|kab|ka|jv|jmc|jgo|ja|it|is|ii|ig|id|ia|hy|hu|ht|hsb|hr|hmn|hi|he|haw|ha|gv|guz|gu|gsw|gl|gd|ga|fy|fur|fr|fo|fil|fi|ff|fa|ewo|eu|et|es|eo|en|el|ee|ebu|dz|dyo|dua|dsb|dje|de|dav|da|cy|cu|cs|co|ckb|chr|cgg|ceb|ce|ccp|ca|bs|brx|br|bo|bn|bm|bg|bez|bem|be|bas|az|ast|asa|as|ar|am|ak|agq|af";
+ String defaultArg = "zxx|zu|zh|zgh|yue|yo|yi|yav|xog|xh|wo|wae|vun|vo|vi|vai|uz|ur|und|uk|ug|tzm|twq|tt|tr|to|tk|ti|th|tg|teo|te|ta|sw|sv|su|st|sr|sq|so|sn|smn|sm|sl|sk|si|shi|sg|ses|seh|se|sd|sbp|saq|sah|sa|rwk|rw|ru|rof|ro|rn|rm|qu|pt|ps|prg|pl|pa|os|or|om|nyn|ny|nus|no|nnh|nn|nmg|nl|ne|nds|nd|nb|naq|mzn|my|mul|mua|mt|ms|mr|mn|ml|mk|mi|mgo|mgh|mg|mfe|mer|mas|lv|luy|luo|lu|lt|lrc|lo|ln|lkt|lg|lb|lag|la|ky|kw|ku|ksh|ksf|ksb|ks|kok|ko|kn|km|kln|kl|kkj|kk|ki|khq|kea|kde|kam|kab|ka|jv|jmc|jgo|ja|it|is|ii|ig|id|ia|hy|hu|ht|hsb|hr|hmn|hi|he|haw|ha|gv|guz|gu|gsw|gl|gd|ga|fy|fur|fr|fo|fil|fi|ff|fa|ewo|eu|et|es|eo|en|el|ee|ebu|dz|dyo|dua|dsb|dje|de|dav|da|cy|cu|cs|co|ckb|chr|cgg|ceb|ce|ccp|ca|bs|brx|br|bo|bn|bm|bg|bez|bem|be|bas|az|ast|asa|as|ar|am|ak|agq|af";
//defaultArg = "aa|ace|ad[ay]|ain|al[et]|anp?|arp|ast|av|awa|ay|ma[dgik]|mdf|men|mh|mi[cn]|mni|mos|mu[ls]|mwl|myv";
String regexString = args.length < 1 ? defaultArg : args[0];
UnicodeSet set = new UnicodeSet(args.length < 2 ? "[:ascii:]" : args[1]);
diff --git a/tools/java/org/unicode/cldr/tool/Misc.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/Misc.java
similarity index 99%
rename from tools/java/org/unicode/cldr/tool/Misc.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/Misc.java
index fb2f81d..e6739bb 100644
--- a/tools/java/org/unicode/cldr/tool/Misc.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/Misc.java
@@ -274,7 +274,7 @@
static Set<String> priorities = new TreeSet<>(Arrays.asList(new String[] { "en", "zh_Hans",
"zh_Hant", "da", "nl", "fi", "fr", "de", "it",
- "ja", "ko", "nb", "pt_BR", "ru", "es", "sv", "ar", "bg", "ca",
+ "ja", "ko", "no", "pt_BR", "ru", "es", "sv", "ar", "bg", "ca",
"hr", "cs", "et", "el", "he", "hi", "hu", "is", "id", "lv", "lt",
"pl", "ro", "sr", "sk", "sl", "tl", "th", "tr", "uk", "ur", "vi"
// // "en_GB",
diff --git a/tools/java/org/unicode/cldr/tool/ModifyCase.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ModifyCase.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/ModifyCase.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ModifyCase.java
diff --git a/tools/java/org/unicode/cldr/tool/Option.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/Option.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/Option.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/Option.java
diff --git a/tools/java/org/unicode/cldr/tool/PivotData.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/PivotData.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/PivotData.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/PivotData.java
diff --git a/tools/java/org/unicode/cldr/tool/PluralMinimalPairs.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/PluralMinimalPairs.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/PluralMinimalPairs.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/PluralMinimalPairs.java
diff --git a/tools/java/org/unicode/cldr/tool/PluralRulesFactory.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/PluralRulesFactory.java
similarity index 99%
rename from tools/java/org/unicode/cldr/tool/PluralRulesFactory.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/PluralRulesFactory.java
index 7b72ba2..bfa64cb 100644
--- a/tools/java/org/unicode/cldr/tool/PluralRulesFactory.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/PluralRulesFactory.java
@@ -344,7 +344,7 @@
// {"my", "other: null"},
// {"ne", "one: n is 1"},
// {"nl", "one: n is 1"},
- // {"nb", "one: n is 1"},
+ // {"no", "one: n is 1"},
// {"pa", "one: n is 1"},
// {"pl", "one: n is 1; few: n mod 10 in 2..4 and n mod 100 not in 12..14; many: n is not 1 and n mod 10 in 0..1 or n mod 10 in 5..9 or n mod 100 in 12..14"},
// {"ps", "one: n is 1"},
@@ -502,8 +502,8 @@
// { "mr", "other", "{0} घरे" },
// { "ms", "other", "{0} hari" },
// { "my", "other", "{0}ရက္" },
-// { "nb", "one", "{0} dag" },
-// { "nb", "other", "{0} dager" },
+// { "no", "one", "{0} dag" },
+// { "no", "other", "{0} dager" },
// { "ne", "one", "तपाईँसँग {0} निम्तो छ" },
// { "ne", "other", "तपाईँसँग {0} निम्ता छन््" },
// // {"ne", "", "{0} दिन बाँकी छ ।"},
@@ -751,7 +751,7 @@
// { "ne", "{0} ओ दायाँ घुम्ति लिनुहोस्", "1" },
// { "ne", "{0} औं दायाँ घुम्ति लिनुहोस्", "5" },
// { "nl", "Neem de {0}e afslag rechts.", "1" },
-// { "nb", "Ta {0}. svingen til høyre.", "1" },
+// { "no", "Ta {0}. svingen til høyre.", "1" },
// { "pa", "ਸਜੇ ਪਾਸੇ {0} ਮੋੜ ਲਵੋ", "1" },
// { "pl", "Skręć w {0} w prawo.", "1" },
// { "pt", "{0}º livro", "15" },
diff --git a/tools/java/org/unicode/cldr/tool/PrepareRootAnnotations.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/PrepareRootAnnotations.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/PrepareRootAnnotations.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/PrepareRootAnnotations.java
diff --git a/tools/java/org/unicode/cldr/tool/ReadSql.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ReadSql.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/ReadSql.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ReadSql.java
diff --git a/tools/java/org/unicode/cldr/tool/ReadXMB.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ReadXMB.java
similarity index 97%
rename from tools/java/org/unicode/cldr/tool/ReadXMB.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ReadXMB.java
index 4b8202f..18e5260 100644
--- a/tools/java/org/unicode/cldr/tool/ReadXMB.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ReadXMB.java
@@ -73,7 +73,7 @@
}
public static void main(String[] args) {
- Map<String, String> info = load(CLDRPaths.BASE_DIRECTORY + "tools/java/org/unicode/cldr/unittest/data/xmb/",
+ Map<String, String> info = load(CLDRPaths.BASE_DIRECTORY + "tools/cldr-code/src/main/resources/org/unicode/cldr/unittest/data/xmb/",
"en.xml");
System.out.println("============");
for (Entry<String, String> entry : info.entrySet()) {
diff --git a/tools/java/org/unicode/cldr/tool/RegexModify.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/RegexModify.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/RegexModify.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/RegexModify.java
diff --git a/tools/java/org/unicode/cldr/tool/RemoveEmptyCLDR.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/RemoveEmptyCLDR.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/RemoveEmptyCLDR.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/RemoveEmptyCLDR.java
diff --git a/tools/java/org/unicode/cldr/tool/RemoveEmptyCldrFiles.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/RemoveEmptyCldrFiles.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/RemoveEmptyCldrFiles.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/RemoveEmptyCldrFiles.java
diff --git a/tools/java/org/unicode/cldr/tool/ScriptPopulations.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ScriptPopulations.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/ScriptPopulations.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ScriptPopulations.java
diff --git a/tools/java/org/unicode/cldr/tool/SearchCLDR.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/SearchCLDR.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/SearchCLDR.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/SearchCLDR.java
diff --git a/tools/java/org/unicode/cldr/tool/SearchXml.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/SearchXml.java
similarity index 99%
rename from tools/java/org/unicode/cldr/tool/SearchXml.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/SearchXml.java
index 300d9e5..a2eeed6 100644
--- a/tools/java/org/unicode/cldr/tool/SearchXml.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/SearchXml.java
@@ -13,6 +13,7 @@
import org.unicode.cldr.test.CoverageLevel2;
import org.unicode.cldr.tool.Option.Options;
import org.unicode.cldr.util.CLDRPaths;
+import org.unicode.cldr.util.CLDRTool;
import org.unicode.cldr.util.Counter;
import org.unicode.cldr.util.Level;
import org.unicode.cldr.util.PathHeader;
@@ -29,6 +30,7 @@
import com.ibm.icu.util.Output;
import com.ibm.icu.util.ULocale;
+@CLDRTool(alias = "searchxml", description = "Search CLDR XML for matching paths or values")
public class SearchXml {
// TODO Use options
diff --git a/tools/java/org/unicode/cldr/tool/ShowChildren.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowChildren.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/ShowChildren.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowChildren.java
diff --git a/tools/java/org/unicode/cldr/tool/ShowCoverageLevels.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowCoverageLevels.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/ShowCoverageLevels.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowCoverageLevels.java
diff --git a/tools/java/org/unicode/cldr/tool/ShowData.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowData.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/ShowData.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowData.java
diff --git a/tools/java/org/unicode/cldr/tool/ShowDtdDiffs.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowDtdDiffs.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/ShowDtdDiffs.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowDtdDiffs.java
diff --git a/tools/java/org/unicode/cldr/tool/ShowKeyboards.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowKeyboards.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/ShowKeyboards.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowKeyboards.java
diff --git a/tools/java/org/unicode/cldr/tool/ShowLanguageData.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowLanguageData.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/ShowLanguageData.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowLanguageData.java
diff --git a/tools/java/org/unicode/cldr/tool/ShowLanguages.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowLanguages.java
similarity index 99%
rename from tools/java/org/unicode/cldr/tool/ShowLanguages.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowLanguages.java
index 908c945..4f0411c 100644
--- a/tools/java/org/unicode/cldr/tool/ShowLanguages.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowLanguages.java
@@ -131,9 +131,6 @@
new ChartUnitConversions().writeChart(SUPPLEMENTAL_INDEX_ANCHORS);
new ChartUnitPreferences().writeChart(SUPPLEMENTAL_INDEX_ANCHORS);
}
- if (ToolConstants.CHART_VERSION.compareTo("37") >= 0) {
- new ChartGrammaticalForms().writeChart(SUPPLEMENTAL_INDEX_ANCHORS);
- }
// since we don't want these listed on the supplemental page, use null
new ShowPlurals().printPlurals(english, null, pw, cldrFactory);
@@ -868,7 +865,7 @@
localeAliasInfo.put("unit", new TreeMap<String, String>());
localeAliasInfo.put("usage", new TreeMap<String, String>());
- localeAliasInfo.get("language").put("no", "nb");
+ //localeAliasInfo.get("language").put("nb", "no");
localeAliasInfo.get("language").put("zh_CN", "zh_Hans_CN");
localeAliasInfo.get("language").put("zh_SG", "zh_Hans_SG");
localeAliasInfo.get("language").put("zh_TW", "zh_Hant_TW");
diff --git a/tools/java/org/unicode/cldr/tool/ShowLocaleCoverage.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowLocaleCoverage.java
similarity index 99%
rename from tools/java/org/unicode/cldr/tool/ShowLocaleCoverage.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowLocaleCoverage.java
index a3c21d5..216e3db 100644
--- a/tools/java/org/unicode/cldr/tool/ShowLocaleCoverage.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowLocaleCoverage.java
@@ -139,7 +139,7 @@
private static final String LATEST = ToolConstants.CHART_VERSION;
private static final double CORE_SIZE = CoreItems.values().length - CoreItems.ONLY_RECOMMENDED.size();
public static CLDRConfig testInfo = ToolConfig.getToolInstance();
- private static final StandardCodes SC = testInfo.getStandardCodes();
+ private static final StandardCodes SC = StandardCodes.make();
private static final SupplementalDataInfo SUPPLEMENTAL_DATA_INFO = testInfo.getSupplementalDataInfo();
private static final StandardCodes STANDARD_CODES = SC;
diff --git a/tools/java/org/unicode/cldr/tool/ShowPathHeaderDescriptions.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowPathHeaderDescriptions.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/ShowPathHeaderDescriptions.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowPathHeaderDescriptions.java
diff --git a/tools/java/org/unicode/cldr/tool/ShowPlurals.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowPlurals.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/ShowPlurals.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowPlurals.java
diff --git a/tools/java/org/unicode/cldr/tool/ShowRegionalVariants.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowRegionalVariants.java
similarity index 98%
rename from tools/java/org/unicode/cldr/tool/ShowRegionalVariants.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowRegionalVariants.java
index 9a7ac95..7251dd2 100644
--- a/tools/java/org/unicode/cldr/tool/ShowRegionalVariants.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowRegionalVariants.java
@@ -27,6 +27,7 @@
import org.unicode.cldr.util.LanguageTagParser;
import org.unicode.cldr.util.PathHeader;
import org.unicode.cldr.util.PathHeader.SectionId;
+import org.unicode.cldr.util.StandardCodes;
import org.unicode.cldr.util.SupplementalDataInfo;
import com.google.common.base.Objects;
@@ -50,6 +51,7 @@
enum MyOptions {
targetDir(".*", CLDRPaths.GEN_DIRECTORY + "/regional/", "target output file."),;
+
// boilderplate
final Option option;
@@ -63,7 +65,7 @@
MY_DIR = MyOptions.targetDir.option.getValue();
- Set<String> coverageLocales = CONFIG.getStandardCodes().getLocaleCoverageLocales("cldr");
+ Set<String> coverageLocales = StandardCodes.make().getLocaleCoverageLocales("cldr");
Set<String> dc = new HashSet<>(SUPPLEMENTAL_DATA_INFO.getDefaultContentLocales());
Set<String> skipLocales = new HashSet<>(Arrays.asList("root", "en_US_POSIX", "sr_Latn"));
diff --git a/tools/java/org/unicode/cldr/tool/ShowStarredCoverage.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowStarredCoverage.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/ShowStarredCoverage.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowStarredCoverage.java
diff --git a/tools/java/org/unicode/cldr/tool/ShowZoneEquivalences.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowZoneEquivalences.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/ShowZoneEquivalences.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ShowZoneEquivalences.java
diff --git a/tools/java/org/unicode/cldr/tool/SimpleLocaleParser.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/SimpleLocaleParser.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/SimpleLocaleParser.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/SimpleLocaleParser.java
diff --git a/tools/java/org/unicode/cldr/tool/SubdivisionNames.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/SubdivisionNames.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/SubdivisionNames.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/SubdivisionNames.java
diff --git a/tools/java/org/unicode/cldr/tool/TablePrinter.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/TablePrinter.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/TablePrinter.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/TablePrinter.java
diff --git a/tools/java/org/unicode/cldr/tool/ToolConfig.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ToolConfig.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/ToolConfig.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ToolConfig.java
diff --git a/tools/java/org/unicode/cldr/tool/ToolConstants.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ToolConstants.java
similarity index 97%
rename from tools/java/org/unicode/cldr/tool/ToolConstants.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ToolConstants.java
index 0904e28..b9aa0b9 100644
--- a/tools/java/org/unicode/cldr/tool/ToolConstants.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ToolConstants.java
@@ -57,10 +57,12 @@
"35.1",
"36.0",
"36.1",
- "37.0"
+ "37.0",
+ "38.0",
+ "38.1"
// add to this once the release is final!
);
- public static final String DEV_VERSION = "38";
+ public static final String DEV_VERSION = "39";
public static final Set<String> CLDR_RELEASE_VERSION_SET = ImmutableSet.copyOf(ToolConstants.CLDR_VERSIONS);
public static final Set<String> CLDR_RELEASE_AND_DEV_VERSION_SET = ImmutableSet.<String>builder().addAll(CLDR_RELEASE_VERSION_SET).add(DEV_VERSION).build();
diff --git a/tools/java/org/unicode/cldr/tool/ToolUtilities.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ToolUtilities.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/ToolUtilities.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/ToolUtilities.java
diff --git a/tools/java/org/unicode/cldr/tool/UpdateAliasedCodes.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/UpdateAliasedCodes.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/UpdateAliasedCodes.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/UpdateAliasedCodes.java
diff --git a/tools/java/org/unicode/cldr/tool/VerifyAttributeValues.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/VerifyAttributeValues.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/VerifyAttributeValues.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/VerifyAttributeValues.java
diff --git a/tools/cldr-code/src/main/java/org/unicode/cldr/tool/VerifyConverterResults.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/VerifyConverterResults.java
new file mode 100644
index 0000000..d98b067
--- /dev/null
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/VerifyConverterResults.java
@@ -0,0 +1,340 @@
+package org.unicode.cldr.tool;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.Reader;
+import java.io.UncheckedIOException;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.TreeSet;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.unicode.cldr.draft.FileUtilities;
+import org.unicode.cldr.util.CLDRConfig;
+import org.unicode.cldr.util.CLDRPaths;
+import org.unicode.cldr.util.DtdData;
+import org.unicode.cldr.util.DtdData.AttributeStatus;
+import org.unicode.cldr.util.DtdType;
+import org.unicode.cldr.util.Pair;
+import org.unicode.cldr.util.PathStarrer;
+import org.unicode.cldr.util.SupplementalDataInfo;
+import org.unicode.cldr.util.XMLFileReader;
+import org.unicode.cldr.util.XPathParts;
+
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.TreeMultimap;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonStreamParser;
+
+/** Simple tool to help verify that CLDR data is getting transferred.
+ *
+ * @author markdavis
+ *
+ */
+public class VerifyConverterResults {
+ public static final CLDRConfig CONFIG = CLDRConfig.getInstance();
+ public static final SupplementalDataInfo SDI = CONFIG.getSupplementalDataInfo();
+ public static final PathStarrer PATH_STARRER = new PathStarrer().setSubstitutionPattern("*");
+
+ enum SourceType {
+ text,
+ json,
+ rb}
+
+ public static void main(String[] args) {
+ // TODO, make these arguments
+ SourceType sourceType = SourceType.json;
+
+ String dirBase = CLDRPaths.STAGING_DIRECTORY + "production/";
+ String textSource = "/Users/markdavis/GitHub/macchiati/icu/icu4c/source/data";
+ String jsonSource = "/Users/markdavis/Downloads/38JsonBetaAll";
+ String locale = "de";
+ boolean isVerbose = false;
+
+
+ String source;
+ Matcher fileMatcher;
+ Matcher parentMatcher = null;
+ switch(sourceType) {
+ case text:
+ source = textSource;
+ fileMatcher = Pattern.compile(locale + ".txt").matcher("");
+ break;
+ case json:
+ source = jsonSource;
+ fileMatcher = Pattern.compile(".*\\.json").matcher("");
+ parentMatcher = Pattern.compile(locale + "|cldr-core|supplemental").matcher("");
+ break;
+ default: throw new IllegalArgumentException("No code yet for " + sourceType);
+ }
+
+ Set<String> skipSupplementalFiles = ImmutableSet.of(
+ // purposely excluded from clients
+ "subdivisions.xml",
+
+ // internal to CLDR, not applicable for clients
+ "attributeValueValidity.xml", "coverageLevels.xml"
+
+ // the format changes so dramatically we can't compare
+
+ );
+
+ Set<String> converted = getConvertedData(sourceType, new File(source), fileMatcher, parentMatcher, new TreeSet<>());
+ Set<String> excludeDraftStatus = ImmutableSet.of("unconfirmed", "provisional");
+
+ // Now check that the data values in CLDR are contained
+ for (String dir : Iterables.concat(DtdType.ldml.directories, DtdType.supplementalData.directories)) {
+ switch(dir) {
+
+ case "annotationsDerived": case "annotations":
+ if (sourceType != SourceType.text) {
+ break;
+ }
+ System.out.println(dir + "\t##SKIPPING\t" + "excluded from ICU");
+ continue;
+
+ case "casing":
+ System.out.println(dir + "\t##SKIPPING\t" + "internal to CLDR, not applicable for conversion");
+ continue;
+
+ case "subdivisions":
+ System.out.println(dir + "\t##SKIPPING\t" + "purposely excluded from conversion");
+ continue;
+
+ case "collation":
+ case "rbnf":
+ case "transforms":
+ case "segments":
+ case "validity":
+ System.out.println(dir + "\t##SKIPPING\t" + "format changes so dramatically we can't compare yet");
+ continue;
+ }
+
+ final boolean isSupplemental = DtdType.supplementalData.directories.contains(dir);
+ DtdData supplementalDtdData = isSupplemental ? DtdData.getInstance(DtdType.supplementalData) : null;
+
+ Matcher cldrFileMatcher = Pattern.compile(locale + ".xml").matcher("");
+
+ FileData filedata = new FileData(converted);
+ String current = dirBase + "common/" + dir;
+
+ for (File child : new File(current).listFiles()) {
+ final String name = child.getName();
+ if (isSupplemental) {
+ if (skipSupplementalFiles.contains(name)) {
+ continue;
+ }
+ } else {
+ if (!cldrFileMatcher.reset(name).matches()) {
+ continue;
+ }
+ }
+ filedata.clear();
+ for (Pair<String, String> line : XMLFileReader.loadPathValues(child.toString(), new ArrayList<>(), false)) {
+ final String value = line.getSecond();
+ final String path = line.getFirst();
+ XPathParts parts = XPathParts.getFrozenInstance(path);
+ String draftStatus = parts.getAttributeValue(-1, "draft");
+ if (draftStatus != null && excludeDraftStatus.contains(draftStatus)) {
+ // doesn't need to be copied; up to client
+ continue;
+ } else if (path.startsWith("//supplementalData/metadata/suppress/attributes")
+ || path.startsWith("//supplementalData/metadata/serialElements")) {
+ // internal to CLDR
+ continue;
+ }
+ filedata.checkValue(dir, name, path, value);
+
+ // for supplemental data, also check the value attributes
+ if (isSupplemental) {
+ for (int elementIndex = 0; elementIndex < parts.size(); ++elementIndex) {
+ String element = parts.getElement(elementIndex);
+ for (Entry<String, String> attribute : parts.getAttributes(elementIndex).entrySet()) {
+ if (AttributeStatus.value == supplementalDtdData.getAttributeStatus(element, attribute.getKey())) {
+ filedata.checkValue(dir, name, path, attribute.getValue());
+ }
+ }
+ }
+ }
+ }
+ filedata.print(isVerbose);
+ System.out.println(dir + "\t##Missing Paths #:\t" + (filedata.filedata.size() == 0? "NONE"
+ : filedata.filedata.size()));
+ }
+ }
+ }
+
+ static class FileData {
+ Set<String> converted;
+ TreeMultimap<String, String> filedata = TreeMultimap.create();
+ TreeMap<String, String> starredData = new TreeMap<>();
+
+ public FileData(Set<String> converted) {
+ this.converted = converted;
+ }
+
+ public void clear() {
+ filedata.clear();
+ starredData.clear();
+ }
+
+ public void checkValue(final String dir, final String name, final String path, String value) {
+ if (value.isEmpty()) {
+ return;
+ }
+ value = value.replace('\n', ' ');
+ if (converted.contains(value)) {
+ return;
+ }
+ filedata.put(dir + "\t" + name + "\t" + path, value);
+ starredData.put(dir + "\t" + name + "\t" + PATH_STARRER.set(path), value);
+ }
+
+ void print(boolean isVerbose) {
+ final Set<Entry<String, String>> items = isVerbose ? filedata.entries() : starredData.entrySet();
+ for (Entry<String, String> entry : items) {
+ System.out.println(entry.getKey() + "\t" + entry.getValue());
+ }
+ }
+ }
+
+ private static Set<String> getConvertedData(SourceType sourceType, File target, Matcher fileMatcher, Matcher parentMatcher, Set<String> accummulatedValues) {
+ if (target.isDirectory()) {
+ for (File child : target.listFiles()) {
+ getConvertedData(sourceType, child, fileMatcher, parentMatcher, accummulatedValues);
+ }
+ } else {
+ if (target.toString().contains("/de/")) {
+ int debug = 0;
+ }
+ boolean ok = true;
+ if (parentMatcher != null) {
+ String parentName = target.getParentFile().getName();
+ ok = parentMatcher.reset(parentName).matches();
+ }
+ if (ok) {
+ ok = fileMatcher.reset(target.getName()).matches();
+ }
+ if (ok) { // not directory, matches
+ int startCount = accummulatedValues.size();
+ switch (sourceType) {
+ case text:
+ processText(target, accummulatedValues);
+ break;
+ case json:
+ processJson(target, accummulatedValues);
+ break;
+ default:
+ throw new IllegalArgumentException("No code yet for " + sourceType);
+ }
+ int endCount = accummulatedValues.size();
+ System.out.println("Processed Converted" + target + "; "
+ + (startCount == endCount ? "NO CHANGE" : startCount + " => " + endCount));
+ }
+ }
+ return accummulatedValues;
+ }
+
+
+ private static void processJson(File target, Set<String> accummulatedValues) {
+ try (Reader reader = FileUtilities.openFile(target, Charset.forName("utf8"))) {
+ JsonStreamParser gsonParser = new JsonStreamParser(reader);
+ gsonParser.forEachRemaining((JsonElement x) -> process(x, accummulatedValues));
+ } catch (IOException e) {
+ throw new UncheckedIOException(e);
+ }
+ }
+
+ private static void process(JsonElement x, Set<String> accummulatedValues) {
+ if (x.isJsonPrimitive()) {
+ accummulatedValues.add(x.getAsString());
+ } else if (x.isJsonArray()) {
+ for (JsonElement y : x.getAsJsonArray()) {
+ process(y, accummulatedValues);
+ }
+ } else if (x.isJsonObject()) {
+ for (Entry<String, JsonElement> y : x.getAsJsonObject().entrySet()) {
+ process(y.getValue(), accummulatedValues);
+ }
+ } else {
+ throw new IllegalArgumentException("No code yet for ");
+ }
+ }
+
+ public static void processText(File target, Set<String> accummulatedValues) {
+ Matcher quoteMatcher = Pattern.compile("\"([^\"]*)\"").matcher("");
+ for (String line : FileUtilities.in(target)) {
+ if (line.startsWith("//")) {
+ continue;
+ }
+ quoteMatcher.reset(line);
+ while (quoteMatcher.find()) {
+ final String value = quoteMatcher.group(1);
+ accummulatedValues.add(value);
+ }
+ }
+ }
+
+ /*
+ public static void main(String[] args) throws UnsupportedEncodingException {
+ for (final String baseName : getBaseNames()) {
+ gatherData(baseName);
+ }
+ }
+ // Ugly hack to get base names
+ static Collection<String> getBaseNames() {
+ return new LinkedHashSet<String>(Arrays.asList(new String[] {
+ ICUData.ICU_BASE_NAME,
+ ICUData.ICU_BRKITR_BASE_NAME,
+ ICUData.ICU_COLLATION_BASE_NAME,
+ ICUData.ICU_RBNF_BASE_NAME,
+ ICUData.ICU_TRANSLIT_BASE_NAME
+ }));
+ }
+ private static void gatherData(String baseName) {
+ ULocale[] availableULocales;
+ try {
+ availableULocales = ICUResourceBundle.getAvailableULocales(baseName, ICUResourceBundle.ICU_DATA_CLASS_LOADER);
+ } catch (final Exception e) {
+ e.printStackTrace();
+ System.out.println("*** Unable to load " + baseName);
+ return;
+ }
+ System.out.println("Gathering data for: " + baseName);
+ for (final ULocale locale : availableULocales) {
+ final UResourceBundle rs = UResourceBundle.getBundleInstance(baseName, locale);
+ addStrings(rs);
+ }
+ }
+ private static void addStrings(UResourceBundle rs) {
+ final String key = rs.getKey();
+ if (key != null) {
+ keyCounter.add(key, 1);
+ }
+ switch (rs.getType()) {
+ case UResourceBundle.STRING:
+ counter.add(rs.getString(), 1);
+ break;
+ case UResourceBundle.ARRAY:
+ case UResourceBundle.TABLE:
+ for (int i = 0; i < rs.getSize(); ++i) {
+ final UResourceBundle rs2 = rs.get(i);
+ addStrings(rs2);
+ }
+ break;
+ case UResourceBundle.BINARY:
+ case UResourceBundle.INT:
+ case UResourceBundle.INT_VECTOR: // skip
+ break;
+ default:
+ throw new IllegalArgumentException("Unknown Option: " + rs.getType());
+ }
+ }
+ */
+
+}
diff --git a/tools/java/org/unicode/cldr/tool/VettingAdder.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/VettingAdder.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/VettingAdder.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/VettingAdder.java
diff --git a/tools/java/org/unicode/cldr/tool/WritePluralRules.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/WritePluralRules.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/WritePluralRules.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/WritePluralRules.java
diff --git a/tools/java/org/unicode/cldr/tool/WritePluralRulesSpreadsheets.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/WritePluralRulesSpreadsheets.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/WritePluralRulesSpreadsheets.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/WritePluralRulesSpreadsheets.java
diff --git a/tools/java/org/unicode/cldr/tool/XMLModify.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/XMLModify.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/XMLModify.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/XMLModify.java
diff --git a/tools/java/org/unicode/cldr/tool/resolver/CldrResolver.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/resolver/CldrResolver.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/resolver/CldrResolver.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/resolver/CldrResolver.java
diff --git a/tools/java/org/unicode/cldr/tool/resolver/ResolutionType.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/resolver/ResolutionType.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/resolver/ResolutionType.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/resolver/ResolutionType.java
diff --git a/tools/java/org/unicode/cldr/tool/resolver/ResolverUtils.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/resolver/ResolverUtils.java
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/resolver/ResolverUtils.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/tool/resolver/ResolverUtils.java
diff --git a/tools/java/org/unicode/cldr/util/Annotations.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Annotations.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/Annotations.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/Annotations.java
diff --git a/tools/java/org/unicode/cldr/util/ApproximateWidth.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/ApproximateWidth.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/ApproximateWidth.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/ApproximateWidth.java
diff --git a/tools/java/org/unicode/cldr/util/ArrayComparator.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/ArrayComparator.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/ArrayComparator.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/ArrayComparator.java
diff --git a/tools/java/org/unicode/cldr/util/AttributeValueValidity.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/AttributeValueValidity.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/AttributeValueValidity.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/AttributeValueValidity.java
diff --git a/tools/java/org/unicode/cldr/util/BNF.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/BNF.java
similarity index 94%
rename from tools/java/org/unicode/cldr/util/BNF.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/BNF.java
index 8fb1d68..9c27569 100644
--- a/tools/java/org/unicode/cldr/util/BNF.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/BNF.java
@@ -146,16 +146,27 @@
private boolean addRule() {
int type = t.next();
- if (type == Tokenizer.DONE) return false;
- if (type != Tokenizer.STRING) error("missing weight");
+ //System.out.println(type + "t.getString " + t.getString());
+ if (type == Tokenizer.DONE) {
+ return false;
+ }
+ if (type != Tokenizer.STRING) {
+ error("missing weight");
+ }
String s = t.getString();
- if (s.length() == 0 || s.charAt(0) != '$') error("missing $ in variable");
- if (t.next() != '=') error("missing =");
+ if (s.length() == 0 || s.charAt(0) != '$') {
+ error("missing $ in variable");
+ }
+ if (t.next() != '=') {
+ error("missing =");
+ }
int startBody = t.index;
Pick rule = getAlternation();
if (rule == null) error("missing expression");
t.addSymbol(s, t.getSource(), startBody, t.index);
- if (t.next() != ';') error("missing ;");
+ if (t.next() != ';') {
+ error("missing ;");
+ }
return addPick(s, rule);
}
@@ -246,7 +257,7 @@
if (item == null) {
if (result != null) return result;
if (last != null) return last;
- error("missing item");
+ error("missing item in sequence");
}
// qualify it as many times as possible
Pick oldItem;
diff --git a/tools/java/org/unicode/cldr/util/BoilerplateUtilities.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/BoilerplateUtilities.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/BoilerplateUtilities.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/BoilerplateUtilities.java
diff --git a/tools/java/org/unicode/cldr/util/Builder.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Builder.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/Builder.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/Builder.java
diff --git a/tools/java/org/unicode/cldr/util/CLDRConfig.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRConfig.java
similarity index 61%
rename from tools/java/org/unicode/cldr/util/CLDRConfig.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRConfig.java
index ef3cc53..7346931 100644
--- a/tools/java/org/unicode/cldr/util/CLDRConfig.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRConfig.java
@@ -4,6 +4,7 @@
import java.io.FilenameFilter;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Comparator;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
@@ -26,120 +27,85 @@
import com.ibm.icu.util.ULocale;
import com.ibm.icu.util.VersionInfo;
+/**
+ * Basic information about the CLDR environment.
+ * Use CLDRConfig.getInstance() to create your instance.
+ *
+ * Special notes:
+ * - Within the Survey Tool, a special subclass of this class named CLDRConfigImpl is used instead,
+ * which see.
+ * - Within unit tests, -DCLDR_ENVIRONMENT=UNITTEST is set, which prevents the use of CLDRConfigImpl
+ */
public class CLDRConfig extends Properties {
public static boolean SKIP_SEED = System.getProperty("CLDR_SKIP_SEED") != null;
- /**
- *
- */
private static final long serialVersionUID = -2605254975303398336L;
public static boolean DEBUG = false;
- private static CLDRConfig INSTANCE = null;
+ /**
+ * This is the special implementation which will be used, i.e. CLDRConfigImpl
+ */
public static final String SUBCLASS = CLDRConfig.class.getName() + "Impl";
/**
- * Object to use for synchronization when interacting with Factory
+ * What environment is CLDR in?
*/
- private static final Object CLDR_FACTORY_SYNC = new Object();
-
- /**
- * Object to use for synchronization when interacting with Factory
- */
- private static final Object FULL_FACTORY_SYNC = new Object();
-
- /**
- * Object to use for synchronization when interacting with Factory
- */
- private static final Object EXEMPLARS_FACTORY_SYNC = new Object();
- /**
- * Object to use for synchronization when interacting with Factory
- */
- private static final Object COLLATION_FACTORY_SYNC = new Object();
- /**
- * Object to use for synchronization when interacting with Factory
- */
- private static final Object RBNF_FACTORY_SYNC = new Object();
-
- /**
- * Object to use for synchronization when interacting with Factory
- */
- private static final Object ANNOTATIONS_FACTORY_SYNC = new Object();
-
- /**
- * Object to use for synchronization when interacting with Factory
- */
- private static final Object SUBDIVISION_FACTORY_SYNC = new Object();
-
- /**
- * Object used for synchronization when interacting with SupplementalData
- */
- private static final Object SUPPLEMENTAL_DATA_SYNC = new Object();
-
- /**
- * Object used for synchronization in getCollator()
- */
- private static final Object GET_COLLATOR_SYNC = new Object();
-
- /**
- * Object used for synchronization in getCollator()
- */
- private static final Object GET_COLLATOR_SYNC_ROOT = new Object();
-
- /**
- * Object used for synchronization in getStandardCodes()
- */
- private static final Object GET_STANDARD_CODES_SYNC = new Object();
-
- /**
- * Object used for synchronization in getCoverageInfo()
- */
- private static Object COVERAGE_INFO_SYNC = new Object();
-
public enum Environment {
LOCAL, // < == unknown.
- SMOKETEST, // staging area
- PRODUCTION, // production server!
+ SMOKETEST, // staging (SurveyTool) area
+ PRODUCTION, // production (SurveyTool) server!
UNITTEST // unit test setting
}
- public static CLDRConfig getInstance() {
- synchronized (CLDRConfig.class) {
- if (INSTANCE == null) {
- final String env = System.getProperty("CLDR_ENVIRONMENT");
- if (env != null && env.equals(Environment.UNITTEST.name())) {
- if (DEBUG) {
- System.err.println("-DCLDR_ENVIRONMENT=" + env + " - not loading " + SUBCLASS);
- }
- } else {
- try {
- // System.err.println("Attempting to new up a " + SUBCLASS);
- INSTANCE = (CLDRConfig) (Class.forName(SUBCLASS).newInstance());
+ public static final class CLDRConfigHelper {
+ private static CLDRConfig make() {
+ CLDRConfig instance = null;
+ final String env = System.getProperty("CLDR_ENVIRONMENT");
+ if (env != null && env.equals(Environment.UNITTEST.name())) {
+ // For unittests, skip the following
+ if (DEBUG) {
+ System.err.println("-DCLDR_ENVIRONMENT=" + env + " - not loading " + SUBCLASS);
+ }
+ } else {
+ // This is the branch for SurveyTool
+ try {
+ // System.err.println("Attempting to new up a " + SUBCLASS);
+ instance = (CLDRConfig) (Class.forName(SUBCLASS).newInstance());
- if (INSTANCE != null) {
- System.err.println("Using CLDRConfig: " + INSTANCE.toString() + " - "
- + INSTANCE.getClass().getName());
- } else {
- if (DEBUG) {
- // Probably occurred because ( config.getEnvironment() == Environment.UNITTEST )
- // see CLDRConfigImpl
- System.err.println("Note: CLDRConfig Subclass " +
- SUBCLASS + ".newInstance() returned NULL " +
- "( this is OK if we aren't inside the SurveyTool's web server )");
- }
+ if (instance != null) {
+ System.err.println("Using CLDRConfig: " + instance.toString() + " - "
+ + instance.getClass().getName());
+ } else {
+ if (DEBUG) {
+ // Probably occurred because ( config.getEnvironment() == Environment.UNITTEST )
+ // see CLDRConfigImpl
+ System.err.println("Note: CLDRConfig Subclass " +
+ SUBCLASS + ".newInstance() returned NULL " +
+ "( this is OK if we aren't inside the SurveyTool's web server )");
}
- } catch (ClassNotFoundException e) {
- // Expected - when not under cldr-apps, this class doesn't exist.
- } catch (InstantiationException | IllegalAccessException e) {
- // TODO: log a useful message
}
+ } catch (ClassNotFoundException e) {
+ // Expected - when not under cldr-apps, this class doesn't exist.
+ } catch (InstantiationException | IllegalAccessException e) {
+ // TODO: log a useful message
}
}
- if (INSTANCE == null) {
- INSTANCE = new CLDRConfig();
- CldrUtility.checkValidDirectory(INSTANCE.getProperty("CLDR_DIR"),
+ if (instance == null) {
+ // this is the "normal" branch for tools and such
+ instance = new CLDRConfig();
+ CldrUtility.checkValidDirectory(instance.getProperty("CLDR_DIR"),
"You have to set -DCLDR_DIR=<validdirectory>");
}
+ return instance;
}
- return INSTANCE;
+
+ static final CLDRConfig SINGLETON = make();
+ }
+
+ /**
+ * Main getter for the singleton CLDRConfig.
+ * @return
+ */
+ public static CLDRConfig getInstance() {
+ return CLDRConfigHelper.SINGLETON;
}
String initStack = null;
@@ -148,25 +114,14 @@
initStack = StackTracker.currentStack();
}
+ /**
+ * This returns the stacktrace of the first caller to getInstance(), for debugging.
+ * @return
+ */
public String getInitStack() {
return initStack;
}
- private CoverageInfo coverageInfo = null;
- private SupplementalDataInfo supplementalDataInfo;
- private StandardCodes sc;
- private Factory cldrFactory;
- private Factory fullFactory;
- private Factory mainAndAnnotationsFactory;
- private Factory commonAndSeedAndMainAndAnnotationsFactory;
- private Factory exemplarsFactory;
- private Factory collationFactory;
- private Factory rbnfFactory;
- private Factory annotationsFactory;
- private Factory subdivisionFactory;
- private Factory supplementalFactory;
- private RuleBasedCollator colRoot;
- private RuleBasedCollator col;
private Phase phase = null; // default
private LoadingCache<String, CLDRFile> cldrFileResolvedCache = CacheBuilder.newBuilder()
@@ -212,144 +167,121 @@
}
}
+ private static final class SupplementalDataInfoHelper {
+ static final SupplementalDataInfo SINGLETON = SupplementalDataInfo.getInstance(CLDRPaths.DEFAULT_SUPPLEMENTAL_DIRECTORY);
+ }
+
public SupplementalDataInfo getSupplementalDataInfo() {
- synchronized (SUPPLEMENTAL_DATA_SYNC) {
- if (supplementalDataInfo == null) {
- supplementalDataInfo = SupplementalDataInfo.getInstance(CLDRPaths.DEFAULT_SUPPLEMENTAL_DIRECTORY);
- }
- }
- return supplementalDataInfo;
+ // Note: overridden in subclass.
+ return SupplementalDataInfoHelper.SINGLETON;
}
- public StandardCodes getStandardCodes() {
- synchronized (GET_STANDARD_CODES_SYNC) {
- if (sc == null) {
- sc = StandardCodes.make();
- }
- }
- return sc;
+ private static final class CoverageInfoHelper {
+ static final CoverageInfo SINGLETON = new CoverageInfo(getInstance().getSupplementalDataInfo());
}
- public CoverageInfo getCoverageInfo() {
- synchronized (COVERAGE_INFO_SYNC) {
- if (coverageInfo == null) {
- coverageInfo = new CoverageInfo(getSupplementalDataInfo());
- }
- }
- return coverageInfo;
+ public final CoverageInfo getCoverageInfo() {
+ return CoverageInfoHelper.SINGLETON;
}
- public Factory getCldrFactory() {
- synchronized (CLDR_FACTORY_SYNC) {
- if (cldrFactory == null) {
- cldrFactory = Factory.make(CLDRPaths.MAIN_DIRECTORY, ".*");
- }
- }
- return cldrFactory;
+ private static final class CldrFactoryHelper {
+ static final Factory SINGLETON = Factory.make(CLDRPaths.MAIN_DIRECTORY, ".*");
}
- public Factory getExemplarsFactory() {
- synchronized (EXEMPLARS_FACTORY_SYNC) {
- if (exemplarsFactory == null) {
- exemplarsFactory = Factory.make(CLDRPaths.EXEMPLARS_DIRECTORY, ".*");
- }
- }
- return exemplarsFactory;
+ public final Factory getCldrFactory() {
+ return CldrFactoryHelper.SINGLETON;
}
- public Factory getCollationFactory() {
- synchronized (COLLATION_FACTORY_SYNC) {
- if (collationFactory == null) {
- collationFactory = Factory.make(CLDRPaths.COLLATION_DIRECTORY, ".*");
- }
- }
- return collationFactory;
+ private static final class ExemplarsFactoryHelper {
+ static final Factory SINGLETON = Factory.make(CLDRPaths.EXEMPLARS_DIRECTORY, ".*");
}
- public Factory getRBNFFactory() {
- synchronized (RBNF_FACTORY_SYNC) {
- if (rbnfFactory == null) {
- rbnfFactory = Factory.make(CLDRPaths.RBNF_DIRECTORY, ".*");
- }
- }
- return rbnfFactory;
+ public final Factory getExemplarsFactory() {
+ return ExemplarsFactoryHelper.SINGLETON;
+ }
+
+ private static final class CollationFactoryHelper {
+ static final Factory SINGLETON = Factory.make(CLDRPaths.COLLATION_DIRECTORY, ".*");
+ }
+
+ public final Factory getCollationFactory() {
+ return CollationFactoryHelper.SINGLETON;
+ }
+
+ private static final class RBNFFactoryHelper {
+ static final Factory SINGLETON = Factory.make(CLDRPaths.RBNF_DIRECTORY, ".*");
+ }
+
+ public final Factory getRBNFFactory() {
+ return RBNFFactoryHelper.SINGLETON;
+ }
+
+ private static final class AnnotationsFactoryHelper {
+ static final Factory SINGLETON = Factory.make(CLDRPaths.ANNOTATIONS_DIRECTORY, ".*");
}
public Factory getAnnotationsFactory() {
- synchronized (ANNOTATIONS_FACTORY_SYNC) {
- if (annotationsFactory == null) {
- annotationsFactory = Factory.make(CLDRPaths.ANNOTATIONS_DIRECTORY, ".*");
- }
- }
- return annotationsFactory;
+ return AnnotationsFactoryHelper.SINGLETON;
}
- public Factory getSubdivisionFactory() {
- synchronized (SUBDIVISION_FACTORY_SYNC) {
- if (subdivisionFactory == null) {
- subdivisionFactory = Factory.make(CLDRPaths.SUBDIVISIONS_DIRECTORY, ".*");
- }
- }
- return subdivisionFactory;
+ private static final class SubdivisionsFactoryHelper {
+ static final Factory SINGLETON = Factory.make(CLDRPaths.SUBDIVISIONS_DIRECTORY, ".*");
}
- public Factory getMainAndAnnotationsFactory() {
- synchronized (FULL_FACTORY_SYNC) {
- if (mainAndAnnotationsFactory == null) {
- File[] paths = {
- new File(CLDRPaths.MAIN_DIRECTORY),
- new File(CLDRPaths.ANNOTATIONS_DIRECTORY) };
- mainAndAnnotationsFactory = SimpleFactory.make(paths, ".*");
- }
- }
- return mainAndAnnotationsFactory;
+ public final Factory getSubdivisionFactory() {
+ return SubdivisionsFactoryHelper.SINGLETON;
}
- static Factory allFactory;
-
- public Factory getCommonSeedExemplarsFactory() {
- synchronized (FULL_FACTORY_SYNC) {
- if (allFactory == null) {
- allFactory = SimpleFactory.make(addStandardSubdirectories(CLDR_DATA_DIRECTORIES), ".*");
- }
- }
- return allFactory;
+ private static final class MainAndAnnotationsFactoryHelper {
+ private static final File[] paths = {
+ new File(CLDRPaths.MAIN_DIRECTORY),
+ new File(CLDRPaths.ANNOTATIONS_DIRECTORY) };
+ static final Factory SINGLETON = SimpleFactory.make(paths, ".*");
}
- public Factory getCommonAndSeedAndMainAndAnnotationsFactory() {
- synchronized (FULL_FACTORY_SYNC) {
- if (commonAndSeedAndMainAndAnnotationsFactory == null) {
- File[] paths = {
- new File(CLDRPaths.MAIN_DIRECTORY),
- new File(CLDRPaths.ANNOTATIONS_DIRECTORY),
- SKIP_SEED ? null : new File(CLDRPaths.SEED_DIRECTORY),
- SKIP_SEED ? null : new File(CLDRPaths.SEED_ANNOTATIONS_DIRECTORY)
- };
- commonAndSeedAndMainAndAnnotationsFactory = SimpleFactory.make(paths, ".*");
- }
- }
- return commonAndSeedAndMainAndAnnotationsFactory;
+ public final Factory getMainAndAnnotationsFactory() {
+ return MainAndAnnotationsFactoryHelper.SINGLETON;
}
- public Factory getFullCldrFactory() {
- synchronized (FULL_FACTORY_SYNC) {
- if (fullFactory == null) {
- File[] paths = {
- new File(CLDRPaths.MAIN_DIRECTORY),
- SKIP_SEED ? null : new File(CLDRPaths.SEED_DIRECTORY)};
- fullFactory = SimpleFactory.make(paths, ".*");
- }
- }
- return fullFactory;
+ private static final class CommonSeedExemplarsFactoryHelper {
+ static final Factory SINGLETON = SimpleFactory.make(getInstance().addStandardSubdirectories(CLDR_DATA_DIRECTORIES), ".*");
}
- public Factory getSupplementalFactory() {
- synchronized (CLDR_FACTORY_SYNC) {
- if (supplementalFactory == null) {
- supplementalFactory = Factory.make(CLDRPaths.DEFAULT_SUPPLEMENTAL_DIRECTORY, ".*");
- }
- }
- return supplementalFactory;
+ public final Factory getCommonSeedExemplarsFactory() {
+ return CommonSeedExemplarsFactoryHelper.SINGLETON;
+ }
+
+ private static final class CommonAndSeedAndMainAndAnnotationsFactoryHelper {
+ private static final File[] paths = {
+ new File(CLDRPaths.MAIN_DIRECTORY),
+ new File(CLDRPaths.ANNOTATIONS_DIRECTORY),
+ SKIP_SEED ? null : new File(CLDRPaths.SEED_DIRECTORY),
+ SKIP_SEED ? null : new File(CLDRPaths.SEED_ANNOTATIONS_DIRECTORY)
+ };
+ static final Factory SINGLETON = SimpleFactory.make(paths, ".*");
+ }
+
+ public final Factory getCommonAndSeedAndMainAndAnnotationsFactory() {
+ return CommonAndSeedAndMainAndAnnotationsFactoryHelper.SINGLETON;
+ }
+
+ private static final class FullCldrFactoryHelper {
+ private static final File[] paths = {
+ new File(CLDRPaths.MAIN_DIRECTORY),
+ SKIP_SEED ? null : new File(CLDRPaths.SEED_DIRECTORY)};
+ static final Factory SINGLETON = SimpleFactory.make(paths, ".*");
+ }
+
+ public final Factory getFullCldrFactory() {
+ return FullCldrFactoryHelper.SINGLETON;
+ }
+
+ private static final class SupplementalFactoryHelper {
+ static final Factory SINGLETON = Factory.make(CLDRPaths.DEFAULT_SUPPLEMENTAL_DIRECTORY, ".*");
+ }
+
+ public final Factory getSupplementalFactory() {
+ return SupplementalFactoryHelper.SINGLETON;
}
public CLDRFile getEnglish() {
@@ -357,44 +289,67 @@
}
public CLDRFile getCLDRFile(String locale, boolean resolved) {
-
return resolved ? cldrFileResolvedCache.getUnchecked(locale) : cldrFileUnresolvedCache.getUnchecked(locale);
-
}
public CLDRFile getRoot() {
return getCLDRFile("root", true);
}
- public Collator getCollatorRoot() {
- synchronized (GET_COLLATOR_SYNC_ROOT) {
- if (colRoot == null) {
- CLDRFile root = getCollationFactory().make("root", false);
- String rules = root.getStringValue("//ldml/collations/collation[@type=\"emoji\"][@visibility=\"external\"]/cr");
- try {
- colRoot = new RuleBasedCollator(rules);
- } catch (Exception e) {
- colRoot = (RuleBasedCollator) getCollator();
- return colRoot;
- }
- colRoot.setStrength(Collator.IDENTICAL);
- colRoot.setNumericCollation(true);
- colRoot.freeze();
+ private static final class CollatorRootHelper {
+ static final RuleBasedCollator SINGLETON = make();
+
+ private static final RuleBasedCollator make() {
+ RuleBasedCollator colRoot;
+
+ CLDRFile root = getInstance().getCollationFactory().make("root", false);
+ String rules = root.getStringValue("//ldml/collations/collation[@type=\"emoji\"][@visibility=\"external\"]/cr");
+ try {
+ colRoot = new RuleBasedCollator(rules);
+ } catch (Exception e) {
+ colRoot = (RuleBasedCollator) getInstance().getCollator();
+ return colRoot;
}
+ colRoot.setStrength(Collator.IDENTICAL);
+ colRoot.setNumericCollation(true);
+ colRoot.freeze();
+ return colRoot;
}
- return colRoot;
+ }
+ public final Collator getCollatorRoot() {
+ return CollatorRootHelper.SINGLETON;
}
- public Collator getCollator() {
- synchronized (GET_COLLATOR_SYNC) {
- if (col == null) {
- col = (RuleBasedCollator) Collator.getInstance(ULocale.forLanguageTag("en-u-co-emoji"));
- col.setStrength(Collator.IDENTICAL);
- col.setNumericCollation(true);
- col.freeze();
- }
+ @SuppressWarnings("unchecked")
+ public final Comparator<String> getComparatorRoot() {
+ return (Comparator)(getCollatorRoot());
+ }
+
+ private static final class CollatorHelper {
+ static final Collator EMOJI_COLLATOR = makeEmojiCollator();
+ private static final Collator makeEmojiCollator() {
+ final RuleBasedCollator col = (RuleBasedCollator) Collator.getInstance(ULocale.forLanguageTag("en-u-co-emoji"));
+ col.setStrength(Collator.IDENTICAL);
+ col.setNumericCollation(true);
+ col.freeze();
+ return col;
}
- return col;
+
+ static final Collator ROOT_NUMERIC = makeRootNumeric();
+
+ private static final Collator makeRootNumeric() {
+ RuleBasedCollator _ROOT_COL = (RuleBasedCollator) Collator.getInstance(ULocale.ENGLISH);
+ _ROOT_COL.setNumericCollation(true);
+ _ROOT_COL.freeze();
+ return _ROOT_COL;
+ }
+ }
+ public Collator getCollator() {
+ return CollatorHelper.EMOJI_COLLATOR;
+ }
+
+ public Collator getRootNumeric() {
+ return CollatorHelper.ROOT_NUMERIC;
}
public synchronized Phase getPhase() {
@@ -620,7 +575,7 @@
* Get a list of CLDR directories containing actual data
* @return an iterable containing the names of all CLDR data subdirectories
*/
- public Iterable<String> getCLDRDataDirectories() {
+ public static Iterable<String> getCLDRDataDirectories() {
return Arrays.asList(CLDR_DATA_DIRECTORIES);
}
@@ -665,7 +620,7 @@
return ret.toArray(new File[ret.size()]);
}
- public File[] fileArrayFromStringArray(File dir, String... subdirNames) {
+ public static File[] fileArrayFromStringArray(File dir, String... subdirNames) {
File[] fileList = new File[subdirNames.length];
int i = 0;
for (String item : subdirNames) {
@@ -674,7 +629,7 @@
return fileList;
}
- private void addIfExists(List<File> ret, File baseFile, String sub) {
+ private static void addIfExists(List<File> ret, File baseFile, String sub) {
File file = new File(baseFile, sub);
if (file.exists()) {
ret.add(file);
diff --git a/tools/java/org/unicode/cldr/util/CLDRFile.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRFile.java
similarity index 98%
rename from tools/java/org/unicode/cldr/util/CLDRFile.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRFile.java
index 19deab0..ec26752 100644
--- a/tools/java/org/unicode/cldr/util/CLDRFile.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRFile.java
@@ -12,9 +12,7 @@
import java.io.FileInputStream;
import java.io.FilenameFilter;
import java.io.InputStream;
-import java.io.InputStreamReader;
import java.io.PrintWriter;
-import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -125,7 +123,7 @@
public static final String SUPPLEMENTAL_NAME = "supplementalData";
public static final String SUPPLEMENTAL_METADATA = "supplementalMetadata";
public static final String SUPPLEMENTAL_PREFIX = "supplemental";
- public static final String GEN_VERSION = "38.1";
+ public static final String GEN_VERSION = "39";
public static final List<String> SUPPLEMENTAL_NAMES = Arrays.asList("characters", "coverageLevels", "dayPeriods", "genderList", "grammaticalFeatures",
"languageInfo",
"languageGroup", "likelySubtags", "metaZones", "numberingSystems", "ordinals", "pluralRanges", "plurals", "postalCodeData", "rgScope",
@@ -331,10 +329,8 @@
*/
public CLDRFile loadFromInputStream(String fileName, String localeName, InputStream fis, DraftStatus minimalDraftStatus) {
CLDRFile cldrFile = this;
- fis = new StripUTF8BOMInputStream(fis);
- InputStreamReader reader = new InputStreamReader(fis, Charset.forName("UTF-8"));
MyDeclHandler DEFAULT_DECLHANDLER = new MyDeclHandler(cldrFile, minimalDraftStatus);
- XMLFileReader.read(fileName, reader, -1, true, DEFAULT_DECLHANDLER);
+ XMLFileReader.read(fileName, fis, -1, true, DEFAULT_DECLHANDLER);
if (DEFAULT_DECLHANDLER.isSupplemental < 0) {
throw new IllegalArgumentException("root of file must be either ldml or supplementalData");
}
@@ -502,7 +498,6 @@
/*
* Second loop: call writeDifference for each xpath in orderedSet, with v = getStringValue(xpath).
*/
- boolean wroteAtLeastOnePath = false;
for (String xpath : orderedSet) {
if (skipTest != null
&& skipTest.test(xpath)) {
@@ -527,22 +522,7 @@
XPathParts current = XPathParts.getFrozenInstance(getFullXPath(xpath)).cloneAsThawed();
current.writeDifference(pw, currentFiltered, last, v, tempComments);
last = current;
- wroteAtLeastOnePath = true;
}
- /*
- * SKIP_FILE_IF_SKIP_ALL_PATHS may be set by OutputFileManager, maybe for annotations
- * but not for main. If so, return false without finishing writing; the caller may delete
- * the file. However, OutputFileManager might instead generate all files (without
- * SKIP_FILE_IF_SKIP_ALL_PATHS) and then use something like RemoveEmptyCLDR subsequently.
- * In the latter case, we might do away with SKIP_FILE_IF_SKIP_ALL_PATHS.
- * It might still be more efficient, though, to check here whether all paths were skipped,
- * and remember that later instead of checking again from scratch for "remove empty".
- * Reference: https://unicode-org.atlassian.net/browse/CLDR-12016
- */
- if (!wroteAtLeastOnePath && options.containsKey("SKIP_FILE_IF_SKIP_ALL_PATHS")) {
- return false;
- }
-
last.writeLast(pw);
String finalComment = dataSource.getXpathComments().getFinalComment();
diff --git a/tools/java/org/unicode/cldr/util/CLDRFileBuiltConstants.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRFileBuiltConstants.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/CLDRFileBuiltConstants.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRFileBuiltConstants.java
diff --git a/tools/java/org/unicode/cldr/util/CLDRInfo.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRInfo.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/CLDRInfo.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRInfo.java
diff --git a/tools/java/org/unicode/cldr/util/CLDRLocale.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRLocale.java
similarity index 99%
rename from tools/java/org/unicode/cldr/util/CLDRLocale.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRLocale.java
index 76ea9ef..0009baf 100644
--- a/tools/java/org/unicode/cldr/util/CLDRLocale.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRLocale.java
@@ -279,7 +279,7 @@
parts = new LocaleIDParser();
parts.set(str);
fullname = parts.toString();
- parentId = LocaleIDParser.getParent(str);
+ parentId = LocaleIDParser.getParent(str); // Note, this does now handle explicit parentLocales
if (DEBUG) System.out.println(str + " par = " + parentId);
}
basename = fullname;
diff --git a/tools/java/org/unicode/cldr/util/CLDRPaths.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRPaths.java
similarity index 94%
rename from tools/java/org/unicode/cldr/util/CLDRPaths.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRPaths.java
index 5ca0a85..a3f0b3a 100644
--- a/tools/java/org/unicode/cldr/util/CLDRPaths.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRPaths.java
@@ -28,7 +28,7 @@
public static final String SUBDIVISIONS_SUBDIR = "subdivisions/";
public static final String ANNOTATIONS_SUBDIR = "annotations/";
- /** default working directory for Eclipse is . = ${workspace_loc:cldr}, which is <CLDR>/tools/java/ */
+ /** default working directory for Eclipse is . = ${workspace_loc:cldr}, which is <CLDR>/tools/cldr-code/ */
// set the base directory with -Dcldrdata=<value>
// if the main is different, use -Dcldrmain=<value>
@@ -68,12 +68,7 @@
/** Maintained in SVN */
- public static final String SVN_DIRECTORY = CldrUtility.getPath(CldrUtility.getProperty("SVN_DIR", BASE_DIRECTORY + "/../"));
-
- public static final String AUX_DIRECTORY = CldrUtility.getPath(CldrUtility.getProperty("CLDR_TMP_DIR",
- CldrUtility.getPath(SVN_DIRECTORY, "cldr-aux/")));
-
- public static final String UCD_DATA_DIRECTORY = CldrUtility.getPath(SVN_DIRECTORY + "unicodetools/unicodetools/data/");
+ public static final String AUX_DIRECTORY = CldrUtility.getPath(CldrUtility.getProperty("CLDR_TMP_DIR", "cldr-aux/"));
/** Local files, not backed up on either Github or SVN **/
diff --git a/tools/java/org/unicode/cldr/util/CLDRTool.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRTool.java
similarity index 86%
rename from tools/java/org/unicode/cldr/util/CLDRTool.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRTool.java
index 8179a15..5c11edb 100644
--- a/tools/java/org/unicode/cldr/util/CLDRTool.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRTool.java
@@ -11,7 +11,8 @@
/**
* This annotation is used to mark CLDR Tools that are runnable by users.
* All CLDR Tools should be so annotated.
- * Running "java -jar cldr.jar" will list all annotated tools.
+ * Running "java -jar cldr-code.jar" will list all annotated tools.
+ * See: http://cldr.unicode.org/development/coding-cldr-tools/documenting-cldr-tools
*
* @author srl
*/
diff --git a/tools/java/org/unicode/cldr/util/CLDRTransforms.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRTransforms.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/CLDRTransforms.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRTransforms.java
diff --git a/tools/java/org/unicode/cldr/util/CLDRURLS.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRURLS.java
similarity index 86%
rename from tools/java/org/unicode/cldr/util/CLDRURLS.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRURLS.java
index 16addc1..bf02fa3 100644
--- a/tools/java/org/unicode/cldr/util/CLDRURLS.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRURLS.java
@@ -8,10 +8,28 @@
*
*/
public abstract class CLDRURLS {
+ /**
+ * Base URL for the CLDR repository
+ */
+ public static final String CLDR_REPO_BASE = "https://github.com/unicode-org/cldr";
+ public static final String DEFAULT_COMMIT_BASE = CLDR_REPO_BASE+"/commit/";
+ /**
+ * Hostname for the Survey Tool
+ */
public static final String DEFAULT_HOST = "st.unicode.org";
public static final String DEFAULT_PATH = "/cldr-apps";
- public static final String DEFAULT_BASE = "http://" + DEFAULT_HOST + DEFAULT_PATH;
+ public static final String DEFAULT_BASE = "https://" + DEFAULT_HOST + DEFAULT_PATH;
+ /**
+ * URL for filing a new ticket
+ */
public static final String CLDR_NEWTICKET_URL = "http://cldr.unicode.org/index/bug-reports#TOC-Filing-a-Ticket";
+ public static final String CLDR_REPO_ROOT = "https://github.com/unicode-org/cldr";
+ public static final String CLDR_HOMEPAGE = "http://cldr.unicode.org";
+ public static final String UNICODE_CONSORTIUM = "The Unicode Consortium";
+ /**
+ * Our license, in SPDX format
+ */
+ public static final String UNICODE_SPDX = "Unicode-DFS-2016";
/**
* Override this property if you want to change the absolute URL to the SurveyTool base from DEFAULT_BASE
*/
@@ -20,7 +38,7 @@
* Override this property if you want to change the relative URL to the SurveyTool base from DEFAULT_PATH (within SurveyTool only)
*/
public static final String CLDR_SURVEY_PATH = "CLDR_SURVEY_PATH";
-
+ public static final String TOOLSURL = "http://cldr.unicode.org/tools/";
/**
* "special" pages
* @author srl
@@ -251,7 +269,7 @@
public static String gitHashToLink(String hash) {
if(!isKnownHash(hash)) return "<span class=\"githashLink\">"+hash+"</span>"; // Not linkifiable
return "<a class=\"githashLink\" href=\"" +
- CldrUtility.getProperty("CLDR_COMMIT_BASE", "https://github.com/unicode-org/cldr/commit/")
+ CldrUtility.getProperty("CLDR_COMMIT_BASE", DEFAULT_COMMIT_BASE)
+ hash + "\">" + hash.substring(0, 8) + "</a>";
}
@@ -263,4 +281,13 @@
public static boolean isKnownHash(String hash) {
return !hash.equals(UNKNOWN_REVISION);
}
+
+ /**
+ * Convert a URL into an HTML link to itself
+ * @param url
+ * @return
+ */
+ public static final String toHTML(String url) {
+ return "<a href=\""+ url + "\">" + url + "</a>";
+ }
}
diff --git a/tools/java/org/unicode/cldr/util/CaseIterator.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CaseIterator.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/CaseIterator.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/CaseIterator.java
diff --git a/tools/java/org/unicode/cldr/util/ChainedMap.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/ChainedMap.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/ChainedMap.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/ChainedMap.java
diff --git a/tools/java/org/unicode/cldr/util/CharSource.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CharSource.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/CharSource.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/CharSource.java
diff --git a/tools/java/org/unicode/cldr/util/CharUtilities.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CharUtilities.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/CharUtilities.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/CharUtilities.java
diff --git a/tools/java/org/unicode/cldr/util/CharacterFallbacks.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CharacterFallbacks.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/CharacterFallbacks.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/CharacterFallbacks.java
diff --git a/tools/java/org/unicode/cldr/util/CldrUtility.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CldrUtility.java
similarity index 99%
rename from tools/java/org/unicode/cldr/util/CldrUtility.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/CldrUtility.java
index 554b472..a06bd2a 100644
--- a/tools/java/org/unicode/cldr/util/CldrUtility.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CldrUtility.java
@@ -17,7 +17,6 @@
import java.io.PrintWriter;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
-import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
@@ -68,7 +67,6 @@
public static final boolean DEBUG_MISSING_DIRECTORIES = false;
- public static final Charset UTF8 = Charset.forName("utf-8");
public static final boolean BETA = false;
public static final String LINE_SEPARATOR = "\n";
@@ -484,8 +482,9 @@
: (T) Collections.unmodifiableCollection(sourceCollection);
} else if (source instanceof Freezable) {
Freezable freezableSource = (Freezable) source;
- if (freezableSource.isFrozen()) return source;
- return (T) ((Freezable) (freezableSource.cloneAsThawed())).freeze();
+ return (T) freezableSource.freeze();
+// if (freezableSource.isFrozen()) return source;
+// return (T) ((Freezable) (freezableSource.cloneAsThawed())).freeze();
} else {
return source; // can't protect
}
diff --git a/tools/java/org/unicode/cldr/util/CollationMapMaker.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CollationMapMaker.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/CollationMapMaker.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/CollationMapMaker.java
diff --git a/tools/java/org/unicode/cldr/util/CollationStringByteConverter.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CollationStringByteConverter.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/CollationStringByteConverter.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/CollationStringByteConverter.java
diff --git a/tools/java/org/unicode/cldr/util/CompactStringByteConverter.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CompactStringByteConverter.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/CompactStringByteConverter.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/CompactStringByteConverter.java
diff --git a/tools/java/org/unicode/cldr/util/Containment.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Containment.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/Containment.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/Containment.java
diff --git a/tools/java/org/unicode/cldr/util/CoreCoverageInfo.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CoreCoverageInfo.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/CoreCoverageInfo.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/CoreCoverageInfo.java
diff --git a/tools/java/org/unicode/cldr/util/Counter.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Counter.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/Counter.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/Counter.java
diff --git a/tools/java/org/unicode/cldr/util/Counter2.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Counter2.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/Counter2.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/Counter2.java
diff --git a/tools/java/org/unicode/cldr/util/CoverageInfo.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CoverageInfo.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/CoverageInfo.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/CoverageInfo.java
diff --git a/tools/java/org/unicode/cldr/util/DateTimeCanonicalizer.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/DateTimeCanonicalizer.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/DateTimeCanonicalizer.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/DateTimeCanonicalizer.java
diff --git a/tools/java/org/unicode/cldr/util/DateTimeFormats.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/DateTimeFormats.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/DateTimeFormats.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/DateTimeFormats.java
diff --git a/tools/java/org/unicode/cldr/util/DayPeriodConverter.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/DayPeriodConverter.java
similarity index 99%
rename from tools/java/org/unicode/cldr/util/DayPeriodConverter.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/DayPeriodConverter.java
index e3ed903..21a60d0 100644
--- a/tools/java/org/unicode/cldr/util/DayPeriodConverter.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/DayPeriodConverter.java
@@ -423,7 +423,7 @@
"nl|middernacht|N/A",
"de|Mitternacht|N/A",
"da|midnat|N/A",
- "nb|midnatt|N/A",
+ "no|midnatt|N/A",
"sv|midnatt|N/A",
"is|miðnætti|hádegi",
"pt|meia-noite|meio-dia",
diff --git a/tools/java/org/unicode/cldr/util/DayPeriodData.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/DayPeriodData.java
similarity index 98%
rename from tools/java/org/unicode/cldr/util/DayPeriodData.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/DayPeriodData.java
index bb9fd7b..3e05acd 100644
--- a/tools/java/org/unicode/cldr/util/DayPeriodData.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/DayPeriodData.java
@@ -34,11 +34,11 @@
{ "da", "10", "MORNING2", "formiddag" },
{ "da", "12", "AFTERNOON1", "eftermiddag" },
{ "da", "18", "EVENING1", "aften" },
- { "nb", "0", "NIGHT1", "natt" },
- { "nb", "6", "MORNING1", "morgen" },
- { "nb", "10", "MORNING2", "formiddag" },
- { "nb", "12", "AFTERNOON1", "ettermiddag" },
- { "nb", "18", "EVENING1", "kveld" },
+ { "no", "0", "NIGHT1", "natt" },
+ { "no", "6", "MORNING1", "morgen" },
+ { "no", "10", "MORNING2", "formiddag" },
+ { "no", "12", "AFTERNOON1", "ettermiddag" },
+ { "no", "18", "EVENING1", "kveld" },
{ "sv", "0", "NIGHT1", "natt" },
{ "sv", "5", "MORNING1", "morgon" },
{ "sv", "10", "MORNING2", "förmiddag" },
diff --git a/tools/java/org/unicode/cldr/util/DayPeriodInfo.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/DayPeriodInfo.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/DayPeriodInfo.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/DayPeriodInfo.java
diff --git a/tools/java/org/unicode/cldr/util/DayPeriods.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/DayPeriods.java
similarity index 99%
rename from tools/java/org/unicode/cldr/util/DayPeriods.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/DayPeriods.java
index 3562479..b699cf2 100644
--- a/tools/java/org/unicode/cldr/util/DayPeriods.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/DayPeriods.java
@@ -210,7 +210,7 @@
.add("EVENING1", "aften", 18, 19, 20, 21, 22, 23)
.build();
- make("nb")
+ make("no")
.add("NIGHT1", "natt", 0, 1, 2, 3, 4, 5)
.add("MORNING1", "morgen", 6, 7, 8, 9)
.add("MORNING2", "formiddag", 10, 11)
diff --git a/tools/java/org/unicode/cldr/util/DayPeriodsCheck.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/DayPeriodsCheck.java
similarity index 98%
rename from tools/java/org/unicode/cldr/util/DayPeriodsCheck.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/DayPeriodsCheck.java
index 0bd025c..793979c 100644
--- a/tools/java/org/unicode/cldr/util/DayPeriodsCheck.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/DayPeriodsCheck.java
@@ -32,7 +32,7 @@
localesToCheck.clear();
switch (arg) {
case "groups":
- StandardCodes sc = CLDRConfig.getInstance().getStandardCodes();
+ StandardCodes sc = StandardCodes.make();
CLDRFile english = CLDRConfig.getInstance().getEnglish();
english.getName(LanguageGroup.uralic.iso);
diff --git a/tools/java/org/unicode/cldr/util/DayPeriodsOld.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/DayPeriodsOld.java
similarity index 99%
rename from tools/java/org/unicode/cldr/util/DayPeriodsOld.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/DayPeriodsOld.java
index 9c00ee4..b2ebee1 100644
--- a/tools/java/org/unicode/cldr/util/DayPeriodsOld.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/DayPeriodsOld.java
@@ -209,7 +209,7 @@
.add("NIGHT", "nat", 0, 1, 2, 3, 4)
.build();
- make("nb")
+ make("no")
.add("EARLY_MORNING", "morgen", 6, 7, 8, 9)
.add("MORNING", "formiddag", 10, 11)
.add("AFTERNOON", "ettermiddag", 12, 13, 14, 15, 16, 17)
diff --git a/tools/java/org/unicode/cldr/util/DelegatingIterator.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/DelegatingIterator.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/DelegatingIterator.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/DelegatingIterator.java
diff --git a/tools/java/org/unicode/cldr/util/Dictionary.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Dictionary.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/Dictionary.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/Dictionary.java
diff --git a/tools/java/org/unicode/cldr/util/DictionaryStringByteConverter.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/DictionaryStringByteConverter.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/DictionaryStringByteConverter.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/DictionaryStringByteConverter.java
diff --git a/tools/java/org/unicode/cldr/util/Differ.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Differ.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/Differ.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/Differ.java
diff --git a/tools/java/org/unicode/cldr/util/DiscreteComparator.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/DiscreteComparator.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/DiscreteComparator.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/DiscreteComparator.java
diff --git a/tools/java/org/unicode/cldr/util/DtdData.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/DtdData.java
similarity index 98%
rename from tools/java/org/unicode/cldr/util/DtdData.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/DtdData.java
index a0acd3f..a8a2ec9 100644
--- a/tools/java/org/unicode/cldr/util/DtdData.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/DtdData.java
@@ -1271,17 +1271,25 @@
public static final MapComparator<String> unitOrder = new MapComparator<String>().add(
"acceleration-g-force", "acceleration-meter-per-square-second",
+ "acceleration-meter-per-second-squared", // deprecated
"angle-revolution", "angle-radian", "angle-degree", "angle-arc-minute", "angle-arc-second",
"area-square-kilometer", "area-hectare", "area-square-meter", "area-square-centimeter",
"area-square-mile", "area-acre", "area-square-yard", "area-square-foot", "area-square-inch",
"area-dunam",
"concentr-karat",
- "concentr-milligram-per-deciliter", "concentr-millimole-per-liter",
+ "proportion-karat", // deprecated
+ "concentr-milligram-ofglucose-per-deciliter",
+ "concentr-milligram-per-deciliter",
+ "concentr-millimole-per-liter",
"concentr-item",
"concentr-portion",
- "concentr-permillion", "concentr-percent", "concentr-permille", "concentr-permyriad",
+ "concentr-permillion",
+ "concentr-part-per-million", // deprecated
+ "concentr-percent", "concentr-permille", "concentr-permyriad",
"concentr-mole",
+ "concentr-ofglucose",
"consumption-liter-per-kilometer", "consumption-liter-per-100-kilometer",
+ "consumption-liter-per-100kilometers", // deprecated
"consumption-mile-per-gallon", "consumption-mile-per-gallon-imperial",
"digital-petabyte", "digital-terabyte", "digital-terabit", "digital-gigabyte", "digital-gigabit",
"digital-megabyte", "digital-megabit", "digital-kilobyte", "digital-kilobit",
@@ -1331,8 +1339,13 @@
"power-gigawatt", "power-megawatt", "power-kilowatt", "power-watt", "power-milliwatt",
"power-horsepower",
"pressure-millimeter-ofhg",
- "pressure-ofhg",
- "pressure-pound-force-per-square-inch", "pressure-inch-ofhg", "pressure-bar", "pressure-millibar", "pressure-atmosphere",
+ "pressure-millimeter-of-mercury", // deprecated
+ "pressure-ofhg",
+ "pressure-pound-force-per-square-inch",
+ "pressure-pound-per-square-inch", // deprecated
+ "pressure-inch-ofhg",
+ "pressure-inch-hg", // deprecated
+ "pressure-bar", "pressure-millibar", "pressure-atmosphere",
"pressure-pascal",
"pressure-hectopascal",
"pressure-kilopascal",
@@ -1340,6 +1353,7 @@
"speed-kilometer-per-hour", "speed-meter-per-second", "speed-mile-per-hour", "speed-knot",
"temperature-generic", "temperature-celsius", "temperature-fahrenheit", "temperature-kelvin",
"torque-pound-force-foot",
+ "torque-pound-foot", // deprecated
"torque-newton-meter",
"volume-cubic-kilometer", "volume-cubic-meter", "volume-cubic-centimeter",
"volume-cubic-mile", "volume-cubic-yard", "volume-cubic-foot", "volume-cubic-inch",
diff --git a/tools/java/org/unicode/cldr/util/DtdDataCheck.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/DtdDataCheck.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/DtdDataCheck.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/DtdDataCheck.java
diff --git a/tools/java/org/unicode/cldr/util/DtdPathIterator.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/DtdPathIterator.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/DtdPathIterator.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/DtdPathIterator.java
diff --git a/tools/java/org/unicode/cldr/util/DtdType.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/DtdType.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/DtdType.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/DtdType.java
diff --git a/tools/java/org/unicode/cldr/util/DualWriter.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/DualWriter.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/DualWriter.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/DualWriter.java
diff --git a/tools/java/org/unicode/cldr/util/ElementAttributeInfo.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/ElementAttributeInfo.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/ElementAttributeInfo.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/ElementAttributeInfo.java
diff --git a/tools/java/org/unicode/cldr/util/Emoji.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Emoji.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/Emoji.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/Emoji.java
diff --git a/tools/java/org/unicode/cldr/util/EmojiConstants.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/EmojiConstants.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/EmojiConstants.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/EmojiConstants.java
diff --git a/tools/cldr-code/src/main/java/org/unicode/cldr/util/EnumComparator.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/EnumComparator.java
new file mode 100644
index 0000000..358431d
--- /dev/null
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/EnumComparator.java
@@ -0,0 +1,20 @@
+package org.unicode.cldr.util;
+
+import java.util.Comparator;
+
+public class EnumComparator<E extends Enum<E>> implements Comparator<String> {
+ private Class<E> enumClass;
+
+ public static <E extends Enum<E>> EnumComparator<E> create(Class<E> enumClass) {
+ return new EnumComparator<>(enumClass);
+ }
+ private EnumComparator(Class<E> enumClass) {
+ this.enumClass = enumClass;
+ }
+ @Override
+ public int compare(String o1, String o2) {
+ E e1 = Enum.valueOf(enumClass, o1);
+ E e2 = Enum.valueOf(enumClass, o2);
+ return e1.compareTo(e2);
+ }
+}
\ No newline at end of file
diff --git a/tools/java/org/unicode/cldr/util/EnumNames.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/EnumNames.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/EnumNames.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/EnumNames.java
diff --git a/tools/java/org/unicode/cldr/util/EscapingUtilities.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/EscapingUtilities.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/EscapingUtilities.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/EscapingUtilities.java
diff --git a/tools/java/org/unicode/cldr/util/ExtractCollationRules.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/ExtractCollationRules.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/ExtractCollationRules.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/ExtractCollationRules.java
diff --git a/tools/java/org/unicode/cldr/util/Factory.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Factory.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/Factory.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/Factory.java
diff --git a/tools/java/org/unicode/cldr/util/FileCopier.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/FileCopier.java
similarity index 98%
rename from tools/java/org/unicode/cldr/util/FileCopier.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/FileCopier.java
index f9a5b6d..903d68a 100644
--- a/tools/java/org/unicode/cldr/util/FileCopier.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/FileCopier.java
@@ -10,6 +10,7 @@
import java.io.Reader;
import java.io.Writer;
import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
import java.nio.file.Paths;
import java.util.Map;
@@ -130,7 +131,7 @@
* @throws IOException
*/
public static void copy(Class<?> cls, String sourceFile, Writer out) throws IOException {
- copy(new InputStreamReader(cls.getResourceAsStream(sourceFile), Charset.forName("UTF-8")), out);
+ copy(new InputStreamReader(cls.getResourceAsStream(sourceFile), StandardCharsets.UTF_8), out);
}
/**
diff --git a/tools/java/org/unicode/cldr/util/FileProcessor.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/FileProcessor.java
similarity index 91%
rename from tools/java/org/unicode/cldr/util/FileProcessor.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/FileProcessor.java
index 43fb6d7..c689273 100644
--- a/tools/java/org/unicode/cldr/util/FileProcessor.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/FileProcessor.java
@@ -5,10 +5,12 @@
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
import com.ibm.icu.util.ICUUncheckedIOException;
public class FileProcessor {
+ private final static boolean DEBUG = false;
private int lineCount;
protected boolean doHash = true;
@@ -38,7 +40,7 @@
public FileProcessor process(Class<?> classLocation, String fileName) {
try {
- System.err.println("# Reading config file " + fileName);
+ if (DEBUG) System.err.println("# FileProcessor reading " + classLocation.getPackage().getName() + "/"+ fileName);
BufferedReader in = FileReaders.openFile(classLocation, fileName);
return process(in, fileName);
} catch (Exception e) {
@@ -50,7 +52,7 @@
public FileProcessor process(String fileName) {
try {
FileInputStream fileStream = new FileInputStream(fileName);
- InputStreamReader reader = new InputStreamReader(fileStream, CldrUtility.UTF8);
+ InputStreamReader reader = new InputStreamReader(fileStream, StandardCharsets.UTF_8);
BufferedReader bufferedReader = new BufferedReader(reader, 1024 * 64);
return process(bufferedReader, fileName);
} catch (Exception e) {
@@ -61,7 +63,7 @@
public FileProcessor process(String directory, String fileName) {
try {
FileInputStream fileStream = new FileInputStream(directory + File.separator + fileName);
- InputStreamReader reader = new InputStreamReader(fileStream, CldrUtility.UTF8);
+ InputStreamReader reader = new InputStreamReader(fileStream, StandardCharsets.UTF_8);
BufferedReader bufferedReader = new BufferedReader(reader, 1024 * 64);
return process(bufferedReader, fileName);
} catch (Exception e) {
diff --git a/tools/java/org/unicode/cldr/util/FileReaders.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/FileReaders.java
similarity index 91%
rename from tools/java/org/unicode/cldr/util/FileReaders.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/FileReaders.java
index 198eae2..d31cfbf 100644
--- a/tools/java/org/unicode/cldr/util/FileReaders.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/FileReaders.java
@@ -10,6 +10,7 @@
import java.io.UncheckedIOException;
import java.net.URL;
import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
import org.unicode.cldr.util.With.SimpleIterator;
@@ -19,7 +20,7 @@
// return handler.process(classLocation, fileName);
// }
public static BufferedReader openFile(Class<?> class1, String file) {
- return openFile(class1, file, CldrUtility.UTF8);
+ return openFile(class1, file, StandardCharsets.UTF_8);
}
public static BufferedReader openFile(Class<?> class1, String file, Charset charset) {
@@ -38,7 +39,7 @@
final InputStream resourceAsStream = class1.getResourceAsStream(file);
// String foo = class1.getResource(".").toString();
if (charset == null) {
- charset = CldrUtility.UTF8;
+ charset = StandardCharsets.UTF_8;
}
InputStreamReader reader = new InputStreamReader(resourceAsStream, charset);
BufferedReader bufferedReader = new BufferedReader(reader, 1024 * 64);
@@ -67,7 +68,7 @@
}
public static BufferedReader openFile(String directory, String file) {
- return openFile(directory, file, CldrUtility.UTF8);
+ return openFile(directory, file, StandardCharsets.UTF_8);
}
public static String getRelativeFileName(Class<?> class1, String filename) {
@@ -77,6 +78,8 @@
return resourceString.substring(5);
} else if (resourceString.startsWith("jar:file:")) {
return resourceString.substring(9);
+ } else if (resourceString.startsWith("wsjar:file:")) {
+ return resourceString.substring(11);
} else {
throw new IllegalArgumentException("File not found: " + resourceString);
}
diff --git a/tools/java/org/unicode/cldr/util/FindDTDOrder.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/FindDTDOrder.java
similarity index 99%
rename from tools/java/org/unicode/cldr/util/FindDTDOrder.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/FindDTDOrder.java
index 5497aa8..337bc5e 100644
--- a/tools/java/org/unicode/cldr/util/FindDTDOrder.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/FindDTDOrder.java
@@ -407,7 +407,7 @@
writeNewSupplemental(CLDRPaths.SUPPLEMENTAL_DIRECTORY, "supplementalMetadata.xml",
"<attributeOrder>", "</attributeOrder>",
"<elementOrder>", "</elementOrder>", "\t\t\t", CldrUtility.LINE_SEPARATOR + "\t\t");
- writeNewSupplemental(CLDRPaths.BASE_DIRECTORY + "/tools/java/org/unicode/cldr/util/",
+ writeNewSupplemental(CLDRPaths.BASE_DIRECTORY + "/tools/cldr-code/src/main/java/org/unicode/cldr/util/",
"CLDRFile.java",
"// START MECHANICALLY attributeOrdering GENERATED BY FindDTDOrder",
"// END MECHANICALLY attributeOrdering GENERATED BY FindDTDOrder",
diff --git a/tools/java/org/unicode/cldr/util/GrammarDerivation.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/GrammarDerivation.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/GrammarDerivation.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/GrammarDerivation.java
diff --git a/tools/java/org/unicode/cldr/util/GrammarInfo.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/GrammarInfo.java
similarity index 88%
rename from tools/java/org/unicode/cldr/util/GrammarInfo.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/GrammarInfo.java
index 0c2172d..3a0c7e1 100644
--- a/tools/java/org/unicode/cldr/util/GrammarInfo.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/GrammarInfo.java
@@ -3,6 +3,7 @@
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
@@ -32,22 +33,41 @@
public enum GrammaticalTarget {nominal}
+ /**
+ * The ordering of these values is intended to put the default values first, and to group values together that tend to have similar forms.
+ */
+ public enum CaseValues {nominative, vocative, accusative, oblique, genitive, dative, locative, instrumental, prepositional,
+ ablative, adessive, allative, causal, delative, elative, essive, illative, inessive, sublative, superessive, terminative, translative;
+ public static Comparator<String> COMPARATOR = EnumComparator.create(CaseValues.class);
+ }
+ public enum GenderValues {neuter, masculine, inanimate, animate, common, personal, feminine;
+ public static Comparator<String> COMPARATOR = EnumComparator.create(GenderValues.class);
+ }
+ public enum DefinitenessValues {indefinite, definite, construct;
+ public static Comparator<String> COMPARATOR = EnumComparator.create(DefinitenessValues.class);
+ }
+ public enum PluralValues {zero, one, two, few, many, other;
+ public static Comparator<String> COMPARATOR = EnumComparator.create(PluralValues.class);
+ }
+
public enum GrammaticalFeature {
- grammaticalNumber("plural", "Ⓟ", "other"),
- grammaticalCase("case", "Ⓒ", "nominative"),
- grammaticalDefiniteness("definiteness", "Ⓓ", "indefinite"),
- grammaticalGender("gender", "Ⓖ", "neuter");
+ grammaticalNumber("plural", "Ⓟ", "other", PluralValues.COMPARATOR),
+ grammaticalCase("case", "Ⓒ", "nominative", CaseValues.COMPARATOR),
+ grammaticalDefiniteness("definiteness", "Ⓓ", "indefinite", DefinitenessValues.COMPARATOR),
+ grammaticalGender("gender", "Ⓖ", "neuter", GenderValues.COMPARATOR);
private final String shortName;
private final String symbol;
private final String defaultValue;
+ private final Comparator<String> comparator;
public static final Pattern PATH_HAS_FEATURE = Pattern.compile("\\[@(count|case|gender|definiteness)=");
- GrammaticalFeature(String shortName, String symbol, String defaultValue) {
+ GrammaticalFeature(String shortName, String symbol, String defaultValue, Comparator<String> comparator) {
this.shortName = shortName;
this.symbol = symbol;
this.defaultValue = defaultValue;
+ this.comparator = comparator;
}
public String getShortName() {
return shortName;
@@ -64,13 +84,16 @@
}
static final Map<String, GrammaticalFeature> shortNameToEnum =
ImmutableMap.copyOf(Arrays.asList(GrammaticalFeature.values())
- .stream()
- .collect(Collectors.toMap(e -> e.shortName, e -> e)));
+ .stream()
+ .collect(Collectors.toMap(e -> e.shortName, e -> e)));
public static GrammaticalFeature fromName(String name) {
GrammaticalFeature result = shortNameToEnum.get(name);
return result != null ? result : valueOf(name);
}
+ public Comparator getValueComparator() {
+ return comparator;
+ }
}
public enum GrammaticalScope {general, units}
@@ -227,6 +250,19 @@
: result;
}
+ public Map<GrammaticalScope, Set<String>> get(GrammaticalTarget target, GrammaticalFeature feature) {
+ Map<GrammaticalFeature, Map<GrammaticalScope,Set<String>>> featureToUsageToValues = targetToFeatureToUsageToValues.get(target);
+ if (featureToUsageToValues == null) {
+ return Collections.emptyMap();
+ }
+ Map<GrammaticalScope,Set<String>> usageToValues = featureToUsageToValues.get(feature);
+ if (usageToValues == null) {
+ return Collections.emptyMap();
+ }
+ return usageToValues;
+ }
+
+
public boolean hasInfo(GrammaticalTarget target) {
return targetToFeatureToUsageToValues.containsKey(target);
}
@@ -277,7 +313,7 @@
/**
* TODO: change this to be data-file driven
*/
- public static final Set<String> SEED_LOCALES = ImmutableSet.of("pl", "ru", "da", "de", "nb", "sv", "hi", "id", "es", "fr", "it", "nl", "pt", "en", "ja", "th", "vi", "zh", "zh_TW", "ko", "yue");
+ public static final Set<String> SEED_LOCALES = ImmutableSet.of("pl", "ru", "da", "de", "no", "sv", "hi", "id", "es", "fr", "it", "nl", "pt", "en", "ja", "th", "vi", "zh", "zh_TW", "ko", "yue");
/**
* TODO: change this to be data-file driven
diff --git a/tools/java/org/unicode/cldr/util/ICUServiceBuilder.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/ICUServiceBuilder.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/ICUServiceBuilder.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/ICUServiceBuilder.java
diff --git a/tools/java/org/unicode/cldr/util/InputStreamFactory.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/InputStreamFactory.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/InputStreamFactory.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/InputStreamFactory.java
diff --git a/tools/java/org/unicode/cldr/util/IntMap.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/IntMap.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/IntMap.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/IntMap.java
diff --git a/tools/java/org/unicode/cldr/util/InternalCldrException.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/InternalCldrException.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/InternalCldrException.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/InternalCldrException.java
diff --git a/tools/java/org/unicode/cldr/util/Iso639Data.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Iso639Data.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/Iso639Data.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/Iso639Data.java
diff --git a/tools/java/org/unicode/cldr/util/IsoCurrencyParser.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/IsoCurrencyParser.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/IsoCurrencyParser.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/IsoCurrencyParser.java
diff --git a/tools/java/org/unicode/cldr/util/IsoRegionData.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/IsoRegionData.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/IsoRegionData.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/IsoRegionData.java
diff --git a/tools/java/org/unicode/cldr/util/LDMLUtilities.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/LDMLUtilities.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/LDMLUtilities.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/LDMLUtilities.java
diff --git a/tools/java/org/unicode/cldr/util/LanguageGroup.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/LanguageGroup.java
similarity index 98%
rename from tools/java/org/unicode/cldr/util/LanguageGroup.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/LanguageGroup.java
index ad00cec..0e70cbc 100644
--- a/tools/java/org/unicode/cldr/util/LanguageGroup.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/LanguageGroup.java
@@ -47,7 +47,7 @@
LANGUAGE_GROUP = Collections.unmodifiableMap(temp);
add(temp, root, "root");
add(temp, germanic, "en", "fy", "nl", "af", "de", "gsw", "wae", "ksh", "lb", "sv", "da",
- "nb", "nn", "fo", "is", "yi", "nds");
+ "no", "nb", "nn", "fo", "is", "yi", "nds");
add(temp, celtic, "ga", "gd", "cy", "gv", "kw", "br");
add(temp, romance, "fr", "pt", "gl", "es", "ca", "ast", "it", "rm", "ro", "fur", "an",
"co", "oc", "sc", "scn", "wa");
diff --git a/tools/java/org/unicode/cldr/util/LanguageInfo.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/LanguageInfo.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/LanguageInfo.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/LanguageInfo.java
diff --git a/tools/java/org/unicode/cldr/util/LanguageTagCanonicalizer.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/LanguageTagCanonicalizer.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/LanguageTagCanonicalizer.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/LanguageTagCanonicalizer.java
diff --git a/tools/java/org/unicode/cldr/util/LanguageTagParser.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/LanguageTagParser.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/LanguageTagParser.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/LanguageTagParser.java
diff --git a/tools/java/org/unicode/cldr/util/LenientDateParser.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/LenientDateParser.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/LenientDateParser.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/LenientDateParser.java
diff --git a/tools/java/org/unicode/cldr/util/Level.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Level.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/Level.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/Level.java
diff --git a/tools/java/org/unicode/cldr/util/LocaleIDParser.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/LocaleIDParser.java
similarity index 96%
rename from tools/java/org/unicode/cldr/util/LocaleIDParser.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/LocaleIDParser.java
index 564284f..03b2ddd 100644
--- a/tools/java/org/unicode/cldr/util/LocaleIDParser.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/LocaleIDParser.java
@@ -119,13 +119,13 @@
* Reference: https://unicode-org.atlassian.net/browse/CLDR-13133
*/
public static String getParent(String localeName) {
+ SupplementalDataInfo sdi = SupplementalDataInfo.getInstance();
+ String explicitParent = sdi.getExplicitParentLocale(localeName);
+ if (explicitParent != null) {
+ return explicitParent;
+ }
int pos = localeName.lastIndexOf('_');
if (pos >= 0) {
- SupplementalDataInfo sdi = SupplementalDataInfo.getInstance();
- String explicitParent = sdi.getExplicitParentLocale(localeName);
- if (explicitParent != null) {
- return explicitParent;
- }
String truncated = localeName.substring(0, pos);
// if the final item is a script, and it is not the default content, then go directly to root
int pos2 = getScriptPosition(localeName);
diff --git a/tools/java/org/unicode/cldr/util/LocaleStringProvider.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/LocaleStringProvider.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/LocaleStringProvider.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/LocaleStringProvider.java
diff --git a/tools/java/org/unicode/cldr/util/LockSupportMap.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/LockSupportMap.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/LockSupportMap.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/LockSupportMap.java
diff --git a/tools/java/org/unicode/cldr/util/Log.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Log.java
similarity index 95%
rename from tools/java/org/unicode/cldr/util/Log.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/Log.java
index 31d1b15..21a173b 100644
--- a/tools/java/org/unicode/cldr/util/Log.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Log.java
@@ -8,6 +8,7 @@
package org.unicode.cldr.util;
+import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Locale;
@@ -56,12 +57,12 @@
}
public static void setLog(String file) throws IOException {
- log = FileUtilities.openUTF8Writer(null, file);
+ log = FileUtilities.openUTF8Writer((File)null, file);
log.print('\uFEFF');
}
public static void setLogNoBOM(String file) throws IOException {
- log = FileUtilities.openUTF8Writer(null, file);
+ log = FileUtilities.openUTF8Writer((File)null, file);
}
public static void setLogNoBOM(String dir, String file) throws IOException {
diff --git a/tools/java/org/unicode/cldr/util/LogicalGrouping.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/LogicalGrouping.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/LogicalGrouping.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/LogicalGrouping.java
diff --git a/tools/java/org/unicode/cldr/util/LruMap.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/LruMap.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/LruMap.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/LruMap.java
diff --git a/tools/java/org/unicode/cldr/util/LsrvCanonicalizer.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/LsrvCanonicalizer.java
similarity index 99%
rename from tools/java/org/unicode/cldr/util/LsrvCanonicalizer.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/LsrvCanonicalizer.java
index aa97c15..43820fa 100644
--- a/tools/java/org/unicode/cldr/util/LsrvCanonicalizer.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/LsrvCanonicalizer.java
@@ -454,8 +454,8 @@
{"en_US_heploc", "en_US_alalc97"},
{"en_US_aaland", "en_US"},
{"en_aaland", "en_AX"},
- {"no_nynorsk_bokmal", "nb"},
- {"no_bokmal_nynorsk", "nb"},
+ {"no_nynorsk_bokmal", "no"},
+ {"no_bokmal_nynorsk", "no"},
{"zh_guoyu_hakka_xiang", "hak"},
{"zh_hakka_xiang", "hak"},
};
diff --git a/tools/java/org/unicode/cldr/util/MapComparator.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/MapComparator.java
similarity index 92%
rename from tools/java/org/unicode/cldr/util/MapComparator.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/MapComparator.java
index 0095413..6e7a176 100644
--- a/tools/java/org/unicode/cldr/util/MapComparator.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/MapComparator.java
@@ -24,10 +24,19 @@
import com.ibm.icu.util.ULocale;
public class MapComparator<K> implements Comparator<K>, Freezable<MapComparator<K>> {
- private RuleBasedCollator uca = (RuleBasedCollator) Collator.getInstance(ULocale.ROOT);
- {
- uca.setNumericCollation(true);
+ private static final class CollatorHelper {
+ public static final Collator UCA = getUCA();
+ /**
+ * This does not change, so we can create one and freeze it.
+ * @return
+ */
+ private static Collator getUCA() {
+ final RuleBasedCollator newUca = (RuleBasedCollator) Collator.getInstance(ULocale.ROOT);
+ newUca.setNumericCollation(true);
+ return newUca.freeze();
+ }
}
+ // initialize this once
private Map<K, Integer> ordering = new TreeMap<>(); // maps from name to rank
private List<K> rankToName = new ArrayList<>();
private boolean errorOnMissing = true;
@@ -178,7 +187,7 @@
if (a instanceof CharSequence) {
if (b instanceof CharSequence) {
- int result = uca.compare(a.toString(), b.toString());
+ int result = CollatorHelper.UCA.compare(a.toString(), b.toString());
if (result != 0) {
return result;
}
diff --git a/tools/java/org/unicode/cldr/util/MatchValue.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/MatchValue.java
similarity index 96%
rename from tools/java/org/unicode/cldr/util/MatchValue.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/MatchValue.java
index 758524b..e62e206 100644
--- a/tools/java/org/unicode/cldr/util/MatchValue.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/MatchValue.java
@@ -4,6 +4,7 @@
import java.util.Date;
import java.util.EnumSet;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
@@ -153,6 +154,13 @@
"Loma", "Maya", "Moon", "Nkgb", "Phlv", "Roro", "Sara", "Syre", "Syrj", "Syrn", "Teng", "Visp", "Wole");
static final Set<String> VARIANT_HACK = ImmutableSet.of("POSIX", "REVISED", "SAAHO");
+ /**
+ * Returns true if ALL items match the predicate
+ * @param <T>
+ * @param predicate predicate to check
+ * @param items items to be tested with the predicate
+ * @return
+ */
public static <T> boolean and(Predicate<T> predicate, Iterable<T> items) {
for (T item : items) {
if (!predicate.is(item)) {
@@ -162,6 +170,13 @@
return true;
}
+ /**
+ * Returns true if ANY items match the predicate
+ * @param <T>
+ * @param predicate predicate to check
+ * @param items items to be tested with the predicate
+ * @return
+ */
public static <T> boolean or(Predicate<T> predicate, Iterable<T> items) {
for (T item : items) {
if (predicate.is(item)) {
@@ -616,7 +631,11 @@
@Override
public boolean is(String items) {
- return and(subtest,SPACE_SPLITTER.split(items));
+ List<String> splitItems = SPACE_SPLITTER.splitToList(items);
+ if( (new HashSet<String>(splitItems)).size() != splitItems.size() ) {
+ throw new IllegalArgumentException("Set contains duplicates: " + items);
+ }
+ return and(subtest, splitItems);
}
@Override
@@ -640,7 +659,6 @@
}
public static OrMatchValue of(String key) {
- IntFunction<MatchValue[]> generator = null;
return new OrMatchValue(BARS_SPLITTER.splitToList(key)
.stream()
.map(k -> MatchValue.of(k))
diff --git a/tools/java/org/unicode/cldr/util/MergeLists.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/MergeLists.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/MergeLists.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/MergeLists.java
diff --git a/tools/java/org/unicode/cldr/util/MultiComparator.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/MultiComparator.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/MultiComparator.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/MultiComparator.java
diff --git a/tools/java/org/unicode/cldr/util/NodeListIterator.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/NodeListIterator.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/NodeListIterator.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/NodeListIterator.java
diff --git a/tools/java/org/unicode/cldr/util/Organization.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Organization.java
similarity index 92%
rename from tools/java/org/unicode/cldr/util/Organization.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/Organization.java
index 0ba6fb8..56a70d4 100644
--- a/tools/java/org/unicode/cldr/util/Organization.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Organization.java
@@ -35,7 +35,7 @@
kunsill_malti("Il-Kunsill Nazzjonali tal-Ilsien Malti", "National Council for the Maltese Language", "malta", "malti"),
lakota_lc("Lakota LC"),
lao_dpt("Lao Posts/Telecom??"),
- longnow("The Long Now Foundation", "Long Now","PanLex"),
+ longnow("The Long Now Foundation", "Long Now", "PanLex", "Utilka Foundation"),
microsoft("Microsoft"),
mozilla("Mozilla"),
netflix("Netflix"),
@@ -45,6 +45,7 @@
pakistan("Pakistan"),
rodakych("Rodakych", "Nigerian Pidgin"),
rumantscha("Lia Rumantscha"),
+ sardware("Sardware", "Sardware"),
sil("SIL", "SIL International"),
srilanka("Sri Lanka ICTA", "Sri Lanka"),
surveytool("Survey Tool"),
@@ -58,6 +59,9 @@
private final String[] names;
public static Organization fromString(String name) {
+ if(name == null) {
+ throw new NullPointerException("Organization.fromString(null) called");
+ }
name = name.toLowerCase().replace('-', '_').replace('.', '_');
Organization org = OrganizationNameMap.get(name);
return org;
diff --git a/tools/java/org/unicode/cldr/util/Pair.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Pair.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/Pair.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/Pair.java
diff --git a/tools/java/org/unicode/cldr/util/PathChecker.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/PathChecker.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/PathChecker.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/PathChecker.java
diff --git a/tools/java/org/unicode/cldr/util/PathDescription.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/PathDescription.java
similarity index 97%
rename from tools/java/org/unicode/cldr/util/PathDescription.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/PathDescription.java
index 34bb50d..cb210db 100644
--- a/tools/java/org/unicode/cldr/util/PathDescription.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/PathDescription.java
@@ -27,7 +27,7 @@
public static final Set<String> EXTRA_LANGUAGES = new TreeSet<>(
Arrays
.asList(
- "ach|af|ak|ak|am|ar|az|be|bem|bg|bh|bn|br|bs|ca|chr|ckb|co|crs|cs|cy|da|de|de_AT|de_CH|ee|el|en|en_AU|en_CA|en_GB|en_US|eo|es|es_419|es_ES|et|eu|fa|fi|fil|fo|fr|fr_CA|fr_CH|fy|ga|gaa|gd|gl|gn|gsw|gu|ha|haw|he|hi|hr|ht|hu|hy|ia|id|ig|io|is|it|ja|jv|ka|kg|kk|km|kn|ko|kri|ku|ky|la|lg|ln|lo|loz|lt|lua|lv|mfe|mg|mi|mk|ml|mn|mr|ms|mt|my|nb|ne|nl|nl_BE|nn|nso|ny|nyn|oc|om|or|pa|pcm|pl|ps|pt|pt_BR|pt_PT|qu|rm|rn|ro|ro|ro_MD|ru|rw|sd|si|sk|sl|sn|so|sq|sr|sr_Latn|sr_ME|st|su|sv|sw|ta|te|tg|th|ti|tk|tlh|tn|to|tr|tt|tum|ug|uk|und|ur|uz|vi|wo|xh|yi|yo|zh|zh_Hans|zh_Hant|zh_HK|zu|zxx"
+ "ach|af|ak|ak|am|ar|az|be|bem|bg|bh|bn|br|bs|ca|chr|ckb|co|crs|cs|cy|da|de|de_AT|de_CH|ee|el|en|en_AU|en_CA|en_GB|en_US|eo|es|es_419|es_ES|et|eu|fa|fi|fil|fo|fr|fr_CA|fr_CH|fy|ga|gaa|gd|gl|gn|gsw|gu|ha|haw|he|hi|hr|ht|hu|hy|ia|id|ig|io|is|it|ja|jv|ka|kg|kk|km|kn|ko|kri|ku|ky|la|lg|ln|lo|loz|lt|lua|lv|mfe|mg|mi|mk|ml|mn|mr|ms|mt|my|nb|ne|nl|nl_BE|nn|no|nso|ny|nyn|oc|om|or|pa|pcm|pl|ps|pt|pt_BR|pt_PT|qu|rm|rn|ro|ro|ro_MD|ru|rw|sd|si|sk|sl|sn|so|sq|sr|sr_Latn|sr_ME|st|su|sv|sw|ta|te|tg|th|ti|tk|tlh|tn|to|tr|tt|tum|ug|uk|und|ur|uz|vi|wo|xh|yi|yo|zh|zh_Hans|zh_Hant|zh_HK|zu|zxx"
.split("|")));
private static final Pattern METAZONE_PATTERN = Pattern
diff --git a/tools/java/org/unicode/cldr/util/PathHeader.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/PathHeader.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/PathHeader.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/PathHeader.java
diff --git a/tools/java/org/unicode/cldr/util/PathStarrer.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/PathStarrer.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/PathStarrer.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/PathStarrer.java
diff --git a/tools/java/org/unicode/cldr/util/PathUtilities.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/PathUtilities.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/PathUtilities.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/PathUtilities.java
diff --git a/tools/java/org/unicode/cldr/util/PatternCache.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/PatternCache.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/PatternCache.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/PatternCache.java
diff --git a/tools/java/org/unicode/cldr/util/PatternPlaceholders.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/PatternPlaceholders.java
similarity index 92%
rename from tools/java/org/unicode/cldr/util/PatternPlaceholders.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/PatternPlaceholders.java
index 186673b..e388dea 100644
--- a/tools/java/org/unicode/cldr/util/PatternPlaceholders.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/PatternPlaceholders.java
@@ -127,21 +127,20 @@
}
- private RegexLookup<PlaceholderData> patternPlaceholders;
-
- private static PatternPlaceholders SINGLETON;
+ private final RegexLookup<PlaceholderData> patternPlaceholders;
private PatternPlaceholders() {
+ patternPlaceholders = RegexLookup.of(new MapTransform())
+ .setValueMerger(new MyMerger())
+ .loadFromFile(PatternPlaceholders.class, "data/Placeholders.txt");
+ }
+
+ static final private class PatternPlaceholdersHelper {
+ static final PatternPlaceholders SINGLETON = new PatternPlaceholders();
}
public static PatternPlaceholders getInstance() {
- if (SINGLETON == null) {
- SINGLETON = new PatternPlaceholders();
- SINGLETON.patternPlaceholders = RegexLookup.of(new MapTransform())
- .setValueMerger(new MyMerger())
- .loadFromFile(PatternPlaceholders.class, "data/Placeholders.txt");
- }
- return SINGLETON;
+ return PatternPlaceholdersHelper.SINGLETON;
}
public Map<String, PlaceholderInfo> get(String path) {
diff --git a/tools/java/org/unicode/cldr/util/Pick.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Pick.java
similarity index 90%
rename from tools/java/org/unicode/cldr/util/Pick.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/Pick.java
index 6c80fd8..79b5a79 100644
--- a/tools/java/org/unicode/cldr/util/Pick.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Pick.java
@@ -12,6 +12,8 @@
import java.util.Random;
import java.util.Set;
+import com.google.common.collect.LinkedHashMultiset;
+import com.google.common.collect.Multiset;
import com.ibm.icu.text.UTF16;
import com.ibm.icu.text.UnicodeSet;
@@ -21,9 +23,13 @@
// for using to get strings
static class Target {
+
+ static int MAX_COUNT = 5;
+
private Pick pick;
private Random random;
private Quoter quoter;
+ private Multiset<Pick> stack = LinkedHashMultiset.create();
public static Target make(Pick pick, Random random, Quoter quoter) {
Target result = new Target();
@@ -35,8 +41,18 @@
public String next() {
quoter.clear();
- pick.addTo(this);
- return get();
+ stack.clear();
+ while (true) {
+ try {
+ pick.addTo(this);
+ return get();
+ } catch (DepthExceededException e) {
+ for (Pick pick : e.target.stack.elementSet()) {
+ System.out.println(pick.name + ": " + e.target.stack.count(pick));
+ }
+ int debug = 0;
+ }
+ }
}
public String get() {
@@ -55,11 +71,17 @@
return quoter.length();
}*/
private Target append(int codepoint) {
+ if (codepoint == '-') {
+ int debug = 0;
+ }
quoter.append(codepoint);
return this;
}
private Target append(String s) {
+ if (s.contains("-")) {
+ int debug = 0;
+ }
quoter.append(s);
return this;
}
@@ -68,6 +90,18 @@
private double nextDouble() {
return random.nextDouble();
}
+
+ public void exitStack(Pick pick) {
+ stack.remove(pick);
+ }
+
+ public void enterStack(Pick pick) {
+ int count = stack.count(pick);
+ if (count > MAX_COUNT) {
+ throw new DepthExceededException(this, pick);
+ }
+ stack.add(pick);
+ }
}
// for Building
@@ -120,7 +154,7 @@
static public Pick codePoint(String source) {
return new CodePoint(new UnicodeSet(source));
}
- */
+ */
static public Pick repeat(int minCount, int maxCount, int[] itemWeights, Pick item) {
return new Repeat(minCount, maxCount, itemWeights, item);
@@ -140,7 +174,7 @@
static public Pick string(int minLength, int maxLength, Pick item) {
return new Morph(item, minLength, maxLength);
}
- */
+ */
public abstract String getInternal(int depth, Set alreadySeen);
// Internals
@@ -151,6 +185,17 @@
public abstract boolean match(String input, Position p);
+ static class DepthExceededException extends RuntimeException {
+ private static final long serialVersionUID = -2478735802169169979L;
+ private final Target target;
+ private final Pick pick;
+
+ public DepthExceededException(Target target, Pick pick) {
+ this.target = target;
+ this.pick = pick;
+ }
+ }
+
public static class Sequence extends ListPick {
public Sequence and2(Pick item) {
addInternal(new Pick[] { item }); // we don't care about perf
@@ -236,7 +281,30 @@
@Override
protected void addTo(Target target) {
- items[weightedIndex.toIndex(target.nextDouble())].addTo(target);
+ final int index = weightedIndex.toIndex(target.nextDouble());
+ int last = index - 1;
+ if (last < weightedIndex.minCount) {
+ last -= weightedIndex.minCount;
+ last += weightedIndex.weights.length;
+ }
+ for (int i = index; ;) {
+ try {
+ target.enterStack(this);
+ items[index].addTo(target); // may cause exception if stack overflows
+ // no exception, continue normally
+ target.exitStack(this);
+ return;
+ } catch (DepthExceededException e) {
+ target.exitStack(this);
+ if (i == last) {
+ throw e; // we tried all the options, and none of them work.
+ }
+ i ++;
+ if (i >= weightedIndex.weights.length) {
+ i -= weightedIndex.weights.length - weightedIndex.minCount;
+ }
+ }
+ }
}
@Override
@@ -293,11 +361,12 @@
this.item = convert(item);
weightedIndex = new WeightedIndex(minCount).add(maxCount-minCount+1, 1);
}
- */
+ */
@Override
protected void addTo(Target target) {
//int count ;
- for (int i = weightedIndex.toIndex(target.nextDouble()); i > 0; --i) {
+ final int count = weightedIndex.toIndex(target.nextDouble());
+ for (int i = count; i > 0; --i) {
item.addTo(target);
}
}
@@ -421,8 +490,8 @@
String result = checkName(name, alreadySeen);
if (result.startsWith("$")) return result;
return indent(depth) + result + "MORPH("
- + item.getInternal(depth + 1, alreadySeen)
- + ")";
+ + item.getInternal(depth + 1, alreadySeen)
+ + ")";
}
/* (non-Javadoc)
@@ -453,7 +522,7 @@
source = swapTemp;
}
}
- */
+ */
static class Quote extends ItemPick {
Quote(Pick item) {
@@ -477,7 +546,7 @@
String result = checkName(name, alreadySeen);
if (result.startsWith("$")) return result;
return indent(depth) + result + "QUOTE(" + item.getInternal(depth + 1, alreadySeen)
- + ")";
+ + ")";
}
}
@@ -570,7 +639,7 @@
return indent(depth) + "\u00F8";
}
}
- */
+ */
// intermediates
@@ -754,7 +823,7 @@
if (obj instanceof Pick) return (Pick)obj;
return new Literal(obj.toString(), false);
}
- */
+ */
// Useful statics
static public int pick(Random random, int start, int end) {
@@ -819,7 +888,7 @@
public abstract void handleAlternation(String source, int start, int limit);
}
- */
+ */
/*
// redistributes random value
// values are still between 0 and 1, but with a different distribution
@@ -855,6 +924,6 @@
return start + (int)(spread.spread(random.nextDouble()) * (end + 1 - start));
}
- */
+ */
}
\ No newline at end of file
diff --git a/tools/java/org/unicode/cldr/util/PluralRanges.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/PluralRanges.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/PluralRanges.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/PluralRanges.java
diff --git a/tools/java/org/unicode/cldr/util/PluralRulesUtil.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/PluralRulesUtil.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/PluralRulesUtil.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/PluralRulesUtil.java
diff --git a/tools/java/org/unicode/cldr/util/PluralSamples.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/PluralSamples.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/PluralSamples.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/PluralSamples.java
diff --git a/tools/java/org/unicode/cldr/util/PluralSnapshot.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/PluralSnapshot.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/PluralSnapshot.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/PluralSnapshot.java
diff --git a/tools/java/org/unicode/cldr/util/Predicate.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Predicate.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/Predicate.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/Predicate.java
diff --git a/tools/java/org/unicode/cldr/util/PreferredAndAllowedHour.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/PreferredAndAllowedHour.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/PreferredAndAllowedHour.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/PreferredAndAllowedHour.java
diff --git a/tools/java/org/unicode/cldr/util/PrettyPath.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/PrettyPath.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/PrettyPath.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/PrettyPath.java
diff --git a/tools/java/org/unicode/cldr/util/Quoter.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Quoter.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/Quoter.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/Quoter.java
diff --git a/tools/java/org/unicode/cldr/util/RangeAbbreviator.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/RangeAbbreviator.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/RangeAbbreviator.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/RangeAbbreviator.java
diff --git a/tools/java/org/unicode/cldr/util/Rational.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Rational.java
similarity index 95%
rename from tools/java/org/unicode/cldr/util/Rational.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/Rational.java
index ad7171f..e6915d2 100644
--- a/tools/java/org/unicode/cldr/util/Rational.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Rational.java
@@ -567,4 +567,29 @@
}
return false;
}
+
+ public String getIntPowerOfTen() {
+ // HACK, figure out better later
+ if (numerator.compareTo(BigInteger.ZERO) < 0) {
+ throw new IllegalArgumentException("Prefix label must be positive: " + this);
+ }
+ if (!numerator.equals(BigInteger.ONE) && !denominator.equals(BigInteger.ONE)) {
+ throw new IllegalArgumentException("Prefix label must be power of 10: " + this);
+ }
+ BigInteger value;
+ int sign;
+ if (numerator.equals(BigInteger.ONE)) {
+ value = denominator;
+ sign = -1;
+ } else {
+ value = numerator;
+ sign = 1;
+ }
+ String str = value.toString();
+ if (!INT_POWER_10.matcher(str).matches()) {
+ throw new IllegalArgumentException("Prefix label must be power of 10: " + this);
+ }
+ int result = str.length()-1;
+ return String.valueOf(result * sign);
+ }
}
\ No newline at end of file
diff --git a/tools/java/org/unicode/cldr/util/RecordingCLDRFile.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/RecordingCLDRFile.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/RecordingCLDRFile.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/RecordingCLDRFile.java
diff --git a/tools/java/org/unicode/cldr/util/ReferenceStringSearch.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/ReferenceStringSearch.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/ReferenceStringSearch.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/ReferenceStringSearch.java
diff --git a/tools/java/org/unicode/cldr/util/RegexFileParser.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/RegexFileParser.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/RegexFileParser.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/RegexFileParser.java
diff --git a/tools/java/org/unicode/cldr/util/RegexLogger.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/RegexLogger.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/RegexLogger.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/RegexLogger.java
diff --git a/tools/java/org/unicode/cldr/util/RegexLookup.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/RegexLookup.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/RegexLookup.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/RegexLookup.java
diff --git a/tools/java/org/unicode/cldr/util/RegexUtilities.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/RegexUtilities.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/RegexUtilities.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/RegexUtilities.java
diff --git a/tools/java/org/unicode/cldr/util/SemiFileReader.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/SemiFileReader.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/SemiFileReader.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/SemiFileReader.java
diff --git a/tools/java/org/unicode/cldr/util/SetComparator.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/SetComparator.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/SetComparator.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/SetComparator.java
diff --git a/tools/java/org/unicode/cldr/util/SimpleDictionary.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/SimpleDictionary.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/SimpleDictionary.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/SimpleDictionary.java
diff --git a/tools/java/org/unicode/cldr/util/SimpleEquivalenceClass.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/SimpleEquivalenceClass.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/SimpleEquivalenceClass.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/SimpleEquivalenceClass.java
diff --git a/tools/java/org/unicode/cldr/util/SimpleFactory.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/SimpleFactory.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/SimpleFactory.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/SimpleFactory.java
diff --git a/tools/java/org/unicode/cldr/util/SimpleHtmlParser.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/SimpleHtmlParser.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/SimpleHtmlParser.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/SimpleHtmlParser.java
diff --git a/tools/java/org/unicode/cldr/util/SimpleXMLSource.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/SimpleXMLSource.java
similarity index 91%
rename from tools/java/org/unicode/cldr/util/SimpleXMLSource.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/SimpleXMLSource.java
index c213626..dd067c0 100644
--- a/tools/java/org/unicode/cldr/util/SimpleXMLSource.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/SimpleXMLSource.java
@@ -168,14 +168,23 @@
static final Normalizer2 NFKC = Normalizer2.getNFKCInstance();
// The following includes letters, marks, numbers, currencies, and *selected* symbols/punctuation
- static final UnicodeSet NON_ALPHANUM = new UnicodeSet("[^[:L:][:M:][:N:][:Sc:]/+\\-°′″%‰‱٪؉−⍰()⊕☉]").freeze();
+ static final UnicodeSet NON_ALPHANUM = new UnicodeSet("[^[:L:][:M:][:N:][:Sc:][\\u202F\uFFFF _ ¡ « ( ) \\- \\[ \\] \\{ \\} § / \\\\ % ٪ ‰ ؉ ‱-″ ` \\^ ¯ ¨ ° + ¬ | ¦ ~ − ⊕ ⍰ ☉ © ®]]").freeze();
public static String normalize(String valueToMatch) {
- return replace(NON_ALPHANUM, NFKCCF.normalize(valueToMatch), "");
+ return normalize2(valueToMatch, NFKCCF);
}
public static String normalizeCaseSensitive(String valueToMatch) {
- return replace(NON_ALPHANUM, NFKC.normalize(valueToMatch), "");
+ return normalize2(valueToMatch, NFKC);
+ }
+
+ public static String normalize2(String valueToMatch, Normalizer2 normalizer2) {
+ if (valueToMatch.indexOf('\u202F') >= 0) { // special hack to allow \u202f, which is otherwise removed by NFKC
+ String temp = valueToMatch.replace('\u202F', '\uFFFF');
+ String result = replace(NON_ALPHANUM, normalizer2.normalize(temp), "");
+ return result.replace('\uFFFF','\u202F');
+ }
+ return replace(NON_ALPHANUM, normalizer2.normalize(valueToMatch), "");
}
public static String replace(UnicodeSet unicodeSet, String valueToMatch, String substitute) {
diff --git a/tools/java/org/unicode/cldr/util/SortedBag.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/SortedBag.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/SortedBag.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/SortedBag.java
diff --git a/tools/cldr-code/src/main/java/org/unicode/cldr/util/SpecialLocales.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/SpecialLocales.java
new file mode 100644
index 0000000..e74f99b
--- /dev/null
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/SpecialLocales.java
@@ -0,0 +1,282 @@
+package org.unicode.cldr.util;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+
+import org.unicode.cldr.tool.CLDRFileTransformer;
+import org.unicode.cldr.tool.CLDRFileTransformer.LocaleTransform;
+
+import com.ibm.icu.util.ICUUncheckedIOException;
+
+/**
+ * List of locale IDs which are somehow 'special'. Parses SpecialLocales.txt
+ *
+ * @author srl
+ *
+ */
+public class SpecialLocales {
+ private static final String INCLUDE_SUBLOCALES = "*";
+
+ public enum Type {
+ /**
+ * Locale may not be modified by user.
+ */
+ readonly,
+ /**
+ * Locale may be modified by user. Contents aren't part of CLDR release and may change.
+ */
+ scratch
+ }
+
+ /**
+ * Get the type of this locale
+ *
+ * @param l
+ * @return a Type or null
+ */
+ public static Type getType(CLDRLocale l) {
+ return getInstance().getTypeInternal(l);
+ }
+
+ /**
+ * Get all CLDRLocales matching this type. Does not include wildcard (*) sublocales.
+ *
+ * @param t
+ * @return a set, or null if none found
+ */
+ public static Set<CLDRLocale> getByType(Type t) {
+ return getInstance().getByTypeInternal(t);
+ }
+
+ /**
+ * Get the comment on this locale. Strip out @ text.
+ *
+ * @param l
+ * @return string or null
+ */
+ public static String getComment(CLDRLocale l) {
+ return getCommentRaw(l).replaceAll("@", "");
+ }
+
+ /**
+ * Get the comment on this locale. Include "@locale" markers.
+ *
+ * @param l
+ * @return string or null
+ */
+ public static String getCommentRaw(CLDRLocale l) {
+ return getInstance().getCommentInternal(l).replaceAll("@@", "@" + l.getBaseName());
+ }
+
+ private static final class SpecialLocalesHelper {
+ static final SpecialLocales SINGLETON = new SpecialLocales();
+ }
+
+ /**
+ * Internal accessor. All access is via the static functions.
+ * @return
+ */
+ private static synchronized SpecialLocales getInstance() {
+ return SpecialLocalesHelper.SINGLETON;
+ }
+
+ private Map<CLDRLocale, Type> specials = new HashMap<>();
+ private Map<Type, Set<CLDRLocale>> types = new HashMap<>();
+ private Map<CLDRLocale, String> comments = new HashMap<>();
+ private Set<CLDRLocale> specialsWildcards = new HashSet<>();
+
+ public Set<CLDRLocale> getByTypeInternal(Type t) {
+ return types.get(t);
+ }
+
+ public Type getTypeInternal(CLDRLocale l) {
+ l = findLocale(l, l);
+ return specials.get(l);
+ }
+
+ public String getCommentInternal(CLDRLocale l) {
+ l = findLocale(l, l);
+ return comments.get(l);
+ }
+
+ public CLDRLocale findLocale(CLDRLocale fromLocale, CLDRLocale origLocale) {
+ if (origLocale == fromLocale && specials.containsKey(origLocale)) {
+ return origLocale; // explicit locale - no search.
+ }
+ if (fromLocale == null) {
+ return origLocale;
+ }
+ if (specialsWildcards.contains(fromLocale)) {
+ return fromLocale;
+ }
+ return findLocale(fromLocale.getParent(), origLocale);
+ }
+ private static boolean DEBUG = false;
+
+ /**
+ * Internal constructor
+ */
+ private SpecialLocales() {
+ // First, read the algorithmic locales.
+ for(final LocaleTransform lt : CLDRFileTransformer.LocaleTransform.values()) {
+ if(lt.getPolicyIfExisting() != CLDRFileTransformer.PolicyIfExisting.DISCARD) {
+ continue;
+ }
+ // Add each of these as if they were in SpecialLocales.txt
+ CLDRLocale inputLocale = CLDRLocale.getInstance(lt.getInputLocale());
+ CLDRLocale outputLocale = CLDRLocale.getInstance(lt.getOutputLocale());
+
+ // add as readonly
+ addToType(Type.readonly, outputLocale);
+
+ // add similar comment to SpecialLocales.txt
+ comments.put(outputLocale, "@"+outputLocale.getBaseName()+" is generated from @"+inputLocale.getBaseName() +
+ " via transliteration, and so @@ may not be edited directly. Edit @"+inputLocale.getBaseName()+" to make changes.");
+ }
+
+ for(final DataFileRow r : DataFileRow.ROWS) {
+ // verify that the locale is valid
+ CLDRLocale l = null;
+ try {
+ l = CLDRLocale.getInstance(r.id);
+ } catch (Exception e) {
+ throw new IllegalArgumentException("Invalid CLDRLocale in SpecialLocales.txt:" + r.id);
+ }
+
+ addToType(r.type, l);
+ if (r.includeSubLocs) {
+ if(r.type == Type.scratch) {
+ throw new IllegalArgumentException("Scratch locales cannot include sublocales: " + l);
+ }
+ specialsWildcards.add(l);
+ }
+ if (!r.comment.isEmpty()) {
+ comments.put(l, r.comment);
+ }
+ if (DEBUG) {
+ System.out.println(SpecialLocales.class.getSimpleName() + ": locale " + l + ", includejSublocs=" + r.includeSubLocs + ", type=" + r.type
+ + ", comment: " + r.comment);
+ }
+
+ }
+ specials = Collections.unmodifiableMap(specials);
+ specialsWildcards = Collections.unmodifiableSet(specialsWildcards);
+ comments = Collections.unmodifiableMap(comments);
+ types = Collections.unmodifiableMap(types);
+ }
+
+ private static class DataFileRow {
+ public boolean includeSubLocs;
+ public DataFileRow(String id, Type type, String comment, boolean includeSubLocs) {
+ this.id = id;
+ this.type = type;
+ this.comment = comment;
+ this.includeSubLocs = includeSubLocs;
+ }
+ public String id;
+ public Type type;
+ public String comment;
+
+ public static List<DataFileRow> ROWS = readDataFile();
+
+ static private List<DataFileRow> readDataFile() {
+ List<DataFileRow> rows = new ArrayList<>();
+ // from StandardCodes.java
+ String line;
+ int ln = 0;
+ try {
+ BufferedReader lstreg = CldrUtility.getUTF8Data("SpecialLocales.txt");
+ while (true) {
+ line = lstreg.readLine();
+ ln++;
+ if (line == null)
+ break;
+ int commentPos = line.indexOf('#');
+ if (commentPos >= 0) {
+ line = line.substring(0, commentPos);
+ }
+ line = line.trim();
+ if (line.length() == 0)
+ continue;
+ List<String> stuff = CldrUtility.splitList(line, ';', true);
+ String id = stuff.get(0);
+ boolean includeSublocs = (id.endsWith(INCLUDE_SUBLOCALES));
+ if (includeSublocs) {
+ id = id.substring(0, id.length() - INCLUDE_SUBLOCALES.length());
+ }
+ String type = stuff.get(1);
+ String comment = stuff.get(2);
+ Type t = null;
+
+
+ // verify that the type is valid
+ try {
+ t = Type.valueOf(type.toLowerCase(Locale.ENGLISH));
+ } catch (Exception e) {
+ throw new IllegalArgumentException("Invalid SpecialLocales.Type in SpecialLocales.txt:" + ln + ": "
+ + line);
+ }
+
+ rows.add(new DataFileRow(id, t, comment, includeSublocs));
+ }
+ } catch (IOException e) {
+ throw new ICUUncheckedIOException("Internal Error", e);
+ }
+ return rows;
+ }
+ }
+
+ private Set<CLDRLocale> addToType(Type t, CLDRLocale l) {
+ Set<CLDRLocale> s = types.get(t);
+ if (s == null) {
+ s = new TreeSet<>();
+ types.put(t, s);
+ }
+ s.add(l);
+ specials.put(l, t);
+ return s;
+ }
+
+ /**
+ * @param locale
+ * @return true if the locale type is scratch
+ * @deprecated use the CLDRLocale variant
+ */
+ @Deprecated
+ public static boolean isScratchLocale(String locale) {
+ return isScratchLocale(CLDRLocale.getInstance(locale));
+ }
+
+ /**
+ * Check if this is a scratch (sandbox) locale
+ * @param loc
+ * @return true if it is a sandbox locale
+ */
+ public static boolean isScratchLocale(CLDRLocale loc) {
+ return getType(loc) == Type.scratch;
+ }
+
+ /**
+ * Low level function to list scratch locales.
+ * Used for fetching the list prior to CLDRLocale startup.
+ * @return
+ */
+ public static List<String> getScratchLocaleIds() {
+ List<String> ids = new ArrayList<>();
+ for(final DataFileRow r : DataFileRow.ROWS) {
+ if(r.type == Type.scratch) {
+ ids.add(r.id);
+ }
+ }
+ return ids;
+ }
+}
diff --git a/tools/java/org/unicode/cldr/util/SplitToArray.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/SplitToArray.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/SplitToArray.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/SplitToArray.java
diff --git a/tools/java/org/unicode/cldr/util/SpreadSheet.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/SpreadSheet.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/SpreadSheet.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/SpreadSheet.java
diff --git a/tools/java/org/unicode/cldr/util/StackTracker.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/StackTracker.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/StackTracker.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/StackTracker.java
diff --git a/tools/java/org/unicode/cldr/util/StandardCodes.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/StandardCodes.java
similarity index 99%
rename from tools/java/org/unicode/cldr/util/StandardCodes.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/StandardCodes.java
index 9952e71..f951e58 100644
--- a/tools/java/org/unicode/cldr/util/StandardCodes.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/StandardCodes.java
@@ -72,8 +72,6 @@
public static final String NO_COUNTRY = "001";
- private static StandardCodes singleton;
-
private EnumMap<CodeType, Map<String, List<String>>> type_code_data = new EnumMap<>(
CodeType.class);
@@ -89,13 +87,14 @@
private static final boolean DEBUG = false;
+ private static final class StandardCodesHelper {
+ static final StandardCodes SINGLETON = new StandardCodes();
+ }
/**
* Get the singleton copy of the standard codes.
*/
static public synchronized StandardCodes make() {
- if (singleton == null)
- singleton = new StandardCodes();
- return singleton;
+ return StandardCodesHelper.SINGLETON;
}
/**
@@ -1455,8 +1454,6 @@
public static String fixLanguageTag(String languageSubtag) {
if (languageSubtag.equals("mo")) { // fix special cases
return "ro";
- } else if (languageSubtag.equals("no")) {
- return "nb";
}
return languageSubtag;
}
diff --git a/tools/java/org/unicode/cldr/util/StateDictionary.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/StateDictionary.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/StateDictionary.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/StateDictionary.java
diff --git a/tools/java/org/unicode/cldr/util/StateDictionaryBuilder.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/StateDictionaryBuilder.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/StateDictionaryBuilder.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/StateDictionaryBuilder.java
diff --git a/tools/java/org/unicode/cldr/util/StaticCLDRURLS.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/StaticCLDRURLS.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/StaticCLDRURLS.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/StaticCLDRURLS.java
diff --git a/tools/java/org/unicode/cldr/util/StringByteConverter.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/StringByteConverter.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/StringByteConverter.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/StringByteConverter.java
diff --git a/tools/java/org/unicode/cldr/util/StringId.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/StringId.java
similarity index 96%
rename from tools/java/org/unicode/cldr/util/StringId.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/StringId.java
index 6f573c1..ba69f5a 100644
--- a/tools/java/org/unicode/cldr/util/StringId.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/StringId.java
@@ -1,6 +1,6 @@
package org.unicode.cldr.util;
-import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -17,7 +17,6 @@
private static final Map<String, Long> STRING_TO_ID = new ConcurrentHashMap<>();
private static final Map<Long, String> ID_TO_STRING = new ConcurrentHashMap<>();
private static final MessageDigest digest;
- private static final Charset UTF_8 = Charset.forName("UTF-8");
private static final int RETRY_LIMIT = 9;
static {
try {
@@ -44,7 +43,7 @@
while (true) {
try {
synchronized (digest) {
- byte[] hash = digest.digest(string.getBytes(UTF_8));
+ byte[] hash = digest.digest(string.getBytes(StandardCharsets.UTF_8));
long result = 0;
for (int i = 0; i < 8; ++i) {
result <<= 8;
diff --git a/tools/java/org/unicode/cldr/util/StringIterables.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/StringIterables.java
similarity index 95%
rename from tools/java/org/unicode/cldr/util/StringIterables.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/StringIterables.java
index 66b99f6..110d19f 100644
--- a/tools/java/org/unicode/cldr/util/StringIterables.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/StringIterables.java
@@ -3,6 +3,7 @@
import java.io.BufferedReader;
import java.io.IOException;
import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
import org.unicode.cldr.util.With.SimpleIterator;
@@ -24,7 +25,7 @@
*
*/
public static Iterable<String> in(Class<?> class1, String file) {
- return With.in(new FileLines(FileReaders.openFile(class1, file, CldrUtility.UTF8)));
+ return With.in(new FileLines(FileReaders.openFile(class1, file, StandardCharsets.UTF_8)));
}
/**
@@ -50,7 +51,7 @@
*
*/
public static Iterable<String> in(String directory, String file) {
- return With.in(new FileLines(FileReaders.openFile(directory, file, CldrUtility.UTF8)));
+ return With.in(new FileLines(FileReaders.openFile(directory, file, StandardCharsets.UTF_8)));
}
/**
diff --git a/tools/java/org/unicode/cldr/util/StringRange.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/StringRange.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/StringRange.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/StringRange.java
diff --git a/tools/java/org/unicode/cldr/util/StringRangeTest.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/StringRangeTest.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/StringRangeTest.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/StringRangeTest.java
diff --git a/tools/java/org/unicode/cldr/util/SupplementalDataInfo.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/SupplementalDataInfo.java
similarity index 99%
rename from tools/java/org/unicode/cldr/util/SupplementalDataInfo.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/SupplementalDataInfo.java
index f1056a7..7d301b0 100644
--- a/tools/java/org/unicode/cldr/util/SupplementalDataInfo.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/SupplementalDataInfo.java
@@ -981,7 +981,6 @@
return getInstance(getNormalizedPathString(supplementalDirectory));
}
- static private SupplementalDataInfo defaultInstance = null;
/**
* Which directory did we come from?
*/
@@ -995,18 +994,19 @@
* @return
*/
public static SupplementalDataInfo getInstance() {
- if (defaultInstance != null) {
- return defaultInstance;
- }
- return CLDRConfig.getInstance().getSupplementalDataInfo();
- // return getInstance(CldrUtility.SUPPLEMENTAL_DIRECTORY);
+ return SupplementalDataInfoHelper.SINGLETON;
}
/**
* Mark this as the default instance to be returned by getInstance()
*/
public void setAsDefaultInstance() {
- defaultInstance = this;
+ SupplementalDataInfoHelper.SINGLETON = this;
+ }
+
+ public static final class SupplementalDataInfoHelper {
+ // Note: not final, because setAsDefaultInstance can modify it.
+ static SupplementalDataInfo SINGLETON = CLDRConfig.getInstance().getSupplementalDataInfo();
}
public static SupplementalDataInfo getInstance(String supplementalDirectory) {
@@ -2601,17 +2601,6 @@
}
/**
- * This appears to be unused, so didn't provide new version.
- *
- * @param xpath
- * @return
- */
- public int getCoverageValueOld(String xpath) {
- ULocale loc = new ULocale("und");
- return getCoverageValueOld(xpath, loc);
- }
-
- /**
* Older version of code.
*
* @param xpath
diff --git a/tools/java/org/unicode/cldr/util/Tabber.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Tabber.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/Tabber.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/Tabber.java
diff --git a/tools/java/org/unicode/cldr/util/TempPrintWriter.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/TempPrintWriter.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/TempPrintWriter.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/TempPrintWriter.java
diff --git a/tools/java/org/unicode/cldr/util/TestShimUtils.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/TestShimUtils.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/TestShimUtils.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/TestShimUtils.java
diff --git a/tools/java/org/unicode/cldr/util/TestStateDictionaryBuilder.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/TestStateDictionaryBuilder.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/TestStateDictionaryBuilder.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/TestStateDictionaryBuilder.java
diff --git a/tools/java/org/unicode/cldr/util/TestUtilities.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/TestUtilities.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/TestUtilities.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/TestUtilities.java
diff --git a/tools/java/org/unicode/cldr/util/Timer.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Timer.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/Timer.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/Timer.java
diff --git a/tools/java/org/unicode/cldr/util/TimezoneFormatter.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/TimezoneFormatter.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/TimezoneFormatter.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/TimezoneFormatter.java
diff --git a/tools/java/org/unicode/cldr/util/Tokenizer.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Tokenizer.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/Tokenizer.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/Tokenizer.java
diff --git a/tools/java/org/unicode/cldr/util/Transformer.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Transformer.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/Transformer.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/Transformer.java
diff --git a/tools/java/org/unicode/cldr/util/TransliteratorUtilities.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/TransliteratorUtilities.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/TransliteratorUtilities.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/TransliteratorUtilities.java
diff --git a/tools/java/org/unicode/cldr/util/UExtension.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/UExtension.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/UExtension.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/UExtension.java
diff --git a/tools/java/org/unicode/cldr/util/UnicodeRelation.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/UnicodeRelation.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/UnicodeRelation.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/UnicodeRelation.java
diff --git a/tools/java/org/unicode/cldr/util/UnicodeSetPrettyPrinter.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/UnicodeSetPrettyPrinter.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/UnicodeSetPrettyPrinter.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/UnicodeSetPrettyPrinter.java
diff --git a/tools/java/org/unicode/cldr/util/UnicodeSets.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/UnicodeSets.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/UnicodeSets.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/UnicodeSets.java
diff --git a/tools/java/org/unicode/cldr/util/UnitConverter.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/UnitConverter.java
similarity index 87%
rename from tools/java/org/unicode/cldr/util/UnitConverter.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/UnitConverter.java
index 7439dba..3cfa396 100644
--- a/tools/java/org/unicode/cldr/util/UnitConverter.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/UnitConverter.java
@@ -3,9 +3,11 @@
import java.math.BigInteger;
import java.math.MathContext;
import java.text.MessageFormat;
+import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
+import java.util.EnumSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
@@ -14,19 +16,17 @@
import java.util.Objects;
import java.util.Set;
import java.util.TreeMap;
-import java.util.TreeSet;
import java.util.concurrent.ConcurrentHashMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import java.util.stream.Collectors;
import org.unicode.cldr.util.GrammarDerivation.CompoundUnitStructure;
import org.unicode.cldr.util.GrammarDerivation.Values;
import org.unicode.cldr.util.GrammarInfo.GrammaticalFeature;
import org.unicode.cldr.util.Rational.FormatStyle;
import org.unicode.cldr.util.Rational.RationalParser;
-import org.unicode.cldr.util.StandardCodes.LstrType;
import org.unicode.cldr.util.SupplementalDataInfo.PluralInfo;
-import org.unicode.cldr.util.Validity.Status;
import com.google.common.base.Splitter;
import com.google.common.collect.BiMap;
@@ -47,7 +47,7 @@
import com.ibm.icu.util.ULocale;
public class UnitConverter implements Freezable<UnitConverter> {
-
+ public static boolean DEBUG = false;
public static final Integer INTEGER_ONE = Integer.valueOf(1);
static final Splitter BAR_SPLITTER = Splitter.on('-');
@@ -61,6 +61,7 @@
private Map<String,String> baseUnitToQuantity = new LinkedHashMap<>();
private Map<String,String> baseUnitToStatus = new LinkedHashMap<>();
private Map<String, TargetInfo> sourceToTargetInfo = new LinkedHashMap<>();
+ private Map<String,String> sourceToStandard;
private Multimap<String, String> quantityToSimpleUnits = LinkedHashMultimap.create();
private Multimap<String, String> sourceToSystems = LinkedHashMultimap.create();
private Set<String> baseUnits;
@@ -70,7 +71,7 @@
private Map<String,String> fixDenormalized;
private ImmutableMap<String, UnitId> idToUnitId;
- public final BiMap<String,String> SHORT_TO_LONG_ID;
+ public final BiMap<String,String> SHORT_TO_LONG_ID = Units.LONG_TO_SHORT.inverse();
private boolean frozen = false;
@@ -123,8 +124,10 @@
frozen = true;
rationalParser.freeze();
sourceToTargetInfo = ImmutableMap.copyOf(sourceToTargetInfo);
+ sourceToStandard = buildSourceToStandard();
quantityToSimpleUnits = ImmutableMultimap.copyOf(quantityToSimpleUnits);
quantityComparator = getQuantityComparator(baseUnitToQuantity, baseUnitToStatus);
+
sourceToSystems = ImmutableMultimap.copyOf(sourceToSystems);
// other fields are frozen earlier in processing
Builder<String> builder = ImmutableSet.<String>builder()
@@ -171,6 +174,32 @@
return this;
}
+ /**
+ * Return the 'standard unit' for the source.
+ * @return
+ */
+ private Map<String, String> buildSourceToStandard() {
+ Map<String, String> unitToStandard = new TreeMap<>();
+ for (Entry<String, TargetInfo> entry : sourceToTargetInfo.entrySet()) {
+ String source = entry.getKey();
+ TargetInfo targetInfo = entry.getValue();
+ if (targetInfo.unitInfo.factor.equals(Rational.ONE) && targetInfo.unitInfo.offset.equals(Rational.ZERO)) {
+ final String target = targetInfo.target;
+ String old = unitToStandard.get(target);
+ if (old == null) {
+ unitToStandard.put(target, source);
+ if (DEBUG) System.out.println(target + " ⟹ " + source);
+ } else if (old.length() > source.length()) {
+ unitToStandard.put(target, source);
+ if (DEBUG) System.out.println("TWO STANDARDS: " + target + " ⟹ " + source + "; was " + old);
+ } else {
+ if (DEBUG) System.out.println("TWO STANDARDS: " + target + " ⟹ " + old + ", was " + source);
+ }
+ }
+ }
+ return ImmutableMap.copyOf(unitToStandard);
+ }
+
@Override
public UnitConverter cloneAsThawed() {
throw new UnsupportedOperationException();
@@ -290,7 +319,7 @@
return remainder + " 🢣 " + result;
}
- public static Iterable<String> split(String derivedUnit, Multimap<String, Continuation> continuations) {
+ public static UnitIterator split(String derivedUnit, Multimap<String, Continuation> continuations) {
return new UnitIterator(derivedUnit, continuations);
}
@@ -309,6 +338,10 @@
return nextIndex < parts.size();
}
+ public String peek() {
+ return parts.size() <= nextIndex ? null : parts.get(nextIndex);
+ }
+
@Override
public String next() {
String result = parts.get(nextIndex++);
@@ -323,7 +356,7 @@
}
@Override
- public Iterator<String> iterator() {
+ public UnitIterator iterator() {
return this;
}
@@ -332,15 +365,15 @@
public UnitConverter(RationalParser rationalParser, Validity validity) {
this.rationalParser = rationalParser;
- // we need to pass in the validity so it is for the same CLDR version as the converter
- Set<String> VALID_UNITS = validity.getStatusToCodes(LstrType.unit).get(Status.regular);
- Map<String,String> _SHORT_TO_LONG_ID = new LinkedHashMap<>();
- for (String longUnit : VALID_UNITS) {
- int dashPos = longUnit.indexOf('-');
- String coreUnit = longUnit.substring(dashPos+1);
- _SHORT_TO_LONG_ID.put(coreUnit, longUnit);
- }
- SHORT_TO_LONG_ID = ImmutableBiMap.copyOf(_SHORT_TO_LONG_ID);
+// // we need to pass in the validity so it is for the same CLDR version as the converter
+// Set<String> VALID_UNITS = validity.getStatusToCodes(LstrType.unit).get(Status.regular);
+// Map<String,String> _SHORT_TO_LONG_ID = new LinkedHashMap<>();
+// for (String longUnit : VALID_UNITS) {
+// int dashPos = longUnit.indexOf('-');
+// String coreUnit = longUnit.substring(dashPos+1);
+// _SHORT_TO_LONG_ID.put(coreUnit, longUnit);
+// }
+// SHORT_TO_LONG_ID = ImmutableBiMap.copyOf(_SHORT_TO_LONG_ID);
}
public void addRaw(String source, String target, String factor, String offset, String systems) {
@@ -423,7 +456,7 @@
sourceToTargetInfo.put(source, new TargetInfo(target, info, inputParameters));
String targetQuantity = baseUnitToQuantity.get(target);
if (targetQuantity == null) {
- throw new IllegalArgumentException();
+ throw new IllegalArgumentException("No quantity for baseUnit: " + target);
}
quantityToSimpleUnits.put(targetQuantity, source);
if (systems != null) {
@@ -433,16 +466,23 @@
private Comparator<String> getQuantityComparator(Map<String, String> baseUnitToQuantity2, Map<String, String> baseUnitToStatus2) {
// We want to sort all the quantities so that we have a natural ordering within compound units. So kilowatt-hour, not hour-kilowatt.
- // For simple quantities, just use the ordering from baseUnitToStatus
- MapComparator<String> simpleBaseUnitComparator = new MapComparator<>(baseUnitToStatus2.keySet()).freeze();
- // For non-symbol quantities, use the ordering of the UnitIds
- Map<UnitId, String> unitIdToQuantity = new TreeMap<>();
- for (Entry<String, String> buq : baseUnitToQuantity2.entrySet()) {
- UnitId uid = new UnitId(simpleBaseUnitComparator).add(continuations, buq.getKey(), true, 1).freeze();
- unitIdToQuantity.put(uid, buq.getValue());
+ Collection<String> values;
+ if (true) {
+ values = baseUnitToQuantity2.values();
+ } else {
+ // For simple quantities, just use the ordering from baseUnitToStatus
+ MapComparator<String> simpleBaseUnitComparator = new MapComparator<>(baseUnitToStatus2.keySet()).freeze();
+ // For non-symbol quantities, use the ordering of the UnitIds
+ Map<UnitId, String> unitIdToQuantity = new TreeMap<>();
+ for (Entry<String, String> buq : baseUnitToQuantity2.entrySet()) {
+ UnitId uid = new UnitId(simpleBaseUnitComparator).add(continuations, buq.getKey(), true, 1).freeze();
+ unitIdToQuantity.put(uid, buq.getValue());
+ }
+ // System.out.println(Joiner.on("\n").join(unitIdToQuantity.values()));
+ values = unitIdToQuantity.values();
}
- // System.out.println(Joiner.on("\n").join(unitIdToQuantity.values()));
- return new MapComparator<>(unitIdToQuantity.values()).freeze();
+ if (DEBUG) System.out.println(values);
+ return new MapComparator<>(values).freeze();
}
public Set<String> canConvertBetween(String unit) {
@@ -458,6 +498,9 @@
return sourceToTargetInfo.keySet();
}
+ /**
+ * Converts between units, but ONLY if they are both base units
+ */
public Rational convertDirect(Rational source, String sourceUnit, String targetUnit) {
if (sourceUnit.equals(targetUnit)) {
return source;
@@ -502,6 +545,35 @@
}
/**
+ * Return the standard unit, eg newton for kilogram-meter-per-square-second
+ * @param simpleUnit
+ * @return
+ */
+ public String getStandardUnit(String unit) {
+ Output<String> metricUnit = new Output<>();
+ parseUnitId(unit, metricUnit, false);
+ String result = sourceToStandard.get(metricUnit.value);
+ if (result == null) {
+ UnitId mUnit = createUnitId(metricUnit.value);
+ mUnit = mUnit.resolve();
+ result = sourceToStandard.get(mUnit.toString());
+ }
+ return result == null ? metricUnit.value : result;
+ }
+
+ public String getSpecialBaseUnit(String quantity, Set<UnitSystem> unitSystem) {
+ if (unitSystem.contains(UnitSystem.ussystem) || unitSystem.contains(UnitSystem.uksystem)) {
+ switch(quantity) {
+ case "volume": return unitSystem.contains(UnitSystem.uksystem) ? "gallon-imperial" : "gallon";
+ case "mass": return "pound";
+ case "length": return "foot";
+ case "area": return "square-foot";
+ }
+ }
+ return null;
+ }
+
+ /**
* Takes a derived unit id, and produces the equivalent derived base unit id and UnitInfo to convert to it
* @author markdavis
* @param showYourWork TODO
@@ -764,7 +836,7 @@
int unitsLeft = target.size();
for (Entry<String, Integer> entry : target.entrySet()) {
String possiblyPrefixedUnit = entry.getKey();
- String unit = stripPrefixInt(possiblyPrefixedUnit, deprefix);
+ String unit = stripPrefixPower(possiblyPrefixedUnit, deprefix);
String genderVariant = UnitPathType.gender.getTrans(resolvedFile, "long", unit, null, null, null, partsUsed);
int power = entry.getValue();
@@ -1001,7 +1073,7 @@
}
}
}
- String strippedUnit = stripPrefixInt(bestMeasure.getKey(), null);
+ String strippedUnit = stripPrefix(bestMeasure.getKey(), null);
String gender = UnitPathType.gender.getTrans(resolvedFile, "long", strippedUnit, null, null, null, partsUsed);
if (gender != null && source != null) {
source.value = strippedUnit;
@@ -1154,6 +1226,7 @@
"kilogram"
);
+ static final Rational RATIONAL1000 = Rational.of(1000);
/**
* If there is no prefix, return the unit and ONE.
* If there is a prefix return the unit (with prefix stripped) and the prefix factor
@@ -1166,10 +1239,22 @@
for (Entry<String, V> entry : unitMap.entrySet()) {
String prefix = entry.getKey();
if (unit.startsWith(prefix)) {
+ String result = unit.substring(prefix.length());
+ // We have to do a special hack for kilogram, but only for the Rational case.
+ // The Integer case is used for name construction, so that is ok.
+ final boolean isRational = deprefix != null && deprefix.value instanceof Rational;
+ boolean isGramHack = isRational && result.equals("gram");
+ if (isGramHack) {
+ result = "kilogram";
+ }
if (deprefix != null) {
deprefix.value = entry.getValue();
+ if (isGramHack) {
+ final Rational ratValue = (Rational) deprefix.value;
+ deprefix.value = (V) ratValue.divide(RATIONAL1000);
+ }
}
- return unit.substring(prefix.length());
+ return result;
}
}
return unit;
@@ -1182,7 +1267,7 @@
return stripPrefixCommon(unit, deprefix, PREFIXES);
}
- public static String stripPrefixInt(String unit, Output<Integer> deprefix) {
+ public static String stripPrefixPower(String unit, Output<Integer> deprefix) {
if (deprefix != null) {
deprefix.value = Integer.valueOf(1);
}
@@ -1197,7 +1282,7 @@
Output<String> metricUnit = new Output<>();
unit = fixDenormalized(unit);
ConversionInfo unitInfo = parseUnitId(unit, metricUnit, showYourWork);
- return metricUnit == null ? null : getQuantityFromBaseUnit(metricUnit.value);
+ return metricUnit.value == null ? null : getQuantityFromBaseUnit(metricUnit.value);
}
public String getQuantityFromBaseUnit(String baseUnit) {
@@ -1247,37 +1332,55 @@
return sourceToSystems;
}
- public Set<String> getSystems(String unit) {
- Set<String> result = new TreeSet<>();
- UnitId id = createUnitId(unit);
- for (String subunit : id.denUnitsToPowers.keySet()) {
- addSystems(result, subunit);
+ public enum UnitSystem { // TODO convert getSystems and SupplementalDataInfo to use natively
+ si,
+ metric,
+ ussystem,
+ uksystem,
+ other;
+ public static Set<UnitSystem> fromStringCollection(Collection<String> stringUnitSystems) {
+ return stringUnitSystems.stream().map(x -> UnitSystem.valueOf(x)).collect(Collectors.toSet());
}
- for (String subunit : id.numUnitsToPowers.keySet()) {
- addSystems(result, subunit);
+ public static Set<String> toStringSet(Collection<UnitSystem> stringUnitSystems) {
+ return stringUnitSystems.stream().map(x -> x.toString()).collect(Collectors.toSet());
}
- return result;
}
- public static final Set<String> OTHER_SYSTEM = ImmutableSet.of(
- "g-force", "dalton", "calorie", "earth-radius",
- "solar-radius", "solar-radius", "astronomical-unit", "light-year", "parsec", "earth-mass",
- "solar-mass", "bit", "byte", "karat", "solar-luminosity", "ofhg", "atmosphere",
- "pixel", "dot", "permillion", "permyriad", "permille", "percent", "karat", "portion",
- "minute", "hour", "day", "day-person", "week", "week-person",
- "year", "year-person", "decade", "month", "month-person", "century",
- "arc-second", "arc-minute", "degree", "radian", "revolution",
- "electronvolt",
- // quasi-metric
- "dunam", "mile-scandinavian", "carat", "cup-metric", "pint-metric"
- );
+ public Set<String> getSystems(String unit) {
+ return UnitSystem.toStringSet(getSystemsEnum(unit));
+ }
+
+ public Set<UnitSystem> getSystemsEnum(String unit) {
+ Set<UnitSystem> result = null;
+ UnitId id = createUnitId(unit);
+
+ // we walk through all the units in the numerator and denominator, and keep the *intersection* of
+ // the units. So {ussystem} and {ussystem, uksystem} => ussystem
+ // Special case: {dmetric} intersect {metric} => {dmetric}. We do that by adding dmetric to any set with metric, then removing dmetric if there is a metric
+ main:
+ for (Map<String, Integer> unitsToPowers : Arrays.asList(id.denUnitsToPowers, id.numUnitsToPowers)) {
+ for (String subunit : unitsToPowers.keySet()) {
+ subunit = UnitConverter.stripPrefix(subunit, null);
+ Set<UnitSystem> systems = UnitSystem.fromStringCollection(sourceToSystems.get(subunit));
+
+ if (result == null) {
+ result = systems;
+ } else {
+ result.retainAll(systems);
+ }
+ if (result.isEmpty()) {
+ break main;
+ }
+ }
+ }
+ return result == null || result.isEmpty() ? ImmutableSet.of(UnitSystem.other) : ImmutableSet.copyOf(EnumSet.copyOf(result));
+ }
+
private void addSystems(Set<String> result, String subunit) {
Collection<String> systems = sourceToSystems.get(subunit);
if (!systems.isEmpty()) {
result.addAll(systems);
- } else if (!OTHER_SYSTEM.contains(subunit)) {
- result.add("metric");
}
}
@@ -1440,4 +1543,12 @@
public String getShortId(String longUnitId) {
return CldrUtility.ifNull(SHORT_TO_LONG_ID.inverse().get(longUnitId), longUnitId);
}
+
+ public Multimap<String, Continuation> getContinuations() {
+ return continuations;
+ }
+
+ public Map<String, String> getBaseUnitToStatus() {
+ return baseUnitToStatus;
+ }
}
diff --git a/tools/java/org/unicode/cldr/util/UnitPathType.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/UnitPathType.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/UnitPathType.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/UnitPathType.java
diff --git a/tools/java/org/unicode/cldr/util/UnitPreferences.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/UnitPreferences.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/UnitPreferences.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/UnitPreferences.java
diff --git a/tools/java/org/unicode/cldr/util/Units.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Units.java
similarity index 96%
rename from tools/java/org/unicode/cldr/util/Units.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/Units.java
index 80cc33d..df37d24 100644
--- a/tools/java/org/unicode/cldr/util/Units.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Units.java
@@ -78,4 +78,7 @@
public static String getShort(String longUnit) {
return LONG_TO_SHORT.get(longUnit);
}
+ public static String getLong(String shortId) {
+ return LONG_TO_SHORT.inverse().get(shortId);
+ }
}
diff --git a/tools/java/org/unicode/cldr/util/Unlocode.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Unlocode.java
similarity index 99%
rename from tools/java/org/unicode/cldr/util/Unlocode.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/Unlocode.java
index 55cc0b1..b64c5fc 100644
--- a/tools/java/org/unicode/cldr/util/Unlocode.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Unlocode.java
@@ -3,6 +3,7 @@
import java.io.BufferedReader;
import java.io.IOException;
import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
@@ -243,7 +244,7 @@
public static void loadIso() throws IOException {
BufferedReader br = FileReaders.openFile(CldrUtility.class,
- "data/external/subdivisionData.txt", CldrUtility.UTF8);
+ "data/external/subdivisionData.txt", StandardCharsets.UTF_8);
while (true) {
// Subdivision category TAB 3166-2 code TAB Subdivision name TAB Language code TAB Romanization system TAB Parent subdivision
diff --git a/tools/java/org/unicode/cldr/util/Utf8StringByteConverter.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Utf8StringByteConverter.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/Utf8StringByteConverter.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/Utf8StringByteConverter.java
diff --git a/tools/java/org/unicode/cldr/util/Validity.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Validity.java
similarity index 93%
rename from tools/java/org/unicode/cldr/util/Validity.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/Validity.java
index 55901f7..eb06e76 100644
--- a/tools/java/org/unicode/cldr/util/Validity.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Validity.java
@@ -51,7 +51,11 @@
Map<LstrType, Map<String, Status>> codeToStatus = new EnumMap<>(LstrType.class);
final String basePath = validityDirectory;
- for (String file : new File(basePath).list()) {
+ File validityDir = new File(basePath);
+ if (!validityDir.isDirectory()) {
+ throw new IllegalArgumentException("Not a directory: " + validityDir.getAbsolutePath());
+ }
+ for (String file : validityDir.list()) {
if (!file.endsWith(".xml")) {
continue;
}
@@ -103,7 +107,7 @@
}
}
if (data.keySet().size() < 5) {
- throw new IllegalArgumentException("Bad directory for validity files");
+ throw new IllegalArgumentException("Bad directory for validity files: " + validityDir.getAbsolutePath());
}
typeToStatusToCodes = CldrUtility.protectCollectionX(data);
typeToCodeToStatus = CldrUtility.protectCollectionX(codeToStatus);
diff --git a/tools/java/org/unicode/cldr/util/ValuePathStatus.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/ValuePathStatus.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/ValuePathStatus.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/ValuePathStatus.java
diff --git a/tools/java/org/unicode/cldr/util/VariableAndPathParser.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/VariableAndPathParser.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/VariableAndPathParser.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/VariableAndPathParser.java
diff --git a/tools/java/org/unicode/cldr/util/VariableReplacer.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/VariableReplacer.java
similarity index 62%
rename from tools/java/org/unicode/cldr/util/VariableReplacer.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/VariableReplacer.java
index be238e9..c3b890b 100644
--- a/tools/java/org/unicode/cldr/util/VariableReplacer.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/VariableReplacer.java
@@ -6,14 +6,26 @@
*/
package org.unicode.cldr.util;
-import java.util.Collections;
-import java.util.Iterator;
+import java.util.Comparator;
import java.util.Map;
+import java.util.Map.Entry;
import java.util.TreeMap;
public class VariableReplacer {
// simple implementation for now
- private Map m = new TreeMap(Collections.reverseOrder());
+ Comparator<String> LONGEST_FIRST = new Comparator<String>() {
+ @Override
+ public int compare(String o1, String o2) {
+ int result = (o2.length() - o1.length());
+ if (result != 0) {
+ return result;
+ }
+ return o1.compareTo(o2);
+ }
+
+ };
+
+ private Map<String,String> m = new TreeMap<>(LONGEST_FIRST);
// TODO - fix to do streams also, clean up implementation
@@ -26,9 +38,9 @@
String oldSource;
do {
oldSource = source;
- for (Iterator it = m.keySet().iterator(); it.hasNext();) {
- String variable = (String) it.next();
- String value = (String) m.get(variable);
+ for (Entry<String, String> entry : m.entrySet()) {
+ String variable = entry.getKey();
+ String value = entry.getValue();
source = replaceAll(source, variable, value);
}
} while (!source.equals(oldSource));
@@ -36,9 +48,12 @@
}
public String replaceAll(String source, String key, String value) {
+ // TODO optimize
while (true) {
int pos = source.indexOf(key);
- if (pos < 0) return source;
+ if (pos < 0) {
+ return source;
+ }
source = source.substring(0, pos) + value + source.substring(pos + key.length());
}
}
diff --git a/tools/java/org/unicode/cldr/util/VariantFolder.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/VariantFolder.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/VariantFolder.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/VariantFolder.java
diff --git a/tools/java/org/unicode/cldr/util/VerifyCompactNumbers.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/VerifyCompactNumbers.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/VerifyCompactNumbers.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/VerifyCompactNumbers.java
diff --git a/tools/java/org/unicode/cldr/util/VerifyZones.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/VerifyZones.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/VerifyZones.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/VerifyZones.java
diff --git a/tools/java/org/unicode/cldr/util/VettingViewer.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/VettingViewer.java
similarity index 88%
rename from tools/java/org/unicode/cldr/util/VettingViewer.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/VettingViewer.java
index 7995b0c..145b024 100644
--- a/tools/java/org/unicode/cldr/util/VettingViewer.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/VettingViewer.java
@@ -4,7 +4,6 @@
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
-import java.io.Writer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -19,6 +18,8 @@
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
+import java.util.concurrent.ForkJoinPool;
+import java.util.concurrent.RecursiveAction;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -41,7 +42,6 @@
import com.ibm.icu.impl.Relation;
import com.ibm.icu.impl.Row;
import com.ibm.icu.impl.Row.R2;
-import com.ibm.icu.text.Collator;
import com.ibm.icu.text.NumberFormat;
import com.ibm.icu.text.UnicodeSet;
import com.ibm.icu.util.ICUUncheckedIOException;
@@ -72,6 +72,8 @@
public static final Pattern ALT_PROPOSED = PatternCache.get("\\[@alt=\"[^\"]*proposed");
+ private static final boolean DEBUG_THREADS = false;
+
public static Set<CheckCLDR.CheckStatus.Subtype> OK_IF_VOTED = EnumSet.of(Subtype.sameAsEnglish);
public enum Choice {
@@ -415,7 +417,6 @@
private final SupplementalDataInfo supplementalDataInfo;
private final String baselineTitle = "Baseline";
private final String currentWinningTitle;
- private ErrorChecker errorChecker;
private final Set<String> defaultContentLocales;
@@ -442,7 +443,6 @@
this.currentWinningTitle = currentWinningTitle;
reasonsToPaths = Relation.of(new HashMap<String, Set<String>>(), HashSet.class);
- errorChecker = new DefaultErrorStatus(cldrFactory);
}
public class WritingInfo implements Comparable<WritingInfo> {
@@ -573,6 +573,8 @@
Relation<R2<SectionId, PageId>, WritingInfo> sorted,
EnumSet<Choice> choices, String localeID,
T user, Level usersLevel, boolean quick, String xpath) {
+ if(progressCallback.isStopped()) throw new RuntimeException("Requested to stop");
+ final DefaultErrorStatus errorChecker = new DefaultErrorStatus(cldrFactory);
errorChecker.initErrorStatus(sourceFile);
Matcher altProposed = ALT_PROPOSED.matcher("");
@@ -806,6 +808,199 @@
}
/**
+ * This is a context object for Vetting Viewer parallel writes.
+ * It keeps track of the input locales, other parameters, as well as the output
+ * streams.
+ *
+ * When done, appendTo() is called to append the output to the original requester.
+ * @author srl
+ *
+ */
+ private class WriteContext {
+
+ private List<String> localeNames = new ArrayList<>();
+ private List<String> localeIds = new ArrayList<>();
+ private StringBuffer[] outputs;
+ private EnumSet<Choice> choices;
+ private EnumSet<Choice> thingsThatRequireOldFile;
+ private EnumSet<Choice> ourChoicesThatRequireOldFile;
+ private T organization;
+ private VettingViewer<T>.FileInfo totals;
+ private Map<String, VettingViewer<T>.FileInfo> localeNameToFileInfo;
+ private String header;
+ private int configParallel; // parallelism. 0 means "let Java decide"
+ private int configChunkSize; // Number of locales to process at once, minimum 1
+
+ @SuppressWarnings("unchecked")
+ public WriteContext(Set<Entry<String, String>> entrySet, EnumSet<Choice> choices, T organization, FileInfo totals, Map<String, VettingViewer<T>.FileInfo> localeNameToFileInfo, String header) {
+ for(Entry<String, String> e : entrySet) {
+ localeNames.add(e.getKey());
+ localeIds.add(e.getValue());
+ }
+ int count = localeNames.size();
+ this.outputs = new StringBuffer[count];
+ for(int i=0;i<count;i++) {
+ outputs[i] = new StringBuffer();
+ }
+ if(DEBUG_THREADS) System.err.println("Initted " + this.outputs.length + " outputs");
+
+ // other data
+ this.choices = choices;
+
+ thingsThatRequireOldFile = EnumSet.of(Choice.englishChanged, Choice.missingCoverage, Choice.changedOldValue);
+ ourChoicesThatRequireOldFile = choices.clone();
+ ourChoicesThatRequireOldFile.retainAll(thingsThatRequireOldFile);
+
+ this.organization = organization;
+ this.totals = totals;
+ this.localeNameToFileInfo = localeNameToFileInfo;
+ this.header = header;
+
+ if(DEBUG_THREADS) System.err.println("writeContext for " + organization.toString() + " booted with " + count + " locales");
+
+ // setup env
+ CLDRConfig config = CLDRConfig.getInstance();
+
+ this.configParallel = Math.max(config.getProperty("CLDR_VETTINGVIEWER_PARALLEL", 0), 0);
+ if(this.configParallel < 1) {
+ this.configParallel = java.lang.Runtime.getRuntime().availableProcessors(); // matches ForkJoinPool() behavior
+ }
+ this.configChunkSize = Math.max(config.getProperty("CLDR_VETTINGVIEWER_CHUNKSIZE", 1), 1);
+ System.err.println("vv: CLDR_VETTINGVIEWER_PARALLEL="+configParallel+", CLDR_VETTINGVIEWER_CHUNKSIZE="+configChunkSize);
+ }
+
+ /**
+ * Append all of the results (one stream per locale) to the output parameter.
+ * Insert the "header" as needed.
+ * @param output
+ * @throws IOException
+ */
+ public void appendTo(Appendable output) throws IOException {
+ // all done, append all
+ char lastChar = ' ';
+
+ for(int n=0;n<outputs.length;n++) {
+ final String name = localeNames.get(n);
+ if(DEBUG_THREADS) System.err.println("Appending " + name + " - " + outputs[n].length());
+ output.append(outputs[n]);
+
+ char nextChar = name.charAt(0);
+ if (lastChar != nextChar) {
+ output.append(this.header);
+ lastChar = nextChar;
+ }
+ }
+ }
+
+ /**
+ * How many locales are represented in this context?
+ * @return
+ */
+ public int size() {
+ return localeNames.size();
+ }
+ }
+
+ /**
+ * Worker action to implement parallel Vetting Viewer writes.
+ * This takes a WriteContext as a parameter, as well as a subset of the locales
+ * to operate on.
+ *
+ * @author srl
+ *
+ */
+ private class WriteAction extends RecursiveAction {
+ private int length;
+ private int start;
+ private WriteContext context;
+
+ public WriteAction(WriteContext context) {
+ this(context, 0, context.size());
+ }
+
+ public WriteAction(WriteContext context, int start, int length) {
+ this.context = context;
+ this.start = start;
+ this.length = length;
+ if(DEBUG_THREADS) System.err.println("writeAction(…,"+start+", "+length+") of " + context.size() + " with outputCount:" + context.outputs.length);
+ }
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void compute() {
+ if(length == 0) {
+ return;
+ } else if(length <= context.configChunkSize) {
+ computeAll();
+ } else {
+ int split = length / 2;
+ // subdivide
+ invokeAll(new WriteAction(context, start, split),
+ new WriteAction(context, start+split, length-split));
+ }
+ }
+
+ /**
+ * Compute this entire task.
+ * Can call this to run this step as a single thread.
+ */
+ public void computeAll() {
+ // do this many at once
+ for(int n=start;n<(start+length);n++) {
+ computeOne(n);
+ }
+ }
+
+ /**
+ * Calculate the VettingViewer output for one locale
+ * @param n
+ */
+ void computeOne(int n) {
+ if(progressCallback.isStopped()) throw new RuntimeException("Requested to stop");
+ final String name = context.localeNames.get(n);
+ final String localeID = context.localeIds.get(n);
+ if(DEBUG_THREADS) System.err.println("writeAction.compute("+n+") - " + name + ": "+ localeID);
+ EnumSet<Choice> choices = context.choices;
+ Appendable output = context.outputs[n];
+ if(output == null) {
+ throw new NullPointerException("output " + n + " null");
+ }
+ // Initialize
+
+ CLDRFile sourceFile = cldrFactory.make(localeID, true);
+
+ CLDRFile baselineFile = null;
+ if (!context.ourChoicesThatRequireOldFile.isEmpty()) {
+ try {
+ Factory baselineFactory = CLDRConfig.getInstance().getCommonAndSeedAndMainAndAnnotationsFactory();
+ baselineFile = baselineFactory.make(localeID, true);
+ } catch (Exception e) {
+ }
+ }
+ Level level = Level.MODERN;
+ if (context.organization != null) {
+ level = StandardCodes.make().getLocaleCoverageLevel(context.organization.toString(), localeID);
+ }
+ FileInfo fileInfo = new FileInfo().getFileInfo(sourceFile, baselineFile, null, choices, localeID, context.organization, level, false);
+ context.localeNameToFileInfo.put(name, fileInfo);
+ context.totals.addAll(fileInfo);
+ if(DEBUG_THREADS) System.err.println("writeAction.compute("+n+") - got fileinfo " + name + ": "+ localeID);
+ try {
+ writeSummaryRow(output, choices, fileInfo.problemCounter, name, localeID);
+ if(DEBUG_THREADS) System.err.println("writeAction.compute("+n+") - wrote " + name + ": "+ localeID);
+
+ } catch (IOException e) {
+ System.err.println("writeAction.compute("+n+") - writeexc " + name + ": "+ localeID);
+ this.completeExceptionally(new RuntimeException("While writing " + localeID, e));
+ }
+ System.err.println("writeAction.compute("+n+") - DONE " + name + ": "+ localeID);
+ }
+ }
+
+ /**
*
* @param output
* @param header
@@ -819,7 +1014,7 @@
private void writeSummaryTable(Appendable output, String header, Level desiredLevel,
EnumSet<Choice> choices, T organization) throws IOException {
- Map<String, String> sortedNames = new TreeMap<>(Collator.getInstance());
+ Map<String, String> sortedNames = new TreeMap<>(CLDRConfig.getInstance().getCollator());
// Gather the relevant paths
// Each one will be marked with the choice that it triggered.
@@ -842,51 +1037,24 @@
return;
}
- EnumSet<Choice> thingsThatRequireOldFile = EnumSet.of(Choice.englishChanged, Choice.missingCoverage, Choice.changedOldValue);
- EnumSet<Choice> ourChoicesThatRequireOldFile = choices.clone();
- ourChoicesThatRequireOldFile.retainAll(thingsThatRequireOldFile);
output.append("<h2>Level: ").append(desiredLevel.toString()).append("</h2>");
output.append("<table class='tvs-table'>\n");
- char lastChar = ' ';
Map<String, FileInfo> localeNameToFileInfo = new TreeMap<>();
FileInfo totals = new FileInfo();
- for (Entry<String, String> entry : sortedNames.entrySet()) {
- String name = entry.getKey();
- String localeID = entry.getValue();
- // Initialize
+ Set<Entry<String,String>> entrySet = sortedNames.entrySet();
- CLDRFile sourceFile = cldrFactory.make(localeID, true);
+ WriteContext context = this.new WriteContext(entrySet, choices, organization, totals, localeNameToFileInfo, header);
- CLDRFile baselineFile = null;
- if (!ourChoicesThatRequireOldFile.isEmpty()) {
- try {
- Factory baselineFactory = CLDRConfig.getInstance().getCommonAndSeedAndMainAndAnnotationsFactory();
- baselineFile = baselineFactory.make(localeID, true);
- } catch (Exception e) {
- }
- }
- Level level = Level.MODERN;
- if (organization != null) {
- level = StandardCodes.make().getLocaleCoverageLevel(organization.toString(), localeID);
- }
- FileInfo fileInfo = new FileInfo().getFileInfo(sourceFile, baselineFile, null, choices, localeID, organization, level, false);
- localeNameToFileInfo.put(name, fileInfo);
- totals.addAll(fileInfo);
-
- char nextChar = name.charAt(0);
- if (lastChar != nextChar) {
- output.append(header);
- lastChar = nextChar;
- }
-
- writeSummaryRow(output, choices, fileInfo.problemCounter, name, localeID);
-
- if (output instanceof Writer) {
- ((Writer) output).flush();
- }
+ WriteAction writeAction = this.new WriteAction(context);
+ if (USE_FORKJOIN) {
+ ForkJoinPool.commonPool().invoke(writeAction);
+ } else {
+ System.err.println("WARNING: calling writeAction.computeAll(), as the ForkJoinPool is disabled.");
+ writeAction.computeAll();
}
- output.append(header);
+ context.appendTo(output); // write all of the results together
+ output.append(header); // add one header at the bottom
writeSummaryRow(output, choices, totals.problemCounter, "Total", null);
output.append("</table>");
if (SHOW_SUBTYPES) {
@@ -895,6 +1063,8 @@
}
}
+ private final boolean USE_FORKJOIN = false;
+
private void showSubtypes(Appendable output, Map<String, String> sortedNames,
Map<String, FileInfo> localeNameToFileInfo,
FileInfo totals,
@@ -1110,7 +1280,9 @@
String localeFound = sourceFile.getSourceLocaleIdExtended(path, status, false /* skipInheritanceMarker */);
/*
* Only count it as missing IF the (localeFound is root or codeFallback)
- * AND the aliasing didn't change the path
+ * AND the aliasing didn't change the path.
+ * Note that localeFound will be where an item with ↑↑↑ was found even though
+ * the value is actually inherited from somewhere else.
*/
if (localeFound.equals("root") || localeFound.equals(XMLSource.CODE_FALLBACK_ID)) {
result = ValuePathStatus.isMissingOk(sourceFile, path, latin, isAliased)
@@ -1176,6 +1348,14 @@
*/
public void done() {
}
+
+ /**
+ * Return true to cause an early stop.
+ * @return
+ */
+ public boolean isStopped() {
+ return false;
+ }
}
/*
@@ -1194,21 +1374,6 @@
return this;
}
- public ErrorChecker getErrorChecker() {
- return errorChecker;
- }
-
- /**
- * Select a new error checker. Must be set before running.
- *
- * @return
- *
- */
- public VettingViewer<T> setErrorChecker(ErrorChecker errorChecker) {
- this.errorChecker = errorChecker;
- return this;
- }
-
/**
* Provide the styles for inclusion into the ST <head> element.
*
diff --git a/tools/java/org/unicode/cldr/util/Visitor.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/Visitor.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/Visitor.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/Visitor.java
diff --git a/tools/java/org/unicode/cldr/util/VoteResolver.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/VoteResolver.java
similarity index 93%
rename from tools/java/org/unicode/cldr/util/VoteResolver.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/VoteResolver.java
index b3d7a42..a97bb95 100644
--- a/tools/java/org/unicode/cldr/util/VoteResolver.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/VoteResolver.java
@@ -395,8 +395,6 @@
*/
public void clear() {
for (Map.Entry<Organization, MaxCounter<T>> entry : orgToVotes.entrySet()) {
- // for (Organization org : orgToVotes.keySet()) {
- // orgToVotes.get(org).clear();
entry.getValue().clear();
}
orgToAdd.clear();
@@ -406,16 +404,12 @@
baileySet = false;
}
- public int countValuesWithVotes() {
- return totalVotes.size();
- }
-
/**
* Returns value of voted item, in case there is exactly 1.
*
* @return
*/
- public T getSingleVotedItem() {
+ private T getSingleVotedItem() {
return totalVotes.size() != 1 ? null : totalVotes.iterator().next();
}
@@ -591,7 +585,7 @@
return orgCount;
}
- public int getBestPossibleVote() {
+ private int getBestPossibleVote() {
int total = 0;
for (Map.Entry<Organization, Integer> entry : orgToMax.entrySet()) {
total += entry.getValue();
@@ -683,12 +677,15 @@
*/
private boolean usingKeywordAnnotationVoting = false;
- private final Comparator<T> ucaCollator = new Comparator<T>() {
- Collator col = Collator.getInstance(ULocale.ENGLISH);
+ private static final Collator englishCollator = Collator.getInstance(ULocale.ENGLISH).freeze();
+ /**
+ * Used for comparing objects of type T
+ */
+ private final Comparator<T> objectCollator = new Comparator<T>() {
@Override
public int compare(T o1, T o2) {
- return col.compare(String.valueOf(o1), String.valueOf(o2));
+ return englishCollator.compare(String.valueOf(o1), String.valueOf(o2));
}
};
@@ -720,28 +717,15 @@
}
/**
- * You must call this locale whenever you are using a VoteResolver with a new locale.
- * More efficient to call the CLDRLocale version.
+ * Set the number of required votes for this VoteResolver, based on the given locale and PathHeader
*
- * @param locale
- * @return
- * @deprecated need to use the other version to get path-based voting requirements right.
- */
- @Deprecated
- public VoteResolver<T> setLocale(String locale) {
- setLocale(CLDRLocale.getInstance(locale), null);
- return this;
- }
-
- /**
- * You must call this locale whenever you are using a VoteResolver with a new locale or a new Pathheader
+ * You must call this whenever you are using a VoteResolver with a new locale or a new PathHeader
*
- * @param locale
- * @return
+ * @param locale the CLDRLocale
+ * @param pathHeader the PathHeader
*/
- public VoteResolver<T> setLocale(CLDRLocale locale, PathHeader path) {
- requiredVotes = supplementalDataInfo.getRequiredVotes(locale.getLanguageLocale(), path);
- return this;
+ public void setLocale(CLDRLocale locale, PathHeader pathHeader) {
+ requiredVotes = supplementalDataInfo.getRequiredVotes(locale, pathHeader);
}
/**
@@ -866,10 +850,9 @@
values.add(value);
}
- private Set<T> values = new TreeSet<>(ucaCollator);
+ private Set<T> values = new TreeSet<>(objectCollator);
private final Comparator<T> votesThenUcaCollator = new Comparator<T>() {
- Collator col = Collator.getInstance(ULocale.ENGLISH);
/**
* Compare candidate items by vote count, highest vote first.
@@ -896,11 +879,16 @@
} else if (o2.equals(CldrUtility.INHERITANCE_MARKER)) {
return 1;
}
- return col.compare(String.valueOf(o1), String.valueOf(o2));
+ return englishCollator.compare(String.valueOf(o1), String.valueOf(o2));
}
};
/**
+ * This will be changed to true if both kinds of vote are present
+ */
+ private boolean bothInheritanceAndBaileyHadVotes = false;
+
+ /**
* Resolve the votes. Resolution entails counting votes and setting
* members for this VoteResolver, including winningStatus, winningValue,
* and many others.
@@ -965,7 +953,7 @@
* with "hard" votes for the Bailey value. Note that sortedValues and voteCount are
* both local variables.
*/
- combineInheritanceWithBaileyForVoting(sortedValues, voteCount);
+ bothInheritanceAndBaileyHadVotes = combineInheritanceWithBaileyForVoting(sortedValues, voteCount);
/*
* Adjust sortedValues and voteCount as needed for annotation keywords.
@@ -1027,13 +1015,13 @@
* @param sortedValues the set of sorted values, possibly to be modified
* @param voteCount the hash giving the vote count for each value, possibly to be modified
*
- * Reference: https://unicode.org/cldr/trac/ticket/11299
+ * @return true if both "hard" and "soft" votes existed and were combined, else false
*/
- private void combineInheritanceWithBaileyForVoting(Set<T> sortedValues, HashMap<T, Long> voteCount) {
+ private boolean combineInheritanceWithBaileyForVoting(Set<T> sortedValues, HashMap<T, Long> voteCount) {
if (organizationToValueAndVote == null
|| organizationToValueAndVote.baileySet == false
|| organizationToValueAndVote.baileyValue == null) {
- return;
+ return false;
}
T hardValue = organizationToValueAndVote.baileyValue;
T softValue = (T) CldrUtility.INHERITANCE_MARKER;
@@ -1041,31 +1029,49 @@
* Check containsKey before get, to avoid NullPointerException.
*/
if (!voteCount.containsKey(hardValue) || !voteCount.containsKey(softValue)) {
- return;
+ return false;
}
long hardCount = voteCount.get(hardValue);
long softCount = voteCount.get(softValue);
if (hardCount == 0 || softCount == 0) {
- return;
+ return false;
}
- T combValue = (hardCount > softCount) ? hardValue : softValue;
- T skipValue = (hardCount > softCount) ? softValue : hardValue;
- long combinedCount = hardCount + softCount;
+ reallyCombineInheritanceWithBailey(sortedValues, voteCount, hardValue, softValue, hardCount, softCount);
+ return true;
+ }
+
+ /**
+ * Given that both "hard" and "soft" votes exist, combine them
+ *
+ * @param sortedValues the set of sorted values, to be modified
+ * @param voteCount the hash giving the vote count for each value, to be modified
+ * @param hardValue the bailey value
+ * @param softValue the inheritance marker
+ * @param hardCount the number of votes for hardValue
+ * @param softCount the number of votes for softValue
+ */
+ private void reallyCombineInheritanceWithBailey(Set<T> sortedValues, HashMap<T, Long> voteCount,
+ T hardValue, T softValue, long hardCount, long softCount) {
+ final T combValue = (hardCount > softCount) ? hardValue : softValue;
+ final T skipValue = (hardCount > softCount) ? softValue : hardValue;
+ final long combinedCount = hardCount + softCount;
voteCount.put(combValue, combinedCount);
voteCount.put(skipValue, 0L);
/*
- * Sort again, and omit skipValue
+ * Sort again
*/
List<T> list = new ArrayList<>(sortedValues);
- Collator col = Collator.getInstance(ULocale.ENGLISH);
Collections.sort(list, (v1, v2) -> {
- long c1 = (voteCount != null) ? voteCount.get(v1) : totals.getCount(v1);
- long c2 = (voteCount != null) ? voteCount.get(v2) : totals.getCount(v2);
+ long c1 = voteCount.get(v1);
+ long c2 = voteCount.get(v2);
if (c1 != c2) {
return (c1 < c2) ? 1 : -1; // decreasing numeric order (most votes wins)
}
- return col.compare(String.valueOf(v1), String.valueOf(v2));
+ return englishCollator.compare(String.valueOf(v1), String.valueOf(v2));
});
+ /*
+ * Omit skipValue
+ */
sortedValues.clear();
for (T value : list) {
if (!value.equals(skipValue)) {
@@ -1202,7 +1208,6 @@
*/
private void resortValuesBasedOnAdjustedVoteCounts(Set<T> sortedValues, HashMap<T, Long> voteCount) {
List<T> list = new ArrayList<>(sortedValues);
- Collator col = Collator.getInstance(ULocale.ENGLISH);
Collections.sort(list, (v1, v2) -> {
long c1 = voteCount.get(v1), c2 = voteCount.get(v2);
if (c1 != c2) {
@@ -1213,7 +1218,7 @@
if (size1 != size2) {
return (size1 < size2) ? -1 : 1; // increasing order of size (smallest set wins)
}
- return col.compare(String.valueOf(v1), String.valueOf(v2));
+ return englishCollator.compare(String.valueOf(v1), String.valueOf(v2));
});
sortedValues.clear();
for (T value : list) {
@@ -1276,7 +1281,7 @@
if (newWinner == null) {
newWinner = value;
voteCount.put(newWinner, voteCount.get(oldWinner) + 2); // more than oldWinner and newSecond
- } else if (newSecond == null) {
+ } else if (newSecond == null) { // TODO: fix redundant null check: newSecond can only be null
newSecond = value;
voteCount.put(newSecond, voteCount.get(oldWinner) + 1); // more than oldWinner, less than newWinner
break;
@@ -1358,7 +1363,7 @@
return Status.unconfirmed;
}
- public Status getPossibleWinningStatus() {
+ private Status getPossibleWinningStatus() {
if (!resolved) {
resolveVotes();
}
@@ -1399,7 +1404,7 @@
*
* @return
*/
- public T getOValue() {
+ private T getOValue() {
if (!resolved) {
resolveVotes();
}
@@ -1412,7 +1417,7 @@
*
* @return
*/
- public T getNValue() {
+ private T getNValue() {
if (!resolved) {
resolveVotes();
}
@@ -1420,14 +1425,6 @@
}
/**
- * @deprecated
- */
- @Deprecated
- public T getNextToWinningValue() {
- return getNValue();
- }
-
- /**
* Returns Winning Value as described in http://cldr.unicode.org/index/process#TOC-Voting-Process.
* Not always the same as the O Value.
*
@@ -1794,9 +1791,6 @@
}
public static class UnknownVoterException extends RuntimeException {
- /**
- *
- */
private static final long serialVersionUID = 3430877787936678609L;
int voter;
@@ -1808,13 +1802,9 @@
public String toString() {
return "Unknown voter: " + voter;
}
-
- public int getVoter() {
- return voter;
- }
}
- public static String fixBogusDraftStatusValues(String attributeValue) {
+ private static String fixBogusDraftStatusValues(String attributeValue) {
if (attributeValue == null) return "approved";
if ("confirmed".equals(attributeValue)) return "approved";
if ("true".equals(attributeValue)) return "unconfirmed";
@@ -1822,6 +1812,9 @@
return attributeValue;
}
+ /*
+ * TODO: either delete this or explain why it's needed
+ */
public int size() {
return values.size();
}
@@ -1862,29 +1855,22 @@
if (!resolved) {
resolveVotes();
}
-
- T win = getWinningValue();
T orgVote = organizationToValueAndVote.getOrgVoteRaw(orgOfUser);
-
- if (!equalsOrgVote(win, orgVote)) {
+ if (!equalsOrgVote(winningValue, orgVote)) {
// We voted and lost
return VoteStatus.losing;
}
-
- Status winStatus = getWinningStatus();
- boolean provisionalOrWorse = Status.provisional.compareTo(winStatus) >= 0;
-
- // get the number of other values with votes.
- int itemsWithVotes = organizationToValueAndVote.countValuesWithVotes();
- T singleVotedItem = organizationToValueAndVote.getSingleVotedItem();
-
+ final int itemsWithVotes = countDistinctValuesWithVotes();
if (itemsWithVotes > 1) {
- // If there are votes for two items, we should look at them.
+ // If there are votes for two "distinct" items, we should look at them.
return VoteStatus.disputed;
- } else if (!equalsOrgVote(win, singleVotedItem)) { // singleVotedItem != null && ...
+ }
+ final T singleVotedItem = organizationToValueAndVote.getSingleVotedItem();
+ if (!equalsOrgVote(winningValue, singleVotedItem)) {
// If someone voted but didn't win
return VoteStatus.disputed;
- } else if (provisionalOrWorse) {
+ }
+ if (Status.provisional.compareTo(winningStatus) >= 0) {
// If the value is provisional, it needs more votes.
return VoteStatus.provisionalOrWorse;
} else if (itemsWithVotes == 0) {
@@ -1896,11 +1882,40 @@
}
}
+ /**
+ * Should these two values be treated as equivalent for getStatusForOrganization?
+ *
+ * @param value
+ * @param orgVote
+ * @return true if they are equivalent, false if they are distinct
+ */
private boolean equalsOrgVote(T value, T orgVote) {
return orgVote == null
|| orgVote.equals(value)
- || CldrUtility.INHERITANCE_MARKER.equals(value)
- && orgVote.equals(organizationToValueAndVote.baileyValue);
+ || (CldrUtility.INHERITANCE_MARKER.equals(value)
+ && orgVote.equals(organizationToValueAndVote.baileyValue))
+ || (CldrUtility.INHERITANCE_MARKER.equals(orgVote)
+ && value.equals(organizationToValueAndVote.baileyValue));
+ }
+
+ /**
+ * Count the distinct values that have votes.
+ *
+ * For this purpose, if there are both votes for inheritance and
+ * votes for the specific value matching the inherited (bailey) value,
+ * they are not "distinct": count them as a single value.
+ *
+ * @return the number of distinct values
+ */
+ private int countDistinctValuesWithVotes() {
+ if (!resolved) { // must be resolved for bothInheritanceAndBaileyHadVotes
+ throw new RuntimeException("countDistinctValuesWithVotes !resolved");
+ }
+ int count = organizationToValueAndVote.totalVotes.size();
+ if (count > 1 && bothInheritanceAndBaileyHadVotes) {
+ return count - 1; // prevent showing as "disputed" in dashboard
+ }
+ return count;
}
/**
diff --git a/tools/java/org/unicode/cldr/util/WikipediaOfficialLanguages.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/WikipediaOfficialLanguages.java
similarity index 99%
rename from tools/java/org/unicode/cldr/util/WikipediaOfficialLanguages.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/WikipediaOfficialLanguages.java
index 866d711..7918091 100644
--- a/tools/java/org/unicode/cldr/util/WikipediaOfficialLanguages.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/WikipediaOfficialLanguages.java
@@ -223,7 +223,7 @@
CLDRConfig testInfo = ToolConfig.getToolInstance();
CLDRFile english = testInfo.getEnglish();
SupplementalDataInfo supplementalDataInfo = testInfo.getSupplementalDataInfo();
- StandardCodes sc = testInfo.getStandardCodes();
+ StandardCodes sc = StandardCodes.make();
Set<String> locales = sc.getLocaleCoverageLocales("google"); // for now, restrict this
System.out.println("Cc\tCountry\tLc\tLanguage Name\tWiki status (heuristic)\tCLDR status\t\tWiki notes");
diff --git a/tools/java/org/unicode/cldr/util/With.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/With.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/With.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/With.java
diff --git a/tools/java/org/unicode/cldr/util/XChoiceFormat.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/XChoiceFormat.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/XChoiceFormat.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/XChoiceFormat.java
diff --git a/tools/java/org/unicode/cldr/util/XEquivalenceClass.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/XEquivalenceClass.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/XEquivalenceClass.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/XEquivalenceClass.java
diff --git a/tools/java/org/unicode/cldr/util/XEquivalenceMap.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/XEquivalenceMap.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/XEquivalenceMap.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/XEquivalenceMap.java
diff --git a/tools/java/org/unicode/cldr/util/XListFormatter.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/XListFormatter.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/XListFormatter.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/XListFormatter.java
diff --git a/tools/java/org/unicode/cldr/util/XMLFileReader.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/XMLFileReader.java
similarity index 86%
rename from tools/java/org/unicode/cldr/util/XMLFileReader.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/XMLFileReader.java
index 43f3fea..c3bcfd3 100644
--- a/tools/java/org/unicode/cldr/util/XMLFileReader.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/XMLFileReader.java
@@ -11,9 +11,7 @@
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.io.InputStreamReader;
import java.io.Reader;
-import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
@@ -24,6 +22,8 @@
import org.xml.sax.InputSource;
import org.xml.sax.Locator;
import org.xml.sax.SAXException;
+import org.xml.sax.SAXNotRecognizedException;
+import org.xml.sax.SAXNotSupportedException;
import org.xml.sax.SAXParseException;
import org.xml.sax.XMLReader;
import org.xml.sax.ext.DeclHandler;
@@ -91,30 +91,14 @@
* @return list of alternating values.
*/
public XMLFileReader read(String fileName, int handlers, boolean validating) {
- try (InputStream fis0 = new FileInputStream(fileName);
- InputStream fis = new StripUTF8BOMInputStream(fis0);
+ try (InputStream fis = new FileInputStream(fileName);
) {
- return read(fileName, fis, handlers, validating);
+ return read(fileName, new InputSource(fis), handlers, validating);
} catch (IOException e) {
throw (IllegalArgumentException) new IllegalArgumentException("Can't read " + fileName).initCause(e);
}
}
- /**
- * read from a Stream
- * @param fileName
- * @param handlers
- * @param validating
- * @param fis
- * @return
- */
- public XMLFileReader read(String fileName, InputStream fis, int handlers, boolean validating) {
- try (InputStreamReader inputStreamReader = new InputStreamReader(fis, Charset.forName("UTF-8"))) {
- return read(fileName, inputStreamReader, handlers, validating);
- } catch (IOException e) {
- throw new ICUUncheckedIOException(e);
- }
- }
/**
* read from a CLDR resource
@@ -127,7 +111,7 @@
*/
public XMLFileReader readCLDRResource(String resName, int handlers, boolean validating) {
try (InputStream inputStream = CldrUtility.getInputStream(resName)) {
- return read(resName, inputStream, handlers, validating);
+ return read(resName, new InputSource(inputStream), handlers, validating);
} catch (IOException e) {
throw new ICUUncheckedIOException(e);
}
@@ -144,7 +128,7 @@
*/
public XMLFileReader read(String resName, Class<?> callingClass, int handlers, boolean validating) {
try (InputStream inputStream = CldrUtility.getInputStream(callingClass, resName)) {
- return read(resName, inputStream, handlers, validating);
+ return read(resName, new InputSource(inputStream), handlers, validating);
} catch (IOException e) {
throw new ICUUncheckedIOException(e);
}
@@ -155,38 +139,54 @@
return this;
}
+ public XMLFileReader read(String systemID, InputSource insrc, int handlers, boolean validating) {
+ read(systemID, insrc, handlers, validating, DEFAULT_DECLHANDLER.reset());
+ return this;
+ }
+
+ public static void read(String systemID, InputStream instr, int handlers, boolean validating, AllHandler allHandler) {
+ InputSource is = new InputSource(instr);
+ read(systemID, is, handlers, validating, allHandler);
+ }
+
public static void read(String systemID, Reader reader, int handlers, boolean validating, AllHandler allHandler) {
+ InputSource is = new InputSource(reader);
+ read(systemID, is, handlers, validating, allHandler);
+ }
+
+ public static void read(String systemID, InputSource is, int handlers, boolean validating, AllHandler allHandler) {
try {
- XMLReader xmlReader = createXMLReader(validating);
- if ((handlers & CONTENT_HANDLER) != 0) {
- xmlReader.setContentHandler(allHandler);
- }
- if ((handlers & ERROR_HANDLER) != 0) {
- xmlReader.setErrorHandler(allHandler);
- }
- if ((handlers & LEXICAL_HANDLER) != 0) {
- xmlReader.setProperty("http://xml.org/sax/properties/lexical-handler", allHandler);
- }
- if ((handlers & DECLARATION_HANDLER) != 0) {
- xmlReader.setProperty("http://xml.org/sax/properties/declaration-handler", allHandler);
- }
- InputSource is = new InputSource(reader);
+ XMLReader xmlReader = createXMLReader(handlers, validating, allHandler);
is.setSystemId(systemID);
try {
xmlReader.parse(is);
} catch (AbortException e) {
} // ok
- reader.close();
} catch (SAXParseException e) {
throw (IllegalArgumentException) new IllegalArgumentException("Can't read " + systemID + "\tline:\t"
+ e.getLineNumber()).initCause(e);
- } catch (SAXException e) {
- throw (IllegalArgumentException) new IllegalArgumentException("Can't read " + systemID).initCause(e);
- } catch (IOException e) {
+ } catch (SAXException | IOException e) {
throw (IllegalArgumentException) new IllegalArgumentException("Can't read " + systemID).initCause(e);
}
}
+ private static final XMLReader createXMLReader(int handlers, boolean validating, AllHandler allHandler) throws SAXNotRecognizedException, SAXNotSupportedException {
+ XMLReader xmlReader = createXMLReader(validating);
+ if ((handlers & CONTENT_HANDLER) != 0) {
+ xmlReader.setContentHandler(allHandler);
+ }
+ if ((handlers & ERROR_HANDLER) != 0) {
+ xmlReader.setErrorHandler(allHandler);
+ }
+ if ((handlers & LEXICAL_HANDLER) != 0) {
+ xmlReader.setProperty("http://xml.org/sax/properties/lexical-handler", allHandler);
+ }
+ if ((handlers & DECLARATION_HANDLER) != 0) {
+ xmlReader.setProperty("http://xml.org/sax/properties/declaration-handler", allHandler);
+ }
+ return xmlReader;
+ }
+
public interface AllHandler extends ContentHandler, LexicalHandler, DeclHandler, ErrorHandler {
}
@@ -502,41 +502,6 @@
}
}
-// class StripUTF8BOMInputStream does the same thing
-// public static final class FilterBomInputStream extends InputStream {
-// InputStream contents;
-// boolean first = true;
-//
-// @Override
-// public void close() throws IOException {
-// contents.close();
-// }
-//
-// public FilterBomInputStream(InputStream fis) {
-// contents = fis;
-// }
-//
-// @Override
-// public int read() throws IOException {
-// int x = contents.read();
-// if (first) {
-// first = false;
-// // 0xEF,0xBB,0xBF
-// // SKIP bom
-// if (x == 0xEF) {
-// int y = contents.read();
-// if (y == 0xBB) {
-// int z = contents.read();
-// if (z == 0xBF) {
-// x = contents.read();
-// }
-// }
-// }
-// }
-// return x;
-// }
-// }
-
public static List<Pair<String, String>> loadPathValues(String filename, List<Pair<String, String>> data, boolean validating) {
return loadPathValues(filename, data, validating, false);
}
diff --git a/tools/java/org/unicode/cldr/util/XMLNormalizingLoader.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/XMLNormalizingLoader.java
similarity index 98%
rename from tools/java/org/unicode/cldr/util/XMLNormalizingLoader.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/XMLNormalizingLoader.java
index 2d169d0..68b5dc2 100644
--- a/tools/java/org/unicode/cldr/util/XMLNormalizingLoader.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/XMLNormalizingLoader.java
@@ -4,8 +4,6 @@
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
@@ -55,7 +53,7 @@
private static final boolean DEBUG = false;
enum SupplementalStatus {
NEVER_SET, IS_SUMPPLEMENTAL, NOT_SUPPLEMENTAL
- };
+ }
private static class XMLSourceCacheKey {
private final String localeId;
@@ -152,13 +150,12 @@
public static XMLSource loadXMLFile(File f, String localeId, DraftStatus minimalDraftStatus) {
// use try-with-resources statement
try (
- InputStream fis = new StripUTF8BOMInputStream(new FileInputStream(f));
- InputStreamReader reader = new InputStreamReader(fis, Charset.forName("UTF-8"))
+ InputStream fis = new FileInputStream(f);
) {
- String fullFileName = f.getCanonicalPath();
+ String fullFileName = PathUtilities.getNormalizedPathString(f);
XMLSource source = new SimpleXMLSource(localeId);
XMLNormalizingHandler XML_HANDLER = new XMLNormalizingHandler(source, minimalDraftStatus);
- XMLFileReader.read(fullFileName, reader, -1, true, XML_HANDLER);
+ XMLFileReader.read(fullFileName, fis, -1, true, XML_HANDLER);
if (XML_HANDLER.supplementalStatus == SupplementalStatus.NEVER_SET) {
throw new IllegalArgumentException("root of file must be either ldml or supplementalData");
}
diff --git a/tools/java/org/unicode/cldr/util/XMLSource.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/XMLSource.java
similarity index 89%
rename from tools/java/org/unicode/cldr/util/XMLSource.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/XMLSource.java
index 579d446..7be24be 100644
--- a/tools/java/org/unicode/cldr/util/XMLSource.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/XMLSource.java
@@ -291,7 +291,6 @@
return oldPath + "/" + relativePath.replace('\'', '"');
}
- // static final String ATTRIBUTE_PATTERN = "\\[@([^=]+)=\"([^\"]*)\"]";
static final Pattern MIDDLE_OF_ATTRIBUTE_VALUE = PatternCache.get("[^\"]*\"\\]");
public static String stripLastElement(String oldPath) {
@@ -310,7 +309,6 @@
@Override
public String toString() {
return
- // "oldLocaleID: " + oldLocaleID + ", " +
"newLocaleID: " + newLocaleID + ",\t"
+
"oldPath: " + oldPath + ",\n\t"
@@ -347,22 +345,6 @@
attributesOld.put(attribute, attributesFull.get(attribute));
}
String result = partsOld.toString();
-
- // for now, just assume check that there are no goofy bits
- // if (!fullPath.startsWith(newPath)) {
- // if (false) {
- // throw new IllegalArgumentException("Failure to fix path. "
- // + Utility.LINE_SEPARATOR + "\tfullPath: " + fullPath
- // + Utility.LINE_SEPARATOR + "\toldPath: " + oldPath
- // + Utility.LINE_SEPARATOR + "\tnewPath: " + newPath
- // );
- // }
- // String tempResult = oldPath + fullPath.substring(newPath.length());
- // if (!result.equals(tempResult)) {
- // System.err.println("fullPath: " + fullPath + Utility.LINE_SEPARATOR + "\toldPath: "
- // + oldPath + Utility.LINE_SEPARATOR + "\tnewPath: " + newPath
- // + Utility.LINE_SEPARATOR + "\tnewPath: " + result);
- // }
return result;
}
@@ -471,21 +453,11 @@
* Clear "any internal caches" (or only aliasCache?) for this XMLSource.
*
* Called only by XMLSource.putValueAtPath and XMLSource.removeValueAtPath
+ *
+ * Note: this method does not affect other caches: reverseAliasCache, getFullPathAtDPathCache, getSourceLocaleIDCache
*/
private void clearCache() {
aliasCache = null;
-
- /*
- * TODO: what about the other caches: reverseAliasCache, getFullPathAtDPathCache, getSourceLocaleIDCache?
- * Reference: https://unicode-org.atlassian.net/browse/CLDR-12020
- */
- if (false) {
- reverseAliasCache = null;
- if (false && isResolving()) {
- ((XMLSource.ResolvingSource) this).getFullPathAtDPathCache = null;
- ((XMLSource.ResolvingSource) this).getSourceLocaleIDCache = null;
- }
- }
}
/**
@@ -687,7 +659,6 @@
StringBuffer result = new StringBuffer();
for (Iterator<String> it = iterator(matcher); it.hasNext();) {
String path = it.next();
- // if (!matcher.reset(path).matches()) continue;
String value = getValueAtDPath(path);
String fullpath = getFullPathAtDPath(path);
result.append(fullpath).append(" =\t ").append(value).append(CldrUtility.LINE_SEPARATOR);
@@ -757,10 +728,6 @@
}
result = getSource(fullStatus).getValueAtDPath(fullStatus.pathWhereFound);
}
-// if (result == null && xpath.contains("[@alt=")) {
-// String path2 = XPathParts.getPathWithoutAlt(xpath);
-// return getValueAtDPath(path2); // recurse
-// }
if (TRACE_VALUE) System.out.println("\t*value: " + result);
return result;
}
@@ -770,30 +737,6 @@
return source == null ? constructedItems : source;
}
- // public String _getValueAtDPath(String xpath) {
- // XMLSource currentSource = mySource;
- // String result;
- // ParentAndPath parentAndPath = new ParentAndPath();
- //
- // parentAndPath.set(xpath, currentSource, getLocaleID()).next();
- // while (true) {
- // if (parentAndPath.parentID == null) {
- // return constructedItems.getValueAtDPath(xpath);
- // }
- // currentSource = make(parentAndPath.parentID); // factory.make(parentAndPath.parentID, false).dataSource;
- // if (TRACE_VALUE) System.out.println("xpath: " + parentAndPath.path
- // + Utility.LINE_SEPARATOR + "\tsource: " + currentSource.getClass().getName()
- // + Utility.LINE_SEPARATOR + "\tlocale: " + currentSource.getLocaleID()
- // );
- // result = currentSource.getValueAtDPath(parentAndPath.path);
- // if (result != null) {
- // if (TRACE_VALUE) System.out.println("result: " + result);
- // return result;
- // }
- // parentAndPath.next();
- // }
- // }
-
Map<String, String> getFullPathAtDPathCache = new HashMap<>();
@Override
@@ -816,14 +759,6 @@
result = getFullPath(xpath, fullStatus, fullPathWhereFound);
}
}
- //
- // result = getFullPathAtDPathCache.get(xpath);
- // if (result == null) {
- // if (getCachedKeySet().contains(xpath)) {
- // result = _getFullPathAtDPath(xpath);
- // getFullPathAtDPathCache.put(xpath, result);
- // }
- // }
return result;
}
@@ -858,7 +793,6 @@
Map<String, String> fullAttributes = fullPathWhereFoundParts.getAttributes(i);
Map<String, String> attributes = pathWhereFoundParts.getAttributes(i);
if (!attributes.equals(fullAttributes)) { // add differences
- //Map<String, String> targetAttributes = xpathParts.getAttributes(i + offset);
for (String key : fullAttributes.keySet()) {
if (!attributes.containsKey(key)) {
String value = fullAttributes.get(key);
@@ -909,15 +843,13 @@
/*
* Skip the cache in the special and relatively rare cases where skipInheritanceMarker is false.
*
- * TODO: consider using a cache also when skipInheritanceMarker is false.
+ * Note: we might consider using a cache also when skipInheritanceMarker is false.
* Can't use the same cache for skipInheritanceMarker true and false.
* Could use two caches, or add skipInheritanceMarker to the key (append 'T' or 'F' to xpath).
* The situation is complicated by use of getSourceLocaleIDCache also in valueChanged.
*
* There is no caching problem with skipFirst, since that is always false here -- though
* getBaileyValue could use a cache if there was one for skipFirst true.
- *
- * Reference: https://unicode.org/cldr/trac/ticket/11765
*/
if (!skipInheritanceMarker || !cachingIsEnabled ) {
return getPathLocation(xpath, false /* skipFirst */, skipInheritanceMarker);
@@ -1194,8 +1126,6 @@
private Set<String> getCachedKeySet() {
if (cachedKeySet == null) {
cachedKeySet = fillKeys();
- // System.out.println("CachedKeySet: " + cachedKeySet);
- // cachedKeySet.addAll(constructedItems.keySet());
cachedKeySet = Collections.unmodifiableSet(cachedKeySet);
}
return cachedKeySet;
@@ -1430,18 +1360,12 @@
Map<String, Set<String>> countries_zoneSet = sc.getCountryToZoneSet();
Map<String, String> zone_countries = sc.getZoneToCounty();
- // Set types = sc.getAvailableTypes();
for (int typeNo = 0; typeNo <= CLDRFile.TZ_START; ++typeNo) {
String type = CLDRFile.getNameName(typeNo);
- // int typeNo = typeNameToCode(type);
- // if (typeNo < 0) continue;
String type2 = (typeNo == CLDRFile.CURRENCY_SYMBOL) ? CLDRFile.getNameName(CLDRFile.CURRENCY_NAME)
: (typeNo >= CLDRFile.TZ_START) ? "tzid"
: type;
Set<String> codes = sc.getSurveyToolDisplayCodes(type2);
- // String prefix = CLDRFile.NameTable[typeNo][0];
- // String postfix = CLDRFile.NameTable[typeNo][1];
- // String prefix2 = "//ldml" + prefix.substring(6); // [@version=\"" + GEN_VERSION + "\"]
for (Iterator<String> codeIt = codes.iterator(); codeIt.hasNext();) {
String code = codeIt.next();
String value = code;
@@ -1452,24 +1376,15 @@
if (s != null && s.size() == 1) continue;
}
value = TimezoneFormatter.getFallbackName(value);
+ } else if (typeNo == CLDRFile.LANGUAGE_NAME) {
+ if (ROOT_ID.equals(value)) {
+ continue;
+ }
}
addFallbackCode(typeNo, code, value);
}
}
- // Add commonlyUsed
- // //ldml/dates/timeZoneNames/metazone[@type="New_Zealand"]/commonlyUsed
- // should get this from supplemental metadata, but for now...
- // String[] metazones =
- // "Acre Afghanistan Africa_Central Africa_Eastern Africa_FarWestern Africa_Southern Africa_Western Aktyubinsk Alaska Alaska_Hawaii Almaty Amazon America_Central America_Eastern America_Mountain America_Pacific Anadyr Aqtau Aqtobe Arabian Argentina Argentina_Western Armenia Ashkhabad Atlantic Australia_Central Australia_CentralWestern Australia_Eastern Australia_Western Azerbaijan Azores Baku Bangladesh Bering Bhutan Bolivia Borneo Brasilia British Brunei Cape_Verde Chamorro Changbai Chatham Chile China Choibalsan Christmas Cocos Colombia Cook Cuba Dacca Davis Dominican DumontDUrville Dushanbe Dutch_Guiana East_Timor Easter Ecuador Europe_Central Europe_Eastern Europe_Western Falkland Fiji French_Guiana French_Southern Frunze Gambier GMT Galapagos Georgia Gilbert_Islands Goose_Bay Greenland_Central Greenland_Eastern Greenland_Western Guam Gulf Guyana Hawaii_Aleutian Hong_Kong Hovd India Indian_Ocean Indochina Indonesia_Central Indonesia_Eastern Indonesia_Western Iran Irkutsk Irish Israel Japan Kamchatka Karachi Kashgar Kazakhstan_Eastern Kazakhstan_Western Kizilorda Korea Kosrae Krasnoyarsk Kuybyshev Kwajalein Kyrgystan Lanka Liberia Line_Islands Long_Shu Lord_Howe Macau Magadan Malaya Malaysia Maldives Marquesas Marshall_Islands Mauritius Mawson Mongolia Moscow Myanmar Nauru Nepal New_Caledonia New_Zealand Newfoundland Niue Norfolk North_Mariana Noronha Novosibirsk Omsk Oral Pakistan Palau Papua_New_Guinea Paraguay Peru Philippines Phoenix_Islands Pierre_Miquelon Pitcairn Ponape Qyzylorda Reunion Rothera Sakhalin Samara Samarkand Samoa Seychelles Shevchenko Singapore Solomon South_Georgia Suriname Sverdlovsk Syowa Tahiti Tajikistan Tashkent Tbilisi Tokelau Tonga Truk Turkey Turkmenistan Tuvalu Uralsk Uruguay Urumqi Uzbekistan Vanuatu Venezuela Vladivostok Volgograd Vostok Wake Wallis Yakutsk Yekaterinburg Yerevan Yukon".split("\\s+");
- // for (String metazone : metazones) {
- // constructedItems.putValueAtPath(
- // "//ldml/dates/timeZoneNames/metazone[@type=\""
- // + metazone
- // + "\"]/commonlyUsed",
- // "false");
- // }
-
String[] extraCodes = {
"ar_001",
"de_AT", "de_CH",
@@ -1524,7 +1439,6 @@
addFallbackCode("//ldml/dates/calendars/calendar[@type=\"gregorian\"]/eras/eraNarrow/era[@type=\"0\"]", "BCE", "variant");
addFallbackCode("//ldml/dates/calendars/calendar[@type=\"gregorian\"]/eras/eraNarrow/era[@type=\"1\"]", "CE", "variant");
- //String defaultCurrPattern = "¤ #,##0.00"; // use root value; can't get the locale's currency pattern in this static context; "" and "∅∅∅" cause errors.
for (int i = 0; i < keyDisplayNames.length; ++i) {
constructedItems.putValueAtPath(
"//ldml/localeDisplayNames/keys/key" +
@@ -1538,25 +1452,8 @@
+ "[@type=\"" + typeDisplayNames[i][0] + "\"]",
typeDisplayNames[i][0]);
}
- // String[][] relativeValues = {
- // // {"Three days ago", "-3"},
- // { "The day before yesterday", "-2" },
- // { "Yesterday", "-1" },
- // { "Today", "0" },
- // { "Tomorrow", "1" },
- // { "The day after tomorrow", "2" },
- // // {"Three days from now", "3"},
- // };
- // for (int i = 0; i < relativeValues.length; ++i) {
- // constructedItems.putValueAtPath(
- // "//ldml/dates/calendars/calendar[@type=\"gregorian\"]/fields/field[@type=\"day\"]/relative[@type=\""
- // + relativeValues[i][1] + "\"]",
- // relativeValues[i][0]);
- // }
-
constructedItems.freeze();
allowDuplicates = Collections.unmodifiableMap(allowDuplicates);
- // System.out.println("constructedItems: " + constructedItems);
}
private static void addFallbackCode(int typeNo, String code, String value) {
@@ -1564,7 +1461,6 @@
}
private static void addFallbackCode(int typeNo, String code, String value, String alt) {
- // String path = prefix + code + postfix;
String fullpath = CLDRFile.getKey(typeNo, code);
String distinguishingPath = addFallbackCodeToConstructedItems(fullpath, value, alt);
if (typeNo == CLDRFile.LANGUAGE_NAME || typeNo == CLDRFile.SCRIPT_NAME || typeNo == CLDRFile.TERRITORY_NAME) {
@@ -1582,7 +1478,6 @@
StringBuffer fullpathBuf = new StringBuffer(fullpath);
fullpath = fullpathBuf.insert(fullpathBuf.lastIndexOf("]") + 1, "[@alt=\"" + alt + "\"]").toString();
}
- // System.out.println(fullpath + "\t=> " + code);
return constructedItems.putValueAtPath(fullpath, value);
}
@@ -1828,4 +1723,37 @@
public static XMLSource getFrozenInstance(String localeId, List<File> dirs, DraftStatus minimalDraftStatus) {
return XMLNormalizingLoader.getFrozenInstance(localeId, dirs, minimalDraftStatus);
}
+
+ /**
+ * Does the value in question either match or inherent the current value in this XMLSource?
+ *
+ * To match, the value in question and the current value must be non-null and equal.
+ *
+ * To inherit the current value, the value in question must be INHERITANCE_MARKER
+ * and the current value must equal the bailey value.
+ *
+ * @param value the value in question
+ * @param curValue the current value, that is, getValueAtDPath(xpathString)
+ * @param xpathString the path identifier
+ * @return true if it matches or inherits, else false
+ */
+ public boolean equalsOrInheritsCurrentValue(String value, String curValue, String xpathString) {
+ if (value == null || curValue == null) {
+ return false;
+ }
+ if (value.equals(curValue)) {
+ return true;
+ }
+ if (value.equals(CldrUtility.INHERITANCE_MARKER)) {
+ String baileyValue = getBaileyValue(xpathString, null, null);
+ if (baileyValue == null) {
+ /* This may happen for Invalid XPath; InvalidXPathException may be thrown. */
+ return false;
+ }
+ if (curValue.equals(baileyValue)) {
+ return true;
+ }
+ }
+ return false;
+ }
}
diff --git a/tools/java/org/unicode/cldr/util/XMLUploader.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/XMLUploader.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/XMLUploader.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/XMLUploader.java
diff --git a/tools/java/org/unicode/cldr/util/XMLValidator.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/XMLValidator.java
similarity index 72%
rename from tools/java/org/unicode/cldr/util/XMLValidator.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/XMLValidator.java
index c155ee2..c2416a7 100644
--- a/tools/java/org/unicode/cldr/util/XMLValidator.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/XMLValidator.java
@@ -17,6 +17,9 @@
import java.io.FileReader;
import java.io.FilenameFilter;
import java.io.IOException;
+import java.net.MalformedURLException;
+import java.util.ArrayList;
+import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
@@ -31,14 +34,25 @@
@CLDRTool(alias = "validate", description = "Check XML files for validity")
public class XMLValidator {
- public static boolean quiet = false;
- public static boolean parseonly = false;
+ public boolean quiet = false;
+ public boolean parseonly = false;
+ public boolean justCheckBom = false;
+
+ public XMLValidator(boolean quiet, boolean parseonly, boolean justCheckBom) {
+ this.quiet = quiet;
+ this.parseonly = parseonly;
+ this.justCheckBom = justCheckBom;
+ }
public static void main(String[] args) throws IOException {
+ boolean quiet = false;
+ boolean parseonly = false;
+ boolean justCheckBom = false;
if (args.length == 0) {
System.out.println("No files specified. Validation failed. Use --help for help.");
return;
}
+ List<File> toCheck = new ArrayList<>();
for (int i = 0; i < args.length; i++) {
if (args[i].equals("-q") || args[i].equals("--quiet")) {
quiet = true;
@@ -46,26 +60,41 @@
usage();
return;
} else if (args[i].equals("--parseonly")) {
- System.err.println("# DTD Validation is disabled. Will only check for well formed XML.");
parseonly = true;
+ } else if (args[i].equals("--justCheckBom")) {
+ justCheckBom = true;
} else {
File f = new File(args[i]);
if (f.isDirectory()) {
- parseDirectory(f);
+ addDirectory(f, toCheck);
+ } else if(f.canRead()) {
+ toCheck.add(f);
} else {
- if (!quiet) System.out.println("Processing file " + args[i]);
- new fileParserThread(args[i]).run();
+ throw(new IllegalArgumentException("Not a regular file: " + f.getAbsolutePath()));
}
}
}
if (parseonly) {
- System.err.println("# DTD Validation is disabled. Only checked for well formed XML.");
+ System.err.println("# DTD Validation is disabled. Will only check for well-formed XML.");
+ }
+ if(toCheck.isEmpty()) {
+ throw new IllegalArgumentException("No files specified to check.");
+ }
+ if(!quiet) {
+ System.err.println("# " + toCheck.size() + " file(s) to check");
+ }
+ int failCount = new XMLValidator(quiet, parseonly, justCheckBom).check(toCheck);
+ if(failCount != 0) {
+ System.err.println("# FAIL: " + failCount + " of " + toCheck.size() + " file(s) had errors.");
+ System.exit(1);
+ } else if(!quiet) {
+ System.err.println("# " + toCheck.size() + " file(s) OK");
}
}
- private static void parseDirectory(File f) throws IOException {
+ private static void addDirectory(File f, List<File> toCheck) throws IOException {
// System.err.println("Parsing directory " + f.getAbsolutePath());
- for (File s : f.listFiles(new FilenameFilter() {
+ for (final File s : f.listFiles(new FilenameFilter() {
@Override
public boolean accept(File arg0, String arg1) {
if (arg1.startsWith(".")) {
@@ -75,7 +104,7 @@
// System.err.println("Considering " + n.getAbsolutePath() );
if (n.isDirectory()) {
try {
- parseDirectory(n);
+ addDirectory(n, toCheck);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
@@ -89,26 +118,31 @@
}
}
})) {
- if (!quiet) System.out.println("Processing file " + s.getPath());
- new fileParserThread(PathUtilities.getNormalizedPathString(s)).run();
+ toCheck.add(s);
}
}
+ /**
+ * Check a list of files, return the number of failures
+ * @param toCheck
+ * @return failure count, or 0 if all OK
+ */
+ public int check(List<File> toCheck) {
+ return toCheck
+ .parallelStream()
+ .mapToInt(f -> parse(f))
+ .sum();
+ }
+
private static void usage() {
- System.err.println("usage: " + XMLValidator.class.getName() + " [ -q ] [ --help ] [ --parseonly ] file ...");
+ System.err.println("usage: " + XMLValidator.class.getName() + " [ -q ] [ --help ] [ --parseonly ] [ --justCheckBom ] file ...");
System.err.println("usage: " + XMLValidator.class.getName()
- + " [ -q ] [ --help ] [ --parseonly ] directory ...");
+ + " [ -q ] [ --help ] [ --parseonly ] [ --justCheckBom ] directory ...");
}
/**
* Utility method to translate a String filename to URL.
*
- * Note: This method is not necessarily proven to get the correct URL for
- * every possible kind of filename; it should be improved. It handles the
- * most common cases that we've encountered when running Conformance tests
- * on Xalan. Also note, this method does not handle other non-file: flavors
- * of URLs at all.
- *
* If the name is null, return null. If the name starts with a common URI
* scheme (namely the ones found in the examples of RFC2396), then simply
* return the name as-is (the assumption is that it's already a URL)
@@ -118,8 +152,9 @@
* a local path/filename of a file
* @return a file:/// URL, the same string if it appears to already be a
* URL, or null if error
+ * @throws MalformedURLException
*/
- public static String filenameToURL(String filename) {
+ public static String filenameToURL(String filename) throws MalformedURLException {
// null begets null - something like the commutative property
if (null == filename)
return null;
@@ -134,61 +169,36 @@
return filename;
File f = new File(filename);
- String tmp = PathUtilities.getNormalizedPathString(f);
-
- // URLs must explicitly use only forward slashes
- if (File.separatorChar == '\\') {
- tmp = tmp.replace('\\', '/');
- }
- // Note the presumption that it's a file reference
- // Ensure we have the correct number of slashes at the
- // start: we always want 3 /// if it's absolute
- // (which we should have forced above)
- if (tmp.startsWith("/"))
- return "file://" + tmp;
- else
- return "file:///" + tmp;
-
+ return f.toURI().toURL().toString();
}
- public static class fileParserThread extends Thread {
- String filename;
+ /**
+ *
+ * @param f file to parse
+ * @return 1 if problems, 0 if OK
+ */
+ public int parse(File f) {
- fileParserThread(String _filename) {
- filename = _filename;
- }
+ if(checkForBOM(f)) return 1; // had BOM - fail
- @Override
- public void run() {
- // Force filerefs to be URI's if needed: note this is independent of any
- // other files
- String docURI = filenameToURL(filename);
- parse(new InputSource(docURI), filename);
- }
- }
+ if(justCheckBom) return 0; // short cut
- static Document parse(InputSource docSrc, String filename) {
-
- // Check for BOM.
+ final String filename = PathUtilities.getNormalizedPathString(f);
+ // Force filerefs to be URI's if needed: note this is independent of any
+ // other files
+ String docURI;
try {
- FileInputStream fis = null;
- try {
- fis = new FileInputStream(filename);
- byte bytes[] = new byte[3];
- if (fis.read(bytes) == 3 &&
- bytes[0] == (byte) 0xef &&
- bytes[1] == (byte) 0xbb &&
- bytes[2] == (byte) 0xbf) {
- System.err.println(filename + ": ERROR: contains UTF-8 BOM (shouldn't happen in CLDR XML files)");
- }
- } finally {
- if (fis != null) {
- fis.close();
- }
- }
- } catch (IOException ioe) { /* ignored- other branches will report an error. */
+ docURI = filenameToURL(filename);
+ parse(new InputSource(docURI), filename);
+ return 0; // OK
+ } catch(Throwable t) {
+ t.printStackTrace();
+ System.err.println(f.getPath() + " - fail - " + t);
+ return 1; // fail
}
+ }
+ Document parse(InputSource docSrc, String filename) {
DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();
// Always set namespaces on
if (!parseonly) {
@@ -290,4 +300,31 @@
}
return doc;
}
+
+ /**
+ * @return true if BOM found
+ */
+ private static boolean checkForBOM(File f) {
+ // Check for BOM.
+ try {
+ FileInputStream fis = null;
+ try {
+ fis = new FileInputStream(f);
+ byte bytes[] = new byte[3];
+ if (fis.read(bytes) == 3 &&
+ bytes[0] == (byte) 0xef &&
+ bytes[1] == (byte) 0xbb &&
+ bytes[2] == (byte) 0xbf) {
+ System.err.println(f.getPath() + ": ERROR: contains UTF-8 BOM (shouldn't happen in CLDR XML files)");
+ return true;
+ }
+ } finally {
+ if (fis != null) {
+ fis.close();
+ }
+ }
+ } catch (IOException ioe) { /* ignored- other branches will report an error. */
+ }
+ return false;
+ }
}
diff --git a/tools/java/org/unicode/cldr/util/XMessageFormat.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/XMessageFormat.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/XMessageFormat.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/XMessageFormat.java
diff --git a/tools/java/org/unicode/cldr/util/XPathExpressionParser.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/XPathExpressionParser.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/XPathExpressionParser.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/XPathExpressionParser.java
diff --git a/tools/java/org/unicode/cldr/util/XPathParts.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/XPathParts.java
similarity index 99%
rename from tools/java/org/unicode/cldr/util/XPathParts.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/XPathParts.java
index 90d1741..a64d2ad 100644
--- a/tools/java/org/unicode/cldr/util/XPathParts.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/XPathParts.java
@@ -1293,12 +1293,9 @@
return xppClone;
}
- public static synchronized XPathParts getFrozenInstance(String path) {
- XPathParts result = cache.get(path);
- if (result == null) {
- result = new XPathParts().addInternal(path, true).freeze();
- cache.put(path, result);
- }
+ public static XPathParts getFrozenInstance(String path) {
+ XPathParts result = cache.computeIfAbsent(path,
+ (String forPath) -> new XPathParts().addInternal(forPath, true).freeze());
return result;
}
diff --git a/tools/java/org/unicode/cldr/util/XPathTokenizer.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/XPathTokenizer.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/XPathTokenizer.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/XPathTokenizer.java
diff --git a/tools/java/org/unicode/cldr/util/ZoneFormats.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/ZoneFormats.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/ZoneFormats.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/ZoneFormats.java
diff --git a/tools/java/org/unicode/cldr/util/ZoneInflections.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/ZoneInflections.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/ZoneInflections.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/ZoneInflections.java
diff --git a/tools/java/org/unicode/cldr/util/ZoneParser.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/ZoneParser.java
similarity index 97%
rename from tools/java/org/unicode/cldr/util/ZoneParser.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/ZoneParser.java
index 73a4f2d..a141a9a 100644
--- a/tools/java/org/unicode/cldr/util/ZoneParser.java
+++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/ZoneParser.java
@@ -550,13 +550,8 @@
@Override
public int compare(String s1, String s2) {
- List<String> data1 = data.get(s1);
- if (data1 == null)
- data1 = errorData;
- List<String> data2 = data.get(s2);
- if (data2 == null)
- data2 = errorData;
-
+ List<String> data1 = getData(s1);
+ List<String> data2 = getData(s2);
int result;
// country
String country1 = data1.get(2);
@@ -577,6 +572,29 @@
// name
return s1.compareTo(s2);
}
+
+ /**
+ * Get timezone data for the given location
+ * Include work-arounds for missing time zones
+ *
+ * @param s the string like "Australia/Currie"
+ * @return a list of 4 strings for latitude, longitude, country, city
+ *
+ * Reference: https://unicode-org.atlassian.net/browse/CLDR-14428
+ */
+ private List<String> getData(String s) {
+ List<String> d = data.get(s);
+ if (d == null) {
+ String sNew = linkold_new.get(s);
+ if (sNew != null) {
+ d = data.get(sNew);
+ }
+ if (d == null) {
+ d = errorData;
+ }
+ }
+ return d;
+ }
};
public static MapComparator<String> regionalCompare = new MapComparator<>();
diff --git a/tools/java/org/unicode/cldr/util/props/BagFormatter.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/props/BagFormatter.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/props/BagFormatter.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/props/BagFormatter.java
diff --git a/tools/java/org/unicode/cldr/util/props/ICUPropertyFactory.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/props/ICUPropertyFactory.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/props/ICUPropertyFactory.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/props/ICUPropertyFactory.java
diff --git a/tools/java/org/unicode/cldr/util/props/RandomStringGenerator.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/props/RandomStringGenerator.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/props/RandomStringGenerator.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/props/RandomStringGenerator.java
diff --git a/tools/java/org/unicode/cldr/util/props/UnicodeLabel.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/props/UnicodeLabel.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/props/UnicodeLabel.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/props/UnicodeLabel.java
diff --git a/tools/java/org/unicode/cldr/util/props/UnicodeProperty.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/props/UnicodeProperty.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/props/UnicodeProperty.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/props/UnicodeProperty.java
diff --git a/tools/java/org/unicode/cldr/util/props/UnicodePropertySymbolTable.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/props/UnicodePropertySymbolTable.java
similarity index 100%
rename from tools/java/org/unicode/cldr/util/props/UnicodePropertySymbolTable.java
rename to tools/cldr-code/src/main/java/org/unicode/cldr/util/props/UnicodePropertySymbolTable.java
diff --git a/tools/java/org/unicode/cldr/common.css b/tools/cldr-code/src/main/resources/org/unicode/cldr/common.css
similarity index 100%
rename from tools/java/org/unicode/cldr/common.css
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/common.css
diff --git a/tools/java/org/unicode/cldr/draft/Categories.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/draft/Categories.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/Categories.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/draft/Categories.txt
diff --git a/tools/java/org/unicode/cldr/draft/GeneratePickerData.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/draft/GeneratePickerData.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/GeneratePickerData.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/draft/GeneratePickerData.txt
diff --git a/tools/java/org/unicode/cldr/draft/ManualChanges.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/draft/ManualChanges.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/ManualChanges.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/draft/ManualChanges.txt
diff --git a/tools/java/org/unicode/cldr/draft/ScriptData.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/draft/ScriptData.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/ScriptData.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/draft/ScriptData.txt
diff --git a/tools/java/org/unicode/cldr/draft/UnicodeSetBuilderTests.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/draft/UnicodeSetBuilderTests.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/UnicodeSetBuilderTests.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/draft/UnicodeSetBuilderTests.txt
diff --git a/tools/java/org/unicode/cldr/draft/UnicodeSetStates.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/draft/UnicodeSetStates.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/UnicodeSetStates.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/draft/UnicodeSetStates.txt
diff --git a/tools/java/org/unicode/cldr/draft/idnaContextRules.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/draft/idnaContextRules.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/idnaContextRules.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/draft/idnaContextRules.txt
diff --git a/tools/java/org/unicode/cldr/draft/idnaTestCases.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/draft/idnaTestCases.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/idnaTestCases.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/draft/idnaTestCases.txt
diff --git a/tools/java/org/unicode/cldr/draft/idnaTestLog.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/draft/idnaTestLog.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/idnaTestLog.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/draft/idnaTestLog.txt
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/osx/osx-keycodes.csv b/tools/cldr-code/src/main/resources/org/unicode/cldr/draft/keyboard/osx/osx-keycodes.csv
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/osx/osx-keycodes.csv
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/draft/keyboard/osx/osx-keycodes.csv
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/osx/osx-locales.csv b/tools/cldr-code/src/main/resources/org/unicode/cldr/draft/keyboard/osx/osx-locales.csv
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/osx/osx-locales.csv
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/draft/keyboard/osx/osx-locales.csv
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/test/windows/test_layout.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/draft/keyboard/test/windows/test_layout.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/test/windows/test_layout.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/draft/keyboard/test/windows/test_layout.txt
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/windows/windows-keycodes.csv b/tools/cldr-code/src/main/resources/org/unicode/cldr/draft/keyboard/windows/windows-keycodes.csv
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/windows/windows-keycodes.csv
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/draft/keyboard/windows/windows-keycodes.csv
diff --git a/tools/java/org/unicode/cldr/draft/keyboard/windows/windows-locales.csv b/tools/cldr-code/src/main/resources/org/unicode/cldr/draft/keyboard/windows/windows-locales.csv
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/keyboard/windows/windows-locales.csv
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/draft/keyboard/windows/windows-locales.csv
diff --git a/tools/java/org/unicode/cldr/draft/normalizeForMatchExceptions.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/draft/normalizeForMatchExceptions.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/draft/normalizeForMatchExceptions.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/draft/normalizeForMatchExceptions.txt
diff --git a/tools/java/org/unicode/cldr/icu/idList.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/icu/idList.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/icu/idList.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/icu/idList.txt
diff --git a/tools/java/org/unicode/cldr/icu/makefile_header.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/icu/makefile_header.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/icu/makefile_header.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/icu/makefile_header.txt
diff --git a/tools/java/org/unicode/cldr/icu/package.html b/tools/cldr-code/src/main/resources/org/unicode/cldr/icu/package.html
similarity index 100%
rename from tools/java/org/unicode/cldr/icu/package.html
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/icu/package.html
diff --git a/tools/java/org/unicode/cldr/icu/timezone_aliases.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/icu/timezone_aliases.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/icu/timezone_aliases.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/icu/timezone_aliases.txt
diff --git a/tools/java/org/unicode/cldr/json/JSON_config.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/json/JSON_config.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/json/JSON_config.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/json/JSON_config.txt
diff --git a/tools/java/org/unicode/cldr/json/JSON_config_annotations.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/json/JSON_config_annotations.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/json/JSON_config_annotations.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/json/JSON_config_annotations.txt
diff --git a/tools/java/org/unicode/cldr/json/JSON_config_annotationsDerived.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/json/JSON_config_annotationsDerived.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/json/JSON_config_annotationsDerived.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/json/JSON_config_annotationsDerived.txt
diff --git a/tools/java/org/unicode/cldr/json/JSON_config_rbnf.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/json/JSON_config_rbnf.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/json/JSON_config_rbnf.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/json/JSON_config_rbnf.txt
diff --git a/tools/java/org/unicode/cldr/json/JSON_config_segments.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/json/JSON_config_segments.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/json/JSON_config_segments.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/json/JSON_config_segments.txt
diff --git a/tools/java/org/unicode/cldr/json/JSON_config_supplemental.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/json/JSON_config_supplemental.txt
similarity index 71%
rename from tools/java/org/unicode/cldr/json/JSON_config_supplemental.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/json/JSON_config_supplemental.txt
index ad29616..c4558a3 100644
--- a/tools/java/org/unicode/cldr/json/JSON_config_supplemental.txt
+++ b/tools/cldr-code/src/main/resources/org/unicode/cldr/json/JSON_config_supplemental.txt
@@ -1,5 +1,5 @@
section=characterFallbacks ; path=//cldr/supplemental/characters/.* ; package=core
-section=dayPeriods ; path=//cldr/supplemental/dayPeriodRuleSet/.* ; package=core
+section=dayPeriods ; path=//cldr/supplemental/(dayPeriodRuleSet).* ; package=core
section=gender ; path=//cldr/supplemental/gender/.* ; package=core
section=languageInfo ; path=//cldr/supplemental/languageInfo/.* ; package=core
section=likelySubtags ; path=//cldr/supplemental/likelySubtags/.* ; package=core
@@ -18,6 +18,9 @@
section=territoryInfo ; path=//cldr/supplemental/territoryInfo/.* ; package=core
section=calendarData ; path=//cldr/supplemental/calendarData/.* ; package=core
section=calendarPreferenceData ; path=//cldr/supplemental/calendarPreferenceData/.* ; package=core
+section=unitPreferenceData ; path=//cldr/supplemental/unitPreferenceData/.* ; package=core
+section=grammaticalFeatures ; path=//cldr/supplemental/(grammaticalData)/.* ; package=core
+section=grammaticalGenderFeatures ; path=//cldr/supplemental/(grammaticalGenderData).* ; package=core
section=weekData ; path=//cldr/supplemental/weekData/.* ; package=core
section=timeData ; path=//cldr/supplemental/timeData/.* ; package=core
section=measurementData ; path=//cldr/supplemental/measurementData/.* ; package=core
@@ -27,3 +30,12 @@
section=telephoneCodeData ; path=//cldr/supplemental/telephoneCodeData/.* ; package=core
section=windowsZones ; path=//cldr/supplemental/windowsZones/.* ; package=core
section=aliases ; path=//cldr/supplemental/metadata/alias/(language|script|subdivision|territory|variant|zone)Alias.* ; package=core
+section=units ; path=//cldr/supplemental/(unitConstants|unitQuantities|convertUnits).* ; package=core
+section=unitsMetadata ; path=//cldr/supplemental/metadata/.*/(unitAlias|usageAlias).* ; package=core
+
+# ignored items
+section=IGNORE ; path=//cldr/supplemental/metadata/serialElements.* ; package=IGNORE
+section=IGNORE ; path=//cldr/supplemental/metadata/suppress.* ; package=IGNORE
+# defaultContent is not really ignored, but is handled by special code in Ldml2JsonConverter
+section=IGNORE ; path=//cldr/supplemental/metadata/defaultContent.* ; package=IGNORE
+#
diff --git a/tools/cldr-code/src/main/resources/org/unicode/cldr/json/pathTransforms.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/json/pathTransforms.txt
new file mode 100644
index 0000000..664f2e0
--- /dev/null
+++ b/tools/cldr-code/src/main/resources/org/unicode/cldr/json/pathTransforms.txt
@@ -0,0 +1,143 @@
+# Path Transformations
+
+# see LdmlConvertRule.java
+
+# * Some special transformation, like add an additional layer, can be easily
+# * done by transforming the path. Following rules covers these kind of
+# * transformation.
+# * Note: It is important to keep the order for these rules. Whenever a
+# * rule matches, further rules won't be applied.
+#
+# Syntax:
+#
+# # line comment
+# < match pattern
+# > replacement pattern
+#
+
+# separate them to two layers.
+< (.*ldml/exemplarCharacters)\[@type="([^"]*)"\](.*)
+> $1/$2$3
+
+# Add "standard" as type attribute to exemplarCharacter element if there is none
+< (.*ldml/exemplarCharacters)(.*)$
+> $1/standard$2
+
+## (Note: CLDR version is added in code)
+
+# Transform underscore to hyphen-minus in language keys
+< (.*/language\[@type="[a-z]{2,3})_([^"]*"\](\[@alt="short"])?)
+> $1-$2
+
+# Separate "ellipsis" from its type as another layer.
+< (.*/ellipsis)\[@type="([^"]*)"\](.*)$
+> $1/$2$3
+
+# Remove unnecessary dateFormat/pattern
+< (.*/calendars)/calendar\[@type="([^"]*)"\](.*)Length\[@type="([^"]*)"\]/(date|time|dateTime)Format\[@type="([^"]*)"\]/pattern\[@type="([^"]*)"\](.*)
+> $1/$2/$5Formats/$4$8
+
+# Separate calendar type
+< (.*/calendars)/calendar\[@type="([^"]*)"\](.*)$
+> $1/$2$3
+
+# Separate "metazone" from its type as another layer
+< (.*/metazone)\[@type="([^"]*)"\]/(.*)$
+> $1/$2/$3
+
+# Split out types into its various fields
+< (.*)/types/type\[@key="([^"]*)"\]\[@type="([^"]*)"\](.*)$
+> $1/types/$2/$3$4
+
+# Typographic
+< (.*)/(typographicNames)/(axisName|featureName)\[@type="([^"]*)"\](.*)$
+> $1/$2/$3s/$4$5
+
+# Typographic
+< (.*)/(typographicNames)/(styleName)(.*)$
+> $1/$2/$3s/$3$4
+
+# put CharacterLabelPatterns under CharacterLabelPatterns
+< (.*)/(characterLabels)/(characterLabelPattern)(.*)$
+> $1/characterLabelPatterns/$3$4
+
+# add type=standard
+< (.*/numbers/(decimal|scientific|percent|currency)Formats\[@numberSystem="([^"]*)"\])/(decimal|scientific|percent|currency)FormatLength/(decimal|scientific|percent|currency)Format\[@type="standard"]/pattern.*$
+> $1/standard
+
+#
+< (.*/numbers/currencyFormats\[@numberSystem="([^"]*)"\])/currencyFormatLength/currencyFormat\[@type="accounting"]/pattern.*$
+> $1/accounting
+
+# Add "type" attribute with value "standard" if there is no "type" in "decimalFormatLength".
+< (.*/numbers/(decimal|scientific|percent)Formats\[@numberSystem="([^"]*)"\]/(decimal|scientific|percent)FormatLength)/(.*)$
+> $1[@type="standard"]/$5
+
+#
+< (.*/listPattern)/(.*)$
+> $1[@type="standard"]/$2
+
+#
+< (.*/languagePopulation)\[@type="([^"]*)"\](.*)
+> $1/$2$3
+
+#
+< (.*/languageAlias)\[@type="([^"]*)"\](.*)
+> $1/$2$3
+
+#
+< (.*/scriptAlias)\[@type="([^"]*)"\](.*)
+> $1/$2$3
+
+#
+< (.*/territoryAlias)\[@type="([^"]*)"\](.*)
+> $1/$2$3
+
+#
+< (.*/subdivisionAlias)\[@type="([^"]*)"\](.*)
+> $1/$2$3
+
+#
+< (.*/variantAlias)\[@type="([^"]*)"\](.*)
+> $1/$2$3
+
+#
+< (.*/zoneAlias)\[@type="([^"]*)"\](.*)
+> $1/$2$3
+
+#
+< (.*/alias)(.*)
+> $1/alias$2
+
+#
+< (.*currencyData/region)(.*)
+> $1/region$2
+
+# Skip exemplar city in /etc/GMT or UTC timezones, since they don't have them
+< (.*(GMT|UTC).*/exemplarCity)(.*)
+>
+
+#
+< (.*/transforms/transform[^/]*)/(.*)
+> $1/tRules/$2
+
+#
+< (.*)\[@territories="([^"]*)"\](.*)\[@alt="variant"\](.*)
+> $1\[@territories="$2-alt-variant"\]
+
+#
+< (.*)/weekData/(.*)\[@alt="variant"\](.*)
+> $1/weekData/$2$3
+
+# Annotations: If there is a type, move that into a sibling value
+< (.*)/(annotations)/(annotation)\[@cp="([^"]*)"\]\[@type="([^"]*)"\](.*)$
+> $1/$2/$4/$5$6
+
+# Annotations: If there is a type, move that into a sibling value
+< (.*)/(annotations)/(annotation)\[@cp="([^"]*)"\](.*)$
+> $1/$2/$4/default$5
+
+# Grammar : put grammaticalGender into a separate section
+< (.*)/(grammaticalData)/(.*)/(grammaticalGender)(.*)$
+> $1/grammaticalGenderData/$3/$4$5
+
diff --git a/tools/java/org/unicode/cldr/package.html b/tools/cldr-code/src/main/resources/org/unicode/cldr/package.html
similarity index 100%
rename from tools/java/org/unicode/cldr/package.html
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/package.html
diff --git a/tools/java/org/unicode/cldr/posix/package.html b/tools/cldr-code/src/main/resources/org/unicode/cldr/posix/package.html
similarity index 100%
rename from tools/java/org/unicode/cldr/posix/package.html
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/posix/package.html
diff --git a/tools/java/org/unicode/cldr/test/package.html b/tools/cldr-code/src/main/resources/org/unicode/cldr/test/package.html
similarity index 100%
rename from tools/java/org/unicode/cldr/test/package.html
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/test/package.html
diff --git a/tools/java/org/unicode/cldr/tool/GenerateScriptMetadata.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/tool/GenerateScriptMetadata.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/GenerateScriptMetadata.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/tool/GenerateScriptMetadata.txt
diff --git a/tools/java/org/unicode/cldr/tool/bytype-index.css b/tools/cldr-code/src/main/resources/org/unicode/cldr/tool/bytype-index.css
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/bytype-index.css
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/tool/bytype-index.css
diff --git a/tools/java/org/unicode/cldr/tool/bytype-index.html b/tools/cldr-code/src/main/resources/org/unicode/cldr/tool/bytype-index.html
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/bytype-index.html
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/tool/bytype-index.html
diff --git a/tools/java/org/unicode/cldr/tool/chart-template.html b/tools/cldr-code/src/main/resources/org/unicode/cldr/tool/chart-template.html
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/chart-template.html
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/tool/chart-template.html
diff --git a/tools/java/org/unicode/cldr/tool/dataModifiers.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/tool/dataModifiers.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/dataModifiers.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/tool/dataModifiers.txt
diff --git a/tools/java/org/unicode/cldr/tool/delimiterFixes.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/tool/delimiterFixes.txt
similarity index 97%
rename from tools/java/org/unicode/cldr/tool/delimiterFixes.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/tool/delimiterFixes.txt
index 8e042fd..324e19f 100644
--- a/tools/java/org/unicode/cldr/tool/delimiterFixes.txt
+++ b/tools/cldr-code/src/main/resources/org/unicode/cldr/tool/delimiterFixes.txt
@@ -30,7 +30,7 @@
«…» ‘…’ Norwegian Nynorsk(nn)
«…» ‘…’ Bafia(ksf)
«…» ‘…’ Kinyarwanda(rw)
-«…» ‘…’ Norwegian Bokmål(nb)
+«…» ‘…’ Norwegian(no)
«…» ‹…› French(fr)
«…» ‹…› Italian(it_CH)
«…» ‹…› Azerbaijani (Cyrillic)(az_Cyrl); Azerbaijani (Latin)(az_Latn); Azerbaijani(az); Basque(eu); Breton(br);
diff --git a/tools/java/org/unicode/cldr/tool/errors.css b/tools/cldr-code/src/main/resources/org/unicode/cldr/tool/errors.css
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/errors.css
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/tool/errors.css
diff --git a/tools/java/org/unicode/cldr/tool/include-date.html b/tools/cldr-code/src/main/resources/org/unicode/cldr/tool/include-date.html
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/include-date.html
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/tool/include-date.html
diff --git a/tools/java/org/unicode/cldr/tool/include-version.html b/tools/cldr-code/src/main/resources/org/unicode/cldr/tool/include-version.html
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/include-version.html
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/tool/include-version.html
diff --git a/tools/java/org/unicode/cldr/tool/index.css b/tools/cldr-code/src/main/resources/org/unicode/cldr/tool/index.css
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/index.css
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/tool/index.css
diff --git a/tools/java/org/unicode/cldr/tool/keyboards-index.html b/tools/cldr-code/src/main/resources/org/unicode/cldr/tool/keyboards-index.html
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/keyboards-index.html
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/tool/keyboards-index.html
diff --git a/tools/java/org/unicode/cldr/tool/keyboards.css b/tools/cldr-code/src/main/resources/org/unicode/cldr/tool/keyboards.css
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/keyboards.css
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/tool/keyboards.css
diff --git a/tools/java/org/unicode/cldr/tool/main-index.html b/tools/cldr-code/src/main/resources/org/unicode/cldr/tool/main-index.html
similarity index 95%
rename from tools/java/org/unicode/cldr/tool/main-index.html
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/tool/main-index.html
index 51ac3da..c5e3c17 100644
--- a/tools/java/org/unicode/cldr/tool/main-index.html
+++ b/tools/cldr-code/src/main/resources/org/unicode/cldr/tool/main-index.html
@@ -108,7 +108,11 @@
<td><strong><a href="collation/index.html"
name="Collation_Tailorings" rel="nofollow">Collation
Tailorings</a></strong></td>
- <td>Collation charts (draft) for CLDR locales.</td>
+ <td>Collation charts for CLDR locales.</td>
+ </tr>
+ <tr>
+ <td><strong><a href="grammar/index.html" name="Grammar_Info" rel="nofollow">Grammar Info</a></strong></td>
+ <td>Grammatical Information for selected CLDR locales.</td>
</tr>
<tr>
diff --git a/tools/java/org/unicode/cldr/tool/modify_config.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/tool/modify_config.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/modify_config.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/tool/modify_config.txt
diff --git a/tools/java/org/unicode/cldr/tool/package.html b/tools/cldr-code/src/main/resources/org/unicode/cldr/tool/package.html
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/package.html
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/tool/package.html
diff --git a/tools/java/org/unicode/cldr/tool/readme.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/tool/readme.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/readme.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/tool/readme.txt
diff --git a/tools/java/org/unicode/cldr/tool/summary-index.css b/tools/cldr-code/src/main/resources/org/unicode/cldr/tool/summary-index.css
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/summary-index.css
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/tool/summary-index.css
diff --git a/tools/java/org/unicode/cldr/tool/summary-index.html b/tools/cldr-code/src/main/resources/org/unicode/cldr/tool/summary-index.html
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/summary-index.html
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/tool/summary-index.html
diff --git a/tools/java/org/unicode/cldr/tool/supplemental.html b/tools/cldr-code/src/main/resources/org/unicode/cldr/tool/supplemental.html
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/supplemental.html
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/tool/supplemental.html
diff --git a/tools/java/org/unicode/cldr/tool/transforms-index.css b/tools/cldr-code/src/main/resources/org/unicode/cldr/tool/transforms-index.css
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/transforms-index.css
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/tool/transforms-index.css
diff --git a/tools/java/org/unicode/cldr/tool/verify-index.html b/tools/cldr-code/src/main/resources/org/unicode/cldr/tool/verify-index.html
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/verify-index.html
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/tool/verify-index.html
diff --git a/tools/java/org/unicode/cldr/tool/wsb-dtd.xml b/tools/cldr-code/src/main/resources/org/unicode/cldr/tool/wsb-dtd.xml
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/wsb-dtd.xml
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/tool/wsb-dtd.xml
diff --git a/tools/java/org/unicode/cldr/tool/xmb-dtd.xml b/tools/cldr-code/src/main/resources/org/unicode/cldr/tool/xmb-dtd.xml
similarity index 100%
rename from tools/java/org/unicode/cldr/tool/xmb-dtd.xml
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/tool/xmb-dtd.xml
diff --git a/tools/java/org/unicode/cldr/tool/xmbSkip.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/tool/xmbSkip.txt
similarity index 91%
rename from tools/java/org/unicode/cldr/tool/xmbSkip.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/tool/xmbSkip.txt
index 0b1572f..880b1f1 100644
--- a/tools/java/org/unicode/cldr/tool/xmbSkip.txt
+++ b/tools/cldr-code/src/main/resources/org/unicode/cldr/tool/xmbSkip.txt
@@ -57,7 +57,7 @@
^//ldml/localeDisplayNames/scripts/script\[@type="(Cans|Tfng|Yiii)"] ; SKIP
# Make sure to duplicate this list in PathDescription.EXTRA_LANGUAGES!!!
-^//ldml/localeDisplayNames/languages/language\[@type="(ach|af|ak|ak|am|ar|az|be|bem|bg|bh|bn|br|bs|ca|chr|ckb|co|crs|cs|cy|da|de|de_AT|de_CH|ee|el|en|en_AU|en_CA|en_GB|en_US|eo|es|es_419|es_ES|et|eu|fa|fi|fil|fo|fr|fr_CA|fr_CH|fy|ga|gaa|gd|gl|gn|gsw|gu|ha|haw|he|hi|hr|ht|hu|hy|ia|id|ig|is|it|ja|jv|ka|kg|kk|km|kn|ko|kri|ku|ky|la|lg|ln|lo|loz|lt|lua|lv|mfe|mg|mi|mk|ml|mn|mr|ms|mt|my|nb|ne|nl|nl_BE|nn|nso|ny|nyn|oc|om|or|pa|pcm|pl|ps|pt|pt_BR|pt_PT|qu|rm|rn|ro|ro|ro_MD|ru|rw|sd|si|sk|sl|sn|so|sq|sr|sr_Latn|sr_ME|st|su|sv|sw|ta|te|tg|th|ti|tk|tlh|tn|to|tr|tt|tum|ug|uk|und|ur|uz|vi|wo|xh|yi|yo|zh|zh_Hans|zh_Hant|zh_HK|zu|zxx)"] ; KEEP
+^//ldml/localeDisplayNames/languages/language\[@type="(ach|af|ak|ak|am|ar|az|be|bem|bg|bh|bn|br|bs|ca|chr|ckb|co|crs|cs|cy|da|de|de_AT|de_CH|ee|el|en|en_AU|en_CA|en_GB|en_US|eo|es|es_419|es_ES|et|eu|fa|fi|fil|fo|fr|fr_CA|fr_CH|fy|ga|gaa|gd|gl|gn|gsw|gu|ha|haw|he|hi|hr|ht|hu|hy|ia|id|ig|is|it|ja|jv|ka|kg|kk|km|kn|ko|kri|ku|ky|la|lg|ln|lo|loz|lt|lua|lv|mfe|mg|mi|mk|ml|mn|mr|ms|mt|my|nb|ne|nl|nl_BE|nn|no|nso|ny|nyn|oc|om|or|pa|pcm|pl|ps|pt|pt_BR|pt_PT|qu|rm|rn|ro|ro|ro_MD|ru|rw|sd|si|sk|sl|sn|so|sq|sr|sr_Latn|sr_ME|st|su|sv|sw|ta|te|tg|th|ti|tk|tlh|tn|to|tr|tt|tum|ug|uk|und|ur|uz|vi|wo|xh|yi|yo|zh|zh_Hans|zh_Hant|zh_HK|zu|zxx)"] ; KEEP
#skip all other languages!
^//ldml/localeDisplayNames/languages/language\[@type="([^"]*)"] ; SKIP
diff --git a/tools/java/org/unicode/cldr/util/MainTimeZones.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/MainTimeZones.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/MainTimeZones.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/MainTimeZones.txt
diff --git a/tools/java/org/unicode/cldr/util/WorldBankInfo.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/WorldBankInfo.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/WorldBankInfo.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/WorldBankInfo.txt
diff --git a/tools/java/org/unicode/cldr/util/data/ApproximateWidth.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/ApproximateWidth.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/ApproximateWidth.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/ApproximateWidth.txt
diff --git a/tools/java/org/unicode/cldr/util/data/CheckCLDR-exceptions.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/CheckCLDR-exceptions.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/CheckCLDR-exceptions.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/CheckCLDR-exceptions.txt
diff --git a/tools/java/org/unicode/cldr/util/data/ISO-639-2_values_8bits.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/ISO-639-2_values_8bits.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/ISO-639-2_values_8bits.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/ISO-639-2_values_8bits.txt
diff --git a/tools/java/org/unicode/cldr/util/data/ISO4217.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/ISO4217.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/ISO4217.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/ISO4217.txt
diff --git a/tools/java/org/unicode/cldr/util/data/Locales.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/Locales.txt
similarity index 98%
rename from tools/java/org/unicode/cldr/util/data/Locales.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/Locales.txt
index 8d5c6aa..90a7cd6 100644
--- a/tools/java/org/unicode/cldr/util/data/Locales.txt
+++ b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/Locales.txt
@@ -41,8 +41,8 @@
Oracle ; mk ; basic
Oracle ; ml ; basic
Oracle ; mt ; basic
-Oracle ; nb ; basic
Oracle ; nn ; basic
+Oracle ; no ; basic
Oracle ; ro ; basic
Oracle ; sk ; basic
Oracle ; sl ; basic
@@ -95,8 +95,8 @@
openoffice_org ; mk ; basic
openoffice_org ; ml ; basic
openoffice_org ; mt ; basic
-openoffice_org ; nb ; basic
openoffice_org ; nn ; basic
+openoffice_org ; no ; basic
openoffice_org ; ro ; basic
openoffice_org ; sk ; basic
openoffice_org ; sl ; basic
@@ -140,7 +140,7 @@
IBM ; el ; moderate
IBM ; he ; moderate
IBM ; hu ; moderate
-IBM ; nb ; modern
+IBM ; no ; modern
IBM ; pl ; modern
IBM ; ru ; modern
IBM ; sv ; modern
@@ -228,7 +228,7 @@
Google ; id ; modern ; T2 Indonesian
Google ; lv ; modern ; T2 Latvian
Google ; lt ; modern ; T2 Lithuanian
-Google ; nb ; modern ; T2 Norwegian (Bokmål)
+Google ; no ; modern ; T2 Norwegian (Bokmål)
Google ; ro ; modern ; T2 Romanian
Google ; sr ; modern ; T2 Serbian
Google ; sk ; modern ; T2 Slovak
@@ -407,8 +407,8 @@
Apple ; ml ; modern
Apple ; mr ; modern
Apple ; ms ; modern
-Apple ; nb ; modern
Apple ; nn ; modern
+Apple ; no ; modern
Apple ; nl ; modern
Apple ; pa ; modern
Apple ; pl ; modern
@@ -444,7 +444,6 @@
Apple ; lo ; basic
Apple ; mn ; basic
Apple ; mt ; basic
-Apple ; nn ; basic
Apple ; or ; basic
Apple ; sq ; basic
Apple ; ug ; basic
@@ -489,9 +488,9 @@
Adobe ; mk ; basic
Adobe ; mn_Mong ; basic
Adobe ; ms ; basic
-Adobe ; nb ; moderate
Adobe ; nl ; moderate
Adobe ; nn ; moderate
+Adobe ; no ; moderate
Adobe ; pl ; basic
Adobe ; pt ; moderate
Adobe ; ro ; basic
@@ -550,7 +549,7 @@
Cldr ; id ; modern ; T2 Indonesian
Cldr ; lv ; modern ; T2 Latvian
Cldr ; lt ; modern ; T2 Lithuanian
-Cldr ; nb ; modern ; T2 Norwegian (Bokmål)
+Cldr ; no ; modern ; T2 Norwegian (Bokmål)
Cldr ; ro ; modern ; T2 Romanian
Cldr ; sr ; modern ; T2 Serbian
Cldr ; sk ; modern ; T2 Slovak
@@ -650,7 +649,7 @@
# Cldr ; cad ; basic ; Caddo
Cldr ; pcm ; basic ; Nigerian Pidgin
-Cldr ; nn ; Moderate ; Nynorsk
+Cldr ; nn ; modern ; Nynorsk
Cldr ; sa ; basic ; Sanskrit
Cldr ; doi ; basic ; Dogri
#Cldr ; nv ; basic ; Navajo
@@ -756,8 +755,8 @@
Microsoft ; mr ; modern
Microsoft ; ms ; modern
Microsoft ; my ; modern
-Microsoft ; nb ; modern
Microsoft ; nl ; modern
+Microsoft ; no ; modern
# Microsoft ; nso ; modern
Microsoft ; or ; modern
Microsoft ; pa ; modern
@@ -908,3 +907,5 @@
Rodakych ; pcm ; modern ; Nigerian Pidgin
Rodakych ; * ; moderate ; All Others
+
+Sardware ; sc ; modern
diff --git a/tools/java/org/unicode/cldr/util/data/PathDescription.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/PathDescription.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/PathDescription.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/PathDescription.txt
diff --git a/tools/java/org/unicode/cldr/util/data/PathHeader.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/PathHeader.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/PathHeader.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/PathHeader.txt
diff --git a/tools/java/org/unicode/cldr/util/data/Placeholders.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/Placeholders.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/Placeholders.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/Placeholders.txt
diff --git a/tools/java/org/unicode/cldr/util/data/ReadMe.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/ReadMe.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/ReadMe.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/ReadMe.txt
diff --git a/tools/java/org/unicode/cldr/util/data/Script_Metadata.csv b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/Script_Metadata.csv
similarity index 97%
rename from tools/java/org/unicode/cldr/util/data/Script_Metadata.csv
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/Script_Metadata.csv
index 4ed7a1f..d023cda 100644
--- a/tools/java/org/unicode/cldr/util/data/Script_Metadata.csv
+++ b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/Script_Metadata.csv
@@ -103,7 +103,7 @@
101,Sora_Sompeng,Sora,6.1,35,𑃐,110D0,India,1,Sora,srb,Exclusion,no,no,no,no,no
102,Takri,Takr,6.1,66,𑚀,11680,India,1,Dogri,doi,Exclusion,no,no,Yes,no,no
103,Braille,Brai,3.0,256,⠎,280E,France,n/a,n/a,n/a,n/a,n/a,n/a,n/a,n/a,n/a
-104,Caucasian_Albanian,Aghb,7.0,53,𐔷,10537,Russia,1,Lezgian,lez,Exclusion,no,no,no,no,no
+104,Caucasian_Albanian,Aghb,7.0,53,𐔷,10537,Russia,1,Udi,udi,Exclusion,no,no,no,no,no
105,Bassa_Vah,Bass,7.0,36,𖫦,16AE6,Liberia,1,Bassa,bsq,Exclusion,no,no,no,no,no
106,Duployan,Dupl,7.0,143,𛰠,1BC20,France,1,French,fr,Exclusion,no,no,no,Yes,no
107,Elbasan,Elba,7.0,40,𐔀,10500,Albania,1,Albanian,sq,Exclusion,no,no,no,no,no
@@ -146,7 +146,7 @@
144,Gunjala_Gondi,Gong,11.0,0,𑵱,11D71,India,1,Adilabad Gondi,wsg,Limited_Use,no,no,Yes,no,no
145,Hanifi_Rohingya,Rohg,11.0,0,𐴒,10D12,Myanmar,1,Rohingya,rhg,Limited_Use,Yes,no,Yes,no,no
146,Makasar,Maka,11.0,0,𑻥,11EE5,Indonesia,1,Makasar,mak,Exclusion,no,no,min,no,no
-147,Medefaidrin,Medf,11.0,0,𖹀,16E40,Nigeria,1,Medefaidrin,mis,Exclusion,no,no,no,no,Yes
+147,Medefaidrin,Medf,11.0,0,𖹀,16E40,Nigeria,1,Medefaidrin,dmf,Exclusion,no,no,no,no,Yes
148,Old_Sogdian,Sogo,11.0,0,𐼙,10F19,Uzbekistan,1,Sogdian,sog,Exclusion,Yes,no,no,no,no
149,Sogdian,Sogd,11.0,0,𐽂,10F42,Uzbekistan,1,Sogdian,sog,Exclusion,Yes,no,Yes,no,no
150,Elymaic,Elym,12.0,0,𐿱,10FF1,Iran,1,Imperial Aramaic,arc,Exclusion,Yes,no,no,no,no
@@ -156,4 +156,5 @@
154,Chorasmian,Chrs,13.0,0,𐾿,10FBF,Uzbekistan,1,Chorasmian,xco,Exclusion,Yes,no,Yes,no,no
155,Dives Akuru,Diak,13.0,0,𑤌,1190C,Maldives,1,Dhivehi,dv,Exclusion,no,no,Yes,Yes,no
156,Khitan small script,Kits,13.0,0,𘱥,18C65,China,2,Khitan,zkt,Exclusion,no,Yes,no,Yes,no
-157,Yezidi,Yezi,13.0,0,𐺈,10E88,Georgia,1,Northern Kurdish,ku,Exclusion,Yes,no,no,no,no
\ No newline at end of file
+157,Yezidi,Yezi,13.0,0,𐺈,10E88,Georgia,1,Northern Kurdish,ku,Exclusion,Yes,no,no,no,no
+158,Toto,Toto,14.0,0,𞊐,1E290,India,1,Toto,txo,Limited_Use,no,no,no,no,no
\ No newline at end of file
diff --git a/tools/java/org/unicode/cldr/util/data/SpecialLocales.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/SpecialLocales.txt
similarity index 84%
rename from tools/java/org/unicode/cldr/util/data/SpecialLocales.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/SpecialLocales.txt
index d308c00..7efc7bb 100644
--- a/tools/java/org/unicode/cldr/util/data/SpecialLocales.txt
+++ b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/SpecialLocales.txt
@@ -21,5 +21,6 @@
en ; readonly ; The English locale is maintained by the CLDR-TC and may not be modified in the SurveyTool. Please file a ticket to make changes.
en_ZZ ; readonly ; The en_ZZ locale is used for display purposes in the SurveyTool and may not be modified in the SurveyTool. Please file a ticket to make changes.
-und ; scratch ; This locale is for testing purposes, it does not have any valid content.
-und_ZZ ; scratch ; This locale is for testing purposes, it does not have any valid content.
+mul ; scratch ; This locale is for testing purposes, it does not have any valid content.
+mul_ZZ ; scratch ; This locale is for testing purposes, it does not have any valid content.
+mul_AQ ; scratch ; This locale is for testing purposes, it does not have any valid content.
diff --git a/tools/java/org/unicode/cldr/util/data/TZID.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/TZID.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/TZID.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/TZID.txt
diff --git a/tools/java/org/unicode/cldr/util/data/TimeZoneAliases.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/TimeZoneAliases.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/TimeZoneAliases.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/TimeZoneAliases.txt
diff --git a/tools/java/org/unicode/cldr/util/data/UnMacroRegions.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/UnMacroRegions.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/UnMacroRegions.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/UnMacroRegions.txt
diff --git a/tools/java/org/unicode/cldr/util/data/WikipediaOfficialLanguages.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/WikipediaOfficialLanguages.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/WikipediaOfficialLanguages.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/WikipediaOfficialLanguages.txt
diff --git a/tools/java/org/unicode/cldr/util/data/africa b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/africa
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/africa
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/africa
diff --git a/tools/java/org/unicode/cldr/util/data/antarctica b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/antarctica
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/antarctica
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/antarctica
diff --git a/tools/java/org/unicode/cldr/util/data/asia b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/asia
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/asia
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/asia
diff --git a/tools/java/org/unicode/cldr/util/data/australasia b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/australasia
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/australasia
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/australasia
diff --git a/tools/java/org/unicode/cldr/util/data/backward b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/backward
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/backward
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/backward
diff --git a/tools/java/org/unicode/cldr/util/data/births/outdated.data b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/births/outdated.data
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/births/outdated.data
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/births/outdated.data
Binary files differ
diff --git a/tools/java/org/unicode/cldr/util/data/births/outdatedEnglish.data b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/births/outdatedEnglish.data
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/births/outdatedEnglish.data
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/births/outdatedEnglish.data
Binary files differ
diff --git a/tools/java/org/unicode/cldr/util/data/chart_messages.html b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/chart_messages.html
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/chart_messages.html
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/chart_messages.html
diff --git a/tools/java/org/unicode/cldr/util/data/codepointToIsoCurrencyCode.tsv b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/codepointToIsoCurrencyCode.tsv
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/codepointToIsoCurrencyCode.tsv
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/codepointToIsoCurrencyCode.tsv
diff --git a/tools/java/org/unicode/cldr/util/data/country_language_population_raw.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/country_language_population_raw.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/country_language_population_raw.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/country_language_population_raw.txt
diff --git a/tools/java/org/unicode/cldr/util/data/dl_cldr_extensions.xml b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/dl_cldr_extensions.xml
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/dl_cldr_extensions.xml
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/dl_cldr_extensions.xml
diff --git a/tools/java/org/unicode/cldr/util/data/dl_iso_table_a1.xml b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/dl_iso_table_a1.xml
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/dl_iso_table_a1.xml
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/dl_iso_table_a1.xml
diff --git a/tools/java/org/unicode/cldr/util/data/dl_iso_table_a3.xml b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/dl_iso_table_a3.xml
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/dl_iso_table_a3.xml
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/dl_iso_table_a3.xml
diff --git a/tools/java/org/unicode/cldr/util/data/emoji/emoji-test.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/emoji/emoji-test.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/emoji/emoji-test.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/emoji/emoji-test.txt
diff --git a/tools/java/org/unicode/cldr/util/data/etcetera b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/etcetera
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/etcetera
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/etcetera
diff --git a/tools/java/org/unicode/cldr/util/data/europe b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/europe
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/europe
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/europe
diff --git a/tools/java/org/unicode/cldr/util/data/external/2013-1_UNLOCODE_CodeListPart1.csv b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/2013-1_UNLOCODE_CodeListPart1.csv
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/external/2013-1_UNLOCODE_CodeListPart1.csv
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/2013-1_UNLOCODE_CodeListPart1.csv
diff --git a/tools/java/org/unicode/cldr/util/data/external/2013-1_UNLOCODE_CodeListPart2.csv b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/2013-1_UNLOCODE_CodeListPart2.csv
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/external/2013-1_UNLOCODE_CodeListPart2.csv
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/2013-1_UNLOCODE_CodeListPart2.csv
diff --git a/tools/java/org/unicode/cldr/util/data/external/2013-1_UNLOCODE_CodeListPart3.csv b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/2013-1_UNLOCODE_CodeListPart3.csv
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/external/2013-1_UNLOCODE_CodeListPart3.csv
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/2013-1_UNLOCODE_CodeListPart3.csv
diff --git a/tools/java/org/unicode/cldr/util/data/external/Cities-CountryCapitals.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/Cities-CountryCapitals.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/external/Cities-CountryCapitals.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/Cities-CountryCapitals.txt
diff --git a/tools/java/org/unicode/cldr/util/data/external/Cities-Over1M.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/Cities-Over1M.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/external/Cities-Over1M.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/Cities-Over1M.txt
diff --git a/tools/java/org/unicode/cldr/util/data/external/EuCode.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/EuCode.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/external/EuCode.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/EuCode.txt
diff --git a/tools/java/org/unicode/cldr/util/data/external/Iso639-5.html b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/Iso639-5.html
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/external/Iso639-5.html
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/Iso639-5.html
diff --git a/tools/java/org/unicode/cldr/util/data/external/UnCodes.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/UnCodes.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/external/UnCodes.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/UnCodes.txt
diff --git a/tools/java/org/unicode/cldr/util/data/external/alternate_country_names.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/alternate_country_names.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/external/alternate_country_names.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/alternate_country_names.txt
diff --git a/tools/java/org/unicode/cldr/util/data/external/alternate_language_names.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/alternate_language_names.txt
similarity index 99%
rename from tools/java/org/unicode/cldr/util/data/external/alternate_language_names.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/alternate_language_names.txt
index 1b8e94b..e696f12 100644
--- a/tools/java/org/unicode/cldr/util/data/external/alternate_language_names.txt
+++ b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/alternate_language_names.txt
@@ -97,11 +97,11 @@
ms ; Malay (macrolanguage)
mt ; Maltese
my ; Burmese
-nb ; Norwegian
nb ; Norwegian Bokmål
ne ; Nepali
nl ; Dutch
nn ; Norwegian Nynorsk
+no ; Norwegian
oc ; Occitan
oc ; Occitan (post 1500)
om ; Oromo
diff --git a/tools/java/org/unicode/cldr/util/data/external/alternate_locode_name.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/alternate_locode_name.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/external/alternate_locode_name.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/alternate_locode_name.txt
diff --git a/tools/java/org/unicode/cldr/util/data/external/eu_member_states_raw.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/eu_member_states_raw.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/external/eu_member_states_raw.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/eu_member_states_raw.txt
diff --git a/tools/java/org/unicode/cldr/util/data/external/ez_member_states_raw.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/ez_member_states_raw.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/external/ez_member_states_raw.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/ez_member_states_raw.txt
diff --git a/tools/java/org/unicode/cldr/util/data/external/factbook_gdp_ppp.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/factbook_gdp_ppp.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/external/factbook_gdp_ppp.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/factbook_gdp_ppp.txt
diff --git a/tools/java/org/unicode/cldr/util/data/external/factbook_literacy.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/factbook_literacy.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/external/factbook_literacy.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/factbook_literacy.txt
diff --git a/tools/java/org/unicode/cldr/util/data/external/factbook_population.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/factbook_population.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/external/factbook_population.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/factbook_population.txt
diff --git a/tools/java/org/unicode/cldr/util/data/external/iso_3166_status.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/iso_3166_status.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/external/iso_3166_status.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/iso_3166_status.txt
diff --git a/tools/java/org/unicode/cldr/util/data/external/m49_raw.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/m49_raw.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/external/m49_raw.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/m49_raw.txt
diff --git a/tools/java/org/unicode/cldr/util/data/external/nistBaseUnits.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/nistBaseUnits.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/external/nistBaseUnits.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/nistBaseUnits.txt
diff --git a/tools/java/org/unicode/cldr/util/data/external/nistConversions.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/nistConversions.txt
similarity index 98%
rename from tools/java/org/unicode/cldr/util/data/external/nistConversions.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/nistConversions.txt
index 2c75cb1..b163926 100644
--- a/tools/java/org/unicode/cldr/util/data/external/nistConversions.txt
+++ b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/nistConversions.txt
@@ -1,4 +1,5 @@
#From https://www.nist.gov/pml/special-publication-811/nist-guide-si-appendix-b-conversion-factors/nist-guide-si-appendix-b9
+#Fixed perm from (Pa · s · m2) to (Pa · m2 · s)
ACCELERATION
To convert from to Multiply by
acceleration of free fall, standard (gn) meter per second squared (m/s2) 9.806 65 E+00
@@ -414,10 +415,10 @@
PERMEABILITY
To convert from to Multiply by
darcy 14 meter squared (m2) 9.869 233 E-13
-perm (0 °C) kilogram per pascal second square meter [kg/(Pa · s · m2)] 5.721 35 E-11
-perm (23 °C) kilogram per pascal second square meter [kg/(Pa · s · m2)] 5.745 25 E-11
-perm inch (0 °C) kilogram per pascal second meter [kg/(Pa · s · m)] 1.453 22 E-12
-perm inch (23 °C) kilogram per pascal second meter [kg/(Pa · s · m)] 1.459 29 E-12
+perm (0 °C) kilogram per pascal square meter second [kg/(Pa · m2 · s)] 5.721 35 E-11
+perm (23 °C) kilogram per pascal square meter second [kg/(Pa · m2 · s)] 5.745 25 E-11
+perm inch (0 °C) kilogram per pascal meter second [kg/(Pa · m · s)] 1.453 22 E-12
+perm inch (23 °C) kilogram per pascal meter second [kg/(Pa · m · s)] 1.459 29 E-12
Return to top
POWER
diff --git a/tools/java/org/unicode/cldr/util/data/external/nistDerivedUnits.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/nistDerivedUnits.txt
similarity index 63%
rename from tools/java/org/unicode/cldr/util/data/external/nistDerivedUnits.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/nistDerivedUnits.txt
index 09971e0..12e7827 100644
--- a/tools/java/org/unicode/cldr/util/data/external/nistDerivedUnits.txt
+++ b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/nistDerivedUnits.txt
@@ -1,22 +1,24 @@
# From https://www.nist.gov/pml/special-publication-811/nist-guide-si-chapter-4-two-classes-si-units-and-si-prefixes
#Quantity Special Name Special symbol Expression in terms of other SI units Expression in terms of SI base units
+# Fixed newton, etc to have consistent unit ordering, kg · m
+# Fixed Cd to be cd
plane angle radian(b) rad 1(b) m/m
solid angle steradian(b) sr(c) 1(b) m2/m2
frequency hertz(d) Hz s-1
-force newton N m · kg · s-2
+force newton N kg · m · s-2
pressure, stress pascal Pa N/m2 m-1 · kg · s-2
-energy, work, amount of heat joule J N · m m2 · kg · s-2
-power, radiant flux watt W J/s m2 · kg · s-3
+energy, work, amount of heat joule J N · m kg · m2 · s-2
+power, radiant flux watt W J/s kg · m2 · s-3
electric charge, amount of electricity coulomb C s · A
-electric potential difference(e), electromotive force volt V W/A m2 · kg · s-3 · A-1
-capacitance farad F C/V m-2 · kg-1 · s4 · A2
-electric resistance ohm Ω V/A m2 · kg · s-3 · A-2
-electric conductance siemens S A/V m-2 · kg-1 · s3 · A2
-magnetic flux weber Wb V · s m2 · kg · s-2 · A-1
+electric potential difference(e), electromotive force volt V W/A kg · m2 · s-3 · A-1
+capacitance farad F C/V kg-1 · m-2 · s4 · A2
+electric resistance ohm Ω V/A kg · m2 · s-3 · A-2
+electric conductance siemens S A/V kg-1 · m-2 · s3 · A2
+magnetic flux weber Wb V · s kg · m2 · s-2 · A-1
magnetic flux density tesla T Wb/m2 kg · s-2 · A-1
-inductance henry H Wb/A m2 · kg· s-2 · A-2
+inductance henry H Wb/A kg · m2 · s-2 · A-2
Celsius temperature degree Celsius (f) °C K
-luminous flux lumen lm cd · sr(c) Cd
+luminous flux lumen lm cd · sr(c) cd
illuminance lux lx lm/m2 m-2· cd
activity referred to a radionuclide(g) becquerel(d) Bq s-1
absorbed dose, specific energy (imparted), kerma gray Gy J/kg m2· s-2
diff --git a/tools/java/org/unicode/cldr/util/data/external/other_country_data.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/other_country_data.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/external/other_country_data.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/other_country_data.txt
diff --git a/tools/java/org/unicode/cldr/util/data/external/subdivisionData.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/subdivisionData.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/external/subdivisionData.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/subdivisionData.txt
diff --git a/tools/java/org/unicode/cldr/util/data/external/un_literacy.csv b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/un_literacy.csv
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/external/un_literacy.csv
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/un_literacy.csv
diff --git a/tools/java/org/unicode/cldr/util/data/external/un_member_states_raw.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/un_member_states_raw.txt
similarity index 86%
rename from tools/java/org/unicode/cldr/util/data/external/un_member_states_raw.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/un_member_states_raw.txt
index 01a4890..13d9ef4 100644
--- a/tools/java/org/unicode/cldr/util/data/external/un_member_states_raw.txt
+++ b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/un_member_states_raw.txt
@@ -1,3 +1,4 @@
+A
Member StateDate of Admission
Afghanistan 19-11-46
Albania 14-12-55
@@ -13,17 +14,17 @@
Back to top
B
Member StateDate of Admission
-Bahamas 18-08-73
+Bahamas 18-09-73
Bahrain 21-09-71
Bangladesh 17-09-74
Barbados 09-12-66
-Belarus* 24-10-45
+Belarus 24-10-45
Belgium 27-12-45
Belize 25-09-81
Benin 20-09-60
Bhutan 21-09-71
Bolivia (Plurinational State of) 14-11-45
-Bosnia and Herzegovina* 22-05-92
+Bosnia and Herzegovina 22-05-92
Botswana 17-10-66
Brazil 24-10-45
Brunei Darussalam 21-09-84
@@ -33,7 +34,7 @@
Back to top
C
Member StateDate of Admission
-Cabo Verde* 16-09-75
+Cabo Verde 16-09-75
Cambodia 14-12-55
Cameroon 20-09-60
Canada 09-11-45
@@ -46,15 +47,15 @@
Congo 20-09-60
Costa Rica 02-11-45
Côte D'Ivoire 20-09-60
-Croatia* 22-05-92
+Croatia 22-05-92
Cuba 24-10-45
Cyprus 20-09-60
-Czech Republic* 19-01-93
+Czech Republic 19-01-93
Back to top
D
Member StateDate of Admission
Democratic People's Republic of Korea 17-09-91
-Democratic Republic of the Congo* 20-09-60
+Democratic Republic of the Congo 20-09-60
Denmark 24-10-45
Djibouti 20-09-77
Dominica 18-12-78
@@ -63,11 +64,12 @@
E
Member StateDate of Admission
Ecuador 21-12-45
-Egypt* 24-10-45
+Egypt 24-10-45
El Salvador 24-10-45
Equatorial Guinea 12-11-68
Eritrea 28-05-93
Estonia 17-09-91
+Eswatini 24-09-68
Ethiopia 13-11-45
Back to top
F
@@ -79,9 +81,9 @@
G
Member StateDate of Admission
Gabon 20-09-60
-Gambia (Islamic Republic of the) 21-09-65
+Gambia (Republic of The) 21-09-65
Georgia 31-07-92
-Germany* 18-09-73
+Germany 18-09-73
Ghana 08-03-57
Greece 25-10-45
Grenada 17-09-74
@@ -100,7 +102,7 @@
Member StateDate of Admission
Iceland 19-11-46
India 30-10-45
-Indonesia* 28-09-50
+Indonesia 28-09-50
Iran (Islamic Republic of) 24-10-45
Iraq 21-12-45
Ireland 14-12-55
@@ -123,7 +125,7 @@
Back to top
L
Member StateDate of Admission
-Lao People’s Democratic Republic 14-12-55
+Lao People’s Democratic Republic14-12-55
Latvia 17-09-91
Lebanon 24-10-45
Lesotho 17-10-66
@@ -137,7 +139,7 @@
Member StateDate of Admission
Madagascar 20-09-60
Malawi 01-12-64
-Malaysia* 17-09-57
+Malaysia 17-09-57
Maldives 21-09-65
Mali 28-09-60
Malta 01-12-64
@@ -148,7 +150,7 @@
Micronesia (Federated States of) 17-09-91
Monaco 28-05-93
Mongolia 27-10-61
-Montenegro* 28-06-06
+Montenegro 28-06-06
Morocco 12-11-56
Mozambique 16-09-75
Myanmar 19-04-48
@@ -163,6 +165,7 @@
Nicaragua 24-10-45
Niger 20-09-60
Nigeria 07-10-60
+North Macedonia 08-04-93
Norway 27-11-45
Back to top
O
@@ -190,25 +193,25 @@
Republic of Korea 17-09-91
Republic of Moldova 02-03-92
Romania 14-12-55
-Russian Federation* 24-10-45
+Russian Federation 24-10-45
Rwanda 18-09-62
Back to top
S
Member StateDate of Admission
Saint Kitts and Nevis 23-09-83
Saint Lucia 18-09-79
-Saint Vincent and the Grenadines 16-09-80
+Saint Vincent and the Grenadines16-09-80
Samoa 15-12-76
San Marino 02-03-92
Sao Tome and Principe 16-09-75
Saudi Arabia 24-10-45
-Senegal 28-09-69
-Serbia* 01-11-00
+Senegal 28-09-60
+Serbia 01-11-00
Seychelles 21-09-76
Sierra Leone 27-09-61
-Singapore* 21-09-65
-Slovakia* 19-01-93
-Slovenia* 22-05-92
+Singapore 21-09-65
+Slovakia 19-01-93
+Slovenia 22-05-92
Solomon Islands 19-09-78
Somalia 20-09-60
South Africa 07-11-45
@@ -217,16 +220,14 @@
Sri Lanka 14-12-55
Sudan 12-11-56
Suriname 04-12-75
-Swaziland 24-09-68
Sweden 19-11-46
Switzerland 10-09-02
-Syrian Arab Republic* 24-10-45
+Syrian Arab Republic 24-10-45
Back to top
T
Member StateDate of Admission
Tajikistan 02-03-92
Thailand 16-12-46
-The former Yugoslav Republic of Macedonia* 08-04-93
Timor-Leste 27-09-02
Togo 20-09-60
Tonga 14-09-99
@@ -242,7 +243,7 @@
Ukraine 24-10-45
United Arab Emirates 09-12-71
United Kingdom of Great Britain and Northern Ireland 24-10-45
-United Republic of Tanzania* 14-12-61
+United Republic of Tanzania 14-12-61
United States of America 24-10-45
Uruguay 18-12-45
Uzbekistan 02-03-92
@@ -255,9 +256,9 @@
Back to top
Y
Member StateDate of Admission
-Yemen* 30-09-47
+Yemen 30-09-47
Back to top
Z
Member StateDate of Admission
Zambia 01-12-64
-Zimbabwe 25-08-80
\ No newline at end of file
+Zimbabwe 25-08-80
diff --git a/tools/java/org/unicode/cldr/util/data/external/us_census.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/us_census.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/external/us_census.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/us_census.txt
diff --git a/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/world_bank_data.csv b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/world_bank_data.csv
new file mode 100644
index 0000000..bdea3de
--- /dev/null
+++ b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/external/world_bank_data.csv
@@ -0,0 +1,440 @@
+Country Name,Country Code,Series Name,Series Code,2000 [YR2000],2001 [YR2001],2002 [YR2002],2003 [YR2003],2004 [YR2004],2005 [YR2005],2006 [YR2006],2007 [YR2007],2008 [YR2008],2009 [YR2009],2010 [YR2010],2011 [YR2011],2012 [YR2012],2013 [YR2013],2014 [YR2014],2015 [YR2015],2016 [YR2016],2017 [YR2017],2018 [YR2018],2019 [YR2019],2020 [YR2020]
+Afghanistan,AFG,"Population, total",SP.POP.TOTL,20779953,21606988,22600770,23680871,24726684,25654277,26433049,27100536,27722276,28394813,29185507,30117413,31161376,32269589,33370794,34413603,35383128,36296400,37172386,38041754,..
+Afghanistan,AFG,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,43028339585.6309,50011958157.3092,51128371957.0037,59760957551.4133,65266760469.2683,69050351843.9249,72481076024.3345,70796494471.4959,75695088352.0683,78246825056.7021,83338025782.5507,..
+Albania,ALB,"Population, total",SP.POP.TOTL,3089027,3060173,3051010,3039616,3026939,3011487,2992547,2970017,2947314,2927519,2913021,2905195,2900401,2895092,2889104,2880703,2876101,2873457,2866376,2854191,..
+Albania,ALB,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,12295329934.0871,13662030955.6943,14638785105.4615,15646789482.4405,16815675369.8153,18045171250.16,20207327771.9002,22210992539.7718,24354670853.9274,25412668725.7731,27785785416.5398,29662729114.3582,30304812913.2324,31131654485.7363,32829902894.5929,33990559188.9825,35083764553.2169,37559230695.0488,39608393973.6197,40828429764.1102,..
+Algeria,DZA,"Population, total",SP.POP.TOTL,31042235,31451514,31855109,32264157,32692163,33149724,33641002,34166972,34730608,35333881,35977455,36661444,37383887,38140132,38923687,39728025,40551404,41389198,42228429,43053054,..
+Algeria,DZA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,249232149978.044,267470729772.786,284424711055.165,310404814209.541,331635230075.473,359452609098.631,380467549550.534,414463504564.776,435944355504.26,445230320026.213,470000675901.051,489707117050.316,488117181091.504,487239914887.224,494727795289.635,464588484037.499,466771786823.2,478402210309.423,490917462144.424,504791012225.947,..
+American Samoa,ASM,"Population, total",SP.POP.TOTL,57821,58494,59080,59504,59681,59562,59107,58365,57492,56683,56079,55759,55667,55713,55791,55812,55741,55620,55465,55312,..
+American Samoa,ASM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
+Andorra,AND,"Population, total",SP.POP.TOTL,65390,67341,70049,73182,76244,78867,80993,82684,83862,84463,84449,83747,82427,80774,79213,78011,77297,77001,77006,77142,..
+Andorra,AND,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
+Angola,AGO,"Population, total",SP.POP.TOTL,16395473,16945753,17519417,18121479,18758145,19433602,20149901,20905363,21695634,22514281,23356246,24220661,25107931,26015780,26941779,27884381,28842484,29816748,30809762,31825295,..
+Angola,AGO,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,45824413133.9703,49241242734.4028,59221986499.1037,62822142472.4266,70886902139.7566,83763899426.7948,95301356717.731,111762825323.782,121139863500.973,131544425303.329,139021744321.951,148439198180.964,170976257471.015,185392055550.407,206980822098.846,194201091488.512,194190315018.692,204590018767.271,201919302150.646,202919152641.785,..
+Antigua and Barbuda,ATG,"Population, total",SP.POP.TOTL,76016,77212,78295,79300,80336,81465,82704,84026,85397,86746,88028,89253,90409,91516,92562,93566,94527,95426,96286,97118,..
+Antigua and Barbuda,ATG,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,1211227442.28971,1210104617.53949,1216337819.0947,1322114644.66104,1430240269.95115,1583350593.76398,1839948701.40814,2065932007.4499,2096019676.44105,1865595834.61198,1770640004.05362,1760071676.80133,1713287781.8074,1663882354.66843,1676616005.88215,1658065094.13568,1755596324.44791,1791695103.4755,1981554449.75263,2115405841.91579,..
+Argentina,ARG,"Population, total",SP.POP.TOTL,36870787,37275652,37681749,38087868,38491972,38892931,39289878,39684295,40080160,40482788,40788453,41261490,41733271,42202935,42669500,43131966,43590368,44044811,44494502,44938712,..
+Argentina,ARG,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,417017017009.227,406454882813.606,359568619967.105,403024962194.134,417925482279.632,467759982267.773,567943867271.649,640200578851.996,680128095938.16,640783010755.589,711419160853.369,774596879587.266,799048894124.435,829354154809.18,821363404158.217,849527597209.51,865869191296.284,1012879734310.32,1000023342290.11,993942699975.164,..
+Armenia,ARM,"Population, total",SP.POP.TOTL,3069591,3050687,3033978,3017932,3000720,2981269,2958307,2932618,2907618,2888092,2877319,2876538,2884229,2897584,2912403,2925553,2936146,2944809,2951776,2957731,..
+Armenia,ARM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,8411785419.67257,9413974116.0513,10873948358.4591,12607269793.0174,14422298035.3002,16947791949.6003,19865408956.3925,23342625658.9928,25565242043.1401,21756361159.7928,22666908341.8178,23905121367.1988,28085043286.0165,30249264888.7339,30546350169.5526,30350856297.5624,32159779382.3081,36937299281.0248,39120612786.7074,42873618809.4117,..
+Aruba,ABW,"Population, total",SP.POP.TOTL,90853,92898,94992,97017,98737,100031,100834,101222,101358,101455,101669,102046,102560,103159,103774,104341,104872,105366,105845,106314,..
+Aruba,ABW,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,2872847339.02302,2799573363.60092,2637127972.62737,2867204478.70348,3154765184.86991,2706594378.09304,3391212936.14827,3161477225.41298,3615027525.53599,3283103911.65544,3122230322.63196,3163613120.68283,3285168875.60645,3533775695.47509,3641308245.23705,3672197163.04349,3739360304.0678,3824342328.82359,..,..,..
+Australia,AUS,"Population, total",SP.POP.TOTL,19153000,19413000,19651400,19895400,20127400,20394800,20697900,20827600,21249200,21691700,22031750,22340024,22733465,23128129,23475686,23815995,24190907,24601860,24982688,25364307,..
+Australia,AUS,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,489520624813.209,516165308478.963,549012712403.385,574857353021.546,612002674935.358,639679592265.961,682096652760.495,727224136964.806,763437639656.731,843557963001.247,832245554168.474,899875053935.933,943990546160.514,1035222299693.94,1071746498596.55,1079583930033.6,1118334918553.7,1169587890497.09,1233718577170.99,1312946629800.72,..
+Austria,AUT,"Population, total",SP.POP.TOTL,8011566,8042293,8081957,8121423,8171966,8227829,8268641,8295487,8321496,8343323,8363404,8391643,8429991,8479823,8546356,8642699,8736668,8797566,8840521,8877067,..
+Austria,AUT,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,233385834582.488,235712900139.037,250522395607.009,260116247290.919,275368283316.74,287476798281.967,311765805754.051,326427226000.799,346680570770.484,341573577563.707,354517435256.432,374289188740.567,392030460346.489,407466618825.439,417609480255.935,426846890617.193,460201284410.751,474937886989.369,497745094972.185,525880903620.486,..
+Azerbaijan,AZE,"Population, total",SP.POP.TOTL,8048600,8111200,8171950,8234100,8306500,8391850,8484550,8581300,8763400,8947243,9054332,9173082,9295784,9416801,9535079,9649341,9757812,9854033,9939771,10023318,..
+Azerbaijan,AZE,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,25945513010.2528,29117438060.5066,32461339752.551,36476072964.7548,40054468928.3452,50348201967.0383,69470177009.3982,86839747135.143,103214559006.562,117359000516.283,126293927376.559,125796646904.165,139255987866.21,152856083251.662,160621518912.437,138638584391.013,131075186140.226,133161462622.119,137128021530.424,144296281005.428,..
+"Bahamas, The",BHS,"Population, total",SP.POP.TOTL,298051,302618,307660,313129,318894,324859,331033,337389,343681,349604,354942,359577,363584,367168,370633,374206,377931,381761,385640,389482,..
+"Bahamas, The",BHS,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,8212056406.31778,8555709090.96442,8954629039.89073,9038072662.58635,9378181847.15075,9969486472.93166,10498602243.2238,10932504065.84,11064125112.701,10593498289.8705,10810930837.4997,11125447356.4103,11592295606.9315,11664057031.2262,11803438328.4279,12077336447.0334,12431913675.4873,13456760112.3046,13857796359.8491,14573094718.7335,..
+Bahrain,BHR,"Population, total",SP.POP.TOTL,664611,697545,735146,778708,829844,889164,958418,1035919,1114641,1185076,1240860,1278151,1299943,1315029,1336075,1371851,1425791,1494074,1569439,1641172,..
+Bahrain,BHR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,27342775276.3574,28311147153.9873,29139543395.9726,31890130713.7588,35064369650.667,39326073362.0421,43358665292.8983,48563603297.8894,51417086000.0769,49339407231.3389,52795240415.678,52634201219.1065,63717186823.4415,65227977632.6593,64937397694.8038,59027883384.9117,60275901158.781,67284010435.2343,70220133114.7865,72618511153.922,..
+Bangladesh,BGD,"Population, total",SP.POP.TOTL,127657854,130088702,132478086,134791603,136986432,139035505,140921167,142660376,144304167,145924797,147575430,149273778,151007807,152764676,154520167,156256276,157970840,159670593,161356039,163046161,..
+Bangladesh,BGD,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,175498919227.629,188070203073.154,200208813624.624,213675170645.792,231579977031.186,254658354477.952,283108920209.107,313518502600.66,342916461438.073,363743237553.602,389103736781.876,422196099681.022,481140590082.247,518842425889.083,555106922287.902,591636233914.118,643070206340.889,692953262569.39,767585722054.335,847725068478.801,..
+Barbados,BRB,"Population, total",SP.POP.TOTL,271515,272500,273425,274329,275284,276323,277477,278700,279946,281104,282131,282987,283700,284296,284825,285324,285796,286233,286641,287025,..
+Barbados,BRB,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,3342299166.86534,3318357276.4215,3388898330.31239,3514294102.68914,3689684927.99785,3906413103.41596,4195291318.32925,4499475769.70674,4565169179.76414,4407087551.332,4437707800.36276,4316589791.49889,4181013706.50134,4178206525.47126,4140648057.77415,4225737707.64073,4350024546.28767,4316152743.33284,4394031470.49306,4526365191.90051,..
+Belarus,BLR,"Population, total",SP.POP.TOTL,9979610,9928549,9865548,9796749,9730146,9663915,9604924,9560953,9527985,9506765,9490583,9473172,9464495,9465997,9474511,9489616,9501534,9498264,9483499,9466856,..
+Belarus,BLR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,57705302052.2312,61790137573.021,65964081583.2042,72232043480.5903,82600707464.8381,93036490631.5695,105319045367.939,116797714170.423,131252203712.089,131452902111.198,142835099049.367,153208172866.978,167125617328.764,172894457423.035,173994190973.455,163630254654.451,160606261472.775,167024751964.679,176904878327.251,183698026692.516,..
+Belgium,BEL,"Population, total",SP.POP.TOTL,10251250,10286570,10332785,10376133,10421137,10478617,10547958,10625700,10709973,10796493,10895586,11038264,11106932,11159407,11209057,11274196,11331422,11375158,11427054,11484055,..
+Belgium,BEL,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,292276530740.395,301798939308.354,318307798007.558,326734665722.615,338466279472.564,352001708926.337,376805872104.647,395958458302.032,415597849908.875,415541297928.157,441038357059.041,452655752838.946,480620383220.801,499349513623.745,514186705056.397,528391165614.716,555903417019.803,581035841315.395,604047116969.983,638383041264.754,..
+Belize,BLZ,"Population, total",SP.POP.TOTL,247315,255063,262378,269425,276504,283800,291329,299025,306823,314655,322464,330237,338000,345715,353366,360933,368400,375769,383071,390353,..
+Belize,BLZ,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,1287298196.1791,1357138685.72689,1450487358.88229,1583911278.64361,1666805339.47864,1766488217.51415,1908297807.74083,1922378058.96915,2034539248.15195,2179587415.76509,2193724355.53615,2368948000.53391,2264205996.53674,2309915950.52433,2323837806.54418,2470411871.19312,2479820987.15139,2489191260.2487,2522166903.43134,2614817747.20414,..
+Benin,BEN,"Population, total",SP.POP.TOTL,6865951,7076733,7295394,7520555,7750004,7982225,8216897,8454793,8696921,8944708,9199259,9460830,9729248,10004588,10286842,10575952,10872067,11175204,11485048,11801151,..
+Benin,BEN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,12039933514.6189,12953894833.709,13731587221.0998,14462457150.085,15527659080.5875,16339425052.5885,17469806797.6892,18981657980.5307,20396010410.078,20980955407.1436,21626033958.4634,22827277379.615,24162896617.311,26561886938.3552,29012509444.3848,30282958642.7141,32384504143.6299,33647417490.4049,36807579149.0243,40106880016.6186,..
+Bermuda,BMU,"Population, total",SP.POP.TOTL,61833,62504,62912,63325,63740,64154,64523,64888,65273,65636,65124,64564,64798,65001,65138,65237,64554,63873,63920,63918,..
+Bermuda,BMU,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,4700390143.15073,4635082852.05734,4565102131.19074,4691734061.22244,4650207512.13465,4857325794.21895,5069411917.91031,5441446654.03734,5504554046.91263,5535494411.88974,..
+Bhutan,BTN,"Population, total",SP.POP.TOTL,591021,603640,616018,627839,638815,648739,657410,664876,671613,678323,685503,693298,701583,710238,719056,727876,736709,745568,754394,763092,..
+Bhutan,BTN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,1591736072.45333,1763611969.85447,1958737241.11293,2135036176.12311,2322903181.96542,2593205499.33264,2889013893.89607,3477490676.37768,3662361807.18209,3885527852.2975,4327633174.04573,4733983718.26042,5108157657.00653,5275721526.07621,5790544513.85152,6422593662.27931,7042038049.76,7585887017.97289,7980597036.78953,8573331039.92145,..
+Bolivia,BOL,"Population, total",SP.POP.TOTL,8418264,8580235,8742814,8905823,9069039,9232306,9395446,9558439,9721454,9884781,10048590,10212954,10377676,10542376,10706517,10869730,11031813,11192854,11353142,11513100,..
+Bolivia,BOL,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,28161612967.8022,29291553124.6937,30495792196.9599,31529219989.2159,33501391844.645,36239758290.814,39319908996.3219,42104650547.6827,45805903866.4478,47374744686.4426,49573288757.2582,53471345616.6341,57756234189.8845,65495334651.9116,71666096548.3735,74894854641.2025,81222638742.541,91495898239.9634,98223521478.584,102800331719.791,..
+Bosnia and Herzegovina,BIH,"Population, total",SP.POP.TOTL,3751176,3755512,3759387,3762173,3764194,3765331,3765424,3762786,3754271,3735938,3705472,3661175,3604972,3542605,3482104,3429361,3386267,3351527,3323929,3301000,..
+Bosnia and Herzegovina,BIH,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,18893960441.6454,19495377630.5613,20785260181.9174,21502942338.8847,24451805360.4885,25415032143.0391,28732276595.9095,31724088643.5628,35148776953.5042,35063834670.1722,35227484445.0509,36819142035.051,37436705441.6466,39546456224.3811,40136385245.9785,41479568124.8259,44045822823.5853,46045688886.5085,49491590649.7294,52398989536.7984,..
+Botswana,BWA,"Population, total",SP.POP.TOTL,1643334,1674678,1704642,1734398,1765527,1799078,1835908,1875459,1915639,1953498,1987105,2015402,2039551,2062536,2088614,2120716,2159944,2205128,2254126,2303697,..
+Botswana,BWA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,13557092939.2771,14419524274.8972,13889148591.4504,15363406286.1099,15991762916.9771,17685223824.9424,19912697625.2218,22352094125.8754,24185712882.0496,23597961987.8602,25205757693.1543,28096541037.8299,27303360033.361,29010796380.3206,33058095795.822,31933313901.3939,34206345775.1994,35058587014.1627,37266076873.3799,39492596031.7982,..
+Brazil,BRA,"Population, total",SP.POP.TOTL,174790340,177196054,179537520,181809246,184006481,186127103,188167356,190130443,192030362,193886508,195713635,197514534,199287296,201035903,202763735,204471769,206163058,207833831,209469333,211049527,..
+Brazil,BRA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,1538129202566,1587691758637.27,1660196184177.65,1713529500917.59,1865227767507.5,1986218399487.58,2135907584084.41,2335440098763.74,2493769549026.6,2515775629855.66,2712167338456.5,2894294561187.89,2923719823241.04,3090347659210.83,3127764536961.12,2958026429307.17,2876740136507.09,2961280980576.57,3043390537931.72,3143422016727.75,..
+British Virgin Islands,VGB,"Population, total",SP.POP.TOTL,20311,20675,21129,21672,22334,23107,24023,25047,26097,27039,27794,28319,28650,28847,28989,29152,29355,29577,29802,30030,..
+British Virgin Islands,VGB,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
+Brunei Darussalam,BRN,"Population, total",SP.POP.TOTL,333165,340034,346782,353293,359433,365114,370263,374965,379421,383906,388646,393688,398989,404421,409769,414907,419800,424473,428962,433285,..
+Brunei Darussalam,BRN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,22135261424.9486,23241505276.8934,24523299249.3904,25704091177.1662,26529220186.8034,27461594985.3733,29536870000.7504,30531964647.8863,30482369302.7788,30204880109.2496,30970850502.4412,32155106321.3359,34364760477.9712,33509559006.4759,33313972350.9287,27254603848.3947,25364170400.1577,27428959648.7296,26699569467.4562,28850758087.8887,..
+Bulgaria,BGR,"Population, total",SP.POP.TOTL,8170172,8009142,7837161,7775327,7716860,7658972,7601022,7545338,7492561,7444443,7395599,7348328,7305888,7265115,7223938,7177991,7127822,7075947,7025037,6975761,..
+Bulgaria,BGR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,51206887192.224,55857030666.9347,62301080894.9876,66436197074.9398,71770858373.6766,79042444991.263,84464686591.4914,89506772467.2668,102296594159.52,102287854090.122,107728033180.474,111509002688.347,117115804878.209,117860371788.221,125765661562.087,127592068968.18,137379799294.933,147544861339.814,153857801794.821,170118356251.748,..
+Burkina Faso,BFA,"Population, total",SP.POP.TOTL,11607942,11944587,12293100,12654621,13030569,13421930,13829176,14252021,14689725,15141098,15605217,16081911,16571246,17072775,17586017,18110624,18646378,19193284,19751535,20321378,..
+Burkina Faso,BFA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,10688302846.6091,11615694843.8349,12242847625.2686,13415234835.4074,14439926118.3151,16145340333.826,17809475213.2536,19037726558.6557,20514322617.4391,21100393405.5092,22740240436.9381,24485121959.0513,26157122985.3763,27958185156.6621,28468442315.1301,29619149700.6198,33766175223.7979,37765264713.5699,41074535712.0897,44305023527.1847,..
+Burundi,BDI,"Population, total",SP.POP.TOTL,6378871,6525545,6704113,6909154,7131693,7364862,7607849,7862214,8126102,8397668,8675602,8958406,9245988,9540289,9844297,10160030,10487998,10827024,11175378,11530580,..
+Burundi,BDI,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,3417413481.10228,3457302261.48642,3658729575.43998,3657760764.48347,3909506770.55424,4126198848.15696,4521888837.74387,4816030668.93534,5157105457.34548,5357360329.39461,5721809553.38018,6061708967.24937,6368259239.23793,7074395514.84014,7630235753.1728,8546596103.6737,8355961626.26465,8362807306.07259,8735147301.96939,9072309838.02883,..
+Cabo Verde,CPV,"Population, total",SP.POP.TOTL,428188,435709,442951,449930,456617,463032,469170,475060,480842,486671,492654,498856,505235,511748,518269,524743,531146,537497,543767,549935,..
+Cabo Verde,CPV,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,1266782277.92464,1342798431.10376,1418151673.37215,1513235208.5557,1709455198.78272,1857808134.70264,2054984867.82374,2473476173.34383,2673960999.06463,2662817641.55677,2681117810.12064,2859939245.12912,2814067315.42606,2860973891.1569,2830720284.50257,3029167495.53556,3238655861.73701,3447518123.5678,3733330399.55833,4030485007.50209,..
+Cambodia,KHM,"Population, total",SP.POP.TOTL,12155239,12405408,12637727,12856163,13066469,13273354,13477709,13679962,13883834,14093604,14312212,14541423,14780454,15026332,15274503,15521436,15766293,16009414,16249798,16486542,..
+Cambodia,KHM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,12642116509.1974,13934468278.2065,14956236448.593,16630363468.2645,18802167691.8664,21829777135.1141,24961136700.4215,28430776804.1854,30812143007.3495,31002587126.5691,33148868045.2736,36196062670.2364,40199856424.6254,43802730490.9686,46099725658.5717,49377507801.9442,54385763728.0482,58986036499.7483,64567225380.5351,71196229116.5427,..
+Cameroon,CMR,"Population, total",SP.POP.TOTL,15513945,15928910,16357602,16800865,17259322,17733410,18223674,18730282,19252666,19789919,20341241,20906388,21485266,22077298,22681858,23298368,23926539,24566045,25216237,25876380,..
+Cameroon,CMR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,28350592041.7904,29973192155.0175,32043132680.1166,34925291392.2147,38815056170.859,40660059088.5156,43972199122.0457,46918252752.7507,49841317015.1281,51912218950.4761,54002042434.1044,57392868093.6708,60411127308.0801,65020260624.0553,71651218352.3963,74891827392.5734,80077228864.72,85671150257.274,91301421923.7163,96533547073.0486,..
+Canada,CAN,"Population, total",SP.POP.TOTL,30685730,31020902,31360079,31644028,31940655,32243753,32571174,32889025,33247118,33628895,34004889,34339328,34714222,35082954,35437435,35702908,36109487,36543321,37057765,37589262,..
+Canada,CAN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,877403072641.854,910889240475.231,946440061399.149,997997291124.232,1059801620831.76,1147390008931.78,1221437024738.28,1281770753021.91,1322673547258.16,1285413680532.32,1337096249937.57,1403781260484.68,1442044757903.5,1530453431372.55,1595196682591.57,1570466921580.38,1657881697068.52,1756595635890.34,1831814016986.75,1910033900633.52,..
+Cayman Islands,CYM,"Population, total",SP.POP.TOTL,42303,43935,45351,46632,47902,49261,50740,52280,53836,55322,56672,57878,58958,59932,60848,61724,62569,63382,64174,64948,..
+Cayman Islands,CYM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,3395042987.21352,3579426050.65665,2506666921.47604,2247527758.54084,2213929694.30591,2351877760.12249,2505902119.56254,2648767678.95781,..,..,..
+Central African Republic,CAF,"Population, total",SP.POP.TOTL,3640427,3722018,3802128,3881181,3959875,4038382,4118069,4198010,4273366,4337625,4386768,4418636,4436415,4447942,4464175,4493170,4537687,4596028,4666377,4745185,..
+Central African Republic,CAF,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,2420173859.90345,2599121943.09188,2733617163.88503,2651938233.7287,2862197904.53031,2987895516.81399,3224496848.89518,3469104944.51227,3590248705.01744,3962827993.92881,4225494331.43784,4492422406.61788,4910903587.89207,3314143517.70327,3249088436.38074,3580087008.65921,3910067806.77701,4409011233.54022,4793212655.88253,5031430628.10779,..
+Chad,TCD,"Population, total",SP.POP.TOTL,8355654,8678051,9019233,9373916,9734767,10096633,10457124,10818024,11183588,11560147,11952136,12360989,12784750,13220424,13663559,14110975,14561666,15016773,15477751,15946876,..
+Chad,TCD,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,6319492732.8287,7207018150.19481,7812304545.19024,7891811202.748,10951344125.1613,13201164729.007,13543078132.8574,14781565236.487,15134744516.6698,18144612372.0433,21024060933.2115,21644734483.3347,21591587636.4981,19796873664.8052,21921934523.2352,24904346467.7966,23791406629.63,23520168178.8231,24627186348.43,25900434302.7093,..
+Channel Islands,CHI,"Population, total",SP.POP.TOTL,148443,149097,149596,150068,150716,151678,153008,154636,156433,158178,159734,160998,162056,163038,164100,165385,166923,168665,170499,172259,..
+Channel Islands,CHI,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
+Chile,CHL,"Population, total",SP.POP.TOTL,15342353,15516113,15684409,15849652,16014971,16182721,16354504,16530195,16708258,16886186,17062536,17233576,17400347,17571507,17758959,17969353,18209068,18470439,18729160,18952038,..
+Chile,CHL,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,141423035548.287,149617763772.581,155784421760.061,161378820974.511,173667662655.791,188423173015.673,226393185292.021,248814945028.446,254260262604.88,254255791260.918,288017255793.192,329368731234.727,356585691606.824,374348201436.925,389162444827.984,395407468276.445,400624301817.111,419006172363.607,443885470333.679,457579908141.733,..
+China,CHN,"Population, total",SP.POP.TOTL,1262645000,1271850000,1280400000,1288400000,1296075000,1303720000,1311020000,1317885000,1324655000,1331260000,1337705000,1344130000,1350695000,1357380000,1364270000,1371220000,1378665000,1386395000,1392730000,1397715000,..
+China,CHN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,3642986041928.36,4024208597801.63,4480023035330.32,5041612399956.79,5721210645155.26,6542499498848.87,7637567013116.46,8995920251191.05,10095616191141.3,11041411177013,12325788357965.7,13715341860797.1,15089408821877.8,16053445265526.1,17143013848523,17729512180415.4,18637217031966.2,19871384207289.5,21629318939738.3,23467895463025.1,..
+Colombia,COL,"Population, total",SP.POP.TOTL,39629965,40255956,40875363,41483872,42075953,42647731,43200901,43737512,44254972,44750054,45222699,45662747,46075721,46495492,46967706,47520667,48175048,48909844,49661056,50339443,..
+Colombia,COL,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,259414591435.082,268702127891.617,279161165822.383,293272250097.276,317045556062.283,346110876223.705,380086886987.383,414864274275.246,434915143662.541,444985677701.233,467552032486.977,507216374248.229,532681024405.232,571015950345.544,606448118177.276,621482821087.166,664816412490.902,687298469474.748,724232953004.369,762425730871.491,..
+Comoros,COM,"Population, total",SP.POP.TOTL,542357,555888,569479,583211,597228,611627,626425,641620,657229,673252,689692,706569,723871,741505,759390,777424,795592,813892,832322,850886,..
+Comoros,COM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,978152950.804034,1023858997.67409,1060344930.4136,1101989662.30678,1152290411.08942,1222952535.72504,1293956752.99326,1344729861.57163,1420168578.8741,1477640850.46231,1552343824.83108,1650025527.79945,1814962014.89785,1955354402.02042,2065846271.75344,2114908310.93723,2290518423.87202,2481555639.3609,2629908705.49368,2730498494.56536,..
+"Congo, Dem. Rep.",COD,"Population, total",SP.POP.TOTL,47105826,48428545,49871666,51425580,53068880,54785903,56578037,58453683,60411195,62448574,64563854,66755153,69020747,71358807,73767447,76244544,78789127,81398764,84068091,86790567,..
+"Congo, Dem. Rep.",COD,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,20631804485.669,20003968418.1287,21282755744.292,23094505319.0247,25195745566.6403,27219506331.7433,29841190579.3641,32379440370.6344,33996053842.214,36180051181.8472,39199375964.6082,42414784447.7013,43696967208.4135,49142683507.8545,57377953169.2351,63954295208.2057,74312567452.9388,83831229357.8051,90953663636.116,96667365246.7011,..
+"Congo, Rep.",COG,"Population, total",SP.POP.TOTL,3127411,3217933,3310387,3406922,3510468,3622775,3745141,3876119,4011486,4145391,4273731,4394844,4510198,4622761,4736974,4856095,4980999,5110702,5244363,5380508,..
+"Congo, Rep.",COG,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,7485689729.37857,7913651810.96626,8591324074.32949,9041201332.0629,8860075122.24729,12056366602.3699,13767946505.2119,14154727593.0636,16034034009.6285,18954191903.6514,21253622379.3552,21473477747.3796,27030818565.0556,27413068503.0748,28304384999.4875,22525682487.8446,18613149352.8491,21067171138.6444,17852307969.4025,16040562008.9331,..
+Costa Rica,CRI,"Population, total",SP.POP.TOTL,3962372,4034074,4100925,4164053,4225155,4285502,4345412,4404628,4463125,4520740,4577378,4633086,4688000,4742107,4795396,4847804,4899345,4949954,4999441,5047561,..
+Costa Rica,CRI,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,29623300812.5254,31328489118.5498,32869977674.089,34899103009.0376,37542259498.1991,40408165127.2701,45035715487.6313,50192693115.7399,53911670959.0313,53040066102.0999,56358853435.9805,59912146076.3814,63956459017.0707,66885378676.1451,71737908299.0027,76862312605.2469,84399345453.2129,89894854940.6111,93960595206.229,97160345460.4284,..
+Cote d'Ivoire,CIV,"Population, total",SP.POP.TOTL,16454668,16853026,17231539,17599610,17970494,18354514,18754916,19171237,19605569,20059147,20532950,21028655,21547188,22087505,22647683,23226143,23822714,24437469,25069229,25716544,..
+Cote d'Ivoire,CIV,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,34179810557.8771,34164006386.8434,33728201148.7365,32927882380.4244,35894161010.3424,40606319288.7875,42394364748.0885,44307734383.822,46446854988.9261,48250474386.6364,49892838646.3495,48585323041.8884,54762839531.1921,59653079619.2815,69008798623.8581,105692768632.425,110081941651.056,114536013131.385,124352178127.055,136241482746.69,..
+Croatia,HRV,"Population, total",SP.POP.TOTL,4468302,4299642,4302174,4303399,4304600,4310145,4311159,4310217,4309705,4305181,4295427,4280622,4267558,4255689,4238389,4203604,4174349,4124531,4087843,4067500,..
+Croatia,HRV,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,46423272093.5515,48626902715.2564,53478769405.7606,56347406306.2496,61465154904.9247,64358153786.054,73169384583.2477,81351984364.0126,86582124732.8759,82942220118.9837,82209672435.4448,86150245938.0221,87276474980.4318,90991269220.9258,91544932516.6019,96125429762.0545,100104402131.861,108402824209.413,113652559242.368,120736172409.794,..
+Cuba,CUB,"Population, total",SP.POP.TOTL,11126430,11164667,11199651,11229183,11250365,11261582,11261248,11251122,11236971,11226709,11225832,11236670,11257101,11282720,11306902,11324781,11335109,11339259,11338138,11333483,..
+Cuba,CUB,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
+Curacao,CUW,"Population, total",SP.POP.TOTL,133860,129047,129205,131897,134192,137658,141239,144056,145880,146833,148703,150831,152088,153822,155909,157980,159664,160175,159800,157538,..
+Curacao,CUW,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,3489211680.82753,3662002831.5739,3854063144.27512,3929727908.68312,3881983960.63827,3983315325.91322,4081824563.38638,3923707213.22909,3917983606.61816,3915994347.36562,3961320244.31667,3940250307.57778,4115499635.2035,4226521481.87897,4198823425.99445,..
+Cyprus,CYP,"Population, total",SP.POP.TOTL,943290,960276,976964,993563,1010408,1027662,1045507,1063713,1081563,1098083,1112612,1124833,1135046,1143866,1152285,1160985,1170187,1179680,1189265,1198575,..
+Cyprus,CYP,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,13511437593.7055,14900269209.4882,15854031939.3758,16711120833.6315,17808360760.0054,19438219908.7606,21265558315.876,23583729377.7075,26949307093.7785,27330224746.1933,27345455722.0869,29092538227.0754,27312721127.3054,25872169801.1677,24958899400.2898,26799632453.7288,29020982784.2734,31527221152.0243,33715431706.8222,35461722776.3851,..
+Czech Republic,CZE,"Population, total",SP.POP.TOTL,10255063,10216605,10196916,10193998,10197101,10211216,10238905,10298828,10384603,10443936,10474410,10496088,10510785,10514272,10525347,10546059,10566332,10594438,10629928,10669709,..
+Czech Republic,CZE,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,163318862574.18,175032173144.836,179426297147.504,192264660096.92,203152178580.283,215196463957.099,229430652523.982,252983040238.807,272806085747.403,270183285957.079,270363986483.074,279834668447.068,287718348866.221,303447928479.576,318616318237.674,333074027007.906,355652669894.304,389524989151.766,411500340618.27,433592827682.07,..
+Denmark,DNK,"Population, total",SP.POP.TOTL,5339616,5358783,5375931,5390574,5404523,5419432,5437272,5461438,5493621,5523095,5547683,5570572,5591572,5614932,5643475,5683483,5728010,5764980,5793636,5818553,..
+Denmark,DNK,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,149596143354.486,155487973617.73,162670765274.646,164472529117.583,178075165724.772,186566260237.836,205208412175.99,213876992045.586,229296531979.344,225193495345.495,242631692386.991,252568140433.285,256181803182.809,270675687839.011,280163778604.424,287382159288.342,305006431683.766,324192732266.204,340112252681.595,360494968319.94,..
+Djibouti,DJI,"Population, total",SP.POP.TOTL,717584,733015,746942,759641,771603,783254,794563,805451,816358,827823,840198,853674,868136,883293,898696,913993,929112,944097,958920,973560,..
+Djibouti,DJI,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,3715087653.66217,4036230825.66616,4429309389.07182,4597475415.7157,4817795003.66086,5293223658.55646,5468032070.02483,..
+Dominica,DMA,"Population, total",SP.POP.TOTL,69650,69661,69837,70100,70382,70589,70718,70795,70827,70851,70878,70916,70965,71016,71085,71183,71307,71458,71625,71808,..
+Dominica,DMA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,400344100.050039,429313346.642487,419179922.594129,456635202.271044,476896541.734916,501085760.652946,564432283.042279,611226901.484856,672058787.440172,677696725.884138,696454257.616343,708014383.213069,679255897.176841,700295621.02101,750737430.525807,761036723.992605,829614493.990179,789737770.599692,848226539.656118,879713928.246308,..
+Dominican Republic,DOM,"Population, total",SP.POP.TOTL,8471321,8598601,8724975,8850317,8974444,9097257,9218686,9338861,9458075,9576737,9695121,9813210,9930911,10048224,10165178,10281680,10397743,10513131,10627165,10738958,..
+Dominican Republic,DOM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,54857668549.2962,57452106864.6342,60995660118.6858,59846684931.1813,61991707950.5137,72044387232.5445,81396396201.2891,89627596581.1343,95625638247.8216,97333290980.8118,106664749894.626,111947846564.427,113509260614.206,119474404424.229,130353464759.375,145305629782.677,160306361207.653,167596561470.635,184144900952.736,196560601301.995,..
+Ecuador,ECU,"Population, total",SP.POP.TOTL,12681123,12914667,13143465,13369678,13596388,13825847,14059384,14296557,14535739,14774424,15011117,15243883,15474102,15707474,15951838,16212020,16491115,16785361,17084357,17373662,..
+Ecuador,ECU,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,69098046173.9191,74742259803.4372,79574768090.8532,83073642540.9202,91901802524.0762,100466458738.311,108594774589.755,114009264866.473,125602173795.351,127642774667.477,134421320331.008,147884749634.534,157237893147.298,172690001154.939,184012416071.378,176187957797.997,178667324026.587,190676436568.08,197015570306.07,200559348703.535,..
+"Egypt, Arab Rep.",EGY,"Population, total",SP.POP.TOTL,68831561,70152661,71485043,72826097,74172073,75523569,76873663,78232126,79636079,81134798,82761235,84529250,86422240,88404640,90424654,92442547,94447072,96442593,98423595,100388073,..
+"Egypt, Arab Rep.",EGY,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,400684181268.294,426651483079.273,439389034842.902,460706183388.555,491833952960.16,529721974374.87,587648023022.203,648829924824.971,708313454613.813,741483898470.868,772386697348.083,797765801524.506,936405442609.556,966549119173.092,961846565220.621,1045815284633.65,1042867889031.84,1041678981890.3,1117149662631.37,1188354578676.17,..
+El Salvador,SLV,"Population, total",SP.POP.TOTL,5887936,5927006,5962136,5994077,6023797,6052123,6079399,6105810,6131764,6157686,6183875,6210568,6237923,6266070,6295128,6325124,6356143,6388122,6420744,6453553,..
+El Salvador,SLV,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,25625021749.3948,26412626746.01,27145803017.1105,27897153492.9607,28861225133.5305,30566013592.7913,33063078519.454,34601564620.0884,36374427633.517,35521913644.5145,36783691453.9384,38932410516.2398,39142596607.7615,41152379901.0921,43447101892.993,45817642299.8659,48462178672.0867,51005491573.6496,53476192355.643,56283912751.1014,..
+Equatorial Guinea,GNQ,"Population, total",SP.POP.TOTL,606181,631666,658384,686664,716949,749535,784496,821687,860840,901599,943639,986853,1031191,1076413,1122276,1168568,1215179,1262001,1308974,1355986,..
+Equatorial Guinea,GNQ,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,3569476980.52128,4055894873.43886,5418769255.57348,5380816668.97055,7063285944.49115,10643726531.2532,18306829395.6972,22011462078.5046,24503329731.0396,22329409018.386,18263922392.4353,21889346128.883,25687593216.8693,25581464599.311,25707960045.8039,21190569158.2367,19263632756.1753,20954718048.321,20614822457.2856,19851081206.7421,..
+Eritrea,ERI,"Population, total",SP.POP.TOTL,2292416,2374722,2481058,2600973,2719803,2826659,2918205,2996536,3062779,3119920,3170435,3213972,..,..,..,..,..,..,..,..,..
+Eritrea,ERI,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,3506504683.63402,3882334366.33529,4040941341.57599,3995622452.91832,4151458428.26049,4414188410.9909,4510019766.81294,4705298980.8637,4314353633.3463,4514907120.28394,4650579875.03025,5164760114.43522,..,..,..,..,..,..,..,..,..
+Estonia,EST,"Population, total",SP.POP.TOTL,1396985,1388115,1379350,1370720,1362550,1354775,1346810,1340680,1337090,1334515,1331475,1327439,1322696,1317997,1314545,1315407,1315790,1317384,1321977,1326590,..
+Estonia,EST,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,12669789906.6441,13621048617.8875,15237943834.898,16938464417.3192,18679330172.0108,21499501319.2193,24584992903.9929,27418528151.0816,28932126115.7131,26675790036.0418,27494601909.1167,31230453479.2807,33215561266.1041,35556368007.5954,37217445766.6686,37821991827.8642,40619849896.3823,43631787746.8717,46949893480.725,50456427725.3906,..
+Eswatini,SWZ,"Population, total",SP.POP.TOTL,1005435,1013609,1019059,1022802,1026286,1030579,1036092,1042652,1049945,1057467,1064837,1072032,1079288,1086839,1095021,1104044,1113984,1124753,1136191,1148130,..
+Eswatini,SWZ,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,4841043840.18153,5228208562.50949,5210476858.07845,5395619885.84073,5858932419.49482,6756746393.43161,7016136009.40736,7581048623.0063,7688628709.93057,7714634050.11047,7853616604.88254,8114102802.81644,8346401629.13749,9058737210.49243,9225263756.37263,9346507218.8882,9176857938.63096,8823563716.96902,9236742701.92304,9290068039.60482,..
+Ethiopia,ETH,"Population, total",SP.POP.TOTL,66224804,68159423,70142091,72170584,74239505,76346311,78489206,80674348,82916235,85233913,87639964,90139927,92726971,95385785,98094253,100835458,103603501,106400024,109224559,112078730,..
+Ethiopia,ETH,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,31745637945.0577,35172862659.8955,36248494910.3235,36093154300.0339,42154715214.1161,48770743848.6363,55711548424.7146,63968631876.8436,72249612441.4937,79048767484.6771,89796448911.2324,102066933556.261,112283157655.966,122160005499.923,148077638928.901,166439908210.722,194015690748.877,213816795462.579,234298336842.44,258391655418.508,..
+Faroe Islands,FRO,"Population, total",SP.POP.TOTL,46735,46997,47233,47432,47600,47722,47792,47825,47820,47808,47814,47823,47843,47892,47960,48051,48173,48331,48497,48678,..
+Faroe Islands,FRO,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
+Fiji,FJI,"Population, total",SP.POP.TOTL,811006,813925,815257,816076,817860,821604,827870,836190,845361,853637,859818,863449,865069,865608,866453,868627,872399,877459,883483,889953,..
+Fiji,FJI,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,4827120096.64485,4892822205.30828,5214236792.38271,5323698866.78929,5754894934.41274,6061204527.02423,6025609709.62737,6241924315.55894,6412425532.52353,6507160715.31222,6593677900.15519,6915585234.51684,7364419164.27037,8093223041.06308,9375291022.39165,10126984895.8987,10412234870.8023,10852371080.1822,11723083289.3784,11674220178.7232,..
+Finland,FIN,"Population, total",SP.POP.TOTL,5176209,5188008,5200598,5213014,5228172,5246096,5266268,5288720,5313399,5338871,5363352,5388272,5413971,5438972,5461512,5479531,5495303,5508214,5515525,5520314,..
+Finland,FIN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,137831205768.922,144213025306.481,149214583627.633,150389244509.753,164126870712.683,168848220995.197,182879915808.363,200493060394.021,213338084144.169,205444151668.081,211781871684.258,221315089725.945,222320431042.548,226606741870.886,230341376307.58,235221001780.708,248027205942.445,261798549153.674,273231470774.74,285260272161.991,..
+France,FRA,"Population, total",SP.POP.TOTL,60912500,61357430,61805267,62244886,62704895,63179351,63621381,64016225,64374984,64707040,65027507,65342780,65659809,65998687,66312067,66548272,66724104,66864379,66965912,67059887,..
+France,FRA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,1614956006369.75,1717864359700.64,1781288096300.79,1774939575254.32,1845786479339.73,1959874866060.42,2104482410624.18,2225392718411.68,2308471504999.58,2297731448402.57,2390316382553.47,2511515271090.53,2528097207038.72,2666950863865.02,2719730300347.34,2777946957121.9,2924396537469.08,3065039833619.95,3189996536215.06,3383838701345.2,..
+French Polynesia,PYF,"Population, total",SP.POP.TOTL,240686,244931,248972,252703,255992,258780,261010,262721,264061,265254,266455,267698,268998,270328,271705,273124,274575,276103,277679,279287,..
+French Polynesia,PYF,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
+Gabon,GAB,"Population, total",SP.POP.TOTL,1228360,1258003,1288315,1319953,1353795,1390549,1430152,1472575,1518540,1568928,1624140,1684635,1749682,1817071,1883800,1947686,2007873,2064823,2119275,2172579,..
+Gabon,GAB,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,14560360617.1917,15533771681.6467,16373734921.8726,16685199605.5105,16403352230.8706,18466927310.9551,17838899424.6087,19077719138.1572,18981183917.3782,19713699135.5505,20931794546.1365,22729974762.4942,24187166236.5611,24803028471.2847,27448373201.6419,26252661543.3818,26457471076.3386,29027529828.7639,29906758006.7001,31177283208.7932,..
+"Gambia, The",GMB,"Population, total",SP.POP.TOTL,1317703,1360074,1404261,1449925,1496527,1543741,1591445,1639848,1689285,1740279,1793196,1848147,1905011,1963711,2024042,2085860,2149139,2213894,2280102,2347706,..
+"Gambia, The",GMB,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,2391096788.09018,2579595444.98103,2507399451.37431,2780913260.12839,3137919845.19169,3158295371.36365,3229331373.00682,3429568509.35731,3729476358.46044,3996504312.94302,4281627558.03531,4002461735.10188,4103967194.68281,4076131550.67062,4006121655.97443,4207793058.65318,4362686911.60081,4502345653.44125,4952386445.13736,5359678708.36466,..
+Georgia,GEO,"Population, total",SP.POP.TOTL,4077131,4014373,3978515,3951736,3927340,3902469,3880347,3860158,3848449,3814419,3786695,3756441,3728874,3717668,3719414,3725276,3727505,3728004,3726549,3720382,..
+Georgia,GEO,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,12812347803.769,13640959606.991,14569475552.7405,16469948353.3551,18107946227.0634,20363417405.4185,23213208361.5309,26381442636.0789,27320718270.6555,26539639996.1848,28134208185.9462,30519613226.4118,36257009738.4886,38723289569.7477,42492961933.5167,44015459770.8487,45709833895.1989,48180654829.8018,52306949991.2423,56785199727.3111,..
+Germany,DEU,"Population, total",SP.POP.TOTL,82211508,82349925,82488495,82534176,82516260,82469422,82376451,82266372,82110097,81902307,81776930,80274983,80425823,80645605,80982500,81686611,82348669,82657002,82905782,83132799,..
+Germany,DEU,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,2224328583943.71,2320728939186.94,2381368004844.2,2440703477248.71,2598811221466.52,2643689105682.11,2858148381212.31,3025439825143.71,3133424995825.21,3086256642388.37,3251502171529.72,3502470398953.27,3570904139239.83,3712581829258.22,3883389666513.64,3983765536763.11,4266415919562.51,4493919482771.18,4641067663123.44,4805762870963.44,..
+Ghana,GHA,"Population, total",SP.POP.TOTL,19278856,19756928,20246381,20750299,21272323,21814642,22379055,22963946,23563825,24170940,24779619,25387710,25996449,26607642,27224472,27849205,28481946,29121471,29767108,30417856,..
+Ghana,GHA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,33524661532.9598,35837806715.7213,38027118474.2677,40731393774.9519,44150796114.183,48520510273.4255,53260838517.8729,57103190636.749,63642248132.5765,67264314067.302,72467930099.5319,83129912555.5813,93322034398.2882,136957246170.144,143670731901.313,140624612115.26,136623482244.943,141646107789.028,155282420095.685,168188360467.218,..
+Gibraltar,GIB,"Population, total",SP.POP.TOTL,31077,31602,32102,32555,32928,33219,33417,33517,33559,33565,33585,33612,33646,33692,33725,33736,33737,33728,33718,33701,..
+Gibraltar,GIB,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
+Greece,GRC,"Population, total",SP.POP.TOTL,10805808,10862132,10902022,10928070,10955141,10987314,11020362,11048473,11077841,11107017,11121341,11104899,11045011,10965211,10892413,10820883,10775971,10754679,10732882,10716322,..
+Greece,GRC,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,212412906521.369,229451460132.503,246506012516.46,260114542212.294,275403545164.743,281471978035.928,308410889511.042,315270202652.337,331637075164.807,330031550752.748,303767113794.432,277177153049.163,277457601769.045,284491775518.545,292032642542.155,288915509264.962,294458734470.533,305858852488.612,313240332855.943,326532466343.565,..
+Greenland,GRL,"Population, total",SP.POP.TOTL,56200,56350,56609,56765,56911,56935,56774,56555,56328,56323,56905,56890,56810,56483,56295,56114,56186,56172,56023,56225,..
+Greenland,GRL,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
+Grenada,GRD,"Population, total",SP.POP.TOTL,102833,103249,103634,104005,104347,104661,104933,105190,105456,105789,106233,106796,107446,108170,108902,109599,110261,110874,111454,112003,..
+Grenada,GRD,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,734808669.016833,724132428.484067,753881927.313537,843000490.891504,838101389.228565,1053514584.06914,1041581983.01609,1119875084.21864,1155463272.22003,1052844457.58634,1094309142.19513,1138673428.05649,1148161514.25938,1240710384.87123,1291198872.90021,1373363286.20348,1505284098.72797,1631169567.08909,1735657853.88672,1800934720.15393,..
+Guam,GUM,"Population, total",SP.POP.TOTL,155329,156401,157176,157717,158101,158402,158648,158847,159036,159226,159444,159692,159996,160407,161016,161853,162951,164281,165768,167294,..
+Guam,GUM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
+Guatemala,GTM,"Population, total",SP.POP.TOTL,11589761,11871565,12147518,12415334,12682108,12948292,13213330,13477017,13739299,14000190,14259687,14521515,14781942,15043981,15306316,15567419,15827690,16087418,16346950,16604026,..
+Guatemala,GTM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,55436071589.5246,58423901747.8639,60973451964.2195,63730651284.7055,67330576886.3217,71639439855.9576,77407216880.1894,84307587118.485,89541423612.3118,90410311023.518,93543553752.8963,99233215714.5858,106004957684.265,109413614490.103,115639774098.923,124517142875.708,127323281384.073,131000150033.889,138530359040.141,147274020992.745,..
+Guinea,GIN,"Population, total",SP.POP.TOTL,8240730,8417081,8586074,8753093,8925743,9109581,9307425,9518162,9738792,9964469,10192176,10420471,10652029,10892810,11150977,11432088,11738441,12067539,12414318,12771246,..
+Guinea,GIN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,9920584637.96254,10462471264.6258,11331169912.3636,11200008287.936,11747421638.8457,12286469668.5216,13565822729.541,14875616093.7872,15743740199.3944,15496590607.99,16665347466.0836,17815489449.8794,18819737532.167,18776195192.1863,19471089653.375,20460340883.3828,23977048840.4261,29033817415.3577,31212204477.0154,33846356854.1761,..
+Guinea-Bissau,GNB,"Population, total",SP.POP.TOTL,1201301,1227106,1254453,1283305,1313492,1344930,1377581,1411543,1446936,1483921,1522599,1562989,1604979,1648257,1692439,1737202,1782437,1828146,1874309,1920922,..
+Guinea-Bissau,GNB,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,1245250077.82414,1290990559.33148,1324865081.10485,1354249893.9866,1434589411.34313,1542192302.13037,1642203212.71084,1749063682.04024,1820547733.82039,1902652560.51884,2030006200.98395,2262774007.23512,2187093803.73918,2205787895.62385,2415238570.21739,2842389875.31444,3191999767.76646,3526798653.49018,3737084582.15329,4279092507.25715,..
+Guyana,GUY,"Population, total",SP.POP.TOTL,746715,745206,744789,745143,745737,746163,746343,746474,746817,747718,749436,752028,755399,759285,763380,767432,771366,775221,779004,782766,..
+Guyana,GUY,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,4561427315.83337,4748314027.57473,4870949079.19245,4965059112.59798,5213713156.33627,5303457488.05472,5631344825.56042,6104480033.44489,6327454144.2568,6602984912.48118,7019788168.89247,7491902054.438,7963099770.09328,8427092334.77528,8414383428.13008,8643543935.33743,8704968441.42519,9284265203.32938,9899293896.53493,10597268676.862,..
+Haiti,HTI,"Population, total",SP.POP.TOTL,8463806,8608819,8754150,8900104,9047077,9195288,9344785,9495328,9646580,9798046,9949322,10100320,10250930,10400673,10549008,10695542,10839970,10982366,11123176,11263077,..
+Haiti,HTI,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,17769580261.4166,18065798819.0251,18479633635.1447,19437108290.3167,19736618189.6626,21019982944.4373,22154023585.5192,24016041563.1002,25097458189.2115,26901403072.9437,26199530812.2802,28421070658.3344,28430216991.9456,29937659279.0424,30660467811.5978,31137922634.322,32913414265.1312,32872760320.8406,34202178740.5776,34290707525.0787,..
+Honduras,HND,"Population, total",SP.POP.TOTL,6574509,6751912,6929265,7106319,7282953,7458985,7634298,7808518,7980955,8150775,8317470,8480671,8640691,8798521,8955589,9112916,9270795,9429013,9587522,9746117,..
+Honduras,HND,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,16508738720.3752,17280507733.8486,18133692999.5006,19178423047.9029,20773807319.5518,22824412783.6386,25008545049.7059,27739987392.518,29311524918.3176,28642526366.3176,29729364273.5089,31469455075.9805,32447867601.1165,33761586548.5521,36611449125.7829,40945953789.8257,44383060571.3461,49235457099.1837,51314225973.9999,53848093347.1313,..
+"Hong Kong SAR, China",HKG,"Population, total",SP.POP.TOTL,6665000,6714300,6744100,6730800,6783500,6813200,6857100,6916300,6957800,6972800,7024200,7071600,7150100,7178900,7229500,7291300,7336600,7391700,7451000,7507400,..
+"Hong Kong SAR, China",HKG,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,189820033892.741,197977520298.533,201126964322.689,215145936157.714,239129529479.062,260658113704.655,292675009305.812,322582490118.837,344599709680.774,329453278555.624,352799216058.069,379780810643.688,378882956243.058,392752239125.688,404211342098.222,418904765973.878,430361863158.585,461609726417.992,488229976670.798,493441081032.751,..
+Hungary,HUN,"Population, total",SP.POP.TOTL,10210971,10187576,10158608,10129552,10107146,10087065,10071370,10055780,10038188,10022650,10000023,9971727,9920362,9893082,9866468,9843028,9814023,9787966,9775564,9769949,..
+Hungary,HUN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,114045211135.924,126801506496.016,139177319914.304,147881676562.315,153991464725.601,161398609004.227,173265932050.924,176965725570.221,194072524745.267,198356716480.131,207354409737.181,218364577795.407,220562603169.302,235506871242.622,242075480384.519,251738017325.562,266957439099.303,280553237872.408,302334141397.502,328036281632.603,..
+Iceland,ISL,"Population, total",SP.POP.TOTL,281205,284968,287523,289521,292074,296734,303782,311566,317414,318499,318041,319014,320716,323764,327386,330815,335439,343400,352721,361313,..
+Iceland,ISL,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,8064056447.99737,8781736929.05093,9390431859.41103,9381468561.22915,10025240340.2104,10526296722.7951,11026180884.6178,12073064240.4066,10807260433.594,10708134789.6414,10237034204.2611,11022605832.7629,11766282593.5493,13631427233.6515,14240759323.4076,15376113336.7176,17103762803.3959,18673233568.2131,19724344190.2305,22101273413.3938,..
+India,IND,"Population, total",SP.POP.TOTL,1056575549,1075000085,1093317189,1111523144,1129623456,1147609927,1165486291,1183209472,1200669765,1217726215,1234281170,1250288729,1265782790,1280846129,1295604184,1310152403,1324509589,1338658835,1352617328,1366417754,..
+India,IND,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,2190686763690.4,2351372568345.36,2484358315070.75,2727424158416.72,3023959730543.27,3364649431964.48,3743550581667.02,4153719501905.76,4357403960777.95,4735817105521.81,5173298835928.36,5568976272405.25,6080904818549.95,6396857208684.85,6700838434194.09,7076731493413.66,7577059418948.02,8191428149143.83,8905760800849.44,9456111319104.85,..
+Indonesia,IDN,"Population, total",SP.POP.TOTL,211513823,214427417,217357793,220309469,223285676,226289470,229318262,232374245,235469762,238620563,241834215,245116206,248452413,251806402,255129004,258383256,261554226,264645886,267663435,270625568,..
+Indonesia,IDN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,936869323343.169,1023368245053.5,1094409163290.22,1157760861340.29,1239077076545.08,1346480242070.57,1472854684262.51,1610868378204.6,1751105373669.65,1847157749787.01,2002209911086.68,2167767372892.09,2345311900455.84,2459271038444.92,2534329758163.13,2559879525286.4,2657025035196.4,2802422575187.42,3028274768677.15,3238279456991.96,..
+"Iran, Islamic Rep.",IRN,"Population, total",SP.POP.TOTL,65623405,66449112,67284796,68122938,68951281,69762347,70554760,71336475,72120604,72924837,73762519,74634956,75539862,76481943,77465753,78492215,79564016,80673951,81800269,82913906,..
+"Iran, Islamic Rep.",IRN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,675841187510.255,696994128286.846,761316821362.239,842398737478.262,899769698029.519,957212207393.981,1037798895822.63,1155249643754.36,1181336226970.81,1198040521614.94,1282857045042.07,1344189230215.92,1213336909094.26,1176150169010.8,1183766862250.56,1069286038839.47,1118231229993.35,1174847686171.31,1135049702019.28,1073520285029.57,..
+Iraq,IRQ,"Population, total",SP.POP.TOTL,23497585,24208180,24931919,25644499,26313838,26922284,27448124,27911248,28385746,28973162,29741976,30725300,31890011,33157050,34411951,35572261,36610632,37552781,38433600,39309783,..
+Iraq,IRQ,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,223608626313.907,233586897091.622,218680413930.881,151779284259.096,240356916393.667,234964767243.438,277280239252.671,294727901464.925,345729400485.967,360571792175.137,382005466961.247,414114386540.595,485479538055.298,512801969507.53,488228998526.082,366501386393.93,359136530567.48,408986068270.067,416401138987.09,444542015634.474,..
+Ireland,IRL,"Population, total",SP.POP.TOTL,3805174,3866243,3931947,3996521,4070262,4159914,4273591,4398942,4489544,4535375,4560155,4580084,4599533,4623816,4657740,4701957,4755335,4807388,4867316,4941444,..
+Ireland,IRL,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,100113060158.225,107470352326.004,116072235454.894,124855538076.859,135840842859.893,145668070894.043,165648719181.796,177837354204.105,172166896607.221,157923766432.664,165548185667.925,166561101269.613,171504812458.691,186850967915.309,200789098470.04,249588740272.944,278957902435.77,298263304592.726,322469887267.552,345929596620.355,..
+Isle of Man,IMN,"Population, total",SP.POP.TOTL,76941,77703,78318,78884,79520,80305,81285,82408,83508,84376,84857,84886,84533,83976,83488,83234,83287,83598,84077,84584,..
+Isle of Man,IMN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
+Israel,ISR,"Population, total",SP.POP.TOTL,6289000,6439000,6570000,6689700,6809000,6930100,7053700,7180100,7308800,7485600,7623600,7765800,7910500,8059500,8215700,8380100,8546000,8713300,8882800,9053300,..
+Israel,ISR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,147425846376.09,154164645331.027,160078514998.227,154034183822.924,166946276115.051,170750170368.774,180455226518.241,197024499599.594,196812251483.953,200861036043.533,215671716982.71,233558541539.758,244250406663.569,269656651819.503,279822039561.089,294720691293.14,320146880204.541,337245887054.027,357243933603.521,379758262002.624,..
+Italy,ITA,"Population, total",SP.POP.TOTL,56942108,56974100,57059007,57313203,57685327,57969484,58143979,58438310,58826731,59095365,59277417,59379449,59539717,60233948,60789140,60730582,60627498,60536709,60421760,60297396,..
+Italy,ITA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,1536251752977.11,1592989057386.54,1632366431124.16,1663483685393.26,1700508305410.16,1749401793158.77,1892183143469.26,1994618888873.8,2070619017116.37,2045551343726.36,2081077565453.29,2167673493812.34,2169728284637.12,2183586713124.53,2200447377386.96,2226028747655.71,2427375662810.54,2543341417407.71,2622433686196.43,2690939420727.57,..
+Jamaica,JAM,"Population, total",SP.POP.TOTL,2654701,2674702,2692845,2709437,2725015,2740003,2754407,2768227,2781876,2795837,2810460,2825929,2842132,2858709,2875136,2891021,2906238,2920853,2934855,2948279,..
+Jamaica,JAM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,16228041676.1214,16645742256.5521,16954752901.071,17982395364.5635,18754092246.4721,19450170553.5737,20809329776.7832,21678729191.3465,22157235803.5355,21046043679.2395,21372671662.5976,22231524588.9226,22954488139.0301,23566809982.6206,24036884622.2238,24625714049.9529,25585657882.6931,27235168352.477,28158979412.4516,29307630563.02,..
+Japan,JPN,"Population, total",SP.POP.TOTL,126843000,127149000,127445000,127718000,127761000,127773000,127854000,128001000,128063000,128047000,128070000,127833000,127629000,127445000,127276000,127141000,126994511,126785797,126529100,126264931,..
+Japan,JPN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,3452930586529.41,3546345231235.99,3639730784809.42,3752540602986.5,3950153980558.91,4133438974348.17,4341515713395.91,4548813737724.68,4573202767880.07,4354890214696.97,4596530742002.53,4702730270932.62,4873844260962.84,5133797407300.4,5166025961476.02,5333311667417.55,5246871690810.19,5364983572337.71,5420858766097.59,5658085758129.77,..
+Jordan,JOR,"Population, total",SP.POP.TOTL,5122493,5217336,5317506,5434030,5580244,5765635,5991540,6255280,6556478,6893260,7261539,7663131,8090872,8520420,8920049,9266575,9551467,9779173,9956011,10101694,..
+Jordan,JOR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,30774337894.8106,33307557553.6376,35411238831.5108,37776697092.0489,42584601222.9091,47618171223.7335,53204381439.1313,59300487027.2459,63855156254.3277,67384317379.2826,68152856695.7124,71405408235.1145,73428347001.6517,78636175092.3154,80957978659.5537,86722051517.0455,89558829917.3779,97405588013.1908,101742697701.514,106258013378.057,..
+Kazakhstan,KAZ,"Population, total",SP.POP.TOTL,14883626,14858335,14858948,14909018,15012985,15147029,15308084,15484192,15674000,16092822,16321872,16557201,16792089,17035550,17288285,17542806,17794055,18037776,18276498.5,18513930,..
+Kazakhstan,KAZ,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,107939394937.543,126916049782.508,142962263865.732,157161146491.319,174829230295.216,190542280491.014,212938577579.183,235954730158.254,242322806770.416,257942621320.382,272722282118.722,294494040831.081,319954479748.818,373088584433.754,383650191926.991,381745816548.317,382306984208.955,399678715598.354,419403470907.431,445820090606.408,..
+Kenya,KEN,"Population, total",SP.POP.TOTL,31964557,32848564,33751739,34678779,35635271,36624895,37649033,38705932,39791981,40901792,42030676,43178257,44343410,45519889,46699981,47878336,49051686,50221473,51393010,52573973,..
+Kenya,KEN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,51242963037.8217,54291635342.2478,55555143739.3002,58149160259.0931,62892402120.1324,69193318830.2822,75717180968.6693,82927905494.7994,85046293991.1631,88499791985.1141,96815313090.7621,105284725887.097,111702555544.44,124600115565.074,139107161405.764,158922253444.33,175712039306.777,199324373582.831,217655126839.649,232920572654.789,..
+Kiribati,KIR,"Population, total",SP.POP.TOTL,84396,85849,87305,88835,90499,92325,94343,96527,98761,100930,102927,104728,106370,107890,109391,110930,112524,114158,115847,117606,..
+Kiribati,KIR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,217156131.683219,232653434.246104,227221872.960712,222507516.797013,217292400.472929,228478024.051466,232628480.656935,248005509.284821,252582083.043971,243191331.133144,258637330.472246,254926735.893375,295962984.149137,341023661.701828,394526288.51527,481486737.401533,443043799.862721,488705808.475131,494662734.571131,547067743.561267,..
+"Korea, Dem. People’s Rep.",PRK,"Population, total",SP.POP.TOTL,22929075,23132980,23339453,23542426,23732731,23904167,24054864,24188331,24310142,24428341,24548836,24673385,24800612,24929452,25057752,25183833,25307744,25429985,25549819,25666161,..
+"Korea, Dem. People’s Rep.",PRK,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
+"Korea, Rep.",KOR,"Population, total",SP.POP.TOTL,47008111,47370164,47644736,47892330,48082519,48184561,48438292,48683638,49054708,49307835,49554112,49936638,50199853,50428893,50746659,51014947,51217803,51361911,51606633,51709098,..
+"Korea, Rep.",KOR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,866224637084.584,926568183291.801,1015663096721.17,1053487194629.71,1141674348593.57,1205046439840.2,1298121837175.56,1411147965489.67,1469369248901.13,1459437700151.26,1575219821834.69,1635336002448.05,1702177999918.46,1737909546523.48,1801276221059.28,1939898096852.87,2033944222873.06,2114477220937.47,2188673127188.42,2250271568180.5,..
+Kosovo,XKX,"Population, total",SP.POP.TOTL,1700000,1701154,1702310,1703466,1704622,1705780,1719536,1733404,1747383,1761474,1775680,1791000,1807106,1818117,1812771,1788196,1777557,1791003,1797085,1794248,..
+Kosovo,XKX,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,9448780631.54241,10319967045.8223,11159472576.916,12328905856.9112,13202725424.7089,13420011278.7389,14032931852.0578,15065975384.9806,15786623490.4927,16375362781.983,16729091063.4254,17396818269.5142,18103723637.3237,19243542089.8682,20394759498.1516,21782367600.9733,..
+Kuwait,KWT,"Population, total",SP.POP.TOTL,2045123,2103282,2136997,2161626,2200492,2270198,2373672,2504019,2656009,2821045,2991884,3168060,3348853,3526376,3690941,3835591,3956875,4056099,4137312,4207083,..
+Kuwait,KWT,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,135299805300.395,134192119532.564,133921787237.77,157467918688.085,183753831527.363,210815554980.324,237736861194.707,253819023505.22,256740076127.858,238709604697.751,239360420840.421,262123336778.361,291438375133.72,296212687021.712,283545175393.602,201226216155.384,197466766535.322,238367977934.553,242239412233.941,..,..
+Kyrgyz Republic,KGZ,"Population, total",SP.POP.TOTL,4898400,4945100,4990700,5043300,5104700,5162600,5218400,5268400,5318700,5383300,5447900,5514600,5607200,5719600,5835500,5956900,6079500,6198200,6322800,6456900,..
+Kyrgyz Republic,KGZ,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,8582788124.408,9445299068.11608,9620514407.32057,10528230099.0743,11405670075.6922,11867795449.963,12852625677.0972,14379148857.7031,15456671498.9832,16049689288.136,15740559548.5352,16250508927.3612,19767684145.2302,21790220340.6309,23953408501.6723,24127188673.9971,26964623071.125,29771394476.3694,32237600375.0625,32831510028.1776,..
+Lao PDR,LAO,"Population, total",SP.POP.TOTL,5323700,5409582,5493246,5576640,5662208,5751676,5846074,5944948,6046620,6148623,6249165,6347567,6444530,6541304,6639756,6741164,6845846,6953035,7061507,7169455,..
+Lao PDR,LAO,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,9354054066.97457,10128844090.697,10925727063.3097,11565351478.1314,12833062902.987,14423987198.6091,15626237267.7671,17634679041.9468,19143604679.7663,21142119992.899,22373664603.5974,24562505654.9469,29339581968.1696,32738513911.9639,37279715377.7992,39733495399.3774,44835845958.1785,47800441427.6112,52359908021.426,57214083772.2737,..
+Latvia,LVA,"Population, total",SP.POP.TOTL,2367550,2337170,2310173,2287955,2263122,2238799,2218357,2200325,2177322,2141669,2097555,2059709,2034319,2012647,1993782,1977527,1959537,1942248,1927174,1912789,..
+Latvia,LVA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,18994427841.9392,21183742502.3424,23300095579.7814,25108073631.9459,27125107581.7621,30747334652.7068,34175200928.3359,38830420166.8803,41960006254.9953,38906925866.4536,37405092473.6839,40903136183.4609,43246396194.3971,45811863697.2706,47517704397.4596,49139841386.3118,52251075667.1202,55532573481.587,58262817177.3752,60704571501.3371,..
+Lebanon,LBN,"Population, total",SP.POP.TOTL,3842778,3991001,4182205,4388375,4569378,4698763,4759753,4767344,4764741,4813026,4953061,5202343,5538634,5914621,6262410,6532678,6711121,6811873,6848925,6855713,..
+Lebanon,LBN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,35040734795.0804,36352321492.5332,36609276891.0342,33656173714.8759,42476313045.4997,46345388713.3633,49273874852.8628,56580458920.1982,61987320720.0384,67409785456.3584,73126239447.9931,75853128476.6475,81684754405.0443,88008051378.2798,93092365035.8045,97376540515.4048,102281959781.687,108596513314.89,108904404007.713,102284286778.84,..
+Lesotho,LSO,"Population, total",SP.POP.TOTL,2032804,2035740,2029829,2018348,2005940,1996114,1989939,1986922,1987129,1990131,1995581,2003787,2014990,2028519,2043437,2059021,2075001,2091412,2108132,2125268,..
+Lesotho,LSO,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,3256794600.33822,3913065158.41872,4007738191.57169,4213298509.72441,4222502296.71262,4262518909.34194,4395361348.07263,5262004437.30129,5601288395.73902,5576756208.44068,5732452516.23977,5867446787.49356,5807273820.084,6324234618.26156,6791590360.36547,7160368693.87306,7170407004.67366,6588747316.96785,6744433399.38819,7086526343.77689,..
+Liberia,LBR,"Population, total",SP.POP.TOTL,2848456,2953927,3024729,3077058,3135651,3218116,3329211,3461911,3607860,3754133,3891356,4017443,4135659,4248334,4359505,4472230,4586788,4702228,4818977,4937374,..
+Liberia,LBR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,2501365581.18806,2462075674.85946,2582706058.54685,1775793699.66207,1916106938.73469,2134870485.227,2456347243.41201,2838061026.83459,3169296955.49836,3402304565.52397,3620075701.10971,4164518138.61442,4387996479.62735,5130477809.93594,5386476328.91385,5269268962.54026,5783171659.71288,6469862956.51871,6400386941.24735,6515493614.50547,..
+Libya,LBY,"Population, total",SP.POP.TOTL,5357891,5443248,5531089,5620547,5710154,5798614,5886872,5974787,6058748,6133984,6197663,6247439,6285750,6320359,6362037,6418315,6492164,6580724,6678567,6777452,..
+Libya,LBY,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,98907556528.0821,114713866740.83,119683554075.829,138242554238.722,155161329128.523,168729376157.476,175860708441.045,175981228407.262,185208123492.523,71848542675.5916,149049347739.188,124785429204.8,92283833247.2583,81779062375.7705,74186507345.4983,90063923226.6159,104525354746.035,109301679377.612,..
+Liechtenstein,LIE,"Population, total",SP.POP.TOTL,33184,33552,33879,34175,34452,34713,34970,35217,35471,35727,35994,36293,36615,36934,37223,37470,37658,37800,37910,38019,..
+Liechtenstein,LIE,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
+Lithuania,LTU,"Population, total",SP.POP.TOTL,3499536,3470818,3443067,3415213,3377075,3322528,3269909,3231294,3198231,3162916,3097282,3028115,2987773,2957689,2932367,2904910,2868231,2828403,2801543,2786844,..
+Lithuania,LTU,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,29036422946.4341,32322056617.7711,35703851154.3005,40147841546.0657,43017624887.1901,47501420160.7677,52853113781.0326,59298942175.5194,64177612022.0686,58653129071.6743,61882037438.2047,67271318532.7459,71500302658.0891,77288358779.9173,81670940441.2795,80761525294.0635,85531142598.4585,92216393472.3028,97756938191.6571,103588120435.99,..
+Luxembourg,LUX,"Population, total",SP.POP.TOTL,436300,441525,446175,451630,458095,465158,472637,479993,488650,497783,506953,518347,530946,543360,556319,569604,582014,596336,607950,619896,..
+Luxembourg,LUX,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,21402834133.0933,22205397010.2893,22170831435.0321,22111143439.9495,26868080355.2672,29304951694.0117,29984532544.1982,34891089967.6488,34990189379.4199,27761239146.6041,31327971287.1073,32928110626.5723,33825803107.6655,34690043272.6355,37434314552.7056,38500383076.5302,41001079837.5545,43381072945.2113,45229329379.7453,48082741436.712,..
+"Macao SAR, China",MAC,"Population, total",SP.POP.TOTL,427782,437938,448821,460165,471597,482858,493799,504511,515239,526400,538219,550832,564039,577372,590208,602085,612836,622585,631636,640445,..
+"Macao SAR, China",MAC,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,13706107536.8704,15627085786.2054,17267184836.1564,19329615484.3165,24278902455.4435,26760633802.4947,29988063963.4887,39046721035.0092,36971369691.3202,38224456301.0964,47597861282.7811,57350950643.267,64100909366.4591,74713533743.9956,77917473234.3904,64809126006.3126,65773504327.3786,72268933052.8813,77930147111.124,..,..
+Madagascar,MDG,"Population, total",SP.POP.TOTL,15766806,16260932,16765117,17279141,17802997,18336724,18880269,19433530,19996473,20569117,21151640,21743967,22346641,22961253,23589887,24234088,24894380,25570540,26262368,26969307,..
+Madagascar,MDG,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,20000324221.8741,21719978128.089,19333172594.7783,21648258647.5103,23466060029.743,25169793771.0669,27272882273.8091,30029763768.9888,32703464533.2948,31515710895.3406,31981783671.5205,33215344356.2567,33270003412.2222,34214331592.4778,35835765900.7156,36248277778.3637,38589859315.1109,39408585195.5646,41953529338.0764,44681093897.0468,..
+Malawi,MWI,"Population, total",SP.POP.TOTL,11148758,11432000,11713664,12000181,12301838,12625952,12973699,13341806,13727890,14128155,14539612,14962112,15396005,15839269,16289540,16745303,17205289,17670260,18143315,18628747,..
+Malawi,MWI,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,7468702620.26061,7261461674.54311,7517169630.85562,8091700822.82619,8757644017.75893,9347339331.51527,10097467130.6847,11418403660.1949,12536347425.5169,13610993241.3414,14625812055.2316,15674391716.7311,15561165076.6142,17042708429.6565,17109325958.1925,16473997716.6448,17560554547.8181,17887349679.3892,18914054876.6094,20126554236.5971,..
+Malaysia,MYS,"Population, total",SP.POP.TOTL,23194257,23709119,24208391,24698819,25190652,25690611,26201961,26720370,27236006,27735040,28208035,28650955,29068159,29468872,29866559,30270962,30684804,31105028,31528585,31949777,..
+Malaysia,MYS,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,275216955858.853,285306500868.578,307840083278.793,335817083275.736,369162507051.129,404099397042.156,446508519653.621,491378118596.947,520367694886.698,521709642183.141,560108318391.138,607129184341.237,643498757192.916,668794343781.363,710620293507.506,730292729357.474,762176005888.175,805935510019.48,862298690304.712,921117928505.578,..
+Maldives,MDV,"Population, total",SP.POP.TOTL,279398,286306,294186,302683,311265,319608,327487,335169,343452,353398,365734,380495,397237,415593,435015,454915,475513,496402,515696,530953,..
+Maldives,MDV,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,2253180771.29394,2257030705.23048,2466212611.36576,2830947399.40036,3101821749.10294,2781537609.95814,3616677052.20981,3489661778.62107,4014499658.79258,3817992392.34957,4090164279.75104,4606288827.99661,4925577794.19348,5462304304.18157,6289083096.82511,7011219895.25894,7610559253.74397,8255489175.02811,9005991337.85652,9757024012.98965,..
+Mali,MLI,"Population, total",SP.POP.TOTL,10946445,11271600,11616887,11982695,12369070,12775516,13203378,13651464,14113577,14581429,15049353,15514591,15979499,16449864,16934220,17438778,17965429,18512394,19077690,19658031,..
+Mali,MLI,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,12292742587.7069,13941544624.2517,14389781144.2008,16466831473.0456,17184734583.4575,18883602842.0636,20273266451.2074,21559100738.8631,23141943944.7326,24091169428.2013,25839494612.1636,27331464772.5263,27142665899.9272,28848666648.5951,31565052224.5886,34646998121.6541,38276068960.858,40237794150.9203,43295560903.8746,46203753442.8998,..
+Malta,MLT,"Population, total",SP.POP.TOTL,390087,393028,395969,398582,401268,403834,405308,406724,409379,412477,414508,416268,420028,425967,434558,445053,455356,467999,484630,502653,..
+Malta,MLT,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,6893718839.20143,7322553766.32237,7819173887.42508,8299473462.89549,8603875495.4516,8733534217.17802,9057227152.38897,9675076191.64817,10690623622.6743,10423405968.7148,11300733412.9992,11778126310.2532,12104608327.1958,13074369142.2048,14147613162.8059,15752361530.9719,16204316234.2236,18002807212.4447,19717006558.9667,21497752306.5405,..
+Marshall Islands,MHL,"Population, total",SP.POP.TOTL,50753,51422,52370,53456,54476,55258,55767,56051,56174,56250,56366,56531,56717,56938,57179,57439,57735,58058,58413,58791,..
+Marshall Islands,MHL,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,165195612.576492,178858139.273925,183887750.530546,185037714.028878,192632495.997094,205190881.714371,208725029.40006,220098824.271273,208418571.231423,212534146.263011,223890702.071028,225123576.183362,214374318.113515,232239330.315749,245166380.86811,271487663.971483,270712342.247634,281603322.619037,297164757.533851,..,..
+Mauritania,MRT,"Population, total",SP.POP.TOTL,2630219,2702400,2778099,2857148,2939247,3024194,3111906,3202517,3296238,3393409,3494195,3598648,3706554,3817494,3930896,4046301,4163534,4282574,4403319,4525696,..
+Mauritania,MRT,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,8062494581.56908,7954577709.04026,8621231271.96746,9358823794.03499,10061624427.7684,11199079618.3812,13089954032.1093,13245639975.2489,13593241977.6642,13929125581.9551,14118200541.8269,14841521503.2747,15331799325.0023,16624623434.4163,16238197197.5205,16498775890.9074,19213092379.4616,21432474968.9306,22620181047.5153,24250261613.0979,..
+Mauritius,MUS,"Population, total",SP.POP.TOTL,1186873,1196287,1204621,1213370,1221003,1228254,1233996,1239630,1244121,1247429,1250400,1252404,1255882,1258653,1260934,1262605,1263473,1264613,1265303,1265711,..
+Mauritius,MUS,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,10676157541.1227,11349047524.6421,11712470020.1742,12537795997.5993,13473040485.3364,14152520081.4628,15421531010.9867,17078312581.4103,18164830360.7429,18696525734.1209,19451212765.4623,20460710909.864,22061568419.1301,24215842266.8622,25119627939.9348,26339259783.019,28287860057.6668,29764244947.5412,32230149536.8495,33975841889.8199,..
+Mexico,MEX,"Population, total",SP.POP.TOTL,98899845,100298153,101684758,103081020,104514932,106005203,107560153,109170502,110815271,112463887,114092963,115695473,117274155,118827161,120355128,121858258,123333376,124777324,126190788,127575529,..
+Mexico,MEX,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,1073235252932.68,1095604356342.78,1117965544638.39,1162592493945.24,1244336432872.96,1313762682229.57,1462385582249.25,1533815706563.18,1630569413184.12,1609779367702.41,1720422018790.8,1880967839882.46,1973881601912.17,2004429620594.39,2119873249261.23,2173035047763.63,2319506310062.64,2408388236603.1,2507785564917.28,2550275535850.33,..
+"Micronesia, Fed. Sts.",FSM,"Population, total",SP.POP.TOTL,107402,107173,107030,106901,106625,106129,105371,104444,103543,102975,102911,103450,104506,105926,107446,108895,110215,111459,112640,113815,..
+"Micronesia, Fed. Sts.",FSM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,274330744.633952,284999418.793057,290109959.627419,299484123.10827,301947436.827354,319226676.399994,328724559.472975,333493224.898973,327679791.647183,343956873.224608,348030813.431576,364901630.785689,370710582.112853,374936332.908566,372768708.157918,433505547.873629,433439938.053581,442285610.053141,409850573.218336,..,..
+Moldova,MDA,"Population, total",SP.POP.TOTL,2923783,2917252,2910504,2902320,2895147,2888111,2880095,2873429,2867964,2864346,2861487,2859833,2859458,2858692,2856950,2834530,2802170,2755158,2706049,2657637,..
+Moldova,MDA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,9463199212.90091,10510898316.3074,11772546220.2852,12978213820.8858,14573633203.8075,16131121155.9701,17150924366.6474,17740821304.3543,19584810053.9395,17843647183.142,19629015934.2271,21128597776.669,23013198254.5097,26217252652.4578,27399539464.997,27755343311.671,31375151987.3644,33931111963.049,35945610840.909,38094307114.2842,..
+Monaco,MCO,"Population, total",SP.POP.TOTL,32147,32470,32806,33153,33500,33843,34190,34525,34872,35226,35612,36024,36460,36901,37322,37718,38070,38392,38682,38964,..
+Monaco,MCO,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
+Mongolia,MNG,"Population, total",SP.POP.TOTL,2397418,2419588,2443271,2468762,2496391,2526424,2558856,2593820,2631898,2673796,2719896,2770362,2824699,2881792,2940108,2998439,3056359,3113779,3170208,3225167,..
+Mongolia,MNG,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,8899686950.03787,9391553610.31508,9975244443.76267,10828717692.7661,12322368250.8895,13422679812.9386,15135132304.8741,16951614940.0577,18668342461.5929,18345008310.6178,18957879257.866,22657114467.4965,26658538159.65,28685437151.1049,29864062852.7761,29636387676.1811,30129523615.8258,30263180633.1276,34729040153.5611,36822695894.8079,..
+Montenegro,MNE,"Population, total",SP.POP.TOTL,604950,607389,609828,612267,613353,614261,615025,615875,616969,618294,619428,620079,620601,621207,621810,622159,622303,622373,622227,622137,..
+Montenegro,MNE,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,3815820961.53465,4319638788.8936,4572037360.65309,4751054728.33324,5053944157.5054,5163071370.90954,6531914408.90913,7754226149.23701,8651061175.76349,8073045361.63993,8393396998.13635,9046286677.72083,8749559871.45283,9417520008.41871,9684791521.07342,10386934880.6468,11352750600.4144,12466247827.8522,13369593736.4574,14475944469.6861,..
+Morocco,MAR,"Population, total",SP.POP.TOTL,28793679,29126330,29454768,29782884,30115214,30455561,30804683,31163673,31536811,31929087,32343389,32781850,33241898,33715693,34192347,34663603,35126296,35581294,36029138,36471769,..
+Morocco,MAR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,102139393687.817,112143605942.448,117850272779.59,127470176031.338,137696016581.406,147428033626.497,163209815783.245,173852230335.44,188005555832.984,195167799341.361,204980497054.803,219548856240.118,221558465714.716,233442913596.092,224028206132.59,242479228111.022,248808416563.671,259033788619.405,273729770198.648,285967884043.947,..
+Mozambique,MOZ,"Population, total",SP.POP.TOTL,17711927,18221888,18764155,19331100,19910552,20493925,21080110,21673316,22276596,22894710,23531574,24187487,24862648,25560725,26286163,27042002,27829942,28649007,29495962,30366036,..
+Mozambique,MOZ,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,8182877750.81638,9298110515.32811,9628762675.42084,11420370931.5468,12705518911.1013,13690991668.8755,15036433024.3566,16857759742.6425,18550512010.5451,20448188247.2053,21834216472.7814,24306280893.4871,25627026605.0557,27637286756.5429,29600088338.2311,34261446171.8805,37122197979.3799,35680839919.1003,38193003065.2198,39846245913.1434,..
+Myanmar,MMR,"Population, total",SP.POP.TOTL,46719701,47225120,47702171,48148902,48564484,48949924,49301050,49621475,49929642,50250367,50600818,50990615,51413698,51852451,52280807,52680726,53045226,53382581,53708395,54045420,..
+Myanmar,MMR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,42998704282.4003,48895682638.4866,55658008631.2483,64546445658.8947,75283770161.9743,88147560832.8624,102711602960.62,118133238440.509,132774469873.294,147912395077.583,164058393037.109,176855931603.602,184010746021.877,201685064985.604,213072891301.063,225644892096.516,231990221765.927,245826346688.426,266885718819.34,279551135205.841,..
+Namibia,NAM,"Population, total",SP.POP.TOTL,1794571,1823672,1851523,1879117,1907745,1938320,1971317,2006514,2043394,2081044,2118874,2156701,2194784,2233510,2273430,2314904,2358041,2402603,2448255,2494530,..
+Namibia,NAM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,9461417733.71787,9704517304.22085,10497547750.7886,11532212601.5678,12799913324.0415,13158659146.7503,14629437196.7994,15355658854.8456,16106047731.032,16234948364.9594,17069770954.0746,18530827058.6351,19680724579.4145,21629943604.1853,23507845287.3846,24438808112.7414,23975062172.4605,23704551385.4182,24142192951.8361,24397824597.6109,..
+Nauru,NRU,"Population, total",SP.POP.TOTL,10337,10215,10102,9994,9902,9849,9828,9842,9891,9939,10005,10057,10279,10821,11853,12475,13049,12876,12704,12581,..
+Nauru,NRU,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,48522152.1517784,54333382.4562253,62796220.0539873,72021093.9611055,82081790.6299373,92329590.950015,126031537.62863,158652606.391947,186609701.037506,194518276.413198,192267596.871747,200211269.107773,224159842.102008,..
+Nepal,NPL,"Population, total",SP.POP.TOTL,23941110,24347106,24725627,25080872,25419344,25744500,26066693,26382581,26666576,26883535,27013212,27041437,26989862,26917906,26906926,27015031,27261131,27627124,28087871,28608710,..
+Nepal,NPL,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,28462645243.5694,30497155115.0205,30857012520.706,32668135049.1363,35056496304.4504,37628038001.8425,40262954103.15,42866801617.599,46346893790.6393,48920897554.7787,51657022295.9185,54425821378.1911,59206619399.8804,63735009673.0611,70944811652.5188,72284863170.6641,71476639814.489,86617232592.1683,94283318513.2484,103255736200.264,..
+Netherlands,NLD,"Population, total",SP.POP.TOTL,15925513,16046180,16148929,16225302,16281779,16319868,16346101,16381696,16445593,16530388,16615394,16693074,16754962,16804432,16865008,16939923,17030314,17131296,17231624,17332850,..
+Netherlands,NLD,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,516852632560.376,530138233974.21,554795790258.896,559371407910.287,585814485091.078,605553877381.32,674800594293.726,718720604254.588,741916192385.952,730026618589.592,751121005301.854,788764031504.728,805602323121.561,838682680044.001,828263670286.029,852766433552.616,877231222533.962,955329960975.533,1003178154799.21,1036283166674.52,..
+New Caledonia,NCL,"Population, total",SP.POP.TOTL,213230,217324,221490,225296,228750,232250,235750,239250,242750,245950,249750,254350,259000,263650,268050,272400,276550,280350,284060,287800,..
+New Caledonia,NCL,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
+New Zealand,NZL,"Population, total",SP.POP.TOTL,3857700,3880500,3948500,4027200,4087500,4133900,4184600,4223800,4259800,4302600,4350700,4384000,4408100,4442100,4509700,4595700,4693200,4793900,4841000,4917000,..
+New Zealand,NZL,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,78297997633.6804,82895606423.2182,87389067246.1234,91938827708.6559,96743282637.6355,99289747882.7362,108365512926.595,115281987423.322,117990060434.33,126691135682.274,129254734057.273,137050494812.96,139398705020.386,154596730657.914,161323526267.934,166735624222.281,181618477112.542,191380118974.883,201990448662.51,209984738791.131,..
+Nicaragua,NIC,"Population, total",SP.POP.TOTL,5069302,5145366,5219328,5292118,5364935,5438690,5513763,5590055,5667432,5745526,5824065,5903039,5982526,6062454,6142733,6223240,6303974,6384855,6465513,6545502,..
+Nicaragua,NIC,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,13551689562.8962,14175391302.8041,14595236258.7164,15275517390.1912,16590298964.6499,18013422034.08,19167850465.4112,20800175691.6459,21945397250.4953,21289838734.4997,22539593499.3176,24473755139.8842,25444605044.0727,26590215661.6512,29211123154.359,31682119559.288,34181725305.8594,36355737421.9957,35834553938.0342,35581824534.503,..
+Niger,NER,"Population, total",SP.POP.TOTL,11331557,11751365,12189983,12647984,13125916,13624467,14143971,14685399,15250908,15843133,16464025,17114761,17795191,18504255,19240157,20001663,20788838,21602472,22442948,23310715,..
+Niger,NER,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,9177552002.03438,10099287824.8002,10807948969.6617,11214314164.9068,11712763163.7058,12976297074.5465,14155806666.4804,14943396543.3906,16344664708.5455,16803463723.047,18459954393.8791,19437967993.6132,21317946498.887,21679918301.6624,22970934374.5282,24039021555.5079,24750653852.382,26061195031.9389,28811246064.7332,31117585818.7235,..
+Nigeria,NGA,"Population, total",SP.POP.TOTL,122283850,125394046,128596076,131900631,135320422,138865016,142538308,146339977,150269623,154324933,158503197,162805071,167228767,171765769,176404902,181137448,185960289,190873311,195874740,200963599,..
+Nigeria,NGA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,255167279368.571,287090811442.551,333028660566.11,360317164877.475,404128100295.28,441651874550.936,514815673957.829,548857256564.419,596032621491.61,645180793779.717,705437181541.469,756939368351.467,793230176344.865,853026950842.773,939073115447.917,957051778143.622,952515802712.001,960398587580.009,986628524981.346,1042435903910.18,..
+North Macedonia,MKD,"Population, total",SP.POP.TOTL,2034819,2042842,2048928,2053426,2057048,2060273,2063131,2065426,2067313,2069039,2070741,2072487,2074278,2076067,2077775,2079328,2080745,2081996,2082958,2083459,..
+North Macedonia,MKD,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,12238988710.6337,12225602597.6489,12773034003.1161,13191014714.6892,14473791895.6109,15708331652.8376,17637727882.7894,18197783998.8442,21276861035.9049,22438920030.5364,23036881951.6119,23634727509.7709,24027034150.1486,25647250306.101,27256380190.4002,27852753384.5316,29935058682.6028,31050642918.1005,33104464952.7869,34983909435.5779,..
+Northern Mariana Islands,MNP,"Population, total",SP.POP.TOTL,57453,58321,58420,57947,57246,56542,55882,55219,54625,54193,53971,54012,54311,54784,55305,55780,56188,56562,56882,57216,..
+Northern Mariana Islands,MNP,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
+Norway,NOR,"Population, total",SP.POP.TOTL,4490967,4513751,4538159,4564855,4591910,4623291,4660677,4709153,4768212,4828726,4889252,4953088,5018573,5079623,5137232,5188607,5234519,5276968,5311916,5347896,..
+Norway,NOR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,163809179058.287,170711385468.446,172786645952.789,176976439531.853,195462041977.103,223283670197.81,252184206505.928,262393276835.26,293138235484.347,269379259626.725,286645665285.929,310701643205.307,331152578513.979,344244308199.849,349842613934.341,327034783599.997,323725133589.202,346868275225.434,374631286747.306,372280312640,..
+Oman,OMN,"Population, total",SP.POP.TOTL,2267973,2294962,2334858,2386166,2445517,2511251,2580758,2657158,2750963,2876186,3041434,3251108,3498029,3764805,4027260,4267348,4479219,4665935,4829483,4974986,..
+Oman,OMN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,78042867459.2796,82807057269.2819,83281139969.6498,84549629867.9866,88782411567.3736,92194625072.7078,101638819886.068,108882565141.713,116893276792.399,123006248410.356,129817468832.975,132616709313.018,146525800391.331,151894158664.925,147287627415.441,128408080425.753,125476274991.318,129607431963.975,132095752931.085,130411945686.762,..
+Pakistan,PAK,"Population, total",SP.POP.TOTL,142343578,145978402,149549700,153093373,156664697,160304008,164022627,167808105,171648986,175525609,179424641,183340592,187281475,191262919,195306825,199426964,203627284,207896686,212215030,216565318,..
+Pakistan,PAK,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,364351452154.009,384556213500.462,399665930665.803,432823399643.752,479816856919.28,527346545557.694,575785817416.927,617250457092.707,640251511959.872,661266530281.438,685083269913.143,721837538286.441,741744372621.72,772409174883.823,814428003012.422,857272768134.858,880790375139.673,934736068377.813,1012544045194.84,1039359212658.43,..
+Palau,PLW,"Population, total",SP.POP.TOTL,19105,19386,19637,19809,19867,19781,19540,19158,18704,18285,17955,17745,17640,17606,17626,17665,17725,17808,17907,18008,..
+Palau,PLW,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,210261713.016531,230416785.022302,242505591.571485,232583526.222288,246010923.799782,266252977.641841,276212774.966017,293229025.126986,283216489.438331,257122811.439647,261701179.697794,284570779.053392,295607900.454169,291227325.670785,311860771.984195,339443492.422236,345513137.186344,338035893.625796,364364116.547356,352566187.40019,..
+Panama,PAN,"Population, total",SP.POP.TOTL,3030328,3089648,3149188,3209048,3269356,3330217,3391666,3453675,3516204,3579215,3642687,3706483,3770624,3835437,3901315,3968487,4037078,4106771,4176873,4246439,..
+Panama,PAN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,24364003728.7489,24908792799.6304,26735195722.219,27517726689.982,29907517285.2994,32560340310.3997,36430564545.1435,42470623795.1805,47512762926.2438,48805783550.224,50865949436.3352,59266837875.6713,65663109755.6884,74726193766.6597,81538689297.7009,94068749851.9453,104322439879.142,117512813377.254,122807260867.116,130303377418.999,..
+Papua New Guinea,PNG,"Population, total",SP.POP.TOTL,5847586,5974629,6098621,6223377,6354245,6494903,6646895,6808514,6976201,7144776,7310507,7472200,7631002,7788379,7946731,8107775,8271760,8438029,8606316,8776109,..
+Papua New Guinea,PNG,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,11689909085.6399,11782139185.3214,11994999916.7649,12150356963.9625,13004301438.3334,14494469660.0176,14951336392.5516,16961711115.3279,17553793028.0627,18537466555.1738,20624546300.1054,20754466379.5836,23205469529.8316,23757281597.8627,29374464874.3696,31603731494.384,33928741115.6961,35476919654.5526,36022144008.9603,38224033991.4614,..
+Paraguay,PRY,"Population, total",SP.POP.TOTL,5323201,5428444,5531962,5632983,5730549,5824096,5913209,5998427,6081296,6163972,6248020,6333976,6421512,6510276,6599526,6688746,6777872,6867062,6956071,7044636,..
+Paraguay,PRY,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,30966339106.8839,31994514393.8062,33425791561.9896,32955404968.6624,35879600553.3298,38014665159.1395,42442719139.947,48119399705.1878,52810030726.3,52893580253.6388,59469808605.7608,64133125073.6599,61591935539.7893,69297872980.2731,72664615483.7895,73852324239.6658,78266222662.4595,83809237145.4981,88503340568.0902,90120522095.0816,..
+Peru,PER,"Population, total",SP.POP.TOTL,26459944,26799285,27100968,27372226,27624213,27866145,28102056,28333052,28562317,28792655,29027674,29264318,29506788,29773987,30090359,30470734,30926032,31444297,31989256,32510453,..
+Peru,PER,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,130452271476.039,134975718981.574,143784908892.766,151002976639.968,159597818102.273,172777044652.496,187599814286.007,209846929383.807,235569614894.481,241692558663.293,261705337876.883,283964927266.9,297710295468.343,318997109857.16,330667402340.409,340543090251.254,356119980475.884,375165985596.124,398280777380.129,415827578906.526,..
+Philippines,PHL,"Population, total",SP.POP.TOTL,77991755,79672873,81365258,83051971,84710542,86326250,87888675,89405482,90901965,92414158,93966780,95570047,97212638,98871552,100513138,102113212,103663927,105173264,106651922,108116615,..
+Philippines,PHL,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,293546466773.911,309550000684.598,326006799839.662,348562292410.737,381170730389.631,414099437848.239,447011843655.06,487974807401.364,520920551832.509,543111526854.964,588000732544.074,621050497572.568,679680535112.737,730910824409.18,780292861532.848,817730803200.056,887291422584.605,948319217869.219,1029566394258.62,1105766846728.74,..
+Poland,POL,"Population, total",SP.POP.TOTL,38258629,38248076,38230364,38204570,38182222,38165445,38141267,38120560,38125759,38151603,38042794,38063255,38063164,38040196,38011735,37986412,37970087,37974826,37974750,37970874,..
+Poland,POL,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,406724988390.044,424124301782.428,449762334043.599,464431660538.585,493175214799.755,520987687373.333,564928668469.094,618225796717.863,685385695589.561,712516447024.916,773599488580.951,837597367415.994,869988219364.787,902981478906.606,932107889462.194,983469744305.222,1032941377412.13,1098099065476.51,1159429138930.89,1255345704206.56,..
+Portugal,PRT,"Population, total",SP.POP.TOTL,10289898,10362722,10419631,10458821,10483861,10503330,10522288,10542964,10558177,10568247,10573100,10557560,10514844,10457295,10401062,10358076,10325452,10300300,10283822,10269417,..
+Portugal,PRT,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,191162333476.579,198946163123.708,208897263871.468,215655339291.813,222139978722.147,235520718575.134,252037472169.304,263235461915.183,272098077805.794,270543878824.239,279258685479.183,278041334782.043,271411027125.957,288230115471.542,292835641286.096,299068874296.756,318403967634.571,332797030443.433,346012067102.841,367572023545.973,..
+Puerto Rico,PRI,"Population, total",SP.POP.TOTL,3810605,3818774,3823701,3826095,3826878,3821362,3805214,3782995,3760866,3740410,3721525,3678732,3634488,3593077,3534874,3473232,3406672,3325286,3193354,3193694,..
+Puerto Rico,PRI,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,58733761401.2674,60499957632.6777,61323055389.5618,63015448423.7983,71561555532.7431,73282972910.1014,75473206023.0538,78275161128.5692,77428186151.1817,75399861666.2718,75213919308.8298,76671237933.7386,79385642494.7194,80211595023.5961,79957879558.6487,79546562680.8065,78484982368.6929,76274336611.4748,74956975900.5213,77608819566.61,..
+Qatar,QAT,"Population, total",SP.POP.TOTL,592468,615012,640868,681788,753334,865416,1022711,1218434,1436665,1654950,1856327,2035871,2196074,2336574,2459198,2565710,2654374,2724724,2781677,2832067,..
+Qatar,QAT,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,52844269903.4477,58463637959.3376,63242261799.6968,68819470813.4029,79713464226.6495,82868539806.0913,116922768436.541,141763233320.976,169063294457.293,183106001851.252,219766705170.902,261273849633.203,290855585759.324,306140973585.691,303091063018.377,233271189618.365,218972397296.509,249312147628.676,253918622423.327,259617193950.194,..
+Romania,ROU,"Population, total",SP.POP.TOTL,22442971,22131970,21730496,21574326,21451748,21319685,21193760,20882982,20537875,20367487,20246871,20147528,20058035,19983693,19908979,19815616,19702267,19587290,19472545,19356544,..
+Romania,ROU,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,130472172572.504,143525926780.149,154082024275.708,159114026184.779,184591713992.08,198699788612.316,236464966028.244,271422019636.084,337097295551.8,334774646003.99,339873222816.699,355972917107.082,371919689578.647,389544467078.627,409336897727.89,423743041436.6,468890191491.332,525044562889.581,557998132941.319,616229344535.983,..
+Russian Federation,RUS,"Population, total",SP.POP.TOTL,146596869,145976482,145306497,144648618,144067316,143518814,143049637,142805114,142742366,142785349,142849468,142960908,143201721,143506995,143819666,144096870,144342396,144496740,144477860,144373535,..
+Russian Federation,RUS,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,974627421657.533,1059732182384.88,1145642785078.87,1297686739857.67,1441505486256.06,1655585780414.79,2071121544039.89,2324720237537.22,2797648415292.56,2678612196779.7,2836588557943.54,3163098238398.54,3373665030012.89,3611852783386.43,3639325111273.82,3428609968113.92,3440203903846.87,3716765323187.99,4121188720507.68,4146993464042.09,..
+Rwanda,RWA,"Population, total",SP.POP.TOTL,7933681,8231156,8427060,8557161,8680524,8840215,9043337,9273757,9524534,9782770,10039338,10293331,10549678,10811543,11083635,11369071,11668818,11980937,12301939,12626950,..
+Rwanda,RWA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,5049235545.30159,5490253589.36883,6323975588.21706,6552736206.97466,7231726271.22439,8196230196.4695,9229309800.4475,10245958589.2583,11581455885.7426,12402484360.8208,13461073151.4065,14815468620.0324,15518655300.4915,16404665590.4225,18515967703.5649,20049281858.1788,21448563464.1392,23152331373.7078,25435592739.4105,28392207258.882,..
+Samoa,WSM,"Population, total",SP.POP.TOTL,174454,175392,176407,177484,178590,179727,180876,182046,183263,184556,185949,187469,189088,190717,192221,193513,194535,195352,196130,197097,..
+Samoa,WSM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,656129200.037634,696240495.479618,751718146.235817,801018193.481249,846404986.262074,928759783.687995,955315073.512664,929986181.911159,966999334.41001,1020029218.05116,999743394.37096,1012610226.41744,1028215858.95766,1104734531.28948,1202494361.27187,1226555664.3989,1223367315.14333,1280677786.36999,..
+San Marino,SMR,"Population, total",SP.POP.TOTL,27462,27812,28175,28562,28940,29324,29700,30063,30434,30816,31229,31661,32105,32553,32948,33272,33504,33671,33785,33860,..
+San Marino,SMR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
+Sao Tome and Principe,STP,"Population, total",SP.POP.TOTL,142262,144755,147447,150415,153737,157472,161681,166300,171120,175876,180371,184524,188404,192087,195727,199432,203227,207089,211028,215056,..
+Sao Tome and Principe,STP,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,255566706.247654,266396211.504903,293566641.296008,312266712.027735,346807906.842514,406883203.116346,435108917.16053,465728187.107648,480121041.781609,520465560.503263,554959981.522059,546231070.766138,643005258.19779,759409789.949252,762852020.721765,792614758.494514,816184919.730232,863373595.931194,887812266.409494,..
+Saudi Arabia,SAU,"Population, total",SP.POP.TOTL,20663843,21202642,21805313,22456649,23132682,23816183,24498310,25184597,25888541,26630303,27421461,28267685,29155187,30052518,30916994,31717667,32442572,33099147,33699947,34268528,..
+Saudi Arabia,SAU,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,828007290158.966,840020779469.565,826977992588.478,933840294715.298,1038617815010.77,1132480994990.62,1201557616072.28,1263097402777.08,1371179631829.15,1356509394690.81,1431866904325.84,1609641123708.09,1697441896265.17,1710674772203.64,1760505616518.9,1582553666578.91,1511656097252,1590219660708.5,1659189557487.31,1696899341619.51,..
+Senegal,SEN,"Population, total",SP.POP.TOTL,9797734,10036104,10283699,10541467,10810083,11090116,11382268,11687080,12004701,12335084,12678148,13033809,13401991,13782420,14174731,14578459,14993528,15419381,15854360,16296364,..
+Senegal,SEN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,18178582368.4978,19481388775.7522,19869524049.2699,21683767086.2942,23621693060.3421,25746288417.4403,27254286824.7744,29373991085.1092,31233432098.3714,31884539098.2719,33445704637.8282,34415226315.3097,36427222864.5151,37245933448.3051,39358815590.1772,42363282419.3143,44911708617.1489,48020557391.9318,52441696313.5792,56561986883.0706,..
+Serbia,SRB,"Population, total",SP.POP.TOTL,7516346,7503433,7496522,7480591,7463157,7440769,7411569,7381579,7350222,7320807,7291436,7234099,7199077,7164132,7130576,7095383,7058322,7020858,6982604,6944975,..
+Serbia,SRB,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,45257291290.4428,48680376189.0381,53939447479.285,56788710344.5347,62763568949.0802,67522224204.5828,74612235191.6665,81280920810.7716,90437961842.0863,90424042545.4312,91388965228.226,97317586786.3172,97051558827.1104,100740903581.79,100572893992.596,101035865859.578,105112706146.943,108625718887.677,116497647399.279,124926543018.198,..
+Seychelles,SYC,"Population, total",SP.POP.TOTL,81131,81202,83723,82781,82475,82858,84600,85033,86956,87298,89770,87441,88303,89949,91359,93419,94677,95843,96762,97625,..
+Seychelles,SYC,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,1098286181.48383,1123976238.74105,1072994332.92584,1070267506.0354,1149808132.75976,1291667517.36341,1455225327.48127,1520789191.77387,1496927794.85738,1517612384.08079,1646832590.66869,1704881471.71727,1796647359.61338,1907297429.61391,2048795965.81269,2112360165.0685,2245383378.88729,2417588944.33819,2644251430.20668,2876690726.01186,..
+Sierra Leone,SLE,"Population, total",SP.POP.TOTL,4584571,4754072,4965766,5201070,5433991,5645624,5829237,5989633,6133603,6272734,6415634,6563240,6712581,6863980,7017144,7171914,7328838,7488431,7650154,7813215,..
+Sierra Leone,SLE,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,3078355090.69744,2965062693.60749,3811355840.62171,4263196038.58856,4654050424.11525,5010794994.65001,5398188175.20619,6410544323.06368,7077507452.58921,7414307697.32507,7356159783.2039,7786542195.82346,9738223472.1891,11922760797.3981,12246518774.9448,11226733103.7828,10434653657.3075,11938865734.8629,12119887196.0028,13844539219.8355,..
+Singapore,SGP,"Population, total",SP.POP.TOTL,4027887,4138012,4175950,4114826,4166664,4265762,4401365,4588599,4839396,4987573,5076732,5183688,5312437,5399162,5469724,5535002,5607283,5612253,5638676,5703569,..
+Singapore,SGP,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,175475990159.876,177305489490.482,184670988384.374,195292440540.936,212571173701.587,236301952507.371,273662417672.184,306624365906.469,315001406842.441,312810004089.139,378119206239.981,400707778808.442,416578549823.047,424002358121.386,445708256666.976,448557736908.24,469524071593.093,492395261470.978,510377844943.974,526256713214.139,..
+Sint Maarten (Dutch part),SXM,"Population, total",SP.POP.TOTL,30519,30600,30777,31472,32488,33011,33441,33811,33964,34238,34056,33435,34640,36607,37685,38825,39969,40574,40654,40733,..
+Sint Maarten (Dutch part),SXM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,1076306314.54223,1122314269.14654,1220447328.01986,1127057359.87115,1193140134.133,1446529203.78966,1472416197.64961,1527597323.9219,1504505116.06959,1439303657.81626,..,..
+Slovak Republic,SVK,"Population, total",SP.POP.TOTL,5388720,5378867,5376912,5373374,5372280,5372807,5373054,5374622,5379233,5386406,5391428,5398384,5407579,5413393,5418649,5423801,5430798,5439232,5446771,5454073,..
+Slovak Republic,SVK,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,61083993049.9732,66695266134.4753,71403065665.9981,72449990182.4595,78596910447.9461,87124402574.7501,98687707671.112,110791194181.167,125448397000.54,123782220565.48,133074999501.744,135957429498.407,143374289950.093,150457866037.905,155375915716.958,158399068408.297,156871877514.928,164976386582.201,174794553965.325,182525762788.359,..
+Slovenia,SVN,"Population, total",SP.POP.TOTL,1988925,1992060,1994530,1995733,1997012,2000474,2006868,2018122,2021316,2039669,2048583,2052843,2057159,2059953,2061980,2063531,2065042,2066388,2073894,2087946,..
+Slovenia,SVN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,35729557107.8743,37731226284.5409,40019698741.2693,41640522811.3764,44778206419.9901,47268194743.7862,50908423708.2664,54304531861.8556,58273321247.2921,55289538407.1433,56288187891.8793,58585332628.1712,58814142549.4361,60918129358.2224,63069203941.5599,63269913868.7162,68296238157.6117,74415292459.4785,79260608402.4164,84199945537.2359,..
+Solomon Islands,SLB,"Population, total",SP.POP.TOTL,412660,423944,435432,447017,458539,469918,481078,492132,503360,515181,527861,541521,556064,571335,587079,603118,619437,636038,652858,669823,..
+Solomon Islands,SLB,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,667529955.02341,634220971.445325,612898094.391288,672712592.441606,748130352.455528,812451315.829835,852361529.310249,887431377.821173,930979206.529267,966491629.915639,1089625192.53338,1170068050.86402,1243825579.24712,1404453986.06823,1425935249.73321,1449604554.02771,1532262905.38614,1661727314.95544,1782324490.23183,1843329781.51065,..
+Somalia,SOM,"Population, total",SP.POP.TOTL,8872254,9186725,9501342,9815412,10130243,10446863,10763905,11080121,11397188,11717692,12043883,12376302,12715510,13063706,13423576,13797201,14185613,14589119,15008154,15442905,..
+Somalia,SOM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
+South Africa,ZAF,"Population, total",SP.POP.TOTL,44967708,45571274,46150913,46719196,47291610,47880601,48489459,49119759,49779471,50477011,51216964,52004172,52834005,53689236,54545991,55386367,56203654,57000451,57779622,58558270,..
+South Africa,ZAF,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,338847763736.212,352904895319.589,374285460634.584,391615139634.193,423687773283.186,459794909014.785,500389948864.184,533806365323.969,562391388026.538,563023439689.214,587540657936.703,616821696796.998,619739350156.296,650936442976.243,664730482950.131,677999059197.49,688184240521.716,702384466248.083,723949726053.757,741738160118.508,..
+South Sudan,SSD,"Population, total",SP.POP.TOTL,6199394,6447793,6688226,6935676,7213351,7535932,7907406,8315139,8736939,9142259,9508364,9830698,10113647,10355036,10554883,10715658,10832512,10910759,10975920,11062113,..
+South Sudan,SSD,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,16038626934.766,14790639635.8154,20542512085.5034,13514791883.5209,..,..,..,..,..,..
+Spain,ESP,"Population, total",SP.POP.TOTL,40567864,40850412,41431558,42187645,42921895,43653155,44397319,45226803,45954106,46362946,46576897,46742697,46773055,46620045,46480882,46444832,46484062,46593236,46797754,47076781,..
+Spain,ESP,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,869690668123.322,924904237114.657,998316071948.184,1046820524829.82,1110664109889.25,1188490567999.29,1337056206794.54,1430968449422.51,1486151637639.11,1460812824691.15,1455146268303.33,1463308449873.9,1471780320471.5,1501976882039.12,1552593080187.63,1621139938786.75,1737321244918,1844621981837.85,1901180638288.48,1989379918071.37,..
+Sri Lanka,LKA,"Population, total",SP.POP.TOTL,18777601,18911730,19062482,19224037,19387153,19544988,19695972,19842044,19983984,20123508,20261737,20398670,20425000,20585000,20778000,20970000,21203000,21444000,21670000,21803000,..
+Sri Lanka,LKA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,80219612594.2949,80707690506.9916,85438265096.9155,92694593585.6965,100298785215.359,109652264534.835,121471812828.382,133547831466.052,142604716517.615,150406486466.057,164223838597.43,181910599698.272,206950552659.399,218124451812.081,228565788492.023,236279911702.493,252283568160.724,262709274806.972,277822584867.516,289188790348.268,..
+St. Kitts and Nevis,KNA,"Population, total",SP.POP.TOTL,44083,44602,45168,45749,46323,46852,47333,47769,48178,48599,49011,49442,49881,50328,50776,51204,51629,52036,52438,52834,..
+St. Kitts and Nevis,KNA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,668522600.978965,712219658.795579,730432263.939267,703850038.116827,765342487.452235,877744867.516209,946775379.905781,983496317.269493,1063391161.19635,1028245803.30169,1041403759.09307,1085005760.61736,1040063651.0458,1095525002.04634,1126403235.97201,1138913288.50629,1209140537.73026,1254930909.96574,1327099130.41825,1392768471.15006,..
+St. Lucia,LCA,"Population, total",SP.POP.TOTL,156729,158179,159392,160530,161816,163417,165381,167639,170011,172221,174085,175544,176646,177513,178296,179126,180024,180955,181889,182790,..
+St. Lucia,LCA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,1305852797.46331,1270822435.37829,1312261541.98142,1379894924.27195,1502710508.58259,1544832856.11743,1839797857.29153,1904805360.78116,2039867529.62221,2034629669.21323,2103471819.77241,2297805120.62173,2256306242.70349,2340100704.32408,2304064040.82224,2220165273.73071,2413765345.33632,2558638549.1451,2672942131.02128,2774769472.1051,..
+St. Martin (French part),MAF,"Population, total",SP.POP.TOTL,28935,29853,30910,32053,33186,34248,35237,36137,36885,37377,37582,37446,37009,36453,36015,35858,36065,36560,37264,38002,..
+St. Martin (French part),MAF,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
+St. Vincent and the Grenadines,VCT,"Population, total",SP.POP.TOTL,107784,107896,108097,108326,108512,108614,108603,108518,108393,108287,108255,108316,108435,108622,108861,109148,109459,109827,110210,110589,..
+St. Vincent and the Grenadines,VCT,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,638159317.526955,670314417.834016,724127109.344183,784916333.061958,833178834.119407,883240022.453896,992033941.002749,1063625110.84647,1100704108.75648,1101047803.37638,1077900540.91377,1094556250.36243,1127672288.17059,1178894343.25033,1180712569.46047,1240035784.97745,1354300475.1646,1335277351.37259,1393193960.87552,1430308773.52545,..
+Sudan,SDN,"Population, total",SP.POP.TOTL,27275015,27971082,28704778,29460519,30214193,30949516,31661823,32360621,33060837,33783788,34545013,35349681,36193783,37072550,37977655,38902950,39847440,40813396,41801533,42813238,..
+Sudan,SDN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,58518207869.1486,64015125518.6813,69272813978.1821,75371877787.0356,80187168162.9233,88784486486.2763,94436059937.7667,112828393345.508,120176162718.583,127758046384.011,144182474541.834,138252289994.32,142798888417.107,147780281950.934,177742648960.372,194018525681.42,174361570239.824,174257425536.273,173058898741.426,166393163553.486,..
+Suriname,SUR,"Population, total",SP.POP.TOTL,470944,476574,482228,487938,493680,499461,505292,511181,517122,523113,529126,535177,541247,547295,553278,559136,564883,570501,575987,581363,..
+Suriname,SUR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,3455101780.05324,3452172053.4268,3869264165.36325,4192975496.82237,4655634374.79592,5102119079.55628,5547176744.12438,6108812238.08213,6528902952.21819,6746376489.56471,6997716781.10383,7287563034.49645,8213418033.82234,8968094623.77967,9422022464.70498,8961394444.80538,7591492999.53856,8186673669.56066,8707714874.9984,8901659659.19333,..
+Sweden,SWE,"Population, total",SP.POP.TOTL,8872109,8895960,8924958,8958229,8993531,9029572,9080505,9148092,9219637,9298515,9378126,9449213,9519374,9600379,9696110,9799186,9923085,10057698,10175214,10285453,..
+Sweden,SWE,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,263034531843.219,266552037924.291,276807254992.88,289490546636.051,305951033550.664,313423457846.89,351076929316.802,385012006121.05,402088350522.486,383691884485.07,407009940464.106,430123918452.671,442391061204.645,454602118873.682,467164180301.636,485141789297.976,503260278996.559,539469151099.586,556574223858.497,588574573895.631,..
+Switzerland,CHE,"Population, total",SP.POP.TOTL,7184250,7229854,7284753,7339001,7389625,7437115,7483934,7551117,7647675,7743831,7824909,7912398,7996861,8089346,8188649,8282396,8373338,8451840,8514329,8574832,..
+Switzerland,CHE,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,274014758835.197,276467718887.325,282083618753.509,294968201481.081,307427849440.839,327059401214.789,362697631401.731,377896938566.602,375881421842.15,408827811020.748,439965969163.522,449676395959.064,472965119284.647,496497257475.75,509076700726.579,541310602724.824,551591740524.388,558210759918.503,592135147263.732,620733021180.849,..
+Syrian Arab Republic,SYR,"Population, total",SP.POP.TOTL,16410848,16766561,17084632,17415214,17827825,18361176,19059258,19878254,20664038,21205873,21362529,21082966,20442541,19584274,18715672,17997408,17453933,17068002,16906283,17070135,..
+Syrian Arab Republic,SYR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
+Tajikistan,TJK,"Population, total",SP.POP.TOTL,6216341,6318513,6426867,6541547,6662389,6789321,6922587,7062672,7209930,7364753,7527394,7697510,7874835,8059769,8252833,8454028,8663579,8880268,9100837,9321018,..
+Tajikistan,TJK,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,6243952520.27899,6956391457.37608,7940888916.36112,8865335640.39565,10232161892.4381,13315140661.0943,15606010070.4553,17958659378.8081,20015975062.8332,19445730700.888,21650983632.7241,24502585880.9376,27649805633.739,32099463306.2014,33792660554.7335,30205900190.8183,31326779891.4301,32094206010.1166,35068900415.3,38289354364.5244,..
+Tanzania,TZA,"Population, total",SP.POP.TOTL,33499180,34385856,35334788,36337782,37379767,38450320,39548663,40681414,41853944,43073834,44346525,45673338,47052481,48482266,49959822,51482633,53050790,54663906,56318348,58005463,..
+Tanzania,TZA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,38397497834.7994,41037773172.7979,45408862776.4176,49045752860.6448,54090494766.6213,59610581698.386,66631583914.7807,72197977414.1316,77918987425.7164,82734318426.5471,88300340743.9913,97002460506.0813,94529738517.3872,101725607977.679,107031002998.604,115147236431.224,124836678462.57,131217326623.384,140557100257.445,152454684870.174,..
+Thailand,THA,"Population, total",SP.POP.TOTL,62952642,63539196,64069087,64549866,64995299,65416189,65812536,66182067,66530984,66866839,67195028,67518382,67835957,68144501,68438730,68714511,68971331,69209858,69428524,69625582,..
+Thailand,THA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,450671564880.121,472410646354.6,505623521743.747,548768048118.676,597376671492.008,640844957039.428,698598604388.149,758824844002.222,784949891089.746,786634662301.867,849519757319.637,890774204971.964,962565591015.47,982839168917.538,1004937587069.8,1031139449774.92,1092384223464.17,1151656441215.65,1224069353216.63,1293101727432.67,..
+Timor-Leste,TLS,"Population, total",SP.POP.TOTL,884366,901214,922694,947108,971893,995135,1016432,1036392,1055431,1074277,1093523,1113151,1132994,1153295,1174331,1196302,1219288,1243261,1267972,1293119,..
+Timor-Leste,TLS,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,1574752962.21545,1767711262.73649,2044616103.96361,1699825598.42108,2006489777.22873,2520966815.55108,3906371836.58064,5595584950.76074,8809183879.38215,6735217452.84608,8100383267.68153,10105477561.6759,9860409637.77045,8520032444.59501,7368660227.62549,6103032554.46816,5158320093.93941,5555679523.80092,5691022135.87222,6421012667.50764,..
+Togo,TGO,"Population, total",SP.POP.TOTL,4924402,5062567,5197031,5330639,5467766,5611640,5762880,5920359,6083420,6250835,6421679,6595943,6773807,6954721,7137997,7323158,7509952,7698475,7889094,8082366,..
+Togo,TGO,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,4695495615.59718,4836298686.16808,5137495675.96839,5593950603.05033,5666656648.28415,5567283012.01423,5883941545.44865,5999557772.31601,6408670137.04559,6807580411.97222,7298190564.4774,8463956228.3191,8325342477.13935,8921364449.72602,9577642653.30672,10577120513.5998,11023673694.766,11687035212.9277,12594558820.3593,13526525781.9739,..
+Tonga,TON,"Population, total",SP.POP.TOTL,97973,98487,99022,99589,100218,100905,101706,102581,103379,103890,103986,103562,102737,101768,101028,100781,101133,101998,103197,104494,..
+Tonga,TON,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,362033560.364799,380451652.628355,411210821.184648,422500708.52118,425834953.808962,434026780.899386,455514547.601102,468064639.618694,500415319.372712,484838040.117084,495003930.790005,537942935.82851,553018017.707635,562086692.996778,573892842.937286,588451241.760829,630469289.624053,686360863.461617,719436596.872548,730938483.022805,..
+Trinidad and Tobago,TTO,"Population, total",SP.POP.TOTL,1267153,1271632,1277213,1283559,1290123,1296502,1302561,1308451,1314443,1320930,1328147,1336178,1344817,1353700,1362342,1370328,1377564,1384072,1389858,1394973,..
+Trinidad and Tobago,TTO,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,17012875951.7616,18424051119.8272,20369750461.269,23569565343.1583,26971078775.6412,28938122262.1661,33665145926.4593,36491422383.0453,38491439611.1355,36732759921.4691,38571392278.1815,36695932591.946,36835904408.0776,38353998987.3133,37934914092.36,37052696592.3605,35697657556.4502,36883235267.1389,36353284924.2271,37857180201.0365,..
+Tunisia,TUN,"Population, total",SP.POP.TOTL,9708350,9793903,9871251,9945277,10022277,10106771,10201214,10304726,10414433,10525694,10635244,10741880,10847002,10952951,11063201,11179949,11303946,11433443,11565204,11694719,..
+Tunisia,TUN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,55482145963.393,59027355538.6916,60767940058.4285,65012620775.337,70781548456.1259,74688150400.8954,81387058366.0479,88448511849.4509,93552043505.0515,98192793637.6815,102937036777.429,103048392300.402,106139515924.993,107073102533.151,111432879156.612,110536919999.913,113664872520.447,117404469799.969,123145788072.218,126888352880.906,..
+Turkey,TUR,"Population, total",SP.POP.TOTL,63240194,64192243,65145367,66089402,67010930,67903469,68756810,69581848,70418604,71321399,72326988,73443863,74653016,75928564,77231907,78529409,79821724,81101892,82319724,83429615,..
+Turkey,TUR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,600273781120.682,581204540597.519,600837444266.479,629050110970.292,725013867180.356,806457798389.387,934014319512.305,1032081413559.49,1128303925507.98,1100408888077.46,1258975457198.67,1441544674309.68,1539087083382.36,1688336890751.51,1844213193241.04,2000274310406.4,2093847121200.29,2252833248104.21,2301696888197.14,2307744537743.35,..
+Turkmenistan,TKM,"Population, total",SP.POP.TOTL,4516133,4564083,4610005,4655743,4703401,4754646,4810109,4870141,4935767,5007954,5087213,5174085,5267900,5366375,5466328,5565287,5662372,5757669,5850908,5942089,..
+Turkmenistan,TKM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,18608125797.7366,20168709626.0316,20512405889.1087,21796071376.2127,23408021445.6124,25792885965.121,29758839629.2248,35099172970.3178,39986573484.4114,42368527405.031,45722924072.4045,52789503109.1211,57503025651.6309,62407231340.9251,67102532122.3818,71735322172.8103,76445710804.7088,78393490626.9716,85226709569.279,..,..
+Turks and Caicos Islands,TCA,"Population, total",SP.POP.TOTL,20164,21573,23232,25011,26700,28180,29391,30385,31202,31934,32660,33377,34066,34731,35369,35981,36559,37115,37665,38191,..
+Turks and Caicos Islands,TCA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,780576157.563058,868618280.529069,965992136.059766,988204101.829243,1055552582.30123,..,..
+Tuvalu,TUV,"Population, total",SP.POP.TOTL,9394,9484,9596,9726,9869,10000,10120,10221,10314,10424,10530,10633,10739,10857,10972,11099,11225,11370,11508,11646,..
+Tuvalu,TUV,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,44816713.8294036,55987016.7844158,39423211.9661187,44008233.8187952,44010714.032063,44669035.2102125,52633356.1420024,52851720.3471895,54738734.1202264,49291845.5488855,50436773.5213591,43459568.1167756,54547258.7396934,48514805.4334328,62957615.2084682,63411770.1109812,63389653.6388726,70050076.484556,71954448.906623,..
+Uganda,UGA,"Population, total",SP.POP.TOTL,23650172,24388968,25167257,25980552,26821297,27684585,28571475,29486338,30431736,31411096,32428167,33476919,34559168,35695246,36912148,38225453,39647506,41162465,42723139,44269594,..
+Uganda,UGA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,26602400209.7335,28351819799.9972,31498717816.5971,34180713683.8626,37341963560.3743,40881162545.6933,46794249083.4797,52281550069.3224,57978432272.7662,62357214813.902,66606800679.7384,74468592859.3859,68126892521.0251,70302250671.6159,75321006669.9279,79794449795.6947,81153945783.1564,83396734294.2227,90264230399.9738,98489563390.1301,..
+Ukraine,UKR,"Population, total",SP.POP.TOTL,49176500,48662400,48202470,47812949,47451626,47105171,46787786,46509355,46258189,46053331,45870741,45706086,45593342,45489648,45272156,45154036,45004674,44831135,44622518,44385155,..
+Ukraine,UKR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,195874159429.108,221426068981.201,237520547098.242,265681569586.655,306381587645.56,324903125776.366,357983817507.962,400086017561.01,415612966584.602,352557246537.325,372634874963.11,397751382057.074,418808180763.59,478317354943.168,456689210728.162,437283649075.699,483248219684.615,515944166360.639,547892958120.335,579590094319.106,..
+United Arab Emirates,ARE,"Population, total",SP.POP.TOTL,3134062,3302719,3478777,3711932,4068570,4588225,5300174,6168838,7089487,7917372,8549988,8946777,9141596,9197910,9214175,9262900,9360980,9487203,9630959,9770529,..
+United Arab Emirates,ARE,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,323322696229.651,335107906357.062,335185283555.607,368204626486.512,416456364868.158,455293178534.56,517928620558.774,554759716239.878,572067250138.551,545263477702.124,554578548595.186,605808769081.988,632212172329.896,648063820753.781,679448062185.081,604104698714.526,602327541485.937,641975592252.713,662908531968.578,688157122981.848,..
+United Kingdom,GBR,"Population, total",SP.POP.TOTL,58892514,59119673,59370479,59647577,59987905,60401206,60846820,61322463,61806995,62276270,62766365,63258810,63700215,64128273,64602298,65116219,65611593,66058859,66460344,66834405,..
+United Kingdom,GBR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,1561764923021.01,1651216544136.18,1743839843914.21,1826224199334.23,1933566509747.07,1995251682049.24,2111151423720.26,2167352135846.85,2243903655597.69,2166607695896.9,2290137565655.04,2360641992374.5,2414348506486.29,2508447345407.68,2612946778839.82,2708619008759.83,2826139294177.79,2995234060269.87,3076488934231.19,3199867422349.46,..
+United States,USA,"Population, total",SP.POP.TOTL,282162411,284968955,287625193,290107933,292805298,295516599,298379912,301231207,304093966,306771529,309321666,311556874,313830990,315993715,318301008,320635163,322941311,324985539,326687501,328239523,..
+United States,USA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,10383859000000,10743709000000,11054325000000,11530268000000,12313988000000,13169702000000,14072966000000,14543216000000,14684602000000,14398708000000,15126736000000,15832207000000,16670651000000,17175898000000,18057489000000,18704317000000,19045164000000,19830277000000.1,20837347000000.1,21690012900000,..
+Uruguay,URY,"Population, total",SP.POP.TOTL,3319736,3325473,3326040,3323668,3321476,3321803,3325401,3331749,3340221,3349676,3359275,3368934,3378974,3389439,3400434,3412009,3424132,3436646,3449299,3461734,..
+Uruguay,URY,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,33945443243.5595,33344537745.9898,31533824766.3808,30883466403.5481,33216952934.2709,37360260917.8954,40336085308.0704,44136848971.9567,47842989527.9303,50101739042.6299,54386110587.9321,58589197626.3661,57034863431.4259,61370940005.0751,64012672369.2185,65894817067.7221,67291572981.5448,68924690398.7391,71008482905.0625,73318582462.6401,..
+Uzbekistan,UZB,"Population, total",SP.POP.TOTL,24650400,24964450,25271850,25567650,25864350,26167000,26488250,26868000,27302800,27767400,28562400,29339400,29774500,30243200,30757700,31298900,31847900,32388600,32956100,33580650,..
+Uzbekistan,UZB,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,60490019866.5893,64255651186.7593,68073816743.7643,72531185461.6649,80628416842.539,89130942264.8968,98331029395.6242,115744456317.819,130693528065.954,138036570235.955,146731919198.6,161559906176.938,170707243416.585,180556615900.712,192173670374.622,201986598838.024,207853080775.1,215456449592.32,234878006099.546,249122087959.444,..
+Vanuatu,VUT,"Population, total",SP.POP.TOTL,184972,189219,193920,198959,204127,209282,214370,219472,224704,230247,236211,242653,249499,256635,263888,271130,278330,285510,292680,299882,..
+Vanuatu,VUT,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,395887771.31209,404021205.457339,377856796.210212,400597577.520627,425313218.59906,454733714.926464,519076866.700155,559879071.934261,635195435.649593,639586791.616138,661417869.173175,688194816.58647,690928998.432618,758449007.269641,795150421.339743,802475975.590981,834240848.286166,878774469.817288,945448653.511943,996784874.96578,..
+"Venezuela, RB",VEN,"Population, total",SP.POP.TOTL,24192446,24646472,25100408,25551624,25996594,26432447,26850194,27247610,27635832,28031009,28439940,28888369,29362449,29783571,30045134,30081829,29846179,29390409,28870195,28515829,..
+"Venezuela, RB",VEN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,280855847546.416,295370460043.372,269834466488.265,254427821597.335,307512284018.432,355550813087.748,406417931921.08,461178499187.592,490847218534.293,473863866014.717,470221384672.787,493557717634.178,..,..,..,..,..,..,..,..,..
+Vietnam,VNM,"Population, total",SP.POP.TOTL,79910412,80742499,81534407,82301656,83062821,83832661,84617540,85419591,86243413,87092252,87967651,88871561,89802487,90753472,91714595,92677076,93638724,94596642,95540395,96462106,..
+Vietnam,VNM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,169101978305.86,183775381857.827,198446295959.396,215660375903.836,239304626446.991,243642053814.172,267674830725.951,292489053070.907,314506040402.747,300736799433.025,356506285955.29,384663335500.307,434659185242.371,465497570616.946,501888463952.615,536539130014.396,589741573548.919,628963647325.076,696411020930.516,762988256890.134,..
+Virgin Islands (U.S.),VIR,"Population, total",SP.POP.TOTL,108642,108549,108510,108506,108467,108454,108371,108339,108399,108405,108358,108292,108191,108044,107884,107710,107510,107268,106977,106631,..
+Virgin Islands (U.S.),VIR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
+West Bank and Gaza,PSE,"Population, total",SP.POP.TOTL,2922153,2997784,3075373,3154969,3236626,3320396,3406334,3494496,3591977,3689099,3786161,3882986,3979998,4076708,4173398,4270092,4367088,4454805,4569087,4685306,..
+West Bank and Gaza,PSE,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,8672281756.98748,7767480599.46283,6789052474.22526,7885141658.25546,9760349090.20193,11398276391.2092,11745130157.0626,12703175590.6057,13871831458.3017,14817004499.7565,15797251462.5601,17760843023.9854,21351718579.0915,22678714663.8531,25433044780.3951,28541925647.3697,30924647527.1429,32283134198.3557,34635715905.1177,35173987728.0265,..
+"Yemen, Rep.",YEM,"Population, total",SP.POP.TOTL,17409072,17918373,18443691,18985000,19540098,20107409,20687646,21282515,21892146,22516460,23154855,23807588,24473178,25147109,25823485,26497889,27168210,27834821,28498687,29161922,..
+"Yemen, Rep.",YEM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,47407469490.9858,50841346559.6163,53305582984.3364,55681083236.9636,58804494223.5412,64075292641.671,70493792625.1899,74995234816.8598,78498118631.5373,84324391010.776,90700650717.6567,79742574004.9292,81652542721.426,88588654788.6028,..,..,..,..,..,..,..
+Zambia,ZMB,"Population, total",SP.POP.TOTL,10415944,10692193,10971698,11256743,11550642,11856247,12173514,12502958,12848530,13215139,13605984,14023193,14465121,14926504,15399753,15879361,16363507,16853688,17351822,17861030,..
+Zambia,ZMB,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,16390516773.6291,17697270842.6674,18873338728.3109,20701831757.5593,21936203301.4844,23952035539.9244,26172573662.6867,28534598762.7774,32470694798.6432,37702919212.9416,40342714903.2776,44313413076.5895,48670115552.996,51230925385.5009,53398105822.3561,53416507706.8293,53992049816.7248,56131829918.0733,61624930936.8384,63616392245.9296,..
+Zimbabwe,ZWE,"Population, total",SP.POP.TOTL,11881477,11923914,11954290,11982224,12019912,12076699,12155491,12255922,12379549,12526968,12697723,12894316,13115131,13350356,13586681,13814629,14030390,14236745,14439018,14645468,..
+Zimbabwe,ZWE,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,26072084508.1163,27121623087.9892,25202095918.0307,21365454472.1989,20525176749.3399,19970617968.2505,19735282220.1378,19382202008.1106,15921801862.7022,16688304056.1016,20491802498.8268,23257335849.2756,27130426246.4164,30824982317.5151,32122394049.3391,33340681206.5211,35973034626.7689,39276020087.4136,43239325158.8878,40125247554.3041,..
+,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,
+Data from database: World Development Indicators,,,,,,,,,,,,,,,,,,,,,,,,
+Last Updated: 12/16/2020,,,,,,,,,,,,,,,,,,,,,,,,
diff --git a/tools/java/org/unicode/cldr/util/data/extraLanguagesAndScripts.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/extraLanguagesAndScripts.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/extraLanguagesAndScripts.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/extraLanguagesAndScripts.txt
diff --git a/tools/java/org/unicode/cldr/util/data/iso-639-3-macrolanguages.tab b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/iso-639-3-macrolanguages.tab
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/iso-639-3-macrolanguages.tab
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/iso-639-3-macrolanguages.tab
diff --git a/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/iso-639-3-version.tab b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/iso-639-3-version.tab
new file mode 100755
index 0000000..43c7f94
--- /dev/null
+++ b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/iso-639-3-version.tab
@@ -0,0 +1 @@
+20210202
diff --git a/tools/java/org/unicode/cldr/util/data/iso-639-3.tab b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/iso-639-3.tab
similarity index 99%
rename from tools/java/org/unicode/cldr/util/data/iso-639-3.tab
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/iso-639-3.tab
index 30f7732..46d87ee 100644
--- a/tools/java/org/unicode/cldr/util/data/iso-639-3.tab
+++ b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/iso-639-3.tab
@@ -337,6 +337,7 @@
aqc I L Archi
aqd I L Ampari Dogon
aqg I L Arigidi
+aqk I L Aninka
aqm I L Atohwaim
aqn I L Northern Alta
aqp I E Atakapa
@@ -706,12 +707,10 @@
bhz I L Bada (Indonesia)
bia I L Badimaya
bib I L Bissa
-bic I L Bikaru
bid I L Bidiyo
bie I L Bepour
bif I L Biafada
big I L Biangai
-bij I L Vaghat-Ya-Bijim-Legeri
bik bik bik M L Bikol
bil I L Bile
bim I L Bimoba
@@ -782,7 +781,6 @@
bld I L Bolango
ble I L Balanta-Kentohe
blf I L Buol
-blg I L Balau
blh I L Kuwaa
bli I L Bolia
blj I L Bolongan
@@ -877,6 +875,7 @@
boz I L Tiéyaxo Bozo
bpa I L Daakaka
bpd I L Banda-Banda
+bpe I L Bauni
bpg I L Bonggo
bph I L Botlikh
bpi I L Bagupi
@@ -1413,6 +1412,7 @@
cst I L Northern Ohlone
csv I L Sumtu Chin
csw I L Swampy Cree
+csx I L Cambodian Sign Language
csy I L Siyin Chin
csz I L Coos
cta I L Tataltepec Chatino
@@ -1429,6 +1429,7 @@
cts I L Northern Catanduanes Bikol
ctt I L Wayanad Chetti
ctu I L Chol
+cty I L Moundadan Chetty
ctz I L Zacatepec Chatino
cua I L Cua
cub I L Cubeo
@@ -1609,6 +1610,7 @@
dju I L Kapriman
djw I E Djawi
dka I L Dakpakha
+dkg I L Kadung
dkk I L Dakka
dkr I L Kuijau
dks I L Southeastern Dinka
@@ -1775,6 +1777,7 @@
egl I L Emilian
ego I L Eggon
egy egy egy I A Egyptian (Ancient)
+ehs I L Miyakubo Sign Language
ehu I L Ehueun
eip I L Eipomek
eit I L Eitiep
@@ -1809,11 +1812,13 @@
emm I E Mamulique
emn I L Eman
emp I L Northern Emberá
+emq I L Eastern Minyag
ems I L Pacific Gulf Yupik
emu I L Eastern Muria
emw I L Emplawas
emx I L Erromintxela
emy I A Epigraphic Mayan
+emz I L Mbessa
ena I L Apali
enb I L Markweeta
enc I L En
@@ -1909,6 +1914,7 @@
fgr I L Fongoro
fia I L Nobiin
fie I L Fyer
+fif I L Faifi
fij fij fij fj I L Fijian
fil fil fil I L Filipino
fin fin fin fi I L Finnish
@@ -2099,6 +2105,7 @@
gie I L Gaɓogbo
gig I L Goaria
gih I L Githabul
+gii I L Girirra
gil gil gil I L Gilbertese
gim I L Gimi (Eastern Highlands)
gin I L Hinukh
@@ -2112,7 +2119,6 @@
gix I L Gilima
giy I L Giyug
giz I L South Giziga
-gji I L Geji
gjk I L Kachi Koli
gjm I E Gunditjmara
gjn I L Gonja
@@ -2126,6 +2132,7 @@
gkp I L Guinea Kpelle
gku I E ǂUngkue
gla gla gla gd I L Scottish Gaelic
+glb I L Belning
glc I L Bon Gula
gld I L Nanai
gle gle gle ga I L Irish
@@ -2306,6 +2313,7 @@
gyo I L Gyalsumdo
gyr I L Guarayu
gyy I E Gunya
+gyz I L Geji
gza I L Ganza
gzi I L Gazi
gzn I L Gane
@@ -2378,6 +2386,7 @@
hji I L Haji
hka I L Kahe
hke I L Hunde
+hkh I L Khah
hkk I L Hunjara-Kaina Ke
hkn I L Mel-Khaonh
hks I L Hong Kong Sign Language
@@ -2415,7 +2424,7 @@
hna I L Mina (Cameroon)
hnd I L Southern Hindko
hne I L Chhattisgarhi
-hng I L Hungu
+hng I L Hungu
hnh I L ǁAni
hni I L Hani
hnj I L Hmong Njua
@@ -2699,6 +2708,7 @@
jbi I E Badjiri
jbj I L Arandai
jbk I L Barikewa
+jbm I L Bijim
jbn I L Nafusi
jbo jbo jbo I C Lojban
jbr I L Jofotek-Bromnya
@@ -2729,7 +2739,7 @@
jia I L Jina
jib I L Jibu
jic I L Tol
-jid I L Bu
+jid I L Bu (Kaduna State)
jie I L Jilbe
jig I L Jingulu
jih I L sTodsde
@@ -2749,6 +2759,7 @@
jko I L Kubo
jkp I L Paku Karen
jkr I L Koro (India)
+jks I L Amami Koniya Sign Language
jku I L Labir
jle I L Ngile
jls I L Jamaican Sign Language
@@ -2783,7 +2794,7 @@
jra I L Jarai
jrb jrb jrb M L Judeo-Arabic
jrr I L Jiru
-jrt I L Jorto
+jrt I L Jakattoe
jru I L Japrería
jsl I L Japanese Sign Language
jua I L Júma
@@ -3163,7 +3174,7 @@
koa I L Konomala
koc I E Kpati
kod I L Kodi
-koe I L Kacipo-Balesi
+koe I L Kacipo-Bale Suri
kof I E Kubi
kog I L Cogui
koh I L Koyo
@@ -3727,6 +3738,7 @@
lrv I L Larevat
lrz I L Lemerig
lsa I L Lasgerdi
+lsb I L Burundian Sign Language
lsd I L Lishana Deni
lse I L Lusengo
lsh I L Lish
@@ -3790,6 +3802,7 @@
lwt I L Lewotobi
lwu I L Lawu
lww I L Lewo
+lxm I L Lakurumau
lya I L Layakha
lyg I L Lyngngam
lyn I L Luyana
@@ -4323,7 +4336,6 @@
mvi I L Miyako
mvk I L Mekmek
mvl I E Mbara (Australia)
-mvm I L Muya
mvn I L Minaveha
mvo I L Marovo
mvp I L Duri
@@ -4779,6 +4791,7 @@
nqn I L Nen
nqo nqo nqo I L N'Ko
nqq I L Kyan-Karyaw Naga
+nqt I L Nteng
nqy I L Akyaung Ari Naga
nra I L Ngom
nrb I L Nara
@@ -4939,6 +4952,7 @@
oca I L Ocaina
och I A Old Chinese
oci oci oci oc I L Occitan (post 1500)
+ocm I H Old Cham
oco I H Old Cornish
ocu I L Atzingo Matlatzinca
oda I L Odut
@@ -4968,6 +4982,7 @@
ojw I L Western Ojibwa
oka I L Okanagan
okb I L Okobo
+okc I L Kobo
okd I L Okodia
oke I L Okpe (Southwestern Edo)
okg I E Koko Babangk
@@ -4984,6 +4999,7 @@
oku I L Oku
okv I L Orokaiva
okx I L Okpe (Northwestern Edo)
+okz I H Old Khmer
ola I L Walungge
old I L Mochi
ole I L Olekha
@@ -5008,6 +5024,7 @@
omu I E Omurano
omw I L South Tairora
omx I H Old Mon
+omy I H Old Malay
ona I L Ona
onb I L Lingao
one I L Oneida
@@ -5056,6 +5073,7 @@
osa osa osa I L Osage
osc I A Oscan
osi I L Osing
+osn I H Old Sundanese
oso I L Ososo
osp I H Old Spanish
oss oss oss os I L Ossetian
@@ -5110,7 +5128,6 @@
paq I L Parya
par I L Panamint
pas I L Papasena
-pat I L Papitalai
pau pau pau I L Palauan
pav I L Pakaásnovos
paw I L Pawnee
@@ -5291,7 +5308,7 @@
pnc I L Pannei
pnd I L Mpinda
pne I L Western Penan
-png I L Pongu
+png I L Pangu
pnh I L Penrhyn
pni I L Aoheng
pnj I E Pinjarup
@@ -5643,6 +5660,7 @@
ruz I L Ruma
rwa I L Rawo
rwk I L Rwa
+rwl I L Ruwila
rwm I L Amba (Uganda)
rwo I L Rawa
rwr I L Marwari (India)
@@ -6005,6 +6023,7 @@
sqs I L Sri Lankan Sign Language
sqt I L Soqotri
squ I L Squamish
+sqx I L Kufr Qassem Sign Language (KQSL)
sra I L Saruga
srb I L Sora
src I L Logudorese Sardinian
@@ -6087,7 +6106,8 @@
suj I L Shubi
suk suk suk I L Sukuma
sun sun sun su I L Sundanese
-suq I L Suri
+suo I L Bouni
+suq I L Tirmaga-Chai Suri
sur I L Mwaghavul
sus sus sus I L Susu
sut I E Subtiaba
@@ -6333,7 +6353,6 @@
tht I L Tahltan
thu I L Thuri
thv I L Tahaggart Tamahaq
-thw I L Thudam
thy I L Tha
thz I L Tayart Tamajeq
tia I L Tidikelt Tamazight
@@ -6680,6 +6699,7 @@
tyu I L Kua
tyv tyv tyv I L Tuvinian
tyx I L Teke-Tyee
+tyy I L Tiyaa
tyz I L Tày
tza I L Tanzanian Sign Language
tzh I L Tzeltal
@@ -6763,6 +6783,7 @@
und und und S S Undetermined
une I L Uneme
ung I L Ngarinyin
+uni I L Uni
unk I L Enawené-Nawé
unm I E Unami
unn I L Kurnai
@@ -6859,16 +6880,17 @@
vis I L Vishavan
vit I L Viti
viv I L Iduna
-vka I E Kariyarra
-vki I L Ija-Zuba
+vka I E Kariyarra
vkj I L Kujarge
vkk I L Kaur
vkl I L Kulisusu
vkm I E Kamakan
+vkn I L Koro Nulu
vko I L Kodeoha
vkp I L Korlai Creole Portuguese
vkt I L Tenggarong Kutai Malay
vku I L Kurrama
+vkz I L Koro Zuba
vlp I L Valpei
vls I L Vlaams
vma I L Martuyhunira
@@ -6915,7 +6937,7 @@
waa I L Walla Walla
wab I L Wab
wac I E Wasco-Wishram
-wad I L Wandamen
+wad I L Wamesa
wae I L Walser
waf I E Wakoná
wag I L Wa'ema
@@ -7037,6 +7059,7 @@
wmc I L Wamas
wmd I L Mamaindé
wme I L Wambule
+wmg I L Western Minyag
wmh I L Waima'a
wmi I E Wamin
wmm I L Maiwa (Indonesia)
@@ -7078,7 +7101,6 @@
wow I L Wawonii
woy I E Weyto
wpc I L Maco
-wra I L Warapu
wrb I E Waluwarra
wrd I L Warduji
wrg I E Warungu
@@ -7303,10 +7325,12 @@
xng I H Middle Mongolian
xnh I L Kuanhua
xni I E Ngarigu
+xnj I L Ngoni (Tanzania)
xnk I E Nganakarti
xnm I E Ngumbarl
xnn I L Northern Kankanay
xno I H Anglo-Norman
+xnq I L Ngoni (Mozambique)
xnr I L Kangri
xns I L Kanashi
xnt I E Narragansett
@@ -7631,6 +7655,7 @@
ysd I L Samatao
ysg I L Sonaga
ysl I L Yugoslavian Sign Language
+ysm I L Myanmar Sign Language
ysn I L Sani
yso I L Nisi (China)
ysp I L Southern Lolopo
@@ -7715,6 +7740,7 @@
zbe I L East Berawan
zbl zbl zbl I C Blissymbols
zbt I L Batui
+zbu I L Bu (Bauchi State)
zbw I L West Berawan
zca I L Coatecas Altas Zapotec
zch I L Central Hongshuihe Zhuang
@@ -7741,7 +7767,7 @@
zik I L Zimakani
zil I L Zialo
zim I L Mesme
-zin I L Zinza
+zin I L Zinza
ziw I L Zigula
ziz I L Zizilivakan
zka I L Kaimbulawa
@@ -7758,6 +7784,7 @@
zku I L Kaurna
zkv I E Krevinian
zkz I H Khazar
+zla I L Zula
zlj I L Liujiang Zhuang
zlm I L Malay (individual language)
zln I L Lianshan Zhuang
diff --git a/tools/java/org/unicode/cldr/util/data/iso-639-3_Name_Index.tab b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/iso-639-3_Name_Index.tab
similarity index 98%
rename from tools/java/org/unicode/cldr/util/data/iso-639-3_Name_Index.tab
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/iso-639-3_Name_Index.tab
index ccb7344..9e73c71 100644
--- a/tools/java/org/unicode/cldr/util/data/iso-639-3_Name_Index.tab
+++ b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/iso-639-3_Name_Index.tab
@@ -344,6 +344,7 @@
aqc Archi Archi
aqd Ampari Dogon Dogon, Ampari
aqg Arigidi Arigidi
+aqk Aninka Aninka
aqm Atohwaim Atohwaim
aqn Northern Alta Alta, Northern
aqp Atakapa Atakapa
@@ -728,12 +729,10 @@
bia Badimaya Badimaya
bib Bisa Bisa
bib Bissa Bissa
-bic Bikaru Bikaru
bid Bidiyo Bidiyo
bie Bepour Bepour
bif Biafada Biafada
big Biangai Biangai
-bij Vaghat-Ya-Bijim-Legeri Vaghat-Ya-Bijim-Legeri
bik Bikol Bikol
bil Bile Bile
bim Bimoba Bimoba
@@ -806,7 +805,6 @@
bld Bolango Bolango
ble Balanta-Kentohe Balanta-Kentohe
blf Buol Buol
-blg Balau Balau
blh Kuwaa Kuwaa
bli Bolia Bolia
blj Bolongan Bolongan
@@ -905,6 +903,7 @@
boz Tiéyaxo Bozo Bozo, Tiéyaxo
bpa Daakaka Daakaka
bpd Banda-Banda Banda-Banda
+bpe Bauni Bauni
bpg Bonggo Bonggo
bph Botlikh Botlikh
bpi Bagupi Bagupi
@@ -1469,6 +1468,7 @@
cst Northern Ohlone Ohlone, Northern
csv Sumtu Chin Chin, Sumtu
csw Swampy Cree Cree, Swampy
+csx Cambodian Sign Language Cambodian Sign Language
csy Siyin Chin Chin, Siyin
csz Coos Coos
cta Tataltepec Chatino Chatino, Tataltepec
@@ -1485,6 +1485,7 @@
cts Northern Catanduanes Bikol Bikol, Northern Catanduanes
ctt Wayanad Chetti Chetti, Wayanad
ctu Chol Chol
+cty Moundadan Chetty Moundadan Chetty
ctz Zacatepec Chatino Chatino, Zacatepec
cua Cua Cua
cub Cubeo Cubeo
@@ -1683,6 +1684,7 @@
dju Kapriman Kapriman
djw Djawi Djawi
dka Dakpakha Dakpakha
+dkg Kadung Kadung
dkk Dakka Dakka
dkr Kuijau Kuijau
dks Southeastern Dinka Dinka, Southeastern
@@ -1858,6 +1860,7 @@
egl Emilian Emilian
ego Eggon Eggon
egy Egyptian (Ancient) Egyptian (Ancient)
+ehs Miyakubo Sign Language Miyakubo Sign Language
ehu Ehueun Ehueun
eip Eipomek Eipomek
eit Eitiep Eitiep
@@ -1893,11 +1896,13 @@
emm Mamulique Mamulique
emn Eman Eman
emp Northern Emberá Emberá, Northern
+emq Eastern Minyag Minyag, Eastern
ems Pacific Gulf Yupik Yupik, Pacific Gulf
emu Eastern Muria Muria, Eastern
emw Emplawas Emplawas
emx Erromintxela Erromintxela
emy Epigraphic Mayan Mayan, Epigraphic
+emz Mbessa Mbessa
ena Apali Apali
enb Markweeta Markweeta
enc En En
@@ -1994,6 +1999,7 @@
fgr Fongoro Fongoro
fia Nobiin Nobiin
fie Fyer Fyer
+fif Faifi Faifi
fij Fijian Fijian
fil Filipino Filipino
fil Pilipino Pilipino
@@ -2194,6 +2200,7 @@
gie Guébie Guébie
gig Goaria Goaria
gih Githabul Githabul
+gii Girirra Girirra
gil Gilbertese Gilbertese
gim Gimi (Eastern Highlands) Gimi (Eastern Highlands)
gin Hinukh Hinukh
@@ -2207,7 +2214,6 @@
gix Gilima Gilima
giy Giyug Giyug
giz South Giziga Giziga, South
-gji Geji Geji
gjk Kachi Koli Koli, Kachi
gjm Gunditjmara Gunditjmara
gjn Gonja Gonja
@@ -2222,6 +2228,7 @@
gku ǂUngkue ǂUngkue
gla Gaelic Gaelic
gla Scottish Gaelic Gaelic, Scottish
+glb Belning Belning
glc Bon Gula Bon Gula
gld Nanai Nanai
gle Irish Irish
@@ -2409,6 +2416,8 @@
gyo Gyalsumdo Gyalsumdo
gyr Guarayu Guarayu
gyy Gunya Gunya
+gyz Geji Geji
+gyz Gyaazi Gyaazi
gza Ganza Ganza
gzi Gazi Gazi
gzn Gane Gane
@@ -2482,6 +2491,8 @@
hji Haji Haji
hka Kahe Kahe
hke Hunde Hunde
+hkh Khah Khah
+hkh Poguli Poguli
hkk Hunjara-Kaina Ke Hunjara-Kaina Ke
hkn Mel-Khaonh Mel-Khaonh
hks Heung Kong Sau Yue Heung Kong Sau Yue
@@ -2836,6 +2847,7 @@
jbi Badjiri Badjiri
jbj Arandai Arandai
jbk Barikewa Barikewa
+jbm Bijim Bijim
jbn Nafusi Nafusi
jbo Lojban Lojban
jbr Jofotek-Bromnya Jofotek-Bromnya
@@ -2866,7 +2878,7 @@
jia Jina Jina
jib Jibu Jibu
jic Tol Tol
-jid Bu Bu
+jid Bu (Kaduna State) Bu (Kaduna State)
jie Jilbe Jilbe
jig Djingili Djingili
jig Jingulu Jingulu
@@ -2889,6 +2901,7 @@
jko Kubo Kubo
jkp Paku Karen Karen, Paku
jkr Koro (India) Koro (India)
+jks Amami Koniya Sign Language Amami Koniya Sign Language
jku Labir Labir
jle Ngile Ngile
jls Jamaican Sign Language Jamaican Sign Language
@@ -2923,7 +2936,7 @@
jra Jarai Jarai
jrb Judeo-Arabic Judeo-Arabic
jrr Jiru Jiru
-jrt Jorto Jorto
+jrt Jakattoe Jakattoe
jru Japrería Japrería
jsl Japanese Sign Language Japanese Sign Language
jua Júma Júma
@@ -3323,7 +3336,7 @@
koa Konomala Konomala
koc Kpati Kpati
kod Kodi Kodi
-koe Kacipo-Balesi Kacipo-Balesi
+koe Kacipo-Bale Suri Suri, Kacipo-Bale
kof Kubi Kubi
kog Cogui Cogui
kog Kogi Kogi
@@ -3912,6 +3925,8 @@
lrv Larevat Larevat
lrz Lemerig Lemerig
lsa Lasgerdi Lasgerdi
+lsb Burundian Sign Language Burundian Sign Language
+lsb Langue des Signes Burundaise Langue des Signes Burundaise
lsd Lishana Deni Lishana Deni
lse Lusengo Lusengo
lsh Lish Lish
@@ -3983,6 +3998,7 @@
lwt Lewotobi Lewotobi
lwu Lawu Lawu
lww Lewo Lewo
+lxm Lakurumau Lakurumau
lya Layakha Layakha
lyg Lyngngam Lyngngam
lyn Luyana Luyana
@@ -4532,7 +4548,6 @@
mvi Miyako Miyako
mvk Mekmek Mekmek
mvl Mbara (Australia) Mbara (Australia)
-mvm Muya Muya
mvn Minaveha Minaveha
mvo Marovo Marovo
mvp Duri Duri
@@ -5003,6 +5018,7 @@
nqn Nen Nen
nqo N'Ko N'Ko
nqq Kyan-Karyaw Naga Naga, Kyan-Karyaw
+nqt Nteng Nteng
nqy Akyaung Ari Naga Naga, Akyaung Ari
nra Ngom Ngom
nrb Nara Nara
@@ -5175,6 +5191,7 @@
oca Ocaina Ocaina
och Old Chinese Chinese, Old
oci Occitan (post 1500) Occitan (post 1500)
+ocm Old Cham Cham, Old
oco Old Cornish Cornish, Old
ocu Atzingo Matlatzinca Matlatzinca, Atzingo
oda Odut Odut
@@ -5204,6 +5221,7 @@
ojw Western Ojibwa Ojibwa, Western
oka Okanagan Okanagan
okb Okobo Okobo
+okc Kobo Kobo
okd Okodia Okodia
oke Okpe (Southwestern Edo) Okpe (Southwestern Edo)
okg Koko Babangk Koko Babangk
@@ -5220,6 +5238,7 @@
oku Oku Oku
okv Orokaiva Orokaiva
okx Okpe (Northwestern Edo) Okpe (Northwestern Edo)
+okz Old Khmer Khmer, Old
ola Walungge Walungge
old Mochi Mochi
ole Olekha Olekha
@@ -5244,6 +5263,7 @@
omu Omurano Omurano
omw South Tairora Tairora, South
omx Old Mon Mon, Old
+omy Old Malay Malay, Old
ona Ona Ona
onb Lingao Lingao
one Oneida Oneida
@@ -5293,6 +5313,7 @@
osa Osage Osage
osc Oscan Oscan
osi Osing Osing
+osn Old Sundanese Sundanese, Old
oso Ososo Ososo
osp Old Spanish Spanish, Old
oss Ossetian Ossetian
@@ -5352,7 +5373,6 @@
par Panamint Panamint
par Timbisha Timbisha
pas Papasena Papasena
-pat Papitalai Papitalai
pau Palauan Palauan
pav Pakaásnovos Pakaásnovos
paw Pawnee Pawnee
@@ -5538,6 +5558,7 @@
pnc Pannei Pannei
pnd Mpinda Mpinda
pne Western Penan Penan, Western
+png Pangu Pangu
png Pongu Pongu
pnh Penrhyn Penrhyn
pni Aoheng Aoheng
@@ -5908,6 +5929,7 @@
ruz Ruma Ruma
rwa Rawo Rawo
rwk Rwa Rwa
+rwl Ruwila Ruwila
rwm Amba (Uganda) Amba (Uganda)
rwo Rawa Rawa
rwr Marwari (India) Marwari (India)
@@ -6282,6 +6304,7 @@
sqs Sri Lankan Sign Language Sri Lankan Sign Language
sqt Soqotri Soqotri
squ Squamish Squamish
+sqx Kufr Qassem Sign Language (KQSL) Kufr Qassem Sign Language (KQSL)
sra Saruga Saruga
srb Sora Sora
src Logudorese Sardinian Sardinian, Logudorese
@@ -6365,7 +6388,9 @@
suj Shubi Shubi
suk Sukuma Sukuma
sun Sundanese Sundanese
+suo Bouni Bouni
suq Suri Suri
+suq Tirmaga-Chai Suri Suri, Tirmaga-Chai
sur Mwaghavul Mwaghavul
sus Susu Susu
sut Subtiaba Subtiaba
@@ -6619,7 +6644,6 @@
tht Tahltan Tahltan
thu Thuri Thuri
thv Tahaggart Tamahaq Tamahaq, Tahaggart
-thw Thudam Thudam
thy Tha Tha
thz Tayart Tamajeq Tamajeq, Tayart
tia Tidikelt Tamazight Tamazight, Tidikelt
@@ -6975,6 +6999,7 @@
tyu Kua Kua
tyv Tuvinian Tuvinian
tyx Teke-Tyee Teke-Tyee
+tyy Tiyaa Tiyaa
tyz Tày Tày
tza Tanzanian Sign Language Tanzanian Sign Language
tzh Tzeltal Tzeltal
@@ -7062,6 +7087,7 @@
und Undetermined Undetermined
une Uneme Uneme
ung Ngarinyin Ngarinyin
+uni Uni Uni
unk Enawené-Nawé Enawené-Nawé
unm Unami Unami
unn Kurnai Kurnai
@@ -7165,15 +7191,16 @@
vit Viti Viti
viv Iduna Iduna
vka Kariyarra Kariyarra
-vki Ija-Zuba Ija-Zuba
vkj Kujarge Kujarge
vkk Kaur Kaur
vkl Kulisusu Kulisusu
vkm Kamakan Kamakan
+vkn Koro Nulu Koro Nulu
vko Kodeoha Kodeoha
vkp Korlai Creole Portuguese Creole Portuguese, Korlai
vkt Tenggarong Kutai Malay Malay, Tenggarong Kutai
vku Kurrama Kurrama
+vkz Koro Zuba Koro Zuba
vlp Valpei Valpei
vls Vlaams Vlaams
vma Martuyhunira Martuyhunira
@@ -7224,7 +7251,8 @@
waa Walla Walla Walla Walla
wab Wab Wab
wac Wasco-Wishram Wasco-Wishram
-wad Wandamen Wandamen
+wad Wamesa Wamesa
+wad Wondama Wondama
wae Walser Walser
waf Wakoná Wakoná
wag Wa'ema Wa'ema
@@ -7352,6 +7380,7 @@
wmc Wamas Wamas
wmd Mamaindé Mamaindé
wme Wambule Wambule
+wmg Western Minyag Minyag, Western
wmh Waima'a Waima'a
wmi Wamin Wamin
wmm Maiwa (Indonesia) Maiwa (Indonesia)
@@ -7395,7 +7424,6 @@
wow Wawonii Wawonii
woy Weyto Weyto
wpc Maco Maco
-wra Warapu Warapu
wrb Waluwarra Waluwarra
wrb Warluwara Warluwara
wrd Warduji Warduji
@@ -7628,10 +7656,12 @@
xng Middle Mongolian Mongolian, Middle
xnh Kuanhua Kuanhua
xni Ngarigu Ngarigu
+xnj Ngoni (Tanzania) Ngoni (Tanzania)
xnk Nganakarti Nganakarti
xnm Ngumbarl Ngumbarl
xnn Northern Kankanay Kankanay, Northern
xno Anglo-Norman Anglo-Norman
+xnq Ngoni (Mozambique) Ngoni (Mozambique)
xnr Kangri Kangri
xns Kanashi Kanashi
xnt Narragansett Narragansett
@@ -7968,6 +7998,7 @@
ysd Samatao Samatao
ysg Sonaga Sonaga
ysl Yugoslavian Sign Language Yugoslavian Sign Language
+ysm Myanmar Sign Language Myanmar Sign Language
ysn Sani Sani
yso Nisi (China) Nisi (China)
ysp Southern Lolopo Lolopo, Southern
@@ -8058,6 +8089,7 @@
zbl Blissymbolics Blissymbolics
zbl Blissymbols Blissymbols
zbt Batui Batui
+zbu Bu (Bauchi State) Bu (Bauchi State)
zbw West Berawan Berawan, West
zca Coatecas Altas Zapotec Zapotec, Coatecas Altas
zch Central Hongshuihe Zhuang Zhuang, Central Hongshuihe
@@ -8102,6 +8134,7 @@
zku Kaurna Kaurna
zkv Krevinian Krevinian
zkz Khazar Khazar
+zla Zula Zula
zlj Liujiang Zhuang Zhuang, Liujiang
zlm Malay (individual language) Malay (individual language)
zln Lianshan Zhuang Zhuang, Lianshan
diff --git a/tools/java/org/unicode/cldr/util/data/iso-639-3_Retirements.tab b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/iso-639-3_Retirements.tab
similarity index 96%
rename from tools/java/org/unicode/cldr/util/data/iso-639-3_Retirements.tab
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/iso-639-3_Retirements.tab
index 1f02313..df37b16 100644
--- a/tools/java/org/unicode/cldr/util/data/iso-639-3_Retirements.tab
+++ b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/iso-639-3_Retirements.tab
@@ -113,7 +113,7 @@
aay Aariya N 2009-01-16
acc Cubulco Achí M acr 2009-01-16
cbm Yepocapa Southwestern Cakchiquel M cak 2009-01-16
-chs Chumash S Chumash is actually a family name, not a language name. Language family members already have code elements: Barbareño [boi], Cruzeño [crz], Ineseño [inz], Obispeño [obi], Purisimeño [puy], and Ventureño [veo] 2009-01-16
+chs Chumash 2009-01-16
ckc Northern Cakchiquel M cak 2009-01-16
ckd South Central Cakchiquel M cak 2009-01-16
cke Eastern Cakchiquel M cak 2009-01-16
@@ -350,4 +350,14 @@
tbb Tapeba N 2020-01-23
xrq Karranga M dmw 2020-01-23
xtz Tasmanian S Split into [xpv] Northern Tasman, [xph] North Midlands Tasman, [xpb] Northeastern Tasman, [xpd] Oyster Bay Tasmanian, [xpf] Southeast Tasma, [xpx] Southwestern Tasman, [xpw] Northwestern Tasman., [xpl] Port Sorell Tasman. and [xpz] Bruny Island Tasman. 2020-01-23
-zir Ziriya D scv 2020-01-23
\ No newline at end of file
+zir Ziriya D scv 2020-01-23
+thw Thudam M ola 2020-03-19
+bic Bikaru M bir 2021-01-15
+bij Vaghat-Ya-Bijim-Legeri S Split into Tiyaa [tyy], Bijim [jbm] and Kadung [dkg]. 2021-01-15
+blg Balau M iba 2021-01-15
+gji Geji S Split into Gyaazi [gyz], and Bu (Bauchi State) [zbu] 2021-01-15
+mvm Muya S Split into Eastern Minyag [emq] and Western Minyag [wmg] 2021-01-15
+ngo Ngoni S Split into Ngoni (Tanzania) [xnj] and Ngoni (Mozambique) [xnq] 2021-01-15
+pat Papitalai M kxr 2021-01-15
+vki Ija-Zuba S Split into Koro Nulu [vkn] and Koro Zuba [vkz] 2021-01-15
+wra Warapu S Split into Bauni [bpe], Uni [uni] and Bouni [suo] 2021-01-15
\ No newline at end of file
diff --git a/tools/java/org/unicode/cldr/util/data/iso4217raw.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/iso4217raw.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/iso4217raw.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/iso4217raw.txt
diff --git a/tools/java/org/unicode/cldr/util/data/langtagRegex.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/langtagRegex.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/langtagRegex.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/langtagRegex.txt
diff --git a/tools/java/org/unicode/cldr/util/data/langtagTest.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/langtagTest.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/langtagTest.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/langtagTest.txt
diff --git a/tools/java/org/unicode/cldr/util/data/language-subtag-registry b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/language-subtag-registry
similarity index 99%
rename from tools/java/org/unicode/cldr/util/data/language-subtag-registry
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/language-subtag-registry
index 4b6b653..22300ef 100644
--- a/tools/java/org/unicode/cldr/util/data/language-subtag-registry
+++ b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/language-subtag-registry
@@ -1,4 +1,4 @@
-File-Date: 2020-07-17
+File-Date: 2020-12-18
%%
Type: language
Subtag: aa
@@ -46892,6 +46892,14 @@
Comments: Preferred tag is hyw
%%
Type: variant
+Subtag: arkaika
+Description: Arcaicam Esperantom
+Description: Arkaika Esperanto
+Added: 2020-12-17
+Prefix: eo
+Comments: Archaic Esperanto variant devised by Manuel Halvelik
+%%
+Type: variant
Subtag: asante
Description: Asante Twi
Description: Ashanti Twi
@@ -47550,6 +47558,14 @@
"idioms" of the Romansh language.
%%
Type: variant
+Subtag: vecdruka
+Description: Latvian orthography used before 1920s ("vecā druka")
+Added: 2020-09-26
+Prefix: lv
+Comments: The subtag represents the old orthography of the Latvian
+ language used during c. 1600s–1920s.
+%%
+Type: variant
Subtag: vivaraup
Description: Vivaro-Alpine
Added: 2018-04-22
diff --git a/tools/java/org/unicode/cldr/util/data/language_list.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/language_list.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/language_list.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/language_list.txt
diff --git a/tools/java/org/unicode/cldr/util/data/language_script_raw.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/language_script_raw.txt
similarity index 99%
rename from tools/java/org/unicode/cldr/util/data/language_script_raw.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/language_script_raw.txt
index 1b963c4..c5cac2b 100644
--- a/tools/java/org/unicode/cldr/util/data/language_script_raw.txt
+++ b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/language_script_raw.txt
@@ -550,7 +550,7 @@
nan Min Nan Chinese primary Hans Simplified
nap Neapolitan primary Latn Latin
naq Nama primary Latn Latin
-nb Norwegian Bokmål primary Latn Latin
+nb Norwegian (Bokmål) primary Latn Latin
nch Central Huasteca Nahuatl primary Latn Latin
nd North Ndebele primary Latn Latin
ndc Ndau primary Latn Latin
@@ -569,6 +569,7 @@
nmg Kwasio primary Latn Latin
nn Norwegian Nynorsk primary Latn Latin
nnh Ngiemboon primary Latn Latin
+no Norwegian primary Latn Latin
nod Northern Thai primary Lana Lanna
noe Nimadi primary Deva Devanagari
nog Nogai primary Cyrl Cyrillic
diff --git a/tools/java/org/unicode/cldr/util/data/leapseconds b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/leapseconds
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/leapseconds
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/leapseconds
diff --git a/tools/java/org/unicode/cldr/util/data/localeReplacements.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/localeReplacements.txt
similarity index 99%
rename from tools/java/org/unicode/cldr/util/data/localeReplacements.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/localeReplacements.txt
index db0264b..1e2442d 100644
--- a/tools/java/org/unicode/cldr/util/data/localeReplacements.txt
+++ b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/localeReplacements.txt
@@ -40,7 +40,6 @@
language macrolanguage lvs lv
language macrolanguage mhr chm
language macrolanguage mup raj
-language legacy no nb
language deprecated no_BOKMAL nb
language deprecated no_NYNORSK nn
language macrolanguage ojg oj
diff --git a/tools/java/org/unicode/cldr/util/data/moribund_languages.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/moribund_languages.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/moribund_languages.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/moribund_languages.txt
diff --git a/tools/java/org/unicode/cldr/util/data/northamerica b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/northamerica
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/northamerica
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/northamerica
diff --git a/tools/java/org/unicode/cldr/util/data/package.html b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/package.html
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/package.html
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/package.html
diff --git a/tools/java/org/unicode/cldr/util/data/paths/missingOk.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/paths/missingOk.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/paths/missingOk.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/paths/missingOk.txt
diff --git a/tools/java/org/unicode/cldr/util/data/prettyPath.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/prettyPath.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/prettyPath.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/prettyPath.txt
diff --git a/tools/java/org/unicode/cldr/util/data/prettyPathZone.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/prettyPathZone.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/prettyPathZone.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/prettyPathZone.txt
diff --git a/tools/java/org/unicode/cldr/util/data/southamerica b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/southamerica
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/southamerica
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/southamerica
diff --git a/tools/java/org/unicode/cldr/util/data/st_sysmsg.html b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/st_sysmsg.html
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/st_sysmsg.html
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/st_sysmsg.html
diff --git a/tools/java/org/unicode/cldr/util/data/territory_codes.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/territory_codes.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/territory_codes.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/territory_codes.txt
diff --git a/tools/java/org/unicode/cldr/util/data/test/widthSpecification.xml b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/test/widthSpecification.xml
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/test/widthSpecification.xml
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/test/widthSpecification.xml
diff --git a/tools/java/org/unicode/cldr/util/data/test/widthSpecification.xsd b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/test/widthSpecification.xsd
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/test/widthSpecification.xsd
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/test/widthSpecification.xsd
diff --git a/tools/java/org/unicode/cldr/util/data/testLdml2Icu.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/testLdml2Icu.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/testLdml2Icu.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/testLdml2Icu.txt
diff --git a/tools/java/org/unicode/cldr/util/data/test_help_messages.html b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/test_help_messages.html
similarity index 99%
rename from tools/java/org/unicode/cldr/util/data/test_help_messages.html
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/test_help_messages.html
index ec5c2e5..dcd21ef 100644
--- a/tools/java/org/unicode/cldr/util/data/test_help_messages.html
+++ b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/test_help_messages.html
@@ -2993,7 +2993,7 @@
Fallbacks can take the script or region into account; the fallback
for Northern Sámi (Finland) [se-FI] might be Finnish (Finland)
[fi-FI], while the fallback for Northern Sámi [se] generally might
- be Norwegian [nb].<br>
+ be Norwegian [no].<br>
</p>
diff --git a/tools/java/org/unicode/cldr/util/data/timezoneversion.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/timezoneversion.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/timezoneversion.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/timezoneversion.txt
diff --git a/tools/java/org/unicode/cldr/util/data/tlds-alpha-by-domain.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/tlds-alpha-by-domain.txt
similarity index 98%
rename from tools/java/org/unicode/cldr/util/data/tlds-alpha-by-domain.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/tlds-alpha-by-domain.txt
index bd1ecaf..7ca59dd 100644
--- a/tools/java/org/unicode/cldr/util/data/tlds-alpha-by-domain.txt
+++ b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/tlds-alpha-by-domain.txt
@@ -1,4 +1,4 @@
-# Version 2020082200, Last Updated Sat Aug 22 07:07:01 2020 UTC
+# Version 2021021700, Last Updated Wed Feb 17 07:07:01 2021 UTC
AAA
AARP
ABARTH
@@ -224,7 +224,6 @@
CBS
CC
CD
-CEB
CENTER
CEO
CERN
@@ -613,7 +612,6 @@
INSURANCE
INSURE
INT
-INTEL
INTERNATIONAL
INTUIT
INVESTMENTS
@@ -633,7 +631,6 @@
JAGUAR
JAVA
JCB
-JCP
JE
JEEP
JETZT
@@ -749,7 +746,6 @@
LTDA
LU
LUNDBECK
-LUPIN
LUXE
LUXURY
LV
@@ -785,7 +781,6 @@
MEN
MENU
MERCKMSD
-METLIFE
MG
MH
MIAMI
@@ -1100,7 +1095,6 @@
SHOUJI
SHOW
SHOWTIME
-SHRIRAM
SI
SILK
SINA
@@ -1130,6 +1124,7 @@
SONG
SONY
SOY
+SPA
SPACE
SPORT
SPOT
@@ -1347,6 +1342,7 @@
XN--45BR5CYL
XN--45BRJ9C
XN--45Q11C
+XN--4DBRK0CE
XN--4GBRIM
XN--54B7FTA0CC
XN--55QW42G
diff --git a/tools/java/org/unicode/cldr/util/data/transforms/IPA-Deva.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/transforms/IPA-Deva.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/transforms/IPA-Deva.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/transforms/IPA-Deva.txt
diff --git a/tools/java/org/unicode/cldr/util/data/transforms/en-IPA-spellout.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/transforms/en-IPA-spellout.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/transforms/en-IPA-spellout.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/transforms/en-IPA-spellout.txt
diff --git a/tools/java/org/unicode/cldr/util/data/transforms/en-IPA.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/transforms/en-IPA.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/transforms/en-IPA.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/transforms/en-IPA.txt
diff --git a/tools/java/org/unicode/cldr/util/data/transforms/internal_English-IPA-backwards.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/transforms/internal_English-IPA-backwards.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/transforms/internal_English-IPA-backwards.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/transforms/internal_English-IPA-backwards.txt
diff --git a/tools/java/org/unicode/cldr/util/data/transforms/internal_baseEnglishToIpa.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/transforms/internal_baseEnglishToIpa.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/transforms/internal_baseEnglishToIpa.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/transforms/internal_baseEnglishToIpa.txt
diff --git a/tools/java/org/unicode/cldr/util/data/transforms/internal_fixBadIpa.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/transforms/internal_fixBadIpa.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/transforms/internal_fixBadIpa.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/transforms/internal_fixBadIpa.txt
diff --git a/tools/java/org/unicode/cldr/util/data/transforms/internal_matchIpaRules.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/transforms/internal_matchIpaRules.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/transforms/internal_matchIpaRules.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/transforms/internal_matchIpaRules.txt
diff --git a/tools/java/org/unicode/cldr/util/data/transforms/internal_overrides.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/transforms/internal_overrides.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/transforms/internal_overrides.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/transforms/internal_overrides.txt
diff --git a/tools/java/org/unicode/cldr/util/data/transforms/internal_raw_IPA-old.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/transforms/internal_raw_IPA-old.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/transforms/internal_raw_IPA-old.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/transforms/internal_raw_IPA-old.txt
diff --git a/tools/java/org/unicode/cldr/util/data/transforms/internal_raw_IPA.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/transforms/internal_raw_IPA.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/transforms/internal_raw_IPA.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/transforms/internal_raw_IPA.txt
diff --git a/tools/java/org/unicode/cldr/util/data/transforms/und-IPA.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/transforms/und-IPA.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/transforms/und-IPA.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/transforms/und-IPA.txt
diff --git a/tools/java/org/unicode/cldr/util/data/tzdb-version.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/tzdb-version.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/tzdb-version.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/tzdb-version.txt
diff --git a/tools/java/org/unicode/cldr/util/data/zone.tab b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/zone.tab
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/zone.tab
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/zone.tab
diff --git a/tools/java/org/unicode/cldr/util/package.html b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/package.html
similarity index 100%
rename from tools/java/org/unicode/cldr/util/package.html
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/package.html
diff --git a/tools/java/org/unicode/cldr/util/vettingView.css b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/vettingView.css
similarity index 100%
rename from tools/java/org/unicode/cldr/util/vettingView.css
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/vettingView.css
diff --git a/tools/java/org/unicode/cldr/util/vettingView.js b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/vettingView.js
similarity index 100%
rename from tools/java/org/unicode/cldr/util/vettingView.js
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/vettingView.js
diff --git a/tools/java/org/unicode/cldr/util/vettingViewerHead.txt b/tools/cldr-code/src/main/resources/org/unicode/cldr/util/vettingViewerHead.txt
similarity index 100%
rename from tools/java/org/unicode/cldr/util/vettingViewerHead.txt
rename to tools/cldr-code/src/main/resources/org/unicode/cldr/util/vettingViewerHead.txt
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/api/AllTests.java b/tools/cldr-code/src/test/java/org/unicode/cldr/api/AllTests.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/api/AllTests.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/api/AllTests.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/api/CldrFileDataSourceTest.java b/tools/cldr-code/src/test/java/org/unicode/cldr/api/CldrFileDataSourceTest.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/api/CldrFileDataSourceTest.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/api/CldrFileDataSourceTest.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/api/CldrPathTest.java b/tools/cldr-code/src/test/java/org/unicode/cldr/api/CldrPathTest.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/api/CldrPathTest.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/api/CldrPathTest.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/api/CldrValueTest.java b/tools/cldr-code/src/test/java/org/unicode/cldr/api/CldrValueTest.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/api/CldrValueTest.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/api/CldrValueTest.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/api/FilteredDataTest.java b/tools/cldr-code/src/test/java/org/unicode/cldr/api/FilteredDataTest.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/api/FilteredDataTest.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/api/FilteredDataTest.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/api/PathMatcherTest.java b/tools/cldr-code/src/test/java/org/unicode/cldr/api/PathMatcherTest.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/api/PathMatcherTest.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/api/PathMatcherTest.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/api/PrefixVisitorTest.java b/tools/cldr-code/src/test/java/org/unicode/cldr/api/PrefixVisitorTest.java
similarity index 71%
rename from tools/cldr-unittest/src/org/unicode/cldr/api/PrefixVisitorTest.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/api/PrefixVisitorTest.java
index 73983a6..2a2dc75 100644
--- a/tools/cldr-unittest/src/org/unicode/cldr/api/PrefixVisitorTest.java
+++ b/tools/cldr-code/src/test/java/org/unicode/cldr/api/PrefixVisitorTest.java
@@ -170,6 +170,75 @@
assertEquals("cldr path prefixes", expectedDtd, prefixes);
}
+ public void TestNestedPrefixVisitors() {
+ List<CldrValue> values = new ArrayList<>();
+ addTo(values, "//ldml/dates/fields/field[@type=\"era\"]/displayName", "era");
+ addTo(values, "//ldml/localeDisplayNames/languages/language[@type=\"fr\"]", "French");
+ addTo(values, "//ldml/localeDisplayNames/territories/territory[@type=\"CH\"]", "Switzerland");
+
+ CldrData testData = CldrDataSupplier.forValues(values);
+
+ List<String> prefixes = new ArrayList<>();
+ class SubVisitor implements PrefixVisitor {
+ private final PathMatcher matcher;
+ private final SubVisitor subVisitor;
+ private final String name;
+
+ public SubVisitor(
+ String name, PathMatcher matcher, SubVisitor subVisitor) {
+ this.matcher = matcher;
+ this.subVisitor = subVisitor;
+ this.name = name;
+ }
+
+ @Override
+ public void visitPrefixStart(CldrPath prefix, Context ctx) {
+ prefixes.add("+" + name + ": " + prefix);
+ if (subVisitor != null && matcher.matches(prefix)) {
+ // Bound sub-visitors with markers (just to test the "done function" really).
+ prefixes.add("---->");
+ ctx.install(subVisitor, v -> prefixes.add("<----"));
+ }
+ }
+
+ @Override
+ public void visitPrefixEnd(CldrPath prefix) {
+ prefixes.add("-" + name + ": " + prefix);
+ }
+ }
+
+ // These matchers are visited by the parent doing the matching and the child visitor sees
+ // everything below this point (but not the path itself).
+ PathMatcher ldml = PathMatcher.of("//ldml");
+ PathMatcher names = ldml.withSuffix("localeDisplayNames");
+ // Visitors constructed in reverse (since the child is passed into the parent).
+ SubVisitor baz = new SubVisitor("baz", null, null);
+ SubVisitor bar = new SubVisitor("bar", names, baz);
+ SubVisitor foo = new SubVisitor("foo", ldml, bar);
+
+ testData.accept(DTD, foo);
+ List<String> expectedNested = ImmutableList.of(
+ "+foo: //ldml",
+ "---->", // Everything below //ldml is visited by "bar".
+ "+bar: //ldml/localeDisplayNames",
+ "---->", // Everything below //ldml/localeDisplayNames is visited by "baz".
+ "+baz: //ldml/localeDisplayNames/languages",
+ "-baz: //ldml/localeDisplayNames/languages",
+ "+baz: //ldml/localeDisplayNames/territories",
+ "-baz: //ldml/localeDisplayNames/territories",
+ "<----", // The "done function" is called at the upwards transition of visitors.
+ "-bar: //ldml/localeDisplayNames",
+ "+bar: //ldml/dates",
+ "+bar: //ldml/dates/fields",
+ "+bar: //ldml/dates/fields/field[@type=\"era\"]",
+ "-bar: //ldml/dates/fields/field[@type=\"era\"]",
+ "-bar: //ldml/dates/fields",
+ "-bar: //ldml/dates",
+ "<----",
+ "-foo: //ldml");
+ assertEquals("cldr path prefixes", expectedNested, prefixes);
+ }
+
// Note: Just testing the test supplier, not the real suppliers (their tests are elsewhere).
public void TestParentPathsNotAllowed() {
List<CldrValue> values = new ArrayList<>();
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/api/XmlDataSourceTest.java b/tools/cldr-code/src/test/java/org/unicode/cldr/api/XmlDataSourceTest.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/api/XmlDataSourceTest.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/api/XmlDataSourceTest.java
diff --git a/tools/cldr-code/src/test/java/org/unicode/cldr/json/LdmlConvertRulesTest.java b/tools/cldr-code/src/test/java/org/unicode/cldr/json/LdmlConvertRulesTest.java
new file mode 100644
index 0000000..3922b39
--- /dev/null
+++ b/tools/cldr-code/src/test/java/org/unicode/cldr/json/LdmlConvertRulesTest.java
@@ -0,0 +1,104 @@
+package org.unicode.cldr.json;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import java.io.File;
+import java.util.Collections;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.TreeSet;
+
+import org.junit.jupiter.api.Test;
+import org.unicode.cldr.json.LdmlConvertRules.SplittableAttributeSpec;
+import org.unicode.cldr.util.CLDRConfig;
+import org.unicode.cldr.util.DtdData;
+import org.unicode.cldr.util.DtdData.Attribute;
+import org.unicode.cldr.util.DtdData.Element;
+import org.unicode.cldr.util.DtdType;
+import org.unicode.cldr.util.MatchValue;
+import org.unicode.cldr.util.Pair;
+
+import com.google.common.collect.Sets;
+import com.google.common.collect.Sets.SetView;
+
+class LdmlConvertRulesTest {
+ final File cldrDir = CLDRConfig.getInstance().getCldrBaseDirectory();
+ final DtdData dtds[] = {
+ DtdData.getInstance(DtdType.supplementalData, cldrDir),
+ DtdData.getInstance(DtdType.ldml, cldrDir)
+ };
+
+ @Test
+ void testSplittableAttributes() {
+ // collect JSON list
+ Set<Pair<String,String>> jsonSplittableAttrs = new TreeSet<>();
+ for(final SplittableAttributeSpec e : LdmlConvertRules.getSplittableAttrs()) {
+ if(e.element.equals("measurementSystem-category-temperature")) continue; // skip this deprecated item
+ jsonSplittableAttrs.add(Pair.of(e.element, e.attribute));
+ }
+
+ LdmlConvertRules.ATTR_AS_VALUE_SET.forEach(s -> {
+ final String triple[] = s.split(":");
+ jsonSplittableAttrs.add(Pair.of(triple[1],triple[2]));
+ });
+
+ // collect DTD list
+ Set<Pair<String,String>> dtdSplittableAttrs = new TreeSet<>();
+ for(final DtdData dtd: dtds) {
+ for(final Element element : dtd.getElements()) {
+ if(element.getAttributes() == null) continue; // ?
+ for(final Entry<Attribute, Integer> q : element.getAttributes().entrySet()) {
+ Attribute attr = q.getKey();
+ if(attr.matchValue != null && attr.matchValue instanceof MatchValue.SetMatchValue) {
+ boolean isSpacesepArray = LdmlConvertRules.CHILD_VALUE_IS_SPACESEP_ARRAY.contains(element.name);
+ boolean childIsSpacesepArray = LdmlConvertRules.VALUE_IS_SPACESEP_ARRAY.matcher(element.name).matches();
+ boolean attrValueIsArraySet = LdmlConvertRules.ATTRVALUE_AS_ARRAY_SET.contains(attr.name);
+
+ if(isSpacesepArray ||
+ childIsSpacesepArray ||
+ attrValueIsArraySet) {
+ jsonSplittableAttrs.add(Pair.of(element.name, attr.name));
+ }
+ dtdSplittableAttrs.add(Pair.of(element.name, attr.name));
+ }
+ }
+ }
+ }
+
+
+ // ** Add some exceptions
+
+ // Handled manually
+ jsonSplittableAttrs.add(Pair.of("defaultContent", "locales"));
+
+ // handled as calendarPreferenceData
+ jsonSplittableAttrs.add(Pair.of("calendarPreference", "ordering"));
+
+ // These aren't a set, in practice.
+ dtdSplittableAttrs.remove(Pair.of("grammaticalFeatures", "targets"));
+ dtdSplittableAttrs.remove(Pair.of("territoryAlias", "replacement"));
+ dtdSplittableAttrs.remove(Pair.of("subdivisionAlias", "replacement"));
+ dtdSplittableAttrs.remove(Pair.of("territoryAlias", "type"));
+ dtdSplittableAttrs.remove(Pair.of("deriveCompound", "feature"));
+ dtdSplittableAttrs.remove(Pair.of("deriveComponent", "feature"));
+ dtdSplittableAttrs.remove(Pair.of("deriveCompound", "structure"));
+ dtdSplittableAttrs.remove(Pair.of("deriveComponent", "structure"));
+ dtdSplittableAttrs.remove(Pair.of("deriveCompound", "value"));
+
+ //Keep these as not-a-set for compatibility
+ jsonSplittableAttrs.add(Pair.of("paradigmLocales", "locales"));
+
+
+ SetView<Pair<String, String>> onlyInDtd = Sets.difference(dtdSplittableAttrs, jsonSplittableAttrs);
+
+
+// SetView<Pair<String, String>> onlyInJson = Sets.difference(jsonSplittableAttrs, dtdSplittableAttrs);
+// if(!onlyInJson.isEmpty()) {
+// System.err.println("Only in JSON, missing from DTD (!): " + onlyInJson); // just noise
+// }
+
+ assertEquals(Collections.emptySet(), onlyInDtd, "set items missing from JSON configuration");
+
+ }
+
+}
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/CheckLanguageCodeConverter.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/CheckLanguageCodeConverter.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/CheckLanguageCodeConverter.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/CheckLanguageCodeConverter.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/CheckResult.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/CheckResult.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/CheckResult.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/CheckResult.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/CheckYear.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/CheckYear.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/CheckYear.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/CheckYear.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/DataDrivenTestHelper.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/DataDrivenTestHelper.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/DataDrivenTestHelper.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/DataDrivenTestHelper.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/ExternalUnitConversionData.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/ExternalUnitConversionData.java
similarity index 98%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/ExternalUnitConversionData.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/ExternalUnitConversionData.java
index 741106e..34d42ab 100644
--- a/tools/cldr-unittest/src/org/unicode/cldr/unittest/ExternalUnitConversionData.java
+++ b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/ExternalUnitConversionData.java
@@ -112,6 +112,9 @@
source = source.replace("inch to the fourth power", "pow4-inch");
source = source.replace("meter to the fourth power", "pow4-meter");
+ source = source.replace("Britsh", "british");
+ source = source.replace("reciprocal", "per");
+
source = replaceWhole(oldSource, source, changes);
final Matcher match = firstPart.matcher(source);
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/ForwardingIterable.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/ForwardingIterable.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/ForwardingIterable.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/ForwardingIterable.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/GenerateTransformTest.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/GenerateTransformTest.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/GenerateTransformTest.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/GenerateTransformTest.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/LanguageInfoTest.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/LanguageInfoTest.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/LanguageInfoTest.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/LanguageInfoTest.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/LanguageTest.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/LanguageTest.java
similarity index 92%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/LanguageTest.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/LanguageTest.java
index e637dc1..e0b108f 100644
--- a/tools/cldr-unittest/src/org/unicode/cldr/unittest/LanguageTest.java
+++ b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/LanguageTest.java
@@ -31,14 +31,14 @@
.getSupplementalDataInfo();
final Map<String, String> likelyMap = supplementalDataInfo
.getLikelySubtags();
- final HashMap<String, String> language2likely = new HashMap<String, String>();
- final HashMap<String, String> script2likely = new HashMap<String, String>();
+ final HashMap<String, String> language2likely = new HashMap<>();
+ final HashMap<String, String> script2likely = new HashMap<>();
{
- final HashMap<String, Map<Type, String>> language2script = new HashMap<String, Map<Type, String>>();
- final HashMap<String, Map<Type, String>> language2territory = new HashMap<String, Map<Type, String>>();
- final HashMap<String, Map<Type, String>> script2language = new HashMap<String, Map<Type, String>>();
- final HashMap<String, Map<Type, String>> script2territory = new HashMap<String, Map<Type, String>>();
- final HashSet<String> scriptSet = new HashSet<String>();
+ final HashMap<String, Map<Type, String>> language2script = new HashMap<>();
+ final HashMap<String, Map<Type, String>> language2territory = new HashMap<>();
+ final HashMap<String, Map<Type, String>> script2language = new HashMap<>();
+ final HashMap<String, Map<Type, String>> script2territory = new HashMap<>();
+ final HashSet<String> scriptSet = new HashSet<>();
for (String language : supplementalDataInfo
.getBasicLanguageDataLanguages()) {
for (BasicLanguageData basic : supplementalDataInfo
@@ -89,7 +89,7 @@
String language, final String script, Type type) {
Map<Type, String> old = hashMap.get(language);
if (old == null) {
- hashMap.put(language, old = new EnumMap<Type, String>(Type.class));
+ hashMap.put(language, old = new EnumMap<>(Type.class));
}
if (!old.containsKey(type)) {
old.put(type, script);
@@ -101,9 +101,9 @@
}
public void TestThatLanguagesHaveScript() {
- Set<String> needTransfer = new LinkedHashSet<String>();
+ Set<String> needTransfer = new LinkedHashSet<>();
LanguageTagParser parser = new LanguageTagParser();
- Map<String, Counter2<String>> scriptToLanguageCounter = new TreeMap<String, Counter2<String>>();
+ Map<String, Counter2<String>> scriptToLanguageCounter = new TreeMap<>();
for (String language : supplementalDataInfo
.getLanguagesForTerritoriesPopulationData()) {
String script = parser.set(language).getScript();
@@ -125,7 +125,7 @@
}
Counter2<String> c = scriptToLanguageCounter.get(script);
if (c == null) {
- scriptToLanguageCounter.put(script, c = new Counter2<String>());
+ scriptToLanguageCounter.put(script, c = new Counter2<>());
}
for (String territory : supplementalDataInfo
.getTerritoriesForPopulationData(language)) {
@@ -153,15 +153,17 @@
if (false)
throw new IllegalArgumentException(
" Remove Kana => Ainu, Bopo, Latn => Afar");
- Set<String> needTransfer = new LinkedHashSet<String>();
+ Set<String> needTransfer = new LinkedHashSet<>();
Set<String> unicodeScripts = getUnicodeScripts();
for (String script : unicodeScripts) {
String likely = likelyMap.get("und_" + script);
if (likely == null) {
final String data = script2likely.get(script);
if (data == null) {
- errln("Script without likely language:\t" + script + "\t"
- + getScriptName(script));
+ if (!LikelySubtagsTest.KNOWN_SCRIPTS_WITHOUT_LIKELY_SUBTAGS.contains(script)) {
+ errln("Script without likely language:\t" + script + "\t"
+ + getScriptName(script));
+ }
} else {
needTransfer.add(script);
}
@@ -211,7 +213,7 @@
}
Set<String> getUnicodeScripts() {
- Set<String> scripts = new TreeSet<String>();
+ Set<String> scripts = new TreeSet<>();
int min = UCharacter.getIntPropertyMinValue(UProperty.SCRIPT);
int max = UCharacter.getIntPropertyMaxValue(UProperty.SCRIPT);
UnicodeSet temp = new UnicodeSet();
@@ -237,7 +239,7 @@
public String getDescription(String type, String token) {
try {
- testInfo.getStandardCodes();
+ StandardCodes.make();
String name = StandardCodes.getLStreg().get(type).get(token)
.get("Description");
int pos = name.indexOf('▪');
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/LikelySubtagsTest.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/LikelySubtagsTest.java
similarity index 91%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/LikelySubtagsTest.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/LikelySubtagsTest.java
index a7e5a96..5ec6b74 100644
--- a/tools/cldr-unittest/src/org/unicode/cldr/unittest/LikelySubtagsTest.java
+++ b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/LikelySubtagsTest.java
@@ -20,6 +20,7 @@
import org.unicode.cldr.util.StandardCodes;
import org.unicode.cldr.util.SupplementalDataInfo;
+import com.google.common.collect.ImmutableSet;
import com.ibm.icu.dev.test.TestFmwk;
import com.ibm.icu.lang.UCharacter;
import com.ibm.icu.lang.UProperty;
@@ -41,13 +42,13 @@
}
static class Tags {
- final Set<String> languages = new TreeSet<String>();
- final Set<String> scripts = new TreeSet<String>();
- final Set<String> regions = new TreeSet<String>();
- final Set<String> scriptRegion = new TreeSet<String>();
- final Set<String> languageScript = new TreeSet<String>();
- final Set<String> languageRegion = new TreeSet<String>();
- final Set<String> all = new TreeSet<String>();
+ final Set<String> languages = new TreeSet<>();
+ final Set<String> scripts = new TreeSet<>();
+ final Set<String> regions = new TreeSet<>();
+ final Set<String> scriptRegion = new TreeSet<>();
+ final Set<String> languageScript = new TreeSet<>();
+ final Set<String> languageRegion = new TreeSet<>();
+ final Set<String> all = new TreeSet<>();
final ChainedMap.M4<String, String, String, Boolean> languageToScriptToRegions = ChainedMap
.of(new TreeMap<String, Object>(),
new TreeMap<String, Object>(),
@@ -79,11 +80,11 @@
languageToScriptToRegions.put(lang, firstScriptNotIn,
firstRegionNotIn, Boolean.TRUE);
// clone for safety before iterating
- for (String script : new HashSet<String>(scriptsFor)) {
+ for (String script : new HashSet<>(scriptsFor)) {
languageToScriptToRegions.put(lang, script,
firstRegionNotIn, Boolean.TRUE);
}
- for (String region : new HashSet<String>(regionsFor)) {
+ for (String region : new HashSet<>(regionsFor)) {
languageToScriptToRegions.put(lang, firstScriptNotIn,
region, Boolean.TRUE);
}
@@ -240,7 +241,7 @@
}
}
- static Set<String> exceptions = new HashSet<String>(Arrays.asList("Zyyy",
+ static Set<String> exceptions = new HashSet<>(Arrays.asList("Zyyy",
"Zinh", "Zzzz", "Brai"));
public void TestStability() {
@@ -276,7 +277,7 @@
}
public void TestForMissingScriptMetadata() {
- TreeSet<String> metadataScripts = new TreeSet<String>(
+ TreeSet<String> metadataScripts = new TreeSet<>(
ScriptMetadata.getScripts());
UnicodeSet current = new UnicodeSet(0, 0x10FFFF);
UnicodeSet toRemove = new UnicodeSet();
@@ -365,11 +366,13 @@
}
}
+ static final Set<String> KNOWN_SCRIPTS_WITHOUT_LIKELY_SUBTAGS = ImmutableSet.of("Hatr");
+
public void TestMissingInfoForScript() {
VersionInfo icuUnicodeVersion = UCharacter.getUnicodeVersion();
- TreeSet<String> sorted = new TreeSet<String>(
+ TreeSet<String> sorted = new TreeSet<>(
ScriptMetadata.getScripts());
- Set<String> exceptions2 = new HashSet<String>(
+ Set<String> exceptions2 = new HashSet<>(
Arrays.asList("zh_Hans_CN"));
for (String script : sorted) {
if (exceptions.contains(script) || script.equals("Latn")
@@ -385,15 +388,17 @@
String langScript = likelyLanguage + "_" + script + "_";
String likelyExpansion = likely.get(undScript);
if (likelyExpansion == null) {
- String msg = "Missing likely language for script (und_" + script
- + ") should be something like:\t "
- + showOverride(script, originCountry, langScript);
- if (i.age.compareTo(icuUnicodeVersion) <= 0) {
- // Error: Missing data for a script in ICU's Unicode version.
- errln(msg);
- } else {
- // Warning: Missing data for a script in a future Unicode version.
- warnln(msg);
+ if (!KNOWN_SCRIPTS_WITHOUT_LIKELY_SUBTAGS.contains(script)) {
+ String msg = "Missing likely language for script (und_" + script
+ + ") should be something like:\t "
+ + showOverride(script, originCountry, langScript);
+ if (i.age.compareTo(icuUnicodeVersion) <= 0) {
+ // Error: Missing data for a script in ICU's Unicode version.
+ errln(msg);
+ } else {
+ // Warning: Missing data for a script in a future Unicode version.
+ warnln(msg);
+ }
}
} else if (!exceptions2.contains(likelyExpansion)
&& !likelyExpansion.startsWith(langScript)) {
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/LocaleMatcherShim.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/LocaleMatcherShim.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/LocaleMatcherShim.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/LocaleMatcherShim.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/LocaleMatcherTest.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/LocaleMatcherTest.java
similarity index 95%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/LocaleMatcherTest.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/LocaleMatcherTest.java
index ecf696f..f6d4e47 100644
--- a/tools/cldr-unittest/src/org/unicode/cldr/unittest/LocaleMatcherTest.java
+++ b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/LocaleMatcherTest.java
@@ -205,7 +205,7 @@
final LocaleMatcher matcher = newLocaleMatcher("en, fil, ro, nn");
assertEquals(new ULocale("fil"), matcher.getBestMatch("tl"));
assertEquals(new ULocale("ro"), matcher.getBestMatch("mo"));
- assertEquals(new ULocale("nn"), matcher.getBestMatch("nb"));
+ assertEquals(new ULocale("nn"), matcher.getBestMatch("no"));
// make sure default works
assertEquals(new ULocale("en"), matcher.getBestMatch("ja"));
}
@@ -637,7 +637,7 @@
final LocaleMatcher matcherLong = newLocaleMatcher(
"af, am, ar, az, be, bg, bn, bs, ca, cs, cy, cy, da, de, el, en, en-GB, es, es-419, et, eu, fa, fi, fil, fr, ga, gl, gu, hi, hr, hu, hy, id, is, it, iw, ja, ka, kk, km, kn, ko, ky, lo, lt, lv, mk, ml, mn, mr, ms, my, ne, nl, no, pa, pl, pt, pt-PT, ro, ru, si, sk, sl, sq, sr, sr-Latn, sv, sw, ta, te, th, tr, uk, ur, uz, vi, zh-CN, zh-TW, zu");
final LocaleMatcher matcherVeryLong = newLocaleMatcher(
- "af, af_NA, af_ZA, agq, agq_CM, ak, ak_GH, am, am_ET, ar, ar_001, ar_AE, ar_BH, ar_DJ, ar_DZ, ar_EG, ar_EH, ar_ER, ar_IL, ar_IQ, ar_JO, ar_KM, ar_KW, ar_LB, ar_LY, ar_MA, ar_MR, ar_OM, ar_PS, ar_QA, ar_SA, ar_SD, ar_SO, ar_SS, ar_SY, ar_TD, ar_TN, ar_YE, as, as_IN, asa, asa_TZ, ast, ast_ES, az, az_Cyrl, az_Cyrl_AZ, az_Latn, az_Latn_AZ, bas, bas_CM, be, be_BY, bem, bem_ZM, bez, bez_TZ, bg, bg_BG, bm, bm_ML, bn, bn_BD, bn_IN, bo, bo_CN, bo_IN, br, br_FR, brx, brx_IN, bs, bs_Cyrl, bs_Cyrl_BA, bs_Latn, bs_Latn_BA, ca, ca_AD, ca_ES, ca_ES_VALENCIA, ca_FR, ca_IT, ce, ce_RU, cgg, cgg_UG, chr, chr_US, ckb, ckb_IQ, ckb_IR, cs, cs_CZ, cu, cu_RU, cy, cy_GB, da, da_DK, da_GL, dav, dav_KE, de, de_AT, de_BE, de_CH, de_DE, de_LI, de_LU, dje, dje_NE, dsb, dsb_DE, dua, dua_CM, dyo, dyo_SN, dz, dz_BT, ebu, ebu_KE, ee, ee_GH, ee_TG, el, el_CY, el_GR, en, en_001, en_150, en_AG, en_AI, en_AS, en_AT, en_AU, en_BB, en_BE, en_BI, en_BM, en_BS, en_BW, en_BZ, en_CA, en_CC, en_CH, en_CK, en_CM, en_CX, en_CY, en_DE, en_DG, en_DK, en_DM, en_ER, en_FI, en_FJ, en_FK, en_FM, en_GB, en_GD, en_GG, en_GH, en_GI, en_GM, en_GU, en_GY, en_HK, en_IE, en_IL, en_IM, en_IN, en_IO, en_JE, en_JM, en_KE, en_KI, en_KN, en_KY, en_LC, en_LR, en_LS, en_MG, en_MH, en_MO, en_MP, en_MS, en_MT, en_MU, en_MW, en_MY, en_NA, en_NF, en_NG, en_NL, en_NR, en_NU, en_NZ, en_PG, en_PH, en_PK, en_PN, en_PR, en_PW, en_RW, en_SB, en_SC, en_SD, en_SE, en_SG, en_SH, en_SI, en_SL, en_SS, en_SX, en_SZ, en_TC, en_TK, en_TO, en_TT, en_TV, en_TZ, en_UG, en_UM, en_US, en_US_POSIX, en_VC, en_VG, en_VI, en_VU, en_WS, en_ZA, en_ZM, en_ZW, eo, eo_001, es, es_419, es_AR, es_BO, es_CL, es_CO, es_CR, es_CU, es_DO, es_EA, es_EC, es_ES, es_GQ, es_GT, es_HN, es_IC, es_MX, es_NI, es_PA, es_PE, es_PH, es_PR, es_PY, es_SV, es_US, es_UY, es_VE, et, et_EE, eu, eu_ES, ewo, ewo_CM, fa, fa_AF, fa_IR, ff, ff_CM, ff_GN, ff_MR, ff_SN, fi, fi_FI, fil, fil_PH, fo, fo_DK, fo_FO, fr, fr_BE, fr_BF, fr_BI, fr_BJ, fr_BL, fr_CA, fr_CD, fr_CF, fr_CG, fr_CH, fr_CI, fr_CM, fr_DJ, fr_DZ, fr_FR, fr_GA, fr_GF, fr_GN, fr_GP, fr_GQ, fr_HT, fr_KM, fr_LU, fr_MA, fr_MC, fr_MF, fr_MG, fr_ML, fr_MQ, fr_MR, fr_MU, fr_NC, fr_NE, fr_PF, fr_PM, fr_RE, fr_RW, fr_SC, fr_SN, fr_SY, fr_TD, fr_TG, fr_TN, fr_VU, fr_WF, fr_YT, fur, fur_IT, fy, fy_NL, ga, ga_IE, gd, gd_GB, gl, gl_ES, gsw, gsw_CH, gsw_FR, gsw_LI, gu, gu_IN, guz, guz_KE, gv, gv_IM, ha, ha_GH, ha_NE, ha_NG, haw, haw_US, he, he_IL, hi, hi_IN, hr, hr_BA, hr_HR, hsb, hsb_DE, hu, hu_HU, hy, hy_AM, id, id_ID, ig, ig_NG, ii, ii_CN, is, is_IS, it, it_CH, it_IT, it_SM, ja, ja_JP, jgo, jgo_CM, jmc, jmc_TZ, ka, ka_GE, kab, kab_DZ, kam, kam_KE, kde, kde_TZ, kea, kea_CV, khq, khq_ML, ki, ki_KE, kk, kk_KZ, kkj, kkj_CM, kl, kl_GL, kln, kln_KE, km, km_KH, kn, kn_IN, ko, ko_KP, ko_KR, kok, kok_IN, ks, ks_IN, ksb, ksb_TZ, ksf, ksf_CM, ksh, ksh_DE, kw, kw_GB, ky, ky_KG, lag, lag_TZ, lb, lb_LU, lg, lg_UG, lkt, lkt_US, ln, ln_AO, ln_CD, ln_CF, ln_CG, lo, lo_LA, lrc, lrc_IQ, lrc_IR, lt, lt_LT, lu, lu_CD, luo, luo_KE, luy, luy_KE, lv, lv_LV, mas, mas_KE, mas_TZ, mer, mer_KE, mfe, mfe_MU, mg, mg_MG, mgh, mgh_MZ, mgo, mgo_CM, mk, mk_MK, ml, ml_IN, mn, mn_MN, mr, mr_IN, ms, ms_BN, ms_MY, ms_SG, mt, mt_MT, mua, mua_CM, my, my_MM, mzn, mzn_IR, naq, naq_NA, nb, nb_NO, nb_SJ, nd, nd_ZW, ne, ne_IN, ne_NP, nl, nl_AW, nl_BE, nl_BQ, nl_CW, nl_NL, nl_SR, nl_SX, nmg, nmg_CM, nn, nn_NO, nnh, nnh_CM, nus, nus_SS, nyn, nyn_UG, om, om_ET, om_KE, or, or_IN, os, os_GE, os_RU, pa, pa_Arab, pa_Arab_PK, pa_Guru, pa_Guru_IN, pl, pl_PL, prg, prg_001, ps, ps_AF, pt, pt_AO, pt_BR, pt_CV, pt_GW, pt_MO, pt_MZ, pt_PT, pt_ST, pt_TL, qu, qu_BO, qu_EC, qu_PE, rm, rm_CH, rn, rn_BI, ro, ro_MD, ro_RO, rof, rof_TZ, root, ru, ru_BY, ru_KG, ru_KZ, ru_MD, ru_RU, ru_UA, rw, rw_RW, rwk, rwk_TZ, sah, sah_RU, saq, saq_KE, sbp, sbp_TZ, se, se_FI, se_NO, se_SE, seh, seh_MZ, ses, ses_ML, sg, sg_CF, shi, shi_Latn, shi_Latn_MA, shi_Tfng, shi_Tfng_MA, si, si_LK, sk, sk_SK, sl, sl_SI, smn, smn_FI, sn, sn_ZW, so, so_DJ, so_ET, so_KE, so_SO, sq, sq_AL, sq_MK, sq_XK, sr, sr_Cyrl, sr_Cyrl_BA, sr_Cyrl_ME, sr_Cyrl_RS, sr_Cyrl_XK, sr_Latn, sr_Latn_BA, sr_Latn_ME, sr_Latn_RS, sr_Latn_XK, sv, sv_AX, sv_FI, sv_SE, sw, sw_CD, sw_KE, sw_TZ, sw_UG, ta, ta_IN, ta_LK, ta_MY, ta_SG, te, te_IN, teo, teo_KE, teo_UG, th, th_TH, ti, ti_ER, ti_ET, tk, tk_TM, to, to_TO, tr, tr_CY, tr_TR, twq, twq_NE, tzm, tzm_MA, ug, ug_CN, uk, uk_UA, ur, ur_IN, ur_PK, uz, uz_Arab, uz_Arab_AF, uz_Cyrl, uz_Cyrl_UZ, uz_Latn, uz_Latn_UZ, vai, vai_Latn, vai_Latn_LR, vai_Vaii, vai_Vaii_LR, vi, vi_VN, vo, vo_001, vun, vun_TZ, wae, wae_CH, xog, xog_UG, yav, yav_CM, yi, yi_001, yo, yo_BJ, yo_NG, zgh, zgh_MA, zh, zh_Hans, zh_Hans_CN, zh_Hans_HK, zh_Hans_MO, zh_Hans_SG, zh_Hant, zh_Hant_HK, zh_Hant_MO, zh_Hant_TW, zu, zu_ZA");
+ "af, af_NA, af_ZA, agq, agq_CM, ak, ak_GH, am, am_ET, ar, ar_001, ar_AE, ar_BH, ar_DJ, ar_DZ, ar_EG, ar_EH, ar_ER, ar_IL, ar_IQ, ar_JO, ar_KM, ar_KW, ar_LB, ar_LY, ar_MA, ar_MR, ar_OM, ar_PS, ar_QA, ar_SA, ar_SD, ar_SO, ar_SS, ar_SY, ar_TD, ar_TN, ar_YE, as, as_IN, asa, asa_TZ, ast, ast_ES, az, az_Cyrl, az_Cyrl_AZ, az_Latn, az_Latn_AZ, bas, bas_CM, be, be_BY, bem, bem_ZM, bez, bez_TZ, bg, bg_BG, bm, bm_ML, bn, bn_BD, bn_IN, bo, bo_CN, bo_IN, br, br_FR, brx, brx_IN, bs, bs_Cyrl, bs_Cyrl_BA, bs_Latn, bs_Latn_BA, ca, ca_AD, ca_ES, ca_ES_VALENCIA, ca_FR, ca_IT, ce, ce_RU, cgg, cgg_UG, chr, chr_US, ckb, ckb_IQ, ckb_IR, cs, cs_CZ, cu, cu_RU, cy, cy_GB, da, da_DK, da_GL, dav, dav_KE, de, de_AT, de_BE, de_CH, de_DE, de_LI, de_LU, dje, dje_NE, dsb, dsb_DE, dua, dua_CM, dyo, dyo_SN, dz, dz_BT, ebu, ebu_KE, ee, ee_GH, ee_TG, el, el_CY, el_GR, en, en_001, en_150, en_AG, en_AI, en_AS, en_AT, en_AU, en_BB, en_BE, en_BI, en_BM, en_BS, en_BW, en_BZ, en_CA, en_CC, en_CH, en_CK, en_CM, en_CX, en_CY, en_DE, en_DG, en_DK, en_DM, en_ER, en_FI, en_FJ, en_FK, en_FM, en_GB, en_GD, en_GG, en_GH, en_GI, en_GM, en_GU, en_GY, en_HK, en_IE, en_IL, en_IM, en_IN, en_IO, en_JE, en_JM, en_KE, en_KI, en_KN, en_KY, en_LC, en_LR, en_LS, en_MG, en_MH, en_MO, en_MP, en_MS, en_MT, en_MU, en_MW, en_MY, en_NA, en_NF, en_NG, en_NL, en_NR, en_NU, en_NZ, en_PG, en_PH, en_PK, en_PN, en_PR, en_PW, en_RW, en_SB, en_SC, en_SD, en_SE, en_SG, en_SH, en_SI, en_SL, en_SS, en_SX, en_SZ, en_TC, en_TK, en_TO, en_TT, en_TV, en_TZ, en_UG, en_UM, en_US, en_US_POSIX, en_VC, en_VG, en_VI, en_VU, en_WS, en_ZA, en_ZM, en_ZW, eo, eo_001, es, es_419, es_AR, es_BO, es_CL, es_CO, es_CR, es_CU, es_DO, es_EA, es_EC, es_ES, es_GQ, es_GT, es_HN, es_IC, es_MX, es_NI, es_PA, es_PE, es_PH, es_PR, es_PY, es_SV, es_US, es_UY, es_VE, et, et_EE, eu, eu_ES, ewo, ewo_CM, fa, fa_AF, fa_IR, ff, ff_CM, ff_GN, ff_MR, ff_SN, fi, fi_FI, fil, fil_PH, fo, fo_DK, fo_FO, fr, fr_BE, fr_BF, fr_BI, fr_BJ, fr_BL, fr_CA, fr_CD, fr_CF, fr_CG, fr_CH, fr_CI, fr_CM, fr_DJ, fr_DZ, fr_FR, fr_GA, fr_GF, fr_GN, fr_GP, fr_GQ, fr_HT, fr_KM, fr_LU, fr_MA, fr_MC, fr_MF, fr_MG, fr_ML, fr_MQ, fr_MR, fr_MU, fr_NC, fr_NE, fr_PF, fr_PM, fr_RE, fr_RW, fr_SC, fr_SN, fr_SY, fr_TD, fr_TG, fr_TN, fr_VU, fr_WF, fr_YT, fur, fur_IT, fy, fy_NL, ga, ga_IE, gd, gd_GB, gl, gl_ES, gsw, gsw_CH, gsw_FR, gsw_LI, gu, gu_IN, guz, guz_KE, gv, gv_IM, ha, ha_GH, ha_NE, ha_NG, haw, haw_US, he, he_IL, hi, hi_IN, hr, hr_BA, hr_HR, hsb, hsb_DE, hu, hu_HU, hy, hy_AM, id, id_ID, ig, ig_NG, ii, ii_CN, is, is_IS, it, it_CH, it_IT, it_SM, ja, ja_JP, jgo, jgo_CM, jmc, jmc_TZ, ka, ka_GE, kab, kab_DZ, kam, kam_KE, kde, kde_TZ, kea, kea_CV, khq, khq_ML, ki, ki_KE, kk, kk_KZ, kkj, kkj_CM, kl, kl_GL, kln, kln_KE, km, km_KH, kn, kn_IN, ko, ko_KP, ko_KR, kok, kok_IN, ks, ks_IN, ksb, ksb_TZ, ksf, ksf_CM, ksh, ksh_DE, kw, kw_GB, ky, ky_KG, lag, lag_TZ, lb, lb_LU, lg, lg_UG, lkt, lkt_US, ln, ln_AO, ln_CD, ln_CF, ln_CG, lo, lo_LA, lrc, lrc_IQ, lrc_IR, lt, lt_LT, lu, lu_CD, luo, luo_KE, luy, luy_KE, lv, lv_LV, mas, mas_KE, mas_TZ, mer, mer_KE, mfe, mfe_MU, mg, mg_MG, mgh, mgh_MZ, mgo, mgo_CM, mk, mk_MK, ml, ml_IN, mn, mn_MN, mr, mr_IN, ms, ms_BN, ms_MY, ms_SG, mt, mt_MT, mua, mua_CM, my, my_MM, mzn, mzn_IR, naq, naq_NA, nb, nb_NO, nb_SJ, nd, nd_ZW, ne, ne_IN, ne_NP, nl, nl_AW, nl_BE, nl_BQ, nl_CW, nl_NL, nl_SR, nl_SX, nmg, nmg_CM, nn, nn_NO, nnh, nnh_CM, no, nus, nus_SS, nyn, nyn_UG, om, om_ET, om_KE, or, or_IN, os, os_GE, os_RU, pa, pa_Arab, pa_Arab_PK, pa_Guru, pa_Guru_IN, pl, pl_PL, prg, prg_001, ps, ps_AF, pt, pt_AO, pt_BR, pt_CV, pt_GW, pt_MO, pt_MZ, pt_PT, pt_ST, pt_TL, qu, qu_BO, qu_EC, qu_PE, rm, rm_CH, rn, rn_BI, ro, ro_MD, ro_RO, rof, rof_TZ, root, ru, ru_BY, ru_KG, ru_KZ, ru_MD, ru_RU, ru_UA, rw, rw_RW, rwk, rwk_TZ, sah, sah_RU, saq, saq_KE, sbp, sbp_TZ, se, se_FI, se_NO, se_SE, seh, seh_MZ, ses, ses_ML, sg, sg_CF, shi, shi_Latn, shi_Latn_MA, shi_Tfng, shi_Tfng_MA, si, si_LK, sk, sk_SK, sl, sl_SI, smn, smn_FI, sn, sn_ZW, so, so_DJ, so_ET, so_KE, so_SO, sq, sq_AL, sq_MK, sq_XK, sr, sr_Cyrl, sr_Cyrl_BA, sr_Cyrl_ME, sr_Cyrl_RS, sr_Cyrl_XK, sr_Latn, sr_Latn_BA, sr_Latn_ME, sr_Latn_RS, sr_Latn_XK, sv, sv_AX, sv_FI, sv_SE, sw, sw_CD, sw_KE, sw_TZ, sw_UG, ta, ta_IN, ta_LK, ta_MY, ta_SG, te, te_IN, teo, teo_KE, teo_UG, th, th_TH, ti, ti_ER, ti_ET, tk, tk_TM, to, to_TO, tr, tr_CY, tr_TR, twq, twq_NE, tzm, tzm_MA, ug, ug_CN, uk, uk_UA, ur, ur_IN, ur_PK, uz, uz_Arab, uz_Arab_AF, uz_Cyrl, uz_Cyrl_UZ, uz_Latn, uz_Latn_UZ, vai, vai_Latn, vai_Latn_LR, vai_Vaii, vai_Vaii_LR, vi, vi_VN, vo, vo_001, vun, vun_TZ, wae, wae_CH, xog, xog_UG, yav, yav_CM, yi, yi_001, yo, yo_BJ, yo_NG, zgh, zgh_MA, zh, zh_Hans, zh_Hans_CN, zh_Hans_HK, zh_Hans_MO, zh_Hans_SG, zh_Hant, zh_Hant_HK, zh_Hant_MO, zh_Hant_TW, zu, zu_ZA");
//LocaleMatcher.DEBUG = true;
ULocale expected = new ULocale("sv");
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/NistUnits.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/NistUnits.java
similarity index 78%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/NistUnits.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/NistUnits.java
index cdd3c6b..28e5d46 100644
--- a/tools/cldr-unittest/src/org/unicode/cldr/unittest/NistUnits.java
+++ b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/NistUnits.java
@@ -31,6 +31,8 @@
import com.ibm.icu.util.ICUUncheckedIOException;
final class NistUnits {
+ private static final boolean DEBUG = false;
+
final static Multimap<String,String> unitToQuantity;
final static Map<String, TargetInfo> derivedUnitToConversion;
final static List<ExternalUnitConversionData> externalConversionData;
@@ -54,7 +56,7 @@
String quantity = null;
try (Stream<String> s = in.lines()) {
for (String line : (Iterable<String>) s::iterator) {
- if (line.startsWith("#")
+ if (line.startsWith("#")
|| line.equals("To convert from\tto\tMultiply by")
|| line.startsWith("degree Fahrenheit hour square foot per British thermal unitth inch") // bad NIST data
) {
@@ -62,15 +64,15 @@
}
List<String> parts = SPLIT_TABS.splitToList(line);
switch(parts.size()) {
- case 1:
+ case 1:
quantity = parts.get(0);
break;
- case 4:
+ case 4:
Rational factor = Rational.of((parts.get(2) + parts.get(3)).replace(" ", ""));
ExternalUnitConversionData data = new ExternalUnitConversionData(quantity, parts.get(0), parts.get(1), factor, line, _idChanges);
_externalConversionData.add(data);
break;
- default:
+ default:
_skipping.add(line);
}
}
@@ -109,36 +111,36 @@
}
List<String> parts = SPLIT_TABS.splitToList(line);
// #Quantity Special Name Special symbol Expression in terms of other SI units Expression in terms of SI base units
-
+
String quantity = parts.get(0);
List<String> quantities = SPLIT_COMMAS.splitToList(quantity).stream()
.map(x -> SPLIT_PARENS.split(parts.get(0)).iterator().next())
.collect(Collectors.toList());
quantity = Joiner.on(", ").join(quantities);
-
+
String name = SPLIT_PARENS.split(parts.get(1)).iterator().next();
if (name.equals("degree Celsius")) {
name = "celsius";
}
-
+
String symbol = parts.get(2);
String expressionInOtherSymbols = parts.get(4);
String expressionInBaseSymbols = parts.get(4);
_symbolToUnit.put(symbol, name);
_unitToQuantity.putAll(name, quantities);
-
+
final String targetUnit = getUnitFromSymbols(expressionInBaseSymbols, _symbolToUnit);
unitToTargetInfo.put(name, new TargetInfo(targetUnit, new ConversionInfo(Rational.ONE, Rational.ZERO), Collections.emptyMap()));
-
+
ExternalUnitConversionData data = new ExternalUnitConversionData(quantity, name, targetUnit, Rational.ONE, line, _idChanges);
_externalConversionData.add(data);
}
}
}
-
+
// Protect everything
-
+
skipping = ImmutableSet.copyOf(_skipping);
idChanges = ImmutableMultimap.copyOf(_idChanges);
externalConversionData = ImmutableList.copyOf(_externalConversionData);
@@ -150,43 +152,49 @@
}
public static String getUnitFromSymbols(String expressionInBaseSymbols, Map<String, String> symbolToUnit) {
- // handle the irregualar formats
+ String result;
+ // handle the irregular formats
if (expressionInBaseSymbols.equals("m/m")) {
- return "meter-per-meter";
+ result = "meter-per-meter";
} else if (expressionInBaseSymbols.equals("m2/m2")) {
- return "square-meter-per-square-meter";
- }
- // m2 · kg · s-3 · A-1
- StringBuilder numerator = new StringBuilder();
- StringBuilder denominator = new StringBuilder();
- for (String part : SPLIT_MIDDOT.split(expressionInBaseSymbols)) {
- final Matcher parts = flatExponent.matcher(part);
- if (!parts.matches()) {
- throw new IllegalArgumentException("bad symbol: " + part);
- }
- String unit = symbolToUnit.get(parts.group(1));
- String pow = null;
- int power = 0;
- final String exponent = parts.group(2);
- if (exponent != null) {
- power = Integer.parseInt(exponent);
- switch(Math.abs(power)) {
- case 0: case 1: break;// skip
- case 2: pow = "square-"; break;
- case 3: pow = "cubic-"; break;
- default: pow = "pow" + Math.abs(power) + "-"; break;
+ result = "square-meter-per-square-meter";
+ } else {
+ // m2 · kg · s-3 · A-1
+ StringBuilder numerator = new StringBuilder();
+ StringBuilder denominator = new StringBuilder();
+ for (String part : SPLIT_MIDDOT.split(expressionInBaseSymbols)) {
+ final Matcher parts = flatExponent.matcher(part);
+ if (!parts.matches()) {
+ throw new IllegalArgumentException("bad symbol: " + part);
}
+ String unit = symbolToUnit.get(parts.group(1));
+ String pow = null;
+ int power = 0;
+ final String exponent = parts.group(2);
+ if (exponent != null) {
+ power = Integer.parseInt(exponent);
+ switch(Math.abs(power)) {
+ case 0: case 1: break;// skip
+ case 2: pow = "square-"; break;
+ case 3: pow = "cubic-"; break;
+ default: pow = "pow" + Math.abs(power) + "-"; break;
+ }
+ }
+ StringBuilder target = power >= 0 ? numerator : denominator;
+ if (target.length() != 0) {
+ target.append('-');
+ }
+ if (pow != null) {
+ target.append(pow);
+ }
+ target.append(unit);
}
- StringBuilder target = power >= 0 ? numerator : denominator;
- if (target.length() != 0) {
- target.append('-');
- }
- if (pow != null) {
- target.append(pow);
- }
- target.append(unit);
+ result = (numerator.length() == 0 ? "" : numerator)
+ + (denominator.length() == 0 ? "" :
+ (numerator.length() == 0 ? "per-" : "-per-") + denominator);
}
- return (numerator.length() == 0 ? "1" : numerator) + (denominator.length() == 0 ? "" : "-per-" + denominator);
+ if (DEBUG) System.out.println(expressionInBaseSymbols + " => " + result);
+ return result;
}
}
\ No newline at end of file
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/NumberingSystemsTest.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/NumberingSystemsTest.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/NumberingSystemsTest.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/NumberingSystemsTest.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/ObjectMatcherFactory.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/ObjectMatcherFactory.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/ObjectMatcherFactory.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/ObjectMatcherFactory.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/RegexTransform.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/RegexTransform.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/RegexTransform.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/RegexTransform.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/SimpleHtmlParserTest.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/SimpleHtmlParserTest.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/SimpleHtmlParserTest.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/SimpleHtmlParserTest.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/StandardCodesTest.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/StandardCodesTest.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/StandardCodesTest.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/StandardCodesTest.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestAliases.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestAliases.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestAliases.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestAliases.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestAll.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestAll.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestAll.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestAll.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestAlt.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestAlt.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestAlt.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestAlt.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestAnnotations.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestAnnotations.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestAnnotations.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestAnnotations.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestAttributeValues.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestAttributeValues.java
similarity index 96%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestAttributeValues.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestAttributeValues.java
index 5b240a5..ab07899 100644
--- a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestAttributeValues.java
+++ b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestAttributeValues.java
@@ -1,11 +1,8 @@
package org.unicode.cldr.unittest;
-import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.nio.charset.Charset;
import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedHashSet;
@@ -46,7 +43,6 @@
import org.unicode.cldr.util.StandardCodes;
import org.unicode.cldr.util.StandardCodes.LstrField;
import org.unicode.cldr.util.StandardCodes.LstrType;
-import org.unicode.cldr.util.StripUTF8BOMInputStream;
import org.unicode.cldr.util.SupplementalDataInfo.AttributeValidityInfo;
import org.unicode.cldr.util.Validity;
import org.unicode.cldr.util.XPathParts;
@@ -167,21 +163,19 @@
int _elementCount = 0;
int _attributeCount = 0;
+ String lastElement = null;
try {
- // should convert these over to new io.
- try (InputStream fis0 = new FileInputStream(fullFile);
- InputStream fis = new StripUTF8BOMInputStream(fis0);
- InputStreamReader inputStreamReader = new InputStreamReader(fis, Charset.forName("UTF-8"));
- BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
- ) {
- XMLStreamReader r = f.createXMLStreamReader(fullFile, bufferedReader);
+ XMLStreamReader r = null;
+ try (InputStream fis = new FileInputStream(fullFile)) {
+ r = f.createXMLStreamReader(fullFile, fis);
String element = null;
while(r.hasNext()) {
try {
switch(r.next()){
case XMLStreamConstants.START_ELEMENT:
element = r.getLocalName();
+ lastElement = element;
++_elementCount;
int attributeSize = r.getAttributeCount();
for (int i = 0; i < attributeSize; ++i) {
@@ -206,8 +200,12 @@
} else {
throw (IllegalArgumentException) new IllegalArgumentException("Can't read " + fullFile).initCause(e);
}
+ } catch (Throwable e) {
+ if(r == null) throw e;
+ throw (IllegalArgumentException) new IllegalArgumentException(" at " + r.getLocation()).initCause(e);
}
} catch (Exception e) {
+ System.err.println("Exception occured in " + fullFile + " after parsing " + lastElement);
throw new ICUException(fullFile, e);
}
pathChecker.elementCount.addAndGet(_elementCount);
@@ -285,7 +283,7 @@
}
if (set.putIfAbsent(attrValue, Boolean.TRUE) != null) {
return;
- };
+ }
// get the status & store
ValueStatus valueStatus = dtdData.getValueStatus(element, attribute, attrValue);
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestBCP47.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestBCP47.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestBCP47.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestBCP47.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestBNF.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestBNF.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestBNF.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestBNF.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestBagFormatter.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestBagFormatter.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestBagFormatter.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestBagFormatter.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestBasic.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestBasic.java
similarity index 99%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestBasic.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestBasic.java
index b802e57..f99a9c4 100644
--- a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestBasic.java
+++ b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestBasic.java
@@ -51,6 +51,7 @@
import org.unicode.cldr.util.Pair;
import org.unicode.cldr.util.PathHeader;
import org.unicode.cldr.util.PathUtilities;
+import org.unicode.cldr.util.StandardCodes;
import org.unicode.cldr.util.SupplementalDataInfo;
import org.unicode.cldr.util.SupplementalDataInfo.PluralInfo;
import org.unicode.cldr.util.SupplementalDataInfo.PluralType;
@@ -128,7 +129,7 @@
private final ImmutableSet<String> eightPointLocales = ImmutableSet.of(
"ar", "ca", "cs", "da", "de", "el", "es", "fi", "fr", "he", "hi", "hr", "hu", "id",
- "it", "ja", "ko", "lt", "lv", "nb", "nl", "pl", "pt", "pt_PT", "ro", "ru", "sk", "sl", "sr", "sv",
+ "it", "ja", "ko", "lt", "lv", "nl", "no", "pl", "pt", "pt_PT", "ro", "ru", "sk", "sl", "sr", "sv",
"th", "tr", "uk", "vi", "zh", "zh_Hant");
// private final boolean showForceZoom = Utility.getProperty("forcezoom",
@@ -372,7 +373,7 @@
public void TestCurrencyFallback() {
Factory cldrFactory = testInfo.getCldrFactory();
- Set<String> currencies = testInfo.getStandardCodes().getAvailableCodes(
+ Set<String> currencies = StandardCodes.make().getAvailableCodes(
"currency");
final UnicodeSet CHARACTERS_THAT_SHOULD_HAVE_FALLBACKS = new UnicodeSet(
@@ -805,7 +806,7 @@
String localeParent = LocaleIDParser.getParent(locale);
String maxLocaleParent = LikelySubtags.maximize(localeParent,
likelyData);
- if (locale.equals("ar_001")) {
+ if (locale.equals("ar_001") || locale.equals("nb")) {
logln("Known exception to likelyMax(locale=" + locale + ")"
+ " == " + "likelyMax(defaultContent=" + localeParent
+ ")");
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestBcp47Numbers.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestBcp47Numbers.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestBcp47Numbers.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestBcp47Numbers.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestBcp47Transforms.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestBcp47Transforms.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestBcp47Transforms.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestBcp47Transforms.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCLDRFile.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCLDRFile.java
similarity index 98%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCLDRFile.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCLDRFile.java
index 3e6fdd8..43596c6 100644
--- a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCLDRFile.java
+++ b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCLDRFile.java
@@ -299,8 +299,16 @@
|| path.contains("[@alt=\"formal\"]")
|| (path.contains("dayPeriod[@type=")
&& (path.endsWith("1\"]") || path.endsWith("\"am\"]") || path.endsWith("\"pm\"]") || path.endsWith("\"midnight\"]"))) // morning1, afternoon1, ...
- || (path.startsWith("//ldml/characters/exemplarCharacters[@type=\"index\"]")
- && localeInfo.locale.equals("root"))
+ || (localeInfo.locale.equals("root") &&
+ (path.startsWith("//ldml/characters/exemplarCharacters[@type=\"index\"]")
+ || (path.startsWith("//ldml/units/unitLength") // two aliased paths in root
+ && (path.contains("[@type=\"energy-foodcalorie")
+ || path.contains("[@type=\"graphics-dot"
+ )
+ )
+ )
+ )
+ )
// //ldml/characters/exemplarCharacters[@type="index"][root]
) {
continue;
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCLDRLocaleCoverage.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCLDRLocaleCoverage.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCLDRLocaleCoverage.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCLDRLocaleCoverage.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCLDRUtils.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCLDRUtils.java
similarity index 97%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCLDRUtils.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCLDRUtils.java
index b285fa7..3e9ec82 100644
--- a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCLDRUtils.java
+++ b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCLDRUtils.java
@@ -57,7 +57,7 @@
checkNames(english, "en_GB", "British English", "UK English",
"English (United Kingdom)", "English (UK)");
- checkNames(english, "eo_001", "Esperanto (World)");
+ checkNames(english, "eo_001", "Esperanto (world)");
checkNames(english, "el_POLYTON", "Greek (Polytonic)");
@@ -68,7 +68,7 @@
.make("fr", true);
checkNames(french, "en_US_POSIX", "anglais américain (informatique)",
- "anglais [É.-U.] (informatique)",
+ "anglais américain (informatique)", // or "anglais (É.-U., informatique)" if short has priority over dialect
"anglais (États-Unis, informatique)",
"anglais (É.-U., informatique)");
}
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCanonicalIds.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCanonicalIds.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCanonicalIds.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCanonicalIds.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCasingInfo.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCasingInfo.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCasingInfo.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCasingInfo.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCheckCLDR.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCheckCLDR.java
similarity index 99%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCheckCLDR.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCheckCLDR.java
index a31014b..e4ae6f0 100644
--- a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCheckCLDR.java
+++ b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCheckCLDR.java
@@ -71,7 +71,7 @@
public class TestCheckCLDR extends TestFmwk {
static CLDRConfig testInfo = CLDRConfig.getInstance();
private final Set<String> eightPointLocales = new TreeSet<>(
- Arrays.asList("ar ca cs da de el es fi fr he hi hr hu id it ja ko lt lv nb nl pl pt pt_PT ro ru sk sl sr sv th tr uk vi zh zh_Hant".split(" ")));
+ Arrays.asList("ar ca cs da de el es fi fr he hi hr hu id it ja ko lt lv nl no pl pt pt_PT ro ru sk sl sr sv th tr uk vi zh zh_Hant".split(" ")));
public static void main(String[] args) {
new TestCheckCLDR().run(args);
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCheckDisplayCollisions.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCheckDisplayCollisions.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCheckDisplayCollisions.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCheckDisplayCollisions.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCheckNumbers.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCheckNumbers.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCheckNumbers.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCheckNumbers.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCheckWidths.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCheckWidths.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCheckWidths.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCheckWidths.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCldrFactory.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCldrFactory.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCldrFactory.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCldrFactory.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCldrFileWrite.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCldrFileWrite.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCldrFileWrite.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCldrFileWrite.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCldrResolver.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCldrResolver.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCldrResolver.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCldrResolver.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCollationMapMaker.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCollationMapMaker.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCollationMapMaker.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCollationMapMaker.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCollationStringByteConverter.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCollationStringByteConverter.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCollationStringByteConverter.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCollationStringByteConverter.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCollators.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCollators.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCollators.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCollators.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCompactNumbers.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCompactNumbers.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCompactNumbers.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCompactNumbers.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestComparisonBuilder.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestComparisonBuilder.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestComparisonBuilder.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestComparisonBuilder.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCompatibility.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCompatibility.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCompatibility.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCompatibility.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCoverage.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCoverage.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCoverage.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCoverage.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCoverageLevel.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCoverageLevel.java
similarity index 99%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCoverageLevel.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCoverageLevel.java
index 50b8890..5e4bc39 100644
--- a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCoverageLevel.java
+++ b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestCoverageLevel.java
@@ -62,7 +62,7 @@
public class TestCoverageLevel extends TestFmwkPlus {
private static CLDRConfig testInfo = CLDRConfig.getInstance();
- private static final StandardCodes STANDARD_CODES = testInfo.getStandardCodes();
+ private static final StandardCodes STANDARD_CODES = StandardCodes.make();
private static final CLDRFile ENGLISH = testInfo.getEnglish();
private static final SupplementalDataInfo SDI = testInfo.getSupplementalDataInfo();
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestDTDAttributes.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestDTDAttributes.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestDTDAttributes.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestDTDAttributes.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestDateOrder.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestDateOrder.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestDateOrder.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestDateOrder.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestDayPeriods.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestDayPeriods.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestDayPeriods.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestDayPeriods.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestDisplayAndInputProcessor.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestDisplayAndInputProcessor.java
similarity index 77%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestDisplayAndInputProcessor.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestDisplayAndInputProcessor.java
index 282f500..2b1b621 100644
--- a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestDisplayAndInputProcessor.java
+++ b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestDisplayAndInputProcessor.java
@@ -3,6 +3,7 @@
import java.util.Set;
import org.unicode.cldr.test.DisplayAndInputProcessor;
+import org.unicode.cldr.test.DisplayAndInputProcessor.PathSpaceType;
import org.unicode.cldr.util.CLDRConfig;
import org.unicode.cldr.util.CLDRFile;
import org.unicode.cldr.util.CLDRFile.ExemplarType;
@@ -34,7 +35,7 @@
DisplayAndInputProcessor daip = new DisplayAndInputProcessor(info.getEnglish(), true);
Exception[] internalException = new Exception[1];
- for (String s : new UnicodeSet("[!-#%-\\]_a-~¡§ª-¬±-³ µ-·¹-þ؉٠-٬۰-۹०-९০-৯੦-੯ ૦-૯୦-୯௦-௯౦-౯೦-೯൦-൯༠-༩ ၀-၉\\\\’‰−〇一七三九二五八六四]")) {
+ for (String s : new UnicodeSet("[!-#%-\\\\_a-~¡§ª-¬±-³ ¶·¹-þ؉٠-٬۰-۹०-९০-৯੦-੯ ૦-૯୦-୯௦-௯౦-౯೦-೯൦-൯༠-༩ ၀-၉’‰−〇一七三九二五八六四]")) {
if (s.contentEquals("-")) {
continue; // special case because of non-breaking processing
}
@@ -281,11 +282,11 @@
final String xpath_a = "//ldml/localeDisplayNames/types/type[@type=\"hant\"][@key=\"numbers\"]";
final String TEST_DATA[] = {
xpath_a, // xpath
- "{0} 𞤸𞤭𞤼𞤢𞥄𞤲'𞤣𞤫", // src
+ "{0} 𞤸𞤭𞤼𞤢𞥄𞤲'𞤣𞤫", // src
"{0} 𞤸𞤭𞤼𞤢𞥄𞤲"+DisplayAndInputProcessor.ADLAM_NASALIZATION+"𞤣𞤫", // dst
xpath_a, // xpath
- "𞤐‘𞤄𞤵𞥅𞤯𞤭", // src
+ "𞤐‘𞤄𞤵𞥅𞤯𞤭", // src
"𞤐"+DisplayAndInputProcessor.ADLAM_NASALIZATION+"𞤄𞤵𞥅𞤯𞤭", // dst
xpath_a,
@@ -392,4 +393,84 @@
String value = daip.processInput(xpath, "\btest\bTEST\b", null);
assertEquals("Backspaces are filtered out", "testTEST", value);
}
+
+ /**
+ * Test whether DisplayAndInputProcessor.processInput normalizes whitespace.
+ * This depends very much on the xpath, since for most xpaths NBSP is normalized to
+ * ordinary space which, if initial or final, is then removed by trim(). But for some
+ * xpaths, NBSP is retained and then the standard trim() function doesn't apply.
++ *
++ * Each of the 3 types of paths, and for each, samples with
++ * A0 20
++ * 20 A0
++ * 20 A0 20
++ * 20 20
+ */
+ public void TestWhitespaceNormalization() {
+ DisplayAndInputProcessor daip = new DisplayAndInputProcessor(info.getEnglish(), false);
+ PathSpaceData[] a = PathSpaceData.getArray();
+ for (int i = 0; i < a.length; i++) {
+ PathSpaceType pst = PathSpaceType.get(a[i].xpath);
+ assertEquals("Path has expected type for i = " + i, a[i].pst, pst);
+ String val = daip.processInput(a[i].xpath, a[i].rawValue, null);
+ assertEquals("Whitespace is normalized for i = " + i, a[i].normValue, val);
+ }
+ }
+
+ private static class PathSpaceData {
+ private String xpath;
+ private String rawValue, normValue;
+ private PathSpaceType pst;
+
+ public PathSpaceData(String xpath, String rawValue, String normValue, PathSpaceType pst) {
+ this.xpath = xpath;
+ this.rawValue = rawValue;
+ this.normValue = normValue;
+ this.pst = pst;
+ }
+
+ public static PathSpaceData[] getArray() {
+ PathSpaceData[] a = {
+ new PathSpaceData("//ldml/localeDisplayNames/types/type",
+ " \u00A0 TEST \u00A0 ", "TEST", PathSpaceType.allowSp),
+ new PathSpaceData("//ldml/localeDisplayNames/languages/language[@type=\"ab\"]",
+ "\u00A0 FOO \u00A0\u00A0 BAR \u00A0", "FOO BAR", PathSpaceType.allowSp),
+ new PathSpaceData("//ldml/dates/calendars/calendar[@type=\"generic\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"Bh\"]",
+ "\u00A0 DUCK \u00A0 GOOSE \u00A0", "DUCK GOOSE", PathSpaceType.allowSp),
+
+ new PathSpaceData("//ldml/numbers/currencies/currency/group",
+ " \u00A0 ፊደል \u00A0 ", "ፊደል", PathSpaceType.allowNbsp),
+ new PathSpaceData("//ldml/numbers/currencyFormats/currencySpacing/beforeCurrency/insertBetween",
+ "\u00A0 ding \u00A0\u00A0 dong \u00A0", "ding\u00A0dong", PathSpaceType.allowNbsp),
+ new PathSpaceData("//ldml/numbers/symbols/nan",
+ "\u00A0 HA HU \u00A0", "HA\u00A0HU", PathSpaceType.allowNbsp),
+
+ new PathSpaceData("//ldml/numbers/symbols[@numberSystem=\"telu\"]/approximatelySign",
+ " \u00A0 试 \u00A0 ", "试", PathSpaceType.allowSpOrNbsp),
+ new PathSpaceData(
+ "//ldml/dates/calendars/calendar[@type=\"hebrew\"]/dateTimeFormats/intervalFormats/intervalFormatItem[@id=\"yMMMM\"]/greatestDifference[@id=\"M\"]",
+ "\u00A0 X \u00A0 Y \u00A0", "X\u00A0Y", PathSpaceType.allowSpOrNbsp),
+ new PathSpaceData(
+ "//ldml/dates/calendars/calendar[@type=\"islamic-civil\"]/dateTimeFormats/intervalFormats/intervalFormatItem[@id=\"MEd\"]/greatestDifference[@id=\"M\"]",
+ "\u00A0 Marvin Gaye \u00A0", "Marvin Gaye", PathSpaceType.allowSpOrNbsp),
+ new PathSpaceData(
+ "//ldml/dates/calendars/calendar[@type=\"islamic-civil\"]/dateTimeFormats/intervalFormats/intervalFormatItem[@id=\"MEd\"]/greatestDifference[@id=\"M\"]",
+ "〖\u00A0\u00A0〗", "〖\u00A0〗", PathSpaceType.allowSpOrNbsp),
+ /*
+ * The following path is an exception in which regular space is changed to NBSP
+ * in spite of the path being allowSpOrNbsp; see comment "fix grouping separator if space"
+ */
+ new PathSpaceData("//ldml/numbers/symbols[@numberSystem=\"telu\"]/approximatelySign",
+ "\u00A0 P Q \u00A0", "P\u00A0Q", PathSpaceType.allowSpOrNbsp),
+ /*
+ * The following path is an exception in which NBSP is changed to regular space
+ * in spite of the path being allowSpOrNbsp; see DisplayAndInputProcessor.annotationsForDisplay
+ */
+ new PathSpaceData("//ldml/annotations/annotation[@cp=\"🍊\"]",
+ "\u00A0 fruit | orange | \u00A0 tangerine \u00A0", "fruit | orange | tangerine",
+ PathSpaceType.allowSpOrNbsp),
+ };
+ return a;
+ }
+ }
}
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestDtdData.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestDtdData.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestDtdData.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestDtdData.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestExampleDependencies.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestExampleDependencies.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestExampleDependencies.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestExampleDependencies.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestExampleGenerator.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestExampleGenerator.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestExampleGenerator.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestExampleGenerator.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestExternalCodeAPIs.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestExternalCodeAPIs.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestExternalCodeAPIs.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestExternalCodeAPIs.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestFactory.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestFactory.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestFactory.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestFactory.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestFallbackIterator.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestFallbackIterator.java
similarity index 91%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestFallbackIterator.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestFallbackIterator.java
index 1d2dfa9..4805dda 100644
--- a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestFallbackIterator.java
+++ b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestFallbackIterator.java
@@ -27,11 +27,10 @@
"zh-US-foobar, zh-Hans-US-foobar, zh-Hans-US, zh-Hans, zh",
"zh-foobar-variant, zh-foobar, zh",
"en-Latn-US-foobar, en-Latn-US, en-Latn, en",
- "no-NO, nb-NO, nb, no",
- "nb-NO, no-NO, nb, no",
- "no-bok, nb, no", // note, "nb-bok" is not legal, but doesn't
- // hurt
- "no-YU, nb-CS, no-CS, nb-YU, nb, no",
+ "no-NO, no",
+ "nb-NO, nb",
+ "no-bok, nb", // note, "nb-bok" is not legal, but doesn't hurt
+ "no-YU, no-CS, no",
"sh-CS, sh-YU, sr-Latn-CS, sr-Latn-YU, sr-Latn, sr",
"sh-Cyrl-CS, sh-Cyrl-YU, sr-Cyrl-CS, sr-Cyrl-YU, sr-Cyrl, sr",
"cmn, zh", "zh-cmn, zh",
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestFmwkPlus.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestFmwkPlus.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestFmwkPlus.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestFmwkPlus.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestIdentifierInfo.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestIdentifierInfo.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestIdentifierInfo.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestIdentifierInfo.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestIdentity.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestIdentity.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestIdentity.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestIdentity.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestInheritance.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestInheritance.java
similarity index 97%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestInheritance.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestInheritance.java
index 9aa2a69..288a8e7 100644
--- a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestInheritance.java
+++ b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestInheritance.java
@@ -78,7 +78,7 @@
Relation<String, String> languageLocalesSeen = Relation.of(
new TreeMap<String, Set<String>>(), TreeSet.class);
- Set<String> testOrg = testInfo.getStandardCodes()
+ Set<String> testOrg = StandardCodes.make()
.getLocaleCoverageLocales("google");
ChainedMap.M4<String, OfficialStatus, String, Boolean> languageToOfficialChildren = ChainedMap
.of(new TreeMap<String, Object>(),
@@ -258,7 +258,7 @@
String script = ltp.set(localeID).getScript();
final String base = ltp.getLanguage();
if (!availableLocales.contains(base) && !base.equals("und")) {
- errln("Missing lang-subtag for: " + localeID);
+ errln("Missing lang-subtag base " + base + " for: " + localeID);
}
base2locales.put(base, localeID);
if (!script.isEmpty() && !base.equals("en")) { // HACK for en
@@ -272,9 +272,9 @@
// get default contents
for (String localeID : defaultContents) {
checkLocale(localeID, false);
- String simpleParent = LocaleIDParser.getSimpleParent(localeID);
- parent2default.put(simpleParent, localeID);
- default2parent.put(localeID, simpleParent);
+ String parent = LocaleIDParser.getParent(localeID); // was using getSimpleParent, not sure why
+ parent2default.put(parent, localeID);
+ default2parent.put(localeID, parent);
// if (!available.contains(simpleParent)) {
// // verify that base language has locale in CLDR (we don't want
// others)
@@ -292,7 +292,7 @@
}
Map<String, String> exceptionDcLikely = new HashMap<>();
Map<String, String> exceptionLikelyDc = new HashMap<>();
- for (String[] s : new String[][] { { "ar_001", "ar_Arab_EG" }, }) {
+ for (String[] s : new String[][] { { "ar_001", "ar_Arab_EG" }, { "nb", "no_Latn_NO" }, }) {
exceptionDcLikely.put(s[0], s[1]);
exceptionLikelyDc.put(s[1], s[0]);
}
@@ -341,11 +341,12 @@
public void TestParentLocaleInvariants() {
// Testing invariant relationships in parent locales - See
// http://unicode.org/cldr/trac/ticket/7887
+ // Per CLDR-2698/14493 we allow nb,nn to have an explicit parent no which is a different language code.
LocaleIDParser lp = new LocaleIDParser();
for (String loc : availableLocales) {
String parentLocale = dataInfo.getExplicitParentLocale(loc);
if (parentLocale != null) {
- if (!"root".equals(parentLocale)
+ if (!"root".equals(parentLocale) && !"nb".equals(loc) && !"nn".equals(loc)
&& !lp.set(loc).getLanguage()
.equals(lp.set(parentLocale).getLanguage())) {
errln("Parent locale [" + parentLocale + "] for locale ["
@@ -358,7 +359,7 @@
+ loc + "] cannot be a different script code.");
}
lp.set(loc);
- if (lp.getScript().length() == 0 && lp.getRegion().length() == 0) {
+ if (lp.getScript().length() == 0 && lp.getRegion().length() == 0 && !"nb".equals(loc) && !"nn".equals(loc)) {
errln("Base language locale [" + loc + "] cannot have an explicit parent.");
}
@@ -393,6 +394,7 @@
.addAll("root", "und")
.freeze();
Set<String> languagesWithOneOrLessLocaleScriptInCommon = new HashSet<>(Arrays.asList("bm", "ha", "hi", "ms", "iu", "mn"));
+ Set<String> baseLanguagesWhoseDefaultContentHasNoRegion = new HashSet<>(Arrays.asList("no"));
// for each base we have to have,
// if multiscript, we have default contents for base+script,
// base+script+region;
@@ -421,7 +423,7 @@
errln("Script should be empty in default content for: "
+ base + "," + defaultContent);
}
- if (region.isEmpty()) {
+ if (region.isEmpty() && !baseLanguagesWhoseDefaultContentHasNoRegion.contains(base)) {
errln("Region must not be empty in default content for: "
+ base + "," + defaultContent);
}
@@ -845,7 +847,7 @@
// TODO move this into central utilities
- private static final StandardCodes STANDARD_CODES = testInfo.getStandardCodes();
+ private static final StandardCodes STANDARD_CODES = StandardCodes.make();
private static final Map<String, Map<String, R2<List<String>, String>>> DEPRECATED_INFO = dataInfo
.getLocaleAliasInfo();
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestIntMap.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestIntMap.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestIntMap.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestIntMap.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestKeyboard.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestKeyboard.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestKeyboard.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestKeyboard.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestKeyboardModifierSet.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestKeyboardModifierSet.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestKeyboardModifierSet.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestKeyboardModifierSet.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestLanguageGroup.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestLanguageGroup.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestLanguageGroup.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestLanguageGroup.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestLocalCurrency.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestLocalCurrency.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestLocalCurrency.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestLocalCurrency.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestLocale.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestLocale.java
similarity index 96%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestLocale.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestLocale.java
index dd49e2d..e3b112e 100644
--- a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestLocale.java
+++ b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestLocale.java
@@ -2,7 +2,7 @@
import java.io.File;
import java.io.IOException;
-import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Collection;
import java.util.EnumSet;
@@ -31,6 +31,7 @@
import org.unicode.cldr.util.LanguageTagParser.Format;
import org.unicode.cldr.util.SimpleFactory;
import org.unicode.cldr.util.SimpleXMLSource;
+import org.unicode.cldr.util.StandardCodes;
import org.unicode.cldr.util.StandardCodes.CodeType;
import org.unicode.cldr.util.StandardCodes.LstrType;
import org.unicode.cldr.util.SupplementalDataInfo;
@@ -50,7 +51,6 @@
import com.ibm.icu.util.ICUUncheckedIOException;
public class TestLocale extends TestFmwkPlus {
- private static final Charset UTF_8 = Charset.forName("UTF-8");
static CLDRConfig testInfo = CLDRConfig.getInstance();
private static final SupplementalDataInfo SUPPLEMENTAL_DATA_INFO = testInfo.getSupplementalDataInfo();
public static Splitter AT_AND_SEMI = Splitter.on(CharMatcher.anyOf(";@"));
@@ -63,9 +63,9 @@
Type.Living, Type.Constructed, Type.Historical, Type.Extinct, Type.Special);
static Set<Scope> ALLOWED_LANGUAGE_SCOPES = EnumSet.of(Scope.Individual,
Scope.Macrolanguage, Scope.Special); // , Special, Collection, PrivateUse, Unknown
- static Set<String> ALLOWED_SCRIPTS = testInfo.getStandardCodes()
+ static Set<String> ALLOWED_SCRIPTS = StandardCodes.make()
.getGoodAvailableCodes(CodeType.script);
- static Set<String> ALLOWED_REGIONS = testInfo.getStandardCodes()
+ static Set<String> ALLOWED_REGIONS = StandardCodes.make()
.getGoodAvailableCodes(CodeType.territory);
/**
@@ -74,9 +74,9 @@
static String XPATH_ALIAS_STRING = "//alias";
public void TestLanguageRegions() {
- Set<String> missingLanguageRegion = new LinkedHashSet<String>();
+ Set<String> missingLanguageRegion = new LinkedHashSet<>();
// TODO This should be derived from metadata: https://unicode.org/cldr/trac/ticket/11224
- Set<String> knownMultiScriptLanguages = new HashSet<String>(Arrays.asList("az", "ff", "bs", "hi", "ks", "mni", "ms", "pa", "sat", "sd", "shi", "sr", "su", "vai", "uz", "yue", "zh"));
+ Set<String> knownMultiScriptLanguages = new HashSet<>(Arrays.asList("az", "ff", "bs", "hi", "ks", "mni", "ms", "pa", "sat", "sd", "shi", "sr", "su", "vai", "uz", "yue", "zh"));
Set<String> available = testInfo.getCldrFactory().getAvailable();
LanguageTagParser ltp = new LanguageTagParser();
Set<String> defaultContents = SUPPLEMENTAL_DATA_INFO
@@ -334,8 +334,8 @@
public void TestCanonicalizer() {
LanguageTagCanonicalizer canonicalizer = new LanguageTagCanonicalizer();
- String[][] tests = { { "iw", "he" }, { "no-YU", "nb_RS" },
- { "no", "nb" }, { "eng-833", "en_IM" }, { "mo", "ro" },
+ String[][] tests = { { "iw", "he" }, { "nb-YU", "nb_RS" }, { "no-YU", "no_RS" },
+ { "nb", "nb" }, { "no", "no" }, { "eng-833", "en_IM" }, { "mo", "ro" },
{ "mo_Cyrl", "ro_Cyrl" }, { "mo_US", "ro_US" },
{ "mo_Cyrl_US", "ro_Cyrl_US" }, { "sh", "sr_Latn" },
{ "sh_US", "sr_Latn_US" }, { "sh_Cyrl", "sr" },
@@ -440,7 +440,7 @@
assertEquals("Locale name", "中国語 (アラビア文字\u3001アメリカ合衆国)",
japanese.getName("zh-Arab-US"));
}
-
+
public void TestLocaleDisplay() {
System.out.println("\nUse -v to get samples for tests");
String fileName = CLDRPaths.TEST_DATA + "localeIdentifiers/localeDisplayName.txt";
@@ -455,18 +455,18 @@
};
Factory factory = SimpleFactory.make(paths, ".*");
Set<String> seen = new HashSet<>();
-
+
try {
- for (String line : Files.readLines(new File(fileName), UTF_8)) {
+ for (String line : Files.readLines(new File(fileName), StandardCharsets.UTF_8)) {
line = line.trim();
if (line.startsWith("#") || line.isEmpty()) continue;
if (line.startsWith("@")) {
String[] parts = line.split("=");
switch(parts[0]) {
- case "@locale":
+ case "@locale":
cldrFile = factory.make(parts[1], true);
break;
- case "@compound":
+ case "@compound":
switch(parts[1]) {
case "true": compound=true; break;
case "false": compound=false; break;
@@ -490,10 +490,10 @@
// String uLocaleAsBcp47 = forComparison.toLanguageTag();
// assertEquals("ICU roundtrips", localeId, uLocaleAsBcp47);
-
+
// String bcp47 = ltp.toString(OutputOption.BCP47);
// String icuFormat = ltp.toString(OutputOption.ICU);
-
+
// // check that the icuFormat is ok except for order
// Set<String> icuComponents = new TreeSet<>(AT_AND_SEMI.splitToList(forComparison.toString().toLowerCase(Locale.ROOT)));
// Set<String> icuFormatComponents = new TreeSet<>(AT_AND_SEMI.splitToList(icuFormat.toLowerCase(Locale.ROOT)));
@@ -503,12 +503,12 @@
// LanguageTagParser ltp2 = new LanguageTagParser()
// .set(icuFormat);
// String roundTripId = ltp2.toString(OutputOption.BCP47);
-
-
+
+
// // check that the format roundtrips
// assertEquals("LTP(BCP47)=>ICU=>BCP47", bcp47, roundTripId);
- canonicalizer.transform(ltp);
+ canonicalizer.transform(ltp);
String name = cldrFile.getName(ltp, true, null);
if (assertEquals(cldrFile.getLocaleID() + "; " + localeId, expected, name)) {
formattedExamplesForSpec.append("<tr><td>")
@@ -536,13 +536,13 @@
String localeBase = "en-" + (LanguageTagParser.isTKey(key) ? "t-" : "u-") + key + "-";
// abbreviate some values
switch(key) {
- case "cu":
+ case "cu":
showName(cldrFile, seen, localeBase, "eur", "jpy", "usd", "chf");
continue keyLoop;
- case "tz":
+ case "tz":
showName(cldrFile, seen, localeBase, "uslax", "gblon", "chzrh");
continue keyLoop;
- case "dx":
+ case "dx":
// skip for now, probably need to fix something in CLDRFile
continue keyLoop;
}
@@ -564,7 +564,7 @@
showName(cldrFile, skipLocales, localeBase, sample);
}
}
-
+
private void showName(CLDRFile cldrFile, Set<String> skipLocales, String localeBase, String... samples) {
for (String sample : samples) {
showName(cldrFile, skipLocales, localeBase, sample);
@@ -572,7 +572,7 @@
}
static final UnicodeSet LOCALIZED = new UnicodeSet("[A-Z€$¥${foobar2}]");
-
+
private void showName(CLDRFile cldrFile, Set<String> skipLocales, String localeBase, String value) {
String locale = localeBase + value;
if (skipLocales.contains(locale)) {
@@ -674,7 +674,7 @@
String gorp = key.equals(lastKey) ? "" :
- (key.equals("t") ? "-u-ca-persian" : "-t-hi")
+ (key.equals("t") ? "-u-ca-persian" : "-t-hi")
+ "-a-AA-v-VV-y-YY-x-foobar";
lastKey = key;
@@ -706,10 +706,10 @@
case "PRIVATE_USE": // [t, x0, PRIVATE_USE]
valuesSet = ImmutableSet.of("foobar2");
break;
- case "REORDER_CODE": // [u, kr, REORDER_CODE]
+ case "REORDER_CODE": // [u, kr, REORDER_CODE]
valuesSet = ImmutableSet.of("arab", "digit-deva-latn");
break;
- case "SCRIPT_CODE": // [u, dx, SCRIPT_CODE]
+ case "SCRIPT_CODE": // [u, dx, SCRIPT_CODE]
valuesSet = ImmutableSet.of("thai", "thai-laoo");
break;
case "RG_KEY_VALUE": // [u, rg, RG_KEY_VALUE]
@@ -718,7 +718,7 @@
case "SUBDIVISION_CODE": // [u, sd, SUBDIVISION_CODE]
valuesSet = ImmutableSet.of("usca", "gbsct", "frnor");
break;
- default:
+ default:
throw new IllegalArgumentException();
}
return valuesSet;
@@ -734,7 +734,7 @@
+ "-" + key + "-" + String.join("-", values) + gorp;
ltp.set(locale);
- logln(ltp.toString(Format.bcp47)
+ logln(ltp.toString(Format.bcp47)
+ " == " + ltp.toString(Format.icu)
+ "\n\t\tstructure:\t" + ltp.toString(Format.structure));
try {
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestLruMap.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestLruMap.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestLruMap.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestLruMap.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestLsrvCanonicalizer.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestLsrvCanonicalizer.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestLsrvCanonicalizer.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestLsrvCanonicalizer.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestMetadata.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestMetadata.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestMetadata.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestMetadata.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestMetazoneTransitions.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestMetazoneTransitions.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestMetazoneTransitions.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestMetazoneTransitions.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestOutdatedPaths.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestOutdatedPaths.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestOutdatedPaths.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestOutdatedPaths.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestPathHeader.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestPathHeader.java
similarity index 99%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestPathHeader.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestPathHeader.java
index 4c67d23..c48d743 100644
--- a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestPathHeader.java
+++ b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestPathHeader.java
@@ -820,8 +820,7 @@
}
public void TestTerritoryOrder() {
- final Set<String> goodAvailableCodes = CLDRConfig.getInstance()
- .getStandardCodes().getGoodAvailableCodes("territory");
+ final Set<String> goodAvailableCodes = StandardCodes.make().getGoodAvailableCodes("territory");
Set<String> results = showContained("001", 0, new HashSet<>(
goodAvailableCodes));
results.remove("ZZ");
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestPaths.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestPaths.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestPaths.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestPaths.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestPathsModule.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestPathsModule.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestPathsModule.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestPathsModule.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestPerf.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestPerf.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestPerf.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestPerf.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestPluralRuleGeneration.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestPluralRuleGeneration.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestPluralRuleGeneration.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestPluralRuleGeneration.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestPseudolocalization.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestPseudolocalization.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestPseudolocalization.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestPseudolocalization.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestRangeAbbreviator.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestRangeAbbreviator.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestRangeAbbreviator.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestRangeAbbreviator.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestReferenceStringSearch.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestReferenceStringSearch.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestReferenceStringSearch.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestReferenceStringSearch.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestScriptMetadata.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestScriptMetadata.java
similarity index 94%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestScriptMetadata.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestScriptMetadata.java
index 2017e0a..f807db7 100644
--- a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestScriptMetadata.java
+++ b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestScriptMetadata.java
@@ -49,7 +49,7 @@
public void TestScriptOfSample() {
BitSet bitset = new BitSet();
- for (String script : new TreeSet<String>(ScriptMetadata.getScripts())) {
+ for (String script : new TreeSet<>(ScriptMetadata.getScripts())) {
Info info0 = ScriptMetadata.getInfo(script);
int codePointCount = UTF16.countCodePoint(info0.sampleChar);
assertEquals("Sample must be single character", 1, codePointCount);
@@ -99,7 +99,7 @@
@SuppressWarnings("deprecation")
public void TestScripts() {
UnicodeSet temp = new UnicodeSet();
- Set<String> missingScripts = new TreeSet<String>();
+ Set<String> missingScripts = new TreeSet<>();
Relation<IdUsage, String> map = Relation.of(
new EnumMap<IdUsage, Set<String>>(IdUsage.class),
LinkedHashSet.class);
@@ -133,7 +133,7 @@
// lifted from ShowLanguages
private static Set<String> getEnglishTypes(String type, int code, StandardCodes sc, CLDRFile english) {
- Set<String> result = new HashSet<String>(sc.getSurveyToolDisplayCodes(type));
+ Set<String> result = new HashSet<>(sc.getSurveyToolDisplayCodes(type));
for (Iterator<String> it = english.getAvailableIterator(code); it.hasNext();) {
XPathParts parts = XPathParts.getFrozenInstance(it.next());
String newType = parts.getAttributeValue(-1, "type");
@@ -152,9 +152,9 @@
public void TestShowLanguages() {
// lifted from ShowLanguages - this is what ShowLanguages tried to do.
- StandardCodes sc = testInfo.getStandardCodes();
+ StandardCodes sc = StandardCodes.make();
CLDRFile english = testInfo.getEnglish();
- Set<String> bads = new TreeSet<String>();
+ Set<String> bads = new TreeSet<>();
UnicodeSet temp = new UnicodeSet();
for (String s : getScriptsToShow(sc, english)) {
if (ScriptMetadata.getInfo(s) == null) {
@@ -175,7 +175,7 @@
public void TestGeographicGrouping() {
CLDRFile english = testInfo.getEnglish();
- Set<Row.R3<IdUsage, String, String>> lines = new TreeSet<Row.R3<IdUsage, String, String>>();
+ Set<Row.R3<IdUsage, String, String>> lines = new TreeSet<>();
Set<String> extras = ScriptMetadata.getExtras();
for (Entry<String, Info> sc : ScriptMetadata.iterable()) {
String scriptCode = sc.getKey();
@@ -205,7 +205,7 @@
public void TestScriptCategories() {
// test completeness
- Set<String> scripts = new TreeSet<String>(ScriptMetadata.getScripts());
+ Set<String> scripts = new TreeSet<>(ScriptMetadata.getScripts());
scripts.removeAll(Arrays.asList("Zinh", "Zyyy", "Zzzz"));
logln("All: " + scripts);
for (ScriptMetadata.Groupings x : ScriptMetadata.Groupings.values()) {
@@ -249,9 +249,9 @@
TreeSet<String> b = With.in(bRaw).toCollection(
ScriptMetadata.TO_SHORT_SCRIPT, new TreeSet<String>());
- Set<String> a_b = new TreeSet<String>(a);
+ Set<String> a_b = new TreeSet<>(a);
a_b.removeAll(b);
- Set<String> b_a = new TreeSet<String>(b);
+ Set<String> b_a = new TreeSet<>(b);
b_a.removeAll(a);
assertEquals(title + " New vs Old, ", a_b.toString(), b_a.toString());
}
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestShim.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestShim.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestShim.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestShim.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestStringByteConverter.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestStringByteConverter.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestStringByteConverter.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestStringByteConverter.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestSubdivisions.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestSubdivisions.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestSubdivisions.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestSubdivisions.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestSupplementalInfo.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestSupplementalInfo.java
similarity index 99%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestSupplementalInfo.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestSupplementalInfo.java
index 3fcdf6c..cd339c9 100644
--- a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestSupplementalInfo.java
+++ b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestSupplementalInfo.java
@@ -97,8 +97,7 @@
static CLDRConfig testInfo = CLDRConfig.getInstance();
- private static final StandardCodes STANDARD_CODES = testInfo
- .getStandardCodes();
+ private static final StandardCodes STANDARD_CODES = StandardCodes.make();
private static final SupplementalDataInfo SUPPLEMENTAL = testInfo
.getSupplementalDataInfo();
@@ -182,7 +181,7 @@
}
localesToTest.add(locale);
}
- Set<String> modernLocales = testInfo.getStandardCodes()
+ Set<String> modernLocales = StandardCodes.make()
.getLocaleCoverageLocales(Organization.cldr,
EnumSet.of(Level.MODERN));
@@ -909,7 +908,7 @@
// 24 hour time ONLY:
Set<String> only24lang = new TreeSet<>(
Arrays.asList(("sq, br, bu, ca, hr, cs, da, de, nl, et, eu, fi, "
- + "fr, gl, he, is, id, it, nb, pt, ro, ru, sr, sk, sl, sv, tr, hy")
+ + "fr, gl, he, is, id, it, no, pt, ro, ru, sr, sk, sl, sv, tr, hy")
.split(",\\s*")));
// With the new preferences, this is changed
Set<String> only24region = new TreeSet<>();
@@ -975,7 +974,7 @@
}
public void TestAliases() {
- testInfo.getStandardCodes();
+ StandardCodes.make();
Map<String, Map<String, Map<String, String>>> bcp47Data = StandardCodes
.getLStreg();
Map<String, Map<String, R2<List<String>, String>>> aliases = SUPPLEMENTAL
@@ -1867,7 +1866,8 @@
}
public void Test9924() {
- PopulationData zhCNData = SUPPLEMENTAL.getLanguageAndTerritoryPopulationData(LOCALES_FIXED ? "zh" : "zh_Hans", "CN");
+ Boolean b = org.unicode.cldr.unittest.TestSupplementalInfo.LOCALES_FIXED;
+ PopulationData zhCNData = SUPPLEMENTAL.getLanguageAndTerritoryPopulationData(b ? "zh" : "zh_Hans", "CN");
PopulationData yueCNData = SUPPLEMENTAL.getLanguageAndTerritoryPopulationData("yue_Hans", "CN");
assertTrue("yue*10 < zh", yueCNData.getPopulation() < zhCNData.getPopulation());
}
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestTransforms.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestTransforms.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestTransforms.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestTransforms.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestUCharacterIterator.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestUCharacterIterator.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestUCharacterIterator.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestUCharacterIterator.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestUExtension.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestUExtension.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestUExtension.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestUExtension.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestUnContainment.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestUnContainment.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestUnContainment.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestUnContainment.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestUnicodeProperty.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestUnicodeProperty.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestUnicodeProperty.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestUnicodeProperty.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestUnits.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestUnits.java
similarity index 83%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestUnits.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestUnits.java
index e5184df..65da0a8 100644
--- a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestUnits.java
+++ b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestUnits.java
@@ -59,6 +59,7 @@
import org.unicode.cldr.util.Rational.FormatStyle;
import org.unicode.cldr.util.Rational.RationalParser;
import org.unicode.cldr.util.SimpleXMLSource;
+import org.unicode.cldr.util.StandardCodes;
import org.unicode.cldr.util.StandardCodes.LstrType;
import org.unicode.cldr.util.SupplementalDataInfo;
import org.unicode.cldr.util.SupplementalDataInfo.PluralInfo;
@@ -66,10 +67,12 @@
import org.unicode.cldr.util.SupplementalDataInfo.PluralType;
import org.unicode.cldr.util.UnitConverter;
import org.unicode.cldr.util.UnitConverter.Continuation;
+import org.unicode.cldr.util.UnitConverter.Continuation.UnitIterator;
import org.unicode.cldr.util.UnitConverter.ConversionInfo;
import org.unicode.cldr.util.UnitConverter.TargetInfo;
import org.unicode.cldr.util.UnitConverter.UnitComplexity;
import org.unicode.cldr.util.UnitConverter.UnitId;
+import org.unicode.cldr.util.UnitConverter.UnitSystem;
import org.unicode.cldr.util.UnitPathType;
import org.unicode.cldr.util.UnitPreferences;
import org.unicode.cldr.util.UnitPreferences.UnitPreference;
@@ -82,6 +85,7 @@
import com.google.common.base.Joiner;
import com.google.common.base.Splitter;
import com.google.common.collect.BiMap;
+import com.google.common.collect.Comparators;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
@@ -90,15 +94,20 @@
import com.google.common.collect.LinkedHashMultimap;
import com.google.common.collect.Multimap;
import com.google.common.collect.Multimaps;
+import com.google.common.collect.Ordering;
import com.google.common.collect.TreeMultimap;
import com.ibm.icu.dev.test.TestFmwk;
+import com.ibm.icu.impl.Row;
import com.ibm.icu.impl.Row.R2;
+import com.ibm.icu.impl.Row.R3;
import com.ibm.icu.text.PluralRules;
import com.ibm.icu.text.UnicodeSet;
import com.ibm.icu.util.ICUUncheckedIOException;
import com.ibm.icu.util.Output;
public class TestUnits extends TestFmwk {
+ private static final Set<String> VALID_REGULAR_UNITS = Validity.getInstance().getStatusToCodes(LstrType.unit).get(Validity.Status.regular);
+ private static final Set<String> DEPRECATED_REGULAR_UNITS = Validity.getInstance().getStatusToCodes(LstrType.unit).get(Validity.Status.deprecated);
private static final CLDRConfig CLDR_CONFIG = CLDRConfig.getInstance();
private static final Integer INTEGER_ONE = Integer.valueOf(1);
private static final boolean SHOW_DATA = CldrUtility.getProperty("TestUnits:SHOW_DATA", false); // set for verbose debugging information
@@ -117,6 +126,8 @@
static final Rational R1000 = Rational.of(1000);
+ static Map<String,String> normalizationCache = new TreeMap<>();
+
public static void main(String[] args) {
new TestUnits().run(args);
}
@@ -368,17 +379,17 @@
static final boolean DEBUG = false;
public void TestConversion() {
- Object[][] tests = {
- {"foot", 12, "inch"},
- {"gallon", 4, "quart"},
- {"gallon", 16, "cup"},
+ String[][] tests = {
+ {"foot", "12", "inch"},
+ {"gallon", "4", "quart"},
+ {"gallon", "16", "cup"},
};
- for (Object[] test : tests) {
- String sourceUnit = test[0].toString();
- String targetUnit = test[2].toString();
- int numerator = (Integer) test[1];
+ for (String[] test : tests) {
+ String sourceUnit = test[0];
+ Rational factor = Rational.of(test[1]);
+ String targetUnit = test[2];
final Rational convert = converter.convertDirect(Rational.ONE, sourceUnit, targetUnit);
- assertEquals(sourceUnit + " to " + targetUnit, Rational.of(numerator, 1), convert);
+ assertEquals(sourceUnit + " to " + targetUnit, factor, convert);
}
// test conversions are disjoint
@@ -683,7 +694,7 @@
switch (unitType) {
case "concentr":
switch (quantity) {
- case "portion": case "mass-density": case "concentration": case "substance-amount": continue;
+ case "portion": case "mass-density": case "concentration": case "substance-amount": case "concentration-mass": continue;
}
break;
case "consumption":
@@ -837,7 +848,15 @@
final String unit = entry.getValue();
if (lastUnit != null) {
if (!(conversionOrder.compare(lastUnit, unit) < 0)) {
- warnln("Expected " + lastUnit + " < " + unit);
+ Output<String> metricUnit = new Output<>();
+ ConversionInfo lastInfo = converter.parseUnitId(lastUnit, metricUnit, false);
+ String lastMetric = metricUnit.value;
+ ConversionInfo info = converter.parseUnitId(unit, metricUnit, false);
+ String metric = metricUnit.value;
+ if (metric.equals(lastMetric)) {
+ warnln("Expected " + lastUnit + " < " + unit
+ + "\t" + lastMetric + " " + lastInfo + " < " + metric + " " + info);
+ }
}
}
lastUnit = unit;
@@ -899,8 +918,8 @@
assertTrue(fluid_imperial + " vs " + fluid, fluid_imperial.compareTo(fluid) < 0);
}
- static final Pattern usSystemPattern = Pattern.compile("\\b(lb_to_kg|ft_to_m|ft2_to_m2|ft3_to_m3|in3_to_m3|gal_to_m3|cup_to_m3)\\b");
- static final Pattern ukSystemPattern = Pattern.compile("\\b(lb_to_kg|ft_to_m|ft2_to_m2|ft3_to_m3|in3_to_m3|gal_imp_to_m3)\\b");
+ private static final Pattern usSystemPattern = Pattern.compile("\\b(lb_to_kg|ft_to_m|ft2_to_m2|ft3_to_m3|in3_to_m3|gal_to_m3|cup_to_m3)\\b");
+ private static final Pattern ukSystemPattern = Pattern.compile("\\b(lb_to_kg|ft_to_m|ft2_to_m2|ft3_to_m3|in3_to_m3|gal_imp_to_m3)\\b");
static final Set<String> OK_BOTH = ImmutableSet.of(
"ounce-troy", "nautical-mile", "fahrenheit", "inch-ofhg",
@@ -915,36 +934,77 @@
static final Set<String> NOT_UK = ImmutableSet.of(
"therm-us", "bushel", "barrel");
+ public static final Set<String> OTHER_SYSTEM = ImmutableSet.of(
+ "g-force", "dalton", "calorie", "earth-radius",
+ "solar-radius", "solar-radius", "astronomical-unit", "light-year", "parsec", "earth-mass",
+ "solar-mass", "bit", "byte", "karat", "solar-luminosity", "ofhg", "atmosphere",
+ "pixel", "dot", "permillion", "permyriad", "permille", "percent", "karat", "portion",
+ "minute", "hour", "day", "day-person", "week", "week-person",
+ "year", "year-person", "decade", "month", "month-person", "century",
+ "arc-second", "arc-minute", "degree", "radian", "revolution",
+ "electronvolt",
+ // quasi-metric
+ "dunam", "mile-scandinavian", "carat", "cup-metric", "pint-metric"
+ );
+
public void TestSystems() {
- Multimap<String, String> toSystems = converter.getSourceToSystems();
-
- Map<String, TargetInfo> data = converter.getInternalConversionData();
- for (Entry<String, TargetInfo> entry : data.entrySet()) {
- String unit = entry.getKey();
- TargetInfo value = entry.getValue();
- String inputFactor = value.inputParameters.get("factor");
- if (inputFactor == null) {
- inputFactor = "";
+// Map<String, TargetInfo> data = converter.getInternalConversionData();
+ Output<String> metricUnit = new Output<>();
+ Multimap<Set<UnitSystem>, R3<String, ConversionInfo, String>> systemsToUnits = TreeMultimap.create(Comparators.lexicographical(Ordering.natural()), Ordering.natural());
+ for (String longUnit : VALID_REGULAR_UNITS) {
+ String unit = Units.getShort(longUnit);
+ if (unit.equals("generic")) {
+ continue;
}
- boolean usSystem = !NOT_US.contains(unit) &&
- (OK_BOTH.contains(unit)
- || OK_US.contains(unit)
- || usSystemPattern.matcher(inputFactor).find());
-
- boolean ukSystem = !NOT_UK.contains(unit) &&
- (OK_BOTH.contains(unit)
- || OK_UK.contains(unit)
- || ukSystemPattern.matcher(inputFactor).find());
-
- Collection<String> systems = toSystems.get(unit);
- if (systems == null) {
- systems = Collections.emptySet();
- }
- if (!assertEquals(unit + ": US? (" + inputFactor + ")", usSystem, systems.contains("ussystem"))) {
+ if (unit.contentEquals("centiliter")) {
int debug = 0;
}
- if (!assertEquals(unit + ": UK? (" + inputFactor + ")", ukSystem, systems.contains("uksystem"))) {
- int debug = 0;
+ Set<UnitSystem> systems = converter.getSystemsEnum(unit);
+ ConversionInfo parseInfo = converter.parseUnitId(unit, metricUnit, false);
+ String mUnit = metricUnit.value;
+ final R3<String, ConversionInfo, String> row = Row.of(mUnit, parseInfo, unit);
+ systemsToUnits.put(systems, row);
+// if (systems.isEmpty()) {
+// Rational factor = parseInfo.factor;
+// if (factor.isPowerOfTen()) {
+// log("System should be 'metric': " + unit);
+// } else {
+// log("System should be ???: " + unit);
+// }
+// }
+ }
+ String std = converter.getStandardUnit("kilogram-meter-per-square-meter-square-second");
+ System.out.println();
+ Output<Rational> outFactor = new Output<>();
+ for (Entry<Set<UnitSystem>, Collection<R3<String, ConversionInfo, String>>> systemsAndUnits : systemsToUnits.asMap().entrySet()) {
+ Set<UnitSystem> systems = systemsAndUnits.getKey();
+ for (R3<String, ConversionInfo, String> unitInfo : systemsAndUnits.getValue()) {
+ String unit = unitInfo.get2();
+ switch (unit) {
+ case "gram": continue;
+ case "kilogram": break;
+ default:
+ String paredUnit = UnitConverter.stripPrefix(unit, outFactor);
+ if (!paredUnit.equals(unit)) {
+ continue;
+ }
+ }
+ final String metric = unitInfo.get0();
+ String standard = converter.getStandardUnit(metric);
+ final String quantity = converter.getQuantityFromUnit(unit, false);
+ final Rational factor = unitInfo.get1().factor;
+ // show non-metric relations
+ String specialRef = "";
+ String specialUnit = converter.getSpecialBaseUnit(quantity, systems);
+ if (specialUnit != null) {
+ Rational specialFactor = converter.convert(Rational.ONE, unit, specialUnit, false);
+ specialRef = "\t" + specialFactor + "\t" + specialUnit;
+ }
+ System.out.println(systems + "\t" + quantity
+ + "\t" + unit
+ + "\t" + factor
+ + "\t" + standard
+ + specialRef);
}
}
}
@@ -990,6 +1050,9 @@
public void TestSpecialCases() {
String [][] tests = {
+ {"1", "millimole-per-liter", "milligram-ofglucose-per-deciliter", "18.01557"},
+ {"1", "millimole-per-liter", "item-per-cubic-meter", "602214076000000000000000"},
+
{"50", "foot", "xxx", "0/0"},
{"50", "xxx", "mile", "0/0"},
{"50", "foot", "second", "0/0"},
@@ -1243,9 +1306,10 @@
Rational lastgeq = null;
systems.clear();
Set<String> lastRegions = null;
+ String unitQuantity = null;
+
preferences:
for (UnitPreference up : uPrefs) {
- String unitQuantity = null;
String topUnit = null;
if ("minute:second".equals(up.unit)) {
int debug = 0;
@@ -1307,14 +1371,15 @@
assertEquals(usage + " + " + regions + ": the least unit must have geq=1 (or equivalently, no geq)", Rational.ONE, lastgeq);
// Check that each set has a consistent system.
- assertTrue(usage + " + " + regions + " has mixed systems: " + systems + "\n\t" + uPrefs, areConsistent(systems));
+ assertTrue(usage + " + " + regions + " has mixed systems: " + systems + "\n\t" + uPrefs, areConsistent(systems, unitQuantity));
}
}
}
}
- private boolean areConsistent(Set<String> systems) {
- return !(systems.contains("metric") && (systems.contains("ussystem") || systems.contains("uksystem")));
+ private boolean areConsistent(Set<String> systems, String unitQuantity) {
+ return unitQuantity.equals("duration")
+ || !(systems.contains("metric") && (systems.contains("ussystem") || systems.contains("uksystem")));
}
public void TestBcp47() {
@@ -1647,14 +1712,17 @@
mark="²";
}
}
- System.out.println("Could add 10^X conversion from a"
+ logln("Could add 10^X conversion from a"
+ "\t" + s.source
+ "\tto" + mark
+ "\t" + endFactor.toString(FormatStyle.simple)
+ "\t" + target);
}
+ if (!DEBUG_ADD) System.out.println("\n\t\tSet -v to show units we could add");
}
+ static final boolean DEBUG_ADD = false;
+
private Rational showDelta(String firstUnit, String secondUnit, boolean showYourWork) {
Rational x = converter.convert(Rational.ONE, firstUnit, secondUnit, showYourWork);
return showDelta(firstUnit + "\t" + secondUnit, x);
@@ -1732,8 +1800,13 @@
/** Check that units to be translated are as expected. */
public void testDistinguishedSetsOfUnits() {
Set<String> comparatorUnitIds = new LinkedHashSet<>(DtdData.unitOrder.getOrder());
- Set<String> validLongUnitIds = Validity.getInstance().getStatusToCodes(LstrType.unit).get(Validity.Status.regular);
+ Set<String> validLongUnitIds = VALID_REGULAR_UNITS;
+ Set<String> validAndDeprecatedLongUnitIds = ImmutableSet.<String>builder().addAll(VALID_REGULAR_UNITS).addAll(DEPRECATED_REGULAR_UNITS).build();
+
final BiMap<String, String> shortToLong = Units.LONG_TO_SHORT.inverse();
+ assertSuperset("converter short-long", "units short-long", converter.SHORT_TO_LONG_ID.entrySet(), shortToLong.entrySet());
+ assertSuperset("units short-long", "converter short-long", shortToLong.entrySet(), converter.SHORT_TO_LONG_ID.entrySet());
+
Set<String> errors = new LinkedHashSet<>();
Set<String> unitsConvertibleLongIds = converter.canConvert().stream()
.map(x -> {
@@ -1755,9 +1828,13 @@
ImmutableSet<String> unitLongIdsEnglish = ImmutableSet.copyOf(getUnits(CLDR_CONFIG.getEnglish(), new TreeSet<>()));
assertSameCollections("root unit IDs", "English", unitLongIdsRoot, unitLongIdsEnglish);
- final Set<String> validLongUnitIdsMinusOddballs = minus(validLongUnitIds, Arrays.asList("concentr-item", "concentr-portion", "length-100-kilometer", "pressure-ofhg"));
- assertSameCollections("root unit IDs", "valid regular", unitLongIdsRoot, validLongUnitIdsMinusOddballs);
- assertSameCollections("comparatorUnitIds (DtdData)", "valid regular", comparatorUnitIds, validLongUnitIds);
+
+ final Set<String> validRootUnitIdsMinusOddballs = unitLongIdsRoot;
+ final Set<String> validLongUnitIdsMinusOddballs = minus(validLongUnitIds,
+ "concentr-item", "concentr-portion", "length-100-kilometer", "pressure-ofhg", "concentr-ofglucose");
+ assertSameCollections("root unit IDs", "valid regular", validRootUnitIdsMinusOddballs, validLongUnitIdsMinusOddballs);
+
+ assertSameCollections("comparatorUnitIds (DtdData)", "valid regular", comparatorUnitIds, validAndDeprecatedLongUnitIds);
assertSuperset("valid regular", "specials", validLongUnitIds, GrammarInfo.SPECIAL_TRANSLATION_UNITS);
@@ -1787,18 +1864,24 @@
assertSuperset(title2, title1, c2, c1);
}
- public void assertSuperset(String title1, String title2, Collection<String> c1, Collection<String> c2) {
+ public <V> void assertSuperset(String title1, String title2, Collection<V> c1, Collection<V> c2) {
if (!assertEquals(title1 + " ⊇ " + title2, Collections.emptySet(), minus(c2, c1))) {
int debug = 0;
}
}
- public Set<String> minus(Collection<String> a, Collection<String> b) {
- Set<String> result = new LinkedHashSet<>(a);
+ public <V> Set<V> minus(Collection<V> a, Collection<V> b) {
+ Set<V> result = new LinkedHashSet<>(a);
result.removeAll(b);
return result;
}
+ public <V> Set<V> minus(Collection<V> a, V... b) {
+ Set<V> result = new LinkedHashSet<>(a);
+ result.removeAll(Arrays.asList(b));
+ return result;
+ }
+
public Set<String> getUnits(CLDRFile root, Set<String> unitLongIds) {
for (String path : root) {
XPathParts parts = XPathParts.getFrozenInstance(path);
@@ -1875,6 +1958,9 @@
{"de", "per-centimeter-decisecond", "other", "nominative", "{0} pro Zentimeter⋅Dezisekunde"},
{"de", "gigasecond-milligram-per-centimeter", "other", "nominative", "{0} Milligramm⋅Gigasekunden pro Zentimeter"},
{"de", "gigasecond-milligram", "other", "nominative", "{0} Milligramm⋅Gigasekunden"},
+ {"de", "gigasecond-gram", "other", "nominative", "{0} Gramm⋅Gigasekunden"},
+ {"de", "gigasecond-kilogram", "other", "nominative", "{0} Kilogramm⋅Gigasekunden"},
+ {"de", "gigasecond-megagram", "other", "nominative", "{0} Megagramm⋅Gigasekunden"},
{"de", "dessert-spoon-imperial-per-dessert-spoon-imperial", "one", "nominative", "{0} Imp. Dessertlöffel pro Imp. Dessertlöffel"},
{"de", "dessert-spoon-imperial-per-dessert-spoon-imperial", "one", "accusative", "{0} Imp. Dessertlöffel pro Imp. Dessertlöffel"},
@@ -1901,13 +1987,16 @@
LocaleStringProvider resolvedFile;
switch(locale) {
case "fr": resolvedFile = resolvedFileRaw.makeOverridingStringProvider(frOverrides); break;
- default: resolvedFile = resolvedFileRaw;
+ default: resolvedFile = resolvedFileRaw; break;
}
String shortUnitId = row[1];
String pluralCategory = row[2];
String caseVariant = row[3];
String expectedName = row[4];
+ if (shortUnitId.equals("gigasecond-milligram")) {
+ int debug = 0;
+ }
final UnitId unitId = converter.createUnitId(shortUnitId);
final String actual = unitId.toString(resolvedFile, "long", pluralCategory, caseVariant, partsUsed, false);
assertEquals(count + ") " + Arrays.asList(row).toString() + "\n\t" + Joiner.on("\n\t").join(partsUsed.asMap().entrySet()), fixSpaces(expectedName), fixSpaces(actual));
@@ -1919,7 +2008,7 @@
// first gather all the examples
Set<String> skippedUnits = new LinkedHashSet<>();
- Set<String> testSet = CLDR_CONFIG.getStandardCodes().getLocaleCoverageLocales(Organization.cldr);
+ Set<String> testSet = StandardCodes.make().getLocaleCoverageLocales(Organization.cldr);
Counter<String> localeToErrorCount = new Counter<>();
for (String localeId : testSet) {
if (localeId.contains("_")) {
@@ -2019,7 +2108,7 @@
}
}
- public void TestDerivedCase() {
+ public void TestDerivedCase() {
// needs further work
if (logKnownIssue("CLDR-13920", "finish this as part of unit derivation work")) {
return;
@@ -2105,11 +2194,16 @@
}
XPathParts parts = XPathParts.getFrozenInstance(path);
final String shortId = converter.getShortId(parts.getAttributeValue(-2, "type"));
- String quantity;
+ if (NOT_CONVERTABLE.contains(shortId)) {
+ continue;
+ }
+ String quantity = null;
try {
quantity = converter.getQuantityFromUnit(shortId, false);
- } catch (Exception e) {
- continue;
+ } catch (Exception e) {}
+
+ if (quantity == null) {
+ throw new IllegalArgumentException("No quantity for " + shortId);
}
//ldml/units/unitLength[@type="long"]/unit[@type="duration-year"]/gender
@@ -2158,7 +2252,7 @@
showData(localeID, missing, quantity, genderToUnits);
}
for (String gender : missing) {
- System.out.println(localeID + "\t" + "?" + "\t" + gender + "\t?");
+ warnln("Missing values: " + localeID + "\t" + "?" + "\t" + gender + "\t?");
}
}
}
@@ -2173,18 +2267,320 @@
genderFilter.remove(gender);
}
for (String unit : entry2.getValue().keySet()) {
- System.out.println(localeID + "\t" + quantity + "\t" + gender + "\t" + unit);
+ logln(localeID + "\t" + quantity + "\t" + gender + "\t" + unit);
}
}
}
+ static final boolean DEBUG_DERIVATION = false;
+
public void testDerivation() {
int count = 0;
for (String locale : SDI.hasGrammarDerivation()) {
GrammarDerivation gd = SDI.getGrammarDerivation(locale);
- System.out.println(locale + " => " + gd);
+ if (DEBUG_DERIVATION) System.out.println(locale + " => " + gd);
++count;
}
assertNotEquals("hasGrammarDerivation", 0, count);
}
+
+ static final boolean DEBUG_ORDER = false;
+
+ public void TestUnitOrder() {
+ if (DEBUG_ORDER) {
+ System.out.println();
+ for (Entry<String, Collection<Continuation>> entry : converter.getContinuations().asMap().entrySet()) {
+ System.out.println(entry);
+ }
+ }
+
+ for (Entry<String, String> entry : converter.getBaseUnitToQuantity().entrySet()) {
+ checkNormalization("base-quantity, " + entry.getValue(), entry.getKey());
+ }
+
+ // check root list
+ // crucial that this is stable!!
+ checkCldrFileUnits("root unit", CLDRConfig.getInstance().getRoot());
+ checkCldrFileUnits("en unit", CLDRConfig.getInstance().getEnglish());
+
+ for (String unit : converter.canConvert()) {
+ checkNormalization("convertable", unit);
+ String baseUnitId = converter.getBaseUnit(unit);
+ checkNormalization("convertable base", baseUnitId);
+ }
+
+
+
+ checkNormalization("test case", "foot-acre", "acre-foot");
+ checkNormalization("test case", "meter-newton", "newton-meter");
+
+ checkNormalization("test case", "newton-meter");
+ checkNormalization("test case", "acre-foot");
+
+ String stdAcre = converter.getStandardUnit("acre");
+
+ UnitOrdering unitOrdering = new UnitOrdering();
+ List<String> simpleBaseUnits = new ArrayList<>();
+
+ for (ExternalUnitConversionData data : NistUnits.externalConversionData) {
+ // unitOrdering.add(data.source);
+ final String source = data.source;
+ final String target = data.target;
+ unitOrdering.add(target);
+ checkNormalization("nist core, " + source, target);
+ }
+ for (Entry<String, TargetInfo> data : NistUnits.derivedUnitToConversion.entrySet()) {
+ if (DEBUG_ORDER) {
+ System.out.println(data);
+ }
+ final String target = data.getValue().target;
+ unitOrdering.add(target);
+ simpleBaseUnits.add(data.getKey());
+ checkNormalization("nist derived", target);
+ }
+
+ if (DEBUG_ORDER) {
+ System.out.println("Pass 1\n" + unitOrdering.orderingData);
+ }
+
+ for (String baseUnit : converter.getBaseUnitToQuantity().keySet()) {
+ unitOrdering.add(baseUnit);
+ String status = converter.getBaseUnitToStatus().get(baseUnit);
+ if ("simple".equals(status)) {
+ simpleBaseUnits.add(baseUnit);
+ }
+ }
+ if (DEBUG_ORDER) {
+ System.out.println("Pass 2\n" + unitOrdering.orderingData);
+ }
+
+ if (DEBUG_ORDER) System.out.println("Extracted data\n" + Joiner.on('\n').join(unitOrdering.orderingData.asMap().entrySet()));
+ if (DEBUG_ORDER) System.out.println("Building data");
+
+ // check the builder first
+ TotalOrderBuilder<String> totalOrderBuilder = new TotalOrderBuilder<>();
+
+ if (false) {
+ totalOrderBuilder.add("meter", "second").add("kilogram", "meter");
+ totalOrderBuilder.build();
+
+ totalOrderBuilder.add("meter", "second").add("kilogram", "meter").add("second", "kilogram");
+ try {
+ totalOrderBuilder.build();
+ } catch (Exception e) {
+ errln("Problem in TotalOrderBuilder");
+ }
+ }
+ if (DEBUG_ORDER)System.out.println("Show ordering");
+ // now all the units
+ for (List<String> orderedUnits : unitOrdering.orderingData.asMap().keySet()) {
+ List<String> baseUnits = new ArrayList<>();
+ for (String orderedUnit : orderedUnits) {
+ baseUnits.add(unitOrdering.getId(orderedUnit, unitOrdering.rejects));
+ }
+ if (DEBUG_ORDER)System.out.println(orderedUnits + "\t" + baseUnits);
+ totalOrderBuilder.add(baseUnits);
+ }
+ for (String simpleBaseUnit : simpleBaseUnits) {
+ totalOrderBuilder.add(Collections.singletonList(simpleBaseUnit));
+ }
+ if (DEBUG_ORDER)System.out.println(totalOrderBuilder);
+
+ if (DEBUG_ORDER)System.out.println("Rejects: " + unitOrdering.rejects);
+ if (DEBUG_ORDER)System.out.println("Ordering: " + totalOrderBuilder.build());
+
+// for (Entry<String, Collection<String>> entry : piecesToOccurences.asMap().entrySet()) {
+// System.out.println(entry.getKey() + "\t" + entry.getValue());
+// }
+ }
+
+ public void checkCldrFileUnits(String title, final CLDRFile cldrFile) {
+ for (String path : cldrFile) {
+ if (!path.startsWith("//ldml/units/unitLength")) {
+ continue;
+ }
+ XPathParts parts = XPathParts.getFrozenInstance(path);
+ String longUnitId = parts.findAttributeValue("unit", "type");
+ if (longUnitId == null) {
+ continue;
+ }
+ String shortUnitId = converter.getShortId(longUnitId);
+ checkNormalization(title, shortUnitId);
+ }
+ }
+
+ public void checkNormalization(String title, String source, String expected) {
+ String oldExpected = normalizationCache.get(source);
+ if (oldExpected != null) {
+ if (!oldExpected.equals(expected)) {
+ assertEquals(title + ", consistent expected results for " + source, oldExpected, expected);
+ }
+ return;
+ }
+ normalizationCache.put(source, expected);
+ UnitId unitId = converter.createUnitId(source);
+ assertEquals(title + ", unit order", expected, unitId.toString());
+ }
+
+ public void checkNormalization(String title, String source) {
+ checkNormalization(title, source, source);
+ }
+
+ static class UnitOrdering {
+ boolean SKIP_POWERS = true;
+ Set<String> SKIP_UNITS = ImmutableSet.of(
+ "kilogram-per-pascal-second-square-meter",
+ "kilogram-per-pascal-second-meter"
+ );
+
+ final Set<String> SUFFIXES = ImmutableSet.of(
+ "0c",
+ "15c",
+ "20c",
+ "23c",
+ "32f",
+ "365",
+ "392f",
+ "39f",
+ "4c",
+ "59f",
+ "60f",
+ "survey",
+ "assay",
+ "imperial",
+ "long",
+ "of",
+ "capacitance",
+ "inductance",
+ "current",
+ "electric",
+ "potential",
+ "electric",
+ "inductance,",
+ "resistance",
+ "water",
+ "troy",
+ "tnt",
+ "sidereal",
+ "unitth",
+ "unitit",
+ "mean",
+ "nutrition",
+ "tropical",
+ "pole",
+ "boiler",
+ "mil",
+ "force",
+ "printer",
+ "refrigeration",
+ "register",
+ "technical",
+ "thermal",
+ "metric",
+ "dry"
+ );
+
+ final Set<String> POWERS = ImmutableSet.of(
+ "square",
+ "cubic",
+ "pow4");
+ // mil-inch, perm-inch
+
+
+ Set<String> seen = new HashSet<>();
+ Multimap<String, String> piecesToOccurences = TreeMultimap.create();
+ Multimap<String, Continuation> continuations = converter.getContinuations();
+ TreeMultimap<List<String>, String> orderingData = TreeMultimap.create(Comparators.lexicographical(Ordering.natural()), Ordering.natural());
+ TreeSet<String> rejects = new TreeSet<>();
+
+ void add(String unitId) {
+ if (!unitId.contains("-")
+ || !seen.add(unitId)
+ || SKIP_UNITS.contains(unitId)) {
+ return;
+ }
+ if (unitId.contains("square-meter-kilogram")) {
+ int debug = 0;
+ }
+ List<String> pieces = new ArrayList<>();
+ ArrayList<String> orderedNumerator = new ArrayList<>();
+ ArrayList<String> orderedDenominator = new ArrayList<>();
+ ArrayList<String> current = orderedNumerator;
+ for (UnitIterator it = Continuation.split(unitId, continuations).iterator(); it.hasNext();) {
+ String unit = it.next();
+ if (unit.equals("per")) {
+ if (current == orderedDenominator) {
+ throw new IllegalArgumentException();
+ }
+ handleOrdering(current, unitId);
+ current = orderedDenominator;
+ continue;
+ }
+ if (POWERS.contains(unit)) {
+ if (SKIP_POWERS) {
+ continue;
+ }
+ String nextUnit = it.next();
+ nextUnit = UnitConverter.stripPrefix(nextUnit, null);
+ unit += "-" + nextUnit; // should never overrun
+ } else {
+ unit = UnitConverter.stripPrefix(unit, null);
+ }
+ String peek = it.peek();
+ while (peek != null && SUFFIXES.contains(peek)) {
+ unit += "-" + peek;
+ it.next();
+ peek = it.peek();
+ }
+ current.add(unit);
+ pieces.add(unit);
+ piecesToOccurences.put(unit, unitId);
+ }
+ handleOrdering(current, unitId);
+ //System.out.println(pieces + "\t=>\t" + data.target);
+ }
+
+
+ Map<String, String> EXTRA_BASES = ImmutableMap.<String,String>builder()
+ .put("british-thermal-unitit", "joule")
+ .put("british-thermal-unitth", "joule")
+ .put("centimeter", "meter")
+ .put("circular-mil", "meter")
+ //.put("dry", "???")
+ .put("dyne", "newton")
+ .put("foot-survey", "meter")
+ .put("inch-0c", "meter")
+ .put("inch-23c", "meter")
+ .put("kilogram-force", "newton")
+ .put("kilowatt", "watt")
+ //.put("mil", "???")
+ .put("millimeter", "meter")
+ .put("ofhg-0c", "ofhg")
+ .put("ofhg-32f", "ofhg")
+ .put("ofhg-60f", "ofhg")
+ .put("ounce-force", "newton")
+ .put("perm", "kilogram-per-second-per-square-meter-per-pascal")
+ .put("poundal", "newton")
+ .put("rankine", "celcius")
+ .build();
+
+ public String getId(String orderedUnit, Set<String> rejects) {
+ String result = converter.getStandardUnit(orderedUnit);
+ if (result == null) {
+ result = EXTRA_BASES.get(orderedUnit);
+ if (result == null) {
+ rejects.add(orderedUnit);
+ return "???";
+ }
+ }
+ return result;
+ }
+
+ private void handleOrdering(ArrayList<String> current, String source) {
+ if (current.size() < 2) {
+ return;
+ }
+ orderingData.put(current, source);
+ }
+ }
}
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestUtilities.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestUtilities.java
similarity index 88%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestUtilities.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestUtilities.java
index 6a2295d..7ad1d8e 100644
--- a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestUtilities.java
+++ b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestUtilities.java
@@ -1,11 +1,11 @@
package org.unicode.cldr.unittest;
/*
* TODO: rename this file and class to avoid confusion with org.unicode.cldr.util TestUtilities.java
- * When Eclipse console shows an error such as
+ * When Eclipse console shows an error such as
* Error: (TestUtilities.java:1154) : 8 value: expected "old-value", got null
* the link wrongly opens the wrong file named TestUtilities.java. The two files are:
- * cldr/tools/java/org/unicode/cldr/util/TestUtilities.java
- * cldr/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestUtilities.java
+ * cldr/tools/cldr-code/src/main/java/org/unicode/cldr/util/TestUtilities.java
+ * cldr/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestUtilities.java
*/
import java.io.StringWriter;
@@ -14,6 +14,7 @@
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
@@ -23,6 +24,7 @@
import java.util.TreeSet;
import java.util.regex.Matcher;
+import org.unicode.cldr.test.SubmissionLocales;
import org.unicode.cldr.tool.ConvertLanguageData.InverseComparator;
import org.unicode.cldr.util.CLDRConfig;
import org.unicode.cldr.util.CLDRFile;
@@ -42,10 +44,11 @@
import org.unicode.cldr.util.StringId;
import org.unicode.cldr.util.SupplementalDataInfo;
import org.unicode.cldr.util.SupplementalDataInfo.PluralInfo.Count;
+import org.unicode.cldr.util.VettingViewer;
import org.unicode.cldr.util.VettingViewer.Choice;
+import org.unicode.cldr.util.VettingViewer.MissingStatus;
import org.unicode.cldr.util.VettingViewer.VoteStatus;
import org.unicode.cldr.util.VoteResolver;
-import org.unicode.cldr.util.VoteResolver.CandidateInfo;
import org.unicode.cldr.util.VoteResolver.Level;
import org.unicode.cldr.util.VoteResolver.Status;
import org.unicode.cldr.util.VoteResolver.VoterInfo;
@@ -129,7 +132,7 @@
}
public void TestStringId() {
- ArrayList<StringIdThread> threads = new ArrayList<StringIdThread>();
+ ArrayList<StringIdThread> threads = new ArrayList<>();
for (int i = 0; i < 8; i++) {
StringIdThread thread = new StringIdThread(i);
@@ -175,9 +178,9 @@
}
public void TestDelegatingIterator() {
- Set<String> s = new TreeSet<String>(Arrays.asList(new String[] { "a",
+ Set<String> s = new TreeSet<>(Arrays.asList(new String[] { "a",
"b", "c" }));
- Set<String> t = new LinkedHashSet<String>(Arrays.asList(new String[] {
+ Set<String> t = new LinkedHashSet<>(Arrays.asList(new String[] {
"f", "d", "e" }));
StringBuilder result = new StringBuilder();
@@ -209,7 +212,7 @@
public void TestUntimedCounter() {
// simulates how Counter is used in VettingViewer
- Counter<Choice> problemCounter = new Counter<Choice>();
+ Counter<Choice> problemCounter = new Counter<>();
problemCounter.increment(Choice.error);
problemCounter.increment(Choice.error);
problemCounter.increment(Choice.warning);
@@ -218,7 +221,7 @@
assertEquals("problemCounter warning", 1, problemCounter.get(Choice.warning));
assertEquals("problemCounter weLost", 0, problemCounter.get(Choice.weLost));
- Counter<Choice> otherCounter = new Counter<Choice>();
+ Counter<Choice> otherCounter = new Counter<>();
otherCounter.addAll(problemCounter);
otherCounter.increment(Choice.error);
@@ -228,7 +231,7 @@
}
public void TestCounter() {
- Counter<String> counter = new Counter<String>(true);
+ Counter<String> counter = new Counter<>(true);
Comparator<String> uca = new Comparator<String>() {
Collator col = Collator.getInstance(ULocale.ENGLISH);
@@ -253,7 +256,7 @@
assertEquals("getMap", "{a=95, b=151, c=95, d=-3}", counter.toString());
assertEquals("getKeysetSortedByKey", Arrays.asList("a", "b", "c", "d"),
- new ArrayList<String>(counter.getKeysetSortedByKey()));
+ new ArrayList<>(counter.getKeysetSortedByKey()));
assertEquals(
"getKeysetSortedByCount(true, ucaDown)",
@@ -262,7 +265,7 @@
ucaDown)));
assertEquals("getKeysetSortedByCount(true, null), value",
- Arrays.asList("d", "a", "c", "b"), new ArrayList<String>(
+ Arrays.asList("d", "a", "c", "b"), new ArrayList<>(
counter.getKeysetSortedByCount(true, uca)));
assertEquals("getKeysetSortedByCount(false, ucaDown), descending",
@@ -270,16 +273,16 @@
counter.getKeysetSortedByCount(false, ucaDown)));
assertEquals("getKeysetSortedByCount(false, null), descending, value",
- Arrays.asList("b", "a", "c", "d"), new ArrayList<String>(
+ Arrays.asList("b", "a", "c", "d"), new ArrayList<>(
counter.getKeysetSortedByCount(false, uca)));
}
public void TestOrganizationOrder() {
- Map<String, Organization> stringToOrg = new TreeMap<String, Organization>();
+ Map<String, Organization> stringToOrg = new TreeMap<>();
for (Organization org : Organization.values()) {
stringToOrg.put(org.toString(), org);
}
- List<Organization> reordered = new ArrayList<Organization>(
+ List<Organization> reordered = new ArrayList<>(
stringToOrg.values());
List<Organization> plain = Arrays.asList(Organization.values());
for (int i = 0; i < reordered.size(); ++i) {
@@ -323,18 +326,6 @@
}
}
- private void showPaths(PathValueInfo pathValueInfo, String locale,
- int basePath, final Map<Integer, CandidateInfo> itemInfo) {
- logln(locale + " basePath:\t" + basePath + "\t"
- + pathValueInfo.getRealPath(basePath));
- for (int item : itemInfo.keySet()) {
- CandidateInfo candidateInfo = itemInfo.get(item);
- logln("\tpath:\t" + item + ", " + candidateInfo);
- logln("\tvalue:\t" + pathValueInfo.getRealValue(item)
- + "\tpath:\t<" + pathValueInfo.getRealPath(item) + ">");
- }
- }
-
/** Test user data. Restructured to be easier to read, more typesafe */
enum TestUser {
guestS(801, Organization.guest, Level.street),
@@ -367,25 +358,6 @@
temp.put(testUser.voterId, testUser.voterInfo);
}
TEST_USERS = temp.build();
-// for (Entry<Integer, VoterInfo> entry : TEST_USERS.entrySet()) {
-// int key = entry.getKey();
-// VoterInfo value = entry.getValue();
-// VoterInfo oldValue = testdata.get(key);
-// if (!Objects.equal(value, oldValue)) {
-// System.out.println(key + "\t" + value + "\t" + oldValue);
-// }
-// }
-// for (Entry<Integer, VoterInfo> entry : testdata.entrySet()) {
-// int key = entry.getKey();
-// VoterInfo value = entry.getValue();
-// VoterInfo oldValue = TEST_USERS.get(key);
-// if (!Objects.equal(value, oldValue)) {
-// System.out.println(key + "\t" + value + "\t" + oldValue);
-// }
-// }
-// if (TEST_USERS.size() != testdata.size()) {
-// throw new IllegalArgumentException();
-// }
}
}
@@ -397,8 +369,8 @@
public void TestTrunkStatus() {
VoteResolver.setVoterToInfo(testdata);
- VoteResolver<String> resolver = new VoteResolver<String>();
- resolver.setLocale("de");
+ VoteResolver<String> resolver = new VoteResolver<>();
+ resolver.setLocale(CLDRLocale.getInstance("de"), null);
resolver.setTrunk("new-item", Status.approved);
assertEquals("", "new-item", resolver.getWinningValue());
@@ -412,9 +384,8 @@
public void TestVoteResolverNgombaTrunkStatus() {
VoteResolver.setVoterToInfo(testdata);
- VoteResolver<String> resolver = new VoteResolver<String>();
- resolver.setLocale("jgo");
- final String jgo21 = "\uA78B"; // "[ɑ ɑ́ ɑ̂ ɑ̌ b c d ɛ {ɛ́} {ɛ̂} {ɛ̌} {ɛ̀} {ɛ̄} f ɡ h i í î ǐ j k l m ḿ {m̀} {m̄} n ń ǹ {n̄} ŋ {ŋ́} {ŋ̀} {ŋ̄} ɔ {ɔ́} {ɔ̂} {ɔ̌} p pf s sh t ts u ú û ǔ ʉ {ʉ́} {ʉ̂} {ʉ̌} {ʉ̈} v w ẅ y z Ꞌ]";
+ VoteResolver<String> resolver = new VoteResolver<>();
+ resolver.setLocale(CLDRLocale.getInstance("jgo"), null);
final String jgo22trunk = "\uA78C"; // "[a á â ǎ b c d ɛ {ɛ́} {ɛ̂} {ɛ̌} {ɛ̀} {ɛ̄} f ɡ h i í î ǐ j k l m ḿ {m̀} {m̄} n ń ǹ {n̄} ŋ {ŋ́} {ŋ̀} {ŋ̄} ɔ {ɔ́} {ɔ̂} {ɔ̌} p {pf} s {sh} t {ts} u ú û ǔ ʉ {ʉ́} {ʉ̂} {ʉ̌} {ʉ̈} v w ẅ y z ꞌ]";
resolver.setTrunk(jgo22trunk, Status.approved); // seed/jgo.xml from 22
// trunk
@@ -425,9 +396,9 @@
public void TestVoteStatus() {
VoteResolver.setVoterToInfo(testdata);
- VoteResolver<String> resolver = new VoteResolver<String>();
+ VoteResolver<String> resolver = new VoteResolver<>();
- resolver.setLocale("de");
+ resolver.setLocale(CLDRLocale.getInstance("de"), null);
resolver.setBaileyValue("bailey");
resolver.setTrunk("foo", Status.approved);
resolver.add("fii", toVoterId("adobeE"));
@@ -461,9 +432,9 @@
// XPath: //ldml/localeDisplayNames/territories/territory[@type="BQ"]
// gcvs.openoffice_org.example.com
VoteResolver.setVoterToInfo(testdata);
- VoteResolver<String> resolver = new VoteResolver<String>();
+ VoteResolver<String> resolver = new VoteResolver<>();
- resolver.setLocale("af");
+ resolver.setLocale(CLDRLocale.getInstance("af"), null);
resolver.setTrunk("BQ", Status.missing);
VoteStatus status = resolver
.getStatusForOrganization(Organization.openoffice_org);
@@ -495,12 +466,12 @@
public void TestTotalVotesStatus() {
VoteResolver.setVoterToInfo(testdata);
- VoteResolver<String> resolver = new VoteResolver<String>();
+ VoteResolver<String> resolver = new VoteResolver<>();
Status oldStatus = Status.unconfirmed;
resolver.setBaileyValue("bailey");
- resolver.setLocale("de");
+ resolver.setLocale(CLDRLocale.getInstance("de"), null);
resolver.setTrunk("foo", oldStatus);
resolver.add("zebra", toVoterId("googleV"));
resolver.add("apple", toVoterId("appleV"));
@@ -513,7 +484,7 @@
resolver.clear();
resolver.setBaileyValue("bailey");
- resolver.setLocale("de");
+ resolver.setLocale(CLDRLocale.getInstance("de"), null);
resolver.setTrunk("foo", oldStatus);
resolver.add("zebra", toVoterId("googleV"));
resolver.add("zebra", toVoterId("googleS"));
@@ -528,12 +499,12 @@
public void TestVoteDowngrade() {
VoteResolver.setVoterToInfo(testdata);
- VoteResolver<String> resolver = new VoteResolver<String>();
+ VoteResolver<String> resolver = new VoteResolver<>();
Status oldStatus = Status.unconfirmed;
resolver.setBaileyValue("bailey");
- resolver.setLocale("mt");
+ resolver.setLocale(CLDRLocale.getInstance("mt"), null);
resolver.setTrunk("foo", oldStatus);
resolver.add("aardvark", toVoterId("adobeE"));
resolver.add("zebra", toVoterId("ibmT"));
@@ -544,7 +515,7 @@
resolver.clear();
resolver.setBaileyValue("bailey");
- resolver.setLocale("mt");
+ resolver.setLocale(CLDRLocale.getInstance("mt"), null);
resolver.setTrunk("foo", oldStatus);
resolver.add("aardvark", toVoterId("adobeE"));
resolver.add("zebra", toVoterId("ibmT"));
@@ -558,7 +529,7 @@
resolver.clear();
resolver.setBaileyValue("bailey");
- resolver.setLocale("mt");
+ resolver.setLocale(CLDRLocale.getInstance("mt"), null);
resolver.setTrunk("foo", oldStatus);
resolver.add("aardvark", toVoterId("adobeE"));
resolver.add("zebra", toVoterId("ibmT"), Level.vetter.getVotes()); // NOTE:
@@ -576,7 +547,7 @@
resolver.clear();
resolver.setBaileyValue("bailey");
- resolver.setLocale("mt");
+ resolver.setLocale(CLDRLocale.getInstance("mt"), null);
resolver.setTrunk("foo", oldStatus);
resolver.add("aardvark", toVoterId("adobeE"));
resolver.add("zebra", toVoterId("ibmT"), Level.vetter.getVotes()); // NOTE:
@@ -594,12 +565,12 @@
public void TestResolvedVoteCounts() {
VoteResolver.setVoterToInfo(testdata);
- VoteResolver<String> resolver = new VoteResolver<String>();
+ VoteResolver<String> resolver = new VoteResolver<>();
Status oldStatus = Status.unconfirmed;
resolver.setBaileyValue("bailey");
- resolver.setLocale("de");
+ resolver.setLocale(CLDRLocale.getInstance("de"), null);
resolver.setTrunk("foo", oldStatus);
resolver.add("zebra", toVoterId("googleV"));
resolver.add("apple", toVoterId("appleV"));
@@ -607,29 +578,29 @@
// check that alphabetical wins when votes are equal
Map<String, Long> counts = resolver.getResolvedVoteCounts();
logln(counts.toString());
- assertEquals("", "foo", new ArrayList<String>(counts.keySet()).get(2));
+ assertEquals("", "foo", new ArrayList<>(counts.keySet()).get(2));
resolver.clear();
resolver.setBaileyValue("bailey");
- resolver.setLocale("de");
+ resolver.setLocale(CLDRLocale.getInstance("de"), null);
resolver.setTrunk("foo", Status.approved);
resolver.add("zebra", toVoterId("googleV"));
resolver.add("apple", toVoterId("appleV"));
counts = resolver.getResolvedVoteCounts();
logln(counts.toString());
- assertEquals("", "foo", new ArrayList<String>(counts.keySet()).get(0));
+ assertEquals("", "foo", new ArrayList<>(counts.keySet()).get(0));
resolver.clear();
resolver.setBaileyValue("bailey");
- resolver.setLocale("de");
+ resolver.setLocale(CLDRLocale.getInstance("de"), null);
resolver.setTrunk("foo", Status.approved);
resolver.add("zebra", toVoterId("googleS"));
counts = resolver.getResolvedVoteCounts();
logln(counts.toString());
- assertEquals("", "foo", new ArrayList<String>(counts.keySet()).get(0));
+ assertEquals("", "foo", new ArrayList<>(counts.keySet()).get(0));
}
- private void verifyRequiredVotes(VoteResolver resolver, String locale,
+ private void verifyRequiredVotes(VoteResolver<String> resolver, String locale,
String xpath, int required) {
StringBuilder sb = new StringBuilder();
sb.append("Locale: " + locale);
@@ -647,7 +618,7 @@
public void TestRequiredVotes() {
VoteResolver.setVoterToInfo(testdata);
- VoteResolver<String> resolver = new VoteResolver<String>();
+ VoteResolver<String> resolver = new VoteResolver<>();
verifyRequiredVotes(
resolver,
@@ -712,6 +683,22 @@
"ast",
"//ldml/dates/calendars/calendar[@type=\"gregorian\"]/months/monthContext[@type=\"format\"]/monthWidth[@type=\"wide\"]/month[@type=\"1\"]",
4);
+ }
+
+ /**
+ * In sublocales, for a typical path, the required votes should be 4, except for
+ * the two locales pt_PT and zh_Hant
+ */
+ public void TestSublocaleRequiredVotes() {
+ final Set<String> eightVoteSublocales = new HashSet<>(Arrays.asList("pt_PT", "zh_Hant"));
+ final VoteResolver<String> resolver = new VoteResolver<>();
+ final String path = "//ldml/annotations/annotation[@cp=\"🌏\"][@type=\"tts\"]";
+ for (String locale : SubmissionLocales.CLDR_LOCALES) {
+ if (locale.contains("_")) {
+ int expectedRequiredVotes = eightVoteSublocales.contains(locale) ? 8 : 4;
+ verifyRequiredVotes(resolver, locale, path, expectedRequiredVotes);
+ }
+ }
}
public void TestVoteResolver() {
@@ -719,7 +706,7 @@
// second is the individual in that org, and
// third is the voting weight.
VoteResolver.setVoterToInfo(testdata);
- VoteResolver<String> resolver = new VoteResolver<String>();
+ VoteResolver<String> resolver = new VoteResolver<>();
String[] tests = {
"bailey=BAILEY",
"comment=regression case from John Emmons",
@@ -838,7 +825,7 @@
String baileyValue = null;
List<String> sameVotes = null;
String locale = null;
- Map<Integer, String> values = new TreeMap<Integer, String>();
+ Map<Integer, String> values = new TreeMap<>();
int counter = -1;
for (String test : tests) {
@@ -862,7 +849,7 @@
} else if (name.equalsIgnoreCase("value")) {
expectedValue = value;
} else if (name.equalsIgnoreCase("sameVotes")) {
- sameVotes = value == null ? new ArrayList<String>(0) : Arrays
+ sameVotes = value == null ? new ArrayList<>(0) : Arrays
.asList(value.split(",\\s*"));
} else if (name.equalsIgnoreCase("status")) {
expectedStatus = Status.valueOf(value);
@@ -879,7 +866,7 @@
counter++;
// load the resolver
resolver.setBaileyValue(baileyValue);
- resolver.setLocale(locale);
+ resolver.setLocale(CLDRLocale.getInstance(locale), null);
resolver.setTrunk(oldValue, oldStatus);
for (int voter : values.keySet()) {
resolver.add(values.get(voter), voter);
@@ -919,7 +906,9 @@
assertSpecialLocale("en", SpecialLocales.Type.readonly);
assertSpecialLocale("en_ZZ", SpecialLocales.Type.readonly);
assertSpecialLocale("en_ZZ_PROGRAMMERESE", null); // not defined
- assertSpecialLocale("und", SpecialLocales.Type.scratch);
+ assertSpecialLocale("und", null);
+ assertSpecialLocale("mul", SpecialLocales.Type.scratch);
+ assertSpecialLocale("mul_ZZ", SpecialLocales.Type.scratch);
assertSpecialLocale("und_001", null); // not defined
CLDRLocale sr_Latn = CLDRLocale.getInstance("sr_Latn");
@@ -942,32 +931,32 @@
final String KOREAN_LANGUAGE = "//ldml/localeDisplayNames/languages/language[@type=\"ko\"]";
final String KOREAN_LANGUAGE_STRID = "821c2a2fc5c206d";
final CLDRLocale maltese = CLDRLocale.getInstance("mt");
- assertEquals("base", "http://st.unicode.org/cldr-apps", CLDRConfig
+ assertEquals("base", "https://st.unicode.org/cldr-apps", CLDRConfig
.getInstance().urls().base());
assertEquals(
"locales list",
- "http://st.unicode.org/cldr-apps/v#locales///",
+ "https://st.unicode.org/cldr-apps/v#locales///",
CLDRConfig.getInstance().urls()
.forSpecial(CLDRURLS.Special.Locales));
- assertEquals("maltese", "http://st.unicode.org/cldr-apps/v#/mt//",
+ assertEquals("maltese", "https://st.unicode.org/cldr-apps/v#/mt//",
CLDRConfig.getInstance().urls().forLocale(maltese));
assertEquals("korean in maltese",
- "http://st.unicode.org/cldr-apps/v#/mt//"
+ "https://st.unicode.org/cldr-apps/v#/mt//"
+ KOREAN_LANGUAGE_STRID,
CLDRConfig.getInstance()
.urls().forXpath(maltese, KOREAN_LANGUAGE));
assertEquals("korean in maltese via stringid",
- "http://st.unicode.org/cldr-apps/v#/mt//"
+ "https://st.unicode.org/cldr-apps/v#/mt//"
+ KOREAN_LANGUAGE_STRID,
CLDRConfig.getInstance()
.urls().forXpathHexId(maltese, KOREAN_LANGUAGE_STRID));
assertEquals("south east asia in maltese",
- "http://st.unicode.org/cldr-apps/v#/mt/C_SEAsia/", CLDRConfig
+ "https://st.unicode.org/cldr-apps/v#/mt/C_SEAsia/", CLDRConfig
.getInstance().urls().forPage(maltese, PageId.C_SEAsia));
try {
String ret = CLDRConfig.getInstance().urls()
.forXpathHexId(maltese, KOREAN_LANGUAGE);
- errln("Error- expected forXpathHexId to choke on an xpath but got "
+ errln("Error- expected forXpathHexId to choke on an xpath but got "
+ ret);
} catch (IllegalArgumentException iae) {
logln("GOOD: forXpathHexId Caught expected " + iae);
@@ -975,14 +964,14 @@
try {
String ret = CLDRConfig.getInstance().urls()
.forXpath(maltese, KOREAN_LANGUAGE_STRID);
- errln("Error- expected forXpath to choke on a hexid but got "
+ errln("Error- expected forXpath to choke on a hexid but got "
+ ret);
} catch (IllegalArgumentException iae) {
logln("GOOD: forXpath Caught expected " + iae);
}
assertEquals("korean in maltese - absoluteUrl",
- "http://st.unicode.org/cldr-apps/v#/mt//"
+ "https://st.unicode.org/cldr-apps/v#/mt//"
+ KOREAN_LANGUAGE_STRID,
CLDRConfig.getInstance()
.absoluteUrls().forXpath(maltese, KOREAN_LANGUAGE));
@@ -1004,14 +993,9 @@
logln("Trying Compose");
-// Map<Integer, String> map2 = new HashMap<Integer, String>();
-// Map<Integer, String> map3 = new TreeMap<Integer, String>();
UnicodeMap<String> composed = ((UnicodeMap) SCRIPTS.cloneAsThawed()).composeWith(GC, composer);
String last = "";
for (int i = 0; i < 0x10FFFF; ++i) {
-// if (i == 888) {
-// int debug = 0;
-// }
String comp = composed.getValue(i);
String gc = GC.getValue(i);
String sc = SCRIPTS.getValue(i);
@@ -1040,7 +1024,6 @@
logln("Percentage: " + pf.format(hashTime / umTime));
treeTime = checkUnicodeMapSetTime(warmup, 3);
logln("Percentage: " + pf.format(treeTime / umTime));
- //logln(map1.toString());
if (shortTest) {
return;
@@ -1067,7 +1050,7 @@
private double _checkUnicodeMapSetTime(int iterations, int type) {
UnicodeMap<String> map1 = SCRIPTS;
Map<Integer, String> map2 = map1.putAllCodepointsInto(new HashMap<Integer, String>());
- Map<Integer, String> map3 = new TreeMap<Integer, String>(map2);
+ Map<Integer, String> map3 = new TreeMap<>(map2);
System.gc();
double start = System.currentTimeMillis();
for (int j = 0; j < iterations; ++j)
@@ -1092,9 +1075,9 @@
}
private double checkUnicodeMapGetTime(int iterations, int type) {
- UnicodeMap<String> map1 = new UnicodeMap<String>();
+ UnicodeMap<String> map1 = new UnicodeMap<>();
Map<Integer, String> map2 = map1.putAllCodepointsInto(new HashMap<Integer, String>());
- Map<Integer, String> map3 = new TreeMap<Integer, String>();
+ Map<Integer, String> map3 = new TreeMap<>();
_checkUnicodeMapGetTime(map1, map2, map3, 1, type); // warmup
double result = _checkUnicodeMapGetTime(map1, map2, map3, iterations, type);
logln((type == 0 ? "UnicodeMap" : type == 1 ? "HashMap" : type == 2 ? "ICU" : "TreeMap") + "\t" + nf.format(result));
@@ -1115,7 +1098,6 @@
break;
case 2:
int enumValue = UCharacter.getIntPropertyValue(cp, propEnum);
- //if (enumValue <= 0) continue;
UCharacter.getPropertyValueName(propEnum, enumValue, UProperty.NameChoice.LONG);
break;
case 3:
@@ -1130,7 +1112,7 @@
public void TestStevenTest() {
VoteResolver.setVoterToInfo(testdata);
- VoteResolver<String> resolver = new VoteResolver<String>();
+ VoteResolver<String> resolver = new VoteResolver<>();
String tests[] = {
"bailey=BAILEY",
@@ -1201,8 +1183,8 @@
List<String> sameVotes = null;
String locale = null;
int voteEntries = 0;
- Map<Integer, String> values = new TreeMap<Integer, String>();
- Map<Integer, VoteEntries> valuesMap = new TreeMap<Integer, VoteEntries>();
+ Map<Integer, String> values = new TreeMap<>();
+ Map<Integer, VoteEntries> valuesMap = new TreeMap<>();
int counter = -1;
@@ -1227,7 +1209,7 @@
} else if (name.equalsIgnoreCase("bailey")) {
baileyValue = value;
} else if (name.equalsIgnoreCase("sameVotes")) {
- sameVotes = value == null ? new ArrayList<String>(0) : Arrays
+ sameVotes = value == null ? new ArrayList<>(0) : Arrays
.asList(value.split(",\\s*"));
} else if (name.equalsIgnoreCase("status")) {
expectedStatus = Status.valueOf(value);
@@ -1250,7 +1232,7 @@
counter++;
// load the resolver
resolver.setBaileyValue(baileyValue);
- resolver.setLocale(locale);
+ resolver.setLocale(CLDRLocale.getInstance(locale), null);
resolver.setTrunk(oldValue, oldStatus);
for (int voteEntry : valuesMap.keySet()) {
@@ -1278,7 +1260,7 @@
public void testBaileyVotes() {
VoteResolver.setVoterToInfo(TestUser.TEST_USERS);
- VoteResolver<String> resolver = new VoteResolver<String>();
+ VoteResolver<String> resolver = new VoteResolver<>();
CLDRLocale locale = CLDRLocale.getInstance("de");
PathHeader path = null;
@@ -1390,4 +1372,24 @@
assertEquals("writeBulkInfoHtml", expected, out.toString());
}
+ /**
+ * Verify that VettingViewer.getMissingStatus returns MissingStatus.PRESENT
+ * for a typical path in a well-populated locale
+ *
+ * Ideally we should also test for MissingStatus.DISPUTED, etc.; that's more difficult
+ */
+ public void TestMissingStatus() {
+ final String path = "//ldml/units/unitLength[@type=\"short\"]/unit[@type=\"volume-cup\"]/displayName";
+ final String locale = "fr";
+ final CLDRFile cldrFile = testInfo.getCLDRFile(locale, true);
+ final MissingStatus expected = MissingStatus.PRESENT;
+ // Note: VettingViewer.getMissingStatus reports PRESENT for items with ↑↑↑ and absent if the item
+ // is removed to inherit from root, even though the value obtained is the same in either case;
+ // so for path pick an item that does not have ↑↑↑, otherwise when that item is stripped for
+ // production data the test will fail.
+ final MissingStatus status = VettingViewer.getMissingStatus(cldrFile, path, true /* latin */);
+ if (status != expected) {
+ errln("Got getMissingStatus = " + status.toString() + "; expected " + expected.toString());
+ }
+ }
}
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestValidity.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestValidity.java
similarity index 98%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestValidity.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestValidity.java
index 1f78fc3..cc0a8b6 100644
--- a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestValidity.java
+++ b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestValidity.java
@@ -25,6 +25,7 @@
import org.unicode.cldr.util.StandardCodes.LstrField;
import org.unicode.cldr.util.StandardCodes.LstrType;
import org.unicode.cldr.util.TransliteratorUtilities;
+import org.unicode.cldr.util.Units;
import org.unicode.cldr.util.Validity;
import org.unicode.cldr.util.Validity.Status;
@@ -301,7 +302,15 @@
LstrType lstrType = e1.getKey();
for (Entry<Status, Set<String>> e2 : e1.getValue().entrySet()) {
Status status = e2.getKey();
- for (String code : e2.getValue()) {
+ for (String codeLong : e2.getValue()) {
+ String code = codeLong;
+ if (lstrType == LstrType.unit) {
+ Units.getShort(codeLong);
+ if (code == null) {
+ errln("No short form of " + codeLong);
+ continue;
+ }
+ }
StringBuilder fixed = new StringBuilder();
for (String subcode : HYPHEN_SPLITTER.split(code)) {
if (fixed.length() > 0) {
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestVariantFolder.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestVariantFolder.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestVariantFolder.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestVariantFolder.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestXMLSource.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestXMLSource.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestXMLSource.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestXMLSource.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TextFileReader.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TextFileReader.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TextFileReader.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TextFileReader.java
diff --git a/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TotalOrderBuilder.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TotalOrderBuilder.java
new file mode 100644
index 0000000..2e45a75
--- /dev/null
+++ b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TotalOrderBuilder.java
@@ -0,0 +1,104 @@
+package org.unicode.cldr.unittest;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedHashSet;
+import java.util.List;
+
+import com.google.common.base.Joiner;
+import com.google.common.collect.ImmutableList;
+
+/**
+ * Build a total order from a partial order.
+ * TODO optimize!
+ */
+public class TotalOrderBuilder<T> {
+ private boolean DEBUG = true;
+ private LinkedHashSet<List<T>> rows = new LinkedHashSet<>();
+ static final List<String> TEST = ImmutableList.of("meter", "kilogram");
+
+ public TotalOrderBuilder<T> add(List<T> items) {
+ if (TEST.equals(items)) {
+ int debug = 0;
+ }
+ LinkedHashSet<T> rowCheck = new LinkedHashSet<>(items);
+ if (rowCheck.size() != items.size()) {
+ throw new IllegalArgumentException("Duplicate items in input");
+ }
+ if (!items.isEmpty()) {
+ rows.add(new ArrayList<>(items));
+ }
+ return this;
+ }
+
+ public TotalOrderBuilder<T> add(T... items) {
+ return add(Arrays.asList(items));
+ }
+
+ public List<T> build() {
+ List<T> result = new ArrayList<>();
+ // whenever a first item in a row is not in any other row (other than first position) put it into the result, and remove
+ main:
+ while (true) {
+ boolean failed = false;
+ if (rows.size() == 6) {
+ int debug = 0;
+ }
+
+ for (List<T> row : rows) {
+ if (row.isEmpty()) {
+ continue;
+ }
+ T first = row.iterator().next();
+ if (inNonFirstPosition(first)) {
+ failed = true;
+ continue;
+ }
+ // got through the gauntlet
+ if (DEBUG) {
+ System.out.println("Removing " + first);
+ }
+ result.add(first);
+ removeFromRows(first);
+ failed = false;
+ continue main;
+ }
+ if (failed) {
+ final String items = toString();
+ rows.clear();
+ throw new IllegalArgumentException("incompatible orderings, eg:\n" + items );
+ }
+ rows.clear();
+ return result;
+ }
+ }
+
+ private void removeFromRows(T first) {
+ for (List<T> row : rows) {
+ if (DEBUG && row.contains("kilogram")) {
+ int debug = 0;
+ }
+ row.remove(first);
+ }
+ rows = new LinkedHashSet<>(rows); // consolidate
+ }
+
+ private boolean inNonFirstPosition(T item) {
+ for (List<T> row : rows) {
+ if (DEBUG && row.contains("kilogram")) {
+ int debug = 0;
+ }
+ if (!row.isEmpty()
+ && row.contains(item)
+ && !row.iterator().next().equals(item)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public String toString() {
+ return Joiner.on('\n').join(new LinkedHashSet<>(rows));
+ }
+}
\ No newline at end of file
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/UnicodeSetPrettyPrinterTest.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/UnicodeSetPrettyPrinterTest.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/UnicodeSetPrettyPrinterTest.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/UnicodeSetPrettyPrinterTest.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/VoteEntries.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/VoteEntries.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/VoteEntries.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/VoteEntries.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/XLocaleDistanceTest.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/XLocaleDistanceTest.java
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/XLocaleDistanceTest.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/XLocaleDistanceTest.java
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/XLocaleMatcherTest.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/XLocaleMatcherTest.java
similarity index 92%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/XLocaleMatcherTest.java
rename to tools/cldr-code/src/test/java/org/unicode/cldr/unittest/XLocaleMatcherTest.java
index 1efcc81..9fc74ab 100644
--- a/tools/cldr-unittest/src/org/unicode/cldr/unittest/XLocaleMatcherTest.java
+++ b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/XLocaleMatcherTest.java
@@ -185,7 +185,7 @@
final String shortList = "en, sv";
final String longList = "af, am, ar, az, be, bg, bn, bs, ca, cs, cy, cy, da, de, el, en, en-GB, es, es-419, et, eu, fa, fi, fil, fr, ga, gl, gu, hi, hr, hu, hy, id, is, it, iw, ja, ka, kk, km, kn, ko, ky, lo, lt, lv, mk, ml, mn, mr, ms, my, ne, nl, no, pa, pl, pt, pt-PT, ro, ru, si, sk, sl, sq, sr, sr-Latn, sv, sw, ta, te, th, tr, uk, ur, uz, vi, zh-CN, zh-TW, zu";
- final String veryLongList = "af, af_NA, af_ZA, agq, agq_CM, ak, ak_GH, am, am_ET, ar, ar_001, ar_AE, ar_BH, ar_DJ, ar_DZ, ar_EG, ar_EH, ar_ER, ar_IL, ar_IQ, ar_JO, ar_KM, ar_KW, ar_LB, ar_LY, ar_MA, ar_MR, ar_OM, ar_PS, ar_QA, ar_SA, ar_SD, ar_SO, ar_SS, ar_SY, ar_TD, ar_TN, ar_YE, as, as_IN, asa, asa_TZ, ast, ast_ES, az, az_Cyrl, az_Cyrl_AZ, az_Latn, az_Latn_AZ, bas, bas_CM, be, be_BY, bem, bem_ZM, bez, bez_TZ, bg, bg_BG, bm, bm_ML, bn, bn_BD, bn_IN, bo, bo_CN, bo_IN, br, br_FR, brx, brx_IN, bs, bs_Cyrl, bs_Cyrl_BA, bs_Latn, bs_Latn_BA, ca, ca_AD, ca_ES, ca_ES_VALENCIA, ca_FR, ca_IT, ce, ce_RU, cgg, cgg_UG, chr, chr_US, ckb, ckb_IQ, ckb_IR, cs, cs_CZ, cu, cu_RU, cy, cy_GB, da, da_DK, da_GL, dav, dav_KE, de, de_AT, de_BE, de_CH, de_DE, de_LI, de_LU, dje, dje_NE, dsb, dsb_DE, dua, dua_CM, dyo, dyo_SN, dz, dz_BT, ebu, ebu_KE, ee, ee_GH, ee_TG, el, el_CY, el_GR, en, en_001, en_150, en_AG, en_AI, en_AS, en_AT, en_AU, en_BB, en_BE, en_BI, en_BM, en_BS, en_BW, en_BZ, en_CA, en_CC, en_CH, en_CK, en_CM, en_CX, en_CY, en_DE, en_DG, en_DK, en_DM, en_ER, en_FI, en_FJ, en_FK, en_FM, en_GB, en_GD, en_GG, en_GH, en_GI, en_GM, en_GU, en_GY, en_HK, en_IE, en_IL, en_IM, en_IN, en_IO, en_JE, en_JM, en_KE, en_KI, en_KN, en_KY, en_LC, en_LR, en_LS, en_MG, en_MH, en_MO, en_MP, en_MS, en_MT, en_MU, en_MW, en_MY, en_NA, en_NF, en_NG, en_NL, en_NR, en_NU, en_NZ, en_PG, en_PH, en_PK, en_PN, en_PR, en_PW, en_RW, en_SB, en_SC, en_SD, en_SE, en_SG, en_SH, en_SI, en_SL, en_SS, en_SX, en_SZ, en_TC, en_TK, en_TO, en_TT, en_TV, en_TZ, en_UG, en_UM, en_US, en_US_POSIX, en_VC, en_VG, en_VI, en_VU, en_WS, en_ZA, en_ZM, en_ZW, eo, eo_001, es, es_419, es_AR, es_BO, es_CL, es_CO, es_CR, es_CU, es_DO, es_EA, es_EC, es_ES, es_GQ, es_GT, es_HN, es_IC, es_MX, es_NI, es_PA, es_PE, es_PH, es_PR, es_PY, es_SV, es_US, es_UY, es_VE, et, et_EE, eu, eu_ES, ewo, ewo_CM, fa, fa_AF, fa_IR, ff, ff_CM, ff_GN, ff_MR, ff_SN, fi, fi_FI, fil, fil_PH, fo, fo_DK, fo_FO, fr, fr_BE, fr_BF, fr_BI, fr_BJ, fr_BL, fr_CA, fr_CD, fr_CF, fr_CG, fr_CH, fr_CI, fr_CM, fr_DJ, fr_DZ, fr_FR, fr_GA, fr_GF, fr_GN, fr_GP, fr_GQ, fr_HT, fr_KM, fr_LU, fr_MA, fr_MC, fr_MF, fr_MG, fr_ML, fr_MQ, fr_MR, fr_MU, fr_NC, fr_NE, fr_PF, fr_PM, fr_RE, fr_RW, fr_SC, fr_SN, fr_SY, fr_TD, fr_TG, fr_TN, fr_VU, fr_WF, fr_YT, fur, fur_IT, fy, fy_NL, ga, ga_IE, gd, gd_GB, gl, gl_ES, gsw, gsw_CH, gsw_FR, gsw_LI, gu, gu_IN, guz, guz_KE, gv, gv_IM, ha, ha_GH, ha_NE, ha_NG, haw, haw_US, he, he_IL, hi, hi_IN, hr, hr_BA, hr_HR, hsb, hsb_DE, hu, hu_HU, hy, hy_AM, id, id_ID, ig, ig_NG, ii, ii_CN, is, is_IS, it, it_CH, it_IT, it_SM, ja, ja_JP, jgo, jgo_CM, jmc, jmc_TZ, ka, ka_GE, kab, kab_DZ, kam, kam_KE, kde, kde_TZ, kea, kea_CV, khq, khq_ML, ki, ki_KE, kk, kk_KZ, kkj, kkj_CM, kl, kl_GL, kln, kln_KE, km, km_KH, kn, kn_IN, ko, ko_KP, ko_KR, kok, kok_IN, ks, ks_IN, ksb, ksb_TZ, ksf, ksf_CM, ksh, ksh_DE, kw, kw_GB, ky, ky_KG, lag, lag_TZ, lb, lb_LU, lg, lg_UG, lkt, lkt_US, ln, ln_AO, ln_CD, ln_CF, ln_CG, lo, lo_LA, lrc, lrc_IQ, lrc_IR, lt, lt_LT, lu, lu_CD, luo, luo_KE, luy, luy_KE, lv, lv_LV, mas, mas_KE, mas_TZ, mer, mer_KE, mfe, mfe_MU, mg, mg_MG, mgh, mgh_MZ, mgo, mgo_CM, mk, mk_MK, ml, ml_IN, mn, mn_MN, mr, mr_IN, ms, ms_BN, ms_MY, ms_SG, mt, mt_MT, mua, mua_CM, my, my_MM, mzn, mzn_IR, naq, naq_NA, nb, nb_NO, nb_SJ, nd, nd_ZW, ne, ne_IN, ne_NP, nl, nl_AW, nl_BE, nl_BQ, nl_CW, nl_NL, nl_SR, nl_SX, nmg, nmg_CM, nn, nn_NO, nnh, nnh_CM, nus, nus_SS, nyn, nyn_UG, om, om_ET, om_KE, or, or_IN, os, os_GE, os_RU, pa, pa_Arab, pa_Arab_PK, pa_Guru, pa_Guru_IN, pl, pl_PL, prg, prg_001, ps, ps_AF, pt, pt_AO, pt_BR, pt_CV, pt_GW, pt_MO, pt_MZ, pt_PT, pt_ST, pt_TL, qu, qu_BO, qu_EC, qu_PE, rm, rm_CH, rn, rn_BI, ro, ro_MD, ro_RO, rof, rof_TZ, root, ru, ru_BY, ru_KG, ru_KZ, ru_MD, ru_RU, ru_UA, rw, rw_RW, rwk, rwk_TZ, sah, sah_RU, saq, saq_KE, sbp, sbp_TZ, se, se_FI, se_NO, se_SE, seh, seh_MZ, ses, ses_ML, sg, sg_CF, shi, shi_Latn, shi_Latn_MA, shi_Tfng, shi_Tfng_MA, si, si_LK, sk, sk_SK, sl, sl_SI, smn, smn_FI, sn, sn_ZW, so, so_DJ, so_ET, so_KE, so_SO, sq, sq_AL, sq_MK, sq_XK, sr, sr_Cyrl, sr_Cyrl_BA, sr_Cyrl_ME, sr_Cyrl_RS, sr_Cyrl_XK, sr_Latn, sr_Latn_BA, sr_Latn_ME, sr_Latn_RS, sr_Latn_XK, sv, sv_AX, sv_FI, sv_SE, sw, sw_CD, sw_KE, sw_TZ, sw_UG, ta, ta_IN, ta_LK, ta_MY, ta_SG, te, te_IN, teo, teo_KE, teo_UG, th, th_TH, ti, ti_ER, ti_ET, tk, tk_TM, to, to_TO, tr, tr_CY, tr_TR, twq, twq_NE, tzm, tzm_MA, ug, ug_CN, uk, uk_UA, ur, ur_IN, ur_PK, uz, uz_Arab, uz_Arab_AF, uz_Cyrl, uz_Cyrl_UZ, uz_Latn, uz_Latn_UZ, vai, vai_Latn, vai_Latn_LR, vai_Vaii, vai_Vaii_LR, vi, vi_VN, vo, vo_001, vun, vun_TZ, wae, wae_CH, xog, xog_UG, yav, yav_CM, yi, yi_001, yo, yo_BJ, yo_NG, zgh, zgh_MA, zh, zh_Hans, zh_Hans_CN, zh_Hans_HK, zh_Hans_MO, zh_Hans_SG, zh_Hant, zh_Hant_HK, zh_Hant_MO, zh_Hant_TW, zu, zu_ZA";
+ final String veryLongList = "af, af_NA, af_ZA, agq, agq_CM, ak, ak_GH, am, am_ET, ar, ar_001, ar_AE, ar_BH, ar_DJ, ar_DZ, ar_EG, ar_EH, ar_ER, ar_IL, ar_IQ, ar_JO, ar_KM, ar_KW, ar_LB, ar_LY, ar_MA, ar_MR, ar_OM, ar_PS, ar_QA, ar_SA, ar_SD, ar_SO, ar_SS, ar_SY, ar_TD, ar_TN, ar_YE, as, as_IN, asa, asa_TZ, ast, ast_ES, az, az_Cyrl, az_Cyrl_AZ, az_Latn, az_Latn_AZ, bas, bas_CM, be, be_BY, bem, bem_ZM, bez, bez_TZ, bg, bg_BG, bm, bm_ML, bn, bn_BD, bn_IN, bo, bo_CN, bo_IN, br, br_FR, brx, brx_IN, bs, bs_Cyrl, bs_Cyrl_BA, bs_Latn, bs_Latn_BA, ca, ca_AD, ca_ES, ca_ES_VALENCIA, ca_FR, ca_IT, ce, ce_RU, cgg, cgg_UG, chr, chr_US, ckb, ckb_IQ, ckb_IR, cs, cs_CZ, cu, cu_RU, cy, cy_GB, da, da_DK, da_GL, dav, dav_KE, de, de_AT, de_BE, de_CH, de_DE, de_LI, de_LU, dje, dje_NE, dsb, dsb_DE, dua, dua_CM, dyo, dyo_SN, dz, dz_BT, ebu, ebu_KE, ee, ee_GH, ee_TG, el, el_CY, el_GR, en, en_001, en_150, en_AG, en_AI, en_AS, en_AT, en_AU, en_BB, en_BE, en_BI, en_BM, en_BS, en_BW, en_BZ, en_CA, en_CC, en_CH, en_CK, en_CM, en_CX, en_CY, en_DE, en_DG, en_DK, en_DM, en_ER, en_FI, en_FJ, en_FK, en_FM, en_GB, en_GD, en_GG, en_GH, en_GI, en_GM, en_GU, en_GY, en_HK, en_IE, en_IL, en_IM, en_IN, en_IO, en_JE, en_JM, en_KE, en_KI, en_KN, en_KY, en_LC, en_LR, en_LS, en_MG, en_MH, en_MO, en_MP, en_MS, en_MT, en_MU, en_MW, en_MY, en_NA, en_NF, en_NG, en_NL, en_NR, en_NU, en_NZ, en_PG, en_PH, en_PK, en_PN, en_PR, en_PW, en_RW, en_SB, en_SC, en_SD, en_SE, en_SG, en_SH, en_SI, en_SL, en_SS, en_SX, en_SZ, en_TC, en_TK, en_TO, en_TT, en_TV, en_TZ, en_UG, en_UM, en_US, en_US_POSIX, en_VC, en_VG, en_VI, en_VU, en_WS, en_ZA, en_ZM, en_ZW, eo, eo_001, es, es_419, es_AR, es_BO, es_CL, es_CO, es_CR, es_CU, es_DO, es_EA, es_EC, es_ES, es_GQ, es_GT, es_HN, es_IC, es_MX, es_NI, es_PA, es_PE, es_PH, es_PR, es_PY, es_SV, es_US, es_UY, es_VE, et, et_EE, eu, eu_ES, ewo, ewo_CM, fa, fa_AF, fa_IR, ff, ff_CM, ff_GN, ff_MR, ff_SN, fi, fi_FI, fil, fil_PH, fo, fo_DK, fo_FO, fr, fr_BE, fr_BF, fr_BI, fr_BJ, fr_BL, fr_CA, fr_CD, fr_CF, fr_CG, fr_CH, fr_CI, fr_CM, fr_DJ, fr_DZ, fr_FR, fr_GA, fr_GF, fr_GN, fr_GP, fr_GQ, fr_HT, fr_KM, fr_LU, fr_MA, fr_MC, fr_MF, fr_MG, fr_ML, fr_MQ, fr_MR, fr_MU, fr_NC, fr_NE, fr_PF, fr_PM, fr_RE, fr_RW, fr_SC, fr_SN, fr_SY, fr_TD, fr_TG, fr_TN, fr_VU, fr_WF, fr_YT, fur, fur_IT, fy, fy_NL, ga, ga_IE, gd, gd_GB, gl, gl_ES, gsw, gsw_CH, gsw_FR, gsw_LI, gu, gu_IN, guz, guz_KE, gv, gv_IM, ha, ha_GH, ha_NE, ha_NG, haw, haw_US, he, he_IL, hi, hi_IN, hr, hr_BA, hr_HR, hsb, hsb_DE, hu, hu_HU, hy, hy_AM, id, id_ID, ig, ig_NG, ii, ii_CN, is, is_IS, it, it_CH, it_IT, it_SM, ja, ja_JP, jgo, jgo_CM, jmc, jmc_TZ, ka, ka_GE, kab, kab_DZ, kam, kam_KE, kde, kde_TZ, kea, kea_CV, khq, khq_ML, ki, ki_KE, kk, kk_KZ, kkj, kkj_CM, kl, kl_GL, kln, kln_KE, km, km_KH, kn, kn_IN, ko, ko_KP, ko_KR, kok, kok_IN, ks, ks_IN, ksb, ksb_TZ, ksf, ksf_CM, ksh, ksh_DE, kw, kw_GB, ky, ky_KG, lag, lag_TZ, lb, lb_LU, lg, lg_UG, lkt, lkt_US, ln, ln_AO, ln_CD, ln_CF, ln_CG, lo, lo_LA, lrc, lrc_IQ, lrc_IR, lt, lt_LT, lu, lu_CD, luo, luo_KE, luy, luy_KE, lv, lv_LV, mas, mas_KE, mas_TZ, mer, mer_KE, mfe, mfe_MU, mg, mg_MG, mgh, mgh_MZ, mgo, mgo_CM, mk, mk_MK, ml, ml_IN, mn, mn_MN, mr, mr_IN, ms, ms_BN, ms_MY, ms_SG, mt, mt_MT, mua, mua_CM, my, my_MM, mzn, mzn_IR, naq, naq_NA, nb, nb_NO, nb_SJ, nd, nd_ZW, ne, ne_IN, ne_NP, nl, nl_AW, nl_BE, nl_BQ, nl_CW, nl_NL, nl_SR, nl_SX, nmg, nmg_CM, nn, nn_NO, nnh, nnh_CM, no, nus, nus_SS, nyn, nyn_UG, om, om_ET, om_KE, or, or_IN, os, os_GE, os_RU, pa, pa_Arab, pa_Arab_PK, pa_Guru, pa_Guru_IN, pl, pl_PL, prg, prg_001, ps, ps_AF, pt, pt_AO, pt_BR, pt_CV, pt_GW, pt_MO, pt_MZ, pt_PT, pt_ST, pt_TL, qu, qu_BO, qu_EC, qu_PE, rm, rm_CH, rn, rn_BI, ro, ro_MD, ro_RO, rof, rof_TZ, root, ru, ru_BY, ru_KG, ru_KZ, ru_MD, ru_RU, ru_UA, rw, rw_RW, rwk, rwk_TZ, sah, sah_RU, saq, saq_KE, sbp, sbp_TZ, se, se_FI, se_NO, se_SE, seh, seh_MZ, ses, ses_ML, sg, sg_CF, shi, shi_Latn, shi_Latn_MA, shi_Tfng, shi_Tfng_MA, si, si_LK, sk, sk_SK, sl, sl_SI, smn, smn_FI, sn, sn_ZW, so, so_DJ, so_ET, so_KE, so_SO, sq, sq_AL, sq_MK, sq_XK, sr, sr_Cyrl, sr_Cyrl_BA, sr_Cyrl_ME, sr_Cyrl_RS, sr_Cyrl_XK, sr_Latn, sr_Latn_BA, sr_Latn_ME, sr_Latn_RS, sr_Latn_XK, sv, sv_AX, sv_FI, sv_SE, sw, sw_CD, sw_KE, sw_TZ, sw_UG, ta, ta_IN, ta_LK, ta_MY, ta_SG, te, te_IN, teo, teo_KE, teo_UG, th, th_TH, ti, ti_ER, ti_ET, tk, tk_TM, to, to_TO, tr, tr_CY, tr_TR, twq, twq_NE, tzm, tzm_MA, ug, ug_CN, uk, uk_UA, ur, ur_IN, ur_PK, uz, uz_Arab, uz_Arab_AF, uz_Cyrl, uz_Cyrl_UZ, uz_Latn, uz_Latn_UZ, vai, vai_Latn, vai_Latn_LR, vai_Vaii, vai_Vaii_LR, vi, vi_VN, vo, vo_001, vun, vun_TZ, wae, wae_CH, xog, xog_UG, yav, yav_CM, yi, yi_001, yo, yo_BJ, yo_NG, zgh, zgh_MA, zh, zh_Hans, zh_Hans_CN, zh_Hans_HK, zh_Hans_MO, zh_Hans_SG, zh_Hant, zh_Hant_HK, zh_Hant_MO, zh_Hant_TW, zu, zu_ZA";
final XLocaleMatcher matcherShort = newXLocaleMatcher(shortList);
final XLocaleMatcher matcherLong = newXLocaleMatcher(longList);
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCasingTransforms.txt b/tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/TestCasingTransforms.txt
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCasingTransforms.txt
rename to tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/TestCasingTransforms.txt
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCoverageLevel.txt b/tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/TestCoverageLevel.txt
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestCoverageLevel.txt
rename to tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/TestCoverageLevel.txt
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/TestExamples.txt b/tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/TestExamples.txt
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/TestExamples.txt
rename to tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/TestExamples.txt
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/UnitPreferenceSource.txt b/tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/UnitPreferenceSource.txt
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/UnitPreferenceSource.txt
rename to tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/UnitPreferenceSource.txt
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/data/TestCLDRLocale.dtd b/tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/data/TestCLDRLocale.dtd
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/data/TestCLDRLocale.dtd
rename to tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/data/TestCLDRLocale.dtd
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/data/TestCLDRLocale.xml b/tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/data/TestCLDRLocale.xml
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/data/TestCLDRLocale.xml
rename to tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/data/TestCLDRLocale.xml
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/data/common/dtd/ldml.dtd b/tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/data/common/dtd/ldml.dtd
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/data/common/dtd/ldml.dtd
rename to tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/data/common/dtd/ldml.dtd
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/data/common/main/root.xml b/tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/data/common/main/root.xml
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/data/common/main/root.xml
rename to tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/data/common/main/root.xml
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/data/localeDistanceTest.txt b/tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/data/localeDistanceTest.txt
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/data/localeDistanceTest.txt
rename to tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/data/localeDistanceTest.txt
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/data/localeMatcherTest.txt b/tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/data/localeMatcherTest.txt
similarity index 91%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/data/localeMatcherTest.txt
rename to tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/data/localeMatcherTest.txt
index 41ba341..ebb5785 100644
--- a/tools/cldr-unittest/src/org/unicode/cldr/unittest/data/localeMatcherTest.txt
+++ b/tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/data/localeMatcherTest.txt
@@ -297,7 +297,7 @@
en, sv ; sv ; sv
af, am, ar, az, be, bg, bn, bs, ca, cs, cy, cy, da, de, el, en, en-GB, es, es-419, et, eu, fa, fi, fil, fr, ga, gl, gu, hi, hr, hu, hy, id, is, it, iw, ja, ka, kk, km, kn, ko, ky, lo, lt, lv, mk, ml, mn, mr, ms, my, ne, nl, no, pa, pl, pt, pt-PT, ro, ru, si, sk, sl, sq, sr, sr-Latn, sv, sw, ta, te, th, tr, uk, ur, uz, vi, zh-CN, zh-TW, zu ; sv ; sv
-af, af-NA, af-ZA, agq, agq-CM, ak, ak-GH, am, am-ET, ar, ar-001, ar-AE, ar-BH, ar-DJ, ar-DZ, ar-EG, ar-EH, ar-ER, ar-IL, ar-IQ, ar-JO, ar-KM, ar-KW, ar-LB, ar-LY, ar-MA, ar-MR, ar-OM, ar-PS, ar-QA, ar-SA, ar-SD, ar-SO, ar-SS, ar-SY, ar-TD, ar-TN, ar-YE, as, as-IN, asa, asa-TZ, ast, ast-ES, az, az-Cyrl, az-Cyrl-AZ, az-Latn, az-Latn-AZ, bas, bas-CM, be, be-BY, bem, bem-ZM, bez, bez-TZ, bg, bg-BG, bm, bm-ML, bn, bn-BD, bn-IN, bo, bo-CN, bo-IN, br, br-FR, brx, brx-IN, bs, bs-Cyrl, bs-Cyrl-BA, bs-Latn, bs-Latn-BA, ca, ca-AD, ca-ES, ca-ES-VALENCIA, ca-FR, ca-IT, ce, ce-RU, cgg, cgg-UG, chr, chr-US, ckb, ckb-IQ, ckb-IR, cs, cs-CZ, cu, cu-RU, cy, cy-GB, da, da-DK, da-GL, dav, dav-KE, de, de-AT, de-BE, de-CH, de-DE, de-LI, de-LU, dje, dje-NE, dsb, dsb-DE, dua, dua-CM, dyo, dyo-SN, dz, dz-BT, ebu, ebu-KE, ee, ee-GH, ee-TG, el, el-CY, el-GR, en, en-001, en-150, en-AG, en-AI, en-AS, en-AT, en-AU, en-BB, en-BE, en-BI, en-BM, en-BS, en-BW, en-BZ, en-CA, en-CC, en-CH, en-CK, en-CM, en-CX, en-CY, en-DE, en-DG, en-DK, en-DM, en-ER, en-FI, en-FJ, en-FK, en-FM, en-GB, en-GD, en-GG, en-GH, en-GI, en-GM, en-GU, en-GY, en-HK, en-IE, en-IL, en-IM, en-IN, en-IO, en-JE, en-JM, en-KE, en-KI, en-KN, en-KY, en-LC, en-LR, en-LS, en-MG, en-MH, en-MO, en-MP, en-MS, en-MT, en-MU, en-MW, en-MY, en-NA, en-NF, en-NG, en-NL, en-NR, en-NU, en-NZ, en-PG, en-PH, en-PK, en-PN, en-PR, en-PW, en-RW, en-SB, en-SC, en-SD, en-SE, en-SG, en-SH, en-SI, en-SL, en-SS, en-SX, en-SZ, en-TC, en-TK, en-TO, en-TT, en-TV, en-TZ, en-UG, en-UM, en-US, en-US-POSIX, en-VC, en-VG, en-VI, en-VU, en-WS, en-ZA, en-ZM, en-ZW, eo, eo-001, es, es-419, es-AR, es-BO, es-CL, es-CO, es-CR, es-CU, es-DO, es-EA, es-EC, es-ES, es-GQ, es-GT, es-HN, es-IC, es-MX, es-NI, es-PA, es-PE, es-PH, es-PR, es-PY, es-SV, es-US, es-UY, es-VE, et, et-EE, eu, eu-ES, ewo, ewo-CM, fa, fa-AF, fa-IR, ff, ff-CM, ff-GN, ff-MR, ff-SN, fi, fi-FI, fil, fil-PH, fo, fo-DK, fo-FO, fr, fr-BE, fr-BF, fr-BI, fr-BJ, fr-BL, fr-CA, fr-CD, fr-CF, fr-CG, fr-CH, fr-CI, fr-CM, fr-DJ, fr-DZ, fr-FR, fr-GA, fr-GF, fr-GN, fr-GP, fr-GQ, fr-HT, fr-KM, fr-LU, fr-MA, fr-MC, fr-MF, fr-MG, fr-ML, fr-MQ, fr-MR, fr-MU, fr-NC, fr-NE, fr-PF, fr-PM, fr-RE, fr-RW, fr-SC, fr-SN, fr-SY, fr-TD, fr-TG, fr-TN, fr-VU, fr-WF, fr-YT, fur, fur-IT, fy, fy-NL, ga, ga-IE, gd, gd-GB, gl, gl-ES, gsw, gsw-CH, gsw-FR, gsw-LI, gu, gu-IN, guz, guz-KE, gv, gv-IM, ha, ha-GH, ha-NE, ha-NG, haw, haw-US, he, he-IL, hi, hi-IN, hr, hr-BA, hr-HR, hsb, hsb-DE, hu, hu-HU, hy, hy-AM, id, id-ID, ig, ig-NG, ii, ii-CN, is, is-IS, it, it-CH, it-IT, it-SM, ja, ja-JP, jgo, jgo-CM, jmc, jmc-TZ, ka, ka-GE, kab, kab-DZ, kam, kam-KE, kde, kde-TZ, kea, kea-CV, khq, khq-ML, ki, ki-KE, kk, kk-KZ, kkj, kkj-CM, kl, kl-GL, kln, kln-KE, km, km-KH, kn, kn-IN, ko, ko-KP, ko-KR, kok, kok-IN, ks, ks-IN, ksb, ksb-TZ, ksf, ksf-CM, ksh, ksh-DE, kw, kw-GB, ky, ky-KG, lag, lag-TZ, lb, lb-LU, lg, lg-UG, lkt, lkt-US, ln, ln-AO, ln-CD, ln-CF, ln-CG, lo, lo-LA, lrc, lrc-IQ, lrc-IR, lt, lt-LT, lu, lu-CD, luo, luo-KE, luy, luy-KE, lv, lv-LV, mas, mas-KE, mas-TZ, mer, mer-KE, mfe, mfe-MU, mg, mg-MG, mgh, mgh-MZ, mgo, mgo-CM, mk, mk-MK, ml, ml-IN, mn, mn-MN, mr, mr-IN, ms, ms-BN, ms-MY, ms-SG, mt, mt-MT, mua, mua-CM, my, my-MM, mzn, mzn-IR, naq, naq-NA, nb, nb-NO, nb-SJ, nd, nd-ZW, ne, ne-IN, ne-NP, nl, nl-AW, nl-BE, nl-BQ, nl-CW, nl-NL, nl-SR, nl-SX, nmg, nmg-CM, nn, nn-NO, nnh, nnh-CM, nus, nus-SS, nyn, nyn-UG, om, om-ET, om-KE, or, or-IN, os, os-GE, os-RU, pa, pa-Arab, pa-Arab-PK, pa-Guru, pa-Guru-IN, pl, pl-PL, prg, prg-001, ps, ps-AF, pt, pt-AO, pt-BR, pt-CV, pt-GW, pt-MO, pt-MZ, pt-PT, pt-ST, pt-TL, qu, qu-BO, qu-EC, qu-PE, rm, rm-CH, rn, rn-BI, ro, ro-MD, ro-RO, rof, rof-TZ, root, ru, ru-BY, ru-KG, ru-KZ, ru-MD, ru-RU, ru-UA, rw, rw-RW, rwk, rwk-TZ, sah, sah-RU, saq, saq-KE, sbp, sbp-TZ, se, se-FI, se-NO, se-SE, seh, seh-MZ, ses, ses-ML, sg, sg-CF, shi, shi-Latn, shi-Latn-MA, shi-Tfng, shi-Tfng-MA, si, si-LK, sk, sk-SK, sl, sl-SI, smn, smn-FI, sn, sn-ZW, so, so-DJ, so-ET, so-KE, so-SO, sq, sq-AL, sq-MK, sq-XK, sr, sr-Cyrl, sr-Cyrl-BA, sr-Cyrl-ME, sr-Cyrl-RS, sr-Cyrl-XK, sr-Latn, sr-Latn-BA, sr-Latn-ME, sr-Latn-RS, sr-Latn-XK, sv, sv-AX, sv-FI, sv-SE, sw, sw-CD, sw-KE, sw-TZ, sw-UG, ta, ta-IN, ta-LK, ta-MY, ta-SG, te, te-IN, teo, teo-KE, teo-UG, th, th-TH, ti, ti-ER, ti-ET, tk, tk-TM, to, to-TO, tr, tr-CY, tr-TR, twq, twq-NE, tzm, tzm-MA, ug, ug-CN, uk, uk-UA, ur, ur-IN, ur-PK, uz, uz-Arab, uz-Arab-AF, uz-Cyrl, uz-Cyrl-UZ, uz-Latn, uz-Latn-UZ, vai, vai-Latn, vai-Latn-LR, vai-Vaii, vai-Vaii-LR, vi, vi-VN, vo, vo-001, vun, vun-TZ, wae, wae-CH, xog, xog-UG, yav, yav-CM, yi, yi-001, yo, yo-BJ, yo-NG, zgh, zgh-MA, zh, zh-Hans, zh-Hans-CN, zh-Hans-HK, zh-Hans-MO, zh-Hans-SG, zh-Hant, zh-Hant-HK, zh-Hant-MO, zh-Hant-TW, zu, zu-ZA ; sv ; sv
+af, af-NA, af-ZA, agq, agq-CM, ak, ak-GH, am, am-ET, ar, ar-001, ar-AE, ar-BH, ar-DJ, ar-DZ, ar-EG, ar-EH, ar-ER, ar-IL, ar-IQ, ar-JO, ar-KM, ar-KW, ar-LB, ar-LY, ar-MA, ar-MR, ar-OM, ar-PS, ar-QA, ar-SA, ar-SD, ar-SO, ar-SS, ar-SY, ar-TD, ar-TN, ar-YE, as, as-IN, asa, asa-TZ, ast, ast-ES, az, az-Cyrl, az-Cyrl-AZ, az-Latn, az-Latn-AZ, bas, bas-CM, be, be-BY, bem, bem-ZM, bez, bez-TZ, bg, bg-BG, bm, bm-ML, bn, bn-BD, bn-IN, bo, bo-CN, bo-IN, br, br-FR, brx, brx-IN, bs, bs-Cyrl, bs-Cyrl-BA, bs-Latn, bs-Latn-BA, ca, ca-AD, ca-ES, ca-ES-VALENCIA, ca-FR, ca-IT, ce, ce-RU, cgg, cgg-UG, chr, chr-US, ckb, ckb-IQ, ckb-IR, cs, cs-CZ, cu, cu-RU, cy, cy-GB, da, da-DK, da-GL, dav, dav-KE, de, de-AT, de-BE, de-CH, de-DE, de-LI, de-LU, dje, dje-NE, dsb, dsb-DE, dua, dua-CM, dyo, dyo-SN, dz, dz-BT, ebu, ebu-KE, ee, ee-GH, ee-TG, el, el-CY, el-GR, en, en-001, en-150, en-AG, en-AI, en-AS, en-AT, en-AU, en-BB, en-BE, en-BI, en-BM, en-BS, en-BW, en-BZ, en-CA, en-CC, en-CH, en-CK, en-CM, en-CX, en-CY, en-DE, en-DG, en-DK, en-DM, en-ER, en-FI, en-FJ, en-FK, en-FM, en-GB, en-GD, en-GG, en-GH, en-GI, en-GM, en-GU, en-GY, en-HK, en-IE, en-IL, en-IM, en-IN, en-IO, en-JE, en-JM, en-KE, en-KI, en-KN, en-KY, en-LC, en-LR, en-LS, en-MG, en-MH, en-MO, en-MP, en-MS, en-MT, en-MU, en-MW, en-MY, en-NA, en-NF, en-NG, en-NL, en-NR, en-NU, en-NZ, en-PG, en-PH, en-PK, en-PN, en-PR, en-PW, en-RW, en-SB, en-SC, en-SD, en-SE, en-SG, en-SH, en-SI, en-SL, en-SS, en-SX, en-SZ, en-TC, en-TK, en-TO, en-TT, en-TV, en-TZ, en-UG, en-UM, en-US, en-US-POSIX, en-VC, en-VG, en-VI, en-VU, en-WS, en-ZA, en-ZM, en-ZW, eo, eo-001, es, es-419, es-AR, es-BO, es-CL, es-CO, es-CR, es-CU, es-DO, es-EA, es-EC, es-ES, es-GQ, es-GT, es-HN, es-IC, es-MX, es-NI, es-PA, es-PE, es-PH, es-PR, es-PY, es-SV, es-US, es-UY, es-VE, et, et-EE, eu, eu-ES, ewo, ewo-CM, fa, fa-AF, fa-IR, ff, ff-CM, ff-GN, ff-MR, ff-SN, fi, fi-FI, fil, fil-PH, fo, fo-DK, fo-FO, fr, fr-BE, fr-BF, fr-BI, fr-BJ, fr-BL, fr-CA, fr-CD, fr-CF, fr-CG, fr-CH, fr-CI, fr-CM, fr-DJ, fr-DZ, fr-FR, fr-GA, fr-GF, fr-GN, fr-GP, fr-GQ, fr-HT, fr-KM, fr-LU, fr-MA, fr-MC, fr-MF, fr-MG, fr-ML, fr-MQ, fr-MR, fr-MU, fr-NC, fr-NE, fr-PF, fr-PM, fr-RE, fr-RW, fr-SC, fr-SN, fr-SY, fr-TD, fr-TG, fr-TN, fr-VU, fr-WF, fr-YT, fur, fur-IT, fy, fy-NL, ga, ga-IE, gd, gd-GB, gl, gl-ES, gsw, gsw-CH, gsw-FR, gsw-LI, gu, gu-IN, guz, guz-KE, gv, gv-IM, ha, ha-GH, ha-NE, ha-NG, haw, haw-US, he, he-IL, hi, hi-IN, hr, hr-BA, hr-HR, hsb, hsb-DE, hu, hu-HU, hy, hy-AM, id, id-ID, ig, ig-NG, ii, ii-CN, is, is-IS, it, it-CH, it-IT, it-SM, ja, ja-JP, jgo, jgo-CM, jmc, jmc-TZ, ka, ka-GE, kab, kab-DZ, kam, kam-KE, kde, kde-TZ, kea, kea-CV, khq, khq-ML, ki, ki-KE, kk, kk-KZ, kkj, kkj-CM, kl, kl-GL, kln, kln-KE, km, km-KH, kn, kn-IN, ko, ko-KP, ko-KR, kok, kok-IN, ks, ks-IN, ksb, ksb-TZ, ksf, ksf-CM, ksh, ksh-DE, kw, kw-GB, ky, ky-KG, lag, lag-TZ, lb, lb-LU, lg, lg-UG, lkt, lkt-US, ln, ln-AO, ln-CD, ln-CF, ln-CG, lo, lo-LA, lrc, lrc-IQ, lrc-IR, lt, lt-LT, lu, lu-CD, luo, luo-KE, luy, luy-KE, lv, lv-LV, mas, mas-KE, mas-TZ, mer, mer-KE, mfe, mfe-MU, mg, mg-MG, mgh, mgh-MZ, mgo, mgo-CM, mk, mk-MK, ml, ml-IN, mn, mn-MN, mr, mr-IN, ms, ms-BN, ms-MY, ms-SG, mt, mt-MT, mua, mua-CM, my, my-MM, mzn, mzn-IR, naq, naq-NA, nb, nb-NO, nb-SJ, nd, nd-ZW, ne, ne-IN, ne-NP, nl, nl-AW, nl-BE, nl-BQ, nl-CW, nl-NL, nl-SR, nl-SX, nmg, nmg-CM, nn, nn-NO, nnh, nnh-CM, no, nus, nus-SS, nyn, nyn-UG, om, om-ET, om-KE, or, or-IN, os, os-GE, os-RU, pa, pa-Arab, pa-Arab-PK, pa-Guru, pa-Guru-IN, pl, pl-PL, prg, prg-001, ps, ps-AF, pt, pt-AO, pt-BR, pt-CV, pt-GW, pt-MO, pt-MZ, pt-PT, pt-ST, pt-TL, qu, qu-BO, qu-EC, qu-PE, rm, rm-CH, rn, rn-BI, ro, ro-MD, ro-RO, rof, rof-TZ, root, ru, ru-BY, ru-KG, ru-KZ, ru-MD, ru-RU, ru-UA, rw, rw-RW, rwk, rwk-TZ, sah, sah-RU, saq, saq-KE, sbp, sbp-TZ, se, se-FI, se-NO, se-SE, seh, seh-MZ, ses, ses-ML, sg, sg-CF, shi, shi-Latn, shi-Latn-MA, shi-Tfng, shi-Tfng-MA, si, si-LK, sk, sk-SK, sl, sl-SI, smn, smn-FI, sn, sn-ZW, so, so-DJ, so-ET, so-KE, so-SO, sq, sq-AL, sq-MK, sq-XK, sr, sr-Cyrl, sr-Cyrl-BA, sr-Cyrl-ME, sr-Cyrl-RS, sr-Cyrl-XK, sr-Latn, sr-Latn-BA, sr-Latn-ME, sr-Latn-RS, sr-Latn-XK, sv, sv-AX, sv-FI, sv-SE, sw, sw-CD, sw-KE, sw-TZ, sw-UG, ta, ta-IN, ta-LK, ta-MY, ta-SG, te, te-IN, teo, teo-KE, teo-UG, th, th-TH, ti, ti-ER, ti-ET, tk, tk-TM, to, to-TO, tr, tr-CY, tr-TR, twq, twq-NE, tzm, tzm-MA, ug, ug-CN, uk, uk-UA, ur, ur-IN, ur-PK, uz, uz-Arab, uz-Arab-AF, uz-Cyrl, uz-Cyrl-UZ, uz-Latn, uz-Latn-UZ, vai, vai-Latn, vai-Latn-LR, vai-Vaii, vai-Vaii-LR, vi, vi-VN, vo, vo-001, vun, vun-TZ, wae, wae-CH, xog, xog-UG, yav, yav-CM, yi, yi-001, yo, yo-BJ, yo-NG, zgh, zgh-MA, zh, zh-Hans, zh-Hans-CN, zh-Hans-HK, zh-Hans-MO, zh-Hans-SG, zh-Hant, zh-Hant-HK, zh-Hant-MO, zh-Hant-TW, zu, zu-ZA ; sv ; sv
##################################################
# test8288
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/data/xmb/en.xml b/tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/data/xmb/en.xml
similarity index 99%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/data/xmb/en.xml
rename to tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/data/xmb/en.xml
index 6d15015..920072b 100644
--- a/tools/cldr-unittest/src/org/unicode/cldr/unittest/data/xmb/en.xml
+++ b/tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/data/xmb/en.xml
@@ -7687,7 +7687,7 @@
<!-- //ldml/numbers/currencies/currency[@type="XOF"]/symbol -->
<msg id='7441741010095280916'
- desc='The symbol for the currency with the ISO currency code = XOF. For more information, see http://cldr.org/translation/currency-names.'>CFA</msg>
+ desc='The symbol for the currency with the ISO currency code = XOF. For more information, see http://cldr.org/translation/currency-names.'>F CFA</msg>
<!-- //ldml/numbers/currencies/currency[@type="XPF"]/displayName -->
<msg id='6229334690374504108'
diff --git a/tools/cldr-unittest/src/org/unicode/cldr/unittest/package.html b/tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/package.html
similarity index 100%
rename from tools/cldr-unittest/src/org/unicode/cldr/unittest/package.html
rename to tools/cldr-code/src/test/resources/org/unicode/cldr/unittest/package.html
diff --git a/tools/cldr-rdf/.settings/org.eclipse.core.resources.prefs b/tools/cldr-rdf/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..839d647
--- /dev/null
+++ b/tools/cldr-rdf/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,5 @@
+eclipse.preferences.version=1
+encoding//src/main/java=UTF-8
+encoding//src/main/resources=UTF-8
+encoding//src/test/java=UTF-8
+encoding/<project>=UTF-8
diff --git a/tools/cldr-rdf/.settings/org.eclipse.jdt.core.prefs b/tools/cldr-rdf/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..cac0df4
--- /dev/null
+++ b/tools/cldr-rdf/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,11 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
+org.eclipse.jdt.core.compiler.release=disabled
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/tools/cldr-rdf/.settings/org.eclipse.wst.common.component b/tools/cldr-rdf/.settings/org.eclipse.wst.common.component
new file mode 100644
index 0000000..3eafbad
--- /dev/null
+++ b/tools/cldr-rdf/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+ <wb-module deploy-name="cldr-rdf">
+ <wb-resource deploy-path="/" source-path="/src/main/java"/>
+ </wb-module>
+</project-modules>
diff --git a/tools/cldr-rdf/README.md b/tools/cldr-rdf/README.md
new file mode 100644
index 0000000..175ee02
--- /dev/null
+++ b/tools/cldr-rdf/README.md
@@ -0,0 +1,13 @@
+# CLDR RDF Tools
+
+This project contains CLDR RDF tools.
+
+### License
+
+see [../../README.md](../../README.md)
+
+### Copyright
+
+Copyright © 1991-2020 Unicode, Inc.
+All rights reserved.
+[Terms of use](http://www.unicode.org/copyright.html)
diff --git a/tools/java/org/unicode/cldr/util/data/languages/childToParent.tsv b/tools/cldr-rdf/external/childToParent.tsv
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/languages/childToParent.tsv
rename to tools/cldr-rdf/external/childToParent.tsv
diff --git a/tools/java/org/unicode/cldr/util/data/languages/entityToCode.tsv b/tools/cldr-rdf/external/entityToCode.tsv
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/languages/entityToCode.tsv
rename to tools/cldr-rdf/external/entityToCode.tsv
diff --git a/tools/java/org/unicode/cldr/util/data/languages/entityToLabel.tsv b/tools/cldr-rdf/external/entityToLabel.tsv
similarity index 100%
rename from tools/java/org/unicode/cldr/util/data/languages/entityToLabel.tsv
rename to tools/cldr-rdf/external/entityToLabel.tsv
diff --git a/tools/java/org/unicode/cldr/util/data/external/wikiSubdivisionLanguages.tsv b/tools/cldr-rdf/external/wikiSubdivisionLanguages.tsv
similarity index 99%
rename from tools/java/org/unicode/cldr/util/data/external/wikiSubdivisionLanguages.tsv
rename to tools/cldr-rdf/external/wikiSubdivisionLanguages.tsv
index 7982d1b..96325cf 100644
--- a/tools/java/org/unicode/cldr/util/data/external/wikiSubdivisionLanguages.tsv
+++ b/tools/cldr-rdf/external/wikiSubdivisionLanguages.tsv
@@ -32,8 +32,8 @@
http://www.wikidata.org/entity/Q24260 Канилјо AD-02 mk
http://www.wikidata.org/entity/Q24260 कॅनिलो AD-02 mr
http://www.wikidata.org/entity/Q24260 Canillo AD-02 ms
-http://www.wikidata.org/entity/Q24260 Canillo AD-02 nb
http://www.wikidata.org/entity/Q24260 Canillo AD-02 nl
+http://www.wikidata.org/entity/Q24260 Canillo AD-02 no
http://www.wikidata.org/entity/Q24260 Canillo AD-02 pl
http://www.wikidata.org/entity/Q24260 Canillo AD-02 pt
http://www.wikidata.org/entity/Q24260 Canillo AD-02 ro
@@ -85,8 +85,8 @@
http://www.wikidata.org/entity/Q24269 Енкамп AD-03 mk
http://www.wikidata.org/entity/Q24269 एन्कॅम्प AD-03 mr
http://www.wikidata.org/entity/Q24269 Encamp AD-03 ms
-http://www.wikidata.org/entity/Q24269 Encamp AD-03 nb
http://www.wikidata.org/entity/Q24269 Encamp AD-03 nl
+http://www.wikidata.org/entity/Q24269 Encamp AD-03 no
http://www.wikidata.org/entity/Q24269 Encamp AD-03 pl
http://www.wikidata.org/entity/Q24269 Encamp AD-03 pt
http://www.wikidata.org/entity/Q24269 Encamp AD-03 ro
@@ -135,8 +135,8 @@
http://www.wikidata.org/entity/Q24276 Ла Масана AD-04 mk
http://www.wikidata.org/entity/Q24276 ला मसनाना AD-04 mr
http://www.wikidata.org/entity/Q24276 La Massana AD-04 ms
-http://www.wikidata.org/entity/Q24276 La Massana AD-04 nb
http://www.wikidata.org/entity/Q24276 La Massana AD-04 nl
+http://www.wikidata.org/entity/Q24276 La Massana AD-04 no
http://www.wikidata.org/entity/Q24276 La Massana AD-04 pl
http://www.wikidata.org/entity/Q24276 La Massana AD-04 pt
http://www.wikidata.org/entity/Q24276 La Massana AD-04 ro
@@ -186,8 +186,8 @@
http://www.wikidata.org/entity/Q24272 Ордино AD-05 mk
http://www.wikidata.org/entity/Q24272 ऑर्डिनो AD-05 mr
http://www.wikidata.org/entity/Q24272 Ordino AD-05 ms
-http://www.wikidata.org/entity/Q24272 Ordino AD-05 nb
http://www.wikidata.org/entity/Q24272 Ordino AD-05 nl
+http://www.wikidata.org/entity/Q24272 Ordino AD-05 no
http://www.wikidata.org/entity/Q24272 Ordino AD-05 pl
http://www.wikidata.org/entity/Q24272 Ordino AD-05 pt
http://www.wikidata.org/entity/Q24272 Ordino AD-05 ro
@@ -237,8 +237,8 @@
http://www.wikidata.org/entity/Q24282 Сант Жулија де Лорија AD-06 mk
http://www.wikidata.org/entity/Q24282 संत जुलिया दे लॉरीआ AD-06 mr
http://www.wikidata.org/entity/Q24282 Sant Julia de Loria AD-06 ms
-http://www.wikidata.org/entity/Q24282 Sant Julià de Lòria AD-06 nb
http://www.wikidata.org/entity/Q24282 Sant Julià de Lòria AD-06 nl
+http://www.wikidata.org/entity/Q24282 Sant Julià de Lòria AD-06 no
http://www.wikidata.org/entity/Q24282 Sant Julià de Lòria AD-06 pl
http://www.wikidata.org/entity/Q24282 Sant Julià de Lòria AD-06 pt
http://www.wikidata.org/entity/Q24282 Sant Julià de Lòria AD-06 ro
@@ -298,8 +298,8 @@
http://www.wikidata.org/entity/Q24286 Ескалдес-Енгордањ AD-08 mk
http://www.wikidata.org/entity/Q24286 एस्कॅलदेस-एन्गोर्डानी AD-08 mr
http://www.wikidata.org/entity/Q24286 Escaldes-Engordany AD-08 ms
-http://www.wikidata.org/entity/Q24286 Escaldes-Engordany AD-08 nb
http://www.wikidata.org/entity/Q24286 Escaldes-Engordany AD-08 nl
+http://www.wikidata.org/entity/Q24286 Escaldes-Engordany AD-08 no
http://www.wikidata.org/entity/Q24286 Escaldes-Engordany AD-08 pl
http://www.wikidata.org/entity/Q24286 Escaldes-Engordany AD-08 pt
http://www.wikidata.org/entity/Q24286 Escaldes-Engordany AD-08 ro
@@ -353,8 +353,8 @@
http://www.wikidata.org/entity/Q159477 Эмирт Ажман AE-AJ mn
http://www.wikidata.org/entity/Q159477 अजमान AE-AJ mr
http://www.wikidata.org/entity/Q159477 Ajman AE-AJ ms
-http://www.wikidata.org/entity/Q159477 Emiratet Ajman AE-AJ nb
http://www.wikidata.org/entity/Q159477 Ajman AE-AJ nl
+http://www.wikidata.org/entity/Q159477 Emiratet Ajman AE-AJ no
http://www.wikidata.org/entity/Q159477 ਅਜਮਾਨ AE-AJ pa
http://www.wikidata.org/entity/Q159477 Adżman AE-AJ pl
http://www.wikidata.org/entity/Q159477 Ajman AE-AJ pt
@@ -416,8 +416,8 @@
http://www.wikidata.org/entity/Q187712 Эмирт Абу-Даби AE-AZ mn
http://www.wikidata.org/entity/Q187712 अबू धाबी अमिरात AE-AZ mr
http://www.wikidata.org/entity/Q187712 Abu Dhabi Emirate AE-AZ ms
-http://www.wikidata.org/entity/Q187712 Emiratet Abu Dhabi AE-AZ nb
http://www.wikidata.org/entity/Q187712 Abu Dhabi AE-AZ nl
+http://www.wikidata.org/entity/Q187712 Emiratet Abu Dhabi AE-AZ no
http://www.wikidata.org/entity/Q187712 ਅਬੂ ਧਾਬੀ AE-AZ pa
http://www.wikidata.org/entity/Q187712 Abu Zabi AE-AZ pl
http://www.wikidata.org/entity/Q187712 Emirados Abu Dhabi AE-AZ pt
@@ -470,9 +470,9 @@
http://www.wikidata.org/entity/Q613 Дубай AE-DU ky
http://www.wikidata.org/entity/Q613 Dubaijas emirāts AE-DU lv
http://www.wikidata.org/entity/Q613 Эмирт Дубай AE-DU mn
-http://www.wikidata.org/entity/Q613 Emiratet Dubai AE-DU nb
http://www.wikidata.org/entity/Q613 दुबईको अमिरात AE-DU ne
http://www.wikidata.org/entity/Q613 Dubai AE-DU nl
+http://www.wikidata.org/entity/Q613 Emiratet Dubai AE-DU no
http://www.wikidata.org/entity/Q613 ଦୁବାଇ AE-DU or
http://www.wikidata.org/entity/Q613 Dubaj AE-DU pl
http://www.wikidata.org/entity/Q613 Emiratul Dubai AE-DU ro
@@ -525,8 +525,8 @@
http://www.wikidata.org/entity/Q4091 ഫുജൈറ AE-FU ml
http://www.wikidata.org/entity/Q4091 फुजैरा AE-FU mr
http://www.wikidata.org/entity/Q4091 Fujairah AE-FU ms
-http://www.wikidata.org/entity/Q4091 Emiratet Fujairah AE-FU nb
http://www.wikidata.org/entity/Q4091 Fujairah AE-FU nl
+http://www.wikidata.org/entity/Q4091 Emiratet Fujairah AE-FU no
http://www.wikidata.org/entity/Q4091 ਫ਼ੁਜੈਰਾ AE-FU pa
http://www.wikidata.org/entity/Q4091 Fudżajra AE-FU pl
http://www.wikidata.org/entity/Q4091 Al Fujayrah AE-FU pt
@@ -582,8 +582,8 @@
http://www.wikidata.org/entity/Q170024 റാസ് അൽ ഖൈമ AE-RK ml
http://www.wikidata.org/entity/Q170024 रास अल-खैमाह AE-RK mr
http://www.wikidata.org/entity/Q170024 Ras al-Khaimah AE-RK ms
-http://www.wikidata.org/entity/Q170024 Emiratet Ras al-Khaimah AE-RK nb
http://www.wikidata.org/entity/Q170024 Ras al-Khaimah AE-RK nl
+http://www.wikidata.org/entity/Q170024 Emiratet Ras al-Khaimah AE-RK no
http://www.wikidata.org/entity/Q170024 ਰਾਸ ਅਲ-ਖ਼ੈਮਾ AE-RK pa
http://www.wikidata.org/entity/Q170024 Ras al-Chajma AE-RK pl
http://www.wikidata.org/entity/Q170024 Ras al-Khaimah AE-RK pt
@@ -640,8 +640,8 @@
http://www.wikidata.org/entity/Q188810 ഷാർജ AE-SH ml
http://www.wikidata.org/entity/Q188810 शारजा अमीरात AE-SH mr
http://www.wikidata.org/entity/Q188810 Sharjah AE-SH ms
-http://www.wikidata.org/entity/Q188810 Emiratet Sharjah AE-SH nb
http://www.wikidata.org/entity/Q188810 Sharjah AE-SH nl
+http://www.wikidata.org/entity/Q188810 Emiratet Sharjah AE-SH no
http://www.wikidata.org/entity/Q188810 ਸ਼ਾਰਜਾ AE-SH pa
http://www.wikidata.org/entity/Q188810 Szardża AE-SH pl
http://www.wikidata.org/entity/Q188810 Sharjah AE-SH pt
@@ -696,8 +696,8 @@
http://www.wikidata.org/entity/Q175021 ഉം അൽ കുവൈൻ AE-UQ ml
http://www.wikidata.org/entity/Q175021 उम अल-कुवैन AE-UQ mr
http://www.wikidata.org/entity/Q175021 Umm al-Qaiwain AE-UQ ms
-http://www.wikidata.org/entity/Q175021 Emiratet Umm al-Qaiwain AE-UQ nb
http://www.wikidata.org/entity/Q175021 Umm al-Qaiwain AE-UQ nl
+http://www.wikidata.org/entity/Q175021 Emiratet Umm al-Qaiwain AE-UQ no
http://www.wikidata.org/entity/Q175021 ਉਮ ਅਲ-ਕਿਵੇਨ AE-UQ pa
http://www.wikidata.org/entity/Q175021 Umm al-Kajwajn AE-UQ pl
http://www.wikidata.org/entity/Q175021 Umm al Qaywayn AE-UQ pt
diff --git a/tools/cldr-rdf/pom.xml b/tools/cldr-rdf/pom.xml
new file mode 100644
index 0000000..23281d0
--- /dev/null
+++ b/tools/cldr-rdf/pom.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>cldr-rdf</artifactId>
+
+ <name>CLDR RDF Tools</name>
+
+ <url>https://unicode.org/cldr</url>
+
+ <properties>
+ <mainClass>org.unicode.cldr.rdf.tool.FetchAbstracts</mainClass>
+ <jenaVersion>3.16.0</jenaVersion>
+ </properties>
+
+ <scm>
+ <connection>scm:git:https://github.com/unicode-org/cldr.git</connection>
+ </scm>
+
+ <parent>
+ <groupId>org.unicode.cldr</groupId>
+ <artifactId>cldr-all</artifactId>
+ <version>39.0-SNAPSHOT</version>
+ </parent>
+
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.jena</groupId>
+ <artifactId>apache-jena-libs</artifactId>
+ <type>pom</type>
+ <version>${jenaVersion}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.jena</groupId>
+ <artifactId>jena-querybuilder</artifactId>
+ <version>${jenaVersion}</version>
+ </dependency>
+
+
+ <!-- project stuff-->
+ <dependency>
+ <groupId>org.unicode.cldr</groupId>
+ <artifactId>cldr-code</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>com.ibm.icu</groupId>
+ <artifactId>icu4j-for-cldr</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>com.ibm.icu</groupId>
+ <artifactId>utilities-for-cldr</artifactId>
+ </dependency>
+
+ <!-- test -->
+ <dependency>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter-api</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter-engine</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>xml-apis</groupId>
+ <artifactId>xml-apis</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>xerces</groupId>
+ <artifactId>xercesImpl</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <configuration>
+ <mainClass>${mainClass}</mainClass>
+ <systemProperties>
+ <systemProperty>
+ <key>CLDR_DIR</key>
+ <value>${project.basedir}/../../</value>
+ </systemProperty>
+ </systemProperties>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+</project>
diff --git a/tools/cldr-rdf/src/main/java/org/unicode/cldr/rdf/AbstractCache.java b/tools/cldr-rdf/src/main/java/org/unicode/cldr/rdf/AbstractCache.java
new file mode 100644
index 0000000..c685aeb
--- /dev/null
+++ b/tools/cldr-rdf/src/main/java/org/unicode/cldr/rdf/AbstractCache.java
@@ -0,0 +1,109 @@
+// © 2020 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+package org.unicode.cldr.rdf;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.Reader;
+import java.io.Writer;
+import java.nio.charset.StandardCharsets;
+import java.time.Instant;
+import java.util.Date;
+import java.util.Properties;
+
+import com.google.common.io.Files;
+
+/**
+ * This is a cache for the XPATH to URI mapping
+ * It caches using 1 property file in the specified directory.
+ * @author srl295
+ */
+public class AbstractCache {
+ private static final String XPATH_TO_RESOURCE_FILE = "xpath-to-resource.properties";
+
+ /**
+ * Add an AbstractResource to the cache. Remember to call store() to
+ * persist the cache.
+ * @param xpath
+ * @param ar
+ * @return true if some value was already there, false if this was a new value
+ */
+ public boolean add(String xpath, String uri) {
+ return (xpathToResource.put(xpath, uri) != null);
+ }
+
+ /**
+ * Get the xpath mapping, or null
+ * @param xpath
+ * @return
+ */
+ public String get(String xpath) {
+ return (String)xpathToResource.get(xpath);
+ }
+
+ private final File root;
+ private final File xpathToResourceFile;
+
+
+ Properties xpathToResource = new Properties();
+
+ /**
+ * Initialize the abstract cache with a certain root location
+ * @param root
+ */
+ public AbstractCache(File root) {
+ this.root = root;
+ xpathToResourceFile = new File(root, XPATH_TO_RESOURCE_FILE);
+ load();
+ }
+
+ /**
+ * Load (or reload) the abstract cache.
+ * On failure, will clear this cache.
+ * @return date of underlying file on successful load or null
+ */
+ public Instant load() {
+ final String simpleName = this.getClass().getSimpleName();
+ synchronized(this) {
+ try(
+ Reader xp2res = Files.newReader(xpathToResourceFile, StandardCharsets.UTF_8);
+ ) {
+ xpathToResource.load(xp2res);
+ System.err.println("# " + simpleName + " read " + root.getAbsolutePath() + " count: " + size());
+ return Instant.ofEpochMilli(xpathToResourceFile.lastModified());
+ } catch (IOException ioe) {
+ if (!(ioe instanceof FileNotFoundException)) {
+ ioe.printStackTrace();
+ }
+ System.err.println("Could not read files in " + root.getAbsolutePath() + " = " + ioe);
+ xpathToResource.clear();
+ return null;
+ }
+ }
+ }
+
+ /**
+ * Write out the cache
+ */
+ public void store() {
+ final String simpleName = this.getClass().getSimpleName();
+ synchronized(this) {
+ root.mkdirs();
+ try(
+ Writer xp2res = Files.newWriter(xpathToResourceFile, StandardCharsets.UTF_8);
+ ) {
+ xpathToResource.store(xp2res, "Written by " + simpleName);
+ System.err.println("# " + simpleName + " wrote to " + root.getAbsolutePath());
+ } catch (IOException ioe) {
+ ioe.printStackTrace();
+ System.err.println("Could not write files in " + root.getAbsolutePath() + " = " + ioe);
+ }
+ }
+ }
+
+ public int size() {
+ return xpathToResource.size();
+ }
+}
diff --git a/tools/cldr-rdf/src/main/java/org/unicode/cldr/rdf/CurrencyMapper.java b/tools/cldr-rdf/src/main/java/org/unicode/cldr/rdf/CurrencyMapper.java
new file mode 100644
index 0000000..ef4dbd3
--- /dev/null
+++ b/tools/cldr-rdf/src/main/java/org/unicode/cldr/rdf/CurrencyMapper.java
@@ -0,0 +1,82 @@
+// © 2020 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+package org.unicode.cldr.rdf;
+
+import java.util.regex.Pattern;
+
+import org.apache.jena.arq.querybuilder.SelectBuilder;
+import org.apache.jena.query.Query;
+import org.apache.jena.query.QuerySolution;
+import org.apache.jena.query.ResultSet;
+import org.apache.jena.sparql.lang.sparql_11.ParseException;
+import org.unicode.cldr.util.XPathParts;
+
+import com.google.common.io.Files;
+
+/**
+ * an XPathMapper responsible for language display names
+ * @author srl295
+ */
+public class CurrencyMapper implements XPathMapper {
+
+ static final String O_RESOURCE = "?resource";
+ static final String O_ISO = "?iso";
+ static final boolean DEBUG = false;
+
+ public CurrencyMapper() {
+ }
+
+
+ @Override
+ public int addEntries(AbstractCache cache) throws ParseException {
+ Pattern CURRENCY_PATTERN = Pattern.compile("[A-Z][A-Z][A-Z]");
+ int newAdd = 0;
+ ResultSet rs = queryCurrencyResources();
+
+ XPathParts xpp = XPathParts.getFrozenInstance("//ldml/numbers/currencies/currency[@type=\"XXX\"]/displayName").cloneAsThawed();
+ while(rs.hasNext()) {
+ final QuerySolution qs = rs.next();
+ String code = QueryClient.getStringOrNull(qs, O_ISO.substring(1));
+ final String res = QueryClient.getResourceOrNull(qs, O_RESOURCE.substring(1));
+ if(!CURRENCY_PATTERN.matcher(code).matches()) {
+ if(DEBUG) System.out.println("!!!" + rs.getRowNumber() + " - " + code + " " + res);
+ continue;
+ } else {
+ if(DEBUG) System.out.println("== " + rs.getRowNumber() + " - " + code + " " + res);
+ }
+
+ xpp.setAttribute(-2, "type", code);
+ final String xpath = xpp.toString();
+ if(DEBUG) System.out.println("\t"+res+"\t"+xpath);
+ if(cache.add(xpath, res) == false) {
+ newAdd ++;
+ }
+ }
+ if(DEBUG) System.out.println("Currency returned " + rs.getRowNumber() + " rows");
+ return newAdd;
+ }
+
+ public static ResultSet queryCurrencyResources() throws ParseException {
+ final String resType = O_RESOURCE;
+ final SelectBuilder builder = new SelectBuilder()
+ .addPrefix("dbp", QueryClient.PREFIX_DBP)
+ .addPrefix("dbr", QueryClient.PREFIX_DBR)
+ .addPrefix("rdf", QueryClient.PREFIX_RDF)
+ .addPrefix("dbo", QueryClient.PREFIX_DBO)
+ .addVar("*")
+ .addWhere(resType, "rdf:type", "dbo:Currency")
+ .addWhere(resType, "<"+QueryClient.PREFIX_PLG+"hypernym"+">", "dbr:Currency") // avoid "Gold as an investment" etc.
+ .addWhere(resType, "dbp:isoCode", O_ISO)
+ ;
+ System.out.println(builder.buildString());
+ Query q = builder.build();
+ ResultSet results = QueryClient.getInstance().execSelect(q);
+ return results;
+ }
+
+ public static void main(String args[]) throws ParseException {
+ AbstractCache cache = new AbstractCache(Files.createTempDir());
+ new CurrencyMapper().addEntries(cache);
+ }
+}
diff --git a/tools/cldr-rdf/src/main/java/org/unicode/cldr/rdf/LanguageMapper.java b/tools/cldr-rdf/src/main/java/org/unicode/cldr/rdf/LanguageMapper.java
new file mode 100644
index 0000000..3ccc006
--- /dev/null
+++ b/tools/cldr-rdf/src/main/java/org/unicode/cldr/rdf/LanguageMapper.java
@@ -0,0 +1,101 @@
+// © 2020 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+package org.unicode.cldr.rdf;
+
+import org.apache.jena.arq.querybuilder.SelectBuilder;
+import org.apache.jena.query.Query;
+import org.apache.jena.query.QuerySolution;
+import org.apache.jena.query.ResultSet;
+import org.apache.jena.sparql.lang.sparql_11.ParseException;
+import org.unicode.cldr.util.CLDRConfig;
+import org.unicode.cldr.util.CoverageInfo;
+import org.unicode.cldr.util.Level;
+import org.unicode.cldr.util.PathHeader;
+import org.unicode.cldr.util.XPathParts;
+
+/**
+ * an XPathMapper responsible for language display names
+ * @author srl295
+ */
+public class LanguageMapper implements XPathMapper {
+
+ static final String O_LANGUAGE = "?language";
+ static final String DBO_639_3 = "dbo:iso6393Code";
+ static final String DBO_639_2 = "dbo:iso6392Code";
+ static final String DBO_639_1 = "dbo:iso6391Code";
+ static final boolean DEBUG = false;
+
+ public LanguageMapper() {
+ }
+
+
+ @Override
+ public int addEntries(AbstractCache cache) throws ParseException {
+ int newAdd = 0;
+ final CLDRConfig config = CLDRConfig.getInstance();
+ CoverageInfo ci = config.getCoverageInfo();
+ ResultSet rs = queryLanguageResources();
+
+
+ XPathParts xpp = XPathParts.getFrozenInstance("//ldml/localeDisplayNames/languages/language").cloneAsThawed();
+ while(rs.hasNext()) {
+ final QuerySolution qs = rs.next();
+ String code = QueryClient.getLiteralOrNull(qs, "iso6391");
+ if(code == null) {
+ code = QueryClient.getLiteralOrNull(qs, "iso6392");
+ }
+ final String res = QueryClient.getResourceOrNull(qs, "language");
+// final String abs = QueryClient.getStringOrNull(qs, "abstract");
+ if(code.length() != 3 && code.length() != 2) {
+ if(DEBUG) System.out.println("!!!" + rs.getRowNumber() + " - " + code + " " + res);
+ int spaceLoc = code.indexOf(' ');
+ if(!Character.isLowerCase(code.charAt(0))
+ || (spaceLoc != 2 && spaceLoc != 3)) {
+ System.err.println("Rejecting: " + code + " for " + res);
+ continue;
+ }
+ code = code.substring(0, spaceLoc);
+ if(DEBUG) System.out.println("Fixed=> " + code);
+ } else {
+ if(DEBUG) System.out.println("== " + rs.getRowNumber() + " - " + code + " " + res);
+ }
+
+ xpp.setAttribute(-1, "type", code);
+ final String xpath = xpp.toString();
+ if(DEBUG) System.out.println("\t"+res+"\t"+xpath);
+ if(cache.add(xpath, res) == false) {
+ newAdd ++;
+ }
+ }
+ return newAdd;
+ }
+
+ public static ResultSet queryLanguageResources() throws ParseException {
+ final String resType = "?language";
+ final SelectBuilder builder = new SelectBuilder()
+ .addPrefix("dbo", QueryClient.PREFIX_DBO)
+ .addPrefix("dbr", QueryClient.PREFIX_DBR)
+ .addPrefix("rdf", QueryClient.PREFIX_RDF)
+ // .addPrefix("plg", PREFIX_PLG)
+ .addVar("*")
+ .addWhere(resType, "rdf:type", "dbo:Language")
+ .addWhere(resType, "<"+QueryClient.PREFIX_PLG+"hypernym"+">", "dbr:Language") // Only language (not dialect etc)
+ .addOptional(resType, "dbo:iso6392Code", "?iso6392")
+ .addOptional(resType, "dbo:iso6391Code", "?iso6391")
+ // .addOptional(resType, "dbo:iso6393Code", "?iso6393") // Future: 639-3 code
+
+
+ .addFilter("(?iso6391 || ?iso6392 "
+ // + "|| ?iso6393"
+ + ") && "
+ + "(?iso6391 != 'none' && ?iso6392 != 'none' "
+ // + "&& ?iso6393 != 'none'"
+ + ")")
+ ;
+ System.out.println(builder.buildString());
+ Query q = builder.build();
+ ResultSet results = QueryClient.getInstance().execSelect(q);
+ return results;
+ }
+}
diff --git a/tools/cldr-rdf/src/main/java/org/unicode/cldr/rdf/MapAll.java b/tools/cldr-rdf/src/main/java/org/unicode/cldr/rdf/MapAll.java
new file mode 100644
index 0000000..b850ad1
--- /dev/null
+++ b/tools/cldr-rdf/src/main/java/org/unicode/cldr/rdf/MapAll.java
@@ -0,0 +1,37 @@
+package org.unicode.cldr.rdf;
+
+import java.util.LinkedList;
+import java.util.List;
+
+import org.apache.jena.sparql.lang.sparql_11.ParseException;
+
+public class MapAll implements XPathMapper {
+
+ final List<XPathMapper> mappers = new LinkedList<>();
+
+ public MapAll() {
+ // add all mappers here
+ mappers.add(new LanguageMapper());
+ mappers.add(new ScriptMapper());
+ mappers.add(new CurrencyMapper());
+ }
+
+ @Override
+ public int addEntries(AbstractCache cache) throws ParseException {
+ int total = 0;
+ System.out.println("Begin mapping");
+ for(final XPathMapper m : mappers) {
+ String mapName = m.getClass().getSimpleName();
+ System.out.println(mapName + " - ");
+ try {
+ int thisAdded = m.addEntries(cache);
+ System.out.println(mapName + " + " + thisAdded);
+ total += thisAdded;
+ } catch(Throwable t) {
+ t.printStackTrace();
+ System.err.println("Problem running mapper " + mapName + " - " + t);
+ }
+ }
+ return total;
+ }
+}
diff --git a/tools/cldr-rdf/src/main/java/org/unicode/cldr/rdf/QueryClient.java b/tools/cldr-rdf/src/main/java/org/unicode/cldr/rdf/QueryClient.java
new file mode 100644
index 0000000..eb53cbf
--- /dev/null
+++ b/tools/cldr-rdf/src/main/java/org/unicode/cldr/rdf/QueryClient.java
@@ -0,0 +1,150 @@
+// © 2020 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+package org.unicode.cldr.rdf;
+
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.util.Iterator;
+
+import org.apache.jena.ext.com.google.common.io.Resources;
+import org.apache.jena.query.Query;
+import org.apache.jena.query.QueryExecutionFactory;
+import org.apache.jena.query.QueryFactory;
+import org.apache.jena.query.QuerySolution;
+import org.apache.jena.query.ResultSet;
+import org.apache.jena.rdf.model.Literal;
+import org.apache.jena.rdf.model.RDFNode;
+import org.apache.jena.rdf.model.Resource;
+import org.apache.jena.sparql.engine.http.QueryEngineHTTP;
+import org.unicode.cldr.util.Timer;
+
+/**
+ * Class to aid in SPARQL queries
+ * @author srl295
+ *
+ */
+public class QueryClient {
+ final static class QueryClientHelper {
+ private static QueryClient INSTANCE = new QueryClient();
+ }
+
+ public static final QueryClient getInstance() {
+ return QueryClientHelper.INSTANCE;
+ }
+
+ public static final String DEFAULT_CLDR_DBPEDIA_SPARQL_SERVER = "https://dbpedia.org/sparql/";
+ public static final String DBPEDIA_SPARQL_SERVER = System.getProperty("CLDR_DBPEDIA_SPARQL_SERVER", DEFAULT_CLDR_DBPEDIA_SPARQL_SERVER);
+
+ public static final String DEFAULT_CLDR_WIKIDATA_SPARQL_SERVER = "https://query.wikidata.org/sparql";
+ public static final String WIKIDATA_SPARQL_SERVER = System.getProperty("CLDR_WIKIDATA_SPARQL_SERVER", DEFAULT_CLDR_WIKIDATA_SPARQL_SERVER);
+
+ public static final String PREFIX_PLG = "http://purl.org/linguistics/gold/";
+ public static final String PREFIX_RDF = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+ public static final String PREFIX_DBO = "http://dbpedia.org/ontology/";
+ public static final String PREFIX_DBP = "http://dbpedia.org/property/";
+ public static final String PREFIX_DBR = "http://dbpedia.org/resource/";
+ public static final String PREFIX_YAGO = "http://dbpedia.org/class/yago/";
+ public static final String abstractLang = "en"; // for now
+
+ public static final String getLiteralOrNull(final QuerySolution qs, final String k) {
+ final Literal l = qs.getLiteral(k);
+ return getLiteralOrNull(l);
+ }
+
+ private static String getLiteralOrNull(final Literal l) {
+ if(l == null) return null;
+ return l.getString();
+ }
+
+ /**
+ * Convert the specified parameter into a String, or null if not found.
+ * @param qs
+ * @param k
+ * @return
+ */
+ public static final String getStringOrNull(final QuerySolution qs, final String k) {
+ RDFNode node = qs.get(k);
+ return getStringOrNull(node);
+ }
+
+ private static String getStringOrNull(RDFNode node) {
+ if(node == null) {
+ return null; // not found
+ } else if(node.isLiteral()) {
+ return getLiteralOrNull(node.asLiteral());
+ } else if(node.isResource()) {
+ return getResourceOrNull(node.asResource());
+ } else {
+ throw new UnsupportedOperationException("Not supported: node type " + node.toString());
+ }
+ }
+
+ public static final String getResourceOrNull(final QuerySolution qs, final String k) {
+ final Resource l = qs.getResource(k);
+ return getResourceOrNull(l);
+ }
+ private static String getResourceOrNull(final Resource l) {
+ if(l == null) return null;
+ return l.getURI();
+ }
+
+ /**
+ * Run a query
+ * @param q
+ * @return
+ */
+ public ResultSet execSelect(Query q) {
+ return execSelect(q, QueryClient.DBPEDIA_SPARQL_SERVER);
+ }
+
+ public ResultSet execSelect(Query q, final String server) {
+ Timer t = new Timer();
+ QueryEngineHTTP qEngine = QueryExecutionFactory.createServiceRequest(server, q);
+ // qEngine.setHttpContext(httpContext);
+ ResultSet results = qEngine.execSelect();
+ System.out.println("SparQL query complete in " + t);
+ return results;
+ }
+
+ /**
+ * @param resName resource such as "wikidata-childToParent.sparql"
+ * @param server server name
+ * @return
+ * @throws IOException
+ */
+ public ResultSet execSelectFromSparql(final String resName, final String server) throws IOException {
+ final Query q = loadSparql(resName);
+ return execSelect(q, server);
+ }
+
+ /**
+ * A little routine to dump a ResultSet out to the command line.
+ * Note that it is destructive to the ResultSet, so can't be combined with other processing.
+ * @param rs
+ */
+ public static void dumpResults(ResultSet rs) {
+ System.out.println("RESULTS:" + rs.getResultVars());
+ for(;rs.hasNext();) {
+ QuerySolution qs = rs.next();
+ Iterator<String> vn = qs.varNames();
+ for(;vn.hasNext();) {
+ final String k = vn.next();
+ System.out.println(k+"="+qs.get(k).toString());
+ }
+ System.out.println();
+ }
+ }
+ /**
+ * Load a query from a resource
+ * @param resName
+ * @return
+ * @throws IOException
+ */
+ public static Query loadSparql(final String resName) throws IOException {
+ final String str = Resources.toString(Resources.getResource(QueryClient.class, "sparql/"+resName+".sparql"), StandardCharsets.UTF_8);
+ return QueryFactory.create(str);
+ }
+}
+
+
diff --git a/tools/cldr-rdf/src/main/java/org/unicode/cldr/rdf/ScriptMapper.java b/tools/cldr-rdf/src/main/java/org/unicode/cldr/rdf/ScriptMapper.java
new file mode 100644
index 0000000..92db468
--- /dev/null
+++ b/tools/cldr-rdf/src/main/java/org/unicode/cldr/rdf/ScriptMapper.java
@@ -0,0 +1,74 @@
+// © 2020 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+package org.unicode.cldr.rdf;
+
+import org.apache.jena.arq.querybuilder.SelectBuilder;
+import org.apache.jena.query.Query;
+import org.apache.jena.query.QuerySolution;
+import org.apache.jena.query.ResultSet;
+import org.apache.jena.sparql.lang.sparql_11.ParseException;
+import org.unicode.cldr.util.CLDRConfig;
+import org.unicode.cldr.util.CoverageInfo;
+import org.unicode.cldr.util.Level;
+import org.unicode.cldr.util.PathHeader;
+import org.unicode.cldr.util.XPathParts;
+
+/**
+ * an XPathMapper responsible for language display names
+ * @author srl295
+ */
+public class ScriptMapper implements XPathMapper {
+
+ static final String O_RESOURCE = "?resource";
+ static final String O_ISO = "?iso";
+ static final boolean DEBUG = false;
+
+ public ScriptMapper() {
+ }
+
+
+ @Override
+ public int addEntries(AbstractCache cache) throws ParseException {
+ int newAdd = 0;
+ final CLDRConfig config = CLDRConfig.getInstance();
+ ResultSet rs = queryScriptResources();
+
+ XPathParts xpp = XPathParts.getFrozenInstance("//ldml/localeDisplayNames/scripts/script").cloneAsThawed();
+ while(rs.hasNext()) {
+ final QuerySolution qs = rs.next();
+ String code = QueryClient.getLiteralOrNull(qs, O_ISO.substring(1));
+ final String res = QueryClient.getResourceOrNull(qs, O_RESOURCE.substring(1));
+ if(code.length() != 4) {
+ if(DEBUG) System.out.println("!!!" + rs.getRowNumber() + " - " + code + " " + res);
+ continue;
+ } else {
+ if(DEBUG) System.out.println("== " + rs.getRowNumber() + " - " + code + " " + res);
+ }
+
+ xpp.setAttribute(-1, "type", code);
+ final String xpath = xpp.toString();
+ if(DEBUG) System.out.println("\t"+res+"\t"+xpath);
+ if(cache.add(xpath, res) == false) {
+ newAdd ++;
+ }
+ }
+ return newAdd;
+ }
+
+ public static ResultSet queryScriptResources() throws ParseException {
+ final String resType = O_RESOURCE;
+ final SelectBuilder builder = new SelectBuilder()
+ .addPrefix("dbp", QueryClient.PREFIX_DBP)
+ .addPrefix("rdf", QueryClient.PREFIX_RDF)
+ .addPrefix("yago", QueryClient.PREFIX_YAGO)
+ .addVar("*")
+ .addWhere(resType, "rdf:type", "yago:CharacterSet106488880")
+ .addWhere(resType, "dbp:iso", O_ISO)
+ ;
+ System.out.println(builder.buildString());
+ Query q = builder.build();
+ ResultSet results = QueryClient.getInstance().execSelect(q);
+ return results;
+ }
+}
diff --git a/tools/cldr-rdf/src/main/java/org/unicode/cldr/rdf/TsvWriter.java b/tools/cldr-rdf/src/main/java/org/unicode/cldr/rdf/TsvWriter.java
new file mode 100644
index 0000000..622a240
--- /dev/null
+++ b/tools/cldr-rdf/src/main/java/org/unicode/cldr/rdf/TsvWriter.java
@@ -0,0 +1,64 @@
+package org.unicode.cldr.rdf;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.Map;
+
+import org.unicode.cldr.draft.FileUtilities;
+import org.unicode.cldr.util.CLDRConfig;
+
+import com.google.common.collect.Multimap;
+
+/**
+ * Utility to aid in writing .tsv files
+ */
+public class TsvWriter {
+ /**
+ * Write a Multimap as a tsv with pairs
+ * @param fn filename
+ * @param map
+ * @param k key column name
+ * @param v value column name
+ * @throws IOException
+ */
+ public static void writeTsv(String fn, Multimap<String, String> map, String k, String v) throws IOException {
+ System.out.println("Writing " + fn);
+ try(PrintWriter w = FileUtilities.openUTF8Writer(getTsvDir(), fn)) {
+ writeRow(w, k, v); // header
+ map.entries().forEach(e -> writeRow(w, e.getKey(), e.getValue()));
+ }
+ }
+
+ /**
+ * Write a Map as a tsv with pairs
+ * @param fn filename
+ * @param map
+ * @param k key column name
+ * @param v value column name
+ * @throws IOException
+ */
+ public static void writeTsv(String fn, Map<String, String> map, String k, String v) throws IOException {
+ System.out.println("Writing " + fn);
+ try(PrintWriter w = FileUtilities.openUTF8Writer(getTsvDir(), fn)) {
+ writeRow(w, k, v); // header
+ map.entrySet().forEach(e -> writeRow(w, e.getKey(), e.getValue()));
+ }
+ }
+
+ public static File getTsvDir() {
+ File base = CLDRConfig.getInstance().getCldrBaseDirectory();
+ File tsvDir = new File(base, "tools/cldr-rdf/external");
+ tsvDir.mkdirs();
+ return tsvDir;
+ }
+
+ /**
+ * Write a TSV row
+ * @param w stream to write to
+ * @param elements columns to write
+ */
+ public static void writeRow(PrintWriter w, CharSequence... elements) {
+ w.println(String.join("\t", elements));
+ }
+}
diff --git a/tools/cldr-rdf/src/main/java/org/unicode/cldr/rdf/XPathMapper.java b/tools/cldr-rdf/src/main/java/org/unicode/cldr/rdf/XPathMapper.java
new file mode 100644
index 0000000..b53abd9
--- /dev/null
+++ b/tools/cldr-rdf/src/main/java/org/unicode/cldr/rdf/XPathMapper.java
@@ -0,0 +1,22 @@
+package org.unicode.cldr.rdf;
+
+import org.apache.jena.sparql.lang.sparql_11.ParseException;
+
+/**
+ * An interface for classes capable of mapping from an XPath to a Resource URI
+ * where the Resource can provide an abstract
+ *
+ * @author srl295
+ *
+ */
+public interface XPathMapper {
+
+ /**
+ * Add all entries to the cache
+ * @param cache
+ * @return number of new entries, or zero
+ * @throws ParseException
+ */
+ int addEntries(AbstractCache cache) throws ParseException;
+
+}
diff --git a/tools/java/org/unicode/cldr/tool/GenerateLanguageContainment.java b/tools/cldr-rdf/src/main/java/org/unicode/cldr/tool/GenerateLanguageContainment.java
similarity index 71%
rename from tools/java/org/unicode/cldr/tool/GenerateLanguageContainment.java
rename to tools/cldr-rdf/src/main/java/org/unicode/cldr/tool/GenerateLanguageContainment.java
index 44fe547..852e578 100644
--- a/tools/java/org/unicode/cldr/tool/GenerateLanguageContainment.java
+++ b/tools/cldr-rdf/src/main/java/org/unicode/cldr/tool/GenerateLanguageContainment.java
@@ -1,5 +1,6 @@
package org.unicode.cldr.tool;
+import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Writer;
@@ -18,7 +19,11 @@
import java.util.function.Consumer;
import java.util.function.Function;
+import org.apache.jena.query.QuerySolution;
+import org.apache.jena.query.ResultSet;
import org.unicode.cldr.draft.FileUtilities;
+import org.unicode.cldr.rdf.QueryClient;
+import org.unicode.cldr.rdf.TsvWriter;
import org.unicode.cldr.util.CLDRConfig;
import org.unicode.cldr.util.CLDRFile;
import org.unicode.cldr.util.CLDRPaths;
@@ -49,6 +54,8 @@
public class GenerateLanguageContainment {
private static final boolean ONLY_LIVING = false;
private static final CLDRConfig CONFIG = CLDRConfig.getInstance();
+ private static final QueryClient queryClient = QueryClient.getInstance();
+
static final Splitter TAB = Splitter.on('\t').trimResults();
static final CLDRFile ENGLISH = CONFIG.getEnglish();
static final String relDir = "../util/data/languages/";
@@ -56,30 +63,78 @@
.getSupplementalDataInfo()
.getLocaleAliasInfo()
.get("language");
- static final Map<String, String> entityToLabel = loadTsvPairsUnique(GenerateLanguageContainment.class, relDir + "entityToLabel.tsv",
- null, null, null);
+
+ /**
+ * We load the SparQL queries using this helper object, to be able to catch exceptions…
+ */
+ final static class QueryHelper {
+ final public Map<String, String> entityToLabel;
+ final public Map<String, String> entityToCode;
+ final public ImmutableMultimap<String, String> codeToEntity;
+ final public Multimap<String, String> childToParent;
+
+ QueryHelper() {
+ try {
+ entityToLabel = loadQueryPairsUnique(GenerateLanguageContainment.class, "wikidata-entityToLabel",
+ null, null, null);
+
+ entityToCode = loadQueryPairsUnique(GenerateLanguageContainment.class, "wikidata-entityToCode",
+ code -> {
+ code = code.replace("\"", "");
+ R2<List<String>, String> v = ALIAS_MAP.get(code);
+ String result = v == null
+ ? code : v.get0().get(0);
+ result = result.contains("_")
+ ? code
+ : result;
+ return result;
+ },
+ null, NAME);
+
+ codeToEntity = ImmutableMultimap.copyOf(
+ Multimaps.invertFrom(Multimaps.forMap(entityToCode), LinkedHashMultimap.create()));
+
+ childToParent = loadQueryPairs(GenerateLanguageContainment.class, "wikidata-childToParent",
+ code -> getEntityName(code), code -> getEntityName(code));
+
+ } catch(Throwable t) {
+ t.printStackTrace();
+ throw new RuntimeException(t);
+ }
+ }
+
+ String getEntityName(String key) {
+ String code = entityToCode.get(key);
+ if (code != null) {
+ try {
+ String name = NAME.apply(code);
+ if (name != null) {
+ return name;
+ }
+ } catch (Exception e) {
+ // TODO: Why would NAME.apply throw?
+ // TODO: Need better handling here?
+ }
+ }
+ String name = entityToLabel.get(key);
+ if (name != null) {
+ return name;
+ }
+ int last = key.lastIndexOf('/');
+ return key.substring(last + 1, key.length() - 1);
+ }
+ public void writeTsvs() throws IOException {
+ TsvWriter.writeTsv("childToParent.tsv", childToParent, "child", "parent");
+ TsvWriter.writeTsv("entityToCode.tsv", entityToCode, "lang", "langCode");
+ TsvWriter.writeTsv("entityToLabel.tsv", entityToLabel, "lang", "langLabel");
+ }
+
+ }
+ static final QueryHelper QUERY_HELPER = new QueryHelper();
+
static final Function<String, String> NAME = code -> code.equals("mul") ? "root" : ENGLISH.getName(code) + " (" + code + ")";
- static final Map<String, String> entityToCode = loadTsvPairsUnique(GenerateLanguageContainment.class, relDir + "entityToCode.tsv",
- code -> {
- code = code.replace("\"", "");
- R2<List<String>, String> v = ALIAS_MAP.get(code);
- String result = v == null
- ? code : v.get0().get(0);
- result = result.contains("_")
- ? code
- : result;
- return result;
- },
- null, NAME);
-
- static final Multimap<String, String> codeToEntity = ImmutableMultimap.copyOf(
- Multimaps.invertFrom(Multimaps.forMap(entityToCode), LinkedHashMultimap.create()));
-
- static final Multimap<String, String> childToParent = loadTsvPairs(GenerateLanguageContainment.class, relDir + "childToParent.tsv",
- code -> getEntityName(code), code -> getEntityName(code));
-
static final Set<String> COLLECTIONS;
static {
Map<String, Map<LstrField, String>> languages = StandardCodes.getEnumLstreg().get(LstrType.language);
@@ -157,12 +212,15 @@
.put("ine", "grc")
.build();
- public static void main(String[] args) {
+ public static void main(String[] args) throws IOException {
+ new GenerateLanguageContainment().run(args);
+ }
+ void run(String[] args) throws IOException {
if (true) {
// check on items
for (String check : Arrays.asList("sw", "km", "ksh", "wae", "kea", "mfe", "th", "lo")) {
System.out.println("Checking " + ENGLISH.getName(check) + "[" + check + "]");
- Collection<String> entities = codeToEntity.get(check);
+ Collection<String> entities = QUERY_HELPER.codeToEntity.get(check);
if (entities.isEmpty()) {
System.out.println("no code for " + check + ": " + entities);
continue;
@@ -192,12 +250,12 @@
// if (COLLECTIONS.contains(code)) {
// continue;
// }
- Collection<String> entities = codeToEntity.get(code);
+ Collection<String> entities = QUERY_HELPER.codeToEntity.get(code);
if (entities.isEmpty()) {
continue;
}
for (String entity : entities) {
- if (childToParent.get(entity).isEmpty()) {
+ if (QUERY_HELPER.childToParent.get(entity).isEmpty()) {
continue;
}
Set<Set<String>> chains = getAncestors(entity);
@@ -243,7 +301,7 @@
PrintWriter out = new PrintWriter(System.out);
print(out, parentToChild, new ArrayList<>(Arrays.asList("mul")));
- System.out.println(out);
+ out.println();
SimpleXMLSource xmlSource = new SimpleXMLSource("languageGroup");
xmlSource.setNonInheriting(true); // should be gotten from DtdType...
CLDRFile newFile = new CLDRFile(xmlSource);
@@ -262,6 +320,7 @@
// String parentNames = getName(entityToCode, entityToLabel, entry.getValue());
// System.out.println(entry.getKey() + "\t" + entry.getValue() + "\t" + childNames + "\t" + parentNames);
// }
+ QUERY_HELPER.writeTsvs();
}
private static void showEntityLists(String title, Set<List<String>> ancestors) {
@@ -271,7 +330,7 @@
item.forEach(new Consumer<String>() {
@Override
public void accept(String t) {
- System.out.println(t + "\t" + entityToCode.get(t) + "\t" + entityToLabel.get(t));
+ System.out.println(t + "\t" + QUERY_HELPER.entityToCode.get(t) + "\t" + QUERY_HELPER.entityToLabel.get(t));
}
});
System.out.println();
@@ -323,12 +382,12 @@
}
private static Set<Set<String>> getAncestors(String leaf) {
- Set<List<String>> items = Containment.getAllDirected(childToParent, leaf);
+ Set<List<String>> items = Containment.getAllDirected(QUERY_HELPER.childToParent, leaf);
Set<Set<String>> itemsFixed = new LinkedHashSet<>();
main: for (List<String> item : items) {
Set<String> chain = new LinkedHashSet<>();
for (String id : item) {
- String code = entityToCode.get(id);
+ String code = QUERY_HELPER.entityToCode.get(id);
if (code == null) {
continue;
}
@@ -372,6 +431,7 @@
itemsFixed.removeAll(removals);
}
return itemsFixed;
+// TODO: delete this commented-out code?
// while (true) {
// String code = entityToCode.get(leaf);
// if (code != null) {
@@ -418,68 +478,73 @@
// }
}
- private static String getBest(Collection<String> parents) {
- for (String parent : parents) {
- String code = entityToCode.get(parent);
- if (code == null) continue;
- Type type = Iso639Data.getType(code);
- if (type != Type.Living) {
- continue;
- }
- return parent;
- }
- // failed
- return parents.iterator().next();
- }
+// TODO: This function is only called by other commented-out code above.
+// private static String getBest(Collection<String> parents) {
+// for (String parent : parents) {
+// String code = QUERY_HELPER.entityToCode.get(parent);
+// if (code == null) continue;
+// Type type = Iso639Data.getType(code);
+// if (type != Type.Living) {
+// continue;
+// }
+// return parent;
+// }
+// // failed
+// return parents.iterator().next();
+// }
- private static String getEntityName(String key) {
- String code = entityToCode.get(key);
- if (code != null) {
- try {
- String name = NAME.apply(code);
- if (name != null) {
- return name;
- }
- } catch (Exception e) {
- }
- }
- String name = entityToLabel.get(key);
- if (name != null) {
- return name;
- }
- int last = key.lastIndexOf('/');
- return key.substring(last + 1, key.length() - 1);
- }
-
- private static Multimap<String, String> loadTsvPairs(Class<?> class1, String file,
- Function<String, String> keyMapper, Function<String, String> valueMapper) {
- String rel = FileUtilities.getRelativeFileName(class1, file);
- System.out.println(rel);
+ private static Multimap<String, String> loadQueryPairs(Class<?> class1, String file,
+ Function<String, String> keyMapper, Function<String, String> valueMapper) throws IOException {
+ System.out.println("QUERY: " + file);
+ ResultSet rs = queryClient.execSelectFromSparql(file, QueryClient.WIKIDATA_SPARQL_SERVER);
+ // the query must return exactly two variables.
+ List<String> resultVars = rs.getResultVars();
+ assertTwoVars(resultVars);
+ final String keyName = resultVars.get(0);
+ final String valueName = resultVars.get(1);
+
ImmutableMultimap.Builder<String, String> _keyToValues = ImmutableMultimap.builder();
- for (String line : FileUtilities.in(class1, file)) {
- if (line.startsWith("?") || line.isEmpty()) continue;
- List<String> parts = TAB.splitToList(line);
- String key = parts.get(0);
- String value = parts.get(1);
+ for (;rs.hasNext();) {
+ final QuerySolution qs = rs.next();
+ String key = QueryClient.getStringOrNull(qs, keyName);
+ String value = QueryClient.getStringOrNull(qs, valueName);
_keyToValues.put(key, value);
}
ImmutableMultimap<String, String> result = _keyToValues.build();
showDups(file, result, keyMapper, valueMapper);
+ System.out.println("LOADED: " + file + " with rows " + rs.getRowNumber());
return result;
}
- private static Map<String, String> loadTsvPairsUnique(Class<?> class1, String file,
+ /**
+ * Assuming that the SPARQL query returns exactly 2 results, treat them as Key=Value.
+ * @param class1
+ * @param file name of a sparql query, such as 'wikidata-childToParent'
+ * @param fixValue
+ * @param keyMapper
+ * @param valueMapper
+ * @return
+ * @throws IOException
+ */
+ private static Map<String, String> loadQueryPairsUnique(Class<?> class1, String file,
Function<String, String> fixValue,
- Function<String, String> keyMapper, Function<String, String> valueMapper) {
- String rel = FileUtilities.getRelativeFileName(class1, file);
- System.out.println(rel);
+ Function<String, String> keyMapper, Function<String, String> valueMapper) throws IOException {
+
+ System.out.println("QUERY: " + file);
+ ResultSet rs = queryClient.execSelectFromSparql(file, QueryClient.WIKIDATA_SPARQL_SERVER);
+
+ // the query must return exactly two variables.
+ List<String> resultVars = rs.getResultVars();
+ assertTwoVars(resultVars);
+ final String keyName = resultVars.get(0);
+ final String valueName = resultVars.get(1);
+
Map<String, String> _keyToValue = new TreeMap<>();
Multimap<String, String> _keyToValues = TreeMultimap.create();
- for (String line : FileUtilities.in(class1, file)) {
- if (line.startsWith("?") || line.isEmpty()) continue;
- List<String> parts = TAB.splitToList(line);
- String key = parts.get(0);
- String value = parts.get(1);
+ for (;rs.hasNext();) {
+ final QuerySolution qs = rs.next();
+ String key = QueryClient.getStringOrNull(qs, keyName);
+ String value = QueryClient.getStringOrNull(qs, valueName);
if (fixValue != null) {
value = fixValue.apply(value);
}
@@ -491,10 +556,16 @@
}
_keyToValue = ImmutableMap.copyOf(_keyToValue);
showDups(file, _keyToValues, keyMapper, valueMapper);
+ System.out.println("LOADED: " + file + " with rows " + rs.getRowNumber());
return _keyToValue;
}
+ private static void assertTwoVars(List<String> resultVars) {
+ if(resultVars.size() != 2) {
+ throw new IllegalArgumentException("expected 2 result vars but got " + resultVars.size() + ": " + resultVars);
+ }
+ }
- private static void showDups(String file, Multimap<String, String> _keyToValues,
+ private static void showDups(String file, Multimap<String, String> _keyToValues,
Function<String, String> keyMapper, Function<String, String> valueMapper) {
for (Entry<String, Collection<String>> entry : _keyToValues.asMap().entrySet()) {
Collection<String> valueSet = entry.getValue();
@@ -512,6 +583,6 @@
}
static Set<List<String>> getAllAncestors(String lang) {
- return Containment.getAllDirected(childToParent, lang);
+ return Containment.getAllDirected(QUERY_HELPER.childToParent, lang);
}
}
diff --git a/tools/java/org/unicode/cldr/tool/GenerateSubdivisions.java b/tools/cldr-rdf/src/main/java/org/unicode/cldr/tool/GenerateSubdivisions.java
similarity index 98%
rename from tools/java/org/unicode/cldr/tool/GenerateSubdivisions.java
rename to tools/cldr-rdf/src/main/java/org/unicode/cldr/tool/GenerateSubdivisions.java
index ec3018f..b3390d7 100644
--- a/tools/java/org/unicode/cldr/tool/GenerateSubdivisions.java
+++ b/tools/cldr-rdf/src/main/java/org/unicode/cldr/tool/GenerateSubdivisions.java
@@ -45,7 +45,7 @@
static final Validity VALIDITY_FORMER = Validity.getInstance(CLDRPaths.LAST_RELEASE_DIRECTORY + "common/validity/");
- static final Relation<String, String> formerRegionToSubdivisions = Relation.of(new HashMap<String, Set<String>>(), TreeSet.class, SubdivisionNode.ROOT_COL);
+ static final Relation<String, String> formerRegionToSubdivisions = Relation.of(new HashMap<String, Set<String>>(), TreeSet.class, CLDRConfig.getInstance().getComparatorRoot());
static {
Map<Status, Set<String>> oldSubdivisionData = VALIDITY_FORMER.getStatusToCodes(LstrType.subdivision);
for (Entry<Status, Set<String>> e : oldSubdivisionData.entrySet()) {
diff --git a/tools/java/org/unicode/cldr/tool/SubdivisionNode.java b/tools/cldr-rdf/src/main/java/org/unicode/cldr/tool/SubdivisionNode.java
similarity index 98%
rename from tools/java/org/unicode/cldr/tool/SubdivisionNode.java
rename to tools/cldr-rdf/src/main/java/org/unicode/cldr/tool/SubdivisionNode.java
index baed3e2..097d748 100644
--- a/tools/java/org/unicode/cldr/tool/SubdivisionNode.java
+++ b/tools/cldr-rdf/src/main/java/org/unicode/cldr/tool/SubdivisionNode.java
@@ -35,7 +35,6 @@
import org.unicode.cldr.util.SupplementalDataInfo;
import org.unicode.cldr.util.Validity;
import org.unicode.cldr.util.Validity.Status;
-import org.unicode.cldr.util.WikiSubdivisionLanguages;
import org.unicode.cldr.util.XMLFileReader;
import org.unicode.cldr.util.XPathParts;
import org.unicode.cldr.util.XPathParts.Comments.CommentType;
@@ -46,13 +45,12 @@
import com.ibm.icu.impl.Utility;
import com.ibm.icu.lang.UCharacter;
import com.ibm.icu.text.CaseMap;
-import com.ibm.icu.text.Collator;
import com.ibm.icu.text.LocaleDisplayNames;
import com.ibm.icu.text.Normalizer2;
-import com.ibm.icu.text.RuleBasedCollator;
import com.ibm.icu.util.ULocale;
public class SubdivisionNode {
+ private static final Comparator<String> COMPARATOR_ROOT = CLDRConfig.getInstance().getComparatorRoot();
static final SupplementalDataInfo SDI = SupplementalDataInfo.getInstance();
static final Map<String, R2<List<String>, String>> territoryAliases = SDI.getLocaleAliasInfo().get("territory");
static final Set<String> containment = SDI.getContainers();
@@ -61,13 +59,6 @@
static LocaleDisplayNames ENGLISH_ICU = LocaleDisplayNames.getInstance(ULocale.ENGLISH);
static final CaseMap.Title TO_TITLE_WHOLE_STRING_NO_LOWERCASE = CaseMap.toTitle().wholeString().noLowercase();
- static final Comparator<String> ROOT_COL;
- static {
- RuleBasedCollator _ROOT_COL = (RuleBasedCollator) Collator.getInstance(ULocale.ENGLISH);
- _ROOT_COL.setNumericCollation(true);
- _ROOT_COL.freeze();
- ROOT_COL = (Comparator) _ROOT_COL;
- }
static final CLDRConfig CLDR_CONFIG = CLDRConfig.getInstance();
static final CLDRFile ENGLISH_CLDR = CLDR_CONFIG.getEnglish();
static final Normalizer2 nfc = Normalizer2.getNFCInstance();
@@ -81,7 +72,7 @@
final String code;
final int level;
final SubdivisionNode parent;
- final Map<String, SubdivisionNode> children = new TreeMap<>(ROOT_COL);
+ final Map<String, SubdivisionNode> children = new TreeMap<>(COMPARATOR_ROOT);
public SubdivisionNode(String code, SubdivisionNode parent, SubdivisionSet sset) {
this.code = code;
@@ -98,7 +89,7 @@
static class SubdivisionSet {
- final M3<String, String, String> NAMES = ChainedMap.of(
+ final M3<String, String, String> NAMES = ChainedMap.of(
new TreeMap<String, Object>(),
new TreeMap<String, Object>(),
String.class);
@@ -238,7 +229,7 @@
}
private static void addChildren(Set<SubdivisionNode> ordered, Map<String, SubdivisionNode> children2) {
- TreeMap<String, SubdivisionNode> temp = new TreeMap<>(ROOT_COL);
+ TreeMap<String, SubdivisionNode> temp = new TreeMap<>(COMPARATOR_ROOT);
temp.putAll(children2);
ordered.addAll(temp.values());
for (SubdivisionNode n : temp.values()) {
@@ -523,7 +514,7 @@
// Get the old validity data
Map<Status, Set<String>> oldSubdivisionData = validityFormer.getStatusToCodes(LstrType.subdivision);
- Set<String> missing = new TreeSet<>(ROOT_COL);
+ Set<String> missing = new TreeSet<>(COMPARATOR_ROOT);
missing.addAll(sdset.TO_COUNTRY_CODE.keySet());
Set<String> nowValid = sdset.ID_TO_NODE.keySet();
for (Entry<Status, Set<String>> e : oldSubdivisionData.entrySet()) {
diff --git a/tools/java/org/unicode/cldr/util/WikiSubdivisionLanguages.java b/tools/cldr-rdf/src/main/java/org/unicode/cldr/tool/WikiSubdivisionLanguages.java
similarity index 84%
rename from tools/java/org/unicode/cldr/util/WikiSubdivisionLanguages.java
rename to tools/cldr-rdf/src/main/java/org/unicode/cldr/tool/WikiSubdivisionLanguages.java
index 0a67ab4..fffc52a 100644
--- a/tools/java/org/unicode/cldr/util/WikiSubdivisionLanguages.java
+++ b/tools/cldr-rdf/src/main/java/org/unicode/cldr/tool/WikiSubdivisionLanguages.java
@@ -1,4 +1,4 @@
-package org.unicode.cldr.util;
+package org.unicode.cldr.tool;
import java.io.File;
import java.io.IOException;
@@ -16,11 +16,27 @@
import java.util.TreeMap;
import java.util.TreeSet;
+import org.apache.jena.query.QuerySolution;
+import org.apache.jena.query.ResultSet;
import org.unicode.cldr.draft.FileUtilities;
+import org.unicode.cldr.rdf.QueryClient;
+import org.unicode.cldr.rdf.TsvWriter;
import org.unicode.cldr.test.DisplayAndInputProcessor;
import org.unicode.cldr.tool.SubdivisionNode;
+import org.unicode.cldr.util.CLDRConfig;
+import org.unicode.cldr.util.CLDRFile;
+import org.unicode.cldr.util.CLDRPaths;
+import org.unicode.cldr.util.ChainedMap;
+import org.unicode.cldr.util.CldrUtility;
+import org.unicode.cldr.util.Counter;
+import org.unicode.cldr.util.Factory;
+import org.unicode.cldr.util.SimpleXMLSource;
+import org.unicode.cldr.util.SupplementalDataInfo;
+import org.unicode.cldr.util.Validity;
+import org.unicode.cldr.util.XPathParts;
import org.unicode.cldr.util.CLDRFile.NumberingSystem;
import org.unicode.cldr.util.CLDRFile.WinningChoice;
+import org.unicode.cldr.util.ChainedMap.M3;
import org.unicode.cldr.util.ChainedMap.M4;
import org.unicode.cldr.util.StandardCodes.LstrType;
import org.unicode.cldr.util.Validity.Status;
@@ -42,6 +58,7 @@
import com.ibm.icu.util.ULocale;
public final class WikiSubdivisionLanguages {
+ private static final String WIKI_SUBDIVISION_LANGUAGES_TSV = "wikiSubdivisionLanguages.tsv";
static final SupplementalDataInfo SDI = SupplementalDataInfo.getInstance();
static final Set<String> regularSubdivisions = Validity.getInstance().getStatusToCodes(LstrType.subdivision).get(Status.regular);
@@ -55,11 +72,6 @@
private static final CLDRConfig CLDR_CONFIG = CLDRConfig.getInstance();
private static final Normalizer2 NFC = Normalizer2.getNFCInstance();
- enum Items {
- // http://www.wikidata.org/entity/Q24260 كانيلو AD-02 ar
- wid, translation, subdivisionId, languageId
- }
-
private static ChainedMap.M3<String, String, String> SUB_LANG_NAME = ChainedMap.of(new TreeMap<String, Object>(), new TreeMap<String, Object>(),
String.class);
private static ChainedMap.M3<String, String, String> LANG_SUB_NAME = ChainedMap.of(new TreeMap<String, Object>(), new TreeMap<String, Object>(),
@@ -92,40 +104,50 @@
}
return null;
}
+
+ private static final String QUERY_NAME = "wikidata-wikisubdivisionLanguages";
//static Map<String, String> WIKIDATA_TO_MID = new TreeMap<>();
- static {
- Splitter TAB = Splitter.on('\t').trimResults();
- File file = new File("data/external", "wikiSubdivisionLanguages.tsv");
- try {
- System.out.println(file.getCanonicalFile());
- } catch (IOException e) {
- e.printStackTrace();
- }
+ static void init() throws IOException {
+
+ QueryClient queryClient = QueryClient.getInstance();
+
+ System.out.println("QUERY: " + QUERY_NAME);
+ ResultSet rs = queryClient.execSelectFromSparql(QUERY_NAME, QueryClient.WIKIDATA_SPARQL_SERVER);
+
Map<String, Status> codeToStatus = Validity.getInstance().getCodeToStatus(LstrType.subdivision);
+ try(PrintWriter tsv = FileUtilities.openUTF8Writer(TsvWriter.getTsvDir(), WIKI_SUBDIVISION_LANGUAGES_TSV)) {
+ TsvWriter.writeRow(tsv, "item", "label", "code", "codeLabel");
+ for (;rs.hasNext();) {
+ final QuerySolution qs = rs.next();
+
+ String item = QueryClient.getResourceOrNull(qs, "item");
+ String label = NFC.normalize(QueryClient.getStringOrNull(qs, "label"));
+ String code = QueryClient.getStringOrNull(qs, "code");
+ String codeLabel = QueryClient.getStringOrNull(qs, "codeLabel");
- for (String line : FileUtilities.in(WikiSubdivisionLanguages.class, "data/external/wikiSubdivisionLanguages.tsv")) {
-
- List<String> data = TAB.splitToList(line);
- String subdivision = SubdivisionNode.convertToCldr(data.get(Items.subdivisionId.ordinal()));
- if (!regularSubdivisions.contains(subdivision)) {
- Status status = codeToStatus.get(subdivision);
- if (status == null) {
- bogus.add(subdivision);
- } else {
- bogusStatus.put(status, subdivision);
+ TsvWriter.writeRow(tsv, item, label, code, codeLabel);
+
+ String subdivision = SubdivisionNode.convertToCldr(code);
+ if (!regularSubdivisions.contains(subdivision)) {
+ Status status = codeToStatus.get(subdivision);
+ if (status == null) {
+ bogus.add(subdivision);
+ } else {
+ bogusStatus.put(status, subdivision);
+ }
+ continue;
}
- continue;
+ if (DEBUG_LANG_FILTER != null && !DEBUG_LANG_FILTER.equals(codeLabel)) {
+ continue;
+ }
+ SUB_LANG_NAME.put(subdivision, codeLabel, label);
+ // WIKIDATA_TO_MID.put(subdivision, data.get(2));
+ LANG_SUB_NAME.put(codeLabel, subdivision, label);
}
- String lang = data.get(Items.languageId.ordinal());
- if (DEBUG_LANG_FILTER != null && !DEBUG_LANG_FILTER.equals(lang)) {
- continue;
- }
- String name = NFC.normalize(data.get(Items.translation.ordinal()));
- SUB_LANG_NAME.put(subdivision, lang, name);
-// WIKIDATA_TO_MID.put(subdivision, data.get(2));
- LANG_SUB_NAME.put(lang, subdivision, name);
+ System.out.println("Queried " + QUERY_NAME + " at row count " + rs.getRowNumber());
}
+ System.out.println("Wrote to " + WIKI_SUBDIVISION_LANGUAGES_TSV);
// postprocess
String oldLang = null;
DisplayAndInputProcessor daip = null;
@@ -167,7 +189,9 @@
return path.substring(BEFORE_TYPE.length(), path.indexOf('"', BEFORE_TYPE.length()));
}
- public static void main(String[] args) {
+ public static void main(String[] args) throws IOException {
+ init();
+
Counter<String> counter = new Counter<>();
Factory cldrFactory = CLDR_CONFIG.getCldrFactory();
Factory cldrFactorySubdivisions = Factory.make(CLDRPaths.SUBDIVISIONS_DIRECTORY, ".*");
diff --git a/tools/cldr-rdf/src/main/resources/org/unicode/cldr/rdf/sparql/wikidata-childToParent.sparql b/tools/cldr-rdf/src/main/resources/org/unicode/cldr/rdf/sparql/wikidata-childToParent.sparql
new file mode 100644
index 0000000..2509a02
--- /dev/null
+++ b/tools/cldr-rdf/src/main/resources/org/unicode/cldr/rdf/sparql/wikidata-childToParent.sparql
@@ -0,0 +1,26 @@
+
+# from https://en.wikibooks.org/wiki/SPARQL/Prefixes
+PREFIX wd: <http://www.wikidata.org/entity/>
+PREFIX wds: <http://www.wikidata.org/entity/statement/>
+PREFIX wdv: <http://www.wikidata.org/value/>
+PREFIX wdt: <http://www.wikidata.org/prop/direct/>
+PREFIX wikibase: <http://wikiba.se/ontology#>
+PREFIX p: <http://www.wikidata.org/prop/>
+PREFIX ps: <http://www.wikidata.org/prop/statement/>
+PREFIX pq: <http://www.wikidata.org/prop/qualifier/>
+PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
+PREFIX bd: <http://www.bigdata.com/rdf#>
+
+
+SELECT DISTINCT ?child ?parent WHERE {
+ ?child p:P279/ps:P279 ?parent. #child is subclass of parent
+ {
+ ?parent wdt:P31 wd:Q25295. #parent is language family, OR
+ } UNION {
+ ?child wdt:P31 wd:Q25295. #child is language family, OR
+ } UNION {
+ ?parent wdt:P31 wd:Q34770. #parent is language, OR
+ } UNION {
+ ?child wdt:P31 wd:Q34770. #child is language
+ }
+}
diff --git a/tools/cldr-rdf/src/main/resources/org/unicode/cldr/rdf/sparql/wikidata-entityToCode.sparql b/tools/cldr-rdf/src/main/resources/org/unicode/cldr/rdf/sparql/wikidata-entityToCode.sparql
new file mode 100644
index 0000000..1a2fd52
--- /dev/null
+++ b/tools/cldr-rdf/src/main/resources/org/unicode/cldr/rdf/sparql/wikidata-entityToCode.sparql
@@ -0,0 +1,18 @@
+# from https://en.wikibooks.org/wiki/SPARQL/Prefixes
+PREFIX wd: <http://www.wikidata.org/entity/>
+PREFIX wds: <http://www.wikidata.org/entity/statement/>
+PREFIX wdv: <http://www.wikidata.org/value/>
+PREFIX wdt: <http://www.wikidata.org/prop/direct/>
+PREFIX wikibase: <http://wikiba.se/ontology#>
+PREFIX p: <http://www.wikidata.org/prop/>
+PREFIX ps: <http://www.wikidata.org/prop/statement/>
+PREFIX pq: <http://www.wikidata.org/prop/qualifier/>
+PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
+PREFIX bd: <http://www.bigdata.com/rdf#>
+
+SELECT DISTINCT ?lang ?langCode WHERE {
+ {
+ ?lang wdt:P305 ?langCode. #langcode is IETF = BC47 code
+ }
+}
+ORDER BY ?lang
diff --git a/tools/cldr-rdf/src/main/resources/org/unicode/cldr/rdf/sparql/wikidata-entityToLabel.sparql b/tools/cldr-rdf/src/main/resources/org/unicode/cldr/rdf/sparql/wikidata-entityToLabel.sparql
new file mode 100644
index 0000000..cc42851
--- /dev/null
+++ b/tools/cldr-rdf/src/main/resources/org/unicode/cldr/rdf/sparql/wikidata-entityToLabel.sparql
@@ -0,0 +1,21 @@
+# from https://en.wikibooks.org/wiki/SPARQL/Prefixes
+PREFIX wd: <http://www.wikidata.org/entity/>
+PREFIX wds: <http://www.wikidata.org/entity/statement/>
+PREFIX wdv: <http://www.wikidata.org/value/>
+PREFIX wdt: <http://www.wikidata.org/prop/direct/>
+PREFIX wikibase: <http://wikiba.se/ontology#>
+PREFIX p: <http://www.wikidata.org/prop/>
+PREFIX ps: <http://www.wikidata.org/prop/statement/>
+PREFIX pq: <http://www.wikidata.org/prop/qualifier/>
+PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
+PREFIX bd: <http://www.bigdata.com/rdf#>
+
+SELECT DISTINCT ?lang ?langLabel WHERE {
+ SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
+ {
+ ?lang wdt:P31 wd:Q25295. #lang is language family, OR
+ } UNION {
+ ?lang wdt:P31 wd:Q34770. #lang is language
+ }
+}
+ORDER BY ?lang
diff --git a/tools/cldr-rdf/src/main/resources/org/unicode/cldr/rdf/sparql/wikidata-wikisubdivisionLanguages.sparql b/tools/cldr-rdf/src/main/resources/org/unicode/cldr/rdf/sparql/wikidata-wikisubdivisionLanguages.sparql
new file mode 100644
index 0000000..5ab18eb
--- /dev/null
+++ b/tools/cldr-rdf/src/main/resources/org/unicode/cldr/rdf/sparql/wikidata-wikisubdivisionLanguages.sparql
@@ -0,0 +1,11 @@
+prefix wdt: <http://www.wikidata.org/prop/direct/>
+prefix wd: <http://www.wikidata.org/entity/>
+PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
+SELECT ?item ?label ?code ?codeLabel
+WHERE {
+ ?item wdt:P300 ?code .
+ ?item rdfs:label ?label.
+ BIND (lang(?label) AS ?codeLabel)
+ FILTER regex(?codeLabel,"^(af|am|ar|as|az|be|bg|bn|bs|ca|ceb|cs|cy|da|de|el|en|es|et|eu|fa|fi|fil|fr|ga|gl|gu|ha|he|hi|hr|hu|hy|id|ig|is|it|ja|jv|ka|kk|km|kn|ko|ky|lo|lt|lv|mk|ml|mn|mr|ms|my|ne|nl|no|or|pa|pl|ps|pt|ro|ru|sd|si|sk|sl|so|sq|sr|sv|sw|ta|te|th|tk|tr|uk|ur|uz|vi|yo|yue|zh|zu)$")
+}
+ORDER BY ?code ?codeLabel
diff --git a/tools/cldr-rdf/src/test/java/org/unicode/cldr/rdf/TestMapAll.java b/tools/cldr-rdf/src/test/java/org/unicode/cldr/rdf/TestMapAll.java
new file mode 100644
index 0000000..f68295f
--- /dev/null
+++ b/tools/cldr-rdf/src/test/java/org/unicode/cldr/rdf/TestMapAll.java
@@ -0,0 +1,74 @@
+package org.unicode.cldr.rdf;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assumptions.assumeTrue;
+
+import java.io.File;
+
+import org.apache.jena.sparql.lang.sparql_11.ParseException;
+import org.junit.jupiter.api.Test;
+import org.junit.platform.commons.annotation.Testable;
+
+import com.google.common.io.Files;
+
+@Testable
+public class TestMapAll {
+ private static final String TEST_XPATH = "//ldml";
+ private static final String TEST_URL = "http://cldr.unicode.org";
+ public static final boolean CLDR_TEST_ENABLE_NET = Boolean.parseBoolean(System.getProperty("CLDR_TEST_ENABLE_NET", "false"));
+
+ @Test
+ void TestNoMappings() {
+ File root = Files.createTempDir();
+ AbstractCache tmpCache = new AbstractCache(root);
+ assertEquals(0, tmpCache.size(), "Cache should be empty when created.");
+ assertNull(tmpCache.get("//cldr"));
+
+ assertFalse(tmpCache.add(TEST_XPATH, TEST_URL), "expected this value was not already there");
+ assertTrue(tmpCache.add(TEST_XPATH, TEST_URL), "expected this value was already there");
+
+ assertEquals(TEST_URL, tmpCache.get(TEST_XPATH));
+
+ {
+ AbstractCache cache2 = new AbstractCache(root);
+ assertEquals(0, cache2.size(), "Cache was not written yet");
+ assertNull(cache2.get("//cldr"));
+ assertNull(cache2.get(TEST_XPATH));
+ }
+
+ tmpCache.store();
+
+ assertEquals(TEST_URL, tmpCache.get(TEST_XPATH));
+
+ {
+ AbstractCache cache3 = new AbstractCache(root);
+ assertEquals(1, cache3.size(), "Cache was written and was re-read");
+ assertNull(cache3.get("//cldr"));
+ assertEquals(TEST_URL, cache3.get(TEST_XPATH));
+ }
+ }
+
+
+
+ @Test
+ void TestAllMappings() throws ParseException {
+ assumeTrue(CLDR_TEST_ENABLE_NET, "CLDR_TEST_ENABLE_NET not true, not attempting network read");
+
+ File root = Files.createTempDir();
+ AbstractCache tmpCache = new AbstractCache(root);
+
+ int count = new MapAll().addEntries(tmpCache);
+ assertNotEquals(0, count, "added count of net entries");
+
+ // Spot check
+
+ assertEquals("http://dbpedia.org/resource/French_language", tmpCache.get("//ldml/localeDisplayNames/languages/language[@type=\"fr\"]"));
+
+ tmpCache.store();
+ }
+
+}
diff --git a/tools/cldr-unittest/.classpath b/tools/cldr-unittest/.classpath
deleted file mode 100644
index 3bf5417..0000000
--- a/tools/cldr-unittest/.classpath
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry combineaccessrules="false" kind="src" path="/cldr-tools"/>
- <classpathentry kind="lib" path="/cldr-tools/libs/icu4j-src.jar"/>
- <classpathentry kind="lib" path="/cldr-tools/libs/icu4j.jar" sourcepath="/cldr-tools/libs/icu4j-src.jar"/>
- <classpathentry kind="lib" path="/cldr-tools/libs/utilities-src.jar"/>
- <classpathentry kind="lib" path="/cldr-tools/libs/utilities.jar" sourcepath="/cldr-tools/libs/utilities-src.jar"/>
- <classpathentry kind="lib" path="/cldr-tools/libs/xercesImpl.jar"/>
- <classpathentry kind="lib" path="/cldr-tools/classes" sourcepath="/cldr-tools"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
- <classpathentry kind="lib" path="/cldr-tools/libs/guava.jar"/>
- <classpathentry kind="lib" path="/cldr-tools/libs/failureaccess.jar"/>
- <classpathentry kind="lib" path="/cldr-tools/libs/myanmar-tools-1.1.1.jar"/>
- <classpathentry kind="output" path="build/classes"/>
-</classpath>
diff --git a/tools/cldr-unittest/.project b/tools/cldr-unittest/.project
deleted file mode 100644
index 04b5b19..0000000
--- a/tools/cldr-unittest/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>cldr-unittest</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
diff --git a/tools/cldr-unittest/.settings/org.eclipse.jdt.core.prefs b/tools/cldr-unittest/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 3fd66cd..0000000
--- a/tools/cldr-unittest/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,297 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=1
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=false
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=true
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=160
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/tools/cldr-unittest/.settings/org.eclipse.jdt.ui.prefs b/tools/cldr-unittest/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 0785818..0000000
--- a/tools/cldr-unittest/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,64 +0,0 @@
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_CLDR
-formatter_settings_version=12
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=false
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=true
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_modifiers=false
-sp_cleanup.remove_redundant_semicolons=true
-sp_cleanup.remove_redundant_type_arguments=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=true
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-sp_cleanup.use_type_arguments=false
diff --git a/tools/cldr-unittest/build-sample.properties b/tools/cldr-unittest/build-sample.properties
deleted file mode 100644
index 64f312d..0000000
--- a/tools/cldr-unittest/build-sample.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-##
-## Copyright (C) 2010-2013 IBM Corporation and Others. All Rights Reserved.
-##
-## Copy this file to build.properties, and edit as directed.
-
-#
-# The value specified JVM_EXTRA_OPTIONS is appended to java command line
-# args, typically used for setting Java heap size during tool/test execution.
-# The default value is currently -Xmx6g.
-#
-# JVM_EXTRA_OPTIONS = -Xmx8g -Xms1g
-#
diff --git a/tools/cldr-unittest/build.xml b/tools/cldr-unittest/build.xml
deleted file mode 100644
index a2d9700..0000000
--- a/tools/cldr-unittest/build.xml
+++ /dev/null
@@ -1,235 +0,0 @@
-<project name="CLDR Unit Tests" default="all" basedir=".">
- <target name="init">
- <!-- copied from cldr/tools/java's build.xml -->
- <tstamp />
- <property name="src.dir" value="src" />
-
- <property name="build.dir" value="build/classes" />
- <property name="log.dir" value="build/logs" />
- <property name="cldr.unittest.log" value="${log.dir}/unittest.log" />
- <property name="cldr.unittest.result" value="${log.dir}/unittest.result" />
- <property name="cldr.datacheck.log" value="${log.dir}/datacheck.log" />
- <property name="cldr.datacheck.result" value="${log.dir}/datacheck.result" />
- <property name="jar.file" value="cldr-unittest.jar" />
- <property name="jarSrc.file" value="cldr-unittest-src.jar" />
- <property name="jarDocs.file" value="cldr-unittest-docs.jar" />
- <property name="doc.dir" value="doc" />
- <property name="doc.params" value="" />
-
- <!-- Load local definitions from an optional properties file, if
- available. build.properties is NOT checked into version control. -->
- <property file="build.properties" />
- <!-- Load environment variables -->
- <property environment="env" />
-
-
- <!-- CLDR_TOOLS defaults to ../java, override if not correct. -->
- <property name="CLDR_TOOLS" value="../java" />
- <property name="CLDR_DIR" value="../../common/.." />
- <property name="CLDR_JAR" value="${CLDR_TOOLS}/cldr.jar" />
- <property file="${CLDR_TOOLS}/cldr-tools.properties" />
- <property name="JVM_OPTIONS"
- value="-DCLDR_DIR=${CLDR_DIR} -DDEBUG=false -Dverbose=false" />
- <!-- JVM_EXTRA_OPTIONS might be resolved in the next priority order:
- 1) System property JVM_EXTRA_OPTIONS specified by ant command arg: ant -DJVM_EXTRA_OPTIONS=xxx <target>
- 2) JVM_EXTRA_OPTIONS=xxx in build.properties
- 3) Environment variable - JVM_EXTRA_OPTIONS=xxx
- 4) Final fallback - "-Xmx6g" below -->
- <property name="env.JVM_EXTRA_OPTIONS" value="-Xmx6g -enableassertions" />
- <property name="JVM_EXTRA_OPTIONS" value="${env.JVM_EXTRA_OPTIONS}" />
- <property name="jvm_options" value="${JVM_OPTIONS} ${JVM_EXTRA_OPTIONS}" />
-
- <path id="project.class.path">
- <pathelement path="${java.class.path}/" />
- <pathelement path="${build.dir}" />
- <pathelement path="${CLDR_TOOLS}/classes" />
- <!-- tools/java/dist/for-build/ can contain cldr.jar in lieu of the
- classes dir. Must be earlier than other libs. -->
- <fileset erroronmissingdir="false" dir="${CLDR_TOOLS}/dist/for-build" includes="cldr.jar" />
- <fileset dir="${CLDR_TOOLS}/libs" includes="*.jar" /> <!-- all libs -->
- </path>
- </target>
-
- <target name="clean" depends="init" description="remove all build targets">
- <delete dir="${build.dir}" />
- <delete file="${cldr.unittest.log}" />
- <delete file="${cldr.datacheck.log}" />
- <delete dir="${log.dir}" />
- <delete dir="build" />
- <delete file="${jar.file}" />
- <delete file="${jarSrc.file}" />
- <delete file="${jarDocs.file}" />
- <delete dir="${doc.dir}" />
- </target>
-
- <target name="jar" depends="build"
- description="build full cldr-unittest.jar' jar file">
- <jar jarfile="${jar.file}" compress="true"
- includes="org/unicode/cldr/**/*" basedir="${build.dir}" />
- </target>
- <target name="tests" depends="build" />
- <target name="all" depends="build" />
- <!-- Docs stuff -->
- <!-- use excludefiles below when we move to ant 1.5 -->
- <target name="docs-jar" depends="docs">
- <jar jarfile="${jarDocs.file}" compress="true" includes="**/*"
- basedir="${doc.dir}" />
- </target>
- <target name="docs" depends="init" description="build user javadoc">
- <tstamp>
- <format property="current.year" pattern="yyyy" />
- </tstamp>
- <echo message="doc params: ${doc.params}" />
- <mkdir dir="${doc.dir}" />
- <javadoc packagenames="org.unicode.cldr.*" sourcepath="${src.dir}"
- destdir="${doc.dir}" classpathref="project.class.path"
- nodeprecatedlist="true" windowtitle="CLDR | Java Unittest" doctitle="CLDR | Java Unittest"
- encoding="utf-8" docencoding="utf-8" additionalparam="${doc.params}"
- link="http://docs.oracle.com/javase/7/docs/api"
- bottom="<font size=-1><a target='_top' href='http://www.unicode.org/copyright.html'>Copyright &copy; 2004-${current.year} Unicode, Inc. All Rights Reserved.</a></font>"
- source="1.8" />
- </target>
-
- <target name="build" depends="init" description="build web classes">
- <mkdir dir="${build.dir}" />
- <mkdir dir="${log.dir}" />
- <javac srcdir="${src.dir}"
- includes="org/unicode/cldr/**/*.java"
- excludes="**/TestShim.java"
- destdir="${build.dir}" classpathref="project.class.path" source="1.8"
- target="1.8" debug="on" deprecation="off" includeantruntime="false"
- encoding="UTF-8" />
- <mkdir dir="${build.dir}/org/unicode/cldr/unittest" />
- <copy todir="${build.dir}/org/unicode/cldr/unittest">
- <fileset dir="${src.dir}/org/unicode/cldr/unittest" excludes="**/CVS/**/* **/**/*.java" />
- </copy>
- </target>
-
- <target name="check" description="Run the CLDR test suite and data tests"
- depends="unittest,datacheck">
- </target>
-
- <target name="pcheck" depends="init">
- <sequential>
- <delete file="${cldr.unittest.result}" />
- <delete file="${cldr.datacheck.result}" />
- <parallel threadsPerProcessor="1">
- <ant target='cldr.unittest.logged' />
- <ant target='cldr.datacheck.logged' />
- </parallel>
- <loadfile property="cldr.unittest.log_file" srcfile="${cldr.unittest.log}" />
- <loadfile property="cldr.datacheck.log_file" srcfile="${cldr.datacheck.log}" />
- <loadfile property="cldr.unittest.result_file" srcfile="${cldr.unittest.result}" />
- <loadfile property="cldr.datacheck.result_file" srcfile="${cldr.datacheck.result}" />
- <echo
- message="CLDR Build Results: ${line.separator} Unit Tests: ${line.separator} ${cldr.unittest.log_file} ${line.separator} --- ${line.separator} Data Check: ${line.separator} ${cldr.datacheck.log_file}" />
- <fail message="CLDR Unit Tests FAILED">
- <condition>
- <not>
- <equals arg1="${cldr.unittest.result_file}" arg2="0" />
- </not>
- </condition>
- </fail>
- <fail message="CLDR Data Check FAILED">
- <condition>
- <not>
- <equals arg1="${cldr.datacheck.result_file}" arg2="0" />
- </not>
- </condition>
- </fail>
- </sequential>
- </target>
-
- <target name="unittest" description="Run the standard CLDR test suite"
- depends="init,build">
- <antcall target="_runUnitTests">
- <param name="rununittest.arg" value="-n -q" />
- <param name="rununittest.jvmarg" value="${jvm_options}" />
- </antcall>
- </target>
-
- <target name="cldr.unittest.logged" description="Run the standard CLDR test suite"
- depends="init,build">
- <property name="rununittest.arg" value="-n -q" />
- <property name="rununittest.jvmarg" value="${jvm_options}" />
- <echo
- message="JVM argument: ${rununittest.jvmarg} -DCLDR_ENVIRONMENT=UNITTEST -Djava.awt.headless=true ${line.separator}"
- output="${cldr.unittest.log}" />
- <echo message="Test argument: ${rununittest.arg} ${line.separator}"
- output="${cldr.unittest.log}" append="true" />
- <echo level="info" message="CLDR Unit Tests In Progress" />
- <java classname="org.unicode.cldr.unittest.TestAll" fork="yes"
- failonerror="false" resultproperty="unittest.result" classpathref="project.class.path"
- output="${cldr.unittest.log}" append="true">
- <arg line="${rununittest.arg}" />
- <jvmarg
- line="${rununittest.jvmarg} -DCLDR_ENVIRONMENT=UNITTEST -Djava.awt.headless=true" />
- </java>
- <echo message="${unittest.result}" file="${cldr.unittest.result}" />
- </target>
-
- <target name="unittestExhaustive"
- description="Run the standard CLDR test suite in exhaustive mode"
- depends="init,build">
- <antcall target="_runUnitTests">
- <param name="rununittest.arg" value="-n -q -e10" />
- <param name="rununittest.jvmarg" value="${jvm_options}" />
- </antcall>
- </target>
-
- <target name="_runUnitTests" depends="init,build">
- <echo
- message="JVM argument: ${rununittest.jvmarg} -DCLDR_ENVIRONMENT=UNITTEST -Djava.awt.headless=true" />
- <echo message="Test argument: ${rununittest.arg}" />
- <java classname="org.unicode.cldr.unittest.TestAll" fork="yes" dir="${basedir}"
- failonerror="true" classpathref="project.class.path">
- <arg line="${rununittest.arg}" />
- <jvmarg
- line="${rununittest.jvmarg} -DCLDR_ENVIRONMENT=UNITTEST -Djava.awt.headless=true" />
- </java>
- </target>
-
-
- <target name="datacheck" description="Run the standard data tests"
- depends="init,build">
- <antcall target="_dataCheck">
- <param name="datacheck.arg" value="-S common,seed -e -z FINAL_TESTING" />
- <param name="datacheck.jvmarg" value="${jvm_options}" />
- </antcall>
- </target>
-
- <target name="cldr.datacheck.logged" description="Run the standard data tests"
- depends="init,build">
- <antcall target="_dataCheck_logged">
- <param name="datacheck.arg" value="-S common,seed -e -z FINAL_TESTING" />
- <param name="datacheck.jvmarg" value="${jvm_options}" />
- </antcall>
- </target>
-
- <target name="_dataCheck_logged" depends="init,build">
- <echo
- message="JVM argument: ${datacheck.jvmarg} -Djava.awt.headless=true ${line.separator}"
- output="${cldr.datacheck.log}" />
- <echo message="Test argument: ${datacheck.arg} ${line.separator}"
- output="${cldr.datacheck.log}" append="true" />
- <echo level="info" message="CLDR Data Check In Progress" />
- <java classname="org.unicode.cldr.test.ConsoleCheckCLDR" fork="yes"
- failonerror="false" resultproperty="datacheck.result" classpathref="project.class.path"
- output="${cldr.datacheck.log}" append="true">
- <arg line="${datacheck.arg}" />
- <jvmarg line="${datacheck.jvmarg} -Djava.awt.headless=true" />
- </java>
- <echo message="${datacheck.result}" file="${cldr.datacheck.result}" />
- </target>
-
- <target name="_dataCheck" depends="init,build">
- <echo message="JVM argument: ${datacheck.jvmarg} -Djava.awt.headless=true" />
- <echo message="Test argument: ${datacheck.arg}" />
- <java classname="org.unicode.cldr.test.ConsoleCheckCLDR" fork="yes"
- failonerror="true" classpathref="project.class.path">
- <arg line="${datacheck.arg}" />
- <jvmarg line="${datacheck.jvmarg} -Djava.awt.headless=true" />
- </java>
- </target>
-
-</project>
diff --git a/tools/dist.conf/includes-common.txt b/tools/dist.conf/includes-common.txt
deleted file mode 100644
index de5a413..0000000
--- a/tools/dist.conf/includes-common.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-readme.html
-*-license.*
-*-LICENSE
-common/
diff --git a/tools/dist.conf/includes-keyboards.txt b/tools/dist.conf/includes-keyboards.txt
deleted file mode 100644
index 597e097..0000000
--- a/tools/dist.conf/includes-keyboards.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-readme.html
-*-license.*
-*-LICENSE
-keyboards/
diff --git a/tools/dist.conf/includes-tools.txt b/tools/dist.conf/includes-tools.txt
deleted file mode 100644
index da022c3..0000000
--- a/tools/dist.conf/includes-tools.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-readme.html
-*-license.*
-*-LICENSE
-tools/java/
-tools/scripts/
-tools/cldr-unittest/
-tools/build.xml
-tools/python/
-tools/c/
diff --git a/tools/java/.classpath b/tools/java/.classpath
deleted file mode 100644
index b0966c5..0000000
--- a/tools/java/.classpath
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry excluding="*.jar|*.properties|*.txt|*.xml|.*|.*/**/*|build/|classes/|libs/|org/unicode/cldr/web/|out/" kind="src" path=""/>
- <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/ANT_LIB"/>
- <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
- <classpathentry exported="true" kind="lib" path="libs/icu4j.jar" sourcepath="libs/icu4j-src.jar"/>
- <classpathentry exported="true" kind="lib" path="libs/utilities.jar" sourcepath="libs/utilities-src.jar"/>
- <classpathentry kind="lib" path="libs/xercesImpl.jar"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
- <classpathentry kind="lib" path="libs/guava.jar"/>
- <classpathentry kind="lib" path="libs/failureaccess.jar"/>
- <classpathentry kind="lib" path="libs/gson.jar"/>
- <classpathentry kind="lib" path="libs/myanmar-tools-1.1.1.jar"/>
- <classpathentry kind="output" path="classes"/>
-</classpath>
diff --git a/tools/java/.project b/tools/java/.project
deleted file mode 100644
index 0edac54..0000000
--- a/tools/java/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>cldr-tools</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
diff --git a/tools/java/.settings/org.eclipse.core.resources.prefs b/tools/java/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 7abc8fb..0000000
--- a/tools/java/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Feb 02 11:09:17 EST 2010
-eclipse.preferences.version=1
-encoding/<project>=UTF-8
diff --git a/tools/java/build.xml b/tools/java/build.xml
deleted file mode 100644
index f62fec3..0000000
--- a/tools/java/build.xml
+++ /dev/null
@@ -1,304 +0,0 @@
-<!-- see readme.txt -->
-
-
-<project name="CLDR" default="util" basedir=".">
- <target name="init">
- <tstamp />
- <property name="src.dir" value="." />
- <property name="build.dir" value="classes" />
- <property name="libs.dir" value="libs" />
- <property name="jar.file" value="cldr.jar" />
- <property name="jarSrc.file" value="cldr-src.jar" />
- <property name="jarDocs.file" value="cldr-docs.jar" />
- <property name="doc.dir" value="doc" />
- <property name="doc.params" value="" />
- <!-- Load local definitions from an optional build.properties file, if
- available. build.properties is NOT checked into CVS. -->
- <property file="build.properties" />
- <!-- Load environment variables -->
- <property environment="env" />
-
- <path id="build.classpath">
- <pathelement path="${build.dir}" />
- <pathelement path="${libs.dir}" />
- </path>
-
- <property name="CLDR_TOOLS" value="." /> <!-- this is cldr-tools -->
- <property name="CLDR_DIR" value="${env.CLDR_DIR}" />
- <property file="${CLDR_TOOLS}/cldr-tools.properties" />
- <property name="JVM_OPTIONS"
- value="-DCLDR_DIR=${CLDR_DIR} -DDEBUG=false -Dverbose=false" />
- <!-- JVM_EXTRA_OPTIONS might be resolved in the next priority order:
- 1) System property JVM_EXTRA_OPTIONS specified by ant command arg: ant -DJVM_EXTRA_OPTIONS=xxx <target>
- 2) JVM_EXTRA_OPTIONS=xxx in build.properties
- 3) Environment variable - JVM_EXTRA_OPTIONS=xxx
- 4) Final fallback - "-Xmx6g" below -->
- <property name="env.JVM_EXTRA_OPTIONS" value="-Xmx6g" />
- <property name="JVM_EXTRA_OPTIONS" value="${env.JVM_EXTRA_OPTIONS}" />
- <property name="jvm_options" value="${JVM_OPTIONS} ${JVM_EXTRA_OPTIONS}" />
-
- <property name="tooltmp.dir" value="tmp" />
-
- <mkdir dir="${build.dir}" />
-
- <path id="project.class.path">
- <pathelement path="${java.class.path}/" />
- <pathelement path="${build.dir}" />
- <fileset dir="${libs.dir}" includes="*.jar" /> <!-- unittest local -->
- </path>
- <echo message="java home: ${java.home}" />
- <echo message="java version: ${java.version}" />
- <echo message="jvm_options: ${jvm_options}" />
- <echo message="ant java version: ${ant.java.version}" />
- <echo message="${ant.version}" />
- <echo message="java.class.path: ${java.class.path}/" />
- <echo message="java.class.path: ${java.class.path}/" />
- <echo message="build.dir: ${build.dir}" />
- </target>
-
- <!-- build everything but dist-related stuff -->
- <target name="all" depends="util,api,ant-plugin,tool,posix,icu,json,test"
- description="build all primary targets" />
- <target name="ant-plugin" depends="init" description="build utility classes">
- <javac includeantruntime="false" includes="org/unicode/cldr/ant/*.java"
- excludes="**/CVS/**/*" srcdir="${src.dir}" destdir="${build.dir}"
- classpathref="project.class.path" source="1.8" target="1.8" debug="on"
- deprecation="off" encoding="UTF-8" />
- </target>
- <!-- WARNING: The "util" target actually depends upon the "tool" target at runtime via
- CLDRPaths and ToolConstants. This only appears to work when building this target
- because Ant does not do any kind of source isolation during builds, so it just
- builds all the transitive dependencies anyway.
- -->
- <target name="util" depends="init" description="build utility classes">
- <javac includeantruntime="false"
- includes="org/unicode/cldr/draft/**/*.java org/unicode/cldr/util/**/*.java com/**/*.java"
- excludes="**/CVS/**/* org/unicode/cldr/draft/Ids.java" srcdir="${src.dir}"
- destdir="${build.dir}" classpathref="project.class.path" source="1.8"
- target="1.8" debug="on" deprecation="off" encoding="UTF-8" />
- <!-- copy data files into classes.. -->
- <mkdir dir="${build.dir}/org/unicode/cldr/util/data" />
- <copy todir="${build.dir}/org/unicode/cldr/util/data">
- <fileset dir="${src.dir}/org/unicode/cldr/util/data"
- excludes="**/CVS/**/*" />
- </copy>
- </target>
- <target name="api" depends="init,util" description="build api classes">
- <javac includeantruntime="false" includes="org/unicode/cldr/api/**/*.java"
- srcdir="${src.dir}" destdir="${build.dir}"
- classpathref="project.class.path" source="1.8" target="1.8" debug="on"
- deprecation="off" encoding="UTF-8" />
- <!-- API package doesn't have dta files -->
- </target>
- <target name="tool" depends="init,util" description="build tool classes">
- <javac includeantruntime="false" includes="org/unicode/cldr/tool/**/*.java"
- excludes="**/CVS/**/*" srcdir="${src.dir}" destdir="${build.dir}"
- classpathref="project.class.path" source="1.8" target="1.8" debug="on"
- deprecation="off" encoding="UTF-8" />
- <!-- copy data files into classes.. -->
- <mkdir dir="${build.dir}/org/unicode/cldr/tool" />
- <copy todir="${build.dir}/org/unicode/cldr/tool">
- <fileset dir="${src.dir}/org/unicode/cldr/tool" excludes="**/CVS/**/* **/**/*.java" />
- </copy>
- </target>
- <target name="posix" depends="init,util" description="build posix conversion tool">
- <javac includeantruntime="false" includes="org/unicode/cldr/posix/**/*.java"
- excludes="**/CVS/**/*" srcdir="${src.dir}" destdir="${build.dir}"
- classpathref="project.class.path" source="1.8" target="1.8" debug="on"
- deprecation="off" encoding="UTF-8" />
- </target>
- <target name="icu" depends="init, ant-plugin, util" description="build ICU conversion tool">
- <javac includeantruntime="false" includes="org/unicode/cldr/icu/**/*.java"
- excludes="**/CVS/**/*" srcdir="${src.dir}" destdir="${build.dir}"
- classpathref="project.class.path" source="1.8" target="1.8" debug="on"
- deprecation="off" encoding="UTF-8" />
- <!-- copy data files into classes.. -->
- <mkdir dir="${build.dir}/org/unicode/cldr/icu" />
- <copy todir="${build.dir}/org/unicode/cldr/icu">
- <fileset dir="${src.dir}/org/unicode/cldr/icu" excludes="**/CVS/**/* **/**/*.java" />
- </copy>
- </target>
- <target name="json" depends="init, ant-plugin, util"
- description="build json conversion tool">
- <javac includeantruntime="false" includes="org/unicode/cldr/json/**/*.java"
- excludes="**/CVS/**/*" srcdir="${src.dir}" destdir="${build.dir}"
- classpathref="project.class.path" source="1.8" target="1.8" debug="on"
- deprecation="off" encoding="UTF-8" />
- <!-- copy data files into classes.. -->
- <mkdir dir="${build.dir}/org/unicode/cldr/json" />
- <copy todir="${build.dir}/org/unicode/cldr/json">
- <fileset dir="${src.dir}/org/unicode/cldr/json" excludes="**/CVS/**/* **/**/*.java" />
- </copy>
- </target>
- <target name="test" depends="init,util,tool,icu" description="build tests">
- <javac includeantruntime="false" includes="org/unicode/cldr/test/**/*.java "
- excludes="**/CVS/**/*" srcdir="${src.dir}" destdir="${build.dir}"
- classpathref="project.class.path" source="1.8" target="1.8" debug="on"
- deprecation="off" encoding="UTF-8" />
- <!-- copy data files into classes.. -->
- <mkdir dir="${build.dir}/org/unicode/cldr/test" />
- <copy todir="${build.dir}/org/unicode/cldr/test">
- <fileset dir="${src.dir}/org/unicode/cldr/test" excludes="**/CVS/**/* **/**/*.java" />
- </copy>
- </target>
- <target name="clean" depends="init" description="remove all build targets">
- <delete dir="${build.dir}" />
- <delete file="${jar.file}" />
- </target>
-
- <target name="jars" depends="jar,srcJar,docsJar" description="build all jars"/>
-
- <target name="init-githash" depends="init" description="calculate build.githash">
- <exec executable="git" outputproperty="build.githash" failifexecutionfails="false">
- <arg value="rev-parse" />
- <arg value="HEAD" />
- </exec>
- <condition property="build.githash" value="(unknown)">
- <not>
- <isset property="build.githash" />
- </not>
- </condition>
- </target>
-
- <target name="jar" depends="all,init-githash" description="build full 'cldr.jar' jar file">
- <jar jarfile="${jar.file}" compress="true"
- includes="org/unicode/cldr/draft/**/*,
- org/unicode/cldr/api/**/*,
- org/unicode/cldr/util/**/*,
- org/unicode/cldr/tool/**/*,
- org/unicode/cldr/test/**/*,
- org/unicode/cldr/posix/**/*,
- org/unicode/cldr/ant/**/*,
- org/unicode/cldr/json/**/*,
- org/unicode/cldr/icu/**/*,
- com/ibm/icu/**/*"
- basedir="${build.dir}">
- <manifest>
- <attribute name="Built-By" value="${user.name}" />
- <attribute name="Main-Class" value="org.unicode.cldr.tool.Main" />
- <attribute name="CLDR-Tools-Git-Commit" value="${build.githash}" />
- <attribute name="Class-Path"
- value="./libs/${cldr.libs.icu4j} ./libs/${cldr.libs.utilities} ./libs/${cldr.libs.xerces} ./libs/${cldr.libs.guava} ./libs/${cldr.libs.failureaccess} ./libs/${cldr.libs.gson} ${cldr.libs.icu4j} ${cldr.libs.utilities} ${cldr.libs.xerces} ${cldr.libs.gson} ./libs/myanmar-tools-1.1.1.jar" />
- </manifest>
- </jar>
- </target>
-
- <!-- Docs stuff -->
- <!-- use excludefiles below when we move to ant 1.5 -->
- <target name="docs" depends="init" description="build user javadoc">
- <tstamp>
- <format property="current.year" pattern="yyyy" />
- </tstamp>
- <echo message="doc params: ${doc.params}" />
- <mkdir dir="${doc.dir}" />
- <javadoc packagenames="org.unicode.cldr.*" sourcepath="${src.dir}"
- destdir="${doc.dir}" classpathref="project.class.path"
- nodeprecatedlist="true" windowtitle="CLDR | Java Tools" doctitle="CLDR | Java Tools"
- encoding="utf-8" docencoding="utf-8" additionalparam="${doc.params}"
- link="http://docs.oracle.com/javase/7/docs/api"
- bottom="<font size=-1><a target='_top' href='http://www.unicode.org/copyright.html'>Copyright &copy; 2004-${current.year} Unicode, Inc. All Rights Reserved.</a></font>"
- source="1.8" />
- <!-- bottom="<font size=-1>Copyright (c) ${current.year} IBM Corporation
- and others.</font>" -->
- </target>
-
- <target name="docsJar" depends="docs">
- <jar jarfile="${jarDocs.file}" compress="true" basedir="${doc.dir}">
- <fileset dir="../.." includes="*LICENSE*,*license*"/>
- </jar>
- </target>
- <target name="srcJar" depends="init" description="Build all *.jars (tools/docs/src)">
- <jar jarfile="${jarSrc.file}" compress="true">
- <fileset dir="org" includes="**/*.java"/>
- <fileset dir="com" includes="**/*.java"/>
- <fileset dir="../.." includes="*LICENSE*,*license*"/>
- </jar>
- </target>
-
- <!-- for testing and development -->
- <target name="icu4c" depends="init, ant-plugin, icu">
- <ant dir="${env.ICU4C_DIR}/source/data" antfile="build.xml"
- target="all" />
- </target>
-
-
- <target name="check">
- <fail
- message="*** Note! unittests have moved to ../cldr-unittest - please try there. See: http://unicode.org/cldr/trac/ticket/5215" />
- </target>
-
-
- <target name="GenerateMaximalLocales" depends="init"
- description="Build likelySubtags.xml and supplementalMetadata.xml - see https://sites.google.com/site/cldr/development/updating-codes/likelysubtags">
- <antcall target="_runTool">
- <param name="runTool.class" value="org.unicode.cldr.tool.GenerateMaximalLocales" />
- <param name="runTool.arg" value="" />
- <param name="runTool.jvmarg" value="${jvm_options}" />
- </antcall>
- <antcall target="_toolcopy" />
- </target>
-
- <target name="AddPopulationData" depends="init"
- description="test population data - see https://sites.google.com/site/cldr/development/updating-codes/update-language-script-info ">
- <antcall target="_runTool">
- <param name="runTool.class" value="org.unicode.cldr.tool.AddPopulationData" />
- <param name="runTool.arg" value="" />
- <param name="runTool.jvmarg" value="${jvm_options} -DADD_POP=true" />
- </antcall>
- </target>
-
- <target name="ConvertLanguageData" depends="init"
- description="convert population data - updates supplementalData.xml - see https://sites.google.com/site/cldr/development/updating-codes/update-language-script-info">
- <antcall target="_runTool">
- <param name="runTool.class" value="org.unicode.cldr.tool.ConvertLanguageData" />
- <param name="runTool.arg" value="" />
- <param name="runTool.jvmarg" value="${jvm_options} -DADD_POP=true" />
- </antcall>
- <antcall target="_toolcopy" />
- </target>
-
- <target name="AddPseudolocales" depends="init"
- description="build pseudo-locale data en_XA.xml and ar_XB.xml">
- <antcall target="_runTool">
- <param name="runTool.class" value="org.unicode.cldr.tool.CLDRFilePseudolocalizer" />
- <param name="runTool.arg" value="" />
- <param name="runTool.jvmarg" value="${jvm_options}" />
- </antcall>
- <antcall target="_toolcopy" />
- </target>
-
- <target name="GenerateAllCharts" depends="init"
- description="generate all html charts - see http://cldr.unicode.org/development/cldr-big-red-switch/generating-charts">
- <antcall target="_runTool">
- <param name="runTool.class" value="org.unicode.cldr.tool.GenerateAllCharts" />
- <param name="runTool.arg" value="" />
- <param name="runTool.jvmarg" value="${jvm_options}" />
- </antcall>
- <!-- <antcall target="_toolcopy"/> -->
- </target>
-
- <target name="RunAllTools"
- depends="GenerateMaximalLocales,AddPopulationData,ConvertLanguageData"
- description="Run several of the automated tools that are currently available to this build script.">
- </target>
-
- <target name="_runTool" depends="all">
- <delete dir="${tooltmp.dir}" />
- <echo message="JVM argument: ${runTool.jvmarg} -Djava.awt.headless=true" />
- <echo message="Tool class: ${runTool.class}" />
- <echo message="Tool argument: ${runTool.arg}" />
- <java classname="${runTool.class}" fork="yes" failonerror="true"
- classpathref="project.class.path">
- <arg line="${runTool.arg}" />
- <jvmarg
- line="${runTool.jvmarg} -DCLDR_GEN_DIR=${tooltmp.dir} -DCLDR_DIR=${CLDR_DIR} -Djava.awt.headless=true" />
- </java>
- </target>
-
- <target name="_toolcopy">
- <copy verbose="true" todir="${CLDR_DIR}/common/">
- <fileset dir="${tooltmp.dir}" />
- </copy>
- <delete dir="${tooltmp.dir}" />
- </target>
-</project>
diff --git a/tools/java/cldr-tools.properties b/tools/java/cldr-tools.properties
deleted file mode 100644
index f6bbfb9..0000000
--- a/tools/java/cldr-tools.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-#*******************************************************************************
-#* Copyright (C) 2009-2015, International Business Machines Corporation and *
-#* others. All Rights Reserved. *
-#*******************************************************************************
-# Instructions:
-# 1. be sure these two properties are set
-# <property name="CLDR_TOOLS" value="../java"/> <!-- cldr-tools dir -->
-# <property name="CLDR_DIR" value="../../common/.."/> <!-- parent of 'common' -->
-# 2. include this file
-# <property file="${CLDR_DIR}/cldr-tools.properties" />
-cldr.libs.icu4j=icu4j.jar
-cldr.libs.utilities=utilities.jar
-cldr.libs.guava=guava.jar
-cldr.libs.failureaccess=failureaccess.jar
-cldr.libs.xerces=xercesImpl.jar
-cldr.libs.gson=gson.jar
diff --git a/tools/java/find-unrun-tests.sh b/tools/java/find-unrun-tests.sh
deleted file mode 100644
index e709639..0000000
--- a/tools/java/find-unrun-tests.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh
-# by srl 2013 sep 4
-grep 'extends.*TestFmwk' org/unicode/cldr/unittest/*.java | cut -d/ -f5 | cut -d. -f1 | sort | uniq > all_test_classes.txt
-ant check -Druncheck.arg='-l' | fgrep -- '--' | fgrep -v -- '-- CLDR' | cut -d'-' -f3 | tr -d ' ' | sort > currently_running.txt
-echo "---- Unit Test Report ----"
-echo "Lines ending in '<' are tests that exist but are not run."
-echo "Lines ending in '>' are tests that are run but don't exist (!)"
-diff --side-by-side --suppress-common-lines all_test_classes.txt currently_running.txt
-echo
-echo "And the following are just wrong- should be under unittest."
-find org com -name '*.java' | xargs grep 'extends.*TestFmwk' | fgrep -v org/unicode/cldr/unittest
-
diff --git a/tools/java/libs/failureaccess-sources.jar b/tools/java/libs/failureaccess-sources.jar
deleted file mode 100644
index 0c429f2..0000000
--- a/tools/java/libs/failureaccess-sources.jar
+++ /dev/null
Binary files differ
diff --git a/tools/java/libs/failureaccess.jar b/tools/java/libs/failureaccess.jar
deleted file mode 100644
index 9b56dc7..0000000
--- a/tools/java/libs/failureaccess.jar
+++ /dev/null
Binary files differ
diff --git a/tools/java/libs/failureaccess.txt b/tools/java/libs/failureaccess.txt
deleted file mode 100644
index 8a57a9f..0000000
--- a/tools/java/libs/failureaccess.txt
+++ /dev/null
@@ -1 +0,0 @@
-failureaccess 1.0.1 2018-11-19
diff --git a/tools/java/libs/gson-sources.jar b/tools/java/libs/gson-sources.jar
deleted file mode 100644
index 1e07df4..0000000
--- a/tools/java/libs/gson-sources.jar
+++ /dev/null
Binary files differ
diff --git a/tools/java/libs/gson-version.txt b/tools/java/libs/gson-version.txt
deleted file mode 100644
index 24fb605..0000000
--- a/tools/java/libs/gson-version.txt
+++ /dev/null
@@ -1 +0,0 @@
-gson 2.8.6 2019-10-04
diff --git a/tools/java/libs/gson.jar b/tools/java/libs/gson.jar
deleted file mode 100644
index 4765c4a..0000000
--- a/tools/java/libs/gson.jar
+++ /dev/null
Binary files differ
diff --git a/tools/java/libs/guava-sources.jar b/tools/java/libs/guava-sources.jar
deleted file mode 100644
index 66dd8bd..0000000
--- a/tools/java/libs/guava-sources.jar
+++ /dev/null
Binary files differ
diff --git a/tools/java/libs/guava-version.txt b/tools/java/libs/guava-version.txt
deleted file mode 100644
index 2db85c2..0000000
--- a/tools/java/libs/guava-version.txt
+++ /dev/null
@@ -1 +0,0 @@
-guava 29.0-jre 2020-04-13
diff --git a/tools/java/libs/guava.jar b/tools/java/libs/guava.jar
deleted file mode 100644
index e1fc179..0000000
--- a/tools/java/libs/guava.jar
+++ /dev/null
Binary files differ
diff --git a/tools/java/libs/icu4j-src.jar b/tools/java/libs/icu4j-src.jar
deleted file mode 100644
index 0852f85..0000000
--- a/tools/java/libs/icu4j-src.jar
+++ /dev/null
Binary files differ
diff --git a/tools/java/libs/icu4j-version.txt b/tools/java/libs/icu4j-version.txt
deleted file mode 100644
index 3769e80..0000000
--- a/tools/java/libs/icu4j-version.txt
+++ /dev/null
@@ -1 +0,0 @@
-icu4j 766088ddb360a3494acbd140cf6c2625008f6bbf 2020-10-21 (from maint/maint-68 branch)
diff --git a/tools/java/libs/icu4j.jar b/tools/java/libs/icu4j.jar
deleted file mode 100644
index 5ff19ab..0000000
--- a/tools/java/libs/icu4j.jar
+++ /dev/null
Binary files differ
diff --git a/tools/java/libs/myanmar-tools-1.1.1.jar b/tools/java/libs/myanmar-tools-1.1.1.jar
deleted file mode 100644
index 6fb562b..0000000
--- a/tools/java/libs/myanmar-tools-1.1.1.jar
+++ /dev/null
Binary files differ
diff --git a/tools/java/libs/utilities-src.jar b/tools/java/libs/utilities-src.jar
deleted file mode 100644
index ab03668..0000000
--- a/tools/java/libs/utilities-src.jar
+++ /dev/null
Binary files differ
diff --git a/tools/java/libs/utilities.jar b/tools/java/libs/utilities.jar
deleted file mode 100644
index 3285691..0000000
--- a/tools/java/libs/utilities.jar
+++ /dev/null
Binary files differ
diff --git a/tools/java/libs/xercesImpl.jar b/tools/java/libs/xercesImpl.jar
deleted file mode 100644
index e0a4c2e..0000000
--- a/tools/java/libs/xercesImpl.jar
+++ /dev/null
Binary files differ
diff --git a/tools/java/org/unicode/cldr/tool/Main.java b/tools/java/org/unicode/cldr/tool/Main.java
deleted file mode 100644
index e766fe5..0000000
--- a/tools/java/org/unicode/cldr/tool/Main.java
+++ /dev/null
@@ -1,178 +0,0 @@
-package org.unicode.cldr.tool;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.lang.reflect.Method;
-
-import org.unicode.cldr.util.CLDRFile;
-import org.unicode.cldr.util.CLDRTool;
-
-/**
- *
- * Implement a 'main' for the CLDR jar.
- */
-@CLDRTool(alias = "main", description = "The 'main' class invoked when java -jar or doubleclicking the jar.", hidden = "Hidden so as not to list itself",
- url = Main.TOOLSURL)
-class Main {
- private static final String CLASS_SUFFIX = ".class";
- private static final String MAIN = "main";
- public static final String TOOLSURL = "http://cldr.unicode.org/tools/";
-
- public static void main(String args[]) throws Throwable {
- if (args.length == 0) {
- System.out.println("Usage: [ -l | [class|alias] args ...]");
- System.out.println("Example usage:");
- System.out.println(" (java -jar cldr.jar ) -l -- prints a list of ALL tool/util/test classes with a 'main()' function.");
- System.out.println(" (java -jar cldr.jar ) org.unicode.cldr.util.XMLValidator somefile.xml ...");
- System.out.println(" (java -jar cldr.jar ) validate somefile.xml ...");
- System.out.println("For more info: " + TOOLSURL);
- System.out.println("CLDRFile.GEN_VERSION=" + CLDRFile.GEN_VERSION);
- System.out.println("(Use the -l option to list hidden/undocumented tools)");
- System.out.println();
- listClasses(false, null);
- } else if (args.length == 1 && args[0].equals("-l")) {
- listClasses(true, null);
- } else {
- final String mainClass = args[0];
- final String args2[] = new String[args.length - 1];
- System.arraycopy(args, 1, args2, 0, args2.length);
- Class<?> c = null;
-
- try {
- c = Class.forName(mainClass);
- } catch (ClassNotFoundException e) {
- // not found
- }
- if (c == null) {
- c = listClasses(false, mainClass);
- }
- if (c == null) {
- throw new IllegalArgumentException("Class not found and not an alias: " + mainClass);
- }
-
- if (c == Main.class) {
- throw new IllegalArgumentException("Cowardly refusing to invoke myself recursively. Stop.");
- }
-
- final java.lang.reflect.Method main = getStaticMain(c);
-
- System.err.println(">> " + c.getName());
-
- main.invoke(null, (Object) args2);
- }
- }
-
- /**
- * @param showAll if true, include even hidden classes
- * @param match if non-null, will return the class instead of listing it
- * @throws IOException
- * @throws FileNotFoundException
- */
- public static Class<?> listClasses(boolean showAll, final String match) throws IOException, FileNotFoundException {
- final java.util.jar.JarInputStream jis = getJarInputStream();
- final ClassLoader classLoader = Main.class.getClassLoader();
- if (jis == null) {
- return null;
- }
- java.util.jar.JarEntry je;
- while ((je = jis.getNextJarEntry()) != null) {
- final String name = je.getName();
- if (inOuterClass(name)) {
- final String className = filenameToClassName(name);
- try {
- final Class<?> c = java.lang.Class.forName(className, false, classLoader);
-
- if ((match != null) && showAll == false && !c.isAnnotationPresent(CLDRTool.class))
- continue;
-
- Method method = getStaticMain(c);
-
- if (method != null) { // skip classes w/o static method - even if they have an annotatoin.
- CLDRTool annotation = c.getAnnotation(CLDRTool.class);
-
- if (match == null) {
- // list mode
- if (showAll ||
- (annotation != null && annotation.hidden().length() == 0)) {
-
- if (annotation != null) {
- System.out.println("" + annotation.alias() + " - " + annotation.description());
- if (annotation.url().length() > 0) {
- System.out.println(" <" + annotation.url() + ">");
- } else {
- System.out.println(" <" + TOOLSURL + annotation.alias() + ">");
- }
- System.out.println(" = " + className);
- if (annotation.hidden().length() > 0) {
- System.out.println(" HIDDEN: " + annotation.hidden());
- }
- System.out.println();
- } else {
- System.out.print(" " + className);
- System.out.println(" (no @CLDRTool annotation)");
- }
- }
- } else {
- if (match.equalsIgnoreCase(className)) {
- return c; // match the classname
- }
- if (annotation != null &&
- annotation.alias().length() > 0 &&
- match.equalsIgnoreCase(annotation.alias())) {
- return c; // match the alias
- }
- }
- }
- } catch (Throwable t) {
- // ignore uninstantiable.
- //System.out.println(t);
- }
- }
- }
- return null; // not found or not needed.
- }
-
- /**
- * @param c
- * @return
- * @throws NoSuchMethodException
- */
- public static Method getStaticMain(final Class<?> c) throws NoSuchMethodException {
- return c.getMethod(MAIN, String[].class);
- }
-
- /**
- * @param name
- * @return
- */
- public static String filenameToClassName(final String name) {
- return name.substring(0, name.length() - (CLASS_SUFFIX.length()))
- .replaceAll("/", ".");
- }
-
- /**
- * @param name
- * @return
- */
- public static boolean inOuterClass(final String name) {
- return name.endsWith(CLASS_SUFFIX) &&
- !name.contains("$");
- }
-
- /**
- * @return
- * @throws IOException
- * @throws FileNotFoundException
- */
- public static java.util.jar.JarInputStream getJarInputStream() throws IOException, FileNotFoundException {
- final java.net.URL url = Main.class.getProtectionDomain().getCodeSource().getLocation();
- if (!url.getPath().endsWith(".jar")) {
- System.out.println("(Not inside a .jar file - no listing available.)");
- return null;
- }
- if (false) System.out.println("Classes in " + url.getPath());
- final java.util.jar.JarInputStream jis = new java.util.jar.JarInputStream(new java.io.FileInputStream(url.getPath()));
- java.util.jar.JarEntry je = null;
- return jis;
- }
-}
diff --git a/tools/java/org/unicode/cldr/util/SpecialLocales.java b/tools/java/org/unicode/cldr/util/SpecialLocales.java
deleted file mode 100644
index 9d2fe0d..0000000
--- a/tools/java/org/unicode/cldr/util/SpecialLocales.java
+++ /dev/null
@@ -1,223 +0,0 @@
-package org.unicode.cldr.util;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
-
-import org.unicode.cldr.tool.CLDRFileTransformer;
-import org.unicode.cldr.tool.CLDRFileTransformer.LocaleTransform;
-
-import com.ibm.icu.util.ICUUncheckedIOException;
-
-/**
- * List of locale IDs which are somehow 'special'. Parses SpecialLocales.txt
- *
- * @author srl
- *
- */
-public class SpecialLocales {
- private static final String INCLUDE_SUBLOCALES = "*";
-
- public enum Type {
- /**
- * Locale may not be modified by user.
- */
- readonly,
- /**
- * Locale may be modified by user. Contents aren't part of CLDR release and may change.
- */
- scratch
- }
-
- /**
- * Get the type of this locale
- *
- * @param l
- * @return a Type or null
- */
- public static Type getType(CLDRLocale l) {
- return getInstance().getTypeInternal(l);
- }
-
- /**
- * Get all CLDRLocales matching this type. Does not include wildcard (*) sublocales.
- *
- * @param t
- * @return a set, or null if none found
- */
- public static Set<CLDRLocale> getByType(Type t) {
- return getInstance().getByTypeInternal(t);
- }
-
- /**
- * Get the comment on this locale. Strip out @ text.
- *
- * @param l
- * @return string or null
- */
- public static String getComment(CLDRLocale l) {
- return getCommentRaw(l).replaceAll("@", "");
- }
-
- /**
- * Get the comment on this locale. Include "@locale" markers.
- *
- * @param l
- * @return string or null
- */
- public static String getCommentRaw(CLDRLocale l) {
- return getInstance().getCommentInternal(l).replaceAll("@@", "@" + l.getBaseName());
- }
-
- /**
- * Singleton object
- */
- private static SpecialLocales singleton = null;
-
- /**
- * Internal accessor. All access is via the static functions.
- * @return
- */
- private static synchronized SpecialLocales getInstance() {
- if (singleton == null) {
- singleton = new SpecialLocales();
- }
- return singleton;
- }
-
- private Map<CLDRLocale, Type> specials = new HashMap<>();
- private Map<Type, Set<CLDRLocale>> types = new HashMap<>();
- private Map<CLDRLocale, String> comments = new HashMap<>();
- private Set<CLDRLocale> specialsWildcards = new HashSet<>();
-
- public Set<CLDRLocale> getByTypeInternal(Type t) {
- return types.get(t);
- }
-
- public Type getTypeInternal(CLDRLocale l) {
- l = findLocale(l, l);
- return specials.get(l);
- }
-
- public String getCommentInternal(CLDRLocale l) {
- l = findLocale(l, l);
- return comments.get(l);
- }
-
- public CLDRLocale findLocale(CLDRLocale fromLocale, CLDRLocale origLocale) {
- if (origLocale == fromLocale && specials.containsKey(origLocale)) {
- return origLocale; // explicit locale - no search.
- }
- if (fromLocale == null) {
- return origLocale;
- }
- if (specialsWildcards.contains(fromLocale)) {
- return fromLocale;
- }
- return findLocale(fromLocale.getParent(), origLocale);
- }
-
- /**
- * Internal constructor
- */
- private SpecialLocales() {
- // First, read the algorithmic locales.
- for(final LocaleTransform lt : CLDRFileTransformer.LocaleTransform.values()) {
- if(lt.getPolicyIfExisting() != CLDRFileTransformer.PolicyIfExisting.DISCARD) {
- continue;
- }
- // Add each of these as if they were in SpecialLocales.txt
- CLDRLocale inputLocale = CLDRLocale.getInstance(lt.getInputLocale());
- CLDRLocale outputLocale = CLDRLocale.getInstance(lt.getOutputLocale());
-
- // add as readonly
- addToType(Type.readonly, outputLocale);
-
- // add similar comment to SpecialLocales.txt
- comments.put(outputLocale, "@"+outputLocale.getBaseName()+" is generated from @"+inputLocale.getBaseName() +
- " via transliteration, and so @@ may not be edited directly. Edit @"+inputLocale.getBaseName()+" to make changes.");
- }
-
- // from StandardCodes.java
- String line;
- int ln = 0;
- try {
- BufferedReader lstreg = CldrUtility.getUTF8Data("SpecialLocales.txt");
- while (true) {
- line = lstreg.readLine();
- ln++;
- if (line == null)
- break;
- int commentPos = line.indexOf('#');
- if (commentPos >= 0) {
- line = line.substring(0, commentPos);
- }
- line = line.trim();
- if (line.length() == 0)
- continue;
- List<String> stuff = CldrUtility.splitList(line, ';', true);
- String id = stuff.get(0);
- boolean includeSublocs = (id.endsWith(INCLUDE_SUBLOCALES));
- if (includeSublocs) {
- id = id.substring(0, id.length() - INCLUDE_SUBLOCALES.length());
- }
- String type = stuff.get(1);
- String comment = stuff.get(2);
- Type t = null;
-
- // verify that the locale is valid
- CLDRLocale l = null;
- try {
- l = CLDRLocale.getInstance(id);
- } catch (Exception e) {
- throw new IllegalArgumentException("Invalid CLDRLocale in SpecialLocales.txt:" + ln + ": " + line);
- }
-
- // verify that the type is valid
- try {
- t = Type.valueOf(type.toLowerCase(Locale.ENGLISH));
- } catch (Exception e) {
- throw new IllegalArgumentException("Invalid SpecialLocales.Type in SpecialLocales.txt:" + ln + ": "
- + line);
- }
-
- addToType(t, l);
- if (includeSublocs) {
- specialsWildcards.add(l);
- }
- if (!comment.isEmpty()) {
- comments.put(l, comment);
- }
- if (false) {
- System.out.println(SpecialLocales.class.getSimpleName() + ": locale " + l + ", includejSublocs=" + includeSublocs + ", type=" + t
- + ", comment: " + comment);
- }
- }
- } catch (IOException e) {
- throw new ICUUncheckedIOException("Internal Error", e);
- }
- specials = Collections.unmodifiableMap(specials);
- specialsWildcards = Collections.unmodifiableSet(specialsWildcards);
- comments = Collections.unmodifiableMap(comments);
- types = Collections.unmodifiableMap(types);
- }
-
- private Set<CLDRLocale> addToType(Type t, CLDRLocale l) {
- Set<CLDRLocale> s = types.get(t);
- if (s == null) {
- s = new TreeSet<>();
- types.put(t, s);
- }
- s.add(l);
- specials.put(l, t);
- return s;
- }
-
-}
diff --git a/tools/java/org/unicode/cldr/util/StripUTF8BOMInputStream.java b/tools/java/org/unicode/cldr/util/StripUTF8BOMInputStream.java
deleted file mode 100644
index eca3a4b..0000000
--- a/tools/java/org/unicode/cldr/util/StripUTF8BOMInputStream.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- ******************************************************************************
- * Copyright (C) 2004, International Business Machines Corporation and *
- * others. All Rights Reserved. *
- ******************************************************************************
- */
-
-package org.unicode.cldr.util;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-public class StripUTF8BOMInputStream extends InputStream {
- InputStream base;
-
- public StripUTF8BOMInputStream(InputStream base) {
- this.base = InputStreamFactory.buffer(base);
- }
-
- boolean checkForUTF8BOM = true;
-
- /*
- * (non-Javadoc)
- *
- * @see java.io.InputStream#read()
- */
- @Override
- public int read() throws IOException {
- int result = base.read();
- if (!checkForUTF8BOM) return result;
- // complicated by still wanting to do one delegate read per read
- // so we just skip first char if it starts with EF, assuming valid UTF-8
- checkForUTF8BOM = false;
- if (result != 0xEF) return result;
- result = base.read();
- result = base.read();
- result = base.read();
- return result;
- }
-
- @Override
- public void close() throws IOException {
- super.close();
- if (base != null) {
- base.close();
- base = null;
- }
- }
-
-}
\ No newline at end of file
diff --git a/tools/java/org/unicode/cldr/util/data/external/world_bank_data.csv b/tools/java/org/unicode/cldr/util/data/external/world_bank_data.csv
deleted file mode 100644
index 21108c5..0000000
--- a/tools/java/org/unicode/cldr/util/data/external/world_bank_data.csv
+++ /dev/null
@@ -1,440 +0,0 @@
-Country Name,Country Code,Series Name,Series Code,2000 [YR2000],2001 [YR2001],2002 [YR2002],2003 [YR2003],2004 [YR2004],2005 [YR2005],2006 [YR2006],2007 [YR2007],2008 [YR2008],2009 [YR2009],2010 [YR2010],2011 [YR2011],2012 [YR2012],2013 [YR2013],2014 [YR2014],2015 [YR2015],2016 [YR2016],2017 [YR2017],2018 [YR2018],2019 [YR2019]
-Afghanistan,AFG,"Population, total",SP.POP.TOTL,20779953,21606988,22600770,23680871,24726684,25654277,26433049,27100536,27722276,28394813,29185507,30117413,31161376,32269589,33370794,34413603,35383128,36296400,37172386,38041754
-Afghanistan,AFG,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,43028339584.2827,50011958158.0176,51128371918.0527,59761402458.6644,65266760640.6549,69050351838.9108,72481076025.8795,76028794220.7415,80928557850.552,84153433613.6912,88625369464.1162
-Albania,ALB,"Population, total",SP.POP.TOTL,3089027,3060173,3051010,3039616,3026939,3011487,2992547,2970017,2947314,2927519,2913021,2905195,2900401,2895092,2889104,2880703,2876101,2873457,2866376,2854191
-Albania,ALB,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,12295329934.0871,13662030955.6943,14638785105.4615,15646789482.4405,16815675369.8153,18045171250.16,20207327771.9002,22210992539.7718,24354670853.9274,25412668725.7731,27785785416.5398,29662729114.3582,30304812913.2324,31131654485.7363,32829902894.5929,33990559188.9825,35083764553.2169,37559230695.0488,39608393973.6197,40948001863.9295
-Algeria,DZA,"Population, total",SP.POP.TOTL,31042235,31451514,31855109,32264157,32692163,33149724,33641002,34166972,34730608,35333881,35977455,36661444,37383887,38140132,38923687,39728025,40551404,41389198,42228429,43053054
-Algeria,DZA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,249239806875.697,267956340953.41,284631758231.333,311583719636.453,331993919386.156,359464197320.959,380479524575.988,414482847146.861,435958233181.566,445244775226.9,470023755816.768,489716726450.96,488121977761.001,487240917216.145,494779232360.141,464696482682.72,466748869735.932,470665607922.597,483634986014.434,496317405228.713
-American Samoa,ASM,"Population, total",SP.POP.TOTL,57821,58494,59080,59504,59681,59562,59107,58365,57492,56683,56079,55759,55667,55713,55791,55812,55741,55620,55465,55312
-American Samoa,ASM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
-Andorra,AND,"Population, total",SP.POP.TOTL,65390,67341,70049,73182,76244,78867,80993,82684,83862,84463,84449,83747,82427,80774,79213,78011,77297,77001,77006,77142
-Andorra,AND,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
-Angola,AGO,"Population, total",SP.POP.TOTL,16395473,16945753,17519417,18121479,18758145,19433602,20149901,20905363,21695634,22514281,23356246,24220661,25107931,26015780,26941779,27884381,28842484,29816748,30809762,31825295
-Angola,AGO,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,45625455853.6001,49027450511.5838,58964860623.3629,62549385841.7304,70579130516.6148,83400219381.4952,94887584187.4675,111277581531.289,120613907210.438,130973295234.436,139021737564.205,148439198180.964,170976257471.015,185392055550.407,206980822098.846,194201091488.512,194190315018.69,204590018767.271,201768990921.183,203208993772.894
-Antigua and Barbuda,ATG,"Population, total",SP.POP.TOTL,76016,77212,78295,79300,80336,81465,82704,84026,85397,86746,88028,89253,90409,91516,92562,93566,94527,95426,96286,97118
-Antigua and Barbuda,ATG,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,1217115229.2722,1210511861.26921,1216713026.6122,1322214773.35562,1429982539.02744,1582114255.11667,1838859693.47553,2063612215.07978,2093309042.37265,1859954533.20297,1770640004.07869,1760071676.80133,1713287781.8074,1663882354.66843,1672367226.25589,1673163663.24582,1740563149.3915,1805710260.31236,1974378899.13692,2088020637.75117
-Argentina,ARG,"Population, total",SP.POP.TOTL,36870787,37275652,37681749,38087868,38491972,38892931,39289878,39684295,40080160,40482788,40788453,41261490,41733271,42202935,42669500,43131966,43590368,44044811,44494502,44938712
-Argentina,ARG,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,417017017009.874,406454882837.983,359568619973.832,403024962214.876,417925482320.917,467759982214.622,567943867286.977,640200578583.143,680128095943.174,640783010735.511,711419160863.447,774596879587.266,799048894124.435,829354154809.18,821363404158.217,849527597209.511,865869191296.284,1011372465447.42,998830800603.003,991400568035.896
-Armenia,ARM,"Population, total",SP.POP.TOTL,3069591,3050687,3033978,3017932,3000720,2981269,2958307,2932618,2907618,2888092,2877319,2876538,2884229,2897584,2912403,2925553,2936146,2944809,2951776,2957731
-Armenia,ARM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,8411785419.15044,9413974116.05656,10873948357.9474,12607269792.8155,14422298034.6708,16947791947.5762,19865408956.9072,23342625648.8472,25565242042.8503,21756361158.8814,22666908341.8519,23905121367.1988,28085043286.0165,30249264888.7339,30546350169.5525,30350856297.5626,32159779382.3082,36937299281.0249,38914323976.9806,42759114791.1952
-Aruba,ABW,"Population, total",SP.POP.TOTL,90853,92898,94992,97017,98737,100031,100834,101222,101358,101455,101669,102046,102560,103159,103774,104341,104872,105366,105845,106314
-Aruba,ABW,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,2872847338.94668,2799573363.68339,2637127972.53136,2867204478.72712,3154765184.77508,2706594377.7855,3391212936.23979,3161477224.08529,3615027525.56263,3283103911.55257,3122230322.67618,3163613120.68283,3285168875.60645,3533775695.47509,3641308245.23705,3672197163.04349,3739360304.0678,3824342328.82359,..,..
-Australia,AUS,"Population, total",SP.POP.TOTL,19153000,19413000,19651400,19895400,20127400,20394800,20697900,20827600,21249200,21691700,22031750,22340024,22733465,23128129,23475686,23815995,24190907,24601860,24982688,25364307
-Australia,AUS,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,489520624813.209,516165308478.963,549012712403.385,574857353021.546,612002674935.358,639679592265.961,682096652760.495,727224136964.806,763437639656.731,843557963001.247,832245554168.474,899875053935.933,943990546160.514,1035222299693.94,1071746498596.55,1079583930033.6,1118334918553.7,1170453615167.99,1235210799693.42,1307710525895.41
-Austria,AUT,"Population, total",SP.POP.TOTL,8011566,8042293,8081957,8121423,8171966,8227829,8268641,8295487,8321496,8343323,8363404,8391643,8429991,8479823,8546356,8642699,8736668,8797566,8840521,8877067
-Austria,AUT,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,233385834582.488,235712900139.037,250522395607.009,260116247290.919,275368283316.74,287476798281.967,311765805754.051,326427226000.799,346680570770.484,341573577563.707,354517435256.432,374289188740.567,392030460346.489,407466618825.439,417609480255.935,426846890617.193,459804635718.973,476401858847.048,501391213443.661,524255318588.868
-Azerbaijan,AZE,"Population, total",SP.POP.TOTL,8048600,8111200,8171950,8234100,8306500,8391850,8484550,8581300,8763400,8947243,9054332,9173082,9295784,9416801,9535079,9649341,9757812,9854033,9939771,10023318
-Azerbaijan,AZE,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,25945541164.1045,29117470035.1167,32461373835.4051,36476110641.4663,40054525091.6411,50348316038.8448,69470177011.273,86839747098.6742,103214559007.322,117359000512.606,126293927378.347,125796646904.165,139255987866.21,152856083251.662,160621518912.437,138638584391.013,131075186140.226,133161462622.119,137025867661.274,143908317720.303
-"Bahamas, The",BHS,"Population, total",SP.POP.TOTL,298051,302618,307660,313129,318894,324859,331033,337389,343681,349604,354942,359577,363584,367168,370633,374206,377931,381761,385640,389482
-"Bahamas, The",BHS,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,8212039357.49644,8555735052.74748,8954646677.20319,9038072662.66086,9378191119.25278,9969505538.47152,10498621829.1727,10932504061.2488,11064073036.999,10593508696.2367,10810983134.6064,11125447356.4103,11592317459.2316,11657745330.0293,11584144607.0395,12121659219.4026,12442626567.74,13079239093.8042,13243975035.1448,13926793002.7071
-Bahrain,BHR,"Population, total",SP.POP.TOTL,664611,697545,735146,778708,829844,889164,958418,1035919,1114641,1185076,1240860,1278151,1299943,1315029,1336075,1371851,1425791,1494074,1569439,1641172
-Bahrain,BHR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,27342775275.6308,28311147154.8213,29139543394.9118,31890130714.0216,35064369649.6128,39326073357.5737,43358665294.0685,48563603277.495,51417086000.4558,49339407229.793,52795240416.4259,52634201219.1065,63717186823.4415,65227977632.6593,64937397694.8038,59179331108.336,60305919955.802,67183271708.1063,70191027889.9976,72447496887.6035
-Bangladesh,BGD,"Population, total",SP.POP.TOTL,127657854,130088702,132478086,134791603,136986432,139035505,140921167,142660376,144304167,145924797,147575430,149273778,151007807,152764676,154520167,156256276,157970840,159670593,161356039,163046161
-Bangladesh,BGD,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,175498887965.454,188070169582.154,200208777958.829,213675132590.599,231579935778.308,254658309092.687,283108869793.188,313518446629.288,342916400364.922,363743172757.142,389103719400.951,422196099681.023,481140590082.247,518842425889.083,555106922287.902,591636233914.118,643070206340.889,692953262569.39,767013742002.338,845445644078.841
-Barbados,BRB,"Population, total",SP.POP.TOTL,271515,272500,273425,274329,275284,276323,277477,278700,279946,281104,282131,282987,283700,284296,284825,285324,285796,286233,286641,287025
-Barbados,BRB,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,3342299166.77654,3318357276.51927,3388898330.18903,3514294102.71811,3689684927.88694,3906413102.97208,4195291318.44247,4499475767.81716,4565169179.79777,4407087551.19392,4437707800.42561,4316589791.49889,4181013706.50134,4178206525.47126,4140648057.77415,4225737707.64073,4350024546.28767,4316152743.33284,4390758125.54967,4514195345.96069
-Belarus,BLR,"Population, total",SP.POP.TOTL,9979610,9928549,9865548,9796749,9730146,9663915,9604924,9560953,9527985,9506765,9490583,9473172,9464495,9465997,9474511,9489616,9501534,9498264,9483499,9466856
-Belarus,BLR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,57705302050.6981,61790137574.8412,65964081580.8031,72232043481.186,82600707462.355,93036490620.998,105319045370.782,116797714121.373,131252203713.056,131452902107.079,142835099051.391,153208172866.978,167125617328.764,172894457423.035,173994190973.455,163630254654.451,160606261472.775,167024751964.679,176773092587.249,183086223605.112
-Belgium,BEL,"Population, total",SP.POP.TOTL,10251250,10286570,10332785,10376133,10421137,10478617,10547958,10625700,10709973,10796493,10895586,11038264,11106932,11159407,11209057,11274196,11331422,11375158,11427054,11484055
-Belgium,BEL,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,292276530740.395,301798939308.354,318307798007.558,326734665722.615,338466279472.564,352001708926.337,376805872104.647,395958458302.032,415597849908.875,415541297928.157,441038357059.041,452655752838.946,480620383220.801,499349513623.745,514186705056.397,528391165614.716,556214648760.066,583765893496.913,601270822533.095,628536700011.253
-Belize,BLZ,"Population, total",SP.POP.TOTL,247315,255063,262378,269425,276504,283800,291329,299025,306823,314655,322464,330237,338000,345715,353366,360933,368400,375769,383071,390353
-Belize,BLZ,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,1287387950.12441,1357116298.17213,1450626199.39274,1584055478.8119,1666953268.63775,1766477586.79562,1908375872.74665,1922371073.92628,2034622477.42642,2179676578.6101,2193777170.18317,2368973885.92935,2264265317.53936,2309881069.2432,2316370287.0878,2469910477.61929,2483171941.55207,2445227377.72736,2521543358.43644,2586290005.7404
-Benin,BEN,"Population, total",SP.POP.TOTL,6865951,7076733,7295394,7520555,7750004,7982225,8216897,8454793,8696921,8944708,9199259,9460830,9729248,10004588,10286842,10575952,10872067,11175204,11485048,11801151
-Benin,BEN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,12039933514.299,12953894834.0906,13731587220.5999,14462457150.2043,15527659080.1207,16339425050.7319,17469806798.1607,18981657972.5593,20396010410.2284,20980955406.4862,21626033958.7697,22827277379.615,24162896617.311,26561886938.3552,29012509444.3848,30282958642.7141,32384504143.6299,33647417490.4049,36780159249.1225,39999046350.9209
-Bermuda,BMU,"Population, total",SP.POP.TOTL,61833,62504,62912,63325,63740,64154,64523,64888,65273,65636,65124,64564,64798,65001,65138,65237,64554,63873,63920,63918
-Bermuda,BMU,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,5456799919.71736,5466764865.19812,5030614754.06481,5022225302.70077,4922794703.56838,4798405145.34744,4915286607.50308,..,..,..,..,..,..
-Bhutan,BTN,"Population, total",SP.POP.TOTL,591021,603640,616018,627839,638815,648739,657410,664876,671613,678323,685503,693298,701583,710238,719056,727876,736709,745568,754394,763092
-Bhutan,BTN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,1591736072.85988,1763611969.90641,1958737241.04163,2135036176.14072,2322903181.89559,2593205499.03799,2889013893.97406,3477490674.9173,3662361807.20907,3885527852.17577,4327633174.10703,4733983718.26042,5108157657.00653,5275721526.07621,5790544513.85152,6422593662.27931,7042038049.76,7585887017.97289,7972462732.6997,..
-Bolivia,BOL,"Population, total",SP.POP.TOTL,8418264,8580235,8742814,8905823,9069039,9232306,9395446,9558439,9721454,9884781,10048590,10212954,10377676,10542376,10706517,10869730,11031813,11192854,11353142,11513100
-Bolivia,BOL,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,28161612877.8653,29291553032.7892,30495792099.2688,31529219889.622,33501391737.5381,36239758171.9237,39319908872.8557,42104650396.6538,45805903721.7166,47374744534.9209,49638890299.5505,53064109761.1359,57756234328.9259,65495334433.2076,71666096824.1971,74894854676.5673,81222638727.5769,91619577813.6129,98159504441.3777,102575988110.502
-Bosnia and Herzegovina,BIH,"Population, total",SP.POP.TOTL,3751176,3755512,3759387,3762173,3764194,3765331,3765424,3762786,3754271,3735938,3705472,3661175,3604972,3542605,3482104,3429361,3386267,3351527,3323929,3301000
-Bosnia and Herzegovina,BIH,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,18893960441.6454,19495377630.5613,20785260181.9174,21502942338.8847,24451805360.4885,25418813434.2621,28733747408.2105,31724715828.6723,35149095739.1769,35063480682.5581,35226791593.2155,36818838481.123,37436322971.8998,39547015864.6682,40137098277.2587,41479053647.328,44046396490.1261,46045036414.2516,49490888672.9277,52045375795.3886
-Botswana,BWA,"Population, total",SP.POP.TOTL,1643334,1674678,1704642,1734398,1765527,1799078,1835908,1875459,1915639,1953498,1987105,2015402,2039551,2062536,2088614,2120716,2159944,2205128,2254126,2303697
-Botswana,BWA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,13557098416.7967,14419530134.1595,13889154137.087,15363412458.1537,15991769327.3531,17685230941.2731,19912705651.2361,22352103231.3717,24185722744.8361,23597971610.0522,25205768180.1838,28096540791.5689,27303359705.3918,29010795919.8094,33058030162.8137,31933338415.3736,34254769280.8652,35240910553.464,37601959311.8403,39418398509.3185
-Brazil,BRA,"Population, total",SP.POP.TOTL,174790340,177196054,179537520,181809246,184006481,186127103,188167356,190130443,192030362,193886508,195713635,197514534,199287296,201035903,202763735,204471769,206163058,207833831,209469333,211049527
-Brazil,BRA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,1538129202525.13,1587691758684.04,1660196184117.21,1713529500931.72,1865227767451.45,1986218399261.88,2135907584142.05,2335440097782.97,2493769549044.97,2515775629776.84,2712167338494.9,2894294561187.89,2923719823241.04,3090347659210.83,3127764536961.12,2958026429307.17,2876740136507.09,2961280980576.57,3041123356393.52,3134970431394.81
-British Virgin Islands,VGB,"Population, total",SP.POP.TOTL,20311,20675,21129,21672,22334,23107,24023,25047,26097,27039,27794,28319,28650,28847,28989,29152,29355,29577,29802,30030
-British Virgin Islands,VGB,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
-Brunei Darussalam,BRN,"Population, total",SP.POP.TOTL,333165,340034,346782,353293,359433,365114,370263,374965,379421,383906,388646,393688,398989,404421,409769,414907,419800,424473,428962,433285
-Brunei Darussalam,BRN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,22135261424.3605,23241505277.578,24523299248.4977,25704091177.3781,26529220186.0059,27461594982.2529,29536870001.5476,30531964635.0643,30482369303.0034,30204880108.3032,30970850502.8798,32155106321.3359,34364760477.9712,33509559006.4759,33313972350.929,27254603848.3947,25364170400.1577,27428959648.7296,26679679555.1299,28773188263.1097
-Bulgaria,BGR,"Population, total",SP.POP.TOTL,8170172,8009142,7837161,7775327,7716860,7658972,7601022,7545338,7492561,7444443,7395599,7348328,7305888,7265115,7223938,7177991,7127822,7075947,7025037,6975761
-Bulgaria,BGR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,51206887192.224,55857030666.9347,62301080894.9876,66436197074.9398,71770858373.6766,79042444991.263,84464686591.4914,89506772467.2668,102296594159.52,102238446938.669,107687535635.403,111463649283.489,117073102231.176,117808231142.742,125723697399.701,127548541849.325,137386319097.664,147551916573.944,160249850986.115,166588293364.132
-Burkina Faso,BFA,"Population, total",SP.POP.TOTL,11607942,11944587,12293100,12654621,13030569,13421930,13829176,14252021,14689725,15141098,15605217,16081911,16571246,17072775,17586017,18110624,18646378,19193284,19751535,20321378
-Burkina Faso,BFA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,29691629052.1441,33038518525.3481,37940356284.1784,41816222358.4319,45106161376.3608
-Burundi,BDI,"Population, total",SP.POP.TOTL,6378871,6525545,6704113,6909154,7131693,7364862,7607849,7862214,8126102,8397668,8675602,8958406,9245988,9540289,9844297,10160030,10487998,10827024,11175378,11530580
-Burundi,BDI,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,3417413481.01147,3457302261.58827,3658729575.30679,3657760764.51363,3909506770.43672,4126198847.68812,4521888837.8659,4816030666.91283,5157105457.38349,5357360329.22675,5721809553.46122,6061708967.24937,6368259239.23793,7074395514.84014,7630235753.1728,8546596103.6737,8355961626.26465,8362807306.07259,8728640031.72276,9047917503.70175
-Cabo Verde,CPV,"Population, total",SP.POP.TOTL,428188,435709,442951,449930,456617,463032,469170,475060,480842,486671,492654,498856,505235,511748,518269,524743,531146,537497,543767,549935
-Cabo Verde,CPV,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,1266782277.89099,1342798431.14331,1418151673.32053,1513235208.56818,1709455198.73134,1857808134.49154,2054984867.8792,2473476172.30508,2673960999.08434,2662817641.47333,2681117810.15862,2859939245.12912,2814067315.42606,2860973891.1569,2830720284.50257,3029167495.53556,3238655861.9396,3447518124.1818,3730549246.95491,4019648413.84286
-Cambodia,KHM,"Population, total",SP.POP.TOTL,12155239,12405408,12637727,12856163,13066469,13273354,13477709,13679962,13883834,14093604,14312212,14541423,14780454,15026332,15274503,15521436,15766293,16009414,16249798,16486542
-Cambodia,KHM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,12642116508.8615,13934468278.6169,14956236448.0484,16630363468.4016,18802167691.3012,21829777132.6337,24961136701.0952,28430776792.2456,30812143007.5767,31002587125.5977,33148868045.7431,36196062670.2364,40199856424.6254,43802730490.9686,46099725658.5717,49377507801.9442,54385763728.0482,58986036499.7482,64519125861.4293,68852453802.8108
-Cameroon,CMR,"Population, total",SP.POP.TOTL,15513945,15928910,16357602,16800865,17259322,17733410,18223674,18730282,19252666,19789919,20341241,20906388,21485266,22077298,22681858,23298368,23926539,24566045,25216237,25876380
-Cameroon,CMR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,28350592041.0371,29973192155.9005,32043132678.9502,34925291392.5026,38815056169.6922,40660059083.8955,43972199123.2327,46918252733.0472,49841317015.4953,51912218948.8495,54002042434.8693,57392868093.6708,60411127308.0801,65020260624.0553,71651218352.3963,74891827392.5734,80077228864.7195,85671150257.2736,91043062688.824,96515454551.2549
-Canada,CAN,"Population, total",SP.POP.TOTL,30685730,31020902,31360079,31644028,31940655,32243753,32571174,32889025,33247118,33628895,34004889,34339328,34714222,35082954,35437435,35702908,36109487,36543321,37057765,37589262
-Canada,CAN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,877403072641.854,910889240475.231,946440061399.149,997997291124.232,1059801620831.76,1147390008931.78,1221437024738.28,1281770753021.91,1322673547258.16,1285413680532.32,1337096249937.57,1403781260484.68,1442044757903.5,1530453431372.55,1595196682591.57,1570466921580.38,1657881697068.52,1756595635890.34,1831814016986.74,1910033900633.52
-Cayman Islands,CYM,"Population, total",SP.POP.TOTL,42303,43935,45351,46632,47902,49261,50740,52280,53836,55322,56672,57878,58958,59932,60848,61724,62569,63382,64174,64948
-Cayman Islands,CYM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,3395040409.33341,3579426001.18982,2506666954.65396,2247527709.29713,2213929718.77153,2351877741.07651,2496908670.53074,2639134540.57074,..,..
-Central African Republic,CAF,"Population, total",SP.POP.TOTL,3640427,3722018,3802128,3881181,3959875,4038382,4118069,4198010,4273366,4337625,4386768,4418636,4436415,4447942,4464175,4493170,4537687,4596028,4666377,4745185
-Central African Republic,CAF,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,2420173859.83915,2599121943.16844,2733617163.78552,2651938233.75056,2862197904.44427,2987895516.47448,3224496848.98221,3469104943.0554,3590248705.0439,3962827993.80464,4225494331.49768,4492422406.61788,4910903587.89207,3314143517.70327,3249088436.38074,3580087008.65921,3910067806.77701,4409011233.54022,4789641939.89765,5017902834.17048
-Chad,TCD,"Population, total",SP.POP.TOTL,8355654,8678051,9019233,9373916,9734767,10096633,10457124,10818024,11183588,11560147,11952136,12360989,12784750,13220424,13663559,14110975,14561666,15016773,15477751,15946876
-Chad,TCD,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,6319492732.6608,7207018150.40711,7812304544.90587,7891811202.81306,10951344124.8321,13201164727.507,13543078133.2229,14781565230.2795,15134744516.7814,18144612371.4748,21024060933.5094,21644734483.3347,21591587636.4981,19796873664.8052,21921934523.2352,24904346467.7966,23791406629.63,23520168178.8231,24608840263.1903,25830796904.5155
-Channel Islands,CHI,"Population, total",SP.POP.TOTL,148443,149097,149596,150068,150716,151678,153008,154636,156433,158178,159734,160998,162056,163038,164100,165385,166923,168665,170499,172259
-Channel Islands,CHI,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
-Chile,CHL,"Population, total",SP.POP.TOTL,15342353,15516113,15684409,15849652,16014971,16182721,16354504,16530195,16708258,16886186,17062536,17233576,17400347,17571507,17758959,17969353,18209068,18470439,18729160,18952038
-Chile,CHL,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,141423035548.287,149617763772.581,155784421760.061,161378820974.511,173667662655.791,188423173015.673,226393185292.021,248814945028.446,254260262604.88,254255791260.918,288017255793.192,329368731234.727,356585691606.824,374348201436.925,389162444827.984,395407468276.445,400624301817.111,419006172363.607,443885470333.679,457579908141.733
-China,CHN,"Population, total",SP.POP.TOTL,1262645000,1271850000,1280400000,1288400000,1296075000,1303720000,1311020000,1317885000,1324655000,1331260000,1337705000,1344130000,1350695000,1357380000,1364270000,1371220000,1378665000,1386395000,1392730000,1397715000
-China,CHN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,3642929495002.62,4024301291629.47,4480003695003.27,5041479417259.67,5720935150218.09,6542253999453.47,7637180375337.52,8995506578057.3,10095483737974.6,11041378395911.4,12325778007443,13715342009909,15089408602884,16053444960087.1,17143015127789.3,17729511091167.2,18637218188518.7,19871384311878.3,21650459382664.6,23403178554979.1
-Colombia,COL,"Population, total",SP.POP.TOTL,39629968,40255967,40875360,41483869,42075955,42647723,43200897,43737516,44254975,44750054,45222700,45663099,46076848,46497267,46969209,47520667,48171392,48901066,49648685,50339443
-Colombia,COL,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,259414591428.19,268702127899.533,279161165812.221,293272250099.694,317045556052.753,346110876184.377,380086886997.642,414864274101.021,434915143665.748,444985677687.291,467552032493.6,507216374248.229,532681024405.232,571015950345.544,606448118177.276,621482821087.166,664816412490.902,687298469474.748,724232953004.369,762425730871.469
-Comoros,COM,"Population, total",SP.POP.TOTL,542357,555888,569479,583211,597228,611627,626425,641620,657229,673252,689692,706569,723871,741505,759390,777424,795592,813892,832322,850886
-Comoros,COM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,978152950.778042,1023858997.70425,1060344930.375,1101989662.31587,1152290411.05479,1222952535.58608,1293956753.02818,1344729861.00691,1420168578.88456,1477640850.41601,1552343824.85307,1650025527.79945,1814962014.89785,1955354402.02042,2065846271.75344,2114908310.93723,2290518423.87202,2481555639.3609,2627949548.30045,2741496615.1196
-"Congo, Dem. Rep.",COD,"Population, total",SP.POP.TOTL,47105826,48428545,49871666,51425580,53068880,54785903,56578037,58453683,60411195,62448574,64563854,66755153,69020747,71358807,73767447,76244544,78789127,81398764,84068091,86790567
-"Congo, Dem. Rep.",COD,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,20631804485.1208,20003968418.718,21282755743.5173,23094505319.2151,25195745565.8829,27219506328.6504,29841190580.1695,32379440357.0365,33996053842.4646,36180051180.7136,39199375965.1633,42414784447.7013,43696967208.4135,49142683507.8545,57377953169.2351,63954295208.2057,74312567452.9388,83831229357.8051,90885907472.5688,96218912373.4924
-"Congo, Rep.",COG,"Population, total",SP.POP.TOTL,3127411,3217933,3310387,3406922,3510468,3622775,3745141,3876119,4011486,4145391,4273731,4394844,4510198,4622761,4736974,4856095,4980999,5110702,5244363,5380508
-"Congo, Rep.",COG,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,7601711583.97746,8036306716.03473,8724482325.33339,9181332300.17183,8997398787.066,9737195047.57814,10623917862.3278,11183689574.246,12937905979.856,13784549918.7088,15667449650.5169,16346963764.2037,17025078803.1975,17267296875.4012,18436509734.9793,16048228148.5409,15691634236.6015,15977607409.9916,16215340249.7365,16463559986.7425
-Costa Rica,CRI,"Population, total",SP.POP.TOTL,3962372,4034074,4100925,4164053,4225155,4285502,4345412,4404628,4463125,4520740,4577378,4633086,4688000,4742107,4795396,4847804,4899345,4949954,4999441,5047561
-Costa Rica,CRI,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,29623300811.7384,31328489119.4728,32869977672.8924,34899103009.3252,37542259497.0707,40408165122.6785,45035715488.8468,50192693094.6612,53911670959.4287,53040066100.438,56358853436.7787,59912146076.3814,63956459017.0707,66885378676.1451,71737908299.0027,76862312605.2469,84399345453.2129,89894854940.6111,93960595206.229,97152868665.4819
-Cote d'Ivoire,CIV,"Population, total",SP.POP.TOTL,16454668,16853026,17231539,17599610,17970494,18354514,18754916,19171237,19605569,20059147,20532950,21028655,21547188,22087505,22647683,23226143,23822714,24437469,25069229,25716544
-Cote d'Ivoire,CIV,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,34179810556.9689,34164006387.8496,33728201147.5087,32927882380.6959,35894161009.2635,40606319284.1736,42394364749.2328,44307734365.2147,46446854989.2683,48250474385.1245,49892838647.0563,48585323041.8884,54762839531.1921,59653079619.2815,69008798623.8581,105692768632.425,110081941651.056,114536013131.385,124763689653.615,135958136117.795
-Croatia,HRV,"Population, total",SP.POP.TOTL,4468302,4299642,4302174,4303399,4304600,4310145,4311159,4310217,4309705,4305181,4295427,4280622,4267558,4255689,4238389,4203604,4174349,4124531,4087843,4067500
-Croatia,HRV,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,46499890107.2711,48896198711.9351,53482270125.2327,56353884454.221,61475698987.1059,64372129540.5663,73190743911.4847,81487123907.0063,86614855154.6138,82943218058.2524,82051671965.4988,85889523327.2529,87138270730.1742,90772432088.2814,91550495934.9966,96134586878.9095,100097233590.908,108081346537.34,112930965650.021,120055262820.192
-Cuba,CUB,"Population, total",SP.POP.TOTL,11126430,11164667,11199651,11229183,11250365,11261582,11261248,11251122,11236971,11226709,11225832,11236670,11257101,11282720,11306902,11324781,11335109,11339259,11338138,11333483
-Cuba,CUB,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
-Curacao,CUW,"Population, total",SP.POP.TOTL,133860,129047,129205,131897,134192,137658,141239,144056,145880,146833,148703,150831,152088,153822,155909,157980,159664,160175,159800,157538
-Curacao,CUW,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,3489211680.43107,3662002831.67272,3854063142.65658,3929727908.71205,3881983960.51665,3983315325.96962,4081824563.38638,3923707213.22909,3917983606.61816,3915994347.36562,3961320244.31667,3940250307.57778,4115499635.2035,4132584601.47828,..
-Cyprus,CYP,"Population, total",SP.POP.TOTL,943290,960276,976964,993563,1010408,1027662,1045507,1063713,1081563,1098083,1112612,1124833,1135046,1143866,1152285,1160985,1170187,1179680,1189265,1198575
-Cyprus,CYP,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,13511436832.2251,14900268382.8294,15854031078.158,16711119936.0921,17808359787.8131,19438218852.3815,21265557155.9929,23583728079.5028,26949305682.2092,27330223334.2122,27345454292.8436,29092538227.0754,27312721127.3054,25872169801.1677,24927082983.1203,26713635284.3923,28930812841.8969,31471920977.0666,33356593562.1506,35125093140.5641
-Czech Republic,CZE,"Population, total",SP.POP.TOTL,10255063,10216605,10196916,10193998,10197101,10211216,10238905,10298828,10384603,10443936,10474410,10496088,10510785,10514272,10525347,10546059,10566332,10594438,10629928,10669709
-Czech Republic,CZE,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,163038832898.852,174467305667.327,179046170022.093,191477640584.699,202340708154.596,214084360418.233,228658408144.147,251847307853.256,270395387186.615,268132912244.783,268604766055.741,279370310382.565,286391051564.635,301403153675.82,316710658172.226,331373073380.675,354511276940.125,382709527241.609,405816971330.564,433853854330.091
-Denmark,DNK,"Population, total",SP.POP.TOTL,5339616,5358783,5375931,5390574,5404523,5419432,5437272,5461438,5493621,5523095,5547683,5570572,5591572,5614932,5643475,5683483,5728010,5764980,5793636,5818553
-Denmark,DNK,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,149596143354.486,155487973617.73,162670765274.646,164472529117.583,178075165724.772,186566260237.836,205208412175.99,213876992045.586,229296531979.344,225193495345.495,242631692386.991,252568140433.285,256181803182.809,270675687839.011,280163778604.424,287382159288.342,305006431683.768,324192732266.205,340112252681.597,357320214235.544
-Djibouti,DJI,"Population, total",SP.POP.TOTL,717584,733015,746942,759641,771603,783254,794563,805451,816358,827823,840198,853674,868136,883293,898696,913993,929112,944097,958920,973560
-Djibouti,DJI,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,3715087653.66217,4036230825.66616,4429309389.07182,4597475415.7157,4817795003.66086,5289280458.10073,5819929455.04377
-Dominica,DMA,"Population, total",SP.POP.TOTL,69650,69661,69837,70100,70382,70589,70718,70795,70827,70851,70878,70916,70965,71016,71085,71183,71307,71458,71625,71808
-Dominica,DMA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,400344100.039402,429313346.655132,419179922.578869,456635202.274809,476896541.72058,501085760.596008,564432283.057511,611226901.228168,672058787.445127,677696725.862907,696454257.626208,708014383.213069,679255897.176842,700295621.02101,750737430.525807,761036723.992605,829614493.990179,789737770.599692,847596135.862176,895005759.185567
-Dominican Republic,DOM,"Population, total",SP.POP.TOTL,8471321,8598601,8724975,8850317,8974444,9097257,9218686,9338861,9458075,9576737,9695121,9813210,9930911,10048224,10165178,10281680,10397743,10513131,10627165,10738958
-Dominican Republic,DOM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,54857959234.1973,57451823519.1937,61018030270.1061,59914230879.4222,62079258329.0088,72081412996.4997,81421833744.7993,89627113600.64,95624024360.2622,97332284097.8779,106666390183.348,111949190660.718,113509281387.312,119476175474.504,130354685235.318,145306712788.837,160308245051.641,167596990082.089,184008614926.158,196349641425.533
-Ecuador,ECU,"Population, total",SP.POP.TOTL,12681123,12914667,13143465,13369678,13596388,13825847,14059384,14296557,14535739,14774424,15011117,15243883,15474102,15707474,15951838,16212020,16491115,16785361,17084357,17373662
-Ecuador,ECU,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,69098046172.0833,74742259805.639,79574768087.9565,83073642541.6052,91901802521.3136,100466458726.895,108594774592.686,114009264818.594,125602173796.277,127642774663.478,134421320332.912,147884749634.534,157237893147.298,172690001154.939,184012416071.378,176187957730.396,178667364050.045,190676356240.484,196867951562.893,199871447137.298
-"Egypt, Arab Rep.",EGY,"Population, total",SP.POP.TOTL,68831561,70152661,71485043,72826097,74172073,75523569,76873663,78232126,79636079,81134798,82761235,84529250,86422240,88404640,90424654,92442547,94447072,96442593,98423595,100388073
-"Egypt, Arab Rep.",EGY,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,400684181257.648,424516803084.269,442195029596.355,463855596342.298,496188030671.872,529723401474.72,587646465573.459,648828095446.349,708313454619.035,741484422581.662,772379855382.843,807504032637.098,935460226221.456,969791269904.67,961833673783.757,1045884282029.13,1042793009640.79,1041539732767.9,1116365583862.3,1185110320142.05
-El Salvador,SLV,"Population, total",SP.POP.TOTL,5887936,5927006,5962136,5994077,6023797,6052123,6079399,6105810,6131764,6157686,6183875,6210568,6237923,6266070,6295128,6325124,6356143,6388122,6420744,6453553
-El Salvador,SLV,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,25625057193.2798,26412663278.8683,27145840513.0776,27897191944.0943,28861264893.0732,30566055698.3285,33063124163.0323,34601612380.5593,36374477944.3703,35521962609.6281,36783889176.141,38933283619.5548,39143379884.8551,41152360828.005,43447081739.4438,45817642299.8659,48462178672.0867,51005491573.6496,53436355129.8483,56132584584.232
-Equatorial Guinea,GNQ,"Population, total",SP.POP.TOTL,606181,631666,658384,686664,716949,749535,784496,821687,860840,901599,943639,986853,1031191,1076413,1122276,1168568,1215179,1262001,1308974,1355986
-Equatorial Guinea,GNQ,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,3569476980.42644,4055894873.55833,5418769255.37622,5380816669.01491,7063285944.27882,10643726530.0438,18306829396.1913,22011462069.2607,24503329731.2202,22329409017.6862,18263922392.6939,21889346128.883,25687593216.8693,25581464599.311,25707960045.8039,21190569158.2367,19263632756.1753,20954718048.321,20599465392.7533,19797708447.4125
-Eritrea,ERI,"Population, total",SP.POP.TOTL,2292416,2374722,2481058,2600973,2719803,2826659,2918205,2996536,3062779,3119920,3170435,3213972,..,..,..,..,..,..,..,..
-Eritrea,ERI,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,3506504683.54086,3882334366.44965,4040941341.42888,3995622452.95127,4151458428.13569,4414188410.48932,4510019766.93467,4705298978.88769,4314353633.37809,4514907120.14248,4650579875.09612,5164760114.43522,..,..,..,..,..,..,..,..
-Estonia,EST,"Population, total",SP.POP.TOTL,1396985,1388115,1379350,1370720,1362550,1354775,1346810,1340680,1337090,1334515,1331475,1327439,1322696,1317997,1314545,1315407,1315790,1317384,1321977,1326590
-Estonia,EST,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,12669789053.2999,13621048412.8871,15237944246.2133,16938465034.2173,18679330374.4002,21499500921.8641,24584992712.209,27418527426.1221,28932126115.7131,26675790036.0418,27494601909.1167,31230453479.2807,33215561266.1041,35556368007.5954,37217445766.6686,37821991827.8642,40170713503.6427,43497799024.4122,47162932030.7337,50421445033.1002
-Eswatini,SWZ,"Population, total",SP.POP.TOTL,1005435,1013609,1019059,1022802,1026286,1030579,1036092,1042652,1049945,1057467,1064837,1072032,1079288,1086839,1095021,1104044,1113984,1124753,1136191,1148130
-Eswatini,SWZ,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,4841044260.53071,5228208996.89649,5210477318.31103,5395620373.05508,5858932937.73412,6756746959.2949,7016136628.35619,7581049283.3852,7688629392.01527,7714634747.85168,7853617337.89829,8582264516.31715,8878105091.60812,9553826836.30231,9655682182.88881,9859047731.37133,9239799764.31969,8992934215.72979,9167414979.72843,9119639409.78686
-Ethiopia,ETH,"Population, total",SP.POP.TOTL,66224804,68159423,70142091,72170584,74239505,76346311,78489206,80674348,82916235,85233913,87639964,90139927,92726971,95385785,98094253,100835458,103603501,106400024,109224559,112078730
-Ethiopia,ETH,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,31745647141.6655,35172872840.3776,36248505406.0944,36093164761.2695,42154727413.4637,48770757910.6299,55711564489.7698,63968650234.7454,72249633206.4247,79048790246.6279,89796474832.5446,102066962975.689,112283190021.582,122160040713.247,148077681634.81,166439956275.808,194015746732.547,213816795462.579,234123795699.233,257833627636.733
-Faroe Islands,FRO,"Population, total",SP.POP.TOTL,46735,46997,47233,47432,47600,47722,47792,47825,47820,47808,47814,47823,47843,47892,47960,48051,48173,48331,48497,48678
-Faroe Islands,FRO,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
-Fiji,FJI,"Population, total",SP.POP.TOTL,811006,813925,815257,816076,817860,821604,827870,836190,845361,853637,859818,863449,865069,865608,866453,868627,872399,877459,883483,889953
-Fiji,FJI,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,4827120096.51656,4892822205.4524,5214236792.19288,5323698866.83316,5754894934.23974,6061204526.3355,6025609709.78998,6241924312.93759,6412425532.57076,6507160715.10832,6593677900.24856,6919076183.45899,7364413511.27213,8093191221.57648,9375290977.58611,10308984097.0623,10552450502.8774,11065468557.7563,11639696514.4538,11799710852.3755
-Finland,FIN,"Population, total",SP.POP.TOTL,5176209,5188008,5200598,5213014,5228172,5246096,5266268,5288720,5313399,5338871,5363352,5388272,5413971,5438972,5461512,5479531,5495303,5508214,5515525,5520314
-Finland,FIN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,137831205768.922,144213025306.481,149214583627.633,150389244509.753,164126870712.683,168848220995.197,182879915808.363,200493060394.021,213338084144.169,205444151668.081,211781871684.258,221315089725.945,222320431042.548,226606741870.886,230341376307.58,235221001780.708,248155471609.02,261590094221.63,273274599947.778,282682864368.635
-France,FRA,"Population, total",SP.POP.TOTL,60912500,61357430,61805267,62244886,62704895,63179351,63621381,64016225,64374984,64707040,65027507,65342780,65659809,65998687,66312067,66548272,66724104,66864379,66965912,67059887
-France,FRA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,1614956006369.75,1717864359700.64,1781288096300.79,1774939575254.32,1845786479339.73,1959874866060.42,2104482410624.18,2225392718411.68,2308471504999.58,2297731448402.57,2390316382553.47,2511515271090.53,2528097207038.72,2666950863865.02,2719730300347.34,2777946957121.9,2924396537469.08,3065793971593.25,3180957643991.66,3379235791179.85
-French Polynesia,PYF,"Population, total",SP.POP.TOTL,240686,244931,248972,252703,255992,258780,261010,262721,264061,265254,266455,267698,268998,270328,271705,273124,274575,276103,277679,279287
-French Polynesia,PYF,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
-Gabon,GAB,"Population, total",SP.POP.TOTL,1228360,1258003,1288315,1319953,1353795,1390549,1430152,1472575,1518540,1568928,1624140,1684635,1749682,1817071,1883800,1947686,2007873,2064823,2119275,2172579
-Gabon,GAB,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,14560360616.8048,15533771682.1043,16373734921.2765,16685199605.6481,16403352230.3776,18466927308.8567,17838899425.0902,19077719130.1454,18981183917.5181,19713699134.9328,20931794546.4329,22729974762.4942,24187166236.5611,24803028471.2847,27448373201.6419,26252661543.3818,26457471076.3386,29027529828.7639,29882361204.4177,31328419269.158
-"Gambia, The",GMB,"Population, total",SP.POP.TOTL,1317703,1360074,1404261,1449925,1496527,1543741,1591445,1639848,1689285,1740279,1793196,1848147,1905011,1963711,2024042,2085860,2149139,2213894,2280102,2347706
-"Gambia, The",GMB,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,2391096788.02665,2579595445.05702,2507399451.28304,2780913260.15132,3137919845.09736,3158295371.00478,3229331373.09398,3429568507.91704,3729476358.48792,3996504312.8178,4281627558.09595,4002461735.10188,4103967194.68281,4076131550.67062,4006121655.97443,4207793058.65318,4362686911.60081,4502345653.44125,4914925185.03292,5304139529.51512
-Georgia,GEO,"Population, total",SP.POP.TOTL,4077131,4014373,3978515,3951736,3927340,3902469,3880347,3860158,3848449,3814419,3786695,3756441,3728874,3717668,3719414,3725276,3727505,3728004,3726549,3720382
-Georgia,GEO,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,12812347844.1636,13640959575.383,14569475526.9638,16469948371.4657,18107946265.3463,20363417437.7528,23213208401.1407,26381442604.0567,27320718279.6863,26539639982.1387,28134208151.5415,30519613226.4118,36257009738.4886,38723289569.7477,42492961933.5167,44015459770.8487,45709833895.1989,48180654829.8018,52267983795.5271,55865774651.3008
-Germany,DEU,"Population, total",SP.POP.TOTL,82211508,82349925,82488495,82534176,82516260,82469422,82376451,82266372,82110097,81902307,81776930,80274983,80425823,80645605,80982500,81686611,82348669,82657002,82905782,83132799
-Germany,DEU,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,2224328583943.71,2320728939186.94,2381368004844.2,2440703477248.71,2598811221466.52,2643689105682.11,2858148381212.31,3025439825143.71,3133424995825.21,3086256642388.37,3251502171529.72,3502470398953.27,3570904139239.83,3712581829258.22,3883389666513.64,3983765536763.11,4266415919562.53,4493919482771.19,4641067663123.44,4795662518549.85
-Ghana,GHA,"Population, total",SP.POP.TOTL,19278856,19756928,20246381,20750299,21272323,21814642,22379055,22963946,23563825,24170940,24779619,25387710,25996449,26607642,27224472,27849205,28481946,29121471,29767108,30417856
-Ghana,GHA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,33524661532.0692,35837806716.777,38027118472.8837,40731393775.2881,44150796112.8559,48520510267.9119,53260838519.3104,57103190612.7684,63642248133.0456,67264314065.1944,72467930100.5584,83129912555.5813,93322034398.2884,136957246170.144,143670731901.313,140624612115.26,136623482244.943,141646107789.028,155166742061.052,167736159566.294
-Gibraltar,GIB,"Population, total",SP.POP.TOTL,31077,31602,32102,32555,32928,33219,33417,33517,33559,33565,33585,33612,33646,33692,33725,33736,33737,33728,33718,33701
-Gibraltar,GIB,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
-Greece,GRC,"Population, total",SP.POP.TOTL,10805808,10862132,10902022,10928070,10955141,10987314,11020362,11048473,11077841,11107017,11121341,11104899,11045011,10965211,10892413,10820883,10775971,10754679,10732882,10716322
-Greece,GRC,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,212412906521.369,229451460132.503,246506012516.46,260114542212.294,275403545164.743,281471978035.928,308410889366.803,315270202791.407,331637075588.565,330031550468.558,306864932903.115,282370859957.681,281120340956.062,285824079577.244,294315512120.89,291510428686.154,299834879612.122,313451120014.443,324064779565.834,335971429806.141
-Greenland,GRL,"Population, total",SP.POP.TOTL,56200,56350,56609,56765,56911,56935,56774,56555,56328,56323,56905,56890,56810,56483,56295,56114,56186,56172,56023,56225
-Greenland,GRL,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
-Grenada,GRD,"Population, total",SP.POP.TOTL,102833,103249,103634,104005,104347,104661,104933,105190,105456,105789,106233,106796,107446,108170,108902,109599,110261,110874,111454,112003
-Grenada,GRD,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,734808668.997312,724132428.505397,753881927.286094,843000490.898453,838101389.203375,1053766192.82723,1041581983.0442,1119875083.74834,1155463272.22854,1052844457.55335,1094309142.21063,1138673428.05649,1148161514.25938,1240710384.87123,1291198872.90021,1373363286.20348,1505284098.72797,1631169567.08909,1734364871.14465,1820223209.9485
-Guam,GUM,"Population, total",SP.POP.TOTL,155329,156401,157176,157717,158101,158402,158648,158847,159036,159226,159444,159692,159996,160407,161016,161853,162951,164281,165768,167294
-Guam,GUM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
-Guatemala,GTM,"Population, total",SP.POP.TOTL,11589761,11871565,12147518,12415334,12682108,12948292,13213330,13477017,13739299,14000190,14259687,14521515,14781942,15043981,15306316,15567419,15827690,16087418,16346950,16604026
-Guatemala,GTM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,55436071588.0517,58423901749.5849,60973451961.9998,63730651285.231,67330576884.2977,71639439847.8173,77407216882.2785,84307587083.0798,89061029301.2988,89842025531.9565,93393580375.0718,98829682628.6572,105811146465.384,109413614487.413,115639774376.543,124517142887.857,127323281385.564,131000150292.011,138427160736.326,146879602730.045
-Guinea,GIN,"Population, total",SP.POP.TOTL,8240730,8417081,8586074,8753093,8925743,9109581,9307425,9518162,9738792,9964469,10192176,10420471,10652029,10892810,11150977,11432088,11738441,12067539,12414318,12771246
-Guinea,GIN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,9920558236.99188,10462436057.565,11331156275.4814,11199918764.5244,11747323939.0738,12286336393.9249,13567930368.8496,14877927221.0885,15745640858.2095,15497677235.8985,16665347006.9948,17815489449.8391,18819737532.167,18776195192.1864,19471089653.3749,20460340883.3828,24108942384.3006,29066574011.7813,29963997150.6944,32168440980.3898
-Guinea-Bissau,GNB,"Population, total",SP.POP.TOTL,1201301,1227106,1254453,1283305,1313492,1344930,1377581,1411543,1446936,1483921,1522599,1562989,1604979,1648257,1692439,1737202,1782437,1828146,1874309,1920922
-Guinea-Bissau,GNB,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,1245250077.79105,1290990559.36951,1324865081.05661,1354249893.99777,1434589411.30001,1542192301.95513,1642203212.75516,1749063681.3057,1820547733.8338,1902652560.45922,2030006201.0127,2262774007.23512,2187093803.73918,2205787895.62385,2415238570.21739,2842389875.31444,3191999767.76646,3526798653.49018,3734300631.46878,4267587492.64397
-Guyana,GUY,"Population, total",SP.POP.TOTL,746715,745206,744789,745143,745737,746163,746343,746474,746817,747718,749436,752028,755399,759285,763380,767432,771366,775221,779004,782766
-Guyana,GUY,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,3009699061.64372,3124587257.8627,3202193511.38486,3279330998.25765,3458833622.83972,3532228541.45415,4003249323.3272,4358404507.89151,4473814101.71071,4670274719.11104,4853150909.08941,5222514849.01609,5572885371.12253,5942399128.49836,6287536367.09898,6469630294.56216,6722036893.02856,6806377196.40416,7235915307.07568,7746391573.0876
-Haiti,HTI,"Population, total",SP.POP.TOTL,8463806,8608819,8754150,8900104,9047077,9195288,9344785,9495328,9646580,9798046,9949322,10100320,10250930,10400673,10549008,10695542,10839970,10982366,11123176,11263077
-Haiti,HTI,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,11964700189.2746,12061370869.5294,12173079053.8234,12426628463.5777,12335060575.9589,12882424019.9465,13705750370.178,14529693062.1158,14944372403.3397,15539598839.4582,15251416680.2375,16464253341.1231,16440541937.5505,17548110518.666,18234505008.3534,18308690377.402,19153302075.9352,19492773518.3174,20230734762.7718,20153439276.3162
-Honduras,HND,"Population, total",SP.POP.TOTL,6574509,6751912,6929265,7106319,7282953,7458985,7634298,7808518,7980955,8150775,8317470,8480671,8640691,8798521,8955589,9112916,9270795,9429013,9587522,9746117
-Honduras,HND,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,16508738719.9366,17280507734.3576,18133692998.8405,19178423048.0611,20773807318.9273,22824412781.0451,25008545050.3809,27739987380.8685,29311524918.5336,28642526365.4201,29729364273.93,31469455075.9805,32447867601.1165,33761586548.5521,36611449125.7829,40945953789.8257,44383060571.3461,49235457099.1837,51275999310.5713,53703314264.4892
-"Hong Kong SAR, China",HKG,"Population, total",SP.POP.TOTL,6665000,6714300,6744100,6730800,6783500,6813200,6857100,6916300,6957800,6972800,7024200,7071600,7150100,7178900,7229500,7291300,7336600,7391700,7451000,7507400
-"Hong Kong SAR, China",HKG,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,189820368906.922,197977937213.81,201127217069.696,215146200495.275,239130027430.84,260658394780.65,292675217844.809,322582288590.381,344599699656.119,329453225166.724,352799114972.927,379780810643.688,378882956243.058,392752239125.688,404211342098.222,418904765973.878,430361863158.585,461609726417.992,487933404311.381,492465939619.043
-Hungary,HUN,"Population, total",SP.POP.TOTL,10210971,10187576,10158608,10129552,10107146,10087065,10071370,10055780,10038188,10022650,10000023,9971727,9920362,9893082,9866468,9843028,9814023,9787966,9775564,9769949
-Hungary,HUN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,114045211135.924,126801506496.016,139177319914.304,148325802239.665,154021963134.902,161419505675.344,173625083151.775,177597007603.051,194072486578.888,198356724319.117,206068856612.511,217312698268.979,219987870432.761,235501990439.515,241704812304.023,250589735184.109,264903551296.285,277433118025.225,296328671701.857,319980967377.16
-Iceland,ISL,"Population, total",SP.POP.TOTL,281205,284968,287523,289521,292074,296734,303782,311566,317414,318499,318041,319014,320716,323764,327386,330815,335439,343400,352721,361313
-Iceland,ISL,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,8064056447.99737,8781736929.05093,9390431859.41103,9381468561.22915,10025240340.2104,10526296722.7951,11026180884.6178,12073064240.4066,10807260433.594,10708134789.6414,10237034204.2611,11022605832.7629,11766282593.5493,13631427233.6515,14240759323.4076,15376113336.7176,17103762803.3958,18673233568.213,19724344190.2306,22101273413.3938
-India,IND,"Population, total",SP.POP.TOTL,1056575549,1075000085,1093317189,1111523144,1129623456,1147609927,1165486291,1183209472,1200669765,1217726215,1234281170,1250288729,1265782790,1280846129,1295604184,1310152403,1324509589,1338658835,1352617328,1366417754
-India,IND,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,2190686809323.87,2351372617361.02,2484358366592.28,2727424215141.91,3023959793295.09,3364649501516.79,3743550659626.91,4153719586236.6,4357404051268.08,4735817203686.97,5173298943912.42,5568976388344.3,6080904818549.95,6396857208684.85,6700838434194.09,7076731493413.66,7577059418948.02,8191428149143.83,8899126431645.27,9507241234000.71
-Indonesia,IDN,"Population, total",SP.POP.TOTL,211513823,214427417,217357793,220309469,223285676,226289470,229318262,232374245,235469762,238620563,241834215,245116206,248452413,251806402,255129004,258383256,261554226,264645886,267663435,270625568
-Indonesia,IDN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,936869323318.277,1023368245083.65,1094409163250.38,1157760861349.83,1239077076507.84,1346480241917.56,1472854684302.26,1610868377528.11,1751105373682.55,1847157749729.14,2002209911115.04,2167767372892.09,2345311900455.84,2459271038444.92,2534329758163.13,2559879525286.4,2657025035196.4,2802422575187.42,3026018847669.79,3229572832486.22
-"Iran, Islamic Rep.",IRN,"Population, total",SP.POP.TOTL,65623405,66449112,67284796,68122938,68951281,69762347,70554760,71336475,72120604,72924837,73762519,74634956,75539862,76481943,77465753,78492215,79564016,80673951,81800269,82913906
-"Iran, Islamic Rep.",IRN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,675841187412.547,696994128225.243,761316821245.031,842398737386.086,899769697896.238,957212207172.177,1037798895728.35,1155249643133.39,1181336226840.72,1198040521436.13,1282857044909.04,1344189230057.48,1213336909094.26,1176150169010.8,1183766862250.56,1069286038839.47,1118284077512.34,1174847753747.62,..,..
-Iraq,IRQ,"Population, total",SP.POP.TOTL,23497585,24208180,24931919,25644499,26313838,26922284,27448124,27911248,28385746,28973162,29741976,30725300,31890011,33157050,34411951,35572261,36610632,37552781,38433600,39309783
-Iraq,IRQ,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,223945695599.99,233939007709.488,219010054391.258,152008077472.552,240719232174.42,235318954839.301,277698213537.278,295172176352.744,346250555535.968,361115320741.941,382579570985.527,414739424314.827,485908441354.314,512778489299.524,488228998508.139,366501386393.93,359100794117.949,408986068274.349,416090939901.668,443346809470.494
-Ireland,IRL,"Population, total",SP.POP.TOTL,3805174,3866243,3931947,3996521,4070262,4159914,4273591,4398942,4489544,4535375,4560155,4580084,4599533,4623816,4657740,4701957,4755335,4807388,4867316,4941444
-Ireland,IRL,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,100113059734.314,107470352532.356,116072235760.394,124855538574.355,135840842759.092,145668071091.729,165648719283.898,177837354517,172166896183.693,157923766321.604,165548185550.13,166561101149.351,171504812215.699,186850967298.959,200789098958.416,249588740149.407,278957902309.884,298263305224.758,322469887775.013,336252300615.224
-Isle of Man,IMN,"Population, total",SP.POP.TOTL,76941,77703,78318,78884,79520,80305,81285,82408,83508,84376,84857,84886,84533,83976,83488,83234,83287,83598,84077,84584
-Isle of Man,IMN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
-Israel,ISR,"Population, total",SP.POP.TOTL,6289000,6439000,6570000,6689700,6809000,6930100,7053700,7180100,7308800,7485600,7623600,7765800,7910500,8059500,8215700,8380100,8546000,8713300,8882800,9053300
-Israel,ISR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,146996682279.526,153795709264.995,159684729036.156,153577205649.943,166628609112.852,170591268132.874,180310175239.801,196904817585.902,196595302964.286,200830172172.911,215667488792.448,233970859364.682,244257169060.297,269603510735.328,279377873188.598,294407526010.901,320477649412.972,336098643414.734,357819136573.777,381508561013.861
-Italy,ITA,"Population, total",SP.POP.TOTL,56942108,56974100,57059007,57313203,57685327,57969484,58143979,58438310,58826731,59095365,59277417,59379449,59539717,60233948,60789140,60730582,60627498,60536709,60421760,60297396
-Italy,ITA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,1536251752977.11,1592989057386.54,1632366431124.16,1663483685393.26,1700508305410.16,1749401793158.77,1892183143469.26,1994618888873.8,2070619017116.37,2045551343726.36,2081077565453.29,2167673493812.34,2169728284637.12,2183586713124.53,2200447377386.96,2226028747655.71,2427375662810.54,2543341126089.71,2615143671973.54,2687760563023.36
-Jamaica,JAM,"Population, total",SP.POP.TOTL,2654701,2674702,2692845,2709437,2725015,2740003,2754407,2768227,2781876,2795837,2810460,2825929,2842132,2858709,2875136,2891021,2906238,2920853,2934855,2948279
-Jamaica,JAM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,16228041675.6903,16645742257.0425,16954752900.4538,17982395364.7117,18754092245.9084,19450170551.3636,20809329777.3449,21678729182.2425,22157235803.6987,21046043678.58,21372671662.9003,22231524588.9226,22956406890.3935,23565528689.09,24045139424.8735,24640731094.2126,25588822115.0276,27208298032.1934,27920525731.4864,28799949401.4959
-Japan,JPN,"Population, total",SP.POP.TOTL,126843000,127149000,127445000,127718000,127761000,127773000,127854000,128001000,128063000,128047000,128070000,127833000,127629000,127445000,127276000,127141000,126994511,126785797,126529100,126264931
-Japan,JPN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,3452930586529.41,3546345231235.99,3639730784809.42,3752540602986.5,3950153980558.91,4133438974348.17,4341515713395.91,4548813737724.68,4573202767880.07,4354890214696.97,4596530742002.53,4702730270932.62,4873844260962.84,5133797407300.4,5166025961476.02,5333311667417.55,5246871690810.19,5364983572337.73,5420858766097.59,5654421763505.28
-Jordan,JOR,"Population, total",SP.POP.TOTL,5122493,5217336,5317506,5434030,5580244,5765635,5991540,6255280,6556478,6893260,7261539,7663131,8090872,8520420,8920049,9266575,9551467,9779173,9956011,10101694
-Jordan,JOR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,30393012055.2555,32891728661.6786,34974460374.9464,37307713592.1815,41899452079.2101,46732800031.6403,52229398474.1985,58548112453.5047,63092518458.0793,66862417266.3191,67599734908.1306,70723209041.2385,72809011999.9602,77738120211.2599,79805909438.9503,85486442885.3451,87984422971.6304,95750703564.1376,99946566925.5574,103465944256.527
-Kazakhstan,KAZ,"Population, total",SP.POP.TOTL,14883626,14858335,14858948,14909018,15012985,15147029,15308084,15484192,15674000,16092822,16321872,16557201,16792089,17035550,17288285,17542806,17794055,18037776,18276498.5,18513930
-Kazakhstan,KAZ,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,107939394934.675,126916049786.246,142962263860.528,157161146492.615,174829230289.961,190542280469.363,212938577584.93,235954730059.164,242322806772.202,257942621312.301,272722282122.584,294494040831.081,319954479748.818,373088584433.754,383650191926.991,381745816548.317,382306984208.955,399678715598.354,419091035222.809,445227412201.649
-Kenya,KEN,"Population, total",SP.POP.TOTL,31964557,32848564,33751739,34678779,35635271,36624895,37649033,38705932,39791981,40901792,42030676,43178257,44343410,45519889,46699981,47878336,49051686,50221473,51393010,52573973
-Kenya,KEN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,51242963036.4607,54291635343.8476,55555143737.2785,58149160259.5733,62892402118.2424,69193318822.4205,75717180970.7134,82927905459.9744,85046293991.7905,88499791982.3419,96815313092.1344,105284725887.098,111702555544.44,124600115565.074,139107161405.764,158922253444.329,175712039306.777,199324373582.831,217492984098.153,232294328998.953
-Kiribati,KIR,"Population, total",SP.POP.TOTL,84396,85849,87305,88835,90499,92325,94343,96527,98761,100930,102927,104728,106370,107890,109391,110930,112524,114158,115847,117606
-Kiribati,KIR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,217156131.67745,232653434.252958,227221872.952441,222507516.798848,217292400.466397,228478024.025504,232628480.663213,248005509.18067,252582083.045832,243191331.125525,258637330.475909,254926735.893375,295962984.145106,341023661.572294,394689227.134109,481818499.250186,443604706.489874,489406598.949437,495003038.427024,546379236.403899
-"Korea, Dem. People’s Rep.",PRK,"Population, total",SP.POP.TOTL,22929075,23132980,23339453,23542426,23732731,23904167,24054864,24188331,24310142,24428341,24548836,24673385,24800612,24929452,25057752,25183833,25307744,25429985,25549819,25666161
-"Korea, Dem. People’s Rep.",PRK,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
-"Korea, Rep.",KOR,"Population, total",SP.POP.TOTL,47008111,47370164,47644736,47892330,48082519,48184561,48438292,48683638,49054708,49307835,49554112,49936638,50199853,50428893,50746659,51014947,51217803,51361911,51606633,51709098
-"Korea, Rep.",KOR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,866224637084.584,926568183291.801,1015663096721.17,1053487194629.71,1141674348593.57,1205046439840.2,1298121837175.56,1411147965489.67,1469369248901.13,1459437700151.26,1575219821834.69,1635336002448.05,1702177999918.46,1737909546523.48,1801276221059.28,1939898096852.87,2033944222873.06,2114477220937.47,2180192386669,2245536234863.2
-Kosovo,XKX,"Population, total",SP.POP.TOTL,1700000,1701154,1702310,1703466,1704622,1705780,1719536,1733404,1747383,1761474,1775680,1791000,1807106,1818117,1812771,1788196,1777557,1791003,1797085,1794248
-Kosovo,XKX,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,9448780718.94259,10319967010.2791,11159472454.892,12328905773.4844,13202725427.3682,13420011280.9226,14032931934.7061,15065975384.9805,15786623490.4927,16375362781.983,16729091063.4254,17396818269.5142,18103723637.3237,19243542089.8682,20379566169.0025,21688653507.3278
-Kuwait,KWT,"Population, total",SP.POP.TOTL,2045123,2103282,2136997,2161626,2200492,2270198,2373672,2504019,2656009,2821045,2991884,3168060,3348853,3526376,3690941,3835591,3956875,4056099,4137312,4207083
-Kuwait,KWT,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,135299805296.8,134200916856.49,133934535618.162,157473075417.704,181118682877.255,206878546765.969,233175724142.53,253816914309.589,256739472146.302,240304338140.048,237522519195.452,262429662609.487,297080892082.726,296212485278.017,282130555688.171,204641979189.488,206128302066.468,240345871255.75,247070912844.791,..
-Kyrgyz Republic,KGZ,"Population, total",SP.POP.TOTL,4898400,4945100,4990700,5043300,5104700,5162600,5218400,5268400,5318700,5383300,5447900,5514600,5607200,5719600,5835500,5956900,6079500,6198200,6322800,6456900
-Kyrgyz Republic,KGZ,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,8582788124.17997,9445299068.39432,9620514406.97036,10528230099.1611,11405670075.3493,11867795448.6145,12852625677.4441,14379148851.6645,15456671499.0971,16049689287.6332,15740559548.7582,16250508927.3612,19767684145.2302,21790220340.6309,23953408501.6723,24127188673.9971,26964623071.125,29771394476.3694,32213584892.4963,32743237340.9162
-Lao PDR,LAO,"Population, total",SP.POP.TOTL,5323700,5409582,5493246,5576640,5662208,5751676,5846074,5944948,6046620,6148623,6249165,6347567,6444530,6541304,6639756,6741164,6845846,6953035,7061507,7169455
-Lao PDR,LAO,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,9354054066.72607,10128844090.9953,10925727062.9119,11565351478.2267,12833062902.6013,14423987196.9701,15626237268.1888,17634679034.541,19143604679.9074,21142119992.2366,22373664603.9142,24562505654.9469,29339581968.1696,32738513911.9639,37279715377.7992,39733495399.3774,44835845958.1785,47800441427.6112,52320902374.4912,57060254694.0481
-Latvia,LVA,"Population, total",SP.POP.TOTL,2367550,2337170,2310173,2287955,2263122,2238799,2218357,2200325,2177322,2141669,2097555,2059709,2034319,2012647,1993782,1977527,1959537,1942248,1927174,1912789
-Latvia,LVA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,18958427819.7615,21141588611.7692,23262996772.4508,25069950348.6161,27035534506.2247,30655830475.7041,34043840581.1906,38692429651.4441,41843251555.0613,38815194342.2175,37290854957.7853,40718164748.9288,43009656243.271,45570135257.205,47389285714.2857,48824891694.3922,51608651149.5449,55079441674.1518,58231115700.1278,60766842719.0905
-Lebanon,LBN,"Population, total",SP.POP.TOTL,3842778,3991001,4182205,4388375,4569378,4698763,4759753,4767344,4764741,4813026,4953061,5202343,5538634,5914621,6262410,6532678,6711121,6811873,6848925,6855713
-Lebanon,LBN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,35040734794.1739,36352321493.6295,36609276889.7272,33656173715.177,42476313044.2458,46345388708.0947,49273874854.1886,56580458896.5347,61987320720.5013,67409785454.3513,73126239449.1207,75853128476.6476,81684754405.0447,88008051378.2797,93092365035.804,97376540515.4046,102281959781.688,108596513314.89,108823275394.388,104646451621.174
-Lesotho,LSO,"Population, total",SP.POP.TOTL,2032804,2035740,2029829,2018348,2005940,1996114,1989939,1986922,1987129,1990131,1995581,2003787,2014990,2028519,2043437,2059021,2075001,2091412,2108132,2125268
-Lesotho,LSO,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,3256788969.27872,3913059198.29636,4007732093.07968,4213292015.02062,4222495514.4261,4262511673.4545,4395353578.81672,5261996070.51886,5601279294.0217,5576746839.8704,5732442949.77979,5867436520.2687,5807263380.73409,6324234618.26154,6791590360.36545,7160368698.95524,7170407008.26459,6588747322.30217,6739409120.09678,6986676687.08345
-Liberia,LBR,"Population, total",SP.POP.TOTL,2848456,2953927,3024729,3077058,3135651,3218116,3329211,3461911,3607860,3754133,3891356,4017443,4135659,4248334,4359505,4472230,4586788,4702228,4818977,4937374
-Liberia,LBR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,2501365581.1216,2462075674.93199,2582706058.45283,1775793699.67672,1916106938.6771,2134870484.98442,2456347243.47831,2838061025.64274,3169296955.52172,3402304565.41736,3620075701.16098,4164518138.61442,4387996479.62735,5130477809.93594,5386476328.91385,5269268962.54026,5783171659.71288,6469862956.51871,6395618956.68225,6497975683.41754
-Libya,LBY,"Population, total",SP.POP.TOTL,5357891,5443248,5531089,5620547,5710154,5798614,5886872,5974787,6058748,6133984,6197663,6247439,6285750,6320359,6362037,6418315,6492164,6580724,6678567,6777452
-Libya,LBY,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,98907556524.4814,114707180069.975,119683554072.231,138242554223.013,155161329132.711,168729376086.617,175860708442.341,175981228401.748,185208123495.146,71848542675.5916,149054487640.829,124785429204.8,92283833247.2583,81779062375.7705,74186507345.4983,90063923226.6159,104447488316.605,109021556569.616
-Liechtenstein,LIE,"Population, total",SP.POP.TOTL,33184,33552,33879,34175,34452,34713,34970,35217,35471,35727,35994,36293,36615,36934,37223,37470,37658,37800,37910,38019
-Liechtenstein,LIE,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
-Lithuania,LTU,"Population, total",SP.POP.TOTL,3499536,3470818,3443067,3415213,3377075,3322528,3269909,3231294,3198231,3162916,3097282,3028115,2987773,2957689,2932367,2904910,2868231,2828403,2801543,2786844
-Lithuania,LTU,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,29073456226.9132,32362510660.0322,35750858862.3134,40193556163.8145,43151663312.5329,47618000652.6305,52865536898.9319,59375969176.707,64082336397.9652,58509746215.4088,61707606732.2113,67086687879.9077,71326873608.2146,77165315430.1258,81588368630.5696,80707965908.1476,85447564215.7165,92095203351.2039,97160699030.8492,103153905292.877
-Luxembourg,LUX,"Population, total",SP.POP.TOTL,436300,441525,446175,451630,458095,465158,472637,479993,488650,497783,506953,518347,530946,543360,556319,569604,582014,596336,607950,619896
-Luxembourg,LUX,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,21402834237.7511,22205396698.8394,22170831121.5512,22111143439.9495,26868080040.165,29304952011.0148,29984532326.2853,34891089859.2331,34990188934.9977,27761239146.6041,31327971287.1073,32928110626.5723,33825803107.6655,34690043272.6355,37434314552.7056,38500383076.5302,41001079837.5551,43381072945.2113,45229329379.7453,48082741436.7121
-"Macao SAR, China",MAC,"Population, total",SP.POP.TOTL,427782,437938,448821,460165,471597,482858,493799,504511,515239,526400,538219,550832,564039,577372,590208,602085,612836,622585,631636,640445
-"Macao SAR, China",MAC,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,13706107536.5062,15627085786.6657,17267184835.5279,19329615484.4758,24278902454.7137,26760633799.454,29988063964.298,39046721018.6114,36971369691.5926,38224456299.8988,47597861283.4551,57350950643.267,64100909366.4591,74713533743.9956,77917473234.3904,64809126006.3126,65773504327.3786,72268933052.8813,77872092849.4063,..
-Madagascar,MDG,"Population, total",SP.POP.TOTL,15766806,16260932,16765117,17279141,17802997,18336724,18880269,19433530,19996473,20569117,21151640,21743967,22346641,22961253,23589887,24234088,24894380,25570540,26262368,26969307
-Madagascar,MDG,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,20000324221.3427,21719978128.7289,19333172594.0745,21648258647.6888,23466060029.0376,25169793768.2069,27272882274.5452,30029763756.3776,32703464533.5358,31515710894.3531,31981783671.9735,33215344356.2567,33270003412.2222,34214331592.4778,35835765900.7156,36248277778.3637,38589859315.1109,39408585195.5646,42114816931.3737,44744349303.4543
-Malawi,MWI,"Population, total",SP.POP.TOTL,11148758,11432000,11713664,12000181,12301838,12625952,12973699,13341806,13727890,14128155,14539612,14962112,15396005,15839269,16289540,16745303,17205289,17670260,18143315,18628747
-Malawi,MWI,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,7468702620.06217,7261461674.75702,7517169630.58197,8091700822.89291,8757644017.49567,9347339330.45314,10097467130.9573,11418403655.3996,12536347425.6092,13610993240.9149,14625812055.4388,15674391716.7311,15561165076.6142,17042708429.6565,17109325958.1925,16473997716.5332,17560554548.0402,17887349679.4659,18899964803.5179,20072440824.3269
-Malaysia,MYS,"Population, total",SP.POP.TOTL,23194257,23709119,24208391,24698819,25190652,25690611,26201961,26720370,27236006,27735040,28208035,28650955,29068159,29468872,29866559,30270962,30684804,31105028,31528585,31949777
-Malaysia,MYS,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,275216955851.54,285306500876.983,307840083267.587,335817083278.505,369162507040.03,404099396996.24,446508519665.673,491378118390.59,520367694890.533,521709642166.794,560108318399.07,607129184341.237,643498757192.916,668794343781.363,710620293507.506,730292560312.552,762175793250.096,805535724414.304,857003074416.584,916167930850.023
-Maldives,MDV,"Population, total",SP.POP.TOTL,279398,286306,294186,302683,311265,319608,327487,335169,343452,353398,365734,380495,397237,415593,435015,454915,475513,496402,515696,530953
-Maldives,MDV,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,2253180771.23407,2257030705.29697,2466212611.27598,2830947399.42371,3101821749.0097,2781537609.64207,3616677052.30743,3489661777.15557,4014499658.82216,3817992392.22995,4090164279.80897,4606288827.99661,4925577794.19348,5462304304.18157,6289083101.74374,7011178133.5159,7611970620.07724,8222612688.896,8867339111.63474,9491560182.08956
-Mali,MLI,"Population, total",SP.POP.TOTL,10946445,11271600,11616887,11982695,12369070,12775516,13203378,13651464,14113577,14581429,15049353,15514591,15979499,16449864,16934220,17438778,17965429,18512394,19077690,19658031
-Mali,MLI,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,12292742587.3803,13941544624.6624,14389781143.677,16466831473.1814,17184734582.9409,18883602839.9178,20273266451.7546,21559100729.8093,23141943944.9032,24091169427.4465,25839494612.5296,27331464772.5263,27142665899.9272,28848666641.2997,31565335369.9749,34647080536.5333,38259683413.4737,40265008470.82,43400282213.7382,46409879473.0827
-Malta,MLT,"Population, total",SP.POP.TOTL,390087,393028,395969,398582,401268,403834,405308,406724,409379,412477,414508,416268,420028,425967,434558,445053,455356,467999,484630,502653
-Malta,MLT,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,7418506646.99118,7781794445.5462,8182922609.86114,8300895889.19964,8567771015.99112,8691958769.47538,9070977858.96685,9805802592.27267,10452841112.9785,10054235517.1331,10930839608.3118,11519839400.3933,11856532171.4899,12659130736.1534,13946172710.9629,15205171356.2142,16149880438.2282,17705167517.0901,19337863104.5485,20956607516.0043
-Marshall Islands,MHL,"Population, total",SP.POP.TOTL,50753,51422,52370,53456,54476,55258,55767,56051,56174,56250,56366,56531,56717,56938,57179,57439,57735,58058,58413,58791
-Marshall Islands,MHL,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,165195612.572103,178858139.279194,183887750.523852,185037714.030403,192632495.991304,205190881.691055,208725029.405694,220098824.178841,208418571.232958,212534146.256352,223890702.074199,225123576.183362,214374318.110595,232239330.227536,245267634.124603,271674728.831819,271055072.124151,282007133.915327,297369192.405849,..
-Mauritania,MRT,"Population, total",SP.POP.TOTL,2630219,2702400,2778099,2857148,2939247,3024194,3111906,3202517,3296238,3393409,3494195,3598648,3706554,3817494,3930896,4046301,4163534,4282574,4403319,4525696
-Mauritania,MRT,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,8062494581.35486,7954577709.2746,8621231271.65362,9358823794.11214,10061624427.466,11199079617.1087,13089954032.4626,13245639969.6864,13593241977.7643,13929125581.5186,14118200542.0269,14841521503.2747,15331799325.0023,16624623434.4163,16238197197.5205,16498775890.9074,19213092379.4616,21432474968.9306,22603330085.99,24201598237.4835
-Mauritius,MUS,"Population, total",SP.POP.TOTL,1186873,1196287,1204621,1213370,1221003,1228254,1233996,1239630,1244121,1247429,1250400,1252404,1255882,1258653,1260934,1262605,1263473,1264613,1265303,1265711
-Mauritius,MUS,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,10676157583.7624,11349047487.8424,11712469983.9639,12537796070.2914,13473040517.5956,14152520099.7114,15421530885.5241,17078312574.2382,18164830360.8768,18696525733.535,19451212765.7378,20460710909.864,22061568419.1301,24215842266.8622,25119627939.9348,26339259783.019,28287860057.6668,29764244947.5412,31591720797.2744,33423662610.0243
-Mexico,MEX,"Population, total",SP.POP.TOTL,98899845,100298153,101684758,103081020,104514932,106005203,107560153,109170502,110815271,112463887,114092963,115695473,117274155,118827161,120355128,121858258,123333376,124777324,126190788,127575529
-Mexico,MEX,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,1073235252932.68,1095604356342.78,1117965544638.39,1162592493945.24,1244336432872.96,1313762682229.57,1462385582249.25,1533815706563.18,1630569413184.12,1609779367702.41,1720422018790.8,1880967839882.46,1973881601912.17,2004429620594.39,2121554563909.11,2173135864192.38,2319313166992.63,2408228099476.71,2507773305576.86,2526976501908.53
-"Micronesia, Fed. Sts.",FSM,"Population, total",SP.POP.TOTL,107402,107173,107030,106901,106625,106129,105371,104444,103543,102975,102911,103450,104506,105926,107446,108895,110215,111459,112640,113815
-"Micronesia, Fed. Sts.",FSM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,274330744.626663,284999418.801453,290109959.616858,299484123.110739,301947436.818278,319226676.36372,328724559.481847,333493224.758921,327679791.649598,343956873.213831,348030813.436505,364901630.785689,370710582.107805,374936332.76615,372922660.936786,433804248.940122,433988685.906055,442919835.259949,410132530.440214,..
-Moldova,MDA,"Population, total",SP.POP.TOTL,2923783,2917252,2910504,2902320,2895147,2888111,2880095,2873429,2867964,2864346,2861487,2859833,2859458,2858692,2856950,2834530,2802170,2755158,2706049,2657637
-Moldova,MDA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,9167195706.78059,10408612000.934,11713688802.0024,12978142527.6396,14581781329.8495,16164636204.0076,17155634623.328,17763757379.5845,19615837382.5472,17892763278.7317,19629333604.2239,21128784190.6961,23013074857.4494,26216545799.9271,27399046984.958,27755535456.2499,31375154264.0507,33952683757.4524,35940478464.6157,..
-Monaco,MCO,"Population, total",SP.POP.TOTL,32147,32470,32806,33153,33500,33843,34190,34525,34872,35226,35612,36024,36460,36901,37322,37718,38070,38392,38682,38964
-Monaco,MCO,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
-Mongolia,MNG,"Population, total",SP.POP.TOTL,2397418,2419588,2443271,2468762,2496391,2526424,2558856,2593820,2631898,2673796,2719896,2770362,2824699,2881792,2940108,2998439,3056359,3113779,3170208,3225167
-Mongolia,MNG,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,8899686949.80145,9391553610.59174,9975244443.39951,10828717692.8553,12322368250.5191,13422679811.4135,15135132305.2825,16951614932.9388,18668342461.7305,18345008310.043,18957879258.1345,22657114467.4965,26658538159.65,28685437151.1049,29864062852.7761,29636387676.1811,30129523615.8258,30263180633.1592,34703168653.3306,36685712934.8347
-Montenegro,MNE,"Population, total",SP.POP.TOTL,604950,607389,609828,612267,613353,614261,615025,615875,616969,618294,619428,620079,620601,621207,621810,622159,622303,622373,622227,622137
-Montenegro,MNE,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,3815820961.53465,4319638788.8936,4572037360.65309,4751054728.33324,5053944157.5054,5163071370.90954,6531914408.90913,7754226149.23701,8651061175.76346,8073045361.63993,8396291053.15587,9043804769.49049,8750795311.96759,9418324721.96317,9681732511.98603,10387848814.9118,11349484804.517,12469071660.1303,13368506304.4132,14351582083.5051
-Morocco,MAR,"Population, total",SP.POP.TOTL,28793679,29126330,29454768,29782884,30115214,30455561,30804683,31163673,31536811,31929087,32343389,32781850,33241898,33715693,34192347,34663603,35126296,35581294,36029138,36471769
-Morocco,MAR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,102139393685.103,112143605945.752,117850272775.3,127470176032.388,137696016577.266,147428033609.745,163209815787.65,173852230262.43,188005555834.369,195167799335.246,204980497057.706,219548856240.118,221558465714.716,233442913596.092,224028206132.59,242479228111.022,248808416563.671,259109842934.255,272757048440.112,284421831344.95
-Mozambique,MOZ,"Population, total",SP.POP.TOTL,17711927,18221888,18764155,19331100,19910552,20493925,21080110,21673316,22276596,22894710,23531574,24187487,24862648,25560725,26286163,27042002,27829942,28649007,29495962,30366036
-Mozambique,MOZ,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,8177278563.09204,9291411717.77773,9617646908.39962,11422907502.7249,12491543387.1564,13695474387.5857,15041398362.5616,16864703666.6215,18557527238.3764,20461548618.2714,21874221272.845,24418498649.582,25627038662.8078,27637299640.6561,29600102418.1981,34268684504.4287,37128572437.6555,35680284784.8543,38152005615.3217,39514921646.4828
-Myanmar,MMR,"Population, total",SP.POP.TOTL,46719701,47225120,47702171,48148902,48564484,48949924,49301050,49621475,49929642,50250367,50600818,50990615,51413698,51852451,52280807,52680726,53045226,53382581,53708395,54045420
-Myanmar,MMR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,42998704281.2578,48895682639.9269,55658008629.222,64546445659.4268,75283770159.7116,88147560822.8466,102711602963.393,118133238390.898,132774469874.273,147912395072.948,164058393039.433,176855931603.602,184010746021.877,201685064985.604,213072891301.063,225644892096.516,231990221765.927,245826346688.426,266686901622.871,278799517936.018
-Namibia,NAM,"Population, total",SP.POP.TOTL,1794571,1823672,1851523,1879117,1907745,1938320,1971317,2006514,2043394,2081044,2118874,2156701,2194784,2233510,2273430,2314904,2358041,2402603,2448255,2494530
-Namibia,NAM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,9461417729.10618,9704517286.30121,10497547733.6128,11532212592.3895,12799913294.0378,13158659131.6424,14629437172.4061,15355658838.1761,16106047718.351,16234948337.9654,17069770941.2428,18530827058.6351,19680724579.4145,21629943604.1853,23507845287.3846,24438808197.0287,23975062172.4607,23704551385.4182,24124209500.1929,24332228767.2588
-Nauru,NRU,"Population, total",SP.POP.TOTL,10337,10215,10102,9994,9902,9849,9828,9842,9891,9939,10005,10057,10279,10821,11853,12475,13049,12876,12704,12581
-Nauru,NRU,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,48522152.1314013,54333382.4566256,62796220.0520194,72021093.9621256,82081790.6299373,92329590.9487578,126031537.580759,158718129.621484,186738281.898791,194764542.336288,192543303.233466,200349004.70439,223877727.761513
-Nepal,NPL,"Population, total",SP.POP.TOTL,23941110,24347106,24725627,25080872,25419344,25744500,26066693,26382581,26666576,26883535,27013212,27041437,26989862,26917906,26906926,27015031,27261131,27627124,28087871,28608710
-Nepal,NPL,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,28462645242.8133,30497155115.9188,30857012519.5828,32668135049.4057,35056496303.3967,37628037997.5669,40262954104.2367,42866801599.5967,46346893790.9807,48920897553.2459,51657022296.6501,54425821378.1911,59206619399.8804,63735009673.0611,70944811652.5188,72284863170.6641,71476639814.489,86617232592.1683,94213081915.6352,102978116883.077
-Netherlands,NLD,"Population, total",SP.POP.TOTL,15925513,16046180,16148929,16225302,16281779,16319868,16346101,16381696,16445593,16530388,16615394,16693074,16754962,16804432,16865008,16939923,17030314,17131296,17231624,17332850
-Netherlands,NLD,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,516852632560.376,530138233974.21,554795790258.896,559371407910.287,585814485091.078,605553877381.32,674800594293.726,718720604254.588,741916192385.952,730026618589.592,751121005301.854,788764031504.728,805602323121.561,838682680044.001,828263670286.029,852766433552.616,877231222533.962,955329960975.533,1001782586018.43,1038101146971.03
-New Caledonia,NCL,"Population, total",SP.POP.TOTL,213230,217324,221490,225296,228750,232250,235750,239250,242750,245950,249750,254350,259000,263650,268050,272400,276550,280350,284060,287800
-New Caledonia,NCL,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
-New Zealand,NZL,"Population, total",SP.POP.TOTL,3857700,3880500,3948500,4027200,4087500,4133900,4184600,4223800,4259800,4302600,4350700,4384000,4408100,4442100,4509700,4595700,4693200,4793900,4841000,4917000
-New Zealand,NZL,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,78297997495.1371,82895606558.8895,87389067382.274,91938827508.2597,96743282770.2947,99289747947.8827,108365512926.595,115278120752.581,117980470098.457,126670076884.423,129222027987.92,137009721215.547,139353582322.271,154545145745.547,161245340209.477,166416913074.36,181297312894.525,188551971011.741,196320021186.878,209984738791.131
-Nicaragua,NIC,"Population, total",SP.POP.TOTL,5069302,5145366,5219328,5292118,5364935,5438690,5513763,5590055,5667432,5745526,5824065,5903039,5982526,6062454,6142733,6223240,6303974,6384855,6465513,6545502
-Nicaragua,NIC,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,13551689562.5361,14175391303.2217,14595236258.185,15275517390.3171,16590298964.1512,18013422032.0332,19166977602.7244,20799600129.2365,21938409049.3694,21273341014.7148,22524861033.4143,24463198980.6977,25699434373.9683,27117096696.4901,29554114307.5316,32052201357.1565,34930273712.1284,37321575970.9361,36795945821.0625,35912875866.6251
-Niger,NER,"Population, total",SP.POP.TOTL,11331557,11751365,12189983,12647984,13125916,13624467,14143971,14685399,15250908,15843133,16464025,17114761,17795191,18504255,19240157,20001663,20788838,21602472,22442948,23310715
-Niger,NER,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,8714860645.95476,9552399306.82228,10138387467.8598,10594090476.5142,10964936351.8009,12128424678.4221,13255769670.171,14029535704.455,15375100180.8419,15746564890.2164,17256415648.2066,18029695404.0462,20177762093.9889,20344757760.6248,21572931440.3123,22505341600.1021,23343586015.5258,24686639908.752,27072874800.407,29152889262.2637
-Nigeria,NGA,"Population, total",SP.POP.TOTL,122283850,125394046,128596076,131900631,135320422,138865016,142538308,146339977,150269623,154324933,158503197,162805071,167228767,171765769,176404902,181137448,185960289,190873311,195874740,200963599
-Nigeria,NGA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,255167279361.791,287090811451.007,333028660553.987,360317164880.447,404128100283.132,441651874500.752,514815673971.723,548857256333.924,596032621496.002,645180793759.501,705437181551.46,756939368351.467,793230176344.865,853026950842.773,939073115447.917,957051778143.622,952515802712.001,960398587580.009,985893533546.953,1039633150748.45
-North Macedonia,MKD,"Population, total",SP.POP.TOTL,2034819,2042842,2048928,2053426,2057048,2060273,2063131,2065426,2067313,2069039,2070741,2072487,2074278,2076067,2077775,2079328,2080745,2081996,2082958,2083459
-North Macedonia,MKD,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,12238988709.6306,12225602597.4537,12773034002.9162,13191014714.2916,14473791893.2768,15708331655.17,17637727880.3566,18197783997.2061,21276861035.5934,22438920029.9913,23036881953.5352,23634727508.5267,24027034149.675,25647250304.1644,27256380190.9792,27852753382.988,29935058684.5946,31050642917.5775,32956753946.2663,35649539595.7626
-Northern Mariana Islands,MNP,"Population, total",SP.POP.TOTL,57453,58321,58420,57947,57246,56542,55882,55219,54625,54193,53971,54012,54311,54784,55305,55780,56188,56562,56882,57216
-Northern Mariana Islands,MNP,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
-Norway,NOR,"Population, total",SP.POP.TOTL,4490967,4513751,4538159,4564855,4591910,4623291,4660677,4709153,4768212,4828726,4889252,4953088,5018573,5079623,5137232,5188607,5234519,5276968,5311916,5347896
-Norway,NOR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,163809179058.287,170711385468.446,172786645952.789,176976439531.853,195462041977.103,223283670197.81,252184206505.928,262393276835.26,293138235484.347,269379259626.725,286645665285.929,310701643205.307,331152578513.979,344244308199.849,349842613934.341,327034783599.997,323725133589.202,346868275225.434,374631286747.306,372280312640
-Oman,OMN,"Population, total",SP.POP.TOTL,2267973,2294962,2334858,2386166,2445517,2511251,2580758,2657158,2750963,2876186,3041434,3251108,3498029,3764805,4027260,4267348,4479219,4665935,4829483,4974986
-Oman,OMN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,79235959658.9843,84792834710.2019,83788314286.2636,85062122358.5598,89353502794.7445,92634966923.2222,93601614783.524,109511564811.834,118168477362.654,124411096039.846,135387404024.282,132708609162.248,146975065405.124,152666415184.438,147843100201.919,130046463464.616,125897322209.259,130111645478.941,131938237838.467,142211422700.939
-Pakistan,PAK,"Population, total",SP.POP.TOTL,142343578,145978402,149549700,153093373,156664697,160304008,164022627,167808105,171648986,175525609,179424641,183340592,187281475,191262919,195306825,199426964,203627284,207896686,212215030,216565318
-Pakistan,PAK,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,369404406240.034,390735821486.68,413800532806.37,456384783128.01,499973931899.76,548501914890.354,597908005939.994,642892692086.748,668239001725.966,696878190114.575,724599627456.603,765039210300.823,791513506615.346,825590569865.228,874802211343.66,925319864050.729,953080148747.716,1002293170997.4,1084494813277.11,1129050343318.84
-Palau,PLW,"Population, total",SP.POP.TOTL,19105,19386,19637,19809,19867,19781,19540,19158,18704,18285,17955,17745,17640,17606,17626,17665,17725,17808,17907,18008
-Palau,PLW,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,211174302.999241,231341383.494551,243185969.15795,234267703.220008,248076627.110369,277293585.650191,280418827.087255,297040146.220095,281668462.888573,261976812.537098,264596331.229319,284241777.903655,291833954.423022,288531087.6412,304879733.34836,343944205.490429,348201991.112564,334258725.644689,349137795.900517,..
-Panama,PAN,"Population, total",SP.POP.TOTL,3030328,3089648,3149188,3209048,3269356,3330217,3391666,3453675,3516204,3579215,3642687,3706483,3770624,3835437,3901315,3968487,4037078,4106771,4176873,4246439
-Panama,PAN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,24364003728.1015,24908792800.3642,26735195721.2458,27517726690.2089,29907517284.4004,32560340306.6999,36430564546.1268,42470623777.3447,47512762926.5939,48805783548.6948,50865949437.0556,59266837875.6713,65663109755.6884,74726193766.6597,81538689297.7009,94068749851.9453,104322439879.142,117512813377.254,122715775285.123,129953036259.725
-Papua New Guinea,PNG,"Population, total",SP.POP.TOTL,5847586,5974629,6098621,6223377,6354245,6494903,6646895,6808514,6976201,7144776,7310507,7472200,7631002,7788379,7946731,8107775,8271760,8438029,8606316,8776109
-Papua New Guinea,PNG,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,11689909083.4728,11782139184.0131,11994999914.5765,12150356962.7707,13004301436.2799,14494469656.1726,14951336412.6804,16961711049.4465,17553793000.7478,18537466557.8058,20624546301.5549,20754466387.4553,23205469528.6527,23757281549.9278,29386596489.9702,32487579217.8286,34430674713.5218,36008809638.6283,36332291730.6946,39228382939.1454
-Paraguay,PRY,"Population, total",SP.POP.TOTL,5323201,5428444,5531962,5632983,5730549,5824096,5913209,5998427,6081296,6163972,6248020,6333976,6421512,6510276,6599526,6688746,6777872,6867062,6956071,7044636
-Paraguay,PRY,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,30966339106.0611,31994514394.7487,33425791560.7727,32955404968.9342,35879600552.2512,38014665154.8201,42442719141.0924,48119399684.98,52810030726.6891,52893580251.9813,59469808606.6031,64133125073.6599,61591935539.7893,69297872980.2731,72664615483.7895,73852324239.6658,78266222662.4423,83809237145.5088,88410573254.3939,89650321681.415
-Peru,PER,"Population, total",SP.POP.TOTL,26459944,26799285,27100968,27372226,27624213,27866145,28102056,28333052,28562317,28792655,29027674,29264318,29506788,29773987,30090359,30470734,30926032,31444297,31989256,32510453
-Peru,PER,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,130452271472.573,134975718985.549,143784908887.532,151002976641.214,159597818097.476,172777044632.864,187599814291.07,209846929295.68,235569614896.216,241692558655.719,261705337880.59,283964927266.9,297710295468.343,318997109857.16,330667402340.409,340543090251.254,356119980475.884,375165985596.124,397984077099.888,414709560947.683
-Philippines,PHL,"Population, total",SP.POP.TOTL,77991755,79672873,81365258,83051971,84710542,86326250,87888675,89405482,90901965,92414158,93966780,95570047,97212638,98871552,100513138,102113212,103663927,105173264,106651922,108116615
-Philippines,PHL,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,293546466765.911,309550000698.454,326006799824.386,348562292415.459,381170730382.479,414099437803.561,447011843666.261,487974807198.051,520920551839.16,543111526839.69,588000732556.72,621050497570.767,679680535110.927,730910824409.234,780292861533.854,817730803198.514,887291422586.415,948319217869.441,1028799416150.81,1102793818348.89
-Poland,POL,"Population, total",SP.POP.TOTL,38258629,38248076,38230364,38204570,38182222,38165445,38141267,38120560,38125759,38151603,38042794,38063255,38063164,38040196,38011735,37986412,37970087,37974826,37974750,37970874
-Poland,POL,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,405928263952.82,423264851972.431,447988845729.653,462987927844.742,493324802124.358,521485118561.573,565480839451.024,620520684705.345,684955242060.901,714162622184.593,775270582482.123,841563674071.179,878904423194.261,912005652523.057,940604094068.281,985374945527.231,1029371304856.61,1098727031189.92,1159006118404.7,1242060092704.4
-Portugal,PRT,"Population, total",SP.POP.TOTL,10289898,10362722,10419631,10458821,10483861,10503330,10522288,10542964,10558177,10568247,10573100,10557560,10514844,10457295,10401062,10358076,10325452,10300300,10283822,10269417
-Portugal,PRT,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,191162333476.579,198946163123.708,208897263871.468,215655339291.813,222139978722.147,235520718575.134,252037472169.304,263235461915.183,272098077805.794,270543878824.239,279258685479.183,278041334782.043,271411027125.957,288230115471.542,292835641286.096,299068874296.756,318403967634.571,332797030443.435,344450702228.985,365570407715.063
-Puerto Rico,PRI,"Population, total",SP.POP.TOTL,3810605,3818774,3823701,3826095,3826878,3821362,3805214,3782995,3760866,3740410,3721525,3678732,3634488,3593077,3534874,3473232,3406672,3325286,3193354,3193694
-Puerto Rico,PRI,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,58733761399.7069,60499957634.4599,61323055387.3295,63015448424.3178,71561555530.5919,73282972901.7744,75473206025.0908,78275161095.6972,77428186151.7523,75399861663.9094,75213919309.895,76671237933.7386,79385642494.7194,80211595023.5961,79957879558.6487,79546562680.8065,78484982368.6929,76274336611.4748,74901136510.2749,77400156028.063
-Qatar,QAT,"Population, total",SP.POP.TOTL,592468,615012,640868,681788,753334,865416,1022711,1218434,1436665,1654950,1856327,2035871,2196074,2336574,2459198,2565710,2654374,2724724,2781677,2832067
-Qatar,QAT,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,52844271826.9036,58463640090.606,63242264101.0028,68819473320.729,79713467127.8268,82868542815.173,116922772698.625,141763238425.186,169063300616.692,183106008515.175,219766713179.047,261273859967.584,290855609268.645,306141143057.52,303091258041.229,233271012036.937,218972340599.152,258357181046.802,263812622499.6,266700904932.535
-Romania,ROU,"Population, total",SP.POP.TOTL,22442971,22131970,21730496,21574326,21451748,21319685,21193760,20882982,20537875,20367487,20246871,20147528,20058035,19983693,19908979,19815616,19702267,19587290,19472545,19356544
-Romania,ROU,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,130472172572.504,143525926780.149,154082024275.708,159114026184.779,184591713992.08,198702374392.595,236462450561.554,276553017265.441,337097295551.8,334769233393.309,339699138901.25,356201879783.7,373165708242.957,389853277154.31,408658360571.476,424138786650.093,469815748811.334,525047398922.873,558400088938.719,616613186039.27
-Russian Federation,RUS,"Population, total",SP.POP.TOTL,146596869,145976482,145306497,144648618,144067316,143518814,143049637,142805114,142742366,142785349,142849468,142960908,143201721,143506995,143819666,144096870,144342396,144496740,144477860,144373535
-Russian Federation,RUS,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,974627421657.533,1059732182384.88,1145642785078.87,1297686739857.67,1441505486256.06,1655585780417.93,2071121544039.89,2324720237537.22,2797648415289.07,2678612196782.56,2836588557941.65,3163098238397.45,3373670140327.24,3611852783384.38,3639329873431.79,3428605724107.56,3440199770765.34,3716761165251.31,4117644726224.44,4147418036811.93
-Rwanda,RWA,"Population, total",SP.POP.TOTL,7933681,8231156,8427060,8557161,8680524,8840215,9043337,9273757,9524534,9782770,10039338,10293331,10549678,10811543,11083635,11369071,11668818,11980937,12301939,12626950
-Rwanda,RWA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,4984792289.7506,5500814446.43183,6338268240.37365,6563522975.55199,7246003555.12871,8218101871.06816,9266024423.53704,10286566958.1852,11627479925.1191,12451755242.7965,13514588518.7971,14874456674.8466,15585133904.4704,16472104845.2448,18592434064.2187,20138529720.0947,21541809782.4229,22875986390.5019,25446588408.2789,28336853127.1914
-Samoa,WSM,"Population, total",SP.POP.TOTL,174454,175392,176407,177484,178590,179727,180876,182046,183263,184556,185949,187469,189088,190717,192221,193513,194535,195352,196130,197097
-Samoa,WSM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,656129200.01375,696240495.485358,751718146.21322,801018193.39023,846404986.284917,928759783.297955,955315073.519703,929986181.882017,966999334.423705,1020029218.05116,999743394.357344,1012610226.03282,1028640510.18319,1105495733.50317,1204016754.89651,1228314510.95016,1224208932.24003,1279066000.93285
-San Marino,SMR,"Population, total",SP.POP.TOTL,27462,27812,28175,28562,28940,29324,29700,30063,30434,30816,31229,31661,32105,32553,32948,33272,33504,33671,33785,33860
-San Marino,SMR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
-Sao Tome and Principe,STP,"Population, total",SP.POP.TOTL,142262,144755,147447,150415,153737,157472,161681,166300,171120,175876,180371,184524,188404,192087,195727,199432,203227,207089,211028,215056
-Sao Tome and Principe,STP,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,255566703.745449,266396208.879123,293566638.415525,312266708.951805,346807903.39736,406883199.131625,435108912.704917,465728182.537504,480121037.051648,520459226.461073,554945829.681376,546308664.914749,642962268.2136,759370095.927575,762889548.330079,792597147.710333,808509263.027399,857082098.90257,879111457.332912
-Saudi Arabia,SAU,"Population, total",SP.POP.TOTL,20663843,21202642,21805313,22456649,23132682,23816183,24498310,25184597,25888541,26630303,27421461,28267685,29155187,30052518,30916994,31717667,32442572,33099147,33699947,34268528
-Saudi Arabia,SAU,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,828007290113.436,840020779517.361,826977992567.345,933840294734.223,1038617818410.17,1132480997433.1,1201557784745.03,1263098264835.91,1371180088329.22,1356509577662.19,1431867717296.31,1609641504262.52,1697441893442.77,1710674757214.71,1760505609319.99,1582553691883.64,1511656088328.92,1590219406270.97,1656706098593.48,1692868359986.68
-Senegal,SEN,"Population, total",SP.POP.TOTL,9797734,10036104,10283699,10541467,10810083,11090116,11382268,11687080,12004701,12335084,12678148,13033809,13401991,13782420,14174731,14578459,14993528,15419381,15854360,16296364
-Senegal,SEN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,18178582368.0147,19481388776.3261,19869524048.5466,21683767086.4729,23621693059.632,25746288414.5148,27254286825.51,29373991072.7734,31233432098.6014,31884539097.273,33445704638.302,34415226315.3097,36427222864.5151,37245933448.3051,39358815590.1772,42363282419.3143,44911708617.1489,48020557391.9318,52402629738.2478,56113568116.7654
-Serbia,SRB,"Population, total",SP.POP.TOTL,7516346,7503433,7496522,7480591,7463157,7440769,7411569,7381579,7350222,7320807,7291436,7234099,7199077,7164132,7130576,7095383,7058322,7020858,6982604,6944975
-Serbia,SRB,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,45257309352.7367,48680377685.7187,53939449146.4194,56788712102.6038,62763575041.0969,67522226305.9422,74612237515.9374,81280923359.4795,90437964699.0743,90424045371.6504,91388968100.1562,97317586786.9039,97051558828.03,100740901038.093,100572891480.162,100962636045.149,104942550019.958,108471457604.254,116392549752.424,124763538712.68
-Seychelles,SYC,"Population, total",SP.POP.TOTL,81131,81202,83723,82781,82475,82858,84600,85033,86956,87298,89770,87441,88303,89949,91359,93419,94677,95843,96762,97625
-Seychelles,SYC,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,1098286181.45465,1123976238.77417,1072994332.88678,1070267506.04422,1149808132.7252,1291667524.3807,1455225335.13926,1520789181.16357,1496927786.61198,1517612379.40579,1646832585.13231,1704881468.35025,1796647364.37891,1907297426.10617,2048795965.28169,2112360163.7696,2245383379.7948,2417588949.83326,2642281618.23683,2860121340.79797
-Sierra Leone,SLE,"Population, total",SP.POP.TOTL,4584571,4754072,4965766,5201070,5433991,5645624,5829237,5989633,6133603,6272734,6415634,6563240,6712581,6863980,7017144,7171914,7328838,7488431,7650154,7813215
-Sierra Leone,SLE,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,3078355090.61565,2965062693.69484,3811355840.48297,4263196038.6237,4654050423.97535,5010794994.08064,5398188175.35187,6410544320.37155,7077507452.6414,7414307697.09276,7356159783.30807,7786542195.82346,9738223472.1891,11922760797.3981,12246518774.9448,11226733103.7828,10434653657.3075,11938865734.8629,12110858455.1451,13013830059.0806
-Singapore,SGP,"Population, total",SP.POP.TOTL,4027887,4138012,4175950,4114826,4166664,4265762,4401365,4588599,4839396,4987573,5076732,5183688,5312437,5399162,5469724,5535002,5607283,5612253,5638676,5703569
-Singapore,SGP,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,175475990155.213,177305489495.705,184670988377.651,195292440542.546,212571173695.197,236301952480.521,273662417679.57,306624365777.701,315001406844.762,312810004079.337,378119206245.336,400707778808.442,416578549823.047,424002358121.386,445708256666.976,448557736908.24,469524071593.093,492395261470.978,509997637667.539,524841789129.782
-Sint Maarten (Dutch part),SXM,"Population, total",SP.POP.TOTL,30519,30600,30777,31472,32488,33011,33441,33811,33964,34238,34056,33435,34640,36607,37685,38825,39969,40574,40654,40733
-Sint Maarten (Dutch part),SXM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,1076306314.50851,1122314269.16244,1198407915.49339,1102057764.20802,1162505139.99796,1190232152.72171,1202403006.88066,1249433536.30347,1271575989.66521,..,..
-Slovak Republic,SVK,"Population, total",SP.POP.TOTL,5388720,5378867,5376912,5373374,5372280,5372807,5373054,5374622,5379233,5386406,5391428,5398384,5407579,5413393,5418649,5423801,5430798,5439232,5446771,5454073
-Slovak Republic,SVK,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,61083993049.9732,66695266134.4753,71403065665.9981,72449990182.4595,78596910447.9461,87124402574.7501,98687707671.112,110791194181.167,125448397000.54,123782220565.48,132884290981.565,135779454075.477,143192037531.068,150266637346.169,155347191663.989,158380009238.59,156843605003.527,164629105049.078,174577152157.9,183677613789.773
-Slovenia,SVN,"Population, total",SP.POP.TOTL,1988925,1992060,1994530,1995733,1997012,2000474,2006868,2018122,2021316,2039669,2048583,2052843,2057159,2059953,2061980,2063531,2065042,2066388,2073894,2087946
-Slovenia,SVN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,35729557107.8743,37731226284.5409,40019698741.2693,41640522811.3764,44778206419.9901,47268194743.7862,50908423708.2664,54304531861.8556,58273321247.2921,55289538407.1433,56288187891.8793,58585332628.1712,58814142549.4361,60918129358.2224,63069203941.5599,63269913868.7162,68163693508.2576,74364570119.803,79094983841.5059,83673941284.5428
-Solomon Islands,SLB,"Population, total",SP.POP.TOTL,412660,423944,435432,447017,458539,469918,481078,492132,503360,515181,527861,541521,556064,571335,587079,603118,619437,636038,652858,669823
-Solomon Islands,SLB,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,597042746.99174,564444388.911496,550780216.702815,599190432.338696,653597529.487548,706272886.359672,782325081.078124,793884373.867199,788273467.581486,648372862.966105,705271651.226785,806095347.634749,1043039428.16338,1162171508.2969,1220489346.74271,1309260656.27858,1331857667.45131,1415196530.19378,1511697179.24996,1571505892.80681
-Somalia,SOM,"Population, total",SP.POP.TOTL,8872254,9186725,9501342,9815412,10130243,10446863,10763905,11080121,11397188,11717692,12043883,12376302,12715510,13063706,13423576,13797201,14185613,14589119,15008154,15442905
-Somalia,SOM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
-South Africa,ZAF,"Population, total",SP.POP.TOTL,44967708,45571274,46150913,46719196,47291610,47880601,48489459,49119759,49779471,50477011,51216964,52004172,52834005,53689236,54545991,55386367,56203654,57000451,57779622,58558270
-South Africa,ZAF,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,338847762431.791,352904893533.235,374285459134.666,391615137940.236,423687771963.7,459794907520.686,500389947330.619,533806362211.562,562391385126.517,563023437602.228,587540655891.057,616821696796.998,619739350156.296,650936442976.243,664730482950.131,677999059197.49,688184240521.716,702384466248.083,723410417860.139,739743880215.4
-South Sudan,SSD,"Population, total",SP.POP.TOTL,6199394,6447793,6688226,6935676,7213351,7535932,7907406,8315139,8736939,9142259,9508364,9830698,10113647,10355036,10554883,10715658,10832512,10910759,10975920,11062113
-South Sudan,SSD,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,16038626934.766,14790639635.8154,20542512085.5034,13514791883.5209,..,..,..,..,..
-Spain,ESP,"Population, total",SP.POP.TOTL,40567864,40850412,41431558,42187645,42921895,43653155,44397319,45226803,45954106,46362946,46576897,46742697,46773055,46620045,46480882,46444832,46484062,46593236,46797754,47076781
-Spain,ESP,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,869690668123.322,924904237114.657,998316071948.184,1046820524829.82,1110664109889.25,1188490567999.29,1337056206794.54,1430968449422.51,1486151637639.11,1460812824691.15,1455146268303.33,1463308449873.9,1471780320471.5,1501976882039.12,1552593080187.63,1621139938786.75,1737321244918,1843525333993.54,1898750653984.1,1991315629473.24
-Sri Lanka,LKA,"Population, total",SP.POP.TOTL,18777601,18911730,19062482,19224037,19387153,19544988,19695972,19842044,19983984,20123508,20261737,20398670,20425000,20585000,20778000,20970000,21203000,21444000,21670000,21803000
-Sri Lanka,LKA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,80219612592.163,80707690509.369,85438265093.8054,92694593586.4605,100298785212.344,109652264522.375,121471812831.66,133547831409.968,142604716518.666,150406486461.344,164223838599.756,181910599698.272,206950552659.399,218124451812.083,228565788492.023,236279911702.493,252283568160.724,262709274806.972,277615620224.671,288411260724.197
-St. Kitts and Nevis,KNA,"Population, total",SP.POP.TOTL,44074,44599,45165,45746,46324,46857,47339,47778,48185,48599,49016,49447,49887,50331,50774,51203,51625,52045,52441,52823
-St. Kitts and Nevis,KNA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,668626627.030419,718436252.546109,744762582.945911,721796119.49235,785342872.453035,900477813.981571,946785397.017441,983506390.046433,1063395727.80758,1028244449.31807,1041414759.68333,1085010859.5522,1040073570.95555,1095520084.77226,1126413064.05166,1138913288.5063,1209135630.0354,1253585607.5405,1313202217.63159,1369275749.82975
-St. Lucia,LCA,"Population, total",SP.POP.TOTL,156729,158179,159392,160530,161816,163417,165381,167639,170011,172221,174085,175544,176646,177513,178296,179126,180024,180955,181889,182790
-St. Lucia,LCA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,1305855310.53088,1270824912.50597,1312264068.35251,1379897600.78669,1502713457.62692,1544835895.79416,1839801165.1013,1904808814.05479,2039871225.17556,2034633287.52068,2103475539.04643,2297809125.759,2256310219.44242,2340104825.45271,2304068263.59932,2220169455.30641,2413769769.05196,2558643206.97483,2670955788.03675,2767313822.83397
-St. Martin (French part),MAF,"Population, total",SP.POP.TOTL,28935,29853,30910,32053,33186,34248,35237,36137,36885,37377,37582,37446,37009,36453,36015,35858,36065,36560,37264,38002
-St. Martin (French part),MAF,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
-St. Vincent and the Grenadines,VCT,"Population, total",SP.POP.TOTL,107784,107896,108097,108326,108512,108614,108603,108518,108393,108287,108255,108316,108435,108622,108861,109148,109459,109827,110210,110589
-St. Vincent and the Grenadines,VCT,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,638159376.525602,670314466.444616,724127161.498021,784916407.357878,833178925.141251,883240113.601914,992034020.254062,1063625110.3998,1100704108.7646,1101047803.34189,1077900540.92904,1094556250.36243,1127672288.17059,1178894343.25033,1180712569.46047,1240035784.97745,1354300475.1646,1335277351.37259,1392156097.48341,1424298575.54419
-Sudan,SDN,"Population, total",SP.POP.TOTL,27275015,27971082,28704778,29460519,30214193,30949516,31661823,32360621,33060837,33783788,34545013,35349681,36193783,37072550,37977655,38902950,39847440,40813396,41801533,42813238
-Sudan,SDN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,58212531297.298,63680735170.4652,68910959486.9048,74978164139.573,79768301290.8968,88320710528.3167,93942762350.271,112239021245.355,119548408750.404,127090687572.071,130164486506.18,138252289994.32,142798888417.107,147780281950.933,177192917844.649,193305122554.049,173012156095.499,171572486184.966,165149037086.917,170741468621.492
-Suriname,SUR,"Population, total",SP.POP.TOTL,470949,476579,482235,487942,493679,499464,505295,511181,517123,523111,529131,535179,541245,547291,553273,559143,564888,570496,575991,581372
-Suriname,SUR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,3455101779.96144,3452172053.5285,3869264165.22239,4192975496.85693,4655634374.65597,5102119078.97652,5547176744.27413,6108812235.51674,6528902952.26631,6746376489.35332,6997716781.20293,7287563034.49645,8213418033.82234,8968094623.77967,9422022464.70498,8961754691.65336,7598415769.13654,8178387430.85907,8695356897.78605,8836767171.57063
-Sweden,SWE,"Population, total",SP.POP.TOTL,8872109,8895960,8924958,8958229,8993531,9029572,9080505,9148092,9219637,9298515,9378126,9449213,9519374,9600379,9696110,9799186,9923085,10057698,10175214,10285453
-Sweden,SWE,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,261536194358.147,265039091713.136,275242719220.112,287729555181.962,303981183172.221,311479619232.968,348755955764.149,382516435235.849,400366853301.737,382465021963.24,406622962140.547,429144502027.467,441172311031.33,452932249986.944,465812418766.259,483754081559.8,503345052823.841,539004902592.682,557021173354.563,589328987811.607
-Switzerland,CHE,"Population, total",SP.POP.TOTL,7184250,7229854,7284753,7339001,7389625,7437115,7483934,7551117,7647675,7743831,7824909,7912398,7996861,8089346,8188649,8282396,8373338,8451840,8514329,8574832
-Switzerland,CHE,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,274014758779.276,276467718717.679,282083618928.972,294968201481.081,307427849499.894,327059401274.082,362697631526.67,377896938305.799,375881421641.219,408827811088.838,439965969368.288,449676395959.064,472965119580.052,496497257704.326,509076701038.649,542121799886.034,553301058576.508,573779624920.909,597120517941.947,620733021180.849
-Syrian Arab Republic,SYR,"Population, total",SP.POP.TOTL,16410848,16766561,17084632,17415214,17827825,18361176,19059258,19878254,20664038,21205873,21362529,21082966,20442541,19584274,18715672,17997408,17453933,17068002,16906283,17070135
-Syrian Arab Republic,SYR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
-Tajikistan,TJK,"Population, total",SP.POP.TOTL,6216341,6318513,6426867,6541547,6662389,6789321,6922587,7062672,7209930,7364753,7527394,7697510,7874835,8059769,8252833,8454028,8663579,8880268,9100837,9321018
-Tajikistan,TJK,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,6243952520.11311,6956391457.58099,7940888916.07205,8865335640.46874,10232161892.1305,13315140659.5813,15606010070.8765,17958659371.2663,20015975062.9807,19445730700.2787,21650983633.0307,24502585880.9376,27649805633.739,32099463306.2014,33792660554.7335,30205900190.8183,31326779891.4301,32094206010.1166,35042775748.5525,38186407402.8905
-Tanzania,TZA,"Population, total",SP.POP.TOTL,33499180,34385856,35334788,36337782,37379767,38450320,39548663,40681414,41853944,43073834,44346525,45673338,47052481,48482266,49959822,51482633,53050790,54663906,56318348,58005463
-Tanzania,TZA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,38397497776.3668,41037773111.773,45408862707.0621,49045752787.4878,54090494683.7852,59610581601.6123,66631583817.7983,72197977275.5116,77918987309.6057,82734318300.1854,88300340612.0959,97002460359.7256,94529738375.3637,101725607824.693,107031002837.467,115147236257.427,124836678462.57,131217326623.384,140452391887.359,152044786430.903
-Thailand,THA,"Population, total",SP.POP.TOTL,62952642,63539196,64069087,64549866,64995299,65416189,65812536,66182067,66530984,66866839,67195028,67518382,67835957,68144501,68438730,68714511,68971331,69209858,69428524,69625582
-Thailand,THA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,450671563297.021,472410644012.811,505623430896.062,548768048123.199,597376671474.052,640844956966.608,698598604407.005,758824843683.545,784949891095.53,786634662277.215,849519757331.666,890774204971.964,962565591015.47,982839168917.538,1004937587069.8,1031139449774.92,1092384223464.17,1151656441215.65,1223157479632.06,1289400494111.78
-Timor-Leste,TLS,"Population, total",SP.POP.TOTL,884366,901214,922694,947108,971893,995135,1016432,1036392,1055431,1074277,1093523,1113151,1132994,1153295,1174331,1196302,1219288,1243261,1267972,1293119
-Timor-Leste,TLS,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,1574774048.15707,1767734817.44826,2044643608.94684,1699848000.03095,2006516904.24496,2521021245.83139,3906319048.15135,5595452624.68354,8809236374.25167,6735167351.45591,8100273342.80888,10105478690.9941,9860410997.89224,8520034074.72098,7368662501.18337,6107945596.37407,5170878011.18355,5580941212.39929,5730167599.59686,6112136222.45617
-Togo,TGO,"Population, total",SP.POP.TOTL,4924402,5062567,5197031,5330639,5467766,5611640,5762880,5920359,6083420,6250835,6421679,6595943,6773807,6954721,7137997,7323158,7509952,7698475,7889094,8082366
-Togo,TGO,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,4695495615.47244,4836298686.31055,5137495675.78138,5593950603.09644,5666656648.11381,5567283011.38162,5883941545.60747,5999557769.79647,6408670137.09282,6807580411.75893,7298190564.58075,8463956228.3191,8325342477.13935,8921364449.72602,9577642653.30672,10577120513.5998,11023673694.766,11687035212.7357,12582724939.5682,13484391446.6806
-Tonga,TON,"Population, total",SP.POP.TOTL,97973,98487,99022,99589,100218,100905,101706,102581,103379,103890,103986,103562,102737,101768,101028,100781,101133,101998,103197,104494
-Tonga,TON,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,357784199.303927,377866597.727363,406910565.468162,419272791.525725,430706598.859729,445193709.253949,463102117.302844,458561607.97632,480222408.819444,500093429.134895,524842935.725519,548648424.397204,564662549.7069,554335176.241438,566434537.234819,595653508.202184,620025178.090875,654945658.379999,672020199.921711,..
-Trinidad and Tobago,TTO,"Population, total",SP.POP.TOTL,1267153,1271632,1277213,1283559,1290123,1296502,1302561,1308451,1314443,1320930,1328147,1336178,1344817,1353700,1362342,1370328,1377564,1384072,1389858,1394973
-Trinidad and Tobago,TTO,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,17012875951.3096,18424051120.37,20369750460.5276,23569565343.3526,26971078774.8305,28938122258.8779,33665145927.3679,36491422367.7205,38491439611.4192,36732759920.3182,38571392278.7278,36695932591.946,36835904408.0776,38353998987.3133,37934914092.36,37337641618.7473,35493336828.6125,36681957170.3557,36326373324.7135,37591615894.1119
-Tunisia,TUN,"Population, total",SP.POP.TOTL,9708350,9793903,9871251,9945277,10022277,10106771,10201214,10304726,10414433,10525694,10635244,10741880,10847002,10952951,11063201,11179949,11303946,11433443,11565204,11694719
-Tunisia,TUN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,55482145961.9188,59027355540.4305,60767940056.2163,65012620775.8729,70781548453.9982,74688150392.4089,81387058368.2445,88448511812.3066,93552043505.7407,98192793634.6049,102937036778.887,103048392300.402,106139515924.993,107073102533.151,111432879156.612,110536919999.913,113664872520.447,117404469799.969,123100895158.534,126246204651.811
-Turkey,TUR,"Population, total",SP.POP.TOTL,63240194,64192243,65145367,66089402,67010930,67903469,68756810,69581848,70418604,71321399,72326988,73443863,74653016,75928564,77231907,78529409,79821724,81101892,82319724,83429615
-Turkey,TUR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,597334483200.142,576775800988.776,596184974340.906,623412870993.991,717661896581.309,798582177973.32,926267066261.931,1023569815490.45,1119242568185.42,1092463594830.04,1250656923762.77,1430728376610.47,1527509825602.83,1675523365075.39,1834768262767.73,1989695683312.09,2079317383660.83,2236042743568.31,2280595352742.52,2287042822851.61
-Turkmenistan,TKM,"Population, total",SP.POP.TOTL,4516133,4564083,4610005,4655743,4703401,4754646,4810109,4870141,4935767,5007954,5087213,5174085,5267900,5366375,5466328,5565287,5662372,5757669,5850908,5942089
-Turkmenistan,TKM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,18608125797.2421,20168709626.6258,20512405888.362,21796071376.3924,23408021444.9088,25792885962.1902,29758839630.028,35099172955.5778,39986573484.7062,42368527403.7033,45722924073.0519,52789503109.1211,57503025651.6309,62407231340.9251,67102532122.3818,71735322172.8103,76445710804.7088,78393490626.9716,85163219714.7608,..
-Turks and Caicos Islands,TCA,"Population, total",SP.POP.TOTL,20164,21573,23232,25011,26700,28180,29391,30385,31202,31934,32660,33377,34066,34731,35369,35981,36559,37115,37665,38191
-Turks and Caicos Islands,TCA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,764731910.157113,823917422.181535,889386727.130543,929417556.78184,987352323.619838,..
-Tuvalu,TUV,"Population, total",SP.POP.TOTL,9394,9484,9596,9726,9869,10000,10120,10221,10314,10424,10530,10633,10739,10857,10972,11099,11225,11370,11508,11646
-Tuvalu,TUV,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,44816713.8307238,55987016.7823781,39423211.9664439,44008233.8174725,44010714.0270621,44669035.2114179,52633356.1198989,52851720.3475787,54738734.1185112,49291845.5495836,50436773.5213591,43459568.1161838,54547258.7189745,48534841.957286,63000995.2918348,63492051.2978658,63480552.6310055,70098267.5235555,71863891.2861822
-Uganda,UGA,"Population, total",SP.POP.TOTL,23650172,24388968,25167257,25980552,26821297,27684585,28571475,29486338,30431736,31411096,32428167,33476919,34559168,35695246,36912148,38225453,39647506,41162465,42723139,44269594
-Uganda,UGA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,26499505401.6939,28241217363.4276,31376554570.7417,34048226950.8195,37196648518.9452,40721832209.1975,46612393718.0096,52079100131.2783,57754070635.1758,62115766422.6747,66348768277.3103,74180430678.1867,67861747681.2255,70028337871.091,75027330101.7947,79484445119.7673,80837873387.1188,83396734294.2227,90179159679.8365,97886334387.587
-Ukraine,UKR,"Population, total",SP.POP.TOTL,49176500,48662400,48202470,47812949,47451626,47105171,46787786,46509355,46258189,46053331,45870741,45706086,45593342,45489648,45272156,45154036,45004674,44831135,44622518,44385155
-Ukraine,UKR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,195874159423.066,221426068987.724,237520547089.596,265681569588.845,306381587636.351,324903125739.448,357983817517.623,400086017392.992,415612966587.664,352557246526.279,372634874968.387,397751382057.074,418808180763.59,478317354943.168,456689210728.162,437283649075.699,483248219684.615,515944166360.639,547484803864.72,578031775037.061
-United Arab Emirates,ARE,"Population, total",SP.POP.TOTL,3134062,3302719,3478777,3711932,4068570,4588225,5300174,6168838,7089487,7917372,8549988,8946777,9141596,9197910,9214175,9262900,9360980,9487203,9630959,9770529
-United Arab Emirates,ARE,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,323322696221.062,335107906366.934,335185283543.408,368204626489.547,416456364855.637,455293178482.826,517928620572.751,554759716006.904,572067250142.766,545263477685.039,554578548603.043,605808769081.988,632212172329.896,648063820753.781,679448062185.081,604104698714.526,602327541485.937,641975592252.713,662414696568.075,686306904138.687
-United Kingdom,GBR,"Population, total",SP.POP.TOTL,58892514,59119673,59370479,59647577,59987905,60401206,60846820,61322463,61806995,62276270,62766365,63258810,63700215,64128273,64602298,65116219,65611593,66058859,66460344,66834405
-United Kingdom,GBR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,1561407145331.57,1652810760601.11,1748086977823.58,1828070205658.89,1937447618826.28,1999826177646.45,2117185886698.94,2172625553539.84,2244862767229.45,2165272748033.17,2284296653908.52,2360144861851.54,2415126689983.67,2510996076220.28,2611439141863.92,2705282618272.15,2827976162817.73,3000838547377.93,3072868018494.63,3210886653457.9
-United States,USA,"Population, total",SP.POP.TOTL,282162411,284968955,287625193,290107933,292805298,295516599,298379912,301231207,304093966,306771529,309321666,311556874,313830990,315993715,318301008,320635163,322941311,324985539,326687501,328239523
-United States,USA,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,10383859000000,10743709000000,11054325000000,11530268000000,12313988000000,13169702000000,14072966000000,14543216000000,14684602000000,14398708000000,15126736000000,15832207000000,16670651000000,17175898000000,18057489000000,18704317000000,19045164000000,19830277000000.1,20837347000000.1,21624995749999.9
-Uruguay,URY,"Population, total",SP.POP.TOTL,3319736,3325473,3326040,3323668,3321476,3321803,3325401,3331749,3340221,3349676,3359275,3368934,3378974,3389439,3400434,3412009,3424132,3436646,3449299,3461734
-Uruguay,URY,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,33945443247.5938,33344537747.9671,31533824762.6923,30883466401.9197,33216952936.3271,37360260911.6236,40336085307.9769,44136848952.393,47842989528.3195,50101739036.5721,54386110589.9181,58589197626.3659,57034863431.4258,61370940005.0751,64012672369.2185,65894817067.7221,67291572981.5448,68924690398.7391,70955584945.7829,73121453897.6351
-Uzbekistan,UZB,"Population, total",SP.POP.TOTL,24650400,24964450,25271850,25567650,25864350,26167000,26488250,26868000,27302800,27767400,28562400,29339400,29774500,30243200,30757700,31298900,31847900,32388600,32956100,33580650
-Uzbekistan,UZB,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,60490019864.9866,64255651188.6571,68073816741.291,72531185462.2683,80628416840.1209,89130942254.7757,98331029398.2857,115744456269.22,130693528066.927,138036570231.641,146731919200.689,161559906176.939,170707243416.585,180556615900.712,192173670374.64,201986598838.056,207853080775.075,215456449592.35,234703033130.301,248452283977.245
-Vanuatu,VUT,"Population, total",SP.POP.TOTL,184972,189219,193920,198959,204127,209282,214370,219472,224704,230247,236211,242653,249499,256635,263888,271130,278330,285510,292680,299882
-Vanuatu,VUT,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,395845637.991194,403652721.333728,377866769.674181,399573849.216512,425394093.202289,454841786.625104,518923916.182719,556611911.561311,637642070.414252,643469996.480078,657929082.673957,684302150.005902,686703133.694412,754198448.012038,795660594.778998,802937429.465799,835331693.633886,880102798.798113,946508379.529688,991320396.983575
-"Venezuela, RB",VEN,"Population, total",SP.POP.TOTL,24192446,24646472,25100408,25551624,25996594,26432447,26850194,27247610,27635832,28031009,28439940,28888369,29362449,29783571,30045134,30081829,29846179,29390409,28870195,28515829
-"Venezuela, RB",VEN,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,280855847538.954,295370460052.072,269834466478.442,254427821599.432,307512284009.188,355550813047.347,406417931932.049,461178498993.92,490847218537.909,473863865999.872,470221384679.447,493557717634.178,..,..,..,..,..,..,..,..
-Vietnam,VNM,"Population, total",SP.POP.TOTL,79910412,80742499,81534407,82301656,83062821,83832661,84617540,85419591,86243413,87092252,87967651,88871561,89802487,90753472,91714595,92677076,93638724,94596642,95540395,96462106
-Vietnam,VNM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,169101978301.367,183775381863.24,198446295952.172,215660375905.614,239304626439.798,243642053786.487,267674830733.176,292489052948.076,314506040405.064,300736799423.602,356506285960.339,384663335500.307,434659185242.371,465497570616.946,501888463952.615,536539130014.396,589741573548.919,625899825382.239,690000277848.292,747220006779.353
-Virgin Islands (U.S.),VIR,"Population, total",SP.POP.TOTL,108642,108549,108510,108506,108467,108454,108371,108339,108399,108405,108358,108292,108191,108044,107884,107710,107510,107268,106977,106631
-Virgin Islands (U.S.),VIR,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..,..
-West Bank and Gaza,PSE,"Population, total",SP.POP.TOTL,2922153,2997784,3075373,3154969,3236626,3320396,3406334,3494496,3591977,3689099,3786161,3882986,3979998,4076708,4173398,4270092,4367088,4454805,4569087,4685306
-West Bank and Gaza,PSE,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,8722138455.78828,7812135701.68618,6828082613.95172,7930473089.15384,8910504550.65981,10369007468.7528,10398591353.509,11531518608.2507,12473042746.9752,13317069247.2852,14482042303.3576,16688370002.6944,19833587676.5149,21072559191.4526,23338783134.8549,26177201049.1117,27386949786.2061,29158617677.1035,30815829709.4169,..
-"Yemen, Rep.",YEM,"Population, total",SP.POP.TOTL,17409072,17918373,18443691,18985000,19540098,20107409,20687646,21282515,21892146,22516460,23154855,23807588,24473178,25147109,25823485,26497889,27168210,27834821,28498687,29161922
-"Yemen, Rep.",YEM,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,47407469489.7263,50841346561.1139,53305582982.396,55681083237.4228,58804494221.7735,64075292634.3902,70493792627.0925,74995234785.3653,78498118632.1159,84324391008.1339,90700650718.9413,79742574005.5175,81652542720.9669,88588654788.721,..,..,..,..,..,..
-Zambia,ZMB,"Population, total",SP.POP.TOTL,10415944,10692193,10971698,11256743,11550642,11856247,12173514,12502958,12848530,13215139,13605984,14023193,14465121,14926504,15399753,15879361,16363507,16853688,17351822,17861030
-Zambia,ZMB,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,16390516773.1936,17697270843.1887,18873338727.6239,20701831757.7299,21936203300.825,23952035537.2028,26172573663.3931,28534598750.7941,32470694798.8824,37702919211.7603,40342714903.8491,44313413076.5895,48670115552.996,51231499045.8015,53398340681.0049,53416147657.3537,53991782699.8614,56136005389.7561,61604252695.0115,63886639446.6947
-Zimbabwe,ZWE,"Population, total",SP.POP.TOTL,11881477,11923914,11954290,11982224,12019912,12076699,12155491,12255922,12379549,12526968,12697723,12894316,13115131,13350356,13586681,13814629,14030390,14236745,14439018,14645468
-Zimbabwe,ZWE,"GNI, PPP (current international $)",NY.GNP.MKTP.PP.CD,26072084507.4236,27121623088.7881,25202095917.1133,21365454472.375,20525176748.7229,19970617965.9813,19735282220.6704,19382201999.971,15921801862.8195,16688304055.5788,20491802499.1171,23257335849.2756,27130426246.4164,30824982317.5151,32122394049.3391,33340681206.5211,35973034626.7689,39276020087.4136,43207113913.4029,40017364504.5875
-,,,,,,,,,,,,,,,,,,,,,,,
-,,,,,,,,,,,,,,,,,,,,,,,
-,,,,,,,,,,,,,,,,,,,,,,,
-Data from database: World Development Indicators,,,,,,,,,,,,,,,,,,,,,,,
-Last Updated: 08/18/2020,,,,,,,,,,,,,,,,,,,,,,,
diff --git a/tools/java/org/unicode/cldr/util/data/iso-639-3-version.tab b/tools/java/org/unicode/cldr/util/data/iso-639-3-version.tab
deleted file mode 100755
index f5415f7..0000000
--- a/tools/java/org/unicode/cldr/util/data/iso-639-3-version.tab
+++ /dev/null
@@ -1 +0,0 @@
-20200130
diff --git a/tools/java/org/unicode/cldr/util/data/languages/readme.txt b/tools/java/org/unicode/cldr/util/data/languages/readme.txt
deleted file mode 100644
index 4cd700b..0000000
--- a/tools/java/org/unicode/cldr/util/data/languages/readme.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-OLD: see cldr.org Upgrading Subdivision Names
-
-childToParent.tsv
-entityToLabel.tsv
-entityToCode.tsv
-
-Goto https://query.wikidata.org/ and use the following queries
-
-childToParent.tsv
-entityToLabel.tsv
-
-SELECT DISTINCT ?parent ?child WHERE {
- SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
- {
- ?parent wdt:P31 wd:Q25295.
- ?child wdt:P279 ?parent.
- } UNION {
- ?child wdt:P31 wd:Q34770.
- ?child wdt:P279 ?parent.
- } UNION {
- ?parent wdt:P31 wd:Q34770.
- ?child wdt:P279 ?parent.
- }
-}
-
-entityToCode.tsv
-
-SELECT DISTINCT ?lang ?langCode WHERE {
- SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
- {
- ?lang wdt:P305 ?langCode.
- }
-}
\ No newline at end of file
diff --git a/tools/java/readme.txt b/tools/java/readme.txt
deleted file mode 100644
index 1ed3687..0000000
--- a/tools/java/readme.txt
+++ /dev/null
@@ -1,60 +0,0 @@
-CLDR Tools ReadMe
------------------
-
-The tools folder will contain tools, tests, and utilities for dealing with CLDR data.
-The code is very preliminary, so don't expect stability from the APIs (or documentation!),
-since we still have to work out how we want to do the architecture.
-
-See: http://cldr.unicode.org/development/new-cldr-developers
-
-The directory structure is:
-[./org/unicode/cldr..]
-icu Tools for generating ICU-format data from CLDR
-posix Tools for generating POSIX-format data from CLDR
-test Test tools for CLDR
-json Tools for creating JSON data from CLDR
-tool Tools for manipulating CLDR files
-util Utilities for handling CLDR files
-ooo OpenOffice.org tools for :
- - Converting OpenOffice.org format to LDML
- - CLDR data to OpenOffice.org format
- - Comparing OpenOffice.org data
------------------
-
-The tools may use ICU4J code for testing, but should use none of the data in ICU4J.
-We'll be using the ICU4J test framework also (we looked at JUnit, but it would be
-really clumsy for the ways in which we'd have to test).
-
-
-TO BUILD AND RUN THE TOOLS:
-
- See http://cldr.unicode.org/tools
-
-ADVANCED USAGE:
-
-1. Build the tools with the following command:
-
- ant clean all jar
-
-2. For a list of build targets use the following command:
-
- ant -projecthelp
-
-3. For running automated and console tests, you will want to create a 'build.properties' file.
-
- If you checked out CLDR as one directory (i.e. there is a ../../common relative to this readme),
- then create build.properties containing:
-
- CLDR_DIR=../..
-
- Otherwise, if inside of an eclipse workspace (i.e. there is a ../common relative to this readme),
- this may work for you:
-
- CLDR_DIR=..
-
-CLDR TOOL DEVELOPMENT ON ECLIPSE IDE
-
- Eclipse project files are available for CLDR Tools development.
- To set up the environment on Eclipse IDE, see the link:
-
- http://cldr.unicode.org/development/new-cldr-developers
diff --git a/tools/pom.xml b/tools/pom.xml
index f5a1b86..154fa00 100644
--- a/tools/pom.xml
+++ b/tools/pom.xml
@@ -7,28 +7,36 @@
<groupId>org.unicode.cldr</groupId>
<artifactId>cldr-all</artifactId>
- <version>38.0-SNAPSHOT</version>
- <name>CLDR Parent</name>
+ <version>39.0-SNAPSHOT</version>
+ <name>CLDR All Tools</name>
<packaging>pom</packaging>
-
+ <licenses>
+ <license>
+ <name>Unicode-DFS-2016</name>
+ </license>
+ </licenses>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
- <!--
- Note: see https://github.com/unicode-org/icu/packages/411079/versions for the
- icu4j.version tag to use
- -->
- <icu4j.version>68.1-cldr-2020-10-21</icu4j.version>
+ <!-- Note: see https://github.com/unicode-org/icu/packages/411079/versions
+ for the icu4j.version tag to use -->
+ <icu4j.version>69.1-SNAPSHOT-release-69-rc</icu4j.version>
<junit.version>4.13.1</junit.version>
<junit.jupiter.version>5.5.1</junit.jupiter.version>
<maven-surefire-plugin-version>2.22.1</maven-surefire-plugin-version>
<assertj-version>3.11.1</assertj-version>
+ <httpcomponents-version>5.0.3</httpcomponents-version>
+ <!-- web-specific properties are under cldr-apps -->
+ <mysql.version>8.0.22</mysql.version>
</properties>
<modules>
- <module>java</module>
- <module>cldr-apps</module>
+ <module>cldr-code</module>
+ <!-- Android patch: AOSP doesn't check out cldr-apps.
+ <module>cldr-apps</module> -->
+ <module>cldr-rdf</module>
</modules>
<dependencyManagement>
@@ -36,7 +44,12 @@
<!-- CLDR -->
<dependency>
<groupId>org.unicode.cldr</groupId>
- <artifactId>cldr</artifactId>
+ <artifactId>cldr-code</artifactId>
+ <version>${project.version}</version> <!-- this seems to work -->
+ </dependency>
+ <dependency>
+ <groupId>org.unicode.cldr</groupId>
+ <artifactId>cldr-rdf</artifactId>
<version>${project.version}</version> <!-- this seems to work -->
</dependency>
@@ -68,7 +81,7 @@
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
- <version>1.10.8</version>
+ <version>1.10.9</version>
</dependency>
<dependency>
@@ -105,35 +118,7 @@
<version>2.4</version>
</dependency>
-
- <!-- API -->
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>javax.servlet-api</artifactId>
- <version>3.1.0</version>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>javax.servlet.jsp</groupId>
- <artifactId>javax.servlet.jsp-api</artifactId>
- <version>2.3.1</version>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>javax.xml.bind</groupId>
- <artifactId>jaxb-api</artifactId>
- <version>2.3.1</version>
- <scope>provided</scope>
- </dependency>
-
<!-- mail / rss -->
- <dependency>
- <groupId>rome</groupId>
- <artifactId>rome</artifactId>
- <version>1.0</version>
- </dependency>
<dependency>
<groupId>javax.mail</groupId>
@@ -141,7 +126,6 @@
<version>1.5.0-b01</version>
</dependency>
-
<dependency>
<groupId>com.sun.activation</groupId>
<artifactId>javax.activation</artifactId>
@@ -155,14 +139,17 @@
<version>20190722</version>
</dependency>
- <!-- scm -->
+ <!-- HTTP client -->
<dependency>
- <groupId>org.tmatesoft.svnkit</groupId>
- <artifactId>svnkit</artifactId>
- <version>1.7.4-v1</version>
+ <groupId>org.apache.httpcomponents.client5</groupId>
+ <artifactId>httpclient5</artifactId>
+ <version>${httpcomponents-version}</version>
</dependency>
-
-
+ <dependency>
+ <groupId>org.jsoup</groupId>
+ <artifactId>jsoup</artifactId>
+ <version>1.13.1</version>
+ </dependency>
<!-- db connectors -->
<dependency>
@@ -174,8 +161,9 @@
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
- <version>8.0.21</version>
+ <version>${mysql.version}</version>
</dependency>
+
<!-- test -->
<dependency>
<groupId>junit</groupId>
@@ -196,6 +184,11 @@
<version>${junit.jupiter.version}</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.mybatis</groupId>
+ <artifactId>mybatis</artifactId>
+ <version>3.5.6</version>
+ </dependency>
</dependencies>
</dependencyManagement>
@@ -229,7 +222,7 @@
<version>${maven-surefire-plugin-version}</version>
<configuration>
<systemPropertyVariables>
- <CLDR_DIR>${project.basedir}/../../</CLDR_DIR> <!-- this is valid for tools/java and tools/cldr-apps-->
+ <CLDR_DIR>${project.basedir}/../../</CLDR_DIR> <!-- this is valid for tools/java and tools/cldr-apps -->
<CLDR_ENVIRONMENT>UNITTEST</CLDR_ENVIRONMENT>
<java.awt.headless>true</java.awt.headless>
</systemPropertyVariables>
@@ -241,10 +234,6 @@
<version>3.0.2</version>
</plugin>
<plugin>
- <artifactId>maven-war-plugin</artifactId>
- <version>3.2.2</version>
- </plugin>
- <plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
@@ -283,7 +272,19 @@
<addOutputDirectoryToResources>true</addOutputDirectoryToResources>
</configuration>
</plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>license-maven-plugin</artifactId>
+ <version>2.0.0</version>
+ </plugin>
</plugins>
</pluginManagement>
</build>
+ <distributionManagement>
+ <repository>
+ <id>githubcldr</id>
+ <name>Maven@unicode-org/cldr</name>
+ <url>https://maven.pkg.github.com/unicode-org/cldr</url>
+ </repository>
+ </distributionManagement>
</project>
diff --git a/tools/scripts/ansible/README.md b/tools/scripts/ansible/README.md
index dfd8eda..c7198ef 100644
--- a/tools/scripts/ansible/README.md
+++ b/tools/scripts/ansible/README.md
@@ -17,7 +17,7 @@
- Install some prereqs:
```shell
-ansible-galaxy install -r roles.yml
+ansible-galaxy install -r requirements.yml
```
- Make sure you can `ssh` into all of the needed systems. For example,
@@ -102,6 +102,14 @@
key: ssh-rsa … ( SSH key goes here)
```
+## Setup: cldrcc
+
+```shell
+mkdir -p local-vars/cldrcc
+ssh-keygen -t rsa -b 2048 -C 'CLDR Commit Checker' -f local-vars/cldrcc/id_rsa
+```
+
+
## Configure
Run the setup playbook.
@@ -131,8 +139,8 @@
- to deploy ST to this, use the following:
```shell
-(cd ../../cldr-apps ; ant war) # to build ST if not already built
-vagrant ssh -- sudo -u surveytool /usr/local/bin/deploy-to-tomcat.sh $(git rev-parse HEAD) < ../../cldr-apps/cldr-apps.war
+(cd ../.. ; mvn package) # go to the tools folder and build ST (cldr-apps.war, etc.) if not already built
+vagrant ssh -- sudo -u surveytool /usr/local/bin/deploy-to-tomcat.sh $(git rev-parse HEAD) < ../../cldr-apps/target/cldr-apps.war
```
- Now you should be able to login at <http://127.0.0.1:8880/cldr-apps/>
diff --git a/tools/scripts/ansible/Vagrantfile b/tools/scripts/ansible/Vagrantfile
index 7172fe9..d3b77ac 100644
--- a/tools/scripts/ansible/Vagrantfile
+++ b/tools/scripts/ansible/Vagrantfile
@@ -2,17 +2,23 @@
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
+ config.vm.provider "virtualbox" do |v|
+ v.memory = 1024
+ end
+ # increase the boot timeout
+ config.vm.boot_timeout = 600
config.vm.box = "ubuntu/bionic64"
config.vm.define "surveytool"
config.vm.hostname = "surveytool"
# forward http and https
config.vm.network "forwarded_port", guest: 80, host: 8880
+ config.vm.network "forwarded_port", guest: 9080, host: 9081
# Just the minimum to get ansible going
config.vm.provision "shell", inline: <<-SHELL
apt-get update
apt-get install -y python3 sudo
SHELL
config.vm.provision "ansible" do |ansible|
- ansible.playbook = "setup-playbook.yml"
+ ansible.playbook = "vagrant-playbook.yml"
end
end
diff --git a/tools/scripts/ansible/backup-db-playbook.yml b/tools/scripts/ansible/backup-db-playbook.yml
index c2d969a..f01ba0a 100644
--- a/tools/scripts/ansible/backup-db-playbook.yml
+++ b/tools/scripts/ansible/backup-db-playbook.yml
@@ -34,7 +34,7 @@
- name: set up /home/cldrbackup/.ssh/config
template:
src: templates/cldrbackup/config.j2
- dest: /home/cldrbackup/.ssh/config.j2
+ dest: /home/cldrbackup/.ssh/config
owner: cldrbackup
group: cldrbackup
mode: '0640'
@@ -45,7 +45,7 @@
dest: /home/cldrbackup/.ssh/id_rsa
owner: cldrbackup
group: cldrbackup
- mode: '0640'
+ mode: '0600'
- name: set up /home/cldrbackup/.ssh/id_rsa.pub
copy:
src: local-vars/cldrbackup/id_rsa.pub
@@ -63,13 +63,14 @@
- name: set up /home/cldrbackup/backup.sh
template:
src: templates/cldrbackup/backup_sh.j2
- dest: /home/cldrbackup/.ssh/backup.sh
+ dest: /home/cldrbackup/backup.sh
owner: cldrbackup
group: cldrbackup
mode: '0640'
- name: set up daily db backup cron job
cron:
name: "backup db"
+ user: cldrbackup
minute: "37"
hour: "7"
job: "sh /home/cldrbackup/backup.sh >/dev/null 2>&1"
diff --git a/tools/scripts/ansible/ccc-playbook.yml b/tools/scripts/ansible/ccc-playbook.yml
new file mode 100644
index 0000000..e7bfe87
--- /dev/null
+++ b/tools/scripts/ansible/ccc-playbook.yml
@@ -0,0 +1,68 @@
+# CLDR Commit Checker playbook
+- hosts: ccc
+ become: yes
+ vars_files:
+ - vars/main.yml
+ - local-vars/local.yml
+ tasks:
+ - name: ensure cldrcc group is there
+ group:
+ name: cldrcc
+ state: present
+ - name: ensure cldrcc user is there
+ user:
+ name: cldrcc
+ groups:
+ - cldrcc
+ append: yes # add to the groups, do not remove
+ state: present
+ create_home: true
+ - name: set up /home/cldrcc/.ssh/
+ file:
+ path: /home/cldrcc/.ssh/
+ owner: cldrcc
+ group: cldrcc
+ mode: '0700'
+ state: directory
+ - name: set up /home/cldrcc/.ssh/authorized_keys
+ copy:
+ src: local-vars/cldrcc/id_rsa.pub
+ dest: /home/cldrcc/.ssh/authorized_keys
+ owner: cldrcc
+ group: cldrcc
+ mode: '0600'
+ - name: set up /home/cldrcc/public_html/
+ file:
+ path: /home/cldrcc/public_html/
+ owner: cldrcc
+ group: cldrcc
+ mode: '0755'
+ state: directory
+ - name: set up github-markdown.css
+ get_url:
+ dest: /home/cldrcc/public_html/github-markdown.css
+ owner: cldrcc
+ group: cldrcc
+ mode: '0644'
+ force: no
+ url: https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/4.0.0/github-markdown.min.css
+ # from https://github.com/sindresorhus/github-markdown-css
+ - name: Setup publication and indexing
+ blockinfile:
+ path: /etc/nginx/sites-enabled/default
+ block: |
+ # commit checker
+ location ~ ^/cldrcc/(.*)$ {
+ charset utf-8;
+ source_charset utf-8;
+ alias /home/cldrcc/public_html/$1;
+ autoindex on;
+ }
+ marker: '# {mark} ANSIBLE MANAGED COMMIT CHECKER BLOCK'
+ insertafter: '^[\s]*server_name' # the LAST uncommented server block
+ notify: 'Restart Nginx Again'
+ handlers:
+ - name: Restart Nginx Again
+ service:
+ name: nginx
+ state: restarted
diff --git a/tools/scripts/ansible/certbot-playbook.yml b/tools/scripts/ansible/certbot-playbook.yml
new file mode 100644
index 0000000..4a1b274
--- /dev/null
+++ b/tools/scripts/ansible/certbot-playbook.yml
@@ -0,0 +1,17 @@
+- hosts: letsencrypt
+ become: yes
+ vars_files:
+ - vars/main.yml
+ - local-vars/local.yml
+ tasks:
+ - name: Install certbot packages
+ apt:
+ pkg:
+ - python3-certbot-nginx
+ - name: setup certbot
+ command: >
+ sudo certbot --nginx --agree-tos -m {{ certbot_admin_email }}
+ -d {{ inventory_hostname }} --non-interactive
+ --keep --redirect --uir --hsts --staple-ocsp --must-staple
+ args:
+ creates: /etc/letsencrypt/renewal/{{ inventory_hostname }}.conf
diff --git a/tools/scripts/ansible/cldr-apps-playbook.yml b/tools/scripts/ansible/cldr-apps-playbook.yml
new file mode 100644
index 0000000..97fd610
--- /dev/null
+++ b/tools/scripts/ansible/cldr-apps-playbook.yml
@@ -0,0 +1,64 @@
+- hosts: surveytool
+ become: yes
+ vars_files:
+ - vars/main.yml
+ - local-vars/local.yml
+ tasks:
+ - name: Create CLDR dir
+ file:
+ path: "{{ cldr_path }}"
+ state: directory
+ owner: "{{ cldr_openliberty_user }}"
+ group: "{{ cldr_openliberty_group }}"
+ mode: 0775
+ - name: Rotate CLDR logs
+ blockinfile:
+ path: "/etc/logrotate.d/surveytool-logs"
+ owner: root
+ mode: "0644"
+ block: |
+ {{ cldr_path }}/cldrmail.log {{ cldr_path }}/exception.log {
+ su {{ cldr_openliberty_user }} {{ cldr_openliberty_group }}
+ daily
+ rotate 14
+ compress
+ missingok
+ notifempty
+ dateext
+ create
+ }
+ create: true
+ - name: create st/README.md
+ template:
+ dest: "{{ cldr_st_path }}/README.md"
+ src: templates/st-readme.j2
+ force: yes # want this to reflect the latest
+ owner: "{{ cldr_openliberty_user }}"
+ group: "{{ cldr_openliberty_group }}"
+ mode: "0644"
+ - name: Create cldr.properties
+ template:
+ dest: "{{ cldr_path }}/cldr.properties"
+ src: templates/cldr-properties.j2
+ force: no
+ owner: "{{ cldr_openliberty_user }}"
+ group: "{{ cldr_openliberty_group }}"
+ mode: "0644"
+ notify: Restart OpenLiberty
+ - name: Checkout CLDR trunk
+ become: yes
+ become_user: "{{ cldr_surveytool_user }}"
+ git:
+ repo: https://github.com/unicode-org/cldr.git
+ dest: "{{ cldr_trunk_path }}"
+ force: no
+ update: no
+ version: master
+ # this is deep because we will need to keep updating
+ # it with history. It does not include LFS as that
+ # is not needed for the surveytool.
+ handlers:
+ - name: Restart OpenLiberty
+ service:
+ name: "{{ cldr_openliberty_service }}"
+ state: restarted
diff --git a/tools/scripts/ansible/hostname-playbook.yml b/tools/scripts/ansible/hostname-playbook.yml
new file mode 100644
index 0000000..8fdf1b1
--- /dev/null
+++ b/tools/scripts/ansible/hostname-playbook.yml
@@ -0,0 +1,7 @@
+- hosts: prod
+ become: yes
+ tasks:
+ - name: Set the hostname
+ # for sending email from st.unicode.org through corp.unicode.org
+ hostname:
+ name: "{{ inventory_hostname }}"
diff --git a/tools/scripts/ansible/hosts b/tools/scripts/ansible/hosts
index 6bbe1a4..46eec3f 100644
--- a/tools/scripts/ansible/hosts
+++ b/tools/scripts/ansible/hosts
@@ -4,6 +4,10 @@
[prod]
st.unicode.org
+# CLDR Commit Checker web hosting here
+[ccc]
+cldr-smoke.unicode.org
+
# "surveytool" includes both prod and staging
[surveytool:children]
staging
@@ -16,3 +20,7 @@
# auto-backup cldr db only for production
[backupdb:children]
prod
+
+# redact cldr db only for staging (cldr-smoke)
+[redactdb:children]
+staging
diff --git a/tools/scripts/ansible/mysql-playbook.yml b/tools/scripts/ansible/mysql-playbook.yml
new file mode 100644
index 0000000..19365cc
--- /dev/null
+++ b/tools/scripts/ansible/mysql-playbook.yml
@@ -0,0 +1,16 @@
+- hosts: surveytool
+ become: yes
+ vars_files:
+ - vars/main.yml
+ - vars/mysql.yml
+ - local-vars/local.yml
+ roles:
+ - { role: geerlingguy.mysql }
+ tasks:
+ - name: Setup /home/cldradmin/.my.cnf
+ template:
+ src: templates/mycnf.j2
+ dest: /home/cldradmin/.my.cnf
+ owner: cldradmin
+ group: cldradmin
+ mode: '0640'
diff --git a/tools/scripts/ansible/nginx-playbook.yml b/tools/scripts/ansible/nginx-playbook.yml
new file mode 100644
index 0000000..1852fc2
--- /dev/null
+++ b/tools/scripts/ansible/nginx-playbook.yml
@@ -0,0 +1,46 @@
+- hosts: surveytool
+ become: yes
+ vars_files:
+ - vars/main.yml
+ - local-vars/local.yml
+ roles:
+ - { role: geerlingguy.nginx }
+ tasks:
+ - name: Setup reverse proxy
+ blockinfile:
+ path: /etc/nginx/sites-enabled/default
+ block: |
+ # proxy /cldr-apps/ to tomcat, with generous timeouts
+ proxy_connect_timeout 60s;
+ proxy_send_timeout 500s;
+ proxy_read_timeout 500s;
+ location /cldr-apps/ {
+ rewrite ^/(.+)\._[\da-f]+_\.(js|css)$ /$1.$2 break;
+ allow all;
+ proxy_pass http://localhost:9080/cldr-apps/;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $remote_addr;
+ }
+ location /openapi/ {
+ allow all;
+ proxy_pass http://localhost:9080/openapi/;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $remote_addr;
+ }
+ marker: '# {mark} ANSIBLE MANAGED BLOCK'
+ insertafter: '^[\s]*server_name' # the LAST uncommented server block
+ notify: 'Restart Nginx'
+ - name: Setup index.html
+ copy:
+ src: templates/index.html
+ dest: /var/www/html
+ owner: root
+ group: root
+ mode: '0644'
+ handlers:
+ - name: Restart Nginx
+ service:
+ name: nginx
+ state: restarted
diff --git a/tools/scripts/ansible/openliberty-playbook.yml b/tools/scripts/ansible/openliberty-playbook.yml
new file mode 100644
index 0000000..438dbdf
--- /dev/null
+++ b/tools/scripts/ansible/openliberty-playbook.yml
@@ -0,0 +1,87 @@
+- hosts: surveytool
+ become: yes
+ gather_facts: yes
+ vars_files:
+ - vars/main.yml
+ - vars/openliberty.yml
+ - local-vars/local.yml
+ roles:
+ - role: adoptopenjdk_role
+ - role: openliberty # local version of devopstoolbox.openliberty
+ tasks:
+ # we don't want the defaultServer, we are going to install our own
+ - name: "Disable openliberty@defaultServer"
+ ansible.builtin.systemd:
+ name: openliberty@defaultServer
+ enabled: no
+ # this is to make sure openliberty@cldr can startup ok.
+ - name: setup perms on cldr/
+ file:
+ path: /var/lib/openliberty/usr/servers/{{ cldr_openliberty_server }}/
+ state: directory
+ mode: '0770'
+ owner: "{{ cldr_openliberty_user }}"
+ group: "{{ cldr_openliberty_group }}"
+ - name: "Copy defaultServer to cldr if needed"
+ ansible.builtin.copy:
+ force: no
+ remote_src: true
+ src: /var/lib/openliberty/usr/servers/defaultServer/server.xml
+ dest: /var/lib/openliberty/usr/servers/{{ cldr_openliberty_server }}/server.xml
+ owner: "{{ cldr_openliberty_user }}"
+ group: "{{ cldr_openliberty_group }}"
+ mode: '0660'
+ notify: Restart OpenLiberty
+ - name: set up cldr/server.env
+ template:
+ src: templates/server-env.j2
+ dest: "/var/lib/openliberty/usr/servers/{{ cldr_openliberty_server }}/server.env"
+ owner: "{{ cldr_openliberty_user }}"
+ group: "{{ cldr_openliberty_group }}"
+ mode: '0640'
+ notify: Restart OpenLiberty
+ - name: set up cldr/bootstrap.properties
+ template:
+ src: templates/bootstrap-properties.j2
+ dest: "/var/lib/openliberty/usr/servers/{{ cldr_openliberty_server }}/bootstrap.properties"
+ owner: "{{ cldr_openliberty_user }}"
+ group: "{{ cldr_openliberty_group }}"
+ mode: '0640'
+ notify: Restart OpenLiberty
+ - name: setup perms on cldr/jdbc
+ file:
+ path: /var/lib/openliberty/usr/servers/{{ cldr_openliberty_server }}/jdbc/
+ state: directory
+ mode: '0770'
+ owner: "{{ cldr_openliberty_user }}"
+ group: "{{ cldr_openliberty_group }}"
+ - name: setup perms on cldr/apps
+ file:
+ path: /var/lib/openliberty/usr/servers/{{ cldr_openliberty_server }}/apps/
+ state: directory
+ mode: '0770'
+ owner: "{{ cldr_openliberty_user }}"
+ group: "{{ cldr_openliberty_group }}"
+ - name: "Enable openliberty@cldr"
+ ansible.builtin.systemd:
+ name: "{{ cldr_openliberty_service }}"
+ enabled: yes # won't have SurveyTool but will be blank until first deploy
+ - name: Setup deploy-to-tomcat.sh
+ template:
+ src: templates/deploy-sh.j2
+ dest: /usr/local/bin/deploy-to-openliberty.sh
+ owner: root
+ group: root
+ mode: '0755'
+ - name: add surveytool to sudoers
+ template:
+ dest: /etc/sudoers.d/56-surveytool
+ owner: root
+ group: root
+ mode: '440'
+ src: templates/56-surveytool.j2
+ handlers:
+ - name: Restart OpenLiberty
+ service:
+ name: "{{ cldr_openliberty_service }}"
+ state: restarted
diff --git a/tools/scripts/ansible/packages-playbook.yml b/tools/scripts/ansible/packages-playbook.yml
new file mode 100644
index 0000000..4a042fa
--- /dev/null
+++ b/tools/scripts/ansible/packages-playbook.yml
@@ -0,0 +1,17 @@
+- hosts: all
+ become: yes
+ roles:
+ - role: derJD.journald
+ vars:
+ journald_options:
+ SystemMaxUse: 512M #reduce logfile use
+ tasks:
+ - name: Install some packages
+ apt:
+ pkg:
+ # these are for convenience of the user
+ - mosh
+ - emacs-nox
+ - byobu
+ # these are for monitoring
+ - prometheus-node-exporter
diff --git a/tools/scripts/ansible/redact-db-playbook.yml b/tools/scripts/ansible/redact-db-playbook.yml
new file mode 100644
index 0000000..4e1845f
--- /dev/null
+++ b/tools/scripts/ansible/redact-db-playbook.yml
@@ -0,0 +1,75 @@
+- hosts: redactdb
+ vars_files:
+ - vars/main.yml
+ - local-vars/local.yml
+ tasks:
+ - name: set up /home/cldradmin/.ssh/config to fetch db backup
+ template:
+ src: templates/cldrbackup/config.j2
+ dest: /home/cldradmin/.ssh/config
+ owner: cldradmin
+ group: cldradmin
+ mode: '0640'
+ - name: set up /home/cldradmin/.ssh/id_rsa
+ no_log: true
+ copy:
+ src: local-vars/cldrbackup/id_rsa
+ dest: /home/cldradmin/.ssh/id_rsa
+ owner: cldradmin
+ group: cldradmin
+ mode: '0600'
+ - name: set up /home/cldradmin/.ssh/id_rsa.pub
+ copy:
+ src: local-vars/cldrbackup/id_rsa.pub
+ dest: /home/cldradmin/.ssh/id_rsa.pub
+ owner: cldradmin
+ group: cldradmin
+ mode: '0640'
+ - name: set up /home/cldradmin/.ssh/known_hosts
+ copy:
+ src: local-vars/cldrbackup/known_hosts
+ dest: /home/cldradmin/.ssh/known_hosts
+ owner: cldradmin
+ group: cldradmin
+ mode: '0640'
+ - name: set up /home/cldradmin/redact-db.sql
+ copy:
+ src: templates/cldrbackup/redact-db.sql
+ dest: /home/cldradmin/redact-db.sql
+ owner: cldradmin
+ group: cldradmin
+ mode: '0640'
+ - name: set up /home/cldradmin/fetch-db.sh
+ template:
+ src: templates/cldrbackup/fetch_db_sh.j2
+ dest: /home/cldradmin/fetch-db.sh
+ owner: cldradmin
+ group: cldradmin
+ mode: '0640'
+ - name: set up /home/cldradmin/redact-db.sh
+ template:
+ src: templates/cldrbackup/redact_db_sh.j2
+ dest: /home/cldradmin/redact-db.sh
+ owner: cldradmin
+ group: cldradmin
+ mode: '0640'
+ - name: fetch and unzip db
+ # This playbook is intended to always make a change.
+ command: bash /home/cldradmin/fetch-db.sh # noqa 301
+ become: yes
+ become_user: cldradmin
+ - name: stop openliberty
+ become: true
+ service:
+ name: "{{ cldr_openliberty_service }}"
+ state: stopped
+ - name: redact db
+ # This playbook is intended to always make a change.
+ command: bash /home/cldradmin/redact-db.sh # noqa 301
+ become: yes
+ become_user: cldradmin
+ - name: restart openliberty
+ become: true
+ service:
+ name: "{{ cldr_openliberty_service }}"
+ state: restarted
diff --git a/tools/scripts/ansible/requirements.yml b/tools/scripts/ansible/requirements.yml
index c4e26ac..be70b1d 100644
--- a/tools/scripts/ansible/requirements.yml
+++ b/tools/scripts/ansible/requirements.yml
@@ -1,3 +1,16 @@
-sprylab.tomcat-ubuntu
-geerlingguy.mysql
-derjd.journald
+- src: geerlingguy.mysql
+ version: 3.3.0
+- src: geerlingguy.nginx
+ version: 2.8.0
+- src: derjd.journald
+ version: 0.0.1
+
+# for Java
+- src: sfuhrm.adoptopenjdk_role
+ version: 1.0.0
+ name: adoptopenjdk_role
+
+# does not support ubuntu yet
+#- src: https://github.com/devopstoolbox/openliberty
+# version: ccbd4d65753222d45c0c6a55e166a3417c6739a4
+# name: devopstoolbox.openliberty
diff --git a/tools/scripts/ansible/roles.yml b/tools/scripts/ansible/roles.yml
deleted file mode 100644
index b0db652..0000000
--- a/tools/scripts/ansible/roles.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-- src: geerlingguy.mysql
- version: 3.3.0
-- src: geerlingguy.nginx
- version: 2.8.0
-- src: derjd.journald
- version: 0.0.1
-# - src: geerlingguy.certbot
-# version: 3.1.0
\ No newline at end of file
diff --git a/tools/scripts/ansible/roles/openliberty/.travis.yml b/tools/scripts/ansible/roles/openliberty/.travis.yml
new file mode 100644
index 0000000..36bbf62
--- /dev/null
+++ b/tools/scripts/ansible/roles/openliberty/.travis.yml
@@ -0,0 +1,29 @@
+---
+language: python
+python: "2.7"
+
+# Use the new container infrastructure
+sudo: false
+
+# Install ansible
+addons:
+ apt:
+ packages:
+ - python-pip
+
+install:
+ # Install ansible
+ - pip install ansible
+
+ # Check ansible version
+ - ansible --version
+
+ # Create ansible.cfg with correct roles_path
+ - printf '[defaults]\nroles_path=../' >ansible.cfg
+
+script:
+ # Basic role syntax check
+ - ansible-playbook tests/test.yml -i tests/inventory --syntax-check
+
+notifications:
+ webhooks: https://galaxy.ansible.com/api/v1/notifications/
\ No newline at end of file
diff --git a/tools/scripts/ansible/roles/openliberty/README.md b/tools/scripts/ansible/roles/openliberty/README.md
new file mode 100644
index 0000000..225dd44
--- /dev/null
+++ b/tools/scripts/ansible/roles/openliberty/README.md
@@ -0,0 +1,38 @@
+Role Name
+=========
+
+A brief description of the role goes here.
+
+Requirements
+------------
+
+Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required.
+
+Role Variables
+--------------
+
+A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well.
+
+Dependencies
+------------
+
+A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles.
+
+Example Playbook
+----------------
+
+Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too:
+
+ - hosts: servers
+ roles:
+ - { role: username.rolename, x: 42 }
+
+License
+-------
+
+BSD
+
+Author Information
+------------------
+
+An optional section for the role authors to include contact information, or a website (HTML is not allowed).
diff --git a/tools/scripts/ansible/roles/openliberty/defaults/main.yml b/tools/scripts/ansible/roles/openliberty/defaults/main.yml
new file mode 100644
index 0000000..45d1d2a
--- /dev/null
+++ b/tools/scripts/ansible/roles/openliberty/defaults/main.yml
@@ -0,0 +1,2 @@
+---
+# defaults file for openliberty
diff --git a/tools/scripts/ansible/roles/openliberty/handlers/main.yml b/tools/scripts/ansible/roles/openliberty/handlers/main.yml
new file mode 100644
index 0000000..1f61575
--- /dev/null
+++ b/tools/scripts/ansible/roles/openliberty/handlers/main.yml
@@ -0,0 +1,2 @@
+---
+# handlers file for openliberty
diff --git a/tools/scripts/ansible/roles/openliberty/meta/main.yml b/tools/scripts/ansible/roles/openliberty/meta/main.yml
new file mode 100644
index 0000000..9cead58
--- /dev/null
+++ b/tools/scripts/ansible/roles/openliberty/meta/main.yml
@@ -0,0 +1,24 @@
+galaxy_info:
+ author: Steven R. Loomis
+ description: Ubuntu installer for OpenLiberty
+
+ license: Unicode-DFS-2016
+
+ min_ansible_version: 2.1
+
+ platforms:
+ - name: Ubuntu
+ versions:
+ - all
+
+ galaxy_tags: []
+ # List tags for your role here, one per line. A tag is a keyword that describes
+ # and categorizes the role. Users find roles by searching for tags. Be sure to
+ # remove the '[]' above, if you add tags to this list.
+ #
+ # NOTE: A tag is limited to a single word comprised of alphanumeric characters.
+ # Maximum 20 tags per role.
+
+dependencies: []
+ # List your role dependencies here, one per line. Be sure to remove the '[]' above,
+ # if you add dependencies to this list.
diff --git a/tools/scripts/ansible/roles/openliberty/tasks/main.yml b/tools/scripts/ansible/roles/openliberty/tasks/main.yml
new file mode 100644
index 0000000..9371b1b
--- /dev/null
+++ b/tools/scripts/ansible/roles/openliberty/tasks/main.yml
@@ -0,0 +1,21 @@
+---
+# tasks file for openliberty
+# Docs here: https://openliberty.io/blog/2020/04/09/microprofile-3-3-open-liberty-20004.html#yum
+- name: Install OpenLiberty GPG key
+ become: true
+ ansible.builtin.apt_key:
+ url: http://public.dhe.ibm.com/ibmdl/export/pub/software/openliberty/runtime/os-native-packages/public.key
+ state: present
+ when:
+ - ansible_distribution == "Ubuntu"
+- name: Add OpenLiberty repo
+ become: true
+ ansible.builtin.apt_repository:
+ repo: deb https://public.dhe.ibm.com/ibmdl/export/pub/software/openliberty/runtime/os-native-packages/deb/ /
+ state: present
+ filename: openliberty
+- name: Install OpenLiberty packages
+ become: true
+ ansible.builtin.apt:
+ pkg:
+ - openliberty
diff --git a/tools/scripts/ansible/roles/openliberty/tests/inventory b/tools/scripts/ansible/roles/openliberty/tests/inventory
new file mode 100644
index 0000000..878877b
--- /dev/null
+++ b/tools/scripts/ansible/roles/openliberty/tests/inventory
@@ -0,0 +1,2 @@
+localhost
+
diff --git a/tools/scripts/ansible/roles/openliberty/tests/test.yml b/tools/scripts/ansible/roles/openliberty/tests/test.yml
new file mode 100644
index 0000000..ee2ac06
--- /dev/null
+++ b/tools/scripts/ansible/roles/openliberty/tests/test.yml
@@ -0,0 +1,5 @@
+---
+- hosts: localhost
+ remote_user: root
+ roles:
+ - openliberty
diff --git a/tools/scripts/ansible/roles/openliberty/vars/main.yml b/tools/scripts/ansible/roles/openliberty/vars/main.yml
new file mode 100644
index 0000000..96b1aa5
--- /dev/null
+++ b/tools/scripts/ansible/roles/openliberty/vars/main.yml
@@ -0,0 +1,2 @@
+---
+# vars file for openliberty
diff --git a/tools/scripts/ansible/server-playbook.yml b/tools/scripts/ansible/server-playbook.yml
new file mode 100644
index 0000000..3b39b8e
--- /dev/null
+++ b/tools/scripts/ansible/server-playbook.yml
@@ -0,0 +1,63 @@
+- hosts: surveytool
+ become: yes
+ vars_files:
+ - vars/main.yml
+ - local-vars/local.yml
+ tasks:
+ - name: Install server packages
+ apt:
+ pkg:
+ - unzip # needed for deploy
+ # for monitoring
+ - prometheus-mysqld-exporter
+ # - prometheus-nginx-exporter # (not there yet)
+ - name: Setup surveytool user for deploy
+ user:
+ name: "{{ cldr_surveytool_user }}"
+ shell: /bin/bash
+ group: "{{ cldr_surveytool_group }}"
+ - name: Give access to surveytool user
+ file:
+ path: "{{ cldr_trunk_path }}"
+ owner: surveytool
+ recurse: yes
+ - name: Setup surveytool auth
+ authorized_key:
+ user: surveytool
+ key: '{{ surveytooldeploy.key }}'
+ - name: ensure cldradmin group is there
+ group:
+ name: cldradmin
+ state: present
+ - name: ensure cldradmin user is there
+ user:
+ name: cldradmin
+ comment: CLDR Admin
+ groups:
+ - cldradmin
+ append: yes # add to the groups, do not remove
+ state: present
+ create_home: true
+ - name: make sure /home/cldradmin/.ssh/ exists
+ file:
+ path: /home/cldradmin/.ssh/
+ owner: cldradmin
+ group: cldradmin
+ mode: '0700'
+ state: directory
+ - name: make sure /home/cldradmin/.ssh/authorized_keys exists
+ file:
+ dest: /home/cldradmin/.ssh/authorized_keys
+ owner: cldradmin
+ group: cldradmin
+ mode: '0600'
+ state: touch #https://github.com/ansible/ansible/issues/7490#issuecomment-497373505
+ modification_time: preserve
+ access_time: preserve
+ - name: add cldradmin to sudoers
+ template:
+ dest: /etc/sudoers.d/55-cldradmin-users
+ owner: root
+ group: root
+ mode: '440'
+ src: templates/55-cldradmin.conf
diff --git a/tools/scripts/ansible/setup-playbook.yml b/tools/scripts/ansible/setup-playbook.yml
index 580ac0c..4964805 100644
--- a/tools/scripts/ansible/setup-playbook.yml
+++ b/tools/scripts/ansible/setup-playbook.yml
@@ -1,201 +1,11 @@
-- hosts: surveytool
- become: yes
- vars_files:
- - vars/main.yml
- - local-vars/local.yml
- roles:
- - { role: geerlingguy.mysql }
- - { role: geerlingguy.nginx }
- tasks:
- - name: Install server packages
- apt:
- pkg:
- - tomcat8
- - tomcat8-admin # needed for deploy
- - unzip # needed for deploy
- # for monitoring
- - prometheus-mysqld-exporter
- # - prometheus-nginx-exporter # (not there yet)
- - name: Setup Server Context
- template:
- src: templates/context.j2
- dest: /etc/tomcat8/context.xml
- owner: root
- group: tomcat8
- mode: '0640'
- notify: Restart Tomcat
- - name: Setup tomcat8/server.xml
- copy:
- src: templates/server.xml
- dest: /etc/tomcat8/server.xml
- owner: root
- group: tomcat8
- mode: '0640'
- notify: Restart Tomcat
- - name: Setup Server Users
- template:
- src: templates/users.j2
- dest: /etc/tomcat8/tomcat-users.xml
- owner: root
- group: tomcat8
- mode: '0640'
- notify: Restart Tomcat
- - name: Create CLDR dir
- file:
- path: /var/lib/tomcat8/cldr
- state: directory
- owner: tomcat8
- group: tomcat8
- mode: 0775
- - name: Create cldr.properties
- template:
- dest: /var/lib/tomcat8/cldr/cldr.properties
- src: templates/cldr-properties.j2
- force: no
- owner: tomcat8
- group: tomcat8
- mode: "0644"
- notify: Restart Tomcat
- - name: Checkout CLDR trunk
- git:
- repo: https://github.com/unicode-org/cldr.git
- dest: /var/lib/tomcat8/cldr/cldr-trunk
- force: no
- update: no
- version: master
- # this is deep because we will need to keep updating
- # it with history. It does not include LFS as that
- # is not needed for the surveytool.
- - name: Setup index.html
- copy:
- src: templates/index.html
- dest: /var/www/html
- owner: root
- group: root
- mode: '0644'
- - name: Setup reverse proxy
- blockinfile:
- path: /etc/nginx/sites-enabled/default
- block: |
- # proxy /cldr-apps/ to tomcat
- location /cldr-apps/ {
- rewrite ^/(.+)\._[\da-f]+_\.(js|css)$ /$1.$2 break;
- allow all;
- proxy_pass http://localhost:8080/cldr-apps/;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $remote_addr;
- }
- marker: '# {mark} ANSIBLE MANAGED BLOCK'
- insertafter: '^[\s]*server_name' # the LAST uncommented server block
- notify: 'Restart Nginx'
- - name: Setup surveytool user for deploy
- user:
- name: surveytool
- shell: /bin/bash
- - name: Give access to surveytool user
- file:
- path: /var/lib/tomcat8/cldr/cldr-trunk
- owner: surveytool
- recurse: yes
- - name: Setup surveytool auth
- authorized_key:
- user: surveytool
- key: '{{ surveytooldeploy.key }}'
- - name: Setup deploy-to-tomcat.sh
- template:
- src: templates/deploy-sh.j2
- dest: /usr/local/bin/deploy-to-tomcat.sh
- owner: root
- group: root
- mode: '0755'
- - name: ensure cldradmin group is there
- group:
- name: cldradmin
- state: present
- - name: ensure cldradmin user is there
- user:
- name: cldradmin
- comment: CLDR Admin
- groups:
- - cldradmin
- append: yes # add to the groups, do not remove
- state: present
- create_home: true
- - name: Setup /home/cldradmin/.my.cnf
- template:
- src: templates/mycnf.j2
- dest: /home/cldradmin/.my.cnf
- owner: cldradmin
- group: cldradmin
- mode: '0640'
- - name: make sure /home/cldradmin/.ssh/ exists
- file:
- path: /home/cldradmin/.ssh/
- owner: cldradmin
- group: cldradmin
- mode: '0700'
- state: directory
- - name: make sure /home/cldradmin/.ssh/authorized_keys exists
- file:
- dest: /home/cldradmin/.ssh/authorized_keys
- owner: cldradmin
- group: cldradmin
- mode: '0600'
- state: touch #https://github.com/ansible/ansible/issues/7490#issuecomment-497373505
- modification_time: preserve
- access_time: preserve
- - name: add cldradmin to sudoers
- template:
- dest: /etc/sudoers.d/55-cldradmin-users
- owner: root
- group: root
- mode: '440'
- src: templates/55-cldradmin.conf
- handlers:
- - name: Restart Tomcat
- service:
- name: tomcat8
- state: restarted
- - name: Restart Nginx
- service:
- name: nginx
- state: restarted
-
-- hosts: all
- become: yes
- roles:
- - role: derJD.journald
- vars:
- journald_options:
- SystemMaxUse: 512M #reduce logfile use
- tasks:
- - name: Install some packages
- apt:
- pkg:
- # these are for convenience of the user
- - mosh
- - emacs-nox
- - byobu
- # these are for monitoring
- - prometheus-node-exporter
-
-- hosts: letsencrypt
- become: yes
- vars_files:
- - vars/main.yml
- - local-vars/local.yml
- tasks:
- - name: Install certbot packages
- apt:
- pkg:
- - python3-certbot-nginx
- - name: setup certbot
- command: >
- sudo certbot --nginx --agree-tos -m {{ certbot_admin_email }}
- -d {{ inventory_hostname }} --non-interactive
- --keep --redirect --uir --hsts --staple-ocsp --must-staple
- args:
- creates: /etc/letsencrypt/renewal/{{ inventory_hostname }}.conf
-
+# need group openliberty to exist, so do that first
+- import_playbook: openliberty-playbook.yml
+- import_playbook: server-playbook.yml
+- import_playbook: mysql-playbook.yml
+- import_playbook: nginx-playbook.yml
+- import_playbook: cldr-apps-playbook.yml
+- import_playbook: packages-playbook.yml
+- import_playbook: certbot-playbook.yml
+- import_playbook: hostname-playbook.yml
- import_playbook: backup-db-playbook.yml
+# - import_playbook: ccc-playbook.yml
diff --git a/tools/scripts/ansible/templates/56-surveytool.j2 b/tools/scripts/ansible/templates/56-surveytool.j2
new file mode 100644
index 0000000..33c593c
--- /dev/null
+++ b/tools/scripts/ansible/templates/56-surveytool.j2
@@ -0,0 +1,5 @@
+# managed by ansible setup-playbook.yml
+{{ cldr_surveytool_user }} ALL=(root) NOPASSWD: /usr/sbin/service {{ cldr_openliberty_service }} start
+{{ cldr_surveytool_user }} ALL=(root) NOPASSWD: /usr/sbin/service {{ cldr_openliberty_service }} stop
+{{ cldr_surveytool_user }} ALL=(root) NOPASSWD: /usr/sbin/service {{ cldr_openliberty_service }} restart
+{{ cldr_surveytool_user }} ALL=(root) NOPASSWD: /usr/sbin/service {{ cldr_openliberty_service }} status
diff --git a/tools/scripts/ansible/templates/bootstrap-properties.j2 b/tools/scripts/ansible/templates/bootstrap-properties.j2
new file mode 100644
index 0000000..575ebd1
--- /dev/null
+++ b/tools/scripts/ansible/templates/bootstrap-properties.j2
@@ -0,0 +1,7 @@
+# This is set up and maintained by the Ansible script.
+# If you change this file, your changes may be replaced.
+
+# This is a "new" property which specifies
+# the full path to the config dir.
+# It requires a code update in CLDRConfigImpl.
+org.unicode.cldr.util.CLDRConfigImpl.cldrHome="{{ cldr_path }}"
diff --git a/tools/scripts/ansible/templates/cldr-properties.j2 b/tools/scripts/ansible/templates/cldr-properties.j2
index 8124458..08d3469 100644
--- a/tools/scripts/ansible/templates/cldr-properties.j2
+++ b/tools/scripts/ansible/templates/cldr-properties.j2
@@ -11,7 +11,7 @@
#CLDR_MESSAGE=
## Special message shown to users.
-CLDR_HEADER=Welcome to SurveyTool@surveytool. Please edit /var/lib/tomcat8/cldr/cldr.properties to change CLDR_HEADER (to change this message), or comment it out entirely. Also see /var/lib/tomcat8/cldr/admin.html to get to the admin panel.
+CLDR_HEADER=Welcome to SurveyTool@surveytool. Please edit {{ cldr_path }}/cldr.properties to change CLDR_HEADER (to change this message), or comment it out entirely. Also see {{ cldr_path }}/admin.html to get to the admin panel.
## Current SurveyTool phase
CLDR_PHASE=BETA
@@ -22,11 +22,8 @@
## 'new' version
CLDR_NEWVERSION={{ surveytooldeploy.newversion }}
-## Current SurveyTool phase
-CLDR_PHASE=BETA
-
## CLDR trunk. Default value shown
-CLDR_DIR=/var/lib/tomcat8/cldr/cldr-trunk
+CLDR_DIR={{ cldr_trunk_path }}
## SMTP server. Mail is disabled by default.
#CLDR_SMTP=127.0.0.1
diff --git a/tools/scripts/ansible/templates/cldrbackup/fetch_db_sh.j2 b/tools/scripts/ansible/templates/cldrbackup/fetch_db_sh.j2
new file mode 100644
index 0000000..e9ae005
--- /dev/null
+++ b/tools/scripts/ansible/templates/cldrbackup/fetch_db_sh.j2
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+DATABASE_NAME={{ cldr_database_name }}
+FNAME={{ cldr_database_name }}-DUMP-`date +%Y-%m-%d`
+RSYNC_SOURCE={{ cldr_db_backup_destination }}
+
+rsync ${RSYNC_SOURCE}/${FNAME}.sql.xz /home/cldradmin
+unxz ${FNAME}.sql.xz
diff --git a/tools/scripts/ansible/templates/cldrbackup/redact-db.sql b/tools/scripts/ansible/templates/cldrbackup/redact-db.sql
new file mode 100644
index 0000000..c73993f
--- /dev/null
+++ b/tools/scripts/ansible/templates/cldrbackup/redact-db.sql
@@ -0,0 +1,2 @@
+UPDATE cldr_users SET password=SUBSTRING(MD5(RAND()) FROM 1 FOR 6), name=CONCAT(org,'#',id),email=CONCAT('u_',id,'@',LOWER(org),'.example.com') WHERE id>1;
+UPDATE cldr_forum_posts SET text='(redacted 🆗)';
diff --git a/tools/scripts/ansible/templates/cldrbackup/redact_db_sh.j2 b/tools/scripts/ansible/templates/cldrbackup/redact_db_sh.j2
new file mode 100644
index 0000000..beca8a0
--- /dev/null
+++ b/tools/scripts/ansible/templates/cldrbackup/redact_db_sh.j2
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+DATABASE_NAME={{ cldr_database_name }}
+FNAME={{ cldr_database_name }}-DUMP-`date +%Y-%m-%d`
+
+mysql ${DATABASE_NAME} --show-warnings --default-character-set=utf8mb4 < ${FNAME}.sql
+mysql ${DATABASE_NAME} --show-warnings --default-character-set=utf8mb4 < redact-db.sql
+rm ${FNAME}.sql
diff --git a/tools/scripts/ansible/templates/context.j2 b/tools/scripts/ansible/templates/context.j2
deleted file mode 100644
index dbe5e51..0000000
--- a/tools/scripts/ansible/templates/context.j2
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Context>
-<WatchedResource>WEB-INF/web.xml</WatchedResource>
-<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
-<Resource name="jdbc/SurveyTool"
- auth="Container" type="javax.sql.DataSource"
- username="surveytool"
- driverClassName="com.mysql.jdbc.Driver"
- password="{{ mysql_users[0].password }}"
- url="jdbc:mysql://localhost:3306/cldrdb?ConnectionRetryCount=5&ConnectionRetryDelay=20&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC"
- maxActive="8" maxIdle="4" removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true" defaultAutoCommit="false"
- poolPreparedStatements="true" maxOpenPreparedStatements="150"
-/>
-</Context>
\ No newline at end of file
diff --git a/tools/scripts/ansible/templates/deploy-sh.j2 b/tools/scripts/ansible/templates/deploy-sh.j2
index 2881e74..0d0b1e4 100644
--- a/tools/scripts/ansible/templates/deploy-sh.j2
+++ b/tools/scripts/ansible/templates/deploy-sh.j2
@@ -1,18 +1,18 @@
#!/bin/bash
# Note: this is managed by Ansible, as deploy-sh.j2
-# Don't modify this file.
+# Don't modify this file unless its name is deploy-sh.j2
GITHUB_SHA=$1
UNLOCK=$2
WORKDIR=${TMPDIR-/tmp} # keep all random files here
-export TPASS={{ surveytooldeploy.password }} # from surveytooldeploy.password
-export TUSER=surveytooldeploy # fixed for now
+SERVICE="{{ cldr_openliberty_service }}"
+# TODO: "dogit" could be split out as a separate script
dogit() {
rm -f ${WORKDIR}/git-list.txt
if [[ ${GITHUB_SHA} = "master" ]];
then
- echo "changing 'master' to 'origin/master' to get the latest"
- GITHUB_SHA=origin/master
+ echo "changing 'master' to 'origin/master' to get the latest"
+ GITHUB_SHA=origin/master
fi
git fetch -p || exit 1
git clean -f -d || echo 'warning: err on cleanup'
@@ -23,42 +23,61 @@
git rev-parse --short "${GITHUB_SHA}" || exit 1 # fail on err
if [[ $(git rev-parse --short HEAD) = $(git rev-parse --short "${GITHUB_SHA}") ]];
then
- echo "No checkout needed. Continuing with redeploy."
+ echo "No checkout needed. Continuing with redeploy."
else
- echo "Deploy will include these new items:"
- echo "---"
- (git log --oneline HEAD..${GITHUB_SHA} | tee ${WORKDIR}/git-list.txt) || exit 1
- echo "---"
- if [[ ! -s ${WORKDIR}/git-list.txt ]]; # if empty..
- then
- echo "Note, ${GITHUB_SHA} is not ahead of HEAD" $(git rev-parse --short HEAD)
- echo "Checking for items that would be REVERTED if we proceed:"
- echo "---"
- git log --oneline ${GITHUB_SHA}..HEAD
- echo "---"
- if [[ "${UNLOCK}" = "--override" ]];
- then
- echo ".. continuing anyway! due to " "${UNLOCK}"
- else
- echo "STOP. Check the override box if you really want to do this"
- exit 1
- fi
- fi
- git checkout -f ${GITHUB_SHA}
- echo "HEAD is now at" $(git rev-parse --short HEAD) "!"
+ echo "Deploy will include these new items:"
+ echo "---"
+ (git log --oneline HEAD..${GITHUB_SHA} | tee ${WORKDIR}/git-list.txt) || exit 1
+ echo "---"
+ if [[ ! -s ${WORKDIR}/git-list.txt ]]; # if empty..
+ then
+ echo "Note, ${GITHUB_SHA} is not ahead of HEAD" $(git rev-parse --short HEAD)
+ echo "Checking for items that would be REVERTED if we proceed:"
+ echo "---"
+ git log --oneline ${GITHUB_SHA}..HEAD
+ echo "---"
+ if [[ "${UNLOCK}" = "--override" ]];
+ then
+ echo ".. continuing anyway! due to " "${UNLOCK}"
+ else
+ echo "STOP. Check the override box if you really want to do this"
+ exit 1
+ fi
+ fi
+ git checkout -f ${GITHUB_SHA}
+ echo "HEAD is now at" $(git rev-parse --short HEAD) "!"
fi
}
# Check git first, before undeploying. Want to exit early
-(cd /var/lib/tomcat8/cldr/cldr-trunk/ && dogit ) || exit 1
-# undeploy old ST
-curl -u ${TUSER}:${TPASS} 'http://localhost:8080/manager/text/undeploy?path=/cldr-apps'
-# reset last deploy status
-rm -fv ${WORKDIR}/cldr-apps.war ${WORKDIR}/deploystatus
-# copy cldr-apps.war from action runner to server
-dd bs=1024000 status=progress of=${WORKDIR}/cldr-apps.war
+(cd {{ cldr_trunk_path }} && dogit ) || exit 1
+#
+# stop server
+sudo -u root /usr/sbin/service ${SERVICE} stop
+# clear cache
+if [[ -d /srv/st/config/.cache ]];
+then
+ echo "Deleting cache /srv/config/.cache"
+ rm -rf /srv/st/config/.cache
+fi
+rm -fv ${WORKDIR}/cldr-apps.zip ${WORKDIR}/deploystatus
+# copy cldr-apps.zip from action runner to server
+dd bs=1024000 status=progress of=${WORKDIR}/cldr-apps.zip
# this counts the # of files to make sure it's not too short, but also verifies that unzip is OK
-echo ; echo -n 'Unzip check, # of files in cldr-apps.war: '
-(unzip -l ${WORKDIR}/cldr-apps.war | wc -l ) || exit 1
+echo ; echo -n 'Unzip check, # of files in cldr-apps.zip: '
+(unzip -l ${WORKDIR}/cldr-apps.zip | wc -l ) || exit 1
+cd ${WORKDIR} || exit 1
+rm -rf ./deploy || exit 1
+mkdir ./deploy
+cd ./deploy
+unzip ${WORKDIR}/cldr-apps.zip
+if [[ ! -d ./wlp ]];
+then
+ echo "Error, did not get a ./wlp dir from this zip.. stop"
+ exit 1
+fi
# Now, do the deployment!
-curl -q -u ${TUSER}:${TPASS} 'http://localhost:8080/manager/text/deploy?path=/cldr-apps&tag=cldr-apps&update=true' -T ${WORKDIR}/cldr-apps.war | tee ${WORKDIR}/deploystatus
+# exclude these two files
+rsync -r --exclude server.env --exclude workarea --exclude bootstrap.properties -v \
+ --delete ./wlp/usr/servers/cldr/* /var/lib/openliberty/usr/servers/cldr/ || exit 1
+sudo -u root /usr/sbin/service ${SERVICE} start || exit 1
\ No newline at end of file
diff --git a/tools/scripts/ansible/templates/mycnf.j2 b/tools/scripts/ansible/templates/mycnf.j2
index 3fd9c7f..b2de3c7 100644
--- a/tools/scripts/ansible/templates/mycnf.j2
+++ b/tools/scripts/ansible/templates/mycnf.j2
@@ -1,5 +1,7 @@
# managed by ansible setup-playboook.yml
[client]
user=cldradmin
-database={{ cldr_database_name }}
password={{ cldradmin_pw }}
+
+[mysql]
+database={{ cldr_database_name }}
diff --git a/tools/scripts/ansible/templates/server-env.j2 b/tools/scripts/ansible/templates/server-env.j2
new file mode 100644
index 0000000..5f7ada4
--- /dev/null
+++ b/tools/scripts/ansible/templates/server-env.j2
@@ -0,0 +1,7 @@
+# This is set up and maintained by the Ansible script.
+# If you change this file, your changes may be replaced.
+MYSQL_USER=surveytool
+MYSQL_PASSWORD={{ mysql_users[0].password }}
+MYSQL_DB=cldrdb
+WLP_SKIP_MAXPERMSIZE=true
+LOG_DIR=/var/log/openliberty/cldr
diff --git a/tools/scripts/ansible/templates/server.xml b/tools/scripts/ansible/templates/server.xml
deleted file mode 100644
index f58cdd8..0000000
--- a/tools/scripts/ansible/templates/server.xml
+++ /dev/null
@@ -1,145 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<!-- Note: A "Server" is not itself a "Container", so you may not
- define subcomponents such as "Valves" at this level.
- Documentation at /docs/config/server.html
- -->
-<Server address="127.0.0.1" port="8005" shutdown="SHUTDOWN">
- <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
- <!-- Security listener. Documentation at /docs/config/listeners.html
- <Listener className="org.apache.catalina.security.SecurityListener" />
- -->
- <!--APR library loader. Documentation at /docs/apr.html -->
- <!--
- <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
- -->
- <!-- Prevent memory leaks due to use of particular java/javax APIs-->
- <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
- <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
- <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
-
- <!-- Global JNDI resources
- Documentation at /docs/jndi-resources-howto.html
- -->
- <GlobalNamingResources>
- <!-- Editable user database that can also be used by
- UserDatabaseRealm to authenticate users
- -->
- <Resource name="UserDatabase" auth="Container"
- type="org.apache.catalina.UserDatabase"
- description="User database that can be updated and saved"
- factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
- pathname="conf/tomcat-users.xml" />
- </GlobalNamingResources>
-
- <!-- A "Service" is a collection of one or more "Connectors" that share
- a single "Container" Note: A "Service" is not itself a "Container",
- so you may not define subcomponents such as "Valves" at this level.
- Documentation at /docs/config/service.html
- -->
- <Service name="Catalina">
-
- <!--The connectors can use a shared executor, you can define one or more named thread pools-->
- <!--
- <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
- maxThreads="150" minSpareThreads="4"/>
- -->
-
-
- <!-- A "Connector" represents an endpoint by which requests are received
- and responses are returned. Documentation at :
- Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
- Java AJP Connector: /docs/config/ajp.html
- APR (HTTP/AJP) Connector: /docs/apr.html
- Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
- -->
- <Connector address="127.0.0.1" port="8080" protocol="HTTP/1.1"
- connectionTimeout="20000"
- URIEncoding="UTF-8"
- redirectPort="8443" />
- <!-- A "Connector" using the shared thread pool-->
- <!--
- <Connector executor="tomcatThreadPool"
- address="127.0.0.1" port="8080" protocol="HTTP/1.1"
- connectionTimeout="20000"
- redirectPort="8443" />
- -->
- <!-- Define a SSL/TLS HTTP/1.1 Connector on port 8443
- This connector uses the NIO implementation that requires the JSSE
- style configuration. When using the APR/native implementation, the
- OpenSSL style configuration is required as described in the APR/native
- documentation -->
- <!--
- <Connector address="127.0.0.1" port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
- maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
- clientAuth="false" sslProtocol="TLS" />
- -->
-
- <!-- Define an AJP 1.3 Connector on port 8009 -->
- <Connector address="127.0.0.1" port="8009" protocol="AJP/1.3" redirectPort="8443" />
-
-
- <!-- An Engine represents the entry point (within Catalina) that processes
- every request. The Engine implementation for Tomcat stand alone
- analyzes the HTTP headers included with the request, and passes them
- on to the appropriate Host (virtual host).
- Documentation at /docs/config/engine.html -->
-
- <!-- You should set jvmRoute to support load-balancing via AJP ie :
- <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
- -->
- <Engine name="Catalina" defaultHost="localhost">
-
- <!--For clustering, please take a look at documentation at:
- /docs/cluster-howto.html (simple how to)
- /docs/config/cluster.html (reference documentation) -->
- <!--
- <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
- -->
-
- <!-- Use the LockOutRealm to prevent attempts to guess user passwords
- via a brute-force attack -->
- <Realm className="org.apache.catalina.realm.LockOutRealm">
- <!-- This Realm uses the UserDatabase configured in the global JNDI
- resources under the key "UserDatabase". Any edits
- that are performed against this UserDatabase are immediately
- available for use by the Realm. -->
- <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
- resourceName="UserDatabase"/>
- </Realm>
-
- <Host name="localhost" appBase="webapps"
- unpackWARs="true" autoDeploy="true">
-
- <!-- SingleSignOn valve, share authentication between web applications
- Documentation at: /docs/config/valve.html -->
- <!--
- <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
- -->
-
- <!-- Access log processes all example.
- Documentation at: /docs/config/valve.html
- Note: The pattern used is equivalent to using pattern="common" -->
- <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
- prefix="localhost_access_log" suffix=".txt"
- pattern="%h %l %u %t "%r" %s %b" />
-
- </Host>
- </Engine>
- </Service>
-</Server>
diff --git a/tools/scripts/ansible/templates/st-readme.j2 b/tools/scripts/ansible/templates/st-readme.j2
new file mode 100644
index 0000000..aa3688e
--- /dev/null
+++ b/tools/scripts/ansible/templates/st-readme.j2
@@ -0,0 +1,9 @@
+WHAT IS THIS DIRECTORY
+---
+
+This directory has the configuration data for the CLDR Survey Tool.
+
+For more on CLDR: <http://cldr.unicode.org>
+
+- {{ cldr_trunk_path }}: this is a checkout of the CLDR source repo, from <https://github.com/unicode-org/cldr.git>
+- {{ cldr_path }}: this contains configuration info for the Survey Tool.
diff --git a/tools/scripts/ansible/templates/users.j2 b/tools/scripts/ansible/templates/users.j2
deleted file mode 100644
index 11496eb..0000000
--- a/tools/scripts/ansible/templates/users.j2
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<tomcat-users xmlns="http://tomcat.apache.org/xml"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
- version="1.0">
-<!-- user for deploying cldr-apps -->
-<user username="surveytooldeploy" password="{{ surveytooldeploy.password }}" roles="standard,manager-script" />
-</tomcat-users>
\ No newline at end of file
diff --git a/tools/scripts/ansible/vagrant-playbook.yml b/tools/scripts/ansible/vagrant-playbook.yml
new file mode 100644
index 0000000..fea832a
--- /dev/null
+++ b/tools/scripts/ansible/vagrant-playbook.yml
@@ -0,0 +1,3 @@
+# the Vagrant playbook is used for testing, see Vagrantfile
+- import_playbook: setup-playbook.yml
+# Note: any additional setup specifically for vagrant could be done here, such as adding a self-signed ssl cert
diff --git a/tools/scripts/ansible/vars/main.yml b/tools/scripts/ansible/vars/main.yml
index 2655aa3..1085c0d 100644
--- a/tools/scripts/ansible/vars/main.yml
+++ b/tools/scripts/ansible/vars/main.yml
@@ -1,11 +1,25 @@
+ansible_python_interpreter: python3
+
cldr_database_name: cldrdb
cldr_db_backup_host: corp.unicode.org
cldr_db_backup_user: cldrbackup
cldr_db_backup_destination: "{{ cldr_db_backup_host }}:/home/users/{{ cldr_db_backup_user }}"
-mysql_databases:
- - name: "{{ cldr_database_name }}"
- encoding: latin1
- collation: latin1_bin
-mysql_enabled_on_startup: true
-mysql_bind_address: localhost
-ansible_python_interpreter: python3
+
+cldr_openliberty_user: openliberty
+cldr_openliberty_group: "{{ cldr_openliberty_user }}"
+# the name of the server
+cldr_openliberty_server: cldr
+cldr_openliberty_service: openliberty@{{ cldr_openliberty_server }}
+
+cldr_surveytool_user: surveytool
+cldr_surveytool_group: "{{ cldr_openliberty_group }}"
+
+# this is the path to the server config
+cldr_st_path: /srv/st
+cldr_path: "{{ cldr_st_path }}/config"
+# this is the path to the CLDR checkout
+cldr_trunk_path: "{{ cldr_st_path }}/src/cldr"
+
+# Java
+adoptopenjdk_package: adoptopenjdk-11-openj9
+adoptopenjdk_state: present
diff --git a/tools/scripts/ansible/vars/mysql.yml b/tools/scripts/ansible/vars/mysql.yml
new file mode 100644
index 0000000..02d6279
--- /dev/null
+++ b/tools/scripts/ansible/vars/mysql.yml
@@ -0,0 +1,6 @@
+mysql_databases:
+ - name: "{{ cldr_database_name }}"
+ encoding: latin1
+ collation: latin1_bin
+mysql_enabled_on_startup: true
+mysql_bind_address: localhost
diff --git a/tools/scripts/ansible/vars/openliberty.yml b/tools/scripts/ansible/vars/openliberty.yml
new file mode 100644
index 0000000..f4c8934
--- /dev/null
+++ b/tools/scripts/ansible/vars/openliberty.yml
@@ -0,0 +1,10 @@
+# This file contains variables used by devopstoolbox.openliberty for Survey Tool
+openliberty_firewall_configure: false
+openliberty_packages_state: present
+openliberty_remove_packages: true
+openliberty_enable_service: false
+openliberty_enable_selinux: false
+openliberty_copy_templates: false
+openliberty_users:
+ - user: "{{ cldr_openliberty_user }}"
+ group: "{{ cldr_openliberty_group }}"
diff --git a/tools/scripts/build/bin-build/ConsoleCheckCLDR b/tools/scripts/build/bin-build/ConsoleCheckCLDR
deleted file mode 100644
index 1faabe7..0000000
--- a/tools/scripts/build/bin-build/ConsoleCheckCLDR
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh
-BEST=${HOME}/best
-CLDR_TOOLS=${BEST}/cldr-tools
-if [ -d tools/java ];
-then
- CLDR_TOOLS=`pwd`/tools/java
-fi
-
-LIBS=${CLDR_TOOLS}/libs
-ALL_LIBS=`echo ${LIBS}/*.jar | tr ' ' ':'`
-CP=${CLDR_TOOLS}/cldr.jar:${ALL_LIBS}
-java -classpath "${CP}" ${JAVA_OPTS} org.unicode.cldr.test.ConsoleCheckCLDR $@
diff --git a/tools/scripts/build/bin-build/KILLALLJAVA.sh b/tools/scripts/build/bin-build/KILLALLJAVA.sh
deleted file mode 100644
index 97441cb..0000000
--- a/tools/scripts/build/bin-build/KILLALLJAVA.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-echo "Shutting down Smoketest tomcat"
-ssh st.unicode.org 'sh tomcat/bin/shutdown.sh'&
-echo "Shutting down buildbot tomcat"
-cd ${HOME}
-killall -9 java
-killall -9 java
-killall -9 java
-sleep 2
-RUNDIR=${HOME}
-
-sh ${HOME}/tomcat/bin/startup.sh
-sleep 10
-echo "Deleting unpacked smoketest on st"
-ssh st.unicode.org 'rm -rf tomcat/webapps/smoketest'
-exit 0
diff --git a/tools/scripts/build/bin-build/XMLValidator b/tools/scripts/build/bin-build/XMLValidator
deleted file mode 100644
index ed72d03..0000000
--- a/tools/scripts/build/bin-build/XMLValidator
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh
-CLDR_TOOLS=${BUILDER_BEST}/cldr-tools
-if [ -d tools/java ];
-then
- CLDR_TOOLS=`pwd`/tools/java
-fi
-
-LIBS=${CLDR_TOOLS}/libs
-ALL_LIBS=`echo ${LIBS}/*.jar | tr ' ' ':'`
-CP=${CLDR_TOOLS}/cldr.jar:${ALL_LIBS}
-#echo CP ${CP}
-java -classpath "${CP}" org.unicode.cldr.util.XMLValidator $@
diff --git a/tools/scripts/build/bin-build/bootloop.sh b/tools/scripts/build/bin-build/bootloop.sh
deleted file mode 100644
index 9a6d081..0000000
--- a/tools/scripts/build/bin-build/bootloop.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-. ${HOME}/bin-build/stbitten-env.sh
-echo looping running bitten ${BUILDER_NAME}
-while [[ 1 = 1 ]];
-do
- runbitten.sh
- sleep 1100
-done
diff --git a/tools/scripts/build/bin-build/build-icu4c.sh b/tools/scripts/build/bin-build/build-icu4c.sh
deleted file mode 100644
index 9e21a37..0000000
--- a/tools/scripts/build/bin-build/build-icu4c.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-mkdir icu4c-build
-set -x
-cd icu4c-build
-#export CC="ccache gcc"
-#export CXX="ccache g++"
-`pwd`/../icu4c/source/configure --disable-extras --disable-samples && make tests
diff --git a/tools/scripts/build/bin-build/cleanup.sh b/tools/scripts/build/bin-build/cleanup.sh
deleted file mode 100644
index 5f2a597..0000000
--- a/tools/scripts/build/bin-build/cleanup.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-/usr/bin/find ${BUILDER_DIR} -maxdepth 1 -name 'build_*' -mtime +7 -ls -exec echo rm -rf {} \;
-#/usr/bin/find /tmp/ -name 'ant_log*' -mtime +7 -exec /bin/rm -rf {} \;
diff --git a/tools/scripts/build/bin-build/config.ini.sample b/tools/scripts/build/bin-build/config.ini.sample
deleted file mode 100644
index 94e030f..0000000
--- a/tools/scripts/build/bin-build/config.ini.sample
+++ /dev/null
@@ -1,11 +0,0 @@
-[repository]
-root=http://unicode.org/repos/cldr
-icuroot=http://source.icu-project.org/repos/icu
-
-[cldr]
-best=/home/st-bitten/best
-tomcat=/home/st-bitten/src/tomcat
-hostport=http://127.0.0.1:8180
-managerurl=http://127.0.0.1:8180/manager/text/
-manageruser=rukiddingme
-managerpass=hunter42
diff --git a/tools/scripts/build/bin-build/fixperm.sh b/tools/scripts/build/bin-build/fixperm.sh
deleted file mode 100644
index e56f4ac..0000000
--- a/tools/scripts/build/bin-build/fixperm.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/bash
-# chmod -R u+w ${HOME}/build/common_trunk ${HOME}/build/cldr-tools ${HOME}/build/cldr-apps ${HOME}/build/cldr-trunk ${HOME}/build/cldr-branch
-chmod -R u+w ${BUILDER_DIR}
-exit 0
diff --git a/tools/scripts/build/bin-build/kick-server.sh b/tools/scripts/build/bin-build/kick-server.sh
deleted file mode 100644
index fc646dd..0000000
--- a/tools/scripts/build/bin-build/kick-server.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-echo 0
diff --git a/tools/scripts/build/bin-build/manualbuild.txt b/tools/scripts/build/bin-build/manualbuild.txt
deleted file mode 100644
index cdbf701..0000000
--- a/tools/scripts/build/bin-build/manualbuild.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-#ant -f /home/st-bitten/build/_work/tools/java/build.xml jar && ant -f ~/build/_work/tools/cldr-apps/build.xml# -DCLDR_TOOLS=../java -DCATALINA_HOME=/home/st-bitten/src/tomcat -Durl=http://127.0.0.1:8180/manager/text\
-#/ -Dusername=st-bitten -Dpassword=______ -Dpath=/smoketest war redeploy
diff --git a/tools/scripts/build/bin-build/post-cldr-apps.sh b/tools/scripts/build/bin-build/post-cldr-apps.sh
deleted file mode 100644
index 61db0bc..0000000
--- a/tools/scripts/build/bin-build/post-cldr-apps.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/sh
-if [ ! -d "${BUILDER_BEST}" ];
-then
- echo $0 BUILDER_BEST is not a dir "${BUILDER_BEST}" - env problem?
- exit 1
-fi
-
-rm -rf ${BUILDER_BEST}/cldr-apps
-mkdir -p ${BUILDER_BEST}/cldr-apps
-if [ -d tools/cldr-apps ];
-then
- cd tools/cldr-apps
-fi
-if [ ! -f cldr-apps.war ];
-then
- echo Err cant find cldr-apps.war >&2
- exit 1
-fi
-
-# update-currev.sh updates the revision
-cp -r cldr-apps.war ${BUILDER_BEST}/cldr-apps/
-svnversion . > ${BUILDER_BEST}/cldr-apps/currev.txt
-if [ -x ${HOME}/bitten-conf/post-to-smoketest.sh ];
-then
- echo "posting to smoketest"
- ${HOME}/bitten-conf/post-to-smoketest.sh
-fi
diff --git a/tools/scripts/build/bin-build/post-cldr-tools.sh b/tools/scripts/build/bin-build/post-cldr-tools.sh
deleted file mode 100644
index 4a184e5..0000000
--- a/tools/scripts/build/bin-build/post-cldr-tools.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-if [ -f tools/java/cldr.jar ];
-then
- cd tools/java
-fi
-if [ ! -f cldr.jar ];
-then
- echo ERR cannot find cldr.jar >&2
- pwd >&2
- exit 1
-fi
-
-rm -rf ${BUILDER_BEST}/cldr-tools && mkdir -p ${BUILDER_BEST}/cldr-tools && cp -r libs cldr.jar classes ${BUILDER_BEST}/cldr-tools/
diff --git a/tools/scripts/build/bin-build/post-common.sh b/tools/scripts/build/bin-build/post-common.sh
deleted file mode 100644
index 863c9cb..0000000
--- a/tools/scripts/build/bin-build/post-common.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-NAME=common
-if [ ! -d ${NAME} ];
-then
- echo no dir ${NAME} >&2
- exit 1
-fi
-
-rm -rf ${BUILDER_BEST}/${NAME}
-mkdir -p ${BUILDER_BEST}/${NAME}
-cp -r ${NAME} seed ${BUILDER_BEST}/${NAME}
diff --git a/tools/scripts/build/bin-build/post-jsps.sh b/tools/scripts/build/bin-build/post-jsps.sh
deleted file mode 100644
index 839d710..0000000
--- a/tools/scripts/build/bin-build/post-jsps.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-exit 0
-. stbitten-env.sh
-WARFILE=UnicodeJsps.war
-DIRNAME=jsps
-rm -rf ${HOME}/best/${DIRNAME}
-mkdir -p ${HOME}/best/${DIRNAME}
-if [ -d . ];
-then
- cd .
-fi
-if [ ! -f ${WARFILE} ];
-then
- echo Err cant find ${WARFILE} >&2
- exit 1
-fi
-
-#BESTVER=`svnversion /home/st-bitten/best/common/seed`
-#echo "CLDR_CURREV=${BESTVER}" > ${HOME}/tomcat/cldr/currev.properties
-
-cp -r .svn ${WARFILE} ${HOME}/best/${DIRNAME}/
diff --git a/tools/scripts/build/bin-build/run-tests.sh b/tools/scripts/build/bin-build/run-tests.sh
deleted file mode 100644
index c3d1a52..0000000
--- a/tools/scripts/build/bin-build/run-tests.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/sh
-#PHASE=build
-PHASE=final_testing
-echo PHASE ${PHASE}
-set -x
-#echo skipped
-#exit 0
-if [ ! -d common ];
-then
- echo Unknown dir common >&2
- exit 1
-fi
-rm -rf ${BUILDER_DIR}/cldr-tmp 2>/dev/null
-#env JAVA_OPTS="-DCLDR_DIR=. -Dfile.encoding=UTF-8 -DSHOW_FILES -Xmx1000M" ~/bin-build/ConsoleCheckCLDR -g -c minimal -e '-t((?!.*Check(Coverage|Attribute)).*)' -z final_testing
-rm -f .failure
-( env JAVA_OPTS="-DCLDR_DIR=. -Dfile.encoding=UTF-8 -DSHOW_FILES -Xmx3000M" ConsoleCheckCLDR -e -z ${PHASE} 2>&1 || touch .failure ) | tee testlog.txt
-if [ -f .failure ];
-then
- echo "FAIL"
- exit 1
-fi
-
-
diff --git a/tools/scripts/build/bin-build/runbitten.sh b/tools/scripts/build/bin-build/runbitten.sh
deleted file mode 100644
index ca4b7d1..0000000
--- a/tools/scripts/build/bin-build/runbitten.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-mkdir -p ${BUILDER_DIR} 2>/dev/null >/dev/null
-#cleanup.sh 2>&1 &
-. ${HOME}/bin-build/stbitten-env.sh
-bitten-slave -f ${BUILDER_CONF}/config.ini --name=${BUILDER_NAME} -u ${BUILDER_USER} -p ${BUILDER_PASS} -d ${BUILDER_DIR} -l ${BUILDER_DIR}/log.txt http://unicode.org/cldr/trac/builds -v $@
diff --git a/tools/scripts/build/bin-build/runtidy.sh b/tools/scripts/build/bin-build/runtidy.sh
deleted file mode 100644
index 61c3cf1..0000000
--- a/tools/scripts/build/bin-build/runtidy.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-. stbitten-env.sh
-tidy -utf8 -q -e docs/web/tr35.html
diff --git a/tools/scripts/build/bin-build/setenv-common.sh b/tools/scripts/build/bin-build/setenv-common.sh
deleted file mode 100644
index ac6483d..0000000
--- a/tools/scripts/build/bin-build/setenv-common.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-JRE_HOME=/usr/lib/jvm/java-1.7.0/
-CATALINA_PID="$CATALINA_BASE/tomcat.pid"
-JAVA_OPTS="${JAVA_OPTS} -Dcldr.home=${CATALINA_BASE}"
diff --git a/tools/scripts/build/bin-build/start-buildbot.sh b/tools/scripts/build/bin-build/start-buildbot.sh
deleted file mode 100644
index bad2019..0000000
--- a/tools/scripts/build/bin-build/start-buildbot.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-# get the bitten env
-. ${HOME}/bin-build/stbitten-env.sh
-# get the tomcat env
-. ${HOME}/tomcat/env.sh
-# startup tomcat
-if [ -x ${HOME}/tomcat/CURRENT/bin/startup.sh ];
-then
- ${HOME}/tomcat/CURRENT/bin/startup.sh
-else
- ${HOME}/tomcat/bin/startup.sh
-fi
-# startup bitten
-echo Firing up ${BUILDER_NAME} on `hostname`
-screen -d -m -S bitten-${BUILDER_NAME} bootloop.sh&
diff --git a/tools/scripts/build/bin-build/start-serverless-bot.sh b/tools/scripts/build/bin-build/start-serverless-bot.sh
deleted file mode 100644
index 7c40210..0000000
--- a/tools/scripts/build/bin-build/start-serverless-bot.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-# get the bitten env
-. ${HOME}/bin-build/stbitten-env.sh
-# # get the tomcat env
-# . ${HOME}/tomcat/env.sh
-# # startup tomcat
-# if [ -x ${HOME}/tomcat/CURRENT/bin/startup.sh ];
-# then
-# ${HOME}/tomcat/CURRENT/bin/startup.sh
-# else
-# ${HOME}/tomcat/bin/startup.sh
-# fi
-# startup bitten
-echo Firing up ${BUILDER_NAME} on `hostname`
-screen -d -m -S bitten-${BUILDER_NAME} bootloop.sh&
diff --git a/tools/scripts/build/bin-build/startifdown.sh b/tools/scripts/build/bin-build/startifdown.sh
deleted file mode 100644
index f23224a..0000000
--- a/tools/scripts/build/bin-build/startifdown.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/bash
-. ${HOME}/tomcat/env.sh
-${HOME}/tomcat/CURRENT/bin/startup.sh
-
diff --git a/tools/scripts/build/bin-build/stbitten-env.sh.sample b/tools/scripts/build/bin-build/stbitten-env.sh.sample
deleted file mode 100644
index bfa905c..0000000
--- a/tools/scripts/build/bin-build/stbitten-env.sh.sample
+++ /dev/null
@@ -1,11 +0,0 @@
-# SAMPLE
-# copy to stbitten-env.sh - run by startup.sh
-export PATH=/usr/lib/ccache/:${HOME}/bin-build:${HOME}/bin:${PATH}
-export BUILDER_CONF=${HOME}/bitten-conf
-export BUILDER_DIR=${HOME}/build
-export BUILDER_USER=yeahright
-export BUILDER_PASS=hunter42
-export BUILDER_NAME=some-bot
-export BUILDER_BEST=${HOME}/best
-
-
diff --git a/tools/scripts/build/bin-build/unittest.sh b/tools/scripts/build/bin-build/unittest.sh
deleted file mode 100644
index 4b3ae73..0000000
--- a/tools/scripts/build/bin-build/unittest.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/sh
-set -x
-case `uname -p` in
- i586)
- SIZES="-DJVM_EXTRA_OPTIONS=-Xmx2100m"
- ;;
-
- powerpc)
- SIZES="-DJVM_EXTRA_OPTIONS=-Xmx5000m"
- ;;
-
- x86_64)
- SIZES="-DJVM_EXTRA_OPTIONS=-Xmx4500m"
- ;;
-
- *)
- SIZES="-DJVM_EXTRA_OPTIONS=-Xmx2000m"
- ;;
-esac
-if [ -d tools/cldr-unittest ];
-then
- # from r10119 unittests are in tools/cldr-unittest
- cd tools/cldr-unittest
-elif [ -d tools/java ];
-then
- cd tools/java
-else
- echo Cant find test dir
- pwd
- exit 1
-fi
-exec ant -f build.xml -DCLDR_DIR=../.. ${SIZES} check
-
diff --git a/tools/scripts/build/bin-build/update-currev.sh b/tools/scripts/build/bin-build/update-currev.sh
deleted file mode 100644
index 8f16e3a..0000000
--- a/tools/scripts/build/bin-build/update-currev.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-. ${HOME}/bin-build/stbitten-env.sh
-. ${HOME}/tomcat/env.sh
-if [ -d ${BUILDER_BEST}/common/seed ];
-then
- # old svn
- BESTVER=`svnversion ${BUILDER_BEST}/common/seed`
-elif [ -f ${BUILDER_BEST}/cldr-apps/currev.txt ];
-then
- CLDR_CURREV=`cat ${BUILDER_BEST}/cldr-apps/currev.txt`
-else
- CLDR_CURREV=`svnversion .`
-fi
-echo currev ${CLDR_CURREV}
-echo "CLDR_CURREV=${BESTVER}" > ${CATALINA_BASE}/cldr/currev.properties
diff --git a/tools/scripts/build/bin-build/update-icu4c.sh b/tools/scripts/build/bin-build/update-icu4c.sh
deleted file mode 100644
index c3f09b1..0000000
--- a/tools/scripts/build/bin-build/update-icu4c.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-set -x
-CLDR_DIR=`pwd`
-export CLDR_DIR
-ant -f icu4c/source/data/build.xml clean all
diff --git a/tools/scripts/build/bin-build/xml-validate-all.sh b/tools/scripts/build/bin-build/xml-validate-all.sh
deleted file mode 100644
index 0cdc93b..0000000
--- a/tools/scripts/build/bin-build/xml-validate-all.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-# now we have -q optiuon
-#find . -name '*.xml' | xargs ~/bin-build/XMLValidator 2>&1 | tee validate.log | fgrep -v 'Processing file '
-XMLValidator -q seed common 2>&1 | tee validate.log
-fgrep -q 'Exception in thread' validate.log && exit 1
-fgrep -q ERROR validate.log || exit 0
-echo `fgrep -c ERROR validate.log` errors. >&2
-exit 1
diff --git a/tools/scripts/distUpdateExcludes.sh b/tools/scripts/distUpdateExcludes.sh
deleted file mode 100755
index b790594..0000000
--- a/tools/scripts/distUpdateExcludes.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash
-
-if [[ ! -f $(basename "${0}") || ! -d "../scripts" ]];
-then
- echo "Error - run this script from the tools/scripts dir."
- exit 1
-fi
-
-DISTFILE=tools/dist.conf/distExcludes.txt
-cd ../..
-> "${DISTFILE}"
-for item in $(git ls-files -o);
-do
- if [[ "${item}" == "tools/java/cldr.jar" ]]; # allow this
- then
- true
- elif [[ -d "${item}" ]];
- then
- echo "${item}/" >> "${DISTFILE}"
- else
- echo "${item}" >> "${DISTFILE}"
- fi
-done
-
-echo "# updated ${DISTFILE}"
diff --git a/tools/scripts/updateHash.sh b/tools/scripts/updateHash.sh
new file mode 100755
index 0000000..fd8e306
--- /dev/null
+++ b/tools/scripts/updateHash.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+set -x
+cd ../dist && shasum -a 512 cldr-*.{jar,zip} | tee SHASUM512.txt
diff --git a/unicode-license.txt b/unicode-license.txt
index 500dbd5..a9f3977 100644
--- a/unicode-license.txt
+++ b/unicode-license.txt
@@ -13,7 +13,7 @@
COPYRIGHT AND PERMISSION NOTICE
-Copyright © 1991-2020 Unicode, Inc. All rights reserved.
+Copyright © 1991-2021 Unicode, Inc. All rights reserved.
Distributed under the Terms of Use in https://www.unicode.org/copyright.html.
Permission is hereby granted, free of charge, to any person obtaining