/*
-- 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 "pretty.h"


T0* r245twin(T245* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T245*)R)=M245;
r245copy(((T245*)R),((T0*)C));
return R;
}


void r245add_last(T245* C,T0* a1){
T2 _new_capacity=0;
/*[IF*/
if(((C)->_capacity/*4*/)<((r245count(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=r246realloc((C)->_storage/*0*/,(C)->_capacity/*4*/,_new_capacity);
C->_capacity=_new_capacity;
}
/*FI]*/
}
/*FI]*/
C->_upper=((C)->_upper/*8*/)+(1);
/*[IRF3.6put*/{T245* C1=C;
T0* b1=a1;
T2 b2=(C)->_upper/*8*/;
((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
}/*]*/
}


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


T0* r245first(T245* C){
T0* R=NULL;
R=r245item(C,(C)->_lower/*12*/);
return R;
}


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


void r245copy(T245* C,T0* a1){
T2 _needed_capacity=0;
C->_lower=(((T245*)a1))->_lower/*12*/;
C->_upper=(((T245*)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)){
r246copy_from((C)->_storage/*0*/,(((T245*)a1))->_storage/*0*/,(_needed_capacity)-(1));
}
/*FI]*/
}
/*No:ARRAY[TYPE].capacity*/
/*No:ARRAY[TYPE].put*/
/*No:ARRAY[TYPE].storage*/


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


void r45add_last(T45* C,T2 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(T2));
C->_capacity=2;
C->_upper=0;
}
else{
_new_capacity=(2)*((C)->_capacity/*4*/);
C->_storage=r46realloc((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[INTEGER].item*/
/*No:FIXED_ARRAY[INTEGER].set_all_with*/


T6 r45valid_index(T45* C,T2 a1){
T6 R=0;
R=((0)<=(a1))&&((a1)<=((C)->_upper/*8*/));
return R;
}
/*No:FIXED_ARRAY[INTEGER].lower*/
/*No:FIXED_ARRAY[INTEGER].count*/


void r45resize(T45* C,T2 a1){
T2 _elt_default=0;
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(T2));
}
else{
C->_storage=r46realloc((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]*/
}


T6 r45fast_has(T45* C,T2 a1){
T6 R=0;
R=r45valid_index(C,r45fast_index_of(C,a1));
return R;
}


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


T2 r45fast_index_of(T45* C,T2 a1){
T2 R=0;
R=r46fast_index_of((C)->_storage/*0*/,a1,(C)->_upper/*8*/);
return R;
}
/*No:FIXED_ARRAY[INTEGER].upper*/
/*No:FIXED_ARRAY[INTEGER].capacity*/
/*No:FIXED_ARRAY[INTEGER].put*/
/*No:FIXED_ARRAY[INTEGER].storage*/
/*No:ARRAY[RUN_FEATURE].clear_all*/


void r323force(T323* C,T0* a1,T2 a2){
/*[IF*/
if(((C)->_upper/*8*/)<(a2)){
r323resize(C,(C)->_lower/*12*/,a2);
}
 else if((a2)<((C)->_lower/*12*/)){
r323resize(C,a2,(C)->_upper/*8*/);
}
/*FI]*/
/*[IRF3.6put*/{T323* C1=C;
T0* b1=a1;
T2 b2=a2;
((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
}/*]*/
}


T0* r323item(T323* C,T2 a1){
T0* R=NULL;
R=((C)->_storage/*0*/)[(a1)-((C)->_lower/*12*/)];
return R;
}
/*No:ARRAY[RUN_FEATURE].set_all_with*/
/*No:ARRAY[RUN_FEATURE].lower*/


void r323resize(T323* 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(T0*));
C->_capacity=_needed;
}
else{
C->_storage=r317realloc((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)){
r317clear((C)->_storage/*0*/,_intersize,(_needed)-(1));
}
/*FI]*/
}
 else if((_offset)<(0)){
r317move((C)->_storage/*0*/,-(_offset),((_intersize)-(_offset))-(1),_offset);
/*[IF*/
if((_intersize)<(_needed)){
r317clear((C)->_storage/*0*/,_intersize,(_needed)-(1));
}
/*FI]*/
}
else{
r317move((C)->_storage/*0*/,0,(_intersize)-(1),_offset);
r317clear((C)->_storage/*0*/,0,(_offset)-(1));
/*[IF*/
if(((_intersize)+(_offset))<(_needed)){
r317clear((C)->_storage/*0*/,(_intersize)+(_offset),(_needed)-(1));
}
/*FI]*/
}
/*FI]*/
}
else{
r317clear((C)->_storage/*0*/,0,(_needed)-(1));
}
/*FI]*/
}
/*FI]*/
C->_lower=a1;
C->_upper=a2;
}


void r323make(T323* 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(T0*));
C->_capacity=_needed;
}
else{
/*[IRF3.6clear_all*/{T323* C1=C;
T0* __value=NULL;
/*[IRF3.6set_all_with*/{T323* C2=C1;
T0* c1=__value;
r317set_all_with((C2)->_storage/*0*/,c1,((C2)->_upper/*8*/)-((C2)->_lower/*12*/));
}/*]*/
}/*]*/
}
/*FI]*/
}
/*FI]*/
}
/*No:ARRAY[RUN_FEATURE].upper*/
/*No:ARRAY[RUN_FEATURE].capacity*/
/*No:ARRAY[RUN_FEATURE].put*/
/*No:ARRAY[RUN_FEATURE].storage*/


void r71add_last(T71* C,T0* a1){
T2 _new_capacity=0;
/*[IF*/
if(((C)->_capacity/*4*/)<((r71count(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=r72realloc((C)->_storage/*0*/,(C)->_capacity/*4*/,_new_capacity);
C->_capacity=_new_capacity;
}
/*FI]*/
}
/*FI]*/
C->_upper=((C)->_upper/*8*/)+(1);
/*[IRF3.6put*/{T71* C1=C;
T0* b1=a1;
T2 b2=(C)->_upper/*8*/;
((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
}/*]*/
}


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


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


T0* r169twin(T169* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T169*)R)=M169;
r169copy(((T169*)R),((T0*)C));
return R;
}
/*No:ARRAY[LOCAL_NAME1].clear_all*/


void r169add_last(T169* C,T0* a1){
T2 _new_capacity=0;
/*[IF*/
if(((C)->_capacity/*8*/)<((r169count(C))+(1))){
/*[IF*/
if(((C)->_capacity/*8*/)==(0)){
C->_capacity=16;
C->_storage=calloc((C)->_capacity/*8*/,sizeof(T0*));
}
else{
_new_capacity=(2)*((C)->_capacity/*8*/);
C->_storage=r170realloc((C)->_storage/*4*/,(C)->_capacity/*8*/,_new_capacity);
C->_capacity=_new_capacity;
}
/*FI]*/
}
/*FI]*/
C->_upper=((C)->_upper/*12*/)+(1);
/*[IRF3.6put*/{T169* C1=C;
T0* b1=a1;
T2 b2=(C)->_upper/*12*/;
((C1)->_storage/*4*/)[(b2)-((C1)->_lower/*16*/)]=(b1);
}/*]*/
}
/*No:ARRAY[LOCAL_NAME1].set_all_with*/


T0* r169item(T169* C,T2 a1){
T0* R=NULL;
R=((C)->_storage/*4*/)[(a1)-((C)->_lower/*16*/)];
return R;
}


T2 r169count(T169* C){
T2 R=0;
R=(((C)->_upper/*12*/)-((C)->_lower/*16*/))+(1);
return R;
}
/*No:ARRAY[LOCAL_NAME1].lower*/


void r169make(T169* 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/*8*/)<(_needed)){
C->_storage=calloc(_needed,sizeof(T0*));
C->_capacity=_needed;
}
else{
/*[IRF3.6clear_all*/{T169* C1=C;
T0* __value=NULL;
/*[IRF3.6set_all_with*/{T169* C2=C1;
T0* c1=__value;
r170set_all_with((C2)->_storage/*4*/,c1,((C2)->_upper/*12*/)-((C2)->_lower/*16*/));
}/*]*/
}/*]*/
}
/*FI]*/
}
/*FI]*/
}
/*No:ARRAY[LOCAL_NAME1].upper*/


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


void r303add_last(T303* C,T0* a1){
T2 _new_capacity=0;
/*[IF*/
if(((C)->_capacity/*4*/)<((r303count(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=r304realloc((C)->_storage/*0*/,(C)->_capacity/*4*/,_new_capacity);
C->_capacity=_new_capacity;
}
/*FI]*/
}
/*FI]*/
C->_upper=((C)->_upper/*8*/)+(1);
/*[IRF3.6put*/{T303* C1=C;
T0* b1=a1;
T2 b2=(C)->_upper/*8*/;
((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
}/*]*/
}


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


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


void r293add_last(T293* C,T0* a1){
T2 _new_capacity=0;
/*[IF*/
if(((C)->_capacity/*4*/)<((r293count(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=r294realloc((C)->_storage/*0*/,(C)->_capacity/*4*/,_new_capacity);
C->_capacity=_new_capacity;
}
/*FI]*/
}
/*FI]*/
C->_upper=((C)->_upper/*8*/)+(1);
/*[IRF3.6put*/{T293* C1=C;
T0* b1=a1;
T2 b2=(C)->_upper/*8*/;
((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
}/*]*/
}


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


T0* r293first(T293* C){
T0* R=NULL;
R=r293item(C,(C)->_lower/*12*/);
return R;
}


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


void r264add_last(T264* C,T0* a1){
T2 _new_capacity=0;
/*[IF*/
if(((C)->_capacity/*4*/)<((r264count(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=r266realloc((C)->_storage/*0*/,(C)->_capacity/*4*/,_new_capacity);
C->_capacity=_new_capacity;
}
/*FI]*/
}
/*FI]*/
C->_upper=((C)->_upper/*8*/)+(1);
/*[IRF3.6put*/{T264* C1=C;
T0* b1=a1;
T2 b2=(C)->_upper/*8*/;
((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
}/*]*/
}


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


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


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


void r343add_last(T343* 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=r344realloc((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[RUN_FEATURE_6].item*/
/*No:FIXED_ARRAY[RUN_FEATURE_6].set_all_with*/


T6 r343valid_index(T343* C,T2 a1){
T6 R=0;
R=((0)<=(a1))&&((a1)<=((C)->_upper/*12*/));
return R;
}
/*No:FIXED_ARRAY[RUN_FEATURE_6].lower*/
/*No:FIXED_ARRAY[RUN_FEATURE_6].count*/


void r343resize(T343* 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=r344realloc((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]*/
}


T6 r343fast_has(T343* C,T0* a1){
T6 R=0;
R=r343valid_index(C,r343fast_index_of(C,a1));
return R;
}


void r343make(T343* 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*/{T343* C1=C;
T0* __value=NULL;
/*[IRF3.6set_all_with*/{T343* C2=C1;
T0* c1=__value;
r344set_all_with((C2)->_storage/*4*/,c1,(C2)->_upper/*12*/);
}/*]*/
}/*]*/
}
/*FI]*/
}


T2 r343fast_index_of(T343* C,T0* a1){
T2 R=0;
R=r344fast_index_of((C)->_storage/*4*/,a1,(C)->_upper/*12*/);
return R;
}
/*No:FIXED_ARRAY[RUN_FEATURE_6].upper*/
/*No:FIXED_ARRAY[RUN_FEATURE_6].capacity*/
/*No:FIXED_ARRAY[RUN_FEATURE_6].put*/
/*No:FIXED_ARRAY[RUN_FEATURE_6].storage*/


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


void r340add_last(T340* 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=r341realloc((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[RUN_FEATURE_5].item*/
/*No:FIXED_ARRAY[RUN_FEATURE_5].set_all_with*/


T6 r340valid_index(T340* C,T2 a1){
T6 R=0;
R=((0)<=(a1))&&((a1)<=((C)->_upper/*12*/));
return R;
}
/*No:FIXED_ARRAY[RUN_FEATURE_5].lower*/
/*No:FIXED_ARRAY[RUN_FEATURE_5].count*/


void r340resize(T340* 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=r341realloc((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]*/
}


T6 r340fast_has(T340* C,T0* a1){
T6 R=0;
R=r340valid_index(C,r340fast_index_of(C,a1));
return R;
}


void r340make(T340* 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*/{T340* C1=C;
T0* __value=NULL;
/*[IRF3.6set_all_with*/{T340* C2=C1;
T0* c1=__value;
r341set_all_with((C2)->_storage/*4*/,c1,(C2)->_upper/*12*/);
}/*]*/
}/*]*/
}
/*FI]*/
}


T2 r340fast_index_of(T340* C,T0* a1){
T2 R=0;
R=r341fast_index_of((C)->_storage/*4*/,a1,(C)->_upper/*12*/);
return R;
}
/*No:FIXED_ARRAY[RUN_FEATURE_5].upper*/
/*No:FIXED_ARRAY[RUN_FEATURE_5].capacity*/
/*No:FIXED_ARRAY[RUN_FEATURE_5].put*/
/*No:FIXED_ARRAY[RUN_FEATURE_5].storage*/

