
(/VERSIONCHECK 2) 

(DEFUN |PERMAN;permanent3| (|x| $)
  (PROG (|w| |sgn| |k| |i| #0=#:G1833 |b| |vv| |j| |a|)
    (RETURN
      (SEQ (LETT |sgn| (|spadConstant| $ 8) . #1=(|PERMAN;permanent3|))
           (LETT |a| (|spadConstant| $ 9) . #1#)
           (LETT |vv| (SPADCALL (QREFELT $ 6) (QREFELT $ 13)) . #1#)
           (LETT |w|
                 (SPADCALL (QREFELT $ 6) (|spadConstant| $ 9)
                     (QREFELT $ 16)) . #1#)
           (LETT |j| 1 . #1#)
           (SEQ G190
                (COND
                  ((NULL (COND
                           ((EQL |j| (+ (QREFELT $ 6) 1)) 'NIL)
                           ('T 'T)))
                   #2=(GO G191)))
                (SEQ (LETT |sgn| (SPADCALL |sgn| (QREFELT $ 17)) . #1#)
                     (LETT |b| |sgn| . #1#)
                     (COND
                       ((EQL (SPADCALL (SPADCALL |vv| 1 (QREFELT $ 22))
                                 |j| (QREFELT $ 23))
                             1)
                        (LETT |k|
                              (SPADCALL (|spadConstant| $ 8)
                                  (QREFELT $ 17)) . #1#))
                       ('T (LETT |k| (|spadConstant| $ 8) . #1#)))
                     (SEQ (LETT |i| 1 . #1#)
                          (LETT #0# (QREFELT $ 6) . #1#) G190
                          (COND ((QSGREATERP |i| #0#) #2#))
                          (SEQ (SPADCALL |w| |i|
                                   (SPADCALL
                                    (SPADCALL |w| |i| (QREFELT $ 24))
                                    (SPADCALL |k|
                                     (SPADCALL |x| |i| |j|
                                      (QREFELT $ 25))
                                     (QREFELT $ 26))
                                    (QREFELT $ 27))
                                   (QREFELT $ 28))
                               (EXIT (LETT |b|
                                      (SPADCALL |b|
                                       (SPADCALL |w| |i|
                                        (QREFELT $ 24))
                                       (QREFELT $ 26)) . #1#)))
                          (LETT |i| (QSADD1 |i|) . #1#) #3=(GO G190)
                          G191 (EXIT NIL))
                     (LETT |a| (SPADCALL |a| |b| (QREFELT $ 27)) . #1#)
                     (LETT |vv|
                           (SPADCALL |vv| (QREFELT $ 6) (QREFELT $ 29)) . #1#)
                     (EXIT (LETT |j|
                                 (SPADCALL
                                     (SPADCALL |vv| 2 (QREFELT $ 22)) 1
                                     (QREFELT $ 23)) . #1#)))
                NIL #3# G191 (EXIT NIL))
           (COND
             ((ODDP (QREFELT $ 6))
              (LETT |a| (SPADCALL |a| (QREFELT $ 17)) . #1#)))
           (EXIT |a|))))) 

(DEFUN |PERMAN;permanent;SmR;2| (|x| $)
  (PROG (|two| |half| #0=#:G1853 |w| #1=#:G1854 |rowi| #2=#:G1855
               #3=#:G1843 #4=#:G1856 |sgn| |k| |i| #5=#:G1857 |b|
               #6=#:G1848 |vv| |j| |a|)
    (RETURN
      (SEQ (EXIT (COND
                   ((EQL (QREFELT $ 6) 1)
                    (SPADCALL |x| 1 1 (QREFELT $ 25)))
                   (#7='T
                    (SEQ (LETT |two| (SPADCALL 2 (QREFELT $ 30))
                               . #8=(|PERMAN;permanent;SmR;2|))
                         (LETT |half|
                               (SPADCALL |two| (QREFELT $ 32)) . #8#)
                         (COND
                           ((QEQCAR |half| 1)
                            (COND
                              ((< (QREFELT $ 6) 7)
                               (PROGN
                                 (LETT #0#
                                       (|PERMAN;permanent3| |x| $) . #8#)
                                 (GO #0#)))
                              (#7#
                               (PROGN
                                 (LETT #0#
                                       (|PERMAN;permanent2| |x| $) . #8#)
                                 (GO #0#))))))
                         (LETT |sgn| (|spadConstant| $ 8) . #8#)
                         (LETT |a| (|spadConstant| $ 9) . #8#)
                         (LETT |w|
                               (SPADCALL (QREFELT $ 6)
                                   (|spadConstant| $ 9) (QREFELT $ 16)) . #8#)
                         (LETT |rowi|
                               (SPADCALL (QREFELT $ 6)
                                   (|spadConstant| $ 9) (QREFELT $ 16)) . #8#)
                         (SEQ (LETT |i| 1 . #8#)
                              (LETT #1# (QREFELT $ 6) . #8#) G190
                              (COND
                                ((QSGREATERP |i| #1#) #9=(GO G191)))
                              (SEQ (LETT |rowi|
                                    (SPADCALL
                                     (SPADCALL |x| |i| (QREFELT $ 34))
                                     (QREFELT $ 35)) . #8#)
                                   (LETT |b|
                                    (|spadConstant| $ 9) . #8#)
                                   (SEQ (LETT |j| 1 . #8#)
                                    (LETT #2# (QREFELT $ 6) . #8#) G190
                                    (COND ((QSGREATERP |j| #2#) #9#))
                                    (SEQ
                                     (EXIT
                                      (LETT |b|
                                       (SPADCALL |b|
                                        (SPADCALL |rowi| |j|
                                         (QREFELT $ 24))
                                        (QREFELT $ 27)) . #8#)))
                                    (LETT |j| (QSADD1 |j|) . #8#)
                                    #10=(GO G190) G191 (EXIT NIL))
                                   (EXIT
                                    (SPADCALL |w| |i|
                                     (SPADCALL
                                      (SPADCALL |rowi| (QREFELT $ 6)
                                       (QREFELT $ 24))
                                      (SPADCALL (QCDR |half|) |b|
                                       (QREFELT $ 26))
                                      (QREFELT $ 36))
                                     (QREFELT $ 28))))
                              (LETT |i| (QSADD1 |i|) . #8#) #10# G191
                              (EXIT NIL))
                         (LETT |vv|
                               (SPADCALL
                                   (PROG1
                                    (LETT #3#
                                     (- (QREFELT $ 6) 1) . #8#)
                                     (|check-subtype| (> #3# 0)
                                      '(|PositiveInteger|) #3#))
                                   (QREFELT $ 13)) . #8#)
                         (QREFELT $ 6)
                         (LETT |b| (|spadConstant| $ 8) . #8#)
                         (SEQ (LETT |i| 1 . #8#)
                              (LETT #4# (QREFELT $ 6) . #8#) G190
                              (COND ((QSGREATERP |i| #4#) #9#))
                              (SEQ (EXIT
                                    (LETT |b|
                                     (SPADCALL |b|
                                      (SPADCALL |w| |i| (QREFELT $ 24))
                                      (QREFELT $ 26)) . #8#)))
                              (LETT |i| (QSADD1 |i|) . #8#) #10# G191
                              (EXIT NIL))
                         (LETT |a|
                               (SPADCALL |a| |b| (QREFELT $ 27)) . #8#)
                         (LETT |j| 1 . #8#)
                         (SEQ G190
                              (COND
                                ((NULL (COND
                                         ((EQL |j| (QREFELT $ 6)) 'NIL)
                                         ('T 'T)))
                                 #9#))
                              (SEQ (LETT |sgn|
                                    (SPADCALL |sgn| (QREFELT $ 17)) . #8#)
                                   (LETT |b| |sgn| . #8#)
                                   (COND
                                     ((EQL
                                       (SPADCALL
                                        (SPADCALL |vv| 1
                                         (QREFELT $ 22))
                                        |j| (QREFELT $ 23))
                                       1)
                                      (LETT |k| -1 . #8#))
                                     ('T (LETT |k| 1 . #8#)))
                                   (SEQ (LETT |i| 1 . #8#)
                                    (LETT #5# (QREFELT $ 6) . #8#) G190
                                    (COND ((QSGREATERP |i| #5#) #9#))
                                    (SEQ
                                     (SPADCALL |w| |i|
                                      (SPADCALL
                                       (SPADCALL |w| |i|
                                        (QREFELT $ 24))
                                       (SPADCALL |k|
                                        (SPADCALL |x| |i| |j|
                                         (QREFELT $ 25))
                                        (QREFELT $ 38))
                                       (QREFELT $ 27))
                                      (QREFELT $ 28))
                                     (EXIT
                                      (LETT |b|
                                       (SPADCALL |b|
                                        (SPADCALL |w| |i|
                                         (QREFELT $ 24))
                                        (QREFELT $ 26)) . #8#)))
                                    (LETT |i| (QSADD1 |i|) . #8#) #10#
                                    G191 (EXIT NIL))
                                   (LETT |a|
                                    (SPADCALL |a| |b| (QREFELT $ 27)) . #8#)
                                   (LETT |vv|
                                    (SPADCALL |vv|
                                     (PROG1
                                      (LETT #6#
                                       (- (QREFELT $ 6) 1) . #8#)
                                       (|check-subtype| (> #6# 0)
                                        '(|PositiveInteger|) #6#))
                                     (QREFELT $ 29)) . #8#)
                                   (EXIT
                                    (LETT |j|
                                     (SPADCALL
                                      (SPADCALL |vv| 2 (QREFELT $ 22))
                                      1 (QREFELT $ 23)) . #8#)))
                              NIL #10# G191 (EXIT NIL))
                         (COND
                           ((NULL (ODDP (QREFELT $ 6)))
                            (LETT |a|
                                  (SPADCALL |a| (QREFELT $ 17)) . #8#)))
                         (EXIT (SPADCALL |two| |a| (QREFELT $ 26)))))))
           #0# (EXIT #0#))))) 

(DEFUN |PERMAN;permanent2| (|x| $)
  (PROG (#0=#:G1878 |two| |w| #1=#:G1879 |rowi| #2=#:G1880 #3=#:G1862
            #4=#:G1881 |sgn| |k| |c| |i| #5=#:G1882 #6=#:G1867 |vv| |j|
            |a| #7=#:G1872 |b| #8=#:G1874)
    (RETURN
      (SEQ (EXIT (SEQ (LETT |c| (|spadConstant| $ 9)
                            . #9=(|PERMAN;permanent2|))
                      (LETT |sgn| (|spadConstant| $ 8) . #9#)
                      (COND
                        ((|HasCategory| (QREFELT $ 7)
                             '(|IntegralDomain|))
                         (COND
                           ((SPADCALL
                                (SPADCALL |sgn| |sgn| (QREFELT $ 27))
                                |c| (QREFELT $ 41))
                            (PROGN
                              (LETT #0#
                                    (|PERMAN;permanent3| |x| $) . #9#)
                              (GO #0#)))))
                        (#10='T
                         (PROGN
                           (LETT #0# (|PERMAN;permanent3| |x| $) . #9#)
                           (GO #0#))))
                      (EXIT (COND
                              ((EQL (QREFELT $ 6) 1)
                               (SPADCALL |x| 1 1 (QREFELT $ 25)))
                              (#10#
                               (SEQ (LETT |two|
                                     (SPADCALL 2 (QREFELT $ 30)) . #9#)
                                    (LETT |a|
                                     (|spadConstant| $ 9) . #9#)
                                    (LETT |w|
                                     (SPADCALL (QREFELT $ 6)
                                      (|spadConstant| $ 9)
                                      (QREFELT $ 16)) . #9#)
                                    (LETT |rowi|
                                     (SPADCALL (QREFELT $ 6)
                                      (|spadConstant| $ 9)
                                      (QREFELT $ 16)) . #9#)
                                    (SEQ (LETT |i| 1 . #9#)
                                     (LETT #1# (QREFELT $ 6) . #9#)
                                     G190
                                     (COND
                                       ((QSGREATERP |i| #1#)
                                        #11=(GO G191)))
                                     (SEQ
                                      (LETT |rowi|
                                       (SPADCALL
                                        (SPADCALL |x| |i|
                                         (QREFELT $ 34))
                                        (QREFELT $ 35)) . #9#)
                                      (LETT |b|
                                       (|spadConstant| $ 9) . #9#)
                                      (SEQ (LETT |j| 1 . #9#)
                                       (LETT #2# (QREFELT $ 6) . #9#)
                                       G190
                                       (COND
                                         ((QSGREATERP |j| #2#) #11#))
                                       (SEQ
                                        (EXIT
                                         (LETT |b|
                                          (SPADCALL |b|
                                           (SPADCALL |rowi| |j|
                                            (QREFELT $ 24))
                                           (QREFELT $ 27)) . #9#)))
                                       (LETT |j| (QSADD1 |j|) . #9#)
                                       #12=(GO G190) G191 (EXIT NIL))
                                      (EXIT
                                       (SPADCALL |w| |i|
                                        (SPADCALL
                                         (SPADCALL |two|
                                          (SPADCALL |rowi|
                                           (QREFELT $ 6)
                                           (QREFELT $ 24))
                                          (QREFELT $ 26))
                                         |b| (QREFELT $ 36))
                                        (QREFELT $ 28))))
                                     (LETT |i| (QSADD1 |i|) . #9#) #12#
                                     G191 (EXIT NIL))
                                    (LETT |vv|
                                     (SPADCALL
                                      (PROG1
                                       (LETT #3#
                                        (- (QREFELT $ 6) 1) . #9#)
                                        (|check-subtype| (> #3# 0)
                                         '(|PositiveInteger|) #3#))
                                      (QREFELT $ 13)) . #9#)
                                    (QREFELT $ 6)
                                    (LETT |b|
                                     (|spadConstant| $ 8) . #9#)
                                    (SEQ (LETT |i| 1 . #9#)
                                     (LETT #4# (QREFELT $ 6) . #9#)
                                     G190
                                     (COND
                                       ((QSGREATERP |i| #4#) #11#))
                                     (SEQ
                                      (EXIT
                                       (LETT |b|
                                        (SPADCALL |b|
                                         (SPADCALL |w| |i|
                                          (QREFELT $ 24))
                                         (QREFELT $ 26)) . #9#)))
                                     (LETT |i| (QSADD1 |i|) . #9#) #12#
                                     G191 (EXIT NIL))
                                    (LETT |a|
                                     (SPADCALL |a| |b| (QREFELT $ 27)) . #9#)
                                    (LETT |j| 1 . #9#)
                                    (SEQ G190
                                     (COND
                                       ((NULL
                                         (COND
                                           ((EQL |j| (QREFELT $ 6))
                                            'NIL)
                                           ('T 'T)))
                                        #11#))
                                     (SEQ
                                      (LETT |sgn|
                                       (SPADCALL |sgn| (QREFELT $ 17)) . #9#)
                                      (LETT |b| |sgn| . #9#)
                                      (COND
                                        ((EQL
                                          (SPADCALL
                                           (SPADCALL |vv| 1
                                            (QREFELT $ 22))
                                           |j| (QREFELT $ 23))
                                          1)
                                         (LETT |k| -1 . #9#))
                                        ('T (LETT |k| 1 . #9#)))
                                      (LETT |c|
                                       (SPADCALL |k| |two|
                                        (QREFELT $ 38)) . #9#)
                                      (SEQ (LETT |i| 1 . #9#)
                                       (LETT #5# (QREFELT $ 6) . #9#)
                                       G190
                                       (COND
                                         ((QSGREATERP |i| #5#) #11#))
                                       (SEQ
                                        (SPADCALL |w| |i|
                                         (SPADCALL
                                          (SPADCALL |w| |i|
                                           (QREFELT $ 24))
                                          (SPADCALL |c|
                                           (SPADCALL |x| |i| |j|
                                            (QREFELT $ 25))
                                           (QREFELT $ 26))
                                          (QREFELT $ 27))
                                         (QREFELT $ 28))
                                        (EXIT
                                         (LETT |b|
                                          (SPADCALL |b|
                                           (SPADCALL |w| |i|
                                            (QREFELT $ 24))
                                           (QREFELT $ 26)) . #9#)))
                                       (LETT |i| (QSADD1 |i|) . #9#)
                                       #12# G191 (EXIT NIL))
                                      (LETT |a|
                                       (SPADCALL |a| |b|
                                        (QREFELT $ 27)) . #9#)
                                      (LETT |vv|
                                       (SPADCALL |vv|
                                        (PROG1
                                         (LETT #6#
                                          (- (QREFELT $ 6) 1) . #9#)
                                          (|check-subtype| (> #6# 0)
                                           '(|PositiveInteger|) #6#))
                                        (QREFELT $ 29)) . #9#)
                                      (EXIT
                                       (LETT |j|
                                        (SPADCALL
                                         (SPADCALL |vv| 2
                                          (QREFELT $ 22))
                                         1 (QREFELT $ 23)) . #9#)))
                                     NIL #12# G191 (EXIT NIL))
                                    (COND
                                      ((NULL (ODDP (QREFELT $ 6)))
                                       (LETT |a|
                                        (SPADCALL |a| (QREFELT $ 17)) . #9#)))
                                    (LETT |b|
                                     (SPADCALL |two|
                                      (PROG1
                                       (LETT #7#
                                        (- (QREFELT $ 6) 1) . #9#)
                                        (|check-subtype| (>= #7# 0)
                                         '(|NonNegativeInteger|) #7#))
                                      (QREFELT $ 42)) . #9#)
                                    (EXIT
                                     (PROG2
                                      (LETT #8#
                                       (SPADCALL |a| |b|
                                        (QREFELT $ 43)) . #9#)
                                      (QCDR #8#)
                                       (|check-union| (QEQCAR #8# 0)
                                        (QREFELT $ 7) #8#)))))))))
           #0# (EXIT #0#))))) 

(DEFUN |Permanent| (&REST #0=#:G1883)
  (PROG ()
    (RETURN
      (PROG (#1=#:G1884)
        (RETURN
          (COND
            ((LETT #1#
                   (|lassocShiftWithFunction| (|devaluateList| #0#)
                       (HGET |$ConstructorCache| '|Permanent|)
                       '|domainEqualList|)
                   . #2=(|Permanent|))
             (|CDRwithIncrement| #1#))
            ('T
             (UNWIND-PROTECT
               (PROG1 (APPLY (|function| |Permanent;|) #0#)
                 (LETT #1# T . #2#))
               (COND
                 ((NOT #1#) (HREM |$ConstructorCache| '|Permanent|))))))))))) 

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

(MAKEPROP '|Permanent| '|infovec|
    (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
             (0 . |One|) (4 . |Zero|) (|Vector| 20) (|PositiveInteger|)
             (|GrayCode|) (8 . |firstSubsetGray|)
             (|NonNegativeInteger|) (|Vector| 7) (13 . |new|) (19 . -)
             (|SquareMatrix| 6 7) (24 . |One|) (|Vector| 21)
             (|Integer|) (28 . |elt|) (34 . |elt|) (40 . |elt|)
             (46 . |elt|) (53 . *) (59 . +) (65 . |setelt|)
             (72 . |nextSubsetGray|) (78 . |coerce|)
             (|Union| $ '"failed") (83 . |recip|) (|DirectProduct| 6 7)
             (88 . |row|) (94 . |coerce|) (99 . -) (105 . |One|)
             (109 . *) |PERMAN;permanent;SmR;2| (|Boolean|) (115 . =)
             (121 . **) (127 . |exquo|))
          '#(|permanent| 133) 'NIL
          (CONS (|makeByteWordVec2| 1 'NIL)
                (CONS '#()
                      (CONS '#()
                            (|makeByteWordVec2| 43
                                '(0 7 0 8 0 7 0 9 1 12 10 11 13 2 15 0
                                  14 7 16 1 7 0 0 17 0 18 0 19 2 10 20
                                  0 21 22 2 20 21 0 21 23 2 15 7 0 21
                                  24 3 18 7 0 21 21 25 2 7 0 0 0 26 2 7
                                  0 0 0 27 3 15 7 0 21 7 28 2 12 10 10
                                  11 29 1 7 0 21 30 1 7 31 0 32 2 18 33
                                  0 21 34 1 33 15 0 35 2 7 0 0 0 36 0
                                  33 0 37 2 7 0 21 0 38 2 7 40 0 0 41 2
                                  7 0 0 14 42 2 7 31 0 0 43 1 0 7 18
                                  39)))))
          '|lookupComplete|)) 
