/*
-- 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"


void r249with_capacity(T249* 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);
}


T0* r249twin(T249* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T249*)R)=M249;
r249copy(((T249*)R),((T0*)C));
return R;
}


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


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


T0* r249first(T249* C){
T0* R=NULL;
R=r249item(C,(C)->_lower/*12*/);
return R;
}


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


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


void r62with_capacity(T62* 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 r62add_last(T62* 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=r63realloc((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 r62valid_index(T62* 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 r62resize(T62* 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=r63realloc((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 r62fast_has(T62* C,T2 a1){
T6 R=0;
R=r62valid_index(C,r62fast_index_of(C,a1));
return R;
}


void r62make(T62* 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*/{T62* C1=C;
T2 __value=0;
/*[IRF3.6set_all_with*/{T62* C2=C1;
T2 c1=__value;
r63set_all_with((C2)->_storage/*0*/,c1,(C2)->_upper/*8*/);
}/*]*/
}/*]*/
}
/*FI]*/
}


T2 r62fast_index_of(T62* C,T2 a1){
T2 R=0;
R=r63fast_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 r324force(T324* C,T0* a1,T2 a2){
/*[IF*/
if(((C)->_upper/*8*/)<(a2)){
r324resize(C,(C)->_lower/*12*/,a2);
}
 else if((a2)<((C)->_lower/*12*/)){
r324resize(C,a2,(C)->_upper/*8*/);
}
/*FI]*/
/*[IRF3.6put*/{T324* C1=C;
T0* b1=a1;
T2 b2=a2;
((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
}/*]*/
}


T0* r324item(T324* 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 r324resize(T324* 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=r313realloc((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)){
r313clear((C)->_storage/*0*/,_intersize,(_needed)-(1));
}
/*FI]*/
}
 else if((_offset)<(0)){
r313move((C)->_storage/*0*/,-(_offset),((_intersize)-(_offset))-(1),_offset);
/*[IF*/
if((_intersize)<(_needed)){
r313clear((C)->_storage/*0*/,_intersize,(_needed)-(1));
}
/*FI]*/
}
else{
r313move((C)->_storage/*0*/,0,(_intersize)-(1),_offset);
r313clear((C)->_storage/*0*/,0,(_offset)-(1));
/*[IF*/
if(((_intersize)+(_offset))<(_needed)){
r313clear((C)->_storage/*0*/,(_intersize)+(_offset),(_needed)-(1));
}
/*FI]*/
}
/*FI]*/
}
else{
r313clear((C)->_storage/*0*/,0,(_needed)-(1));
}
/*FI]*/
}
/*FI]*/
C->_lower=a1;
C->_upper=a2;
}


void r324make(T324* 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*/{T324* C1=C;
T0* __value=NULL;
/*[IRF3.6set_all_with*/{T324* C2=C1;
T0* c1=__value;
r313set_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 r83add_last(T83* C,T0* a1){
T2 _new_capacity=0;
/*[IF*/
if(((C)->_capacity/*4*/)<((r83count(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=r84realloc((C)->_storage/*0*/,(C)->_capacity/*4*/,_new_capacity);
C->_capacity=_new_capacity;
}
/*FI]*/
}
/*FI]*/
C->_upper=((C)->_upper/*8*/)+(1);
/*[IRF3.6put*/{T83* C1=C;
T0* b1=a1;
T2 b2=(C)->_upper/*8*/;
((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
}/*]*/
}


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


T2 r83count(T83* 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* r173twin(T173* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T173*)R)=M173;
r173copy(((T173*)R),((T0*)C));
return R;
}
/*No:ARRAY[LOCAL_NAME1].clear_all*/


void r173add_last(T173* C,T0* a1){
T2 _new_capacity=0;
/*[IF*/
if(((C)->_capacity/*8*/)<((r173count(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=r174realloc((C)->_storage/*4*/,(C)->_capacity/*8*/,_new_capacity);
C->_capacity=_new_capacity;
}
/*FI]*/
}
/*FI]*/
C->_upper=((C)->_upper/*12*/)+(1);
/*[IRF3.6put*/{T173* 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* r173item(T173* C,T2 a1){
T0* R=NULL;
R=((C)->_storage/*4*/)[(a1)-((C)->_lower/*16*/)];
return R;
}


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


void r173make(T173* 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*/{T173* C1=C;
T0* __value=NULL;
/*[IRF3.6set_all_with*/{T173* C2=C1;
T0* c1=__value;
r174set_all_with((C2)->_storage/*4*/,c1,((C2)->_upper/*12*/)-((C2)->_lower/*16*/));
}/*]*/
}/*]*/
}
/*FI]*/
}
/*FI]*/
}
/*No:ARRAY[LOCAL_NAME1].upper*/


void r173copy(T173* C,T0* a1){
T2 _needed_capacity=0;
C->_lower=(((T173*)a1))->_lower/*16*/;
C->_upper=(((T173*)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)){
r174copy_from((C)->_storage/*4*/,(((T173*)a1))->_storage/*4*/,(_needed_capacity)-(1));
}
/*FI]*/
}
/*No:ARRAY[LOCAL_NAME1].capacity*/
/*No:ARRAY[LOCAL_NAME1].put*/
/*No:ARRAY[LOCAL_NAME1].storage*/


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


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


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


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


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


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


T2 r44count(T44* 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 r341with_capacity(T341* 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 r341add_last(T341* 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=r342realloc((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 r341valid_index(T341* C,T2 a1){
T6 R=0;
R=((0)<=(a1))&&((a1)<=((C)->_upper/*12*/));
return R;
}
/*No:FIXED_ARRAY[RUN_FEATURE_6].count*/
/*No:FIXED_ARRAY[RUN_FEATURE_6].lower*/


void r341resize(T341* 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=r342realloc((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 r341fast_has(T341* C,T0* a1){
T6 R=0;
R=r341valid_index(C,r341fast_index_of(C,a1));
return R;
}


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


T2 r341fast_index_of(T341* C,T0* a1){
T2 R=0;
R=r342fast_index_of((C)->_storage/*4*/,a1,(C)->_upper/*12*/);
return R;
}
/*No:FIXED_ARRAY[RUN_FEATURE_6].upper*/


void r341swap(T341* C,T2 a1,T2 a2){
T0* _tmp=NULL;
_tmp=/*(IRF4.6item*/((C)->_storage/*4*/)[a1]/*)*/;
/*[IRF3.5put*/((C)->_storage/*4*/)[a1]=(/*(IRF4.6item*/((C)->_storage/*4*/)[a2]/*)*/);
/*]*/
/*[IRF3.5put*/((C)->_storage/*4*/)[a2]=(_tmp);
/*]*/
}
/*No:FIXED_ARRAY[RUN_FEATURE_6].capacity*/
/*No:FIXED_ARRAY[RUN_FEATURE_6].put*/
/*No:FIXED_ARRAY[RUN_FEATURE_6].storage*/


void r338with_capacity(T338* 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 r338add_last(T338* 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=r339realloc((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 r338valid_index(T338* C,T2 a1){
T6 R=0;
R=((0)<=(a1))&&((a1)<=((C)->_upper/*12*/));
return R;
}
/*No:FIXED_ARRAY[RUN_FEATURE_5].count*/
/*No:FIXED_ARRAY[RUN_FEATURE_5].lower*/


void r338resize(T338* 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=r339realloc((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 r338fast_has(T338* C,T0* a1){
T6 R=0;
R=r338valid_index(C,r338fast_index_of(C,a1));
return R;
}


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


T2 r338fast_index_of(T338* C,T0* a1){
T2 R=0;
R=r339fast_index_of((C)->_storage/*4*/,a1,(C)->_upper/*12*/);
return R;
}
/*No:FIXED_ARRAY[RUN_FEATURE_5].upper*/


void r338swap(T338* C,T2 a1,T2 a2){
T0* _tmp=NULL;
_tmp=/*(IRF4.6item*/((C)->_storage/*4*/)[a1]/*)*/;
/*[IRF3.5put*/((C)->_storage/*4*/)[a1]=(/*(IRF4.6item*/((C)->_storage/*4*/)[a2]/*)*/);
/*]*/
/*[IRF3.5put*/((C)->_storage/*4*/)[a2]=(_tmp);
/*]*/
}
/*No:FIXED_ARRAY[RUN_FEATURE_5].capacity*/
/*No:FIXED_ARRAY[RUN_FEATURE_5].put*/
/*No:FIXED_ARRAY[RUN_FEATURE_5].storage*/

