
(/VERSIONCHECK 2) 

(DEFUN |GCDBAS;gcdBasis;2V;1| (|v| $) (QCAR (SPADCALL |v| (QREFELT $ 9)))) 

(DEFUN |GCDBAS;splitNums| (|a| |b| $)
  (PROG (|b1| #1=#:G678 |a1| |cf|)
    (RETURN
     (SEQ
      (LETT |cf| (SPADCALL |a| |b| (QREFELT $ 11)) . #2=(|GCDBAS;splitNums|))
      (EXIT
       (COND ((SPADCALL |cf| (QREFELT $ 13)) (CONS 1 "failed"))
             ('T
              (SEQ
               (LETT |a1|
                     (PROG2
                         (LETT #1# (SPADCALL |a| |cf| (QREFELT $ 15)) . #2#)
                         (QCDR #1#)
                       (|check-union| (QEQCAR #1# 0) (QREFELT $ 6) #1#))
                     . #2#)
               (LETT |b1|
                     (PROG2
                         (LETT #1# (SPADCALL |b| |cf| (QREFELT $ 15)) . #2#)
                         (QCDR #1#)
                       (|check-union| (QEQCAR #1# 0) (QREFELT $ 6) #1#))
                     . #2#)
               (EXIT (CONS 0 (VECTOR |a1| |b1| |cf|))))))))))) 

(DEFUN |GCDBAS;gcdDecomposition;VR;3| (|v| $)
  (PROG (|j| |i| |ct| |m| |ct0| |cb| |pr| |nv| |n|)
    (RETURN
     (SEQ (LETT |n| (QVSIZE |v|) . #1=(|GCDBAS;gcdDecomposition;VR;3|))
          (LETT |nv|
                (SPADCALL (SPADCALL 2 |n| (QREFELT $ 18)) (|spadConstant| $ 19)
                          (QREFELT $ 20))
                . #1#)
          (SEQ (LETT |i| 1 . #1#) G190
               (COND ((QSGREATERP |i| |n|) #2=(GO G191)))
               (SEQ
                (SPADCALL |nv| |i|
                          (SPADCALL (SPADCALL |v| |i| (QREFELT $ 24))
                                    (QREFELT $ 25))
                          (QREFELT $ 26))
                (EXIT
                 (SPADCALL |nv| (+ |i| |n|)
                           (SPADCALL (SPADCALL |v| |i| (QREFELT $ 24))
                                     (QREFELT $ 27))
                           (QREFELT $ 26))))
               (LETT |i| (QSADD1 |i|) . #1#) #3=(GO G190) G191 (EXIT NIL))
          (LETT |pr| (SPADCALL |nv| (QREFELT $ 9)) . #1#) |pr|
          (LETT |cb| (QCAR |pr|) . #1#) (LETT |ct0| (QCDR |pr|) . #1#)
          (LETT |m| (QVSIZE |cb|) . #1#)
          (LETT |ct| (SPADCALL |m| |n| 0 (QREFELT $ 30)) . #1#)
          (SEQ (LETT |i| 1 . #1#) G190 (COND ((QSGREATERP |i| |m|) #2#))
               (SEQ
                (EXIT
                 (SEQ (LETT |j| 1 . #1#) G190 (COND ((QSGREATERP |j| |n|) #2#))
                      (SEQ
                       (EXIT
                        (SPADCALL |ct| |i| |j|
                                  (- (SPADCALL |ct0| |i| |j| (QREFELT $ 31))
                                     (SPADCALL |ct0| |i| (+ |j| |n|)
                                               (QREFELT $ 31)))
                                  (QREFELT $ 32))))
                      (LETT |j| (QSADD1 |j|) . #1#) #3# G191 (EXIT NIL))))
               (LETT |i| (QSADD1 |i|) . #1#) #3# G191 (EXIT NIL))
          (EXIT (CONS |cb| |ct|)))))) 

(DEFUN |GCDBAS;gcdDecomposition;VR;4| (|v| $)
  (PROG (#1=#:G729 |i| #2=#:G728 |nv| |a| #3=#:G727 |l| |m| |firstAdded| |c|
         |k| |ov| |n1| |ct1| |cb1| |dr1| #4=#:G726 |cf| |b1| |a1| |sr| |sr1|
         |pquo| |b| |j| |i0| |ct| |n| |cb|)
    (RETURN
     (SEQ
      (LETT |cb| (SPADCALL (QREFELT $ 35))
            . #5=(|GCDBAS;gcdDecomposition;VR;4|))
      (LETT |n| (QVSIZE |v|) . #5#) (LETT |ct| (SPADCALL (QREFELT $ 37)) . #5#)
      (SEQ (LETT |i| 1 . #5#) G190 (COND ((QSGREATERP |i| |n|) #6=(GO G191)))
           (SEQ (LETT |a| (SPADCALL |v| |i| (QREFELT $ 38)) . #5#)
                (LETT |i0| (SPADCALL |cb| (QREFELT $ 39)) . #5#)
                (SEQ (LETT |j| 1 . #5#) G190
                     (COND
                      ((OR (QSGREATERP |j| |i0|)
                           (NULL
                            (COND ((SPADCALL |a| (QREFELT $ 13)) 'NIL)
                                  ('T 'T))))
                       #6#))
                     (SEQ (LETT |b| (SPADCALL |cb| |j| (QREFELT $ 40)) . #5#)
                          (EXIT
                           (COND ((SPADCALL |b| (QREFELT $ 13)) "iterate")
                                 ('T
                                  (SEQ
                                   (LETT |pquo|
                                         (SPADCALL |a| |b| (QREFELT $ 15))
                                         . #5#)
                                   (EXIT
                                    (COND
                                     ((QEQCAR |pquo| 0)
                                      (SEQ G190
                                           (COND
                                            ((NULL (QEQCAR |pquo| 0)) #6#))
                                           (SEQ
                                            (SPADCALL
                                             (SPADCALL |ct| |j| (QREFELT $ 42))
                                             |i|
                                             (+
                                              (SPADCALL
                                               (SPADCALL |ct| |j|
                                                         (QREFELT $ 42))
                                               |i| (QREFELT $ 43))
                                              1)
                                             (QREFELT $ 44))
                                            (LETT |a| (QCDR |pquo|) . #5#)
                                            (EXIT
                                             (LETT |pquo|
                                                   (SPADCALL |a| |b|
                                                             (QREFELT $ 15))
                                                   . #5#)))
                                           NIL #7=(GO G190) G191 (EXIT NIL)))
                                     ('T
                                      (SEQ
                                       (LETT |sr1|
                                             (|GCDBAS;splitNums| |a| |b| $)
                                             . #5#)
                                       (EXIT
                                        (COND
                                         ((QEQCAR |sr1| 0)
                                          (SEQ (LETT |sr| (QCDR |sr1|) . #5#)
                                               (LETT |a1| (QVELT |sr| 0) . #5#)
                                               (LETT |b1| (QVELT |sr| 1) . #5#)
                                               (LETT |cf| (QVELT |sr| 2) . #5#)
                                               (EXIT
                                                (COND
                                                 ((SPADCALL
                                                   (SPADCALL |a1| |cf|
                                                             (QREFELT $ 11))
                                                   (QREFELT $ 13))
                                                  (COND
                                                   ((SPADCALL
                                                     (SPADCALL |b1| |cf|
                                                               (QREFELT $ 11))
                                                     (QREFELT $ 13))
                                                    (SEQ
                                                     (SPADCALL |cb| |b1|
                                                               (QREFELT $ 45))
                                                     (SPADCALL |ct|
                                                               (SPADCALL
                                                                (SPADCALL |ct|
                                                                          |j|
                                                                          (QREFELT
                                                                           $
                                                                           42))
                                                                (QREFELT $ 46))
                                                               (QREFELT $ 47))
                                                     (SPADCALL |cb| |j| |cf|
                                                               (QREFELT $ 48))
                                                     (SPADCALL
                                                      (SPADCALL |ct| |j|
                                                                (QREFELT $ 42))
                                                      |i| 1 (QREFELT $ 44))
                                                     (EXIT
                                                      (LETT |a| |a1| . #5#))))
                                                   ('T
                                                    (SEQ
                                                     (LETT |dr1|
                                                           (SPADCALL
                                                            (SPADCALL
                                                             (LIST |a1| |b1|
                                                                   |cf|)
                                                             (QREFELT $ 50))
                                                            (QREFELT $ 9))
                                                           . #5#)
                                                     (LETT |cb1| (QCAR |dr1|)
                                                           . #5#)
                                                     (LETT |ct1| (QCDR |dr1|)
                                                           . #5#)
                                                     (LETT |firstAdded| 'T
                                                           . #5#)
                                                     (LETT |a|
                                                           (|spadConstant| $
                                                                           51)
                                                           . #5#)
                                                     (LETT |n1| (QVSIZE |cb1|)
                                                           . #5#)
                                                     (LETT |ov|
                                                           (SPADCALL |ct| |j|
                                                                     (QREFELT $
                                                                              42))
                                                           . #5#)
                                                     (EXIT
                                                      (SEQ (LETT |k| 1 . #5#)
                                                           G190
                                                           (COND
                                                            ((QSGREATERP |k|
                                                                         |n1|)
                                                             #6#))
                                                           (SEQ
                                                            (LETT |c|
                                                                  (+
                                                                   (SPADCALL
                                                                    |ct1| |k| 2
                                                                    (QREFELT $
                                                                             31))
                                                                   (SPADCALL
                                                                    |ct1| |k| 3
                                                                    (QREFELT $
                                                                             31)))
                                                                  . #5#)
                                                            (EXIT
                                                             (COND
                                                              ((< 0 |c|)
                                                               (SEQ
                                                                (COND
                                                                 (|firstAdded|
                                                                  (SEQ
                                                                   (LETT
                                                                    |firstAdded|
                                                                    'NIL . #5#)
                                                                   (SPADCALL
                                                                    |cb| |j|
                                                                    (SPADCALL
                                                                     |cb1| |k|
                                                                     (QREFELT $
                                                                              38))
                                                                    (QREFELT $
                                                                             48))
                                                                   (EXIT
                                                                    (LETT |m|
                                                                          |j|
                                                                          . #5#))))
                                                                 ('T
                                                                  (SEQ
                                                                   (SPADCALL
                                                                    |cb|
                                                                    (SPADCALL
                                                                     |cb1| |k|
                                                                     (QREFELT $
                                                                              38))
                                                                    (QREFELT $
                                                                             45))
                                                                   (SPADCALL
                                                                    |ct|
                                                                    (GETREFV 0)
                                                                    (QREFELT $
                                                                             47))
                                                                   (EXIT
                                                                    (LETT |m|
                                                                          (SPADCALL
                                                                           |cb|
                                                                           (QREFELT
                                                                            $
                                                                            39))
                                                                          . #5#)))))
                                                                (LETT |nv|
                                                                      (SPADCALL
                                                                       |n| 0
                                                                       (QREFELT
                                                                        $ 52))
                                                                      . #5#)
                                                                (SEQ
                                                                 (LETT |l| 1
                                                                       . #5#)
                                                                 G190
                                                                 (COND
                                                                  ((QSGREATERP
                                                                    |l| |n|)
                                                                   #6#))
                                                                 (SEQ
                                                                  (EXIT
                                                                   (SPADCALL
                                                                    |nv| |l|
                                                                    (* |c|
                                                                       (SPADCALL
                                                                        |ov|
                                                                        |l|
                                                                        (QREFELT
                                                                         $
                                                                         43)))
                                                                    (QREFELT $
                                                                             44))))
                                                                 (LETT |l|
                                                                       (QSADD1
                                                                        |l|)
                                                                       . #5#)
                                                                 #7# G191
                                                                 (EXIT NIL))
                                                                (SPADCALL |nv|
                                                                          |i|
                                                                          (+
                                                                           (SPADCALL
                                                                            |ct1|
                                                                            |k|
                                                                            1
                                                                            (QREFELT
                                                                             $
                                                                             31))
                                                                           (SPADCALL
                                                                            |ct1|
                                                                            |k|
                                                                            3
                                                                            (QREFELT
                                                                             $
                                                                             31)))
                                                                          (QREFELT
                                                                           $
                                                                           44))
                                                                (EXIT
                                                                 (SPADCALL |ct|
                                                                           |m|
                                                                           |nv|
                                                                           (QREFELT
                                                                            $
                                                                            53)))))
                                                              ('T
                                                               (SEQ
                                                                (LETT |l| 1
                                                                      . #5#)
                                                                (LETT #4#
                                                                      (SPADCALL
                                                                       |ct1|
                                                                       |k| 1
                                                                       (QREFELT
                                                                        $ 31))
                                                                      . #5#)
                                                                G190
                                                                (COND
                                                                 ((QSGREATERP
                                                                   |l| #4#)
                                                                  #6#))
                                                                (SEQ
                                                                 (EXIT
                                                                  (LETT |a|
                                                                        (SPADCALL
                                                                         |a|
                                                                         (SPADCALL
                                                                          |cb1|
                                                                          |k|
                                                                          (QREFELT
                                                                           $
                                                                           38))
                                                                         (QREFELT
                                                                          $
                                                                          54))
                                                                        . #5#)))
                                                                (LETT |l|
                                                                      (QSADD1
                                                                       |l|)
                                                                      . #5#)
                                                                #7# G191
                                                                (EXIT NIL))))))
                                                           (LETT |k|
                                                                 (QSADD1 |k|)
                                                                 . #5#)
                                                           #7# G191
                                                           (EXIT NIL)))))))
                                                 ('T
                                                  (SEQ
                                                   (LETT |dr1|
                                                         (SPADCALL
                                                          (SPADCALL
                                                           (LIST |a1| |b1|
                                                                 |cf|)
                                                           (QREFELT $ 50))
                                                          (QREFELT $ 9))
                                                         . #5#)
                                                   (LETT |cb1| (QCAR |dr1|)
                                                         . #5#)
                                                   (LETT |ct1| (QCDR |dr1|)
                                                         . #5#)
                                                   (LETT |firstAdded| 'T . #5#)
                                                   (LETT |a|
                                                         (|spadConstant| $ 51)
                                                         . #5#)
                                                   (LETT |n1| (QVSIZE |cb1|)
                                                         . #5#)
                                                   (LETT |ov|
                                                         (SPADCALL |ct| |j|
                                                                   (QREFELT $
                                                                            42))
                                                         . #5#)
                                                   (EXIT
                                                    (SEQ (LETT |k| 1 . #5#)
                                                         G190
                                                         (COND
                                                          ((QSGREATERP |k|
                                                                       |n1|)
                                                           #6#))
                                                         (SEQ
                                                          (LETT |c|
                                                                (+
                                                                 (SPADCALL
                                                                  |ct1| |k| 2
                                                                  (QREFELT $
                                                                           31))
                                                                 (SPADCALL
                                                                  |ct1| |k| 3
                                                                  (QREFELT $
                                                                           31)))
                                                                . #5#)
                                                          (EXIT
                                                           (COND
                                                            ((< 0 |c|)
                                                             (SEQ
                                                              (COND
                                                               (|firstAdded|
                                                                (SEQ
                                                                 (LETT
                                                                  |firstAdded|
                                                                  'NIL . #5#)
                                                                 (SPADCALL |cb|
                                                                           |j|
                                                                           (SPADCALL
                                                                            |cb1|
                                                                            |k|
                                                                            (QREFELT
                                                                             $
                                                                             38))
                                                                           (QREFELT
                                                                            $
                                                                            48))
                                                                 (EXIT
                                                                  (LETT |m| |j|
                                                                        . #5#))))
                                                               ('T
                                                                (SEQ
                                                                 (SPADCALL |cb|
                                                                           (SPADCALL
                                                                            |cb1|
                                                                            |k|
                                                                            (QREFELT
                                                                             $
                                                                             38))
                                                                           (QREFELT
                                                                            $
                                                                            45))
                                                                 (SPADCALL |ct|
                                                                           (GETREFV
                                                                            0)
                                                                           (QREFELT
                                                                            $
                                                                            47))
                                                                 (EXIT
                                                                  (LETT |m|
                                                                        (SPADCALL
                                                                         |cb|
                                                                         (QREFELT
                                                                          $
                                                                          39))
                                                                        . #5#)))))
                                                              (LETT |nv|
                                                                    (SPADCALL
                                                                     |n| 0
                                                                     (QREFELT $
                                                                              52))
                                                                    . #5#)
                                                              (SEQ
                                                               (LETT |l| 1
                                                                     . #5#)
                                                               G190
                                                               (COND
                                                                ((QSGREATERP
                                                                  |l| |n|)
                                                                 #6#))
                                                               (SEQ
                                                                (EXIT
                                                                 (SPADCALL |nv|
                                                                           |l|
                                                                           (*
                                                                            |c|
                                                                            (SPADCALL
                                                                             |ov|
                                                                             |l|
                                                                             (QREFELT
                                                                              $
                                                                              43)))
                                                                           (QREFELT
                                                                            $
                                                                            44))))
                                                               (LETT |l|
                                                                     (QSADD1
                                                                      |l|)
                                                                     . #5#)
                                                               #7# G191
                                                               (EXIT NIL))
                                                              (SPADCALL |nv|
                                                                        |i|
                                                                        (+
                                                                         (SPADCALL
                                                                          |ct1|
                                                                          |k| 1
                                                                          (QREFELT
                                                                           $
                                                                           31))
                                                                         (SPADCALL
                                                                          |ct1|
                                                                          |k| 3
                                                                          (QREFELT
                                                                           $
                                                                           31)))
                                                                        (QREFELT
                                                                         $ 44))
                                                              (EXIT
                                                               (SPADCALL |ct|
                                                                         |m|
                                                                         |nv|
                                                                         (QREFELT
                                                                          $
                                                                          53)))))
                                                            ('T
                                                             (SEQ
                                                              (LETT |l| 1
                                                                    . #5#)
                                                              (LETT #3#
                                                                    (SPADCALL
                                                                     |ct1| |k|
                                                                     1
                                                                     (QREFELT $
                                                                              31))
                                                                    . #5#)
                                                              G190
                                                              (COND
                                                               ((QSGREATERP |l|
                                                                            #3#)
                                                                #6#))
                                                              (SEQ
                                                               (EXIT
                                                                (LETT |a|
                                                                      (SPADCALL
                                                                       |a|
                                                                       (SPADCALL
                                                                        |cb1|
                                                                        |k|
                                                                        (QREFELT
                                                                         $ 38))
                                                                       (QREFELT
                                                                        $ 54))
                                                                      . #5#)))
                                                              (LETT |l|
                                                                    (QSADD1
                                                                     |l|)
                                                                    . #5#)
                                                              #7# G191
                                                              (EXIT NIL))))))
                                                         (LETT |k| (QSADD1 |k|)
                                                               . #5#)
                                                         #7# G191
                                                         (EXIT
                                                          NIL))))))))))))))))))))
                     (LETT |j| (QSADD1 |j|) . #5#) #7# G191 (EXIT NIL))
                (EXIT
                 (COND
                  ((NULL (SPADCALL |a| (|spadConstant| $ 51) (QREFELT $ 55)))
                   (SEQ (SPADCALL |cb| |a| (QREFELT $ 45))
                        (LETT |nv| (SPADCALL |n| 0 (QREFELT $ 52)) . #5#)
                        (SPADCALL |nv| |i| 1 (QREFELT $ 44))
                        (EXIT (SPADCALL |ct| |nv| (QREFELT $ 47))))))))
           (LETT |i| (QSADD1 |i|) . #5#) #7# G191 (EXIT NIL))
      (EXIT
       (CONS (SPADCALL (SPADCALL |cb| (QREFELT $ 56)) (QREFELT $ 50))
             (SPADCALL
              (PROGN
               (LETT #2# NIL . #5#)
               (SEQ (LETT |i| 1 . #5#)
                    (LETT #1# (SPADCALL |ct| (QREFELT $ 57)) . #5#) G190
                    (COND ((QSGREATERP |i| #1#) #6#))
                    (SEQ
                     (EXIT
                      (LETT #2#
                            (CONS
                             (SPADCALL (SPADCALL |ct| |i| (QREFELT $ 42))
                                       (QREFELT $ 59))
                             #2#)
                            . #5#)))
                    (LETT |i| (QSADD1 |i|) . #5#) #7# G191
                    (EXIT (NREVERSE0 #2#))))
              (QREFELT $ 61)))))))) 

(DEFUN |GcdBasis| (#1=#:G730)
  (PROG ()
    (RETURN
     (PROG (#2=#:G731)
       (RETURN
        (COND
         ((LETT #2#
                (|lassocShiftWithFunction| (LIST (|devaluate| #1#))
                                           (HGET |$ConstructorCache|
                                                 '|GcdBasis|)
                                           '|domainEqualList|)
                . #3=(|GcdBasis|))
          (|CDRwithIncrement| #2#))
         ('T
          (UNWIND-PROTECT (PROG1 (|GcdBasis;| #1#) (LETT #2# T . #3#))
            (COND ((NOT #2#) (HREM |$ConstructorCache| '|GcdBasis|))))))))))) 

(DEFUN |GcdBasis;| (|#1|)
  (PROG (|pv$| $ |dv$| DV$1)
    (RETURN
     (PROGN
      (LETT DV$1 (|devaluate| |#1|) . #1=(|GcdBasis|))
      (LETT |dv$| (LIST '|GcdBasis| DV$1) . #1#)
      (LETT $ (GETREFV 62) . #1#)
      (QSETREFV $ 0 |dv$|)
      (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
      (|haddProp| |$ConstructorCache| '|GcdBasis| (LIST DV$1) (CONS 1 $))
      (|stuffDomainSlots| $)
      (QSETREFV $ 6 |#1|)
      $)))) 

(MAKEPROP '|GcdBasis| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL (|local| |#1|)
              (|Record| (|:| |basis| 8) (|:| |transform| 29)) (|Vector| 6)
              |GCDBAS;gcdDecomposition;VR;4| |GCDBAS;gcdBasis;2V;1| (0 . |gcd|)
              (|Boolean|) (6 . |unit?|) (|Union| $ '"failed") (11 . |exquo|)
              (|PositiveInteger|) (|NonNegativeInteger|) (17 . *) (23 . |Zero|)
              (27 . |new|) (|Fraction| 6) (|Integer|) (|Vector| 21)
              (33 . |elt|) (39 . |numer|) (44 . |setelt|) (51 . |denom|)
              (56 . |Zero|) (|Matrix| 22) (60 . |new|) (67 . |elt|)
              (74 . |setelt|) |GCDBAS;gcdDecomposition;VR;3|
              (|FlexibleArray| 6) (82 . |empty|) (|FlexibleArray| 41)
              (86 . |empty|) (90 . |elt|) (96 . |#|) (101 . |elt|)
              (|Vector| 22) (107 . |elt|) (113 . |elt|) (119 . |setelt|)
              (126 . |concat!|) (132 . |copy|) (137 . |concat!|)
              (143 . |setelt|) (|List| 6) (150 . |vector|) (155 . |One|)
              (159 . |new|) (165 . |setelt|) (172 . *) (178 . =)
              (184 . |parts|) (189 . |#|) (|List| 22) (194 . |parts|)
              (|List| 58) (199 . |matrix|))
           '#(|gcdDecomposition| 204 |gcdBasis| 214) 'NIL
           (CONS (|makeByteWordVec2| 1 'NIL)
                 (CONS '#()
                       (CONS '#()
                             (|makeByteWordVec2| 61
                                                 '(2 6 0 0 0 11 1 6 12 0 13 2 6
                                                   14 0 0 15 2 17 0 16 0 18 0 6
                                                   0 19 2 8 0 17 6 20 2 23 21 0
                                                   22 24 1 21 6 0 25 3 8 6 0 22
                                                   6 26 1 21 6 0 27 0 21 0 28 3
                                                   29 0 17 17 22 30 3 29 22 0
                                                   22 22 31 4 29 22 0 22 22 22
                                                   32 0 34 0 35 0 36 0 37 2 8 6
                                                   0 22 38 1 34 17 0 39 2 34 6
                                                   0 22 40 2 36 41 0 22 42 2 41
                                                   22 0 22 43 3 41 22 0 22 22
                                                   44 2 34 0 0 6 45 1 41 0 0 46
                                                   2 36 0 0 41 47 3 34 6 0 22 6
                                                   48 1 8 0 49 50 0 6 0 51 2 41
                                                   0 17 22 52 3 36 41 0 22 41
                                                   53 2 6 0 0 0 54 2 6 12 0 0
                                                   55 1 34 49 0 56 1 36 17 0 57
                                                   1 41 58 0 59 1 29 0 60 61 1
                                                   0 7 23 33 1 0 7 8 9 1 0 8 8
                                                   10)))))
           '|lookupComplete|)) 
