

#include "BUILTIN.h"
extern OBJ __AIdeMap_3;
extern OBJ _ASeqMap_3(OBJ,OBJ);extern OBJ __ASeqMap_3;
extern OBJ _ASeqReduce_3(OBJ,OBJ,OBJ);extern OBJ __ASeqReduce_3;
extern OBJ __AAc_10;
extern OBJ _AAc_20(OBJ);extern OBJ __AAc_20;
extern OBJ _AAc_21(OBJ);extern OBJ __AAc_21;
extern OBJ _AAc_22(OBJ);extern OBJ __AAc_22;
extern OBJ _AAc_50(OBJ);extern OBJ __AAc_50;
extern OBJ _APreparedOptions_14(OBJ);extern OBJ __APreparedOptions_14;
extern OBJ _AAcFun_9(OBJ,OBJ);extern OBJ __AAcFun_9;
extern OBJ _AEqnSys_8(OBJ,OBJ);extern OBJ __AEqnSys_8;
extern OBJ _AEqnSys_9(OBJ,OBJ);extern OBJ __AEqnSys_9;
extern OBJ _AEqnSys_10(OBJ,OBJ);extern OBJ __AEqnSys_10;
extern OBJ _AEqnSys_11(OBJ,OBJ);extern OBJ __AEqnSys_11;
extern OBJ __AIdeOrd_2;
extern OBJ _AIdeOrd_4(OBJ,OBJ,OBJ);extern OBJ __AIdeOrd_4;
extern OBJ _AIdeOrd_5(OBJ,OBJ);extern OBJ __AIdeOrd_5;
extern OBJ _AIdeOrd_6(OBJ);extern OBJ __AIdeOrd_6;
extern OBJ _AIdeOrd_8(OBJ,OBJ);extern OBJ __AIdeOrd_8;
extern OBJ __AOcError_15;
extern OBJ _AFormatFun1_2(OBJ,OBJ,OBJ,OBJ,OBJ);extern OBJ __AFormatFun1_2;
extern OBJ _AFormatDebug_3(OBJ,OBJ,OBJ,OBJ);extern OBJ __AFormatDebug_3;
extern OBJ _ADEBUG_10(OBJ);extern OBJ __ADEBUG_10;
extern OBJ __ASeq_6;
extern OBJ _ASeq_14(OBJ,OBJ);extern OBJ __ASeq_14;
extern OBJ _ASeq_42(OBJ,OBJ);extern OBJ __ASeq_42;
extern OBJ _AMap_16(OBJ,OBJ,OBJ);extern OBJ __AMap_16;
extern OBJ _AMap_31(OBJ,OBJ,OBJ,OBJ);extern OBJ __AMap_31;
extern OBJ _AMap_33(OBJ,OBJ,OBJ);extern OBJ __AMap_33;
extern OBJ _ASetByBST_41(OBJ,OBJ,OBJ);extern OBJ __ASetByBST_41;
extern OBJ _ASetByBST_43(OBJ,OBJ,OBJ);extern OBJ __ASetByBST_43;
extern OBJ _ASetByBST_44(OBJ,OBJ,OBJ);extern OBJ __ASetByBST_44;
extern OBJ _ASetByBST_48(OBJ,OBJ,OBJ);extern OBJ __ASetByBST_48;

#include "Nat.h"
extern OBJ _ABSTree_57(OBJ,OBJ,OBJ);extern OBJ __ABSTree_57;
extern OBJ _ABSTree_58(OBJ,OBJ,OBJ);extern OBJ __ABSTree_58;
extern OBJ _ABSTree_61(OBJ,OBJ,OBJ);extern OBJ __ABSTree_61;
extern OBJ __AOption_5;

#include "Array.h"

#include "Char.h"

#include "Bitset.h"
extern OBJ _ASetByBSTFilter_3(OBJ,OBJ,OBJ);extern OBJ __ASetByBSTFilter_3;
extern OBJ _ASetByBSTConv_7(OBJ,OBJ);extern OBJ __ASetByBSTConv_7;

#include "Int.h"
extern OBJ _ABSTreeConv_7(OBJ,OBJ);extern OBJ __ABSTreeConv_7;
extern OBJ _AIde_13(OBJ,OBJ);extern OBJ __AIde_13;
extern OBJ _AIde_14(OBJ,OBJ);extern OBJ __AIde_14;
extern OBJ _AIde_18(OBJ);extern OBJ __AIde_18;
extern OBJ __AIdeSet_2;
extern TUP3 _AIdeSet_17(OBJ,OBJ);extern OBJ __AIdeSet_17;
extern OBJ __AAn_2;
extern OBJ _AFormat_5(OBJ,OBJ);extern OBJ __AFormat_5;
extern OBJ _AFmt_28(OBJ);extern OBJ __AFmt_28;
extern TUP2 _AOptimPath_1(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AOptimPath_1; /* optimPath */
extern OBJ _AOptimPath_3(OBJ,OBJ);OBJ __AOptimPath_3; /* atr */
extern OBJ _AOptimPath_4(OBJ);OBJ __AOptimPath_4; /* atr? */
extern OBJ _AOptimPath_5(OBJ);OBJ __AOptimPath_5; /* free */
extern OBJ _AOptimPath_6(OBJ);OBJ __AOptimPath_6; /* deps */
extern OBJ _AOptimPath_8(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AOptimPath_8; /* thr */
extern OBJ _AOptimPath_9(OBJ);OBJ __AOptimPath_9; /* thr? */
extern OBJ _AOptimPath_10(OBJ);OBJ __AOptimPath_10; /* ord */
extern OBJ _AOptimPath_11(OBJ);OBJ __AOptimPath_11; /* free,1 */
extern OBJ _AOptimPath_12(OBJ);OBJ __AOptimPath_12; /* deps,1 */
extern OBJ _AOptimPath_13(OBJ);OBJ __AOptimPath_13; /* atrs */
extern OBJ _AOptimPath_14(OBJ);OBJ __AOptimPath_14; /* visited */
extern OBJ _AOptimPath_16(OBJ,OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AOptimPath_16; /* inh */
extern OBJ _AOptimPath_17(OBJ);OBJ __AOptimPath_17; /* inh? */
extern OBJ _AOptimPath_18(OBJ);OBJ __AOptimPath_18; /* forced */
extern OBJ _AOptimPath_19(OBJ);OBJ __AOptimPath_19; /* target */
extern OBJ _AOptimPath_20(OBJ);OBJ __AOptimPath_20; /* bound */
extern OBJ _AOptimPath_21(OBJ);OBJ __AOptimPath_21; /* sys */
extern OBJ _AOptimPath_22(OBJ);OBJ __AOptimPath_22; /* unit */
extern OBJ _AOptimPath_23(OBJ);OBJ __AOptimPath_23; /* popts */
extern OBJ _AOptimPath_24(OBJ);OBJ __AOptimPath_24; /* format */
OBJ __AOptimPath_25; /* lazyLet? */
OBJ __AOptimPath_26; /* liftImpliedStrict? */
extern OBJ _AOptimPath_28(OBJ,OBJ);OBJ __AOptimPath_28; /* updBound */
extern OBJ _AOptimPath_29(OBJ,OBJ);OBJ __AOptimPath_29; /* updForced */
extern OBJ _AOptimPath_30(OBJ,OBJ);OBJ __AOptimPath_30; /* updVisited */
extern OBJ _AOptimPath_31(OBJ,OBJ);OBJ __AOptimPath_31; /* updDeps */
extern OBJ _AOptimPath_32(OBJ,OBJ);OBJ __AOptimPath_32; /* updAtrs */
extern OBJ _AOptimPath_33(OBJ,OBJ);OBJ __AOptimPath_33; /* updFree */
extern OBJ _AOptimPath_34(OBJ,OBJ);OBJ __AOptimPath_34; /* updOrd */
extern OBJ _AOptimPath_35(OBJ,OBJ,OBJ);OBJ __AOptimPath_35; /* analyzePath */
extern OBJ _AOptimPath_36(OBJ,OBJ,OBJ,OBJ);OBJ __AOptimPath_36; /* analyzeSubPath */
extern OBJ _AOptimPath_37(OBJ,OBJ,OBJ);OBJ __AOptimPath_37; /* analyzeIndir */
extern OBJ _AOptimPath_38(OBJ,OBJ,OBJ,OBJ);OBJ __AOptimPath_38; /* analyzeRhs */
extern TUP2 _AOptimPath_39(OBJ,OBJ,OBJ);OBJ __AOptimPath_39; /* analyzeForced */
extern TUP4 _AOptimPath_40(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AOptimPath_40; /* analyzeCase */
extern OBJ _AOptimPath_41(OBJ,OBJ);OBJ __AOptimPath_41; /* * */
extern OBJ _AOptimPath_42(OBJ,OBJ,OBJ,OBJ);OBJ __AOptimPath_42; /* liftCand? */
extern OBJ _AOptimPath_43(OBJ,OBJ,OBJ);OBJ __AOptimPath_43; /* forceNoTargetLift */
extern OBJ _AOptimPath_44(OBJ,OBJ);OBJ __AOptimPath_44; /* targetApply? */
extern OBJ _AOptimPath_45(OBJ,OBJ,OBJ,OBJ);OBJ __AOptimPath_45; /* generatePath */
extern OBJ _AOptimPath_46(OBJ,OBJ,OBJ,OBJ);OBJ __AOptimPath_46; /* generatePath,1 */
extern OBJ _AOptimPath_47(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __AOptimPath_47; /* generateSequ */
extern OBJ _AOptimPath_48(OBJ,OBJ,OBJ,OBJ);OBJ __AOptimPath_48; /* generateRhs */
extern TUP2 _AOptimPath_49(OBJ,OBJ,OBJ,OBJ);OBJ __AOptimPath_49; /* splitTodo */
OBJ __AOptimPath_50; /* dumpGenPath? */
extern OBJ _AOptimPath_51(OBJ,OBJ,OBJ,OBJ);OBJ __AOptimPath_51; /* dumpGenPath */
extern OBJ _AOptimPath_52(OBJ,OBJ,OBJ,OBJ);OBJ __AOptimPath_52; /* analyzeImpliedStrict */
extern OBJ _AOptimPath_53(OBJ,OBJ,OBJ);OBJ __AOptimPath_53; /* sampleDiscrimination */
extern OBJ _AOptimPath_54(OBJ,OBJ,OBJ,OBJ);OBJ __AOptimPath_54; /* inclImpliedStrict */
extern OBJ _AOptimPath_55(OBJ,OBJ,OBJ);OBJ __AOptimPath_55; /* forceNoTargetLift'55 */
extern OBJ _AOptimPath_56(OBJ,OBJ);OBJ __AOptimPath_56; /* analyzeCase'56 */
extern OBJ _AOptimPath_57(OBJ,OBJ);OBJ __AOptimPath_57; /* analyzeRhs'57 */
extern OBJ _AOptimPath_58(OBJ,OBJ);OBJ __AOptimPath_58; /* sampleDiscrimination'58 */
extern OBJ _AOptimPath_59(OBJ,OBJ);OBJ __AOptimPath_59; /* inclImpliedStrict'59 */
extern OBJ _AOptimPath_60(OBJ);OBJ __AOptimPath_60; /* inclImpliedStrict'60 */
extern OBJ _AOptimPath_61(OBJ,OBJ);OBJ __AOptimPath_61; /* inclImpliedStrict'61 */
OBJ __AOptimPath_62; /* format'62 */
extern OBJ _AOptimPath_63(OBJ);OBJ __AOptimPath_63; /* format'63 */
OBJ __AOptimPath_64; /* format'64 */
extern OBJ _AOptimPath_65(OBJ);OBJ __AOptimPath_65; /* format'65 */
OBJ __AOptimPath_66; /* format'66 */
extern OBJ _AOptimPath_67(OBJ);OBJ __AOptimPath_67; /* format'67 */
OBJ __AOptimPath_68; /* dumpGenPath'68 */
extern OBJ _AOptimPath_69(OBJ);OBJ __AOptimPath_69; /* dumpGenPath'69 */
extern OBJ _AOptimPath_70(OBJ);OBJ __AOptimPath_70; /* dumpGenPath'70 */
OBJ __AOptimPath_71; /* dumpGenPath'71 */
extern OBJ _AOptimPath_72(OBJ);OBJ __AOptimPath_72; /* dumpGenPath'72 */
extern OBJ _AOptimPath_73(OBJ);OBJ __AOptimPath_73; /* dumpGenPath'73 */
OBJ __AOptimPath_74; /* dumpGenPath'74 */
extern OBJ _AOptimPath_75(OBJ);OBJ __AOptimPath_75; /* dumpGenPath'75 */
extern OBJ _AOptimPath_76(OBJ);OBJ __AOptimPath_76; /* dumpGenPath'76 */
extern OBJ _AOptimPath_77(OBJ,OBJ,OBJ,OBJ);OBJ __AOptimPath_77; /* generateRhs'77 */
extern OBJ _AOptimPath_78(OBJ,OBJ,OBJ,OBJ);OBJ __AOptimPath_78; /* generateSequ'78 */
extern OBJ _AOptimPath_79(OBJ,OBJ,OBJ,OBJ);OBJ __AOptimPath_79; /* generateSequ'79 */
OBJ __AOptimPath_80; /* optimPath'80 */
OBJ __AOptimPath_81; /* dumpGenPath?'81 */
OBJ __AOptimPath_82; /* lazyLet?'82 */

extern TUP2 _AOptimPath_1(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* optimPath */
{TUP2 r;
 CPPRD(__AOptimPath_80,1);
 COPY(__AIdeSet_2,2);
 CPPRD(x3,2);
 CPPRD(x4,1);
 CPPRD(x5,1);
 {OBJ x6;OBJ x7;OBJ x8;OBJ x9;OBJ x10;
  x6=_AAc_21(x3);
  CPPRD(x6,1);
  x7=_AAc_22(x3);
  x8=_AAc_20(x3);
  PRD1(6,x9);FLD1(x9,1)=x1;FLD1(x9,2)=x2;FLD1(x9,3)=x4;FLD1(x9,4)=__AIdeSet_2;FLD1(x9,5)=x6;FLD1(x9,6)=__AIdeSet_2;
  x10=_AOptimPath_35(x9,__AOptimPath_80,x5);
  {OBJ x27=FLD1(x10,2);OBJ x30=FLD1(x10,5);
   if(EXPRD(x10,1)){
    FLD1(x10,2)=NIL;FLD1(x10,5)=NIL;DSPRD(x10);
   }else{
    COPY(x27,1);CPPRD(x30,1);
    FRPRD(x10,1);}
   CPPRD(__AOcError_15,1);
   {OBJ x31;OBJ x32;
    x31=_AIdeOrd_6(x30);
    x32=_AOptimPath_46(x4,x27,x31,x5);
    PRD(4,2,r.c1);FLD(r.c1,1)=x7;FLD(r.c1,2)=x6;FLD(r.c1,3)=x8;FLD(r.c1,4)=x32;
    r.c2=__AOcError_15;}}}
 return r;}
extern OBJ _AOptimPath_1_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* optimPath */
{OBJ r;
 {TUP2 t=_AOptimPath_1(x1,x2,x3,x4,x5);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AOptimPath_3(OBJ x1,OBJ x2) /* atr */
{OBJ r;
 PRD1(2,r);FLD1(r,1)=x1;FLD1(r,2)=x2;
 return r;}

extern OBJ _AOptimPath_4(OBJ x1) /* atr? */
{OBJ r;
 FRPRD(x1,1);
 r=__ABUILTIN_5;
 return r;}

extern OBJ _AOptimPath_5(OBJ x1) /* free */
{OBJ r;
 {OBJ x3=FLD1(x1,2);
  if(EXPRD(x1,1)){
   r=x3;
   FREE(FLD1(x1,1),1);DSPRDF(x1);
  }else{
   COPY(x3,1);
   r=x3;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AOptimPath_6(OBJ x1) /* deps */
{OBJ r;
 {OBJ x2=FLD1(x1,1);
  if(EXPRD(x1,1)){
   r=x2;
   FREE(FLD1(x1,2),1);DSPRDF(x1);
  }else{
   COPY(x2,1);
   r=x2;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AOptimPath_8(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* thr */
{OBJ r;
 PRD1(5,r);FLD1(r,1)=x1;FLD1(r,2)=x2;FLD1(r,3)=x3;FLD1(r,4)=x4;FLD1(r,5)=x5;
 return r;}

extern OBJ _AOptimPath_9(OBJ x1) /* thr? */
{OBJ r;
 FRPRD(x1,1);
 r=__ABUILTIN_5;
 return r;}

extern OBJ _AOptimPath_10(OBJ x1) /* ord */
{OBJ r;
 {OBJ x6=FLD1(x1,5);
  if(EXPRD(x1,1)){
   r=x6;
   FLD1(x1,5)=NIL;DSPRD(x1);
  }else{
   CPPRD(x6,1);
   r=x6;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AOptimPath_11(OBJ x1) /* free,1 */
{OBJ r;
 {OBJ x5=FLD1(x1,4);
  if(EXPRD(x1,1)){
   r=x5;
   FLD1(x1,4)=NIL;DSPRD(x1);
  }else{
   COPY(x5,1);
   r=x5;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AOptimPath_12(OBJ x1) /* deps,1 */
{OBJ r;
 {OBJ x4=FLD1(x1,3);
  if(EXPRD(x1,1)){
   r=x4;
   FLD1(x1,3)=NIL;DSPRD(x1);
  }else{
   COPY(x4,1);
   r=x4;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AOptimPath_13(OBJ x1) /* atrs */
{OBJ r;
 {OBJ x3=FLD1(x1,2);
  if(EXPRD(x1,1)){
   r=x3;
   FLD1(x1,2)=NIL;DSPRD(x1);
  }else{
   COPY(x3,1);
   r=x3;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AOptimPath_14(OBJ x1) /* visited */
{OBJ r;
 {OBJ x2=FLD1(x1,1);
  if(EXPRD(x1,1)){
   r=x2;
   FLD1(x1,1)=NIL;DSPRD(x1);
  }else{
   COPY(x2,1);
   r=x2;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AOptimPath_16(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5,OBJ x6) /* inh */
{OBJ r;
 PRD1(6,r);FLD1(r,1)=x1;FLD1(r,2)=x2;FLD1(r,3)=x3;FLD1(r,4)=x4;FLD1(r,5)=x5;FLD1(r,6)=x6;
 return r;}

extern OBJ _AOptimPath_17(OBJ x1) /* inh? */
{OBJ r;
 FRPRD(x1,1);
 r=__ABUILTIN_5;
 return r;}

extern OBJ _AOptimPath_18(OBJ x1) /* forced */
{OBJ r;
 {OBJ x7=FLD1(x1,6);
  if(EXPRD(x1,1)){
   r=x7;
   FLD1(x1,6)=NIL;DSPRD(x1);
  }else{
   COPY(x7,1);
   r=x7;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AOptimPath_19(OBJ x1) /* target */
{OBJ r;
 {OBJ x6=FLD1(x1,5);
  if(EXPRD(x1,1)){
   r=x6;
   FLD1(x1,5)=NIL;DSPRD(x1);
  }else{
   CPPRD(x6,1);
   r=x6;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AOptimPath_20(OBJ x1) /* bound */
{OBJ r;
 {OBJ x5=FLD1(x1,4);
  if(EXPRD(x1,1)){
   r=x5;
   FLD1(x1,4)=NIL;DSPRD(x1);
  }else{
   COPY(x5,1);
   r=x5;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AOptimPath_21(OBJ x1) /* sys */
{OBJ r;
 {OBJ x4=FLD1(x1,3);
  if(EXPRD(x1,1)){
   r=x4;
   FLD1(x1,3)=NIL;DSPRD(x1);
  }else{
   CPPRD(x4,1);
   r=x4;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AOptimPath_22(OBJ x1) /* unit */
{OBJ r;
 {OBJ x3=FLD1(x1,2);
  if(EXPRD(x1,1)){
   r=x3;
   FLD1(x1,2)=NIL;DSPRD(x1);
  }else{
   CPPRD(x3,1);
   r=x3;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AOptimPath_23(OBJ x1) /* popts */
{OBJ r;
 {OBJ x2=FLD1(x1,1);
  if(EXPRD(x1,1)){
   r=x2;
   FLD1(x1,1)=NIL;DSPRD(x1);
  }else{
   CPPRD(x2,1);
   r=x2;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AOptimPath_24(OBJ x1) /* format */
{OBJ r;
 CPCLS(__AOptimPath_63,1);
 CPCLS(__AOptimPath_65,1);
 CPCLS(__AOptimPath_67,1);
 CPCLS(__AIde_14,1);
 CPCLS(__AIde_18,1);
 {OBJ x2;OBJ x3;OBJ x4;OBJ x5;
  x2=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimPath_63,1))(__AOptimPath_63,__ABUILTIN_20);
  x3=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimPath_65,1))(__AOptimPath_65,__ABUILTIN_20);
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimPath_67,1))(__AOptimPath_67,__ABUILTIN_20);
  x5=_ABSTreeConv_7(__AIde_14,x1);
  r=_AFormatFun1_2(x2,x3,x4,__AIde_18,x5);}
 return r;}

extern OBJ _AOptimPath_28(OBJ x1,OBJ x2) /* updBound */
{OBJ r;
 {OBJ x45;OBJ x46;OBJ x47;OBJ x49;OBJ x50;
  if(EXPRD(x1,1)){
   RSOME(x1,r);FREE(FLD1(r,4),1);FLD1(r,4)=x2;
  }else{
   x45=FLD1(x1,1);x46=FLD1(x1,2);x47=FLD1(x1,3);x49=FLD1(x1,5);x50=FLD1(x1,6);CPPRD(x45,1);CPPRD(x46,1);CPPRD(x47,1);CPPRD(x49,1);COPY(x50,1);
   FRPRD(x1,1);PRD1(6,r);FLD1(r,1)=x45;FLD1(r,2)=x46;FLD1(r,3)=x47;FLD1(r,4)=x2;FLD1(r,5)=x49;FLD1(r,6)=x50;}}
 return r;}

extern OBJ _AOptimPath_29(OBJ x1,OBJ x2) /* updForced */
{OBJ r;
 {OBJ x45;OBJ x46;OBJ x47;OBJ x48;OBJ x49;
  if(EXPRD(x1,1)){
   RSOME(x1,r);FREE(FLD1(r,6),1);FLD1(r,6)=x2;
  }else{
   x45=FLD1(x1,1);x46=FLD1(x1,2);x47=FLD1(x1,3);x48=FLD1(x1,4);x49=FLD1(x1,5);CPPRD(x45,1);CPPRD(x46,1);CPPRD(x47,1);COPY(x48,1);CPPRD(x49,1);
   FRPRD(x1,1);PRD1(6,r);FLD1(r,1)=x45;FLD1(r,2)=x46;FLD1(r,3)=x47;FLD1(r,4)=x48;FLD1(r,5)=x49;FLD1(r,6)=x2;}}
 return r;}

extern OBJ _AOptimPath_30(OBJ x1,OBJ x2) /* updVisited */
{OBJ r;
 {OBJ x34;OBJ x35;OBJ x36;OBJ x37;
  if(EXPRD(x1,1)){
   RSOME(x1,r);FREE(FLD1(r,1),1);FLD1(r,1)=x2;
  }else{
   x34=FLD1(x1,2);x35=FLD1(x1,3);x36=FLD1(x1,4);x37=FLD1(x1,5);COPY(x34,1);COPY(x35,1);COPY(x36,1);CPPRD(x37,1);
   FRPRD(x1,1);PRD1(5,r);FLD1(r,1)=x2;FLD1(r,2)=x34;FLD1(r,3)=x35;FLD1(r,4)=x36;FLD1(r,5)=x37;}}
 return r;}

extern OBJ _AOptimPath_31(OBJ x1,OBJ x2) /* updDeps */
{OBJ r;
 {OBJ x33;OBJ x34;OBJ x36;OBJ x37;
  if(EXPRD(x1,1)){
   RSOME(x1,r);FREE(FLD1(r,3),1);FLD1(r,3)=x2;
  }else{
   x33=FLD1(x1,1);x34=FLD1(x1,2);x36=FLD1(x1,4);x37=FLD1(x1,5);COPY(x33,1);COPY(x34,1);COPY(x36,1);CPPRD(x37,1);
   FRPRD(x1,1);PRD1(5,r);FLD1(r,1)=x33;FLD1(r,2)=x34;FLD1(r,3)=x2;FLD1(r,4)=x36;FLD1(r,5)=x37;}}
 return r;}

extern OBJ _AOptimPath_32(OBJ x1,OBJ x2) /* updAtrs */
{OBJ r;
 {OBJ x33;OBJ x35;OBJ x36;OBJ x37;
  if(EXPRD(x1,1)){
   RSOME(x1,r);FREE(FLD1(r,2),1);FLD1(r,2)=x2;
  }else{
   x33=FLD1(x1,1);x35=FLD1(x1,3);x36=FLD1(x1,4);x37=FLD1(x1,5);COPY(x33,1);COPY(x35,1);COPY(x36,1);CPPRD(x37,1);
   FRPRD(x1,1);PRD1(5,r);FLD1(r,1)=x33;FLD1(r,2)=x2;FLD1(r,3)=x35;FLD1(r,4)=x36;FLD1(r,5)=x37;}}
 return r;}

extern OBJ _AOptimPath_33(OBJ x1,OBJ x2) /* updFree */
{OBJ r;
 {OBJ x33;OBJ x34;OBJ x35;OBJ x37;
  if(EXPRD(x1,1)){
   RSOME(x1,r);FREE(FLD1(r,4),1);FLD1(r,4)=x2;
  }else{
   x33=FLD1(x1,1);x34=FLD1(x1,2);x35=FLD1(x1,3);x37=FLD1(x1,5);COPY(x33,1);COPY(x34,1);COPY(x35,1);CPPRD(x37,1);
   FRPRD(x1,1);PRD1(5,r);FLD1(r,1)=x33;FLD1(r,2)=x34;FLD1(r,3)=x35;FLD1(r,4)=x2;FLD1(r,5)=x37;}}
 return r;}

extern OBJ _AOptimPath_34(OBJ x1,OBJ x2) /* updOrd */
{OBJ r;
 {OBJ x33;OBJ x34;OBJ x35;OBJ x36;
  if(EXPRD(x1,1)){
   RSOME(x1,r);FRPRD(FLD1(r,5),1);FLD1(r,5)=x2;
  }else{
   x33=FLD1(x1,1);x34=FLD1(x1,2);x35=FLD1(x1,3);x36=FLD1(x1,4);COPY(x33,1);COPY(x34,1);COPY(x35,1);COPY(x36,1);
   FRPRD(x1,1);PRD1(5,r);FLD1(r,1)=x33;FLD1(r,2)=x34;FLD1(r,3)=x35;FLD1(r,4)=x36;FLD1(r,5)=x2;}}
 return r;}

extern OBJ _AOptimPath_35(OBJ x1,OBJ x2,OBJ x3) /* analyzePath */
{OBJ r;
 if(ISTGPRD(x3,2)){
  {OBJ x160=FLD(x3,2);
   if(EXPRD(x3,1)){
    FREE(FLD(x3,1),1);DSPRDF(x3);
   }else{
    CPPRD(x160,1);
    FRPRD(x3,1);}
   if(ISTGPRD(x160,1)){
    {OBJ x164=FLD1(x1,3);
     CPPRD(x164,1);
     CPPRD(x160,1);
     {OBJ x168;
      x168=_AEqnSys_8(x164,x160);
      if(ISTGPRM(x168,1)){
       CPPRD(x160,1);
       {OBJ x169;
	x169=_AOptimPath_37(x1,x2,x160);
	{OBJ x170;OBJ x171;OBJ x172=FLD1(x169,3);OBJ x173;OBJ x174;
	 if(EXPRD(x169,1)){
	  CPCLS(__AIde_14,1);
	  {
	   RSOME(x169,r);
	   FLD1(r,3)=_ABSTree_57(__AIde_14,x160,x172);}
	 }else{
	  x170=FLD1(x169,1);x171=FLD1(x169,2);x173=FLD1(x169,4);x174=FLD1(x169,5);COPY(x170,1);COPY(x171,1);COPY(x172,1);COPY(x173,1);CPPRD(x174,1);
	  CPCLS(__AIde_14,1);
	  {
	   FRPRD(x169,1);PRD1(5,r);FLD1(r,1)=x170;FLD1(r,2)=x171;FLD1(r,4)=x173;FLD1(r,5)=x174;
	   FLD1(r,3)=_ABSTree_57(__AIde_14,x160,x172);}}}}
      }else{
       if(EXPRD(x1,1)){
	DSPRD(x1);
       }else{
	DCPRD(x1,1);}
       CPCLS(__AIde_14,1);
       COPY(__AIdeSet_2,1);
       {OBJ x176;
	x176=_ABSTree_57(__AIde_14,x160,__AIdeSet_2);
	{OBJ x177;OBJ x178;OBJ x181;
	 if(EXPRD(x2,1)){
	  COPY(__AIdeSet_2,1);
	  RSOME(x2,r);FREE(FLD1(r,3),1);FLD1(r,3)=__AIdeSet_2;FREE(FLD1(r,4),1);FLD1(r,4)=x176;
	 }else{
	  x177=FLD1(x2,1);x178=FLD1(x2,2);x181=FLD1(x2,5);COPY(x177,1);COPY(x178,1);CPPRD(x181,1);
	  COPY(__AIdeSet_2,1);
	  FRPRD(x2,1);PRD1(5,r);FLD1(r,1)=x177;FLD1(r,2)=x178;FLD1(r,3)=__AIdeSet_2;FLD1(r,4)=x176;FLD1(r,5)=x181;}}}}}}
   }else{
    if(EXPRD(x160,1)){
     DSPRDF(x160);
    }else{
     DCPRD(x160,1);}
    FRPRD(x1,1);
    {OBJ x185;OBJ x186;OBJ x189;
     if(EXPRD(x2,1)){
      COPY(__AIdeSet_2,2);
      RSOME(x2,r);FREE(FLD1(r,3),1);FLD1(r,3)=__AIdeSet_2;FREE(FLD1(r,4),1);FLD1(r,4)=__AIdeSet_2;
     }else{
      x185=FLD1(x2,1);x186=FLD1(x2,2);x189=FLD1(x2,5);COPY(x185,1);COPY(x186,1);CPPRD(x189,1);
      COPY(__AIdeSet_2,2);
      FRPRD(x2,1);PRD1(5,r);FLD1(r,1)=x185;FLD1(r,2)=x186;FLD1(r,3)=__AIdeSet_2;FLD1(r,4)=__AIdeSet_2;FLD1(r,5)=x189;}}}}
 }else{
  FRPRD(x1,1);
  FRPRD(x3,1);
  {OBJ x191;OBJ x192;OBJ x195;
   if(EXPRD(x2,1)){
    COPY(__AIdeSet_2,2);
    RSOME(x2,r);FREE(FLD1(r,3),1);FLD1(r,3)=__AIdeSet_2;FREE(FLD1(r,4),1);FLD1(r,4)=__AIdeSet_2;
   }else{
    x191=FLD1(x2,1);x192=FLD1(x2,2);x195=FLD1(x2,5);COPY(x191,1);COPY(x192,1);CPPRD(x195,1);
    COPY(__AIdeSet_2,2);
    FRPRD(x2,1);PRD1(5,r);FLD1(r,1)=x191;FLD1(r,2)=x192;FLD1(r,3)=__AIdeSet_2;FLD1(r,4)=__AIdeSet_2;FLD1(r,5)=x195;}}}
 return r;}

extern OBJ _AOptimPath_36(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* analyzeSubPath */
{OBJ r;
 if(ISTGPRD(x4,2)){
  {OBJ x186=FLD(x4,2);
   if(EXPRD(x4,1)){
    FREE(FLD(x4,1),1);DSPRDF(x4);
   }else{
    CPPRD(x186,1);
    FRPRD(x4,1);}
   if(ISTGPRD(x186,1)){
    {OBJ x190=FLD1(x1,3);
     CPPRD(x190,1);
     CPPRD(x186,1);
     {OBJ x194;
      x194=_AEqnSys_8(x190,x186);
      if(ISTGPRM(x194,1)){
       CPPRD(x186,1);
       {OBJ x195;
	x195=_AOptimPath_37(x1,x2,x186);
	{OBJ x196;OBJ x197;OBJ x198=FLD1(x195,3);OBJ x199;OBJ x200=FLD1(x195,5);
	 if(EXPRD(x195,1)){
	  CPPRD(x186,1);
	  CPCLS(__AIde_14,1);
	  {OBJ x201;
	   x201=_ABSTree_57(__AIde_14,x186,x198);
	   RSOME(x195,r);FLD1(r,3)=x201;
	   FLD1(r,5)=_AIdeOrd_4(x3,x186,x200);}
	 }else{
	  x196=FLD1(x195,1);x197=FLD1(x195,2);x199=FLD1(x195,4);COPY(x196,1);COPY(x197,1);COPY(x198,1);COPY(x199,1);CPPRD(x200,1);
	  CPPRD(x186,1);
	  CPCLS(__AIde_14,1);
	  {OBJ x201;
	   x201=_ABSTree_57(__AIde_14,x186,x198);
	   FRPRD(x195,1);PRD1(5,r);FLD1(r,1)=x196;FLD1(r,2)=x197;FLD1(r,3)=x201;FLD1(r,4)=x199;
	   FLD1(r,5)=_AIdeOrd_4(x3,x186,x200);}}}}
      }else{
       if(EXPRD(x1,1)){
	DSPRD(x1);
       }else{
	DCPRD(x1,1);}
       FRPRD(x3,1);
       CPCLS(__AIde_14,1);
       COPY(__AIdeSet_2,1);
       {OBJ x204;
	x204=_ABSTree_57(__AIde_14,x186,__AIdeSet_2);
	{OBJ x205;OBJ x206;OBJ x209;
	 if(EXPRD(x2,1)){
	  COPY(__AIdeSet_2,1);
	  RSOME(x2,r);FREE(FLD1(r,3),1);FLD1(r,3)=__AIdeSet_2;FREE(FLD1(r,4),1);FLD1(r,4)=x204;
	 }else{
	  x205=FLD1(x2,1);x206=FLD1(x2,2);x209=FLD1(x2,5);COPY(x205,1);COPY(x206,1);CPPRD(x209,1);
	  COPY(__AIdeSet_2,1);
	  FRPRD(x2,1);PRD1(5,r);FLD1(r,1)=x205;FLD1(r,2)=x206;FLD1(r,3)=__AIdeSet_2;FLD1(r,4)=x204;FLD1(r,5)=x209;}}}}}}
   }else{
    if(EXPRD(x186,1)){
     DSPRDF(x186);
    }else{
     DCPRD(x186,1);}
    FRPRD(x1,1);
    FRPRD(x3,1);
    {OBJ x213;OBJ x214;OBJ x217;
     if(EXPRD(x2,1)){
      COPY(__AIdeSet_2,2);
      RSOME(x2,r);FREE(FLD1(r,3),1);FLD1(r,3)=__AIdeSet_2;FREE(FLD1(r,4),1);FLD1(r,4)=__AIdeSet_2;
     }else{
      x213=FLD1(x2,1);x214=FLD1(x2,2);x217=FLD1(x2,5);COPY(x213,1);COPY(x214,1);CPPRD(x217,1);
      COPY(__AIdeSet_2,2);
      FRPRD(x2,1);PRD1(5,r);FLD1(r,1)=x213;FLD1(r,2)=x214;FLD1(r,3)=__AIdeSet_2;FLD1(r,4)=__AIdeSet_2;FLD1(r,5)=x217;}}}}
 }else{
  FRPRD(x1,1);
  FRPRD(x3,1);
  FRPRD(x4,1);
  {OBJ x219;OBJ x220;OBJ x223;
   if(EXPRD(x2,1)){
    COPY(__AIdeSet_2,2);
    RSOME(x2,r);FREE(FLD1(r,3),1);FLD1(r,3)=__AIdeSet_2;FREE(FLD1(r,4),1);FLD1(r,4)=__AIdeSet_2;
   }else{
    x219=FLD1(x2,1);x220=FLD1(x2,2);x223=FLD1(x2,5);COPY(x219,1);COPY(x220,1);CPPRD(x223,1);
    COPY(__AIdeSet_2,2);
    FRPRD(x2,1);PRD1(5,r);FLD1(r,1)=x219;FLD1(r,2)=x220;FLD1(r,3)=__AIdeSet_2;FLD1(r,4)=__AIdeSet_2;FLD1(r,5)=x223;}}}
 return r;}

extern OBJ _AOptimPath_37(OBJ x1,OBJ x2,OBJ x3) /* analyzeIndir */
{OBJ r;
 if(ISTGPRD(x3,1)){
  {OBJ x344=FLD1(x2,1);OBJ x345=FLD1(x2,2);OBJ x346=FLD1(x2,3);OBJ x347=FLD1(x2,4);OBJ x348=FLD1(x2,5);FLAG x_x2=EXPRD(x2,1);
   if(x_x2){
    COPY(x344,1);
   }else{
    COPY(x344,2);COPY(x345,1);COPY(x346,1);COPY(x347,1);CPPRD(x348,1);}
   CPPRD(x3,1);
   CPCLS(__AIde_14,1);
   {OBJ x349;
    x349=_ABSTree_61(__AIde_14,x3,x344);
    if(ISTGPRM(x349,1)){
     FRPRD(x1,1);
     FREE(x346,1);
     FREE(x347,1);
     COPY(x345,1);
     CPCLS(__AIde_14,1);
     {OBJ x350;
      x350=_AMap_16(__AIde_14,x345,x3);
      {OBJ x351=FLD1(x350,1);OBJ x352=FLD1(x350,2);
       if(EXPRD(x350,1)){
	DSPRDF(x350);
       }else{
	COPY(x351,1);COPY(x352,1);
	FRPRD(x350,1);}
       if(x_x2){
	RSOME(x2,r);FLD1(r,3)=x351;FLD1(r,4)=x352;
       }else{
	FRPRD(x2,1);PRD1(5,r);FLD1(r,1)=x344;FLD1(r,2)=x345;FLD1(r,3)=x351;FLD1(r,4)=x352;FLD1(r,5)=x348;}}}
    }else{
     {OBJ x354=FLD1(x1,1);OBJ x355=FLD1(x1,2);OBJ x356=FLD1(x1,3);OBJ x357=FLD1(x1,4);OBJ x358=FLD1(x1,5);OBJ x359=FLD1(x1,6);
      CPPRD(x354,1);CPPRD(x355,1);CPPRD(x356,2);COPY(x357,1);CPPRD(x358,1);COPY(x359,1);
      CPPRD(x1,1);
      CPPRD(x3,2);
      CPCLS(__AIde_14,2);
      {OBJ x360;OBJ x361;OBJ x362;OBJ x363;TUP2 x365;
       x360=_AEqnSys_11(x356,x3);
       x361=_ABSTree_57(__AIde_14,x3,x344);
       x362=_ABSTreeConv_7(__AIde_14,x360);
       if(x_x2){
	RSOME(x2,x363);FLD1(x363,1)=x361;
       }else{
	FRPRD(x2,1);PRD1(5,x363);FLD1(x363,1)=x361;FLD1(x363,2)=x345;FLD1(x363,3)=x346;FLD1(x363,4)=x347;FLD1(x363,5)=x348;}
       x365=_AOptimPath_39(x1,x363,x362);
       {OBJ x367;OBJ x368;OBJ x371=FLD1(x365.c1,5);FLAG x_x365_c1=EXPRD(x365.c1,1);
	if(x_x365_c1){
	}else{
	 x367=FLD1(x365.c1,1);x368=FLD1(x365.c1,2);COPY(x367,1);COPY(x368,1);CPPRD(x371,1);}
	CPPRD(x3,1);
	COPY(__AIdeSet_2,2);
	{OBJ x372;OBJ x375;OBJ x377;
	 x372=_AIdeOrd_5(x3,x371);
	 if(x_x365_c1){
	  RSOME(x365.c1,x375);FREE(FLD1(x375,3),1);FLD1(x375,3)=__AIdeSet_2;FREE(FLD1(x375,4),1);FLD1(x375,4)=__AIdeSet_2;FLD1(x375,5)=x372;
	 }else{
	  FRPRD(x365.c1,1);PRD1(5,x375);FLD1(x375,1)=x367;FLD1(x375,2)=x368;FLD1(x375,3)=__AIdeSet_2;FLD1(x375,4)=__AIdeSet_2;FLD1(x375,5)=x372;}
	 if(ISTGPRM(__AOptimPath_25,1)){
	  FRPRD(x354,1);
	  FRPRD(x355,1);
	  FRPRD(x356,1);
	  FREE(x357,1);
	  FRPRD(x358,1);
	  FREE(x359,1);
	  FREE(x365.c2,1);
	  x377=x1;
	 }else{
	  if(EXPRD(x1,1)){
	   DSPRD(x1);
	  }else{
	   DCPRD(x1,1);}
	  CPCLS(__AIde_14,1);
	  {OBJ x376;
	   x376=_ASetByBST_41(__AIde_14,x359,x365.c2);
	   PRD1(6,x377);FLD1(x377,1)=x354;FLD1(x377,2)=x355;FLD1(x377,3)=x356;FLD1(x377,4)=x357;FLD1(x377,5)=x358;FLD1(x377,6)=x376;}}
	 {OBJ x380=FLD1(x377,3);
	  CPPRD(x380,1);
	  CPPRD(x3,2);
	  {OBJ x384;OBJ x385;
	   x384=_AEqnSys_9(x380,x3);
	   x385=_AOptimPath_38(x377,x3,x384,x375);
	   {OBJ x386;OBJ x387=FLD1(x385,2);OBJ x388=FLD1(x385,3);OBJ x389=FLD1(x385,4);OBJ x390;
	    if(EXPRD(x385,1)){
	     COPY(x388,1);COPY(x389,1);
	     CPCLS(__AIde_14,1);
	     {OBJ x391;
	      PRD1(2,x391);FLD1(x391,1)=x388;FLD1(x391,2)=x389;
	      RSOME(x385,r);
	      FLD1(r,2)=_AMap_31(__AIde_14,x3,x391,x387);}
	    }else{
	     x386=FLD1(x385,1);x390=FLD1(x385,5);COPY(x386,1);COPY(x387,1);COPY(x388,2);COPY(x389,2);CPPRD(x390,1);
	     CPCLS(__AIde_14,1);
	     {OBJ x391;
	      PRD1(2,x391);FLD1(x391,1)=x388;FLD1(x391,2)=x389;
	      FRPRD(x385,1);PRD1(5,r);FLD1(r,1)=x386;FLD1(r,3)=x388;FLD1(r,4)=x389;FLD1(r,5)=x390;
	      FLD1(r,2)=_AMap_31(__AIde_14,x3,x391,x387);}}}}}}}}}}}}
 }else{
  HLT("OptimPath at <123,5-16> : missing else in analyzeIndir\'OptimPath:inh**thr**ide->thr");}
 return r;}

extern OBJ _AOptimPath_38(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* analyzeRhs */
{OBJ r;
 if(ISTGPRD(x3,3)){
  {OBJ x677=FLD(x3,2);OBJ x678=FLD(x3,3);
   if(EXPRD(x3,1)){
    FREE(FLD(x3,1),1);DSPRDF(x3);
   }else{
    CPPRD(x677,1);COPY(x678,1);
    FRPRD(x3,1);}
   CPPRD(x1,1);
   CPPRD(x2,1);
   CPCLS(__AOptimPath_38,1);
   {OBJ x679;OBJ x680;
    x679=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AOptimPath_38,2))(__AOptimPath_38,x1,x2);
    x680=_AOptimPath_38(x1,x2,x677,x4);
    r=_ASeqReduce_3(x679,x680,x678);}}
 }else{
  if(ISTGPRD(x3,4)){
   {OBJ x682=FLD(x3,2);OBJ x683=FLD(x3,3);
    if(EXPRD(x3,1)){
     FREE(FLD(x3,1),1);DSPRDF(x3);
    }else{
     COPY(x682,1);CPPRD(x683,1);
     FRPRD(x3,1);}
    {OBJ x684=FLD1(x1,1);OBJ x685=FLD1(x1,2);OBJ x686=FLD1(x1,3);OBJ x687=FLD1(x1,4);OBJ x688=FLD1(x1,5);OBJ x689=FLD1(x1,6);
     CPPRD(x684,2);CPPRD(x685,1);CPPRD(x686,1);COPY(x687,1);CPPRD(x688,1);COPY(x689,1);
     CPCLS(__AOptimPath_57,1);
     COPY(__AIdeSet_2,1);
     {OBJ x690;OBJ x691;OBJ x692;OBJ x693;OBJ x694;
      x690=_APreparedOptions_14(x684);
      x691=_ASeqReduce_3(__AOptimPath_57,__AIdeSet_2,x682);
      if(ISTGPRM(x690,1)){
       x692=x691;
       FREE(x687,1);
       COPY(x689,1);
       COPY(x692,1);
      }else{
       COPY(x689,1);
       COPY(x691,1);
       CPCLS(__AIde_14,1);
       x692=_ASetByBST_41(__AIde_14,x687,x691);}
      COPY(x692,1);
      PRD1(6,x693);FLD1(x693,1)=x684;FLD1(x693,2)=x685;FLD1(x693,3)=x686;FLD1(x693,4)=x692;FLD1(x693,5)=x688;FLD1(x693,6)=x689;
      x694=_AOptimPath_36(x693,x4,x2,x683);
      {OBJ x695=FLD1(x694,1);OBJ x696=FLD1(x694,2);OBJ x697=FLD1(x694,3);OBJ x698=FLD1(x694,4);OBJ x699=FLD1(x694,5);
       COPY(x695,1);COPY(x696,1);COPY(x697,2);COPY(x698,1);CPPRD(x699,1);
       CPCLS(__AIde_14,2);
       {OBJ x700;OBJ x701;OBJ x703;
	x700=_ASetByBST_43(__AIde_14,x698,x691);
	x701=_ASetByBST_44(__AIde_14,x697,x689);
	if(ISTGPRM(x690,1)){
	 CPCLS(__AOptimPath_42,1);
	 CPCLS(__AIde_14,2);
	 {OBJ x702;
	  x702=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(__AOptimPath_42,3))(__AOptimPath_42,x1,x694,x692);
	  x703=_ASetByBSTFilter_3(__AIde_14,x702,x697);}
	}else{
	 if(EXPRD(x1,1)){
	  DSPRD(x1);
	 }else{
	  DCPRD(x1,1);}
	 FREE(x692,1);
	 if(EXPRD(x694,1)){
	  DSPRD(x694);
	 }else{
	  DCPRD(x694,1);}
	 FREE(x697,1);
	 CPCLS(__AIde_14,1);
	 COPY(__AIdeSet_2,1);
	 x703=__AIdeSet_2;}
	PRD1(5,r);FLD1(r,1)=x695;FLD1(r,2)=x696;FLD1(r,4)=x700;FLD1(r,5)=x699;
	FLD1(r,3)=_ASetByBST_41(__AIde_14,x703,x701);}}}}}
  }else{
   if(ISTGPRD(x3,6)){
    {OBJ x707=FLD(x3,2);OBJ x708=FLD(x3,3);OBJ x709=FLD(x3,4);
     if(EXPRD(x3,1)){
      FREE(FLD(x3,1),1);DSPRDF(x3);
     }else{
      CPPRD(x707,1);COPY(x708,1);CPPRD(x709,1);
      FRPRD(x3,1);}
     CPPRD(x1,2);
     CPPRD(x2,1);
     {OBJ x710;TUP4 x712;OBJ x717;OBJ x720;OBJ x721;
      x710=_AOptimPath_38(x1,x2,x707,x4);
      CPPRD(x710,1);
      x712=_AOptimPath_40(x1,x710,x2,x708,x709);
      FREE(x712.c4,1);
      if(ISPRM(x712.c2)){
       x717=__ABUILTIN_3;
      }else{
       x717=__ABUILTIN_5;}
      if(ISTGPRM(x717,1)){
       {OBJ x719;
	if(ISPRM(x712.c2)){
	 HLT("Option at <unknown> : undefined selection cont\'Option:option->data");
	}else{
	 {OBJ x718=FLD1(x712.c2,1);
	  if(EXPRD(x712.c2,1)){
	   x719=x718;
	   DSPRDF(x712.c2);
	  }else{
	   COPY(x718,1);
	   x719=x718;
	   FRPRD(x712.c2,1);}
	  CPPRD(x712.c1,1);
	  CPCLS(__AIde_14,1);}}
	x720=_ASetByBST_41(__AIde_14,x719,x712.c3);}
      }else{
       x720=x712.c3;
       FREE(x712.c2,1);
       CPPRD(x712.c1,1);}
      x721=_AOptimPath_43(x1,x712.c1,x720);
      {OBJ x722=FLD1(x712.c1,1);OBJ x723=FLD1(x712.c1,2);OBJ x725=FLD1(x712.c1,4);OBJ x726=FLD1(x712.c1,5);FLAG x_x712_c1=EXPRD(x712.c1,1);
       if(x_x712_c1){
       }else{
	COPY(x722,1);COPY(x723,1);COPY(x725,1);CPPRD(x726,1);}
       {OBJ x729=FLD1(x710,3);
	if(EXPRD(x710,1)){
	 FLD1(x710,3)=NIL;DSPRD(x710);
	}else{
	 COPY(x729,1);
	 FRPRD(x710,1);}
	CPCLS(__AIde_14,1);
	{
	 if(x_x712_c1){
	  RSOME(x712.c1,r);FREE(FLD1(r,3),1);
	 }else{
	  FRPRD(x712.c1,1);PRD1(5,r);FLD1(r,1)=x722;FLD1(r,2)=x723;FLD1(r,4)=x725;FLD1(r,5)=x726;}
	 FLD1(r,3)=_ASetByBST_41(__AIde_14,x729,x721);}}}}}
   }else{
    if(ISTGPRD(x3,2)){
     {OBJ x734=FLD(x3,2);
      if(EXPRD(x3,1)){
       FREE(FLD(x3,1),1);DSPRDF(x3);
      }else{
       CPPRD(x734,1);
       FRPRD(x3,1);}
      if(ISTGPRD(x734,1)){
       {OBJ x738=FLD1(x1,3);
	CPPRD(x738,1);
	{OBJ x742=FLD1(x4,1);OBJ x743=FLD1(x4,2);OBJ x744=FLD1(x4,3);OBJ x745=FLD1(x4,4);OBJ x746=FLD1(x4,5);
	 COPY(x742,1);COPY(x743,1);COPY(x744,1);COPY(x745,1);CPPRD(x746,1);
	 CPPRD(x734,1);
	 {OBJ x747;
	  x747=_AEqnSys_8(x738,x734);
	  if(ISTGPRM(x747,1)){
	   FREE(x742,1);
	   FREE(x743,1);
	   FRPRD(x746,1);
	   CPPRD(x734,1);
	   {OBJ x748;
	    x748=_AOptimPath_37(x1,x4,x734);
	    {OBJ x749;OBJ x750;OBJ x751=FLD1(x748,3);OBJ x752=FLD1(x748,4);OBJ x753=FLD1(x748,5);
	     if(EXPRD(x748,1)){
	      CPPRD(x734,1);
	      CPCLS(__AIde_14,3);
	      {OBJ x754;OBJ x755;OBJ x756;
	       x754=_AIdeOrd_4(x2,x734,x753);
	       x755=_ASetByBST_41(__AIde_14,x745,x752);
	       x756=_ASetByBST_41(__AIde_14,x744,x751);
	       RSOME(x748,r);FLD1(r,4)=x755;FLD1(r,5)=x754;
	       FLD1(r,3)=_ABSTree_57(__AIde_14,x734,x756);}
	     }else{
	      x749=FLD1(x748,1);x750=FLD1(x748,2);COPY(x749,1);COPY(x750,1);COPY(x751,1);COPY(x752,1);CPPRD(x753,1);
	      CPPRD(x734,1);
	      CPCLS(__AIde_14,3);
	      {OBJ x754;OBJ x755;OBJ x756;
	       x754=_AIdeOrd_4(x2,x734,x753);
	       x755=_ASetByBST_41(__AIde_14,x745,x752);
	       x756=_ASetByBST_41(__AIde_14,x744,x751);
	       FRPRD(x748,1);PRD1(5,r);FLD1(r,1)=x749;FLD1(r,2)=x750;FLD1(r,4)=x755;FLD1(r,5)=x754;
	       FLD1(r,3)=_ABSTree_57(__AIde_14,x734,x756);}}}}
	  }else{
	   if(EXPRD(x1,1)){
	    DSPRD(x1);
	   }else{
	    DCPRD(x1,1);}
	   FRPRD(x2,1);
	   if(EXPRD(x4,1)){
	    DSPRD(x4);
	   }else{
	    DCPRD(x4,1);}
	   CPCLS(__AIde_14,1);
	   {
	    PRD1(5,r);FLD1(r,1)=x742;FLD1(r,2)=x743;FLD1(r,3)=x744;FLD1(r,5)=x746;
	    FLD1(r,4)=_ABSTree_57(__AIde_14,x734,x745);}}}}}
      }else{
       if(EXPRD(x734,1)){
	DSPRDF(x734);
       }else{
	DCPRD(x734,1);}
       FRPRD(x1,1);
       FRPRD(x2,1);
       r=x4;}}
    }else{
     FRPRD(x1,1);
     FRPRD(x2,1);
     FRPRD(x3,1);
     r=x4;}}}}
 return r;}

extern TUP2 _AOptimPath_39(OBJ x1,OBJ x2,OBJ x3) /* analyzeForced */
{TUP2 r;
 if(ISPRM(x3)){
  FRPRD(x1,1);
  COPY(__AIdeSet_2,1);
  r.c1=x2;r.c2=__AIdeSet_2;
 }else{
  {OBJ x65=FLD1(x3,1);OBJ x66=FLD1(x3,2);
   if(EXPRD(x3,1)){
    DSPRDF(x3);
   }else{
    CPPRD(x65,1);COPY(x66,1);
    FRPRD(x3,1);}
   {OBJ x69=FLD1(x1,3);
    CPPRD(x69,1);
    CPPRD(x1,1);
    CPPRD(x65,1);
    {OBJ x75;TUP2 x76;
     x75=_AEqnSys_8(x69,x65);
     x76=_AOptimPath_39(x1,x2,x66);
     if(ISTGPRM(x75,1)){
      CPPRD(x65,1);
      {OBJ x78;
       x78=_AOptimPath_37(x1,x76.c1,x65);
       {OBJ x81=FLD1(x78,3);
	COPY(x81,1);
	r.c1=x78;
	CPCLS(__AIde_14,2);
	{OBJ x84;
	 x84=_ABSTree_57(__AIde_14,x65,x81);
	 r.c2=_ASetByBST_41(__AIde_14,x76.c2,x84);}}}
     }else{
      r.c1=x76.c1;r.c2=x76.c2;
      if(EXPRD(x1,1)){
       DSPRD(x1);
      }else{
       DCPRD(x1,1);}
      FRPRD(x65,1);}}}}}
 return r;}
extern OBJ _AOptimPath_39_c(OBJ x1,OBJ x2,OBJ x3) /* analyzeForced */
{OBJ r;
 {TUP2 t=_AOptimPath_39(x1,x2,x3);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern TUP4 _AOptimPath_40(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* analyzeCase */
{TUP4 r;
 if(ISPRM(x4)){
  {OBJ x331=FLD1(x1,1);OBJ x334=FLD1(x1,4);OBJ x336=FLD1(x1,6);
   CPPRD(x331,2);COPY(x334,1);COPY(x336,1);
   CPPRD(x5,1);
   {OBJ x337;
    x337=_AAcFun_9(x331,x5);
    if(ISTGPRM(x337,1)){
     if(EXPRD(x1,1)){
      DSPRD(x1);
     }else{
      DCPRD(x1,1);}
     FRPRD(x3,1);
     FRPRD(x5,1);
     FRPRD(x331,1);
     FREE(x334,1);
     FREE(x336,1);
     COPY(__AIdeSet_2,2);
     r.c1=x2;r.c2=__AOption_5;r.c3=__AIdeSet_2;r.c4=__AIdeSet_2;
    }else{
     CPPRD(x1,1);
     CPPRD(x2,1);
     {OBJ x338;
      x338=_AOptimPath_36(x1,x2,x3,x5);
      {OBJ x342=FLD1(x2,4);FLAG x_x2=EXPRD(x2,1);
       if(x_x2){
       }else{
	COPY(x342,1);}
       {OBJ x344;
	x344=_APreparedOptions_14(x331);
	{OBJ x345=FLD1(x338,1);OBJ x346=FLD1(x338,2);OBJ x347=FLD1(x338,3);OBJ x348=FLD1(x338,4);OBJ x349=FLD1(x338,5);
	 COPY(x345,1);COPY(x346,1);COPY(x347,3);COPY(x348,1);CPPRD(x349,1);
	 CPCLS(__AIde_14,2);
	 {OBJ x350;OBJ x351;OBJ x352;OBJ x356;OBJ x353;
	  PRD1(1,x350);FLD1(x350,1)=x347;
	  x351=_ASetByBST_41(__AIde_14,x342,x348);
	  x352=_ASetByBST_44(__AIde_14,x347,x336);
	  if(ISTGPRM(x344,1)){
	   r.c4=x347;r.c2=x350;
	   COPY(r.c4,2);
	   CPCLS(__AOptimPath_42,1);
	   CPCLS(__AIde_14,2);
	   {OBJ x354;OBJ x355;
	    x354=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(__AOptimPath_42,3))(__AOptimPath_42,x1,x338,x334);
	    x355=_ASetByBSTFilter_3(__AIde_14,x354,r.c4);
	    r.c3=_ASetByBST_41(__AIde_14,x352,x355);}
	  }else{
	   r.c4=x347;r.c2=x350;r.c3=x352;
	   if(EXPRD(x1,1)){
	    DSPRD(x1);
	   }else{
	    DCPRD(x1,1);}
	   FREE(x334,1);
	   if(EXPRD(x338,1)){
	    DSPRD(x338);
	   }else{
	    DCPRD(x338,1);}
	   COPY(r.c4,1);}
	  if(x_x2){
	   RSOME(x2,r.c1);FREE(FLD1(r.c1,1),1);FLD1(r.c1,1)=x345;FREE(FLD1(r.c1,2),1);FLD1(r.c1,2)=x346;FREE(FLD1(r.c1,3),1);FLD1(r.c1,3)=r.c4;FLD1(r.c1,4)=x351;FRPRD(FLD1(r.c1,5),1);FLD1(r.c1,5)=x349;
	  }else{
	   FRPRD(x2,1);PRD1(5,r.c1);FLD1(r.c1,1)=x345;FLD1(r.c1,2)=x346;FLD1(r.c1,3)=r.c4;FLD1(r.c1,4)=x351;FLD1(r.c1,5)=x349;}}}}}}}}}
 }else{
  {OBJ x357=FLD1(x4,1);OBJ x358=FLD1(x4,2);
   if(EXPRD(x4,1)){
    DSPRDF(x4);
   }else{
    CPPRD(x357,1);COPY(x358,1);
    FRPRD(x4,1);}
   {OBJ x359=FLD1(x1,1);OBJ x360=FLD1(x1,2);OBJ x361=FLD1(x1,3);OBJ x362=FLD1(x1,4);OBJ x363=FLD1(x1,5);OBJ x364=FLD1(x1,6);
    CPPRD(x359,1);CPPRD(x360,1);CPPRD(x361,1);COPY(x362,1);CPPRD(x363,1);COPY(x364,1);
    {OBJ x368=FLD1(x357,2);OBJ x369=FLD1(x357,3);
     if(EXPRD(x357,1)){
      CPPRD(x369,1);
      FRPRD(FLD1(x357,1),1);DSPRDF(x357);
     }else{
      COPY(x368,1);CPPRD(x369,2);
      FRPRD(x357,1);}
     CPPRD(x1,1);
     CPPRD(x3,1);
     CPPRD(x359,1);
     {OBJ x370;TUP4 x371;
      x370=_AAcFun_9(x359,x369);
      x371=_AOptimPath_40(x1,x2,x3,x358,x5);
      if(ISTGPRM(x370,1)){
       r.c1=x371.c1;r.c2=x371.c2;r.c3=x371.c3;r.c4=x371.c4;
       if(EXPRD(x1,1)){
	DSPRD(x1);
       }else{
	DCPRD(x1,1);}
       FRPRD(x3,1);
       FRPRD(x359,1);
       FRPRD(x360,1);
       FRPRD(x361,1);
       FREE(x362,1);
       FRPRD(x363,1);
       FREE(x364,1);
       FREE(x368,1);
       FRPRD(x369,1);
      }else{
       {OBJ x378=FLD1(x371.c1,4);
	COPY(x378,1);
	CPPRD(x1,1);
	CPPRD(x359,1);
	COPY(x364,1);
	CPCLS(__AOptimPath_42,1);
	CPCLS(__AOptimPath_56,1);
	CPCLS(__AIde_14,1);
	COPY(__AIdeSet_2,1);
	{OBJ x380;OBJ x381;OBJ x382;OBJ x383;OBJ x384;OBJ x385;
	 x380=_APreparedOptions_14(x359);
	 x381=_ASeqReduce_3(__AOptimPath_56,__AIdeSet_2,x368);
	 COPY(x381,2);
	 x382=_ASetByBST_41(__AIde_14,x362,x381);
	 COPY(x382,1);
	 PRD1(6,x383);FLD1(x383,1)=x359;FLD1(x383,2)=x360;FLD1(x383,3)=x361;FLD1(x383,4)=x382;FLD1(x383,5)=x363;FLD1(x383,6)=x364;
	 x384=_AOptimPath_36(x383,x371.c1,x3,x369);
	 CPPRD(x384,1);
	 x385=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(__AOptimPath_42,3))(__AOptimPath_42,x1,x384,x381);
	 {OBJ x386=FLD1(x384,1);OBJ x387=FLD1(x384,2);OBJ x388=FLD1(x384,3);OBJ x389=FLD1(x384,4);OBJ x390=FLD1(x384,5);
	  COPY(x386,1);COPY(x387,1);COPY(x388,3);COPY(x389,1);CPPRD(x390,1);
	  CPCLS(__AIde_14,3);
	  {OBJ x391;OBJ x392;OBJ x393;OBJ x397;OBJ x394;OBJ x395;OBJ x398;OBJ x399;OBJ x403;OBJ x400;
	   x391=_ASetByBST_43(__AIde_14,x389,x381);
	   x392=_ASetByBST_44(__AIde_14,x388,x364);
	   x393=_ASetByBST_41(__AIde_14,x371.c4,x388);
	   if(ISPRM(x371.c2)){
	    x397=x388;
	    COPY(x397,1);
	    CPCLS(__AIde_14,3);
	   }else{
	    {OBJ x396=FLD1(x371.c2,1);
	     if(EXPRD(x371.c2,1)){
	      DSPRDF(x371.c2);
	     }else{
	      COPY(x396,1);
	      FRPRD(x371.c2,1);}
	     COPY(x388,1);
	     CPCLS(__AIde_14,4);
	     x397=_ASetByBST_44(__AIde_14,x388,x396);}}
	   x394=_ASetByBST_41(__AIde_14,x378,x391);
	   x395=_ASetByBST_41(__AIde_14,x392,x371.c3);
	   x398=_ASetByBSTFilter_3(__AIde_14,x385,x397);
	   PRD1(1,x399);FLD1(x399,1)=x398;
	   if(ISTGPRM(x380,1)){
	    r.c4=x393;r.c2=x399;
	    COPY(x388,1);
	    CPCLS(__AOptimPath_42,1);
	    CPCLS(__AIde_14,2);
	    {OBJ x401;OBJ x402;
	     x401=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(__AOptimPath_42,3))(__AOptimPath_42,x1,x384,x382);
	     x402=_ASetByBSTFilter_3(__AIde_14,x401,x388);
	     r.c3=_ASetByBST_41(__AIde_14,x395,x402);}
	   }else{
	    r.c4=x393;r.c3=x395;r.c2=x399;
	    if(EXPRD(x1,1)){
	     DSPRD(x1);
	    }else{
	     DCPRD(x1,1);}
	    FREE(x382,1);
	    if(EXPRD(x384,1)){
	     DSPRD(x384);
	    }else{
	     DCPRD(x384,1);}}
	   PRD1(5,r.c1);FLD1(r.c1,1)=x386;FLD1(r.c1,2)=x387;FLD1(r.c1,3)=x388;FLD1(r.c1,4)=x394;FLD1(r.c1,5)=x390;}}}}}}}}}}
 return r;}
extern OBJ _AOptimPath_40_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* analyzeCase */
{OBJ r;
 {TUP4 t=_AOptimPath_40(x1,x2,x3,x4,x5);
  PRD1(4,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;
  FLD1(r,3)=t.c3;
  FLD1(r,4)=t.c4;}
 return r;}

extern OBJ _AOptimPath_41(OBJ x1,OBJ x2) /* * */
{OBJ r;
 if(ISPRM(x2)){
  r=x1;
 }else{
  {OBJ x9=FLD1(x2,1);
   if(EXPRD(x2,1)){
    DSPRDF(x2);
   }else{
    COPY(x9,1);
    FRPRD(x2,1);}
   CPCLS(__AIde_14,1);
   r=_ASetByBST_44(__AIde_14,x1,x9);}}
 return r;}

extern OBJ _AOptimPath_42(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* liftCand? */
{OBJ r;
 FRPRD(x1,1);
 {OBJ x6=FLD1(x2,2);
  if(EXPRD(x2,1)){
   FLD1(x2,2)=NIL;DSPRD(x2);
  }else{
   COPY(x6,1);
   FRPRD(x2,1);}
  CPCLS(__AIde_14,1);
  {OBJ x10;OBJ x11;
   x10=x6;
   x11=_AMap_16(__AIde_14,x10,x4);
   {OBJ x13=FLD1(x11,2);
    if(EXPRD(x11,1)){
     FREE(FLD1(x11,1),1);DSPRDF(x11);
    }else{
     COPY(x13,1);
     FRPRD(x11,1);}
    CPCLS(__AIde_14,1);
    {OBJ x14;OBJ x15;
     x14=x13;
     x15=_ASetByBST_44(__AIde_14,x3,x14);
     if(ISPRM(x15)){
      r=__ABUILTIN_5;
     }else{
      if(EXPRD(x15,1)){
       DSPRD(x15);
      }else{
       DCPRD(x15,1);}
      r=__ABUILTIN_3;}}}}}
 return r;}

extern OBJ _AOptimPath_43(OBJ x1,OBJ x2,OBJ x3) /* forceNoTargetLift */
{OBJ r;
 CPCLS(__AOptimPath_44,1);
 CPCLS(__AIde_14,1);
 COPY(x3,1);
 {OBJ x4;OBJ x5;
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimPath_44,1))(__AOptimPath_44,x1);
  x5=_ASetByBSTFilter_3(__AIde_14,x4,x3);
  if(ISPRM(x5)){
   FRPRD(x2,1);
   r=x3;
  }else{
   CPCLS(__AOptimPath_55,1);
   CPCLS(__AIde_14,2);
   COPY(__AIdeSet_2,1);
   {OBJ x16;OBJ x17;OBJ x18;
    x16=_ABSTreeConv_7(__AIde_14,x5);
    x17=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimPath_55,1))(__AOptimPath_55,x2);
    x18=_ASeqReduce_3(x17,__AIdeSet_2,x16);
    r=_ASetByBST_43(__AIde_14,x3,x18);}}}
 return r;}

extern OBJ _AOptimPath_44(OBJ x1,OBJ x2) /* targetApply? */
{OBJ r;
 {OBJ x41=FLD1(x1,3);OBJ x43=FLD1(x1,5);
  if(EXPRD(x1,1)){
   FLD1(x1,3)=NIL;FLD1(x1,5)=NIL;DSPRD(x1);
  }else{
   CPPRD(x41,1);CPPRD(x43,1);
   FRPRD(x1,1);}
  {OBJ x45;
   x45=_AEqnSys_9(x41,x2);
   if(ISTGPRD(x45,3)){
    {OBJ x47=FLD(x45,2);
     if(EXPRD(x45,1)){
      FLD(x45,2)=NIL;DSPRD(x45);
     }else{
      CPPRD(x47,1);
      FRPRD(x45,1);}
     if(ISTGPRD(x47,2)){
      {OBJ x50=FLD(x47,2);
       if(EXPRD(x47,1)){
	FREE(FLD(x47,1),1);DSPRDF(x47);
       }else{
	CPPRD(x50,1);
	FRPRD(x47,1);}
       r=_AIde_13(x50,x43);}
     }else{
      HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}}
   }else{
    FRPRD(x43,1);
    FRPRD(x45,1);
    r=__ABUILTIN_3;}}}
 return r;}

extern OBJ _AOptimPath_45(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* generatePath */
{OBJ r;
 {OBJ x5;
  x5=_AIdeOrd_6(x3);
  r=_AOptimPath_46(x1,x2,x5,x4);}
 return r;}

extern OBJ _AOptimPath_46(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* generatePath,1 */
{OBJ r;
 if(ISTGPRD(x4,2)){
  {OBJ x52=FLD(x4,2);
   CPPRD(x52,1);
   if(ISTGPRD(x52,1)){
    CPPRD(x1,1);
    CPPRD(x52,1);
    {OBJ x54;
     x54=_AEqnSys_8(x1,x52);
     if(ISTGPRM(x54,1)){
      COPY(x2,1);
      CPPRD(x52,1);
      CPCLS(__AIde_14,1);
      {OBJ x55;
       x55=_AMap_16(__AIde_14,x2,x52);
       {OBJ x56=FLD1(x55,1);
	if(EXPRD(x55,1)){
	 FREE(FLD1(x55,2),1);DSPRDF(x55);
	}else{
	 COPY(x56,1);
	 FRPRD(x55,1);}
	CPPRD(x1,1);
	COPY(x2,1);
	CPPRD(x52,1);
	CPCLS(__AIde_14,1);
	{OBJ x58;TUP2 x60;OBJ x62;
	 x58=_ABSTree_57(__AIde_14,x52,x56);
	 COPY(x58,1);
	 x60=_AOptimPath_49(x1,x2,x3,x58);
	 if(ISTGPRM(__AOptimPath_50,1)){
	  COPY(x60.c1,1);
	  x62=_AOptimPath_51(x52,x58,x60.c1,x60.c2);
	 }else{
	  x62=x60.c2;
	  if(EXPRD(x52,1)){
	   DSPRDF(x52);
	  }else{
	   DCPRD(x52,1);}
	  FREE(x58,1);}
	 r=_AOptimPath_47(x1,x2,x62,x60.c1,x4);}}}
     }else{
      FRPRD(x1,1);
      FREE(x2,1);
      FREE(x3,1);
      if(EXPRD(x52,1)){
       DSPRDF(x52);
      }else{
       DCPRD(x52,1);}
      r=x4;}}
   }else{
    if(EXPRD(x52,1)){
     DSPRDF(x52);
    }else{
     DCPRD(x52,1);}
    FRPRD(x1,1);
    FREE(x2,1);
    FREE(x3,1);
    r=x4;}}
 }else{
  FRPRD(x1,1);
  FREE(x2,1);
  FREE(x3,1);
  r=x4;}
 return r;}

extern OBJ _AOptimPath_47(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* generateSequ */
{OBJ r;
 if(ISPRM(x4)){
  FRPRD(x1,1);
  FREE(x2,1);
  FREE(x3,1);
  r=x5;
 }else{
  {OBJ x68=FLD1(x4,1);OBJ x69=FLD1(x4,2);
   if(EXPRD(x4,1)){
    DSPRDF(x4);
   }else{
    COPY(x68,1);COPY(x69,1);
    FRPRD(x4,1);}
   if(ISPRM(x69)){
    if(ISTGPRD(x5,2)){
     {OBJ x72=FLD(x5,2);
      CPPRD(x72,2);
      CPPRD(x1,1);
      COPY(x2,1);
      COPY(x3,1);
      COPY(x68,1);
      CPCLS(__AOptimPath_78,1);
      CPCLS(__AIde_14,1);
      {OBJ x73;OBJ x74;OBJ x79;OBJ x80;OBJ x81;OBJ x82;
       x73=_ABSTree_61(__AIde_14,x72,x68);
       x74=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(__AOptimPath_78,3))(__AOptimPath_78,x1,x2,x3);
       if(ISTGPRM(x73,1)){
	if(EXPRD(x5,1)){
	 DSPRD(x5);
	}else{
	 DCPRD(x5,1);}
	CPPRD(x1,1);
	CPPRD(x72,1);
	CPCLS(__AIde_14,2);
	{OBJ x76;
	 x79=_ABSTree_58(__AIde_14,x72,x68);
	 x76=_AEqnSys_9(x1,x72);
	 x80=_AOptimPath_48(x1,x2,x3,x76);}
       }else{
	x79=x68;
	FRPRD(x1,1);
	FREE(x2,1);
	FREE(x3,1);
	FRPRD(x72,1);
	CPCLS(__AIde_14,1);
	x80=x5;}
       x81=_ABSTreeConv_7(__AIde_14,x79);
       x82=_ASeqMap_3(x74,x81);
       if(ISPRM(x82)){
	r=x80;
       }else{
	PRD(3,5,r);FLD(r,1)=__AAn_2;FLD(r,2)=x82;FLD(r,3)=x80;}}}
    }else{
     HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}
   }else{
    CPPRD(x1,1);
    COPY(x2,1);
    COPY(x3,1);
    CPCLS(__AOptimPath_79,1);
    CPCLS(__AIde_14,1);
    {OBJ x88;OBJ x87;OBJ x89;
     x88=_ABSTreeConv_7(__AIde_14,x68);
     x87=_AOptimPath_47(x1,x2,x3,x69,x5);
     x89=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(__AOptimPath_79,3))(__AOptimPath_79,x1,x2,x3);
     PRD(3,5,r);FLD(r,1)=__AAn_2;FLD(r,3)=x87;
     FLD(r,2)=_ASeqMap_3(x89,x88);}}}}
 return r;}

extern OBJ _AOptimPath_48(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* generateRhs */
{OBJ r;
 if(ISTGPRD(x4,4)){
  {OBJ x66=FLD(x4,2);OBJ x67=FLD(x4,3);
   COPY(x66,1);CPPRD(x67,1);
   {OBJ x68;
    x68=_AAc_50(x4);
    PRD(3,4,r);FLD(r,1)=x68;FLD(r,2)=x66;
    FLD(r,3)=_AOptimPath_46(x1,x2,x3,x67);}}
 }else{
  if(ISTGPRD(x4,6)){
   {OBJ x71=FLD(x4,2);OBJ x72=FLD(x4,3);OBJ x73=FLD(x4,4);
    CPPRD(x71,1);COPY(x72,1);CPPRD(x73,1);
    CPPRD(x1,1);
    COPY(x2,1);
    COPY(x3,1);
    CPCLS(__AOptimPath_77,1);
    {OBJ x74;OBJ x75;OBJ x76;
     x74=_AAc_50(x4);
     x75=_AOptimPath_46(x1,x2,x3,x73);
     x76=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(__AOptimPath_77,3))(__AOptimPath_77,x1,x2,x3);
     PRD(4,6,r);FLD(r,1)=x74;FLD(r,2)=x71;FLD(r,4)=x75;
     FLD(r,3)=_ASeqMap_3(x76,x72);}}
  }else{
   FRPRD(x1,1);
   FREE(x2,1);
   FREE(x3,1);
   r=x4;}}
 return r;}

extern TUP2 _AOptimPath_49(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* splitTodo */
{TUP2 r;
 if(ISPRM(x3)){
  FRPRD(x1,1);
  FREE(x2,1);
  FREE(x4,1);
  r.c1=__ASeq_6;r.c2=__ASeq_6;
 }else{
  {OBJ x46=FLD1(x3,1);OBJ x47=FLD1(x3,2);FLAG x_x3=EXPRD(x3,1);
   if(x_x3){
   }else{
    COPY(x46,1);COPY(x47,1);}
   {TUP3 x50;OBJ x57;OBJ x53;OBJ x58;OBJ x59;OBJ x64;OBJ x68;OBJ x69;OBJ x70;OBJ x71;OBJ x72;
    x50=_AIdeSet_17(x46,x4);
    if(ISPRM(x50.c3)){
     CPPRD(x1,1);
     COPY(x2,1);
     COPY(x50.c1,1);
     COPY(x50.c2,1);
     CPCLS(__AIde_14,2);
     x57=__ABUILTIN_5;
    }else{
     CPPRD(x1,1);
     COPY(x2,1);
     COPY(x50.c1,1);
     COPY(x50.c2,1);
     CPCLS(__AIde_14,2);
     x57=__ABUILTIN_3;}
    x53=_AOptimPath_52(x1,x2,x50.c2,x50.c1);
    COPY(x53,1);
    x58=_ASetByBST_43(__AIde_14,x50.c2,x53);
    x59=_ASetByBST_41(__AIde_14,x50.c1,x53);
    if(ISPRM(x59)){
     x64=__ABUILTIN_5;
    }else{
     x64=__ABUILTIN_3;}
    if(ISPRM(x58)){
     x68=__ABUILTIN_5;
    }else{
     x68=__ABUILTIN_3;}
    if(ISTGPRM(x57,1)){
     x70=x47;
     FRPRD(x1,1);
     FREE(x2,1);
     FREE(x50.c3,1);
     x69=__ASeq_6;
    }else{
     {TUP2 t=_AOptimPath_49(x1,x2,x47,x50.c3);
      x69=t.c1;
      x70=t.c2;}}
    if(ISTGPRM(x68,1)){
     x71=x70;
     FREE(x58,1);
    }else{
     PRD1(2,x71);FLD1(x71,1)=x58;FLD1(x71,2)=x70;}
    if(ISTGPRM(x64,1)){
     if(x_x3){
      DSPRDF(x3);
     }else{
      FRPRD(x3,1);}
     r.c1=x69;r.c2=x71;
     FREE(x59,1);
    }else{
     r.c2=x71;
     if(x_x3){
      RSOME(x3,r.c1);FLD1(r.c1,1)=x59;FLD1(r.c1,2)=x69;
     }else{
      FRPRD(x3,1);PRD1(2,r.c1);FLD1(r.c1,1)=x59;FLD1(r.c1,2)=x69;}}}}}
 return r;}
extern OBJ _AOptimPath_49_c(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* splitTodo */
{OBJ r;
 {TUP2 t=_AOptimPath_49(x1,x2,x3,x4);
  PRD1(2,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;}
 return r;}

extern OBJ _AOptimPath_51(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* dumpGenPath */
{OBJ r;
 CPCLS(__AOptimPath_24,1);
 CPCLS(__AOptimPath_73,1);
 CPCLS(__AOptimPath_76,1);
 {OBJ x8;OBJ x9;OBJ x10;OBJ x11;
  x8=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimPath_73,1))(__AOptimPath_73,__ABUILTIN_20);
  CPCLS(x8,1);
  x9=_AFormatDebug_3(__ABUILTIN_5,__AOptimPath_76,x1,x4);
  x10=_AFormatDebug_3(__ABUILTIN_5,__AOptimPath_24,x2,x9);
  x11=_AFormatDebug_3(__ABUILTIN_5,x8,x3,x10);
  COPY(x11,1);
  r=_AFormatDebug_3(__ABUILTIN_5,x8,x11,x11);}
 return r;}

extern OBJ _AOptimPath_52(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* analyzeImpliedStrict */
{OBJ r;
 CPCLS(__AOptimPath_53,1);
 CPCLS(__AOptimPath_54,1);
 CPCLS(__AIde_14,2);
 COPY(__AIdeSet_2,1);
 COPY(__AIdeMap_3,1);
 CPPRD(x1,1);
 FREE(x2,1);
 {OBJ x5;OBJ x6;OBJ x7;OBJ x8;OBJ x9;
  x5=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimPath_53,1))(__AOptimPath_53,x1);
  x6=_ABSTreeConv_7(__AIde_14,x4);
  x7=_ABSTreeConv_7(__AIde_14,x3);
  x8=_ASeqReduce_3(x5,__AIdeMap_3,x6);
  x9=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__AOptimPath_54,2))(__AOptimPath_54,x1,x8);
  r=_ASeqReduce_3(x9,__AIdeSet_2,x7);}
 return r;}

extern OBJ _AOptimPath_53(OBJ x1,OBJ x2,OBJ x3) /* sampleDiscrimination */
{OBJ r;
 {OBJ x4;OBJ x9;OBJ x31;
  x4=_AEqnSys_9(x1,x2);
  if(ISTGPRD(x4,6)){
   x9=__ABUILTIN_5;
  }else{
   x9=__ABUILTIN_3;}
  if(ISTGPRM(x9,1)){
   if(ISTGPRD(x4,6)){
    {OBJ x29=FLD(x4,4);
     CPPRD(x29,1);
     if(ISTGPRD(x29,0)){
      if(EXPRD(x29,1)){
       FREE(FLD(x29,1),1);DSPRDF(x29);
      }else{
       DCPRD(x29,1);}
      x31=__ABUILTIN_5;
     }else{
      FRPRD(x29,1);
      x31=__ABUILTIN_3;}}
   }else{
    HLT("Ac at <unknown> : undefined selection default\'Ac:exp->exp");}
  }else{
   x31=__ABUILTIN_3;}
  if(ISTGPRM(x31,1)){
   if(ISTGPRD(x4,6)){
    {OBJ x60=FLD(x4,2);OBJ x61=FLD(x4,3);
     if(EXPRD(x4,1)){
      FLD(x4,2)=NIL;FLD(x4,3)=NIL;DSPRD(x4);
     }else{
      CPPRD(x60,1);COPY(x61,1);
      FRPRD(x4,1);}
     if(ISTGPRD(x60,2)){
      {OBJ x64=FLD(x60,2);
       if(EXPRD(x60,1)){
	CPPRD(x64,1);
	FREE(FLD(x60,1),1);DSPRDF(x60);
       }else{
	CPPRD(x64,2);
	FRPRD(x60,1);}
       COPY(x3,1);
       CPCLS(__AOptimPath_58,1);
       CPCLS(__AIde_14,1);
       COPY(__AIdeSet_2,1);
       {OBJ x65;OBJ x66;
	x65=_ASeqReduce_3(__AOptimPath_58,__AIdeSet_2,x61);
	x66=_AMap_33(__AIde_14,x3,x64);
	if(ISPRM(x66)){
	 CPCLS(__AIde_14,1);
	 r=_AMap_31(__AIde_14,x64,x65,x3);
	}else{
	 {OBJ x67=FLD1(x66,1);
	  if(EXPRD(x66,1)){
	   DSPRDF(x66);
	  }else{
	   COPY(x67,1);
	   FRPRD(x66,1);}
	  CPCLS(__AIde_14,2);
	  {OBJ x68;
	   x68=_ASetByBST_44(__AIde_14,x67,x65);
	   r=_AMap_31(__AIde_14,x64,x68,x3);}}}}}
     }else{
      HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}}
   }else{
    HLT("Ac at <unknown> : undefined selection default\'Ac:exp->exp");}
  }else{
   FRPRD(x4,1);
   r=x3;}}
 return r;}

extern OBJ _AOptimPath_54(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* inclImpliedStrict */
{OBJ r;
 CPPRD(x3,1);
 {OBJ x5;
  x5=_AEqnSys_9(x1,x3);
  if(ISTGPRD(x5,6)){
   {OBJ x66=FLD(x5,2);OBJ x67=FLD(x5,3);OBJ x68=FLD(x5,4);
    if(EXPRD(x5,1)){
     FREE(FLD(x5,1),1);DSPRDF(x5);
    }else{
     CPPRD(x66,1);COPY(x67,1);CPPRD(x68,1);
     FRPRD(x5,1);}
    if(ISTGPRD(x66,2)){
     {OBJ x70=FLD(x66,2);
      if(EXPRD(x66,1)){
       FREE(FLD(x66,1),1);DSPRDF(x66);
      }else{
       CPPRD(x70,1);
       FRPRD(x66,1);}
      CPCLS(__AIde_14,1);
      {OBJ x71;OBJ x73;OBJ x77;
       x71=_AMap_33(__AIde_14,x2,x70);
       if(ISPRM(x71)){
	x73=__ABUILTIN_3;
       }else{
	x73=__ABUILTIN_5;}
       if(ISTGPRM(x73,1)){
	CPPRD(x68,1);
	COPY(__AIdeSet_2,1);
	{OBJ x74;OBJ x76;
	 x74=_AOptimPath_59(__AIdeSet_2,x68);
	 if(ISTGPRM(x74,1)){
	  x76=__ABUILTIN_5;
	 }else{
	  if(ISTGPRD(x68,0)){
	   x76=__ABUILTIN_5;
	  }else{
	   x76=__ABUILTIN_3;}}
	 if(ISTGPRM(x76,1)){
	  COPY(x67,1);
	  CPCLS(__AOptimPath_60,1);
	  x77=_ASeq_42(__AOptimPath_60,x67);
	 }else{
	  x77=__ABUILTIN_3;}}
       }else{
	x77=__ABUILTIN_3;}
       if(ISTGPRM(x77,1)){
	if(ISTGPRD(x68,0)){
	 if(EXPRD(x68,1)){
	  FREE(FLD(x68,1),1);DSPRDF(x68);
	 }else{
	  DCPRD(x68,1);}
	 CPCLS(__AOptimPath_61,1);
	 COPY(__AIdeSet_2,1);
	 {OBJ x79;OBJ x81;OBJ x82;
	  x79=_ASeqReduce_3(__AOptimPath_61,__AIdeSet_2,x67);
	  if(ISPRM(x71)){
	   HLT("Option at <unknown> : undefined selection cont\'Option:option->data");
	  }else{
	   {OBJ x80=FLD1(x71,1);
	    if(EXPRD(x71,1)){
	     x81=x80;
	     DSPRDF(x71);
	    }else{
	     COPY(x80,1);
	     x81=x80;
	     FRPRD(x71,1);}
	    CPCLS(__AIde_14,1);}}
	  x82=_ASetByBST_48(__AIde_14,x81,x79);
	  if(ISTGPRM(x82,1)){
	   CPCLS(__AIde_14,1);
	   r=_ABSTree_57(__AIde_14,x3,x4);
	  }else{
	   FRPRD(x3,1);
	   r=x4;}}
	}else{
	 FRPRD(x3,1);
	 FREE(x67,1);
	 FRPRD(x68,1);
	 FREE(x71,1);
	 r=x4;}
       }else{
	FRPRD(x3,1);
	FREE(x67,1);
	FRPRD(x68,1);
	FREE(x71,1);
	r=x4;}}}
    }else{
     HLT("Ac at <unknown> : undefined selection ide\'Ac:exp->ide");}}
  }else{
   FREE(x2,1);
   FRPRD(x3,1);
   FRPRD(x5,1);
   r=x4;}}
 return r;}

extern OBJ _AOptimPath_55(OBJ x1,OBJ x2,OBJ x3) /* forceNoTargetLift'55 */
{OBJ r;
 {OBJ x8=FLD1(x1,5);
  if(EXPRD(x1,1)){
   FLD1(x1,5)=NIL;DSPRD(x1);
  }else{
   CPPRD(x8,1);
   FRPRD(x1,1);}
  CPCLS(__AIde_14,1);
  {OBJ x9;OBJ x10;
   x9=x8;
   x10=_AIdeOrd_8(x9,x2);
   r=_ASetByBST_41(__AIde_14,x10,x3);}}
 return r;}

extern OBJ _AOptimPath_56(OBJ x1,OBJ x2) /* analyzeCase'56 */
{OBJ r;
 CPCLS(__AIde_14,1);
 {OBJ x3;
  x3=_AAc_21(x1);
  r=_ABSTree_57(__AIde_14,x3,x2);}
 return r;}

extern OBJ _AOptimPath_57(OBJ x1,OBJ x2) /* analyzeRhs'57 */
{OBJ r;
 CPCLS(__AIde_14,1);
 {OBJ x3;
  x3=_AAc_21(x1);
  r=_ABSTree_57(__AIde_14,x3,x2);}
 return r;}

extern OBJ _AOptimPath_58(OBJ x1,OBJ x2) /* sampleDiscrimination'58 */
{OBJ r;
 {OBJ x3=FLD1(x1,1);
  if(EXPRD(x1,1)){
   FLD1(x1,1)=NIL;DSPRD(x1);
  }else{
   CPPRD(x3,1);
   FRPRD(x1,1);}
  CPCLS(__AIde_14,1);
  {OBJ x6;
   x6=x3;
   r=_ABSTree_57(__AIde_14,x6,x2);}}
 return r;}

extern OBJ _AOptimPath_59(OBJ x1,OBJ x2) /* inclImpliedStrict'59 */
{OBJ r;
 if(ISTGPRD(x2,2)){
  {OBJ x22=FLD(x2,2);
   if(EXPRD(x2,1)){
    FREE(FLD(x2,1),1);DSPRDF(x2);
   }else{
    CPPRD(x22,1);
    FRPRD(x2,1);}
   if(ISTGPRD(x22,1)){
    CPCLS(__AIde_14,1);
    r=_ABSTree_61(__AIde_14,x22,x1);
   }else{
    if(EXPRD(x22,1)){
     DSPRDF(x22);
    }else{
     DCPRD(x22,1);}
    FREE(x1,1);
    r=__ABUILTIN_5;}}
 }else{
  FREE(x1,1);
  FRPRD(x2,1);
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _AOptimPath_60(OBJ x1) /* inclImpliedStrict'60 */
{OBJ r;
 {OBJ x13=FLD1(x1,2);OBJ x14=FLD1(x1,3);
  if(EXPRD(x1,1)){
   FRPRD(FLD1(x1,1),1);DSPRDF(x1);
  }else{
   COPY(x13,1);CPPRD(x14,1);
   FRPRD(x1,1);}
  CPCLS(__AAc_21,1);
  CPCLS(__AIde_14,1);
  {OBJ x15;OBJ x16;
   x15=_ASeqMap_3(__AAc_21,x13);
   x16=_ASetByBSTConv_7(__AIde_14,x15);
   r=_AOptimPath_59(x16,x14);}}
 return r;}

extern OBJ _AOptimPath_61(OBJ x1,OBJ x2) /* inclImpliedStrict'61 */
{OBJ r;
 {OBJ x3=FLD1(x1,1);
  if(EXPRD(x1,1)){
   FLD1(x1,1)=NIL;DSPRD(x1);
  }else{
   CPPRD(x3,1);
   FRPRD(x1,1);}
  CPCLS(__AIde_14,1);
  {OBJ x6;
   x6=x3;
   r=_ABSTree_57(__AIde_14,x6,x2);}}
 return r;}

extern OBJ _AOptimPath_63(OBJ x1) /* format'63 */
{OBJ r;
 CPPRD(__AOptimPath_62,1);
 r=_AFmt_28(__AOptimPath_62);
 return r;}

extern OBJ _AOptimPath_65(OBJ x1) /* format'65 */
{OBJ r;
 CPPRD(__AOptimPath_64,1);
 r=_AFmt_28(__AOptimPath_64);
 return r;}

extern OBJ _AOptimPath_67(OBJ x1) /* format'67 */
{OBJ r;
 CPPRD(__AOptimPath_66,1);
 r=_AFmt_28(__AOptimPath_66);
 return r;}

extern OBJ _AOptimPath_69(OBJ x1) /* dumpGenPath'69 */
{OBJ r;
 CPPRD(__AOptimPath_68,1);
 r=_AFmt_28(__AOptimPath_68);
 return r;}

extern OBJ _AOptimPath_70(OBJ x1) /* dumpGenPath'70 */
{OBJ r;
 CPPRD(__AOptimPath_64,1);
 r=_AFmt_28(__AOptimPath_64);
 return r;}

extern OBJ _AOptimPath_72(OBJ x1) /* dumpGenPath'72 */
{OBJ r;
 CPPRD(__AOptimPath_71,1);
 r=_AFmt_28(__AOptimPath_71);
 return r;}

extern OBJ _AOptimPath_73(OBJ x1) /* dumpGenPath'73 */
{OBJ r;
 CPCLS(__AOptimPath_24,1);
 CPCLS(__AOptimPath_69,1);
 CPCLS(__AOptimPath_70,1);
 CPCLS(__AOptimPath_72,1);
 CPCLS(__AFormatFun1_2,1);
 {OBJ x2;OBJ x3;OBJ x4;
  x2=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimPath_69,1))(__AOptimPath_69,__ABUILTIN_20);
  x3=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimPath_70,1))(__AOptimPath_70,__ABUILTIN_20);
  x4=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimPath_72,1))(__AOptimPath_72,__ABUILTIN_20);
  r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ))METHOD(__AFormatFun1_2,4))(__AFormatFun1_2,x2,x3,x4,__AOptimPath_24);}
 return r;}

extern OBJ _AOptimPath_75(OBJ x1) /* dumpGenPath'75 */
{OBJ r;
 CPPRD(__AOptimPath_74,1);
 r=_AFmt_28(__AOptimPath_74);
 return r;}

extern OBJ _AOptimPath_76(OBJ x1) /* dumpGenPath'76 */
{OBJ r;
 CPCLS(__AOptimPath_75,1);
 {OBJ x2;OBJ x3;OBJ x4;
  x2=(*(OBJ(*)(OBJ,OBJ))METHOD(__AOptimPath_75,1))(__AOptimPath_75,__ABUILTIN_20);
  x3=_AIde_18(x1);
  x4=_ASeq_14(x2,x3);
  r=_AFormat_5(__ANat_5,x4);}
 return r;}

extern OBJ _AOptimPath_77(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* generateRhs'77 */
{OBJ r;
 {OBJ x18;OBJ x19;OBJ x20=FLD1(x4,3);
  if(EXPRD(x4,1)){
   {
    RSOME(x4,r);
    FLD1(r,3)=_AOptimPath_46(x1,x2,x3,x20);}
  }else{
   x18=FLD1(x4,1);x19=FLD1(x4,2);CPPRD(x18,1);COPY(x19,1);CPPRD(x20,1);
   {
    FRPRD(x4,1);PRD1(3,r);FLD1(r,1)=x18;FLD1(r,2)=x19;
    FLD1(r,3)=_AOptimPath_46(x1,x2,x3,x20);}}}
 return r;}

extern OBJ _AOptimPath_78(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* generateSequ'78 */
{OBJ r;
 CPPRD(x1,2);
 CPPRD(x4,2);
 {OBJ x5;OBJ x6;
  x5=_AEqnSys_10(x1,x4);
  x6=_AEqnSys_9(x1,x4);
  PRD(4,2,r);FLD(r,1)=x5;FLD(r,2)=x4;FLD(r,3)=__AAc_10;
  FLD(r,4)=_AOptimPath_48(x1,x2,x3,x6);}
 return r;}

extern OBJ _AOptimPath_79(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* generateSequ'79 */
{OBJ r;
 CPPRD(x1,2);
 CPPRD(x4,2);
 {OBJ x5;OBJ x6;
  x5=_AEqnSys_10(x1,x4);
  x6=_AEqnSys_9(x1,x4);
  PRD(4,2,r);FLD(r,1)=x5;FLD(r,2)=x4;FLD(r,3)=__AAc_10;
  FLD(r,4)=_AOptimPath_48(x1,x2,x3,x6);}
 return r;}





static OBJ _mt_1_0_2(OBJ t,OBJ t1,OBJ t2) 
{OBJ r;
 {OBJ t3;
  DCCLS(t,1);
  t3=(*(OBJ(*)(OBJ))ENTRY(t))(t1);
  r=(*(OBJ(*)(OBJ,OBJ))METHOD(t3,1))(t3,t2);}
 return r;}

static OBJ _mt_4_0_3(OBJ t,OBJ t1,OBJ t2,OBJ t3) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,3);
 FLDCLS(r,1)=t1;
 FLDCLS(r,2)=t2;
 FLDCLS(r,3)=t3;
 return r;}

static OBJ _mt_4_3_1(OBJ t,OBJ t1) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  COPY(FLDCLS(t,2),1);
  COPY(FLDCLS(t,3),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),FLDCLS(t,3),t1);
 return r;}
static OBJ _mt_4_3_1_l(OBJ t,OBJ t1) 
{OBJ r;
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),FLDCLS(t,3),t1);
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  DCCLS(t,1);
  FLDCLS(t,1)=NIL;FLDCLS(t,2)=NIL;FLDCLS(t,3)=NIL;
  COPY(r,1);LZYCLS(t,r);}
 return r;}

init_AOptimPath()
{
 static int visited=0; if(visited) return; visited=1;
 init_APair();
 init_AIdeMap();
 init_ASeqMap();
 init_ASeqReduce();
 init_AAc();
 init_ACompose();
 init_APreparedOptions();
 init_AAcFun();
 init_AEqnSys();
 init_AIdeOrd();
 init_AOcError();
 init_AFormatFun1();
 init_AOcPos();
 init_AFormatDebug();
 init_AString();
 init_ADEBUG();
 init_ASeq();
 init_AMap();
 init_AOcOptions();
 init_AMapConv();
 init_ACom();
 init_ASetByBST();
 init_ANat();
 init_ABSTree();
 init_AVoid();
 init_ATree();
 init_AOption();
 init_AArray();
 init_AChar();
 init_ABitset();
 init_AStream();
 init_ASetByBSTFilter();
 init_AFile();
 init_ASetByBSTConv();
 init_AInt();
 init_ABSTreeConv();
 init_AIde();
 init_AIdeSet();
 init_AAn();
 init_AFormat();
 init_AFmt();
 init_ATypeAn();
 init_ASourceAn();
 init_AOptimAn();
 init_ATransAn();
 init_APragmaAn();
 init_ANatMap();
 init_AStore();
 init_ASet();
 LCLS(1,_AOptimPath_63,__AOptimPath_63);
 CLS(2,_AOptimPath_31,__AOptimPath_31);
 DEN("{",__AOptimPath_62);
 CLS(2,_AOptimPath_30,__AOptimPath_30);
 CLS(2,_AOptimPath_61,__AOptimPath_61);
 CLS(2,_AOptimPath_29,__AOptimPath_29);
 CLS(1,_AOptimPath_60,__AOptimPath_60);
 CLS(2,_AOptimPath_28,__AOptimPath_28);
 CLS(2,_AOptimPath_59,__AOptimPath_59);
 CLS(2,_AOptimPath_58,__AOptimPath_58);
 CLS(2,_AOptimPath_57,__AOptimPath_57);
 CLS(2,_AOptimPath_56,__AOptimPath_56);
 CLS(1,_AOptimPath_24,__AOptimPath_24);
 CLS(3,_AOptimPath_55,__AOptimPath_55);
 CLS(1,_AOptimPath_23,__AOptimPath_23);
 CLS(1,_AOptimPath_22,__AOptimPath_22);
 CLS(4,_AOptimPath_54,__AOptimPath_54);
 CLS(1,_AOptimPath_21,__AOptimPath_21);
 CLS(3,_AOptimPath_53,__AOptimPath_53);
 CLS(1,_AOptimPath_20,__AOptimPath_20);
 CLS(4,_AOptimPath_52,__AOptimPath_52);
 CLS(1,_AOptimPath_19,__AOptimPath_19);
 CLS(4,_AOptimPath_51,__AOptimPath_51);
 DEN("-zoLazyLet",__AOptimPath_82);
 CLS(1,_AOptimPath_18,__AOptimPath_18);
 DEN("-zdumpGenPath",__AOptimPath_81);
 CLS(1,_AOptimPath_17,__AOptimPath_17);
 CLS(4,_AOptimPath_49_c,__AOptimPath_49);
 CLS(6,_AOptimPath_16,__AOptimPath_16);
 CLS(4,_AOptimPath_48,__AOptimPath_48);
 CLS(4,_AOptimPath_79,__AOptimPath_79);
 CLS(5,_AOptimPath_47,__AOptimPath_47);
 CLS(4,_AOptimPath_78,__AOptimPath_78);
 CLS(1,_AOptimPath_14,__AOptimPath_14);
 CLS(4,_AOptimPath_46,__AOptimPath_46);
 CLS(4,_AOptimPath_77,__AOptimPath_77);
 CLS(1,_AOptimPath_13,__AOptimPath_13);
 CLS(4,_AOptimPath_45,__AOptimPath_45);
 CLS(1,_AOptimPath_76,__AOptimPath_76);
 CLS(1,_AOptimPath_12,__AOptimPath_12);
 CLS(2,_AOptimPath_44,__AOptimPath_44);
 LCLS(1,_AOptimPath_75,__AOptimPath_75);
 CLS(1,_AOptimPath_11,__AOptimPath_11);
 CLS(3,_AOptimPath_43,__AOptimPath_43);
 DEN("path: ",__AOptimPath_74);
 CLS(1,_AOptimPath_10,__AOptimPath_10);
 CLS(4,_AOptimPath_42,__AOptimPath_42);
 LCLS(1,_AOptimPath_73,__AOptimPath_73);
 CLS(1,_AOptimPath_9,__AOptimPath_9);
 CLS(2,_AOptimPath_41,__AOptimPath_41);
 LCLS(1,_AOptimPath_72,__AOptimPath_72);
 CLS(5,_AOptimPath_8,__AOptimPath_8);
 CLS(5,_AOptimPath_40_c,__AOptimPath_40);
 DEN(">",__AOptimPath_71);
 CLS(3,_AOptimPath_39_c,__AOptimPath_39);
 LCLS(1,_AOptimPath_70,__AOptimPath_70);
 CLS(1,_AOptimPath_6,__AOptimPath_6);
 CLS(4,_AOptimPath_38,__AOptimPath_38);
 LCLS(1,_AOptimPath_69,__AOptimPath_69);
 CLS(1,_AOptimPath_5,__AOptimPath_5);
 CLS(3,_AOptimPath_37,__AOptimPath_37);
 DEN("<",__AOptimPath_68);
 CLS(1,_AOptimPath_4,__AOptimPath_4);
 CLS(4,_AOptimPath_36,__AOptimPath_36);
 LCLS(1,_AOptimPath_67,__AOptimPath_67);
 CLS(2,_AOptimPath_3,__AOptimPath_3);
 CLS(3,_AOptimPath_35,__AOptimPath_35);
 DEN("}",__AOptimPath_66);
 CLS(2,_AOptimPath_34,__AOptimPath_34);
 LCLS(1,_AOptimPath_65,__AOptimPath_65);
 CLS(5,_AOptimPath_1_c,__AOptimPath_1);
 CLS(2,_AOptimPath_33,__AOptimPath_33);
 DEN(",",__AOptimPath_64);
 CLS(2,_AOptimPath_32,__AOptimPath_32);
 MTH(1,0,2,_mt_1_0_2);LZYMTH(1,0,2,_mt_1_0_2);
 MTH(4,0,3,_mt_4_0_3);LZYMTH(4,0,3,_mt_4_0_3);
 MTH(4,3,1,_mt_4_3_1);LZYMTH(4,3,1,_mt_4_3_1_l);
 CPPRD(__AOptimPath_82,1);
 __AOptimPath_25=_ADEBUG_10(__AOptimPath_82);
 __AOptimPath_26=__ABUILTIN_5;
 CPPRD(__AOptimPath_81,1);
 __AOptimPath_50=_ADEBUG_10(__AOptimPath_81);
 COPY(__AIdeSet_2,3);
 COPY(__AIdeMap_3,1);
 CPPRD(__AIdeOrd_2,1);
 PRD1(5,__AOptimPath_80);FLD1(__AOptimPath_80,1)=__AIdeSet_2;FLD1(__AOptimPath_80,2)=__AIdeMap_3;FLD1(__AOptimPath_80,3)=__AIdeSet_2;FLD1(__AOptimPath_80,4)=__AIdeSet_2;FLD1(__AOptimPath_80,5)=__AIdeOrd_2;}

