      INTEGER BUFAA0(4096)
      INTEGER BPAAA0
      INTEGER NAMEA0(102)
      INTEGER LINEA0(102)
      INTEGER FILEA0(102)
      INTEGER FNAME0(102)
      INTEGER FLINE0(102)
      INTEGER FFILE0(102)
      INTEGER FNARG0
      INTEGER FREFA0
      INTEGER MTYPE0(16,32)
      INTEGER * 4 MLENA0(16,32)
      COMMON /CCK2C/BUFAA0,BPAAA0,NAMEA0,LINEA0,FILEA0,FNAME0,FLINE0,FFI
     *LE0,FNARG0,FREFA0,MTYPE0,MLENA0
      INTEGER GETLIN
      INTEGER LTYPE(102)
      INTEGER AAAAA0
      INTEGER AAAAB0
      INTEGER AAAAC0(17)
      DATA AAAAC0/238,239,244,160,242,229,230,229,242,229,238,227,229,22
     *8,170,238,0/
      FNAME0(1)=0
      FREFA0=1
10000 IF((GETLIN(BUFAA0,-10,4096).EQ.-1))GOTO 10001
        IF((BUFAA0(1).EQ.163))GOTO 10002
          CALL PRINT(-15,'cck2: bogus line: *s.',BUFAA0)
          GOTO 10000
10002   BPAAA0=2
        CALL GETWRD(BUFAA0,BPAAA0,NAMEA0)
        CALL GETWRD(BUFAA0,BPAAA0,LTYPE)
        CALL GETWRD(BUFAA0,BPAAA0,FILEA0)
        CALL GETWRD(BUFAA0,BPAAA0,LINEA0)
        AAAAA0=LTYPE(1)
        GOTO 10003
10004     CALL FNDEF
        GOTO 10005
10006     CALL FNCALL
        GOTO 10005
10003   AAAAB0=AAAAA0-227
        GOTO(10004,10007,10007,10007,10007,10006),AAAAB0
10007     CALL PRINT(-15,'cck2: unrecognized flag: *s*n',LTYPE)
10005 GOTO 10000
10001 IF((FREFA0.NE.0))GOTO 10008
        CALL PUTWH0(FNAME0,FFILE0,FLINE0)
        CALL PRINT(-11,AAAAC0)
10008 CALL SWT
      END
      SUBROUTINE FNDEF
      INTEGER BUFAA0(4096)
      INTEGER BPAAA0
      INTEGER NAMEA0(102)
      INTEGER LINEA0(102)
      INTEGER FILEA0(102)
      INTEGER FNAME0(102)
      INTEGER FLINE0(102)
      INTEGER FFILE0(102)
      INTEGER FNARG0
      INTEGER FREFA0
      INTEGER MTYPE0(16,32)
      INTEGER * 4 MLENA0(16,32)
      COMMON /CCK2C/BUFAA0,BPAAA0,NAMEA0,LINEA0,FILEA0,FNAME0,FLINE0,FFI
     *LE0,FNARG0,FREFA0,MTYPE0,MLENA0
      INTEGER MODE(102)
      INTEGER EQUAL
      INTEGER AAAAD0(16)
      INTEGER AAAAE0(17)
      INTEGER AAAAF0(21)
      DATA AAAAD0/228,229,230,233,238,229,228,160,244,247,233,227,229,17
     *0,238,0/
      DATA AAAAE0/238,239,244,160,242,229,230,229,242,229,238,227,229,22
     *8,170,238,0/
      DATA AAAAF0/244,239,239,160,237,225,238,249,160,225,242,231,245,23
     *7,229,238,244,243,170,238,0/
      IF((EQUAL(NAMEA0,FNAME0).NE.1))GOTO 10009
        CALL PUTWH0(NAMEA0,FILEA0,LINEA0)
        CALL PRINT(-11,AAAAD0)
        RETURN
10009 IF((FREFA0.NE.0))GOTO 10010
        CALL PUTWH0(FNAME0,FFILE0,FLINE0)
        CALL PRINT(-11,AAAAE0)
10010 CALL CTOC(NAMEA0,FNAME0,102)
      CALL CTOC(LINEA0,FLINE0,102)
      CALL CTOC(FILEA0,FFILE0,102)
      FREFA0=0
      FNARG0=1
      GOTO 10013
10011 FNARG0=FNARG0+(1)
10013 IF((FNARG0.GT.32))GOTO 10012
      IF((BUFAA0(BPAAA0).EQ.0))GOTO 10012
      IF((BUFAA0(BPAAA0).EQ.138))GOTO 10012
        CALL GETWRD(BUFAA0,BPAAA0,MODE)
        CALL CVTMO0(MODE,MTYPE0(1,FNARG0),MLENA0(1,FNARG0))
      GOTO 10011
10012 IF((BUFAA0(BPAAA0).EQ.0))GOTO 10014
      IF((BUFAA0(BPAAA0).EQ.138))GOTO 10014
        CALL PUTWH0(NAMEA0,FILEA0,LINEA0)
        CALL PRINT(-11,AAAAF0)
10014 RETURN
      END
      SUBROUTINE FNCALL
      INTEGER BUFAA0(4096)
      INTEGER BPAAA0
      INTEGER NAMEA0(102)
      INTEGER LINEA0(102)
      INTEGER FILEA0(102)
      INTEGER FNAME0(102)
      INTEGER FLINE0(102)
      INTEGER FFILE0(102)
      INTEGER FNARG0
      INTEGER FREFA0
      INTEGER MTYPE0(16,32)
      INTEGER * 4 MLENA0(16,32)
      COMMON /CCK2C/BUFAA0,BPAAA0,NAMEA0,LINEA0,FILEA0,FNAME0,FLINE0,FFI
     *LE0,FNARG0,FREFA0,MTYPE0,MLENA0
      INTEGER MODE(102)
      INTEGER NARGS
      INTEGER TYPE(16)
      INTEGER EQUAL,CMPMO0
      INTEGER * 4 LEN(16)
      INTEGER AAAAG0(14)
      INTEGER AAAAH0
      INTEGER AAAAI0(20)
      INTEGER AAAAJ0(13)
      INTEGER AAAAK0(7)
      INTEGER AAAAL0(31)
      INTEGER AAAAM0(20)
      INTEGER AAAAN0(13)
      INTEGER AAAAO0(7)
      INTEGER AAAAP0(35)
      INTEGER AAAAQ0(20)
      INTEGER AAAAR0(26)
      DATA AAAAG0/238,239,244,160,228,229,230,233,238,229,228,170,238,0/
      DATA AAAAI0/233,238,160,227,225,236,236,160,168,167,170,243,167,16
     *0,170,243,169,172,160,0/
      DATA AAAAJ0/242,229,244,245,242,238,160,246,225,236,245,229,0/
      DATA AAAAK0/225,242,231,160,170,233,0/
      DATA AAAAL0/160,244,249,240,229,243,160,228,239,238,167,244,160,22
     *5,231,242,229,229,160,168,247,225,242,238,233,238,231,169,170,238,
     *0/
      DATA AAAAM0/233,238,160,227,225,236,236,160,168,167,170,243,167,16
     *0,170,243,169,172,160,0/
      DATA AAAAN0/242,229,244,245,242,238,160,246,225,236,245,229,0/
      DATA AAAAO0/225,242,231,160,170,233,0/
      DATA AAAAP0/160,244,249,240,229,160,237,233,243,237,225,244,227,23
     *2,160,173,173,160,227,225,236,236,160,247,233,236,236,160,230,225,
     *233,236,170,238,0/
      DATA AAAAQ0/233,238,160,227,225,236,236,160,168,167,170,243,167,16
     *0,170,243,169,172,160,0/
      DATA AAAAR0/246,225,242,233,225,226,236,229,160,238,245,237,226,22
     *9,242,160,239,230,160,225,242,231,243,170,238,0/
      IF((EQUAL(NAMEA0,FNAME0).NE.0))GOTO 10015
        CALL PUTWH0(NAMEA0,FILEA0,LINEA0)
        CALL PRINT(-11,AAAAG0)
        CALL FNDEF
        FREFA0=1
        RETURN
10015 NARGS=1
      GOTO 10018
10016 NARGS=NARGS+(1)
10018 IF((NARGS.GT.FNARG0))GOTO 10017
      IF((BUFAA0(BPAAA0).EQ.0))GOTO 10017
      IF((BUFAA0(BPAAA0).EQ.138))GOTO 10017
        CALL GETWRD(BUFAA0,BPAAA0,MODE)
        CALL CVTMO0(MODE,TYPE,LEN)
        AAAAH0=CMPMO0(TYPE,LEN,MTYPE0(1,NARGS),MLENA0(1,NARGS))
        GOTO 10019
10020     CALL PUTWH0(FNAME0,FLINE0,FFILE0)
          CALL PRINT(-11,AAAAI0,FILEA0,LINEA0)
          IF((NARGS.NE.1))GOTO 10021
            CALL PRINT(-11,AAAAJ0)
            GOTO 10022
10021       CALL PRINT(-11,AAAAK0,NARGS-1)
10022     CALL PRINT(-11,AAAAL0)
        GOTO 10023
10024     CALL PUTWH0(FNAME0,FLINE0,FFILE0)
          CALL PRINT(-11,AAAAM0,FILEA0,LINEA0)
          IF((NARGS.NE.1))GOTO 10025
            CALL PRINT(-11,AAAAN0)
            GOTO 10026
10025       CALL PRINT(-11,AAAAO0,NARGS-1)
10026     CALL PRINT(-11,AAAAP0)
        GOTO 10023
10019   GOTO(10024,10020),AAAAH0
10023 GOTO 10016
10017 IF((BUFAA0(BPAAA0).EQ.0))GOTO 10027
      IF((BUFAA0(BPAAA0).EQ.138))GOTO 10027
        CALL PUTWH0(FNAME0,FLINE0,FFILE0)
        CALL PRINT(-11,AAAAQ0,FILEA0,LINEA0)
        CALL PRINT(-11,AAAAR0)
10027 FREFA0=1
      RETURN
      END
      SUBROUTINE PUTWH0(N,F,L)
      INTEGER N(102),F(102),L(102)
      INTEGER AAAAS0(16)
      DATA AAAAS0/170,243,160,168,167,170,243,167,160,170,243,169,186,16
     *0,160,0/
      CALL PRINT(-11,AAAAS0,N,F,L)
      RETURN
      END
      SUBROUTINE CVTMO0(STR,TYPE,LEN)
      INTEGER STR(102)
      INTEGER TYPE(16)
      INTEGER * 4 LEN(16)
      INTEGER I,M,NM
      INTEGER * 4 L
      INTEGER * 4 CTOL
      I=1
      NM=1
      GOTO 10030
10028 NM=NM+(1)
10030 IF((STR(I).EQ.0))GOTO 10029
        M=CTOL(STR,I)
        IF((STR(I).NE.186))GOTO 10031
          I=I+(1)
          L=CTOL(STR,I)
          GOTO 10032
10031     L=0
10032   IF((NM.LT.16))GOTO 10033
          CALL PRINT(-11,'cck2: mode too complicated*n.')
          GOTO 10029
10033   TYPE(NM)=M
        LEN(NM)=L
        IF((STR(I).EQ.0))GOTO 10034
          I=I+(1)
10034 GOTO 10028
10029 TYPE(NM)=0
      LEN(NM)=0
      RETURN
      END
      INTEGER FUNCTION CMPMO0(T1,L1,T2,L2)
      INTEGER T1(16),T2(16)
      INTEGER * 4 L1(16),L2(16)
      INTEGER I1,I2,CODE,FATAL0
      INTEGER CMPTBL(17,17)
      INTEGER AAAAT0
      INTEGER AAAAU0
      DATA CMPTBL/0,1,0,1,2,1,1,2,2,2,3,2,2,1,2,2,2,1,0,1,1,2,0,1,2,2,2,
     *3,2,2,1,2,2,2,0,1,0,1,2,1,1,2,2,2,3,2,2,1,2,2,2,1,1,1,0,2,1,1,2,2,
     *2,3,2,2,1,2,2,2,2,2,2,2,0,2,2,1,2,2,3,2,2,2,2,2,2,1,0,1,1,2,0,1,2,
     *2,2,3,2,2,1,2,2,2,1,1,1,1,2,1,0,2,2,2,3,2,2,1,2,2,2,2,2,2,2,1,2,2,
     *0,2,2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,
     *2,2,0,0,2,2,2,2,2,2,2,4,4,4,4,4,4,4,4,2,2,5,2,2,4,2,2,2,2,2,2,2,2,
     *2,2,2,2,2,2,5,5,2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,5,5,2,2,2,2,1,1,1,1,
     *2,1,1,2,2,2,3,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,4,2,2,5,2,2,2,2,2,
     *2,2,2,2,2,2,2,2,2,2,2,2,6,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,6,6/
      FATAL0=1
      I1=1
      I2=1
10035 IF((T1(I1).EQ.0))GOTO 10036
      IF((T1(I2).EQ.0))GOTO 10036
        IF((T1(I1).LT.1))GOTO 10038
        IF((T1(I1).GT.17))GOTO 10038
        IF((T2(I2).LT.1))GOTO 10038
        IF((T2(I2).GT.17))GOTO 10038
        GOTO 10037
10038     CODE=2
          GOTO 10039
10037     CODE=CMPTBL(T1(I1),T2(I2))
10039   AAAAT0=CODE
        GOTO 10040
10041     CMPMO0=0
          RETURN
10042     CMPMO0=2
          RETURN
10043     IF((FATAL0.NE.1))GOTO 10044
            CMPMO0=1
            RETURN
10044       CMPMO0=2
            RETURN
10045     I1=I1+(1)
        GOTO 10046
10047     I2=I2+(1)
        GOTO 10046
10048     I1=I1+(1)
          I2=I2+(1)
          FATAL0=0
        GOTO 10046
10049     IF((L1(I1).NE.L2(I2)))GOTO 10050
            CMPMO0=0
            RETURN
10050       IF((FATAL0.NE.1))GOTO 10051
              CMPMO0=1
              RETURN
10051         CMPMO0=2
              RETURN
10040   AAAAU0=AAAAT0+1
        GOTO(10041,10042,10043,10045,10047,10048,10049),AAAAU0
10046 GOTO 10035
10036 IF((FATAL0.NE.1))GOTO 10052
        CMPMO0=1
        RETURN
10052   CMPMO0=2
        RETURN
      END
C ---- Long Name Map ----
C fatalok                        fatal0
C Line                           linea0
C Fnargs                         fnarg0
C cmpmode                        cmpmo0
C Bp                             bpaaa0
C Mlen                           mlena0
C Mtype                          mtype0
C Ffile                          ffile0
C Fname                          fname0
C Fline                          fline0
C putwhere                       putwh0
C cvtmode                        cvtmo0
C Buf                            bufaa0
C File                           filea0
C Name                           namea0
C Fref                           frefa0