# 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=sn
AED = Diramu re United Arab Emirates
AOA = Kwanza ye Angola
AUD = Dora re Australia|$
BHD = Dhinari re Bhahareni||3
BIF = Furenki re Bhurundi||0
BWP = Pura re Botswana
CAD = Dora re Kanada|CA$
CDF = Furenki re Kongo
CHF = Furenki re Swisi
CNY = Yuan Renminbi ye China|¥
CVE = Dhora re Escudo
DJF = Furenki re Jibhuti||0
DZD = Dhinari re Aljeria
EGP = Paundi re Ijipita
ERN = Nakfa re Eritrea
ETB = Dhora re Etiopia
EUR = Yuro|€
GBP = Paundi ye Bhiriteni|£
GHC = Sedi ye Ghana|||1
GMD = Dalasi ye Gambia
GNS = Furenki re Gine|||1
INR = Rupe re India|Rs.
JPY = Yeni ye Japani|¥|0
KES = Shiringi ye Kenya
KMF = Furenki re Komoro||0
LRD = Dora re Liberia
LSL = Loti ye Lesoto
LYD = Dinari re Libya||3
MAD = Dirham ye Moroko
MGA = Furenki re Malagasi||0
MRO = Ugwiya ye Moritania||0
MUR = Rupi ye Morishasi||0
MWK = Kwacha ye Malawi
MZM = Metika ye Mozambiki|||1
NAD = Dora re Namibia|$
NGN = Naira ye Nijeria
RWF = Furenki re Ruwanda||0
SAR = Riyali re Saudi
SCR = Rupi re Seyisheri
SDG = Dinari re Sudani
SDP = Paundi re Sudani|||1
SHP = Paundi re Senti Helena
SLL = Leoni||0
SOS = Shiringi re Somalia||0
STD = Dobra re Sao Tome ne Principe||0
SZL = Lilangeni
TND = Dinari re Tunisia||3
TZS = Shiringi re Tanzania||0
UGX = Shiringi re Uganda||0
USD = Dora re Amerika|$
XAF = Furenki CFA BEAC|FCFA|0
XOF = Furenki CFA BCEAO|CFA|0
ZAR = Randi
ZMK = Kwacha ye Zambia (1968–2012)||0|1
ZMW = Kwacha ye Zambia
ZWD = Dora re Zimbabwe||0|1
