# Do not edit - generated from Unicode CLDR data
#
# The key is an ISO4217 currency code, and the value is of the form:
#   display name|symbol|decimal digits|not-used-flag
# 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
# Trailing empty fields can be omitted

ADP = ADP||0|1
AED = AED
AFA = AFA|||1
AFN = AFN|Af|0
ALK = ALK|||1
ALL = ALL||0
AMD = AMD||0
ANG = ANG|NAf.
AOA = AOA|Kz
AOK = AOK|||1
AON = AON|||1
AOR = AOR|||1
ARA = ARA|₳||1
ARL = ARL|$L||1
ARM = ARM|m$n||1
ARP = ARP|||1
ARS = ARS|AR$
ATS = ATS|||1
AUD = AUD|AU$
AWG = AWG|Afl.
AZM = AZM|||1
AZN = AZN|man.
BAD = BAD|||1
BAM = BAM|KM
BAN = BAN|||1
BBD = BBD|Bds$
BDT = BDT|Tk
BEC = BEC|||1
BEF = BEF|BF||1
BEL = BEL|||1
BGL = BGL|||1
BGM = BGM|||1
BGN = BGN
BGO = BGO|||1
BHD = BHD|BD|3
BIF = BIF|FBu|0
BMD = BMD|BD$
BND = BND|BN$
BOB = BOB|Bs
BOL = BOL|||1
BOP = BOP|$b.||1
BOV = BOV|||1
BRB = BRB|||1
BRC = BRC|||1
BRE = BRE|||1
BRL = BRL|R$
BRN = BRN|||1
BRR = BRR|||1
BRZ = BRZ|||1
BSD = BSD|BS$
BTN = BTN|Nu.
BUK = BUK|||1
BWP = BWP
BYB = BYB|||1
BYR = BYR||0
BZD = BZD|BZ$
CAD = CAD|CA$
CDF = CDF
CHE = CHE|||1
CHF = CHF
CHW = CHW|||1
CLE = CLE|Eº||1
CLF = CLF||0|1
CLP = CLP|CL$|0
CNX = CNX|||1
CNY = CNY|CN¥
COP = COP|CO$|0
COU = COU|||1
CRC = CRC|₡|0
CSD = CSD|||1
CSK = CSK|||1
CUC = CUC|CUC$
CUP = CUP|CU$
CVE = CVE|CV$
CYP = CYP|CY£||1
CZK = CZK|Kč
DDM = DDM|||1
DEM = DEM|DM||1
DJF = DJF|Fdj|0
DKK = DKK|Dkr
DOP = DOP|RD$
DZD = DZD|DA
ECS = ECS|||1
ECV = ECV|||1
EEK = EEK|Ekr
EGP = EGP|EG£
ERN = ERN|Nfk
ESA = ESA|||1
ESB = ESB|||1
ESP = ESP|Pts|0|1
ETB = ETB|Br
EUR = EUR|€
FIM = FIM|mk||1
FJD = FJD|FJ$
FKP = FKP|FK£
FRF = FRF|₣||1
GBP = GBP|UK£
GEK = GEK|||1
GEL = GEL
GHC = GHC|₵||1
GHS = GHS|GH₵
GIP = GIP|GI£
GMD = GMD
GNF = GNF|FG|0
GNS = GNS|||1
GQE = GQE|||1
GRD = GRD|₯||1
GTQ = GTQ
GWE = GWE|||1
GWP = GWP|||1
GYD = GYD|GY$|0
HKD = HKD|HK$
HNL = HNL
HRD = HRD|||1
HRK = HRK|kn
HTG = HTG
HUF = HUF|Ft|0
IDR = IDR|Rp|0
IEP = IEP|IR£||1
ILP = ILP|I£||1
ILR = ILR|||1
ILS = ILS|₪
INR = INR|Rs.
IQD = IQD||0
IRR = IRR||0
ISJ = ISJ|||1
ISK = ISK|Ikr|0
ITL = ITL|IT₤|0|1
JMD = JMD|J$
JOD = JOD|JD|3
JPY = JPY|JP¥|0
KES = KES|Ksh
KGS = KGS
KHR = KHR
KMF = KMF|CF|0
KPW = KPW||0
KRH = KRH|||1
KRO = KRO|||1
KRW = KRW|₩|0
KWD = KWD|KD|3
KYD = KYD|KY$
KZT = KZT
LAK = LAK|₭|0
LBP = LBP|LB£|0
LKR = LKR|SLRs
LRD = LRD|L$
LSL = LSL
LTL = LTL|Lt
LTT = LTT|||1
LUC = LUC|||1
LUF = LUF||0|1
LUL = LUL|||1
LVL = LVL|Ls
LVR = LVR|||1
LYD = LYD|LD|3
MAD = MAD
MAF = MAF|||1
MCF = MCF|||1
MDC = MDC|||1
MDL = MDL
MGA = MGA||0
MGF = MGF||0|1
MKD = MKD
MKN = MKN|||1
MLF = MLF|||1
MMK = MMK||0
MNT = MNT|₮|0
MOP = MOP|MOP$
MRO = MRO|UM|0
MTL = MTL|Lm||1
MTP = MTP|MT£||1
MUR = MUR|MURs|0
MVP = MVP
MVR = MVR
MWK = MWK
MXN = MXN|MX$
MXP = MXP|||1
MXV = MXV|||1
MYR = MYR|RM
MZE = MZE|||1
MZM = MZM|Mt||1
MZN = MZN|MTn
NAD = NAD|N$
NGN = NGN|₦
NIC = NIC|||1
NIO = NIO|C$
NLG = NLG|fl||1
NOK = NOK|Nkr
NPR = NPR|NPRs
NZD = NZD|NZ$
OMR = OMR||3
PAB = PAB|B/.
PEI = PEI|I/.||1
PEN = PEN|S/.
PES = PES|||1
PGK = PGK
PHP = PHP|Php
PKR = PKR|PKRs|0
PLN = PLN|zł
PLZ = PLZ|||1
PTE = PTE|Esc||1
PYG = PYG|₲|0
QAR = QAR|QR
RHD = RHD|RH$||1
ROL = ROL|||1
RON = RON
RSD = RSD|din.|0
RUB = RUB
RUR = RUR|||1
RWF = RWF||0
SAR = SAR|SR
SBD = SBD|SI$
SCR = SCR|SRe
SDD = SDD|LSd||1
SDG = SDG
SDP = SDP|||1
SEK = SEK|Skr
SGD = SGD|S$
SHP = SHP|SH£
SIT = SIT|||1
SKK = SKK|Sk||1
SLL = SLL|Le|0
SOS = SOS|Ssh|0
SRD = SRD|SR$
SRG = SRG|Sf||1
STD = STD|Db|0
SUR = SUR|||1
SVC = SVC|SV₡||1
SYP = SYP|SY£|0
SZL = SZL
THB = THB|฿
TJR = TJR|||1
TJS = TJS
TMM = TMM||0|1
TMT = TMT
TND = TND|DT|3
TOP = TOP|T$
TPE = TPE|||1
TRL = TRL||0|1
TRY = TRY|TL
TTD = TTD|TT$
TWD = TWD|NT$
TZS = TZS|TSh|0
UAH = UAH
UAK = UAK|||1
UGS = UGS|||1
UGX = UGX|USh|0
USD = USD|US$
USN = USN|||1
USS = USS|||1
UYI = UYI|||1
UYP = UYP|||1
UYU = UYU|$U
UZS = UZS||0
VEB = VEB|||1
VEF = VEF|Bs.F.
VND = VND|₫|0
VNN = VNN|||1
VUV = VUV|VT|0
WST = WST|WS$
XAF = XAF|FCFA|0
XAG = XAG|||1
XAU = XAU|||1
XBA = XBA|||1
XBB = XBB|||1
XBC = XBC|||1
XBD = XBD|||1
XCD = XCD|EC$
XDR = XDR|||1
XEU = XEU|||1
XFO = XFO|||1
XFU = XFU|||1
XOF = XOF|CFA|0
XPD = XPD|||1
XPF = XPF|CFPF|0
XPT = XPT|||1
XRE = XRE|||1
XTS = XTS|||1
XXX = XXX|||1
YDD = YDD|||1
YER = YER|YR|0
YUD = YUD|||1
YUM = YUM|||1
YUN = YUN|||1
YUR = YUR|||1
ZAL = ZAL|||1
ZAR = ZAR|R
ZMK = ZMK|ZK|0
ZRN = ZRN|NZ||1
ZRZ = ZRZ|||1
ZWD = ZWD|Z$|0|1
ZWL = ZWL|||1
ZWR = ZWR|||1
