# Copyright 2014 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:
#  cldrVersion=25
#  date=$Date: 2013-08-29 04:32:04 +0200 (Thu, 29 Aug 2013) $
#  number=$Revision: 9287 $
#  type=root
AED = Diraamu eya Emireeti
AOA = Kwanza ey'Angola
AUD = Doola ey'Awusiturelya|$
BHD = Dinaali ey'eBaareeni||3
BIF = Faranga ey'eburundi||0
BWP = Pula ey'eBotiswana
CAD = Doola ey'eKanada|CA$
CDF = Faranga ey'eKongo
CHF = Faranga ey'eSwitizirandi
CNY = Yuwani Reniminibi ey'eCayina|¥
CVE = Esikudo ey'Keepu Veredi
DJF = Faranga ey'eJjibuti||0
DZD = Dinaali ey'Aligerya
EGP = Pawundi ey'eMisiri
ERN = Nakifa ey'Eritureya
ETB = Biiru ey'Esyopya
EUR = Yuro|€
GBP = Pawundi ey'eBungereza|£
GHC = Sedi ey'eGana|||1
GMD = Dalasi ey'eGambya
GNS = Faranga ey'eGini|||1
INR = Rupiya ey'eBuyindi|Rs.
JPY = Yeni ey'eJapani|¥|0
KES = Silingi ey'eKenya
KMF = Faranga ey'eKomoro||0
LRD = Doola ey'eLiberya
LSL = Loti ey'eLesoso
LYD = Dinaali ey'eLibya||3
MAD = Diraamu ey'eMoroko
MGA = Faranga ey'eMalagase||0
MRO = Wugwiya ey'eMawritenya||0
MUR = Rupiya ey'eMawurisyasi||0
MWK = Kwaca ey'eMalawi
MZM = Metikaali ey'eMozambiiki|||1
NAD = Doola ey'eNamibiya|$
NGN = Nayira ey'eNayijerya
RWF = Faranga ey'eRwanda||0
SAR = Riyaali ey'eBuwarabu
SCR = Rupiya ey'eSesere
SDG = Dinaali ey'eSudaani
SDP = Pawundi ey'eSudaani|||1
SHP = Pawundi ey'eSenti Herena
SLL = Lewone||0
SOS = Silingi ey'eSomaliya||0
STD = Dobura ey'eSantome ne Purincipe||0
SZL = Lilangeni
TND = Dinaali ey'eTunizya||3
TZS = Silingi ey'eTanzaniya||0
UGX = Silingi eya Yuganda|USh|0
USD = Doola ey'Amerika|$
XAF = Faranga ey'omu Afirika eya wakati|FCFA|0
XOF = Faranga ey'omu Afirika ey'ebugwanjuba|CFA|0
ZAR = Randi ey'eSawusafirika
ZMK = Kwaca ey'eZambya (1968–2012)||0|1
ZMW = Kwaca ey'eZambya
ZWD = Doola ey'eZimbabwe||0|1
