array<integer> A_nextFree148
integer A_firstFree204
integer A_maxIndex176
array<integer> A_typeId666


integer A_firstFree204 = 0
integer A_maxIndex176 = 0


function initGlobals561() { 
    A_firstFree_204 = 0;
    A_maxIndex_176 = 0;
}


function main208() { 
    initGlobals561();
    init_B188();
}


function config155() { 
}


IS_NATIVE function testSuccess439() { 
}


function init_B188() { 
    dispatch_B_B_B_blub111(new_B858());
}


function A_show953(integer this739) { 
    testSuccess439();
}


function A_init193(integer this185) { 
}


function construct_A292(integer this106) { 
    A_init193(this_106);
}


function B_blub116(integer this358) { 
    dispatch_A_A_A_show130(this_358);
}


function B_init151(integer this143) { 
}


function new_B858() returns integer { 
    local integer this184
    this_184 = alloc_B924();
    construct_B390(this_184);
    return this_184;
}


function construct_B390(integer this163) { 
    construct_A292(this_163);
    B_init151(this_163);
}


function error209(string msg188) { 
    $debugPrint178((msg_188 + ("
" + #getStackTrace())));
}


function alloc_B924() returns integer { 
    local integer this298
    if (A_firstFree_204 == 0) {
        if (A_maxIndex_176 < 32768) {
            A_maxIndex_176 = (A_maxIndex_176 + 1);
            this_298 = A_maxIndex_176;
            A_typeId_666[this_298] = 2;
        } else {
            error209("Out of memory: Could not create B.");
            this_298 = 0;
        };
    } else {
        A_firstFree_204 = (A_firstFree_204 - 1);
        this_298 = A_nextFree_148[A_firstFree_204];
        A_typeId_666[this_298] = 2;
    };
    return this_298;
}


function dispatch_A_A_A_show130(integer this129) { 
    if (A_typeId_666[this_129] == 0) {
        if (this_129 == 0) {
            error209("Nullpointer exception when calling A.show");
        } else {
            error209("Called A.show on invalid object.");
        };
    } else {
    };
    A_show953(this_129);
}


function dispatch_B_B_B_blub111(integer this201) { 
    if (A_typeId_666[this_201] == 0) {
        if (this_201 == 0) {
            error209("Nullpointer exception when calling B.blub");
        } else {
            error209("Called B.blub on invalid object.");
        };
    } else {
    };
    B_blub116(this_201);
}