# 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 = Andorrskur peseti||0|1
AED = Arabískt dírham
AFN = Afgani||0
ALL = Albanskt lek||0
AMD = Armenskt dramm||0
ANG = Hollenskt Antillugyllini
AOA = Angólsk kvansa
ARA = Argentine Austral|||1
ARP = Argentískur pesi (1983–1985)|||1
ARS = Argentínskur pesi
ATS = Austurrískur skildingur|||1
AUD = Ástralskur dalur|A$
AWG = Arúbönsk flórína
AZN = Aserskt manat
BAM = Skiptanlegt Bosníu og Hersegóvínu-mark
BBD = Barbadoskur dalur
BDT = Bangladessk taka
BEF = Belgískur franki|||1
BGL = Lef|||1
BGN = Búlgarskt lef
BHD = Bareinskur denari||3
BIF = Búrúndískur franki||0
BMD = Bermúdadalur
BND = Brúneiskur dalur
BOB = Bólivíani
BOP = Bólivískur pesi|||1
BOV = Bolivian Mvdol|||1
BRL = Brasilískt ríal|R$
BSD = Bahamadalur
BTN = Bútanskt núltrum
BUK = Búrmverskt kjat|||1
BWP = Botsvönsk púla
BYR = Hvítrússnesk rúbla||0
BZD = Belískur dalur
CAD = Kanadískur dalur
CDF = Kongóskur franki
CHF = Svissneskur franki
CLF = Chilean Unidades de Fomento||0|1
CLP = Síleskur pesi||0
CNY = Kínverskt júan|CN¥
COP = Kólumbískur pesi||0
CRC = Kostarískt kólon||0
CSK = Tékknesk króna, eldri|||1
CUC = Kúbverskur skiptanlegur pesi
CUP = Kúbverskur pesi
CVE = Grænhöfðeyskur skúti
CYP = Kýpverskt pund|||1
CZK = Tékknesk króna
DDM = Austurþýskt mark|||1
DEM = Þýskt mark|||1
DJF = Djíbútískur franki||0
DKK = Dönsk króna
DOP = Dóminískur pesi
DZD = Alsírskur denari
ECS = Ecuador Sucre|||1
EEK = Eistnesk króna|||1
EGP = Egypskt pund
ERN = Erítresk nakfa
ESP = Spænskur peseti||0|1
ETB = Eþíópískt birr
EUR = Evra|€
FIM = Finnskt mark|||1
FJD = Fídjeyskur dalur
FKP = Falklenskt pund
FRF = Franskur franki|||1
GBP = Sterlingspund|£
GEL = Georgískur lari
GHS = Ganverskur sedi
GIP = Gíbraltarspund
GMD = Gambískur dalasi
GNF = Gíneufranki||0
GRD = Drakma|||1
GTQ = Gvatemalskt kvesal
GWE = Portúgalskur, gíneskur skúti|||1
GYD = Gvæjanskur dalur||0
HKD = Hong Kong-dalur|HK$
HNL = Hondúrsk lempíra
HRK = Króatísk kúna
HTG = Haítískur gúrdi
HUF = Ungversk fórinta||0
IDR = Indónesísk rúpía||0
IEP = Írskt pund|||1
ILP = Ísraelskt pund|||1
ILS = Nýr ísraelskur sikill|₪
INR = Indversk rúpía|₹
IQD = Írakskur denari||0
IRR = Íranskt ríal||0
ISK = Íslensk króna|kr|0
ITL = Ítölsk líra||0|1
JMD = Jamaískur dalur
JOD = Jórdanskur denari||3
JPY = Japanskt jen|JP¥|0
KES = Kenískur skildingur
KGS = Kirgiskt som
KHR = Kambódískt ríal
KMF = Kómoreyskur franki||0
KPW = Norðurkóreskt vonn||0
KRW = Suðurkóreskt vonn|₩|0
KWD = Kúveiskur denari||3
KYD = Caymaneyskur dalur
KZT = Kasakst tengi
LAK = Laoskt kip||0
LBP = Líbanskt pund||0
LKR = Srílönsk rúpía
LRD = Líberískur dalur
LSL = Lesotho Loti
LTL = Litháískt lít
LTT = Lithuanian Talonas|||1
LUF = Lúxemborgarfranki||0|1
LVL = Lettneskt lat|||1
LVR = Lettnesk rúbla|||1
LYD = Líbískur denari||3
MAD = Marokkóskt dírham
MAF = Marokkóskur franki|||1
MDL = Moldavískt lei
MGA = Madagaskararjari||0
MGF = Madagaskur franki||0|1
MKD = Makedónskur denari
MLF = Malískur franki|||1
MMK = Mjanmarskt kjat||0
MNT = Mongólskur túríkur||0
MOP = Makaópataka
MRO = Máritönsk úgía||0
MTL = Meltnesk líra|||1
MTP = Maltneskt pund|||1
MUR = Máritísk rúpía||0
MVR = Maldíveysk rúpía
MWK = Malavísk kvaka
MXN = Mexíkóskur pesi
MXP = Mexíkóskur silfurpesi (1861–1992)|||1
MXV = Mexíkóskur pesi, UDI|||1
MYR = Malasískt ringit
MZE = Mósambískur skúti|||1
MZN = Mósambískt metikal
NAD = Namibískur dalur
NGN = Nígerísk næra
NIC = Níkarögsk kordóva (1988–1991)|||1
NIO = Níkarögsk kordóva
NLG = Hollenskt gyllini|||1
NOK = Norsk króna
NPR = Nepölsk rúpía
NZD = Nýsjálenskur dalur|NZ$
OMR = Ómanskt ríal||3
PAB = Balbói
PEN = Perúskt sól
PGK = Papúsk kína
PHP = Filippseyskur pesi
PKR = Pakistönsk rúpía||0
PLN = Pólskt slot
PLZ = Slot|||1
PTE = Portúgalskur skúti|||1
PYG = Paragvæskt gvaraní||0
QAR = Katarskt ríal
ROL = Rúmenskt lei (1952–2006)|||1
RON = Rúmenskt lei
RSD = Serbneskur denari||0
RUB = Rússnesk rúbla
RUR = Rússnesk rúbla (1991–1998)|||1
RWF = Rúandskur franki||0
SAR = Sádiarabískt ríal
SBD = Salómonseyskur dalur
SCR = Seychellesrúpía
SDD = Súdanskur denari|||1
SDG = Súdanskt pund
SDP = Súdanskt pund (1957–1998)|||1
SEK = Sænsk króna
SGD = Singapúrskur dalur
SHP = Helenskt pund
SIT = Slóvenskur dalur|||1
SKK = Slóvakísk króna|||1
SLL = Síerraleónsk ljóna||0
SOS = Sómalískur skildingur||0
SRD = Súrínamdalur
SRG = Suriname Guilder|||1
SSP = Suðursúdanskt pund
STD = Saó Tóme og Prinsípe-dóbra||0
SUR = Soviet Rouble|||1
SVC = El Salvador Colon|||1
SYP = Sýrlenskt pund||0
SZL = Svasílenskur lílangeni
THB = Taílenskt bat|฿
TJR = Tadsjiksk rúbla|||1
TJS = Tadsjikskur sómóni
TMM = Túrkmenskt manat (1993–2009)||0|1
TMT = Túrkmenskt manat
TND = Túniskur denari||3
TOP = Tongapanga
TPE = Tímorskur skúti|||1
TRL = Tyrknesk líra (1922–2005)||0|1
TRY = Tyrknesk líra|TL
TTD = Trínidad og Tóbagó-dalur
TWD = Taívanskur dalur|NT$
TZS = Tansanískur skildingur||0
UAH = Úkraínsk hrinja
UAK = Ukrainian Karbovanetz|||1
UGX = Úgandskur skildingur||0
USD = Bandaríkjadalur
USN = Bandaríkjadalur (næsta dag)|||1
USS = Bandaríkjadalur (sama dag)|||1
UYU = Úrúgvæskur pesi
UZS = Úsbekskt súm||0
VEB = Bolívar í Venesúela (1871–2008)|||1
VEF = Venesúelskur bólívari
VND = Víetnamskt dong|₫|0
VUV = Vanúatúskt vatú||0
WST = Samóatala
XAF = Miðafrískur franki|FCFA|0
XAG = unse silfur|||1
XAU = unse gull|||1
XCD = Austurkarabískur dalur|EC$
XDR = Sérstök dráttarréttindi|||1
XFO = Franskur gullfranki|||1
XFU = Franskur franki, UIC|||1
XOF = Vesturafrískur franki|CFA|0
XPD = unse palladín|||1
XPF = Pólinesískur franki|CFPF|0
XPT = unse platína|||1
XXX = Óþekktur gjaldmiðill|||1
YDD = Jemenskur denari|||1
YER = Jemenskt ríal||0
YUM = Júgóslavneskur denari|||1
ZAL = Rand (viðskipta)|||1
ZAR = Suðurafrískt rand
ZMK = Zambian Kwacha (1968–2012)||0|1
ZMW = Sambísk kvaka
ZWD = Simbabveskur dalur||0|1
