template<typename T>
struct Base
{
typedef T Type;
};
template<typename T>
struct Derive : T
{
};
template<typename T>
struct Foo : Derive<Base<T> >
{
Type Bar;
};
int main()
{
}
dGVtcGxhdGU8dHlwZW5hbWUgVD4Kc3RydWN0IEJhc2UKewoJdHlwZWRlZiBUIFR5cGU7Cn07Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpzdHJ1Y3QgRGVyaXZlIDogVAp7Cn07Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpzdHJ1Y3QgRm9vIDogRGVyaXZlPEJhc2U8VD4gPgp7CglUeXBlIEJhcjsKfTsKCmludCBtYWluKCkKewp9