#include <perms.h>
int _imp_mainep(int _imp_argc, char **_imp_argv) {
  _imp_enter();
  static int IO;
  int I;
  int *IN;
  int IE;
  int IA[9 - 0 + 1];
  auto int IFN(int I) {
    _imp_enter();
    return (1);
    _imp_leave();
  }
  auto int IFN2(void) {
    _imp_enter();
    return (1);
    _imp_leave();
  }
  auto int *IM(int I) {
    _imp_enter();
    return (&IO);
    _imp_leave();
  }
  auto int *IM2(void) {
    _imp_enter();
    return (&IO);
    _imp_leave();
  }
  auto void IR(int N) {
    _imp_enter();

    _imp_leave();
  }

  typedef struct RF {
    int I;

  } RF;

  typedef struct RFA {
    int IA[9 - 0 + 1];

  } RFA;
  auto RFA *RM(void) {
    _imp_enter();
    static RFA OREC;
    return (&OREC);
    _imp_leave();
  }
  RF REC[9 - 0 + 1];
  static void *SW[9 - 0 + 1] = {
      /* These need to be filled in from associated code block */};

SW_1:;                           // sw(1):
  IO = 1;                        // io = 1
  IE = 1;                        // ie = 1
  IA[1] = 1;                     // ia(1) = 1
  I = IFN(1);                    // i = ifn(1)
  I = IFN2();                    // i = ifn2
  I = IM(1);                     // i = im(1)
  IN = IM(1);                    // in == im(1)
  *IM(1) = 1;                    // im(1) = 1
  *IM2() = 1;                    // im2 = 1
  REC[1].I = 1;                  // rec(1)_i = 1
  IR(1);                         // ir(1)
  IN = &IA[1];                   // in == ia(1)
  I = IA[1];                     // i = ia(1)
  I = /*FN_MAP*/ RM()->IA[1];    // i = rm_ia(1)
  IN = &/*FN_MAP*/ RM()->IA[1];  // in = rm_ia(1)

  _imp_leave();
  exit(0);
  return (0);
}
