Warning: Permanently added '10.128.0.141' (ED25519) to the list of known hosts. executing program [ 73.512087][ T28] audit: type=1400 audit(1712730774.041:87): avc: denied { execmem } for pid=5058 comm="syz-executor290" scontext=root:sysadm_r:sysadm_t tcontext=root:sysadm_r:sysadm_t tclass=process permissive=1 [ 73.546364][ C1] [ 73.548835][ C1] ======================================================== executing program executing program executing program executing program [ 73.556214][ C1] WARNING: possible irq lock inversion dependency detected [ 73.563764][ C1] 6.8.0-syzkaller-08951-gfe46a7dd189e #0 Not tainted [ 73.570540][ C1] -------------------------------------------------------- [ 73.577738][ C1] syz-executor290/5064 just changed the state of lock: [ 73.584614][ C1] ffff8880299f1110 (&group->lock#2){..-.}-{2:2}, at: _snd_pcm_stream_lock_irqsave+0xa0/0xd0 [ 73.594786][ C1] but this lock took another, SOFTIRQ-unsafe lock in the past: [ 73.602354][ C1] (&timer->lock){+.+.}-{2:2} [ 73.602389][ C1] [ 73.602389][ C1] [ 73.602389][ C1] and interrupts could create inverse lock ordering between them. [ 73.602389][ C1] [ 73.622169][ C1] [ 73.622169][ C1] other info that might help us debug this: [ 73.630232][ C1] Possible interrupt unsafe locking scenario: [ 73.630232][ C1] [ 73.638640][ C1] CPU0 CPU1 [ 73.644003][ C1] ---- ---- [ 73.649367][ C1] lock(&timer->lock); [ 73.653534][ C1] local_irq_disable(); [ 73.660376][ C1] lock(&group->lock#2); [ 73.667318][ C1] lock(&timer->lock); [ 73.674211][ C1] [ 73.677771][ C1] lock(&group->lock#2); [ 73.682476][ C1] [ 73.682476][ C1] *** DEADLOCK *** [ 73.682476][ C1] [ 73.690724][ C1] 1 lock held by syz-executor290/5064: [ 73.696463][ C1] #0: ffff888065646a20 (&mm->mmap_lock){++++}-{3:3}, at: exit_mmap+0x203/0xb60 [ 73.705942][ C1] executing program [ 73.705942][ C1] the shortest dependencies between 2nd lock and 1st lock: [ 73.715552][ C1] -> (&timer->lock){+.+.}-{2:2} { [ 73.720794][ C1] HARDIRQ-ON-W at: [ 73.724970][ C1] lock_acquire+0x1b1/0x540 [ 73.731319][ C1] _raw_spin_lock+0x2e/0x40 [ 73.737866][ C1] snd_timer_close_locked+0x65/0xbd0 [ 73.745190][ C1] snd_timer_close+0x8b/0xf0 [ 73.751716][ C1] snd_timer_user_release+0x91/0x260 [ 73.758859][ C1] __fput+0x270/0xb80 [ 73.764702][ C1] task_work_run+0x14e/0x250 [ 73.771321][ C1] do_exit+0xa7d/0x2be0 [ 73.777416][ C1] do_group_exit+0xd3/0x2a0 [ 73.783764][ C1] __x64_sys_exit_group+0x3e/0x50 [ 73.790733][ C1] do_syscall_64+0xd2/0x260 [ 73.797370][ C1] entry_SYSCALL_64_after_hwframe+0x6d/0x75 [ 73.805474][ C1] SOFTIRQ-ON-W at: [ 73.809819][ C1] lock_acquire+0x1b1/0x540 [ 73.816186][ C1] _raw_spin_lock+0x2e/0x40 [ 73.822559][ C1] snd_timer_close_locked+0x65/0xbd0 [ 73.829685][ C1] snd_timer_close+0x8b/0xf0 [ 73.836112][ C1] snd_timer_user_release+0x91/0x260 [ 73.843236][ C1] __fput+0x270/0xb80 [ 73.849086][ C1] task_work_run+0x14e/0x250 [ 73.855643][ C1] do_exit+0xa7d/0x2be0 [ 73.861664][ C1] do_group_exit+0xd3/0x2a0 [ 73.868034][ C1] __x64_sys_exit_group+0x3e/0x50 [ 73.874906][ C1] do_syscall_64+0xd2/0x260 [ 73.881353][ C1] entry_SYSCALL_64_after_hwframe+0x6d/0x75 [ 73.889092][ C1] INITIAL USE at: [ 73.893084][ C1] lock_acquire+0x1b1/0x540 [ 73.899365][ C1] _raw_spin_lock_irqsave+0x3a/0x60 [ 73.906417][ C1] snd_timer_notify+0x111/0x3e0 [ 73.913038][ C1] snd_pcm_post_start+0x272/0x350 [ 73.919825][ C1] snd_pcm_action_single+0x10a/0x150 [ 73.927049][ C1] snd_pcm_action+0x70/0x90 [ 73.933410][ C1] __snd_pcm_lib_xfer+0x175b/0x1ea0 [ 73.940495][ C1] snd_pcm_oss_read3+0x18e/0x2d0 [ 73.947210][ C1] snd_pcm_oss_read2+0x309/0x3d0 [ 73.953920][ C1] snd_pcm_oss_read+0x46e/0x760 [ 73.960530][ C1] vfs_read+0x1d4/0xb80 [ 73.966455][ C1] ksys_read+0x12f/0x260 [ 73.972549][ C1] do_syscall_64+0xd2/0x260 [ 73.978900][ C1] entry_SYSCALL_64_after_hwframe+0x6d/0x75 [ 73.986559][ C1] } [ 73.989151][ C1] ... key at: [] __key.6+0x0/0x40 [ 73.996368][ C1] ... acquired at: [ 74.000291][ C1] _raw_spin_lock_irqsave+0x3a/0x60 [ 74.005690][ C1] snd_timer_notify+0x111/0x3e0 [ 74.010738][ C1] snd_pcm_post_start+0x272/0x350 [ 74.015959][ C1] snd_pcm_action_single+0x10a/0x150 [ 74.021440][ C1] snd_pcm_action+0x70/0x90 [ 74.026139][ C1] __snd_pcm_lib_xfer+0x175b/0x1ea0 [ 74.031523][ C1] snd_pcm_oss_read3+0x18e/0x2d0 [ 74.036740][ C1] snd_pcm_oss_read2+0x309/0x3d0 [ 74.041871][ C1] snd_pcm_oss_read+0x46e/0x760 [ 74.046915][ C1] vfs_read+0x1d4/0xb80 [ 74.051260][ C1] ksys_read+0x12f/0x260 [ 74.055697][ C1] do_syscall_64+0xd2/0x260 [ 74.060406][ C1] entry_SYSCALL_64_after_hwframe+0x6d/0x75 [ 74.066497][ C1] [ 74.068825][ C1] -> (&group->lock#2){..-.}-{2:2} { [ 74.074061][ C1] IN-SOFTIRQ-W at: [ 74.078134][ C1] lock_acquire+0x1b1/0x540 [ 74.084313][ C1] _raw_spin_lock_irqsave+0x3a/0x60 [ 74.091178][ C1] _snd_pcm_stream_lock_irqsave+0xa0/0xd0 [ 74.099100][ C1] snd_pcm_period_elapsed+0x20/0x50 [ 74.105977][ C1] dummy_hrtimer_callback+0x9d/0x1c0 [ 74.113225][ C1] __hrtimer_run_queues+0x20c/0xc20 [ 74.120104][ C1] hrtimer_run_softirq+0x17d/0x350 [ 74.126893][ C1] __do_softirq+0x218/0x8de [ 74.133326][ C1] irq_exit_rcu+0xb9/0x120 [ 74.139615][ C1] sysvec_apic_timer_interrupt+0x95/0xb0 [ 74.147009][ C1] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 74.154756][ C1] preempt_count_add+0xa4/0x150 [ 74.161286][ C1] unwind_next_frame+0xce/0x23a0 [ 74.167885][ C1] arch_stack_walk+0x100/0x170 [ 74.174312][ C1] stack_trace_save+0x95/0xd0 [ 74.180671][ C1] kasan_save_stack+0x33/0x60 [ 74.187227][ C1] kasan_save_track+0x14/0x30 [ 74.193664][ C1] kasan_save_free_info+0x3b/0x60 [ 74.200355][ C1] __kasan_slab_free+0x11d/0x1a0 [ 74.207234][ C1] kmem_cache_free+0x12e/0x360 [ 74.213759][ C1] ___pmd_free_tlb+0x74/0x2f0 [ 74.220280][ C1] free_pgd_range+0x9ca/0xbc0 [ 74.226735][ C1] free_pgtables+0x154/0x860 [ 74.232989][ C1] exit_mmap+0x3d2/0xb60 [ 74.238896][ C1] __mmput+0x12a/0x4d0 [ 74.244634][ C1] mmput+0x62/0x70 [ 74.250035][ C1] do_exit+0x999/0x2be0 [ 74.255862][ C1] do_group_exit+0xd3/0x2a0 [ 74.262065][ C1] __x64_sys_exit_group+0x3e/0x50 [ 74.269284][ C1] do_syscall_64+0xd2/0x260 [ 74.275486][ C1] entry_SYSCALL_64_after_hwframe+0x6d/0x75 [ 74.283094][ C1] INITIAL USE at: [ 74.287000][ C1] lock_acquire+0x1b1/0x540 [ 74.293191][ C1] _raw_spin_lock_irq+0x36/0x50 [ 74.300585][ C1] snd_pcm_hw_params+0x151/0x1a30 [ 74.307215][ C1] snd_pcm_kernel_ioctl+0x147/0x2d0 [ 74.314097][ C1] snd_pcm_oss_change_params_locked+0x146c/0x3aa0 [ 74.322203][ C1] snd_pcm_oss_make_ready_locked+0xb7/0x130 [ 74.329682][ C1] snd_pcm_oss_read+0x3a2/0x760 [ 74.336697][ C1] vfs_read+0x1d4/0xb80 [ 74.342457][ C1] ksys_read+0x12f/0x260 [ 74.348560][ C1] do_syscall_64+0xd2/0x260 [ 74.354669][ C1] entry_SYSCALL_64_after_hwframe+0x6d/0x75 [ 74.362331][ C1] } [ 74.364866][ C1] ... key at: [] __key.5+0x0/0x40 [ 74.372088][ C1] ... acquired at: [ 74.375922][ C1] __lock_acquire+0x13d4/0x3b30 [ 74.380972][ C1] lock_acquire+0x1b1/0x540 [ 74.385684][ C1] _raw_spin_lock_irqsave+0x3a/0x60 [ 74.391246][ C1] _snd_pcm_stream_lock_irqsave+0xa0/0xd0 [ 74.397302][ C1] snd_pcm_period_elapsed+0x20/0x50 [ 74.402799][ C1] dummy_hrtimer_callback+0x9d/0x1c0 [ 74.408296][ C1] __hrtimer_run_queues+0x20c/0xc20 [ 74.413858][ C1] hrtimer_run_softirq+0x17d/0x350 [ 74.419152][ C1] __do_softirq+0x218/0x8de [ 74.423966][ C1] irq_exit_rcu+0xb9/0x120 [ 74.428670][ C1] sysvec_apic_timer_interrupt+0x95/0xb0 [ 74.434509][ C1] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 74.440777][ C1] preempt_count_add+0xa4/0x150 [ 74.445828][ C1] unwind_next_frame+0xce/0x23a0 [ 74.450956][ C1] arch_stack_walk+0x100/0x170 [ 74.455996][ C1] stack_trace_save+0x95/0xd0 [ 74.460867][ C1] kasan_save_stack+0x33/0x60 [ 74.465737][ C1] kasan_save_track+0x14/0x30 [ 74.470604][ C1] kasan_save_free_info+0x3b/0x60 [ 74.475813][ C1] __kasan_slab_free+0x11d/0x1a0 [ 74.480941][ C1] kmem_cache_free+0x12e/0x360 [ 74.485984][ C1] ___pmd_free_tlb+0x74/0x2f0 [ 74.490857][ C1] free_pgd_range+0x9ca/0xbc0 [ 74.495807][ C1] free_pgtables+0x154/0x860 [ 74.500589][ C1] exit_mmap+0x3d2/0xb60 [ 74.505029][ C1] __mmput+0x12a/0x4d0 [ 74.509284][ C1] mmput+0x62/0x70 [ 74.513188][ C1] do_exit+0x999/0x2be0 [ 74.517538][ C1] do_group_exit+0xd3/0x2a0 [ 74.522250][ C1] __x64_sys_exit_group+0x3e/0x50 [ 74.527552][ C1] do_syscall_64+0xd2/0x260 [ 74.532260][ C1] entry_SYSCALL_64_after_hwframe+0x6d/0x75 [ 74.538362][ C1] [ 74.540807][ C1] [ 74.540807][ C1] stack backtrace: [ 74.546706][ C1] CPU: 1 PID: 5064 Comm: syz-executor290 Not tainted 6.8.0-syzkaller-08951-gfe46a7dd189e #0 [ 74.556792][ C1] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024 [ 74.567043][ C1] Call Trace: [ 74.570427][ C1] [ 74.573280][ C1] dump_stack_lvl+0x116/0x1f0 [ 74.577983][ C1] print_irq_inversion_bug.part.0+0x3e9/0x5a0 [ 74.584105][ C1] ? __pfx_print_irq_inversion_bug.part.0+0x10/0x10 [ 74.590748][ C1] ? __pfx_usage_skip+0x10/0x10 [ 74.595622][ C1] ? __pfx_usage_match+0x10/0x10 [ 74.600591][ C1] mark_lock+0x574/0xc60 [ 74.604858][ C1] ? __pfx_mark_lock+0x10/0x10 [ 74.609656][ C1] __lock_acquire+0x13d4/0x3b30 [ 74.614544][ C1] ? lock_acquire+0x1b1/0x540 [ 74.619416][ C1] ? __pfx___lock_acquire+0x10/0x10 [ 74.624753][ C1] ? hlock_class+0x4e/0x130 [ 74.629271][ C1] ? mark_lock+0xb5/0xc60 [ 74.633620][ C1] lock_acquire+0x1b1/0x540 [ 74.638150][ C1] ? _snd_pcm_stream_lock_irqsave+0xa0/0xd0 [ 74.644153][ C1] ? __pfx_lock_acquire+0x10/0x10 [ 74.649317][ C1] ? do_raw_spin_unlock+0x172/0x230 [ 74.654619][ C1] ? find_held_lock+0x2d/0x110 [ 74.659432][ C1] ? __hrtimer_run_queues+0x5a7/0xc20 [ 74.664824][ C1] ? __pfx_dummy_hrtimer_callback+0x10/0x10 [ 74.670847][ C1] _raw_spin_lock_irqsave+0x3a/0x60 [ 74.676063][ C1] ? _snd_pcm_stream_lock_irqsave+0xa0/0xd0 [ 74.681974][ C1] _snd_pcm_stream_lock_irqsave+0xa0/0xd0 [ 74.687810][ C1] snd_pcm_period_elapsed+0x20/0x50 [ 74.693023][ C1] dummy_hrtimer_callback+0x9d/0x1c0 [ 74.698335][ C1] __hrtimer_run_queues+0x20c/0xc20 [ 74.703564][ C1] ? __pfx___hrtimer_run_queues+0x10/0x10 [ 74.709302][ C1] ? ktime_get_update_offsets_now+0x3bd/0x620 [ 74.715393][ C1] hrtimer_run_softirq+0x17d/0x350 [ 74.720523][ C1] __do_softirq+0x218/0x8de [ 74.725052][ C1] ? __pfx___do_softirq+0x10/0x10 [ 74.730099][ C1] irq_exit_rcu+0xb9/0x120 [ 74.734571][ C1] sysvec_apic_timer_interrupt+0x95/0xb0 [ 74.740237][ C1] [ 74.743178][ C1] [ 74.746114][ C1] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 74.752129][ C1] RIP: 0010:preempt_count_add+0xa4/0x150 [ 74.757893][ C1] Code: 65 48 8b 2d 3e 75 a6 7e 48 8d bd c0 14 00 00 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 80 3c 02 00 0f 85 87 00 00 00 <48> 89 9d c0 14 00 00 5b 5d c3 cc cc cc cc 31 ff 31 db e8 45 40 0e [ 74.777784][ C1] RSP: 0018:ffffc9000340f638 EFLAGS: 00000246 [ 74.783872][ C1] RAX: dffffc0000000000 RBX: ffffffff813c979e RCX: 1ffffffff28d0b54 [ 74.791870][ C1] RDX: 1ffff11004b7e658 RSI: ffffffff813c973b RDI: ffff888025bf32c0 [ 74.799946][ C1] RBP: ffff888025bf1e00 R08: 0000000000000005 R09: 0000000000000000 [ 74.808012][ C1] R10: 0000000000000001 R11: 0000000000000001 R12: ffffc9000340f6d0 [ 74.816090][ C1] R13: ffffffff8178d3a0 R14: ffffc9000340f790 R15: ffff888025bf1e00 [ 74.824200][ C1] ? __pfx_stack_trace_consume_entry+0x10/0x10 [ 74.831094][ C1] ? unwind_next_frame+0xce/0x23a0 [ 74.836331][ C1] ? unwind_next_frame+0x6b/0x23a0 [ 74.841757][ C1] ? preempt_count_add+0x76/0x150 [ 74.846917][ C1] unwind_next_frame+0xce/0x23a0 [ 74.851889][ C1] ? do_exit+0x999/0x2be0 [ 74.856266][ C1] ? do_exit+0x999/0x2be0 [ 74.860886][ C1] ? __pfx_stack_trace_consume_entry+0x10/0x10 [ 74.867078][ C1] arch_stack_walk+0x100/0x170 [ 74.871863][ C1] ? do_exit+0x999/0x2be0 [ 74.876211][ C1] ? ___pmd_free_tlb+0x74/0x2f0 [ 74.881172][ C1] stack_trace_save+0x95/0xd0 [ 74.885883][ C1] ? __pfx_stack_trace_save+0x10/0x10 [ 74.891488][ C1] kasan_save_stack+0x33/0x60 [ 74.896219][ C1] ? kasan_save_stack+0x33/0x60 [ 74.901195][ C1] ? kasan_save_track+0x14/0x30 [ 74.906086][ C1] ? kasan_save_free_info+0x3b/0x60 [ 74.911318][ C1] ? __kasan_slab_free+0x11d/0x1a0 [ 74.916450][ C1] ? kmem_cache_free+0x12e/0x360 [ 74.921513][ C1] ? ___pmd_free_tlb+0x74/0x2f0 [ 74.926402][ C1] ? free_pgd_range+0x9ca/0xbc0 [ 74.931370][ C1] ? free_pgtables+0x154/0x860 [ 74.936165][ C1] ? exit_mmap+0x3d2/0xb60 [ 74.940614][ C1] ? __mmput+0x12a/0x4d0 [ 74.944899][ C1] ? mmput+0x62/0x70 [ 74.948823][ C1] ? do_exit+0x999/0x2be0 [ 74.953313][ C1] kasan_save_track+0x14/0x30 [ 74.958460][ C1] kasan_save_free_info+0x3b/0x60 [ 74.963516][ C1] __kasan_slab_free+0x11d/0x1a0 [ 74.968490][ C1] kmem_cache_free+0x12e/0x360 [ 74.973280][ C1] ? mark_held_locks+0x9f/0xe0 [ 74.978063][ C1] ? ___pmd_free_tlb+0x74/0x2f0 [ 74.982945][ C1] ___pmd_free_tlb+0x74/0x2f0 [ 74.987647][ C1] free_pgd_range+0x9ca/0xbc0 [ 74.992518][ C1] free_pgtables+0x154/0x860 [ 74.997157][ C1] exit_mmap+0x3d2/0xb60 [ 75.001907][ C1] ? __pfx_exit_mmap+0x10/0x10 [ 75.006706][ C1] __mmput+0x12a/0x4d0 [ 75.010975][ C1] mmput+0x62/0x70 [ 75.014711][ C1] do_exit+0x999/0x2be0 [ 75.018908][ C1] ? do_group_exit+0x1c3/0x2a0 [ 75.023699][ C1] ? __pfx_lock_release+0x10/0x10 [ 75.028923][ C1] ? do_raw_spin_lock+0x12d/0x2c0 [ 75.033961][ C1] ? __pfx_do_exit+0x10/0x10 [ 75.038570][ C1] ? __pfx_do_raw_spin_lock+0x10/0x10 [ 75.044335][ C1] do_group_exit+0xd3/0x2a0 [ 75.048875][ C1] __x64_sys_exit_group+0x3e/0x50 [ 75.054017][ C1] do_syscall_64+0xd2/0x260 [ 75.058656][ C1] entry_SYSCALL_64_after_hwframe+0x6d/0x75 [ 75.064613][ C1] RIP: 0033:0x7fbca38e4d39 [ 75.069067][ C1] Code: Unable to access opcode bytes at 0x7fbca38e4d0f. [ 75.076187][ C1] RSP: 002b:00007fffe23f0778 EFLAGS: 00000246 ORIG_RAX: 00000000000000e7 [ 75.084630][ C1] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007fbca38e4d39 [ 75.092616][ C1] RDX: 000000000000003c RSI: 00000000000000e7 RDI: 0000000000000000 [ 75.100606][ C1] RBP: 00007fbca395f2b0 R08: ffffffffffffffb8 R09: 00000000000000a0 [ 75.108590][ C1] R10: 0000000000000000 R11: 0000000000000246 R12: 00007fbca395f2b0 executing program executing program executing program executing program executing program executing program executing program executing program [ 75.116582][ C1] R13: 0000000000000000 R14: 00007fbca395fd20 R15: 00007fbca38b5ec0 [ 75.124570][ C1] executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program executing program