########################################
# NLP/WIFI positioning options bit mask
########################################
# Enable NLP fixes for WIPER/ODCPI feature => WIPER = 0x1
# Enable free wifi scan injections for GEOFENCE => FREE_WIFI = 0x2
# Enable SUPL2 MLD wifi => SUPL_WIFI = 0x4
# Enable Attached Wifi AP info injection for GEOFENCE => FREE_AP_INFO = 0x8
# default = WIPER | FREE_WIFI | SUPL_WIFI | FREE_AP_INFO
NLP_WIFI_LISTENER_MODE = 0

##################################################
# Select WIFI Wait Timeout value in seconds for SUPL
##################################################
WIFI_WAIT_TIMEOUT_SELECT = 0

################################
# NLP Settings
################################
# NLP_MODE  1: GNP Only, 2: QNP Only, 3: Combo
# NLP_TOLERANCE_TIME_FIRST: Time in ms used in Combo mode
# to determine how much Tolerance for first position
# NLP_TOLERANCE_TIME_AFTER: Time in ms used in Combo mode
# to determine how much Tolerance for positions after first
# NLP_THRESHOLD: Sets how many failures needed before
# switching preferred NLP in Combo mode
# NLP_ACCURACY_MULTIPLE: Determines how far off the accuracy
# must be, in multiples, between two NLP location reports to
# be considered much worse accuracy. Used in switching logic
NLP_MODE = 1
NLP_TOLERANCE_TIME_FIRST = 5000
NLP_TOLERANCE_TIME_AFTER = 20000
NLP_THRESHOLD = 3
NLP_ACCURACY_MULTIPLE = 2

# Threshold period for ZPP triggers
ZPP_TRIGGER_THRESHOLD=10000

###################################
# GEOFENCE SERVICES
###################################
# If set to one of the defined values below, it will override
# the responsiveness for geofence services, which implements
# the Proximity Alert API. If not set to a value defined below,
# which is default, it will not override the responsivness.
# The geofence HAL API is unaffected by this value.
# GEOFENCE_SERVICES_RESPONSIVENESS_OVERRIDE Values:
# 1: LOW responsiveness
# 2: MEDIUM responsiveness
# 3: HIGH responsiveness
GEOFENCE_SERVICES_RESPONSIVENESS_OVERRIDE = 0

#####################################
# IZAT PREMIUM FEATURE SETTINGS
#####################################
#Possible states of a feature:
#DISABLED
#BASIC
#PREMIUM

#GTP_CELL_PROC valid options:
# AP
# MODEM
GTP_CELL_PROC=MODEM

#GTP_CELL valid modes:
# DISABLED
# BASIC
GTP_CELL=BASIC

#GTP_WIFI valid modes:
# DISABLED
# BASIC
GTP_WIFI=BASIC

#SAP valid modes:
# DISABLED
# BASIC
# PREMIUM
SAP=BASIC

#PIP valid modes:
# DISABLED
# PREMIUM
PIP=DISABLED

#####################################
# Location process launcher settings
#####################################

#Values for PROCESS_STATE:
# ENABLED
# DISABLED

#FEATURE MASKS:
# GTP-WIFI 0X03
# GTP-CELL 0X0c
# PIP      0x30
# SAP      0Xc0

#Values for PLATFORMS can be:
#1. Any valid values obtained from ro.board.platform separated by single space. For example: msm8960 msm8226
#2. all -> for All platforms

#Values for BASEBAND can be:
#1. Any valid values obtained from ro.baseband separated by single space. For example: sglte sglte2
#2. all -> for all basebands

PROCESS_NAME=/system/bin/gpsone_daemon
PROCESS_STATE=DISABLED
PROCESS_GROUPS=inet net_raw
PREMIUM_FEATURE=0
IZAT_FEATURE_MASK=0
PLATFORMS=msm7630_fusion
BASEBAND=svlte2a sglte sglte2

PROCESS_NAME=/system/bin/location-mq
PROCESS_STATE=ENABLED
PROCESS_GROUPS=gps
PREMIUM_FEATURE=1
IZAT_FEATURE_MASK=0x3f
PLATFORMS=all
BASEBAND=all

PROCESS_NAME=/system/bin/lowi-server
PROCESS_STATE=ENABLED
PROCESS_GROUPS=gps net_admin wifi inet qcom_diag net_raw
PREMIUM_FEATURE=1
IZAT_FEATURE_MASK=0x33
PLATFORMS=all
BASEBAND=all

PROCESS_NAME=/system/bin/quipc_igsn
PROCESS_STATE=ENABLED
PROCESS_GROUPS=inet gps qcom_diag
PREMIUM_FEATURE=1
IZAT_FEATURE_MASK=0x30
PLATFORMS=all
BASEBAND=all

PROCESS_NAME=/system/bin/quipc_main
PROCESS_STATE=ENABLED
PROCESS_GROUPS=gps net_admin wifi inet qcom_diag
PREMIUM_FEATURE=1
IZAT_FEATURE_MASK=0x30
PLATFORMS=all
BASEBAND=all

PROCESS_NAME=/system/bin/xtwifi-inet-agent
PROCESS_STATE=ENABLED
PROCESS_GROUPS=inet gps
PREMIUM_FEATURE=1
IZAT_FEATURE_MASK=0x0f
PLATFORMS=all
BASEBAND=all

PROCESS_NAME=/system/bin/xtwifi-client
PROCESS_STATE=ENABLED
PROCESS_GROUPS=net_admin wifi inet gps
PREMIUM_FEATURE=1
IZAT_FEATURE_MASK=0x0f
PLATFORMS=all
BASEBAND=all

PROCESS_NAME=/system/bin/gsiff_daemon
PROCESS_STATE=ENABLED
PROCESS_GROUPS=gps net_raw misc qcom_oncrpc
PREMIUM_FEATURE=1
IZAT_FEATURE_MASK=0xf0
PLATFORMS=all
BASEBAND=all
