# Copyright (C) 2016 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#*******************************************************************************
#* Copyright (C) 2008-2011, International Business Machines Corporation and    *
#* others. All Rights Reserved.                                                *
#*******************************************************************************
#* This is the properties contains ICU runtime configuration 
#*

#
# The default TimeZone implementation type used by the ICU TimeZone
# factory method. [ ICU | JDK ]
#
com.ibm.icu.util.TimeZone.DefaultTimeZoneType = JDK

#
# By default, DecimalFormat uses some internal equivalent character
# data in addition to ones in DecimalFormatSymbols for parsing
# decimal/grouping separators.  When this property is true,
# DecimalFormat uses separators configured by DecimalFormatSymbols only
# and does not try to find a match in the internal equivalent character
# data.
#
com.ibm.icu.text.DecimalFormat.SkipExtendedSeparatorParsing = false


# 
# [Internal Use Only]
# Disable resource path scan for building full locale name list
# at run time.
#
com.ibm.icu.impl.ICUResourceBundle.skipRuntimeLocaleResourceScan = false
