1 using System;
2 
3 class C
4 {
D()5 	public delegate void D ();
6 
7 	int[] chats;
8 	int total;
9 
Main()10 	public static int Main ()
11 	{
12 		new C ().Test ();
13 		return 0;
14 	}
15 
16 	object GdkWindow
17 	{
18 		get { return null; }
19 		set { }
20 	}
21 
Invoke(D d)22 	public static void Invoke (D d)
23 	{
24 	}
25 
Test()26 	void Test ()
27 	{
28 		try {
29 			if (total < 0)
30 				return;
31 
32 			int x = 0;
33 
34 			Invoke (delegate {
35 				try {
36 					Invoke (delegate {
37 						GdkWindow = null;
38 					});
39 
40 					total = x;
41 					int[] chats = new int[] { 1, 2 };
42 
43 					Invoke (delegate {
44 						foreach (int chat in chats) {
45 							total = chat;
46 						}
47 					});
48 				} finally {
49 					Invoke (delegate {
50 						if (GdkWindow != null) {
51 							GdkWindow = null;
52 						}
53 					});
54 				}
55 			});
56 		} catch {
57 			int x = 9;
58 		}
59 	}
60 }
61