syzbot


INFO: rcu detected stall in dput (3)

Status: upstream: reported on 2024/12/09 17:03
Reported-by: syzbot+593324eabd9eef11e831@syzkaller.appspotmail.com
First crash: 266d, last: 6d16h
Similar bugs (12)
Kernel Title Rank 🛈 Repro Cause bisect Fix bisect Count Last Reported Patched Status
linux-6.1 INFO: rcu detected stall in dput (2) 1 40 2d15h 461d 0/3 upstream: reported on 2024/05/28 13:43
upstream INFO: rcu detected stall in dput (4) kvm 1 C error error 2 1361d 1721d 0/29 closed as invalid on 2022/02/08 10:37
upstream INFO: rcu detected stall in dput (3) mm 1 1 2063d 2063d 0/29 closed as invalid on 2020/01/09 08:13
upstream INFO: rcu detected stall in dput (8) fs 1 C done 458 14h53m 610d 0/29 upstream: reported C repro on 2023/12/31 19:35
linux-5.15 INFO: rcu detected stall in dput 1 2 734d 774d 0/3 auto-obsoleted due to no activity on 2023/12/08 00:28
upstream INFO: rcu detected stall in dput (6) fs 1 2 1035d 1094d 0/29 auto-obsoleted due to no activity on 2023/01/16 04:13
linux-5.15 INFO: rcu detected stall in dput (2) 1 10 393d 535d 0/3 auto-obsoleted due to no activity on 2024/11/12 09:55
upstream INFO: rcu detected stall in dput (5) fs 1 1 1231d 1231d 0/29 auto-closed as invalid on 2022/07/18 12:41
linux-6.1 INFO: rcu detected stall in dput 1 1 782d 782d 0/3 auto-obsoleted due to no activity on 2023/10/20 22:44
upstream INFO: rcu detected stall in dput fs 1 1 2099d 2098d 0/29 closed as invalid on 2019/12/04 14:04
linux-6.6 INFO: rcu detected stall in dput 1 31 8d05h 76d 0/2 upstream: reported on 2025/06/17 20:59
upstream INFO: rcu detected stall in dput (2) mm 1 2 2064d 2063d 0/29 closed as invalid on 2020/01/08 05:33

Sample crash report:
rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
rcu: 	1-...!: (1 ticks this GP) idle=c0d/1/0x4000000000000000 softirq=27177/27177 fqs=0 
	(detected by 0, t=10502 jiffies, g=38353, q=540)
Sending NMI from CPU 0 to CPUs 1:
NMI backtrace for cpu 1
CPU: 1 PID: 10146 Comm: syz.6.1490 Not tainted 5.15.189-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/12/2025
RIP: 0010:strlen+0x2a/0x60 lib/string.c:581
Code: 41 57 41 56 41 54 53 48 c7 c0 ff ff ff ff 49 be 00 00 00 00 00 fc ff df 48 89 fb 49 89 c7 48 89 d8 48 c1 e8 03 42 0f b6 04 30 <84> c0 75 11 48 ff c3 49 8d 47 01 42 80 7c 3f 01 00 75 de eb 19 89
RSP: 0018:ffffc90000dd0218 EFLAGS: 00000802
RAX: 0000000000000006 RBX: ffffffff8a0c198b RCX: 000000008a0c1902
RDX: ffffffff81819815 RSI: ffffffff8c11c360 RDI: ffffffff8a0c1980
RBP: ffffc90000dd0330 R08: dffffc0000000000 R09: fffffbfff1ad2dd6
R10: fffffbfff1ad2dd6 R11: 1ffffffff1ad2dd5 R12: dffffc0000000000
R13: dffffc0000000000 R14: dffffc0000000000 R15: 000000000000000a
FS:  0000000000000000(0000) GS:ffff8880b9100000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000555579b84808 CR3: 0000000054fbf000 CR4: 00000000003506e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000600
Call Trace:
 <IRQ>
 trace_event_get_offsets_lock include/trace/events/lock.h:39 [inline]
 perf_trace_lock+0xb5/0x370 include/trace/events/lock.h:39
 trace_lock_release include/trace/events/lock.h:58 [inline]
 lock_release+0x823/0x870 kernel/locking/lockdep.c:5634
 rcu_read_unlock include/linux/rcupdate.h:772 [inline]
 BPF_PROG_RUN_ARRAY include/linux/bpf.h:1346 [inline]
 trace_call_bpf+0x4f8/0x5a0 kernel/trace/bpf_trace.c:127
 perf_trace_run_bpf_submit+0x79/0x1c0 kernel/events/core.c:10002
 perf_trace_preemptirq_template+0x2be/0x380 include/trace/events/preemptirq.h:14
 trace_irq_enable_rcuidle+0x108/0x180 include/trace/events/preemptirq.h:40
 trace_hardirqs_on+0x57/0x80 kernel/trace/trace_preemptirq.c:44
 asm_sysvec_irq_work+0x16/0x20 arch/x86/include/asm/idtentry.h:713
RIP: 0010:rcu_read_unlock_special+0x84/0x480 kernel/rcu/tree_plugin.h:671
Code: f1 f1 f1 00 f2 f2 f2 4a 89 04 2b 66 42 c7 44 2b 09 f3 f3 42 c6 44 2b 0b f3 65 44 8b 35 7d 16 9e 7e 41 f7 c6 00 00 f0 00 74 45 <48> c7 44 24 20 0e 36 e0 45 4a c7 04 2b 00 00 00 00 66 42 c7 44 2b
RSP: 0018:ffffc90000dd07a0 EFLAGS: 00000206
RAX: f3b991e2245fbb00 RBX: 1ffff920001ba0f8 RCX: f3b991e2245fbb00
RDX: dffffc0000000000 RSI: ffffffff8a0b15c0 RDI: ffffffff8a599340
RBP: ffffc90000dd0880 R08: dffffc0000000000 R09: fffffbfff1ff6e39
R10: fffffbfff1ff6e39 R11: 1ffffffff1ff6e38 R12: ffffffff8c120800
R13: dffffc0000000000 R14: 0000000000000246 R15: 0000000000000002
 __rcu_read_unlock+0x78/0xd0 kernel/rcu/tree_plugin.h:422
 rcu_read_unlock include/linux/rcupdate.h:771 [inline]
 ndisc_send_skb+0xdc4/0x14a0 net/ipv6/ndisc.c:521
 addrconf_rs_timer+0x2b8/0x600 net/ipv6/addrconf.c:3957
 call_timer_fn+0x16c/0x530 kernel/time/timer.c:1451
 expire_timers kernel/time/timer.c:1496 [inline]
 __run_timers+0x525/0x7c0 kernel/time/timer.c:1767
 run_timer_softirq+0x63/0xf0 kernel/time/timer.c:1780
 handle_softirqs+0x328/0x820 kernel/softirq.c:576
 __do_softirq kernel/softirq.c:610 [inline]
 invoke_softirq kernel/softirq.c:450 [inline]
 __irq_exit_rcu+0x12f/0x220 kernel/softirq.c:659
 irq_exit_rcu+0x5/0x20 kernel/softirq.c:671
 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1108 [inline]
 sysvec_apic_timer_interrupt+0xa0/0xc0 arch/x86/kernel/apic/apic.c:1108
 </IRQ>
 <TASK>
 asm_sysvec_apic_timer_interrupt+0x16/0x20 arch/x86/include/asm/idtentry.h:676
RIP: 0010:__raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:161 [inline]
RIP: 0010:_raw_spin_unlock_irqrestore+0xa5/0x100 kernel/locking/spinlock.c:194
Code: 74 05 e8 2e 47 cc f7 48 c7 44 24 20 00 00 00 00 9c 8f 44 24 20 f6 44 24 21 02 75 4b f7 c3 00 02 00 00 74 01 fb bf 01 00 00 00 <e8> f6 d4 9f f7 65 8b 05 97 d4 50 76 85 c0 74 3c 48 c7 04 24 0e 36
RSP: 0018:ffffc900014df020 EFLAGS: 00000206
RAX: f3b991e2245fbb00 RBX: 0000000000000a02 RCX: f3b991e2245fbb00
RDX: dffffc0000000000 RSI: ffffffff8a0b15c0 RDI: 0000000000000001
RBP: ffffc900014df0b8 R08: dffffc0000000000 R09: ffffed101722765a
R10: ffffed101722765a R11: 1ffff11017227659 R12: dffffc0000000000
R13: ffff888049365000 R14: ffffffff962f7130 R15: 1ffff9200029be04
 __debug_check_no_obj_freed lib/debugobjects.c:982 [inline]
 debug_check_no_obj_freed+0x515/0x530 lib/debugobjects.c:1003
 free_pages_prepare mm/page_alloc.c:1345 [inline]
 free_pcp_prepare mm/page_alloc.c:1391 [inline]
 free_unref_page_prepare+0x237/0x6c0 mm/page_alloc.c:3317
 free_unref_page_list+0x122/0x7e0 mm/page_alloc.c:3433
 release_pages+0x184b/0x1bb0 mm/swap.c:963
 __pagevec_release+0x6d/0xe0 mm/swap.c:983
 pagevec_release include/linux/pagevec.h:81 [inline]
 shmem_undo_range+0x593/0x1840 mm/shmem.c:964
 shmem_truncate_range mm/shmem.c:1063 [inline]
 shmem_evict_inode+0x20d/0xa00 mm/shmem.c:1145
 evict+0x485/0x870 fs/inode.c:647
 __dentry_kill+0x431/0x650 fs/dcache.c:586
 dentry_kill+0xb8/0x290 fs/dcache.c:-1
 dput+0xd8/0x1a0 fs/dcache.c:893
 __fput+0x5ee/0x930 fs/file_table.c:319
 task_work_run+0x125/0x1a0 kernel/task_work.c:188
 exit_task_work include/linux/task_work.h:33 [inline]
 do_exit+0x61e/0x20a0 kernel/exit.c:883
 do_group_exit+0x12e/0x300 kernel/exit.c:997
 get_signal+0x6ca/0x12c0 kernel/signal.c:2900
 arch_do_signal_or_restart+0xc1/0x1300 arch/x86/kernel/signal.c:867
 handle_signal_work kernel/entry/common.c:154 [inline]
 exit_to_user_mode_loop+0x9e/0x130 kernel/entry/common.c:178
 exit_to_user_mode_prepare+0xb1/0x140 kernel/entry/common.c:214
 irqentry_exit_to_user_mode+0x5/0x30 kernel/entry/common.c:320
 exc_page_fault+0x88/0x100 arch/x86/mm/fault.c:1504
 asm_exc_page_fault+0x22/0x30 arch/x86/include/asm/idtentry.h:606
RIP: 0033:0x2f0f7e3b47fd
Code: Unable to access opcode bytes at RIP 0x2f0f7e3b47d3.
RSP: 002b:0000200000000178 EFLAGS: 00010217
RAX: 0000000000000000 RBX: 00007f0c766de090 RCX: 00007f0c764b6be9
RDX: 0000200000000240 RSI: 0000200000000170 RDI: 0000000002000000
RBP: 00007f0c76539e19 R08: 0000200000000580 R09: 0000200000000580
R10: 0000200000000380 R11: 0000000000000206 R12: 0000000000000000
R13: 00007f0c766de128 R14: 00007f0c766de090 R15: 00007ffc44822cd8
 </TASK>
rcu: rcu_preempt kthread timer wakeup didn't happen for 10501 jiffies! g38353 f0x0 RCU_GP_WAIT_FQS(5) ->state=0x402
rcu: 	Possible timer handling issue on cpu=1 timer-softirq=22639
rcu: rcu_preempt kthread starved for 10502 jiffies! g38353 f0x0 RCU_GP_WAIT_FQS(5) ->state=0x402 ->cpu=1
rcu: 	Unless rcu_preempt kthread gets sufficient CPU time, OOM is now expected behavior.
rcu: RCU grace-period kthread stack dump:
task:rcu_preempt     state:I stack:27168 pid:   15 ppid:     2 flags:0x00004000
Call Trace:
 <TASK>
 context_switch kernel/sched/core.c:5030 [inline]
 __schedule+0x11b8/0x43b0 kernel/sched/core.c:6376
 schedule+0x11b/0x1e0 kernel/sched/core.c:6459
 schedule_timeout+0x15c/0x280 kernel/time/timer.c:1914
 rcu_gp_fqs_loop+0x29e/0x11b0 kernel/rcu/tree.c:1972
 rcu_gp_kthread+0x98/0x350 kernel/rcu/tree.c:2145
 kthread+0x436/0x520 kernel/kthread.c:334
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:287
 </TASK>
rcu: Stack dump where RCU GP kthread last ran:
Sending NMI from CPU 0 to CPUs 1:
NMI backtrace for cpu 1
CPU: 1 PID: 10146 Comm: syz.6.1490 Not tainted 5.15.189-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/12/2025
RIP: 0010:error_entry+0x2b/0xf0 arch/x86/entry/entry_64.S:1011
Code: 48 8b 74 24 08 48 89 7c 24 08 52 51 50 41 50 41 51 41 52 41 53 53 55 41 54 41 55 41 56 41 57 56 31 d2 31 c9 45 31 c0 45 31 c9 <45> 31 d2 45 31 db 31 db 31 ed 45 31 e4 45 31 ed 45 31 f6 45 31 ff
RSP: 0018:ffffc90000dd06f0 EFLAGS: 00000046
RAX: f3b991e2245fbb00 RBX: 1ffff920001ba0f8 RCX: 0000000000000000
RDX: 0000000000000000 RSI: ffffffff89c00e3b RDI: ffffffff8a599340
RBP: ffffc90000dd0880 R08: 0000000000000000 R09: 0000000000000000
R10: fffffbfff1ff6e39 R11: 1ffffffff1ff6e38 R12: ffffffff8c120800
R13: dffffc0000000000 R14: 0000000000000246 R15: 0000000000000002
FS:  0000000000000000(0000) GS:ffff8880b9100000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000555579b84808 CR3: 0000000054fbf000 CR4: 00000000003506e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000600
Call Trace:
 <IRQ>
RIP: 0010:rcu_read_unlock_special+0x84/0x480 kernel/rcu/tree_plugin.h:671
Code: f1 f1 f1 00 f2 f2 f2 4a 89 04 2b 66 42 c7 44 2b 09 f3 f3 42 c6 44 2b 0b f3 65 44 8b 35 7d 16 9e 7e 41 f7 c6 00 00 f0 00 74 45 <48> c7 44 24 20 0e 36 e0 45 4a c7 04 2b 00 00 00 00 66 42 c7 44 2b
RSP: 0018:ffffc90000dd07a0 EFLAGS: 00000206
RAX: f3b991e2245fbb00 RBX: 1ffff920001ba0f8 RCX: f3b991e2245fbb00
RDX: dffffc0000000000 RSI: ffffffff8a0b15c0 RDI: ffffffff8a599340
RBP: ffffc90000dd0880 R08: dffffc0000000000 R09: fffffbfff1ff6e39
R10: fffffbfff1ff6e39 R11: 1ffffffff1ff6e38 R12: ffffffff8c120800
R13: dffffc0000000000 R14: 0000000000000246 R15: 0000000000000002
 __rcu_read_unlock+0x78/0xd0 kernel/rcu/tree_plugin.h:422
 rcu_read_unlock include/linux/rcupdate.h:771 [inline]
 ndisc_send_skb+0xdc4/0x14a0 net/ipv6/ndisc.c:521
 addrconf_rs_timer+0x2b8/0x600 net/ipv6/addrconf.c:3957
 call_timer_fn+0x16c/0x530 kernel/time/timer.c:1451
 expire_timers kernel/time/timer.c:1496 [inline]
 __run_timers+0x525/0x7c0 kernel/time/timer.c:1767
 run_timer_softirq+0x63/0xf0 kernel/time/timer.c:1780
 handle_softirqs+0x328/0x820 kernel/softirq.c:576
 __do_softirq kernel/softirq.c:610 [inline]
 invoke_softirq kernel/softirq.c:450 [inline]
 __irq_exit_rcu+0x12f/0x220 kernel/softirq.c:659
 irq_exit_rcu+0x5/0x20 kernel/softirq.c:671
 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1108 [inline]
 sysvec_apic_timer_interrupt+0xa0/0xc0 arch/x86/kernel/apic/apic.c:1108
 </IRQ>
 <TASK>
 asm_sysvec_apic_timer_interrupt+0x16/0x20 arch/x86/include/asm/idtentry.h:676
RIP: 0010:__raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:161 [inline]
RIP: 0010:_raw_spin_unlock_irqrestore+0xa5/0x100 kernel/locking/spinlock.c:194
Code: 74 05 e8 2e 47 cc f7 48 c7 44 24 20 00 00 00 00 9c 8f 44 24 20 f6 44 24 21 02 75 4b f7 c3 00 02 00 00 74 01 fb bf 01 00 00 00 <e8> f6 d4 9f f7 65 8b 05 97 d4 50 76 85 c0 74 3c 48 c7 04 24 0e 36
RSP: 0018:ffffc900014df020 EFLAGS: 00000206
RAX: f3b991e2245fbb00 RBX: 0000000000000a02 RCX: f3b991e2245fbb00
RDX: dffffc0000000000 RSI: ffffffff8a0b15c0 RDI: 0000000000000001
RBP: ffffc900014df0b8 R08: dffffc0000000000 R09: ffffed101722765a
R10: ffffed101722765a R11: 1ffff11017227659 R12: dffffc0000000000
R13: ffff888049365000 R14: ffffffff962f7130 R15: 1ffff9200029be04
 __debug_check_no_obj_freed lib/debugobjects.c:982 [inline]
 debug_check_no_obj_freed+0x515/0x530 lib/debugobjects.c:1003
 free_pages_prepare mm/page_alloc.c:1345 [inline]
 free_pcp_prepare mm/page_alloc.c:1391 [inline]
 free_unref_page_prepare+0x237/0x6c0 mm/page_alloc.c:3317
 free_unref_page_list+0x122/0x7e0 mm/page_alloc.c:3433
 release_pages+0x184b/0x1bb0 mm/swap.c:963
 __pagevec_release+0x6d/0xe0 mm/swap.c:983
 pagevec_release include/linux/pagevec.h:81 [inline]
 shmem_undo_range+0x593/0x1840 mm/shmem.c:964
 shmem_truncate_range mm/shmem.c:1063 [inline]
 shmem_evict_inode+0x20d/0xa00 mm/shmem.c:1145
 evict+0x485/0x870 fs/inode.c:647
 __dentry_kill+0x431/0x650 fs/dcache.c:586
 dentry_kill+0xb8/0x290 fs/dcache.c:-1
 dput+0xd8/0x1a0 fs/dcache.c:893
 __fput+0x5ee/0x930 fs/file_table.c:319
 task_work_run+0x125/0x1a0 kernel/task_work.c:188
 exit_task_work include/linux/task_work.h:33 [inline]
 do_exit+0x61e/0x20a0 kernel/exit.c:883
 do_group_exit+0x12e/0x300 kernel/exit.c:997
 get_signal+0x6ca/0x12c0 kernel/signal.c:2900
 arch_do_signal_or_restart+0xc1/0x1300 arch/x86/kernel/signal.c:867
 handle_signal_work kernel/entry/common.c:154 [inline]
 exit_to_user_mode_loop+0x9e/0x130 kernel/entry/common.c:178
 exit_to_user_mode_prepare+0xb1/0x140 kernel/entry/common.c:214
 irqentry_exit_to_user_mode+0x5/0x30 kernel/entry/common.c:320
 exc_page_fault+0x88/0x100 arch/x86/mm/fault.c:1504
 asm_exc_page_fault+0x22/0x30 arch/x86/include/asm/idtentry.h:606
RIP: 0033:0x2f0f7e3b47fd
Code: Unable to access opcode bytes at RIP 0x2f0f7e3b47d3.
RSP: 002b:0000200000000178 EFLAGS: 00010217
RAX: 0000000000000000 RBX: 00007f0c766de090 RCX: 00007f0c764b6be9
RDX: 0000200000000240 RSI: 0000200000000170 RDI: 0000000002000000
RBP: 00007f0c76539e19 R08: 0000200000000580 R09: 0000200000000580
R10: 0000200000000380 R11: 0000000000000206 R12: 0000000000000000
R13: 00007f0c766de128 R14: 00007f0c766de090 R15: 00007ffc44822cd8
 </TASK>

Crashes (15):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/08/26 12:03 linux-5.15.y c79648372d02 bf27483f .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-perf INFO: rcu detected stall in dput
2025/07/21 00:15 linux-5.15.y c79648372d02 7117feec .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan INFO: rcu detected stall in dput
2025/06/20 09:46 linux-5.15.y 1c700860e8bc ed3e87f7 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan INFO: rcu detected stall in dput
2025/06/12 12:34 linux-5.15.y 1c700860e8bc 98683f8f .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan INFO: rcu detected stall in dput
2025/06/06 16:46 linux-5.15.y 1c700860e8bc 9fa58bba .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan INFO: rcu detected stall in dput
2025/05/30 12:06 linux-5.15.y 98f47d0e9b8c 3d2f584d .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan INFO: rcu detected stall in dput
2025/03/31 09:50 linux-5.15.y 0c935c049b5c d3999433 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan INFO: rcu detected stall in dput
2025/03/12 05:52 linux-5.15.y c16c81c81336 ee70e6db .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan INFO: rcu detected stall in dput
2025/03/04 13:02 linux-5.15.y c16c81c81336 c3901742 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan INFO: rcu detected stall in dput
2025/01/03 21:59 linux-5.15.y 91786f140358 f3558dbf .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan INFO: rcu detected stall in dput
2025/01/01 15:22 linux-5.15.y 91786f140358 d3ccff63 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan INFO: rcu detected stall in dput
2024/12/12 19:52 linux-5.15.y 0a51d2d4527b 530e80f8 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan INFO: rcu detected stall in dput
2024/12/09 17:02 linux-5.15.y 0a51d2d4527b 9ac0fdc6 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan INFO: rcu detected stall in dput
2025/06/25 13:59 linux-5.15.y 1c700860e8bc 26d77996 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 INFO: rcu detected stall in dput
2025/06/04 06:25 linux-5.15.y 98f47d0e9b8c a30356b7 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 BUG: soft lockup in dput
* Struck through repros no longer work on HEAD.