using System;
public class C
{
public C(){}
~C(){}
public void getData(){}
}
public class B
{
private bool _flag;
private C _c;
public B(C c)
{
_flag=true;
_c=c;
(new System.Threading.Thread(delegate() {
run();
})).Start();
}
~B(){_flag=false;}
public void run(){ while (_flag){_c.getData();};}
}
public class A: C
{
B _b;
public A(){_b=new B(this); }
~A(){}
}
public class Test
{
public static void Main()
{
{
A a=new A();
}
Console.Write("hello");
// your code goes here
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIEMKewoJCglwdWJsaWMgQygpe30KCX5DKCl7fQoJcHVibGljIHZvaWQgZ2V0RGF0YSgpe30KCQp9CgpwdWJsaWMgY2xhc3MgQgp7Cglwcml2YXRlIGJvb2wgX2ZsYWc7Cglwcml2YXRlIEMgX2M7CglwdWJsaWMgQihDIGMpCgl7CgkJX2ZsYWc9dHJ1ZTsKCQlfYz1jOwoJCShuZXcgU3lzdGVtLlRocmVhZGluZy5UaHJlYWQoZGVsZWdhdGUoKSB7CiAgICAgICAgICAgICAgICBydW4oKTsKICAgICAgICAgICAgCQkJCQkJCQkJfSkpLlN0YXJ0KCk7CiAgICB9Cgl+Qigpe19mbGFnPWZhbHNlO30KCXB1YmxpYyB2b2lkIHJ1bigpeyB3aGlsZSAoX2ZsYWcpe19jLmdldERhdGEoKTt9O30KfQoKcHVibGljIGNsYXNzIEE6IEMKewoJQiBfYjsKCXB1YmxpYyBBKCl7X2I9bmV3IEIodGhpcyk7IH0KCX5BKCl7fQp9CgpwdWJsaWMgY2xhc3MgVGVzdAp7CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CgkJewoJCQlBIGE9bmV3IEEoKTsKCQl9CgkJQ29uc29sZS5Xcml0ZSgiaGVsbG8iKTsKCQkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgl9Cn0=