# 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
ADP = pesseta andorrana||0|1
AED = dírham de la UEA
AFA = afgani afganès (1927–2002)|||1
AFN = afgani afganès||0
ALK = lek albanès (1946–1965)|||1
ALL = lek albanès||0
AMD = dram armeni||0
ANG = florí de les Antilles Neerlandeses
AOA = kwanza angolès
AOK = kwanza angolès (1977–1991)|||1
AON = nou kwanza angolès (1990–2000)|||1
AOR = kwanza angolès reajustat (1995–1999)|||1
ARA = austral argentí|||1
ARL = peso ley argentí (1970–1983)|||1
ARM = peso argentí (1981–1970)|||1
ARP = peso argentí (1983–1985)|||1
ARS = peso argentí
ATS = xíling austríac|||1
AUD = dòlar australià|AU$
AWG = florí d’Aruba
AZM = manat azerbaidjanès (1993–2006)|||1
AZN = manat azerbaidjanès
BAD = dinar de Bòsnia i Hercegovina (1992–1994)|||1
BAM = marc convertible de Bòsnia i Hercegovina
BAN = nou dinar de Bòsnia i Hercegovina (1994–1997)|||1
BBD = dòlar de Barbados
BDT = taka de Bangla Desh
BEC = franc belga (convertible)|||1
BEF = franc belga|||1
BEL = franc belga (financer)|||1
BGL = lev fort búlgar|||1
BGM = lev socialista búlgar|||1
BGN = lev búlgar
BGO = lev búlgar (1879–1952)|||1
BHD = dinar de Bahrain||3
BIF = franc de Burundi||0
BMD = dòlar de les Bermudes
BND = dòlar de Brunei
BOB = bolivià
BOL = boliviano bolivià (1863–1963)|||1
BOP = peso bolivià|||1
BOV = MVDOL bolivià|||1
BRB = cruzeiro novo brasiler (1967–1986)|||1
BRC = cruzado brasiler|||1
BRE = cruzeiro brasiler (1990–1993)|||1
BRL = real brasiler
BRN = cruzado novo brasiler|||1
BRR = cruzeiro brasiler|||1
BRZ = antic cruzeiro brasiler|||1
BSD = dòlar de les Bahames
BTN = ngultrum de Bhutan
BUK = kyat birmà|||1
BWP = pula de Botswana
BYB = nou ruble bielorús (1994–1999)|||1
BYN = ruble bielorús
BYR = ruble bielorús (2000–2016)||0|1
BZD = dòlar de Belize
CAD = dòlar canadenc
CDF = franc congolès
CHE = euro WIR|||1
CHF = franc suís
CHW = franc WIR|||1
CLE = escut xilè|||1
CLF = unidad de fomento xilena||4|1
CLP = peso xilè||0
CNH = iuan xinès extracontinental|||1
CNY = iuan xinès|¥
COP = peso colombià||0
COU = unidad de valor real colombiana|||1
CRC = colón costa-riqueny
CSD = dinar serbi antic|||1
CSK = corona forta txecoslovaca|||1
CUC = peso convertible cubà
CUP = peso cubà
CVE = escut de Cap Verd
CYP = lliura xipriota|||1
CZK = corona txeca
DDM = marc de l’Alemanya Oriental|||1
DEM = marc alemany|||1
DJF = franc de Djibouti||0
DKK = corona danesa
DOP = peso dominicà
DZD = dinar algerià
ECS = sucre equatorià|||1
ECV = unidad de valor constante (UVC) equatoriana|||1
EEK = corona estoniana|||1
EGP = lliura egípcia
ERN = nakfa eritreu
ESA = pesseta espanyola (compte A)|||1
ESB = pesseta espanyola (compte convertible)|||1
ESP = pesseta espanyola|₧|0|1
ETB = birr etíop
EUR = euro|€
FIM = marc finlandès|||1
FJD = dòlar fijià
FKP = lliura de les illes Malvines
FRF = franc francès|||1
GBP = lliura esterlina britànica|£
GEK = cupó de lari georgià|||1
GEL = lari georgià|₾
GHC = cedi ghanès (1979–2007)|||1
GHS = cedi ghanès
GIP = lliura de Gibraltar
GMD = dalasi gambià
GNF = franc guineà||0
GNS = syli guineà|||1
GQE = ekwele de Guinea Equatorial|||1
GRD = dracma grega|||1
GTQ = quetzal guatemalenc
GWE = escut de la Guinea Portuguesa|||1
GWP = peso de Guinea Bissau|||1
GYD = dòlar de Guyana||0
HKD = dòlar de Hong Kong|HK$
HNL = lempira hondurenya
HRD = dinar croat|||1
HRK = kuna croata
HTG = gourde haitià
HUF = fòrint hongarès
IDR = rupia indonèsia||0
IEP = lliura irlandesa|||1
ILP = lliura israeliana|||1
ILR = xéquel israelià|||1
ILS = nou xéquel israelià|₪
INR = rupia índia|₹
IQD = dinar iraquià||0
IRR = rial iranià||0
ISJ = corona islandesa antiga|||1
ISK = corona islandesa||0
ITL = lira italiana||0|1
JMD = dòlar jamaicà
JOD = dinar jordà||3
JPY = ien japonès|JP¥|0
KES = xíling kenyà
KGS = som kirguís
KHR = riel cambodjà
KMF = franc de les Comores||0
KPW = won nord-coreà||0
KRH = hwan sud-coreà (1953–1962)|||1
KRO = antic won sud-coreà|||1
KRW = won sud-coreà|₩|0
KWD = dinar kuwaitià||3
KYD = dòlar de les illes Caiman
KZT = tenge kazakh
LAK = kip laosià||0
LBP = lliura libanesa||0
LKR = rupia de Sri Lanka
LRD = dòlar liberià
LSL = loti de Lesotho
LTL = litas lituà|||1
LTT = talonas lituà|||1
LUC = franc convertible luxemburguès|||1
LUF = franc luxemburguès||0|1
LUL = franc financer luxemburguès|||1
LVL = lats letó|||1
LVR = ruble letó|||1
LYD = dinar libi||3
MAD = dírham marroquí
MAF = franc marroquí|||1
MCF = franc monegasc|||1
MDC = cupó moldau|||1
MDL = leu moldau
MGA = ariary malgaix||0
MGF = franc malgaix||0|1
MKD = denar macedoni
MKN = denar macedoni (1992–1993)|||1
MLF = franc malià|||1
MMK = kyat de Myanmar||0
MNT = tögrög mongol||0
MOP = pataca de Macau
MRO = ouguiya maurità||0
MTL = lira maltesa|||1
MTP = lliura maltesa|||1
MUR = rupia mauriciana||0
MVR = rupia de les Maldives
MWK = kwacha malawià
MXN = peso mexicà
MXP = peso de plata mexicà (1861–1992)|||1
MXV = unidad de inversión (UDI) mexicana|||1
MYR = ringgit de Malàisia
MZE = escut moçambiquès|||1
MZM = antic metical moçambiquès|||1
MZN = metical moçambiquès
NAD = dòlar namibià
NGN = naira nigerià
NIC = córdoba nicaragüenca|||1
NIO = córdoba oro nicaragüenca
NLG = florí neerlandès|||1
NOK = corona noruega
NPR = rupia nepalesa
NZD = dòlar neozelandès|NZ$
OMR = rial omanita||3
PAB = balboa panameny
PEI = inti peruà|||1
PEN = sol peruà
PES = sol peruà (1863–1965)|||1
PGK = kina de Papua Nova Guinea
PHP = peso filipí
PKR = rupia pakistanesa||0
PLN = zloty polonès
PLZ = zloty polonès (1950–1995)|||1
PTE = escut portuguès|||1
PYG = guaraní paraguaià||0
QAR = rial de Qatar
RHD = dòlar rhodesià|||1
ROL = antic leu romanès|||1
RON = leu romanès
RSD = dinar serbi||0
RUB = ruble rus
RUR = ruble rus (1991–1998)|||1
RWF = franc de Ruanda||0
SAR = rial saudita
SBD = dòlar de les illes Salomó
SCR = rupia de les Seychelles
SDD = dinar sudanès|||1
SDG = lliura sudanesa
SDP = antiga lliura sudanesa|||1
SEK = corona sueca
SGD = dòlar de Singapur
SHP = lliura de Santa Helena
SIT = tolar eslovè|||1
SKK = corona eslovaca|||1
SLL = leone de Sierra Leone||0
SOS = xíling somali||0
SRD = dòlar de Surinam
SRG = florí de Surinam|||1
SSP = lliura del Sudan del Sud
STD = dobra de São Tomé i Príncipe||0|1
SUR = ruble soviètic|||1
SVC = colón salvadorenc|||1
SYP = lliura síria||0
SZL = lilangeni swazi
THB = baht tailandès|฿
TJR = ruble tadjik|||1
TJS = somoni tadjik
TMM = manat turcman (1993–2009)||0|1
TMT = manat turcman
TND = dinar tunisià||3
TOP = pa‘anga tongà
TPE = escut de Timor|||1
TRL = lira turca (1922–2005)||0|1
TRY = lira turca|TL
TTD = dòlar de Trinitat i Tobago
TWD = nou dòlar de Taiwan|NT$
TZS = xíling tanzà||0
UAH = hrívnia ucraïnesa
UAK = karbóvanets ucraïnès|||1
UGS = xíling ugandès (1966–1987)|||1
UGX = xíling ugandès||0
USD = dòlar dels Estats Units
USN = dòlar dels Estats Units (dia següent)|||1
USS = dòlar dels Estats Units (mateix dia)|||1
UYI = peso uruguaià en unitats indexades||0|1
UYP = peso uruguaià (1975–1993)|||1
UYU = peso uruguaià
UZS = som uzbek||0
VEB = bolívar veneçolà (1871–2008)|||1
VEF = bolívar veneçolà
VND = dong vietnamita|₫|0
VNN = dong vietnamita (1978–1985)|||1
VUV = vatu de Vanuatu||0
WST = tala samoà
XAF = franc CFA BEAC|FCFA|0
XAG = plata|||1
XAU = or|||1
XBA = unitat compensatòria europea|||1
XBB = unitat monetària europea|||1
XBC = unitat de compte europea (XBC)|||1
XBD = unitat de compte europea (XBD)|||1
XCD = dòlar del Carib Oriental
XDR = drets especials de gir|||1
XEU = unitat de moneda europea|||1
XFO = franc or francès|||1
XFU = franc UIC francès|||1
XOF = franc CFA BCEAO|CFA|0
XPD = pal·ladi|||1
XPF = franc CFP|CFPF|0
XPT = platí|||1
XRE = fons RINET|||1
XTS = codi reservat per a proves|||1
XXX = moneda desconeguda|||1
YDD = dinar iemenita|||1
YER = rial iemenita||0
YUD = dinar fort iugoslau|||1
YUM = nou dinar iugoslau|||1
YUN = dinar convertible iugoslau|||1
YUR = dinar iugoslau reformat (1992–1993)|||1
ZAL = rand sud-africà (financer)|||1
ZAR = rand sud-africà
ZMK = kwacha zambià (1968–2012)||0|1
ZMW = kwacha zambià
ZRN = nou zaire zairès|||1
ZRZ = zaire zairès|||1
ZWD = dòlar zimbabuès (1980–2008)||0|1
ZWL = dòlar zimbabuès (2009)|||1
ZWR = dòlar zimbabuès (2008)|||1
