//*******************************************************************************
//*
//*   Copyright (C) 1998-2000, International Business Machines
//*   Corporation and others.  All Rights Reserved.
//*
//*******************************************************************************


// This is a test file which inherits from te, te_IN.

te_IN
{
    Version { 55.0 }

    string_only_in_te_IN { TE_IN }

    array_only_in_te_IN { TE_IN0, TE_IN1, TE_IN2, TE_IN3 }

    array_2d_only_in_te_IN
    {
        { TE_IN00, TE_IN01 }
        { TE_IN10, TE_IN11 }
    }

    tagged_array_only_in_te_IN
    {
        tag10 { TE_IN10 } 
        tag11 { TE_IN11 } 
        tag3 { TE_IN3 } 
    }

    string_in_Root_te_te_IN { TE_IN }

    array_in_Root_te_te_IN { TE_IN0, TE_IN1, TE_IN2, TE_IN3, TE_IN4 }

    array_2d_in_Root_te_te_IN
    {
        { TE_IN00, TE_IN01, TE_IN02 }
        { TE_IN10, TE_IN11, TE_IN12 }
        { TE_IN20, TE_IN21, TE_IN22 }
        { TE_IN30, TE_IN31, TE_IN32 }
    }

    tagged_array_in_Root_te_te_IN
    {
        tag2 { TE_IN2 } 
        tag9 { TE_IN9 } 
        tag0 { TE_IN0 } 
        tag12 { TE_IN12 } 
        tag10 { TE_IN10 } 
    }

    string_in_te_te_IN { TE_IN }

    array_in_te_te_IN { TE_IN0, TE_IN1, TE_IN2 }

    array_2d_in_te_te_IN
    {
        { TE_IN00, TE_IN01, TE_IN02 }
        { TE_IN10, TE_IN11, TE_IN12 }
        { TE_IN20, TE_IN21, TE_IN22 }
    }

    tagged_array_in_te_te_IN
    {
        tag0 { TE_IN0 } 
        tag5 { TE_IN5 } 
        tag17 { TE_IN17 } 
    }

    string_in_Root_te_IN { TE_IN }

    array_in_Root_te_IN { TE_IN0, TE_IN1, TE_IN2 }

    array_2d_in_Root_te_IN
    {
        { TE_IN00, TE_IN01, TE_IN02, TE_IN03 }
        { TE_IN10, TE_IN11, TE_IN12, TE_IN13 }
        { TE_IN20, TE_IN21, TE_IN22, TE_IN23 }
    }

    tagged_array_in_Root_te_IN
    {
        tag1 { TE_IN1 } 
        tag5 { TE_IN5 } 
        tag11 { TE_IN11 } 
        tag12 { TE_IN12 } 
        tag3 { TE_IN3 } 
        tag7 { TE_IN7 } 
    }
}

//eof
