# Copyright 2012 Google Inc.
# 
# 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.

#
# The key is an ISO4217 currency code, and the value is of the form:
#   display name|symbol|decimal digits|not-used-flag|rounding
# If a symbol is not supplied, the currency code will be used
# If # of decimal digits is omitted, 2 is used
# If a currency is not generally used, not-used-flag=1
# If a currency should be rounded to a multiple of of the least significant
#   digit, rounding will be present
# Trailing empty fields can be omitted

# DO NOT EDIT - GENERATED FROM CLDR DATA
AED = Apvienoto Arābu Emirātu dirhēms
AFN = Afganistānas afgāns||0
ALL = Albānijas leks||0
AMD = Armēnijas drams||0
ANG = Nīderlandes Antiļu guldenis
AOA = Angolas kvanza
ARS = Argentīnas peso
ATS = Austrijas šiliņš|||1
AUD = Austrālijas dolārs|AU$
AWG = Arubas guldenis
AZM = Azerbaidžānas manats (1993–2006)|||1
AZN = Azerbaidžānas manats
BAM = Bosnijas un Hercogovinas konvertējamā marka
BBD = Barbadosas dolārs
BDT = Bangladešas taka
BEF = Beļģijas franks|||1
BGN = Bulgārijas leva
BHD = Bahreinas dinārs||3
BIF = Burundi franks||0
BMD = Bermudu dolārs
BND = Brunejas dolārs
BOB = Bolīvijas boliviano
BRL = Brazīlijas reāls|R$
BSD = Bahamu dolārs
BTN = Butānas ngultrums
BWP = Botsvanas pula
BYN = Baltkrievijas rubelis
BYR = Baltkrievijas rubelis (2000–2016)||0|1
BZD = Belizas dolārs
CAD = Kanādas dolārs|CA$
CDF = KDR franks
CHF = Šveices franks
CLP = Čīles peso||0
CNH = Ķīnas juaņa (ofšors)|||1
CNY = Ķīnas juaņs|CN¥
COP = Kolumbijas peso||0
COU = Kolumbijas reāls|||1
CRC = Kostarikas kolons
CUC = Kubas konvertējamais peso
CUP = Kubas peso
CVE = Kaboverdes eskudo
CYP = Kipras mārciņa|||1
CZK = Čehijas krona
DEM = Vācijas marka|||1
DJF = Džibutijas franks||0
DKK = Dānijas krona
DOP = Dominikānas peso
DZD = Alžīrijas dinārs
EEK = Igaunijas krona|||1
EGP = Ēģiptes mārciņa
ERN = Eritrejas nakfa
ESP = Spānijas peseta||0|1
ETB = Etiopijas birs
EUR = eiro|€
FIM = Somijas marka|||1
FJD = Fidži dolārs
FKP = Folklenda Salu mārciņa
FRF = Francijas franks|||1
GBP = Lielbritānijas mārciņa|£
GEL = Gruzijas lari|₾
GHS = Ganas sedi
GIP = Gibraltāra mārciņa
GMD = Gambijas dalasi
GNF = Gvinejas franks||0
GRD = Grieķijas drahma|||1
GTQ = Gvatemalas ketsals
GYD = Gajānas dolārs||0
HKD = Honkongas dolārs|HK$
HNL = Hondurasas lempīra
HRK = Horvātijas kuna
HTG = Haiti gurds
HUF = Ungārijas forints
IDR = Indonēzijas rūpija||0
IEP = Īrijas mārciņa|||1
ILS = Izraēlas šekelis|₪
INR = Indijas rūpija|₹
IQD = Irākas dinārs||0
IRR = Irānas riāls||0
ISK = Islandes krona||0
ITL = Itālijas lira||0|1
JMD = Jamaikas dolārs
JOD = Jordānas dinārs||3
JPY = Japānas jena|¥|0
KES = Kenijas šiliņš
KGS = Kirgizstānas soms
KHR = Kambodžas riels
KMF = Komoru franks||0
KPW = Ziemeļkorejas vona||0
KRW = Dienvidkorejas vona|₩|0
KWD = Kuveitas dinārs||3
KYD = Kaimanu salu dolārs
KZT = Kazahstānas tenge
LAK = Laosas kips||0
LBP = Libānas mārciņa||0
LKR = Šrilankas rūpija
LRD = Libērijas dolārs
LSL = Lesoto loti
LTL = Lietuvas lits|||1
LUF = Luksemburgas franks||0|1
LVL = Latvijas lats|Ls||1
LVR = Latvijas rublis|||1
LYD = Lībijas dinārs||3
MAD = Marokas dirhēms
MDL = Moldovas leja
MGA = Madagaskaras ariari||0
MKD = Maķedonijas denārs
MLF = CFA (Āfrikas) franks|||1
MMK = Mjanmas kjats||0
MNT = Mongolijas tugriks||0
MOP = Makao pataka
MRO = Mauritānijas ugija||0
MTL = Maltas lira|||1
MTP = Maltas mārciņa|||1
MUR = Maurīcijas rūpija||0
MVR = Maldīvijas rūfija
MWK = Malāvijas kvača
MXN = Meksikas peso|MX$
MYR = Malaizijas ringits
MZE = Mozambikas eskudo|||1
MZM = Mozambikas vecais metikals|||1
MZN = Mozambikas metikals
NAD = Namībijas dolārs
NGN = Nigērijas naira
NIO = Nikaragvas kordoba
NLG = Nīderlandes guldenis|||1
NOK = Norvēģijas krona
NPR = Nepālas rūpija
NZD = Jaunzēlandes dolārs|NZ$
OMR = Omānas riāls||3
PAB = Panamas balboa
PEN = Peru sols
PGK = Papua-Jaungvinejas kina
PHP = Filipīnu peso
PKR = Pakistānas rūpija||0
PLN = Polijas zlots
PTE = Portugāles eskudo|||1
PYG = Paragvajas guarani||0
QAR = Kataras riāls
ROL = Rumānijas vecā leja|||1
RON = Rumānijas leja
RSD = Serbijas dinārs||0
RUB = Krievijas rublis
RWF = Ruandas franks||0
SAR = Saūda riāls
SBD = Zālamana Salu dolārs
SCR = Seišelu salu rūpija
SDG = Sudānas mārciņa
SEK = Zviedrijas krona
SGD = Singapūras dolārs
SHP = Sv.Helēnas salas mārciņa
SIT = Slovēnijas tolars|||1
SKK = Slovakijas krona|||1
SLL = Sjerraleones leone||0
SOS = Somālijas šiliņš||0
SRD = Surinamas dolārs
SRG = Surinamas guldenis|||1
SSP = Dienvidsudānas mārciņa
STD = Santome un Prinsipi dobra||0|1
SVC = Salvadoras kolons|||1
SYP = Sīrijas mārciņa||0
SZL = Svazilendas lilangeni
THB = Taizemes bāts|฿
TJS = Tadžikistānas somons
TMM = Turkmenistānas manats (1993–2009)||0|1
TMT = Turkmenistānas manats
TND = Tunisijas dinārs||3
TOP = Tongas paanga
TRL = Turcijas lira (1922–2005)||0|1
TRY = Turcijas lira|TL
TTD = Trinidādas un Tobāgo dolārs
TWD = Taivānas jaunais dolārs|NT$
TZS = Tanzānijas šiliņš||0
UAH = Ukrainas grivna
UGX = Ugandas šiliņš||0
USD = ASV dolārs|$
UYU = Urugvajas peso
UZS = Uzbekistānas sums||0
VEB = Venecuēlas bolivārs (1871–2008)|||1
VEF = Venecuēlas bolivārs
VND = Vjetnamas dongi|₫|0
VUV = Vanuatu vatu||0
WST = Samoa tala
XAF = Centrālāfrikas CFA franks|FCFA|0
XAG = sudrabs|||1
XAU = zelts|||1
XBA = Eiropas norēķinu vienība EURCO|||1
XBB = Eiropas naudas vienība|||1
XBC = Eiropas norēķinu vienība (XBC)|||1
XBD = Eiropas norēķinu vienība (XBD)|||1
XCD = Austrumkarību dolārs|EC$
XDR = Speciālās aizņēmuma tiesības|||1
XEU = Eiropas norēķinu vienība|||1
XFO = Francijas zelta franks|||1
XFU = Francijas UIC franks|||1
XOF = Rietumāfrikas CFA franks|CFA|0
XPD = pallādijs|||1
XPF = CFP franks|CFPF|0
XPT = platīns|||1
XTS = Testa valūtas kods|||1
XXX = Nezināma valūta|||1
YER = Jemenas riāls||0
ZAR = Dienvidāfrikas rends
ZMK = Zambijas kvača (1968–2012)||0|1
ZMW = Zambijas kvača
ZWD = Zimbabves dolārs||0|1
ZWL = Zimbabves dolārs (2009)|||1
