array<integer> A_nextFree190
integer A_firstFree318
integer A_maxIndex179
array<integer> A_typeId187


integer A_firstFree318 = 0
integer A_maxIndex179 = 0


function initGlobals200() { 
    A_firstFree_318 = 0;
    A_maxIndex_179 = 0;
}


function main191() { 
    initGlobals200();
    init_B213();
}


function config983() { 
}


IS_NATIVE function testSuccess196() { 
}


function init_B213() { 
    dispatch_B_B_B_show194(new_B186());
}


function A_show154(integer this154) { 
    testSuccess196();
}


function A_init242(integer this114) { 
}


function construct_A185(integer this205) { 
    A_init242(this_205);
}


function B_show265(integer this779) { 
    A_show154(this_779);
}


function B_init469(integer this183) { 
}


function new_B186() returns integer { 
    local integer this212
    this_212 = alloc_B365();
    construct_B205(this_212);
    return this_212;
}


function construct_B205(integer this159) { 
    construct_A185(this_159);
    B_init469(this_159);
}


function error709(string msg288) { 
    $debugPrint591((msg_288 + ("
" + #getStackTrace())));
}


function alloc_B365() returns integer { 
    local integer this617
    if (A_firstFree_318 == 0) {
        if (A_maxIndex_179 < 32768) {
            A_maxIndex_179 = (A_maxIndex_179 + 1);
            this_617 = A_maxIndex_179;
            A_typeId_187[this_617] = 2;
        } else {
            error709("Out of memory: Could not create B.");
            this_617 = 0;
        };
    } else {
        A_firstFree_318 = (A_firstFree_318 - 1);
        this_617 = A_nextFree_190[A_firstFree_318];
        A_typeId_187[this_617] = 2;
    };
    return this_617;
}


function dispatch_B_B_B_show194(integer this666) { 
    if (A_typeId_187[this_666] == 0) {
        if (this_666 == 0) {
            error709("Nullpointer exception when calling B.show");
        } else {
            error709("Called B.show on invalid object.");
        };
    } else {
    };
    B_show265(this_666);
}