summaryrefslogtreecommitdiff
path: root/qva/vendor/common/file_contexts
blob: da8f6e812cc3aef00d0053736a4b5b1f3f3a7d1c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
# Copyright (c) 2018-2021, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#     * Redistributions of source code must retain the above copyright
#       notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
#       copyright notice, this list of conditions and the following
#       disclaimer in the documentation and/or other materials provided
#       with the distribution.
#     * Neither the name of The Linux Foundation nor the names of its
#       contributors may be used to endorse or promote products derived
#       from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED"AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
# ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

###################################
#Dev nodes
#
/dev/hsicctl.*                        u:object_r:vendor_hsic_device:s0
/dev/sp_kernel                        u:object_r:vendor_skp_device:s0
/dev/sp_nvm                           u:object_r:vendor_sp_nvm_device:s0
/dev/sp_keymaster                     u:object_r:vendor_sp_keymaster_device:s0
/dev/sp_keymaster_ssr                 u:object_r:vendor_sp_keymaster_ssr_device:s0
/dev/sp_ssr                           u:object_r:vendor_sp_ssr_device:s0
/dev/spdaemon_ssr                     u:object_r:vendor_spdaemon_ssr_device:s0
/dev/spss_utils                       u:object_r:vendor_spss_utils_device:s0
/dev/spu_hal_ssr                      u:object_r:vendor_spu_hal_ssr_device:s0
/dev/iuicc.*                          u:object_r:vendor_iuicc_device:s0
/dev/cryptoapp                        u:object_r:vendor_cryptoapp_device:s0
/dev/sec_nvm_.*                       u:object_r:vendor_sec_nvm_device:s0
/dev/qbt.*                            u:object_r:vendor_qbt_device:s0
/dev/esoc.*                           u:object_r:vendor_esoc_device:s0
/dev/mhi_.*                           u:object_r:vendor_mhi_device:s0
/dev/mhi_.*_pipe_4                    u:object_r:vendor_mhi_diag_device:s0
/dev/smem_log                         u:object_r:vendor_smem_log_device:s0
/dev/radio0                           u:object_r:vendor_fm_radio_device:s0
/dev/qg                               u:object_r:vendor_qg_device:s0
/dev/qg_battery                       u:object_r:vendor_qg_device:s0
/dev/qvr_external_sensor_ioctl        u:object_r:vendor_qvr_external_sensor_device:s0
/dev/hidraw[0-5]                      u:object_r:vendor_qvr_hidraw_device:s0

###################################
# Dev socket nodes
#
/dev/socket/iop                                 u:object_r:vendor_iop_socket:s0
/dev/socket/mlid                                u:object_r:vendor_mlid_socket:s0
/dev/socket/qwes_ipc                            u:object_r:vendor_qwesd_socket:s0
/dev/socket/ssgqmig                             u:object_r:vendor_ssgqmig_socket:s0
/dev/socket/ssgtzd                              u:object_r:vendor_ssgtzd_socket:s0
/dev/socket/adpl_cmd_uds_file                   u:object_r:vendor_dataadpl_socket:s0
/dev/socket/vendor_wpa_wlan[0-9]                u:object_r:vendor_wifi_vendor_wpa_socket:s0
/dev/socket/wigig/wpa_wigig[0-9]                u:object_r:vendor_wigig_vendor_wpa_socket:s0
/dev/socket/wigig/wigignpt                      u:object_r:vendor_wigignpt_socket:s0
/dev/socket/wigig/sensingdaemon                 u:object_r:vendor_sensingdaemon_socket:s0
/dev/socket/qvrservice_vndr                     u:object_r:vendor_qvrd_vndr_socket:s0
/dev/socket/qvrservice_vndr_camera              u:object_r:vendor_qvrd_vndr_socket:s0

/dev/smcinvoke                                  u:object_r:tee_device:s0
###################################
# System files
#

/(vendor|system/vendor)/bin/dpmQmiMgr                                              u:object_r:vendor_hal_dpmQmiMgr_exec:s0
/vendor/bin/hw/android\.hardware\.keymaster@4\.0-strongbox-service-qti             u:object_r:vendor_hal_keymaster_qti_exec:s0
/vendor/bin/hw/android\.hardware\.keymaster@4\.1-strongbox-service-qti             u:object_r:vendor_hal_keymaster_qti_exec:s0
/vendor/bin/hw/vendor\.qti\.hardware\.cryptfshw@1\.0-service-qti                   u:object_r:vendor_hal_keymaster_qti_exec:s0
/vendor/bin/hw/android\.hardware\.authsecret@1\.0-service-qti                      u:object_r:vendor_hal_authsecret_qti_exec:s0
/vendor/bin/hw/android\.hardware\.drm@[0-9]+\.[0-9]+-service.clearkey             u:object_r:vendor_hal_drm_clearkey_exec:s0
/vendor/bin/hw/android\.hardware\.drm@[0-9]+\.[0-9]+-service-lazy.clearkey         u:object_r:vendor_hal_drm_clearkey_exec:s0

/vendor/bin/hw/vendor\.nxp\.hardware\.nfc@1\.2-service                             u:object_r:hal_nfc_default_exec:s0
/vendor/bin/hw/vendor\.nxp\.hardware\.nfc@2\.0-service                             u:object_r:hal_nfc_default_exec:s0
/vendor/bin/hw/vendor\.qti\.hardware\.alarm@1\.0-service                           u:object_r:vendor_hal_alarm_qti_default_exec:s0
/vendor/bin/hw/vendor\.qti\.hardware\.iop@2\.0-service                             u:object_r:vendor_hal_iop_default_exec:s0
/vendor/bin/hw/vendor\.qti\.hardware\.qteeconnector@1\.0-service                   u:object_r:vendor_hal_qteeconnector_qti_exec:s0
/vendor/bin/hw/vendor\.qti\.hardware\.qseecom@1\.0-service                         u:object_r:vendor_hal_qseecom_default_exec:s0
/vendor/bin/hw/vendor\.qti\.hardware\.scve\.objecttracker@1\.0-service             u:object_r:vendor_scve_exec:s0
/(vendor|system/vendor)/bin/hw/vendor\.qti\.spu@1\.[0-1]-service                   u:object_r:vendor_hal_spu_qti_exec:s0
/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.scve\.panorama@1\.0-service  u:object_r:vendor_scve_exec:s0
/vendor/bin/hw/vendor\.qti\.hardware\.sensorscalibrate@1\.0-service                u:object_r:vendor_hal_sensorscalibrate_qti_default_exec:s0
/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.soter@1\.0-service           u:object_r:vendor_hal_soter_qti_exec:s0
/vendor/bin/hw/vendor\.qti\.hardware\.vibrator@1\.[0-3]-service                    u:object_r:hal_vibrator_default_exec:s0
/vendor/bin/hw/vendor\.qti\.hardware\.vibrator\.service                            u:object_r:hal_vibrator_default_exec:s0
/(vendor|system/vendor)/bin/hw/vendor\.qti\.power\.pasrmanager\@1\.0-service       u:object_r:vendor_hal_pasrmanager_qti_exec:s0
/(vendor|system/vendor)/bin/hw/vendor\.qti\.memory\.pasrmanager\@1\.0-service      u:object_r:vendor_pasrmanager_memory_qti_exec:s0
/(vendor|system/vendor)/bin/hw/vendor\.qti\.psiclient\@1\.0-service                u:object_r:vendor_psiservice_exec:s0
/(vendor|system/vendor)/bin/hw/vendor\.qti\.secure_element@1\.0-service            u:object_r:hal_secure_element_default_exec:s0
/(vendor|system/vendor)/bin/hw/vendor\.qti\.secure_element@1\.2-service            u:object_r:hal_secure_element_default_exec:s0
/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.perf@2\.[0-2]-service        u:object_r:vendor_hal_perf_default_exec:s0
/(vendor|system/vendor)/bin/mm-audio-ftm                                           u:object_r:vendor_audioftm_exec:s0
/(vendor|system/vendor)/bin/qrtr-ns                                                u:object_r:vendor_qrtr_exec:s0
/(vendor|system/vendor)/bin/spdaemon                                               u:object_r:vendor_spdaemon_exec:s0
/(vendor|system/vendor)/bin/sec_nvm                                                u:object_r:vendor_sec_nvm_exec:s0
/(vendor|system/vendor)/bin/hostapd_cli                                            u:object_r:vendor_hostapd_exec:s0
/(vendor|system/vendor)/bin/qcom-system-daemon                                     u:object_r:vendor_qcomsysd_exec:s0
/(vendor|system/vendor)/bin/init\.qti\.media\.sh                                   u:object_r:vendor_qti_media_exec:s0
/(vendor|system/vendor)/bin/vppservice                                             u:object_r:vendor_vppservice_exec:s0
/(vendor|system/vendor)/bin/hw/qconfigservice                                      u:object_r:vendor_qconfigservice_exec:s0
/(vendor|system/vendor)/bin/wifidisplayhalservice                                  u:object_r:vendor_wifidisplayhalservice_qti_exec:s0
/(vendor|system/vendor)/bin/wfdhdcphalservice                                      u:object_r:vendor_wfdhdcphalservice_qti_exec:s0
/(vendor|system/vendor)/bin/wfdvndservice                                          u:object_r:vendor_wfdvndservice_exec:s0
/(vendor|system/vendor)/bin/nqnfcinfo                                              u:object_r:vendor_nqnfcinfo_exec:s0
/(vendor|system/vendor)/bin/ssgqmigd                                               u:object_r:vendor_ssgqmigd_exec:s0
/(vendor|system/vendor)/bin/ssgtzd                                                 u:object_r:vendor_ssgtzd_exec:s0
/(vendor|system/vendor)/bin/mlid                                                   u:object_r:vendor_mlid_exec:s0
/(vendor|system/vendor)/bin/qcc-trd                                             u:object_r:vendor_qcc_trd_exec:s0
/(vendor|system/vendor)/bin/seemp_healthd                                          u:object_r:vendor_seemp_health_daemon_exec:s0
/(vendor|system/vendor)/bin/qfp-daemon                                             u:object_r:vendor_qfp-daemon_exec:s0
/(vendor|system/vendor)/bin/adpl                                                   u:object_r:vendor_adpl_exec:s0
/(vendor|system/vendor)/bin/hw/vendor\.qti\.esepowermanager@1\.0-service           u:object_r:vendor_hal_esepowermanager_qti_exec:s0
/(vendor|system/vendor)/bin/hw/vendor\.qti\.esepowermanager@1\.1-service           u:object_r:vendor_hal_esepowermanager_qti_exec:s0
/(vendor|system/vendor)/bin/esepmdaemon                                            u:object_r:vendor_esepmdaemon_exec:s0
/(vendor|system/vendor)/bin/mdm_helper                                             u:object_r:vendor_mdm_helper_exec:s0
/(vendor|system/vendor)/bin/ks                                                     u:object_r:vendor_mdm_helper_exec:s0
/(vendor|system/vendor)/bin/mmi                                                    u:object_r:vendor_mmi_exec:s0
/(vendor|system/vendor)/bin/mmid                                                   u:object_r:vendor_mmi_exec:s0
/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.factory@1\.[0-1]-service     u:object_r:vendor_hal_factory_qti_default_exec:s0
/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.servicetracker@1\.[0-2]-service u:object_r:vendor_hal_srvctracker_default_exec:s0
/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.cvp@1\.0-service             u:object_r:vendor_cvp_exec:s0
/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.secureprocessor@1\.0         u:object_r:vendor_hal_secureprocessor_qti_exec:s0
/(vendor|system/vendor)/bin/fstman                                                 u:object_r:vendor_fstman_exec:s0
/(vendor|system/vendor)/bin/wigighalsvc                                            u:object_r:vendor_wigighalsvc_exec:s0
/(vendor|system/vendor)/bin/wigignpt                                               u:object_r:vendor_wigignpt_exec:s0
/(vendor|system/vendor)/bin/sensingdaemon                                          u:object_r:vendor_sensingdaemon_exec:s0
/vendor/bin/hw/android\.hardware\.usb\@1\.[0-2]-service-qti                        u:object_r:vendor_hal_usb_qti_exec:s0
/vendor/bin/hw/android\.hardware\.usb\.gadget\@1\.[0-2]-service-qti                u:object_r:vendor_hal_usb_qti_exec:s0
/vendor/bin/vendor\.qti\.qspmhal@1\.0-service                                      u:object_r:vendor_hal_qspmhal_default_exec:s0
/vendor/bin/qesdk-manager                                                          u:object_r:vendor_hal_qesdhal_default_exec:s0
/(vendor|system/vendor)/bin/mutualex                                               u:object_r:vendor_mutualex_exec:s0
/(vendor|system/vendor)/bin/hw/qvrservice                                          u:object_r:vendor_qvrd_vndr_exec:s0
/vendor/bin/modemManager                                                           u:object_r:vendor_modem_manager_exec:s0

/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.qccvndhal@1\.0-service       u:object_r:vendor_hal_qccvndhal_qti_exec:s0
/(vendor|system/vendor)/bin/sxrhalservice                                       u:object_r:vendor_sxrhalservice_qti_exec:s0

#### Context for location features
## location daemons and binaries
/(vendor|system/vendor)/bin/hw/vendor\.qti\.gnss@.*-service                        u:object_r:vendor_hal_gnss_qti_exec:s0
/(vendor|system/vendor)/bin/xtwifi-inet-agent                                      u:object_r:vendor_location_exec:s0
/(vendor|system/vendor)/bin/xtwifi-client                                          u:object_r:vendor_location_exec:s0
/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.seccam@1\.0-service-qti      u:object_r:vendor_hal_seccam_qti_exec:s0
/(vendor|system/vendor)/bin/garden_app                                             u:object_r:vendor_location_exec:s0
/(vendor|system/vendor)/bin/DR_AP_Service                                          u:object_r:vendor_location_exec:s0
/(vendor|system/vendor)/bin/slim_daemon                                            u:object_r:vendor_location_exec:s0
/(vendor|system/vendor)/bin/edgnss-daemon                                          u:object_r:vendor_location_exec:s0

#bluetooth
/vendor/bin/hw/vendor\.qti\.hardware\.bluetooth_dun@1\.0-service                   u:object_r:vendor_hal_bluetooth_dun_qti_exec:s0

#hvdcp
/vendor/bin/hvdcp_opti                                                             u:object_r:vendor_hvdcp_exec:s0
/vendor/bin/init.qti.chg_policy.sh                                                 u:object_r:vendor_qti_init_shell_exec:s0

#perf
/sys/module/cpu_boost(/.*)?                                         u:object_r:vendor_sysfs_cpu_boost:s0
/sys/module/msm_performance(/.*)?                                   u:object_r:vendor_sysfs_msm_perf:s0
/sys/module/process_reclaim(/.*)?                                   u:object_r:vendor_sysfs_process_reclaim:s0
/sys/module/vmpressure(/.*)?                                        u:object_r:vendor_sysfs_vmpressure:s0

###################################
# sysfs files
#
/sys/devices/virtual/net/bond0/bonding/queue_id                     u:object_r:vendor_sysfs_bond0:s0
/sys/devices/virtual/net/bond0/queues/rx-0/rps_cpus                 u:object_r:vendor_sysfs_bond0:s0
/sys/devices/virtual/net/bond0/statistics/rx_bytes                  u:object_r:vendor_sysfs_bond0:s0
/sys/devices/virtual/net/bond0/statistics/tx_bytes                  u:object_r:vendor_sysfs_bond0:s0

/sys/devices(/platform)?/soc/[a-z0-9]+\.qcom,pcie/pci[0-9:]+/[0-9:\.]+/[0-9:\.]+/wil6210/fst_link_loss            u:object_r:vendor_sysfs_wigig:s0
/sys/devices(/platform)?/soc/[a-z0-9]+\.qcom,pcie/pci[0-9:]+/[0-9:\.]+/[0-9:\.]+/wil6210/thermal_throttling       u:object_r:vendor_sysfs_wigig:s0
/sys/devices(/platform)?/soc/[a-z0-9]+\.qcom,pcie/pci[0-9:]+/[0-9:\.]+/[0-9:\.]+/wil6210/snr_thresh               u:object_r:vendor_sysfs_wigig:s0
/sys/devices(/platform)?/soc/[a-f0-9]+\.qcom,pcie/pci[0-9:]+/[0-9:\.]+/[0-9:\.]+/wil6210/fst_config               u:object_r:vendor_sysfs_wigig:s0
/sys/devices(/platform)?/soc/[a-z0-9]+\.qcom,pcie/pci[0-9:]+/[0-9:\.]+/[0-9:\.]+/net/wigig0/queues/rx-0/rps_cpus  u:object_r:vendor_sysfs_wigig:s0
/sys/devices(/platform)?/soc/[a-z0-9]+\.qcom,pcie/pci[0-9:]+/[0-9:\.]+/[0-9:\.]+/net/wigig0/gro_flush_timeout     u:object_r:vendor_sysfs_wigig:s0

/sys/devices(/platform)?/soc/soc:qcom,gpubw/devfreq/soc:qcom,gpubw(/.*)? u:object_r:vendor_sysfs_devfreq:s0
/sys/class/kgsl/kgsl/proc(/.*)?                                    u:object_r:vendor_sysfs_kgsl_proc:s0

/sys/devices(/platform)?/soc/soc:qcom,spss_utils(/.*)?             u:object_r:vendor_sysfs_spss:s0
/sys/devices(/platform)?/soc/[a-f0-9]+.qcom,vidc/sku_version       u:object_r:vendor_sysfs_sku:s0

###################################
# data files
#
/data/vendor/iop(/.*)?                                              u:object_r:vendor_iop_data_file:s0
/data/vendor/misc/qti_fp(/.*)?                                      u:object_r:vendor_qfp-daemon_data_file:s0
/data/vendor/wifi(/.*)?                                             u:object_r:vendor_wifi_vendor_data_file:s0
/data/vendor/wifi/sockets(/.*)?                                     u:object_r:vendor_wifi_vendor_wpa_socket:s0
/data/vendor/wifi/wigig_sockets(/.*)?                               u:object_r:vendor_wifi_vendor_wpa_socket:s0
/data/vendor/wifi/wigig_sockets/wpa_ctrl.*                          u:object_r:vendor_wifi_vendor_wpa_socket:s0
/dev/cam-hyp-intf-[0-9]+                                            u:object_r:video_device:s0
/data/vendor/perfd(/.*)?                                            u:object_r:vendor_mpctl_data_file:s0
/data/vendor/dataqti(/.*)?                                          u:object_r:vendor_qti_data_file:s0
/data/vendor/qdmastats(/.*)?                                        u:object_r:vendor_qcc_trd_data_file:s0
/data/vendor/qdma(/.*)?                                             u:object_r:vendor_qcc_trd_data_file:s0
/data/vendor/qwes(/.*)?                                             u:object_r:vendor_qwes_data_file:s0
/data/vendor/vpp(/.*)?                                              u:object_r:vendor_vpp_data_file:s0
/data/vendor/wifi/wigig_hostapd(/.*)?                               u:object_r:vendor_wigig_hostapd_socket:s0
/data/vendor/lm(/.*)?                                               u:object_r:vendor_lm_data_file:s0
/data/vendor/secure_element(/.*)?                                   u:object_r:vendor_secure_element_vendor_data_file:s0
/data/vendor/sensing(/.*)?                                          u:object_r:vendor_sensing_vendor_data_file:s0
/data/vendor/gaming(/.*)?                                           u:object_r:vendor_qspmhal_data_file:s0
/data/vendor/qvr(/.*)?                                              u:object_r:vendor_qvrd_vndr_data_file:s0

###################################
# persist files
#
/mnt/vendor/persist/secnvm(/.*)?      u:object_r:vendor_persist_secnvm_file:s0
/mnt/vendor/persist/iar_db(/.*)?      u:object_r:vendor_persist_iar_db_file:s0
/mnt/vendor/persist/qti_fp(/.*)?      u:object_r:vendor_persist_qti_fp_file:s0
/mnt/vendor/persist/FTM_AP(/.*)?      u:object_r:vendor_persist_mmi_file:s0
/mnt/vendor/persist/vpp(/.*)?         u:object_r:vendor_persist_vpp_file:s0
/mnt/vendor/persist/hvdcp_opti(/.*)?  u:object_r:vendor_persist_hvdcp_file:s0

# spunvm partition
/mnt/vendor/spunvm(/.*)?              u:object_r:vendor_spunvm_file:s0

# same-process HAL files and their dependencies
#
# libmmi_jni
/vendor/lib(64)?/libmmi_jni\.so             u:object_r:same_process_hal_file:s0

# SVA files
/vendor/lib(64)?/liblistenjni\.so          u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/liblistensoundmodel2\.so  u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/vendor.qti.qspmhal@1.0\.so  u:object_r:same_process_hal_file:s0

# Perf
/vendor/lib(64)?/vendor\.qti\.hardware\.perf@2\.0\.so    u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/vendor\.qti\.hardware\.perf@2\.1\.so    u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/vendor\.qti\.hardware\.perf@2\.2\.so    u:object_r:same_process_hal_file:s0

#wifilearner daemon
/(vendor|system/vendor)/bin/wifilearner    u:object_r:vendor_wifilearnersvc_exec:s0

#wificfr daemon
/(vendor|system/vendor)/bin/wificfrtool    u:object_r:wificfrsvc_exec:s0