/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
-- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
-- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
--                 http://www.loria.fr/SmallEiffel              --
*/
#include "short.h"
/*No:FIXED_ARRAY[TYPE_REF_TO_EXP].clear_all*/
/*No:FIXED_ARRAY[TYPE_REF_TO_EXP].set_all_with*/
/*No:FIXED_ARRAY[TYPE_REF_TO_EXP].count*/


void r360resize(T360* C,T2 a1){
T0* _elt_default=NULL;
T2 _i=0;
T2 _new_capacity=0;
/*[IF*/
if((a1)<=(/*(IRF4.6count*/((C)->_upper/*12*/)+(1)/*)*/)){
C->_upper=(a1)-(1);
}
else{
_new_capacity=a1;
/*[IF*/
if(((C)->_capacity/*8*/)<(_new_capacity)){
/*[IF*/
if(((C)->_capacity/*8*/)==(0)){
C->_storage=calloc(_new_capacity,sizeof(T0*));
}
else{
C->_storage=r361realloc((C)->_storage/*4*/,(C)->_capacity/*8*/,_new_capacity);
}
/*FI]*/
C->_capacity=_new_capacity;
}
/*FI]*/
_new_capacity=(C)->_upper/*12*/;
C->_upper=(a1)-(1);
_i=(C)->_upper/*12*/;
while (!((_i)==(_new_capacity))) {
/*[IRF3.5put*/((C)->_storage/*4*/)[_i]=(_elt_default);
/*]*/
_i=(_i)-(1);
}
}
/*FI]*/
}


void r360make(T360* C,T2 a1){
/*[IF*/
if((a1)==(0)){
C->_upper=-(1);
}
 else if(((C)->_capacity/*8*/)==(0)){
C->_storage=calloc(a1,sizeof(T0*));
C->_capacity=a1;
C->_upper=(a1)-(1);
}
 else if(((C)->_capacity/*8*/)<(a1)){
C->_storage=calloc(a1,sizeof(T0*));
C->_capacity=a1;
C->_upper=(a1)-(1);
}
else{
C->_upper=(a1)-(1);
/*[IRF3.6clear_all*/{T360* C1=C;
T0* __value=NULL;
/*[IRF3.6set_all_with*/{T360* C2=C1;
T0* c1=__value;
r361set_all_with((C2)->_storage/*4*/,c1,(C2)->_upper/*12*/);
}/*]*/
}/*]*/
}
/*FI]*/
}
/*No:FIXED_ARRAY[TYPE_REF_TO_EXP].upper*/
/*No:FIXED_ARRAY[TYPE_REF_TO_EXP].capacity*/
/*No:FIXED_ARRAY[TYPE_REF_TO_EXP].put*/
/*No:FIXED_ARRAY[TYPE_REF_TO_EXP].storage*/


void r196with_capacity(T196* C,T2 a1){
/*[IF*/
if(((C)->_capacity/*8*/)<(a1)){
C->_storage=calloc(a1,sizeof(T0*));
C->_capacity=a1;
}
/*FI]*/
C->_upper=-(1);
}


T0* r196twin(T196* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T196*)R)=M196;
r196copy(((T196*)R),((T0*)C));
return R;
}
/*No:FIXED_ARRAY[MANIFEST_STRING].clear_all*/


void r196add_last(T196* C,T0* a1){
T2 _new_capacity=0;
/*[IF*/
if((((C)->_upper/*12*/)+(1))<=(((C)->_capacity/*8*/)-(1))){
C->_upper=((C)->_upper/*12*/)+(1);
}
 else if(((C)->_capacity/*8*/)==(0)){
C->_storage=calloc(2,sizeof(T0*));
C->_capacity=2;
C->_upper=0;
}
else{
_new_capacity=(2)*((C)->_capacity/*8*/);
C->_storage=r197realloc((C)->_storage/*4*/,(C)->_capacity/*8*/,_new_capacity);
C->_capacity=_new_capacity;
C->_upper=((C)->_upper/*12*/)+(1);
}
/*FI]*/
/*[IRF3.5put*/((C)->_storage/*4*/)[(C)->_upper/*12*/]=(a1);
/*]*/
}
/*No:FIXED_ARRAY[MANIFEST_STRING].item*/
/*No:FIXED_ARRAY[MANIFEST_STRING].set_all_with*/
/*No:FIXED_ARRAY[MANIFEST_STRING].count*/


void r196resize(T196* C,T2 a1){
T0* _elt_default=NULL;
T2 _i=0;
T2 _new_capacity=0;
/*[IF*/
if((a1)<=(/*(IRF4.6count*/((C)->_upper/*12*/)+(1)/*)*/)){
C->_upper=(a1)-(1);
}
else{
_new_capacity=a1;
/*[IF*/
if(((C)->_capacity/*8*/)<(_new_capacity)){
/*[IF*/
if(((C)->_capacity/*8*/)==(0)){
C->_storage=calloc(_new_capacity,sizeof(T0*));
}
else{
C->_storage=r197realloc((C)->_storage/*4*/,(C)->_capacity/*8*/,_new_capacity);
}
/*FI]*/
C->_capacity=_new_capacity;
}
/*FI]*/
_new_capacity=(C)->_upper/*12*/;
C->_upper=(a1)-(1);
_i=(C)->_upper/*12*/;
while (!((_i)==(_new_capacity))) {
/*[IRF3.5put*/((C)->_storage/*4*/)[_i]=(_elt_default);
/*]*/
_i=(_i)-(1);
}
}
/*FI]*/
}


void r196make(T196* C,T2 a1){
/*[IF*/
if((a1)==(0)){
C->_upper=-(1);
}
 else if(((C)->_capacity/*8*/)==(0)){
C->_storage=calloc(a1,sizeof(T0*));
C->_capacity=a1;
C->_upper=(a1)-(1);
}
 else if(((C)->_capacity/*8*/)<(a1)){
C->_storage=calloc(a1,sizeof(T0*));
C->_capacity=a1;
C->_upper=(a1)-(1);
}
else{
C->_upper=(a1)-(1);
/*[IRF3.6clear_all*/{T196* C1=C;
T0* __value=NULL;
/*[IRF3.6set_all_with*/{T196* C2=C1;
T0* c1=__value;
r197set_all_with((C2)->_storage/*4*/,c1,(C2)->_upper/*12*/);
}/*]*/
}/*]*/
}
/*FI]*/
}
/*No:FIXED_ARRAY[MANIFEST_STRING].upper*/


void r196copy(T196* C,T0* a1){
T2 _new_capacity=0;
T2 _other_upper=0;
_other_upper=(((T196*)a1))->_upper/*12*/;
/*[IF*/
if((_other_upper)>=(0)){
_new_capacity=(_other_upper)+(1);
/*[IF*/
if(((C)->_capacity/*8*/)<(_new_capacity)){
C->_capacity=_new_capacity;
C->_storage=calloc(_new_capacity,sizeof(T0*));
}
 else if(((C)->_capacity/*8*/)>(0)){
r197clear_all((C)->_storage/*4*/,((C)->_capacity/*8*/)-(1));
}
/*FI]*/
r197copy_from((C)->_storage/*4*/,(((T196*)a1))->_storage/*4*/,_other_upper);
}
 else if(((C)->_capacity/*8*/)>(0)){
r197clear_all((C)->_storage/*4*/,((C)->_capacity/*8*/)-(1));
}
/*FI]*/
C->_upper=_other_upper;
}
/*No:FIXED_ARRAY[MANIFEST_STRING].capacity*/
/*No:FIXED_ARRAY[MANIFEST_STRING].put*/
/*No:FIXED_ARRAY[MANIFEST_STRING].storage*/
/*No:ARRAY[BOOLEAN].clear_all*/


void r346force(T346* C,T6 a1,T2 a2){
/*[IF*/
if(((C)->_upper/*8*/)<(a2)){
r346resize(C,(C)->_lower/*12*/,a2);
}
 else if((a2)<((C)->_lower/*12*/)){
r346resize(C,a2,(C)->_upper/*8*/);
}
/*FI]*/
/*[IRF3.6put*/{T346* C1=C;
T6 b1=a1;
T2 b2=a2;
((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
}/*]*/
}
/*No:ARRAY[BOOLEAN].set_all_with*/


T6 r346item(T346* C,T2 a1){
T6 R=0;
R=((C)->_storage/*0*/)[(a1)-((C)->_lower/*12*/)];
return R;
}


T6 r346valid_index(T346* C,T2 a1){
T6 R=0;
R=(((C)->_lower/*12*/)<=(a1))&&((a1)<=((C)->_upper/*8*/));
return R;
}


void r346set_slice_with(T346* C,T6 a1,T2 a2,T2 a3){
T2 _i=0;
_i=a2;
while (!((_i)>(a3))) {
/*[IRF3.6put*/{T346* C1=C;
T6 b1=a1;
T2 b2=_i;
((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
}/*]*/
_i=(_i)+(1);
}
}
/*No:ARRAY[BOOLEAN].lower*/


void r346resize(T346* C,T2 a1,T2 a2){
T2 _intersize=0;
T2 _offset=0;
T2 _needed=0;
_needed=((a2)-(a1))+(1);
/*[IF*/
if((_needed)>(0)){
/*[IF*/
if((_needed)>((C)->_capacity/*4*/)){
/*[IF*/
if(((C)->_capacity/*4*/)==(0)){
C->_storage=calloc(_needed,sizeof(T6));
C->_capacity=_needed;
}
else{
C->_storage=r347realloc((C)->_storage/*0*/,(C)->_capacity/*4*/,_needed);
C->_capacity=_needed;
}
/*FI]*/
}
/*FI]*/
_offset=((C)->_lower/*12*/)-(a1);
_intersize=((r2min(a2,(C)->_upper/*8*/))-(r2max(a1,(C)->_lower/*12*/)))+(1);
/*[IF*/
if((_intersize)>(0)){
/*[IF*/
if((_offset)==(0)){
/*[IF*/
if((_intersize)<(_needed)){
r347clear((C)->_storage/*0*/,_intersize,(_needed)-(1));
}
/*FI]*/
}
 else if((_offset)<(0)){
r347move((C)->_storage/*0*/,-(_offset),((_intersize)-(_offset))-(1),_offset);
/*[IF*/
if((_intersize)<(_needed)){
r347clear((C)->_storage/*0*/,_intersize,(_needed)-(1));
}
/*FI]*/
}
else{
r347move((C)->_storage/*0*/,0,(_intersize)-(1),_offset);
r347clear((C)->_storage/*0*/,0,(_offset)-(1));
/*[IF*/
if(((_intersize)+(_offset))<(_needed)){
r347clear((C)->_storage/*0*/,(_intersize)+(_offset),(_needed)-(1));
}
/*FI]*/
}
/*FI]*/
}
else{
r347clear((C)->_storage/*0*/,0,(_needed)-(1));
}
/*FI]*/
}
/*FI]*/
C->_lower=a1;
C->_upper=a2;
}


void r346make(T346* C,T2 a1,T2 a2){
T2 _needed=0;
C->_lower=a1;
C->_upper=a2;
_needed=((a2)-(a1))+(1);
/*[IF*/
if((_needed)>(0)){
/*[IF*/
if(((C)->_capacity/*4*/)<(_needed)){
C->_storage=calloc(_needed,sizeof(T6));
C->_capacity=_needed;
}
else{
/*[IRF3.6clear_all*/{T346* C1=C;
T6 __value=0;
/*[IRF3.6set_all_with*/{T346* C2=C1;
T6 c1=__value;
r347set_all_with((C2)->_storage/*0*/,c1,((C2)->_upper/*8*/)-((C2)->_lower/*12*/));
}/*]*/
}/*]*/
}
/*FI]*/
}
/*FI]*/
}
/*No:ARRAY[BOOLEAN].upper*/
/*No:ARRAY[BOOLEAN].capacity*/
/*No:ARRAY[BOOLEAN].put*/
/*No:ARRAY[BOOLEAN].storage*/


void r159add_last(T159* C,T2 a1){
T2 _new_capacity=0;
/*[IF*/
if(((C)->_capacity/*4*/)<((r159count(C))+(1))){
/*[IF*/
if(((C)->_capacity/*4*/)==(0)){
C->_capacity=16;
C->_storage=calloc((C)->_capacity/*4*/,sizeof(T2));
}
else{
_new_capacity=(2)*((C)->_capacity/*4*/);
C->_storage=r63realloc((C)->_storage/*0*/,(C)->_capacity/*4*/,_new_capacity);
C->_capacity=_new_capacity;
}
/*FI]*/
}
/*FI]*/
C->_upper=((C)->_upper/*8*/)+(1);
/*[IRF3.6put*/{T159* C1=C;
T2 b1=a1;
T2 b2=(C)->_upper/*8*/;
((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
}/*]*/
}


T6 r159valid_index(T159* C,T2 a1){
T6 R=0;
R=(((C)->_lower/*12*/)<=(a1))&&((a1)<=((C)->_upper/*8*/));
return R;
}


T2 r159count(T159* C){
T2 R=0;
R=(((C)->_upper/*8*/)-((C)->_lower/*12*/))+(1);
return R;
}
/*No:ARRAY[INTEGER].lower*/


T6 r159fast_has(T159* C,T2 a1){
T6 R=0;
R=r159valid_index(C,r159fast_index_of(C,a1));
return R;
}


T2 r159fast_index_of(T159* C,T2 a1){
T2 R=0;
R=((C)->_lower/*12*/)+(r63fast_index_of((C)->_storage/*0*/,a1,((C)->_upper/*8*/)-((C)->_lower/*12*/)));
return R;
}
/*No:ARRAY[INTEGER].upper*/
/*No:ARRAY[INTEGER].capacity*/
/*No:ARRAY[INTEGER].put*/
/*No:ARRAY[INTEGER].storage*/


void r318with_capacity(T318* C,T2 a1){
/*[IF*/
if(((C)->_capacity/*4*/)<(a1)){
C->_storage=calloc(a1,sizeof(T0*));
C->_capacity=a1;
}
/*FI]*/
C->_upper=-(1);
}


void r318add_last(T318* C,T0* a1){
T2 _new_capacity=0;
/*[IF*/
if((((C)->_upper/*8*/)+(1))<=(((C)->_capacity/*4*/)-(1))){
C->_upper=((C)->_upper/*8*/)+(1);
}
 else if(((C)->_capacity/*4*/)==(0)){
C->_storage=calloc(2,sizeof(T0*));
C->_capacity=2;
C->_upper=0;
}
else{
_new_capacity=(2)*((C)->_capacity/*4*/);
C->_storage=r58realloc((C)->_storage/*0*/,(C)->_capacity/*4*/,_new_capacity);
C->_capacity=_new_capacity;
C->_upper=((C)->_upper/*8*/)+(1);
}
/*FI]*/
/*[IRF3.5put*/((C)->_storage/*0*/)[(C)->_upper/*8*/]=(a1);
/*]*/
}


void r318remove_last(T318* C){
C->_upper=((C)->_upper/*8*/)-(1);
}
/*No:FIXED_ARRAY[PARENT].item*/


T0* r318last(T318* C){
T0* R=NULL;
R=/*(IRF4.6item*/((C)->_storage/*0*/)[(C)->_upper/*8*/]/*)*/;
return R;
}
/*No:FIXED_ARRAY[PARENT].count*/
/*No:FIXED_ARRAY[PARENT].upper*/
/*No:FIXED_ARRAY[PARENT].clear*/


T6 r318empty(T318* C){
T6 R=0;
R=(/*(IRF4.6count*/((C)->_upper/*8*/)+(1)/*)*/)==(0);
return R;
}
/*No:FIXED_ARRAY[PARENT].capacity*/
/*No:FIXED_ARRAY[PARENT].put*/
/*No:FIXED_ARRAY[PARENT].storage*/


void r26with_capacity(T26* C,T2 a1){
/*[IF*/
if(((C)->_capacity/*4*/)<(a1)){
C->_storage=calloc(a1,sizeof(T0*));
C->_capacity=a1;
}
/*FI]*/
C->_upper=-(1);
}
/*No:FIXED_ARRAY[STRING].clear_all*/


void r26add_last(T26* C,T0* a1){
T2 _new_capacity=0;
/*[IF*/
if((((C)->_upper/*8*/)+(1))<=(((C)->_capacity/*4*/)-(1))){
C->_upper=((C)->_upper/*8*/)+(1);
}
 else if(((C)->_capacity/*4*/)==(0)){
C->_storage=calloc(2,sizeof(T0*));
C->_capacity=2;
C->_upper=0;
}
else{
_new_capacity=(2)*((C)->_capacity/*4*/);
C->_storage=r27realloc((C)->_storage/*0*/,(C)->_capacity/*4*/,_new_capacity);
C->_capacity=_new_capacity;
C->_upper=((C)->_upper/*8*/)+(1);
}
/*FI]*/
/*[IRF3.5put*/((C)->_storage/*0*/)[(C)->_upper/*8*/]=(a1);
/*]*/
}
/*No:FIXED_ARRAY[STRING].item*/
/*No:FIXED_ARRAY[STRING].set_all_with*/
/*No:FIXED_ARRAY[STRING].count*/


void r26resize(T26* C,T2 a1){
T0* _elt_default=NULL;
T2 _i=0;
T2 _new_capacity=0;
/*[IF*/
if((a1)<=(/*(IRF4.6count*/((C)->_upper/*8*/)+(1)/*)*/)){
C->_upper=(a1)-(1);
}
else{
_new_capacity=a1;
/*[IF*/
if(((C)->_capacity/*4*/)<(_new_capacity)){
/*[IF*/
if(((C)->_capacity/*4*/)==(0)){
C->_storage=calloc(_new_capacity,sizeof(T0*));
}
else{
C->_storage=r27realloc((C)->_storage/*0*/,(C)->_capacity/*4*/,_new_capacity);
}
/*FI]*/
C->_capacity=_new_capacity;
}
/*FI]*/
_new_capacity=(C)->_upper/*8*/;
C->_upper=(a1)-(1);
_i=(C)->_upper/*8*/;
while (!((_i)==(_new_capacity))) {
/*[IRF3.5put*/((C)->_storage/*0*/)[_i]=(_elt_default);
/*]*/
_i=(_i)-(1);
}
}
/*FI]*/
}


void r26make(T26* C,T2 a1){
/*[IF*/
if((a1)==(0)){
C->_upper=-(1);
}
 else if(((C)->_capacity/*4*/)==(0)){
C->_storage=calloc(a1,sizeof(T0*));
C->_capacity=a1;
C->_upper=(a1)-(1);
}
 else if(((C)->_capacity/*4*/)<(a1)){
C->_storage=calloc(a1,sizeof(T0*));
C->_capacity=a1;
C->_upper=(a1)-(1);
}
else{
C->_upper=(a1)-(1);
/*[IRF3.6clear_all*/{T26* C1=C;
T0* __value=NULL;
/*[IRF3.6set_all_with*/{T26* C2=C1;
T0* c1=__value;
r27set_all_with((C2)->_storage/*0*/,c1,(C2)->_upper/*8*/);
}/*]*/
}/*]*/
}
/*FI]*/
}


T2 r26fast_index_of(T26* C,T0* a1){
T2 R=0;
R=r27fast_index_of((C)->_storage/*0*/,a1,(C)->_upper/*8*/);
return R;
}
/*No:FIXED_ARRAY[STRING].upper*/
/*No:FIXED_ARRAY[STRING].capacity*/
/*No:FIXED_ARRAY[STRING].put*/
/*No:FIXED_ARRAY[STRING].storage*/


void r57add_last(T57* C,T0* a1){
T2 _new_capacity=0;
/*[IF*/
if(((C)->_capacity/*4*/)<((r57count(C))+(1))){
/*[IF*/
if(((C)->_capacity/*4*/)==(0)){
C->_capacity=16;
C->_storage=calloc((C)->_capacity/*4*/,sizeof(T0*));
}
else{
_new_capacity=(2)*((C)->_capacity/*4*/);
C->_storage=r58realloc((C)->_storage/*0*/,(C)->_capacity/*4*/,_new_capacity);
C->_capacity=_new_capacity;
}
/*FI]*/
}
/*FI]*/
C->_upper=((C)->_upper/*8*/)+(1);
/*[IRF3.6put*/{T57* C1=C;
T0* b1=a1;
T2 b2=(C)->_upper/*8*/;
((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
}/*]*/
}


T0* r57item(T57* C,T2 a1){
T0* R=NULL;
R=((C)->_storage/*0*/)[(a1)-((C)->_lower/*12*/)];
return R;
}


T0* r57first(T57* C){
T0* R=NULL;
R=r57item(C,(C)->_lower/*12*/);
return R;
}


T2 r57count(T57* C){
T2 R=0;
R=(((C)->_upper/*8*/)-((C)->_lower/*12*/))+(1);
return R;
}
/*No:ARRAY[PARENT].lower*/
/*No:ARRAY[PARENT].upper*/
/*No:ARRAY[PARENT].capacity*/
/*No:ARRAY[PARENT].put*/
/*No:ARRAY[PARENT].storage*/


void r34with_capacity(T34* C,T2 a1,T2 a2){
/*[IF*/
if(((C)->_capacity/*4*/)<(a1)){
C->_storage=calloc(a1,sizeof(T0*));
C->_capacity=a1;
}
/*FI]*/
C->_lower=a2;
C->_upper=(a2)-(1);
}


void r34add_last(T34* C,T0* a1){
T2 _new_capacity=0;
/*[IF*/
if(((C)->_capacity/*4*/)<((r34count(C))+(1))){
/*[IF*/
if(((C)->_capacity/*4*/)==(0)){
C->_capacity=16;
C->_storage=calloc((C)->_capacity/*4*/,sizeof(T0*));
}
else{
_new_capacity=(2)*((C)->_capacity/*4*/);
C->_storage=r27realloc((C)->_storage/*0*/,(C)->_capacity/*4*/,_new_capacity);
C->_capacity=_new_capacity;
}
/*FI]*/
}
/*FI]*/
C->_upper=((C)->_upper/*8*/)+(1);
/*[IRF3.6put*/{T34* C1=C;
T0* b1=a1;
T2 b2=(C)->_upper/*8*/;
((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
}/*]*/
}


T0* r34item(T34* C,T2 a1){
T0* R=NULL;
R=((C)->_storage/*0*/)[(a1)-((C)->_lower/*12*/)];
return R;
}


T6 r34valid_index(T34* C,T2 a1){
T6 R=0;
R=(((C)->_lower/*12*/)<=(a1))&&((a1)<=((C)->_upper/*8*/));
return R;
}


T2 r34count(T34* C){
T2 R=0;
R=(((C)->_upper/*8*/)-((C)->_lower/*12*/))+(1);
return R;
}
/*No:ARRAY[STRING].lower*/


T6 r34fast_has(T34* C,T0* a1){
T6 R=0;
R=r34valid_index(C,r34fast_index_of(C,a1));
return R;
}


T2 r34fast_index_of(T34* C,T0* a1){
T2 R=0;
R=((C)->_lower/*12*/)+(r27fast_index_of((C)->_storage/*0*/,a1,((C)->_upper/*8*/)-((C)->_lower/*12*/)));
return R;
}
/*No:ARRAY[STRING].upper*/


T2 r34index_of(T34* C,T0* a1){
T2 R=0;
R=((C)->_lower/*12*/)+(r27index_of((C)->_storage/*0*/,a1,((C)->_upper/*8*/)-((C)->_lower/*12*/)));
return R;
}
/*No:ARRAY[STRING].capacity*/
/*No:ARRAY[STRING].put*/
/*No:ARRAY[STRING].storage*/


T0* r223twin(T223* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T223*)R)=M223;
r223copy(((T223*)R),((T0*)C));
return R;
}


void r223add_last(T223* C,T0* a1){
T2 _new_capacity=0;
/*[IF*/
if(((C)->_capacity/*4*/)<((r223count(C))+(1))){
/*[IF*/
if(((C)->_capacity/*4*/)==(0)){
C->_capacity=16;
C->_storage=calloc((C)->_capacity/*4*/,sizeof(T0*));
}
else{
_new_capacity=(2)*((C)->_capacity/*4*/);
C->_storage=r224realloc((C)->_storage/*0*/,(C)->_capacity/*4*/,_new_capacity);
C->_capacity=_new_capacity;
}
/*FI]*/
}
/*FI]*/
C->_upper=((C)->_upper/*8*/)+(1);
/*[IRF3.6put*/{T223* C1=C;
T0* b1=a1;
T2 b2=(C)->_upper/*8*/;
((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
}/*]*/
}


T0* r223item(T223* C,T2 a1){
T0* R=NULL;
R=((C)->_storage/*0*/)[(a1)-((C)->_lower/*12*/)];
return R;
}


T2 r223count(T223* C){
T2 R=0;
R=(((C)->_upper/*8*/)-((C)->_lower/*12*/))+(1);
return R;
}
/*No:ARRAY[E_WHEN].lower*/
/*No:ARRAY[E_WHEN].upper*/


void r223copy(T223* C,T0* a1){
T2 _needed_capacity=0;
C->_lower=(((T223*)a1))->_lower/*12*/;
C->_upper=(((T223*)a1))->_upper/*8*/;
_needed_capacity=(((C)->_upper/*8*/)-((C)->_lower/*12*/))+(1);
/*[IF*/
if(((C)->_capacity/*4*/)<(_needed_capacity)){
C->_capacity=_needed_capacity;
C->_storage=calloc((C)->_capacity/*4*/,sizeof(T0*));
}
/*FI]*/
/*[IF*/
if((_needed_capacity)>(0)){
r224copy_from((C)->_storage/*0*/,(((T223*)a1))->_storage/*0*/,(_needed_capacity)-(1));
}
/*FI]*/
}
/*No:ARRAY[E_WHEN].capacity*/
/*No:ARRAY[E_WHEN].put*/
/*No:ARRAY[E_WHEN].storage*/


T0* r216twin(T216* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T216*)R)=M216;
r216copy(((T216*)R),((T0*)C));
return R;
}


void r216add_last(T216* C,T0* a1){
T2 _new_capacity=0;
/*[IF*/
if(((C)->_capacity/*4*/)<((r216count(C))+(1))){
/*[IF*/
if(((C)->_capacity/*4*/)==(0)){
C->_capacity=16;
C->_storage=calloc((C)->_capacity/*4*/,sizeof(T0*));
}
else{
_new_capacity=(2)*((C)->_capacity/*4*/);
C->_storage=r217realloc((C)->_storage/*0*/,(C)->_capacity/*4*/,_new_capacity);
C->_capacity=_new_capacity;
}
/*FI]*/
}
/*FI]*/
C->_upper=((C)->_upper/*8*/)+(1);
/*[IRF3.6put*/{T216* C1=C;
T0* b1=a1;
T2 b2=(C)->_upper/*8*/;
((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
}/*]*/
}


T0* r216item(T216* C,T2 a1){
T0* R=NULL;
R=((C)->_storage/*0*/)[(a1)-((C)->_lower/*12*/)];
return R;
}


T2 r216count(T216* C){
T2 R=0;
R=(((C)->_upper/*8*/)-((C)->_lower/*12*/))+(1);
return R;
}
/*No:ARRAY[IFTHEN].lower*/
/*No:ARRAY[IFTHEN].upper*/


void r216copy(T216* C,T0* a1){
T2 _needed_capacity=0;
C->_lower=(((T216*)a1))->_lower/*12*/;
C->_upper=(((T216*)a1))->_upper/*8*/;
_needed_capacity=(((C)->_upper/*8*/)-((C)->_lower/*12*/))+(1);
/*[IF*/
if(((C)->_capacity/*4*/)<(_needed_capacity)){
C->_capacity=_needed_capacity;
C->_storage=calloc((C)->_capacity/*4*/,sizeof(T0*));
}
/*FI]*/
/*[IF*/
if((_needed_capacity)>(0)){
r217copy_from((C)->_storage/*0*/,(((T216*)a1))->_storage/*0*/,(_needed_capacity)-(1));
}
/*FI]*/
}
/*No:ARRAY[IFTHEN].capacity*/
/*No:ARRAY[IFTHEN].put*/
/*No:ARRAY[IFTHEN].storage*/

