Changeset cee69a in git


Ignore:
Timestamp:
Jul 24, 2018, 11:53:05 AM (5 years ago)
Author:
Karim Abou Zeid <karim23697@…>
Branches:
(u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
Children:
59b7cdfb9f1543d342cc02c41ec4dc0464999b3c
Parents:
dce59ccf59827a654d464a9a2217d10af1f2b5cd79d81e55c8fa0bafcf778605ad3ed28e8b9a1321
Message:
Merge branch 'spielwiese' into letterplace_kernel_multiplication
Files:
9 added
169 edited

Legend:

Unmodified
Added
Removed
  • Singular/LIB/atkins.lib

    rdce59cc rcee69a  
    11///////////////////////////////////////////////////////////////////////////////
    2 version="version atkins.lib 4.1.1.0 Dec_2017 ";
     2version="version atkins.lib 4.1.1.2 Dec_2017 ";
    33category="Teaching";
    44info="
     
    368368  poly f=var(1)^2-w;
    369369  def S=basering;
    370   ring R=(real,k),var(1),dp;
     370  ring R=(real,k+1),var(1),dp;
    371371  poly f=imap(S,f);
    372   ideal I=nt_solve(f,1.1,list(k,k div 5));
     372  ideal I=nt_solve(f,1.1,list(1000,k));
    373373  number c=leadcoef(I[1]);
    374374  setring S;
  • Singular/LIB/bfun.lib

    rdce59cc rcee69a  
    478478  l;
    479479  module M = I;
    480   matrix(l[1]) - M*l[2];
     480  matrix(l[1]) - matrix(M)*matrix(l[2]);
    481481}
    482482
  • Singular/LIB/chern.lib

    rdce59cc rcee69a  
    11////////////////////////////////////////////////////////////////
    2 version = "version chern.lib 4.1.1.0 Dec_2017 ";  //$Id$
     2version = "version chern.lib 0.706 Jun_2018 ";      //$Id$
    33category = "Chern classes";
    44info="
     
    66                       Computation of Chern classes
    77
    8 AUTHOR:  Oleksandr Iena,      o.g.yena@gmail.com,  yena@mathematik.uni-kl.de
     8AUTHOR:  Oleksandr Iena,      o.g.yena@gmail.com
    99
    1010OVERVIEW:
     
    688688    def br@=basering; // remember the base ring
    689689    // add additional variables c@, a@(1..n) to the base ring
    690     execute("ring r@= (" + charstr(basering) + "),(c@,"+varstr(basering)+", a@(1..n)), dp;" );
     690    execute("ring r@= (" + charstr(basering) + "),(c@,"+varstr(basering)+", a@(1..n)), lp;" );
    691691    execute( "map F= br@,"+varstr(br@)+";" ); // define the corresponding inclusion of rings
    692     list c=F(c); // embedd c in the bigger ring
     692    list c=F(c); // embed c in the bigger ring
    693693    poly rez;
    694694    list A=a@(1..n);
     
    702702    }
    703703    I=I, c@-sum_of_powers(n, A);
    704     I=elim(I, E);
     704    I=simplify(elim(I, E),1);
    705705    rez = -subst(I[1], c@, 0);
    706706    setring br@; // come back to the initial base ring
     
    10181018  def br@=basering; // remember the base ring
    10191019  // add additional variables a@(1..r), b@(1..R), x@ to the base ring
    1020   execute("ring r@=("+ charstr(basering) +"),(x@,"+varstr(basering)+",a@(1..r),b@(1..R)), dp;");
     1020  execute("ring r@=("+ charstr(basering) +"),(x@,"+varstr(basering)+",a@(1..r),b@(1..R)), lp;");
    10211021  execute( "map F= br@,"+varstr(br@)+";" ); // define the corresponding inclusion of rings
    1022   list c=F(c); // embedd c in the bigger ring
    1023   list C=F(C); // embedd C in the bigger ring
     1022  list c=F(c); // embed c in the bigger ring
     1023  list C=F(C); // embed C in the bigger ring
    10241024  list A=a@(1..r); // list of Chern roots of the first vector bundle
    10251025  list syma = symm(A); // symmetric functions in the Chern roots of the first vector bundles
     
    10441044  {
    10451045    J = I, x@-Cf[i]; // add the equation for the i-th Chern class to the ideal of relations
    1046     J = elim(J, E); // eliminate the Chern roots
     1046    J = simplify(elim(J, E), 1); // eliminate the Chern roots
    10471047    // get the expression for the i-th Chern class of the product
    10481048    // in terms of the Chern classes of the factors
     
    15711571  def br@=basering; // remember the base ring
    15721572  // add additional variables to the base ring
    1573   execute("ring r@=(" + charstr(basering) +  "),(x@,"+varstr(basering)+", a@(1..r)), dp;" );
     1573  execute("ring r@=(" + charstr(basering) +  "),(x@,"+varstr(basering)+", a@(1..r)), lp;" );
    15741574  execute( "map F= br@,"+varstr(br@)+";" ); // define the corresponding inclusion of rings
    15751575  list c=F(c); // embed c into the bigger ring
     
    21952195    def br@=basering; // remember the base ring
    21962196    // add additional variables a@(1..n), x@ to the base ring
    2197     execute("ring r@=(" + charstr(basering) + "), (x@,"+varstr(basering)+", a@(1..n)), dp;" );
     2197    execute("ring r@=(" + charstr(basering) + "), (x@,"+varstr(basering)+", a@(1..n)), lp;" );
    21982198    execute( "map F= br@,"+varstr(br@)+";" ); // define the corresponding inclusion of rings
    21992199    list c=F(c); // embed c into the bigger ring
  • Singular/LIB/control.lib

    rdce59cc rcee69a  
    228228  print(L);
    229229  // check
    230   print(L*M);
     230  print(matrix(L)*matrix(M));
    231231}
    232232//-----------------------------------------------------------------------
     
    271271  print(L);
    272272  // check
    273   print(M*L);
     273  print(matrix(M)*matrix(L));
    274274}
    275275//-----------------------------------------------------------------------
  • Singular/LIB/dmodloc.lib

    rdce59cc rcee69a  
    14841484  if (i<>0)
    14851485  {
    1486     K = module(W)*l[2];
     1486    K = matrix(W)*matrix(l[2]);
    14871487    K = K[1..i];
    14881488  }
  • Singular/LIB/freegb.lib

    r79d81e5 rcee69a  
    1 /////////////////////////////////////////////////////////////////////////////
    21/////////////////////////////////////////////////////////////////////////////
    32version="version freegb.lib 4.1.1.0 Dec_2017 "; // $Id$
     
    9291    ERROR("uptodeg and lV do not agree on the basering!");
    9392  }
    94   // a kind of dirty hack
    95   list L = ringlist(R);
    96   attrib(L,"maxExp",1);
    97   def @R = ring(L);
    98     // Set letterplace-specific attributes for the output ring!
     93
     94  // Set letterplace-specific attributes for the output ring!
     95  // a kind of dirty hack, getting the ringlist again
     96  list RL = ringlist(R);
     97  attrib(RL, "isLetterplaceRing", lV);
     98  attrib(RL, "maxExp", 1);
     99  def @R = ring(RL);
     100
    99101  attrib(@R, "uptodeg", uptodeg);
    100102  attrib(@R, "isLetterplaceRing", lV);
     
    500502  // assumes of the ring have been checked
    501503  // run the computation - it will test assumes on the ideal
    502   int uptodeg = attrib(save,"uptodeg");
    503   int lV = attrib(save,"isLetterplaceRing");
    504504  dbprint(ppl,"start computing GB");
    505   def J = system("freegb",I,uptodeg,lV);
     505  def J = system("freegb",I);
    506506  dbprint(ppl,"finished computing GB");
    507507  dbprint(ppl-1,"the result is:");
     
    25252525    ERROR("Incomplete Letterplace structure on the basering!");
    25262526  }
    2527   int uptodeg = attrib(basering,"uptodeg");
    2528   int lV = attrib(basering,"isLetterplaceRing");
    2529   return(system("stest",a,i,uptodeg,lV));
     2527  return(system("stest",a,i));
    25302528}
    25312529example
  • Singular/LIB/gmspoly.lib

    rdce59cc rcee69a  
    197197    }
    198198    B=lift(U,B*U);
    199     V=V*U;
     199    V=matrix(V)*matrix(U);
    200200
    201201    for(i0,i=1,1;i0<=ncols(e0);i0++)
     
    247247  }
    248248  B=lift(U,B*U);
    249   V=V*U;
     249  V=matrix(V)*matrix(U);
    250250
    251251  d=mindegree(V);
     
    375375  }
    376376
    377   V=V*U;
     377  V=matrix(V)*matrix(U);
    378378  G=lift(U,G);
    379379  B=lift(U,B*U);
     
    444444  }
    445445
    446   G=V*G;
     446  G=matrix(V)*matrix(G);
    447447  G=G/var(1)^mindegree(G);
    448448
     
    546546        B=pidbasis(K2,L2);
    547547      }
    548 
    549       B0=std(coeffs(reduce(matrix(K,nrows(K),nrows(B))*B,JS),b0));
    550       b=matrix(K,nrows(K),nrows(B))*B;
     548      B0=std(coeffs(reduce(matrix(K,nrows(module(K)),nrows(B))*B,JS),b0));
     549
     550      b=matrix(K,nrows(module(K)),nrows(B))*B;
    551551    }
    552552
  • Singular/LIB/gmssing.lib

    rdce59cc rcee69a  
    515515      V=inverse(U);
    516516      A=V*A*U;
    517       H=H*U;
    518       H0=V*H0;
     517      H=matrix(H)*matrix(U);
     518      H0=matrix(V)*matrix(H0);
    519519
    520520      dbprint(printlevel-voice+2,"// transform to reduce maximum of d by 1");
     
    581581  V=inverse(U);
    582582  A=V*A*U;
    583   H=H*U;
    584   H0=V*H0;
     583  H=matrix(H)*matrix(U);
     584  H0=matrix(V)*matrix(H0);
    585585
    586586  return(A,A0,r,H,H0,e,m,K0);
     
    843843  A=V*A*U;
    844844  dbprint(printlevel-voice+2,"// compute standard basis of H''");
    845   H=H*U;
     845  H=matrix(H)*matrix(U);
    846846  H0=std(V*H0);
    847847
     
    855855    w[i]=v[j]+n;
    856856  }
    857   H=H*H0;
     857  H=matrix(H)*matrix(H0);
    858858  H=simplify(jet(H/var(1)^(mindegree(H) div deg(var(1))),0),1);
    859859
     
    958958
    959959  dbprint(printlevel-voice+2,"// transform to Hodge splitting basis");
    960   H=H*U;
     960  H=matrix(H)*matrix(U);
    961961  H0=lift(U,H0);
    962962  A=lift(U,A*U);
     
    10291029  }
    10301030
    1031   H0=H*H0;
     1031  H0=matrix(H)*matrix(H0);
    10321032  H0=H0/var(1)^(mindegree(H0) div deg(var(1)));
    10331033
  • Singular/LIB/gradedModules.lib

    rdce59cc rcee69a  
    10551055"
    10561056{
    1057   ASSUME(0, size(w) >= nrows(A) );
    1058 
    10591057  module M = module(A);
     1058  ASSUME(0, size(w) >= nrows(M) );
    10601059
    10611060  attrib( M, "rank", size(w) );
     
    13541353  ASSUME(0, (size(a) == size(b)) && (a == b));  // == for intvec :(
    13551354
    1356   return ( grobj( A*B, grrange(A), grdeg(B) ) );
     1355  return ( grobj( matrix(A)*matrix(B), grrange(A), grdeg(B) ) );
    13571356}
    13581357example
  • Singular/LIB/homolog.lib

    rdce59cc rcee69a  
    18961896      for(i=1;i<=c;i++)
    18971897      {
    1898          K=lift(transpose(F[c-i+1]),K*G[i]);
     1898         K=lift(transpose(F[c-i+1]),matrix(K)*matrix(G[i]));
    18991899      }
    19001900      module Ke=modulo(transpose(K),transpose(G[c]));
  • Singular/LIB/jacobson.lib

    rdce59cc rcee69a  
    358358      if (flag mod 2 ==1)
    359359      {
    360         TrafoL=transpose(LT)*TrafoL;
     360        TrafoL=transpose(matrix(LT))*matrix(TrafoL);
    361361      }
    362362      else
    363363      {
    364         TrafoR=TrafoR*LT;
     364        TrafoR=matrix(TrafoR)*matrix(LT);
    365365      }
    366366
     
    413413      }
    414414      SORT=SORT,gen(1);
    415       STD=STD*SORT;
    416       TrafoR=TrafoR*SORT;
     415      STD=matrix(STD)*matrix(SORT);
     416      TrafoR=matrix(TrafoR)*matrix(SORT);
    417417    }
    418418
     
    439439      SORT=SORT,gen(1);
    440440      SORT=transpose(SORT);
    441       STD=SORT*STD;
    442       TrafoL=SORT*TrafoL;
     441      STD=matrix(SORT)*matrix(STD);
     442      TrafoL=matrix(SORT)*matrix(TrafoL);
    443443    }
    444444
     
    959959       if (flag mod 2 ==1)
    960960        {
    961          TrafoL=transpose(LT)*TrafoL;
     961         TrafoL=transpose(matrix(LT))*matrix(TrafoL);
    962962         dbprint(ppl-1,"Left transformation matrix:");
    963963         dbprint(ppl-1,TrafoL);
     
    968968       else
    969969        {
    970          TrafoR=TrafoR*involution(LT,inv);
     970         TrafoR=matrix(TrafoR)*matrix(involution(LT,inv));
    971971         dbprint(ppl-1,"Right transformation matrix:");
    972972         dbprint(ppl-1,matrix(TrafoR));
  • Singular/LIB/matrix.lib

    rdce59cc rcee69a  
    1818 submat(A,r,c);         submatrix of A with rows/cols specified by intvec r/c
    1919 symmat(n[,id]);        generic symmetric nxn matrix [entries from id]
    20  tensor(A,B);           matrix, tensor product of matrices A nd B
    2120 unitmat(n);            unit square matrix of size n
    2221 gauss_col(A);          transform a matrix into col-reduced Gauss normal form
     
    176175
    177176proc flatten (def A)
    178 "USAGE:   flatten(A); A matrix
    179 RETURN:  ideal, generated by all entries from A
     177"USAGE:   flatten(A); A matrix/smatrix
     178RETURN:  ideal, generated by all entries from A resp. all colums of A appended
    180179EXAMPLE: example flatten; shows an example
    181180"
    182181{
     182   if (typeof(A)=="smatrix") {return(system("flatten",A)); }
    183183   return(ideal(A));
    184184}
     
    189189   print(A);
    190190   flatten(A);
     191   flatten(smatrix(A));
    191192}
    192193///////////////////////////////////////////////////////////////////////////////
     
    457458   print(symmat(n,i));  // symmetric matrix of generic linear forms
    458459   kill R1;
    459 }
    460 ///////////////////////////////////////////////////////////////////////////////
    461 
    462 proc tensor (matrix A, matrix B)
    463 "USAGE:   tensor(A,B); A,B matrices
    464 RETURN:  matrix, tensor product of A and B
    465 EXAMPLE: example tensor; shows an example
    466 "
    467 {
    468    if (ncols(A)==0)
    469    {
    470      int q=nrows(A)*nrows(B);
    471      matrix D[q][0];
    472      return(D);
    473    }
    474 
    475    int i,j;
    476    matrix C,D;
    477    for( i=1; i<=nrows(A); i++ )
    478    {
    479      C = A[i,1]*B;
    480      for( j=2; j<=ncols(A); j++ )
    481      {
    482        C = concat(C,A[i,j]*B);
    483      }
    484      D = concat(D,transpose(C));
    485    }
    486    D = transpose(D);
    487    return(submat(D,2..nrows(D),1..ncols(D)));
    488 }
    489 example
    490 { "EXAMPLE:"; echo = 2;
    491    ring r=32003,(x,y,z),(c,ds);
    492    matrix A[3][3]=1,2,3,4,5,6,7,8,9;
    493    matrix B[2][2]=x,y,0,z;
    494    print(A);
    495    print(B);
    496    print(tensor(A,B));
    497460}
    498461///////////////////////////////////////////////////////////////////////////////
     
    957920  module REL = linear_relations(M);
    958921  pmat(REL);
    959   pmat(M*REL);
     922  pmat(matrix(M)*matrix(REL));
    960923}
    961924
  • Singular/LIB/ntsolve.lib

    rdce59cc rcee69a  
    11//////////////////////////////////////////////////////////////////////////////
    2 version="version ntsolve.lib 4.1.1.0 Dec_2017 "; // $ID$
     2version="version ntsolve.lib 4.1.1.2 Dec_2017 "; // $ID$
    33category="Symbolic-numerical solving";
    44info="
     
    5555    int prot = printlevel-voice+2;  // prot=printlevel (default:prot=0)
    5656    if (i1 < 1){itmax = 100;}else{itmax = ipar[1];}
    57     if (i1 < 2){acc = prec div 2;}else{acc = ipar[2];}
     57    if (i1 < 2){acc = prec;}else{acc = ipar[2];}
    5858    if ((acc <= 0)||(acc > prec-1)){acc = prec-1;}
    5959
  • Singular/LIB/sing.lib

    rdce59cc rcee69a  
    4343   list L=T_1(id,"");
    4444   def K=L[1]; attrib(K,"isSB",1);
    45    return(L[2]*kbase(K));
     45   return(matrix(L[2])*matrix(kbase(K)));
    4646}
    4747example
     
    665665   list L=T_1(i,"");
    666666   module kB  = kbase(L[1]);
    667    print(L[2]*kB);              // basis of 1st order miniversal deformation
     667   print(matrix(L[2])*matrix(kB)); // basis of 1st order miniversal deformation
    668668   show(L[2]);                   // presentation of normal bundle
    669669   print(L[3]);                  // relations of i
    670    print(transpose(L[3])*L[2]);  // should be 0 (mod i)
     670   print(transpose(matrix(L[3]))*matrix(L[2]));  // should be 0 (mod i)
    671671   printlevel = p;
    672672}
  • Singular/LIB/standard.lib

    rdce59cc rcee69a  
    622622  {
    623623     def Id(k) = #[k];
    624      int nr(k) = nrows(Id(k));
     624     int nr(k) = 1;
     625     if (typeof(Id(k))=="module") { nr(k)=nrows(Id(k)); }
    625626  }
    626627
     
    767768  // module case:
    768769  def iq = imap(P,i);
    769   iq = iq, imap(P,Qideal)*freemodule(nrows(iq));
     770  if (typeof(iq)=="module")
     771  {
     772    iq = iq, imap(P,Qideal)*freemodule(nrows(iq));
     773  }
     774  else
     775  {
     776    iq = iq, imap(P,Qideal);
     777  }
    770778  if (p_opt)
    771779  {
  • Singular/dyn_modules/cohomo/cohomo.cc

    rdce59cc rcee69a  
    804804  //listsprint(pre);
    805805  std::vector<int> yaya;
    806   for(i=0;i<re.size(),pre.size()>0;i++)
     806  for(i=0;(i<re.size()) && (pre.size()>0);i++)
    807807  {
    808808    yaya=eli1(re[i],pre[0]);
  • Singular/dyn_modules/singmathic/singmathic.cc

    rdce59cc rcee69a  
    2222
    2323// Constructs a Singular ideal.
    24 class MathicToSingStream {
     24class MathicToSingStream
     25{
    2526public:
    2627  MathicToSingStream(Coefficient modulus, VarIndex varCount):
     
    3940  VarIndex varCount() const {return mModulus;}
    4041
    41   void idealBegin(size_t polyCount) {
     42  void idealBegin(size_t polyCount)
     43  {
    4244    deleteIdeal();
    4345    mIdeal = idInit(polyCount);
     
    4749  void appendPolynomialBegin(size_t termCount) {}
    4850
    49   void appendTermBegin(const mgb::GroebnerConfiguration::Component c) {
     51  void appendTermBegin(const mgb::GroebnerConfiguration::Component c)
     52  {
    5053    if (mTerm == 0)
    5154      mTerm = mIdeal->m[mPolyCount] = pInit();
     
    5558  }
    5659
    57   void appendExponent(VarIndex index, Exponent exponent) {
     60  void appendExponent(VarIndex index, Exponent exponent)
     61  {
    5862    pSetExp(mTerm, index + 1, exponent);
    5963  }
    6064
    61   void appendTermDone(Coefficient coefficient) {
     65  void appendTermDone(Coefficient coefficient)
     66  {
    6267    mTerm->coef = reinterpret_cast<number>(coefficient);
    6368    pSetm(mTerm);
    6469  }
    6570
    66   void appendPolynomialDone() {
     71  void appendPolynomialDone()
     72  {
    6773    ++mPolyCount;
    6874    mTerm = 0;
     
    7480  // Singular interface
    7581
    76   ::ideal takeIdeal() {
     82  ::ideal takeIdeal()
     83  {
    7784    ::ideal id = mIdeal;
    7885    mIdeal = 0;
     
    8188
    8289private:
    83   void deleteIdeal() {
    84     if (mIdeal != 0) {
     90  void deleteIdeal()
     91  {
     92    if (mIdeal != 0)
     93    {
    8594      idDelete(&mIdeal);
    8695      mIdeal = 0;
     
    97106#include <iostream>
    98107
    99 bool setOrder(ring r, mgb::GroebnerConfiguration& conf) {
     108bool setOrder(ring r, mgb::GroebnerConfiguration& conf)
     109{
    100110  const VarIndex varCount = conf.varCount();
    101111
     
    105115
    106116  std::vector<Exponent> gradings;
    107   for (int block = 0; r->order[block] != ringorder_no; ++block) {
     117  for (int block = 0; r->order[block] != ringorder_no; ++block)
     118  {
    108119    // *** ringorder_no
    109120
    110121    const rRingOrder_t type = static_cast<rRingOrder_t>(r->order[block]);
    111     if (r->block0[block] < 0 || r->block1[block] < 0) {
     122    if (r->block0[block] < 0 || r->block1[block] < 0)
     123    {
    112124      WerrorS("Unexpected negative block0/block1 in ring.");
    113125      return false;
     
    116128    const VarIndex block1 = static_cast<VarIndex>(r->block1[block]);
    117129    const int* const weights = r->wvhdl[block];
    118     if (block0 > block1) {
     130    if (block0 > block1)
     131    {
    119132      WerrorS("Unexpected block0 > block1 in ring.");
    120133      return false;
     
    122135
    123136    // *** ringorder_c and ringorder_C
    124     if (type == ringorder_c || type == ringorder_C) {
    125       if (block0 != 0 || block1 != 0 || weights != 0) {
     137    if (type == ringorder_c || type == ringorder_C)
     138    {
     139      if (block0 != 0 || block1 != 0 || weights != 0)
     140      {
    126141        WerrorS("Unexpected non-zero fields on c/C block in ring.");
    127142        return false;
    128143      }
    129       if (didSetComponentBefore) {
     144      if (didSetComponentBefore)
     145      {
    130146        WerrorS("Unexpected two c/C blocks in ring.");
    131147        return false;
    132148      }
    133149      didSetComponentBefore = true;
    134       if (r->order[block + 1] == ringorder_no) {
     150      if (r->order[block + 1] == ringorder_no)
     151      {
    135152        conf.setComponentBefore
    136153          (mgb::GroebnerConfiguration::ComponentAfterBaseOrder);
     
    140157      continue;
    141158    }
    142     if (block0 == 0 || block1 == 0) {
     159    if (block0 == 0 || block1 == 0)
     160    {
    143161      WerrorS("Expected block0 != 0 and block1 != 0 in ring.");
    144162      return false;
    145163    }
    146     if (block1 > varCount) {
     164    if (block1 > varCount)
     165    {
    147166      // todo: first handle any block types where this is not true
    148167      WerrorS("Expected block1 <= #vars in ring.");
     
    169188    //    ls:            revlex from  left (ascending)
    170189
    171     if (type == ringorder_a64) {
     190    if (type == ringorder_a64)
     191    {
    172192      WerrorS("Block type a64 not supported for MathicGB interface.");
    173193      return false;
     
    180200      (type == ringorder_a || type == ringorder_Wp || type == ringorder_wp);
    181201    const bool minusWGrading = (type == ringorder_ws || type == ringorder_Ws);
    182     if (oneGrading || minusOneGrading || wGrading || minusWGrading) {
     202    if (oneGrading || minusOneGrading || wGrading || minusWGrading)
     203    {
    183204      const VarIndex begin = gradings.size();
    184205      gradings.resize(begin + varCount);
    185       if (oneGrading || minusOneGrading) {
    186         if (weights != 0) {
     206      if (oneGrading || minusOneGrading)
     207      {
     208        if (weights != 0)
     209        {
    187210          WerrorS("Expect wvhdl == 0 in Dp/dp/Ds/ds-block in ring.");
    188211          return false;
     
    191214        for (int var = block0 - 1; var < block1; ++var)
    192215          gradings[begin + var] = value;
    193       } else {
    194         if (weights == 0) {
     216      }
     217      else
     218      {
     219        if (weights == 0)
     220        {
    195221          WerrorS("Expect wvhdl != 0 in a/Wp/wp/ws/Ws-block in ring.");
    196222          return false;
    197223        }
    198         if (wGrading) {
     224        if (wGrading)
     225        {
    199226          for (int var = 0; var < dim; ++var)
    200227            gradings[begin + (block0 - 1) + var] = weights[var];
    201         } else {
     228        }
     229        else
     230        {
    202231          for (int var = 0; var < dim; ++var)
    203232            gradings[begin + (block0 - 1) + var] = -weights[var];
     
    223252      type == ringorder_wp ||
    224253      type == ringorder_ws;
    225     if (lexFromLeft || lexFromRight || revlexFromLeft || revlexFromRight) {
     254    if (lexFromLeft || lexFromRight || revlexFromLeft || revlexFromRight)
     255    {
    226256      const int next = r->order[block + 1];
    227257      bool final = next == ringorder_no;
    228258      if (!final && r->order[block + 2] == ringorder_no)
    229259        final = next == ringorder_c || next == ringorder_C;
    230       if (final) {
     260      if (final)
     261      {
    231262        if (lexFromRight)
    232263          baseOrder = mgb::GroebnerConfiguration::LexAscendingBaseOrder;
     
    243274      gradings.resize(begin + dim * varCount);
    244275      const Exponent value = (lexFromLeft || lexFromRight) ? 1 : -1;
    245       if (lexFromLeft || revlexFromLeft) {
     276      if (lexFromLeft || revlexFromLeft)
     277      {
    246278        for (size_t row = 0; row < dim; ++row)
    247279          gradings[begin + row * varCount + (block0 - 1) + row] = value;
    248       } else {
     280      }
     281      else
     282      {
    249283        for (size_t row = 0; row < dim; ++row)
    250284          gradings[begin + row * varCount + (block1 - 1) - row] = value;
     
    254288
    255289    // *** ringorder_M: a square invertible matrix
    256     if (type == ringorder_M) {
    257       if (weights == 0) {
     290    if (type == ringorder_M)
     291    {
     292      if (weights == 0)
     293      {
    258294        WerrorS("Expected wvhdl != 0 in M-block in ring.");
    259295        return false;
     
    272308      type == ringorder_S ||
    273309      type == ringorder_IS
    274     ) {
     310    )
     311    {
    275312      // todo: Consider supporting this later.
    276313      WerrorS("Schreyer order s/S/IS not supported in MathicGB interface.");
    277314      return false;
    278315    }
    279     if (type == ringorder_am) {
     316    if (type == ringorder_am)
     317    {
    280318      // This block is a Schreyer-like ordering only used in Spielwiese.
    281319      // todo: Consider supporting it later.
     
    283321      return false;
    284322    }
    285     if (type == ringorder_L) {
     323    if (type == ringorder_L)
     324    {
    286325      WerrorS("Invalid L-block found in order of ring.");
    287326      return false;
    288327    }
    289     if (type == ringorder_aa) {
     328    if (type == ringorder_aa)
     329    {
    290330      // I don't know what an aa block is supposed to do.
    291331      WerrorS("aa ordering not supported by the MathicGB interface.");
    292332      return false;
    293333    }
    294     if (type == ringorder_unspec) {
     334    if (type == ringorder_unspec)
     335    {
    295336      WerrorS("Invalid unspec-block found in order of ring.");
    296337      return false;
     
    300341  }
    301342
    302   if (!didSetComponentBefore) {
     343  if (!didSetComponentBefore)
     344  {
    303345    WerrorS("Expected to find a c/C block in ring.");
    304346    return false;
    305347  }
    306348
    307   if (!conf.setMonomialOrder(baseOrder, gradings)) {
     349  if (!conf.setMonomialOrder(baseOrder, gradings))
     350  {
    308351    WerrorS("MathicGB does not support non-global orders.");
    309352    return false;
     
    312355}
    313356
    314 bool prOrderMatrix(ring r) {
     357bool prOrderMatrix(ring r)
     358{
    315359  const int varCount = r->N;
    316360  mgb::GroebnerConfiguration conf(101, varCount,0);
     
    318362    return false;
    319363  const std::vector<Exponent>& gradings = conf.monomialOrder().second;
    320   if (gradings.size() % varCount != 0) {
     364  if (gradings.size() % varCount != 0)
     365  {
    321366    WerrorS("Expected matrix to be a multiple of varCount.");
    322367    return false;
     
    324369  const size_t rowCount = gradings.size() / varCount;
    325370  std::cout << "Order matrix:\n";
    326   for (size_t row = 0; row < rowCount; ++row) {
     371  for (size_t row = 0; row < rowCount; ++row)
     372  {
    327373    for (size_t col = 0; col < varCount; ++col)
    328374      std::cerr << ' ' << gradings[row * varCount + col];
     
    336382  std::cerr << "Components ascending: " << conf.componentsAscending() << '\n';
    337383  std::cerr << "Schreyering: " << conf.schreyering() << '\n';
     384  return true;
    338385}
    339386
    340 void prOrder(ring r) {
     387void prOrder(ring r)
     388{
    341389  std::cout << "Printing order of ring.\n";
    342   for (int block = 0; ; ++block) {
    343     switch (r->order[block]) {
     390  for (int block = 0; ; ++block)
     391  {
     392    switch (r->order[block])
     393    {
    344394    case ringorder_no: // end of blocks
    345395      return;
     
    445495    const int b1 = r->block1[block];
    446496    std::cout << ' ' << b0 << ':' << b1 << " (" << r->wvhdl[block] << ")" << std::flush;
    447     if (r->wvhdl[block] != 0 && b0 != 0) {
     497    if (r->wvhdl[block] != 0 && b0 != 0)
     498    {
    448499      for (int v = 0; v <= b1 - b0; ++v)
    449500        std::cout << ' ' << r->wvhdl[block][v];
     
    454505}
    455506
    456 BOOLEAN prOrderX(leftv result, leftv arg) {
    457   if (currRing == 0) {
     507BOOLEAN prOrderX(leftv result, leftv arg)
     508{
     509  if (currRing == 0)
     510  {
    458511    WerrorS("There is no current ring.");
    459512    return TRUE;
     
    470523
    471524  if (arg == NULL || arg->next != NULL ||
    472   ((arg->Typ() != IDEAL_CMD) &&(arg->Typ() != MODUL_CMD))){
     525  ((arg->Typ() != IDEAL_CMD) &&(arg->Typ() != MODUL_CMD)))
     526  {
    473527    WerrorS("Syntax: mathicgb(<ideal>/<module>)");
    474528    return TRUE;
    475529  }
    476   if (!rField_is_Zp(currRing)) {
     530  if (!rField_is_Zp(currRing))
     531  {
    477532    WerrorS("Polynomial ring must be over Zp.");
    478533    return TRUE;
     
    496551  const int size = IDELEMS(id);
    497552  toMathic.idealBegin(size);
    498   for (int i = 0; i < size; ++i) {
     553  for (int i = 0; i < size; ++i)
     554  {
    499555    const poly origP = id->m[i];
    500556    int termCount = 0;
     
    503559    toMathic.appendPolynomialBegin(termCount);
    504560
    505     for (poly p = origP; p != 0; p = pNext(p)) {
     561    for (poly p = origP; p != 0; p = pNext(p))
     562    {
    506563      toMathic.appendTermBegin(pGetComp(p));
    507564      for (int i = 1; i <= currRing->N; ++i)
  • Singular/extra.cc

    rdce59cc rcee69a  
    316316      }
    317317      return TRUE;
     318    }
     319    else
     320  /*==================== flatten =============================*/
     321    if(strcmp(sys_cmd,"flatten")==0)
     322    {
     323      if ((h!=NULL) &&(h->Typ()==SMATRIX_CMD))
     324      {
     325        res->data=(char*)sm_Flatten((ideal)h->Data(),currRing);
     326        res->rtyp=SMATRIX_CMD;
     327        return FALSE;
     328      }
     329      else
     330        WerrorS("smatrix expected");
     331    }
     332    else
     333  /*==================== unflatten =============================*/
     334    if(strcmp(sys_cmd,"unflatten")==0)
     335    {
     336      const short t1[]={2,SMATRIX_CMD,INT_CMD};
     337      if (iiCheckTypes(h,t1,1))
     338      {
     339        res->data=(char*)sm_UnFlatten((ideal)h->Data(),(int)(long)h->next->Data(),currRing);
     340        res->rtyp=SMATRIX_CMD;
     341        return res->data==NULL;
     342      }
     343      else return TRUE;
    318344    }
    319345    else
     
    37423768    }
    37433769    else
    3744 /*==================== tensor =================*/
    3745     if(strcmp(sys_cmd,"tensor")==0)
    3746     {
    3747       const short t[]={2,MODUL_CMD,MODUL_CMD};
    3748       if (iiCheckTypes(h,t,1))
    3749       {
    3750         res->data=(void*)mp_Tensor((ideal)h->Data(),(ideal)h->next->Data(),currRing);
    3751         res->rtyp=MODUL_CMD;
    3752         return FALSE;
    3753       }
    3754       else
    3755         return TRUE;
    3756     }
    3757     else
    37583770/*==================== GF(p,n) ==================================*/
    37593771    if(strcmp(sys_cmd,"GF")==0)
  • Singular/grammar.cc

    rdce59cc rcee69a  
    289289     POLY_CMD = 280,
    290290     RESOLUTION_CMD = 281,
    291      VECTOR_CMD = 282,
    292      BETTI_CMD = 283,
    293      E_CMD = 284,
    294      FETCH_CMD = 285,
    295      FREEMODULE_CMD = 286,
    296      KEEPRING_CMD = 287,
    297      IMAP_CMD = 288,
    298      KOSZUL_CMD = 289,
    299      MAXID_CMD = 290,
    300      MONOM_CMD = 291,
    301      PAR_CMD = 292,
    302      PREIMAGE_CMD = 293,
    303      VAR_CMD = 294,
    304      VALTVARS = 295,
    305      VMAXDEG = 296,
    306      VMAXMULT = 297,
    307      VNOETHER = 298,
    308      VMINPOLY = 299,
    309      END_RING = 300,
    310      CMD_1 = 301,
    311      CMD_2 = 302,
    312      CMD_3 = 303,
    313      CMD_12 = 304,
    314      CMD_13 = 305,
    315      CMD_23 = 306,
    316      CMD_123 = 307,
    317      CMD_M = 308,
    318      ROOT_DECL = 309,
    319      ROOT_DECL_LIST = 310,
    320      RING_DECL = 311,
    321      RING_DECL_LIST = 312,
    322      EXAMPLE_CMD = 313,
    323      EXPORT_CMD = 314,
    324      HELP_CMD = 315,
    325      KILL_CMD = 316,
    326      LIB_CMD = 317,
    327      LISTVAR_CMD = 318,
    328      SETRING_CMD = 319,
    329      TYPE_CMD = 320,
    330      STRINGTOK = 321,
    331      BLOCKTOK = 322,
    332      INT_CONST = 323,
    333      UNKNOWN_IDENT = 324,
    334      RINGVAR = 325,
    335      PROC_DEF = 326,
    336      APPLY = 327,
    337      ASSUME_CMD = 328,
    338      BREAK_CMD = 329,
    339      CONTINUE_CMD = 330,
    340      ELSE_CMD = 331,
    341      EVAL = 332,
    342      QUOTE = 333,
    343      FOR_CMD = 334,
    344      IF_CMD = 335,
    345      SYS_BREAK = 336,
    346      WHILE_CMD = 337,
    347      RETURN = 338,
    348      PARAMETER = 339,
    349      SYSVAR = 340,
    350      UMINUS = 341
     291     SMATRIX_CMD = 282,
     292     VECTOR_CMD = 283,
     293     BETTI_CMD = 284,
     294     E_CMD = 285,
     295     FETCH_CMD = 286,
     296     FREEMODULE_CMD = 287,
     297     KEEPRING_CMD = 288,
     298     IMAP_CMD = 289,
     299     KOSZUL_CMD = 290,
     300     MAXID_CMD = 291,
     301     MONOM_CMD = 292,
     302     PAR_CMD = 293,
     303     PREIMAGE_CMD = 294,
     304     VAR_CMD = 295,
     305     VALTVARS = 296,
     306     VMAXDEG = 297,
     307     VMAXMULT = 298,
     308     VNOETHER = 299,
     309     VMINPOLY = 300,
     310     END_RING = 301,
     311     CMD_1 = 302,
     312     CMD_2 = 303,
     313     CMD_3 = 304,
     314     CMD_12 = 305,
     315     CMD_13 = 306,
     316     CMD_23 = 307,
     317     CMD_123 = 308,
     318     CMD_M = 309,
     319     ROOT_DECL = 310,
     320     ROOT_DECL_LIST = 311,
     321     RING_DECL = 312,
     322     RING_DECL_LIST = 313,
     323     EXAMPLE_CMD = 314,
     324     EXPORT_CMD = 315,
     325     HELP_CMD = 316,
     326     KILL_CMD = 317,
     327     LIB_CMD = 318,
     328     LISTVAR_CMD = 319,
     329     SETRING_CMD = 320,
     330     TYPE_CMD = 321,
     331     STRINGTOK = 322,
     332     BLOCKTOK = 323,
     333     INT_CONST = 324,
     334     UNKNOWN_IDENT = 325,
     335     RINGVAR = 326,
     336     PROC_DEF = 327,
     337     APPLY = 328,
     338     ASSUME_CMD = 329,
     339     BREAK_CMD = 330,
     340     CONTINUE_CMD = 331,
     341     ELSE_CMD = 332,
     342     EVAL = 333,
     343     QUOTE = 334,
     344     FOR_CMD = 335,
     345     IF_CMD = 336,
     346     SYS_BREAK = 337,
     347     WHILE_CMD = 338,
     348     RETURN = 339,
     349     PARAMETER = 340,
     350     SYSVAR = 341,
     351     UMINUS = 342
    351352   };
    352353#endif
     
    365366
    366367/* Line 264 of yacc.c  */
    367 #line 368 "grammar.cc"
     368#line 369 "grammar.cc"
    368369
    369370#ifdef short
     
    580581#define YYFINAL  2
    581582/* YYLAST -- Last index in YYTABLE.  */
    582 #define YYLAST   2593
     583#define YYLAST   2567
    583584
    584585/* YYNTOKENS -- Number of terminals.  */
    585 #define YYNTOKENS  103
     586#define YYNTOKENS  104
    586587/* YYNNTS -- Number of nonterminals.  */
    587588#define YYNNTS  44
    588589/* YYNRULES -- Number of rules.  */
    589 #define YYNRULES  174
     590#define YYNRULES  175
    590591/* YYNRULES -- Number of states.  */
    591 #define YYNSTATES  397
     592#define YYNSTATES  398
    592593
    593594/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
    594595#define YYUNDEFTOK  2
    595 #define YYMAXUTOK   341
     596#define YYMAXUTOK   342
    596597
    597598#define YYTRANSLATE(YYX)                                                \
     
    604605       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    605606       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    606        2,     2,     2,     2,     2,     2,     2,     2,    96,     2,
    607       99,   100,     2,    88,    94,    89,   101,    90,     2,     2,
    608        2,     2,     2,     2,     2,     2,     2,     2,    97,    95,
    609       87,    86,     2,     2,     2,     2,     2,     2,     2,     2,
     607       2,     2,     2,     2,     2,     2,     2,     2,    97,     2,
     608     100,   101,     2,    89,    95,    90,   102,    91,     2,     2,
     609       2,     2,     2,     2,     2,     2,     2,     2,    98,    96,
     610      88,    87,     2,     2,     2,     2,     2,     2,     2,     2,
    610611       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    611612       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    612        2,    91,     2,    92,    93,     2,   102,     2,     2,     2,
     613       2,    92,     2,    93,    94,     2,   103,     2,     2,     2,
    613614       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    614615       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     
    635636      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
    636637      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
    637       85,    98
     638      85,    86,    99
    638639};
    639640
     
    655656     401,   404,   407,   410,   412,   416,   419,   422,   425,   428,
    656657     437,   440,   444,   447,   449,   451,   457,   459,   461,   466,
    657      468,   472,   474,   478,   480,   482,   484,   486,   489,   493,
    658      496,   500,   503,   506,   510,   515,   520,   525,   530,   535,
    659      540,   545,   550,   557,   564,   571,   578,   585,   592,   599,
    660      603,   605,   614,   617,   622,   630,   633,   635,   637,   640,
    661      643,   645,   651,   654,   660,   662,   664,   668,   674,   678,
    662      682,   687,   690,   693,   698
     658     468,   472,   474,   478,   480,   482,   484,   486,   488,   491,
     659     495,   498,   502,   505,   508,   512,   517,   522,   527,   532,
     660     537,   542,   547,   552,   559,   566,   573,   580,   587,   594,
     661     601,   605,   607,   616,   619,   624,   632,   635,   637,   639,
     662     642,   645,   647,   653,   656,   662,   664,   666,   670,   676,
     663     680,   684,   689,   692,   695,   700
    663664};
    664665
     
    666667static const yytype_int16 yyrhs[] =
    667668{
    668      104,     0,    -1,    -1,   104,   105,    -1,   106,    -1,   108,
    669       95,    -1,   120,    95,    -1,   146,    -1,    81,    -1,    95,
    670       -1,     1,    95,    -1,   141,    -1,   142,    -1,   107,    -1,
    671      143,    -1,   144,    -1,   129,    -1,   130,    -1,   131,    -1,
    672       58,    67,    -1,   109,    -1,   132,    -1,   133,    -1,   134,
    673       -1,   145,    -1,   136,    -1,   137,    -1,   139,    -1,   140,
    674       -1,   118,   111,    -1,    70,    -1,   119,    -1,   110,    11,
    675      110,    -1,   112,   101,   110,    -1,   110,    99,   100,    -1,
    676      110,    99,   111,   100,    -1,    91,   111,    92,    -1,    68,
    677       -1,    85,    -1,   121,    -1,    16,    99,   112,   100,    -1,
    678       54,    99,   112,   100,    -1,    55,    99,   111,   100,    -1,
    679       55,    99,   100,    -1,    56,    99,   112,   100,    -1,    57,
    680       99,   111,   100,    -1,    57,    99,   100,    -1,    46,    99,
    681      112,   100,    -1,    49,    99,   112,   100,    -1,    50,    99,
    682      112,   100,    -1,    52,    99,   112,   100,    -1,    47,    99,
    683      112,    94,   112,   100,    -1,    49,    99,   112,    94,   112,
    684      100,    -1,    51,    99,   112,    94,   112,   100,    -1,    52,
    685       99,   112,    94,   112,   100,    -1,    48,    99,   112,    94,
    686      112,    94,   112,   100,    -1,    50,    99,   112,    94,   112,
    687       94,   112,   100,    -1,    51,    99,   112,    94,   112,    94,
    688      112,   100,    -1,    52,    99,   112,    94,   112,    94,   112,
    689      100,    -1,    53,    99,   100,    -1,    53,    99,   111,   100,
    690       -1,   128,    99,   112,    94,   112,    94,   112,   100,    -1,
    691      128,    99,   112,   100,    -1,    17,    99,   122,    94,   122,
    692       94,   126,   100,    -1,    17,    99,   112,   100,    -1,   119,
    693       12,    67,    -1,    99,   111,   100,    -1,   111,    94,   112,
    694       -1,   112,    -1,   117,    -1,   110,    -1,   112,    91,   112,
    695       94,   112,    92,    -1,   112,    91,   112,    92,    -1,    72,
    696       99,   112,    94,    46,   100,    -1,    72,    99,   112,    94,
    697       49,   100,    -1,    72,    99,   112,    94,    50,   100,    -1,
    698       72,    99,   112,    94,    52,   100,    -1,    72,    99,   112,
    699       94,    53,   100,    -1,    72,    99,   112,    94,   112,   100,
    700       -1,   114,   112,   116,    -1,   114,   112,    86,   112,   116,
    701       -1,   115,   112,    94,   112,   116,    -1,    -1,    77,    99,
    702      113,   112,   100,    -1,    78,    99,    -1,    73,    99,    -1,
    703      100,    -1,   112,    10,    -1,   112,     7,    -1,   112,    88,
    704      112,    -1,   112,    89,   112,    -1,   112,    90,   112,    -1,
    705      112,    93,   112,    -1,   112,    87,   112,    -1,   112,    96,
    706      112,    -1,   112,     9,   112,    -1,   112,     4,   112,    -1,
    707      112,     3,   112,    -1,   112,    97,   112,    -1,     8,   112,
    708       -1,    89,   112,    -1,   120,   127,    -1,   111,   127,    -1,
    709       69,    -1,   102,   112,   102,    -1,    54,   110,    -1,    55,
    710      110,    -1,    56,   110,    -1,    57,   110,    -1,   128,   110,
    711       91,   112,    92,    91,   112,    92,    -1,   128,   110,    -1,
    712      120,    94,   110,    -1,    16,   110,    -1,    66,    -1,   112,
    713       -1,    99,   112,    94,   111,   100,    -1,    69,    -1,   123,
    714       -1,   123,    99,   111,   100,    -1,   124,    -1,   124,    94,
    715      125,    -1,   124,    -1,    99,   125,   100,    -1,    86,    -1,
    716       22,    -1,    15,    -1,    14,    -1,    87,   121,    -1,    60,
    717       66,    95,    -1,    60,    95,    -1,    58,    66,    95,    -1,
    718       59,   111,    -1,    61,   110,    -1,   133,    94,   110,    -1,
    719       63,    99,    54,   100,    -1,    63,    99,    55,   100,    -1,
    720       63,    99,    56,   100,    -1,    63,    99,    57,   100,    -1,
    721       63,    99,    17,   100,    -1,    63,    99,   128,   100,    -1,
    722       63,    99,    16,   100,    -1,    63,    99,   110,   100,    -1,
    723       63,    99,   110,    94,    54,   100,    -1,    63,    99,   110,
    724       94,    55,   100,    -1,    63,    99,   110,    94,    56,   100,
    725       -1,    63,    99,   110,    94,    57,   100,    -1,    63,    99,
    726      110,    94,    17,   100,    -1,    63,    99,   110,    94,   128,
    727      100,    -1,    63,    99,   110,    94,    16,   100,    -1,    63,
    728       99,   100,    -1,    17,    -1,   135,   110,   127,   122,    94,
    729      122,    94,   126,    -1,   135,   110,    -1,   135,   110,   127,
    730      110,    -1,   135,   110,   127,   110,    91,   111,    92,    -1,
    731       85,   121,    -1,    64,    -1,    32,    -1,   138,   112,    -1,
    732       65,   112,    -1,   111,    -1,    80,    99,   112,   100,    67,
    733       -1,    76,    67,    -1,    80,    99,   112,   100,    74,    -1,
    734       74,    -1,    75,    -1,    82,    66,    67,    -1,    79,    66,
    735       66,    66,    67,    -1,    16,   119,    67,    -1,    71,    66,
    736       67,    -1,    71,    66,    66,    67,    -1,    84,   120,    -1,
    737       84,   112,    -1,    83,    99,   111,   100,    -1,    83,    99,
    738      100,    -1
     669     105,     0,    -1,    -1,   105,   106,    -1,   107,    -1,   109,
     670      96,    -1,   121,    96,    -1,   147,    -1,    82,    -1,    96,
     671      -1,     1,    96,    -1,   142,    -1,   143,    -1,   108,    -1,
     672     144,    -1,   145,    -1,   130,    -1,   131,    -1,   132,    -1,
     673      59,    68,    -1,   110,    -1,   133,    -1,   134,    -1,   135,
     674      -1,   146,    -1,   137,    -1,   138,    -1,   140,    -1,   141,
     675      -1,   119,   112,    -1,    71,    -1,   120,    -1,   111,    11,
     676     111,    -1,   113,   102,   111,    -1,   111,   100,   101,    -1,
     677     111,   100,   112,   101,    -1,    92,   112,    93,    -1,    69,
     678      -1,    86,    -1,   122,    -1,    16,   100,   113,   101,    -1,
     679      55,   100,   113,   101,    -1,    56,   100,   112,   101,    -1,
     680      56,   100,   101,    -1,    57,   100,   113,   101,    -1,    58,
     681     100,   112,   101,    -1,    58,   100,   101,    -1,    47,   100,
     682     113,   101,    -1,    50,   100,   113,   101,    -1,    51,   100,
     683     113,   101,    -1,    53,   100,   113,   101,    -1,    48,   100,
     684     113,    95,   113,   101,    -1,    50,   100,   113,    95,   113,
     685     101,    -1,    52,   100,   113,    95,   113,   101,    -1,    53,
     686     100,   113,    95,   113,   101,    -1,    49,   100,   113,    95,
     687     113,    95,   113,   101,    -1,    51,   100,   113,    95,   113,
     688      95,   113,   101,    -1,    52,   100,   113,    95,   113,    95,
     689     113,   101,    -1,    53,   100,   113,    95,   113,    95,   113,
     690     101,    -1,    54,   100,   101,    -1,    54,   100,   112,   101,
     691      -1,   129,   100,   113,    95,   113,    95,   113,   101,    -1,
     692     129,   100,   113,   101,    -1,    17,   100,   123,    95,   123,
     693      95,   127,   101,    -1,    17,   100,   113,   101,    -1,   120,
     694      12,    68,    -1,   100,   112,   101,    -1,   112,    95,   113,
     695      -1,   113,    -1,   118,    -1,   111,    -1,   113,    92,   113,
     696      95,   113,    93,    -1,   113,    92,   113,    93,    -1,    73,
     697     100,   113,    95,    47,   101,    -1,    73,   100,   113,    95,
     698      50,   101,    -1,    73,   100,   113,    95,    51,   101,    -1,
     699      73,   100,   113,    95,    53,   101,    -1,    73,   100,   113,
     700      95,    54,   101,    -1,    73,   100,   113,    95,   113,   101,
     701      -1,   115,   113,   117,    -1,   115,   113,    87,   113,   117,
     702      -1,   116,   113,    95,   113,   117,    -1,    -1,    78,   100,
     703     114,   113,   101,    -1,    79,   100,    -1,    74,   100,    -1,
     704     101,    -1,   113,    10,    -1,   113,     7,    -1,   113,    89,
     705     113,    -1,   113,    90,   113,    -1,   113,    91,   113,    -1,
     706     113,    94,   113,    -1,   113,    88,   113,    -1,   113,    97,
     707     113,    -1,   113,     9,   113,    -1,   113,     4,   113,    -1,
     708     113,     3,   113,    -1,   113,    98,   113,    -1,     8,   113,
     709      -1,    90,   113,    -1,   121,   128,    -1,   112,   128,    -1,
     710      70,    -1,   103,   113,   103,    -1,    55,   111,    -1,    56,
     711     111,    -1,    57,   111,    -1,    58,   111,    -1,   129,   111,
     712      92,   113,    93,    92,   113,    93,    -1,   129,   111,    -1,
     713     121,    95,   111,    -1,    16,   111,    -1,    67,    -1,   113,
     714      -1,   100,   113,    95,   112,   101,    -1,    70,    -1,   124,
     715      -1,   124,   100,   112,   101,    -1,   125,    -1,   125,    95,
     716     126,    -1,   125,    -1,   100,   126,   101,    -1,    87,    -1,
     717      22,    -1,    27,    -1,    15,    -1,    14,    -1,    88,   122,
     718      -1,    61,    67,    96,    -1,    61,    96,    -1,    59,    67,
     719      96,    -1,    60,   112,    -1,    62,   111,    -1,   134,    95,
     720     111,    -1,    64,   100,    55,   101,    -1,    64,   100,    56,
     721     101,    -1,    64,   100,    57,   101,    -1,    64,   100,    58,
     722     101,    -1,    64,   100,    17,   101,    -1,    64,   100,   129,
     723     101,    -1,    64,   100,    16,   101,    -1,    64,   100,   111,
     724     101,    -1,    64,   100,   111,    95,    55,   101,    -1,    64,
     725     100,   111,    95,    56,   101,    -1,    64,   100,   111,    95,
     726      57,   101,    -1,    64,   100,   111,    95,    58,   101,    -1,
     727      64,   100,   111,    95,    17,   101,    -1,    64,   100,   111,
     728      95,   129,   101,    -1,    64,   100,   111,    95,    16,   101,
     729      -1,    64,   100,   101,    -1,    17,    -1,   136,   111,   128,
     730     123,    95,   123,    95,   127,    -1,   136,   111,    -1,   136,
     731     111,   128,   111,    -1,   136,   111,   128,   111,    92,   112,
     732      93,    -1,    86,   122,    -1,    65,    -1,    33,    -1,   139,
     733     113,    -1,    66,   113,    -1,   112,    -1,    81,   100,   113,
     734     101,    68,    -1,    77,    68,    -1,    81,   100,   113,   101,
     735      75,    -1,    75,    -1,    76,    -1,    83,    67,    68,    -1,
     736      80,    67,    67,    67,    68,    -1,    16,   120,    68,    -1,
     737      72,    67,    68,    -1,    72,    67,    67,    68,    -1,    85,
     738     121,    -1,    85,   113,    -1,    84,   100,   112,   101,    -1,
     739      84,   100,   101,    -1
    739740};
    740741
     
    742743static const yytype_uint16 yyrline[] =
    743744{
    744        0,   317,   317,   319,   353,   354,   356,   358,   362,   367,
    745      369,   420,   421,   422,   423,   424,   425,   426,   427,   431,
    746      434,   435,   436,   437,   438,   439,   440,   441,   442,   445,
    747      452,   457,   461,   465,   469,   473,   487,   515,   539,   545,
    748      551,   555,   559,   563,   567,   571,   575,   579,   583,   587,
    749      591,   595,   599,   603,   607,   611,   615,   619,   623,   627,
    750      631,   637,   641,   645,   649,   653,   658,   662,   673,   676,
    751      677,   678,   682,   686,   690,   694,   698,   702,   706,   710,
    752      714,   731,   738,   737,   755,   763,   771,   780,   784,   788,
    753      792,   796,   800,   804,   808,   812,   816,   820,   824,   828,
    754      840,   847,   848,   867,   868,   880,   885,   890,   894,   898,
    755      932,   956,   977,   985,   989,   990,  1004,  1012,  1021,  1066,
    756     1067,  1076,  1077,  1083,  1090,  1091,  1092,  1100,  1105,  1110,
    757     1117,  1125,  1137,  1154,  1174,  1178,  1182,  1187,  1191,  1195,
    758     1199,  1203,  1208,  1214,  1220,  1226,  1232,  1238,  1244,  1256,
    759     1263,  1267,  1304,  1311,  1316,  1329,  1336,  1336,  1339,  1407,
    760     1411,  1440,  1453,  1470,  1479,  1484,  1492,  1504,  1523,  1533,
    761     1552,  1575,  1581,  1593,  1599
     745       0,   318,   318,   320,   354,   355,   357,   359,   363,   368,
     746     370,   421,   422,   423,   424,   425,   426,   427,   428,   432,
     747     435,   436,   437,   438,   439,   440,   441,   442,   443,   446,
     748     453,   458,   462,   466,   470,   474,   488,   516,   540,   546,
     749     552,   556,   560,   564,   568,   572,   576,   580,   584,   588,
     750     592,   596,   600,   604,   608,   612,   616,   620,   624,   628,
     751     632,   638,   642,   646,   650,   654,   659,   663,   674,   677,
     752     678,   679,   683,   687,   691,   695,   699,   703,   707,   711,
     753     715,   732,   739,   738,   756,   764,   772,   781,   785,   789,
     754     793,   797,   801,   805,   809,   813,   817,   821,   825,   829,
     755     841,   848,   849,   868,   869,   881,   886,   891,   895,   899,
     756     936,   960,   981,   989,   993,   994,  1008,  1016,  1025,  1070,
     757    1071,  1080,  1081,  1087,  1094,  1095,  1096,  1097,  1105,  1110,
     758    1115,  1122,  1130,  1142,  1159,  1179,  1183,  1187,  1192,  1196,
     759    1200,  1204,  1208,  1213,  1219,  1225,  1231,  1237,  1243,  1249,
     760    1261,  1268,  1272,  1309,  1316,  1321,  1334,  1341,  1341,  1344,
     761    1412,  1416,  1445,  1458,  1475,  1484,  1489,  1497,  1509,  1528,
     762    1538,  1557,  1580,  1586,  1598,  1604
    762763};
    763764#endif
     
    772773  "GRING_CMD", "BIGINTMAT_CMD", "INTMAT_CMD", "PROC_CMD", "RING_CMD",
    773774  "BEGIN_RING", "BUCKET_CMD", "IDEAL_CMD", "MAP_CMD", "MATRIX_CMD",
    774   "MODUL_CMD", "NUMBER_CMD", "POLY_CMD", "RESOLUTION_CMD", "VECTOR_CMD",
    775   "BETTI_CMD", "E_CMD", "FETCH_CMD", "FREEMODULE_CMD", "KEEPRING_CMD",
    776   "IMAP_CMD", "KOSZUL_CMD", "MAXID_CMD", "MONOM_CMD", "PAR_CMD",
    777   "PREIMAGE_CMD", "VAR_CMD", "VALTVARS", "VMAXDEG", "VMAXMULT", "VNOETHER",
    778   "VMINPOLY", "END_RING", "CMD_1", "CMD_2", "CMD_3", "CMD_12", "CMD_13",
    779   "CMD_23", "CMD_123", "CMD_M", "ROOT_DECL", "ROOT_DECL_LIST", "RING_DECL",
    780   "RING_DECL_LIST", "EXAMPLE_CMD", "EXPORT_CMD", "HELP_CMD", "KILL_CMD",
    781   "LIB_CMD", "LISTVAR_CMD", "SETRING_CMD", "TYPE_CMD", "STRINGTOK",
    782   "BLOCKTOK", "INT_CONST", "UNKNOWN_IDENT", "RINGVAR", "PROC_DEF", "APPLY",
    783   "ASSUME_CMD", "BREAK_CMD", "CONTINUE_CMD", "ELSE_CMD", "EVAL", "QUOTE",
    784   "FOR_CMD", "IF_CMD", "SYS_BREAK", "WHILE_CMD", "RETURN", "PARAMETER",
    785   "SYSVAR", "'='", "'<'", "'+'", "'-'", "'/'", "'['", "']'", "'^'", "','",
    786   "';'", "'&'", "':'", "UMINUS", "'('", "')'", "'.'", "'`'", "$accept",
    787   "lines", "pprompt", "flowctrl", "example_dummy", "command", "assign",
    788   "elemexpr", "exprlist", "expr", "$@1", "quote_start", "assume_start",
    789   "quote_end", "expr_arithmetic", "left_value", "extendedid",
    790   "declare_ip_variable", "stringexpr", "rlist", "ordername", "orderelem",
    791   "OrderingList", "ordering", "cmdeq", "mat_cmd", "filecmd", "helpcmd",
    792   "examplecmd", "exportcmd", "killcmd", "listcmd", "ringcmd1", "ringcmd",
    793   "scriptcmd", "setrings", "setringcmd", "typecmd", "ifcmd", "whilecmd",
    794   "forcmd", "proccmd", "parametercmd", "returncmd", 0
     775  "MODUL_CMD", "NUMBER_CMD", "POLY_CMD", "RESOLUTION_CMD", "SMATRIX_CMD",
     776  "VECTOR_CMD", "BETTI_CMD", "E_CMD", "FETCH_CMD", "FREEMODULE_CMD",
     777  "KEEPRING_CMD", "IMAP_CMD", "KOSZUL_CMD", "MAXID_CMD", "MONOM_CMD",
     778  "PAR_CMD", "PREIMAGE_CMD", "VAR_CMD", "VALTVARS", "VMAXDEG", "VMAXMULT",
     779  "VNOETHER", "VMINPOLY", "END_RING", "CMD_1", "CMD_2", "CMD_3", "CMD_12",
     780  "CMD_13", "CMD_23", "CMD_123", "CMD_M", "ROOT_DECL", "ROOT_DECL_LIST",
     781  "RING_DECL", "RING_DECL_LIST", "EXAMPLE_CMD", "EXPORT_CMD", "HELP_CMD",
     782  "KILL_CMD", "LIB_CMD", "LISTVAR_CMD", "SETRING_CMD", "TYPE_CMD",
     783  "STRINGTOK", "BLOCKTOK", "INT_CONST", "UNKNOWN_IDENT", "RINGVAR",
     784  "PROC_DEF", "APPLY", "ASSUME_CMD", "BREAK_CMD", "CONTINUE_CMD",
     785  "ELSE_CMD", "EVAL", "QUOTE", "FOR_CMD", "IF_CMD", "SYS_BREAK",
     786  "WHILE_CMD", "RETURN", "PARAMETER", "SYSVAR", "'='", "'<'", "'+'", "'-'",
     787  "'/'", "'['", "']'", "'^'", "','", "';'", "'&'", "':'", "UMINUS", "'('",
     788  "')'", "'.'", "'`'", "$accept", "lines", "pprompt", "flowctrl",
     789  "example_dummy", "command", "assign", "elemexpr", "exprlist", "expr",
     790  "$@1", "quote_start", "assume_start", "quote_end", "expr_arithmetic",
     791  "left_value", "extendedid", "declare_ip_variable", "stringexpr", "rlist",
     792  "ordername", "orderelem", "OrderingList", "ordering", "cmdeq", "mat_cmd",
     793  "filecmd", "helpcmd", "examplecmd", "exportcmd", "killcmd", "listcmd",
     794  "ringcmd1", "ringcmd", "scriptcmd", "setrings", "setringcmd", "typecmd",
     795  "ifcmd", "whilecmd", "forcmd", "proccmd", "parametercmd", "returncmd", 0
    795796};
    796797#endif
     
    809810     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
    810811     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
    811      335,   336,   337,   338,   339,   340,    61,    60,    43,    45,
    812       47,    91,    93,    94,    44,    59,    38,    58,   341,    40,
    813       41,    46,    96
     812     335,   336,   337,   338,   339,   340,   341,    61,    60,    43,
     813      45,    47,    91,    93,    94,    44,    59,    38,    58,   342,
     814      40,    41,    46,    96
    814815};
    815816# endif
     
    818819static const yytype_uint8 yyr1[] =
    819820{
    820        0,   103,   104,   104,   105,   105,   105,   105,   105,   105,
    821      105,   106,   106,   106,   106,   106,   106,   106,   106,   107,
    822      108,   108,   108,   108,   108,   108,   108,   108,   108,   109,
    823      110,   110,   110,   110,   110,   110,   110,   110,   110,   110,
    824      110,   110,   110,   110,   110,   110,   110,   110,   110,   110,
    825      110,   110,   110,   110,   110,   110,   110,   110,   110,   110,
    826      110,   110,   110,   110,   110,   110,   110,   111,   111,   112,
    827      112,   112,   112,   112,   112,   112,   112,   112,   112,   112,
    828      112,   112,   113,   112,   114,   115,   116,   117,   117,   117,
    829      117,   117,   117,   117,   117,   117,   117,   117,   117,   117,
    830      117,   118,   118,   119,   119,   120,   120,   120,   120,   120,
    831      120,   120,   120,   121,   122,   122,   123,   124,   124,   125,
    832      125,   126,   126,   127,   128,   128,   128,   129,   130,   130,
    833      131,   132,   133,   133,   134,   134,   134,   134,   134,   134,
    834      134,   134,   134,   134,   134,   134,   134,   134,   134,   134,
    835      135,   136,   136,   136,   136,   137,   138,   138,   139,   140,
    836      140,   141,   141,   141,   141,   141,   142,   143,   144,   144,
    837      144,   145,   145,   146,   146
     821       0,   104,   105,   105,   106,   106,   106,   106,   106,   106,
     822     106,   107,   107,   107,   107,   107,   107,   107,   107,   108,
     823     109,   109,   109,   109,   109,   109,   109,   109,   109,   110,
     824     111,   111,   111,   111,   111,   111,   111,   111,   111,   111,
     825     111,   111,   111,   111,   111,   111,   111,   111,   111,   111,
     826     111,   111,   111,   111,   111,   111,   111,   111,   111,   111,
     827     111,   111,   111,   111,   111,   111,   111,   112,   112,   113,
     828     113,   113,   113,   113,   113,   113,   113,   113,   113,   113,
     829     113,   113,   114,   113,   115,   116,   117,   118,   118,   118,
     830     118,   118,   118,   118,   118,   118,   118,   118,   118,   118,
     831     118,   119,   119,   120,   120,   121,   121,   121,   121,   121,
     832     121,   121,   121,   122,   123,   123,   124,   125,   125,   126,
     833     126,   127,   127,   128,   129,   129,   129,   129,   130,   131,
     834     131,   132,   133,   134,   134,   135,   135,   135,   135,   135,
     835     135,   135,   135,   135,   135,   135,   135,   135,   135,   135,
     836     135,   136,   137,   137,   137,   137,   138,   139,   139,   140,
     837     141,   141,   142,   142,   142,   142,   142,   143,   144,   145,
     838     145,   145,   146,   146,   147,   147
    838839};
    839840
     
    853854       2,     2,     2,     1,     3,     2,     2,     2,     2,     8,
    854855       2,     3,     2,     1,     1,     5,     1,     1,     4,     1,
    855        3,     1,     3,     1,     1,     1,     1,     2,     3,     2,
    856        3,     2,     2,     3,     4,     4,     4,     4,     4,     4,
    857        4,     4,     6,     6,     6,     6,     6,     6,     6,     3,
    858        1,     8,     2,     4,     7,     2,     1,     1,     2,     2,
    859        1,     5,     2,     5,     1,     1,     3,     5,     3,     3,
    860        4,     2,     2,     4,     3
     856       3,     1,     3,     1,     1,     1,     1,     1,     2,     3,
     857       2,     3,     2,     2,     3,     4,     4,     4,     4,     4,
     858       4,     4,     4,     6,     6,     6,     6,     6,     6,     6,
     859       3,     1,     8,     2,     4,     7,     2,     1,     1,     2,
     860       2,     1,     5,     2,     5,     1,     1,     3,     5,     3,
     861       3,     4,     2,     2,     4,     3
    861862};
    862863
     
    866867static const yytype_uint8 yydefact[] =
    867868{
    868        2,     0,     1,     0,     0,   126,   125,     0,   150,   124,
    869      157,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    870        0,     0,     0,     0,     0,     0,     0,     0,   156,     0,
    871      113,    37,   103,    30,     0,     0,     0,   164,   165,     0,
    872        0,     0,     0,     0,     8,     0,     0,     0,    38,     0,
    873        0,     0,     9,     0,     0,     3,     4,    13,     0,    20,
    874       70,   160,    68,     0,     0,    69,     0,    31,     0,    39,
    875        0,    16,    17,    18,    21,    22,    23,     0,    25,    26,
    876        0,    27,    28,    11,    12,    14,    15,    24,     7,    10,
    877        0,     0,     0,     0,     0,     0,    38,    99,     0,     0,
    878       70,     0,    31,     0,     0,     0,     0,     0,     0,     0,
    879        0,     0,     0,    70,     0,    70,     0,    70,     0,    70,
    880        0,    19,   131,     0,   129,    70,     0,   159,     0,     0,
    881       85,   162,    82,    84,     0,     0,     0,     0,     0,   172,
    882      171,   155,   127,   100,     0,     0,     0,     5,     0,     0,
    883      123,     0,   102,     0,     0,    88,     0,    87,     0,     0,
    884        0,     0,     0,     0,     0,     0,     0,     0,     0,    29,
    885        0,     0,     6,   101,     0,    70,     0,    70,   158,     0,
    886        0,     0,     0,     0,     0,    68,   168,     0,   114,     0,
    887        0,     0,     0,     0,     0,     0,     0,    59,     0,    68,
    888       43,     0,    68,    46,     0,   130,   128,     0,     0,     0,
    889        0,     0,     0,   149,    70,     0,     0,   169,     0,     0,
    890        0,     0,   166,   174,     0,    36,    66,   104,    32,    34,
    891        0,    67,    97,    96,    95,    93,    89,    90,    91,     0,
    892       92,    94,    98,    33,     0,    86,    79,     0,    65,    70,
    893        0,     0,    70,     0,     0,     0,     0,     0,     0,     0,
    894       40,    68,    64,     0,    47,     0,     0,     0,    48,     0,
    895       49,     0,     0,    50,    60,    41,    42,    44,    45,   140,
    896      138,   134,   135,   136,   137,     0,   141,   139,   170,     0,
    897        0,     0,     0,   173,    35,    72,     0,     0,     0,     0,
    898       62,     0,    70,   114,     0,    42,    45,     0,     0,     0,
     869       2,     0,     1,     0,     0,   127,   126,     0,   151,   124,
     870     125,   158,     0,     0,     0,     0,     0,     0,     0,     0,
     871       0,     0,     0,     0,     0,     0,     0,     0,     0,   157,
     872       0,   113,    37,   103,    30,     0,     0,     0,   165,   166,
     873       0,     0,     0,     0,     0,     8,     0,     0,     0,    38,
     874       0,     0,     0,     9,     0,     0,     3,     4,    13,     0,
     875      20,    70,   161,    68,     0,     0,    69,     0,    31,     0,
     876      39,     0,    16,    17,    18,    21,    22,    23,     0,    25,
     877      26,     0,    27,    28,    11,    12,    14,    15,    24,     7,
     878      10,     0,     0,     0,     0,     0,     0,    38,    99,     0,
     879       0,    70,     0,    31,     0,     0,     0,     0,     0,     0,
     880       0,     0,     0,     0,    70,     0,    70,     0,    70,     0,
     881      70,     0,    19,   132,     0,   130,    70,     0,   160,     0,
     882       0,    85,   163,    82,    84,     0,     0,     0,     0,     0,
     883     173,   172,   156,   128,   100,     0,     0,     0,     5,     0,
     884       0,   123,     0,   102,     0,     0,    88,     0,    87,     0,
    899885       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    900        0,     0,     0,     0,     0,     0,     0,     0,    83,   167,
    901      161,   163,     0,    80,    81,     0,     0,     0,     0,     0,
    902        0,    51,     0,    52,     0,     0,    53,     0,    54,   148,
    903      146,   142,   143,   144,   145,   147,    73,    74,    75,    76,
    904       77,    78,    71,     0,     0,     0,     0,   115,   116,     0,
    905      117,   121,     0,     0,     0,     0,     0,     0,     0,   154,
    906        0,   119,     0,     0,    63,    55,    56,    57,    58,    61,
    907      109,   151,     0,   122,     0,   120,   118
     886      29,     0,     0,     6,   101,     0,    70,     0,    70,   159,
     887       0,     0,     0,     0,     0,     0,    68,   169,     0,   114,
     888       0,     0,     0,     0,     0,     0,     0,     0,    59,     0,
     889      68,    43,     0,    68,    46,     0,   131,   129,     0,     0,
     890       0,     0,     0,     0,   150,    70,     0,     0,   170,     0,
     891       0,     0,     0,   167,   175,     0,    36,    66,   104,    32,
     892      34,     0,    67,    97,    96,    95,    93,    89,    90,    91,
     893       0,    92,    94,    98,    33,     0,    86,    79,     0,    65,
     894      70,     0,     0,    70,     0,     0,     0,     0,     0,     0,
     895       0,    40,    68,    64,     0,    47,     0,     0,     0,    48,
     896       0,    49,     0,     0,    50,    60,    41,    42,    44,    45,
     897     141,   139,   135,   136,   137,   138,     0,   142,   140,   171,
     898       0,     0,     0,     0,   174,    35,    72,     0,     0,     0,
     899       0,    62,     0,    70,   114,     0,    42,    45,     0,     0,
     900       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     901       0,     0,     0,     0,     0,     0,     0,     0,     0,    83,
     902     168,   162,   164,     0,    80,    81,     0,     0,     0,     0,
     903       0,     0,    51,     0,    52,     0,     0,    53,     0,    54,
     904     149,   147,   143,   144,   145,   146,   148,    73,    74,    75,
     905      76,    77,    78,    71,     0,     0,     0,     0,   115,   116,
     906       0,   117,   121,     0,     0,     0,     0,     0,     0,     0,
     907     155,     0,   119,     0,     0,    63,    55,    56,    57,    58,
     908      61,   109,   152,     0,   122,     0,   120,   118
    908909};
    909910
     
    911912static const yytype_int16 yydefgoto[] =
    912913{
    913       -1,     1,    55,    56,    57,    58,    59,    60,   145,    62,
    914      219,    63,    64,   246,    65,    66,    67,    68,    69,   189,
    915      370,   371,   382,   372,   152,    98,    71,    72,    73,    74,
    916       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
    917       85,    86,    87,    88
     914      -1,     1,    56,    57,    58,    59,    60,    61,   146,    63,
     915     220,    64,    65,   247,    66,    67,    68,    69,    70,   190,
     916     371,   372,   383,   373,   153,    99,    72,    73,    74,    75,
     917      76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
     918      86,    87,    88,    89
    918919};
    919920
    920921/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    921922   STATE-NUM.  */
    922 #define YYPACT_NINF -366
     923#define YYPACT_NINF -364
    923924static const yytype_int16 yypact[] =
    924925{
    925     -366,   393,  -366,   -80,  1897,  -366,  -366,  1963,   -68,  -366,
    926     -366,   -46,   -29,   -16,   -14,     2,    21,    24,    39,  2029,
    927     2095,  2161,  2227,     0,  1897,   -52,  1897,    47,  -366,  1897,
    928     -366,  -366,  -366,  -366,   -47,    50,    78,  -366,  -366,   -28,
    929       93,    95,    -9,    99,  -366,    32,   101,  2293,   137,   137,
    930     1897,  1897,  -366,  1897,  1897,  -366,  -366,  -366,   113,  -366,
    931       15,   -70,  1384,  1897,  1897,  -366,  1897,   201,   -77,  -366,
    932     2359,  -366,  -366,  -366,  -366,   126,  -366,  1897,  -366,  -366,
    933     1897,  -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,
    934      133,   -68,   135,   142,   144,   158,  -366,    54,   161,  1897,
    935      236,  1384,    -7,  2425,  1897,  1897,  1897,  1897,  1897,  1897,
    936     1897,  1501,  1897,   282,  1567,   305,  1897,   395,  1633,  1327,
    937      130,  -366,   170,   173,  -366,    67,  1699,  1384,    59,  1897,
    938     -366,  -366,  -366,  -366,   205,  1897,   215,  1765,  1963,  1384,
    939      193,  -366,  -366,    54,   -72,   -60,   149,  -366,  1897,  1831,
    940     -366,  1897,  -366,  1897,  1897,  -366,  1897,  -366,  1897,  1897,
    941     1897,  1897,  1897,  1897,  1897,  1897,  1897,   212,   564,   170,
    942      222,  1897,  -366,  -366,  1897,   224,  1897,   107,  1384,  1897,
    943     1897,  1567,  1897,  1633,  1897,   579,  -366,  1897,   594,   210,
    944      689,   704,   719,     3,   165,   734,   409,  -366,   -59,   749,
    945     -366,   -58,   764,  -366,   -45,  -366,  -366,    44,    65,    71,
    946      111,   118,   124,  -366,    22,   131,   244,  -366,   859,  1897,
    947      229,   874,  -366,  -366,   -42,  -366,  -366,  -366,  -366,  -366,
    948      -32,  1384,    18,   260,   260,  1413,    49,    49,    54,   424,
    949       66,  1399,    49,  -366,  1897,  -366,  -366,  1897,  -366,  1342,
    950      519,  1897,   186,  2425,   579,   749,   -31,   764,   -23,   519,
    951     -366,   889,  -366,  2425,  -366,  1897,  1897,  1897,  -366,  1897,
    952     -366,  1897,  1897,  -366,  -366,  -366,  -366,  -366,  -366,  -366,
    953     -366,  -366,  -366,  -366,  -366,   381,  -366,  -366,  -366,  2491,
    954      904,   250,   -37,  -366,  -366,  -366,  1897,   919,   919,  1897,
    955     -366,   934,   184,  1384,   213,  -366,  -366,  1897,   235,  1029,
    956     1044,  1059,  1074,   534,   549,   220,   232,   234,   243,   246,
    957      252,   254,   174,   226,   228,   238,   240,  1089,  -366,  -366,
    958     -366,  -366,  1104,  -366,  -366,  1199,   253,  1897,  2425,   -20,
    959      -61,  -366,  1897,  -366,  1897,  1897,  -366,  1897,  -366,  -366,
    960     -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,
    961     -366,  -366,  -366,  1897,  1897,   -10,   262,  -366,  -366,   289,
    962      261,  -366,   259,  1214,  1229,  1244,  1259,  1274,  1369,  -366,
    963      -61,   268,   264,  1897,  -366,  -366,  -366,  -366,  -366,  -366,
    964     -366,  -366,   289,  -366,   -13,  -366,  -366
     926    -364,   345,  -364,   -88,  1861,  -364,  -364,  1928,   -74,  -364,
     927    -364,  -364,   -50,   -47,   -35,   -26,   -19,   -14,     5,     9,
     928    1995,  2062,  2129,  2196,   -28,  1861,   -63,  1861,    13,  -364,
     929    1861,  -364,  -364,  -364,  -364,   -39,    24,    26,  -364,  -364,
     930     -27,    44,    46,    34,    48,  -364,    86,    73,  2263,   101,
     931     101,  1861,  1861,  -364,  1861,  1861,  -364,  -364,  -364,    82,
     932    -364,    16,   -77,  1328,  1861,  1861,  -364,  1861,   186,   -81,
     933    -364,  2330,  -364,  -364,  -364,  -364,   106,  -364,  1861,  -364,
     934    -364,  1861,  -364,  -364,  -364,  -364,  -364,  -364,  -364,  -364,
     935    -364,   107,   -74,   109,   112,   114,   122,  -364,    10,   127,
     936    1861,   156,  1328,    -9,  2397,  1861,  1861,  1861,  1861,  1861,
     937    1861,  1861,  1459,  1861,   185,  1526,   553,  1861,   568,  1593,
     938     583,   134,  -364,   142,   154,  -364,    27,  1660,  1328,     2,
     939    1861,  -364,  -364,  -364,  -364,   188,  1861,   190,  1727,  1928,
     940    1328,   174,  -364,  -364,    10,   -84,   -59,    68,  -364,  1861,
     941    1794,  -364,  1861,  -364,  1861,  1861,  -364,  1861,  -364,  1861,
     942    1861,  1861,  1861,  1861,  1861,  1861,  1861,  1861,   222,   609,
     943     142,   203,  1861,  -364,  -364,  1861,   128,  1861,    76,  1328,
     944    1861,  1861,  1526,  1861,  1593,  1861,   250,  -364,  1861,   632,
     945     191,   647,   662,   677,   372,   440,   705,   468,  -364,   -58,
     946     773,  -364,   -41,   801,  -364,   -38,  -364,  -364,   -17,    94,
     947     103,   116,   118,   140,  -364,    20,   147,   220,  -364,   816,
     948    1861,   223,   831,  -364,  -364,   -37,  -364,  -364,  -364,  -364,
     949    -364,   -34,  1328,   144,  1368,  1368,  1433,     6,     6,    10,
     950     483,    15,  1343,     6,  -364,  1861,  -364,  -364,  1861,  -364,
     951     595,   498,  1861,    45,  2397,   250,   773,   -33,   801,   -13,
     952     498,  -364,   846,  -364,  2397,  -364,  1861,  1861,  1861,  -364,
     953    1861,  -364,  1861,  1861,  -364,  -364,  -364,  -364,  -364,  -364,
     954    -364,  -364,  -364,  -364,  -364,  -364,   497,  -364,  -364,  -364,
     955    2464,   869,   226,   -56,  -364,  -364,  -364,  1861,   942,   942,
     956    1861,  -364,   965,   182,  1328,   201,  -364,  -364,  1861,   204,
     957     980,   995,  1010,  1038,   513,   536,   202,   205,   207,   216,
     958     217,   227,   228,   161,   163,   165,   167,   175,  1106,  -364,
     959    -364,  -364,  -364,  1134,  -364,  -364,  1149,   210,  1861,  2397,
     960     -10,   -65,  -364,  1861,  -364,  1861,  1861,  -364,  1861,  -364,
     961    -364,  -364,  -364,  -364,  -364,  -364,  -364,  -364,  -364,  -364,
     962    -364,  -364,  -364,  -364,  1861,  1861,   -72,   209,  -364,  -364,
     963     235,   221,  -364,   229,  1164,  1179,  1202,  1275,  1298,  1313,
     964    -364,   -65,   232,   230,  1861,  -364,  -364,  -364,  -364,  -364,
     965    -364,  -364,  -364,   235,  -364,    74,  -364,  -364
    965966};
    966967
     
    968969static const yytype_int16 yypgoto[] =
    969970{
    970     -366,  -366,  -366,  -366,  -366,  -366,  -366,   207,    -1,    25,
    971     -366,  -366,  -366,   -49,  -366,  -366,   358,   319,   293,  -252,
    972     -366,  -365,   -21,    -6,   -65,     1,  -366,  -366,  -366,  -366,
    973     -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,
    974     -366,  -366,  -366,  -366
     971    -364,  -364,  -364,  -364,  -364,  -364,  -364,    72,    -1,    25,
     972    -364,  -364,  -364,   -15,  -364,  -364,   325,   285,   251,  -220,
     973    -364,  -363,   -57,   -46,   -68,     1,  -364,  -364,  -364,  -364,
     974    -364,  -364,  -364,  -364,  -364,  -364,  -364,  -364,  -364,  -364,
     975    -364,  -364,  -364,  -364
    975976};
    976977
     
    979980   number is the opposite.  If zero, do what YYDEFACT says.
    980981   If YYTABLE_NINF, syntax error.  */
    981 #define YYTABLE_NINF -154
     982#define YYTABLE_NINF -155
    982983static const yytype_int16 yytable[] =
    983984{
    984       61,   304,    70,   173,   381,   170,   153,   154,   368,   150,
    985      155,   308,   156,   157,   123,    89,   150,   171,   172,   128,
    986      225,  -154,   151,   122,   151,   155,   148,   381,   157,    97,
    987      330,   103,   101,   148,   151,   151,   151,   331,   369,   131,
    988      226,   274,   276,   124,   101,   101,   101,   101,    70,   151,
    989      144,   101,   151,   104,   127,   278,   155,   134,   293,   157,
    990      186,   155,   151,   151,   157,   169,   120,   121,   294,   305,
    991      105,   151,   139,   155,   151,   143,   157,   306,   148,   146,
    992      367,   151,   379,   106,   151,   107,   366,   396,   167,   168,
    993      158,   159,   160,   161,   162,   101,   163,   267,   136,   164,
    994      165,   108,   101,   268,   166,   178,   159,   160,   161,   162,
    995      198,   163,   253,   201,   149,   165,   285,   204,   148,   166,
    996      109,   149,   286,   110,   185,   216,   217,   215,   188,   190,
    997      191,   192,   193,   194,   195,   196,   224,   199,   111,   161,
    998      162,   202,   163,   179,   279,   162,   126,   163,   230,   129,
    999      166,   101,   153,   154,   218,   166,   155,   162,   156,   157,
    1000      221,  -132,  -132,   101,   103,   280,   149,   166,   153,   154,
    1001      180,   281,   155,   101,   156,   157,   231,   130,   232,   233,
    1002      256,   234,   258,   235,   236,   237,   238,   239,   240,   241,
    1003      242,   101,   132,   150,   133,   148,   101,   148,   135,   250,
    1004      137,   101,  -152,    30,   254,   255,   149,   257,   147,   259,
    1005      181,   282,   261,   170,   100,   153,   154,   182,   283,   155,
    1006      176,   156,   157,   183,   284,   205,   113,   115,   117,   119,
    1007      184,   287,   179,   125,   180,   148,   158,   159,   160,   161,
    1008      162,   181,   163,   182,   290,   164,   165,   148,   333,   334,
    1009      166,   227,   158,   159,   160,   161,   162,   183,   163,   269,
    1010      184,   164,   165,   153,   151,   270,   166,   155,   206,   297,
    1011      157,   220,   298,   104,   356,   337,   301,   175,   303,  -153,
    1012     -133,  -133,   222,   149,   177,   149,   321,   171,   303,   248,
    1013      309,   310,   311,   148,   312,   291,   313,   314,   244,   158,
    1014      159,   160,   161,   162,   263,   163,   339,   338,   164,   165,
    1015     -110,   288,   245,   166,   327,   251,   148,   329,  -110,  -110,
    1016      349,   332,  -112,   149,   335,   107,   357,   108,   358,   340,
    1017     -112,  -112,   350,   214,   351,   149,   365,   110,   359,   111,
    1018      360,   141,   142,   352,   364,   100,   353,   158,   159,   160,
    1019      161,   162,   354,   163,   355,   228,   380,   165,   368,   384,
    1020      383,   166,   392,   303,   393,   102,   140,   373,  -105,   374,
    1021      375,   395,   376,   243,   391,     0,  -105,  -105,   249,     0,
    1022        0,   149,   394,   252,     0,     0,     0,     0,   377,   378,
    1023        0,  -106,     0,     2,     3,     5,     6,   315,   316,  -106,
    1024     -106,     4,     0,     9,   149,     0,   148,     5,     6,     7,
    1025        8,     0,   153,   154,     0,     9,   155,     0,   156,   157,
    1026        0,     0,     0,     0,     0,    10,     0,   153,   154,     0,
    1027        0,   155,     0,   156,   157,   317,   318,   319,   320,    11,
     985      62,   174,    71,   171,   124,   369,   151,   382,    90,   226,
     986     151,   152,   331,   156,   172,   173,   158,   156,   152,   332,
     987     158,   380,   156,   152,   123,   158,   104,   149,   129,    98,
     988     382,   149,   102,   125,   305,   370,   152,   152,   149,   121,
     989     122,   132,   227,   275,   309,   102,   102,   102,   102,    71,
     990     105,   145,   102,   106,   152,   128,   149,   152,   152,   187,
     991     277,   152,   152,   279,   294,   107,   170,   295,   306,   217,
     992     218,   154,   155,   140,   108,   156,   144,   157,   158,   101,
     993     147,   109,   152,   180,   280,   152,   110,   149,   307,   168,
     994     169,   368,   114,   116,   118,   120,   102,   162,   163,   126,
     995     164,   135,   163,   102,   164,   111,   179,   163,   167,   112,
     996     254,   199,   167,   127,   202,   286,   150,   167,   205,   367,
     997     150,   287,  -133,  -133,   130,   186,   131,   150,   216,   189,
     998     191,   192,   193,   194,   195,   196,   197,   225,   200,   149,
     999    -134,  -134,   203,   176,   133,   150,   134,  -155,   136,   231,
     1000     178,   156,   102,   137,   158,   219,   159,   160,   161,   162,
     1001     163,   222,   164,   151,   102,   165,   166,   149,    31,   152,
     1002     167,   228,  -153,   138,   102,   397,   150,   232,   148,   233,
     1003     234,   257,   235,   259,   236,   237,   238,   239,   240,   241,
     1004     242,   243,   102,   149,   104,   281,   149,   102,   171,   215,
     1005     251,   177,   102,   181,   282,   255,   256,   180,   258,   181,
     1006     260,   101,   182,   262,   183,  -110,   182,   283,   183,   284,
     1007     252,   229,   184,  -110,  -110,   154,   155,   185,   150,   156,
     1008     206,   157,   158,   160,   161,   162,   163,   152,   164,   244,
     1009     184,   285,   166,  -112,   250,   291,   167,   185,   288,   253,
     1010     207,  -112,  -112,   154,   155,   221,   150,   156,   223,   157,
     1011     158,   105,   357,   108,   358,   109,   359,   111,   360,   172,
     1012     298,   249,  -105,   299,   338,   112,   361,   302,  -154,   304,
     1013    -105,  -105,   150,   334,   335,   150,   264,   322,   289,   304,
     1014     292,   310,   311,   312,   330,   313,   339,   314,   315,   341,
     1015     142,   143,   365,   350,   381,   369,   351,   340,   352,   245,
     1016     159,   160,   161,   162,   163,   328,   164,   353,   354,   165,
     1017     166,   384,   333,   246,   167,   336,   303,   393,   355,   356,
     1018     385,   394,   103,   141,     0,   392,   396,   366,   159,   160,
     1019     161,   162,   163,     0,   164,     2,     3,   165,   166,     0,
     1020       0,   261,   167,     4,     0,     0,     0,     0,     0,     5,
     1021       6,     7,     8,     0,   304,     0,     0,     9,   374,     0,
     1022     375,   376,    10,   377,     0,   154,   155,     0,    11,   156,
     1023       0,   157,   158,   395,     0,     0,     0,     0,     0,   378,
     1024     379,     0,    12,    13,    14,    15,    16,    17,    18,    19,
     1025      20,    21,    22,    23,    24,    25,    26,    27,     0,    28,
     1026      29,    30,    31,     0,    32,    33,    34,    35,    36,    37,
     1027      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
     1028      48,    49,     0,    50,     0,    51,     0,    52,     0,     0,
     1029       0,    53,     0,   154,   155,    54,     0,   156,    55,   157,
     1030     158,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1031     159,   160,   161,   162,   163,     0,   164,   268,     0,   165,
     1032     166,   154,   155,   269,   167,   156,     0,   157,   158,     0,
     1033       0,     0,     0,     0,     0,     0,   154,   155,     0,     0,
     1034     156,     0,   157,   158,     0,     0,     0,     0,     0,     0,
     1035       0,   154,   155,     0,     0,   156,     0,   157,   158,     0,
     1036       0,     5,     6,   316,   317,     0,   154,   155,     0,     9,
     1037     156,     0,   157,   158,    10,     0,     0,     0,   159,   160,
     1038     161,   162,   163,     0,   164,   270,     0,   165,   166,   154,
     1039     155,   271,   167,   156,     0,   157,   158,     0,     0,     0,
     1040       0,     0,   318,   319,   320,   321,   159,   160,   161,   162,
     1041     163,     0,   164,   273,   149,   165,   166,     0,     0,   274,
     1042     167,   159,   160,   161,   162,   163,   296,   164,   297,   149,
     1043     165,   166,     0,     0,     0,   167,   159,   160,   161,   162,
     1044     163,     0,   164,   300,   149,   165,   166,     0,     0,   301,
     1045     167,   159,   160,   161,   162,   163,   149,   164,   346,     0,
     1046     165,   166,   154,   155,   347,   167,   156,     0,   157,   158,
     1047       0,     0,     0,     0,   159,   160,   161,   162,   163,     0,
     1048     164,   348,     0,   165,   166,   154,   155,   349,   167,   156,
     1049    -106,   157,   158,     0,     0,     0,     0,     0,  -106,  -106,
     1050     154,   155,     0,   150,   156,  -107,   157,   158,     0,     0,
     1051       0,     0,     0,  -107,  -107,   154,   155,     0,   150,   156,
     1052    -108,   157,   158,     0,     0,     0,     0,     0,  -108,  -108,
     1053     154,   155,  -111,   150,   156,     0,   157,   158,     0,     0,
     1054    -111,  -111,     0,     0,     0,   150,     0,   159,   160,   161,
     1055     162,   163,     0,   164,   248,     0,   165,   166,   154,   155,
     1056       0,   167,   156,     0,   157,   158,     0,     0,     0,     0,
     1057     159,   160,   161,   162,   163,     0,   164,     0,     0,   165,
     1058     166,     0,     0,   263,   167,   159,   160,   161,   162,   163,
     1059       0,   164,     0,     0,   165,   166,     0,     0,   265,   167,
     1060     159,   160,   161,   162,   163,     0,   164,   266,     0,   165,
     1061     166,     0,     0,     0,   167,   159,   160,   161,   162,   163,
     1062       0,   164,   267,     0,   165,   166,   154,   155,     0,   167,
     1063     156,     0,   157,   158,     0,     0,     0,     0,     0,     0,
     1064       0,     0,     0,   159,   160,   161,   162,   163,     0,   164,
     1065     272,     0,   165,   166,   154,   155,     0,   167,   156,     0,
     1066     157,   158,     0,     0,     0,     0,     0,     0,     0,   154,
     1067     155,     0,     0,   156,     0,   157,   158,     0,     0,     0,
     1068       0,     0,     0,     0,   154,   155,     0,     0,   156,     0,
     1069     157,   158,     0,     0,     0,     0,     0,     0,     0,   154,
     1070     155,     0,     0,   156,     0,   157,   158,     0,     0,     0,
     1071       0,   159,   160,   161,   162,   163,     0,   164,     0,     0,
     1072     165,   166,   154,   155,   276,   167,   156,     0,   157,   158,
     1073       0,     0,     0,     0,     0,     0,     0,     0,     0,   159,
     1074     160,   161,   162,   163,     0,   164,     0,     0,   165,   166,
     1075       0,     0,   278,   167,   159,   160,   161,   162,   163,     0,
     1076     164,   290,     0,   165,   166,     0,     0,     0,   167,   159,
     1077     160,   161,   162,   163,     0,   164,     0,     0,   165,   166,
     1078       0,     0,   293,   167,   159,   160,   161,   162,   163,     0,
     1079     164,   308,     0,   165,   166,   154,   155,     0,   167,   156,
     1080       0,   157,   158,     0,     0,     0,     0,   159,   160,   161,
     1081     162,   163,     0,   164,     0,     0,   165,   166,   154,   155,
     1082     329,   167,   156,     0,   157,   158,     0,     0,     0,     0,
     1083       0,     0,     0,   154,   155,     0,     0,   156,     0,   157,
     1084     158,     0,     0,     0,     0,     0,     0,     0,   154,   155,
     1085       0,     0,   156,     0,   157,   158,     0,     0,     0,     0,
     1086       0,     0,     0,   154,   155,     0,     0,   156,     0,   157,
     1087     158,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1088     159,   160,   161,   162,   163,     0,   164,     0,     0,   165,
     1089     166,   154,   155,   246,   167,   156,     0,   157,   158,     0,
     1090       0,     0,     0,   159,   160,   161,   162,   163,   337,   164,
     1091       0,     0,   165,   166,     0,     0,     0,   167,   159,   160,
     1092     161,   162,   163,     0,   164,     0,     0,   165,   166,     0,
     1093       0,   342,   167,   159,   160,   161,   162,   163,     0,   164,
     1094     343,     0,   165,   166,     0,     0,     0,   167,   159,   160,
     1095     161,   162,   163,     0,   164,     0,     0,   165,   166,   154,
     1096     155,   344,   167,   156,     0,   157,   158,     0,     0,     0,
     1097       0,     0,     0,     0,     0,     0,   159,   160,   161,   162,
     1098     163,     0,   164,   345,     0,   165,   166,   154,   155,     0,
     1099     167,   156,     0,   157,   158,     0,     0,     0,     0,     0,
     1100       0,     0,   154,   155,     0,     0,   156,     0,   157,   158,
     1101       0,     0,     0,     0,     0,     0,     0,   154,   155,     0,
     1102       0,   156,     0,   157,   158,     0,     0,     0,     0,     0,
     1103       0,     0,   154,   155,     0,     0,   156,     0,   157,   158,
     1104       0,     0,     0,     0,   159,   160,   161,   162,   163,     0,
     1105     164,     0,     0,   165,   166,   154,   155,   362,   167,   156,
     1106       0,   157,   158,     0,     0,     0,     0,     0,     0,     0,
     1107       0,     0,   159,   160,   161,   162,   163,   363,   164,     0,
     1108       0,   165,   166,     0,     0,     0,   167,   159,   160,   161,
     1109     162,   163,     0,   164,   364,     0,   165,   166,     0,     0,
     1110       0,   167,   159,   160,   161,   162,   163,     0,   164,     0,
     1111       0,   165,   166,     0,     0,   386,   167,   159,   160,   161,
     1112     162,   163,     0,   164,     0,     0,   165,   166,   154,   155,
     1113     387,   167,   156,     0,   157,   158,     0,     0,     0,     0,
     1114     159,   160,   161,   162,   163,     0,   164,     0,     0,   165,
     1115     166,   154,   155,   388,   167,   156,     0,   157,   158,     0,
     1116       0,     0,     0,     0,     0,     0,   154,   155,     0,     0,
     1117     156,     0,   157,   158,     0,     0,     0,     0,     0,     0,
     1118       0,   154,   155,     0,     0,   156,     0,   157,   158,     0,
     1119       0,     0,     0,     0,     0,     0,   154,   155,     0,     0,
     1120     156,     0,   157,   158,     0,     0,     0,     0,     0,     0,
     1121       0,     0,     0,   159,   160,   161,   162,   163,     0,   164,
     1122       0,   154,   165,   166,     0,   156,   389,   167,   158,     0,
     1123       0,     0,     0,     0,     0,     0,   159,   160,   161,   162,
     1124     163,     0,   164,     0,     0,   165,   166,     0,     0,   390,
     1125     167,   159,   160,   161,   162,   163,   391,   164,     0,     0,
     1126     165,   166,     0,     0,     0,   167,   159,   160,   161,   162,
     1127     163,     0,   164,     0,     0,   165,   166,     0,     0,     0,
     1128     167,   159,   160,   161,   162,   163,   154,   164,     0,     0,
     1129     156,   166,     0,   158,     0,   167,     0,     0,     0,     0,
     1130       0,     0,     0,     0,     0,     0,   159,   160,   161,   162,
     1131     163,     0,   164,     0,     0,     0,   166,     4,     0,     0,
     1132     167,     0,     0,     5,     6,    91,    92,     0,     0,     0,
     1133       0,     9,     0,     0,     0,     0,    10,     0,     0,     0,
     1134       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1135       0,     0,     0,     0,     0,     0,    12,    13,    14,    15,
     1136      16,    17,    18,    19,    93,    94,    95,    96,     0,     0,
     1137       0,     0,   160,   161,   162,   163,    31,   164,    32,    33,
     1138      34,   166,    36,    37,     4,   167,     0,    41,    42,     0,
     1139       5,     6,    91,    92,     0,    97,     0,     0,     9,    51,
     1140       0,    52,     0,    10,     0,     0,     0,     0,     0,    54,
     1141     198,     0,    55,     0,     0,     0,     0,     0,     0,     0,
     1142       0,     0,     0,    12,    13,    14,    15,    16,    17,    18,
     1143      19,    93,    94,    95,    96,     0,     0,     0,     0,     0,
     1144       0,     0,     0,    31,     0,    32,    33,    34,     0,    36,
     1145      37,     4,     0,     0,    41,    42,     0,     5,     6,    91,
     1146      92,     0,    97,     0,     0,     9,    51,     0,    52,     0,
     1147      10,     0,     0,     0,     0,     0,    54,   201,     0,    55,
     1148       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1149      12,    13,    14,    15,    16,    17,    18,    19,    93,    94,
     1150      95,    96,     0,     0,     0,     0,     0,     0,     0,     0,
     1151      31,     0,    32,    33,    34,     0,    36,    37,     4,     0,
     1152       0,    41,    42,     0,     5,     6,   208,   209,     0,    97,
     1153       0,     0,     9,    51,     0,    52,     0,    10,     0,     0,
     1154       0,     0,     0,    54,   204,     0,    55,     0,     0,     0,
     1155       0,     0,     0,     0,     0,     0,     0,    12,    13,    14,
     1156      15,    16,    17,    18,    19,   210,   211,   212,   213,     0,
     1157       0,     0,     0,     0,     0,     0,     0,    31,     0,    32,
     1158      33,    34,     0,    36,    37,     4,     0,     0,    41,    42,
     1159       0,     5,     6,    91,    92,     0,    97,     0,     0,     9,
     1160      51,     0,    52,     0,    10,     0,     0,     0,     0,     0,
     1161      54,   214,     0,    55,     0,     0,     0,     0,     0,     0,
     1162       0,     0,     0,     0,    12,    13,    14,    15,    16,    17,
     1163      18,    19,    93,    94,    95,    96,     0,     0,     0,     0,
     1164       0,     0,     0,     0,    31,     0,    32,    33,    34,     0,
     1165      36,    37,     4,     0,     0,    41,    42,     0,     5,     6,
     1166      91,    92,     0,    97,     0,     0,     9,    51,     0,    52,
     1167       0,    10,     0,     0,     0,     0,     0,    54,   224,     0,
     1168      55,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1169       0,    12,    13,    14,    15,    16,    17,    18,    19,    93,
     1170      94,    95,    96,     0,     0,     0,     0,     0,     0,     0,
     1171       0,    31,     0,    32,    33,    34,     0,    36,    37,     4,
     1172       0,     0,    41,    42,     0,     5,     6,    91,    92,     0,
     1173      97,     0,     0,     9,    51,     0,    52,     0,    10,     0,
     1174       0,     0,     0,     0,    54,   230,     0,    55,     0,     0,
     1175       0,     0,     0,     0,     0,     0,     0,     0,    12,    13,
     1176      14,    15,    16,    17,    18,    19,    93,    94,    95,    96,
     1177       0,     0,     0,     0,     0,     0,     0,     0,    31,     0,
     1178      32,    33,    34,     0,    36,    37,     4,     0,     0,    41,
     1179      42,     0,     5,     6,    91,    92,     0,    97,     0,     0,
     1180       9,    51,     0,    52,     0,    10,     0,     0,     0,     0,
     1181       0,    54,     0,     0,    55,     0,     0,     0,     0,     0,
     1182       0,     0,     0,     0,     0,    12,    13,    14,    15,    16,
     1183      17,    18,    19,    93,    94,    95,    96,     0,     0,     0,
     1184       0,     0,     0,     0,     0,    31,     0,    32,    33,    34,
     1185       0,    36,    37,     4,     0,     0,    41,    42,     0,     5,
     1186       6,    91,    92,     0,    97,     0,     0,     9,    51,     0,
     1187      52,     0,    10,     0,     0,     0,     0,     0,   100,     0,
     1188       0,    55,     0,     0,     0,     0,     0,     0,     0,     0,
     1189       0,     0,    12,    13,    14,    15,    16,    17,    18,    19,
     1190      93,    94,    95,    96,     0,     0,     0,     0,     0,     0,
     1191       0,     0,    31,     0,    32,    33,    34,     0,    36,    37,
     1192       4,     0,     0,    41,    42,     0,     5,     6,    91,    92,
     1193       0,    97,     0,     0,     9,    51,     0,    52,     0,    10,
     1194       0,     0,     0,     0,     0,   113,     0,     0,    55,     0,
     1195       0,     0,     0,     0,     0,     0,     0,     0,     0,    12,
     1196      13,    14,    15,    16,    17,    18,    19,    93,    94,    95,
     1197      96,     0,     0,     0,     0,     0,     0,     0,     0,    31,
     1198       0,    32,    33,    34,     0,    36,    37,     4,     0,     0,
     1199      41,    42,     0,     5,     6,    91,    92,     0,    97,     0,
     1200       0,     9,    51,     0,    52,     0,    10,     0,     0,     0,
     1201       0,     0,   115,     0,     0,    55,     0,     0,     0,     0,
     1202       0,     0,     0,     0,     0,     0,    12,    13,    14,    15,
     1203      16,    17,    18,    19,    93,    94,    95,    96,     0,     0,
     1204       0,     0,     0,     0,     0,     0,    31,     0,    32,    33,
     1205      34,     0,    36,    37,     4,     0,     0,    41,    42,     0,
     1206       5,     6,    91,    92,     0,    97,     0,     0,     9,    51,
     1207       0,    52,     0,    10,     0,     0,     0,     0,     0,   117,
     1208       0,     0,    55,     0,     0,     0,     0,     0,     0,     0,
     1209       0,     0,     0,    12,    13,    14,    15,    16,    17,    18,
     1210      19,    93,    94,    95,    96,     0,     0,     0,     0,     0,
     1211       0,     0,     0,    31,     0,    32,    33,    34,     0,    36,
     1212      37,     4,     0,     0,    41,    42,     0,     5,     6,   139,
     1213      92,     0,    97,     0,     0,     9,    51,     0,    52,     0,
     1214      10,     0,     0,     0,     0,     0,   119,     0,     0,    55,
     1215       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    10281216      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    1029       22,    23,    24,    25,    26,     0,    27,    28,    29,    30,
    1030      302,    31,    32,    33,    34,    35,    36,    37,    38,    39,
    1031       40,    41,    42,    43,    44,    45,    46,    47,    48,     0,
    1032       49,  -107,    50,     0,    51,     0,     0,     0,    52,  -107,
    1033     -107,     0,    53,     0,   149,    54,   158,   159,   160,   161,
    1034      162,     0,   163,   272,     0,   164,   165,     0,     0,   273,
    1035      166,   158,   159,   160,   161,   162,   295,   163,   296,     0,
    1036      164,   165,   153,   154,     0,   166,   155,     0,   156,   157,
    1037        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1038        0,   155,     0,   156,   157,     0,     0,     0,     0,     0,
    1039        0,     0,   153,   154,     0,     0,   155,     0,   156,   157,
    1040        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1041        0,   155,     0,   156,   157,     0,     0,     0,     0,     0,
    1042        0,     0,   153,   154,     0,     0,   155,     0,   156,   157,
    1043        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1044        0,   155,     0,   156,   157,     0,   158,   159,   160,   161,
    1045      162,     0,   163,   299,     0,   164,   165,     0,     0,   300,
    1046      166,   158,   159,   160,   161,   162,     0,   163,   345,     0,
    1047      164,   165,     0,     0,   346,   166,   158,   159,   160,   161,
    1048      162,     0,   163,   347,     0,   164,   165,     0,     0,   348,
    1049      166,   158,   159,   160,   161,   162,     0,   163,   247,     0,
    1050      164,   165,     0,     0,     0,   166,   158,   159,   160,   161,
    1051      162,     0,   163,     0,     0,   164,   165,     0,     0,   260,
    1052      166,   158,   159,   160,   161,   162,     0,   163,     0,     0,
    1053      164,   165,   153,   154,   262,   166,   155,     0,   156,   157,
    1054        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1055        0,   155,     0,   156,   157,     0,     0,     0,     0,     0,
    1056        0,     0,   153,   154,     0,     0,   155,     0,   156,   157,
    1057        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1058        0,   155,     0,   156,   157,     0,     0,     0,     0,     0,
    1059        0,     0,   153,   154,     0,     0,   155,     0,   156,   157,
    1060        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1061        0,   155,     0,   156,   157,     0,   158,   159,   160,   161,
    1062      162,     0,   163,     0,     0,   164,   165,     0,     0,   264,
    1063      166,   158,   159,   160,   161,   162,     0,   163,   265,     0,
    1064      164,   165,     0,     0,     0,   166,   158,   159,   160,   161,
    1065      162,     0,   163,   266,     0,   164,   165,     0,     0,     0,
    1066      166,   158,   159,   160,   161,   162,     0,   163,   271,     0,
    1067      164,   165,     0,     0,     0,   166,   158,   159,   160,   161,
    1068      162,     0,   163,     0,     0,   164,   165,     0,     0,   275,
    1069      166,   158,   159,   160,   161,   162,     0,   163,     0,     0,
    1070      164,   165,   153,   154,   277,   166,   155,     0,   156,   157,
    1071        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1072        0,   155,     0,   156,   157,     0,     0,     0,     0,     0,
    1073        0,     0,   153,   154,     0,     0,   155,     0,   156,   157,
    1074        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1075        0,   155,     0,   156,   157,     0,     0,     0,     0,     0,
    1076        0,     0,   153,   154,     0,     0,   155,     0,   156,   157,
    1077        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1078        0,   155,     0,   156,   157,     0,   158,   159,   160,   161,
    1079      162,     0,   163,   289,     0,   164,   165,     0,     0,     0,
    1080      166,   158,   159,   160,   161,   162,     0,   163,     0,     0,
    1081      164,   165,     0,     0,   292,   166,   158,   159,   160,   161,
    1082      162,     0,   163,   307,     0,   164,   165,     0,     0,     0,
    1083      166,   158,   159,   160,   161,   162,     0,   163,     0,     0,
    1084      164,   165,     0,     0,   328,   166,   158,   159,   160,   161,
    1085      162,     0,   163,     0,     0,   164,   165,     0,     0,   245,
    1086      166,   158,   159,   160,   161,   162,   336,   163,     0,     0,
    1087      164,   165,   153,   154,     0,   166,   155,     0,   156,   157,
    1088        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1089        0,   155,     0,   156,   157,     0,     0,     0,     0,     0,
    1090        0,     0,   153,   154,     0,     0,   155,     0,   156,   157,
    1091        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1092        0,   155,     0,   156,   157,     0,     0,     0,     0,     0,
    1093        0,     0,   153,   154,     0,     0,   155,     0,   156,   157,
    1094        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1095        0,   155,     0,   156,   157,     0,   158,   159,   160,   161,
    1096      162,     0,   163,     0,     0,   164,   165,     0,     0,   341,
    1097      166,   158,   159,   160,   161,   162,     0,   163,   342,     0,
    1098      164,   165,     0,     0,     0,   166,   158,   159,   160,   161,
    1099      162,     0,   163,     0,     0,   164,   165,     0,     0,   343,
    1100      166,   158,   159,   160,   161,   162,     0,   163,   344,     0,
    1101      164,   165,     0,     0,     0,   166,   158,   159,   160,   161,
    1102      162,     0,   163,     0,     0,   164,   165,     0,     0,   361,
    1103      166,   158,   159,   160,   161,   162,   362,   163,     0,     0,
    1104      164,   165,   153,   154,     0,   166,   155,     0,   156,   157,
    1105        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1106        0,   155,     0,   156,   157,     0,     0,     0,     0,     0,
    1107        0,     0,   153,   154,     0,     0,   155,     0,   156,   157,
    1108        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1109        0,   155,     0,   156,   157,     0,     0,     0,     0,     0,
    1110        0,     0,   153,   154,     0,     0,   155,     0,   156,   157,
    1111        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1112        0,   155,     0,   156,   157,     0,   158,   159,   160,   161,
    1113      162,     0,   163,   363,     0,   164,   165,     0,     0,     0,
    1114      166,   158,   159,   160,   161,   162,     0,   163,     0,     0,
    1115      164,   165,     0,     0,   385,   166,   158,   159,   160,   161,
    1116      162,     0,   163,     0,     0,   164,   165,     0,     0,   386,
    1117      166,   158,   159,   160,   161,   162,     0,   163,   148,     0,
    1118      164,   165,     0,     0,   387,   166,   158,   159,   160,   161,
    1119      162,     0,   163,   148,     0,   164,   165,     0,     0,   388,
    1120      166,   158,   159,   160,   161,   162,     0,   163,     0,     0,
    1121      164,   165,   153,   154,   389,   166,   155,     0,   156,   157,
    1122        0,     0,     0,     0,     0,     0,     0,   153,   154,     0,
    1123        0,   155,     0,   156,   157,     0,     0,     0,     0,     0,
    1124        0,     0,   153,   154,     0,     0,   155,     0,   156,   157,
    1125        0,     0,     0,  -108,     0,     0,   153,     0,     0,     0,
    1126      155,  -108,  -108,   157,     0,     0,   149,     0,  -111,     0,
    1127        0,     0,     0,     0,     0,     0,  -111,  -111,     0,     0,
    1128        0,   149,     0,     0,     0,     0,     0,     0,     0,     0,
    1129        0,     0,     0,     0,     0,     0,   158,   159,   160,   161,
    1130      162,   390,   163,     0,     0,   164,   165,     0,     0,     0,
    1131      166,   158,   159,   160,   161,   162,     0,   163,     0,     0,
    1132      164,   165,     0,     0,     0,   166,   158,   159,   160,   161,
    1133      162,     0,   163,     0,     0,     0,   165,     0,     0,     0,
    1134      166,   159,   160,   161,   162,     0,   163,     0,     0,     4,
    1135      165,     0,     0,     0,   166,     5,     6,    90,    91,     0,
    1136        0,     0,     0,     9,     0,     0,     0,     0,     0,     0,
    1137        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1138        0,     0,     0,     0,     0,     0,     0,    11,    12,    13,
    1139       14,    15,    16,    17,    18,    92,    93,    94,    95,     0,
    1140        0,     0,     0,     0,     0,     0,     0,    30,     0,    31,
    1141       32,    33,     0,    35,    36,     4,     0,     0,    40,    41,
    1142        0,     5,     6,    90,    91,     0,    96,     0,     0,     9,
    1143       50,     0,    51,     0,     0,     0,     0,     0,     0,     0,
    1144       53,   197,     0,    54,     0,     0,     0,     0,     0,     0,
    1145        0,     0,     0,    11,    12,    13,    14,    15,    16,    17,
    1146       18,    92,    93,    94,    95,     0,     0,     0,     0,     0,
    1147        0,     0,     0,    30,     0,    31,    32,    33,     0,    35,
    1148       36,     4,     0,     0,    40,    41,     0,     5,     6,    90,
    1149       91,     0,    96,     0,     0,     9,    50,     0,    51,     0,
    1150        0,     0,     0,     0,     0,     0,    53,   200,     0,    54,
    1151        0,     0,     0,     0,     0,     0,     0,     0,     0,    11,
    1152       12,    13,    14,    15,    16,    17,    18,    92,    93,    94,
    1153       95,     0,     0,     0,     0,     0,     0,     0,     0,    30,
    1154        0,    31,    32,    33,     0,    35,    36,     4,     0,     0,
    1155       40,    41,     0,     5,     6,   207,   208,     0,    96,     0,
    1156        0,     9,    50,     0,    51,     0,     0,     0,     0,     0,
    1157        0,     0,    53,   203,     0,    54,     0,     0,     0,     0,
    1158        0,     0,     0,     0,     0,    11,    12,    13,    14,    15,
    1159       16,    17,    18,   209,   210,   211,   212,     0,     0,     0,
    1160        0,     0,     0,     0,     0,    30,     0,    31,    32,    33,
    1161        0,    35,    36,     4,     0,     0,    40,    41,     0,     5,
    1162        6,    90,    91,     0,    96,     0,     0,     9,    50,     0,
    1163       51,     0,     0,     0,     0,     0,     0,     0,    53,   213,
    1164        0,    54,     0,     0,     0,     0,     0,     0,     0,     0,
    1165        0,    11,    12,    13,    14,    15,    16,    17,    18,    92,
    1166       93,    94,    95,     0,     0,     0,     0,     0,     0,     0,
    1167        0,    30,     0,    31,    32,    33,     0,    35,    36,     4,
    1168        0,     0,    40,    41,     0,     5,     6,    90,    91,     0,
    1169       96,     0,     0,     9,    50,     0,    51,     0,     0,     0,
    1170        0,     0,     0,     0,    53,   223,     0,    54,     0,     0,
    1171        0,     0,     0,     0,     0,     0,     0,    11,    12,    13,
    1172       14,    15,    16,    17,    18,    92,    93,    94,    95,     0,
    1173        0,     0,     0,     0,     0,     0,     0,    30,     0,    31,
    1174       32,    33,     0,    35,    36,     4,     0,     0,    40,    41,
    1175        0,     5,     6,    90,    91,     0,    96,     0,     0,     9,
    1176       50,     0,    51,     0,     0,     0,     0,     0,     0,     0,
    1177       53,   229,     0,    54,     0,     0,     0,     0,     0,     0,
    1178        0,     0,     0,    11,    12,    13,    14,    15,    16,    17,
    1179       18,    92,    93,    94,    95,     0,     0,     0,     0,     0,
    1180        0,     0,     0,    30,     0,    31,    32,    33,     0,    35,
    1181       36,     4,     0,     0,    40,    41,     0,     5,     6,    90,
    1182       91,     0,    96,     0,     0,     9,    50,     0,    51,     0,
    1183        0,     0,     0,     0,     0,     0,    53,     0,     0,    54,
    1184        0,     0,     0,     0,     0,     0,     0,     0,     0,    11,
    1185       12,    13,    14,    15,    16,    17,    18,    92,    93,    94,
    1186       95,     0,     0,     0,     0,     0,     0,     0,     0,    30,
    1187        0,    31,    32,    33,     0,    35,    36,     4,     0,     0,
    1188       40,    41,     0,     5,     6,    90,    91,     0,    96,     0,
    1189        0,     9,    50,     0,    51,     0,     0,     0,     0,     0,
    1190        0,     0,    99,     0,     0,    54,     0,     0,     0,     0,
    1191        0,     0,     0,     0,     0,    11,    12,    13,    14,    15,
    1192       16,    17,    18,    92,    93,    94,    95,     0,     0,     0,
    1193        0,     0,     0,     0,     0,    30,     0,    31,    32,    33,
    1194        0,    35,    36,     4,     0,     0,    40,    41,     0,     5,
    1195        6,    90,    91,     0,    96,     0,     0,     9,    50,     0,
    1196       51,     0,     0,     0,     0,     0,     0,     0,   112,     0,
    1197        0,    54,     0,     0,     0,     0,     0,     0,     0,     0,
    1198        0,    11,    12,    13,    14,    15,    16,    17,    18,    92,
    1199       93,    94,    95,     0,     0,     0,     0,     0,     0,     0,
    1200        0,    30,     0,    31,    32,    33,     0,    35,    36,     4,
    1201        0,     0,    40,    41,     0,     5,     6,    90,    91,     0,
    1202       96,     0,     0,     9,    50,     0,    51,     0,     0,     0,
    1203        0,     0,     0,     0,   114,     0,     0,    54,     0,     0,
    1204        0,     0,     0,     0,     0,     0,     0,    11,    12,    13,
    1205       14,    15,    16,    17,    18,    92,    93,    94,    95,     0,
    1206        0,     0,     0,     0,     0,     0,     0,    30,     0,    31,
    1207       32,    33,     0,    35,    36,     4,     0,     0,    40,    41,
    1208        0,     5,     6,    90,    91,     0,    96,     0,     0,     9,
    1209       50,     0,    51,     0,     0,     0,     0,     0,     0,     0,
    1210      116,     0,     0,    54,     0,     0,     0,     0,     0,     0,
    1211        0,     0,     0,    11,    12,    13,    14,    15,    16,    17,
    1212       18,    92,    93,    94,    95,     0,     0,     0,     0,     0,
    1213        0,     0,     0,    30,     0,    31,    32,    33,     0,    35,
    1214       36,     4,     0,     0,    40,    41,     0,     5,     6,   138,
    1215       91,     0,    96,     0,     0,     9,    50,     0,    51,     0,
    1216        0,     0,     0,     0,     0,     0,   118,     0,     0,    54,
    1217        0,     0,     0,     0,     0,     0,     0,     0,     0,    11,
    1218       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    1219       22,     0,     0,     0,     0,     0,     0,     0,     0,    30,
    1220        0,    31,    32,    33,     0,    35,    36,     4,     0,     0,
    1221       40,    41,     0,     5,     6,    90,    91,     0,    96,     0,
    1222        0,     9,    50,     0,    51,     0,     0,     0,     0,     0,
    1223        0,     0,    53,     0,     0,    54,     0,     0,     0,     0,
    1224        0,     0,     0,     0,     0,    11,    12,    13,    14,    15,
    1225       16,    17,    18,    92,    93,    94,    95,     0,     0,     0,
    1226        0,     0,     0,     0,     0,    30,     0,    31,    32,    33,
    1227        0,    35,    36,     4,     0,     0,    40,    41,     0,     5,
    1228        6,    90,    91,     0,    96,     0,     0,     9,    50,     0,
    1229       51,     0,     0,     0,     0,     0,     0,     0,   174,     0,
    1230        0,    54,     0,     0,     0,     0,     0,     0,     0,     0,
    1231        0,    11,    12,    13,    14,    15,    16,    17,    18,    92,
    1232       93,    94,    95,     0,     0,     0,     0,     0,     0,     0,
    1233        0,    30,     0,    31,    32,    33,     0,    35,    36,     4,
    1234        0,     0,    40,    41,     0,     5,     6,    90,    91,     0,
    1235       96,     0,     0,     9,    50,     0,    51,     0,     0,     0,
    1236        0,     0,     0,     0,   187,     0,     0,    54,     0,     0,
    1237        0,     0,     0,     0,     0,     0,     0,   322,    12,    13,
    1238      323,   324,    16,   325,   326,    92,    93,    94,    95,     0,
    1239        0,     0,     0,     0,     0,     0,     0,    30,     0,    31,
    1240       32,    33,     0,    35,    36,     0,     0,     0,    40,    41,
    1241        0,     0,     0,     0,     0,     0,    96,     0,     0,     0,
    1242       50,     0,    51,     0,     0,     0,     0,     0,     0,     0,
    1243       53,     0,     0,    54
     1217      22,    23,     0,     0,     0,     0,     0,     0,     0,     0,
     1218      31,     0,    32,    33,    34,     0,    36,    37,     4,     0,
     1219       0,    41,    42,     0,     5,     6,    91,    92,     0,    97,
     1220       0,     0,     9,    51,     0,    52,     0,    10,     0,     0,
     1221       0,     0,     0,    54,     0,     0,    55,     0,     0,     0,
     1222       0,     0,     0,     0,     0,     0,     0,    12,    13,    14,
     1223      15,    16,    17,    18,    19,    93,    94,    95,    96,     0,
     1224       0,     0,     0,     0,     0,     0,     0,    31,     0,    32,
     1225      33,    34,     0,    36,    37,     4,     0,     0,    41,    42,
     1226       0,     5,     6,    91,    92,     0,    97,     0,     0,     9,
     1227      51,     0,    52,     0,    10,     0,     0,     0,     0,     0,
     1228     175,     0,     0,    55,     0,     0,     0,     0,     0,     0,
     1229       0,     0,     0,     0,    12,    13,    14,    15,    16,    17,
     1230      18,    19,    93,    94,    95,    96,     0,     0,     0,     0,
     1231       0,     0,     0,     0,    31,     0,    32,    33,    34,     0,
     1232      36,    37,     4,     0,     0,    41,    42,     0,     5,     6,
     1233      91,    92,     0,    97,     0,     0,     9,    51,     0,    52,
     1234       0,    10,     0,     0,     0,     0,     0,   188,     0,     0,
     1235      55,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1236       0,   323,    13,    14,   324,   325,    17,   326,   327,    93,
     1237      94,    95,    96,     0,     0,     0,     0,     0,     0,     0,
     1238       0,    31,     0,    32,    33,    34,     0,    36,    37,     0,
     1239       0,     0,    41,    42,     0,     0,     0,     0,     0,     0,
     1240      97,     0,     0,     0,    51,     0,    52,     0,     0,     0,
     1241       0,     0,     0,     0,    54,     0,     0,    55
    12441242};
    12451243
    12461244static const yytype_int16 yycheck[] =
    12471245{
    1248        1,   253,     1,    68,   369,    12,     3,     4,    69,    86,
    1249        7,   263,     9,    10,    66,    95,    86,    94,    95,    66,
    1250       92,     3,    94,    24,    94,     7,    11,   392,    10,     4,
    1251       67,    99,     7,    11,    94,    94,    94,    74,    99,    67,
    1252      100,   100,   100,    95,    19,    20,    21,    22,    47,    94,
    1253       51,    26,    94,    99,    29,   100,     7,    66,   100,    10,
    1254       67,     7,    94,    94,    10,    66,    66,    67,   100,   100,
    1255       99,    94,    47,     7,    94,    50,    10,   100,    11,    54,
    1256      100,    94,    92,    99,    94,    99,   338,   100,    63,    64,
    1257       87,    88,    89,    90,    91,    70,    93,    94,    66,    96,
    1258       97,    99,    77,   100,   101,    80,    88,    89,    90,    91,
    1259      111,    93,   177,   114,    99,    97,    94,   118,    11,   101,
    1260       99,    99,   100,    99,    99,    66,    67,   126,   103,   104,
    1261      105,   106,   107,   108,   109,   110,   137,   112,    99,    90,
    1262       91,   116,    93,    99,   100,    91,    99,    93,   149,    99,
    1263      101,   126,     3,     4,   129,   101,     7,    91,     9,    10,
    1264      135,    94,    95,   138,    99,   100,    99,   101,     3,     4,
    1265       99,   100,     7,   148,     9,    10,   151,    99,   153,   154,
    1266      181,   156,   183,   158,   159,   160,   161,   162,   163,   164,
    1267      165,   166,    99,    86,    99,    11,   171,    11,    99,   174,
    1268       99,   176,    95,    66,   179,   180,    99,   182,    95,   184,
    1269       99,   100,   187,    12,     7,     3,     4,    99,   100,     7,
    1270       94,     9,    10,    99,   100,    95,    19,    20,    21,    22,
    1271       99,   100,    99,    26,    99,    11,    87,    88,    89,    90,
    1272       91,    99,    93,    99,   219,    96,    97,    11,   297,   298,
    1273      101,   102,    87,    88,    89,    90,    91,    99,    93,    94,
    1274       99,    96,    97,     3,    94,   100,   101,     7,    95,   244,
    1275       10,    66,   247,    99,   100,    91,   251,    70,   253,    95,
    1276       94,    95,    67,    99,    77,    99,   285,    94,   263,    67,
    1277      265,   266,   267,    11,   269,    66,   271,   272,    86,    87,
    1278       88,    89,    90,    91,    94,    93,   307,    94,    96,    97,
    1279       86,    67,   100,   101,   289,    91,    11,    67,    94,    95,
    1280      100,   296,    86,    99,   299,    99,   100,    99,   100,    94,
    1281       94,    95,   100,   126,   100,    99,   337,    99,   100,    99,
    1282      100,    48,    49,   100,    91,   138,   100,    87,    88,    89,
    1283       90,    91,   100,    93,   100,   148,    94,    97,    69,   100,
    1284       99,   101,    94,   338,   100,     7,    47,   342,    86,   344,
    1285      345,   392,   347,   166,   380,    -1,    94,    95,   171,    -1,
    1286       -1,    99,   383,   176,    -1,    -1,    -1,    -1,   363,   364,
    1287       -1,    86,    -1,     0,     1,    14,    15,    16,    17,    94,
    1288       95,     8,    -1,    22,    99,    -1,    11,    14,    15,    16,
    1289       17,    -1,     3,     4,    -1,    22,     7,    -1,     9,    10,
    1290       -1,    -1,    -1,    -1,    -1,    32,    -1,     3,     4,    -1,
    1291       -1,     7,    -1,     9,    10,    54,    55,    56,    57,    46,
    1292       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
    1293       57,    58,    59,    60,    61,    -1,    63,    64,    65,    66,
    1294      253,    68,    69,    70,    71,    72,    73,    74,    75,    76,
    1295       77,    78,    79,    80,    81,    82,    83,    84,    85,    -1,
    1296       87,    86,    89,    -1,    91,    -1,    -1,    -1,    95,    94,
    1297       95,    -1,    99,    -1,    99,   102,    87,    88,    89,    90,
    1298       91,    -1,    93,    94,    -1,    96,    97,    -1,    -1,   100,
    1299      101,    87,    88,    89,    90,    91,    92,    93,    94,    -1,
    1300       96,    97,     3,     4,    -1,   101,     7,    -1,     9,    10,
    1301       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1302       -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
     1246       1,    69,     1,    12,    67,    70,    87,   370,    96,    93,
     1247      87,    95,    68,     7,    95,    96,    10,     7,    95,    75,
     1248      10,    93,     7,    95,    25,    10,   100,    11,    67,     4,
     1249     393,    11,     7,    96,   254,   100,    95,    95,    11,    67,
     1250      68,    68,   101,   101,   264,    20,    21,    22,    23,    48,
     1251     100,    52,    27,   100,    95,    30,    11,    95,    95,    68,
     1252     101,    95,    95,   101,   101,   100,    67,   101,   101,    67,
     1253      68,     3,     4,    48,   100,     7,    51,     9,    10,     7,
     1254      55,   100,    95,   100,   101,    95,   100,    11,   101,    64,
     1255      65,   101,    20,    21,    22,    23,    71,    91,    92,    27,
     1256      94,    67,    92,    78,    94,   100,    81,    92,   102,   100,
     1257     178,   112,   102,   100,   115,    95,   100,   102,   119,   339,
     1258     100,   101,    95,    96,   100,   100,   100,   100,   127,   104,
     1259     105,   106,   107,   108,   109,   110,   111,   138,   113,    11,
     1260      95,    96,   117,    71,   100,   100,   100,     3,   100,   150,
     1261      78,     7,   127,    67,    10,   130,    88,    89,    90,    91,
     1262      92,   136,    94,    87,   139,    97,    98,    11,    67,    95,
     1263     102,   103,    96,   100,   149,   101,   100,   152,    96,   154,
     1264     155,   182,   157,   184,   159,   160,   161,   162,   163,   164,
     1265     165,   166,   167,    11,   100,   101,    11,   172,    12,   127,
     1266     175,    95,   177,   100,   101,   180,   181,   100,   183,   100,
     1267     185,   139,   100,   188,   100,    87,   100,   101,   100,   101,
     1268      92,   149,   100,    95,    96,     3,     4,   100,   100,     7,
     1269      96,     9,    10,    89,    90,    91,    92,    95,    94,   167,
     1270     100,   101,    98,    87,   172,   220,   102,   100,   101,   177,
     1271      96,    95,    96,     3,     4,    67,   100,     7,    68,     9,
     1272      10,   100,   101,   100,   101,   100,   101,   100,   101,    95,
     1273     245,    68,    87,   248,    92,   100,   101,   252,    96,   254,
     1274      95,    96,   100,   298,   299,   100,    95,   286,    68,   264,
     1275      67,   266,   267,   268,    68,   270,    95,   272,   273,    95,
     1276      49,    50,    92,   101,    95,    70,   101,   308,   101,    87,
     1277      88,    89,    90,    91,    92,   290,    94,   101,   101,    97,
     1278      98,   100,   297,   101,   102,   300,   254,    95,   101,   101,
     1279     101,   101,     7,    48,    -1,   381,   393,   338,    88,    89,
     1280      90,    91,    92,    -1,    94,     0,     1,    97,    98,    -1,
     1281      -1,   101,   102,     8,    -1,    -1,    -1,    -1,    -1,    14,
     1282      15,    16,    17,    -1,   339,    -1,    -1,    22,   343,    -1,
     1283     345,   346,    27,   348,    -1,     3,     4,    -1,    33,     7,
     1284      -1,     9,    10,   384,    -1,    -1,    -1,    -1,    -1,   364,
     1285     365,    -1,    47,    48,    49,    50,    51,    52,    53,    54,
     1286      55,    56,    57,    58,    59,    60,    61,    62,    -1,    64,
     1287      65,    66,    67,    -1,    69,    70,    71,    72,    73,    74,
     1288      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
     1289      85,    86,    -1,    88,    -1,    90,    -1,    92,    -1,    -1,
     1290      -1,    96,    -1,     3,     4,   100,    -1,     7,   103,     9,
     1291      10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     1292      88,    89,    90,    91,    92,    -1,    94,    95,    -1,    97,
     1293      98,     3,     4,   101,   102,     7,    -1,     9,    10,    -1,
     1294      -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,    -1,
     1295       7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,
     1296      -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,    -1,
     1297      -1,    14,    15,    16,    17,    -1,     3,     4,    -1,    22,
     1298       7,    -1,     9,    10,    27,    -1,    -1,    -1,    88,    89,
     1299      90,    91,    92,    -1,    94,    95,    -1,    97,    98,     3,
     1300       4,   101,   102,     7,    -1,     9,    10,    -1,    -1,    -1,
     1301      -1,    -1,    55,    56,    57,    58,    88,    89,    90,    91,
     1302      92,    -1,    94,    95,    11,    97,    98,    -1,    -1,   101,
     1303     102,    88,    89,    90,    91,    92,    93,    94,    95,    11,
     1304      97,    98,    -1,    -1,    -1,   102,    88,    89,    90,    91,
     1305      92,    -1,    94,    95,    11,    97,    98,    -1,    -1,   101,
     1306     102,    88,    89,    90,    91,    92,    11,    94,    95,    -1,
     1307      97,    98,     3,     4,   101,   102,     7,    -1,     9,    10,
     1308      -1,    -1,    -1,    -1,    88,    89,    90,    91,    92,    -1,
     1309      94,    95,    -1,    97,    98,     3,     4,   101,   102,     7,
     1310      87,     9,    10,    -1,    -1,    -1,    -1,    -1,    95,    96,
     1311       3,     4,    -1,   100,     7,    87,     9,    10,    -1,    -1,
     1312      -1,    -1,    -1,    95,    96,     3,     4,    -1,   100,     7,
     1313      87,     9,    10,    -1,    -1,    -1,    -1,    -1,    95,    96,
     1314       3,     4,    87,   100,     7,    -1,     9,    10,    -1,    -1,
     1315      95,    96,    -1,    -1,    -1,   100,    -1,    88,    89,    90,
     1316      91,    92,    -1,    94,    95,    -1,    97,    98,     3,     4,
     1317      -1,   102,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,
     1318      88,    89,    90,    91,    92,    -1,    94,    -1,    -1,    97,
     1319      98,    -1,    -1,   101,   102,    88,    89,    90,    91,    92,
     1320      -1,    94,    -1,    -1,    97,    98,    -1,    -1,   101,   102,
     1321      88,    89,    90,    91,    92,    -1,    94,    95,    -1,    97,
     1322      98,    -1,    -1,    -1,   102,    88,    89,    90,    91,    92,
     1323      -1,    94,    95,    -1,    97,    98,     3,     4,    -1,   102,
     1324       7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,
     1325      -1,    -1,    -1,    88,    89,    90,    91,    92,    -1,    94,
     1326      95,    -1,    97,    98,     3,     4,    -1,   102,     7,    -1,
     1327       9,    10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
     1328       4,    -1,    -1,     7,    -1,     9,    10,    -1,    -1,    -1,
     1329      -1,    -1,    -1,    -1,     3,     4,    -1,    -1,     7,    -1,
     1330       9,    10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
     1331       4,    -1,    -1,     7,    -1,     9,    10,    -1,    -1,    -1,
     1332      -1,    88,    89,    90,    91,    92,    -1,    94,    -1,    -1,
     1333      97,    98,     3,     4,   101,   102,     7,    -1,     9,    10,
     1334      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,
     1335      89,    90,    91,    92,    -1,    94,    -1,    -1,    97,    98,
     1336      -1,    -1,   101,   102,    88,    89,    90,    91,    92,    -1,
     1337      94,    95,    -1,    97,    98,    -1,    -1,    -1,   102,    88,
     1338      89,    90,    91,    92,    -1,    94,    -1,    -1,    97,    98,
     1339      -1,    -1,   101,   102,    88,    89,    90,    91,    92,    -1,
     1340      94,    95,    -1,    97,    98,     3,     4,    -1,   102,     7,
     1341      -1,     9,    10,    -1,    -1,    -1,    -1,    88,    89,    90,
     1342      91,    92,    -1,    94,    -1,    -1,    97,    98,     3,     4,
     1343     101,   102,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,
     1344      -1,    -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,
     1345      10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
     1346      -1,    -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,
     1347      -1,    -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,
     1348      10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     1349      88,    89,    90,    91,    92,    -1,    94,    -1,    -1,    97,
     1350      98,     3,     4,   101,   102,     7,    -1,     9,    10,    -1,
     1351      -1,    -1,    -1,    88,    89,    90,    91,    92,    93,    94,
     1352      -1,    -1,    97,    98,    -1,    -1,    -1,   102,    88,    89,
     1353      90,    91,    92,    -1,    94,    -1,    -1,    97,    98,    -1,
     1354      -1,   101,   102,    88,    89,    90,    91,    92,    -1,    94,
     1355      95,    -1,    97,    98,    -1,    -1,    -1,   102,    88,    89,
     1356      90,    91,    92,    -1,    94,    -1,    -1,    97,    98,     3,
     1357       4,   101,   102,     7,    -1,     9,    10,    -1,    -1,    -1,
     1358      -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,    91,
     1359      92,    -1,    94,    95,    -1,    97,    98,     3,     4,    -1,
     1360     102,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
    13031361      -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,
    13041362      -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    13051363      -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
    13061364      -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,
    1307       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1308       -1,     7,    -1,     9,    10,    -1,    87,    88,    89,    90,
    1309       91,    -1,    93,    94,    -1,    96,    97,    -1,    -1,   100,
    1310      101,    87,    88,    89,    90,    91,    -1,    93,    94,    -1,
    1311       96,    97,    -1,    -1,   100,   101,    87,    88,    89,    90,
    1312       91,    -1,    93,    94,    -1,    96,    97,    -1,    -1,   100,
    1313      101,    87,    88,    89,    90,    91,    -1,    93,    94,    -1,
    1314       96,    97,    -1,    -1,    -1,   101,    87,    88,    89,    90,
    1315       91,    -1,    93,    -1,    -1,    96,    97,    -1,    -1,   100,
    1316      101,    87,    88,    89,    90,    91,    -1,    93,    -1,    -1,
    1317       96,    97,     3,     4,   100,   101,     7,    -1,     9,    10,
    1318       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1319       -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
    1320       -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,
    1321       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1322       -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
    1323       -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,
    1324       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1325       -1,     7,    -1,     9,    10,    -1,    87,    88,    89,    90,
    1326       91,    -1,    93,    -1,    -1,    96,    97,    -1,    -1,   100,
    1327      101,    87,    88,    89,    90,    91,    -1,    93,    94,    -1,
    1328       96,    97,    -1,    -1,    -1,   101,    87,    88,    89,    90,
    1329       91,    -1,    93,    94,    -1,    96,    97,    -1,    -1,    -1,
    1330      101,    87,    88,    89,    90,    91,    -1,    93,    94,    -1,
    1331       96,    97,    -1,    -1,    -1,   101,    87,    88,    89,    90,
    1332       91,    -1,    93,    -1,    -1,    96,    97,    -1,    -1,   100,
    1333      101,    87,    88,    89,    90,    91,    -1,    93,    -1,    -1,
    1334       96,    97,     3,     4,   100,   101,     7,    -1,     9,    10,
    1335       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1336       -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
    1337       -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,
    1338       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1339       -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
    1340       -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,
    1341       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1342       -1,     7,    -1,     9,    10,    -1,    87,    88,    89,    90,
    1343       91,    -1,    93,    94,    -1,    96,    97,    -1,    -1,    -1,
    1344      101,    87,    88,    89,    90,    91,    -1,    93,    -1,    -1,
    1345       96,    97,    -1,    -1,   100,   101,    87,    88,    89,    90,
    1346       91,    -1,    93,    94,    -1,    96,    97,    -1,    -1,    -1,
    1347      101,    87,    88,    89,    90,    91,    -1,    93,    -1,    -1,
    1348       96,    97,    -1,    -1,   100,   101,    87,    88,    89,    90,
    1349       91,    -1,    93,    -1,    -1,    96,    97,    -1,    -1,   100,
    1350      101,    87,    88,    89,    90,    91,    92,    93,    -1,    -1,
    1351       96,    97,     3,     4,    -1,   101,     7,    -1,     9,    10,
    1352       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1353       -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
    1354       -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,
    1355       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1356       -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
    1357       -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,
    1358       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1359       -1,     7,    -1,     9,    10,    -1,    87,    88,    89,    90,
    1360       91,    -1,    93,    -1,    -1,    96,    97,    -1,    -1,   100,
    1361      101,    87,    88,    89,    90,    91,    -1,    93,    94,    -1,
    1362       96,    97,    -1,    -1,    -1,   101,    87,    88,    89,    90,
    1363       91,    -1,    93,    -1,    -1,    96,    97,    -1,    -1,   100,
    1364      101,    87,    88,    89,    90,    91,    -1,    93,    94,    -1,
    1365       96,    97,    -1,    -1,    -1,   101,    87,    88,    89,    90,
    1366       91,    -1,    93,    -1,    -1,    96,    97,    -1,    -1,   100,
    1367      101,    87,    88,    89,    90,    91,    92,    93,    -1,    -1,
    1368       96,    97,     3,     4,    -1,   101,     7,    -1,     9,    10,
    1369       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1370       -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
    1371       -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,
    1372       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1373       -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
    1374       -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,
    1375       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1376       -1,     7,    -1,     9,    10,    -1,    87,    88,    89,    90,
    1377       91,    -1,    93,    94,    -1,    96,    97,    -1,    -1,    -1,
    1378      101,    87,    88,    89,    90,    91,    -1,    93,    -1,    -1,
    1379       96,    97,    -1,    -1,   100,   101,    87,    88,    89,    90,
    1380       91,    -1,    93,    -1,    -1,    96,    97,    -1,    -1,   100,
    1381      101,    87,    88,    89,    90,    91,    -1,    93,    11,    -1,
    1382       96,    97,    -1,    -1,   100,   101,    87,    88,    89,    90,
    1383       91,    -1,    93,    11,    -1,    96,    97,    -1,    -1,   100,
    1384      101,    87,    88,    89,    90,    91,    -1,    93,    -1,    -1,
    1385       96,    97,     3,     4,   100,   101,     7,    -1,     9,    10,
    1386       -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,
    1387       -1,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
    1388       -1,    -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,
    1389       -1,    -1,    -1,    86,    -1,    -1,     3,    -1,    -1,    -1,
    1390        7,    94,    95,    10,    -1,    -1,    99,    -1,    86,    -1,
    1391       -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    -1,    -1,
    1392       -1,    99,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1393       -1,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,    90,
    1394       91,    92,    93,    -1,    -1,    96,    97,    -1,    -1,    -1,
    1395      101,    87,    88,    89,    90,    91,    -1,    93,    -1,    -1,
    1396       96,    97,    -1,    -1,    -1,   101,    87,    88,    89,    90,
    1397       91,    -1,    93,    -1,    -1,    -1,    97,    -1,    -1,    -1,
    1398      101,    88,    89,    90,    91,    -1,    93,    -1,    -1,     8,
    1399       97,    -1,    -1,    -1,   101,    14,    15,    16,    17,    -1,
    1400       -1,    -1,    -1,    22,    -1,    -1,    -1,    -1,    -1,    -1,
     1365      -1,    -1,    -1,    -1,    88,    89,    90,    91,    92,    -1,
     1366      94,    -1,    -1,    97,    98,     3,     4,   101,   102,     7,
     1367      -1,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     1368      -1,    -1,    88,    89,    90,    91,    92,    93,    94,    -1,
     1369      -1,    97,    98,    -1,    -1,    -1,   102,    88,    89,    90,
     1370      91,    92,    -1,    94,    95,    -1,    97,    98,    -1,    -1,
     1371      -1,   102,    88,    89,    90,    91,    92,    -1,    94,    -1,
     1372      -1,    97,    98,    -1,    -1,   101,   102,    88,    89,    90,
     1373      91,    92,    -1,    94,    -1,    -1,    97,    98,     3,     4,
     1374     101,   102,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,
     1375      88,    89,    90,    91,    92,    -1,    94,    -1,    -1,    97,
     1376      98,     3,     4,   101,   102,     7,    -1,     9,    10,    -1,
     1377      -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,    -1,
     1378       7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,
     1379      -1,     3,     4,    -1,    -1,     7,    -1,     9,    10,    -1,
     1380      -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,    -1,
     1381       7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,    -1,
     1382      -1,    -1,    -1,    88,    89,    90,    91,    92,    -1,    94,
     1383      -1,     3,    97,    98,    -1,     7,   101,   102,    10,    -1,
     1384      -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,    91,
     1385      92,    -1,    94,    -1,    -1,    97,    98,    -1,    -1,   101,
     1386     102,    88,    89,    90,    91,    92,    93,    94,    -1,    -1,
     1387      97,    98,    -1,    -1,    -1,   102,    88,    89,    90,    91,
     1388      92,    -1,    94,    -1,    -1,    97,    98,    -1,    -1,    -1,
     1389     102,    88,    89,    90,    91,    92,     3,    94,    -1,    -1,
     1390       7,    98,    -1,    10,    -1,   102,    -1,    -1,    -1,    -1,
     1391      -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,    91,
     1392      92,    -1,    94,    -1,    -1,    -1,    98,     8,    -1,    -1,
     1393     102,    -1,    -1,    14,    15,    16,    17,    -1,    -1,    -1,
     1394      -1,    22,    -1,    -1,    -1,    -1,    27,    -1,    -1,    -1,
    14011395      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1402       -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,    47,    48,
    1403       49,    50,    51,    52,    53,    54,    55,    56,    57,    -1,
    1404       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,
    1405       69,    70,    -1,    72,    73,     8,    -1,    -1,    77,    78,
    1406       -1,    14,    15,    16,    17,    -1,    85,    -1,    -1,    22,
    1407       89,    -1,    91,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1408       99,   100,    -1,   102,    -1,    -1,    -1,    -1,    -1,    -1,
    1409       -1,    -1,    -1,    46,    47,    48,    49,    50,    51,    52,
    1410       53,    54,    55,    56,    57,    -1,    -1,    -1,    -1,    -1,
    1411       -1,    -1,    -1,    66,    -1,    68,    69,    70,    -1,    72,
    1412       73,     8,    -1,    -1,    77,    78,    -1,    14,    15,    16,
    1413       17,    -1,    85,    -1,    -1,    22,    89,    -1,    91,    -1,
    1414       -1,    -1,    -1,    -1,    -1,    -1,    99,   100,    -1,   102,
    1415       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,
     1396      -1,    -1,    -1,    -1,    -1,    -1,    47,    48,    49,    50,
     1397      51,    52,    53,    54,    55,    56,    57,    58,    -1,    -1,
     1398      -1,    -1,    89,    90,    91,    92,    67,    94,    69,    70,
     1399      71,    98,    73,    74,     8,   102,    -1,    78,    79,    -1,
     1400      14,    15,    16,    17,    -1,    86,    -1,    -1,    22,    90,
     1401      -1,    92,    -1,    27,    -1,    -1,    -1,    -1,    -1,   100,
     1402     101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     1403      -1,    -1,    -1,    47,    48,    49,    50,    51,    52,    53,
     1404      54,    55,    56,    57,    58,    -1,    -1,    -1,    -1,    -1,
     1405      -1,    -1,    -1,    67,    -1,    69,    70,    71,    -1,    73,
     1406      74,     8,    -1,    -1,    78,    79,    -1,    14,    15,    16,
     1407      17,    -1,    86,    -1,    -1,    22,    90,    -1,    92,    -1,
     1408      27,    -1,    -1,    -1,    -1,    -1,   100,   101,    -1,   103,
     1409      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    14161410      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
    1417       57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
    1418       -1,    68,    69,    70,    -1,    72,    73,     8,    -1,    -1,
    1419       77,    78,    -1,    14,    15,    16,    17,    -1,    85,    -1,
    1420       -1,    22,    89,    -1,    91,    -1,    -1,    -1,    -1,    -1,
    1421       -1,    -1,    99,   100,    -1,   102,    -1,    -1,    -1,    -1,
    1422       -1,    -1,    -1,    -1,    -1,    46,    47,    48,    49,    50,
    1423       51,    52,    53,    54,    55,    56,    57,    -1,    -1,    -1,
    1424       -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    69,    70,
    1425       -1,    72,    73,     8,    -1,    -1,    77,    78,    -1,    14,
    1426       15,    16,    17,    -1,    85,    -1,    -1,    22,    89,    -1,
    1427       91,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    99,   100,
    1428       -1,   102,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1429       -1,    46,    47,    48,    49,    50,    51,    52,    53,    54,
    1430       55,    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1431       -1,    66,    -1,    68,    69,    70,    -1,    72,    73,     8,
    1432       -1,    -1,    77,    78,    -1,    14,    15,    16,    17,    -1,
    1433       85,    -1,    -1,    22,    89,    -1,    91,    -1,    -1,    -1,
    1434       -1,    -1,    -1,    -1,    99,   100,    -1,   102,    -1,    -1,
    1435       -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,    47,    48,
    1436       49,    50,    51,    52,    53,    54,    55,    56,    57,    -1,
    1437       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,
    1438       69,    70,    -1,    72,    73,     8,    -1,    -1,    77,    78,
    1439       -1,    14,    15,    16,    17,    -1,    85,    -1,    -1,    22,
    1440       89,    -1,    91,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1441       99,   100,    -1,   102,    -1,    -1,    -1,    -1,    -1,    -1,
    1442       -1,    -1,    -1,    46,    47,    48,    49,    50,    51,    52,
    1443       53,    54,    55,    56,    57,    -1,    -1,    -1,    -1,    -1,
    1444       -1,    -1,    -1,    66,    -1,    68,    69,    70,    -1,    72,
    1445       73,     8,    -1,    -1,    77,    78,    -1,    14,    15,    16,
    1446       17,    -1,    85,    -1,    -1,    22,    89,    -1,    91,    -1,
    1447       -1,    -1,    -1,    -1,    -1,    -1,    99,    -1,    -1,   102,
    1448       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,
     1411      57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     1412      67,    -1,    69,    70,    71,    -1,    73,    74,     8,    -1,
     1413      -1,    78,    79,    -1,    14,    15,    16,    17,    -1,    86,
     1414      -1,    -1,    22,    90,    -1,    92,    -1,    27,    -1,    -1,
     1415      -1,    -1,    -1,   100,   101,    -1,   103,    -1,    -1,    -1,
     1416      -1,    -1,    -1,    -1,    -1,    -1,    -1,    47,    48,    49,
     1417      50,    51,    52,    53,    54,    55,    56,    57,    58,    -1,
     1418      -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
     1419      70,    71,    -1,    73,    74,     8,    -1,    -1,    78,    79,
     1420      -1,    14,    15,    16,    17,    -1,    86,    -1,    -1,    22,
     1421      90,    -1,    92,    -1,    27,    -1,    -1,    -1,    -1,    -1,
     1422     100,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,
     1423      -1,    -1,    -1,    -1,    47,    48,    49,    50,    51,    52,
     1424      53,    54,    55,    56,    57,    58,    -1,    -1,    -1,    -1,
     1425      -1,    -1,    -1,    -1,    67,    -1,    69,    70,    71,    -1,
     1426      73,    74,     8,    -1,    -1,    78,    79,    -1,    14,    15,
     1427      16,    17,    -1,    86,    -1,    -1,    22,    90,    -1,    92,
     1428      -1,    27,    -1,    -1,    -1,    -1,    -1,   100,   101,    -1,
     1429     103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     1430      -1,    47,    48,    49,    50,    51,    52,    53,    54,    55,
     1431      56,    57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     1432      -1,    67,    -1,    69,    70,    71,    -1,    73,    74,     8,
     1433      -1,    -1,    78,    79,    -1,    14,    15,    16,    17,    -1,
     1434      86,    -1,    -1,    22,    90,    -1,    92,    -1,    27,    -1,
     1435      -1,    -1,    -1,    -1,   100,   101,    -1,   103,    -1,    -1,
     1436      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    47,    48,
     1437      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
     1438      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     1439      69,    70,    71,    -1,    73,    74,     8,    -1,    -1,    78,
     1440      79,    -1,    14,    15,    16,    17,    -1,    86,    -1,    -1,
     1441      22,    90,    -1,    92,    -1,    27,    -1,    -1,    -1,    -1,
     1442      -1,   100,    -1,    -1,   103,    -1,    -1,    -1,    -1,    -1,
     1443      -1,    -1,    -1,    -1,    -1,    47,    48,    49,    50,    51,
     1444      52,    53,    54,    55,    56,    57,    58,    -1,    -1,    -1,
     1445      -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    70,    71,
     1446      -1,    73,    74,     8,    -1,    -1,    78,    79,    -1,    14,
     1447      15,    16,    17,    -1,    86,    -1,    -1,    22,    90,    -1,
     1448      92,    -1,    27,    -1,    -1,    -1,    -1,    -1,   100,    -1,
     1449      -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     1450      -1,    -1,    47,    48,    49,    50,    51,    52,    53,    54,
     1451      55,    56,    57,    58,    -1,    -1,    -1,    -1,    -1,    -1,
     1452      -1,    -1,    67,    -1,    69,    70,    71,    -1,    73,    74,
     1453       8,    -1,    -1,    78,    79,    -1,    14,    15,    16,    17,
     1454      -1,    86,    -1,    -1,    22,    90,    -1,    92,    -1,    27,
     1455      -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,   103,    -1,
     1456      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    47,
     1457      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
     1458      58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     1459      -1,    69,    70,    71,    -1,    73,    74,     8,    -1,    -1,
     1460      78,    79,    -1,    14,    15,    16,    17,    -1,    86,    -1,
     1461      -1,    22,    90,    -1,    92,    -1,    27,    -1,    -1,    -1,
     1462      -1,    -1,   100,    -1,    -1,   103,    -1,    -1,    -1,    -1,
     1463      -1,    -1,    -1,    -1,    -1,    -1,    47,    48,    49,    50,
     1464      51,    52,    53,    54,    55,    56,    57,    58,    -1,    -1,
     1465      -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    70,
     1466      71,    -1,    73,    74,     8,    -1,    -1,    78,    79,    -1,
     1467      14,    15,    16,    17,    -1,    86,    -1,    -1,    22,    90,
     1468      -1,    92,    -1,    27,    -1,    -1,    -1,    -1,    -1,   100,
     1469      -1,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     1470      -1,    -1,    -1,    47,    48,    49,    50,    51,    52,    53,
     1471      54,    55,    56,    57,    58,    -1,    -1,    -1,    -1,    -1,
     1472      -1,    -1,    -1,    67,    -1,    69,    70,    71,    -1,    73,
     1473      74,     8,    -1,    -1,    78,    79,    -1,    14,    15,    16,
     1474      17,    -1,    86,    -1,    -1,    22,    90,    -1,    92,    -1,
     1475      27,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,   103,
     1476      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    14491477      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
    1450       57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
    1451       -1,    68,    69,    70,    -1,    72,    73,     8,    -1,    -1,
    1452       77,    78,    -1,    14,    15,    16,    17,    -1,    85,    -1,
    1453       -1,    22,    89,    -1,    91,    -1,    -1,    -1,    -1,    -1,
    1454       -1,    -1,    99,    -1,    -1,   102,    -1,    -1,    -1,    -1,
    1455       -1,    -1,    -1,    -1,    -1,    46,    47,    48,    49,    50,
    1456       51,    52,    53,    54,    55,    56,    57,    -1,    -1,    -1,
    1457       -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    69,    70,
    1458       -1,    72,    73,     8,    -1,    -1,    77,    78,    -1,    14,
    1459       15,    16,    17,    -1,    85,    -1,    -1,    22,    89,    -1,
    1460       91,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    99,    -1,
    1461       -1,   102,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1462       -1,    46,    47,    48,    49,    50,    51,    52,    53,    54,
    1463       55,    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1464       -1,    66,    -1,    68,    69,    70,    -1,    72,    73,     8,
    1465       -1,    -1,    77,    78,    -1,    14,    15,    16,    17,    -1,
    1466       85,    -1,    -1,    22,    89,    -1,    91,    -1,    -1,    -1,
    1467       -1,    -1,    -1,    -1,    99,    -1,    -1,   102,    -1,    -1,
    1468       -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,    47,    48,
    1469       49,    50,    51,    52,    53,    54,    55,    56,    57,    -1,
    1470       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,
    1471       69,    70,    -1,    72,    73,     8,    -1,    -1,    77,    78,
    1472       -1,    14,    15,    16,    17,    -1,    85,    -1,    -1,    22,
    1473       89,    -1,    91,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1474       99,    -1,    -1,   102,    -1,    -1,    -1,    -1,    -1,    -1,
    1475       -1,    -1,    -1,    46,    47,    48,    49,    50,    51,    52,
    1476       53,    54,    55,    56,    57,    -1,    -1,    -1,    -1,    -1,
    1477       -1,    -1,    -1,    66,    -1,    68,    69,    70,    -1,    72,
    1478       73,     8,    -1,    -1,    77,    78,    -1,    14,    15,    16,
    1479       17,    -1,    85,    -1,    -1,    22,    89,    -1,    91,    -1,
    1480       -1,    -1,    -1,    -1,    -1,    -1,    99,    -1,    -1,   102,
    1481       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,
    1482       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
    1483       57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
    1484       -1,    68,    69,    70,    -1,    72,    73,     8,    -1,    -1,
    1485       77,    78,    -1,    14,    15,    16,    17,    -1,    85,    -1,
    1486       -1,    22,    89,    -1,    91,    -1,    -1,    -1,    -1,    -1,
    1487       -1,    -1,    99,    -1,    -1,   102,    -1,    -1,    -1,    -1,
    1488       -1,    -1,    -1,    -1,    -1,    46,    47,    48,    49,    50,
    1489       51,    52,    53,    54,    55,    56,    57,    -1,    -1,    -1,
    1490       -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    69,    70,
    1491       -1,    72,    73,     8,    -1,    -1,    77,    78,    -1,    14,
    1492       15,    16,    17,    -1,    85,    -1,    -1,    22,    89,    -1,
    1493       91,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    99,    -1,
    1494       -1,   102,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1495       -1,    46,    47,    48,    49,    50,    51,    52,    53,    54,
    1496       55,    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1497       -1,    66,    -1,    68,    69,    70,    -1,    72,    73,     8,
    1498       -1,    -1,    77,    78,    -1,    14,    15,    16,    17,    -1,
    1499       85,    -1,    -1,    22,    89,    -1,    91,    -1,    -1,    -1,
    1500       -1,    -1,    -1,    -1,    99,    -1,    -1,   102,    -1,    -1,
    1501       -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,    47,    48,
    1502       49,    50,    51,    52,    53,    54,    55,    56,    57,    -1,
    1503       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,
    1504       69,    70,    -1,    72,    73,    -1,    -1,    -1,    77,    78,
    1505       -1,    -1,    -1,    -1,    -1,    -1,    85,    -1,    -1,    -1,
    1506       89,    -1,    91,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1507       99,    -1,    -1,   102
     1478      57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     1479      67,    -1,    69,    70,    71,    -1,    73,    74,     8,    -1,
     1480      -1,    78,    79,    -1,    14,    15,    16,    17,    -1,    86,
     1481      -1,    -1,    22,    90,    -1,    92,    -1,    27,    -1,    -1,
     1482      -1,    -1,    -1,   100,    -1,    -1,   103,    -1,    -1,    -1,
     1483      -1,    -1,    -1,    -1,    -1,    -1,    -1,    47,    48,    49,
     1484      50,    51,    52,    53,    54,    55,    56,    57,    58,    -1,
     1485      -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
     1486      70,    71,    -1,    73,    74,     8,    -1,    -1,    78,    79,
     1487      -1,    14,    15,    16,    17,    -1,    86,    -1,    -1,    22,
     1488      90,    -1,    92,    -1,    27,    -1,    -1,    -1,    -1,    -1,
     1489     100,    -1,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,
     1490      -1,    -1,    -1,    -1,    47,    48,    49,    50,    51,    52,
     1491      53,    54,    55,    56,    57,    58,    -1,    -1,    -1,    -1,
     1492      -1,    -1,    -1,    -1,    67,    -1,    69,    70,    71,    -1,
     1493      73,    74,     8,    -1,    -1,    78,    79,    -1,    14,    15,
     1494      16,    17,    -1,    86,    -1,    -1,    22,    90,    -1,    92,
     1495      -1,    27,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,
     1496     103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     1497      -1,    47,    48,    49,    50,    51,    52,    53,    54,    55,
     1498      56,    57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     1499      -1,    67,    -1,    69,    70,    71,    -1,    73,    74,    -1,
     1500      -1,    -1,    78,    79,    -1,    -1,    -1,    -1,    -1,    -1,
     1501      86,    -1,    -1,    -1,    90,    -1,    92,    -1,    -1,    -1,
     1502      -1,    -1,    -1,    -1,   100,    -1,    -1,   103
    15081503};
    15091504
     
    15121507static const yytype_uint8 yystos[] =
    15131508{
    1514        0,   104,     0,     1,     8,    14,    15,    16,    17,    22,
    1515       32,    46,    47,    48,    49,    50,    51,    52,    53,    54,
    1516       55,    56,    57,    58,    59,    60,    61,    63,    64,    65,
    1517       66,    68,    69,    70,    71,    72,    73,    74,    75,    76,
    1518       77,    78,    79,    80,    81,    82,    83,    84,    85,    87,
    1519       89,    91,    95,    99,   102,   105,   106,   107,   108,   109,
    1520      110,   111,   112,   114,   115,   117,   118,   119,   120,   121,
    1521      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
    1522      138,   139,   140,   141,   142,   143,   144,   145,   146,    95,
    1523       16,    17,    54,    55,    56,    57,    85,   112,   128,    99,
    1524      110,   112,   119,    99,    99,    99,    99,    99,    99,    99,
    1525       99,    99,    99,   110,    99,   110,    99,   110,    99,   110,
    1526       66,    67,   111,    66,    95,   110,    99,   112,    66,    99,
    1527       99,    67,    99,    99,    66,    99,    66,    99,    16,   112,
    1528      120,   121,   121,   112,   111,   111,   112,    95,    11,    99,
    1529       86,    94,   127,     3,     4,     7,     9,    10,    87,    88,
    1530       89,    90,    91,    93,    96,    97,   101,   112,   112,   111,
    1531       12,    94,    95,   127,    99,   110,    94,   110,   112,    99,
    1532       99,    99,    99,    99,    99,   112,    67,    99,   112,   122,
    1533      112,   112,   112,   112,   112,   112,   112,   100,   111,   112,
    1534      100,   111,   112,   100,   111,    95,    95,    16,    17,    54,
    1535       55,    56,    57,   100,   110,   128,    66,    67,   112,   113,
    1536       66,   112,    67,   100,   111,    92,   100,   102,   110,   100,
    1537      111,   112,   112,   112,   112,   112,   112,   112,   112,   112,
    1538      112,   112,   112,   110,    86,   100,   116,    94,    67,   110,
    1539      112,    91,   110,   127,   112,   112,   111,   112,   111,   112,
    1540      100,   112,   100,    94,   100,    94,    94,    94,   100,    94,
    1541      100,    94,    94,   100,   100,   100,   100,   100,   100,   100,
    1542      100,   100,   100,   100,   100,    94,   100,   100,    67,    94,
    1543      112,    66,   100,   100,   100,    92,    94,   112,   112,    94,
    1544      100,   112,   110,   112,   122,   100,   100,    94,   122,   112,
    1545      112,   112,   112,   112,   112,    16,    17,    54,    55,    56,
    1546       57,   128,    46,    49,    50,    52,    53,   112,   100,    67,
    1547       67,    74,   112,   116,   116,   112,    92,    91,    94,   111,
    1548       94,   100,    94,   100,    94,    94,   100,    94,   100,   100,
    1549      100,   100,   100,   100,   100,   100,   100,   100,   100,   100,
    1550      100,   100,    92,    94,    91,   111,   122,   100,    69,    99,
    1551      123,   124,   126,   112,   112,   112,   112,   112,   112,    92,
    1552       94,   124,   125,    99,   100,   100,   100,   100,   100,   100,
    1553       92,   126,    94,   100,   111,   125,   100
     1509       0,   105,     0,     1,     8,    14,    15,    16,    17,    22,
     1510      27,    33,    47,    48,    49,    50,    51,    52,    53,    54,
     1511      55,    56,    57,    58,    59,    60,    61,    62,    64,    65,
     1512      66,    67,    69,    70,    71,    72,    73,    74,    75,    76,
     1513      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
     1514      88,    90,    92,    96,   100,   103,   106,   107,   108,   109,
     1515     110,   111,   112,   113,   115,   116,   118,   119,   120,   121,
     1516     122,   129,   130,   131,   132,   133,   134,   135,   136,   137,
     1517     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
     1518      96,    16,    17,    55,    56,    57,    58,    86,   113,   129,
     1519     100,   111,   113,   120,   100,   100,   100,   100,   100,   100,
     1520     100,   100,   100,   100,   111,   100,   111,   100,   111,   100,
     1521     111,    67,    68,   112,    67,    96,   111,   100,   113,    67,
     1522     100,   100,    68,   100,   100,    67,   100,    67,   100,    16,
     1523     113,   121,   122,   122,   113,   112,   112,   113,    96,    11,
     1524     100,    87,    95,   128,     3,     4,     7,     9,    10,    88,
     1525      89,    90,    91,    92,    94,    97,    98,   102,   113,   113,
     1526     112,    12,    95,    96,   128,   100,   111,    95,   111,   113,
     1527     100,   100,   100,   100,   100,   100,   113,    68,   100,   113,
     1528     123,   113,   113,   113,   113,   113,   113,   113,   101,   112,
     1529     113,   101,   112,   113,   101,   112,    96,    96,    16,    17,
     1530      55,    56,    57,    58,   101,   111,   129,    67,    68,   113,
     1531     114,    67,   113,    68,   101,   112,    93,   101,   103,   111,
     1532     101,   112,   113,   113,   113,   113,   113,   113,   113,   113,
     1533     113,   113,   113,   113,   111,    87,   101,   117,    95,    68,
     1534     111,   113,    92,   111,   128,   113,   113,   112,   113,   112,
     1535     113,   101,   113,   101,    95,   101,    95,    95,    95,   101,
     1536      95,   101,    95,    95,   101,   101,   101,   101,   101,   101,
     1537     101,   101,   101,   101,   101,   101,    95,   101,   101,    68,
     1538      95,   113,    67,   101,   101,   101,    93,    95,   113,   113,
     1539      95,   101,   113,   111,   113,   123,   101,   101,    95,   123,
     1540     113,   113,   113,   113,   113,   113,    16,    17,    55,    56,
     1541      57,    58,   129,    47,    50,    51,    53,    54,   113,   101,
     1542      68,    68,    75,   113,   117,   117,   113,    93,    92,    95,
     1543     112,    95,   101,    95,   101,    95,    95,   101,    95,   101,
     1544     101,   101,   101,   101,   101,   101,   101,   101,   101,   101,
     1545     101,   101,   101,    93,    95,    92,   112,   123,   101,    70,
     1546     100,   124,   125,   127,   113,   113,   113,   113,   113,   113,
     1547      93,    95,   125,   126,   100,   101,   101,   101,   101,   101,
     1548     101,    93,   127,    95,   101,   112,   126,   101
    15541549};
    15551550
     
    23752370
    23762371/* Line 1464 of yacc.c  */
    2377 #line 320 "grammar.y"
     2372#line 321 "grammar.y"
    23782373    {
    23792374            if (timerv)
     
    24112406
    24122407/* Line 1464 of yacc.c  */
    2413 #line 355 "grammar.y"
     2408#line 356 "grammar.y"
    24142409    {currentVoice->ifsw=0;;}
    24152410    break;
     
    24182413
    24192414/* Line 1464 of yacc.c  */
    2420 #line 357 "grammar.y"
     2415#line 358 "grammar.y"
    24212416    { (yyvsp[(1) - (2)].lv).CleanUp(); currentVoice->ifsw=0;;}
    24222417    break;
     
    24252420
    24262421/* Line 1464 of yacc.c  */
    2427 #line 359 "grammar.y"
     2422#line 360 "grammar.y"
    24282423    {
    24292424            YYACCEPT;
     
    24342429
    24352430/* Line 1464 of yacc.c  */
    2436 #line 363 "grammar.y"
     2431#line 364 "grammar.y"
    24372432    {
    24382433            currentVoice->ifsw=0;
     
    24442439
    24452440/* Line 1464 of yacc.c  */
    2446 #line 368 "grammar.y"
     2441#line 369 "grammar.y"
    24472442    {currentVoice->ifsw=0;;}
    24482443    break;
     
    24512446
    24522447/* Line 1464 of yacc.c  */
    2453 #line 370 "grammar.y"
     2448#line 371 "grammar.y"
    24542449    {
    24552450            #ifdef SIQ
     
    25052500
    25062501/* Line 1464 of yacc.c  */
    2507 #line 428 "grammar.y"
     2502#line 429 "grammar.y"
    25082503    {if (currentVoice!=NULL) currentVoice->ifsw=0;;}
    25092504    break;
     
    25122507
    25132508/* Line 1464 of yacc.c  */
    2514 #line 431 "grammar.y"
     2509#line 432 "grammar.y"
    25152510    { omFree((ADDRESS)(yyvsp[(2) - (2)].name)); ;}
    25162511    break;
     
    25192514
    25202515/* Line 1464 of yacc.c  */
    2521 #line 446 "grammar.y"
     2516#line 447 "grammar.y"
    25222517    {
    25232518            if(iiAssign(&(yyvsp[(1) - (2)].lv),&(yyvsp[(2) - (2)].lv))) YYERROR;
     
    25282523
    25292524/* Line 1464 of yacc.c  */
    2530 #line 453 "grammar.y"
     2525#line 454 "grammar.y"
    25312526    {
    25322527            if (currRing==NULL) MYYERROR("no ring active");
     
    25382533
    25392534/* Line 1464 of yacc.c  */
    2540 #line 458 "grammar.y"
     2535#line 459 "grammar.y"
    25412536    {
    25422537            syMake(&(yyval.lv),(yyvsp[(1) - (1)].name));
     
    25472542
    25482543/* Line 1464 of yacc.c  */
    2549 #line 462 "grammar.y"
     2544#line 463 "grammar.y"
    25502545    {
    25512546            if(iiExprArith2(&(yyval.lv), &(yyvsp[(1) - (3)].lv), COLONCOLON, &(yyvsp[(3) - (3)].lv))) YYERROR;
     
    25562551
    25572552/* Line 1464 of yacc.c  */
    2558 #line 466 "grammar.y"
     2553#line 467 "grammar.y"
    25592554    {
    25602555            if(iiExprArith2(&(yyval.lv), &(yyvsp[(1) - (3)].lv), '.', &(yyvsp[(3) - (3)].lv))) YYERROR;
     
    25652560
    25662561/* Line 1464 of yacc.c  */
    2567 #line 470 "grammar.y"
     2562#line 471 "grammar.y"
    25682563    {
    25692564            if(iiExprArith1(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'(')) YYERROR;
     
    25742569
    25752570/* Line 1464 of yacc.c  */
    2576 #line 474 "grammar.y"
     2571#line 475 "grammar.y"
    25772572    {
    25782573            if ((yyvsp[(1) - (4)].lv).next==NULL)
     
    25932588
    25942589/* Line 1464 of yacc.c  */
    2595 #line 488 "grammar.y"
     2590#line 489 "grammar.y"
    25962591    {
    25972592            if (currRingHdl==NULL) MYYERROR("no ring active");
     
    26262621
    26272622/* Line 1464 of yacc.c  */
    2628 #line 516 "grammar.y"
     2623#line 517 "grammar.y"
    26292624    {
    26302625            memset(&(yyval.lv),0,sizeof((yyval.lv)));
     
    26552650
    26562651/* Line 1464 of yacc.c  */
    2657 #line 540 "grammar.y"
     2652#line 541 "grammar.y"
    26582653    {
    26592654            memset(&(yyval.lv),0,sizeof((yyval.lv)));
     
    26662661
    26672662/* Line 1464 of yacc.c  */
    2668 #line 546 "grammar.y"
     2663#line 547 "grammar.y"
    26692664    {
    26702665            memset(&(yyval.lv),0,sizeof((yyval.lv)));
     
    26772672
    26782673/* Line 1464 of yacc.c  */
    2679 #line 552 "grammar.y"
     2674#line 553 "grammar.y"
    26802675    {
    26812676            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     
    26862681
    26872682/* Line 1464 of yacc.c  */
    2688 #line 556 "grammar.y"
     2683#line 557 "grammar.y"
    26892684    {
    26902685            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     
    26952690
    26962691/* Line 1464 of yacc.c  */
    2697 #line 560 "grammar.y"
     2692#line 561 "grammar.y"
    26982693    {
    26992694            if(iiExprArithM(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     
    27042699
    27052700/* Line 1464 of yacc.c  */
    2706 #line 564 "grammar.y"
     2701#line 565 "grammar.y"
    27072702    {
    27082703            if(iiExprArithM(&(yyval.lv),NULL,(yyvsp[(1) - (3)].i))) YYERROR;
     
    27132708
    27142709/* Line 1464 of yacc.c  */
    2715 #line 568 "grammar.y"
     2710#line 569 "grammar.y"
    27162711    {
    27172712            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     
    27222717
    27232718/* Line 1464 of yacc.c  */
    2724 #line 572 "grammar.y"
     2719#line 573 "grammar.y"
    27252720    {
    27262721            if(iiExprArithM(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     
    27312726
    27322727/* Line 1464 of yacc.c  */
    2733 #line 576 "grammar.y"
     2728#line 577 "grammar.y"
    27342729    {
    27352730            if(iiExprArithM(&(yyval.lv),NULL,(yyvsp[(1) - (3)].i))) YYERROR;
     
    27402735
    27412736/* Line 1464 of yacc.c  */
    2742 #line 580 "grammar.y"
     2737#line 581 "grammar.y"
    27432738    {
    27442739            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     
    27492744
    27502745/* Line 1464 of yacc.c  */
    2751 #line 584 "grammar.y"
     2746#line 585 "grammar.y"
    27522747    {
    27532748            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     
    27582753
    27592754/* Line 1464 of yacc.c  */
    2760 #line 588 "grammar.y"
     2755#line 589 "grammar.y"
    27612756    {
    27622757            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     
    27672762
    27682763/* Line 1464 of yacc.c  */
    2769 #line 592 "grammar.y"
     2764#line 593 "grammar.y"
    27702765    {
    27712766            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     
    27762771
    27772772/* Line 1464 of yacc.c  */
    2778 #line 596 "grammar.y"
     2773#line 597 "grammar.y"
    27792774    {
    27802775            if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR;
     
    27852780
    27862781/* Line 1464 of yacc.c  */
    2787 #line 600 "grammar.y"
     2782#line 601 "grammar.y"
    27882783    {
    27892784            if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR;
     
    27942789
    27952790/* Line 1464 of yacc.c  */
    2796 #line 604 "grammar.y"
     2791#line 605 "grammar.y"
    27972792    {
    27982793            if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR;
     
    28032798
    28042799/* Line 1464 of yacc.c  */
    2805 #line 608 "grammar.y"
     2800#line 609 "grammar.y"
    28062801    {
    28072802            if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR;
     
    28122807
    28132808/* Line 1464 of yacc.c  */
    2814 #line 612 "grammar.y"
     2809#line 613 "grammar.y"
    28152810    {
    28162811            if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
     
    28212816
    28222817/* Line 1464 of yacc.c  */
    2823 #line 616 "grammar.y"
     2818#line 617 "grammar.y"
    28242819    {
    28252820            if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
     
    28302825
    28312826/* Line 1464 of yacc.c  */
    2832 #line 620 "grammar.y"
     2827#line 621 "grammar.y"
    28332828    {
    28342829            if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
     
    28392834
    28402835/* Line 1464 of yacc.c  */
    2841 #line 624 "grammar.y"
     2836#line 625 "grammar.y"
    28422837    {
    28432838            if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
     
    28482843
    28492844/* Line 1464 of yacc.c  */
    2850 #line 628 "grammar.y"
     2845#line 629 "grammar.y"
    28512846    {
    28522847            if(iiExprArithM(&(yyval.lv),NULL,(yyvsp[(1) - (3)].i))) YYERROR;
     
    28572852
    28582853/* Line 1464 of yacc.c  */
    2859 #line 632 "grammar.y"
     2854#line 633 "grammar.y"
    28602855    {
    28612856            int b=iiExprArithM(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i)); // handle branchTo
     
    28682863
    28692864/* Line 1464 of yacc.c  */
    2870 #line 638 "grammar.y"
     2865#line 639 "grammar.y"
    28712866    {
    28722867            if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
     
    28772872
    28782873/* Line 1464 of yacc.c  */
    2879 #line 642 "grammar.y"
     2874#line 643 "grammar.y"
    28802875    {
    28812876            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR;
     
    28862881
    28872882/* Line 1464 of yacc.c  */
    2888 #line 646 "grammar.y"
     2883#line 647 "grammar.y"
    28892884    {
    28902885            if(iiExprArith3(&(yyval.lv),RING_CMD,&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR;
     
    28952890
    28962891/* Line 1464 of yacc.c  */
    2897 #line 650 "grammar.y"
     2892#line 651 "grammar.y"
    28982893    {
    28992894            if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),RING_CMD)) YYERROR;
     
    29042899
    29052900/* Line 1464 of yacc.c  */
    2906 #line 654 "grammar.y"
     2901#line 655 "grammar.y"
    29072902    {
    29082903            if (iiARROW(&(yyval.lv),(yyvsp[(1) - (3)].name),(yyvsp[(3) - (3)].name))) YYERROR;
     
    29142909
    29152910/* Line 1464 of yacc.c  */
    2916 #line 658 "grammar.y"
     2911#line 659 "grammar.y"
    29172912    { (yyval.lv) = (yyvsp[(2) - (3)].lv); ;}
    29182913    break;
     
    29212916
    29222917/* Line 1464 of yacc.c  */
    2923 #line 663 "grammar.y"
     2918#line 664 "grammar.y"
    29242919    {
    29252920            leftv v = &(yyvsp[(1) - (3)].lv);
     
    29372932
    29382933/* Line 1464 of yacc.c  */
    2939 #line 679 "grammar.y"
     2934#line 680 "grammar.y"
    29402935    {
    29412936            if(iiExprArith3(&(yyval.lv),'[',&(yyvsp[(1) - (6)].lv),&(yyvsp[(3) - (6)].lv),&(yyvsp[(5) - (6)].lv))) YYERROR;
     
    29462941
    29472942/* Line 1464 of yacc.c  */
    2948 #line 683 "grammar.y"
     2943#line 684 "grammar.y"
    29492944    {
    29502945            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (4)].lv),'[',&(yyvsp[(3) - (4)].lv))) YYERROR;
     
    29552950
    29562951/* Line 1464 of yacc.c  */
    2957 #line 687 "grammar.y"
     2952#line 688 "grammar.y"
    29582953    {
    29592954            if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR;
     
    29642959
    29652960/* Line 1464 of yacc.c  */
    2966 #line 691 "grammar.y"
     2961#line 692 "grammar.y"
    29672962    {
    29682963            if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR;
     
    29732968
    29742969/* Line 1464 of yacc.c  */
    2975 #line 695 "grammar.y"
     2970#line 696 "grammar.y"
    29762971    {
    29772972            if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR;
     
    29822977
    29832978/* Line 1464 of yacc.c  */
    2984 #line 699 "grammar.y"
     2979#line 700 "grammar.y"
    29852980    {
    29862981            if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR;
     
    29912986
    29922987/* Line 1464 of yacc.c  */
    2993 #line 703 "grammar.y"
     2988#line 704 "grammar.y"
    29942989    {
    29952990            if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR;
     
    30002995
    30012996/* Line 1464 of yacc.c  */
    3002 #line 707 "grammar.y"
     2997#line 708 "grammar.y"
    30032998    {
    30042999            if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), 0, &(yyvsp[(5) - (6)].lv))) YYERROR;
     
    30093004
    30103005/* Line 1464 of yacc.c  */
    3011 #line 711 "grammar.y"
     3006#line 712 "grammar.y"
    30123007    {
    30133008            (yyval.lv)=(yyvsp[(2) - (3)].lv);
     
    30183013
    30193014/* Line 1464 of yacc.c  */
    3020 #line 715 "grammar.y"
     3015#line 716 "grammar.y"
    30213016    {
    30223017            #ifdef SIQ
     
    30403035
    30413036/* Line 1464 of yacc.c  */
    3042 #line 732 "grammar.y"
     3037#line 733 "grammar.y"
    30433038    {
    30443039            iiTestAssume(&(yyvsp[(2) - (5)].lv),&(yyvsp[(4) - (5)].lv));
     
    30513046
    30523047/* Line 1464 of yacc.c  */
    3053 #line 738 "grammar.y"
     3048#line 739 "grammar.y"
    30543049    {
    30553050            #ifdef SIQ
     
    30623057
    30633058/* Line 1464 of yacc.c  */
    3064 #line 744 "grammar.y"
     3059#line 745 "grammar.y"
    30653060    {
    30663061            #ifdef SIQ
     
    30773072
    30783073/* Line 1464 of yacc.c  */
    3079 #line 756 "grammar.y"
     3074#line 757 "grammar.y"
    30803075    {
    30813076            #ifdef SIQ
     
    30883083
    30893084/* Line 1464 of yacc.c  */
    3090 #line 764 "grammar.y"
     3085#line 765 "grammar.y"
    30913086    {
    30923087            #ifdef SIQ
     
    30993094
    31003095/* Line 1464 of yacc.c  */
    3101 #line 772 "grammar.y"
     3096#line 773 "grammar.y"
    31023097    {
    31033098            #ifdef SIQ
     
    31103105
    31113106/* Line 1464 of yacc.c  */
    3112 #line 781 "grammar.y"
     3107#line 782 "grammar.y"
    31133108    {
    31143109            if(iiExprArith1(&(yyval.lv),&(yyvsp[(1) - (2)].lv),PLUSPLUS)) YYERROR;
     
    31193114
    31203115/* Line 1464 of yacc.c  */
    3121 #line 785 "grammar.y"
     3116#line 786 "grammar.y"
    31223117    {
    31233118            if(iiExprArith1(&(yyval.lv),&(yyvsp[(1) - (2)].lv),MINUSMINUS)) YYERROR;
     
    31283123
    31293124/* Line 1464 of yacc.c  */
    3130 #line 789 "grammar.y"
     3125#line 790 "grammar.y"
    31313126    {
    31323127            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'+',&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    31373132
    31383133/* Line 1464 of yacc.c  */
    3139 #line 793 "grammar.y"
     3134#line 794 "grammar.y"
    31403135    {
    31413136            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'-',&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    31463141
    31473142/* Line 1464 of yacc.c  */
    3148 #line 797 "grammar.y"
     3143#line 798 "grammar.y"
    31493144    { /* also for *,% */
    31503145            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),(yyvsp[(2) - (3)].i),&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    31553150
    31563151/* Line 1464 of yacc.c  */
    3157 #line 801 "grammar.y"
     3152#line 802 "grammar.y"
    31583153    {
    31593154            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'^',&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    31643159
    31653160/* Line 1464 of yacc.c  */
    3166 #line 805 "grammar.y"
     3161#line 806 "grammar.y"
    31673162    { /* also for > */
    31683163            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),(yyvsp[(2) - (3)].i),&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    31733168
    31743169/* Line 1464 of yacc.c  */
    3175 #line 809 "grammar.y"
     3170#line 810 "grammar.y"
    31763171    { /* also for |*/
    31773172            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),(yyvsp[(2) - (3)].i),&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    31823177
    31833178/* Line 1464 of yacc.c  */
    3184 #line 813 "grammar.y"
     3179#line 814 "grammar.y"
    31853180    {
    31863181            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),NOTEQUAL,&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    31913186
    31923187/* Line 1464 of yacc.c  */
    3193 #line 817 "grammar.y"
     3188#line 818 "grammar.y"
    31943189    {
    31953190            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),EQUAL_EQUAL,&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    32003195
    32013196/* Line 1464 of yacc.c  */
    3202 #line 821 "grammar.y"
     3197#line 822 "grammar.y"
    32033198    {
    32043199            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),DOTDOT,&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    32093204
    32103205/* Line 1464 of yacc.c  */
    3211 #line 825 "grammar.y"
     3206#line 826 "grammar.y"
    32123207    {
    32133208            if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),':',&(yyvsp[(3) - (3)].lv))) YYERROR;
     
    32183213
    32193214/* Line 1464 of yacc.c  */
    3220 #line 829 "grammar.y"
     3215#line 830 "grammar.y"
    32213216    {
    32223217            if (siq>0)
     
    32353230
    32363231/* Line 1464 of yacc.c  */
    3237 #line 841 "grammar.y"
     3232#line 842 "grammar.y"
    32383233    {
    32393234            if(iiExprArith1(&(yyval.lv),&(yyvsp[(2) - (2)].lv),'-')) YYERROR;
     
    32443239
    32453240/* Line 1464 of yacc.c  */
    3246 #line 849 "grammar.y"
     3241#line 850 "grammar.y"
    32473242    {
    32483243            if ((yyvsp[(1) - (2)].lv).rtyp==0)
     
    32643259
    32653260/* Line 1464 of yacc.c  */
    3266 #line 869 "grammar.y"
     3261#line 870 "grammar.y"
    32673262    {
    32683263            if ((yyvsp[(2) - (3)].lv).Typ()!=STRING_CMD)
     
    32783273
    32793274/* Line 1464 of yacc.c  */
    3280 #line 881 "grammar.y"
     3275#line 882 "grammar.y"
    32813276    {
    32823277            if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&((yyvsp[(2) - (2)].lv).req_packhdl->idroot)))
     
    32883283
    32893284/* Line 1464 of yacc.c  */
    3290 #line 886 "grammar.y"
     3285#line 887 "grammar.y"
    32913286    {
    32923287            if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&((yyvsp[(2) - (2)].lv).req_packhdl->idroot)))
     
    32983293
    32993294/* Line 1464 of yacc.c  */
    3300 #line 891 "grammar.y"
     3295#line 892 "grammar.y"
    33013296    {
    33023297            if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&(currRing->idroot), TRUE)) YYERROR;
     
    33073302
    33083303/* Line 1464 of yacc.c  */
    3309 #line 895 "grammar.y"
     3304#line 896 "grammar.y"
    33103305    {
    33113306            if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&(currRing->idroot), TRUE)) YYERROR;
     
    33163311
    33173312/* Line 1464 of yacc.c  */
    3318 #line 899 "grammar.y"
     3313#line 900 "grammar.y"
    33193314    {
    33203315            int r; TESTSETINT((yyvsp[(4) - (8)].lv),r);
     
    33223317            leftv v;
    33233318            idhdl h;
    3324             if ((yyvsp[(1) - (8)].i) == MATRIX_CMD)
     3319            if (((yyvsp[(1) - (8)].i) == MATRIX_CMD) || ((yyvsp[(1) - (8)].i) == SMATRIX_CMD ))
    33253320            {
    33263321              if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (8)].lv),myynest,(yyvsp[(1) - (8)].i),&(currRing->idroot), TRUE)) YYERROR;
     
    33283323              h=(idhdl)v->data;
    33293324              idDelete(&IDIDEAL(h));
    3330               IDMATRIX(h) = mpNew(r,c);
     3325              if ((yyvsp[(1) - (8)].i) == MATRIX_CMD)
     3326                IDMATRIX(h) = mpNew(r,c);
     3327              else
     3328                IDIDEAL(h) = idInit(c,r);
    33313329              if (IDMATRIX(h)==NULL) YYERROR;
    33323330            }
     
    33553353
    33563354/* Line 1464 of yacc.c  */
    3357 #line 933 "grammar.y"
    3358     {
    3359             if ((yyvsp[(1) - (2)].i) == MATRIX_CMD)
     3355#line 937 "grammar.y"
     3356    {
     3357            if (((yyvsp[(1) - (2)].i) == MATRIX_CMD)||((yyvsp[(1) - (2)].i) == SMATRIX_CMD))
    33603358            {
    33613359              if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&(currRing->idroot), TRUE)) YYERROR;
     
    33843382
    33853383/* Line 1464 of yacc.c  */
    3386 #line 957 "grammar.y"
     3384#line 961 "grammar.y"
    33873385    {
    33883386            int t=(yyvsp[(1) - (3)].lv).Typ();
     
    34103408
    34113409/* Line 1464 of yacc.c  */
    3412 #line 978 "grammar.y"
     3410#line 982 "grammar.y"
    34133411    {
    34143412            if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&((yyvsp[(2) - (2)].lv).req_packhdl->idroot)))
     
    34203418
    34213419/* Line 1464 of yacc.c  */
    3422 #line 991 "grammar.y"
     3420#line 995 "grammar.y"
    34233421    {
    34243422            leftv v = &(yyvsp[(2) - (5)].lv);
     
    34363434
    34373435/* Line 1464 of yacc.c  */
    3438 #line 1005 "grammar.y"
     3436#line 1009 "grammar.y"
    34393437    {
    34403438          // let rInit take care of any errors
     
    34463444
    34473445/* Line 1464 of yacc.c  */
    3448 #line 1013 "grammar.y"
     3446#line 1017 "grammar.y"
    34493447    {
    34503448            memset(&(yyval.lv),0,sizeof((yyval.lv)));
     
    34603458
    34613459/* Line 1464 of yacc.c  */
    3462 #line 1022 "grammar.y"
     3460#line 1026 "grammar.y"
    34633461    {
    34643462            memset(&(yyval.lv),0,sizeof((yyval.lv)));
     
    35073505
    35083506/* Line 1464 of yacc.c  */
    3509 #line 1068 "grammar.y"
     3507#line 1072 "grammar.y"
    35103508    {
    35113509            (yyval.lv) = (yyvsp[(1) - (3)].lv);
     
    35183516
    35193517/* Line 1464 of yacc.c  */
    3520 #line 1078 "grammar.y"
     3518#line 1082 "grammar.y"
    35213519    {
    35223520            (yyval.lv) = (yyvsp[(2) - (3)].lv);
     
    35273525
    35283526/* Line 1464 of yacc.c  */
    3529 #line 1084 "grammar.y"
     3527#line 1088 "grammar.y"
    35303528    {
    35313529            expected_parms = TRUE;
     
    35333531    break;
    35343532
    3535   case 127:
    3536 
    3537 /* Line 1464 of yacc.c  */
    3538 #line 1101 "grammar.y"
     3533  case 128:
     3534
     3535/* Line 1464 of yacc.c  */
     3536#line 1106 "grammar.y"
    35393537    { newFile((yyvsp[(2) - (2)].name)); omFree((yyvsp[(2) - (2)].name)); ;}
    35403538    break;
    35413539
    3542   case 128:
    3543 
    3544 /* Line 1464 of yacc.c  */
    3545 #line 1106 "grammar.y"
     3540  case 129:
     3541
     3542/* Line 1464 of yacc.c  */
     3543#line 1111 "grammar.y"
    35463544    {
    35473545            feHelp((yyvsp[(2) - (3)].name));
     
    35503548    break;
    35513549
    3552   case 129:
    3553 
    3554 /* Line 1464 of yacc.c  */
    3555 #line 1111 "grammar.y"
     3550  case 130:
     3551
     3552/* Line 1464 of yacc.c  */
     3553#line 1116 "grammar.y"
    35563554    {
    35573555            feHelp(NULL);
     
    35593557    break;
    35603558
    3561   case 130:
    3562 
    3563 /* Line 1464 of yacc.c  */
    3564 #line 1118 "grammar.y"
     3559  case 131:
     3560
     3561/* Line 1464 of yacc.c  */
     3562#line 1123 "grammar.y"
    35653563    {
    35663564            singular_example((yyvsp[(2) - (3)].name));
     
    35693567    break;
    35703568
    3571   case 131:
    3572 
    3573 /* Line 1464 of yacc.c  */
    3574 #line 1126 "grammar.y"
     3569  case 132:
     3570
     3571/* Line 1464 of yacc.c  */
     3572#line 1131 "grammar.y"
    35753573    {
    35763574          if (basePack!=(yyvsp[(2) - (2)].lv).req_packhdl)
     
    35833581    break;
    35843582
    3585   case 132:
    3586 
    3587 /* Line 1464 of yacc.c  */
    3588 #line 1138 "grammar.y"
     3583  case 133:
     3584
     3585/* Line 1464 of yacc.c  */
     3586#line 1143 "grammar.y"
    35893587    {
    35903588          leftv v=&(yyvsp[(2) - (2)].lv);
     
    36053603    break;
    36063604
    3607   case 133:
    3608 
    3609 /* Line 1464 of yacc.c  */
    3610 #line 1155 "grammar.y"
     3605  case 134:
     3606
     3607/* Line 1464 of yacc.c  */
     3608#line 1160 "grammar.y"
    36113609    {
    36123610          leftv v=&(yyvsp[(3) - (3)].lv);
     
    36273625    break;
    36283626
    3629   case 134:
    3630 
    3631 /* Line 1464 of yacc.c  */
    3632 #line 1175 "grammar.y"
     3627  case 135:
     3628
     3629/* Line 1464 of yacc.c  */
     3630#line 1180 "grammar.y"
    36333631    {
    36343632            list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE);
     
    36363634    break;
    36373635
    3638   case 135:
    3639 
    3640 /* Line 1464 of yacc.c  */
    3641 #line 1179 "grammar.y"
     3636  case 136:
     3637
     3638/* Line 1464 of yacc.c  */
     3639#line 1184 "grammar.y"
    36423640    {
    36433641            list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE);
     
    36453643    break;
    36463644
    3647   case 136:
    3648 
    3649 /* Line 1464 of yacc.c  */
    3650 #line 1183 "grammar.y"
     3645  case 137:
     3646
     3647/* Line 1464 of yacc.c  */
     3648#line 1188 "grammar.y"
    36513649    {
    36523650            if ((yyvsp[(3) - (4)].i)==QRING_CMD) (yyvsp[(3) - (4)].i)=RING_CMD;
     
    36553653    break;
    36563654
    3657   case 137:
    3658 
    3659 /* Line 1464 of yacc.c  */
    3660 #line 1188 "grammar.y"
     3655  case 138:
     3656
     3657/* Line 1464 of yacc.c  */
     3658#line 1193 "grammar.y"
    36613659    {
    36623660            list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE);
     
    36643662    break;
    36653663
    3666   case 138:
    3667 
    3668 /* Line 1464 of yacc.c  */
    3669 #line 1192 "grammar.y"
     3664  case 139:
     3665
     3666/* Line 1464 of yacc.c  */
     3667#line 1197 "grammar.y"
    36703668    {
    36713669            list_cmd(RING_CMD,NULL,"// ",TRUE);
     
    36733671    break;
    36743672
    3675   case 139:
    3676 
    3677 /* Line 1464 of yacc.c  */
    3678 #line 1196 "grammar.y"
     3673  case 140:
     3674
     3675/* Line 1464 of yacc.c  */
     3676#line 1201 "grammar.y"
    36793677    {
    36803678            list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE);
     
    36823680    break;
    36833681
    3684   case 140:
    3685 
    3686 /* Line 1464 of yacc.c  */
    3687 #line 1200 "grammar.y"
     3682  case 141:
     3683
     3684/* Line 1464 of yacc.c  */
     3685#line 1205 "grammar.y"
    36883686    {
    36893687            list_cmd(PROC_CMD,NULL,"// ",TRUE);
     
    36913689    break;
    36923690
    3693   case 141:
    3694 
    3695 /* Line 1464 of yacc.c  */
    3696 #line 1204 "grammar.y"
     3691  case 142:
     3692
     3693/* Line 1464 of yacc.c  */
     3694#line 1209 "grammar.y"
    36973695    {
    36983696            list_cmd(0,(yyvsp[(3) - (4)].lv).Fullname(),"// ",TRUE);
     
    37013699    break;
    37023700
    3703   case 142:
    3704 
    3705 /* Line 1464 of yacc.c  */
    3706 #line 1209 "grammar.y"
     3701  case 143:
     3702
     3703/* Line 1464 of yacc.c  */
     3704#line 1214 "grammar.y"
    37073705    {
    37083706            if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
     
    37123710    break;
    37133711
    3714   case 143:
    3715 
    3716 /* Line 1464 of yacc.c  */
    3717 #line 1215 "grammar.y"
     3712  case 144:
     3713
     3714/* Line 1464 of yacc.c  */
     3715#line 1220 "grammar.y"
    37183716    {
    37193717            if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
     
    37233721    break;
    37243722
    3725   case 144:
    3726 
    3727 /* Line 1464 of yacc.c  */
    3728 #line 1221 "grammar.y"
     3723  case 145:
     3724
     3725/* Line 1464 of yacc.c  */
     3726#line 1226 "grammar.y"
    37293727    {
    37303728            if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
     
    37343732    break;
    37353733
    3736   case 145:
    3737 
    3738 /* Line 1464 of yacc.c  */
    3739 #line 1227 "grammar.y"
     3734  case 146:
     3735
     3736/* Line 1464 of yacc.c  */
     3737#line 1232 "grammar.y"
    37403738    {
    37413739            if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
     
    37453743    break;
    37463744
    3747   case 146:
    3748 
    3749 /* Line 1464 of yacc.c  */
    3750 #line 1233 "grammar.y"
     3745  case 147:
     3746
     3747/* Line 1464 of yacc.c  */
     3748#line 1238 "grammar.y"
    37513749    {
    37523750            if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
     
    37563754    break;
    37573755
    3758   case 147:
    3759 
    3760 /* Line 1464 of yacc.c  */
    3761 #line 1239 "grammar.y"
     3756  case 148:
     3757
     3758/* Line 1464 of yacc.c  */
     3759#line 1244 "grammar.y"
    37623760    {
    37633761            if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
     
    37673765    break;
    37683766
    3769   case 148:
    3770 
    3771 /* Line 1464 of yacc.c  */
    3772 #line 1245 "grammar.y"
     3767  case 149:
     3768
     3769/* Line 1464 of yacc.c  */
     3770#line 1250 "grammar.y"
    37733771    {
    37743772            if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
     
    37783776    break;
    37793777
    3780   case 149:
    3781 
    3782 /* Line 1464 of yacc.c  */
    3783 #line 1257 "grammar.y"
     3778  case 150:
     3779
     3780/* Line 1464 of yacc.c  */
     3781#line 1262 "grammar.y"
    37843782    {
    37853783            list_cmd(-1,NULL,"// ",TRUE);
     
    37873785    break;
    37883786
    3789   case 150:
    3790 
    3791 /* Line 1464 of yacc.c  */
    3792 #line 1263 "grammar.y"
     3787  case 151:
     3788
     3789/* Line 1464 of yacc.c  */
     3790#line 1268 "grammar.y"
    37933791    { yyInRingConstruction = TRUE; ;}
    37943792    break;
    37953793
    3796   case 151:
    3797 
    3798 /* Line 1464 of yacc.c  */
    3799 #line 1272 "grammar.y"
     3794  case 152:
     3795
     3796/* Line 1464 of yacc.c  */
     3797#line 1277 "grammar.y"
    38003798    {
    38013799            const char *ring_name = (yyvsp[(2) - (8)].lv).name;
     
    38323830    break;
    38333831
    3834   case 152:
    3835 
    3836 /* Line 1464 of yacc.c  */
    3837 #line 1305 "grammar.y"
     3832  case 153:
     3833
     3834/* Line 1464 of yacc.c  */
     3835#line 1310 "grammar.y"
    38383836    {
    38393837            const char *ring_name = (yyvsp[(2) - (2)].lv).name;
     
    38443842    break;
    38453843
    3846   case 153:
    3847 
    3848 /* Line 1464 of yacc.c  */
    3849 #line 1312 "grammar.y"
     3844  case 154:
     3845
     3846/* Line 1464 of yacc.c  */
     3847#line 1317 "grammar.y"
    38503848    {
    38513849            yyInRingConstruction = FALSE;
     
    38543852    break;
    38553853
    3856   case 154:
    3857 
    3858 /* Line 1464 of yacc.c  */
    3859 #line 1317 "grammar.y"
     3854  case 155:
     3855
     3856/* Line 1464 of yacc.c  */
     3857#line 1322 "grammar.y"
    38603858    {
    38613859          yyInRingConstruction = FALSE;
     
    38693867    break;
    38703868
    3871   case 155:
    3872 
    3873 /* Line 1464 of yacc.c  */
    3874 #line 1330 "grammar.y"
     3869  case 156:
     3870
     3871/* Line 1464 of yacc.c  */
     3872#line 1335 "grammar.y"
    38753873    {
    38763874            if (((yyvsp[(1) - (2)].i)!=LIB_CMD)||(jjLOAD((yyvsp[(2) - (2)].name),TRUE))) YYERROR;
     
    38793877    break;
    38803878
    3881   case 158:
    3882 
    3883 /* Line 1464 of yacc.c  */
    3884 #line 1340 "grammar.y"
     3879  case 159:
     3880
     3881/* Line 1464 of yacc.c  */
     3882#line 1345 "grammar.y"
    38853883    {
    38863884            if (((yyvsp[(1) - (2)].i)==KEEPRING_CMD) && (myynest==0))
     
    39493947    break;
    39503948
    3951   case 159:
    3952 
    3953 /* Line 1464 of yacc.c  */
    3954 #line 1408 "grammar.y"
     3949  case 160:
     3950
     3951/* Line 1464 of yacc.c  */
     3952#line 1413 "grammar.y"
    39553953    {
    39563954            type_cmd(&((yyvsp[(2) - (2)].lv)));
     
    39583956    break;
    39593957
    3960   case 160:
    3961 
    3962 /* Line 1464 of yacc.c  */
    3963 #line 1412 "grammar.y"
     3958  case 161:
     3959
     3960/* Line 1464 of yacc.c  */
     3961#line 1417 "grammar.y"
    39643962    {
    39653963            //Print("typ is %d, rtyp:%d\n",$1.Typ(),$1.rtyp);
     
    39863984    break;
    39873985
    3988   case 161:
    3989 
    3990 /* Line 1464 of yacc.c  */
    3991 #line 1441 "grammar.y"
     3986  case 162:
     3987
     3988/* Line 1464 of yacc.c  */
     3989#line 1446 "grammar.y"
    39923990    {
    39933991            int i; TESTSETINT((yyvsp[(3) - (5)].lv),i);
     
    40044002    break;
    40054003
    4006   case 162:
    4007 
    4008 /* Line 1464 of yacc.c  */
    4009 #line 1454 "grammar.y"
     4004  case 163:
     4005
     4006/* Line 1464 of yacc.c  */
     4007#line 1459 "grammar.y"
    40104008    {
    40114009            if (currentVoice->ifsw==1)
     
    40264024    break;
    40274025
    4028   case 163:
    4029 
    4030 /* Line 1464 of yacc.c  */
    4031 #line 1471 "grammar.y"
     4026  case 164:
     4027
     4028/* Line 1464 of yacc.c  */
     4029#line 1476 "grammar.y"
    40324030    {
    40334031            int i; TESTSETINT((yyvsp[(3) - (5)].lv),i);
     
    40404038    break;
    40414039
    4042   case 164:
    4043 
    4044 /* Line 1464 of yacc.c  */
    4045 #line 1480 "grammar.y"
     4040  case 165:
     4041
     4042/* Line 1464 of yacc.c  */
     4043#line 1485 "grammar.y"
    40464044    {
    40474045            if (exitBuffer(BT_break)) YYERROR;
     
    40504048    break;
    40514049
    4052   case 165:
    4053 
    4054 /* Line 1464 of yacc.c  */
    4055 #line 1485 "grammar.y"
     4050  case 166:
     4051
     4052/* Line 1464 of yacc.c  */
     4053#line 1490 "grammar.y"
    40564054    {
    40574055            if (contBuffer(BT_break)) YYERROR;
     
    40604058    break;
    40614059
    4062   case 166:
    4063 
    4064 /* Line 1464 of yacc.c  */
    4065 #line 1493 "grammar.y"
     4060  case 167:
     4061
     4062/* Line 1464 of yacc.c  */
     4063#line 1498 "grammar.y"
    40664064    {
    40674065            /* -> if(!$2) break; $3; continue;*/
     
    40744072    break;
    40754073
    4076   case 167:
    4077 
    4078 /* Line 1464 of yacc.c  */
    4079 #line 1505 "grammar.y"
     4074  case 168:
     4075
     4076/* Line 1464 of yacc.c  */
     4077#line 1510 "grammar.y"
    40804078    {
    40814079            /* $2 */
     
    40954093    break;
    40964094
    4097   case 168:
    4098 
    4099 /* Line 1464 of yacc.c  */
    4100 #line 1524 "grammar.y"
     4095  case 169:
     4096
     4097/* Line 1464 of yacc.c  */
     4098#line 1529 "grammar.y"
    41014099    {
    41024100            idhdl h = enterid((yyvsp[(2) - (3)].name),myynest,PROC_CMD,&IDROOT,TRUE);
     
    41104108    break;
    41114109
    4112   case 169:
    4113 
    4114 /* Line 1464 of yacc.c  */
    4115 #line 1534 "grammar.y"
     4110  case 170:
     4111
     4112/* Line 1464 of yacc.c  */
     4113#line 1539 "grammar.y"
    41164114    {
    41174115            idhdl h = enterid((yyvsp[(1) - (3)].name),myynest,PROC_CMD,&IDROOT,TRUE);
     
    41344132    break;
    41354133
    4136   case 170:
    4137 
    4138 /* Line 1464 of yacc.c  */
    4139 #line 1553 "grammar.y"
     4134  case 171:
     4135
     4136/* Line 1464 of yacc.c  */
     4137#line 1558 "grammar.y"
    41404138    {
    41414139            omFree((ADDRESS)(yyvsp[(3) - (4)].name));
     
    41594157    break;
    41604158
    4161   case 171:
    4162 
    4163 /* Line 1464 of yacc.c  */
    4164 #line 1576 "grammar.y"
     4159  case 172:
     4160
     4161/* Line 1464 of yacc.c  */
     4162#line 1581 "grammar.y"
    41654163    {
    41664164            // decl. of type proc p(int i)
     
    41704168    break;
    41714169
    4172   case 172:
    4173 
    4174 /* Line 1464 of yacc.c  */
    4175 #line 1582 "grammar.y"
     4170  case 173:
     4171
     4172/* Line 1464 of yacc.c  */
     4173#line 1587 "grammar.y"
    41764174    {
    41774175            // decl. of type proc p(i)
     
    41844182    break;
    41854183
    4186   case 173:
    4187 
    4188 /* Line 1464 of yacc.c  */
    4189 #line 1594 "grammar.y"
     4184  case 174:
     4185
     4186/* Line 1464 of yacc.c  */
     4187#line 1599 "grammar.y"
    41904188    {
    41914189            iiRETURNEXPR.Copy(&(yyvsp[(3) - (4)].lv));
     
    41954193    break;
    41964194
    4197   case 174:
    4198 
    4199 /* Line 1464 of yacc.c  */
    4200 #line 1600 "grammar.y"
     4195  case 175:
     4196
     4197/* Line 1464 of yacc.c  */
     4198#line 1605 "grammar.y"
    42014199    {
    42024200            if ((yyvsp[(1) - (3)].i)==RETURN)
     
    42124210
    42134211/* Line 1464 of yacc.c  */
    4214 #line 4213 "grammar.cc"
     4212#line 4211 "grammar.cc"
    42154213      default: break;
    42164214    }
  • Singular/grammar.h

    rdce59cc rcee69a  
    6363     POLY_CMD = 280,
    6464     RESOLUTION_CMD = 281,
    65      VECTOR_CMD = 282,
    66      BETTI_CMD = 283,
    67      E_CMD = 284,
    68      FETCH_CMD = 285,
    69      FREEMODULE_CMD = 286,
    70      KEEPRING_CMD = 287,
    71      IMAP_CMD = 288,
    72      KOSZUL_CMD = 289,
    73      MAXID_CMD = 290,
    74      MONOM_CMD = 291,
    75      PAR_CMD = 292,
    76      PREIMAGE_CMD = 293,
    77      VAR_CMD = 294,
    78      VALTVARS = 295,
    79      VMAXDEG = 296,
    80      VMAXMULT = 297,
    81      VNOETHER = 298,
    82      VMINPOLY = 299,
    83      END_RING = 300,
    84