# 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=asa
AED = dirham ya Falme dha Kiarabu
AOA = kwandha ya Angola
AUD = dola ya Authtralia|$
BHD = dinari ya Bahareni||3
BIF = faranga ya Burundi||0
BWP = pula ya Botthwana
CAD = dola ya Kanada|CA$
CDF = faranga ya Kongo
CHF = faranga ya Uthwithi
CNY = yuan renminbi ya China|¥
CVE = ethkudo ya Kepuvede
DJF = faranga ya Jibuti||0
DZD = dinari ya Aljeria
EGP = pauni ya Mithri
ERN = nakfa ya Eritrea
ETB = bir ya Uhabeshi
EUR = yuro|€
GBP = pauni ya Uingeredha|£
GHC = thedi ya Ghana|||1
GMD = dalathi ya Gambia
GNS = faranga ya Gine|||1
INR = rupia ya India|Rs.
JPY = tharafu ya Kijapani|¥|0
KES = shilingi ya Kenya
KMF = faranga ya Komoro||0
LRD = dola ya Liberia
LSL = loti ya Lethoto
LYD = dinari ya Libya||3
MAD = dirham ya Moroko
MGA = faranga ya Bukini||0
MRO = ugwiya ya Moritania||0
MUR = rupia ya Morithi||0
MWK = kwacha ya Malawi
MZM = metikali ya Mthumbiji|||1
NAD = dola ya Namibia|$
NGN = naira ya Nijeria
RWF = faranga ya Rwanda||0
SAR = riyal ya Thaudia
SCR = rupia ya Shelisheli
SDG = dinari ya Thudani
SDP = pauni ya Thudani|||1
SHP = pauni ya Thantahelena
SLL = leoni||0
SOS = shilingi ya Thomalia||0
STD = dobra ya Thao Tome na Principe||0
SZL = lilangeni
TND = dinari ya Tunithia||3
TZS = shilingi ya Tandhania|TSh|0
UGX = shilingi ya Uganda||0
USD = dola ya Marekani|$
XAF = faranga CFA BEAC|FCFA|0
XOF = faranga CFA BCEAO|CFA|0
ZAR = randi ya Afrika Kuthini
ZMK = kwacha ya Dhambia (1968–2012)||0|1
ZMW = kwacha ya Dhambia
ZWD = dola ya Dhimbabwe||0|1
